地址解析协议,即ARP(Address Resolution Protocol),是根据IP地址获取物理地址的一个TCP/IP协议。主机发送信息时将包含目标IP地址的ARP请求广播到网络上的所有主机,并接收返回消息,以此确定目标的物理地址;收到返回消息后将该IP地址和物理地址存入本机ARP缓存中并保留一定时间,下次请求时直接查询ARP缓存以节约资源。地址解析协议是建立在网络中各个主机互相信任的基础上的,网络上的主机可以自主发送ARP应答消息,其他主机收到应答报文时不会检测该报文的真实性就会将其记入本机ARP缓存;由此攻击者就可以向某一主机发送伪ARP应答报文,使其发送的信息无法到达预期的主机或到达错误的主机,这就构成了一个ARP欺骗。ARP命令可用于查询本机ARP缓存中IP地址和MAC地址的对应关系、添加或删除静态对应关系等。

ARP工作流程举例:

  主机A的IP地址为192.168.1.1,MAC地址为0A-11-22-33-44-01;

  主机B的IP地址为192.168.1.2,MAC地址为0A-11-22-33-44-02;

  当主机A要与主机B通信时,地址解析协议可以将主机B的IP地址(192.168.1.2)解析成主机B的MAC地址,以下为工作流程:

  (1)根据主机A上的路由表内容,IP确定用于访问主机B的转发IP地址是192.168.1.2。然后A主机在自己的本地ARP缓存中检查主机B的匹配MAC地址。

  (2)如果主机A在ARP缓存中没有找到映射,它将询问192.168.1.2的硬件地址,从而将ARP请求帧广播到本地网络上的所有主机。源主机A的IP地址和MAC地址都包括在ARP请求中。本地网络上的每台主机都接收到ARP请求并且检查是否与自己的IP地址匹配。如果主机发现请求的IP地址与自己的IP地址不匹配,它将丢弃ARP请求。

  (3)主机B确定ARP请求中的IP地址与自己的IP地址匹配,则将主机A的IP地址和MAC地址映射添加到本地ARP缓存中。

  (4)主机B将包含其MAC地址的ARP回复消息直接发送回主机A。

  (5)当主机A收到从主机B发来的ARP回复消息时,会用主机B的IP和MAC地址映射更新ARP缓存。本机缓存是有生存期的,生存期结束后,将再次重复上面的过程。主机B的MAC地址一旦确定,主机A就能向主机B发送IP通信了。

逆地址解析协议,即RARP,功能和ARP协议相对,其将局域网中某个主机的物理地址转换为IP地址,比如局域网中有一台主机只知道物理地址而不知道IP地址,那么可以通过RARP协议发出征求自身IP地址的广播请求,然后由RARP服务器负责回答。

RARP协议工作流程:

  (1)给主机发送一个本地的RARP广播,在此广播包中,声明自己的MAC地址并且请求任何收到此请求的RARP服务器分配一个IP地址;

  (2)本地网段上的RARP服务器收到此请求后,检查其RARP列表,查找该MAC地址对应的IP地址;

  (3)如果存在,RARP服务器就给源主机发送一个响应数据包并将此IP地址提供给对方主机使用;

  (4)如果不存在,RARP服务器对此不做任何的响应;

  (5)源主机收到从RARP服务器的响应信息,就利用得到的IP地址进行通讯;如果一直没有收到RARP服务器的响应信息,表示初始化失败。

