可靠传输-回退N帧协议

本文详细解释了Go-back-N协议的工作原理,包括无差错时的编号确认机制和有差错时的回退N帧处理。当接收方接收到部分数据后,可能采用累积确认,即使丢失部分ACK,仍能保证后续数据的发送。在有误码情况下,发送方会重传所有受影响的数据分组。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

         上图中,第一幅图为停止等待协议,而第二幅图为流水线传输,是在接收方返回确认收到的数据之前发送N个数据分组。

回退N帧协议GBN(go-back-N):

无差错情况:

1.采用3个比特给分组编号,即序号0~7

2.发送窗口尺寸W_T的取值:1< W_T <= 2^3 - 1。发送窗口的尺寸不能超过其上限。

3.接收窗口的尺寸W_R的值:1

 

        如上图所示:发送方发送了5个数据分组,并正确到达了接收方。接收窗口按顺序接收他们,接收方每接收一个,就将窗口向后滑动一位。全部接收后,将发送窗口也向后滑动,如下图所示:

 累积确认:

        接收方不一定要对收到的数据分组逐个发送确认,而是可以在收到几个数据分组后 (由具体实现决定)对按序到达的最后一个数据分组发送确认。ACKn表示序号为n及以前的所有数据分组都已正确接收。

        加上ACK1丢失了,但接收到了ACK4,还是不会影响发送数据。

有差错情况:

        发送方一次发送5个数据:1 0 7 6 5(5最先发送,所以最先到达),假设此时第5号元素误码(下图2),那么就会将5丢弃(下图3),那么此时 1 0 6 7 也与接收序号5 对不上(下图4),所以就会发送ACK4,表示之间确实收到的最后一个正确数据分组编号为4,那么有4个对不上,就会连续发送4次。

         在本例中,尽管序号为6,7,0,1的数据分组正确到达接收方,但由于5号数据分组误码不被接受,它们也“受到牵连”而不被接受,发送方还要重传这些数据分组,这就是所谓的Go=back=N (回退N)。

例题:

注意:

        发送窗口滑动时,一次滑动的并不是W_T,而是根据ACK_N,将窗口滑动到N后面。 

 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值