网络管理基本知识:TCP的四种定时器
TCP 是提供可靠的传输层,它使用的方法之一就是确认从另一端收到的数据。但是数据和确认都可能会丢失。TCP 通过在发送时设置一个定时器来解决这个问题。如果当定时器溢出时还没收到确认,它就会重传该数据。关键在于超时和重传策略,即怎样决定超时的时间间隔和如何确定重传的频率。
对于每个连接,TCP 管理着四个不同的定时器:重传定时器、坚持定时器、保活定时器 以及 2MSL 定时器。
重传定时器
为了防止丢失数据报文段或确认报文段,当 TCP 发送报文段时,启动了特定报文段的重传计时器,若在计时器超时之前收到对报文段的确认,则撤销计时器。若收到特定报文段的确认之前计时器已经超时,则重传该报文,并把计时器复位。这里最重要的是超时的时间计算,有关该时间的请查阅具体的算法,这里不再进行记录。
坚持定时器
坚持定时器主要是解决零窗口大小通知可能导致的死锁问题。刚开始接收端向发送端发送了一个零窗口报文段。在不久之后,如果接收端的缓存区有一定的空间可以接收数据,此时接收端就会向发送端发送了一个非零窗口大小的报文段(即窗口更新),但是这个非零窗口大小的报文段在传输过程中丢失,导致发送端无法接收到该非零窗口大小的报文段。因此,发送端就会一直处于等待非零窗口大小的报文端通知,由于接收端已经发送了非零窗口大小的报文段,而且并不知道该报文段在传输过程中丢失,则接收端会一直处于等待接收数据状态,如果没有任何措施的话,这个死锁的局面会一直延续下去。
为了解决上面这个问题,TCP 为每一个连接设有一个坚持定时器(也叫持续计数器)。当发送端收到零窗口的确认时,就启动坚持计时器,当坚持计时器截止期到时,发送端就发送一个特殊的报文段,叫探测报文段,这个报文段只有一个字节的数据。探测报文段有序号,但序号永远不需要确认,甚至在计算对其他部分数据的确认时这个序号也被忽略。探测报文段提醒接收端,确认已丢失,必须重传。
坚持计时器的截止期设置为重传时间的值,但若没有收到来自接收端的响应,则发送另一个探测报文段,并将坚持计时器的值加倍和并复位,发送端继续发送探测报文段,将坚持计时器的值加倍和复位,直到这个值增大到阈值为止(通常为 60 秒)。在此之后,发送端每隔 60s 就发送一个报文段,直到窗口重新打开为止。
坚持定时器的原理:当 TCP 服务器收到了客户端的 0 滑动窗口报文时,启动一个定时器来计时,并在定时器溢出的时向客户端查询窗口是否已经增大,如果得到非零的窗口就重新开始发送数据,如果得到零窗口就再开一个新的定时器准备下一次查询。
保活定时器
保活定时器是为了应对 TCP 连接双方出现长时间的没有数据传输的情况。如果客户端与服务器建立了 TCP 连接之后,客户端由于某种原因导致主机故障,则服务器就不能收到来自客户端的数据,而服务器不可能一直处于等待状态,保活定时器就是用来解决这个问题的。服务器每收到一次客户端的数据,就重新设置保活定时器,通常为 2 小时,如果 2 小时没有收到客户端的数据,服务端就发送一个探测报文,以后每隔75秒发送一次,如果连续发送10次探测报文段后仍没有收到客户端的响应,服务器就认为客户端出现了故障,就可以终止这个连接。
2MSL 定时器
2MSL 定时器主要是解决以下两种情况:
TIME_WA上网行为 确保有足够的时间让对端收到了ACK,如果被动关闭的那方没有收到 ACK,就会触发被动端重发 FIN。因为最后一次确认应答 ACK 报文段很有可能丢失,因而使被动关闭方处于在LIST_ACK 状态的,此时被动关闭方会重发这个 FIN+ACK 报文段,在这等待的 2MSL 时间内主动关闭方重新收到这个被动关闭方重发的 FIN+ACK 报文段,因此,主动关闭方会重新发送确认应答信息,从而重新启动 2MSL 计时器,直到通信双方都进入 CLOSED 状态。如果主动关闭方在 TIME_WA上网行为 状态不等待一段时间就直接释放连接并进入 CLOSED 状态,那么主动关闭方无法收到来自被动关闭方重发的 FIN+ACK 报文段,也就不会再发送一次确认 ACK 报文段,因此被动关闭方就无法正常进入CLOSED 状态。
有足够的时间让这个连接不会跟后面的连接混在一起。防止已失效的请求连接出现在本连接中。在连接处于 2MSL 等待时,任何迟到的报文段将被丢弃,因为处于 2MSL等待的、由该插口(插口是IP和端口对的意思,socket)定义的连接在这段时间内将不能被再用,这样就可以使下一个新的连接中不会出现这种旧的连接之前延迟的报文段。
【推荐阅读】
◆上网行为运维管理专区
◆上网行为运维一体化管理的内涵如何把握?
◆上网行为运维管理的七大内容和四个技巧
◆部署全移动网络环境 提升企业移动管理价值
◆网管软件专区
本文来自互联网,仅供参考- 1网络管理员知识:服务器机房维护与管理详谈
- 2IT运维管理如何迎接云时代的到来?
- 3用链路层发现协议管理分散设备
- 4宽带路由器死机的四大原因
- 5大客户专线环境下传统设备网管的局限和问题
- 6IT运维管理经验分享:如何应对网站备案被注销
- 7调查:企业走向IaaS之路坎坷
- 8企业网络管理技巧:五步管好局域网带宽管理
- 9徐州市公安局IT运维管理“不做事后诸葛亮”
- 10IT运维管理关键技术点解剖
- 11网络管理技术的应用分析
- 122015年网络市场展望 无线和统一通信被看好
- 13网管员经验分享:教你如何防止自己的IP泄漏
- 14网络运维管理的好帮手:IIS日志
- 15上网行为管理系统的解决之道
- 16IT运维管理的七大内容和四个技巧
- 172013年预测:大数据带来的五大挑战
- 18云网络如何应对云计算未来?
- 19综合布线系统线缆如何挑选
- 20你知道如何节约存储成本吗?
- 21工业以太网布线与故障排除经验
- 22网络管理技巧七则
- 23IT运维管理经验:有关ARP病毒问题的处理汇总
- 24IT运维管理经验:VLAN的配置管理与维护
- 25软交换的七大特点和四大功能
- 26网管必备技巧:如何跟踪IP地址
- 27移动时代企业应用带宽如何管理
- 28未来数据中心发展的四个关键点
- 29网管软件选择四大要素
- 30IT运维管理的发展趋势之自动化运维