簡介
MTR(My traceroute)是幾乎所有Linux發行版本預裝的網絡測試工具,此工具也有對應的Windows版本,名稱為WinMTR(下載地址:https://sourceforge.net/projects/winmtr/files/WinMTR-v092.zip/?spm=a2c4g.11186623.2.14.584d4c07jpMNws)
MTR工具將ping和traceroute命令的功能並入了同一個工具中,實現更強大的功能,Linux版本的mtr命令默認發送ICMP數據包進行鏈路探測。可以通過“-u”參數來指定使用UDP數據包用於探測 ----來源阿里雲幫助文檔
用法:
mtr [-BfhvrwctglxspQomniuT46] [--help] [--version] [--report] [--report-wide] [--report-cycles=COUNT] [--curses] [--gtk] [--csv|-C] [--raw] [--xml] [--split] [--mpls] [--no-dns] [--show-ips] [--address interface] [--filename=FILE|-F] [--ipinfo=item_no|-y item_no] [--aslookup|-z] [--psize=bytes/-s bytes] [--order fields] [--report-wide|-w] [--inet] [--inet6] [--max-ttl=NUM] [--first-ttl=NUM] [--bitpattern=NUM] [--tos=NUM] [--udp] [--tcp] [--port=PORT] [--timeout=SECONDS] [--interval=SECONDS] HOSTNAME
命令幫助
[root@iZ8vba689kou8r8sq4yw44Z ~]# mtr -h Usage: mtr [options] hostname -F, --filename FILE read hostname(s) from a file ## 從文件里讀取探測主機 -4 use IPv4 only ## 僅用IPv4 -6 use IPv6 only ## 僅用IPv6 -u, --udp use UDP instead of ICMP echo ## 使用UDP協議替代ICMP -T, --tcp use TCP instead of ICMP echo ## 使用TCP協議代替ICMP -a, --address ADDRESS bind the outgoing socket to ADDRESS ## 綁定出網地址,對於本機多網卡有用 -f, --first-ttl NUMBER set what TTL to start ## 指定起始TTL值 -m, --max-ttl NUMBER maximum number of hops ## 最大路由數 -U, --max-unknown NUMBER maximum unknown host ## 最大不可達的主機數 -P, --port PORT target port number for TCP, SCTP, or UDP ## 指定測試的目標端口 -L, --localport LOCALPORT source port number for UDP ## 本地UDP源端口 -s, --psize PACKETSIZE set the packet size used for probing ## 指定探測包的大小 -B, --bitpattern NUMBER set bit pattern to use in payload -i, --interval SECONDS ICMP echo request interval ## ping包發送的時間間隔 -G, --gracetime SECONDS number of seconds to wait for responses ## 等待響應的時間間隔 -Q, --tos NUMBER type of service field in IP header -e, --mpls display information from ICMP extensions -Z, --timeout SECONDS seconds to keep probe sockets open -M, --mark MARK mark each sent packet -r, --report output using report mode ## 使用報告模式輸出 -w, --report-wide output wide report -c, --report-cycles COUNT set the number of pings sent ## 指定發送的ping包數量 -j, --json output json -x, --xml output xml -C, --csv output comma separated values -l, --raw output raw format -p, --split split output -t, --curses use curses terminal interface --displaymode MODE select initial display mode -n, --no-dns do not resove host names ## 不解析主機名 -b, --show-ips show IP numbers and host names -o, --order FIELDS select output fields ## 顯示輸出字段 -y, --ipinfo NUMBER select IP information in output -z, --aslookup display AS number ## 回顯的數量
-o選項的輸出字段
L | Loss ratio | 丟包率 |
D | Dropped packets | 丟包數量 |
R | Received packets | 接收數量 |
S | Sent Packets | 發包數量 |
N | Newest RTT(ms) | 最新往返延遲 |
B | Min/Best RTT(ms) | 最小往返延遲 |
A | Average RTT(ms) | 平均往返延遲 |
W | Max/Worst RTT(ms) | 最大往返延遲 |
V | Standard Deviation | 標准差 |
G | Geometric Mean | 幾何平均數 |
J | Current Jitter | 當前抖動 |
M | Jitter Mean/Avg. | 平均抖動 |
X | Worst Jitter | 最大抖動 |
I | Interarrival Jitter | 抖動間隔 |
Jitter:抖動,其定義延遲從來源地址將要發送到目標地址,會發生不一樣的延遲,這樣的延遲變動是jitter
RTT:往返延遲,表示從發送端發送數據開始,到發送端收到來自接收端的確認(接收端收到數據后便立即發送確認),總共經歷的時延。往返延時(RTT)由三個部分決定:即鏈路的傳播時間、末端系統的處理時間以及路由器的緩存中的排隊和處理時間。其中,前面兩個部分的值作為一個TCP連接相對固定,路由器的緩存中的排隊和處理時間會隨着整個網絡擁塞程度的變化而變化。所以RTT的變化在一定程度上反映了網絡擁塞程度的變化。簡單來說就是發送方從發送數據開始,到收到來自接受方的確認信息所經歷的時間
示例
參數解釋:檢測本地到www.baidu.com的連通性,發送5個包,最多經過15次路由,以報告的形式每2秒顯示一次輸出結果
[root@iZ8vba689kou8r8sq4yw44Z ~]# mtr -c 5 -i 2 -n -m 15 -r www.baidu.com ## 默認輸出字段LSNABWV Start: 2020-04-12T16:25:03+0800 HOST: iZ8vba689kou8r8sq4yw44Z Loss% Snt Last Avg Best Wrst StDev 1.|-- ??? 100.0 5 0.0 0.0 0.0 0.0 0.0 2.|-- 11.63.128.225 0.0% 5 52.1 52.5 52.0 54.3 1.0 3.|-- 11.63.128.114 0.0% 5 2.4 5.5 2.4 16.9 6.4 4.|-- 10.255.108.241 0.0% 5 1.4 1.6 1.2 2.4 0.4 5.|-- 116.251.124.153 0.0% 5 0.9 2.1 0.8 6.9 2.7 6.|-- 45.112.221.173 0.0% 5 6.8 6.8 6.6 7.3 0.3 7.|-- 123.56.34.13 0.0% 5 6.5 7.4 6.1 11.9 2.5 8.|-- 106.38.196.233 40.0% 5 12.6 12.6 12.6 12.7 0.0 9.|-- 36.110.244.61 0.0% 5 7.8 7.7 7.6 7.9 0.1 10.|-- ??? 100.0 5 0.0 0.0 0.0 0.0 0.0 11.|-- 220.181.17.146 0.0% 5 10.1 8.8 8.4 10.1 0.7 12.|-- ??? 100.0 5 0.0 0.0 0.0 0.0 0.0 [root@iZ8vba689kou8r8sq4yw44Z ~]# mtr -c 5 -i 2 -n -m 15 -r -o "LSD" www.baidu.com Start: 2020-04-12T16:20:53+0800 HOST: iZ8vba689kou8r8sq4yw44Z Loss% Snt Drop 1.|-- ??? 100.0 5 5 2.|-- 11.63.128.225 0.0% 5 0 3.|-- 11.63.128.114 0.0% 5 0 4.|-- 10.255.108.241 0.0% 5 0 5.|-- 116.251.124.153 0.0% 5 0 6.|-- 45.112.221.173 0.0% 5 0 7.|-- 123.56.34.13 0.0% 5 0 8.|-- 106.38.196.233 60.0% 5 3 9.|-- 36.110.244.61 0.0% 5 0 10.|-- ??? 100.0 5 5 11.|-- 220.181.17.146 0.0% 5 0 12.|-- ??? 100.0 5 5 [root@iZ8vba689kou8r8sq4yw44Z ~]# mtr -c 5 -i 2 -n -m 3 -r -o "LSD" www.baidu.com Start: 2020-04-12T16:21:29+0800 HOST: iZ8vba689kou8r8sq4yw44Z Loss% Snt Drop 1.|-- ??? 100.0 5 5 2.|-- 11.63.128.225 0.0% 5 0 3.|-- 11.63.128.114 40.0% 5 2
默認輸出結果說明:
第一列:主機名和IP地址
第二列:丟包數量
第三列:發包數量
第四列:往返延遲
第五列:平均延遲
第六列:最小延遲
第七列:最大延遲
第八列:標准差,越大說明相應節點越不穩定。
在做mtr測試的時候,應該分兩個方向,即客戶端<------->服務器。根據測試結果分析,是本地網絡節點異常,需要調整本地網絡。如果運營商節點出現問題,需要聯系運營商