选择重传协议SR
上一篇文章学习的回退N帧协议,接收窗口W只能等于1,因此接收方只能按序接收正确到达的数据分组,一个数据分组的误码就会导致其后连续多个分组不能被接收方按序接收而丢弃,实际他们没有误码和乱序,这造成了发送方对这些数据分组的超时重传,这是对通信资源的极大浪费。
为了进一步提高性能,可设法只重传出现误码的数据分组。因此,接收窗口的尺寸W不应再等于1,应该大于1,以便接收方先收下失序到达并无误码且序号落在接收窗口内的那些数据分组,等到所缺分组收齐后一并交给上层,这就是选择重传协议。
注意:选择重做协议是为了使发送方仅重传出现差错的分组,接收方不能再采用累计确认,而要对每个正确接收到的数据分组逐一确认。
举例说明,假设采用3个比特给分组编序号,000-111,0-7,发送窗口的取值大于1小于4,本例发送窗口取值W=4,序号落在发送窗口内的4个分组可以连续发送,序号落在发送窗口外的,不允许发送。接收方的发送窗口,一般可以和发送方窗口一样,其值为4,序号落在接收窗口内的这四个数据分组允许接收,序号落在接收窗口外的数据分组不接收。
发送方将序号落在发送窗口内的这4个数据分组依次连续发送出去。经过互联网的传输,依次到达接收方,但传输过程中2号数据分组丢失了,0、1数据分组,落在了接收窗口内,无误码,接收方正确接收。
接收方发送0、1号的数据分组确认分组,接收窗口向前滑动2个位置,这样就有4、5两个新序号落入接收窗口。
接收方接收3号数据分组,并发送3号确认分组,但接收窗口不能向前滑动,因为3号数据分组是未按序到达的数据分组。
这些确认分组经过互联网传输陆续到达发送方。发送方按序接收每一个确认分组,每按序接收一个确认分组,发送窗口就向前滑动一个窗口,发送方接收0号和1号数据确认分组,发送窗口就向前滑动两个位置,这样4和5号数据分组就落入发送窗口。接收方接收他们,并发送4、5号数据分组的确认分组,但接收窗口无法向前滑动,因为他们是未按序到达的数据分组。
接收方还未收到他们之前的2号数据分组,假设在4号和5号数据分组的传输过程中,发送方针对2号数据分组的超时重传超时了,发起了对2号数据分组的重传。
4、5的确认分组到达发送方并接收,但发送窗口不能向前滑动,因为他们是未按序到达的确认分组,发送方还未收到他们之前的2号确认分组。不过需要纪录4号和5号数据分组已经收到确认,这样就不会超时重传。
刚刚超时重传的2号数据分组,到达接收方,并被正确接收,发送2号确认分组,接收窗口现在可以向前滑动4个位置。这样就有6、7、0、1这四个新的序号落入接收窗口。
2号确认分组经过互联网传输到达发送方正确地接收。发送窗口可以向前发送四个位置,这样就有6、7、0、1四个数据分组落入发送窗口内。发送方就可以继续将这4个序号的分组依次发送出去。
接下来,在讨论一下选择重传协议窗口和接收窗口的尺寸问题
发送窗口尺寸必须满足,大于1小于2^(n-1),n是构成分组序号的比特数量,上例中为3个比特编号。
若WT等于1,则与停止-等待协议相同。
如果大于2^(n-1),就会造成接收方无法分别新、旧数据分组的问题。
接收方的接收窗口尺寸WR必须满足1<WR<=WT
若WR=1,则与回退N帧协议相同
若WR>WT,则没有意义
小结:
练习题:
本文为笔者在自学过程中整理的笔记,如有错误之处,欢迎指正,感谢关注!
上一篇:
下一篇:
,Copyright © 2008-2022 秒下下载站
m.down10s.com .All Rights Reserved