目录
答:
停止-等待协议
连续ARQ协议
无论是发送方还是接收方,当没有消息进来的时候,它也会处于停止-等待的状态。 只有新的消息进来以后,发送方会接收方才会生成发送出新的消息。(对于发送方来讲这里的消息指的是确认消息,对于接收方来讲这里的消息指的是发送方发送来的消息)
出现的差错:
对于发送方:发送方出现的差错:发送方将数据发送出去之后,发生了丢失。
对于确认方:确认消息在传输过程中发生丢失。
确认消息很久才到达发送方。
处理的方式:超时重传(接收方很久没有收到确认消息,那么就重传该消息)
通过在发送方设置一个定时器,这个定时器被称为:超时定时器。每发送一个消息,都需要设置一个定时器(用来计算一个消息什么时候过期了)。
注意:TCP协议中有4个定时器。
缺点一:停止等待协议是最简单的可靠传输协议(只要消息没正确到达,就会进行超时重传)
缺点二:停止等待协议对信道的利用效率不高(停止-等待的时间过长)
缺点三:单个确认和发送的效率过低。
所以,这里就需要连续ARQ协议了。
实现的是数据的批量的发送和确认
窗口:批量发送的数据的大小
可以向前滑动的窗口:滑动窗口
如图所示,假设发送了前六个报文之后,收到了编号为1和2的确认消息,此时会将窗口向前移动两个位置。接着就会发送编号为7和8的报文,等接收到其它报文的确认消息之后,再将窗口继续向后移动。
只要收到了某个确认消息,表示这个消息之前的消息我全部都收到了。大大减少了确认报文的数量,提高了网络效率。例如,
假设同时发送了编号为1-6的这六个报文,在某一个时刻,发送方接收到了编号为5的这个报文的确认消息。如果是采用累计确认的方法,5的这个确认消息就表示说,1-5的确认消息,发送方都已经收到了,因此就会将窗口向后移动5个位置,此时就可以发送7~11这五个报文了。