工具:Cisco Packet Tracer
本机:PC1 192.168.1.3/24
对方:PC2 192.168.1.1/24

我们知道,ping命令是属于ICMP协议的,属于OSI七层模型的第三层,当我们在第三层想将ping包封装上IP地址后,需要先发送给第二层封装目的IP对应的MAC地址,但由于我们是第一次ping对方,所以ARP缓存表为空,需要先通过ARP协议来获取对方IP地址对应的MAC地址。

开始实验:
192.168.1.3/24第一次发送ping的请求包给192.168.1.1/24。

可以在表上发现两设备间都发送过哪些包的全过程。
**

我们一步一步来解析发生了什么。

自己第一次进行ping请求,ICMP为第三层协议,先再第三层封装好源IP和目的IP,然后发往自己的第二层

(图示的内层表示本设备接收,外层表示本设备发送)

自己的第二层查找对方IP对应MAC地址,发现没有ARP缓存记录

于是将ping请求先暂停,进行ARP请求(目的是为了拿到对方IP对应的MAC地址)

ARP请求是将目的IP设置为全F,表示匹配任何人,即进行广播,当前冲突域内的所有主机都会收到该请求,收到请求时,第二层目的MAC地址识别为全F后会发往自己的第三层解析目的IP,如果目的IP匹配,则响应ARP请求,反之则直接将包丢弃。

对方接收ARP请求,将包的目的IP等信息与自己匹配,并记录对方IP与MAC到自己的ARP缓存表,然后将自己的IP、MAC地址等信息通过ARP响应发送出去。

自己接收到ARP响应,更新自己的缓存表:

有了缓存表,自己就可以继续继续ICMP协议的ping请求:

对方接收ping包:第一层物理端口匹配,第二层MAC地址匹配,第三层IP地址匹配,然后就成功接收ping请求,进行ping响应:

自己接收到ping响应:

全过程完成。

当你第一次发送ping请求包,ARP缓存表为空时会发生什么?(详细解析全过程)相关推荐

  1. Scrapy 遇到的小坑_关于payload参数_scrapy第一次发送POST请求

    Scrapy框架第一发送POST请求遇到的小坑 前言: 爬取一个数据开发平台 悦采 网, 爬取上面的招标_采购信息. 小坑:requests能获取到内容,改成scrapy却不能获取到内容,而且请求信息 ...

  2. arm linux arp 支持,当ARP缓存为空 - RL-ARM 实时库用户指南

    ARP协议模块缓存所有接收的IP地址到一个内部缓冲器,它存储着IP地址和以太网地址(MAC). 当应用程序启动时,ARP 缓存缓冲器通常是空的.ARP模块还不知道来自于应用程序的第一个UDP数据包的目 ...

  3. 1、交换机ARP缓存表分析

    1.交换机ARP缓存表分析 一.用模拟器不是一个简单的拓扑:   拓扑简单描述:交换机不做任何配置,两台电脑使用arp -a命令查看混存表,均为空. 操作1:PC A 去ping  PC B: 10. ...

  4. 网络安全学习第10篇 - ping程序的实现,抓包分析ping数据包以及ping工具对于网络安全方面的威胁

    请结合附件:Ping的实现原理与ping.cpp的内容,编写一个程序,使其能够实现简单的ping的功能,即判断目标网站是否可以连接,然后通过Wireshark进行抓包分析其ICMP协议,指出哪个数据包 ...

  5. 解决ie浏览器发送ajax请求的缓存问题

    由于ie浏览器的缓存问题,我们使用ie浏览器发送ajax请求,修改服务器js代码后,再次发送该ajax请求,ie浏览器会从缓存中查找该请求的数据,这样会导致ie显示的数据并不是最新的. 1.服务器代码 ...

  6. ARP缓存表和MAC地址表

    前文讲过arp缓存表和mac地址表,现在总结下它们的相同和不同 不同 定义 arp缓存表是主机用来缓存其他主机的ip地址和mac地址的映射关系的表 mac地址表是交换机用来缓存连接在各端口的主机的源m ...

  7. 无法回应的ARP请求包导致的网站缓慢问题排错

    问题 访问一个网站,从本地访问很快,但是从客户端访问大概要等待3秒的样子.在服务器放上静态网页,在客户端访问则返回时间很快. 排错步骤 在客户端访问问题网站,在客户端用wireshark抓包 用tcp ...

  8. Linux ping命令:向网络主机发送ICMP请求

    ping 是常用的网络命令,主要通过 ICMP 协议进行网络探测,测试网络中主机的通信情况. ping 命令的基本信息如下. 命令名称:ping. 英文原意:send ICMP ECHO_REQUES ...

  9. 超好用的后端发送http请求HttpUtils工具类(基于原生http连接,不需要另外导包)

    在项目中,为了实现一些特定的功能,我们常常需要发送http异步请求 ,为此需要特意封装一个实用的HttpUtils工具类 HttpUtils工具类内容如下: package com.zyw.secki ...

  10. linux ping时丢包怎么解决办法,ping丢包故障处理方法

    ping丢包故障处理方法 1.Ping丢包故障定位思路故障分析 Ping丢包是指Ping报文在网络中传输,由于各种原因(如线路过长.网络拥塞等)而产生部分Ping报文丢弃的现象.在使用Ping命令,出 ...

最新文章

  1. 数据库范式(1NF、2NF、3NF、BCNF)
  2. Isomorphic Strings
  3. Git关于pull,commit,push的总结
  4. oracle数据库动态拼接查询条件解决方案
  5. sqlplus环境配置(login.sql)
  6. 字节跳动 设计模式 pdf_凭这份pdf我拿下了美团、字节跳动、阿里、小米等大厂的offer...
  7. 养老金8000元左右,身体好,无负担,怎样安排退休生活好呢?
  8. spark-shell如何粘贴换行代码
  9. 新浪云sae 部署 thinkphp5
  10. 金橙子打标卡EZCAD软件各种延时说明
  11. 基于QT实现简单的音乐播放器
  12. 干货---ARCGIS拓扑规则说明详细讲解
  13. 2019-09-11想念艾青,想念《大堰河——我的保姆》
  14. 基于STM32的MLX90614(GY-906)人体红外测温
  15. 解决小熊无叶电风扇摇头嘎嘎响的问题
  16. Wireshark菜单栏介绍之编辑菜单4-4
  17. FPGA Verilog HDL 系列实例--------双向移位寄存器
  18. Content Delivery Networks CDN 内容分发网络
  19. Java项目:springboot在线心理咨询系统
  20. 防止tweak依附,App有高招;破解App保护,tweak留一手

热门文章

  1. 树莓派外接扩展板的的测试
  2. 清明五一假期催热周边自驾游 迪庆州应势推出“杜鹃花之旅”
  3. tbody 不能充满table的原因
  4. pdf转换成jpg python_怎样利用python将pdf转换成jpg格式
  5. 跟着吴恩达学习机器学习 2代价函数
  6. matlab绘制香农定理曲线,基于matla对香农公式仿真.doc
  7. 域名系统服务器的功能,域名系统的主要功能是什么
  8. Phyton pymssql连接数据库
  9. 企业用企业邮箱的好处是什么?企业邮箱支持哪些功能?
  10. 八种排序java实现