摘要: 三次握手,四次挥手
意思是tcp建立连接时需要三次交互来完成,A发起连接
A --- SYN --> B
A
A --- ACK --> B
而关闭tcp连接需要四次交互,A发起关闭
A --- FIN --> B
A
A
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后服务端会主动断连。
疯狂医院达什医生中文版(Crazy Hospital)
疯狂医院达什医生最新版是一款医院模拟经营类游戏,逼真的场景画
宝宝庄园官方版
宝宝庄园官方版是一款超级经典好玩的模拟经营类型的手游,这个游
桃源记官方正版
桃源记是一款休闲娱乐类的水墨手绘风格打造的模拟经营手游。玩家
长途巴士模拟器手机版
长途巴士模拟器汉化版是一款十分比真好玩的大巴车模拟驾驶运营类
房东模拟器最新版2024
房东模拟器中文版是一个超级有趣的模拟经营类型的手游,这个游戏