TCP停止等待协议、连续ARQ协议
停止等待协议
所谓停止等待协议就是每发送完一组数据后,等待对方确认并且收到确认后,再发送下一组数据。
可能会发生四种情况:无差错,出现差错,确认丢失和确认迟到
出现差错
当B收到M1时,检测出了差错,就抛弃M1,并什么也不做
A在超过一段时间仍然没有收到确认,就认为数据丢失了,然后会重传一次。这叫超时重传
确认丢失
当A发送M1消息,B收到后,B向A发送了一个M1确认消息,但却在传输过程中丢失。而A并不知道,在超时计时过后,A重传M1消息,B再次收到该消息后采取以下两点措施:
1>、丢弃这个重复的M1消息,不向上层交付。
2>、向A发送确认消息。(不会认为已经发送过了,就不再发送。A能重传,就证明B的确认消息丢失)。
确认迟到
所谓确认迟到,就是B发送的确认消息没有丢失,但是却迟到(过了很长一段时间才到)
A发送M1消息,B收到并发送确认。在超时时间内没有收到确认消息,A重传M1消息,B仍然收到并继续发送确认消息(B收到了2份M1)。此时A收到了B第二次发送的确认消息。接着发送其他数据。过了一会,A收到了B第一次发送的对M1的确认消息(A也收到了2份确认消息)。处理如下:
1>、A收到重复的确认后,直接丢弃。
2>、B收到重复的M1后,也直接丢弃重复的M1。
连续ARQ协议
连续ARQ协议可以大大提高信道利用率
连续ARQ规定,发送方每收到一个确认就将滑动窗口向前(时间增大方向)滑动一格。
接受方采用累积确认的方式:接收方不必每收到一个消息,就发送一个确认。而是在收到几条消息后,对按序到达的最后一条消息发送确认。表示,这个消息之前的所有消息全部收到。