一、 ARP 简介

ARP 协议 英文名叫作:“Address Resolution Protocol”——地址解析协议。所谓“地址解析”就是主机在发送帧前将目的逻辑地址

转换成目的物理地址的过程。在使用 TCP/IP 协议 的以太网中,ARP 协议完成将 IP 地址映射到 MAC 地址的过程。

在TCP/IP协议模型中,一共有五层,也就是物理层、数据链路层、网络层、传输层、应用层。在数据链路层中的地址称为MAC地址或者叫作 以太网地址(Ethernet address)。

什么是MAC地址?

我这里稍微讲解一下MAC地址,MAC地址全称叫做 MAC(Media Access Control,介质访问控制)地址,在数据链路层传输,一共48位,每一个网卡对应了一个全球唯一的MAC地址,在网线中传输,就是通过MAC地址来传输到你的电脑网卡上。

什么是IP地址?

IP地址,网络协议地址(Internet Protocol address)的简称。属于网络层,在网络中唯一标识一台主机,一共32位,在网络层和传输层传输数据包时,就是用IP来标识进行传输的。

为什么要用ARP协议呢?

如果你知道了MAC地址,又知道了IP地址,那么问题就来了,网络层只识别IP地址,而数据链路层则只识别MAC地址。所以我们需要一个映射,来讲MAC地址和IP地址对应起来,这样我们通过MAC地址知道了IP地址,通过IP地址也就知道了MAC地址。这个映射就是ARP协议,将IP地址映射到MAC地址,而RARP,也就是反向地址解析协议,也就是把MAC地址映射成IP地址,这样的话,IP地址和MAC地址也就对应起来了。

二、ARP协议具体使用

试想一下,有一个交换机很多主机,其中包括主机A和主机B。现在主机A需要将一个数据包通过交换机传输给主机B,现在主机A已经知道了主机B的IP地址了,但不知道主机B的MAC地址,而交换机是通过网线传输给主机B的,需要知道主机B的MAC地址,这时候交换机就会使用ARP协议来获取主机B的MAC地址了。

ARP 运行过程可分为如下步骤:

一、首先,发送端必须知道目的端的 IP 地址,也就是主机A必须知道主机B的IP地址了。

二、 IP 要求 ARP 创建一个 ARP 请求报文,其中包含了主机A的MAC地址、主机A的 IP 地址 和 主机B的 IP 地址。主机B的MAC地址不知道,则会用 0 填充,也就是此时主机B的MAC地址为全0。

三、将报文传递到数据链路层,并在该层中用主机A的MAC地址作为源地址,用物理广播地址作为目的地址,将其封装在一个帧中,(全0或者全F的MAC地址为广播地址)。

四、因为该帧中包含了一个广播目的地址(全F的MAC地址),所以同一链路中的每个主机或路由器都接收到这 个帧。所有接收到该帧的主机都将其传递到 ARP 层进行处理。除了主机B以外的,因为IP不是自己的,所以其他主机都丢弃该报文,只有主机B会接受该报文。

五、主机B用一个包含它的MAC地址的 ARP 应答报文做出响应,该报文的源IP地址、源MAC地址都为主机B的地址,目的IP地址和目的IP地址为主机A的地址,并对该报文进行单播传回给主机A。

六、主机A接收到这个应答报文,就知道了主机B的MAC地址。

ARP 地址解析过程 如下图所示。

这就是ARP传输的道理了,通过ARP协议来已知IP地址来获取MAC地址。

已经知道了以后,ARP会建立ARP缓冲表来存储IP地址和MAC地址,就不需要再通过广播和单播来传了。

三、ARP 高速缓存

在真正的协议实现中,并不是每次发送 IP 报文前都需要发送 ARP 请求报文来获取目的 MAC 地址(像上面这来获取)。而是直在大多数的系统中都存在着一个 ARP 缓存表。

ARP 缓存表记录着一段时间内曾经获取过的 MAC 地址和 IP 地址的映射关系。所以发送 IP 数据报前先对 ARP 缓存表进行查找,查看目的 MAC 地址是否存在于缓存表中, 如果存在,则不需要发送 ARP 请求报文而直接使用此地址进行 IP 数据包的发送。如果不存 在,则发送 ARP 请求报文,在收到 ARP 应答报文之后,使用应答报文中的目的 MAC 地址发送 IP 数据包,并将目的 MAC 地址存于 ARP 缓存表中供以后使用。

这样就是ARP协议,你学会了吗?

