1
2
3
4
|
ifconfig
:<<EOF
eth0: flags=4163<UP,BROADCAST,RUNNING,MULTICAST> mtu 1500
EOF
|
由命令可知:
linux下的 MTU 为 1500 个字节
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
|
ping -s 1460 -M do baidu.com
:<<EOF
PING baidu.com (220.181.38.148) 1460(1488) bytes of data.
1468 bytes from 220.181.38.148 (220.181.38.148): icmp_seq=1 ttl=47 time=98.7 ms
1468 bytes from 220.181.38.148 (220.181.38.148): icmp_seq=2 ttl=47 time=122 ms
1468 bytes from 220.181.38.148 (220.181.38.148): icmp_seq=3 ttl=47 time=80.7
EOF
# 命令含义:
:<<FLAG
含义:发送大小包大小是1460(+28)字节,禁止路由器拆分数据包。
windows 下的命令是这个:
ping -f -l 1460 baidu.com
FLAG
|
ping命令 为什么+ 28字节
MTU = IP封包的大小
2、IP包头有多大?
在典型情况下(即IP包头没有附加数据时),IP包头大小是20字节。
4、ping使用的是什么协议?
ping使用的是ICMP协议,而ICMP协议包头是8字节。而ICMP是第4层的,基于IP协议工作的协议。
所以这个28字节的大小,其实就是 【ICMP的包头8字节】+【IP包头的20字节】,最后再加上实际的数据大小,就是MTU的大小了。
http://blog.chinaunix.net/uid-20639775-id-3529535.html
开启sack
当Linux实例未开启TCP SACK时,可能会影响Linux实例的网络性能。此时,您可以参考本文内容,开启TCP SACK。
1
2
3
4
5
6
|
vim /etc/sysctl.conf
#编辑内容
net.ipv4.tcp_sack = 1
:wq
sysctl -p
|