Wireshark抓包分析 TCP三次握手

发布时间 2023-07-25 17:59:33作者: Kevin_404notfound

Wireshark抓包分析 TCP三次握手/四次挥手详解

抓包界面显示的结果和协议栈的层次关系正好相反,最上面的是物理层,最下面是应用层。具体的对应关系如下:

Frame: 物理层的数据帧概况

Ethernet II: 数据链路层以太网帧头部信息

Internet Protocol Version 4: 互联网层IP包头部信息

Transmission Control Protocol: 传输层的数据段头部信息,此处是TCP

Hypertext Transfer Protocol: 应用层的信息

第一次握手: 客户端向服务器发送连接请求包,标志位SYN(同步序号)置为1,序号为X=0

第二次握手: 服务器收到客户端发过来报文,由SYN=1知道客户端要求建立联机。向客户端发送一个SYN和ACK都置为1的TCP报文,设置初始序号Y=0,将确认序号(Acknowledgement Number)设置为客户的序列号加1,即X+1 = 0+1=1, 如下图:

第三次握手: 客户端收到服务器发来的包后检查确认序号(Acknowledgement Number)是否正确,即第一次发送的序号加1(X+1=1)。以及标志位ACK是否为1。若正确,客户端再次发送确认包,ACK标志位为1,SYN标志位为0。确认序号(Acknowledgement Number)=Y+1=0+1=1,发送序号为X+1=1。服务器收到后确认序号值与ACK=1则连接建立成功,可以传送数据了。

TCP四次挥手

TCP断开连接时,会有四次挥手过程,如下图所示,wireshark截获到了四次挥手的四个数据包。

第一次挥手: 客户端给服务器发送TCP包,用来关闭客户端到服务器的数据传送。将标志位FIN和ACK置为1,序号为X=1,确认序号为Z=1。

第二次挥手:服务器收到FIN后,发回一个ACK(标志位ACK=1),确认序号为收到的序号加1,即X=X+1=2。序号为收到的确认序号=Z。

第三次挥手:服务器关闭与客户端的连接,发送一个FIN。标志位FIN和ACK置为1,序号为Y=1,确认序号为X=2。

第四次挥手:客户端收到服务器发送的FIN之后,发回ACK确认(标志位ACK=1),确认序号为收到的序号加1,即Y+1=2。序号为收到的确认序号X=2。

总结:

第一次握手:seq:0 ack:0

第二次握手:seq:0 ack:1

第三次握手:seq:1 ack:1

第一次挥手:seq:1 ack:1

第二次挥手:seq:1 ack:2

第三次挥手:seq:1 ack:2

第四次挥手:seq:2 ack:2

编写人:Kevin
2023.7.25