当前位置: 首页 > article >正文

ARP协议的工作原理

一、ARP的定义

ARP协议(地址解析协议):根据IP地址以广播方式获取与其对应的目标主机MAC地址,并将MAC地址存入ARP缓存表。

注意:IP地址是可变的,而MAC地址(即物理地址)是唯一的。 

二、ARP的工作原理

1、在PC1给PC2发送数据之前,先查看PC1的缓存表中是否有目标主机PC2的MAC地址记录。(若没有)

2、PC1发送ARP请求报文(广播),用来查找目标主机IP所对应的MAC地址。由于不知道目标主机的MAC地址,所以目标MAC地址设置为广播地址0xFFFFFFFFFFFF,此报文便会发送给局域网中的所有主机设备。

 

3、所有主机在收到ARP请求消息后,由于请求的目标IP地址与PC2的IP地址匹配上了,故目标主机PC2回复ARP应答报文给PC1(单播);而其它不匹配的主机则丢弃该ARP请求

4、PC1更新ARP缓存,将目标主机的IP地址与MAC地址的对应关系存储在ARP缓存表中,并使用目标主机的MAC地址发送数据目标主机。(在缓存表里的MAC地址可以用来直接发送数据,而不用在广播查找MAC地址了)

 三、ARP报文在链路层进行封装

ARP报文不是直接在网络层上发送的,它还是需要向下传输到数据链路层,所以当ARP报文传输到数据链路层之后,需要再次进行封装。以以太网为例,ARP报文传输到以太网数据链路层后会形成ARP帧。ARP帧如下图所示,他就是在ARP报文前面加了一个以太网首部。 

 

  • 目的MAC地址:为广播MAC地址(FF-FF-FF-FF-FF-FF),其目标主机是网络上的所有主机。
  • 源MAC地址:为发送ARP帧的源MAC地址。
  • 帧类型:这里用来标识帧封装的上层协议,因为本帧的数据部分是ARP报文,所以直接用ARP的协议号 0x0806。(若是IP协议号,为0x0800)

 

 


http://www.kler.cn/a/449117.html

相关文章:

  • 京东大数据治理探索与实践 | 京东零售技术实践
  • Linux配置ssh登陆
  • sqlite3,一个轻量级的 C++ 数据库库!
  • GMSSL的不同python版本
  • Ubuntu硬盘分区及挂载(命令行)
  • vue iframe进行父子页面通信并切换URL
  • 【jvm】内存泄漏的8种情况
  • 前端面经每日一题Day19
  • 电子应用设计方案68:智能晾衣架系统设计
  • 每日一题 341. 扁平化嵌套列表迭代器
  • Linux嵌入式系统利用套接字编程(Socket Programming)实现网络通信的基础知识并附对一个简单实例的分析
  • 【Spring】控制反转(IoC)与依赖注入(DI)—IoC的概念与优点
  • 【YashanDB知识库】YMP迁移过程中报错YAS-02143或YAS-02193
  • 如何在K8S集群中查看和操作Pod内的文件?
  • 基于Spring Boot的远程教育网站
  • IPC协议获取签名信息
  • [计算机图形学] 【Unity Shader】【图形渲染】Shader数学基础6-逆矩阵与正交矩阵
  • leetcode hot100 合并区间
  • net_device结构
  • golang自定义MarshalJSON、UnmarshalJSON 原理和技巧
  • 【蓝桥杯每日一题】 蜗牛——动态规划
  • Redisson分布式锁的源码解读
  • panddleocr-文本检测+文本方向分类+文本识别整体流程
  • JavaAgent技术应用和原理:JVM持久化监控
  • ubuntu18.04连接不上网络问题
  • Spring Boot与Django对比:哪个更适合做为Web服务器框架?