TCP——停等ARQ&连续ARQ

来源:互联网 发布:hp网络打印机怎么连接 编辑:程序博客网 时间:2024/05/21 08:01

              

一、停止等待协议

概念:“停止等待”就是每发送完一个分组就停止发送,等待对方的确认。在收到确认后再发送下一个分组。

1、无差错情

可以看到在a中是正确的传输。

2、出现差错

 

而在b中的时候,因为M1有错,所以B直接丢弃掉了,然后发送方因为一直没有接收到确认,所以它等待一定的时间后,它就会认为发送超时了,进行超时重传。我们可以看到当A收到B对于M1的确认后,才继续发送M2

3、确认丢失和确认迟到

 

在图a中,因为确认丢失,所以过了一段时间,A的时间到了,它就会认为B没有收到,所以选择了超时重传。而在B它其实收到了,它会丢弃这个重复的报文,然后再发送一个确认报文。A收到确认后,就可以发送M2了。

在图b中因为B的确认因为网络的原因,它迟到了,但是在它迟到前,已经到了A超时重传的时间了,它没有收到迟到的确认,所以进行超时重传,而B因为一斤正常接收了M1,所以它会丢弃这个重复的M1.然后再发送一个确认,这时候我们A可以发送M2了,与此同时,我们的A又收到了迟到的M1的确认,但是它收到过一次了,所以它什么也不做。

 

4、信道利用率

   停止等待协议就是简单,但是它也有它的明显的缺点,太浪费时间和资源。我们可以假设分析一下。假定A发送分组需要的时间是TD(等于分组长度除以数据率)。再假定分组正确到达B后,B的处理时间可以不计,同时立即发回确认。假定B发送确认分组需要时间TA。如果A处理确认分组的时间也可以忽略不计,那么A在经过时间(TD+RTT+TA)后就可以发送下一个分组,这里的RTT是往返时间。因为仅仅是在时间TD内才用来传送有用的数据(包括分组的首部),因此信道的利用率U可如下计算:

           U=TD/(TD+RTT+TA)

二、连续ARQ

  这个是TCP的精华所在,我们这里有一个新的概念是滑动窗口协议,我们可以先看一下下图

 

发送方每收到一个确认,就把发送窗口向前滑动一个分组的位置。接收方一般采用累积确认的方式,对按序到达的最后一个分组发送确认。他当然也有自己的优缺点。优点是:容易实现,即时确认丢失也不必重传。但缺点是不能向发送方反映出接收方已经正确收到的所有分组信息。