arp协议
① 简述 ARP 协议的原理
系。当源主机需要将一个数据包要发送到目的主机时,会首先检查自己 ARP列表中是否存专在该 IP地址对应的属MAC地址,如果有,就直接将数据包发送到这个MAC地址;如果没有,就向本地网段发起一个ARP请求的广播包,查询此目的主机对应的MAC地址。此ARP请求数据包里包括源主机的IP地址、硬件地址、以及目的主机的IP地址。网络中所有的主机收到这个ARP请求后,会检查数据包中的目的IP是否和自己的IP地址一致。如果不相同就忽略此数据包;如果相同,该主机首先将发送端的MAC地址和IP地址添加到自己的ARP列表中,如果ARP表中已经存在该IP的信息,则将其覆盖,然后给源主机发送一个 ARP响应数据包,告诉对方自己是它需要查找的MAC地址;源主机收到这个ARP响应数据包后,将得到的目的主机的IP地址和MAC地址添加到自己的ARP列表中,并利用此信息开始数据的传输。如果源主机一直没有收到ARP响应数据包,表示ARP查询失败。
② ARP协议的作用是什么
arp(地址转换协议)
??arp是一个重要的tcp/ip协议,并且用于确定对应ip地址的网卡物理地址。实用arp命令,你能够查看本地计算机或另一台计算机的arp高速缓存中的当前内容。此外,使用arp命令,也可以用人工方式输入静态的网卡物理/ip地址对,你可能会使用这种方式为缺省网关和本地服务器等常用主机进行这项作,有助于减少网络上的信息量。
??按照缺省设置,arp高速缓存中的项目是动态的,每当发送一个指定地点的数据报且高速缓存中不存在当前项目时,arp便会自动添加该项目。一旦高速缓存的项目被输入,它们就已经开始走向失效状态。例如,在windows nt网络中,如果输入项目后不进一步使用,物理/ip地址对就会在2至10分钟内失效。因此,如果arp高速缓存中项目很少或根本没有时,请不要奇怪,通过另一台计算机或路由器的ping命令即可添加。所以,需要通过arp命令查看高速缓存中的内容时,请最好先ping 此台计算机(不能是本机发送ping命令)。
常用命令选项:
arp -a或arp -g——用于查看高速缓存中的所有项目。-a和-g参数的结果是一样的,多年来-g一直是unix平台上用来显示arp高速缓存中所有项目的选项,而windows用的是arp -a(-a可被视为all,即全部的意思),但它也可以接受比较传统的-g选项。
arp -a ip——如果你有多个网卡,那么使用arp -a加上接口的ip地址,就可以只显示与该接口相关的arp缓存项目。
arp -s ip 物理地址——你可以向arp高速缓存中人工输入一个静态项目。该项目在计算机引导过程中将保持有效状态,或者在出现错误时,人工配置的物理地址将自动更新该项目。
arp -d ip——使用本命令能够人工删除一个静态项目。
③ ARP协议的缺陷
ARP协议的缺陷
ARP协议是建立在信任局域网内所有结点的基础上的,它很高效,但却不安全。它是无状态的协议,不会检查自己是否发过请求包,也不管(其实也不知道)是否是合法的应答,只要收到目标MAC是自己的ARP reply包或arp广播包(包括ARP request和ARP reply),都会接受并缓存。这就为ARP欺骗提供了可能,恶意节点可以发布虚假的ARP报文从而影响网内结点的通信,甚至可以做“中间人”。
④ ARP 协议工作过程是什么
当一个基于TCP/IP的应用程序需要从一台主机发送数据给另一台主机时,它把信息分割并封装成包,附上目的主机的IP地址。然后寻找IP地址到实际MAC地址的映射,这需要发送ARP广播消息。
当ARP找到了目的主机MAC地址后,就可以形成待发送帧的完整以太网帧头。最后,协议栈将IP包封装到以太网帧中进行传送。如图所示,描述了ARP广播过程。
在图中,当主机A要和主机B通信(如主机A Ping主机B)时。主机A会先检查其ARP缓存内是否有主机B的MAC地址。如果没有,主机A会发送一个ARP请求广播包,此包内包含着其欲与之通信的主机的IP地址,也就是主机B的IP地址。
当主机B收到此广播后,会将自己的MAC地址利用ARP响应包传给主机A,并更新自己的ARP缓存,也就是同时将主机A的IP地址/MAC地址对保存起来,以供后面使用。
主机A在得到主机B的MAC地址后,就可以与主机B通信了。同时,主机A也将主机B的IP地址/MAC地址对保存在自己的ARP缓存内。
(4)arp协议扩展阅读:
ARP协议的基本功能
在以太网协议中规定,同一局域网中的一台主机要和另一台主机进行直接通信,必须要知道目标主机的MAC地址。而在TCP/IP协议栈中,网络层和传输层只关心目标主机的IP地址。这就导致在以太网中使用IP协议时,数据链路层的以太网协议接到上层IP协议提供的数据中,只包含目的主机的IP地址。
于是需要一种方法,根据目的主机的IP地址,获得其MAC地址。这就是ARP协议要做的事情。所谓地址解析(address resolution)就是主机在发送帧前将目标IP地址转换成目标MAC地址的过程。
另外,当发送主机和目的主机不在同一个局域网中时,即便知道目的主机的MAC地址,两者也不能直接通信,必须经过路由转发才可以。所以此时,发送主机通过ARP协议获得的将不是目的主机的真实MAC地址,而是一台可以通往局域网外的路由器的某个端口的MAC地址。
于是此后发送主机发往目的主机的所有帧,都将发往该路由器,通过它向外发送。这种情况称为ARP代理(ARP Proxy)。
⑤ 什么是ARP协议
地址转换协议ARP(Address Resolution Protocol)是个链路层协议,它工作在第二层的位置,在本层和硬件接口联系,同时对上层(网络层)提供服务。
上图是针对TCP/IP协议族来描述ARP协议的,但是设置ARP协议的本来用意却不是专门针对TCP/IP协议的。
世界总的来说是杂乱的,同时网络增加了这种杂乱。几乎在网络架构的每一层,都有几个潜在的协议可以使用。例如在高一点的层次有用于远程登录的TELNET和SUPDUP。低一点的有TCP,IPX或DECnet等协议。
甚至在与硬件较接近的逻辑传输层也有CHAOS,DOD Internet,Xerox PUP,DECnet等协议。10兆以太网通过使用以太网包头中的类型字段来使这些协议(而且更多)能在一根电缆上共存。然而,10兆以太网在物理电缆上需要48比特地址,而大多数协议地址不是48比特,它们并不需要与硬件的48比特以太网地址有什么关系。例如CHAOS的地址是16比特,DOD Internet的地址是32比特,Xerox PUP的地址是8比特。这就需要一个协议来动态地区分一个<协议,地址>对和一个48比特以太网地址的对应关系。
随着更多的制造商提供遵循DEC,Intel和Xerox发布的规范的接口产品,以太网的使用也在增加。随着使用的增加,为这个接口开发的软件也越来越多。有两个选择:(1)每个实现者用自己的方法做某种形式的地址转换;(2)每个实现者使用统一标准,这样代码可以不加修改的移植到其它系统。这个建议试图建立一个标准。
解决问题的方法肯定是第二种了,这就需要建立一种标准,把上层协议的地址转换为以太网上可用的地址形式,这样ARP协议就产生了。
这里需要注意的是,实际的解决方案并不是理论上必须的,很多实际的解决方案都有其历史的因素,业界标准往往不是理论上的最佳解决方案,它们往往是各方利益妥协的结果。可以理解为综合各种因素的一个综合最佳解决方案。
⑥ ARP协议的作用及工作原理
ARP协议是“Address Resolution Protocol”(地址解析协议)的缩写。在局域网中,网络中实际传输的是“帧”,帧里面是有目标主机的MAC地址的。在以太网中,一个主机要和另一个主机进行直接通信,必须要知道目标主机的MAC地址。但这个目标MAC地址是如何获得的呢?它就是通过地址解析协议获得的。所谓“地址解析”就是主机在发送帧前将目标IP地址转换成目标MAC地址的过程。ARP协议的基本功能就是通过目标设备的IP地址,查询目标设备的MAC地址,以保证通信的顺利进行。
ARP(AddressResolutionProtocol)地址解析协议用于将计算机的网络地址(IP地址32位)转化为物理地址(MAC地址48位)[RFC826]。ARP协议是属于链路层的协议,在以太网中的数据帧从一个主机到达网内的另一台主机是根据48位的以太网地址(硬件地址)来确定接口的,而不是根据32位的IP地址。内核(如驱动)必须知道目的端的硬件地址才能发送数据。当然,点对点的连接是不需要ARP协议的。
为了解释ARP协议的作用,就必须理解数据在网络上的传输过程。这里举一个简单的PING例子。
假设我们的计算机IP地址是192.168.1.1,要执行这个命令:ping192.168.1.2。该命令会通过ICMP协议发送ICMP数据包。该过程需要经过下面的步骤:
1、应用程序构造数据包,该示例是产生ICMP包,被提交给内核(网络驱动程序);
2、内核检查是否能够转化该IP地址为MAC地址,也就是在本地的ARP缓存中查看IP-MAC对应表;
3、如果存在该IP-MAC对应关系,那么跳到步骤9;如果不存在该IP-MAC对应关系,那么接续下面的步骤;
4、内核进行ARP广播,目的地的MAC地址是FF-FF-FF-FF-FF-FF,ARP命令类型为REQUEST(1),其中包含有自己的MAC地址;
5、当192.168.1.2主机接收到该ARP请求后,就发送一个ARP的REPLY(2)命令,其中包含自己的MAC地址;
6、本地获得192.168.1.2主机的IP-MAC地址对应关系,并保存到ARP缓存中;
7、内核将把IP转化为MAC地址,然后封装在以太网头结构中,再把数据发送出去;
使用arp-a命令就可以查看本地的ARP缓存内容,所以,执行一个本地的PING命令后,ARP缓存就会存在一个目的IP的记录了。当然,如果你的数据包是发送到不同网段的目的地,那么就一定存在一条网关的IP-MAC地址对应的记录。
知道了ARP协议的作用,就能够很清楚地知道,数据包的向外传输很依靠ARP协议,当然,也就是依赖ARP缓存。要知道,ARP协议的所有操作都是内核自动完成的,同其他的应用程序没有任何关系。同时需要注意的是,ARP协议只使用于本网络。
⑦ 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中代替地址解析协议。
⑧ ARP协议是什么
ARP是地址解析协议。根据IP地址获取物理地址的一个TCP/IP协议。主机发送信息时将包含目标IP地址的ARP请求广播到局域网络上的所有主机,并接收返回消息,以此确定目标的地址,收到返回消息后将该IP地址和物理地址存入本机ARP缓存中保留一定时间,下次请求时直接查询ARP缓存。
ARP缓存是个用来储存IP地址和MAC地址的缓冲区,其本质就是一个IP地址MAC地址的对应表,表中每一个条目分别记录了网络上其他主机的IP地址和对应的MAC地址。每一个以太网或令牌环网络适配器都有自己单独的表。
(8)arp协议扩展阅读:
IP地址的划分原理
二进制形式第一个字节的第一位(最高位)固定为0,这样的话,可以计算出A类IP地址的范围:
0000 0000 . 0000 0000 . 0000 0000 . 0000 0000 ~ 0111 1111 . 1111 1111 . 1111 1111 . 1111 1111转换成点分十进制就是0.0.0.0~126.255.255.255。
127保留给内部回送函数,而0则表示该地址是本地宿主机IP地址一般分配给特大型网络,有126个网络,每个网络能容纳16777214多个主机。
⑨ ARP 协议的作用是什么
地址解析协议由互联网工程任务组(IETF)在1982年11月发布的RFC 826中描述制定。 [1] 地址解析协议是IPv4中必不可少的协议,而IPv4是使用较为广泛的互联网协议版本(IPv6仍处在部署的初期)。
OSI模型把网络工作分为七层,IP地址在OSI模型的第三层,MAC地址在第二层,彼此不直接打交道。在通过以太网发送IP数据包时,需要先封装第三层(32位IP地址)、第二层(48位MAC地址)的报头,但由于发送时只知道目标IP地址,不知道其MAC地址,又不能跨第二、三层,所以需要使用地址解析协议。使用地址解析协议,可根据网络层IP数据包包头中的IP地址信息解析出目标硬件地址(MAC地址)信息,以保证通信的顺利进行
⑩ ARP协议的工作原理
首先,每台主机都会在自己的ARP缓冲区中建立一个ARP列表,以表示IP地址和MAC地址的对应关系。当源主机需要将一个数据包要发送到目的主机时,会首先检查自己ARP列表中是否存在该IP地址对应的MAC地址,如果有,就直接将数据包发送到这个MAC地址;如果没有,就向本地网段发起一个ARP请求的广播包,查询此目的主机对应的MAC地址。此ARP请求数据包里包括源主机的IP地址、硬件地址、以及目的主机的IP地址。网络中所有的主机收到这个ARP请求后,会检查数据包中的目的IP是否和自己的IP地址一致。如果不相同就忽略此数据包;如果相同,该主机首先将发送端的MAC地址和IP地址添加到自己的ARP列表中,如果ARP表中已经存在该IP的信息,则将其覆盖,然后给源主机发送一个ARP响应数据包,告诉对方自己是它需要查找的MAC地址;源主机收到这个ARP响应数据包后,将得到的目的主机的IP地址和MAC地址添加到自己的ARP列表中,并利用此信息开始数据的传输。如果源主机一直没有收到ARP响应数据包,表示ARP查询失败。例如:A的地址为:IP:192.168.10.1MAC:AA-AA-AA-AA-AA-AA
B的地址为:IP:192.168.10.2MAC:BB-BB-BB-BB-BB-BB根据上面的所讲的原理,我们简单说明这个过程:A要和B通讯,A就需要知道B的以太网地址,于是A发送一个ARP请求广播(谁是192.168.10.2,请告诉192.168.10.1),当B收到该广播,就检查自己,结果发现和自己的一致,然后就向A发送一个ARP单播应答(192.168.10.2在BB-BB-BB-BB-BB-BB)。