当你第一次发送ping请求包,ARP缓存表为空时会发生什么?(详细解析全过程)
工具: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缓存表为空时会发生什么?(详细解析全过程)相关推荐
- Scrapy 遇到的小坑_关于payload参数_scrapy第一次发送POST请求
Scrapy框架第一发送POST请求遇到的小坑 前言: 爬取一个数据开发平台 悦采 网, 爬取上面的招标_采购信息. 小坑:requests能获取到内容,改成scrapy却不能获取到内容,而且请求信息 ...
- arm linux arp 支持,当ARP缓存为空 - RL-ARM 实时库用户指南
ARP协议模块缓存所有接收的IP地址到一个内部缓冲器,它存储着IP地址和以太网地址(MAC). 当应用程序启动时,ARP 缓存缓冲器通常是空的.ARP模块还不知道来自于应用程序的第一个UDP数据包的目 ...
- 1、交换机ARP缓存表分析
1.交换机ARP缓存表分析 一.用模拟器不是一个简单的拓扑: 拓扑简单描述:交换机不做任何配置,两台电脑使用arp -a命令查看混存表,均为空. 操作1:PC A 去ping PC B: 10. ...
- 网络安全学习第10篇 - ping程序的实现,抓包分析ping数据包以及ping工具对于网络安全方面的威胁
请结合附件:Ping的实现原理与ping.cpp的内容,编写一个程序,使其能够实现简单的ping的功能,即判断目标网站是否可以连接,然后通过Wireshark进行抓包分析其ICMP协议,指出哪个数据包 ...
- 解决ie浏览器发送ajax请求的缓存问题
由于ie浏览器的缓存问题,我们使用ie浏览器发送ajax请求,修改服务器js代码后,再次发送该ajax请求,ie浏览器会从缓存中查找该请求的数据,这样会导致ie显示的数据并不是最新的. 1.服务器代码 ...
- ARP缓存表和MAC地址表
前文讲过arp缓存表和mac地址表,现在总结下它们的相同和不同 不同 定义 arp缓存表是主机用来缓存其他主机的ip地址和mac地址的映射关系的表 mac地址表是交换机用来缓存连接在各端口的主机的源m ...
- 无法回应的ARP请求包导致的网站缓慢问题排错
问题 访问一个网站,从本地访问很快,但是从客户端访问大概要等待3秒的样子.在服务器放上静态网页,在客户端访问则返回时间很快. 排错步骤 在客户端访问问题网站,在客户端用wireshark抓包 用tcp ...
- Linux ping命令:向网络主机发送ICMP请求
ping 是常用的网络命令,主要通过 ICMP 协议进行网络探测,测试网络中主机的通信情况. ping 命令的基本信息如下. 命令名称:ping. 英文原意:send ICMP ECHO_REQUES ...
- 超好用的后端发送http请求HttpUtils工具类(基于原生http连接,不需要另外导包)
在项目中,为了实现一些特定的功能,我们常常需要发送http异步请求 ,为此需要特意封装一个实用的HttpUtils工具类 HttpUtils工具类内容如下: package com.zyw.secki ...
- linux ping时丢包怎么解决办法,ping丢包故障处理方法
ping丢包故障处理方法 1.Ping丢包故障定位思路故障分析 Ping丢包是指Ping报文在网络中传输,由于各种原因(如线路过长.网络拥塞等)而产生部分Ping报文丢弃的现象.在使用Ping命令,出 ...
最新文章
- 数据库范式(1NF、2NF、3NF、BCNF)
- Isomorphic Strings
- Git关于pull,commit,push的总结
- oracle数据库动态拼接查询条件解决方案
- sqlplus环境配置(login.sql)
- 字节跳动 设计模式 pdf_凭这份pdf我拿下了美团、字节跳动、阿里、小米等大厂的offer...
- 养老金8000元左右,身体好,无负担,怎样安排退休生活好呢?
- spark-shell如何粘贴换行代码
- 新浪云sae 部署 thinkphp5
- 金橙子打标卡EZCAD软件各种延时说明
- 基于QT实现简单的音乐播放器
- 干货---ARCGIS拓扑规则说明详细讲解
- 2019-09-11想念艾青,想念《大堰河——我的保姆》
- 基于STM32的MLX90614(GY-906)人体红外测温
- 解决小熊无叶电风扇摇头嘎嘎响的问题
- Wireshark菜单栏介绍之编辑菜单4-4
- FPGA Verilog HDL 系列实例--------双向移位寄存器
- Content Delivery Networks CDN 内容分发网络
- Java项目:springboot在线心理咨询系统
- 防止tweak依附,App有高招;破解App保护,tweak留一手