简介

相信大家都知道TCP的四次握手, 是的, 面试必问问题之一. 但是基本很难对TCP的四次握手产生有效的记忆.

参考链接

https://blog.csdn.net/a19881029/article/details/38091243 使用wireshark进行端口信号的捕捉. 继而对TCP三次握手进行有效的理解

因为释义

FIN : final 最终, 引申为终止连接信号.

image

小规律

FIN 对应着 ACK
seq number 对应着 ack number

Q&A

Q: 为什么四次挥手?
A: 因为当Server端收到Client端的SYN连接请求报文后, 可以直接发送SYN+ACK报文. 其中ACK报文是用来应答的, SYN报文是用来同步的. 但是关闭连接是, 当Server端收到FIN报文是, 很可能并不会立即关闭socket, 所以只能先回复一个ACK报文, 告诉Client端, "你发的FIN报文我收到了", 只有等到我Server端所有的报文都发送完了, 我才能发送FIN报文, 因此不能一起发送. 故需要四次握手.
客户端发送了FIN链接是发哦报文之后, 服务端收到了这个额报文, 就进入了Clost-wait状态. 这个状态是为了让服务端发送还未发送完毕的数据, 传输完毕之后,服务器会发送FIN连接释放报文.

posted on 2021-05-13 16:36  HDU李少帅  阅读(88)  评论(0编辑  收藏  举报