首页 >> 文档 >> 互联网百科

什么是arp协议?

发布日期:2008-06-30最近更新:2008-06-30来源:BHCODE作者:
要想了解ARP欺骗攻击的原理,首先就要了解什么是ARP协议。
ARP是地址转换协议(Address Resolution Protocol)的英文缩写,它是一个链路层协议,工作在OSI
模型的第二层,在本层和硬件接口间进行联系,同时对上层(网络层)提供服务。我们知道二层的以
太网交换设备并不能识别32位的IP地址,它们是以48位以太网地址(就是我们常说的MAC地址)传输
以太网数据包的。也就是说IP数据包在局域网内部传输时并不是靠IP地址而是靠MAC地址来识别目标
的,因此IP地址与MAC地址之间就必须存在一种对应关系,而ARP协议就是用来确定这种对应关系的
协议。ARP工作时,首先请求主机会发送出一个含有所希望到达的IP地址的以太网广播数据包,然
后目标IP的所有者会以一个含有IP和MAC地址对的数据包应答请求主机。这样请求主机就能获得要
到达的IP地址对应的MAC地址,同时请求主机会将这个地址对放入自己的ARP表缓存起来,以节约不
必要的ARP通信。ARP缓存表采用了老化机制,在一段时间内如果表中的某一行没有使用(windows系
统这个时间为2分钟,而Cisco路由器的这个时间为5分钟),就会被删除,这样可以大大减少ARP缓
存表的长度,加快查询速度。通过下面的例子我们可以很清楚的看出ARP的工作机制。
ARP原理
如上图所示,假如我们有两个网段、三台主机、两个网关、分别是:
主机名    IP地址        MAC地址
网关1  192.168.1.1  01-01-01-01-01-01
主机A  192.168.1.2  02-02-02-02-02-02
主机B  192.168.1.3  03-03-03-03-03-03
网关2  10.1.1.1     04-04-04-04-04-04
主机C  10.1.1.2     05-05-05-05-05-05


假如主机A要与主机B通讯,它首先会通过网络掩码比对,确认出主机B是否在自己同一网段内,如果
在它就会检查自己的ARP缓存中是否有192.168.1.3这个地址对应的MAC地址,如果没有它就会向局域
网的广播地址发送ARP请求包,大致的意思是192.168.1.3的MAC地址是什么请告诉192.168.1.2,而
广播地址会把这个请求包广播给局域网内的所有主机,但是只有192.168.1.3这台主机才会响应这个
请求包,它会回应192.168.1.2一个arp reply包,大致的意思是192.168.1.3的MAC地址是
03-03-03-03-03-03。这样的话主机A就得到了主机B的MAC地址,并且它会把这个对应的关系存在自
己的ARP缓存表中。之后主机A与主机B之间的通讯就依靠两者缓存表里的MAC地址来通讯了,直到通
讯停止后两分钟,这个对应关系才会被从表中删除。

再来看一个非局域网内部的通讯过程,假如主机A需要和主机C进行通讯,它首先会通过比对掩码发
现这个主机C的IP地址并不是自己同一个网段内的,因此需要通过网关来转发,这样的话它会检查
自己的ARP缓存表里是否有网关1(192.168.1.1)对应的MAC地址,如果没有就通过ARP请求获得,如果
有就直接与网关通讯,然后再由网关1通过路由将数据包送到网关2,网关2收到这个数据包后发现
是送给主机C(10.1.1.2)的,它就会检查自己的ARP缓存(没错,网关一样有自己的ARP缓存),
看看里面是否有10.1.1.2对应的MAC地址,如果没有就使用ARP协议获得,如果有就是用该MAC地址将
数据转发给主机C。
本周推荐
MORE
热点关注
MORE