摘要: 三次握手,四次挥手
意思是tcp建立连接时需要三次交互来完成,A发起连接
A --- SYN --> B A <-- SYN + ACK --- B (1) A --- ACK --> B
而关闭tcp连接需要四次交互,A发起关闭
A --- FIN --> B A <-- ACK --- B (1) A <-- FIN --- B A --- ACK --> B (2)
这里在(1)时B开始处于CLOSE_WAIT状态,一直到收到ACK后B才转为CLOSED ,而A就处于TIME_WAIT状态,一直到2MSL(Max Segament Lifetime)才转为CLOSED
为什么需要2MSL才真正转为CLOSED?是因为需要缓冲时间万一B丢失ACK重发FIN的话还可以回复ACK,还有就是2MSL后“迷失”在网络上的包全部失效
大量的 TIME_WAIT 和 CLOSE_WAIT 会造成服务器的连接资源被浪费甚至占满后导致服务器服务拒绝,怎么解决?
解决TIME_WAIT
net.ipv4.tcp_tw_recycle = 1 #开启快速回收,默认0 net.ipv4.tcp_tw_reuse = 1 #开启重用,默认0 net.ipv4.tcp_fin_timeout = 30 # 减小fin_timeout,默认60,单位s
系统参数的配置可以解决time_wait,但是close_wait就没那么简单了
解决CLOSE_WAIT
一般都是服务端的代码问题。
绝大多数都是客户端发起关闭,这样可知HTTP服务器应该会有很多TIME_WAIT,不过当http使用keep-alive后服务端会主动断连。
感谢阅读,希望能帮助到大家,谢谢大家对本站的支持!
先看代码 复制代码 代码如下: div style="position:relative; width:[flash的宽]...
本文转载自微信公众号「 jinjunzhu」,作者 jinjunzhu 。转载本文请联系 jinjunz...
H5支付是指商户在微信客户端外的移动端网页展示商品或服务,用户在前述页面确认...
我们通常衡量一个Web系统的吞吐率的指标是QPS(Query Per Second,每秒处理请求...
1,父传子 子组件中定义 props 字段,类型为数组(如果需要限制字段值类型,也可...
CentOS版本:7.6.1810 3台 JDK版本:1.8.0_191 Zookeeper版本:3.4.10 安装包 链接h...
详解 Spring注解的(ListMap)特殊注入功能 最近接手一个新项目,已经没有原开发...
0x01 Mysql Mysql划分:权限 root 普通用户 版本 mysql5.0 mysql5.0 1.1 root权...
XML/HTML Code 复制内容到剪贴板 input id = username name = username type = t...
OBJECT ID="agobjOraSession" RUNAT="Server" PROGID="OracleInProcServer.XOraS...