TCP报格式

| no | Time | Source | Destination | protocal | Length | info |
|---|---|---|---|---|---|---|
| 3 | 0.000278 | 192.168.137.28 | 192.168.1.102 | TCP | 58 | 49155 → 5000 [SYN] Seq=0 Win=8196 Len=0 MSS=1460 |
上面是3号包的大体情况。下面贴上3号包的详细信息。
| 地址 | 0 | 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | 0xa | 0xb | 0xc | 0xd | 0xe | 0xf |
|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
| 00 | 00 | ff | 9f | 9a | 70 | 89 | 52 | 54 | 00 | 11 | 22 | 33 | 08 | 00 | 45 | 00 |
| 10 | 00 | 2c | 00 | 23 | 00 | 00 | ff | 06 | af | d5 | c0 | a8 | 89 | 1c | c0 | a8 |
| 20 | 01 | 66 | c0 | 03 | 13 | 88 | 00 | 00 | 22 | e1 | 00 | 00 | 00 | 00 | 60 | 02 |
| 30 | 20 | 04 | 75 | e2 | 00 | 00 | 02 | 04 | 05 | b4 |
其中关于TCP包的信息是0x22 ~ 0x30 。一共0x18个字节
- TCP包数据
| 地址 | 0 | 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | 0xa | 0xb | 0xc | 0xd | 0xe | 0xf |
|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
| 00 | c0 | 03 | 13 | 88 | 00 | 00 | 22 | e1 | 00 | 00 | 00 | 00 | 60 | 02 | 20 | 04 |
| 10 | 75 | e2 | 00 | 00 | 02 | 04 | 05 | b4 |

- 特别应该注意 这些数据包都是以大端的方式储存的。
Transmission Control Protocol, Src Port: 49155, Dst Port: 5000, Seq: 0, Len: 0
Source Port: 49155
Destination Port: 5000
[Stream index: 0]
[TCP Segment Len: 0]
Sequence number: 0 (relative sequence number)
[Next sequence number: 0 (relative sequence number)]
Acknowledgment number: 0
0110 .... = Header Length: 24 bytes (6)
Flags: 0x002 (SYN)
Window size value: 8196
[Calculated window size: 8196]
Checksum: 0x75e2 [unverified]
[Checksum Status: Unverified]
Urgent pointer: 0
Options: (4 bytes), Maximum segment size
TCP Option - Maximum segment size: 1460 bytes
Kind: Maximum Segment Size (2)
Length: 4
MSS Value: 1460
[Timestamps]
上面是3号包所有的信息。
我们在这里可以分析出。TCP所包含的所有信息。
- 源端口 source port
- 目的端口 destination port
- 序列号 sequence number
- 确认序列号 acknowledgement number
- 报头长度
- 编码位
- 窗口
- 校验和
- 紧急指针
- 其他选项
编码位
我怎么感觉像是状态位?
Flags: 0x002 (SYN)
000. .... .... = Reserved: Not set
...0 .... .... = Nonce: Not set
.... 0... .... = Congestion Window Reduced (CWR): Not set
.... .0.. .... = ECN-Echo: Not set
.... ..0. .... = Urgent: Not set
.... ...0 .... = Acknowledgment: Not set
.... .... 0... = Push: Not set
.... .... .0.. = Reset: Not set
.... .... ..1. = Syn: Set
.... .... ...0 = Fin: Not set
[TCP Flags: ··········S·]
一共有6位标志位。
| Flag | 作用 |
|---|---|
| URG | 紧急指针有效 |
| ACK | 确认序号有效 |
| PSH | 接收方应该尽快将这个报文交给应用层 |
| RST | 重置连接 |
| SYN | 发起一个新连接。synchronize |
| FIN | 释放一个连接 |
- 上一章TCP/IP协议 TCP浅析
- 下一章待定
参考资料
https://juejin.cn/post/6844903794736644104