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 | 释放一个连接 |
- 上一章
- 下一章
参考资料
https://juejin.im/post/5c87059ae51d452f3f64b110复制代码