2025年计算机网络数据链路层 --- 后退n帧协议(GBN)

计算机网络数据链路层 --- 后退n帧协议(GBN)滑动窗口 发送窗口 发送方维持一组连续的允许发送的帧的序号 接收窗口 接收方维持一组连续的允许接收帧的序号 发送过程 如图 假如发送方的发送窗口大小是 6 首先发送 0 号帧 并建立 0 号帧的副本 防止帧丢失 然后发送 0 号帧 发送 1 号帧 一直到 5 号帧

大家好,我是讯享网,很高兴认识大家。

滑动窗口

发送窗口

发送方维持一组连续的允许发送的帧的序号

接收窗口

接收方维持一组连续的允许接收帧的序号

发送过程

如图,假如发送方的发送窗口大小是6,首先发送0号帧,并建立0号帧的副本,防止帧丢失,然后发送0号帧,发送1号帧,一直到5号帧:


讯享网

 接收方收到了0号帧之后,回复发送方ACK0:

 发送方收到了ACK0之后,发送窗口往后移动一个,并把6号帧放到链路上:

 接收方收到1之后,就回复ACK1,发送方收到ACK1之后,窗口移动,7号帧进入发送窗口,并发送2号:

 目前发送方就被分成了四个部分:发送完已经被确认的(0,1号帧),已经发送等待确认的(2号帧),还能发送的(34567号),还不能发送的(其余的)

GBN中发送窗口必须相应的三件事

上层(网络层)的调用

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

收到了一个ACK

GBN协议中,对n号帧的确认采用累计确认的方式,标明接收方已经收到n号帧和它之前的全部帧。也就是说接收方不需要每一帧都返回一个确认帧。

超时事件

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

在GBN中,假设0号帧传输成功,但是1号帧未传输成功,接收方在接收0号帧之后,1号帧未收到,但是收到了23456号帧,但是接收方会忽略这些帧,这样发送方一直收不到1号帧的确认帧,直到触发了超时计时器,就会重新传1号帧及以后的帧。

GBN中接收方需要做的事

  • 如果正确收到n号帧,并且按序,那么接收方为n帧发送一个ACK,并将该帧中的数据部分交付给上层。
  • 其余情况(未收到应该收到的n号帧)都丢弃帧,并为最近按序接收的帧重新发送ACK。接收方无需缓存任何失序帧,只需要维护一个信息:expectedseqnum(下一个按序接收的帧序号)(假如接收方收到了012,那么接收方就会等待3号帧,假如未收到3号帧之前收到了45号帧,那么接收方就会把45号帧丢弃,并且重新发送最近接收的2号帧的ACK2给发送方)

GBN图示

滑动窗口长度

若采用n个比特对帧编号,那么发送窗口的尺寸W_{T}应满足:1\leq W_{T} \leq 2^{n}-1。因为发送窗口尺寸过大,就会使得接收方无法区别新帧和旧帧。

GBN协议重点

累积确认(偶尔捎带确认)

偶尔捎带确认就是双方通信时,甲方给乙方发送数据时,可以捎带发送乙方之前给甲方发送数据的确认帧

接收方只按顺序接收帧,不按序无情丢弃

确认序列号最大的,按序到达的帧

发送窗口最大为2^{n} - 1,接收窗口大小为1

GBN性能分析

因连续发送数据帧而提高了信道利用率。

在重传时必须把原来的已经正确传送的数据帧重传,使传送效率降低。

小讯
上一篇 2025-03-26 20:10
下一篇 2025-03-16 10:14

相关推荐

版权声明:本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容,请联系我们,一经查实,本站将立刻删除。
如需转载请保留出处:https://51itzy.com/kjqy/26529.html