IP网络提供的是不可靠的传输
理想传输条件的特点
- 传输信道不产生差错。
- 不管发送方以多快的速度发送数据,接收方总是来得及处理收到的数据。
5.4.1 停止等待协议
- 每发送完一个分组就停止发送,等待对方的确认。在收到确认后再发送下一个分组。
- 全双工通信的双方既是发送方也是接收方。
- 假设仅考虑A发送数据,而B接收数据并发送确认。因此A叫做发送方,而B叫做接收方。
1. 无差错情况
- A发送完分组M1后就暂停发送,等待B的确认(ACK)。
- B收到M1向A发送ACK。
- A在收到了对M1的确认后就再发送下一个分组M2。
2. 出现差错
-
两种情况:
- B接收M1时检测出了差错,就丢弃M1,其他什么也不做(不通知A收到有差错的分组)。
- M1在传输过程中丢失了,这时B当然什么都不知道,也什么都不做。
-
在这两种情况下,B都不会发送任何信息。
问题:A如何知道B是否正确收到了M1呢?
解决方法:超时重传
- A为每一个已发送的分组设置一个超时计时器。
- A只要在超时计时器到期之前收到了相应的确认,撤销该超时计时器,继续发送下一个分组M2。
- 若A在超时计时器规定时间内没有收到B的确认,就认为分组错误或丢失,就重发该分组。
3. 确认丢失和确认迟到
-
确认丢失
-
若B所发送的对M1的确认丢失了,那么A在设定的超时重传时间内将不会收到确认,因此A在超时计时器到期后重传M1。 -
假定B正确收到了A重传的分组M1。这时B应采取两个行动: ①丢弃这个重复的分组M1,不向上层交付。②向A发送确认。 -
确认迟到
- B对分组M1的确认迟到了,因此A在超时计时器到期后重传M1。
- B会收到重复的M1,丢弃重复的M1,并重传确认分组。
- A会收到重复的确认。对重复的确认的处理:丢弃。
4. 信道利用率
TA:B发送确认分组的时间需要TA。
优点:简单。缺点:信道利用率太低。
5. 停止等待协议要点
- 停止等待。发送方每次只发送一个分组。在收到确认后再发送下一个分组。
- 暂存:在发送完一个分组后发送方必须暂存已发送的分组的副本,以备重发。
- 编号。对发送的每个分组和确认都进行编号。
- 超时重传。发送方为发送的每个分组设置一个超时计时器。若超时计时器超时未收到确认,发送方会自动超时重传分组。
- 超时计时器的重传时间应当比数据在分组传输的平均往返时间更长一些, 防止不必要的重传。
- 简单,但信道利用率太低。
6. 提高传输效率:流水线传输
流水线传输:在收到确认之前,发送方连续发出多个分组。
由于信道上一直有数据不间断地传送, 流水线传输可获得很高的信道利用率。
连续ARQ协议和滑动窗口协议采用流水线传输方式。
5.4.2 连续ARQ协议
- 发送窗口:发送方维持一个发送窗口,位于发送窗口内的分组都可被连续发送出去,而不需要等待对方的确认。
- 发送窗口滑动:发送方每收到一个确认,就把发送窗口向前滑动一个分组的位置。
- 累积确认:接收方对按序到达的最后一个分组发送确认,表示:到这个分组为止的所有分组都已正确收到了。
1. 发送窗口
2. 累计确认
优点:
容易实现,即使确认丢失也不必重传。
缺点:
不能向发送方反映出接收方已正确收到的所有分组的信息。
连续ARQ协议采用Go-back-N(回退N)。
Go-back-N(回退N):表示需要再退回来重传已发送过的N个分组。当通信线路质量不好时,连续ARQ协议会带来负面的影响。
参考资料:《计算机网络(第8版)》—— 谢希仁。
|