您的位置:首页 > 其它

ARP地址解析协议深入

2016-10-31 12:32 141 查看
一 ARP地址解析协议

将计算机的网络地址(IP地址32位)转化为物理地址(MAC地址48位)

ARP数据格式



以太网目的地址:是硬件地址,包含六个字节的地址。例如: 00 1f 3cd1 b6 7d

以太网源地址:  是发出给ARP包的主机地址。格式与目的地址相同

以太帧类型: 用来表明上层协议的类型,如果是ARP协议的话就为:0806 。

硬件类型:如果是以太网则硬件类型为:0001 。

协议类型:这里一般写的是:0800 表示IP类型,ARP是IP协议族中的一个。 

硬件地址长度:指的是MAC地址的长度,长度为6 单位是字节 。

协议地址产度:如果是IP4则这个值为4,单位是字节 。

Op为操作方式:如果为1则为请求包;如果为2则为回应包。

这里假设源主机为:A ,目的主机为:B 。其请求和回应这个都不变。

如果是请求包的话:

      以太网首部的目的MAC地址为:FF:FF:FF:FF:FF:FF表示广播包。

      ARP字段中的目的主机MAC地址字段为:00:00:00:00:00:00(十六进制表示) 起到填充的作用。

      op操作符字段为:0001

如果是回应包的话:  

     以太网首部的目的MAC地址为:源主机的MAC地址。

     ARP字段中的源主机MAC地址字段为:目的主机的MAC地址。

     op操作符字段为:0002。    

二 ARP协议工作过程





当一个基于TCP/IP的应用程序需要从一台主机发送数据给另一台主机时,它把信息分割并封装成包,附上目的主机的IP地址。然后,寻找IP地址到实际MAC地址的映射,这需要发送ARP广播消息。当ARP找到了目的主机MAC地址后,就可以形成待发送帧的完整以太网帧头。最后,协议栈将IP包封装到以太网帧中进行传送。

在图中,当主机A要和主机B通信(如主机A Ping主机B)时。主机A会先检查其ARP缓存内是否有主机B的MAC地址。如果没有,主机A会发送一个ARP请求广播包,此包内包含着其欲与之通信的主机的IP地址,也就是主机B的IP地址。

当主机B收到此广播后,会将自己的MAC地址利用ARP协议响应包传给主机A,并更新自己的ARP缓存,也就是同时将主机A的IP地址/MAC地址对保存起来,以供后面使用。主机A在得到主机B的MAC地址后,就可以与主机B通信了。同时,主机A也将主机B的IP地址/MAC地址对保存在自己的ARP协议缓存内。

 

Ping过程详解

主要的Ping有两种情况,一种是同一网段,一种是跨网段的。拓扑图:





如果主机A要Ping主机B

主机A就要封装二层报文,他会先检查自己的MAC地址,如果没有B的MAC地址,就会向外发送一个ARP广播包,如图:

         


其中ARP报文格式如下:




       
   OP表示:1:表示ARP请求;2:表示ARP应答;3:表示RARP请求;4:表示RARP应答。
     交换机会收到这个报文后,交换机有学习MAC地址的功能,所以他会检索自己有没有保存主机B的MAC地址,如果有的,就直接返回给A主机,如果没有,就会向所有端口发送ARP广播,其他主机收到后,发现不是在找自己,就纷纷丢弃了改报文,不去理会,直到主机B收到了报文后,就立即响应,我的MAC地址是多少,同时学到主机A的MAC地址,并按同样的ARP报文格式返回给主机A。如图:

         


ARP报文的格式为:



         

    主机A 学到了主机B的MAC地址,就把这个MAC封装到ICMP协议的二层报文中向主机B发送,报文格式如下:

         


    当主机B收到了这个报文后,发现是主机A的ICMP回显请求,就按同样的格式,返回一个值给主机A,这样就完成了同一网段内的Ping过程。



       

如果主机A要Ping主机C

主机A发现主机C的IP和自己的IP不是同一个网段,他就去找网管转发,但是他也不知道网管的MAC情况下呢?这是就会像前面那个步骤一样,先发送一个ARP广播,学到网关的MAC地址,再发封装包,报文的格式如下:



      

         当路由器收到主机A发过来的ICMP报文,发现自己的母的地址是其本身MAC地址,根据母的地IP地址2.1.1.1,查找路由表,发现2.1.1.1/24的路由表项,得到一个出口指针,去掉原来的MAC头部,加上自己的MAC地址向主机C转发,报文格式如下   



4000
         最后主机C已学到路由器2端口MAC,路由器2端口转发给路由器1端口,路由器端口学到主机A的MAC地址的情况下,他们就不需要再做ARP解析,就将ICMP的回显请求恢复过来,报文格式如下:

         

内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签:  ARP 地址解析