首页 > 其他分享 >ARP协议

ARP协议

时间:2024-12-02 11:31:37浏览次数:5  
标签:ARP 协议 主机 报文 地址 MAC IP地址

前言

网络设备有数据要发送给另一台网络设备时,必须要知道对方的网络层地址(即IP地址)。IP地址由网络层来提供,但是仅有IP地址是不够的,IP数据报文必须封装成帧才能通过数据链路进行发送。数据帧必须要包含目的MAC地址,因此发送端还必须获取到目的MAC地址。通过目的IP地址而获取目的MAC地址的过程是由ARP(Address Resolution Protocol)协议来实现的。

一台网络设备要发送数据给另一太网络设备时,必须要知道对方的IP地址。但是,仅有IP地址是不够的,因为IP数据报文必须封装成帧才能通过数据链路进行发送,而数据帧必须要包含目的MAC地址,因此发送端还必须获取到目的MAC地址。每一个网络设备在数据封装前都需要获取下一跳的MAC地址。IP地址由网络层来提供,MAC地址通过ARP协议来获取。ARP协议是TCP/IP协议簇中的重要组成部分,ARP能够通过目的IP地址发现目标设备的MAC地址,从而实现数据链路层的可达性

网络设备通过ARP报文来发现目的MAC地址。ARP报文中包含以下字段

 Hardware Type表示硬件地址类型,一般为以太网;

Protocol Type表示三层协议地址类型,一般为IP;

Hardware Length和Protocol Length为MAC地址和IP地址的长度,单位是字节;

Operation Code指定了ARP报文的类型,包括ARP request和ARP reply;

Source Hardware  Address指的是发送ARP报文的设备MAC地址;

Source Protocol Address指的是发送ARP报文的设备IP地址;

Destination Hardware Address指的是接收者MAC地址,在ARP request报文中,该字段值为0; Destination Protocol Address指的是指接收者的IP地址。

ARP的工作过程

1先根据路由表,确定B的IP地址,然后查询本地ARP缓存表看是否能匹配到B的MAC地址。

2、如何没匹配到B的MAC地址,则发送含B的IP地址的ARP请求报文广播到本地网络,网络中的主机检查IP是否是自己的IP,如果不是,则丢弃。

3、B主机确定A请求报文中的IP与自己匹配,则将A的IP和MAC地址添加到本地缓存表中。

4、B主机向A主机回复一个含自身MAC地址的报文。

5、A主机收到报文后将B的IP和MAC地址添加至缓存表

ARP缓存

网络设备一般都有一个ARP缓存(ARP Cache),ARP缓存用来存放IP地址和MAC地址的关联信息。在发送数据前,设备会先查找ARP缓存表。如果缓存表中存在对方设备的MAC地址,则直接采用该MAC地址来封装帧,然后将帧发送出去。如果缓存表中不存在相应信息,则通过发送ARP request报文来获得它。学习到的IP地址和MAC地址的映射关系会被放入ARP缓存表中存放一段时间。在有效期内,设备可以直接从这个表中查找目的MAC地址来进行数据封装,而无需进行ARP查询。过了这段有效期,ARP表项会被自动删除。 如果目标设备位于其他网络,则源设备会在ARP缓存表中查找网关的MAC地址,然后将数据发送给网关,网关再把数据转发给目的设备。

本例中,主机A的ARP缓存表中不存在主机C的MAC地址,所以主机A会发送ARP request来获取目的MAC地址。ARP request报文封装在以太帧里。帧头中的源MAC地址为发送端主机A的MAC地址。此时,由于主机A不知道主机C的MAC地址,所以目的MAC地址为广播地址FF-FF-FF-FF-FF-FF。ARP request报文中包含源IP地址、目的IP地址、源MAC地址、目的MAC地址,其中目的MAC地址的值为0。ARP Request报文会在整个网络上传播,该网络中所有主机包括网关都会接收到此ARP request报文。网关将会阻止该报文发送到其他网络上。

ARP响应

所有的主机接收到该ARP Request报文后,会检查它的目的协议地址字段与自身的IP地址是否匹配。如果不匹配,则该主机将不会响应该ARP Request报文。如果匹配,则该主机会将ARP报文中的源MAC地址和源IP地址信息记录到自己的ARP缓存表中,然后通过ARP Reply报文进行响应。

ARP代理

在上述例子的组网中,主机A需要与主机B通信时,目的IP地址与本机的IP地址位于不同网络,但是由于主机A未配置网关,所以它将会以广播形式发送ARP Request报文,请求主机B的MAC地址。但是,广播报文无法被路由器转发,所以主机B无法收到主机A的ARP请求报文,当然也就无法应答。 在路由器上启用代理ARP功能,就可以解决这个问题。启用代理ARP后,路由器收到这样的请求,会查找路由表,如果存在主机B的路由表项,路由器将会使用自己的G0/0/0接口的MAC地址来回应该ARP request。主机A收到ARP reply后,将以路由器的G0/0/0接口MAC地址作为目的MAC地址进行数据转发

