学了3年终于听懂了 TCP 三次握手和四次分手

TCP 三次握手和四次分手要从服务端和客户端的角度分别理解

三次握手

客户端发送第一次握手 syn

服务端收到并回复第二次握手 syn + awk
(此时表明,客户端的输出没有问题,服务端收到了,说明服务端的输入是正常的,接着服务端现在发送了第二次握手)

服务端发送第二次握手 syn

客户端收到了 并且也回复了 awk
(此时三次握手成功,服务端发送的握手包,客户端收到了,服务端也收到了客户端的响应,证明客户端和服务端的输入和输出都是正常的)

这个时候连接才刚刚开始建立

四次分手

数据传输完毕后
1.客户端提出分手
2.服务端收到分手请求但是数据还没发送完回复客户端:等下, 还没发完呢,客户端等等待
3.服务端再次发送,我这边完事了,我们分手吧,
4.客户端回复:收到
至此四次分手完毕。

扩展:
使用 tcpdump 抓包命令获取完整的握手挥手数据
sudo tcpdump -nn -i en0 port 80

学了3年终于听懂了 TCP 三次握手和四次分手