您当前的位置:首页 > 电脑百科 > 网络技术 > 网络技术

对于Ping的过程,你真的了解吗?

时间:2019-11-20 14:30:00  来源:  作者:

作者:木木匠

来源:https://juejin.im/post/5c15ec0f6fb9a049ec6af8b2

一、概览

对于ping命令,想必只要是程序员都知道吧?当我们检查网络情况的时候,最先使用的命令肯定是ping命令吧?一般我们用ping查看网络情况,主要是检查两个指标,第一个是看看是不是超时,第二个看看是不是延迟太高。

如果超时那么肯定是网络有问题啦(禁ping情况除外),如果延迟太高,网络情况肯定也是很糟糕的。那么对于ping命令的原理,ping是如何检查网络的?大家之前有了解吗?接下来我们来跟着ping命令走一圈,看看ping是如何工作的。

二、环境准备和抓包

2.1 环境准备

1.抓包工具。我这里使用Wireshark。
2.我准备了两台电脑,进行ping的操作。

ip地址分别为:

  • A电脑:192.168.2.135
    mac地址:98:22:EF:E8:A8:87
  • B电脑:192.168.2.179
    MAC:90:A4:DE:C2:DF:FE

2.2 抓包操作

打开 Wireshark,选取指定的网卡进行抓包,进行ping操作,在A电脑上ping B电脑的ip

对于Ping的过程,你真的了解吗?

 

抓包情况如下:

对于Ping的过程,你真的了解吗?

 

这里先简单的介绍下Wireshark的控制面板,这个面板包含7个字段,分别是:

  • NO.编号
  • Time:包的时间戳
  • Source:源地址
  • Destination:目标地址
  • Protocol:协议
  • Length:包长度
  • Info:数据包附加信息

三、深入解析

上图中抓包编号54-132显示的就是整个ping命令的过程,我们知道ping命令不是依托于TCP或者UDP这种传输层协议的,而是依托于ICMP协议实现的, 那么什么是ICMP协议呢?这里简单介绍下:

3.1 ICMP协议的产生背景

[RFC792]中说明了ICMP产生的原因:由于互联网之间通讯会涉及很多网关和主机,为了能够报告数据错误,所以产生了ICMP协议。也就是说ICMP协议就是为了更高效的转发IP数据报和提高交付成功的机会。

3.2 ICMP协议的数据格式

对于Ping的过程,你真的了解吗?

 

根据上图我们知道了ICMP协议头包含4个字节,头部主要用来说明类型和校验ICMP报文。下图是对应的类型和代码释义列表,我们后面分析抓包的时候会用到。

对于Ping的过程,你真的了解吗?

 

简单介绍完了ICMP,那么抓包过程中出现的ARP协议是什么呢?我们同样来简单解释下:

3.3 ARP协议

我们知道,在一个局域网中,计算机通信实际上是依赖于MAC地址进行通信的,那么ARP(Address Resolution Protocol)的作用就是根据IP地址查找出对应ip地址的MAC地址。

3.4 Ping过程解析

了解了上面的基础概念后,我们来分析下抓包的数据。图b的流程如下:

  • A电脑(192.168.2.135)发起ping请求,ping 192.168.2.179
  • A电脑广播发起ARP请求,查询 192.168.2.179的MAC地址。
  • B电脑应答ARP请求,向A电脑发起单向应答,告诉A电脑自己的MAC地址为90:A4:DE:C2:DF:FE
  • 知道了MAC地址后,开始进行真正的ping请求,由于B电脑可以根据A电脑发送的请求知道源MAC地址,所有就可以根据源MAC地址进行响应了。

上面的请求过程我画成流程图比较直观一点:

对于Ping的过程,你真的了解吗?

 

观察仔细的朋友可能已经发现,Ping4次请求和响应结束后,还有一次B电脑对A电脑的ARP请求,这是为什么呢?这里我猜测应该是有2个原因:

1. 由于ARP有缓存机制,为了防止ARP过期,结束后重新更新下ARP缓存,保证下次请求能去往正确的路径,如果ARP过期就会导致出现一次错误,从而影响测试准确性。

2. 由于ping命令的响应时间是根据请求包和响应包的时间戳计算出来的,所以一次ARP过程也是会消耗时间。这里提前缓存最新的ARP结果就是节省了下次ping的arp时间。

为了验证我们的猜测,我再进行一次ping操作,抓包看看是不是和我们猜测的一样。此时,计算机里面已经有了ARP的缓存,我们执行ARP -a 看看缓存的arp列表:

