1. TCP 三次握手原理

1. 第一次握手
发送方向接收方发送一个 TCP ,标志位为 SYN=1 ,序号为 Seq=x 其实一般是 Seq=0,代表发送方请求建立连接
2. 第二次握手
接收方接收到发送方的请求信号后,向发送方返回一个数据包,SYN=1, ACK=1 的TCP。同时将确认序号(Acknowledge Number 即 Ack )设置为第一次握手的报文中 Seq 的数值 +1 ,即 x+1(如果第一次握手的 Seq=0 ,则 Ack=0+1=1)。同时设置 Seq=y(y可以是1,也可以是 其它)
3. 第三次握手
发送方收到接收方发来的包后,检查确认序号(Acknowledge Number 即 Ack )是否正确,以及标志位 ACK 是否为 1。若正确,发送方会向接收方发送一个报文(第三次握手的报文),SYN=0, ACK=1,确认序号(Acknowledge Number` 即 `Ack)设置为第二次握手报文中的 Seq +1,比如第二次报文 Seq=0,那么这个 Ack=1,而报文中的 Seq 设置为 第一次握手的Seq 值 +1 。
2. wireshark 抓包测试

- 发送方: (
192.168.0.73) - 接收方: (
110.242.68.137)
- 第一次握手: 红的方框中是我在谷歌浏览器刷新一次网站抓到 TCP 的三次握手的过程,可以看到,第一次握手,浏览器发送了
4次请求,套接字(IP:port)分别为192.168.0.73:64344、192.168.0.73:64345、192.168.0.73:64346、192.168.0.73:64347。 - 第二次握手:最后接收方(
110.242.68.137)也就是我要访问的网站(服务器)先对192.168.0.73:64344做了回复 - 第三次握手:发送方(
192.168.0.73)向接收方 (110.242.68.137)发送确认的报文。(红框最后一行)
(黄色的是其它资源发送的并发的请求)
- 具体一点,可以明确看到,抓包的规律满足上面的理论

本文详细解析了TCP三次握手的工作原理及过程,通过wireshark抓包工具演示了客户端与服务器间建立连接的具体步骤,包括三次握手的数据包内容及标志位状态。
9836

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



