停止并等待 ARQ
特征
- 用于面向连接的通信。
- 它提供错误和流量控制
- 它用于数据链路和传输层
- Stop and Wait for ARQ 主要实现了 Window Size 1 的 Sliding Window Protocol 概念
有用的条款:
- 传播延迟:数据包从一个路由器到另一个路由器的物理旅程所花费的时间。
传播延迟=(路由器之间的距离)/(传播速度)
- RoundTripTime ( RTT ) = 2* 传播延迟
- 超时 ( TO ) = 2* RTT
- 生存时间 ( TTL ) = 2* TimeOut。 (最大 TTL 为 180 秒)
简单的停止和等待
发件人:
规则 1) 一次发送一个数据包。
规则 2) 只有在收到前一个数据包的确认后才发送下一个数据包。
接收者:
规则 1) 接收并消费数据包后发送确认。
规则2)消费后需要发送确认包(流控)
问题 :
1. 丢失数据
2. 遗失确认:
3. 延迟确认/数据:在发送方超时后,长时间延迟的确认可能被错误地认为是对其他最近数据包的确认。
停止并等待 ARQ(自动重复请求)
以上 3 个问题通过停止和等待 ARQ(自动重复请求)解决,它同时进行错误控制和流量控制。
1.超时:
2.序列号(数据)
3. 延迟确认:
这也通过引入用于确认的序列号来解决。
停止和等待ARQ 的工作:
1) 发送方 A 发送一个序号为 0 的数据帧或数据包。
2)接收方B,收到数据帧后,发送一个序号为1的确认(下一个期望的数据帧或数据包的序号)
只有一位序列号意味着发送方和接收方都只有一个帧或数据包的缓冲区。
停止和等待 ARQ 的特点:
- 它使用发送方和接收方之间的链路作为半双工链路
- 吞吐量 = 每个 RTT 1 个数据包/帧
- 如果带宽*延迟产品非常高,那么如果它不是那么有用,它们就会停止并等待协议。发送方必须在发送处理后的下一个数据包之前一直等待确认。
- 这是“闭环或面向连接”协议的示例
- 它是 SWP 的一个特殊类别,其窗口大小为 1
- 无论发送方有多少数据包停止并等待协议,只需要 2 个序列号 0 和 1
停止和等待 ARQ 解决了主要的三个问题,但可能会导致严重的性能问题,因为发送方总是等待确认,即使它已经准备好发送下一个数据包。考虑一种情况,您有高带宽连接并且传播延迟也很高(您通过高速连接连接到其他国家的某些服务器)。为了解决这个问题,我们可以一次发送多个具有更大序列号的数据包。我们将在下一篇文章中讨论这些协议。
因此,停止和等待 ARQ 在传播延迟非常小的情况下(例如 LAN 连接)可能工作得很好,但对于远程连接(如卫星连接)表现不佳。
参考:
- http://users.ecs.soton.ac.uk/sqc/EL336/CNL-5.pdf
- 书——Tanenbaum 的计算机网络