ARP(Adress Resolution Protocol): 地址解析协议

  地址解析协议(Address Resolution Protoclol),其基本功能为通过目标设备的IP地址,查询目标设备的MAC地址,以保证通信的顺利。它是IPV4中网络层必不可少的协议。不过在IPV6中已经不再适用,并被邻居发现协议(NDP)所代替。

  当一台主机把以太网数据帧发送到位于同一局域网上的另一台主机时,是根据48bit的以太网地址来确定目的接口的。设备驱动器从不检查IP数据报中的目的IP地址。从逻辑Internet地址到对应的物理硬件地址需要进行翻译。这就是ARP的功能

  点对点(PPP)链路不使用ARP地址。

一、 基本功能

  在以太网协议中规定,同一局域网中的一台主机要和另一台主机进行直接通信,必须要知道目标主机的MAC地址。而在TCP/IP协议中,网络层和传输层只关心目标主机的IP地址。这就导致在以太网中使用IP协议时,数据链路层的以太网协议链接到上层IP地址,获得其MAC地址。这就是ARP协议要做的事情。所谓地址解析(address resolution protocol)及时主机在发送帧钱将目标IP地址转换成目标MAC地址的过程。另外,也不能直接通信,必须经过路由转发才可以。所以此时,发送主机通过ARP协议获得的蒋不是目的主机的真是MAC地址,而是一台可以通往局域网外的路由器的MAC地址。于是此后发送主机发往目的主机的所有帧,都将发往该路由器,通过它向外发送。这种情况为ARP代理(ARP Proxy)。

二、原理

  每台安装有TCP/IP的电脑或路由器都有一个ARP缓存表,表里的IP地址与MAC地址是相对应的。

主机地址 IP地址 MAC地址
 A  192.168.38.10  00-AA-00-62-D2-02
 B  192.168.38.11  00-BB-00-62-C2-02
 C  192.168.38.12  00-CC-00-62-C2-02

  以主机A(192.168.38.10)向主机B(192.168.38.11)发送数据为例。当发送数据时,主机A会在自己的ARP缓存表中寻找是否有目标IP地址。如果找到了,也就知道了目标MAC地址为(00-BB-00-62-C2-02),直接把目标MAC地址写入帧里面发送就可以了;如果在ARP缓存表中没有找到相对应的IP地址,主机A就会在网络上发送一个广播(ARP request),目标MAC地址是“FF.FF.FF.FF.FF.FF”,这表示向同一网段内的所有主机发出这样的询 问:“192.168.38.11的MAC是什么?”网络上其他主机并不响应ARP询问,只有主机B接收到这个帧时,才向主机A做出这样的回应(ARP response):“192.168.38.11的MAC地址是(00-BB-00-62-C2-02)”。 同时B也会把A的这条记录添加到ARP缓存中。这样,主机A主机收到来自B的ARP回答,知道了B的硬件地址,它就可以向主机B发送信息了。同时它还更新了自己的ARP缓存表,下次再向主机B发送信息时,直接从ARP缓存表里查找就可以了。ARP缓存表采用了老化机制,在一段时间内(一般20分钟)如果表中的某一行没有使用,就会被删除,这样可以大大减少ARP缓存表的长度,加快查询速度。

  我们还知道,ARP请求是广播的,但是ARP应答的目的地址趋势发出请求的主机地址。ARP应答是直接发送到请求端主机的,而非广播的。

  一般情况下,当系统收到ARP请求或发送ARP应答时,都要把请求端的硬件地址和IP地址存入存入ARP告诉缓存。

  ARP查询与回复的例子:   1       0:0:0c:6f:2d:40  ff:ff:ff:ff:ff:ff arp 60

             arp who-has 192.168.1.2 tell 192.168.1.1

           2        0:0:c0:c2:9b:26   0:0:0c:6f:2d:40 arp 60

             arp reply 192.168.1.2 is-at 0:0:c0:c2:9b:26

  发送广播ARP报文的IP地址为:192.168.1.1,MAC地址为:0:0:0c:6f:2d:40,发送的目的地址为ff:ff:ff:ff:ff:ff (广播地址),询问的IP是192.168.1.2。IP地址是192.168.1.2的主机收到这条报文后,更新自己的arp缓存,并把自己的mac地址(0:0:c0:c2:9b:26)和IP地址(192.168.1.2)组成的报文发送给询问方0:0:0c:6f:2d:40。

