ARP协议作用
ARP协议是“Address Resolution Protocol”(地址解析协议)的缩写。其作用是在以太网环境中,数据的传输所依懒的是MAC地址而非IP地址,而将已知IP地址转换为MAC地址的工作是由ARP协议来完成的。
主机在发送信息前,通过ARP协议获取目标IP地址对应的MAC地址,方可正确发送数据包。
ARP协议的基本功能就是通过目标设备的IP地址,查询目标设备的MAC地址
ARP工作流程(ARP请求过程,ARP响应过程):
-
ARP请求过程:主机A发送请求包(目标IP地址),以广播的形式
-
ARP响应过程:主机B接收到ARP请求,发送响应包(MAC地址)
ARP缓存
如果每次发送数据时都要发送ARP的话,太浪费网络资源,所以,需要避免重复发送ARP请求。
这样的话,工作流程如下:
-
主机A在本机ARP缓存中检查主机B的匹配MAC地址。
-
如果在ARP缓存中没有找到主机B的P地址及对应的MAC地址,它将询问主机B的MAC地址,从而将ARP请求帧广播到本地网络上的所有主机。源主机A的IP地址和MAC地址都包括在ARP请求中。
-
本地网络上的每台主机都接收到ARP请求,并且检查是否与自己的P地址匹配。如果主机发现请求的P地址与自己的IP地址不匹配,它将丢弃ARP请求。主机B确定ARP请求中的IP地址与自己的IP地址匹配,则将主机A的P地址和MAC地址映射添加到本地ARP缓存中。
-
主机B将包含自身MAC地址的ARP回复消息直接发送给主机A。
-
当主机A收到从主机B发来的ARP回复消息时,会用主机B的IP地址和MAC地址更新ARP缓存。
-
主机B的MAC地址一旦确定,主机A就能向主机B发送P数据包。本机缓存是有生存期的,生存期结束后,将再次重复上面的过程。
协议包的结构
硬件类型:16位字段,用来定义运行ARP的网络类型。每个局域网基于其类型被指派一个整数。例如:以太网的类型为1。ARP可用在任何物理网络上。
协议类型:16位字段,用来定义使用的协议。例如:对IPv4协议这个字段是0800。ARP可用于任何高层协议
硬件长度:8位字段,用来定义物理地址的长度,以字节为单位。例如:对于以太网的值为6。
协议长度:8位字段,用来定义逻辑地址的长度,以字节为单位。例如:对于IPv4协议的值为4。
操作码:16位字段,用来定义报文的类型。已定义的分组类型有两种:ARP请求(1),ARP响应(2)。
源硬件地址:这是一个可变长度字段,用来定义发送方的物理地址。例如:对于以太网这个字段的长度是6字节。
源逻辑地址:这是一个可变长度字段,用来定义发送方的逻辑(IP)地址。例如:对于IP协议这个字段的长度是4字节。
目的硬件地址:这是一个可变长度字段,用来定义目标的物理地址,例如,对以太网来说这个字段位6字节。对于ARP请求报文,这个字段为全0,因为发送方并不知道目标的硬件地址。
目的逻辑地址:这是一个可变长度字段,用来定义目标的逻辑(IP)地址,对于IPv4协议这个字段的长度为4个字节。
ARP报文总长度
ARP报文的总长度为64字节
首先要知道帧的概念 帧是在数据链路层传输的数据格式,比如以太网v2,以太网IEEE802.3和PPP等。
所以Wireshark抓到的帧是包含帧头的,即包含以太网v2的帧头,长14 bytes;
而ARP数据包的长度固定为28 bytes;
帧总长度 = 帧头 + 网络层包头 + 传输层报文头 + 应用数据;
而ARP请求中ARP包已经是最高层,之上没有传输层和应用层,所以总长度为:
帧总长度 = 帧头 + ARP包头 = 14 + 28 = 42 bytes;
而真正 发包的时为了保证以太网帧的最小帧长为64 bytes,会在报文里添加一个padding字段,用来填充数据包大小。
使用wireshark抓包时,抓到的包为60 bytes。比以太网帧的最小帧长扫了4 bytes,原因是因为wireshark抓包时不能抓到数据包最后的CRC字段。
CRC字段是为了校验以太网帧的正确性。在数据包填充完成后,回去通过算法计算一个值放到数据包的CRC字段中。当接受端收到数据包后,会同样使用算法计算一个值,然后和CRC字段的值进行对比,查看是否相同。如果不同则证明数据包被更改,如果相同则证明数据包并未被更改。
免费ARP包
免费ARP包是一个特殊的ARP请求,目标IP地址是自己的。并不期待得到IP对应的MAC地址,但它有如下作用:
-
告诉其他的计算机自己的IP地质和MAC地址
-
检测IP地址是否冲突
-
更新其他主机的ARP缓存表
ARP攻击
ARP 是一种非常不安全的协议,目前已经有很多涉及 ARP 的攻击,最主要的就是使用代理 ARP 功能假扮主机,对 ARP 请求作出应答,通过伪造 ARP 数据包来窃取合法用户的通信数据,造成影响网络传输速率和盗取用户隐私信息等严重危害。
攻击分类:
ARP 泛洪攻击:
通过向网关发送大量 ARP 报文,导致网关无法正常响应。首先发送大量的 ARP 请求报文,然后又发送大量虚假的 ARP 响应报文,从而造成网关部分的 CPU 利用率上升难以响应正常服务请求,而且网关还会被错误的 ARP 缓存表充满导致无法更新维护正常 ARP 缓存表,消耗网络带宽资源。
ARP 欺骗主机攻击:
ARP 欺骗主机的攻击也是 ARP 众多攻击类型中很常见的一种。攻击者通过 ARP 欺骗使得局域网内被攻击主机发送给网关的流量信息实际上都发送给攻击者。主机刷新自己的 ARP 使得在自己的ARP 缓存表中对应的 MAC 为攻击者的 MAC,这样一来其他用户要通过网关发送出去的数据流就会发往主机这里,这样就会造成用户的数据外泄。
欺骗网关的攻击:
欺骗网关就是把别的主机发送给网关的数据通过欺骗网关的形式使得这些数据通过网关发送给攻击者。这种攻击目标选择的不是个人主机而是局域网的网关,这样就会攻击者源源不断的获取局域网内其他用户韵数据.造成数据的泄露,同时用户电脑中病毒的概率也会提升。
中间人攻击:
中间人攻击是同时欺骗局域网内的主机和网关,局域网中用户的数据和网关的数据会发给同一个攻击者,这样,用户与网关的数据就会泄露。
IP地址冲突攻击:文章来源:https://www.toymoban.com/news/detail-417725.html
通过对局域网中的物理主机进行扫描,扫描出局域网中的物理主机的 MAC 地址,然后根据物理主机的 MAC 进行攻击,导致局域网内的主机产生 IP 地址冲突,影响用户的网络正常使用。文章来源地址https://www.toymoban.com/news/detail-417725.html
到了这里,关于ARP协议之基础知识的文章就介绍完了。如果您还想了解更多内容,请在右上角搜索TOY模板网以前的文章或继续浏览下面的相关文章,希望大家以后多多支持TOY模板网!