TCP连接的建立与终止

1.TCP连接的建立与终止


TCP连接建立需要三次握手,主动打开方状态:SYN_SENT,被动打开方状态:SYN_RCVD
TCP连接断开需要四次握手,被动关闭(CLOSE_WAIT),主动关闭(TIME_WAIT)

查看TCP连接:

netstat -n |awk ‘/^tcp/ {print $NF}’|sort|uniq -c|sort -rn



CLOSE_WAIT连接数多:根本原因就是被动关闭方连接没有关闭
原因一:代码中没有写关闭连接的代码
原因二:该连接的业务代码处理时间太长,代码还在处理,对方已经发起断开连接请求

TIME_WAIT连接数多:TIME_WAIT状态也称为2MSL状态,这个TCP连接在2MSL等待期间,定义这个连接的插口(客户的IP地址和端口号,服务器的IP地址和端口号)不能再被使用,这个连接只能在2MSL结束后才能被使用。
解决方法:使用TCP连接API中SO_REUSEADDR选项,它能重新使用处于2MSL状态中的端口


MSL:Maximum Segment Lifetime 报文最大存活时间
2MSL的用处:主动关闭连接的一方发回最后一个ACK丢失时,可以有时间重新发送最后一个ACK(另一端超时并重发最后的FIN)

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值