计算机网络中的自动重传请求 (ARQ)

2024年8月28日 | 阅读 12 分钟

计算机网络是现代通信的基础,它使得数据和信息能够跨越遥远的距离无缝传输。在这个由互联系统和设备组成的复杂网络中,数据的可靠传输至关重要。为了保证数据完整性和有效的通信,采用了各种协议和程序。自动重传请求 (ARQ) 是计算机网络中用于错误检测和纠正的主要方法之一。本文旨在对计算机网络中的 ARQ 进行全面详尽的解释,涵盖其基本原理、类型、操作模式、优点和缺点。

ARQ 的原理

ARQ 协议管理通过不稳定或易出错的通信链路进行可靠的数据传输。它基于错误预防和纠正的思想。数据被分解成数据包或帧,然后从发送方发送到接收方。

每个数据包都单独发送,成功接收数据包后,发送方期望收到来自接收方的确认 (ACK)。如果发送方在预定的超时窗口内未收到 ACK 或发现错误,则会重新发送数据包。此过程一直持续到接收方成功接收并确认所有数据包。

ARQ 的类型

1. 停-等 ARQ

停-等 ARQ 是最基本和最直接的 ARQ 协议类型之一。在此协议中,发送方在向接收方发送数据帧后,会等待接收方发送回确认 (ACK),然后才发送下一个帧。如果发送方在设定的延迟间隔内未收到 ACK 或否定确认 (NAK),则认为该帧已丢失或损坏并重新传输它。

优点

  • 简单性: 停-等 ARQ 易于使用和理解,因此适用于慢速和易出错的链路。
  • 最小缓冲: 一次只传输一个帧,因此发送方或接收方几乎不需要缓冲。

缺点

  • 低效率: 停-等 ARQ 由于等待 ACK 的时间,在高速线路上效率低下,这限制了吞吐量。
  • 有限并发性: 由于它一次传输一个帧,因此无法充分利用可用带宽。

2. 回退 N ARQ

Go-Back-N ARQ 是一种更复杂的 ARQ 协议,它允许发送方在收到确认之前发送许多帧。接收方计算预期的序列号并确认每个帧,直到下一个帧被预期。如果任何帧损坏或丢失,接收方会丢弃所有后续帧,直到损坏或丢失的帧被重新传输。

优点

  • 更高的吞吐量: 提高吞吐量 Go-Back-N ARQ 允许许多帧同时传输,从而提高带宽利用率。
  • 减少开销: 发送的确认次数减少,从而降低了与确认数据包相关的开销。

缺点

  • 复杂的接收方: 实现接收方需要缓冲多个乱序帧的功能可能很困难。
  • 增加延迟: 由于在出现故障时所有后续帧都会被删除,因此恢复丢失的帧可能会有很大的延迟。

3. 选择性重传 ARQ

另一种复杂的 ARQ 协议称为选择性重传 ARQ,它通过允许接收方独立识别正确接收的帧来优于 Go-Back-N。在发生错误时,只会重新发送损坏的帧,而不是所有后续帧。乱序帧会保存在接收方的缓冲区中,直到它们按顺序发送到上层。

优点

  • 有效利用带宽: 选择性重传 ARQ 最大限度地减少了对无错误帧进行不必要重传的需求。
  • 更低的延迟: 错误恢复发生得更快,因为只重新传输损坏或丢失的帧。

缺点

  • 实现挑战: 选择性重传 ARQ 要求发送方和接收方具有更复杂的缓冲和跟踪系统。
  • 增加开销: 每个帧的单独确认增加了控制包的成本。

4. 混合 ARQ

混合 ARQ 将前向纠错 (FEC) 与 ARQ 概念结合使用。在这种方法中,发送方不仅发送接收方可以用来纠正错误而无需重复传输的重复信息,而且还重新传输丢失或损坏的帧。接收方可以使用冗余数据在发生问题时进行纠正。

优点

  • 提高可靠性: 混合 ARQ 可以提供可靠的纠错,从而降低重传的频率。
  • 提高效率: 在高错误条件下,减少重传量可能会更有效。

缺点

  • 增加复杂性: ARQ 和 FEC 的实现可能具有挑战性,并且需要更多的计算能力。
  • 可变延迟: 纠错或重传将影响纠正错误所需的时间。

在计算机网络中,可靠的数据传输至关重要,以确保信息准确无误地传递。为了实现这一点,采用了各种错误控制机制,包括自动重传请求 (ARQ)。ARQ 是一组用于检测和纠正数据传输错误的协议和技术。本文详细解释了计算机网络中 ARQ 的类型,阐明了它们的机制、优点和缺点。

自动重传请求 (ARQ) 是计算机网络中错误控制机制的重要组成部分。停-等、回退 N、选择性重传和混合 ARQ 是 ARQ 协议的主要类型,每种类型都有优点和缺点。ARQ 协议的选择取决于网络条件、错误率和性能要求等因素。通过了解这些 ARQ 协议的特性,网络工程师可以设计和优化针对特定需求的可靠数据传输系统。

ARQ 中的操作类型

