协议栈 栈close 处理流程

msl 时间  2分钟 30s 60 1


keeplive 2个小时发送一次包 


超时重传:


http://blog.csdn.net/isthefaithcounts/article/details/9879453


超时重传时间:



tcp_done:


if (!sock_flag(sk, SOCK_DEAD))

sk->sk_state_change(sk);//wakeup


客户TCP持续重传数据分节,试图从服务器上接受一个ACK。(源自Berkeley的实现重传该数据分节12次,共等待约9分钟才放弃重传。


read 返回一个错误码,代码阅读



laykon:

超时重传时,对端没有重启,返回ETIMEOUT , 如果重启,返回ECONNRESET 


我们保留了tcpdump输出的时间戳,以便推理TCP的超时重传策略。观察TCP报文段6~11被发送的时间间隔,它们分别为0.2s、0.4s、0.8s、1.6s和3.2s。由此可见,TCP一共执行5次重传,每次重传超时时间都增加一倍(因此,和TCP超时重连的策略相似)。在5次重传均失败的情况下,底层的IP和ARP开始接管,直到telnet客户端放弃连接为止。

Linux有两个重要的内核参数与TCP超时重传相关:/proc/sys/net/ipv4/tcp_retries1和/proc/sys/net/ipv4/tcp_retries2。前者指定在底层IP接管之前TCP最少执行的重传次数,默认值是3。后者指定连接放弃前TCP最多可以执行的重传次数,默认值是15(一般对应13~30min)。在我们的实例中,TCP超时重传发生了5次,连接坚持的时间是15min(可以用date命令来测量)。

虽然超时会导致TCP报文段重传,但TCP报文段的重传可以发生在超时之前,即快速重传,这将在下一节中讨论。


tcp 超时重传, 每次超时重传时间加倍。

http://book.2cto.com/201306/25422.html


http://blog.csdn.net/zhangskd/article/details/35281345

例子程序:

http://www.cnblogs.com/yuxingfirst/archive/2013/07/03/3170333.html

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值