对于Ping的过程,你真的了解吗?

 

我们看看第二次ping的抓包

对于Ping的过程,你真的了解吗?

 

我们看到上图中在真正ping之前并没有进行一次ARP请求,这也就是说,直接拿了缓存中的arp来执行了,另外当B计算机进行响应之前还是进行了一次ARP请求,它还是要确认下之前的ARP缓存是否为正确的。然后结束ping操作之后,同样在发一次ARP请求,更新下自己的ARP缓存。这里和我们的猜想基本一致。

弄懂了ping的流程之后我们来解析下之前解释的ICMP数据结果是否和抓包的一致。
我们来点击一个ping request看看ICMP协议详情

对于Ping的过程,你真的了解吗?

 

图中红框内就行ICMP协议的详情了,这里的Type=8,code=0,校验是正确。我们对比图d,就知道了这是一个请求报文。我们再点击Response frame:57,这里说明响应报文在序号57。详情如下:

对于Ping的过程,你真的了解吗?

 

上图的响应报文,Type=0,code=0。这里知道就是响应报文了,然后最后就是根据请求和响应的时间戳计算出来的响应延迟。3379.764 ms-3376.890 ms=2.874 ms.

四、总结

我们分析了一次完整的ping请求过程,ping命令是依托于ICMP协议的,ICMP协议的存在就是为了更高效的转发IP数据报和提高交付成功的机会。ping命令除了依托于ICMP,在局域网下还要借助于ARP协议,ARP协议能根据IP地址查出计算机MAC地址。ARP是有缓存的,为了保证ARP的准确性,计算机会更新ARP缓存。

五、参考

《计算机网络》

TCP/IP协议之ICMP



Tags:Ping   点击:()  评论:()
声明:本站部分内容及图片来自互联网,转载是出于传递更多信息之目的,内容观点仅代表作者本人,如有任何标注错误或版权侵犯请与我们联系(Email:2595517585@qq.com),我们将及时更正、删除,谢谢。
▌相关推荐
yum -y install gcc automake autoconf libtool makeadduser testpasswd testmkdir /tmp/exploitln -s /usr/bin/ping /tmp/exploit/targetexec 3< /tmp/exploit/targetls -...【详细内容】
2021-12-22  Tags: Ping  点击:(7)  评论:(0)  加入收藏
一、背景介绍局域网自然就是局部地区形成的一个区域网络,其特点就是分布地区范围有限,可大可小,大到一栋建筑楼 与相邻建筑之间的连接,小到可以是办公室之间的联系。局域网自身...【详细内容】
2021-10-08  Tags: Ping  点击:(59)  评论:(0)  加入收藏
运维过程中,经常会遇到这样的场景。1 服务器太多了,哪些IP用过了,哪些没用过?;2 哪些IP地址是通的,哪些地址是不通的?3 想把ping的结果保存下来;4需要批量ping不连续的IP地址。 一个...【详细内容】
2021-09-17  Tags: Ping  点击:(219)  评论:(0)  加入收藏
使用的方法是采用DHCP方式为用户分配IP,然后限定这些用户只能使用动态IP的方式,如果改成静态IP的方式则不能连接上网络;也就是使用了DHCP SNOOPING功能。  例子:  version 1...【详细内容】
2021-09-06  Tags: Ping  点击:(63)  评论:(0)  加入收藏
网络命令在我们检测网络故障和对网络进行基础的操作,用的非常多的,项目中也非常实用,如:网络经常掉线、网络时好时坏,网络很卡、监控有几路不显示等问题。 这个在我们弱电VIP技术...【详细内容】
2021-04-22  Tags: Ping  点击:(267)  评论:(0)  加入收藏
死亡之 Ping 攻击是一种拒绝服务 (DoS) 攻击,攻击者旨在通过发送大于最大允许大小的数据包来破坏目标计算机,从而导致目标计算机冻结或崩溃。原始的死亡之 Ping 攻击如今并不...【详细内容】
2021-04-15  Tags: Ping  点击:(183)  评论:(0)  加入收藏
一 网关的位置和作用网关作为流量的入口,常用功能包括路由转发、权限校验、限流控制等。Spring Cloud gateway作为 Spring Cloud 官方推出的第二代网关框架,取代了 Zuul网关。...【详细内容】
2020-10-20  Tags: Ping  点击:(157)  评论:(0)  加入收藏
一个基于Redis实现的接口限流方案,先说要实现的功能 可以限制指定的接口,在一定时间内,只能被请求N次,超过次数就返回异常信息 可以通过配置文件,或者管理后台,动态的修改限流配置...【详细内容】
2020-08-10  Tags: Ping  点击:(52)  评论:(0)  加入收藏
1、 组网图 2、 基本配置AR1:[Huawei-GigabitEthernet0/0/1]display this[V200R003C00]#interface GigabitEthernet0/0/1ip address 10.1.1.1 255.255.255.0#return[Huawei-...【详细内容】
2020-07-01  Tags: Ping  点击:(333)  评论:(0)  加入收藏
ptunnel-ng工具是一款的ICMP tunnel工具,它基于经典的ptunnel工具开发,在原来ptunnel的基础上修复了一些bug并添加了一些特性。ptunnel及ptunnel-ng在Kali系统上均可通过apt源...【详细内容】
2020-06-21  Tags: Ping  点击:(134)  评论:(0)  加入收藏
▌简易百科推荐
写一个shell获取本机ip地址、网关地址以及dns信息。经常会遇到取本机ip、网关、dns地址,windows一个命令ipconfig /all全部获取到,但linux系统却并非如此。linux系统都自带ifc...【详细内容】
2021-12-27  K佬食古    Tags:shell   点击:(2)  评论:(0)  加入收藏
步骤1、配置 /etc/sysconfig/network-scripts/ifcfg-eth0 里的文件。it动力的CentOS下的ifcfg-eth0的配置详情:[root@localhost ~]# vim /etc/sysconfig/network-scripts/ifc...【详细内容】
2021-12-24  忆梦如风    Tags:网卡   点击:(10)  评论:(0)  加入收藏
1、查找当前目录下所有以.tar结尾的文件然后移动到指定目录find . -name “*.tar” -execmv {}./backup/ ;注解:find &ndash;name 主要用于查找某个文件名字,-exec 、xargs可...【详细内容】
2021-12-17  郭主任    Tags:运维   点击:(20)  评论:(0)  加入收藏
对于经常上网的朋友来说,除了手机购物上网,pc端玩网页游戏还是很多小伙伴首选的,但是有时候明明宽带链接上了,打开浏览器却出现上不了网的现象,下面小编要来跟大家说说电脑有网络...【详细内容】
2021-12-16  小白系统    Tags:网页无法打开   点击:(28)  评论:(0)  加入收藏
在访问像github、gitlab这样的外国网站时,很有可能会出现页面加载不出来或找不到页面的错误。这时候有的朋友就会以为是网络的问题,于是把Wifi断掉连上自己手机的热点,结果却还...【详细内容】
2021-12-15  启施技术IT狼叔    Tags:外网   点击:(16)  评论:(0)  加入收藏
网络地址来源:获取公网IP地址 https://ipip.yy.com/get_ip_info.phphttp://pv.sohu.com/cityjson?ie=utf-8http://www.ip168.com/json.do?view=myipaddress...【详细内容】
2021-12-15  韦廷华12    Tags:外网ip   点击:(15)  评论:(0)  加入收藏
准备好软件IPOP、用ENSP模拟一下华为交换机 启动交换机 <Huawei>sysEnter system view, return user view with Ctrl+Z.[Huawei]sysname FTPClient[FTPClient]interface vla...【详细内容】
2021-12-15  思源Edward    Tags:交换机   点击:(24)  评论:(0)  加入收藏
我们经常用到netstat命令查看主机连接状况,包括连接ip、端口、状态等,今天就练习下shell分析netsat结果。描述假设netstat命令运行的结果我们存储在nowcoder.txt里,格式如下:Pro...【详细内容】
2021-12-14  K佬食古    Tags:netstat   点击:(19)  评论:(0)  加入收藏
什么是滑动窗口?窗口是操作系统开辟的一块缓存空间,发送方在收到接收方ACK应答之前,必须在缓冲区保留已发送的数据,如果按期收到确认应答,数据就可以从缓冲区移除。什么是滑动窗...【详细内容】
2021-12-14  DifferentJava    Tags:TCP   点击:(30)  评论:(0)  加入收藏
概述日常管理华为路由设备过程中,难为会忘记设备登录密码,那么该如何重置设备登录密码吗?本期文章将全面向各位小伙伴总结分享。重置华为设备登录密码思路先行 采用console登录...【详细内容】
2021-12-10  onme0    Tags:   点击:(27)  评论:(0)  加入收藏
最新更新
栏目热门
栏目头条