自动重传请求 (ARQ) 是计算机网络中用于保证可靠数据传输的基本错误控制技术。ARQ 通过识别传输问题并要求重新传输不正确或丢失的数据包来工作。本文将探讨计算机网络中 ARQ 的内部工作原理,以及其操作模式和对维护数据完整性的好处。

ARQ 基础知识

ARQ 的基础是识别数据包的接收并在发现错误时要求重新传输这些数据包的想法。发送方(发射机)和接收方是此操作的两个基本部分。

发送方: 发送方将数据分成数据包,然后使用序列号将这些数据包传输给接收方以进行数据包识别。

为了跟踪确认,它会保留所有已发送数据包的副本和每个数据包的计时器。

发送方在发送每个数据包时启动计时器。

接收方: 一收到数据包,接收方就会使用校验和和循环冗余校验 (CRC) 等方法检查它们是否存在缺陷。

当数据包成功接收且没有错误时,它会向发送方发送确认 (ACK)。

如果数据包被确定为不正确或丢失,接收方会丢弃该数据包并发送否定确认 (NAK) 或重新传输的特殊请求。

1. 序列化和分组

  • 发送方: 为了传输,发送方将数据分解成更小的数据包。为了在接收方端实现正确的排序,每个数据包都分配了一个不同的序列号。
  • 接收方: 接收方在等待这些数据包到达时会监控它们的序列号。

2. 数据包传输

  • 发送方: 发送方开始一个接一个地将数据包发送给接收方。序列号包含在每个数据包中。
  • 接收方: 接收方始终密切关注新数据包。

3. 错误检测

  • 接收方: 接收方在接收数据包后运行错误检测测试。常见的方法包括奇偶校验位、循环冗余校验 (CRC) 和校验和。

如果数据包没有问题地收到,接收方开始处理该数据包。

4. 肯定确认和否定确认 (ACK 和 NAK)

  • 接收方: 接收方在成功检查数据包的准确性后,会向发送方发送确认 (ACK)。接收到的数据包的序列号包含在 ACK 中。

如果数据包被确定为不正确或丢失,接收方会发送否定确认 (NAK) 或重新传输的特定请求。

5. 重传和超时

  • 发送方: 发送方在传输特定数据包后启动计时器。假设在计时器到期之前收到 ACK,发送方会继续发送后续数据包。

如果在超时窗口内未收到 ACK 或 NAK,发送方会认为数据包在传输过程中丢失或损坏。然后再次发送数据包。

6. 重复数据包处理

  • 接收方: 接收方必须根据数据包的序列号识别重复数据包,因为网络延迟可能导致数据包重复。

7. 调整超时值

  • 发送方: 设置超时值时通常会考虑网络延迟和拥塞。为了提高性能,更高级的 ARQ 方法可能会使用自适应算法来动态更改这些超时值。

8. 拥塞避免和流量控制

为了避免拥塞,ARQ 技术可能具有调节数据包传输速率的特性。这包括密切关注网络状态并根据需要调整数据包传输速率。

9. 管理序列号

  • 发送方和接收方: 为了确保数据包以正确的顺序处理,发送方和接收方都跟踪序列号。这在支持乱序数据包传输的 ARQ 模式(如选择性重传)中至关重要。

10. 数据传输完成

  • 发送方和接收方: 发送方不断发送数据包,直到接收方确认成功接收所有数据。为了重建原始数据,接收方会等待所有数据包以正确的顺序到达。

11. 通信关闭

  • 发送方和接收方: 一旦所有数据成功发送并确认,双方都可以指示通信已结束并切断连接。

为了确保可靠的数据传输,计算机网络中的 ARQ 操作包含许多阶段。为了实现有效和可靠的通信,这些过程包括分组、错误检测、确认、重传、序列号管理和自适应方法。通过利用 ARQ,网络系统即使在存在网络故障和干扰的情况下也能保持数据完整性。

ARQ 的优点

自动重传请求 (ARQ) 是一种用于计算机网络的通信技术,可确保数据准确无误地传递。ARQ 机制通过识别传输问题并要求重新传输有问题的分组来发挥作用。以下是在计算机网络中使用 ARQ 的一些优点:

1. 数据传输可靠性

ARQ 确保数据在整个网络中准确可靠地传输。ARQ 技术通过导致重传直到数据被正确接收来降低数据损坏的可能性。

2. 错误检测

为了定位损坏或丢失的数据包,ARQ 协议使用各种错误检测技术,例如校验和或循环冗余校验 (CRC)。这有助于实时问题检测和重传请求。

3. 有效利用网络资源

ARQ 通过仅关注损坏或丢失的精确数据包来减少不必要的重传。这种效率可以更好地利用网络资源并减少带宽浪费。

4. 对网络情况的适应性

ARQ 能够根据动态网络情况(如信号质量变化或拥塞)改变其行为。ARQ 可以通过根据需要请求重传来保持一致的服务质量水平。

5. 有序交付

ARQ 确保数据包以特定顺序传递。由于网络延迟或拥塞,数据包可能会乱序到达,但 ARQ 会在将其发送到协议栈的更高层之前重新排序它们。

6. 降低延迟

