ARP协议之基础知识

这篇具有很好参考价值的文章主要介绍了ARP协议之基础知识。希望对大家有所帮助。如果存在错误或未考虑完全的地方,请大家不吝赐教,您也可以点击"举报违法"按钮提交疑问。

ARP协议作用

ARP协议是“Address Resolution Protocol”(地址解析协议)的缩写。其作用是在以太网环境中,数据的传输所依懒的是MAC地址而非IP地址,而将已知IP地址转换为MAC地址的工作是由ARP协议来完成的。

主机在发送信息前,通过ARP协议获取目标IP地址对应的MAC地址,方可正确发送数据包。

ARP协议的基本功能就是通过目标设备的IP地址,查询目标设备的MAC地址

ARP协议之基础知识

 

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数据包。本机缓存是有生存期的,生存期结束后,将再次重复上面的过程。

协议包的结构

ARP协议之基础知识

 

硬件类型: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协议之基础知识

 

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地址冲突攻击:

通过对局域网中的物理主机进行扫描,扫描出局域网中的物理主机的 MAC 地址,然后根据物理主机的 MAC 进行攻击,导致局域网内的主机产生 IP 地址冲突,影响用户的网络正常使用。文章来源地址https://www.toymoban.com/news/detail-417725.html

到了这里,关于ARP协议之基础知识的文章就介绍完了。如果您还想了解更多内容,请在右上角搜索TOY模板网以前的文章或继续浏览下面的相关文章,希望大家以后多多支持TOY模板网!

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处: 如若内容造成侵权/违法违规/事实不符,请点击违法举报进行投诉反馈,一经查实,立即删除!

领支付宝红包 赞助服务器费用

相关文章

  • 深度学习烦人的基础知识(1)---&@在bash中的作用---positional parameter详解

    深度学习,反展到现在,真的是要融会贯通很多东西。遇到便补吧! 想直接知晓答案的,请到最后一个练习题,想补基础知识的,请按照顺序阅读。 更多bash脚本知识可以参考thegeekstuff的教程!人很Nice,讲解清晰明了。 学习:学且练习,请多做做练习题吧! Positional Paramet

    2024年01月16日
    浏览(29)
  • 一、Go基础知识2、iota、匿名变量与变量作用域的小细节

    1、iota是特殊常量,可以理解为是一个可被编译器修改的常量。 2、iota中有一个计数器,会自动加1,自增类型默认是int类型。 3、如果中断了iota则必须显示恢复。参考示例二。 4、iota简化了const类型的定义。 5、每次出现const的时候,iota归零。 示例一: 运行结果: 两个const打

    2024年02月05日
    浏览(27)
  • 网络基础知识:了解网络协议的组成和常见的网络协议

    网络基础知识,了解网络协议的组成和常见的网络协议 1、协议及协议栈的基本概念 1.1、什么是协议 协议是网络中计算机或设备之间进行通信的一系列规则的集合。常用协议有IP、TCP、HTTP、POP3、SMTP等。 1.2、什么是协议栈 在网络中,为了完成通信,必须使用多层上的多种协

    2024年02月07日
    浏览(54)
  • Linux 网络基础(1)基础知识、IP地址、端口、协议、网络字节序

    网络发展背景: 网络的划分:局域网(覆盖范围在1000m以内)、城域网(覆盖范围在20km以内)、广域网(更大范围) 组网方式:以太网、令牌环网.... 日常名词:互联网,因特网----说的是一个网络,就是国际化的广域网 网卡:实现数字信号与电信号之间的转换 中继器:信号

    2024年02月05日
    浏览(74)
  • 详解TCP/IP协议第一篇:网络基础知识

    😉😉 学习交流群: ✅✅1:这是孙哥suns给大家的福利! ✨✨2:我们免费分享Netty、Dubbo、k8s、Mybatis、Spring...应用和源码级别的视频资料 🥭🥭3:QQ群:583783824   📚📚  工作微信:BigTreeJava 拉你进微信群,免费领取! 🍎🍎4:本文章内容出自上述:Spring应用课程!💞💞

    2024年02月09日
    浏览(33)
  • 网络安全 Day19-计算机网络基础知识04(网络协议)

    Linux查看arp:arp -a 局域网内主机的通讯方式是通过MAC地址来实现的 告诉MAC地址如何查找物理记得位置 员工入职记录网卡MAC地址 工位网线接口上联交换机端口,用交换机查看 刚连接上网络时的电脑和交换机情况 当PC1开始发出数据传输PC7请求时(请求内容:PC1deIP PC1的MAC地址

    2024年02月15日
    浏览(49)
  • 基础知识:HTTP协议以及GET请求和POST请求的区别

    qq对于HTTP协议,做Web编程的开发人员再熟悉不过了。  不论是前端Html页面通过Ajax还是客户端通过 HttpClient 又或服务端与服务端之间的Rest请求,这都需要通过Http协议完成请求  。在HTTP协议中,我们最常用的是GET和POST请求,对于这两个方法,应该是最基础的东西。但是,两

    2024年02月08日
    浏览(77)
  • 【收藏】IP知识百科-TCP/IP协议栈&数通基础

    数据链路层相关 什么是ARP 什么是MTU 什么是CRC TCP/IP协议栈 什么是ICMP 什么是DHCP 什么是NAT IPv6 访问控制/防火墙 什么是ACL 什么是NGFW VLAN 什么是VLAN OVERLAY 什么是Overlay 什么是VxLAN1 什么是VxLAN2 VXLAN中的RT、RD是什么 控制平面 什么是MPLS 什么是EVPN1 什么是EVPN2 路由协议 什么是OSPF

    2024年02月07日
    浏览(33)
  • 计算机网络之TCP/IP协议第一篇:网络基础知识

    😉😉 学习交流群: ✅✅1:这是孙哥suns给大家的福利! ✨✨2:我们免费分享Netty、Dubbo、k8s、Mybatis、Spring...应用和源码级别的视频资料 🥭🥭3:QQ群:583783824   📚📚  工作微信:BigTreeJava 拉你进微信群,免费领取! 🍎🍎4:本文章内容出自上述:Spring应用课程!💞💞

    2024年02月09日
    浏览(42)
  • HTTP基础:学习HTTP协议的基本知识,了解请求和响应的过程

    HTTP(Hypertext Transfer Protocol,超文本传输协议)是一种用于传输超媒体文档(如HTML)的应用层协议,它是Web中最基本的协议。 HTTP请求和响应都是由客户端和服务器之间进行的。 一个完整的HTTP请求由以下几个部分组成: 请求行:包括请求方法(GET、POST等)、请求的URI和HTTP协

    2024年02月12日
    浏览(29)

觉得文章有用就打赏一下文章作者

支付宝扫一扫打赏

博客赞助

微信扫一扫打赏

请作者喝杯咖啡吧~博客赞助

支付宝扫一扫领取红包,优惠每天领

二维码1

领取红包

二维码2

领红包