四、免费ARP

  免费ARP(gratuitous ARP),它是指主机发送ARP查找自己的IP地址。通常,它发生在系统引导期间进行接口配置的时候。

  1 0.0 0:0:0c:6f:2d:40    ff:ff:ff:ff:ff:ff arp 60

     arp who-has 140.252.13.35(询问的IP) tell 140.252.13.35(发送询问的IP)

  源mac地址:0:0:0c:6f:2d:40   目的mac地址:ff:ff:ff:ff:ff:ff(广播地址)

  询问140.252.13.35的硬件地址,如果有主机应答,那么arp回答的报文发送给140.252.13.35。

  免费ARP有两方面的作用:

  1. 一个主机可以通过它来确定另一个主机是否设置了相同的IP地址。发送端的主机并不希望对此请求有一个回答。但是如果接到一个回答,那么就会在终端日志上产生一个错误消息。

  2.如果发送免费ARP的主机正好改变了硬件地址(很可能是主机关机了,并换了一块接口卡,然后重新启动),那么这个分组就可以使其他主机告诉缓存中旧的硬件地址进行相应的更新。一个比较著名的ARP事实是,如果主机收到某个IP地址的ARP请求,而且它已经在接收者的高速缓存中,那么就要用ARP请求中的发送端硬件地址(如以太网地址)对高速缓存中的相应的内容进行更新。主机接收到任何ARP请求都要完成这个操作(ARP请求是在网上广播的,因此每次发送ARP请求时网络上的所有主机都要这样做)

时间: 2024-10-16 02:31:56

ARP(Adress Resolution Protocol): 地址解析协议的相关文章

ARP(Address Resolution Protocol)地址解析协议初识

ARP址解析协议是根据IP地址获取物理地址的一个TCP/IP协议.它工作在OSI七层模型的中第二层--数据链路层. 使用ARP地址解析协议,可根据网络层IP数据包包头中的IP地址信息解析出目标硬件地址(MAC地址)信息,以保证通信的顺利进行. 可能会受到恶意攻击--ARP欺骗 与IPV6的NDP协议相比,ARP使用广播的效率偏低. ARP是通过报文工作的,报文的结构如下图所示: 假设同一个网络中的主机A要与主机B进行通信,A和B的信息如下: 主机A的IP地址为192.168.1.1,MAC地址为

ARP:地址解析协议实现学习

在以太网上传输IP数据报时,以太网设备并不能识别32位IP地址,而是以48位以太网地址传输以太网数据包的.因此,IP数据报在以太网上传输前需要封装为以太网帧,而以太网帧的目的地址正是通过IP数据报的目的IP地址查询得到的.因此IP地址和以太网地址之间存在着映射,通过查看ARP表就可以得到这两地址间的对应关系.地址解析协议(Address Resolution Protocol-ARP)就是用来确定这些对应关系的协议. ARP协议的处理涉及以下文件: include/linux/if_arp.h

ARP (地址解析协议)

地址解析协议,即ARP(Address Resolution Protocol),是根据IP地址获取物理地址的一个TCP/IP协议.主机发送信息时将包含目标IP地址的ARP请求广播到网络上的所有主机,并接收返回消息,以此确定目标的物理地址:收到返回消息后将该IP地址和物理地址存入本机ARP缓存中并保留一定时间,下次请求时直接查询ARP缓存以节约资源.地址解析协议是建立在网络中各个主机互相信任的基础上的,网络上的主机可以自主发送ARP应答消息,其他主机收到应答报文时不会检测该报文的真实性就会将其记

TCP/IP的排头兵――地址解析协议(ARP) (转载)