重传会导致一些延迟,但与前向纠错 (FEC) 等替代技术相比,ARQ 的总延迟最小。FEC 添加冗余数据以修复错误而无需请求重传,但是由于需要额外的处理,可能会增加延迟。

7. 简单性

与更复杂的纠错机制相比,ARQ 在概念上更易于创建和管理。许多网络应用程序可能会青睐它的简单性。

8. 可扩展性

ARQ 在从小型本地网络到大型互联网通信的各种网络设计中都能很好地扩展。它不依赖于复杂的路由技术或网络拓扑。

9. 兼容性

ARQ 具有适应性和兼容性,可与各种网络设备配合使用,因为它可以使用不同的数据链路层协议并在硬件或软件中实现。

10. 弹性

ARQ 能够从可能导致瞬态网络故障的短暂中断或网络拥塞中恢复。ARQ 通过请求重传来确保数据传输的完整性。

11. 实时应用

在音频和视频对话等实时应用程序中,保持低延迟和保证数据准确性至关重要,ARQ 很适合。

12. 调试和监控

因为 ARQ 协议可以识别产生错误的精确数据包,所以它们可以更容易地识别和修复网络问题。

总之,自动重传请求 (ARQ) 是计算机网络中用于保证准确无误数据传输的基本且高效的方法。由于其多功能性、有效性和兼容性,它是维护许多网络情况中数据传输完整性的重要工具。

ARQ 的缺点

尽管自动重传请求 (ARQ) 是一种确保计算机网络中可靠数据传输的有用方法,但它也存在显着的缺点和限制。下面列出了在计算机网络中使用 ARQ 的缺点:

1. 增加延迟

ARQ 会导致数据传输延迟。在线游戏或语音/视频通话等需要低延迟的实时应用程序和服务可能会受到影响,因为接收方在发生错误时需要请求重传。

2. 带宽开销

ARQ 需要重新发送数据包,从而占用网络带宽。在高错误率或频繁重传的情况下,这种开销可能很大,并降低整体网络效率。

3. 对高错误率的适用性有限

当错误率异常高或网络条件极其恶劣时,ARQ 可能会失去效率。在“重传风暴”期间,重传请求在网络上堆积,从而加剧了问题。持续的重传可能会导致这种情况。

4. 实时流媒体的复杂性

对于实时流媒体应用程序(如直播视频或 IPTV),ARQ 可能难以成功实现。重传可能会通过干扰数据的实时流而导致缓冲和质量下降。

5. 不自动纠正错误

ARQ 检测错误并请求重传;它不自动修复错误。这意味着如果一个数据包反复接收到错误,它将继续寻求重传,即使不保证纠错。ARQ 可能难以处理这种情况。由于网络故障,有时可能会发送重复数据包,并且由于 ARQ 可能没有工具来区分原始数据包和重复数据包,这可能会导致接收端出现问题。

6. 对高错误率的适用性有限

当错误率异常高或网络条件极其恶劣时,ARQ 可能会失去效率。在“重传风暴”期间,重传请求在网络上堆积,从而加剧了问题。持续的重传可能会导致这种情况。

7. 实时流媒体的复杂性

对于实时流媒体应用程序(如直播视频或 IPTV),ARQ 可能难以成功实现。重传可能会通过干扰数据的实时流而导致缓冲和质量下降。

8. 不自动纠正错误

ARQ 检测错误并请求重传;它不自动修复错误。这意味着如果一个数据包反复接收到错误,它将继续寻求重传,即使不保证纠错。

9. 无前向纠错

ARQ 恢复丢失或错误数据唯一使用的方法是重传。它不使用前向纠错 (FEC),后者无需重传即可修复错误。当存在显着延迟或不稳定的链接时,FEC 可能是更好的选择。

10. 有限的多播和广播支持

ARQ 主要用于点对点通信。将其扩展到多播或广播设置可能具有挑战性,因为针对多个接收者的重传可能会导致可伸缩性和效率问题。

11. 对网络往返时间 (RTT) 的依赖

这项工作的 RTT 会对 ARQ 的成功产生重大影响。对于对延迟敏感的应用程序,较大的 RTT 可能导致错误恢复的等待时间更长。

12. 重复数据包处理

ARQ 可能需要帮助处理这种情况。由于网络故障,有时可能会发送重复数据包,并且由于 ARQ 可能没有工具来区分原始数据包和重复数据包,这可能会导致接收端出现问题。

13. 有限的安全性

ARQ 没有内置的任何安全措施。它专注于错误检测和纠正,而不是解决数据加密、身份验证或防御恶意攻击等安全问题。

14. 在高延迟网络中效率低下

在高传播延迟(例如卫星链路)的网络中,ARQ 可能效率不高,因为与传输数据所需的时间相比,查找错误和请求重传需要很长时间。

虽然 ARQ 是一种确保计算机网络中数据完整性的有用方法,但它存在许多缺点和限制,尤其是在实时流媒体、高错误率或低延迟至关重要的情况下。在决定是否在特定网络环境中采用 ARQ 时,网络设计人员通常需要仔细分析这些缺点并将其与优点进行权衡。