ARP协议

来源:互联网 发布:四川大学网络空间学院 编辑:程序博客网 时间:2024/04/28 11:48

ARP协议

ARP协议叫做地址解析协议,在数据传送到目标网络时,源主机需要将数据发送到对应主机,但源主机只知道目标主机的IP地址,不知道MAC地址,而数据包在接收时是先被网卡接受在递交给上层协议,网卡通过数据包上的MAC地址与主机是否相符,选择是否要丢弃,所以在通讯前必须先获得目标主机的MAC地址。
(1)源主机通过广播的方式,向局域网内的所有主机发送ARP请求,其中包括源主机的IP地址IP1, MAC地址M1,目标主机的IP地址IP2,MAC地址不知道。
(2)局域网内部的所有主机在接收到这个消息后,先对比IP2与自己是否相同,如不同则直接丢弃,只有IP地址为IP2的主机回向源主机发送ARP响应,其中包括源主机的IP地址IP2,MAC地址M2,目标主机的IP地址IP1,MAC地址M1。

ARP报文格式

这里写图片描述
其中:
帧类型:ARP帧为0806。
硬件类型:链路层网络类型,例如:以太网为1。
协议类型:指要提交的上层协议类型,例如:IP协议为0800。
硬件地址长度:以太网地址长度 ,06。
协议地址长度:IP地址长度,04。
以太网目的地址:ff ff ff ff,全F表示广播地址。

ARP缓存表

每台主机中都有一个ARP缓存表,其中保存了多条IP地址与MAC地址的对应关系的记录,对于这些记录都存在一个过期时间,若该条记录在表中存在的时间大于过期时间,那么就会删除该条记录。
当需要ARP协议解析某个地址时,会先查看ARP缓存表,若表中无该条记录,则在局域网中广播发送数据报查询,查询后会立即更新ARP缓存表。

ARP指令

arp -a:查看arp缓存表信息。
这里写图片描述

ARP脚本抓取对应主机的MAC地址

#!/bin/bashindex=1num=0while [ $index -le 254 ]do    if [ $num -eq 20 ]    then         sleep 1        num=0        continue    fi    ping -c1 "92.16.16.$index" &    let index++    let num++done

这里写图片描述

原创粉丝点击