tcp问题记录

问题1:为什么经常看到一堆TIME_WAIT

当客户端发起fin之后,服务端正常发送fin了,客户端ack后将进入TIME_WAIT状态,等待2MSL时间
该时间长度可在以下看到(单位s)

net.ipv4.tcp_fin_timeout = 60
问题2:为什么要等待2MSL

当服务端fin没有正常发出,或者在一个MSL内没收到fin的ack时,能够再次发送fin包。当客户端在2MSL没接收到fin包时,则认为链接正常关闭

问题3:tcp为什么要三次握手

可靠性保证,保证双方皆可正常收发

问题4:tcp为什么要4次挥手

客户端发起fin后,可能服务端还有数据需要发送,不能马上关闭则需要通过4次挥手

问题5:如果客户端直接退出,不发送fin包会怎么样

操作系统会释放资源,直接发送fin包

问题6:如果客户端断网或者断电
net.ipv4.tcp_keepalive_intvl = 75   
net.ipv4.tcp_keepalive_probes = 9
net.ipv4.tcp_keepalive_time = 7200

空闲时间7200之后开始发送探测包,总共9次,每次间隔75s,没收到回复,则认为断开

可以对单个socket单独设置
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值