何鑫个人博客

从Wireshark记录看TCP的三次握手和四次挥手

  • 2024-09-24 14:15:24
  • 技术
  • 126

// 第一次握手 客户端->服务器 客户端向服务器发送同步请求 序号为0 窗口为64240字节 数据长度为0 最大报文段长度为1460个字节 支持SACK
359 12.341446 192.168.1.5 192.168.1.10 TCP 66 55666 → 80 [SYN] Seq=0 Win=64240 Len=0 MSS=1460 WS=256 SACK_PERM
// 第二次握手 服务器->客户端 服务端回复客户端同步请求 序号为0 ACK为1确认收到客户端请求 并告知客户端自己的相关信息
360 12.341676 192.168.1.10 192.168.1.5 TCP 66 80 → 55666 [SYN, ACK] Seq=0 Ack=1 Win=64240 Len=0 MSS=1460 SACK_PERM WS=128
// 第三次握手 客户端->服务器 客户端确认收到服务端请求并回应
361 12.341731 192.168.1.5 192.168.1.10 TCP 54 55666 → 80 [ACK] Seq=1 Ack=1 Win=525568 Len=0
// 这里开始已经经过三次握手建立了连接 客户端向服务器发送HTTP请求 TCP SEQ=1 ACK=1 LEN=431
362 12.342063 192.168.1.5 192.168.1.10 HTTP 485 GET /test HTTP/1.1
// 服务器发送 ACK=LEN+SEQ=432
363 12.342311 192.168.1.10 192.168.1.5 TCP 60 80 → 55666 [ACK] Seq=1 Ack=432 Win=64128 Len=0
// 服务器回复消息 SEQ=1 ACK=432 LEN=392
364 12.342548 192.168.1.10 192.168.1.5 HTTP 446 HTTP/1.1 404 Not Found (text/html)

// 这里是另外一个连接 略过
365 12.345092 192.168.1.5 192.168.1.10 TCP 66 55667 → 80 [SYN] Seq=0 Win=64240 Len=0 MSS=1460 WS=256 SACK_PERM
366 12.345339 192.168.1.10 192.168.1.5 TCP 66 80 → 55667 [SYN, ACK] Seq=0 Ack=1 Win=64240 Len=0 MSS=1460 SACK_PERM WS=128
367 12.345399 192.168.1.5 192.168.1.10 TCP 54 55667 → 80 [ACK] Seq=1 Ack=1 Win=525568 Len=0

// 客户端发送 SEQ=432 ACK=393 LEN=372
368 12.362788 192.168.1.5 192.168.1.10 HTTP 426 GET /favicon.ico HTTP/1.1
// 服务器发送 SEQ=393 ACK=804 LEN=392
369 12.363209 192.168.1.10 192.168.1.5 HTTP 446 HTTP/1.1 404 Not Found (text/html)
// 客户端发送
370 12.403052 192.168.1.5 192.168.1.10 TCP 54 55666 → 80 [ACK] Seq=804 Ack=785 Win=524800 Len=0

732 57.346249 192.168.1.5 192.168.1.10 TCP 55 [TCP Keep-Alive] 55667 → 80 [ACK] Seq=0 Ack=1 Win=525568 Len=1
733 57.346616 192.168.1.10 192.168.1.5 TCP 66 [TCP Dup ACK 366#1] 80 → 55667 [ACK] Seq=1 Ack=1 Win=64256 Len=0 SLE=0 SRE=1

// 连接保活 SEQ回退1
734 57.363385 192.168.1.5 192.168.1.10 TCP 55 [TCP Keep-Alive] 55666 → 80 [ACK] Seq=803 Ack=785 Win=524800 Len=1
735 57.363634 192.168.1.10 192.168.1.5 TCP 66 [TCP Keep-Alive ACK] 80 → 55666 [ACK] Seq=785 Ack=804 Win=64128 Len=0 SLE=803 SRE=804

924 72.351463 192.168.1.10 192.168.1.5 TCP 60 80 → 55667 [FIN, ACK] Seq=1 Ack=1 Win=64256 Len=0
925 72.351657 192.168.1.5 192.168.1.10 TCP 54 55667 → 80 [ACK] Seq=1 Ack=2 Win=525568 Len=0

// 第一次挥手
963 77.371802 192.168.1.10 192.168.1.5 TCP 60 80 → 55666 [FIN, ACK] Seq=785 Ack=804 Win=64128 Len=0
// 第二次挥手
964 77.372223 192.168.1.5 192.168.1.10 TCP 54 55666 → 80 [ACK] Seq=804 Ack=786 Win=524800 Len=0

1185 116.451642 192.168.1.5 192.168.1.10 TCP 54 55667 → 80 [FIN, ACK] Seq=1 Ack=2 Win=525568 Len=0
// 第三次挥手
1186 116.451681 192.168.1.5 192.168.1.10 TCP 54 55666 → 80 [FIN, ACK] Seq=804 Ack=786 Win=524800 Len=0
// 第四次挥手 TCP连接结束
1188 116.451929 192.168.1.10 192.168.1.5 TCP 60 80 → 55666 [ACK] Seq=786 Ack=805 Win=64128 Len=0
1189 116.451958 192.168.1.10 192.168.1.5 TCP 60 80 → 55667 [ACK] Seq=2 Ack=2 Win=64256 Len=0