理论教育 滑动窗口流控方法:计算机网络技术

滑动窗口流控方法:计算机网络技术

时间:2023-11-22 理论教育 版权反馈
【摘要】:为了改进发送等待法的传输效率,很多网络协议采用滑动窗口流量控制方法。滑动窗口法允许发送方在等到确认以前,可以连续发送多个数据帧。滑动窗口法如图3-1所示。滑动窗口法的性能取决于最大窗口尺寸和传输速率。滑动窗口法需记住哪些帧已被确认,对每个未确认的帧分别保持计时。滑动窗口法常常与差错控制的ARQ方法联合使用。

滑动窗口流控方法:计算机网络技术

为了改进发送等待法的传输效率,很多网络协议采用滑动窗口流量控制方法。滑动窗口法允许发送方在等到确认以前,可以连续发送多个数据帧。可允许发送的未经确认的帧的数目就是发送窗口的尺寸。窗口尺寸类似于后述的连续发送重返N-ARQ差错控制方法中的N值,它取决于存储帧的缓冲器的大小。发送方发送一个帧后,就把该帧剔除出发送窗口,发送窗口的范围就相应缩小一个帧。发送方一旦收到第一个数据帧的确认以后,发送窗口的范围就向前扩大,再纳入一个帧。只要收到确认,窗口便继续滑动。相应地,接收方可以接受的帧的范围就是接收窗口,只有当接收到的数据帧的发送序号落在接收窗口内,才允许将该数据帧收下,否则一律丢弃。滑动窗口法如图3-1所示。

978-7-111-31053-2-Chapter03-2.jpg

图3-1 滑动窗口法

图中Ns为发送的帧序号,Nr为下一个等待接收的帧序号,阴影部分为发送窗口和接收窗口,圆上的数字表示帧的序号,最大窗口尺寸为7,发送方A在收到任一确认之前,允许发送7个数据帧,接收方B的接收窗口初始也为7。当发送方连续发送3帧后(第0,1,2帧,Ns表示帧的发送序号),发送窗口收缩到第3,4,5,6号帧。接收方发送确认信号(Nr=3,表示第3号帧以前的所有帧都已经正确接收,准备接收第3号帧),并调整接收窗口,表示可以接收第3,4,5,6,7,0,1号帧。发送方收到Nr=3的确认信号后,扩大发送窗口,表示可以发送第3,4,5,6,7,0,1号帧。接下来,发送方连续发送第3,4,5,6,7,0帧。这时接收方决定进行流量控制,只发送Nr=4的确认,表示第4帧以前的帧已经正确接收。发送方收到Nr=4的确认后,发送窗口向前滑动一个帧,把第2帧纳入进来,这时,发送方还可以发送第1、2帧,但在发送第1、2帧后,就必须停下来等待新的确认信号,才能继续发送。

滑动窗口法的性能取决于最大窗口尺寸和传输速率。窗口尺寸为1,就变成了停止等待法。增加最大窗口尺寸,有可能完全清除等待确认的时间。(www.daowen.com)

滑动窗口法需记住哪些帧已被确认,对每个未确认的帧分别保持计时。如果某个帧丢失,它的计时器便会超时,发送方便重发那个帧。当发送方滑动窗口时,便把所有得到确认的帧移出窗口外。当接收结束时,通信软件仍保持一个模拟窗口,准备接受并确认将到达的帧。这样一来,窗口把帧序列分成3部分:窗口左面的是已成功发送、接收,并获确认的帧;窗口右面是尚未被发送的帧;窗口之中的是正在发送的帧。

滑动窗口法常常与差错控制的ARQ方法联合使用。如果序号字段长度k bit,在返回N-ARQ中,最大窗口尺寸为2k-1,不能是最大的2k,否则会出现问题。例如,如果k=3,最大窗口设为8,则当收到Nr=1的确认时,可发送第1,2,…,7,0号帧,再收到Nr=1的确认时,不知道是这次的,还是重发以前Nr=1的确认。

同理,对于选择重发ARQ,因为确认信号丢失,接收方会把重传的帧作为新帧接收下来。所以,如果序号字段长度为k bit,则最大窗口尺寸为2k-1。例如,k=3,如果Nr=7的确认丢失,发送方会重传第7,0,1号帧,接收方这时会认为重传的第0,1号帧是新的帧而接收下来,继续要求重传第7号帧,导致传输的帧重复、乱序。最大窗口尺寸设为2k-1就能避免这些问题。

免责声明:以上内容源自网络,版权归原作者所有,如有侵犯您的原创版权请告知,我们将尽快删除相关内容。

我要反馈