据我了解,ARQ是一种错误检查方法,我的教科书试图将其解释为:
ARQ 使用确认(接收者发送的消息,表明数据已正确接收)和超时。如果在超时发生之前没有将确认发送回发件人,则会自动重新发送消息。
大胆的部分是什么难倒我:发送方如何确定数据是否已正确接收,如果可以这样做,为什么还要打扰 ARQ,因为发送方已经知道数据是否已正确传输?
注意:请尽量用通俗的语言解释这一点。
据我了解,ARQ是一种错误检查方法,我的教科书试图将其解释为:
ARQ 使用确认(接收者发送的消息,表明数据已正确接收)和超时。如果在超时发生之前没有将确认发送回发件人,则会自动重新发送消息。
大胆的部分是什么难倒我:发送方如何确定数据是否已正确接收,如果可以这样做,为什么还要打扰 ARQ,因为发送方已经知道数据是否已正确传输?
注意:请尽量用通俗的语言解释这一点。
接收方向发送方发送一条消息(称为确认),上面写着“我已正确接收数据”。如果发送方收到此消息,则发送方可以确定接收方已收到数据。
相反的当然不是真的。如果没有确认,数据可能已经收到,但发送方无法知道,所以它重新传输数据以防万一。
为什么还要打扰 ARQ,因为发送方已经知道数据是否已正确传输?
因为数据可能会在传输过程中损坏(例如嘈杂的电话线或无线电干扰)。仅仅因为它被正确传输并不意味着它被正确接收。
通常,接收器会验证每个帧中包含的某种校验和,如果不匹配,则它知道数据已损坏并请求重复。
ARQ 和 FEC 的区别在于校验和弱于纠错码;它提供了足够的额外数据来检测高概率的错误,但不足以纠正错误——获得正确帧的唯一方法是让发送者重新发送它(希望它第二次完好无损地到达,否则它将不得不重新发送)。ARQ 仅在通道是双向的情况下才可能。如果错误率相当低(因此大多数帧不必重新发送),那么 ARQ 可能比 FEC 更有效。