如何在没有Wireshark之​​类的东西的情况下解码以太网帧?

时间:2014-04-30 15:33:02

标签: protocols decode ethernet

例如:如何解码以下以太网帧?

00 26 b9 e8 7e f1 00 12 f2 21 da 00 08 00 45 00 05 dc e3 cd 20 10 35 06 25 eb 0a 0a 0a 02 c0 a8 01 03 c3 9e 0f 40 00 00 10 00 00 00 14 00 70 10 00 5c 59 99 00 00 02 04 05 b4 01 03 03 06 00 00 01 98 64 34 e8 90 84 98 20 12 18 19 04 85 80 00

我知道前6个字节是MAC目标地址:00 26 b9 e8 7e f1接下来的6个字节是源MAC地址:00 12 f2 21 da 00接下来的2个字节显示以太网类型:08 00接下来的4个字节是:45 00 ... Ipv4 ...“5”标题中的字节数。“00”表示没有差异化服务。

我不知道之后是什么,或者如何阅读它。

有人帮忙吗?

1 个答案:

答案 0 :(得分:3)

重新整理你的数据包,我们有:

00 26 b9 e8 7e f1 00 12  f2 21 da 00 08 00 45 00
05 dc e3 cd 20 10 35 06  25 eb 0a 0a 0a 02 c0 a8
01 03 c3 9e 0f 40 00 00  10 00 00 00 14 00 70 10
00 5c 59 99 00 00 02 04  05 b4 01 03 03 06 00 00
01 98 64 34 e8 90 84 98  20 12 18 19 04 85 80 00

如果 知道 ,前6个八位字节构成目标mac地址,则表示它是以太网第2层数据包。

根据IEEE 802.3,$ 3.1.1:

  1. 前6个八位位组是目标mac地址(00 26 b9 e8 7e f1
  2. 接下来的6个八位字节是源mac地址(00 12 f2 21 da 00
  3. 接下来的4个八位字节,可选 802.1Q标记(现在,08 00 45 00
  4. 接下来的两个八位字节是:
    • 最大有效负载大小 - 也就是MTU(如果< = 1500,在这种情况下,05 dc是1500)
    • 以太网2帧(如果> = 1536)
  5. 接下来是有效载荷范围从46个八位字节(如果不存在802.1Q标记)或42个八位字节(如果存在802.1Q标记)到最多1500个八位字节(从e3 cd 20 10 ...开始,结束于{ {1}}或20 12 18 19,取决于第7项)
  6. 最后4个八位字节构成CRC32代码(03 06 00 0001 98 64 34,具体取决于第7项)
  7. 还有12个八位字节用于填充(随机 - 不是随机 - 字节),可能会也可能不会插入此数据包。 (如果已插入,则填充为04 85 80 00