有了网络,你我可以随心所欲地浏览全世界的资讯新闻,快捷地收发邮件信息,与远在千里之外的人分享资源,坐在家里买卖商品,使地球村成为可能,这些都已经成为了很多人生活的一部分。但人们在发明计算机网络之初,只是考虑到了网络的互联互通,而没有考虑到安全性。这其中有一个比较重要的网络协议ARP,没有它,IPV4网络就无法正常工作,但很多安全问题又因它而起。今天我们就对ARP协议做一些介绍,希望大家能对ARP协议有一个较为正确的认识。
ARP协议:
为了工作需要,很多企业都会建立自己的企业内网,我们称之为局域网,如政府部门、机关单位、学校宿舍都对以太网情有独钟。在这种网络中有两种地址,一种是IP地址,它是由软件分配的,可以改变,工作于OSI参考模型的第三层;另一种是MAC地址,也称为网卡地址,是存储在种个网卡的,是不可改变的,工作于OSI参考模型的第二层。局域网中的每一台计算机都具有这两种地址。
按照OSI封装、解封装的工作过程,必须实现这两种地址之间的转换,这中间需要用到ARP以及RARP协议,当然我今天的重点是ARP。
ARP协议,又称为地址解析协议,英文全称是(Address Resolution Protocol)是属于TCP/IP协议族的。它的主要作用是网络地址转换。
在局域网中,当一台主机把以太网数据帧发送到另一台主机时,是根据48bit以太网地址来确定目的接口的。网络中实际传输的每一帧里包含有目标主机的介质访问控制子层(Media Access Control,MAC)地址。在以太网中,一个主机要和另一个主机进行直接通信,必须要知道目标主机的MAC地址。而MAC地址可以通过地址解析协议获得。所谓“地址解析”就是在IP地址和采用不同网络技术的硬件地址之间提供的动态映射。ARP协议就是用来获取目的主机的MAC地址的。需要获取的主机MAC地址,是存储在网络传输数据帧中的。
当然,还有另外一个协议是RARP,叫做反向地址解析协议(Reverse Address Resolution Protocol,RARP),其作用是将MAC地址转换为IP地址。
ARP缓存表:
为了提高通信的效率,网络上每台主机都有一个ARP缓存表,这也是ARP高效运行的关键所在。缓存表中存放了最近的Internet地址到硬件地址之间的映射记录。用户可以使用arp–a命令查看本机ARP缓存内容。以主机A向主机B发送数据为例,当发送数据时,主机A会在本机的ARP缓存表中寻找是否有目标IP地址。如寻找到,将目标主机MAC地址写入以太网帧首部加入到输出队列等候发送;否则,主机A就会在网络上发送一个ARP请求广播,询问同一网段内主机B的MAC地址。网络上其他主机并不响应该ARP询问,只有主机B的ARP层收到这份报文后,才会向主机A发送一个ARP应答,告知其MAC地址为“00-E0-4C-87-DD-D2”
此时,主机A将获得主机B的MAC地址,就可以向主机B发送信息。在发送信息的同时更新本机的ARP缓存表,以便下次再向主机B发送信息时,直接从ARP缓存表里查找。每台在第一次登录网络建立网络连接时,都要发送ARP广播包;如果要访问的主机的IP地址和MAC地址在本机ARP缓存表中不存在,也将向网络发送ARP请求。由此可以根据每个用户的既定访问权限信息对主机的ARP缓存表作相应改变,从而达到访问控制的目的。
但考虑到网络的实时变化,ARP高速缓存中的记录不是一承不变的,而是是动态变化的,每当发送一个指定地点的数据报且高速缓存中不存在当前项目时,ARP便会自动添加当前项目。ARP缓存采用老化机制,在一段时间内如果表中的某一行没有被使用,该行就会被删除,如此可以大大缩小ARP缓存表的长度,加快查询速度。因此,访问控制要求所进行的ARP缓存改变必须进行定时刷新,从而适应ARP缓存老化机制。