ARP/RARP协议相关推荐

  1. ARP/RARP协议报文格式

    图6-1  ARP/RARP报头结构 ARP和RARP使用相同的报头结构,如图6-1所示. 图6-1中的各字段的具体含义如下: 硬件类型:指明发送方想知道的硬件接口类型,以太网的值为1: 协议类型:指 ...

  2. 网络层ARP/RARP协议

    地址解析协议,即ARP(Address Resolution Protocol),是根据IP地址获取物理地址的一个TCP/IP协议.主机发送信息时将包含目标IP地址的ARP请求广播到网络上的所有主机, ...

  3. ARP地址解析协议详解

    ARP地址解析协议详解 网络层的ARP协议完成IP地址与物理地址的映射.首先,每台主机都会在自己的ARP缓冲区中建立一个ARP缓存表,以表示IP地址和MAC地址的对应关系.当源主机需要将一个数据包发送 ...

  4. TCP/IP详解学习笔记(3)-IP协议,ARP协议,RARP协议

    把这三个协议放到一起学习是因为这三个协议处于同一层,ARP协议用来找到目标主机的Ethernet网卡Mac地址,IP则承载要发送的消息.数据链路层可以从ARP得到数据的传送信息,而从IP得到要传输的数 ...

  5. TCP/IP详解--学习笔记(3)-IP协议,ARP协议,RARP协议

    ARP协议用来找到目标主机的Ethernet网卡Mac地址,IP则承载要发送的消息.数据链路层可以从ARP得到数据的传送信息,而从IP得到要传输的数据信息. 1.IP协议 IP协议是TCP/IP协议的 ...

  6. 协议圣经 ARP RARP 六

    1.ARP协议 地址解析协议(Address Resolution Protocol),其基本功能为透过目标设备的IP地址,查询目标设备的MAC地址,以保证通信的顺利进行.它是IPv4中网络层必不可少 ...

  7. TCP/IP学习笔记(3)----IP,ARP,RARP协议

    把这三个协议放到一起学习是因为这三个协议处于同一层(网络层协议),ARP协议用来找到目标主机的Ethernet网卡Mac地址,IP则承载要发送的消息.数据链路层可以从ARP得到数据的传送信息,而从IP ...

  8. ARP和RARP协议工作原理

    ARP和RARP协议工作原理 MAC地址与IP地址是计算机网络通信中非常重要的两类地址,缺一不可.因为在OSI/RM网络层以上是通过IP地址进行寻址的,而在OSI/RM网络层以下则是通过MAC地址进行 ...

  9. ARP与RARP协议详解 (三)

    (参考文献)TCP/IP详解,卷1:协议 当一台主机把以太网数据帧发送到位于同一个局域网上的另一台主机时,是根据48bit的以太网地址来确定目的接口的.设备驱动程序重来不检查IP数据报中的目的地址.A ...

最新文章

  1. 使用AspNetpagerGridView添加连续的序号
  2. zoj3195 联通树上三个点的路径长
  3. JdbcTemplate和NamedParameterJdbcTemplate
  4. How is XT9 old transaction launched in GRE 210
  5. 解析Pascal赋值语句(洛谷P1597题题解,Java语言描述)
  6. PAT乙级(1021 个位数统计)
  7. [vijos1982][NOIP2015]子串
  8. android dialog 点击遮罩 关闭_如何用构建者模式打造自己dialog
  9. 百度最全的LINUX和Redhat学习教程下载帖大全
  10. L1-021. 重要的话说三遍-PAT团体程序设计天梯赛GPLT
  11. Webrtc demo system
  12. FHIR标准和国际基于FHIR的互联互通实践(1):如何定义互联互通?
  13. c语言计算圆周率的第100位,JavaScript实现计算圆周率到小数点后100位的方法示例...
  14. S5P4418裸机开发(三):运行裸机程序
  15. php后端自学,【后端开发】自学php有哪些好的方法
  16. 精美UI界面欣赏[1]
  17. 苹果为开发人员播种macOS Big Sur 11.3的第七个Beta
  18. C#得到10000以内素数
  19. 2018 Benelux Algorithm Programming Contest (BAPC 18) J-Janitor Troubles(计算几何公式)
  20. godaddy停止支持php哪个版本,GoDaddy cPanel虚拟主机新增PHP7.0和PHP7.1版本 | Godaddy美国主机中文指南...

热门文章

  1. python求余_python如何实现取余操作
  2. python爬虫接单经历_记一次的接单经历
  3. 深入源码探索:SAP 标准报表怎样实现不同「报表格式/清单类型」的输出?
  4. PCL点云处理之随机采样抽稀RandomSample(六十)
  5. ORACLE SQL and SQL PLUS
  6. 更简洁的 CSS 清理浮动方式(使用 :after 伪类来提供浮动块后的 clear:both)
  7. 字体滚动实现效果的几种方式
  8. 制定夹具底座零件(图5-23)的加工工艺,设计钻4×Ф28孔的钻床夹具(含全套CAD图纸) 课程设计
  9. Backbone.js(1.1.2) API中文文档
  10. Microsoft Defender for Identity部署方案