ARP协议

来源:互联网 发布:2017陌陌站街营销软件 编辑:程序博客网 时间:2024/06/05 22:20

ARP协议:地址解析协议是根据IP地址获取物理地址的一个TCP/IP协议。
工作过程
源主机发出ARP请求,询问“IP地址是192.168.0.1的主机的硬件地址是多少”,并将这个请求 ⼴广播到本地⽹网段(以太网帧⾸首部的硬件地址填FF:FF:FF:FF:FF:FF表⽰示⼴广播),目的主机接收到 ⼴广播的ARP请求,发现其中的IP地址与本机相符,则发送⼀一个ARP应答数据包给源主机,将⾃自 ⼰己的硬件地址填写在应答包中。
ARP缓存
ARP缓存是个用来储存IP地址和MAC地址的缓冲区,其本质就是一个IP地址–>MAC地址的对应表,表中每一个条目分别记录了网络上其他主机的IP地址和对应的MAC地址。

每台主机后维护一张ARP缓存表,用arp -a命令查看。缓存表中的表项有过期时间(一 般为20分钟),如果20分钟内没有再次使⽤用某个表项,则该表项失效,下次还要发ARP请求来获得 ⽬目的主机的硬件地址。
ARP数据报格式
这里写图片描述
帧类型:表示要向下层哪个协议接收
硬件类型:指的是链路层网络类型,1为以太网。
协议类型:指的是要转换的地址类型,例如添0x0800表示IP地址,意思就是要将IP地址转化成MAC地址
硬件地址长度和协议地址长度:对于以太网地址和IP地址分别是6和4(字节)
op:1,表示ARP请求;2,表示ARP应答
例:
请求帧如下(为了清晰在每⾏行的前⾯面加了字节计数,每⾏行16个字节):
以太网首部(14字节)
0000: ff ff ff ff ff ff 00 05 5d 61 58 a8 08 06
0000: 00 01
0010: 08 00 06 04 00 01 00 05 5d 61 58 a8 c0 a8 00 37
0020: 00 00 00 00 00 00 c0 a8 00 02
填充位(18字节)
0020: 00 77 31 d2 50 10
0030: fd 78 41 d3 00 00 00 00 00 00 00 00
解释:
以太网首部:目的主机采用广播地址(全F);源地址的MAC地址为:00 05 5d 61 58 a8;上层协议类型0x0806表示ARP
ARP帧:硬件类型0x0001表示以太网;协议类型0x0800表示IP协议;硬件地址(MAC地址)长度为6;协议地址(IP协议)长度为4;op为0x0001表示ARP请求;源主机MAC地址为:00:05:5d:61:58:a8;源主机IP地址为c0 a8 00 37;目的主机MAC地址为全0待填写;目的主机IP地址为c0 a8 00 02;

应答帧如下:
以太网首部(14字节)
0000: 00 05 5d 61 58 a8 00 05 5d 61 58 a8 08 06
0000: 00 01
0010: 08 00 06 04 00 02 00 05 5d a1 b8 40 c0 a8 00 02
0020: 00 05 5d 61 58 a8 c0 a8 00 37
填充位(18字节)
0020: 00 77 31 d2 50 10
0030: fd 78 41 d3 00 00 00 00 00 00 00 00
解释:
以太网首部:目的主机的MAC地址是00:05:5d:61:58:a8;源地址的MAC地址为:00:05:5d:a1:b8:40;上层协议类型0x0806表示ARP
ARP帧:硬件类型0x0001表示以太网;协议类型0x0800表示IP协议;硬件地址(MAC地址)长度为6;协议地址(IP协议)长度为4;op为0x0002表示ARP应答;源主机MAC地址为:00:05:5d:a1:b8:40;源主机IP地址为c0 a8 00 02(192.168.0.2);目的主机MAC地址为00:05:5d:61:58:a8;目的主机IP地址为c0 a8 00 37(192.168.0.55)
下面编写一个arp.sh脚本,可以抓取到C类地址
这里写图片描述
抓取到后,再用arp -a查看抓取的内容

原创粉丝点击