ARQ协议:⾃动重传请求,通过使⽤确认和超时机制,在不可靠服务上实现可靠传输。
如果发送⽅在发送后⼀段时间之内没有收到确认帧,会重新发送。
ARQ包括停⽌等待ARQ协议和连续ARQ协议。
停⽌等待ARQ协议
为了实现可靠传输,每发完⼀个分组就停⽌发送,等待对⽅确认(回复ACK)。如果过了⼀段时间(超时时间后),还是没有收到 ACK 确认,则重新发送,直到收到确认后再发下⼀个分组;
若收到重复分组,就丢弃,但同时还要发送确认;
优点:简单
缺点:信道利⽤率低,等待时间⻓
⽆差错情况:
发送⽅发送分组,接收⽅在规定时间内收到,并且回复确认.发送⽅再次发送。
出现差错情况(超时重传):
如果过了⼀段时间(超时时间后),还是没有收到 ACK 确认,则重新发送,直到收到确认后再发下⼀个分组。
若收到重复分组,就丢弃,但同时还要发送确认;
确认丢失和确认迟到
确认丢失:确认消息在传输过程丢失,超时后发送方重新发送消息。
处理:接送方丢弃重复分组,并发送确认。
如当A发送M1消息,B收到后,B向A发送了⼀个M1确认消息,但在传输过程中丢失。⽽A不知道,在超时计时过后,A重传M1消息,B再次收到该消息。
确认迟到 :确认消息在传输过程中迟到,发送方重新发送消息,后来又收到迟到的确认。
处理:A(发送方)重新发送消息,
B(接受方)丢弃重复消息,并发送确认。
A丢弃重复确认。
如:A发送M1消息,B收到并发送确认,但确认消息传输过程中延迟,A在超时内没有收到确认消息,于是重传M1消息,B仍然收到并继续发送确认消息(B收到了2份M1)。此时A收到了B第⼆次发送的确认消息。接着发送其他数据。过了⼀会,A收到了B第⼀次发送的对M1的确认消息(A也收到了2份确认消息)。
连续ARQ协议
提⾼信道利⽤率,发送⽅维持⼀个发送窗⼝,发送窗⼝内的分组可以连续发送,无须等待对⽅确认。接收⽅采⽤累计确认,对按序到达的最后⼀个分组发送确认,表明到这个分组为⽌的所有分组都已正确收到。
优点: 信道利⽤率⾼,易实现,即使确认丢失,也不必重传。
缺点: 若发送窗口内某一分组失败,需要将后面的所有分组重新发送。
如:发送⽅发送了5条消息,**丢失(第3条),则接收⽅只能对前两个发送确认。发送⽅要把后三个全部重传。**这也叫 Go-Back-N(回退 N),表示需要退回来重传已经发送过的N 个消息。