调研tcp定时器

来源:互联网 发布:mac能用latex吗 编辑:程序博客网 时间:2024/05/18 00:42

tcp定时器
一、定时器的由来
TCP是提供可靠的传输层,既然传输数据必须确认从另一方收到了数据,但是数据和确认都有可能丢失,那么TCP在发送时设置一个定时器来解决 这个问题,如果定时器溢出时还没有收到确认,就会重传,关键在于超时和重传策略,怎样决定超时的时间间隔和如何确定重传的频率。
二、tcp定时器的分类及介绍
1>重传计时器
2>坚持计时器
3>保活计时器
4>时间等待计时器
**重传计时器
对报文段确认等待的时间,为了控制丢失的报文段或丢弃报文段,当TCP发送报文段的时候,就创建这个报文段的重传定时器,那么现在就会发生两种情况,若在计时器超时之前收到对报文段的确认,就撤销当前的计时器,若还没有收到报文段的确认,定时器超时了,则重传改报文,并把计时器复位。
**坚持计时器
专门为对付零窗口通知而设立的,当发送段收到零窗口的确认时,就启动坚持定时器,当坚持计时器的截止期到时,TCP就会发送一个特殊的报文段,叫做探测报文段,这个报文段只有一个字节的数据,该报文段有序号,但永远都不需要确认,甚至在计算对其它部分的数据进行确认的时候这个报文也是被忽略的,探测报文段提醒接受端TCP,确认已经丢失,必须重传。坚持计时器的截止期设置为重传时间的值,但若没有收到从接收端来的响应,则发送另一个探测报文段,并将坚持计时器的值加倍和并复位,发送端继续发送探测报文段,将坚持计时器的值加倍和复位,知道这个值增大到阈值为止(通常为60秒)。之后,发送端每隔60s就发送一个报文段,直到窗口重新打开为止;
**保活计时器
每当服务器收到客户的信息,就将保活计时器复位,超时通常设置为2小时,如果服务器超过两小时还没有接受到来自客户的信息,就发送探测报文,如果发送了10个探测报文还没有收到响应,则终止连接。
** 时间等待计数器
在连接终止期使用,当TCP关闭连接时,并不认为这个连接就真正关闭了,在时间等待期间,连接还处于一种中间过度状态。这样就可以时重复的fin报文段在到达终点后被丢弃,这个计时器的值通常设置为一格报文段寿命期望值的两倍

原创粉丝点击