回退N帧协议GBN
00m37s
sw 协议中,我们发送一次就要等待接收一次,每次的操作都是 1 对 1 的,这样是低效的,GBN 的想要一次发送多个分组,这多个分组被统一确认,就不用一趟一趟的跑了

- 在使用流水线传输方式时,发送方不能无限制地连续发送数据分组,否则可能会导致网络中的路由器或接收方来不及处理这些数据分组,进而导致数据分组的丢失,这实际上是对网络资源的浪费。(限制发送数量)
- 回退 N 帧协议采用流水线传输方式,并且利用发送窗口来限制发送方连续发送数据分组的数量,这属于连续 ARQ 协议。
采用 n 个比特给分组编序号,范围是 02^n-1。本例假设采用 3 个比特给分组编序号,则序号范围是 07。当序号增加到 7 时,下一个序号又从 0 开始


发送方的发送窗口和接收方的接收窗口按上述规则不断向前滑动,因此这类协议又称为滑动窗口协议
无传输差错

06m03s
传输出错,回退 n 帧
07m33s
接收到的就变绿,哪里丢失哪里停,收到几个,蓝色窗口移动几格

一旦出错,就要退回去重传已发送过的 N 个数据分组
回退N帧协议的接收方采用累积确认方式。
-
接收方不必对收到的每一个数据分组都发送一个确认分组,而是可以在收到几个序号连续的数据分组后,对按序到达的最后一个数据分组发送确认分组。
- 接收方何时发送累积确认分组,由具体实现决定。
- 确认分组
表明序号为 及之前的所有数据分组都已正确接收。

12m17s 举例说明
-
发送方
- 发送窗口
的取值范围是 ,其中, 是构成分组序号的比特数量。 - 如果
,变成了停止-等待协议 - 如果
,接收方无法分辨新旧数据分组
- 如果
- 可在未收到接收方确认分组的情况下,将序号落入发送窗口内的多个数据分组全部发送出去。
- 只有收到对已发送数据分组的确认分组时,发送窗口才能向前滑动到相应位置。
- 收到多个重复确认时,可在重传计时器超时前尽早开始重传,由具体实现决定。
- 发送窗口内某个已发送的数据分组产生超时重传时,发送窗口内该数据分组的后续已发送的数据分组也必须全部重传,这就是回退N帧(Go-back-N,GBN)协议名称的由来。
- 发送窗口
-
接收方
- 接收窗口
,因此只能按序接收数据分组。 - 只接收序号落入接收窗口内且无误码的数据分组,并且将接收窗口向前滑动一个位置,与此同时给发送方发送相应的确认分组。
- 为了减少开销,接收方不必每收到一个按序到达且无误码的数据分组就给发送方发送一个相应的确认分组。
- 可以在连续收到多个按序到达且无误码的数据分组后(数量由具体实现决定),才针对最后一个数据分组发送确认分组,这称为累积确认。
- 或者可以在自己有数据分组要发送时才对之前按序接收且无误码的数据分组进行捎带确认。
- 接收方收到未按序到达的数据分组后,除丢弃外,还可对之前最后一个按序到达的数据分组进行重复确认,以便发送方尽快重传。
- 接收窗口

发送窗口与接收窗口



当发送窗口 Wt 超过取值范围时

例题
18m04s
