协议分析之滑动窗口机制

来源:互联网 发布:ubuntu 移除软件 编辑:程序博客网 时间:2024/06/03 20:41
首先说下这是一种流量控制机制,这里是很形象的将数据的发送端和接受端分别看作为两个窗口,即发送窗口和接受窗口,这个技术解决的是在不确定的网络状况下,发送数据不会阻塞,其实他中间是实现了动态改善数据的吞吐量(实际是接收方提前告诉发送方在某时刻能发送多少包),所以基本可以实现快网快发,慢网慢发的效果。

窗口机制的实现:
在任意时刻,窗口双方都维持一个连续的允许发送帧的序号,也就是窗口的尺寸,值得注意的是双方的窗口大小不一定是连续的,因为这受到传输介质的限制,如果是客户端往云端上传东西,云端的窗口完全可以很大,道理就是这样了,里面再实现些丢失重发,退避重发,选择性重传的方法就是OK了,关键是动态调整窗口大小,然后告诉对方你自己当时的吞吐量,这个实现起来可以是给缓冲区的大小,延时时间,一个单位数值×N,然后根据双发窗口的比率进行调整。如果是当前包出现拥塞,可以立即实现将挡当前的发送缓冲区减半,然后超时重传时间延长一倍等,还可以主动的实现流量控制。

这里有个局限就是他只能呢个在发送端和接收端上起作用,如果是中间路由拥塞,他就没法很好的协调了,因为无论怎样改变窗口的大小都改变不了两端的吞吐量(没有抓住主要矛盾)。
0 0
原创粉丝点击