当前位置:文档之家› ARP协议解释

ARP协议解释

前言:ARP协议的作用:

1. 什么是ARP?

ARP (Address Resolution Protocol) 是个地址解析协议。最直白的说法是:在IP以太网中,当一个上层协议要发包时,有了该节点的IP地址,ARP就能提供该节点的MAC地址。

2为什么要有ARP?

OSI 模式把网络工作分为七层,彼此不直接打交道,只通过接口(layre interface). IP地址在第三层, MAC地址在第二层。

协议在发生数据包时,首先要封装第三层(IP地址)和第二层(MAC地址)的报头, 但协议只知道目的节点的IP地址,不知道其物理地址,又不能跨第二、三层,所以得用ARP的服务。

详细说明:

Ø在网络通讯时,源主机的应用程序知道目的主机的IP地址和端口号,却不知道目的主机的硬件地址,而数据包首先是被网卡接收到再去处理上层协议的,如果接收到的数据包的硬件地址与本机不符,则直接丢弃。因此在通讯前必须获得目的主机的硬件地址。ARP协议就起到这个作用

Ø当一台主机把以太网数据帧发送到位于同一局域网上的另一台主机时,是根据48位的以太网地址来确定目的接口的,设备驱动程序从不检查IP数据报中

的目的IP地址。ARP(地址解析)模块的功能为这两种不同的地址形式提供映射:32位的IP地址和48位的以太网地址

一.ARP报文各字段含义:

ARP报文字段总共有28个字节

1.硬件类型:占2个字节,表明ARP实现在何种类型的网络上。

Ø值为1:表示以太网。

2.协议类型:占2个字节表示要映射的协议地址类型。

ØIP:0800

3.硬件地址长度:占1个字节,表示MAC地址长度,其值为6个字节。

4.协议地址长度:占1个字节,表示IP地址长度,此处值4个字节

5.操作类型:占2个字节,表示ARP数据包类型。

Ø值为1表示ARP请求。

Ø值2表示ARP应答。

6.源MAC地址:占6个字节,表示发送端MAC地址

7.源IP地址:占4个字节,表示发送端IP地址

8.目的以太网地址:占6个字节,表示目标设备的MAC物理地址

9.目的IP地址:占4个字节,表示目标设备的IP地址.

注意:在ARP操作中,有效数据的长度为28个字节,不足以太网的最小长度46字节长度,需要填充字节,填充字节最小长度为18个字节

二.ARP请求分组或应答分组

以太网首部总共有14字节数据,arp请求报文总共有28字节。所以一个ARP 请求分组或应答分组总共有46字节数据。

而以太网数据包的最小数据为60字节。所以,要对其进行填充。

这里有一些重复信息

1. 在以太网的数据帧报头中和ARP请求数据帧中都有发送端的MAC物理地址。

2. 在发送ARP请求时,以太网帧头中的目的MAC物理地址为

FF-FF-FF-FF-FF-FF,而在ARP帧中的目的MAC处此时为空。

3. 对一个ARP请求来说,除ARP中目的端MAC硬件地址外的所有其他的字段都有填充值。当系统收到一份目的端为本地的ARP请求报文后,它就把硬件

地址填进去,然后用两个目的端地址分别替换两个发送端地址,并把操作字段置为2,最后发送出去。

三.ARP协议工作过程:

1. 原理:(ARP协议只使用于局域网中)

1> 在局域网中,网络中实际传输的是“帧”,帧里面是有目标主机的MAC地址的。

2> 在以太网中,一个主机要和另一个主机进行直接通信,必须要知道目标主机的MAC地址。但这个目标MAC地址是如何获得呢?它就是通过地址解析协议获得的。所谓“地址解析”就是主机在发送帧前将目标IP地址转换成目标MAC地址的过程。

3> ARP协议的基本功能就是通过目标设备的IP地址,查询目标设备的MAC 地址,以保证通信的顺利进行。

4> 点对点的连接是不需要ARP协议的

2. 工作过程:

1> 当主机A向本局域网上的某个主机B发送IP数据报时,就先在自己的ARP 缓冲表中查看有无主机B的IP地址。

2> 如果有,就可以查出其对应的硬件地址,再将此硬件地址写入MAC帧,然后通过以太网将数据包发送到目的主机中。

3> 如果查不到主机B的IP地址的表项。可能是主机B才入网,也可能是主机A刚刚加电。其高速缓冲表还是空的。在这中情况下,主机A就自动运行ARP。

(1)ARP进程在本局域网上广播一个ARP请求分组。ARP请求分组的主要内容是表明:我的IP地址是192.168.0.2,我的硬件地址是00-00-C0-15-AD-18.我想知道IP地址为192.168.0.4的主机的硬件地址。

(2)在本局域网上的所有主机上运行的ARP进行都收到此ARP请求分组。

(3)主机B在ARP请求分组中见到自己的IP地址,就向主机A发送ARP响应分组,并写入自己的硬件地址。其余的所有主机都不理睬这个ARP请求分组。ARP 响应分组的主要内容是表明:“我的IP地址是192.168.0.4,我的硬件地址是08-00-2B-00-EE-AA”,请注意:虽然ARP请求分组是广播发送的,但ARP响应分组是普通的单播,即从一个源地址发送到一个目的地址。

(4)主机A收到主机B的ARP响应分组后,就在其ARP高速缓冲表中写入主机B的IP地址到硬件地址的映射。

3. 事例说明:用ping说明ARP工作的原理

假设我们的计算机IP地址是192.168.1.1,要执行这个命令:ping192.168.1.2。该命令会通过ICMP协议发送ICMP(以太网控制报文协议)数据包

该过程需要经过下面的步骤:

1> 应用程序构造数据包,该示例是产生ICMP包,被提交给内核(网络驱动程序);

2> 内核检查是否能够转化该IP地址为MAC地址,也就是在本地的ARP缓存中查看IP-MAC对应表;

3> 如果存在该IP-MAC对应关系,那么跳到步骤<7;

如果不存在该IP-MAC对应关系,那么接续下面的步骤;

4> 内核进行ARP广播,目的MAC地址是FF-FF-FF-FF-FF-FF,ARP命令类型为REQUEST(1),其中包含有自己的MAC地址;

5> 当192.168.1.2主机接收到该ARP请求后,就发送一个ARP的REPLY(2)命令,其中包含自己的MAC地址;

6> 本地获得192.168.1.2主机的IP-MAC地址对应关系,并保存到ARP缓存中;

7> 内核将把IP转化为MAC地址,然后封装在以太网头结构中,再把数据发送出去;

4. 特殊情况:

ARP是解决同一个局域网上的主机或路由器的IP地址和硬件地址的映射问题。如果所要找的目标设备和源主机不在同一个局域网上。

相关主题