3.1.4.2 后退N帧协议(GBN)

3.1.4.2 后退N帧协议(GBN)
停止等待协议的弊端:信道利用率太低,太闲了
采用流水线技术对停止-等待协议(一个数据帧跟着数据帧发送)进行改进
使用流水线技术后:    
    1.必须增加数据帧序号的范围
    2.发送方需要缓存多个分组
    所以出现了后退N帧协议(GBN)和选择重传协议(SR)

1.后退N帧协议中的滑动窗口
    发送窗口:发送方维持一组连续的允许发送的帧的序号
    接收窗口:接收方维持一组连续的允许接收帧的序号。
        在后退N帧协议中,接收窗口只有一个
        在选择重传协议中,接收窗口有多个
2.后退N帧协议执行过程
    1.GBN发送方必须响应的三件事
        1.上层的调用
            上层要发送数据时,发送方先检查发送窗口是否已满,如果未满,则产生一个帧并将其发送;
            如果窗口已满,发送方只需将数据返回给上层,暗示上层窗口已满。上层等一会再发送。
            (实际实现中,发送方可以缓存这些数据,窗口不满时再发送帧。)
        2.收到了一个ACK
            GBN协议中,对n号帧的确认采用累计确认的方式,标明接收方已经收到n号帧和它之前的全部帧。
        3.超时事件
            协议的名字为后退N帧/回退N帧,来源于出现丢失和时延过长帧时发送方的行为。就像在停等协议中一样,
            定时器将再次用于恢复数据帧或确认帧的丢失。如果出现超时,发送方重传所有已发送但未被确认的帧。
    2.GBN接收方要做的事
        如果正确收到n号帧,并且按序,那么接收方为n帧发送一个ACK,并将该帧中的数据部分交付给上层。
        其余情况都丢弃帧,并为最近按序接收的帧重新发送ACK。接收方无需缓存任何失序帧,
            只需要维护一个信息: expectedseqnum(下一个按序接收的帧序号)。
            即:接收方很专一,如果没有接收到对应帧的到来,后面的帧即使到了也会被丢弃
    3.示意图

在这里插入图片描述

3.滑动窗口长度可以无限长吗?
    若采用n个比特对帧编号,那么发送窗口的尺寸WT,应满足:1<=W<=2^n-1。因为发送窗口尺寸过大,就会使得接收方无法区别新帧和旧帧(新帧与旧帧的帧编号相同)。
4.GBN协议重点总结
    1.累计确认(偶尔捎带确认,接收方把确认帧放在了接收方要发给发送方的数据里)
    2.接收方只按顺序接收帧,不按序无情丢弃
    3.确认序列号最大的,按序到达的帧
    4.发送窗口最大为2^n-1,接收窗口大小为1.
5.GBN协议性能分析
    1.优点:因连续发送数据帧而提高了信道利用率
    2.缺点:在重传时,必须把原来已经正确传送的数据帧重传,使得传送效率降低
        选择重传协议可以解决这个缺点
  • 1
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值