地址解析协议,即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服务器对此不做任何的响应;

为什么既要有IP地址还要有MAC地址,IP是唯一的,MAC地址也是唯一的,用一个难道不行么

主要原因有以下几点:

(1)IP地址的分配是根据网络的拓朴结构,而不是根据谁制造了网络设置。若将高效的路由选择方案建立在设备制造商的基础上而不是网络所处的拓朴位置基础上,这种方案是不可行的。

(2)当存在一个附加层的地址寻址时,设备更易于移动和维修。例如,如果一个以太网卡坏了,可以被更换,而无须取得一个新的IP地址。如果一个IP主机从一个网络移到另一个网络,可以给它一个新的IP地址,而无须换一个新的网卡。

(3)无论是局域网,还是广域网中的计算机之间的通信,最终都表现为将数据包从某种形式的链路上的初始节点出发,从一个节点传递到另一个节点,最终传送到目的节点。数据包在这些节点之间的移动都是由ARP(Address Resolution Protocol:地址解析协议)负责将IP地址映射到MAC地址上来完成的。

下面我们来通过一个例子看看IP地址和MAC地址是怎样结合来传送数据包的。

假设网络上要将一个数据包(名为PAC)由北京的一台主机(名称为A,IP地址为IP_A,MAC地址为MAC_A)发送到华盛顿的一台主机(名称为B,IP地址为IP_B,MAC地址为MAC_B)。这两台主机之间不可能是直接连接起来的,因而数据包在传递时必然要经过许多中间节点(如路由器,服务器等等),我们假定在传输过程中要经过C1、C2、C3(其MAC地址分别为M1,M2,M3)三个节点。A在将PAC发出之前,先发送一个ARP请求,找到其要到达IP_B所必须经历的第一个中间节点C1的MAC地址M1,然后在其数据包中封装(Encapsulation)这些地址:IP_A、IP_B,MAC_A和M1。当PAC传到C1后,再由ARP根据其目的IP地址IP_B,找到其要经历的第二个中间节点C2的MAC地址M2,然后再将带有M2的数据包传送到C2。如此类推,直到最后找到带有IP地址为IP_B的B主机的地址MAC_B,最终传送给主机B。在传输过程中,IP_A、IP_B和MAC_A不变,而中间节点的MAC地址通过ARP在不断改变(M1,M2,M3),直至目的地址MAC_B。

  综合上面所述,我们可以归纳出IP地址和MAC地址相同点是它们都唯一,不同的特点主要有:

(1)对于网络上的某一设备,如一台计算机或一台路由器,其IP地址可变(但必须唯一),而MAC地址不可变。我们可以根据需要给一台主机指定任意的IP地址,如我们可以给局域网上的某台计算机分配IP地址为192.168.0.112 ,也可以将它改成192.168.0.200。而任一网络设备(如网卡,路由器)一旦生产出来以后,其MAC地址永远唯一且不能由用户改变。

(2)长度不同。IP地址为32位,MAC地址为48位。

(3)分配依据不同。IP地址的分配是基于网络拓朴,MAC地址的分配是基于制造商。

(4)寻址协议层不同。IP地址应用于OSI第三层,即网络层,而MAC地址应用在OSI第二层,即数据链路层。 数据链路层协议可以使数据从一个节点传递到相同链路的另一个节点上(通过MAC地址),而网络层协议使数据可以从一个网络传递到另一个网络上(ARP根据目的IP地址,找到中间节点的MAC地址,通过中间节点传送,从而最终到达目的网络)。

网络层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地址解析协议

    网际层的 IP 协议及配套协议 网络层的功能是为数据包选择路径,转发数据包,这主要是IP协议. ARP协议为IP协议提供服务,ARP协议在网络层但是在靠下方. ICMP当网络不通的时候,比如数据包转发 ...

  4. ARP地址解析协议详解

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

  5. 计算机网络-网络层篇-ARP协议与RARP协议

    目录 问题所在 解决方案 ARP协议 RARP协议 问题所在 对于简单的网络拓扑,数据帧的转发有4个步骤 A通过网卡发出数据帧 数据帧到达路由器,路由器取出前6字节 路由器匹配MAC地址表,找到对应的 ...

  6. 计算机网络基础(四)---网络层-ARP协议与RARP协议

    文章内容概览 还是看在上一篇文章中提到的这张图,计算机A将数据跨设备传输给C.A发出目的地为C的IP数据报,查询路由表发现下一跳为E,A将IP数据报交给数据链路层,并告知目的MAC地址是E.那么A是如 ...

  7. 细聊网络层协议之ARP、RARP协议

    一.两台主机之间的通信解读ARP 首先我们必须明白一点的是,IP地址只在网络及其以上的层有用,在链路层及以下的层是没有用的.TCP/IP协议栈从上层到下层的封装过程中,第三层封装需要知道目的IP,第二 ...

  8. 协议圣经 ARP RARP 六

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

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

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

最新文章

  1. 图论-有向图的连通性模板题(hdu1296)(hdu1827)
  2. bootstrap-select实现下拉框多选效果
  3. 数字图像处理 空间域平滑 MATLAB实验
  4. 搭建vue脚手架_webpack搭建vue脚手架
  5. [转-SSRF]什么是SSRF
  6. 手机尺寸相关的概念 +尺寸单位+关于颜色
  7. CFA Notes第一遍完成
  8. NXP mpc5744p MBDT编译工具链配置
  9. [转载]SAP报表开发工具——Report Painter
  10. 苹果执行请求时出错_苹果执行请求时出错
  11. SpringCloud相关jar maven管理工具不能下载(Finchley.M8)
  12. 绩效考核成绩管理平台
  13. 判断图有无环_21考研有机化学打卡第四题——芳香性判断
  14. 如何重置postgresql用户密码
  15. 数据泄漏防护 (DLP) 工具保护敏感数据
  16. 计算机网络学习笔记10(DNS)
  17. [MySQL光速入门]004 作业解答
  18. 识别图片文字怎么识别?这些方法轻松达成
  19. 易语言 剪切板 html,易语言剪切板操作源码
  20. oracle 脚本定时,Oracle存储过程定时执行2种方法

热门文章

  1. 天了噜,玩家竟能写出这样的文章来!
  2. 程序员接单渠道介绍,月入30K的方法我找到了!
  3. kubeadm安装kubernetes 1.13.1集群完整部署记录
  4. (PC+WAP)带手机端pbootcms模板喷泉设备类网站
  5. c语言随机数去除,【分享代码】弥补c语言随机数不足
  6. unity实现武器绕着人物旋转
  7. 2017 年度码云新增项目排行榜 TOP 50,为它们打“call”
  8. csrf验证问题 -- 不同域名下Iframe嵌套Cookie失效导致csrf验证失败
  9. CentOS配置ss5并解决部分出现的问题
  10. Oppo手机连接Android Studio运行的APK闪退问题