在我们日常电脑使用的过程中,当打开浏览器发现不能上网的时候,时常会使用ping命令来检测下百度是否能够连通。
但是对于这个我们常用的网络调试命令背后的基本工作原理,我们又知道多少呢?
接下来我们花费3分钟时间来了解下它的基本工作原理吧!
ping命令工作原理其实很简单,它是通过向目标主机发送ICMP回显请求报文,并接收其返回的ICMP回显应答报文,来判断网络连接状态和延迟。
在Windows下使用ping命令只需打开命令行窗口,输入ping及目标主机IP/域名。如ping www.baidu.com。
默认情况下,将会进行四次ICMP报文的请求和应答。
常用参数:
t: 持续发送ICMP请求以监视网络状况。
a: 将主机名解析为IP地址。
n: 指定要发送的回显请求报文数。
如:ping -t -a -n 10 www.baidu.com
下面我们对ping www.baidu.com 的ICMP报文进行分析。
当我们输入ping www.baidu.com敲下回车键之后,从我们主机将会向百度(119.63.197.151)发送一个ICMP请求报文,如果百度主机有接收到我们发送的这个ICMP报文的话,就会向我们主机发送一个ICMP应答报文。
我们通过Wireshark进行抓包,将会出现四组总共八条通讯记录。
下面我们一起来看看ICMP请求报文包含了哪些信息。
我们可以看到Type类型为8,也就是这个是一个请求报文。
请求报文中还会设定一个序列号,用于和之后的应答报文进行匹配。
接下来看看对于上述请求报文,目标主机发出的应答报文中包含了哪些信息。
该报文的Type类型为0,也就是应答报文。同时会设置请求报文中获得的同样的序列号值。
我们的主机接收到这个ICMP报文时,通过序列号就可以判断出之前发出的请求报文得到了目标主机的回复。
ping命令虽然简单,但对掌握网络原理和故障排查很有帮助。
要充分理解ICMP协议和各统计数据意义,熟练运用各参数,ping命令才能发挥最大效用。
✦✦
由于微信公众号修改了推送规则,
没有加“星标★”的订阅号,
收到的推送只有标题和小图,
而且会慢慢收不到最新的推送。
想要不错过各类讯息,
小伙伴们可以将【乐科科集团】公众号
加个星标❤
你 “在看” 我吗?

