TCP 四大定时器:
1、重传定时器:最近又看了几遍《TCP/IP 详解》有些疑问弄清了,现在总结一下。
TCP为每个连接维护一个重传定时器,在发送报文时如果定时器已经使用,则该报文不会计时(不会计算它的超时)。重传时间RTO最基本的就是等于RTT,但一般会进行平滑,比如:
R =previous RTT*i + (1-i)*current RTT,
RTO = R*2。
RTT的测量就是发送报文时启动重传定时器,接到对应ACK时间。如果超时RTO,则使用指数退避算法更新当前的RTO;如果没有超时,接到对应的ACK,则使用当前的RTT更新RTO。
慢启动和拥塞避免算法:有点很重要,分组丢失有两个表现,一是重传定时器超时(容易),一是接受到重复的确认报文(这样可以理解为什么只有一个重传定时器)。其他的只要看了慢启动和拥塞避免的那副图就ok了。
快速重传算法:如果一连收到3个或是以上的重复ACK,这就表明很有可能报文丢失了,于是重传丢失的数据报文,无需等待重传定时器的溢出。这是因为重新排序的报文段会产生1-2个重复的ACK。
快速恢复算法:这个没有细看,感觉比较复杂,有各种不同算法。
http://bbs.csdn.net/topics/360090140
http://baike.baidu.com/view/4330519.htm
http://blog.csdn.net/zhangskd/article/details/7174682
2. TCP 坚持定时器
TCP坚持定时器没有什么难以理解的,看看《TCP详解》就好了。自己简单讲给自己听。
http://www.cnblogs.com/zhaoyl/archive/2012/09/20/2695799.html