TCP / IP帧头格式

时间:2014-09-15 15:13:38

标签: tcp network-protocols

我使用ethereal来捕获一些数据包,而我正试图弄清楚数据。这是其中一个帧的输出。

0x0000:  4500 003a 4564 4000 4006 df05 0a01 012b    E..:Ed@.@......+
0x0010:  0a01 0128 bfcf 3a98 e938 b9c8 e8a0 761f    ...(..:..8....v.
0x0020:  8018 05b4 ef33 0000 0101 080a 0005 ff31    .....3.........1
0x0030:  0005 2c31 6865 6c6c 6f0a                   ..,1hello.

右侧的字符是左侧信息的ascii表示(十六进制)。发送的消息是“hello”,其余信息(或至少其中一些)是标题,对吧?标题的格式是什么?我做了一些谷歌搜索,发现这张图片:http://electronicdesign.com/site-files/electronicdesign.com/files/archive/electronicdesign.com/files/29/2099/figure_03.gif。它是否正确?根据图像,字节27-30(761f 8018)是目标IP,但将十六进制转换为十进制不会最终成为我的IP。我错过了什么,还是我完全错了?我怎样才能找到协议编号?

1 个答案:

答案 0 :(得分:0)

您的源IP 10.1.1.43和目标IP 10.1.1.40?

我相信显示的信息不是以太网帧,它是一个IP包。第一个八位字节已经是IP头。

要快速参考IP和TCP标头,可以使用wiki

http://en.wikipedia.org/wiki/IPv4#Header

http://en.wikipedia.org/wiki/Transmission_Control_Protocol#TCP_segment_structure

但如果您需要更多详细信息和可靠信息,请直接检查RFC。

http://tools.ietf.org/html/rfc791#section-3.1

http://tools.ietf.org/html/rfc793#section-3.1

如果我以每行4个八位字节格式重新排列数据

4500 003a  total length
4564 4000  fragment
4006 df05  header checksum
0a01 012b  source IP  
0a01 0128  destination IP
bfcf 3a98  ports
e938 b9c8  seq
e8a0 761f  ack
8018 05b4  windows
ef33 0000  checksum
0101 080a 
0005 ff31    
0005 2c31 
6865 6c6c 
6f0a 

第一个八位位组是4,所以你应该使用IPv4。在第3行,第二个八位位组是6.这是TCP的协议号。从这两个提示我猜这是IP包而不是以太网包。

关于ethereal,Remy是对的,使用Wireshare https://www.wireshark.org/