前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
工具
TVP
发布
社区首页 >专栏 >3.4.3 多帧滑动窗口和后退N帧协议(GBN)

3.4.3 多帧滑动窗口和后退N帧协议(GBN)

作者头像
week
发布2018-08-24 16:26:24
1.9K0
发布2018-08-24 16:26:24
举报
文章被收录于专栏:用户画像用户画像

在后退N帧式ARQ中,发送方不需要在收到上一帧的ACK后才能开始发送下一帧,而是可以连续发送帧。当接受方检测出失序的信息帧后,要求发送方重发最后一个正确接受的信息帧之后的所有未确认的帧;或者当发送方发送了N个帧后,若发现该N个帧的前一个帧在计时器超时后仍未返回其确认信息,则该帧被判为出错或丢失,此时发送方就不得不又重传该出错帧及随后的N个帧。换句话说,接受帧只允许按顺序接受帧。

源站向目的站发送数据帧。当源站发完0号帧后,可以继续发送后续的1号帧、2号帧等。源站每发送一帧就要为该帧设置超时计时器。由于连续发送了许多帧,所以确认帧必须要指明是对哪一帧进行确认。为了减少开销,GBN协议还规定接受端不一定每收到一个正确帧就必须发回一个确认帧,而是可以在连续收到好几个正确的确认帧后,才对最后一个数据帧发确认信息,或者可以在自己有数据要发送时才将对以前正确收到的帧加以捎带确认。这就是说,对某一数据帧的确认就表明该数据帧和这以前所有的数据帧均已正确无误地收到了。

ACK(n+1)表示对第n号帧的确认,表明接受方已正确收到第n帧及以前的所有帧,下一次期望收到第n+1号帧(也可能是第0号帧)。接受端只按序接受数据帧。虽然在有差错的2号帧之后接着又收到了正确的6个数据帧,但接收端必须将这些帧丢弃。接收端虽然丢弃了这些不按序的无出错帧,但应重复发送已经发送过的最后一个确认帧ACK1(这是为了防止已经发送过的确认帧ACK1丢失)。

后退N帧协议的接受窗口为1,可以保证按序接受数据帧。若采用n个比特对帧编号,则其发送窗口的尺寸Wt应满足:1<=Wt<=2^n-1。若发送窗口的尺寸大小2^n-1,则会造成接受方无法分辨新帧和旧帧。

后退N帧协议一方面因连续发送数据帧而提高了信道的利用率,但另一方面,在重传时又必须把原来已发送正确的数据帧进行重传(仅因这些数据帧的前面有一个数据帧出了错),这种做法又使传送速率降低。由此可见,若信道的传输质量很差导致误码率较大时,后退N帧协议不一定优于停止等待协议。

本文参与 腾讯云自媒体分享计划,分享自作者个人站点/博客。
原始发表:2016年09月06日,如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 作者个人站点/博客 前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体分享计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档