ARP 地址解析协议

1. ARP协议

地址解析协议,即ARP(Address Resolution Protocol),是根据IP地址获取物理地址的一个TCP/IP协议。主机发送信息时将
含目标IP地址的ARP请求广播到网络上的所有主机,并接收返回消息,以此确定目标的物理地址;收到返回消息后将该IP地址和物
理地址存入本机ARP缓存中并保留一定时间,下次请求时直接查询ARP缓存以节约资源。地址解析协议是建立在网络中各个主机
互相信任的基础上的,网络上的主机可以自主发送ARP应答消息,其他主机收到应答报文时不会检测该报文的真实性就会将其记
入本机ARP缓存;由此攻击者就可以向某一主机发送伪ARP应答报文,使其发送的信息无法到达预期的主机或到达错误的主机,
这就构成了一个ARP欺骗。ARP命令可用于查询本机ARP缓存中IP地址和MAC地址的对应关系、添加或删除静态对应关系等。
相关协议有RARP、代理ARP。NDP用于在IPv6中代替地址解析协议。

在网络通信中,每一台主机和路由都能了解局域网内的IP地址和MAC地址的对应关系,这是实现IP包封装(encapsulation)到帧的基
本条件。IP地址与MAC地址的对应是通过ARP协议传播到局域网的每个主机和路由。每一台主机或路由中都有一个ARP cache,
用以存储局域网内IP地址和MAC地址如何对应。

ARP协议(ARP介于连接层和网络层之间,ARP包需要包裹在一个帧中)的工作方式如下:主机会发出一个ARP包,该ARP包中包含
有自己的IP地址和MAC地址。通过ARP包,主机以广播的形式询问局域网上所有的主机和路由:我是IP地址xxxx,我的MAC地址
是xxxx,有人知道199.165.146.4的MAC地址吗?拥有该IP地址的主机会回复发出请求的主机:哦,我知道,这个IP地址属于我
的一个NIC,它的MAC地址是xxxxxx。由于发送ARP请求的主机采取的是广播形式,并附带有自己的IP地址和MAC地址,其他
的主机和路由会同时检查自己的ARPcache,如果不符合,则更新自己的ARP cache。这样,经过几次ARP请求之后,ARPcache
会达到稳定。如果局域网上设备发生变动,ARP重复上面过程。

(在Linux下,可以使用$arp命令来查看ARP的过程。ARP协议只用于IPv4。IPv6使用Neighbor Discovery Protocol来替代ARP的
功能。ARP高效运行的关键是由于每个主机上都有一个ARP高速缓存。这个高速缓存存放了最近Internet地址到硬件地址之间的映
射记录。高速缓存中每一项的生存时间一般为20min,起始时间从被创建时开始算起。


(1)前面两个段是以太网的源地址和目的地址。目的地址全为1的特殊地址是广播地址。电缆上的所有以太网接口都要接收广播

的数据帧。
(2)2个字节长的帧类型表示后面数据的类型,对于ARP请求或是应答来说,该字段值为0x0806
(3)硬件类型字段:表示硬件地址的类型,值为1表示以太网地址
(4)协议类型字段:表示需要映射的协议地址类型。值为0x0800表示IP地址
(5)硬件地址长度和协议地址长度:分别指出硬件地址和协议地址的长度,以字节为单位。对于以太网上IP地址的ARP协议请

求或是应答来说,
他们的值分别是6和4
(6)操作字段:有4中类型,分别是ARP请求(值为1)、ARP应答(值为2)、RARP请求(值为3)、RARP应答(值为4)
(7)发送端的硬件地址(以太网地址)、发送端的协议地址(IP地址)
对于一个ARP请求来说,除目的端硬件地址外的所有其他的字段都有填充值。当系统收到一份目的端为本机的ARP请求报文后,

他就把硬件地址填进去,然后用两个目的端地址分别替换发送端地址,并把操作字段置为2,最后将它发送出去。


地址解析协议:
32位Internet地址 =====》48位以太网地址 通过ARP协议
48位以太网地址 =====》32位Internet地址 通过RARP协议

 

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值