ARP

来源:互联网 发布:java开发人员平均年龄 编辑:程序博客网 时间:2024/06/06 02:39
ARP地址解析协议
      ARP(Address Resolution Protocol):
       为已知的IP地址确定网络接口层的
       MAC地址
1、源主机A要向目的主机B发送数据,为什么主机A除知道目的主机B的IP地
        址外,源主机A还必须要知道目的主机B的MAC地址?
        — IP地址具有全网范围内的寻址能力,主机A和B可能分别处在不同网络,
             主机A要访问主机B首先要知道主机B的IP地址,不然找不到主机B所在
             的网络;


       — 在现行寻址机制中,主机的以太网网卡只能识别MAC地址,而不能识别
             IP地址,若数据帧中不指明主机B的MAC 地址,主机B的网卡不能识别
            该帧是发给自己的,因此主机A仅知道主机B的IP地址还不够,还必须知
            道主机B的MAC地址,才能完成对主机B的访问;网络之间是用IP地址寻
            址,网络之内(同一物理网段或称IP子网)是用MAC地址寻址;


       —    且尽管MAC地址和IP地址一样都是在全网范围内唯一定义的,但MAC的
             寻址能力仅局限在一个物理网段(一个IP子网)中。




2、主机A如何通过主机B的IP地址解析得到主机B的MAC地址?
          ARP(Address Resolution Protocol)主要任务是根据IP地址解析对应的
          MAC地址。


(1)源主机A与目的主机B位于同一物理网段


— 当主机A不知道主机B的MAC地址时,发送ARP request 广播包;


— 主机B 收到 ARP request 广播包后,发现目的IP地址是自己,于是将
       自己的MAC地址通过ARP reply 包送回主机A,同时主机B将广播包
       中主机A的IP地址和MAC地址存入本地的ARP cache中,以备后用;
       网上其他主机不作响应;


— 主机A收到ARP reply包后将包中主机B的IP地址和MAC地址存入本
       地ARP cache中,并开始向主机B发送数据。
(2)源主机A与目的主机B位于不同物理网段


— 当主机A不知道主机B的MAC地址时,发送ARP request 广播包
     (第二 层广播帧);
— 路由器能收到此广播包后,路由器能够根据主机A和B的IP地址
       可以知道主机A和主机B不在同一IP子网(或同一广播域),且
       主机B不可能收到ARP request 广播包(广播包不跨路由器),
       因此路由器则以ARP代理身份将自己的MAC地址发送给主机A;
—主机A收到来自路由器的ARP reply包后,将包中主机B的IP地址和
       路由器的MAC地址存入本地ARP cache中,以后主机A发往主机B
       的数据帧用的是主机B的IP地址和路由器的MAC地址,数据帧首
       先送往路由器,然后由路由器转发。
3、 当主机A不知道主机B的MAC地址时是通过发送ARP request广播
         包获取主机B的MAC地址,然后再向主机B发送数据帧,为什么
         不可直接用广播的方式将数据帧发送给主机B?


         — 在网中每次都以广播方式传送数据帧是低效的,因网中每一台
              主机都要花费一定的代价去处理广播包,所以不直接用广播方式
              发送数据帧。
         — 为提高地址解析的效率,每一台主机都必须在本地建立一张ARP
              cache表,记录本地子网中所有主机包括路由器的IP地址和MAC
              地址的对应关系。


4、主机本地ARP cache表的建立和维护:
         — 通过发送和接收ARP request包获取对方的IP和MAC地址;
         — 接收网上任一ARP request 广播包,取得发送主机的IP和MAC地址;
         — 为ARP cache中每一表项设定生存时间,以防某台主机的IP地址
              或MAC地址发生变更(动态更新)。


5、ARP 解析过程
         — 主机A向主机B发送数据前,根据主机B的IP地址首先查找本地的
               ARP cache表,若查到则向主机B发送数据;
         — 若主机A在本地没查到主机B的MAC地址,则发ARP request广播
              包,从ARP reply 包中获取主机B的IP和MAC地址并存入本地ARP
              cache表中,然后才向主机B发送数据。


ARP地址解析和数据包在网间的传递
— 跨路由器后主机A不可能知道主机B的MAC地址;
— 数据包传送过程中,不仅仅是主机A,所经过的路由器都要进行地址解析;
— 数据包传送过程中源、目IP地址始终不变,而源、目MAC地址逐段变化
0 0
原创粉丝点击