以太网数据包的大小书上说为64---1518. 但有的说1472,但ping的时候可以是32 也可以是1,还可以是65500。

到底那个才是对的,还有MTU规定的是1500。。。。。晕了,谁能给我解释下,别复制。

还要请楼主弄清一些概念。
以太网中的最大传输单元(MTU)为1500
另外,数据包和帧是两个概念,他们分别在OSI七层模型中的网络层和数据链路成。
在谈到包的时候,它包括:ip首部+传输层封装部分。而谈到数据帧的时候,则是帧首部+ip层封装的数据包+帧校验。即,链路层是封装网络层下来的数据包的。
在百度百科中搜数据帧所给的信息:MAC帧的数据部分只有一个字段,其长度在46到1500字节之间,包含的信息是网络层传下来的数据。
可以看到以太网MTU为1500,那1472是什么?以太网的帧首部使用18字节,剩给整个IP包(首部+数据部分)的只有1472字节。即,您所说的1472是MTU为1500时,ip层数据包的大小为1472。

最后就是您说的ping,您说的那些数字32,1,65500等为icmp的echo数据包的数据量。的确,完全可以设置65500那么大,那是因为ip层中的分片字段起到的作用,他们会将很大的数据包分割成小的数据包然后再封装传输。并且请注意,这是在路由器上进行的。
但当您输入ping -l 100000000来ping自己网关也是可以通的,此时不可以加上-f(不要分片)参数,因为数据量已经超出规定限额,因此网卡会先进行分段然后再发送这些数据。追问

首先感谢你的回答,但最后说的ping -l 1000000000 是不行的,最大只能是65000,而且分割包是在自己网卡上分的吧?因为我ping 127.0.0.1 -f 的时候超过1472的就需要分包才能发送。

追答

实在不好意思楼主,例子举得夸张了。针对于您的追问,我这里有个之前别人回答过的问题,请楼主参考一下http://zhidao.baidu.com/question/139665920.html

温馨提示:答案为网友推荐,仅供参考
第1个回答  2011-07-20
MTU叫最大传输单元。你在PING时候那个32、1、65500这个是包长 ping ip -l 设置那个吧
64-1518是包封装的字节数。1472也是这个意思。希望能帮到你