关闭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的响应速度。

aix linux tcp连接数,修改windows、linux、aix等系统TCP/IP 参数相关推荐

  1. Linux TCP 连接数修改

    Linux TCP 连接数修改 一. 文件数限制修改 (1) vi /etc/security/limits.conf * soft nofile 10240 * hard nofile 10240 ...

  2. 网页修改linux命令行,linux中文本修改操作命令linux网页制作 -电脑资料

    在命令模式下可以使用 vi 提供的各种有关命令对文本进行修改,包括对文本内容的删除.复制.取代和替换等, 1. 文本删除/移动 在编辑文本时 ,经常需要删除一些不需要的文本,我们可以用键将输错或不需要 ...

  3. python 监控linux硬盘,Python3监控windows,linux系统的CPU、硬盘、内存使用率和各个端口的开启情况详细代码实例...

    由于项目的需要,需要做一个简单监控服务器的CPU利用率.CPU负载.硬盘使用率.内存利用率和服务器的各个端口的开启情况的程序,并把结果通知到监控平台,如果出现异常,监控平台打电话或者发短信通知给具体的 ...

  4. linux根目录数量限制,windows,linux文件夹下文件上限最大个数

    1.FAT16文件系统, 可以保存的文件体积最大值是 4 GB - 1 byte (2^32 bytes - 1 byte): 卷的最大体积是4GB:每个卷上最多可以保存的文件数量是65,536个 ( ...

  5. linux 禁止文件修改时间,linux 修改文件的时间属性

    二.修改文件时间 创建文件我们可以通过touch来创建.同样,我们也可以使用touch来修改文件时间.touch的相关参数如下: -a : 仅修改access time. -c : 仅修改时间,而不建 ...

  6. 需要使用cacti检测一台linux,部署cacti监控windows linux

    一.安装LAMP架构 本篇主要介绍cacti如何监控windows主机,cacti的搭建过程也很简单,同样,监控linux主机也不难.这里主要记录部署监控windows过程中遇到的两个问题1.LAMP ...

  7. linux远程登录x11,windows linux 通过SSH X11Forwrding 使用图形化界面

    有时候,我们需要在命令行中使用远程的GUI程序,这样我们就需要x11转发的来进行访问: Linux平台下不需要特别的配置,假如我们要远程的机器是centos机器,只要做如下配置即可: #vi /etc ...

  8. linux端口转发到windows,Linux及Windows基于工具的端口转发

    Linux及Windows基于工具和命令的端口转发配置 wget http://www.boutell.com/rinetd/http/rinetd.tar.gz&&tar -xvf ...

  9. linux卡在x windows,Linux下显卡配置错误 无法进入X Windows的解决

    黑呵曰:你不得不感叹Linux的强大.如果windows因为显卡驱动开不了机你会怎么办?重装....Linux提供了一个强大的命令行(windows的那个简直称不上命令行)让你直接修改设置,修改完成不 ...

  10. linux自动启动network服务,Windows/Linux 创建开机启动服务

    系统服务是一种应用程序类型,它在后台运行.服务应用程序通常可以在本地和通过网络为用户提供一些功能.有些软件无需安装解压就能使用,或者在安装时未向系统注册服务.如果我们需要开机启动,需要手动创建服务. ...

最新文章

  1. 编程——无序数组中找到最大乘积(python)
  2. 实现正则表达式的*和?匹配
  3. Codeforces Round #494 (Div. 3)【未完结】
  4. Java动态代理的两种实现方法:JDK动态代理和CGLIB动态代理
  5. 三角形一点到三边距离最小_初中数学:相似三角形以及重心、向量问题考点整理...
  6. 网站数据库中“密码加密”方法思考
  7. vapor mysql_vapor MySQL 作为Cache
  8. notnull注解_Hibernate Validator 第19篇:自定义约束-约束注解
  9. C语言编程数出1到100的整数中出现了多少次数字9
  10. 异构平台对比(GPU FPGA DSP)
  11. C语言:有N个学生,每个学生有3门课程的成绩,从键盘输入以上数据(包括学号、姓名、3门课程的成绩),计算出平均成绩,将原有数据和计算出的平均成绩存放在磁盘文件stu_list.txt中。
  12. c#初学-select和Dictionary字典在c#中的用法
  13. ASP.NET XML Web 服务的应用程序集成
  14. 《UVM实战》代码示例
  15. Linux安装谷歌拼音中文输入法
  16. Latex(katex)csdn 希腊字母表示,数学符号,集合符号,特殊标记
  17. 什么原因导致芯片短路_PCB电路板短路的原因及解决方法-EDA/PCB-与非网
  18. 编程之类的文案_最萌编程高手是这样炼成的
  19. PythonStudy——列表与字典推导式 List and dictionary derivation
  20. Balsamiq Mockups 产品原型图绘制工具的破解和使用教程

热门文章

  1. 190804每日一句
  2. Atitit attilax提出的软件开发发展趋势与概念 1. 长期化 复用化 跨平台 可移植性 1 2. 通用化 通用 化的渠道至少有3种 1 2.1. 模块化 1 2.2. 标准化接口 1 2
  3. Atitit 架构师之道 attilax著 1.1. 认和评估系统需求, 2 1.2. 给出开发规范 2 1.3. ,搭建系统实现的核心构架, 2 1.4. 扫清主要难点的技术人员 2 1.5. 核
  4. atitit 体系搭建的方法 解决方案 attilax总结.docx
  5. Atitit 语音识别的技术原理
  6. Atitit.Gui按钮与面板---项目规模的评估----文件数统计,结构,代码行数,每类型文件行数.
  7. paip.c++ qt messagebox用法
  8. paip.svn使用小结
  9. clickhouse: A股bar数据与物化视图尝试
  10. 跨5合并dnf无限连接服务器,不妨一试!跨5等跨区卡登陆卡黑屏解决办法分享