ARP协议 --------- 网络地址到物理地址的映射(第一部分)

一、  缘由

  把高层地址(网络地址—32位)映射到物理地址(MAC地址—48位)的问题,即地址转换问题(address resolution problem),目前的解决方案:

    1、有的协议族在每台机器上保存高层地址、物理地址对照表;

    2、其他协议则在高层地址中对硬件地址进行编码。

   物理地址有两种基本类型:

    巨大而固定的物理地址,代表:以太网。

    小的易于配置的物理地址,代表:proNET(令牌环网络)。

  小的易于配置的物理地址,由网络地址转换到物理地址的方法是:直接映射转换。从概念上讲,选择一个使地址转换高效的编号方法就是选择一个函数f,f把IP地址映射到物理地址。由一台或多台计算机存储地址对,每个地址对包含一个Internet地址和对应的物理地址。可以用传统的哈希(hash)函数搜索地址表。

  巨大而固定的物理地址基本上是通过动态绑定转换来解决地址转换问题。动态绑定转换是使用一个底层协议对地址动态绑定,这个协议成为地址转换协议(Address Resolution Protocol),提供了一种既想当高效又易于维护的机制。

二、  ARP协议实现原理

  ARP动态转换的思想:当主机A要转换IP地址IB时,它广播一个特殊的分组,要求IP地址为IB的主机用它的物理地址PB响应它。包括B的所有主机接收到这个请求,但只有主机B识别它的IP地址并且发出一个含有它自己物理地址的应答。当A收到回答后,它就用该物理地址把互联网分组直接发送给B。即简单概括为:地址转换协议ARP允许主机在只知道同一物理网络上一个目的网络的网点的IP地址的情况下,找到目的主机的物理地址。

  在使用ARP的计算机上,都保留了一个高速缓存,存放最近获得的IP到物理地址的绑定,所以它们不必重复使用ARP。

  每个ARP广播中都包含发送方的IP到物理地址的绑定;接收方在处理ARP分组之前,先更新它们缓存中的IP到物理地址的绑定信息。

  ARP是一个隐藏底层网络物理地址、允许给每台机器分配一个任意IP地址的底层协议。我们把ARP看作物理网络系统的一部分,而不是互联网协议的一部分。

三、  ARP的实现

  ARP实现分为两部分:

  1、发送分组时把一个IP地址映射到一个物理地址上。给定一个目的网点的IP地址,软件查询它的ARP高速缓存中是否有该IP地址到物理地址的映射。若有,则软件提取该物理地址,把数据放到使用该物理地址的帧中,并把此帧发送出去。若没有,则软件必须广播一个ARP请求并等待一个回答。前提是主机必须保存原先发出的分组以便一旦地址转换成功后就可以立即发送。

  2、回答其他机器的请求。当ARP分组到达时,软件首先提取发送方的IP地址和物理地址对,检查本地的高速缓存中是否已经保存有该发送方的表项。若有,处理程序就用从分组提取的物理地址覆盖原先缓存中原先的物理地址,从而更新表项。此后接收方才处理ARP分组的其他部分。接收方要处理两种到达的分组。如果到达的是一个ARP请求,接收方机器要看一下是否是请求的目标。如果是,则ARP软件用本机的物理地址形成应答,并把应答直接发送给请求方。如果发送方的地址对不在接收方的高速缓存中,则接收方也要把这个地址对加进去缓存。如果在ARP请求中提到的IP地址与本地的IP不匹配,就把请求网上其他机器物理地址的这个分组加以忽略。

四、  ARP的封装与标识

  当ARP报文从一台机器传送到另一台时,它们必须封装放入物理帧中。

  为了识别携带ARP报文的帧,发送方给帧首部的类型字段分配一个特殊值,并把ARP报文放到该帧的数据字段中。当一帧到达一台计算机时,网络软件通过帧类型确定该帧的内容。在大多数技术中,所有携带ARP报文的帧都使用一种类型值,而接收方的网络软件必须进一步区分ARP请求和ARP应答。(以太网中,携带ARP报文的帧类型字段是080616)。

五、  ARP的协议格式

   ARP分组中的数据没有一个固定格式的首部。为使ARP适用于多种网络技术,其地址字段的长度依赖于网络的类型。

0                    8                    16                                  31

硬件类型

协议类型

硬件地址长度(HLEN)

协议长度(PLEN)

操作

发送方首部(八位组0-3)

发送方首部(八位组4-5)

发送方IP地址(八位组0-1)

发送方IP地址(八位组2-3)

目标首部(八位组0-1)

目标首部(八位组2-5)

目标IP地址(八位组0-3)

   

 

   “硬件类型”(HARDWARE TYPE)字段指明了发送方想知道的硬件接口类型;以太网的值为1.

   “协议类型”(PROTOCOL TYPE)字段指明了发送方提供的高层协议地址类型;IP地址为080616

   “操作”(OPERATION)指明一个ARP请求(1)、ARP响应(2)、RARP请求(3)和RARP响应(4)。

   HLEN字段和PLEN字段允许ARP在任意网络中使用,因为它们指明了硬件地址和高层协议地址的长度。发送方如果知道的话,则在“发送方主机地址”(SENDER HA)和“发送方IP地址”(SENDER IP)字段中给出它的硬件地址和IP地址。

   当发出请求时,发送方用“目标主机地址”(TARGET HA)和“目标IP地址”(TARGET IP)字段留出目标主机地址(ARP)或硬件地址(RARP)。在目标主机响应之前,它填充所缺的地址,变换目标和发送方地址对的位置,并把操作改成应答。因此,一个应答携带了最初请求方的IP和硬件地址,以及所寻找机器的绑定IP和硬件地址。

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值