网络协议基础:ARP简析


关于ARP的简述

ARP:Address Resolution Protocol 地址解析协议。

RARP:Reverse Address Resolution Protocol 逆向地址解析协议。

不同的网络,如以太网,令牌网...,在数据链路层都有不同的寻址机制。

在以太网的局域网中,一台主机和另外一台主机通信发包,是根据48bit的以太网地址来确定目的接口的,设备驱动程序从不检查IP数据报中的目的IP地址。

地址解析协议(ARP)为这两种不同的地址形式提供映射:32bit的IP地址和数据链路层48bit地址的转换。RFC 826[Plummer1982]是ARP规范描述文档。

ARP为IP地址到对应的硬件地址之间提供动态映射。RARP是被那些没有磁盘驱动器的系统使用一般是无盘工作站或X终端),它需要系统管理员进行手工设置。

ARP通信过程解析:

(1).比如在一个局域网上,一台主机A192.168.0.12)要访问机器B(192.168.0.11)。他会发送一份称作ARP请求的以太网数据帧给以太网上的每个主机(广播包)。ARP请求数据帧中包含目的主机的IP地址,意思就是:“如果你是这个IP地址的拥有者,请回答你的硬件地址。”

(2).目的主机收到这份广播报文后,识别出这是发送端在寻问它的IP地址,于是发送一个ARP应答。这个ARP应答包含IP地址及对应的硬件地址。(非广播)

(3).收到ARP应答后,系统的ARP缓存便会记录MAC-IP的对应信息(ARP攻击点),在CMD里打ARP -a便可查询现在机器的ARP缓存情况。现在IP数据报现在就可以传送了。

在ARP背后有一个基本概念,那就是网络接口有一个硬件地址一个48bit的值,标识不同的以太网或令牌环网络接口)。在硬件层次上进行的数据帧交换必须有正确的接口地址。但是,TCP/IP有自己的地址:32 bit的IP地址。

知道主机的IP地址并不能让内核发送一帧数据给主机。内核如以太网驱动程序)必须知道目的端的硬件地址才能发送数据。ARP的功能是在32bit的IP地址和采用不同网络技术的硬件地址之间提供动态映射。

值得注意:

ARP协议是不可靠和无连接的,通常即使主机没有发出ARP请求,也会接受发给它的 ARP回应,并将回应的mac和ip对应关系放入自己的ARP缓存中。此外,内核为2.4.x的linux系统在ARP实现中,考虑到了ARP欺骗,不会接受未经请求的ARP回应,因此直接向这种系统发送ARP reply也是无效的,不过,有意思的是虽然它不会接受未经请求的ARP reply,但是只要接收到ARP的request,它就会更新自己的ARP缓存。

相关内容

    暂无相关文章