ARP(Address Resolution Protocol)地址解析协议
RARP(Reverse Address Resolution Protocol)逆地址解析协议

1、ARP协议

ARP协议将网络层的32位IP地址转化成数据链路层48位的MAC地址。

1.1 ARP报文

ARP报文分为ARP请求和ARP应答报文两种,它们的报文格式可以统一为下图所示。

  • 硬件类型:占两字节,表示ARP报文可以在哪种类型的网络上传输,值为1时表示为以太网地址。
  • 上层协议类型:占两字节,表示硬件地址要映射的协议地址类型,映射IP地址时的值为0x0800。
  • MAC地址长度:占一字节,标识MAC地址长度,以字节为单位,此处为6。
  • IP协议地址长度:占一字节,标识IP得知长度,以字节为单位,此处为4。
  • 操作类型:占2字节,指定本次ARP报文类型。1标识ARP请求报文,2标识ARP应答报文。
  • 源MAC地址:占6字节,标识发送设备的硬件地址。
  • 源IP地址:占4字节,标识发送方设备的IP地址。
  • 目的MAC地址:占6字节,表示接收方设备的硬件地址,在请求报文中该字段值全为0,即00-00-00-00-00-00,表示任意地址,因为现在不知道这个MAC地址。
  • 目的IP地址:占4字节,表示接受方的IP地址。

1.2 ARP缓存表

缓存了MAC地址和IP地址的映射关系。是ARP和RARP协议运行的关键。

  • 如果在查询ARP缓存表的时候,对应的映射关系存在,则直接告知其对应的目的MAC地址,
  • 如果在查询ARP缓存表的时候,映射关系不存在,则会广播目的IP的信息,收到广播的设备回应是否是其为该IP地址,如果是,则会记录下该IP地址以及其对应的MAC地址。

由于MAC地址是永久不变的,而IP地址是时常变化的,所以ARP缓存表不是永久有效的,存在一定期限。

问题:ARP协议属于那一层?
由于ARP协议使用到了IP地址,我们把ARP协议算作网络层内容。ARP是网络层和数据链路层配合使用的协议。

2、RARP协议

做ARP协议相反的工作,就是把MAC地址转化成IP地址。

ARP协议和RARP协议相关推荐

  1. 【4】TCP/IP协议族详解-ARP协议和RARP协议

    声明:本博客参考<TCP/IP协议详解卷一:协议> 1.概述 在以太网中一台主机将数据帧从一台主机发送到另一台主机时,是根据48bit的以太网地址确定目的接口的.设备驱动程序从不检查IP数 ...

  2. 计算机网络 arp协议和rarp协议

    文章目录 1.arp协议 1.1 简介 1.2 功能 1.3 工作原理 2.rarp协议 2.1 简介 2.2 工作原理 1.arp协议 1.1 简介 地址解析协议,即ARP(Address Reso ...

  3. Linux:数据链路层——以太网协议、NAT协议、ARP协议和DNS协议

    Linux:数据链路层--以太网协议.NAT协议.ARP协议和DNS协议 以太网协议 以太网帧格式 MTU以及MTU对IP协议的影响 ARP协议 NAT协议 NAT IP转换过程 静态NAT 动态NA ...

  4. ARP协议和NDP协议分析

    简介 Linux下查询arp表执行arp –n: ARP(Address Resolution Protocol)即地址解析协议,根据IP地址获取MAC地址.主机发送信息时将包含目标IP地址的ARP请 ...

  5. 基于PT分析ARP协议和Wireshark分析ARP协议。

    一.Ip层主要的协议:ARP,ICMP,ip,IGMP ICMP:ping命令.(可以这么理解,先简单这么理解叭) 二.ARP技术原理(图片为网络图片,侵权即删) 首先我们得明白ARP工作在网络层.( ...

  6. doraemon的python tcp协议和udp协议

    ### 8.9 tcp协议和udp协议#### 8.9.1 tcp协议 -------打电话 特点:- ​ 可靠 慢 全双工通信 - ​ 建立连接的时候:三次握手 - ​ 断开连接的时候:四次挥手 - ...

  7. Bytom BIP-32协议和BIP-44协议解读

    我们知道HD(分层确定性)钱包,基于 BIP-32:多币种和多帐户钱包,基于 BIP-44:最近比原社区的钱包开发者对比原的BIP-32和BIP-44协议有疑问,所以我今天就专门整理了一下该协议的内容 ...

  8. 3.7 PPP协议和HDLC协议

    3.7 PPP协议和HDLC协议

  9. RabbitMQ MQTT协议和AMQP协议

    RabbitMQ MQTT协议和AMQP协议 1        序言... 1 1.1     RabbitMq结构... 1 1.2     RabbitMq消息接收... 4 1.3     Ex ...

最新文章

  1. 不甘心只做输入工具,搜狗输入法上线AI助手,提供智能服务
  2. 如何使用Hololens 这些手势你都要学
  3. Django Web开发基础环境配置流程
  4. 计算机主机硬件详细介绍,计算机系统的硬件和系统软件详细介绍
  5. .NET中使用Memcached的相关资源整理
  6. mysql如何导出sql文件_MYSQL导入导出.sql文件
  7. oppo系统android版本下载,oppo手机助手
  8. 手把手带你玩转Spark机器学习-使用Spark构建分类模型
  9. 卡尔曼滤波原理图文详解
  10. scp收容失效找不到服务器,迟来的游戏更新——scp-收容失效高清重制版
  11. 百度地图获取数据库点的坐标,并定时刷新到页面上 jsp
  12. 黑苹果、win双系统,丢失黑苹果引导,如何修复黑苹果的引导
  13. Linux 知:coredump
  14. linux建立u盘引导分区表,创建Linux之USB启动盘
  15. Java云原生(Spring Native)开发初体验报告
  16. RPG游戏角色生成器
  17. 电影《差等生乔曦》首映 导演分享教育心得
  18. Android 加固厂商特征
  19. 桐乡学历提升-学历到底有什么用呢?
  20. Vue实现切换视图(表单与三列多行)的全选与清除功能:

热门文章

  1. 自动驾驶采标系列七:复杂场景语义理解-可行驶区域检测
  2. c语言随机数去除,【分享代码】弥补c语言随机数不足
  3. 【初码干货】记一次分布式B站爬虫任务系统的完整设计和实施
  4. Ubuntu21.04搭建FISCO BCOS第一个区块链helloword
  5. vue 使用 gojs
  6. 小偏方!不看,走宝.
  7. Qt信号与槽的五种连接方式
  8. 单交换机vlan配置与验证
  9. 跟李宁老师学Python视频课程(11):正则表达式-李宁-专题视频课程
  10. 拼题网实验1 算法—穷举