Networking 以太网ipv4总长度字段与帧的总长度不匹配

Networking 以太网ipv4总长度字段与帧的总长度不匹配,networking,header,ethernet,ipv4,Networking,Header,Ethernet,Ipv4,当IPv4报头中的总长度字段值小于以太网帧的长度时,会发生什么情况?当接收到这种帧时,设备将如何运行?由于不一致,设备将帧识别为无效,并将其拒绝 第二种情况,最大以太网帧长度是1518字节——当我扩展这个帧并添加额外的2个字节时会发生什么。假设IPv4总长度与扩展帧的长度匹配 谢谢。IPv4标头中总长度字段的值必须小于帧长度;其他任何东西都是腐败的标志。IPv4数据包是帧的有效负载,因此帧长度是数据包总长度加上帧头和帧尾。好的,我明白了。但是,如果IPv4标头中的Total Length字段的值

当IPv4报头中的总长度字段值小于以太网帧的长度时,会发生什么情况?当接收到这种帧时,设备将如何运行?由于不一致,设备将帧识别为无效,并将其拒绝

第二种情况,最大以太网帧长度是1518字节——当我扩展这个帧并添加额外的2个字节时会发生什么。假设IPv4总长度与扩展帧的长度匹配


谢谢。

IPv4标头中总长度字段的值必须小于帧长度;其他任何东西都是腐败的标志。IPv4数据包是帧的有效负载,因此帧长度是数据包总长度加上帧头和帧尾。

好的,我明白了。但是,如果IPv4标头中的Total Length字段的值小于IPv4标头和IPv4数据的长度之和,会发生什么情况?不包括ETH头。首先,您需要通过根本不这样做的发件人,因为它违反了标准。如果发生在传输过程中,CRC可能不正确,数据包将被丢弃。如果您以某种方式故意造成这种情况,将取决于操作系统和驱动程序。这可能导致缓冲区溢出,这将被视为攻击。现代操作系统和驱动程序可能会寻找这种确切的情况并丢弃数据包。好了,现在清楚了。所以,如果我想扩展帧,我必须修改总长度和校验和。我有最后一个问题:最大ETH帧长度是1518B,但我的最大IP总长度是65535B。我不清楚如何创建这样的数据包,该数据包在IP帧中的字节数比在以太网中的字节数多(ETH包含IPv4报头和有效负载)。以太网并不是IP传输的唯一第二层协议。层的要点是每个层都独立于其他层。在开发IP和以太网时,两者都不是必然的事情。IP最初是通过广域网电路使用的,目前还不清楚这两种协议是否能继续存在。IP几乎可以与任何第2层协议一起使用,并且每个协议都有不同的最大长度。例如,Wi-Fi的最大长度与以太网不同。帧中继可以有比这两个更大的最大帧大小。谢谢你的回答。我感谢你的帮助。当我试图扩展框架时,问题出现了。我正在为10Gbps以太网IPv4实施高速AES加密系统。我用于加密的有效负载在ETH和IPv4报头(256+16b)之后开始,AES输出总是128b并且总是有效的。当ETH IPv4标准中的帧具有最大长度时,我无法扩展帧(AES模块的最后16b将超过最大帧长度)。也许我尝试使用不同的ethertype输出帧,例如Jumbo帧。你觉得怎么样?