解读TCP/UDP数据包(四):TCP数据包实例解析

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

       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

从IP、TCP首部提取出来的信息:

        源IP端口、目的IP端口、PUSH标志、起始字节序号(数据长度)、ack标志、窗口大小12、

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)

------------------------------------

转载请注明出处,谢谢。

小方的专栏

你可能感兴趣的:(网络编程)