免费ARP

免费ARP可以用来探测IP地址是否冲突

主机被分配了IP地址或者IP地址发生变更后,必须立刻检测其所分配的IP地址在网络上是否是唯一的,以避免地址冲突。主机通过发送ARP request报文来进行地址冲突检测。 主机A将ARP Request广播报文中的目的IP地址字段设置为自己的IP地址,该网络中所有主机包括网关都会接收到此报文。当目的IP地址已经被某一个主机或网关使用时,该主机或网关就会回应ARP reply报文。通过这种方式,主机A就能探测到IP地址冲突了。

标签:ARP,协议,主机,报文,地址,MAC,IP地址
From: https://blog.csdn.net/shihaoyuya/article/details/144180729

相关文章

  • 三十二:HTTP 协议的基本认证
    在Web开发中,HTTP协议提供了一种简单的方式来进行身份验证,即基本认证(BasicAuthentication)。这种认证方式广泛应用于需要保护的资源或API接口,它通过在HTTP请求头中传递用户名和密码来验证用户身份。虽然基本认证简单易用,但由于其传输方式的特性,它在安全性上存在一些局限......
  • 现场总线协议---CAN总线协议详解
    个人学习笔记,如有侵权,联系删除基本概念        CAN,即ControllerAreaNetwork,控制器局域网总线。一种用于实时应用的串行通讯协议总线,可使用双绞线来传输信号。    特性:完整性的串行数据通讯、提供实时支持、传输速率高达1Mb/s、同时具有11位的寻址以及检错......
  • HTTP协议介绍(适合刚学的道友)
    前言纵有疾风起,人生不言弃去**妈的拖延症 !!HTTP是啥?到底是啥嘛......
  • webrtc中的协议和用途
    WebRTC(WebReal-TimeCommunication)是一个开源项目,旨在使浏览器和移动应用能够实现实时音视频通信和数据传输,而无需依赖传统的插件或第三方工具。为了支持这种实时通信,WebRTC采用了一系列协议,这些协议的作用分布在应用层、传输层和网络层。应用层包括HTTP,WebSocket,SRTP,SDP,ICE,ST......
  • TCP/IP网络协议栈
    TCP/IP网络协议栈是一个分层的网络模型,用于在互联网和其他网络中传输数据。它由几个关键的协议层组成,每一层负责特定的功能。以下是对TCP/IP协议栈的简要介绍:TCP/IP协议模型的分层1.应用层(ApplicationLayer):这是用户与网络交互的地方。常见的协议包括HTTP(用于网页浏览)、......
  • ARP欺骗-断网攻击
    ARP协议arp协议(地址解析),在局域网中传输的是帧,帧里面有目标主机的MAC地址,其中一台电脑和另一台电脑需要知道对面的ip地址所对应的MAC地址ARP欺骗的原理把自己的MAC地址伪造成网段来欺骗其他用户实验环境kali:192.168.21.128windows10:192.168.21.132实验步骤前提是......
  • 【河北建筑工程学院毕业论文】基于TCP/IP协议网络流量监控系统开发
    注:仅展示部分文档内容和系统截图,需要完整的视频、代码、文章和安装调试环境请私信up主。摘  要因特网的兴起,彻底改变了人们对信息的管理方式,早在90年代因特网刚刚兴起之时,人们就开始思考如何通过因特网来进行系统化的管理。然而,网络信誉度的认证困难,网络法规和政策的不完善......
  • Java Web : HTTP协议
    目录一,HTTP协议的概述二,HTTP协议的特点1,基于请求和响应模型2,简单快捷3,长链接:4,单向性:5,无状态6,灵活二,HTTP协议的交互流程1,请求部分【1】请求行(1个)(1)请求方式​编辑(2)请求地址【固定的】(3)协议(4)版本号【固定的】【2】请求头(n个)【3】请求主体2,响应部分【1】响应行......
  • 超文本协议与内外网划分
    声明学习视频来自B站UP主泷羽sec,如涉及侵泷羽sec权马上删除文章。笔记只是方便各位师傅学习知识,以下网站只涉及学习内容,其他的都与本人无关,切莫逾越法律红线,否则后果自负这节课旨在扩大自己在网络安全方面的知识面,了解网络安全领域的见闻,了解学习哪些知识对于我们渗透......
  • 什么是SSL协议以及它的功能
    SSL是什么:SSL协议是一种国际标准的加密及身份认证通信协议,中文叫做“安全套接层协议”,位于TCP/IP协议传输层与各种应用层协议之间,为数据通讯提供安全支持。SSL协议的主要功能有以下几个:1.身份认证站点服务器可以通过用户名密码、认证证书和公钥技术等方式对用户的身份进行认......