ARP地址解析协议
2018-07-28 本文已影响0人
Catcher07
一、概念
ARP为IP地址到对应的硬件地址之间提供动态映射。从逻辑Internet地址到对应的物理硬件地址需要进行翻译。
二、过程
ftp发送数据时 ARP的操作过程
- 应用程序FTP客户端调用函数gethostbyname将主机名转换成32bit的IP地址。该转换过程使用的是DNS或者是在较小网络中使用一个静态的主机文件。
- FTP客户端请求TCP用得到的IP地址建立连接。
- TCP发送一个连接请求分段到远端主机,即利用上述IP地址发送一份IP数据报
- 如果目的主机在本地网络上(如以太网、令牌环网或点对点链接的另一端),则IP数据报可直接送到目的主机上。如果目的主机在一个远程网络上,通过IP选路函数确定下一跳路由地址,由它IP数据报。
- 假定发送的是一个以太网,则发送端主机需要把32bit的IP地址转化成48bit的以太网地址。
- ARP发送一份称为ARP请求的以太网数据帧给以太网上的每个主机,即广播。ARP请求数据帧中包含目的主机的IP地址,即如果“你是该IP的拥有者,请回答你的硬件地址”。
- 目的主机的ARP层收到该广播报文后,识别出该报文发送端的IP地址,发送一个ARP应答,该ARP应答包括IP地址以及对应的硬件地址(IP地址到底是该硬件对应的IP地址,还是发送端的IP?应该是当前发送端的IP地址和其对应的硬件地址)
- 收到ARP应答后,使ARP进行请求一应答交换的IP数据报现在可以传送了
- 发送IP数据报到目的主机
ARP高速缓存
ARP高速缓存中保存了最近IP地址到硬件地址(MAC)之间的映射记录,其中每一项的生存时间约为20分钟。
可利用arp -a查看,其中48bit的以太网地址利用6个十六进制数表示,中间以冒号隔开。
例如: sun(140.252.13.33) at 8:0:20:3:f6:42
ARP的分组格式
在以太网上解析IP地址时,ARP请求和应答分组的格式如图所示:
ARP高速缓存超时设置
对于完整的表项设置超时值为20分钟,对于不完整的表项设置超时为3分钟,从表项建立开始计时。
ARP代理
如果ARP请求是从一个网络的主机发往另一个网络上的主机,那么连接这两个网络的路由器就可以回答该请求,这个过程称作委托ARP或ARP代理(Proxy ARP)。这样可以欺骗发起ARP请求的发送端,使它误以为路由器就是目的主机,而事实上目的主机是在路由器的“另一边”。路由器的功能相当于目的主机的代理,把分组从其他主机转发给它。
[ARP攻击原理简析及防御措施]
https://www.cnblogs.com/manue1/p/4462327.html
参考
https://segmentfault.com/q/1010000006598725/a-1020000006610608
https://www.cnblogs.com/fxb248/p/4208518.html
https://blog.csdn.net/yao_fairy/article/details/51258703
https://www.zhihu.com/question/21546408 (这里的回答是最好的)