推广 热搜: 百度  搜索引擎  使用  可以  选择  企业 

ARP协议详解

   日期:2024-12-24     作者:jcm92    caijiyuan  
核心提示:地址解析协议(Address Resolution Protocol,ARP):ARP协议可以将IPv4地址(一种逻辑地址)转换为各种网络所需的硬件

地址解析协议(Address Resolution Protocol,ARP):ARP协议可以将IPv4地址(一种逻辑地址)转换为各种网络所需的硬件地址(一种物理地址)。换句话说,所谓的地址解析的目标就是发现逻辑地址与物理地址的映射关系。 ARP仅用于IPv4协议,IPv6使用邻居发现协议(NDP)替代。
ARP协议目前最广泛应用于寻找32位IPv4地址与以太网的48位MAC地址之间的映射。

掌握ARP协议前,需要理解什么是逻辑地址和物理地址。

物理地址
物理地址:物理地址对于主机就类似身份证对于人类。对于每个网络适配器,设置制造商都会给定一个永久的物理地址,将其存储在设备的永久性内存中。就像身份证一样,物理地址就是网络适配器的ID。注意,物理地址是和网络适配器绑定的,如果主机更换了网络适配器,那么它的物理地址也会相应改变。(虽然网络适配器的物理地址是固定的,但也可以通过特殊方法修改,但这种情况极少出现,不影响我们理解)

在TCP/IP分层体系结构中,数据链路层和物理层使用的地址是物理地址。而网络层、传输层和应用层使用的地址是IP地址(逻辑地址)。

逻辑地址
逻辑地址:逻辑地址就是我们常说的IP地址,因为IP地址是由软件实现的,所以把它称为逻辑地址。IP地址是不固定的,它通常从某个网络的IP地址池中获得,改变网络环境,IP地址就会改变。

为什么需要2级地址
分组进行传输必须要2级地址:逻辑地址和物理地址。
IP地址和物理地址是在不同的层次下运行的。同一个目的IP地址可能经过多段链路,每段链路都可能运行不同的链路层和物理层协议,它们的物理地址格式可能都截然不同;同理,同一段链路可能接收来自不同的网络层协议,比如IPv4或者IPX。

有人可能觉得,直接用物理地址替代IP地址不就行了么
这是因为对IP地址不够了解。现实中,有很多链路层和物理层的协议,它们都有不同的物理地址。如果完全依赖物理地址,那么路由表就需要对每个物理地址建立一个项,那样没有一个路由器能够负担如此庞大的表项。
而IP地址提供了更高层次的抽象,将不同的物理地址抽象为统一的逻辑地址。
IP地址有良好的分层。如果分组转发到同一子网,只需要在路由表中记录统一的网络前缀。比如,一个子网有6000个IP地址,对应6000个物理地址。记录IP地址网络前缀只需要1行,记录物理地址则需要6000行。

有了IP地址,分组的路由(也就是找路)的工作仿佛在同一个网络中进行。如果传输IPv4分组,那么IPv4分组传输过程中经过的所有网络都使用IPv4协议,仿佛它们在一个逻辑上的网络中。

ARP请求分组有3个重要信息:1.源IP地址。2.对应的源物理地址。3.目的IP地址。
查询的内容为:对应的目的物理地址。

以下是具体步骤

假设 A 和 B 位于同一链路,不需要经过路由器的转换,主机 A 向主机 B 发送一个 IP 分组,主机 A 的地址是 192.168.1.2 ,主机 B 的地址是 192.168.1.3,它们都不知道对方的 MAC 地址是啥,主机 C 和 主机 D 是同一链路的其他主机。

ARP协议详解

由此,可以通过 ARP 从 IP 地址获取 MAC 地址,实现同一链路内的通信。

如果是不同链路怎么办呢
这就要使用到 代理 ARP 了,通常 ARP 会被路由器隔离,但是采用代理 ARP (ARP Proxy) 的路由器可以将 ARP
请求转发给临近的网段。使多个网段中的节点像是在同一网段内通信。

现在你知道了发送一次 IP 分组前通过发送一次 ARP 请求就能够确定 MAC 地址。那么是不是每发送一次都得经过广播 -> 封装 ARP 响应 -> 返回给主机这一系列流程呢

想想看,浏览器是如何做的呢?浏览器内置了缓存能够缓存你最近经常使用的地址,那么 ARP 也是一样的。ARP 高效运行的关键就是维护每个主机和路由器上的 ARP 缓存(或表)。这个缓存维护着每个 IP 到 MAC 地址的映射关系。通过把第一次 ARP 获取到的 MAC 地址作为 IP 对 MAC 的映射关系到一个 ARP 缓存表中,下一次再向这个地址发送数据报时就不再需要重新发送 ARP 请求了,而是直接使用这个缓存表中的 MAC 地址进行数据报的发送。每发送一次 ARP 请求,缓存表中对应的映射关系都会被清除。

为什么需要设置生存周期呢
是因为物理地址和IP地址都可能改变。比如目的主机更换了网络适配器,那么目的主机的物理地址就改变了。
如果源主机通过查看ARP映射表得到了目的主机以前的物理地址,肯定是无法正常通信的。但随着该表项生存周期到时,源主机会重新广播ARP请求分组,这样就可以得到目的主机新的物理地址。从而和目的主机正常通信。

  • 硬件类型表示硬件地址的类型,硬件地址常见的有 MAC 物理或者以太网地址,对于以太网来说,此值为 1。
  • 协议类型 指出映射的协议地址类型,对于 IPv4 地址,这个值是 0x0800。
  • 硬件大小和 协议大小 分别指出硬件地址和协议地址的字节数。对于以太网中使用 IPv4 的 ARP 请求或应答,它们的值分别是 6 和 4。
  • Op 字段指出如果是 ARP 请求,Op = 1,ARP 应答 ,Op = 2,RARP 请求 Op = 3,RARP 应答,Op = 4。
  • 紧跟在 Op 之后的是 发送方硬件地址(MAC 地址),发送方的协议地址(IPv4 地址),目的硬件地址 和 目的协议地址。

ARP 是一种非常不安全的协议,目前已经有很多涉及 ARP 的攻击,最主要的就是使用代理 ARP 功能假扮主机,对 ARP 请求作出应答,通过伪造 ARP 数据包来窃取合法用户的通信数据,造成影响网络传输速率和盗取用户隐私信息等严重危害。

本文地址:http://ww.kub2b.com/tnews/5.html     企库往 http://ww.kub2b.com/ ,  查看更多

特别提示:本信息由相关用户自行提供,真实性未证实,仅供参考。请谨慎采用,风险自负。

 
 
更多>同类生活信息

文章列表
相关文章
最新动态
推荐图文
生活信息
点击排行
网站首页  |  关于我们  |  联系方式  |  使用协议  |  版权隐私  |  网站地图  |  排名推广  |  广告服务  |  积分换礼  |  网站留言  |  RSS订阅  |  违规举报  |  鄂ICP备2020018471号