aix linux tcp连接数,51CTO博客-专业IT技术博客创作平台-技术成就梦想

关闭TCP/IP连接的四个过程

那么双方关闭这个TCP连接共需要四个packet:

Client --->  FIN  --->  Server

Client

这时候Client端处于FIN_WAIT_2状态;而Server程序处于CLOSE_WAIT状态。

Client

这时Server发送FIN给Client,Server就置为LAST_ACK状态。

Client --->  ACK  --->  Server

Client回应了ACK,那么Server的套接字才会真正置为CLOSED状态。

Server程序处于CLOSE_WAIT状态,而不是LAST_ACK状态,说明还没有发FIN给Client,那么可能是在关闭连接之前还有许多数据要发送或者其他事要做,导致没有发这个FIN packet。

通常来说,一个CLOSE_WAIT会维持至少2个小时的时间。如果有个流氓特地写了个程序,给你造成一堆的CLOSE_WAIT,消耗

你的资源,那么通常是等不到释放那一刻,系统就已经解决崩溃了。

只能通过修改一下TCP/IP的参数,来缩短这个时间:修改tcp_keepalive_*系列参数有助于解决这个问题。

在不同的操作系统上,修改TCP/IP参数的方法略有不同,现在对Windows 2000/NT、RISC6000/AIX、HP-UNIX、SUN Solaris以及SCO OpenServer平台下的修改方法逐一进行说明:

1)在Windows NT平台上, 我们利用regedit来修改系统注册表,修改HKEY_LOCAL_MACHINE\CurrentControlSet\Services\Tcpip\Parameters下的以下三个参数:

KeepAliveInterval,设置其值为1000

KeepAliveTime,设置其值为300000(单位为毫秒,300000代表5分钟)

TcpMaxDataRetransmissions,设置其值为5

3)在Linux平台上修改系统的参数,系统默认超时时间的是7200秒,也就是2小时,这个太大了,对于我们这样的负荷来说,于是修改如下几个参数:

sysctl -w net.ipv4.tcp_keepalive_time=30

sysctl -w net.ipv4.tcp_keepalive_probes=2

sysctl -w net.ipv4.tcp_keepalive_intvl=2

4)在RISC6000/AIX平台上, 用no命令修改如下参数:

tcp_keepidle保持TCP/IP连接的时间,单位为0.5秒,缺省值为14,400,即两个小时,我们可将它设为5分钟;

tcp_keepinittcp连接初始timeout值,单位为0.5秒,缺省值为150,我们可将它设为50;

tcp_keepintvl连接间隔,单位为0.5秒,缺省值为150,我们可将它设为50;

我们也可以修改/etc/rc.net文件,

/usr/sbin/no -o tcp_keepidle=240

/usr/sbin/no -o tcp_keepinit=50

/usr/sbin/no -o tcp_keepintvl=50

注意:直接使用命令行修改,在机器重启后,会失效;修改rc.net文件,可以做到永久生效。

5)在HP平台上,

对于HP-UNIX V10.20及其在此之前的版本,用/usr/contrib/bin nettune命令来修改有关参数;

对于HP-UNIX V10.30及其以上版本,用/usr/bin/ndd命令来修改有关参数。

6)在SUN Solaris平台上,

用ndd -set /dev/tcptcp_keepalive_interval NNN命令来修改有关参数,tcp_keepalive_interval的单位为毫秒,缺省值为7200000毫秒,即2个小时。

7)在SCO OpenServer平台上,

tcp_keepalive 和 tcp_keepidle 相同,其原先默认值为 7200 秒,可设为 600秒。tcp_keepintvl 其原先默认值为 75 秒,可设为15秒。均以"秒"为单位。

运行命令 ifconfig 命令修改:

/etc/inconfig tcp_keepidle

/etc/inconfig tcp_keepintvl

通常,操作系统的TCP/IP参数的缺省设置是2个小时(常见的操作系统平台如:Windows 2000/NT以及AIX,HP-UX,Sun Solaris,Linux等,缺省设定均为2个小时),即发送KeepAlive探测包的时间是2小时,所以需要2个小时的时间它才会获知网络连接已经断开,因此当有需要的时候我们可以通过配置TCP/IP KeepAlive参数来提高TCP/IP的响应速度。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值