浅谈ARP

来源:互联网 发布:遗传算法视频讲解 编辑:程序博客网 时间:2024/06/10 20:26

一:ARP的原理:
我们知道以太网设备比如网卡都有自己全球唯一的MAC地址,它们是以MAC地址阿里传输以太网数据包的,但是它们却识别不了IP包中的IP地址,所以我们在以太网中进行IP通信的时候就需要一个协议来建立IP地址与MAC地址的对应关系,以使数据包能发到一个确定的地方去,这就是ARP(地址解析协议)

1:ARP数据报格式
在网络通讯时,源主机的应用程序知道目的主机的IP地址和端口号,却不知道目的主机的硬件地址,而数据报包首先是被网卡接受到再去处理上层协议,如果接受到的数据包的硬件地址与本机不符,直接丢弃,因此在通讯前必须获得目的主机的硬件地址,ARP协议就是起到这个作用.

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

2:ARP数据报的格式表示如下:
这里写图片描述

源MAC地址,目的MAC地址在以太网首部和ARP请求中个出现一次,,硬件类型指链路层网络类型,1为以太网,协议来行值要装换的地址类型,,op字段为1表示ARP请求,op字段为2表示ARP应答.

3:栗子:
请求的过程:
这里写图片描述

以太⽹首部:⽬目的主机采⽤用⼴广播地址,源主机的MAC地址是00:05:5d:61:58:a8,上层协议类
型0x0806表⽰示ARP。

由于以太⽹网规定最⼩小数据长度为46字节,ARP帧长度只有28字节,因此有18字节填充位,填充位
的内容没有定义,与具体实现相关。
应答过程:
这里写图片描述
始终记住:发送端是源,接受端是目的,然后对照图就会容易些.
二:几条常见的指令:
1:输入指令ifconfig -a
或者是in link show可以查看mac地址
这里写图片描述
2:linux下抓取网页命令的指令
(1):默认系统没有tcpdump的
(2):这里我们可以yum直接安装
yum install -y tcpdump

这里写图片描述
三:arp命令:
arp命令用于操作主机的arp缓冲区,它可以显示arp缓冲区的所有条目,删除指定的条目或者添加静态ip地址与MAC地址对应的关系
1:$arp-v详细模式
这里写图片描述
2:arp-n显示数字地址
这里写图片描述
3:arp-a查看主机的IP和MAC对应关系,默认显示全部
这里写图片描述
4:arp-d删除指定主机的IP和MAC对应关系
可以自己验证啊
5:arp-i只显示指定网卡的IP和MAC对应关系
这里写图片描述
四:验证arp抓取对应主机的ip/mac地址
我们写一段shell脚本

#!/bin/bashhead=192.168.0i=0count=0while [ $i -le 254 ]do    if [ $count -gt 20 ];then        count=0        sleep 1    fi    ping -c1 "${head}"".$i" &    let i++    let count++donewaitecho "========================================="arp -a | grep -v incompleteecho "========================================="

在后台抓取的有效的ip,网络号为192.168.0
这里写图片描述