TCP/IP协议 TCP包深入理解

1,126 阅读2分钟

详细解释TCP/IP标志位

TCP报格式

继续使用TCP/IP协议 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

暂时还没有发现mss在哪里设置的。

  • 特别应该注意 这些数据包都是以大端的方式储存的。
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.cn/post/6844903794736644104