TCP 头字段
📋 r0capture 造的 pcap 包里 TCP 头(20 字节)每个字段。
TCP 头结构
log_pcap 写的 TCP 头:
python
# --- TCP 头 20字节, 大端序 ---
(">H", src_port), # Source Port
(">H", dst_port), # Destination Port
(">I", seq), # Sequence Number
(">I", ack), # Acknowledgment Number
(">H", 0x5018), # Data Offset + Flags
(">H", 0xFFFF), # Window Size
(">H", 0), # Checksum
(">H", 0), # Urgent Pointer字段详解
| 偏移 | 长度 | 格式 | 值 | 含义 |
|---|---|---|---|---|
| 0 | 2 | >H | src_port | Source Port |
| 2 | 2 | >H | dst_port | Destination Port(通常 443) |
| 4 | 4 | >I | seq | Sequence Number |
| 8 | 4 | >I | ack | Acknowledgment Number |
| 12 | 2 | >H | 0x5018 | Data Offset + Flags |
| 14 | 2 | >H | 0xFFFF | Window Size |
| 16 | 2 | >H | 0 | Checksum |
| 18 | 2 | >H | 0 | Urgent Pointer |
关键字段
Data Offset + Flags: 0x5018
0x5018 = 0101 0000 0001 1000
^^^^ ^^^^^^^
Data Offset Flags- 高 4 位
5= Data Offset(5×4=20字节 TCP 头) - Flags
0x018=0001 1000= ACK(0x10) + PSH(0x08)
PSH+ACK 是携带应用数据的典型标志。
Window Size: 0xFFFF
填满 0xFFFF(65535),避免 Wireshark 报「window is full」警告。
seq / ack
模拟的 TCP 序列号,详见 TCP 序列号。
Checksum: 0
填 0,Wireshark 不校验造的包。
字节序
TCP 头用大端序(网络序,>)。