`
本来不想注册
  • 浏览: 189555 次
  • 性别: Icon_minigender_1
  • 来自: 杭州
社区版块
存档分类
最新评论

地址解析协议(ARP)

阅读更多
1、什么是ARP?

    英文原义:Address Resolution Protocol
    中文释义:地址解析协议(RFC-826)

    局域网中,网络中实际传输的是“帧”,帧里面是有目标主机的MAC地址的。所谓“地址解析”就是主机在发送帧前将目标IP地址转换成目标MAC地址的过程。ARP协议的基本功能就是通过目标设备的IP地址,查询目标设备的MAC地址以保证通信的顺利进行。整个转换过程是一台主机先向目标主机发送包含IP地址信息的广播数据包,即ARP请求,然后目标主机向该主机发送一个含有IP地址和MAC地址数据包,通过MAC地址两个主机就可以实现数据传输了。


2、ARP的使用环境(=.=!)

    ARP只在以太网中使用,就是说它只用在本地主机认为目标主机与它直连的情况下,比如PC1与PC2在同一网段内,那么PC1与PC2通信之前就要先用ARP得到PC2的MAC地址从而封装到MAC帧后进行通信,若PC1与PC1所在的网段外的主机通信,那么它就不会用ARP,而是查看主机的路由表,从而把数据包转发到网关,再由网关转发出去。点对点的连接是不需要ARP协议的,ARP协议是使用在广播型网络中的协议,由于在广播型网络中主机所能连接的节点数量可以为多台,那么必须有一个地址解析协议来解析逻辑地址(IP地址)和主机标识(MAC地址)。ARP协议正是被设计来进行此种操作。而PPP协议则是一个点对点的网络,一台主机只能连接唯一的对端,因此不需要将逻辑地址解析为主机标识,因此在PPP协议中,没有ARP和RARP协议。



3、Note(Cisco-Proxy ARP):

    Multiple IP addresses are mapped to a single MAC address (the router's MAC
address),indicating that proxy ARP is in use.If the source host considered the destination host is in the same network with it,but in fact is not.

    The Cisco router's interface should be configured to accept and respond to proxy ARP. This is enabled by default. Proxy ARP can be disabled on a per interface basis with the interface configuration command no ip proxy-arp, as shown below:

Router# configure terminal
Enter configuration commands, one per line. End with CNTL/Z.
Router(config)# interface ethernet 0
Router(config-if)# no ip proxy-arp
Router(config-if)# ^Z
Router#

    To enable proxy ARP on an interface, use the ip proxy-arp interface configuration command.

4、ARP原理

    ARP原理:某机器A要向主机B发送报文,会查询本地的ARP缓存表,找到B的IP地址对应的MAC地址后,就会进行数据传输。如果未找到,则广播A一个ARP请求报文(携带主机A的IP地址Ia——物理地址Pa),请求IP地址为Ib的主机B回答物理地址Pb。网上所有主机包括B都收到ARP请求,但只有主机B识别自己的IP地址,于是向A主机发回一个ARP响应报文。其中就包含有B的MAC地址,A接收到B的应答后,就会更新本地的ARP缓存。接着使用这个MAC地址发送数据(由网卡附加MAC地址)。因此,本地高速缓存的这个ARP表是本地网络流通的基础,而且这个缓存是动态的。



5、例举ARP的工作过程

    为了解释ARP协议的作用,就必须理解数据在网络上的传输过程。这里举一个简单的PING例子。假设我们的计算机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地址,然后封装在以太网头结构中,再把数据发送出去;


    使用arp-a命令就可以查看本地的ARP缓存内容,所以,执行一个本地的PING命令后,ARP缓存就会存在一个目的IP的记录了。当然,如果你的数据包是发送到不同网段的目的地,那么就一定存在一条网关的IP-MAC地址对应的记录。

    知道了ARP协议的作用,就能够很清楚地知道,数据包的向外传输很依靠ARP协议,当然,也就是依赖ARP缓存。要知道,ARP协议的所有操作都是内核自动完成的,同其他的应用程序没有任何关系。同时需要注意的是,ARP协议只使用于本网络。



http://blog.chinaunix.net/u/27698/showart_311084.html
分享到:
评论

相关推荐

Global site tag (gtag.js) - Google Analytics