tcp之快速重传与恢复】的更多相关文章

本文为原创,转载请注明:http://www.cnblogs.com/gistao/ Background 写网络程序的都知道,tcp的窗口控制分为慢启动阶段和拥塞避免阶段,重传机制有快速重传/恢复和超时重传.网上关于快速重传的文章很多,但质量参差不齐,这里对它的设计背景和原理总结下. Concept rtt,即网络往返时间. 慢启动过程,指的是请求窗口的变化过程,是指数级的,这变化可不慢吧,这里说它慢是说窗口每次都要从1开始,需要经过好几个rtt才能达到理想的窗口数. Network traf…
一.概述 这篇文章介绍一下TCP从Recovery状态恢复到Open状态的时候cwnd的更新.我们在tcp重传部分的文章中曾经介绍过虚假重传的概念,Linux在探测到虚假重传的时候就会执行拥塞撤销操作.所谓的拥塞撤销是指撤销虚假的快速重传或者RTO超时重传对拥塞窗口的影响.有多种方法可能会触发拥塞撤销如前面介绍的DSACK和FRTO以及后面要介绍的Eifel算法以及本文介绍的SACK关闭场景下的拥塞撤销,本文先介绍一种SACK关闭场景下的拥塞撤销.首先在介绍几个新的linux状态变量 undo_…
在TCP/IP中,快速重传和恢复(fast retransmit and recovery,FRR)是一种拥塞控制算法,它能快速恢复丢失的数据包.没有FRR,如果数据包丢失了,TCP将会使用定时器来要求传输暂停.在暂停的这段时间内,没有新的或复制的数据包被发送.有了FRR,如果接收机接收到一个不按顺序的数据段,它会立即给发送机发送一个重复确认.如果发送机接收到三个重复确认,它会假定确认件指出的数据段丢失了,并立即重传这些丢失的数据段.有了FRR,就不会因为重传时要求的暂停被耽误. 当有单独的数据…
转载自:TCP慢启动.拥塞避免.快速重传.快速回复 转自:http://blog.csdn.net/itmacar/article/details/12278769 感谢博主的辛勤成果! 为了防止网络的拥塞现象,TCP提出了一系列的拥塞控制机制.最初由V. Jacobson在1988年的论文中提出的TCP的拥塞控制由"慢启动(Slow start)"和"拥塞避免(Congestion avoidance)"组成,后来TCP Reno版本中又针对性的加入了"…
不多说,直接上干货! 福利 => 每天都推送 欢迎大家,关注微信扫码并加入我的4个微信公众号:   大数据躺过的坑      Java从入门到架构师      人工智能躺过的坑         Java全栈大联盟        每天都有大量的学习视频资料和精彩技术文章推送... 人生不易,唯有努力.        百家号 :九月哥快讯               快手号:  jiuyuege               什么是拥塞? 当大量的分组进入通信子网,超出了网络的处理能力时,就会引起网络…
TCP提供了最可靠的数据传输,它给发送的每个数据包做顺序化(这看起来非常烦琐),然而,如果TCP没有这样烦琐的操作,那么,可能会造成更多的麻烦.如造成数据包的重传.顺序的颠倒甚至造成数据包的丢失. 那么,TCP具体是通过怎样的方式来保证数据的顺序化传输呢? 主机每次发送数据时,TCP就给每个数据包分配一个序列号并且在一个特定的时间内等待接收主机对分配的这个序列号进行确认,如果发送主机在一个特定时间内没有收到接收主机的确认,则发送主机会重传此数据包.接收主机利用序列号对接收的数据进行确认,以便检测…
当tcp传送一个分组时会设置一个定时器,如果在规定的实际间隔内没有收到ACK分组,那么则重新传输该分组,但是 如果tcp收到三个连续的ACK分组,此时不管是否过超时间隔则重传该分组,具体步骤如下: 1.将慢启动阈值ssthresh设为拥塞窗口(cwnd--可理解为发送数据包大小)的一半 2.对于连续三个重复的ACK报文,cwnd依次加1,重发分组 3.当新的ACK分组再次到来的时候,把拥塞窗口的大小设为慢启动阈值的大小 4.进入拥塞避免算法. 1,2,3个步骤为快速重传机制,为什么快,因为不需要…
一.快速重传介绍 按照TCP协议,RTO超时重传是一个非常重要的事件,当RTO超时的时候,TCP会同时通过两种方式非常谨慎的降低发送数据包的速率,一种是基于拥塞控制削减发送窗口的大小,另外一个是通过指数回退增加每次RTO超时的时间(即karn算法的第二部分).所以RTO超时后有可能会导致网络容量的利用不足. 最开始我们介绍tcp重传的时候就介绍过TCP还有另外一种重传方式--快速重传.快速重传是RFC5681定一个的一个过程.快速重传不依赖定时器的超时,而是依靠ACK确认包来进行重传.使用快速重…
一.虚假重传 在一些情况下,TCP可能会在没有数据丢失的情况下初始化一个重传,这种重传就叫做虚假重传(Spurious retransmission).发生虚假重传的原因可能是包传输中重排序.传输中发生包复制.ACK确认包传输中丢失等等.如果由于链路时延变化或者负载变化等因素导致RTT突然变大等原因,TCP的发送端可能还没收到ACK确认包就已经RTO超时而触发重传,这种重传就叫做虚假超时重传(Spurious retransmission timeouts).虚假超时重传会降低网络性能,其主要由…
一.RACK概述 RACK(Recent ACKnowledgment)是一种新的基于时间的丢包探测算法,RACK的目的是取代传统的基于dupthresh门限的各种快速重传及其变种.前面介绍的各种基于dup ACK的快速重传算法及其变种通过修改dupthresh门限等手段,有些可以迅速的探测到丢包,有些可以精确的探测丢包,但是没有能同时达到迅速和精确两个目标的算法. RACK基本思想:如果发送端收到的确认包中的SACK选项确认收到了一个数据包,那么在这个数据包之前发送的数据包要么是在传输过程中发…