求助setsockopt()关于KEEPALIVE属性时间参数的修改

软件和网站开发以及相关技术探讨
回复
weihua2008
帖子: 448
注册时间: 2008-07-10 15:08

求助setsockopt()关于KEEPALIVE属性时间参数的修改

#1

帖子 weihua2008 » 2008-09-01 16:40

setsockopt() 函数的KEEPALIVE属性是间期探测连接是否仍旧存在的重要机制,但是它也有缺陷,因为给套接字设置保持存活(keepalive)选项后,在两个小时内在此端口的任一方都没有数据交换,TCP才自动给对方发一个保持存活探测分节(keepalive probe),这是一个对方必须响应的TCP分节,TCP在发出第一个探测分节11分钟15秒后仍然无响应就放弃,在
实际应用中,两个小时的等待显然是时间太长,
经一个哥们介绍我在 /proc/sys/net下找到了,关于keepalive所涉及到的三个时间属性文件,
tcp_keepalive_intvl,
tcp_keepalive_probes,
tcp_keepalive_time.
用GVim Text Editor 打开可以看到里面的东西但是不能该,该文件是只读文件,
我又用vim在root用户登入下打开还是不能修改里面的东东,

求各路神仙帮忙,是我 找到的文件不 对,还是设置方法上出现了问题,望不吝赐教!
weihua2008
帖子: 448
注册时间: 2008-07-10 15:08

补充

#2

帖子 weihua2008 » 2008-09-01 17:02

不是在 /proc/sys/net下
而是在 /proc/sys/net/ipv4下
picktracy
帖子: 9
注册时间: 2008-09-05 21:42

#3

帖子 picktracy » 2008-09-05 22:19

sysfs下某些内容可改,某些不可以,表明kernel不允许,即“朕不给你不能抢”。

重新编译kernel修改

另外,一般不会让协议栈keepalive,基本都是自己做心跳,比如QQ。so,没有修改的必要。
回复