维基百科上的图太可怕了。希望我要写的更加清晰。
802.3以太网中的最大有效负载为1500字节。
这是您尝试通过电线发送的数据(以及MTU指的是什么)。
[payload]
<-1500字节
有效负载封装在以太网帧中(以太网帧中添加了源/目标MAC,VLAN标签,长度和CRC校验和。这是总共22个字节的附加“内容”,
[SRC+DST+VLAN+LENGTH+[payload]+CRC]
<-1522字节)
帧通过电线传输-在您的以太网卡做完之前,它基本上已经站起来并且大声喊叫以确保没有其他人正在使用电线(CSMA / CD)-这是Preamble和帧开始定界符(SFD)-额外的8个字节,所以现在我们有:
[Preamble+SFD+[Ethernet Frame]]
<-1530字节
最终,当以太网收发器完成发送帧时,802.3要求它在允许发送下一帧之前先发送12个字节的静默(“帧间间隙”)。
[Preamble+SFD+[Ethernet Frame]+Silence]
<-1542字节通过网络传输。
前同步码,SFD和帧间间隙不算作帧的一部分。它们是以太网协议本身的支持结构。
MTU适用于有效负载-它是您可以塞入数据包的最大数据单位。因此,一个MTU为1500字节的以太网数据包实际上将是1522字节的帧,并在线路上是1542字节(假设有一个vLAN标签)。
因此,您的问题的答案- 我可以通过802.3以太网发送而不会产生碎片的最大数据包是什么?-是1500字节的有效载荷数据。
但是,以太网层可能不是您的限制因素。若要发现是否有某种方式限制MTU小于有效负载数据的1500字节,请使用以下任一方法:
- Windows :(
ping hostname -f -l sizeofdata
提到技术John K)
- BSD:
ping -D -s sizeofdata hostname
- Linux:
ping -M do -s sizeofdata hostname
最大的价值sizeofdata
就是MTU(在数据采用的特定路径上)。