二、ARP协议

一、 ARP介绍(地址解析协议)

1.1 什么是ARP协议

ARP(AddressResolutionProtocol)地址解析协议用于将计算机的网络IP地址转化为物理MAC地址。ARP协议的基本功能就是通过目标设备的IP地址,查询目标设备的MAC地址,以保证通信的顺利进行。在每台安装有TCP/IP协议的电脑里都有一个ARP缓存表,表里的IP地址与MAC地址是一一对应的.

1.2 ARP协议的工作原理

1. 不管网络层使用的是什么协议,在实际网络的链路上传送数据帧时,最终还是必须使用硬件地址。
2. 每一个主机都设有一个ARP 高速缓存(ARP cache),里面有所在的局域网上的各主机和路由器的IP 地址到硬件地址的映射表。
3. 当主机A 欲向本局域网上的某个主机B 发送IP 数据报时,就先在其ARP 高速缓存中查看有无主机B 的IP 地址。如有,就可查出其对应的硬件地址,再将此硬件地址写入MAC 帧,然后通过局域网将该MAC 帧发往此硬件地址。

 

 

1.3 ARP 高速缓存的作用

1. 为了减少网络上的通信量,主机A 在发送其ARP 请求分组时,就将自己的IP 地址到硬件地址的映射写入ARP 请求分组。
2. 当主机B 收到A 的ARP 请求分组时,就将主机A 的这一地址映射写入主机B 自己的ARP 高速缓存中。这对主机B 以后向A 发送数据报时就更方便了。

1.4 ARP注意点

1. ARP 是解决同一个局域网上的主机或路由器的IP 地址和硬件地址的映射问题。
2. 如果所要找的主机和源主机不在同一个局域网上,那么就要通过ARP 找到一个位于本局域网上的某个路由器的硬件地址,然后把分组发送给这个路由器,让这个路由器把分组转发给下一个网络。剩下的工作就由下一个网络来做。
3. 从IP 地址到硬件地址的解析是自动进行的,主机的用户对这种地址解析过程是不知道的
4. 只要主机或路由器要和本网络上的另一个已知IP 地址的主机或路由器进行通信,ARP 协议就会自动地将该IP 地址解析为链路层所需要的硬件地址
5. 默认情况下ARP缓存的超时时限是两分钟

1.5 ARP相关指令

arp–d 清除本机arp缓存表
arp–a 查看本机当前arp表
arp–s 绑定arp地址(注意:本次机器生效,下次重启后会全部失效)

二、ARP议报文结构分析

2.1 ARP协议分组格式

 

 

该图片为 10.4.2.7查询 IP:10.4.2.41 所在的物理地址(MAC地址)

2.2 以太网首部

2.2.1 以太网目标MAC地址(6 byte)

 

 

 广播类型的MAC地址:FF-FF-FF-FF-FF-FF,其目标是网络上的所有主机。

2.2.2 以太网源MAC地址(6 byte)

 

 

 源MAC地址,即请求地址解析的的主机MAC地址。

2.2.3 帧类型(协议类型)(2 byte)

协议类型,这里用0X0806代表封装的上层协议是ARP协议。

0800代表IP协议

2.3 ARP请求/应答首部

2.3.1 硬件类型(2 byte)

 

 表明ARP协议实现在哪种类型的网络上。

2.3.2 协议类型(2 byte)

 

 表示解析协议(上层协议)。这里一般是0800,即IP。 

2.3.3 硬件地址长度(1 byte)

 

 MAC地址长度,此处为6个字节。 

2.3.4 协议地址长度(1 byte)

 

 IP地址长度,此处为4个字节。 

2.3.5 OP(2 byte)

 

 ARP协议数据包类型。1表示ARP协议请求数据包,2表示ARP协议应答数据包。 3表示RARP协议请求数据包,4表示RARP协议应答数据包。

2.3.6 发送端以太网地址(6 byte)

 

 发送端MAC地址。 和以太网首部一样

2.3.7 发送端IP地址(4 byte)

 

 表示发送端协议地址(IP地址)。 

2.3.8 目的以太网地址(6 byte)

 

 目标端MAC地址。 当系统受到一份目的端为本机的ARP请求报文后,它就会把硬件地址天减去,然后用两个目的端地址分别替换两个发送端的地址,并把操作字段置为2,然后发送出去

2.3.9 目的IP地址(4 byte)

 

 表示目的端协议地址(IP地址)。 

三、Python发送ARP请求

不会,待补充。

 

posted on 2022-12-27 15:50  软饭攻城狮  阅读(189)  评论(0编辑  收藏  举报

导航