这个问题我之前有回答过,以下是之前的答案,可以参考一下。
这是个好问题,点赞。
1. 连续ARQ协议保证可靠传输有两种方法,回退N和选择重传,课程内容介绍可靠传输默认使用的方法是回退N的方法保证可靠。
2. 简单回顾一下连续ARQ协议,连续ARQ协议提出了滑动窗口、累计确认的概念,滑动窗口滑动的条件是前面的数据都已经收到确认。
从功能上来看,会感觉选择重传和连续ARQ协议是不能共存的,因为选择重传意味着前面的数据没有正确收到确认,需要重传,也即是窗口此时不能向前滑动。
3. 但实际上两者是可以共存的,累计确认和选择重传不冲突。
4. 举个例子,假设发送窗口有1~1200,并已经全部发送,1~400已收到确认,401~800未收到确认,801~1200已收到确认。按照累计确认和选择重传,可以确认1~400,窗口向前移动400,然后选择重传401~800,然后收到确认后在向前移动800。
但这个例子如果是回退N的话,那么801~1200也是需要重传的,也即是回退N策略。
5. 所以回退N和选择重传是冲突的,但累计确认和选择重传不冲突。
希望对同学有所帮助。