ARP

Posted key-network

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了ARP相关的知识,希望对你有一定的参考价值。

最重点:
《1》二层网络中,数据包到达路由器,是读取以太网头部,先记录源地址+端口(MAC表),再检查根据目的mac找到出端口,然后转发出去;而主机收到数据包后,是通过读取数据包的arp报文来获取目的IP及mac;
《2》arp是后到位准。
《3》同一网络下,A换了mac地址后,通过发送arp请求(广播包)B地址来刷新B的arp表;但是C有两种情况:(1)原来没有A的arp缓存,丢弃arp request包;(2)原来有A的arp缓存,更新。

----------------------------------------------



《1》ARP介绍:
ARP:Address Resolution Protocol,解决地址映射问题的协议,只有知道目的逻辑地址对应的硬件地址,才能发送出去。注意ARP只能适用于IPV4,而IPV6因为ARP安全问题,通过ICMPV6替代ARP发送邻居探索消息。
arp只适合多点网络,而不适于点对点网络,例如PPP、GRE、IPSEC、FC等


《2》ARP报文:


技术图片

 

 
硬件类型:表示硬件地址类型,1为以太网;
协议类型:表示要映射的协议地址类型,例如0X0800(IP)、
硬件地址长度:一般值为6,死记。
协议地址长度:一般值为4,死记。
opcode操作码:四种操作类型,ARP请求为1,ARP应答为2,RARP请求为3和RARP应答为4
发送端硬件地址:
发送端IP地址:
目的硬件地址:
目的IP:


《3》arp高速缓存:如果每发一个IP数据报都要一次ARP请求以此确定MAC地址,那将会造成不必要的网络流量。因此,通常的做法是把获取到的mac地址与IP地址的映射关系缓存起来。

《4)工作原理:(复制)

技术图片

 

 

1) 应用程序FTP客户端调用函数g e t h o s t b y n a m e(3)把主机名(bsdi)转换成32 bitIP地址。
这个函数在D N S(域名系统)中称作解析器,我们将在第 1 4章对它进行介绍。这个转换
过程或者使用DNS,或者在较小网络中使用一个静态的主机文件( /e t c / h o s t s)。
2) F T P客户端请求T C P用得到的I P地址建立连接。
3) T C P发送一个连接请求分段到远端的主机,即用上述 I P地址发送一份 I P数据报(在第
1 8章我们将讨论完成这个过程的细节)。
4) 如果目的主机在本地网络上(如以太网、令牌环网或点对点链接的另一端) ,那么I P
据报可以直接送到目的主机上。如果目的主机在一个远程网络上,那么就通过 I P选路
函数来确定位于本地网络上的下一站路由器地址,并让它转发 I P数据报。在这两种情
况下, I P数据报都是被送到位于本地网络上的一台主机或路由器。
5) 假定是一个以太网,那么发送端主机必须把 32 bitI P地址变换成48 bit的以太网地址。
从逻辑I n t e r n e t地址到对应的物理硬件地址需要进行翻译。这就是 A R P的功能。
A R P本来是用于广播网络的,有许多主机或路由器连在同一个网络上。
6) A R P发送一份称作 A R P请求的以太网数据帧给以太网上的每个主机。这个过程称作广
播,如图 4 - 2中的虚线所示。 A R P请求数据帧中包含目的主机的 I P地址(主机名为
b s d i),其意思是“如果你是这个 I P地址的拥有者,请回答你的硬件地址。 ”
4-2 当用户输入命令“ ftp 主机名”时ARP的操作
7) 目的主机的 A R P层收到这份广播报文后,识别出这是发送端在寻问它的 I P地址,于是
发送一个A R P应答。这个A R P应答包含I P地址及对应的硬件地址。
8) 收到A R P应答后,使A R P进行请求—应答交换的 I P数据报现在就可以传送了。
9) 发送I P数据报到目的主机。



《4》特殊arp:
(1)免费arp:
作用:如果主机更改硬件地址,通过免费arp告诉同一网络下的主机;
      通过发送广播包,确认地址是否有人在使用;
《2》代理arp:
作用:适用于没有路由功能的网络设备,但不建议使用。

以上是关于ARP的主要内容,如果未能解决你的问题,请参考以下文章

如何进行ARP欺骗攻击

如何用arp命令添加一项静态ARP缓存

arp协议访问大部分注册表吗

弱弱的问下linux如何清理arp缓存

arp断网攻击怎么彻底解决(arp断网攻击怎么解决)

ARP原理和ARP攻击