原创文章,转载请标明出处
http://space.itpub.net/26239116/viewspace-749136
关于MTU
[root@test ~]# ifconfig
eth0 Link encap:Ethernet HWaddr 08:00:27:A6:B7:BF
inet addr:192.168.50.161 Bcast:192.168.50.255 Mask:255.255.255.0
inet6 addr: fe80::a00:27ff:fea6:b7bf/64 Scope:Link
UP BROADCAST RUNNING MULTICAST MTU:1500 Metric:1
RX packets:13603 errors:0 dropped:0 overruns:0 frame.:0
TX packets:22817 errors:0 dropped:0 overruns:0 carrier:0
collisions:0 txqueuelen:1000
RX bytes:3611905 (3.4 MiB) TX bytes:8082220 (7.7 MiB)
Base address:0xd010 Memory:f0000000-f0020000
lo Link encap:Local Loopback
inet addr:127.0.0.1 Mask:255.0.0.0
inet6 addr: ::1/128 Scope:Host
UP LOOPBACK RUNNING MTU:16436 Metric:1
RX packets:2596 errors:0 dropped:0 overruns:0 frame.:0
TX packets:2596 errors:0 dropped:0 overruns:0 carrier:0
collisions:0 txqueuelen:0
RX bytes:1959318 (1.8 MiB) TX bytes:1959318 (1.8 MiB)
eth0 Link encap:Ethernet HWaddr 08:00:27:A6:B7:BF
inet addr:192.168.50.161 Bcast:192.168.50.255 Mask:255.255.255.0
inet6 addr: fe80::a00:27ff:fea6:b7bf/64 Scope:Link
UP BROADCAST RUNNING MULTICAST MTU:1500 Metric:1
RX packets:13603 errors:0 dropped:0 overruns:0 frame.:0
TX packets:22817 errors:0 dropped:0 overruns:0 carrier:0
collisions:0 txqueuelen:1000
RX bytes:3611905 (3.4 MiB) TX bytes:8082220 (7.7 MiB)
Base address:0xd010 Memory:f0000000-f0020000
lo Link encap:Local Loopback
inet addr:127.0.0.1 Mask:255.0.0.0
inet6 addr: ::1/128 Scope:Host
UP LOOPBACK RUNNING MTU:16436 Metric:1
RX packets:2596 errors:0 dropped:0 overruns:0 frame.:0
TX packets:2596 errors:0 dropped:0 overruns:0 carrier:0
collisions:0 txqueuelen:0
RX bytes:1959318 (1.8 MiB) TX bytes:1959318 (1.8 MiB)
网络中传输信息的单位是“帧”,链路层的协议,如802.x,它们的工作就是给IP包加上帧头和帧尾。
MTU是最大传输单位,也就是帧的有效载荷限制,默认为1500。为了符合这个限制,IP层会根据目的地的MTU将大包分片。
分片是有性能损耗的,这就引来了一个问题:
对于VPN这样的隧道网络,隧道会给包加上长度为40左右的隧道头,使长度为1500的包变成1540。这样就会造成频繁分片。
虚拟机:192.168.50.161
网关:192.168.50.1
随便设置一个MTU:(大家玩的时候不要设太小,设成100的话虚拟机会down掉)
ifconfig eth0 mtu 1000
在虚拟机本机上用tcpdump监控22端口
(注意由于这条命令首先会给客户端返回一些信息,因此如果在ssh中端执行下面命令,等于就是有ssh包了,就会像一个人站在两面镜子之间,镜子里出现无数镜像一样)
执行命令 tcpdump port 22 -vv
然后用windows的ssh工具给虚拟机传一个文件。
查看tcpdump输出
注意下图中,从外面来的包,被路由器分片了,但是从虚拟机出去的包没有。这是因为是根据目的地的mtu进行分片。
来自 “ ITPUB博客 ” ,链接:http://blog.itpub.net/26239116/viewspace-749136/,如需转载,请注明出处,否则将追究法律责任。
转载于:http://blog.itpub.net/26239116/viewspace-749136/