TCP三次握手在Wireshark数据包中是如何体现的?在此之前,先熟悉TCP三次握手的流程。
TCP(传输控制协议)是一种面向连接的、可靠的传输层协议。在建立 TCP 连接时,需要进行三次握手,防止因为网络延迟、拥塞等原因导致的数据丢失或错误传输,确保双方都能够正常通信。
下面是 TCP 三次握手的过程:
1.客户端发送 SYN 请求报文:
2.服务端接收 SYN 请求报文:
3.客户端接收 SYN+ACK 响应报文:
完成以上三个步骤后,TCP 连接建立成功,双方可以开始进行数据传输。
第一步:开启抓包,ping百度
第二步:过滤目标主机地址
可以看到三个TCP数据包,接下来我们逐个分析。
由上图可以看到,seq为0,表示客户端的初始序列号为0;ack为0,代表本机还未确认服务端的同意;syn为1并进入set状态,说明本机请求建立连接并等待baidu.com的响应
由上图可以看到,seq为0,表示服务端的初始序列号为0;ack为1,代表baidu.com同意接受连接;syn为1并进入set状态,说明baidu.com等待本机的响应
由上图可以看到,seq为1,表示客户端期望收到的下一个序列号是1;ack为1代表本机同意接受连接;syn为1并进入set状态,表示确认服务端(baidu.com)的同意(即确认服务器的序列号为0)
至此,TCP三次握手就完成了,客户端(本机)将与服务端建立起连接。