如何检测和删除以太网填充

时间:2016-01-29 04:29:29

标签: networking ethernet

我正在为我的操作系统编写网络堆栈。 从以太网接收数据时,如果数据小于64字节,我必须检测并删除填充,并设置数据长度,如标准所示。

执行此操作的算法是什么?

如果数据包含'a0',则它小于64字节并将被填充。如果我按字节顺序检查,我将得到第二个再见0,因此它也将被计为填充数据,但不是。

1 个答案:

答案 0 :(得分:1)

“类型/长度”字段将告诉您有效负载的大小。 Wireshark非常好explanation

  

因此,如果类型/长度字段的值为1500或更低,则它是a   长度字段,后跟一个802.2标题,否则它是a   输入字段,然后是上层协议的数据   (XXX - 上面的句子略有重复?)。注意的时候   length / type字段用作指定长度值的长度字段   包括任何填充字节的长度(例如,如果是原始的   以太网帧与包含单个字节的有效载荷一起发送   数据长度字段将设置为0x0001和45个填充字节   将被附加到数据字段以使以太网帧达到   所需的最小64字节长度。)