,单击此处编辑母版标题样式,单击此处编辑母版文本样式,第二级,第三级,第四级,第五级,欢迎各位专家各位评委莅临指导,5.4,可靠传输的工作原理,基本内容,停止等待协议,连续,ARQ,协议,选择,ARQ,协议。,重点掌握,停止等待协议,连续,ARQ,协议,2,可靠传输问题的提出,3,可靠传输的实现,1,设计理想的传输条件,5,4,3,2,1,5,4,3,2,1,主机,1,AP,2,AP,1,主机,2,应 用 程 序 数 据,应用层首部,H,5,10100110100101,比 特 流,110101110101,注意观察加入或剥去首部(尾部)的层次,应 用 程 序 数 据,H,5,应 用 程 序 数 据,H,4,H,5,应 用 程 序 数 据,H,3,H,4,H,5,应 用 程 序 数 据,H,4,运输层首部,H,3,网络层首部,H,2,链路层,首部,T,2,链路层,尾部,主机,1,向主机,2,发送数据,5,4,3,2,1,5,4,3,2,1,主机,1,AP,2,AP,1,主机,2,10100110100101,比 特 流,110101110101,计算机,2,的物理层收到比特流后,交给数据链路层,H,2,T,2,H,3,H,4,H,5,应 用 程 序 数 据,主机,1,向主机,2,发送数据,H,3,H,4,H,5,应 用 程 序 数 据,5,4,3,2,1,5,4,3,2,1,主机,1,AP,2,AP,1,主机,2,数据链路层剥去帧首部和帧尾部后,把帧的数据部分交给网络层,H,2,T,2,H,3,H,4,H,5,应 用 程 序 数 据,主机,1,向主机,2,发送数据,H,4,H,5,应 用 程 序 数 据,H,3,H,4,H,5,应 用 程 序 数 据,5,4,3,2,1,5,4,3,2,1,主机,1,AP,2,AP,1,主机,2,网络层剥去分组首部后,把分组的数据部分交给运输层,主机,1,向主机,2,发送数据,H,5,应 用 程 序 数 据,H,4,H,5,应 用 程 序 数 据,5,4,3,2,1,5,4,3,2,1,主机,1,AP,2,AP,1,主机,2,运输层剥去报文首部后,把报文的数据部分交给应用层,主机,1,向主机,2,发送数据,应 用 程 序 数 据,H,5,应 用 程 序 数 据,5,4,3,2,1,5,4,3,2,1,主机,1,AP,2,AP,1,主机,2,应用层剥去应用层,PDU,首部后,把应用程序数据交给应用进程,主机,1,向主机,2,发送数据,5,4,3,2,1,5,4,3,2,1,主机,1,AP,2,AP,1,主机,2,我收到了,AP,1,发来的,应用程序数据!,主机,1,向主机,2,发送数据,主,机,1,缓存,主,机,2,AP,2,AP,1,缓存,高层,物理层,数据链路,帧,帧,物理链路,简化模型,在理想的条件下,不需要任何措施就能够保证数据的正确传输。,理想的传输条件,:,1,2,不需要流量控制,不需要差错控制,传输信道不产生差错,缓存区无穷大:无需流量控制,?发送方:,以多快的速度发送数据帧,即每帧之间相隔多长时间?如何确认对方是否收到数据?,?接收方:,是否接收到正确的数据帧?如何告诉发送方?能及时处理接收到的数据帧吗?,会出错吗?会丢失数据帧吗?,?传输过程:,比特差错,帧丢失,帧重复,帧失序,现实中传输数据遇到的问题,具有简单流量控制的协议,协调、控制接收方、发送方的速度。,链路是理想化的,所传输的数据不会出错也不会丢失。,DATA0,ACK,ACK,ACK,DATA2,DATA1,等待;,将收到的数据帧上交主机;,发送应答信息;,转到第一步,发出一帧;,等待;,直到收到,ACK,才发送下一帧,结论:,只需要一个数据帧的缓存区就可以保证无溢出,。,假设,协议思想,协议算法,停止等待,ARQ,协议,(,1,)接近实际情形的假设,:,信道不理想,传输的数据可能会出错,可能会丢失。,双方的速度不一致,需要对发送方进行流量控制。,DATA0,ACK,ACK,ACK,DATA2,DATA1,a),正常情况,送主机,A,B,送主机,送主机,2,1,出错,b),数据帧出错,DATA0,ACK,ACK,DATA1,DATA1,A,B,重传,送主机,送主机,DATA0,ACK,ACK,DATA1,DATA1,丢失,c),数据帧丢失,送主机,送主机,A,B,DATA0,ACK,ACK,ACK,DATA1,DATA1,丢失,d),确认帧丢失,送主机,丢弃,送主机,A,B,e),确认迟到,A,B,t,t,DATA0,DATA0,ACK,DATA1,送主机,丢弃,在停止等待协议中,如果收到重复的数据帧不予理睬(即悄悄的丢弃它而其他什么也不做)是否可行?为什么?,思考,情况,4,5,:,数据帧正确,但确认帧,丢失或迟到,,,超时重发后,该数据帧在接收方收到,两次:重复帧,解决方案:,数据帧和确认帧,都带上编号,(,2,)停止等待协议小结,情况,1,:,正常,情况,2,3,:,数据帧,出错,丢失,导致死锁,解决方案:,超时重发,注意,在发送完一个数据帧后,必须暂时保留已发送的数据帧的副本。,超时计时器的重传时间应当比数据传输的平均往返时间更长一些。,数据帧和确认帧都必须进行编号。,通信双方以,半双工,方式进行通信,控制简单,易于实现。,传输效率低。,停,等协议的特点,?发送方:,以多快的速度发送数据帧,即每帧之间相隔多长时间?如何确认对方是否收到数据?,?接收方:,是否接收到正确的数据帧?如何告诉发送方?能及时处理接收到的数据帧吗?,会出错吗?会丢失数据帧吗?,?传输过程:,现实中传输数据遇到问题的解决,可靠通信的实现,使用上述的,确认,和,重传,机制,我们就可以在不可靠的传输网络上实现可靠的通信。,这种可靠传输协议常称为,自动重传请求,ARQ,(Automatic Repeat Request),。,ARQ,表明重传的请求是,自动,进行的。接收方不需要请求发送方重传某个出错的分组。,信道利用率,U,T,D,RTT,A,T,D,+RTT+,T,A,B,数据帧,确认,t,t,数据帧,确认,信道利用率,U,假定有,1200km,的信道的往返时间是,RTT=20ms,。数据帧长度是,1200bit,,发送速率是,1Mb/s,,若忽略处理时间和,T,A,信道的利用率是多少?,结论:,信道在大多数时间是空闲的,?问题提出,信道利用率提高?,连续,ARQ,协议,提示,停止等待,ARQ,协议的信道利用率不高,。,解决思路,允许发送方不等确认帧返回就连续发送多个数据帧。,连续,ARQ,协议的基本原理,允许发送方可以,连续发送多个数据帧,。,接收方只,按序,接收数据帧,不按序号到来的帧被,丢弃,。,确认帧中包含着,期望下次,收到的帧的序号。,在发送方发送完一帧后都要设置该帧的超时计时器。,连续,ARQ,协议的工作方式,发送端,接收端,ACK2,丢弃,重传,0,1,2,3,4,5,2,3,4,5,6,0,1,E,3,4,5,2,3,4,5,6,ACK6,接收方只能,按顺序,接收帧。,接收方一般采用,累积确认,的方式。,确认帧中包含着下次,期望,收到的帧的序号。,当某一帧出错时,接收方将丢弃,出错帧及其后的帧,,等待发方重传出错帧及其后的帧。,连续,ARQ,协议的特点,导致某些已正确接收的帧的重传,因此降低了发送效率。,连续,ARQ,协议的优缺点,优点,:,缺点:,连续发送提高了信道利用率。,将已正确传送到接收方的帧再重传一遍,显然是一种浪费,。,?,问题提出,解决办法:,为进一步提高信道的利用率,可设法只重传出现差错的数据帧或者是计时器超时的数据帧。,选择重传,ARQ,协议,选择重传,ARQ,原理示意图,ACK6,重传,0,1,2,3,4,5,2,6,7,8,9,0,1,E,3,4,5,2,6,7,8,9,发送端,接收端,丢弃,ACK2,选择重传,ARQ,协议的特点,可让发送方重传有错误的数据帧。,要求接收方要有足够大的缓存区空间。,本,节,小,结,可靠传输问题的提出,使用可靠的传输协议,停止等待,连续,ARQ,选择,ARQ,理想的传输条件,假定在运输层使用停止等待协议。发送方在发送报文段,M0,后在设定的时间内未收到确认,于是重传,M0,,但,M0,又迟迟不能到达接收方。不久,发送方收到了迟到的对,M0,的确认,于是发送下一个报文段,M1,,不久就收到了对,M1,的确认。接着发送方发送新的报文段,M0,,但这个新的,M0,在传送过程中丢失了。正巧,一开始就滞留在网络中的,M0,现在到达接收方。接收方无法分辨,M0,是旧的。于是收下,M0,,并发送确认。显然,接收方后来收到的,M0,是重复的,协议失败了。试画出双方交换报文段的过程。,练习,谢谢大家!,