GBN(后退n帧协议)与SR(选择性重传协议)

Posted issue是fw

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了GBN(后退n帧协议)与SR(选择性重传协议)相关的知识,希望对你有一定的参考价值。

后退 N \\rm N N帧协议 G B N \\rm GBN GBN

G B N \\rm GBN GBN发送方

.上层调用

上层要发送数据时,发送方先检查发送窗口是否已满。

如果未满,则产生一个帧并将其发送;如果窗口已满,发送方只需将数据返回给上层,暗示窗口已满.

.收到 A C K \\rm ACK ACK

G B N \\rm GBN GBN协议中,对 n n n号帧的确认采用累计确认,标明接收方已经收到 n n n号帧和它之前的全部帧

.超时事件

若出现丢失和时延过长帧时,发送方将重传所有已发送但未收到确认的帧


G B N \\rm GBN GBN接收方

.若正确收到 n n n号帧,并且按序,那么接收方为 n n n帧返回一个 A C K \\rm ACK ACK,并将该帧中的数据部分交给上层

.其余情况都丢弃帧,并为最近按序接收的帧重新发送 A C K \\rm ACK ACK.接收方无需缓存任何失序帧,只需要维护一个信息: e x p e c t e d s e q n u m \\rm expectedseqnum expectedseqnum(下一个按序接收的帧序号)

例子:

比如现在接收方收到了序号 0 , 1 0,1 0,1的帧,那么 e x p e c t e d s e q n u m = 2 \\rm expectedseqnum=2 expectedseqnum=2

但是此时来了一个序号为 3 3 3的帧,那么会直接丢弃,并返回一个 A C K 1 \\rm ACK1 ACK1

一个 G B N \\rm GBN GBN协议的工作图解

这样做的弊端其实非常明显!!

一旦中间有一个帧丢失,那么需要重发后续所有帧!!这就做了很多无用功,所以有了

选择性重传协议 S R \\rm SR SR

S R \\rm SR SR发送方

Ⅰ Ⅰ .上层的调用

从上层收到数据后, S R \\rm SR SR发送方检查下一个可用于该帧的序号.如果序号位于发送窗口内,则发送该数据帧.否则要么将数据缓存,要么返回给上层之后再传输

Ⅱ . Ⅱ. .收到 A C K \\rm ACK ACK

S R \\rm SR SR发送方将这个被确认的帧标记为已接收.如果该帧序号是窗口的下界,则窗口向前移动到最小序号的未被确认帧处.如果窗口移动了且有序号在窗口内的未发送帧,则发送这些帧.

Ⅲ . Ⅲ. .超时事件

只重传超时帧


S R \\rm SR SR接收方

来者不拒(窗口内的帧)

S R \\rm SR SR接收方将确认一个正确接收的帧而不管其是否按序,失序的帧将被缓存,并返回给发送方一个该帧的确认帧[收谁确认谁],直到所有帧(序号更小的帧)都被收到为止,这时将一批帧顺序交付上层,然后向前移动滑动窗口

以上是关于GBN(后退n帧协议)与SR(选择性重传协议)的主要内容,如果未能解决你的问题,请参考以下文章

王道考研 计算机网络11 数据链路层 封装成帧 透明传输 流量控制 停止-等待协议 后退N帧协议GBN 选择重传协议SR

滑动窗口协议(GBN, SR)

流量控制之SR协议

计算机网络-----数据链路层

计算机网络学习笔记——差错控制停等协议回退N帧选择性重传滑动窗口数据链路层HDLCPPP协议有限状态机

计算机网络学习笔记——差错控制停等协议回退N帧选择性重传滑动窗口数据链路层HDLCPPP协议有限状态机