学了3年终于听懂了 TCP 三次握手和四次分手
TCP 三次握手和四次分手要从服务端和客户端的角度分别理解
三次握手
客户端发送第一次握手 syn
服务端收到并回复第二次握手 syn + awk
(此时表明,客户端的输出没有问题,服务端收到了,说明服务端的输入是正常的,接着服务端现在发送了第二次握手)
服务端发送第二次握手 syn
客户端收到了 并且也回复了 awk
(此时三次握手成功,服务端发送的握手包,客户端收到了,服务端也收到了客户端的响应,证明客户端和服务端的输入和输出都是正常的)
这个时候连接才刚刚开始建立
四次分手
数据传输完毕后
1.客户端提出分手
2.服务端收到分手请求但是数据还没发送完回复客户端:等下, 还没发完呢,客户端等等待
3.服务端再次发送,我这边完事了,我们分手吧,
4.客户端回复:收到
至此四次分手完毕。
扩展:
使用 tcpdump 抓包命令获取完整的握手挥手数据sudo tcpdump -nn -i en0 port 80