linux超时时间设置(linux超时时间)

linux socket默认超时时间?

举例: s=socket(); 设置s为non-blocking; connect(s,..); FD_SET…; rc = select(…, 10s); if (rc == 0) 表示10s超时了。 这个超时的意思是:10s之内,select中所有socket的事件均未产生(如果至少有一个产生,则rc大于0) 注意:这个10s跟connect本身的超时机制完全无关,前者的设置不影响后者。

10s后select的返回,表明10s内connect还没成功,connect可能还在按自己的超时机制(例如慢启动)尝试重连(当然它最终也有个超时)。

至于connect本身的超时是否可以设置,可能各系统不一样。 顺便提醒:connect的socket必须是non-blocking类型,否则,connect会阻塞,也就没必要用select来检测是否连接成功。

另外,那个s要注册到write类型的fd中,即select的第3个参数中。

其他listen,recv什么的,完全类似(但listen,recv本身没有什么超时概念)。

只不过listen的和recv的socket,要注册到read的fd中。

如何修改linux tcp established老化时间?

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

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

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

/proc/sys/net/ipv4/tcp_retries2

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

linux看门狗超时系统不断重启?

那是你的内核有问题。

换个版本把。如果是你自己裁剪的内核,看看是不是没有喂狗。或者粗暴点直接禁用看门狗。

Published by

风君子

独自遨游何稽首 揭天掀地慰生平

发表回复

您的电子邮箱地址不会被公开。 必填项已用 * 标注