美文网首页
用 ping 查找 MTU

用 ping 查找 MTU

作者: shelldon1024 | 来源:发表于2020-03-22 21:07 被阅读0次
    PING
    
    NAME
         ping -- send ICMP ECHO_REQUEST packets to network hosts
    
    DESCRIPTION
         -c count
                 Stop after sending (and receiving) count ECHO_RESPONSE packets.  If this option is not specified, ping will operate until interrupted.  If this option is specified in conjunction with ping sweeps, each sweep will consist of count packets.
    
         -D     
                 Set the Do not Fragment bit.
    
         -s packetsize
                 Specify the number of data bytes to be sent.  The default is 56, which translates into 64 ICMP data bytes when combined with the 8 bytes of ICMP header data.  This option cannot be used with ping sweeps.
    

    MTU = max icmp data + icmp header(8 bytes) + ip header(20 bytes)
    (题外话:MTU = MSS + tcp header(20 bytes) + ip header(20 bytes)
    因为 ping -s 选项指定的是 icmp data size,所以:
    ping -s (MTU-28) -D -c 1 ip_address
    不断试探 -s 选项的参数最后可以查找到 MTU。

    ➜  ~ ping -s 1473 -D -c 1 192.168.1.105
    PING 192.168.1.105 (192.168.1.105): 1473 data bytes
    ping: sendto: Message too long
    
    --- 192.168.1.105 ping statistics ---
    1 packets transmitted, 0 packets received, 100.0% packet loss
    ➜  ~
    ➜  ~ ping -s 1472 -D -c 1 192.168.1.105
    PING 192.168.1.105 (192.168.1.105): 1472 data bytes
    1480 bytes from 192.168.1.105: icmp_seq=0 ttl=64 time=103.999 ms
    
    --- 192.168.1.105 ping statistics ---
    1 packets transmitted, 1 packets received, 0.0% packet loss
    round-trip min/avg/max/stddev = 103.999/103.999/103.999/0.000 ms
    

    上面的例子可以看出测试机的 MTU 是 1472 + 28 = 1500(bytes)

    相关文章

      网友评论

          本文标题:用 ping 查找 MTU

          本文链接:https://www.haomeiwen.com/subject/xzmvyhtx.html