简介
相信大家都知道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连接释放报文.
---------------------------我的天空里没有太阳,总是黑夜,但并不暗,因为有东西代替了太阳。虽然没有太阳那么明亮,但对我来说已经足够。凭借着这份光,我便能把黑夜当成白天。我从来就没有太阳,所以不怕失去。
--------《白夜行》