Ping 命令原理及使用

最近处理国内访问AWS海外区网络问题,学习了一系列原来没有彻底搞清楚网络知识,这里特此记录。Ping命令可以拿来测网络是否联通,网络响应时间和基础的掉包率。但掉包分析建议使用mtr工具完成。

ping是一种计算机网络工具,用来测试数据包能否透过IP协议到达特定主机。ping的运作原理是向目标主机传出一个ICMP echo@要求数据包,并等待接收echo回应数据包。程序会按时间和成功响应的次数估算丢失数据包率(丢包率)和数据包往返时间(网络时延,Round-trip delay time)。

互联网控制消息协议(英语:Internet Control Message Protocol,缩写:ICMP)是互联网协议族的核心协议之一。它用于TCP/IP网络中发送控制消息。ICMP [1]依靠IP来完成它的任务,它是IP的主要部分。ICMP是包含在IP数据包中的,但是对ICMP消息通常会特殊处理,同样ICMP是不可靠传输。它与传输协议(如TCP和UDP)显著不同:它一般不用于在两点间传输数据。它通常不由网络程序直接使用,除了ping和traceroute这两个特别的例子。 IPv4中的ICMP被称作ICMPv4。Pv6中的ICMP则被称作ICMPv6。 所以Ping命令并不是用到了TCP和UDP,这里也就带来了一个前提:ping能被使用至少要目标主机开放了ICMP协议。

Ping + 网址/IP地址
Ping还可以携带参数
-t 不停ping对方主机
-p pattern 可以指定最多16个填充字节用于保持分组长度为16的整数倍。

例子:

ubuntu@test-dev:~$ ping www.baidu.com
PING www.a.shifen.com (61.135.169.125) 56(84) bytes of data.
64 bytes from 61.135.169.125 (61.135.169.125): icmp_seq=1 ttl=51 time=52.4 ms
64 bytes from 61.135.169.125 (61.135.169.125): icmp_seq=2 ttl=51 time=50.6 ms
64 bytes from 61.135.169.125 (61.135.169.125): icmp_seq=3 ttl=51 time=50.9 ms
64 bytes from 61.135.169.125 (61.135.169.125): icmp_seq=4 ttl=51 time=49.6 ms
64 bytes from 61.135.169.125 (61.135.169.125): icmp_seq=5 ttl=51 time=50.9 ms
64 bytes from 61.135.169.125 (61.135.169.125): icmp_seq=6 ttl=51 time=50.5 ms
--- www.a.shifen.com ping statistics ---
6 packets transmitted, 6 received, 0% packet loss, time 5007ms
rtt min/avg/max/mdev = 49.678/50.853/52.405/0.860 ms

这里讲下返回内容:
(1) 64 bytes为ping命令相应数据大小
(2) 第二个为服务器ip
(3) icmp_seq为ping测试包连续计数。
(4) TTL值
什么是TTL:当我们对网络上的主机进行ping操作的时候,本地机器会发出一个数据包,数据包经过一定数量的路由器传送到目的主机,但是由于很多的原因,一些数据包不能正常传送到目的主机,那如果不给这些数据包一个生存时间的话,这些数据包会一直在网络上传送,导致网络开销的增大。当数据包传送到一个路由器之后,TTL就自动减1,如果减到0了还是没有传送到目的主机,那么就自动丢失。
PING中的TTL:Linux系统的TTL值为64或255。注意这里TTL值 指的是目标主机到本地数据的路由跳数,比如上例中ping 百度的结果 ,即为的为64-52=12 意味着,从本地机到百度服务器经过了12跳路由。解释下这里的TTL: ping中的TTL为一个为ICMP回显应答(ICMP Echo Reply)的TTL,这是目标机发回来的数据包的TTL。而我们发过去的TTL是由我们本地机类型决定,并不会显示在ping结果。
(5) 网络时延
来回通信延迟(Round-trip delay time),在通信(Communication)、计算机网络(Computer network)领域中,意指:在双方通信中,发讯方的信号(Signal)传播(Propagation)到收讯方的时间(意即:传播延迟(Propagation delay)),加上收讯方回传消息到发讯方的时间(如果没有造成双向传播速率差异的因素,此时间与发讯方将信号传播到收讯方的时间一样久) 。即数据往返时间。
(6) 6 packets transmitted,总请求包数
(7) 6 received,收到包数
(8) 0% packet loss 掉包率
(9) rtt min/avg/max= 49.678/50.853/52.405/0.860 ms 最小/平均/最大网络时延
(10) mdev 它表示这些 ICMP 包的 RTT 偏离平均值的程度,这个值越大说明你的网速越不稳定。

参考:
https://zh.wikipedia.org/wiki/Ping

你可能感兴趣的:(工具)