【探讨】linux下的tcp协议栈超时重传机制

本文深入探讨了TCP协议在网络连接异常断开后,如何处理剩余数据及资源回收的过程。通过实验结果分析,揭示了重传次数、时间间隔与断开时间的关系,并解析了这一机制背后的原理。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

TCP协议有个超时重传机制,想必大家都比较熟悉。TCP协议是一种传输可靠的协议,因此这个机制是必不可少的。那么今天要探讨的是在发送队列还有数据的情况下,网络连接异常断开后,协议栈是到底是怎样来处理这些数据的,资源又是怎样被回收的呢?

我这里先给出几个测试的结果:

1、修改linux系统下的tcp_retries2为1,当socket发送队列有一定数据时,突然切断网线,造成异常断链的场景,此时,大约过了1秒,用netstat观察established的连接消失;

2、继续把该参数修改为15,重复上面的实验,发现大约过了15分钟后,established的连接才断开;

3、把参数再次修改为5,大约过了7秒,连接消失

 

思考:TCP的超时后,重传的次数和重传的时间间隔是影响连接断开的主要参数。但是,从上面的实验数据来看,似乎没有什么规律。查阅linux帮助文档,发现这个重传的时间间隔与RTO有关,而这个参数又是协议栈通过检测网络状况而实时改变的。

 

那么到底这个时间是怎么算出来的呢,欢迎各位专家发表自己的看法!

转载于:https://www.cnblogs.com/ixxonline/archive/2011/09/10/2173292.html

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值