欢迎您访问程序员文章站本站旨在为大家提供分享程序员计算机编程知识!
您现在的位置是: 首页

【转载】TCP数据包实例解析

程序员文章站 2022-07-09 21:27:13
...
1、一个完整的TCP数据包
11:43:26.893811 IP 10.135.1.108.39936 > 10.135.38.95.8090: P 1:247(246) ack 1 win 12 <nop,nop,timestamp 3216248128 3584896032>
       0x0000: 4500 012a cfdf 4000 3d06 3016 0a87 016c  E..*..@.=.0....l
       0x0010: 0a87 265f9c00 1f9a a70c c2e3 d9e2 fee9  ..&_............
       0x0020: 8018 000c 9e30 0000 0101 080a bfb4 0d40  .....0.........@
       0x0030: d5ad 2c20504f 5354 202f 6d71 7173 6572  ..,.POST./mqqser
       0x0040: ……
       0x0050: ……
       0x0060: ……
       0x0070: ……
       0x0080: ……
       0x0090: ……
       0x00a0: ……
       0x00b0: ……
       0x00c0: ……
       0x00d0: ……
       0x00e0: ……
       0x00f0: ……
       0x0100: ……
       0x0110: ……
       0x0120: 7468 3a20 3631 0d0a 0d0a                 th:.61....

2、数据包概要信息
11:43:26.893811 IP 10.135.1.108.39936 > 10.135.38.95.8090: P 1:247(246) ack 1 win 12 <nop,nop,timestamp 3216248128 3584896032>
从IP、TCP首部提取出来的信息:
        源IP端口、目的IP端口、PUSH标志、起始字节序号(数据长度)、ack标志、窗口大小12、<TCP选项中的NOP、TCP选项中的NOP、TCP选项中的时间戳、TCP选项中的回送时间戳>
3、IP首部
0x0000: 4500 012a cfdf 4000 3d06 3016 0a87 016c
0x0010: 0a87 265f
       4500 012a
              4:版本号
              5:首部长度,5*4字节=20字节
              00:服务类型
              012a:IP数据包总长度0x12a=298字节=IP首部长度20字节+TCP首部长度32字节+数据净荷246字节
       cfdf 4000
              cfdf:包唯一标识,0xcfdf=53215
              4000:0x4000=010 0 0000 0000 0000:
                     010:0+不要分片+没有后续分片
                     0 0000 0000 0000:片偏移0
       3d06 3016
              3d:生存时间,0x3d=61
              06:协议,0x06=6,TCP协议
              3016:首部校验和
       0a87 016c 0a87 265f
              0a87 016c:源IP=10.135.1.108
              0a87 265f:目的IP=10.135.38.95

4、TCP首部
0x0010:            9c00 1f9a a70c c2e3 d9e2 fee9
0x0020: 8018 000c 9e30 0000 0101 080a bfb4 0d40
0x0030: d5ad 2c20
       9c00 1f9a
              9c00:源端口39936
              1f9a:目的端口8090
       a70c c2e3 d9e2 fee9
              a70c c2e3:32位序号 2802631395
              d9e2 fee9:32位确认序号 3655532265
       8018 000c
              8018=1000 0000 0001 1000
                     1000:首部长度8,8*4字节=32字节
                     0000 00:保留六位
                     01 1000:标志位,ACK+PSH
              000c:窗口大小,0xc=12字节
       9e30 0000
              9e30:16位校验和
              0000:16位紧急指针
       0101 080a bfb4 0d40 d5ad 2c20:12字节选项
              0101:01=无操作nop,01=无操作nop
              080a bfb4 0d40 d5ad 2c20:时间戳选项,总长度为0a=12字节
                     bfb4 0d40:时间戳=3216248128
                     d5ad 2c20:回送时间戳3584896032

5、数据
0x0030:           504f 5354 202f 6d71 7173 6572
……
0x0120: 7468 3a20 3631 0d0a 0d0a
       长度为246字节(0x12a-0x34=246)

本文转载于:http://blog.csdn.net/fzzmouse/article/details/9203741