以太帧的格式如下所示(图片来源于Wikipedia):
通常以太帧的长度指的是从目的地址到冗余校验。
在802.3标准里,规定了一个以太帧的数据部分(Payload)的最大长度是1500个字节,这个数也是你经常在网络设备里看到的MTU。在这个限制之下,最长的以太帧包括6字节的目的地址(DMAC)、6字节的源地址(SMAC)、2字节的以太类型(EtherType)、1500字节的数据(Payload)、4字节的校验(FCS),总共是1518字节。
在802.1Q中,又定义了以太帧中可选的QTag,位于SMAC和EtherType之间,占4个字节。在这种情况下,一个以太帧如果有QTag,它的最大长度就变成了1522字节。
后来人们又觉得一个QTag不够用,在802.1ad又定义了Q in Q,也就是说一个以太帧可以有多个QTag,每增加一个QTag,以太帧的最大长度就增加4个字节。
上面说的基本都是十兆/百兆以太网的年代,但到了千兆以太网出现以后,发现如果payload被限制在1500字节,传输效率不够高,所以又提出了Jumbo Frame的概念。在一个Jumbo Frame中,Payload的长度是可以超过1500字节的,通常来说最高可以到9000字节,但并没有一个统一的标准。就目前来看,大部分商用的网络服务提供商都还不支持Jumbo Frame。
从上面可以看出,一个以太帧的最大长度不一定是1518字节,根据不同的标准,这个最大长度会变化。
看题主的截图应该是用Wireshark抓取TCP/IP包。一个IP数据包的长度是可以超过1500字节的,定义中最大是65535个字节(在IP Header里长度定义占16位)。在数据传输的时候,IP数据包作为Payload部分,网络设备会检查Payload长度有没有超过设备的MTU设置。通常来说,MTU的默认设置是1500字节。如果超过MTU,就进行分片处理,分成多个以太帧传输,每个以太帧的Payload长度不超过MTU,然后到了终端设备再进行重组。题主在Wireshark里看到的抓包应该是已经重组过的,所以会看到有超过1500字节Payload的“以太帧”。其实在传输过程中,以太帧的Payload长度都不会超过所经过网络设备的MTU值。