DreamCat 发表于 2004-10-10 16:53:52

MTU:最大传输单元。单位为字节。常用的以太网的MTU为:      1500 PPPoE(ADSL) 的MTU 为: 1492 Dial-up(MODEM)的MTU:    576 如果你所使用的系统所设定的MTU过大,则会造成数据传输失败,过小的话则会导致传输效率下降,非常明显。所以WINDOWS当中默认的MTU就是以太网的MTU,即:1500。我们可以使用WINDOWS的PING命令检查当前网络的MTU值。假设我们的路由器IP地址为192.168.0.1。使用命令:ping -f -l 1500 192.168.0.1这里有两个参数 -f 和 -l。-fSet Don't Fragment flag in packet.在封包内设置不整理(不重组)标记。-l size   Send buffer size.   发送封包的大小。我们会看到 “Packet needs to be fragmented but DF set.” 告诉我们封包需要重组。原因就是封包过大。这里需要注意的是 MTU 定义的是封包的大小,但是我们在-l参数里设定的值是封包内容大小,需要加上28(封包头的大小)才是我们发出的封包大小。1500-28=1472所以需要修改命令为:ping -f -l 1472 192.168.0.1这样才会得到正常的状态返回。大家可以自己修改不同的值看一下。在使用ADSL的路由器上,外部网卡所设定的MTU就是1492,PING的值就应该是:1492-28=1464可惜我至今也不知道CL的BUSYBOX所使用的PING命令的选项,晚上去查。

neverseen 发表于 2004-10-10 17:09:11

嘿嘿,有心人啊

samenlia 发表于 2004-10-10 18:15:30

要测试出支持的MTU:修改 -l 的值,如果ping通,则小了,如果提示 DF,则大了,直到提示Request timed out. ,那这个就是临界值了,应该也就是最大值了,多ping几次就会通的。 这样太麻烦,有没有更好的办法找出MTU?

DreamCat 发表于 2004-10-10 18:25:41

为什么会出现 请求超时?

a99456820 发表于 2004-10-11 09:32:34

ycfei 发表于 2004-10-11 14:09:10

那怎么设自己的MTU值啊..在WIN下和LINUX下.

稀泥吧 发表于 2004-10-15 11:48:09

谢谢~~~~
页: [1]
查看完整版本: 基础知识:关于PING命令和MTU