TCP/IP 之TCP协议(6):4种计时器
来源:互联网 发布:c语言的应用 编辑:程序博客网 时间:2024/05/29 19:42
1、大多数TCP实现使用至少4种计时器:重传,2MSL,持久,保活
2、2MSL计时器用于连接终止时,原因见:TCP协议的状态和连接
3、保活计时器(keepalive timer)用于防止连接出现长时间的空闲;每当服务器收到客户消息就把该计时器复位,如果超过时间还没有收到消息,就发送探测报文段,定时的发N个,如果还没有收到响应,就认为是客户除了故障,终止连接
4、持久计时器(persistence timer),用于对付0窗口而引起的死锁。
当发端收到窗口为0的消息,开启该计时器,到了一定时间,发字节为一的报文段去试探(试探报文段只有一个字节,且无需确认),如果没有响应,则再发,同时将该计时器加倍和复位。到这个值到达上限为止(一般是1分钟),然后就每隔这个上限发一次报文到窗口重新打开。
5、重传计时器:
(1)、重传的两种情况,当TCP发送一个报文段时,创建这个报文段的重传计时器。重传超时(RTO)
a、如果在这个时间之前,收到此报文的ACK,则撤销此计时器
b、如果时间到,将计时器复位,并重传报文
(2)、RTT(往返时间)的测量,用RTT(M)表示测量的RTT值,注意的是,如果测量已经开始,在此测量未结束之时,不能进行另一个测量;在计算新的RTO时候不用考虑重传的RTT
(2)、平滑RTT(S)与偏差RTT(D),使用前后的测量值加权的结果,计算方法如下(多数实现中,a取1/8,b取1/4):
第一次测量后:RTT(S) = RTT(M), RTT(D) = RTT(M)/2;
以后每次测量后:RTT(S) = (1 - a) * RTT(S) + a * RTT(M)
RTT(D)= (1 - b) * RTT(D) + b * abs( RTT(S) - RTT(M) );
(3)、重传超时(RTO)的计算:
最初:RTO = 初始值
每次测量后:RTO = RTT(S) + 4 * RTT(D);
(4)、发生重传时,就将RTO加倍,RTO *= 2; 这个叫做指数退避,知道一个上限为止。
2、2MSL计时器用于连接终止时,原因见:TCP协议的状态和连接
3、保活计时器(keepalive timer)用于防止连接出现长时间的空闲;每当服务器收到客户消息就把该计时器复位,如果超过时间还没有收到消息,就发送探测报文段,定时的发N个,如果还没有收到响应,就认为是客户除了故障,终止连接
4、持久计时器(persistence timer),用于对付0窗口而引起的死锁。
当发端收到窗口为0的消息,开启该计时器,到了一定时间,发字节为一的报文段去试探(试探报文段只有一个字节,且无需确认),如果没有响应,则再发,同时将该计时器加倍和复位。到这个值到达上限为止(一般是1分钟),然后就每隔这个上限发一次报文到窗口重新打开。
5、重传计时器:
(1)、重传的两种情况,当TCP发送一个报文段时,创建这个报文段的重传计时器。重传超时(RTO)
a、如果在这个时间之前,收到此报文的ACK,则撤销此计时器
b、如果时间到,将计时器复位,并重传报文
(2)、RTT(往返时间)的测量,用RTT(M)表示测量的RTT值,注意的是,如果测量已经开始,在此测量未结束之时,不能进行另一个测量;在计算新的RTO时候不用考虑重传的RTT
(2)、平滑RTT(S)与偏差RTT(D),使用前后的测量值加权的结果,计算方法如下(多数实现中,a取1/8,b取1/4):
第一次测量后:RTT(S) = RTT(M), RTT(D) = RTT(M)/2;
以后每次测量后:RTT(S) = (1 - a) * RTT(S) + a * RTT(M)
RTT(D)= (1 - b) * RTT(D) + b * abs( RTT(S) - RTT(M) );
(3)、重传超时(RTO)的计算:
最初:RTO = 初始值
每次测量后:RTO = RTT(S) + 4 * RTT(D);
(4)、发生重传时,就将RTO加倍,RTO *= 2; 这个叫做指数退避,知道一个上限为止。
- TCP/IP 之TCP协议(6):4种计时器
- TCP协议的4种计时器
- TCP/IP协议之TCP
- TCP/IP协议栈 之 TCP协议
- TCP/IP之IP协议
- 网络协议系列之九:TCP计时器
- TCP/IP 计时器
- TCP协议中的计时器
- TCP/IP 之TCP协议(4):差错控制
- TCP/IP 之TCP协议(4):差错控制
- 【TCP/IP】TCP协议
- TCP/IP协议之IP协议详解
- TCP/IP协议栈 之 IP协议
- TCP/IP协议之IP协议
- tcp/ip协议 之二
- TCP/IP 协议之 DNS
- TCP/IP 协议之 Telnet
- TCP/IP 之FTP协议
- //一个计算 “100+40-10+26=”的代码
- 常用正则表达式收藏
- ISO9000与ISO14000标准的不同点
- ISA2006 SP1防火墙客户端使用的一个心得
- mysql 双机热备份 master-master~
- TCP/IP 之TCP协议(6):4种计时器
- 关于html:select
- 表达式计算器的核心代码
- Date2String & String2Date
- SQLite3 与 NHibernate 在 .NET 程序中使用
- Berkeley DB——Store Structure 如何存储结构体
- 转:SAP WEB Service
- CIO的疑虑:信息化项目对企业有用吗?
- 双机备份,救了客户的命.