以太网数据包的大小书上说为64---1518. 但有的说1472,但ping的时候可以是32 也可以是1,还可以是65500。
2个回答
2011-07-20
展开全部
还要请楼主弄清一些概念。
以太网中的最大传输单元(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(不要分片)参数,因为数据量已经超出规定限额,因此网卡会先进行分段然后再发送这些数据。
以太网中的最大传输单元(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
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询