我有一个网络交换机 IC,我正在使用发送 BPDU 数据包。我可以发送带有 2 字节以太类型/长度字段的数据包,如下所示:81 00、80 00、91 00 和一些特殊的十六进制数。但是,如果我尝试像这样 00 27 。由于这个“00 27”数字,交换机丢帧。
这是某些特殊开关的规则吗?为什么以太类型/长度字段不能是任何数字来传递开关。我查看了数据表,没有关于此的主题。(顺便说一下 VLAN 功能关闭)
我有一个网络交换机 IC,我正在使用发送 BPDU 数据包。我可以发送带有 2 字节以太类型/长度字段的数据包,如下所示:81 00、80 00、91 00 和一些特殊的十六进制数。但是,如果我尝试像这样 00 27 。由于这个“00 27”数字,交换机丢帧。
这是某些特殊开关的规则吗?为什么以太类型/长度字段不能是任何数字来传递开关。我查看了数据表,没有关于此的主题。(顺便说一下 VLAN 功能关闭)
有多种类型的以太网帧。当今常见的是 Ethernet-II 和 802.3 以太网。
它们都以相同的方式开始,但在到达 ethertype/length 字段时出现分歧。来自维基百科“以太网框架”
“以太网类型或长度”字段用于判断它是 EthernetII 还是 802.3。如果该字段小于 1500,则表示该帧是 802.3 并且该字段指定长度。
因此,当您在该字段中放置 0x0027 时,您是在说您的帧是 802.3 以太网,并且它的长度是 39 个八位字节。这也意味着您可以在长度字段之后立即看到 LLC 标头。
来自 geeksforgeeks.com 的 802.3 以太网标头格式。DSAP/SSAP 字段指定 802.3 的内容。不是长度字段(您认为是 Ethertype 字段)。
这是一张wireshark捕获生成树框架的图片。长度字段为 0x0027(十进制 39)。之后是指示生成树的 0x42 的 DSAP 和 SSAP 字段,然后是控制字段,然后再访问数据。
要实现的另一件事是将LISTEN切换到生成树。他们处理框架。生成树帧用于交换机。因此,如果您向交换机发送格式正确的生成树帧,它将消耗该帧并相应地更新交换机上的生成树应用程序状态(这可能会触发其他生成树 BPDU 的发送)。
如果您向交换机发送错误的生成树 BPDU,它会丢弃它,因为它应该处理它,但这是错误的。
高达 1500 (0x05dc)的 EtherType/ Length值表示帧的有效载荷长度。值 1501-1535 (0x05dd-0x05ff) 未定义,真正的Ethertype值从 1536 (0x600) 开始。
接收交换机可能忽略了帧的其余部分,并且由于假定的 FCS 不匹配,它会丢弃错误帧。
您需要使用更大的值并注意您的私有 EtherType 不会与任何已使用的东西发生冲突。