1.tcp四次挥手

Seq = u,等于ESTABLISHED状态下,数据最后一次发送的时候,已经传送过来的数据的最后一个序号+1。
客户端主动关闭,此时,客户端不在进行数据传输。服务器端如果(可能)有数据传输到客户端,那么就在CLOSE_WAIT状态下完成。
在服务器数据传输完毕后,会向客户发送连接释放报文。

2.面试题目
(1)TCP链接必须经过2MSL后才能真正释放掉的原因?
确保有足够的时间让对方收到ACK包
避免新旧的链接。
MSL:最长报文段寿命。相关协定定义MSL的时间为两分钟。Linux设置成30秒。
(2)服务器出现大量CLOSE_WAIT的原因:
对方关闭socket连接,我方忙于读或者写,没有及时关闭连接。
检查代码,特别是释放资源的代码。
检查配置,特别是处理请求的现成配置。
(3)为什么需要四次握手才能断开。
因为全双工通信,发送方跟接收方都需要FIN报文跟ACK报文
6811

被折叠的 条评论
为什么被折叠?



