Go Back N 协议发送窗口最大值

Go Back N协议(也称GBN)是滑动窗口协议的一种实现方式,在网上也有很多相关的资料,但这些资料基本没有清晰地对GBN发送窗口大小上限的 1≦W≦2^n-1做一个很好的解释。所以这个小短文可以看作是对大神们文章的一个小补充,本文实例搬运自中科大华蓓老师的课件。

使用GBN协议,发送窗口的大小不能超过2^n-1

先举一个反例说明:若n=3,发送窗口大小取为2^3=8,考虑如下情形:

  • 发送方连续发送序号从0~7的8个帧,等待确认
  • 接受方正确收到这8个帧,对最大序号7进行确认
  • 发送方有两种情况:
    1 发送序号为0~7的8个新帧
    2 因确认丢失而超时,重发8个老帧
  • 此时,接受方无法判断收到的是8个新帧还是重发的8个老帧

若n=3,帧空间为8(0 ~ 7),发送窗口大小取7(0 ~ 6),以上问题不会发生:

  • 发送方发送序号从0~6的7个帧,等待确认
  • 接受方正确收到这7个帧,对最大序号6进行确认,并准备接收序号为7的帧
  • 发送方有两种情况:
    1 收到确认,发送序号为7及0~5的7个新帧
    2 因确认丢失超时,重发序号为0~6的7个老帧
  • 接收方处理:
    1 收到序号为7的帧,表明这一批是新帧,接收,对序号5确认
    2 没有收到序号为7的帧,则对0~5序号的帧不予接收,并重发对序号6的确认帧
  • 发送方处理:
    1 确认序号在发送窗口内:继续发送新的数据帧
    2 确认序号不在发送窗口内或超时:重传发送窗口内的帧

猜你喜欢

转载自blog.csdn.net/weixin_33696106/article/details/87430930
今日推荐