停止等待 回退N帧 选择重传

停止等待协议

1、发送下一个数据需要接收到先前的数据的ack

2、如果接收到损坏的数据需要发送nak通知发送端进行重传

3、如果发送端在发送数据的时候数据丢失,发送端需要启动重传计时器进行超时重传

4、如果接收者的ack丢失了,导致了超时重传,为了避免接收重复的报文,需要为报文打上序号

5、如果ack延时到达发送者,为了区分不同数据的ack,我们也同样需要为ack打上序号

停止等待协议的信道利用率

Td/RTT+Td+Ta(其中Td代表了数据的发送时间,RTT代表往返时间,Ta代表接收者发送ack的时间)

停止等待协议的信道利用率是非常低的,在10M的网络中利用率在百分之5左右,在100M的网络中利用率连百分之1都不到。

回退N帧

 回退N帧与停止等待的主要区别就是发送方窗口的数量,但是接收方的窗口数量依然只有一个

1、发送方可以连续发送多个在发送窗口中的数据

2、接收方使用一个接收窗口进行数据的接收,接收一个接收窗口中的报文就将窗口向右进行滑动

3、发送窗口和接收窗口都有对应的序号,防止导致重传数据或是延时接收的时候不能进行相对应的区分

4、发送方在发送了多个数据报文后,若没有接收到该报文中的最后一个报文的确认,其确认报文确认的内容仅仅是其他前面的报文,将会从其接收到的确认的报文开始进行重传,这就导致了无论你发送了多少的报文,只要这段连续的报文流中某个报文没有正确接收到,都要进行大批的重传

5、回退N帧的窗口为2的k方-1(其中k为组成窗口序号的比特位数),如果超过这个窗口大小将会导致新旧数据无法正常分别的问题

窗口大小原因解析:比如窗口序号为0-7,如果此时将窗口大小设置为8,发送窗口的序号也是从0到7。此时发送方将8个报文发送过去,接收者成功接收并将窗口向右滑动,窗口的第一个此时从0开始。假设此时第一个报文的ack丢失了,那么此时发送方就需要重传从0到7的8个报文,这是接收方就无法分辨这8个报文是旧的报文还是新的报文

选择重传

1、发送窗口和接收窗口有对应的序号,用来防止重复报文和ack延时造成的无法分辨的问题

2、发送窗口和接收窗口一般设置为一样的大小,但是窗口大小不能超过2(k-1),其中k为组成窗口序号的比特位数

3、如果接收方接收到一连串报文,其中这连串的报文中有某个报文没有正常接收,那么发送方不需要进行大量的重传,只要将错误的报文进行重传即可

4、窗口的滑动依然对于发送方来说依然受限于是否正常接收到ack,接收方是否正常接收到数据

窗口大小的原因解析:如果窗口序号为0-8,此时最大的窗口大小时4,也就是序号从0-3,假设我们将窗口大小设置为5,那么序号就是从0-4,还是一样的问题,当发送方正常发送,接收方正常接收,接收方的窗口向右滑动,这是窗口的范围如上图所示,新的窗口范围包含着上一轮接收报文的序号,此时发送方因为ack的丢失进行超时重传,这是接收方如果再接收这些重传的报文将无法分辨报文的新旧。

  • 0
    点赞
  • 5
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

Mllllk

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值