1ARP协议概述
ARP协议和ICMP协议是常用的TCP/IP底层协议 。在对网络故障进行诊断的时候,它们也是最常用的协议 。
ARP(Address Resolution Protocol,地址解析协议)是一个位于TCP/IP协议栈中的低层协议,负责将某个IP地址解析成对应的MAC地址 。
2 ARP工作原理
2.1 ARP工作过程
当一个基于TCP/IP的应用程序需要从一台主机发送数据给另一台主机时,它把信息分割并封装成包,附上目的主机的IP地址 。然后,寻找IP地址到实际MAC地址的映射,这需要发送ARP广播消息 。当ARP找到了目的主机MAC地址后,就可以形成待发送帧的完整以太网帧头 。最后,协议栈将IP包封装到以太网帧中进行传送 。
如图1所示,描述了ARP广播过程 。
图1ARP广播
在图1中,当主机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缓存内 。
2.2 ARP报文格式
ARP报文被封装在以太网帧头部中传输,如图2所示,是ARP请求协议报文头部格式 。
图2ARP请求协议报文头部格式
图2中黄色的部分是以太网(这里是Ethernet II类型)的帧头部 。其中,第一个字段是广播类型的MAC地址:0XFF-FF-FF-FF-FF-FF,其目标是网络上的所有主机 。第二个字段是源MAC地址,即请求地址解析的主机MAC地址 。第三个字段是协议类型,这里用0X0806代表封装的上层协议是ARP协议 。
接下来是ARP协议报文部分 。其中各个字段的含义如下:
硬件类型:表明ARP实现在何种类型的网络上 。
协议类型:代表解析协议(上层协议) 。这里,一般是0800,即IP 。
硬件地址长度:MAC地址长度,此处为6个字节 。
协议地址长度:IP地址长度,此处为4个字节 。
操作类型:代表ARP数据包类型 。0表示ARP请求数据包,1表示ARP应答数据包 。
源MAC地址:发送端MAC地址 。
源IP地址:代表发送端协议地址(IP地址) 。
目标MAC地址:目的端MAC地址(待填充) 。
目标IP地址:代表目的端协议地址(IP地址) 。
ARP应答协议报文和ARP请求协议报文类似 。不同的是,此时,以太网帧头部的目标MAC地址为发送ARP地址解析请求的主机的MAC地址,而源MAC地址为被解析的主机的MAC地址 。同时,操作类型字段为1,表示ARP应答数据包,目标MAC地址字段被填充以目标MAC地址 。
2.3 ARP缓冲区
为了节省ARP缓冲区内存,被解析过的ARP条目的寿命都是有限的 。假如一段时间内该条目没有被参考过,则条目被自动删除 。在工作站PC的Windows环境中,ARP条目的寿命是2分钟,在大部分Cisco交换机中,该值是5分钟 。
在工作站PC的Windows环境中,可以使用命令arp -a查看当前的ARP缓存,如图3所示 。而在路由器和交换机中可以命令show arp完成相同的功能,如图4所示 。
图3Windows环境下,命令arp -a的输出
图4路由器中show arp命令的输出
注重:ARP不能通过IP路由器发送广播,所以不能用来确定远程网络设备的硬件地址 。对于目标主机位于远程网络的情况,IP利用ARP确定默认网关(路由器)的硬件地址,并将数据包发到默认网关,由路由器按它自己的方式转发数据包 。
推荐阅读
- 组图 TCP/IP协议新手入门学习二
- 组图 TCP/IP协议新手入门学习一
- 财会基础知识有哪些
- 学会王码五笔输入法基础知识必备
- 基础知识:互联网络的三大协议
- 基础知识 无线局域网嗅探技术原理分析
- 新手必学之局域网基础知识
- 网络技术员维护局域网高级技巧大汇总
- 局域网基础知识
- 局域网交换机的配置与选购基础知识
