数据链路层和TCP传输层的流量控制有什么区别

  • Post author:
  • Post category:其他


在数据链路层,由于收发双方是点到点的连接,其流量控制策略相对较为简单,

接收窗口和发送窗口即为固定大小的缓冲区的个数,

发送方的窗口调整,即

缓冲区的覆盖依赖于确认帧的到达

,由于信号传播延时和CPU的处理时间等都对相对较为稳定,所以发送方的数据帧和接收方的确认帧,其发送和接收时间是可估计的。

在TCP层,由于一个TSAP可同时与多个TSAP建立连接,

每个连接都将协商建立一个窗口(即一对发送和接收缓冲区)

,所以窗口的管理较为复杂,其流量控制策略是通过窗口公告来实现的,当接收方收到数据后发送的确认中将通报剩余的接收缓冲区大小,发送方的发送窗口调整是根据接收方的窗口公告进行的,也就是即使收到接收方的确认也不一定就能对发送窗口进行调整,一旦发送方收到一个零窗口公告,必须暂停发送并等待接收方的下一个更新窗口公告,同时启动一个持续定时器。由于TCP层的收、发双方是端到端的,它面对的是一个网络,端到端的路径中可能包含多个点到点的链路,报文在整个传输过程中的延时难以估计甚至可能丢失,所以在TCP的流量控制协议中规定:即使发送方收到了零窗口公告,在持续定时器超时后,允许发送一个字节的数据报文,要求接收方重申当前的窗口大小,以避免因接收方的更新窗口公告丢失而导致的死锁。

————————————————

版权声明:本文为CSDN博主「风尘璞」的原创文章,遵循CC 4.0 BY-SA版权协议,转载请附上原文出处链接及本声明。

原文链接:https://blog.csdn.net/baidu_35534327/article/details/53542020