地址解析协议 ARP相关推荐

  1. 地址解析协议 (ARP) 是什么

    地址解析协议 (ARP) 是通过解析网路层地址来找寻数据链路层地址的一个在网络协议包中极其重要的网络传输协议. ARP是通过网络地址(例:IPv4)来定位MAC地址 (也称为乙太地址). ARP已经在 ...

  2. TCP/IP具体解释学习笔记——地址解析协议ARP

    一 概述 我们知道,IP协议是用来在不同的物理网络之间数据传输的.要在不同的网络之间数据传输,至少须要将IP协议所用的地址转换成特定网络所使用的物理地址. 一般来说.就是将IPv4地址转换为mac地址 ...

  3. 计算机网络地址解析协议实验,计算机网络地址解析协议(ARP)实验报告.doc

    计算机网络地址解析协议(ARP)实验报告 实验目的: 1. 掌握ARP协议的报文格式 2. 掌握ARP协议的工作原理 3. 理解ARP高速缓存的作用 4. 掌握ARP请求和应答的实现方法 5. 掌握A ...

  4. 网络层地址解析协议ARP

    想了解地址解析协议ARP,首先要知道网络层IP地址和链路层MAC地址的区别. IP地址的特点是:IP地址往往固定在某一个区域(和路由器相关),且IP地址具有层次特点,取决于节点所连的那个子网:但是MA ...

  5. 图解地址解析协议ARP

    我们知道,网络层使用的是 IP 地址,而在实际网络的链路上传送数据帧时,最终还是必须使用链路层的 MAC 地址.所以,在链路上传送数据帧时只知道 IP 地址是不够的,我们还需要知道主机在网络中的有效 ...

  6. 地址解析协议ARP(计算机网络)

    目录 一.IP地址与物理地址 二.ARP 与 RARP 三.ARP表 四.ARP 的工作过程 五.ARP 高速缓存的作用 六.地址映射项目的生存时间 七.ARP 的作用范围 八.为什么不直接使用物理地 ...

  7. 地址解析协议ARP工作过程

    ARP工作过程 这是完整的以太网数据帧 .原始数据PDU协议数据单元(应用层)打上传输层头部之后叫数据段,再打上网络层头部后叫数据包,最后打上数据链路层头部和尾部就是数据帧. 在通信过程中,有必备四个 ...

  8. 《TCP/IP详解 卷1:协议》第4章 ARP:地址解析协议

    4.1 引言 本章我们要讨论的问题是只对TCP/IP协议簇有意义的IP地址.数据链路如以太网或令牌环网都有自己的寻址机制(常常为48 bit地址),这是使用数据链路的任何网络层都必须遵从的.一个网络如 ...

  9. 【ARP地址解析协议(完整解析过程、ARP欺骗、免费ARP、ARP代理)】-20211125【下】

    目录 一.ARP地址解析协议 ARP地址解析协议:将IP地址解析为Mac地址 ARP地址解析过程 1)pc1首先会查询自身的ARP缓存表,是否存在目标ARP缓存条目. ARP请求报文(原理) 2)由于 ...

最新文章

  1. sublime 解决中文乱码
  2. jstl java_JSTL-Java-Baby-51CTO博客
  3. zz bond配置网络: 两个网卡一个ip
  4. ubuntu15.10英文系统中文输入法配置 fcitx
  5. 【数据结构笔记34】C实现:选择排序与堆排序
  6. 近邻模块︱apple.Turicreate中相似判定Nearest Neighbors(四)
  7. arraylist长度_面经手册 第7篇ArrayList也这么多知识?一个指定位置插入就把谢飞机面晕了!...
  8. 【SecureCRT】SecureCRT设置上传下载目录
  9. 美国宾州计算机学校,不输加州!美国这个州的名校远比你想象的多
  10. 每日一诗词 —— 临江仙
  11. 那一年,我们二十七八岁
  12. Java、JSP旅行社旅游信息管理系统
  13. 入耳式蓝牙耳机哪种音质好?微型蓝牙隐形耳机推荐
  14. GitLab 无法显示头像的解决方法
  15. Android的语言设置(二)
  16. 为什么罗永浩这种人都能做出来锤子手机?
  17. 自学JavaScript第一天- JS 基础
  18. 黑马训练营10届开学典礼
  19. 关于django模型语法里面的一些坑。系统报错:Unknown command: 'validate' Type 'manage.py help' for usage.
  20. 华南X79主板刷黑后恢复一例

热门文章

  1. 大数据分析在职业体育应用
  2. 解决vue项目打包后woff、tff资源路径加载错误
  3. 使用Log-Pilot + logstash+Elasticsearch + Kibana 收集 kubernetes 日志
  4. JS图片标注打点管理工具,支持缩放、移动和灵活的自定义
  5. 什么?你竟然不知道SRE工程师!
  6. MATLAB 实现AES加解密
  7. python的自带数据集_Python——sklearn提供的自带的数据集
  8. 设计师必备的8个字体网站与36个设计灵感网站合集
  9. Virtualbox识别U盾等USB设备
  10. rt-thread应用篇(02)---智能家居DIY项目之使用ESP8266实现onenet平台上报