SR和GBN的区别

Go-Back-N协议和Selective-Repeat协议是计算机网络在传输层和链路层用于实现可靠数据传输的两个重要协议。Internet的TCP协议在设计时借鉴了上述两个协议的基本思想。

回退N步(GBN)

回退N步(GBN)协议也称为==滑动窗口协议==,通过控制窗口的大小来控制发送方发送的速率,并且在滑动窗口这个机制的前提下,能够为数据的可靠传输做出保证

为什么要叫“回退N步”协议?

协议的名字”回退N步“来源于出现丢失和时延过长分组时发送方的行为。对于这些情况,发送方可能会重新发送对应的分组

我们知道,为了区分不同的分组,我们为这些数据分组都进行编号。

在GBN协议中,根据当前发送方传输的情况对一些特别位置进行特殊的命名:

  • 基序号(base):定义最早未确认分组的序号

  • 下一个序号(nextseqnum):定义最小的未使用序号

    下图是GBN中发送方看到的序号:

    [外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-aLFHGj48-1660904058540)(D:\note\笔记仓库\图片\20200220164803465.png)]

如上图所示,将序号范围分成了四段:

  • 【0,base - 1】:已经发送并且被确认的分组
  • 【base,nextseqnum - 1】:已发送但未被确认的分组
  • 【nextseqnum,base + N - 1】:即将被发送的分组
  • 【base + N,---------】:现在还不能够使用的分组

上述那些已被发送但未被确认的分组以及即将发送的分组的==许可范围==就可以被看成是一个序号范围内长度为N的窗口。即为我们常说的滑动窗口,这个窗口会随着协议的运行,会在序号空间内不断的向前滑动

窗口长度可根据接收方接收和缓存报文的能力、网络中的拥塞程度或两者情况来进行设置

有利于理解的知识点:在实践中,分组的序号是承载在分组首部的一个固定长度的字段中。所以序号的大小是有限制的,如果字段长度为k,那么序号的范围就是【0,2k - 1】。所以,对于一些过长的序号就必须进行模2

  • 8
    点赞
  • 44
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值