连续 ARQ(Automatic Repeat reQuest,自动重传请求)主要有以下几种方式:
- 回退 N(Go-Back-N ARQ)
- 选择性重传(Selective Repeat ARQ)
1. 回退 N(Go-Back-N ARQ)
工作原理:
- 发送方可以连续发送多个数据帧,而不必等待每个帧的确认。
- 接收方按序接收帧,并按序确认。如果接收到一个错误的帧或未接收到某个帧,则丢弃该帧及其后的所有帧。
- 发送方如果在滑动窗口内未收到某个帧的确认(ACK),则重传该帧及其后续所有帧。
优点:
- 实现较为简单,易于在硬件和软件中实现。
- 能够显著提高链路利用率,因为允许发送多个未确认帧。
缺点:
- 当出现错误时,需重传错误帧及其后续所有帧,带来较高的冗余。
- 在高误码率的环境中,性能较差,因为重传的数据量会很大。
2. 选择性重传(Selective Repeat ARQ)
工作原理:
- 发送方可以连续发送多个数据帧,而不必等待每个帧的确认。
- 接收方按序接收帧,并按序确认。如果收到的帧有误,它会请求发送方仅重传出错的帧。
- 接收方可以对已经正确接收的帧进行缓存,等待未接收帧的到来,然后按序交付给上层。
优点:
- 提高了传输效率,因为只重传出错的帧而不是整个窗口。
- 在高误码率的环境中,性能更优,因为减少了重传的数据量。
缺点:
- 实现复杂,接收方需要能够缓存未按序接收的帧。
- 发送方和接收方都需要维持较多的状态信息,如未确认帧的状态。
总结
- 回退 N:实现简单,但在高误码率环境中,重传开销较大,性能较差。
- 选择性重传:实现复杂,但传输效率高,特别是在高误码率环境中表现更优。
选择具体的ARQ方式时,需要根据具体应用环境和对性能的要求来权衡。