Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/linux/27.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Linux 所有接收到的VLAN数据包都将成为错误VLAN数据包_Linux_Network Programming_Virtual Machine_Ethernet_Libpcap - Fatal编程技术网

Linux 所有接收到的VLAN数据包都将成为错误VLAN数据包

Linux 所有接收到的VLAN数据包都将成为错误VLAN数据包,linux,network-programming,virtual-machine,ethernet,libpcap,Linux,Network Programming,Virtual Machine,Ethernet,Libpcap,我试图发送和接收VLAN数据包,但我在该mac上接收的每个数据包都将成为错误数据包。 有人能给我解释一下一个数据包被当作错误接收的原因吗 这是状态 有关以太网接口4、10G\u平面的信息: 设备状态:向上 链接状态:向上 链接速度:10000 双工模式:全双工 流量控制:禁用 ------ MAC地址:02:00:01:02:08:40 收到的邮包:5662 接收字节:449816 收到错误的数据包:0 不带客户端的数据包:5655 发送邮包:1211 发送字节:41174 收到的Vlan数据包

我试图发送和接收VLAN数据包,但我在该mac上接收的每个数据包都将成为错误数据包。 有人能给我解释一下一个数据包被当作错误接收的原因吗

这是状态

有关以太网接口4、10G\u平面的信息: 设备状态:向上 链接状态:向上 链接速度:10000 双工模式:全双工 流量控制:禁用 ------ MAC地址:02:00:01:02:08:40 收到的邮包:5662 接收字节:449816 收到错误的数据包:0 不带客户端的数据包:5655 发送邮包:1211 发送字节:41174 收到的Vlan数据包:1761 已发送Vlan数据包:1211 接收到错误Vlan数据包:1761 发送Vlan数据包时出错:0 雷德下降:0

我寄的包裹是

0000 02 00 01 02 08 40 00 01 ec 69 c7 b5 81 00 80 b4。我
0010 82 12 01 00 00 10 ab ba ac dc 07 ff 00 10 e9 ab。。。。。。。。
0020  00 00 00 00 00 00 00 00  00 00 00 00 00 00 00 00   ........ ........
00300 00 00 00 00 00 31 0b fa 74。。。。1..t

我试着改变VLNID,但没有用

提前谢谢
Murali krishna.

您的vlan 802.1Q头是:0x8100 80b4,因此您的vlan id应该是0xb4=180十进制

请参见此处的802.1Q标头:

ethertype/length正好在0x8100 80b4之后,因此应该是8212。 因为8212比0x05DC大,所以它被认为是一个ethertype,但我找不到0x8212作为有效的etype


因此,您的数据包可能缺少长度字段。您应该在0x8212之前添加长度字段(2字节)。尝试一下,看看这是否适合您。

谢谢您的回答。在改变数据包格式之后,我也得到了同样的结果。数据包格式更改如下
0000 02 00 01 02 08 40 00 01 ec 69 c7 b5 81 00 80 b4。我0010 05 dc 81 00 01 00 f0 ab ba ac dc 07 ff 80 10。。。。。。。。0020 00 e1 06 63 00 7d 00 00 03 e9 00 da 00 00 01 00…c.)。。。。。。。。0030 01 00 02 00 03 01 00 04 01 00 ea 4b 09 af。。。。。K..
而不是0x05DC,u应该输入数据包的实际长度。0x05DC只是一种检查,用于确定它是否为数据包长度或以太网类型。