转自:http://blog.csdn.net/wangxg_7520/article/details/2488442 一.引言 古人行军打仗,都要有一个可以引领队伍前进方向的排头兵,在TCP/IP网络大军中,也存在这种排头兵,为TCP/IP传输指明方向,它就是地址解析协议――ARP. 二.ARP协议及应用 地址解析协议(ARP),是TCP/IP协议簇中较底层的一个,它是TCP/IP应用的基础,但又不完全隶属于TCP/IP,所以在名著<TCP/IP详解>中,它被单独的划分出来,与IP一起并列于

【RL-TCPnet网络教程】第23章 RL-TCPnet之地址解析协议ARP

第23章      RL-TCPnet之地址解析协议ARP 本章节为大家讲解ARP(Address Resolution Protocol,地址解析协议),通过前面章节对TCP和UDP的学习,需要大家对ARP也有个基础的认识. (本章的知识点主要整理自网络) 23.1  初学者重要提示 23.2  ARP基础知识参考资料 23.3  ARP基础知识点 23.4  ARP函数 23.5  总结 23.1  初学者重要提示 通过前面几个章节对TCP和UDP的学习,需要初学者对ARP的基础知识点也有个

tcp/ip协议学习 第四章 ARP:地址解析协议

派猴子来的救兵 关于ARP的RFC文档在此! ARP干嘛的 曾经有段时间, 六七年前了吧. 本科的时候, 流行了一阵子ARP病毒攻击, 导致整个局域网都不能上网了. 当时只听说这个东西防不住, 只要有一个人中毒, 就导致所有人上不了网. 现在也终于知道这是怎么回事了, 也能手工让某个同学上不了网了, 咳咳. 大家应该也都知道ARP是干嘛的, 我再啰嗦一下.. 比如我访问了百度, 百度回了包给我, 百度只知道我的IP是什么,不知道我的MAC地址. 这个包到网关的时候, IP这一层再把数据交给下一层

TCP/IP具体解释学习笔记——地址解析协议ARP

一 概述 我们知道,IP协议是用来在不同的物理网络之间数据传输的.要在不同的网络之间数据传输,至少须要将IP协议所用的地址转换成特定网络所使用的物理地址. 一般来说.就是将IPv4地址转换为mac地址.要想与一个特定的设备进行数据交换,光知道它的IP地址是不够的.还须要知道它的物理地址. 而地址解析协议(ARP)就是来完毕这个工作的,它能将IPv4地址转换为设备的硬件地址.须要注意的是.ARP仅仅能转换IPv4的地址.IPv6须要使用另外的协议进行转换. 另外须要说明的是,网络层和数据链路层地址

《TCP/IP详解卷1:协议》第4章 ARP:地址解析协议-读书笔记

章节回顾: <TCP/IP详解卷1:协议>第1章 概述-读书笔记 <TCP/IP详解卷1:协议>第2章 链路层-读书笔记 <TCP/IP详解卷1:协议>第3章 IP:网际协议(1)-读书笔记 <TCP/IP详解卷1:协议>第3章 IP:网际协议(2)-读书笔记 <TCP/IP详解卷1:协议>第4章 ARP:地址解析协议-读书笔记 1.引言 当一台主机把以太网数据帧发送到位于同一局域网上的另一台主机时,是根据48 bit的以太网地址来确定目的接口的

【网络基础】地址解析协议(ARP协议)简介

地址解析协议: 即ARP协议,是根据IP地址获取物理地址的一个TCP/IP协议 功能: 主机将ARP请求广播到网络上的所有主机,并接收返回消息,确定目标IP地址的物理地址,同时将IP地址和硬件地址存入本机ARP缓存中,下次请求时直接查询ARP缓存. 工作原理: 我们以主机A(209.0.0.5)向主机B(209.0.0.6)发送数据为例. 1.当发送数据时,主机A会在自己的ARP缓存表中寻找是否有目标IP地址. 2.如果找到了,也就知道了目标MAC地址,直接把目标MAC地址写入帧里面发送就可以了