数据链路层中选择重传为何接收窗口小于等于发送窗口

我们假设帧序号采用3bit表示,那么帧序号为 0, 1, 2, 3, 4, 5, 6, 7在采用SR(选择重传)协议时,发送窗口时理论上满足的原则是发送窗口大小等于接收窗口(默认情况下,除非特殊说明)

问题一 : 那么发送窗口为5 接收窗口为3 (即发送窗口大于接收窗口)会发生什么情况?

首先发送方一次性连续发送了 0,1,2,3,4 帧序号的比特流 , 因为接收方的接收窗口为3 , 那么在0,1,2号帧正确无误的被接收方接收后,接收方向上交付0,1,2号帧 . 3,4号帧虽然被正确接收,但接收方现在还未将接收到的0,1,2号帧向上交付,并发回ack(n)的确认收到信息 ,多余的3,4号帧将被抛弃,只有在接收方发回确认信息后,接收窗口才会向后移动, 接收方下一个窗口便才会期待3,4,5 号帧 .因此早到的帧会被抛弃. 那么发送方迟迟收不到3,4号帧的ack3,ack4 .只收到ack0,ack1,ack2 , 因此发送方的计时器超时后接收方才会再次发送3,4号帧,这时候接收方才能正确接收. 这样的配合方式使得每个周期都会有数据超时重传,因此传输效率是低下的,也是没必要的.

 

问题二: 如果发送窗口大小为5,接收窗口大小为5 (即发送窗口+接收窗口>2^n)会发生什么情况?

我们来分析,发送方一次性发送0,1,2,3,4号帧的比特流, 接收方接收窗口为5

情况1: 在没有差错发生的情况下(此处差错考虑帧差错的帧丢失) : 发送方发送的所有数据都被正确接收了 , 并且接收方所有确认数据都正常接收到了.那么这种情况将一个周期一个周期的循环下去.

情况2: 发送方发送了0-4号帧,接收方正确接收,但是接收方的回复的所有确认收到信息全部丢失 , 发送方以为自己的数据发送失败,即没有到达接收方,因为如果到达了接收方即使发生了帧差错,接收方也会返回NAK(n)的回复信息 , 那么在计时器超时后发送方再次发送在缓存中的0-4号旧帧,那么接收方因为正确之前已经正确接收到0-4号帧后,它的接收窗口已经向后移动,此时接收窗口期望的是5,6,7,0号帧 . 当接收方再次接收到0-4号帧时,他并不能区别此时的0号帧是旧帧还是新帧,实际上是我们知道是旧帧,但是接收方接收到此0号帧了,它只能以为是新帧.那么此时就造成了帧重复的差错了.发送窗口大小等于接收窗口(默认情况下,除非特殊说明)发送窗口大小 + 接收窗口大小  <= 2^n = 8

评论 8
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值