ARQ(自动重复请求)究竟是如何工作的?

网络工程 数据
2021-07-24 16:26:06

据我了解,ARQ是一种错误检查方法,我的教科书试图将其解释为:

ARQ 使用确认(接收者发送的消息,表明数据已正确接收)和超时如果在超时发生之前没有将确认发送回发件人,则会自动重新发送消息。

大胆的部分是什么难倒我:发送方如何确定数据是否已正确接收,如果可以这样做,为什么还要打扰 ARQ,因为发送方已经知道数据是否已正确传输?


注意:请尽量用通俗的语言解释这一点。

2个回答

接收方向发送方发送一条消息(称为确认),上面写着“我已正确接收数据”。如果发送方收到此消息,则发送方可以确定接收方已收到数据。

相反的当然不是真的。如果没有确认,数据可能已经收到,但发送方无法知道,所以它重新传输数据以防万一。

为什么还要打扰 ARQ,因为发送方已经知道数据是否已正确传输?

因为数据可能会在传输过程中损坏(例如嘈杂的电话线或无线电干扰)。仅仅因为它被正确传输并不意味着它被正确接收

通常,接收器会验证每个帧中包含的某种校验和,如果不匹配,则它知道数据已损坏并请求重复。

ARQ 和 FEC 的区别在于校验和弱于纠错码;它提供了足够的额外数据来检测高概率的错误,但不足以纠正错误——获得正确帧的唯一方法是让发送者重新发送它(希望它第二次完好无损地到达,否则它将不得不重新发送)。ARQ 仅在通道是双向的情况下才可能。如果错误率相当低(因此大多数帧不必重新发送),那么 ARQ 可能比 FEC 更有效。