ARP协议

来源:互联网 发布:ammo.js 编辑:程序博客网 时间:2024/06/06 01:26

什么是ARP?   

ARP (Address Resolution Protocol) 是个地址解析协议。
也就是说,在IP以太网中,当一个上层协议要发包时,有了该节点的IP地址,ARP就能提供该节点的MAC地址。  

在网络通讯时,源主机的应用程序知道目的主机的IP地址和端口号,却不知道目的主机的硬件地址,而数据包首先是被网卡接收到再去处理上层协议的,如果接收到的数据包的硬件地址与本机不符,则直接丢弃。因此在通讯前必须获得目的主机的硬件地址。ARP协议就起到这个作用。
当一台主机把以太网数据帧发送到位于同一局域网上的另一台主机时,是根据 48位的以太网地址来确定目的接口的,设备驱动程序从不检查 IP数据报中的目的IP地址。ARP(地址解析)模块的功能为这两种不同的地址形式提供映射:32位的 IP地址和 48位的以太网地址。

IP地址:给因特网上的每一个主机(或路由器)的每一个接口分配一个在全世界范围唯一的32位的标识符。 通俗点讲:标识网络中不同主机的地址。
端口号:同一台主机上标识不同进程的地址。
IP地址+端口号 :标识网络中唯一的进程。

ARP过程

源主机发出ARP请求,询问“IP地址是192.168.0.1的主机的硬件地址是多少”,并将这个请求广播到本地网段(以太网帧首部的硬件地址填FF:FF:FF:FF:FF:FF表示广播),.目的主机接收到广播的ARP请求,发现其中的IP地址与本机相符,则发送一个ARP应答数据包给源主机,将自己的硬件地址填写在应答包中。


假设:现在有主机1向主机2发送数据包,主机1已知主机2的IP地址,却不知道主机2的MAC地址,所以需要通过ARP协议获取主机2的MAC地址。
已知:主机1的IP地址:IP1
主机1的MAC地址:MAC1
主机2的IP地址:IP2

这里写图片描述

主机2收到广播信息时,这时发现广播的IP地址和自己的IP地址相符,就将自己的IP地址和MAC地址填入ARP报文中,然后发送ARP应答报文。

这里写图片描述

编写arp脚本抓取对应主机mac地址

这里写图片描述

这里写图片描述

原创粉丝点击