您的位置:首页 > 理论基础 > 计算机网络

TCP层与数据链路层流量控制的区别

2016-12-09 17:18 127 查看
数据链路层和TCP层都是面向连接的,都采用窗口协议来实现流量控制,然而两个窗口协议是不一样的。

在数据链路层,由于收发双方是点到点的连接,其流量控制策略相对较为简单,接收窗口和发送窗口即为固定大小的缓冲区的个数,发送方的窗口调整,即缓冲区的覆盖依赖于确认帧的到达,由于信号传播延时和CPU的处理时间等都对相对较为稳定,所以发送方的数据帧和接收方的确认帧,其发送和接收时间是可估计的。

在TCP层,由于一个TSAP可同时与多个TSAP建立连接,每个连接都将协商建立一个窗口(即一对发送和接收缓冲区),所以窗口的管理较为复杂,其流量控制策略是通过窗口公告来实现的,当接收方收到数据后发送的确认中将通报剩余的接收缓冲区大小,发送方的发送窗口调整是根据接收方的窗口公告进行的,也就是即使收到接收方的确认也不一定就能对发送窗口进行调整,一旦发送方收到一个零窗口公告,必须暂停发送并等待接收方的下一个更新窗口公告,同时启动一个持续定时器。由于TCP层的收、发双方是端到端的,它面对的是一个网络,端到端的路径中可能包含多个点到点的链路,报文在整个传输过程中的延时难以估计甚至可能丢失,所以在TCP的流量控制协议中规定:即使发送方收到了零窗口公告,在持续定时器超时后,允许发送一个字节的数据报文,要求接收方重申当前的窗口大小,以避免因接收方的更新窗口公告丢失而导致的死锁。
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: