高陵| 行唐| 鹰潭| 凤翔| 坊子| 昆山| 潢川| 潍坊| 南城| 金口河| 平乐| 池州| 邗江| 麻阳| 桃源| 铅山| 上海| 齐齐哈尔| 清水| 胶州| 吴堡| 稻城| 通江| 喀什| 索县| 榆中| 涿鹿| 措勤| 宾县| 德钦| 新绛| 通山| 青冈| 阿荣旗| 和硕| 云龙| 三台| 徽县| 文水| 阿城| 莒南| 嵩县| 乌兰察布| 阜宁| 湖北| 本溪满族自治县| 镇宁| 石嘴山| 西安| 隆德| 化州| 伊金霍洛旗| 河津| 西昌| 高陵| 洛阳| 太仓| 惠东| 河池| 溧阳| 梅县| 嘉义县| 固原| 宝清| 南康| 江口| 承德市| 定边| 衢江| 德化| 麦盖提| 江夏| 同安| 英吉沙| 龙川| 商都| 银川| 安泽| 合阳| 花莲| 广西| 丹徒| 额济纳旗| 金川| 崇仁| 马关| 金寨| 淮阴| 翁牛特旗| 七台河| 古丈| 神池| 扎鲁特旗| 黑山| 会理| 封开| 拜泉| 同江| 潍坊| 林口| 沧源| 温江| 河北| 同仁| 昌图| 龙川| 石狮| 东营| 博鳌| 安陆| 治多| 寻乌| 武胜| 勐腊| 高青| 灯塔| 平南| 紫阳| 平邑| 丰镇| 木里| 白碱滩| 色达| 万安| 西充| 突泉| 石渠| 台州| 宁夏| 恒山| 武陟| 富阳| 山丹| 澜沧| 友谊| 利津| 绍兴市| 高青| 娄烦| 秀屿| 西固| 庄河| 防城区| 南岔| 乐业| 富锦| 西华| 金山| 东光| 阳城| 开化| 永靖| 汉寿| 南江| 张家口| 林周| 平原| 乌审旗| 巴青| 云南| 桐柏| 兰州| 户县| 遵义县| 芜湖县| 西峡| 湄潭| 柞水| 吉木乃| 原平| 惠来| 尼勒克| 宾阳| 额敏| 洞口| 江川| 眉山| 桂阳| 阳新| 沙湾| 惠安| 恩施| 抚宁| 白朗| 青海| 大冶| 阿坝| 那坡| 西峡| 孟村| 阳山| 武宁| 中卫| 祥云| 苍溪| 甘棠镇| 江油| 鹰潭| 莒南| 弓长岭| 宜黄| 泸县| 新沂| 当涂| 红星| 金堂| 平罗| 青铜峡| 中阳| 中牟| 肃南| 独山| 柘荣| 天门| 南雄| 合水| 宝应| 勐腊| 长白山| 内黄| 色达| 永定| 治多| 宜君| 西宁| 下花园| 北海| 黄岩| 茌平| 西宁| 新都| 莱州| 鹰手营子矿区| 鄂温克族自治旗| 孟连| 从江| 浦江| 万荣| 卓尼| 靖边| 台南县| 乐清| 安西| 吉首| 凉城| 即墨| 白朗| 邵武| 缙云| 巴中| 舒城| 藁城| 望谟| 翠峦| 库尔勒| 乡宁| 邯郸| 蒙阴| 金口河| 嵊泗| 蕲春| 莒南| 宜春| 南靖| 龙虎斗技巧
|
|
51CTO旗下网站
|
|
移动端

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

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

作者:木木匠来源:Python运维圈|2019-01-18 10:38

一、概览

对于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。

图a

抓包情况如下:

图b

这里先简单的介绍下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协议的数据格式

图c

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

图d

简单介绍完了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地址进行响应了。

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

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

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

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

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

我们看看第二次ping的抓包:

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

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

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

上图的响应报文,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缓存。

【编辑推荐】

  1. 趋势科技并购TippingPoint 打造革命性网络防御解决方案
  2. 针对某APP的漏洞挖掘(抓包+逆向=挖到大漏洞)
  3. Vista Equity Partners收购Ping Identity
  4. “黑客”必用兵器之“网络抓包工具”
  5. 网络管理员的利器之9款最佳Ping监控工具
【责任编辑:武晓燕 TEL:(010)68476606】

点赞 0
分享:
大家都在看
猜你喜欢

读 书 +更多

2006软考上半年试题分析与解答

本书是针对全国计算机技术与软件专业技术资格(水平)考试而编写的,书中详尽分析与解答了2006年上半年的程序员级、软件设计师级、软件评测...

订阅51CTO邮刊

点击这里查看样刊

订阅51CTO邮刊
马延乡 化成镇 天通苑东大门 城厢街道 马家堡小区
西小王乡 唱经楼 金广路 双欣园 注滋口镇
永丰棋牌 威尼斯人注册 捕鱼游戏 网上真钱斗地主 澳门巴黎人注册
澳门现金网 澳门威尼斯人官方网址 新濠天地手机版网址 PT电子游戏 澳门地下游戏
澳门博彩有限公司 澳门威尼斯人备用网址 明升M88网址 澳门威尼斯人官方网址 电子游戏平台
网上现金斗地主 mg电子冰上曲棍球 真钱斗地主 博彩公司 威尼斯人注册
老虎机定位器 澳门大富豪网址 现金三公注册网址 牛牛游戏下载 现金骰宝 年度十大电子游戏 大小点游戏 玩什么游戏可以挣钱 电子游戏厅 方法奇葩赌博网 巴黎人网站 pt电子游戏哪个最会爆 澳门巴黎人游戏 澳门龙虎斗注册 澳门大富豪网站 押大小排行 真钱打牌 明升网站 十三水技巧 电子游戏下载 二十一点平台 现金网游戏开户平台 澳门百老汇游戏官网 皇博压大小 真钱捕鱼 跑马机游戏 赌博技巧 巴比伦赌场官网 现金三公 地下网址 捕鱼游戏技巧 英皇网站 手机玩游戏赚钱平台 现金网排行 pt电子游戏注册 赌博技巧 电脑玩游戏赚钱平台 海立方游戏 ag电子游戏排行 希尔顿官网 太阳网上压大小 现金赌钱游戏 现金棋牌游戏 真人网站网址 地下开户 九五至尊娱乐网址 澳门梭哈游戏官网 奇葩袖赌博网 鸿胜国际压大小 博狗扑克游戏 德州扑克游戏规则 庄闲代理 奔驰宝马老虎机下载 现金三公开户注册 免费试玩电子游戏 GT压大小 新濠天地注册 现金老虎机网站 纸牌赌博种类 乐天堂开户 澳门永利平台 电脑版捕鱼达人 玩电子游戏入门 斗牛游戏 bbin压大小 网上电子游戏网址 澳门网络下注平台 明升国际网址 明升娱乐 捕鱼达人电子游戏 mg电子游戏试玩 二十一点游戏赌场 澳门万利赌场官网 大小对比网站 现金电子游戏 电子游戏实用技术 老虎机破解器 澳门梭哈官网 澳门百老汇赌场注册 千炮捕鱼兑换现金 网上合法赌场 PT电子游戏 波克棋牌官方下载 天天棋牌 凤凰棋牌 美少女战士电子游戏 什么游戏可以赚人民币 银河国际娱乐 澳门番摊官网 澳门梭哈官网 胜博发电子游戏 电子游戏打鱼机 澳门现金网 大三巴网站 PT电子游戏 澳门银河国际娱乐