流量控制------停止等待&后退N帧协议GBN

目录

数据链路层的流量控制和传输层的流量控制比较

流量控制方法

停止等待协议

滑动窗口协议

后退N帧协议GBN

 GBN发送方必须响应的三件事

GBN接收方要做的事情

GBN运行过程


较高的发送速度和较低的接收能力不匹配,会造成传输出错

数据链路层的流量控制和传输层的流量控制比较

数据链路层的流量控制是点对点的,而传输层的流量控制是端对端的

数据链路层控制手段:接收方收不下就不回复确认

传输层流量控制手段:接收方给发送方一个窗口公告

流量控制方法

停止等待协议

发送方发送完一个帧后就停止发送,等待对方的确认,当收到对方发送的确认帧后才进行下一帧的发送。

发送方有一个超时定时器,其时间的设置比帧传输的平均RTT长一些,发送方还保留了发送帧的副本,如果超时以后还未收到确认信号,发送方将重新的进行发送。

需要注意的是发送帧和确认帧要编号。

另一种情况,如果确认帧丢失,那么发送方会再次发送一个帧,接收方收到以后,会丢弃新的这个帧,并且再次发送一个确认帧

还有一种情况,如果确认帧超时。发送方发现超时后会再次发送一帧,接收方收到以后会将其丢弃,再次发送一个确认帧,接收方收到确认帧以后,不管什么时候来的,有几个确认帧,只要有一个确认帧,那么就认为已经收到了确认帧,会将多的确认帧进行丢弃。

信道利用率:发送方在一个发送周期中,有效发送数据所需要的时间占整个发送周期的比率

 

滑动窗口协议

后退N帧协议(GBN)

选择重传协议(SR)

停止-等待协议                发送窗口大小=1,接收窗口=1

后退N帧协议(GBN)   发送窗口大小>1,   接收窗口=1

选择重传协议(SR)     发送窗口大小>1,   接收窗口>1

后退N帧协议GBN

 GBN发送方必须响应的三件事

1、上层的调用

上层要发送数据时,发送方先检查发送窗口是否已满,如果未满,则产生一个帧并将其发送,如果窗口已满,发送方只需将数据返回给上层,暗示上层窗口已满,上层等一会再发送(实际上,发送方可以先缓存这些数据,等到窗口不满时再发送)

2、收到了确认信号

GBN协议中,对n号帧的确认采用累积确认的方式,标明接收方已经收到n号帧和它之前的全部帧

3、超时事件

协议的名字为后退N帧/回退N帧,来源于出现丢失和时延过长帧时发送方的行为。就像停等协议中一样,定时器将再次用于恢复数据帧或确认帧的丢失。如果出现超时,发送方重传已发送但还未确认的帧。

比如,发送方发了五个帧,接收方收到了1号帧,但是2号帧没有收到,但此时接收方将不再接收从2号帧以后的帧,来了就丢弃,此时发送方不知道2号帧是否已经发送成功,但由于它有定时器,因此超时以后,它将重新发送从2号帧开始的帧。

GBN接收方要做的事情

1、如果正确收到n号帧,并且排序,那么接收方为n帧发送一个ACK,并将该帧中的数据部分上传给上层

2、其余情况都丢弃帧,并为最近按序接收到的帧重新发送ACK,接收方无需缓存任何失序帧,只需要维护一个信息:expectedseqnum(下一个按序接收的帧序号)

比如接收方收到了1、2、4、5、6 它将返回最大序号2的确认序号,并且期望得到接下来的3,而对于不是它所期望的4、5、6将进行丢弃

GBN运行过程

å¨è¿éæå¥å¾çæè¿°

 一个题目:

数据链路层采用GBN协议,发送方已经发送了编号为0-7的帧,当计时器超时时,若发送方只收到了0、2、3号帧的确认,则发送方需要重发的帧数是(4号)

虽然少了1号,但接收方不需要按序发送,只发送最大的即可,因此是4号

 

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

贪睡的蜗牛

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值