arp报文结构(Arp报文)

      最后更新:2023-04-06 00:31:51 手机定位技术交流文章

      简述arp协议的报文类型?

      ARP报文被封装在以太网帧头部中传输,如图2所示,是ARP请求协议报文头部格式。 ARP请求协议报文头部格式图2中黄色的部分是以太网(这里是Ethernet II类型)的帧头部。其中,第一个字段是广播类型的MAC地址:0XFF-FF-FF-FF-FF-FF,其目标是网络上的所有主机。第二个字段是源 MAC地址,即请求地址解析的主机MAC地址。第三个字段是协议类型,这里用0X0806代表封装的上层协议是ARP协议。接下来是ARP协议报文部分。其中各个字段的含义如下:硬件类型:表明ARP实现在何种类型的网络上。协议类型:代表解析协议(上层协议)。这里,一般是0800,即IP。硬件地址长度:MAC地址长度,此处为6个字节。协议地址长度:IP地址长度,此处为4个字节。操作类型:代表ARP数据包类型。0表示ARP请求数据包,1表示ARP应答数据包。源MAC地址:发送端MAC地址。源IP地址:代表发送端协议地址(IP地址)。 54com.cn目标MAC地址:目的端MAC地址(待填充)。目标IP地址:代表目的端协议地址(IP地址)。 ARP应答协议报文和ARP请求协议报文类似。不同的是,此时,以太网帧头部的目标MAC地址为发送ARP地址解析请求的主机的MAC地址,而源MAC地址为被解析的主机的MAC地址。同时,操作类型字段为1,表示ARP应答数据包,目标MAC地址字段被填充以目标MAC地址。
      0-echo reply(回应ping和tracert的)
      简述arp协议的报文类型?

      ARP 到底是2层还是3层协议?

      按照OSI的标准,当数据向下传递时,每层会加上自己的信息,各层互不干扰.这样当网络层的IP包进入链路层时,链路层该如何加这个头部的目标信息呢?它要依靠ARP协议来完成.显然如何加链路头并不是网络层的功能.而且,ARP协议工作时,并不使用IP的包头。所以也有很多人说,ARP是链路层的。可以说,在TCP/IP模型中,ARP协议属于IP层;在OSI模型中,ARP协议属于链路层。在sniffer软件中,捕获协议数据时,如果使用IP地址是无法捕获到ARP包的,因为IP地址是ARP协议的载荷,不在包头中。但ARP协议的载荷中,也并不包含任何上层的IP数据包。所以,构造和使用ARP协议的主体理解IP地址。从这个角度考虑,将ARP协议划分到IP层也有一定道理。总之,具体到某个协议,它到底属于哪一层,并不是那么严格。到目前为止,理解到此。
      感谢楼上的几位,我个人感觉虽然ARP服务于ip,但既然是用帧传输就应该属于链路层,osi链路层对应的tcp/ip的网络接入层,所以arp应该属于tcp/ip中的网络接入层
      属于OSI的第三层,详解可以参考 《TCP/IP详解》之ARP章节
      arp属于IP层协议,道理很简单,首先ARP并不属于整体的传输报文底层构成。其作用是基于IP地址进行二层寻址,即查找对应MAC。在二层工作模式下是发不出ARP的,因为没有源地址也没有目标地址。基于三层地址信息查询或处理二层的内容,标准的三层协议做法。
      在具体的协议实现上,ARP是在链路层上实现的,所以我觉得ARP应该是链路层的
      ARP 到底是2层还是3层协议?

      ARP是什么东西!!

      RP实际上是英文词组Address Resolution Protocol的简称,它的中文名叫做地址解析协议。它主要指的就是根据电脑的ip地址获取到的一个物理地址上的ip协议,arp是建立在网络中各个主机之间互相信任的前提下,它还可以对本机ARP缓存中的的ip地址以及mac地址这两者的对应关系进行排查,由此做出添加以及删除各种静态对应关系等等。现在我们常见的相关协议有rarp、代理arp等等,如果ndp的用户还能在IPv6中来代替arp。解决办法根据主机A上的路由表内容,IP确定用于访问主机B的转发IP地址是192.168.1.2。然后A主机在自己的本地ARP缓存中检查主机B的匹配MAC地址。如果主机A在ARP缓存中没有找到映射,它将询问192.168.1.2的硬件地址,从而将ARP请求帧广播到本地网络上的所有主机。源主机A的IP地址和MAC地址都包括在ARP请求中,本地网络上的每台主机都接收到ARP请求并且检查是否与自己的IP地址匹配。如果主机发现请求的IP地址与自己的IP地址不匹配,它将丢弃ARP请求。主机B确定ARP请求中的IP地址与自己的IP地址匹配,则将主机A的IP地址和MAC地址映射添加到本地ARP缓存中。主机B将包含其MAC地址的ARP回复消息直接发送回主机A。当主机A收到从主机B发来的ARP回复消息时,会用主机B的IP和MAC地址映射更新ARP缓存。本机缓存是有生存期的,生存期结束后,将再次重复上面的过程。主机B的MAC地址一旦确定,主机A就能向主机B发送IP通信了。扩展资料防护原理防止ARP攻击是比较困难的,修改协议也是不大可能。但是有一些工作是可以提高本地网络的安全性。首先,你要知道,如果一个错误的记录被插入ARP或者IP route表,可以用两种方式来删除。a. 使用arp –d host_entryARP断网攻击b. 自动过期,由系统删除这样,可以采用以下的一些方法:减少过期时间#ndd –set /dev/arp arp_cleanup_interval 60000#ndd -set /dev/ip ip_ire_flush_interval 6000060000=60000毫秒 默认是300000加快过期时间,并不能避免攻击,但是使得攻击更加困难,带来的影响是在网络中会大量的出现ARP请求和回复,请不要在繁忙的网络上使用。参考资料:百度百科-ARP攻击
      想了解的进ARP攻击的原理,现象,和解决方法是什么? 1.首先给大家说说什么是ARPARP(Address Resolution Protocol)是地址解析协议,是一种将IP地址转化成物理地址的协议。从IP地址到物理地址的映射有两种方式:表格方式和非表格方式。ARP具体说来就是将网络层(IP层,也就是相当于OSI的第三层)地址解析为数据连接层(MAC层,也就是相当于OSI的第二层)的MAC地址。ARP原理:某机器A要向主机B发送报文,会查询本地的ARP缓存表,找到B的IP地址对应的MAC地址后,就会进行数据传输。如果未找到,则广播A一个ARP请求报文(携带主机A的IP地址Ia——物理地址Pa),请求IP地址为Ib的主机B回答物理地址Pb。网上所有主机包括B都收到ARP请求,但只有主机B识别自己的IP地址,于是向A主机发回一个ARP响应报文。其中就包含有B的MAC地址,A接收到B的应答后,就会更新本地的ARP缓存。接着使用这个MAC地址发送数据(由网卡附加MAC地址)。因此,本地高速缓存的这个ARP表是本地网络流通的基础,而且这个缓存是动态的。ARP协议并不只在发送了ARP请求才接收ARP应答。当计算机接收到ARP应答数据包的时候,就会对本地的ARP缓存进行更新,将应答中的IP和MAC地址存储在ARP缓存中。因此,当局域网中的某台机器B向A发送一个自己伪造的ARP应答,而如果这个应答是B冒充C伪造来的,即IP地址为C的IP,而MAC地址是伪造的,则当A接收到B伪造的ARP应答后,就会更新本地的ARP缓存,这样在A看来C的IP地址没有变,而它的MAC地址已经不是原来那个了。由于局域网的网络流通不是根据IP地址进行,而是按照MAC地址进行传输。所以,那个伪造出来的MAC地址在A上被改变成一个不存在的MAC地址,这样就会造成网络不通,导致A不能Ping通C!这就是一个简单的ARP欺骗。2.网络执法官利用的就是这个原理!在网络执法官中,要想限制某台机器上网,只要点击"网卡"菜单中的"权限",选择指定的网卡号或在用户列表中点击该网卡所在行,从右键菜单中选择"权限",在弹出的对话框中即可限制该用户的权限。对于未登记网卡,可以这样限定其上线:只要设定好所有已知用户(登记)后,将网卡的默认权限改为禁止上线即可阻止所有未知的网卡上线。使用这两个功能就可限制用户上网。其原理是通过ARP欺骗发给被攻击的电脑一个假的网关IP地址对应的MAC,使其找不到网关真正的MAC地址,这样就可以禁止其上网。3.修改MAC地址突破网络执法官的封锁根据上面的分析,我们不难得出结论:只要修改MAC地址,就可以骗过网络执法官的扫描,从而达到突破封锁的目的。下面是修改网卡MAC地址的方法:在"开始"菜单的"运行"中输入regedit,打开注册表编辑器,展开注册表到:HKEY_LOCAL_MACHINE/System/CurrentControlSet/Control/Class/{4D36E972-E325-11CE-BFC1-08002BE10318}子键,在子键下的0000,0001,0002等分支中查找DriverDesc(如果你有一块以上的网卡,就有0001,0002......在这里保存了有关你的网卡的信息,其中的DriverDesc内容就是网卡的信息描述,比如我的网卡是Intel 21041 based Ethernet Controller),在这里假设你的网卡在0000子键。在0000子键下添加一个字符串,命名为"NetworkAddress",键值为修改后的MAC地址,要求为连续的12个16进制数。然后在"0000"子键下的NDI/params中新建一项名为NetworkAddress的子键,在该子键下添加名为"default"的字符串,键值为修改后的MAC地址。在NetworkAddress的子键下继续建立名为"ParamDesc"的字符串,其作用为指定NetworkAddress的描述,其值可为"MAC Address"。这样以后打开网络邻居的"属性",双击相应的网卡就会发现有一个"高级"设置,其下存在MAC Address的选项,它就是你在注册表中加入的新项"NetworkAddress",以后只要在此修改MAC地址就可以了。关闭注册表,重新启动,你的网卡地址已改。打开网络邻居的属性,双击相应网卡项会发现有一个MAC Address的高级设置项,用于直接修改MAC地址。MAC地址也叫物理地址、硬件地址或链路地址,由网络设备制造商生产时写在硬件内部。这个地址与网络无关,即无论将带有这个地址的硬件(如网卡、集线器、路由器等)接入到网络的何处,它都有相同的MAC地址,MAC地址一般不可改变,不能由用户自己设定。MAC地址通常表示为12个16进制数,每2个16进制数之间用冒号隔开,如:08:00:20:0A:8C:6D就是一个MAC地址,其中前6位16进制数,08:00:20代表网络硬件制造商的编号,它由IEEE分配,而后3位16进制数0A:8C:6D代表该制造商所制造的某个网络产品(如网卡)的系列号。每个网络制造商必须确保它所制造的每个以太网设备都具有相同的前三字节以及不同的后三个字节。这样就可保证世界上每个以太网设备都具有唯一的MAC地址。另外,网络执法官的原理是通过ARP欺骗发给某台电脑有关假的网关IP地址所对应的MAC地址,使其找不到网关真正的MAC地址。因此,只要我们修改IP到MAC的映射就可使网络执法官的ARP欺骗失效,就隔开突破它的限制。你可以事先Ping一下网关,然后再用ARP -a命令得到网关的MAC地址,最后用ARP -s IP 网卡MAC地址命令把网关的IP地址和它的MAC地址映射起来就可以了。4.找到使你无法上网的对方解除了网络执法官的封锁后,我们可以利用Arpkiller的"Sniffer杀手"扫描整个局域网IP段,然后查找处在"混杂"模式下的计算机,就可以发现对方了。具体方法是:运行Arpkiller(图2),然后点击"Sniffer监测工具",在出现的"Sniffer杀手"窗口中输入检测的起始和终止IP(图3),单击"开始检测"就可以了。检测完成后,如果相应的IP是绿帽子图标,说明这个IP处于正常模式,如果是红帽子则说明该网卡处于混杂模式。它就是我们的目标,就是这个家伙在用网络执法官在捣乱。扫描时自己也处在混杂模式,把自己不能算在其中哦! 找到对方后怎么对付他就是你的事了,比方说你可以利用网络执法官把对方也给封锁了!:-)
      ARP即地址解析协议(Address Resolution Protocol),是根据IP地址获取物理地址的一个TCP/IP协议。主机发送信息时将包含目标IP地址的ARP请求广播到网络上的所有主机,并接收返回消息,以此确定目标的物理地址;收到返回消息后将该IP地址和物理地址存入本机ARP缓存中并保留一定时间,下次请求时直接查询ARP缓存以节约资源。地址解析协议是建立在网络中各个主机互相信任的基础上的,网络上的主机可以自主发送ARP应答消息,其他主机收到应答报文时不会检测该报文的真实性就会将其记入本机ARP缓存;由此攻击者就可以向某一主机发送伪ARP应答报文,使其发送的信息无法到达预期的主机或到达错误的主机,这就构成了一个ARP欺骗。ARP命令可用于查询本机ARP缓存中IP地址和MAC地址的对应关系、添加或删除静态对应关系等。相关协议有RARP、代理ARP。NDP用于在IPv6中代替地址解析协议。

      ARP是什么东西!!

      ARP 协议

      网络设备有数据要发送给另一台网络设备时,必须要知道对方的网络层地址(即IP地址)。IP地址由网络层来提供,但是仅有IP地址是不够的,IP数据报文必须封装成帧才能通过数据链路进行发送。数据帧必须要包含目的MAC地址,因此发送端还必须获取到目的MAC地址。通过目的IP地址二获取的MAC地址的过程是由ARP(Address Resolution Protocol)协议来实现的。 数据链路层在进行数据封装的时候,需要目的MAC地址。一台网络设备要发送数据给另外一台网络设时,必须要知道对方的IP地址。但是,仅有IP地址是不够的,因为IP数据报文必须封装成帧才能通过数据链路层进行发送,而数据帧必须要包含目的MAC地址,因此发送端还必须获取到目的MAC地址。每一个网络设备在数据封装前都需要获取下一跳的MAC地址。IP地址由网络层来提供,MAC地址通过ARP协议来获取。ARP协议是TCP/IP协议簇中的重要组成部分,ARP能够通过目的IP地址发现目标设备的MAC地址,从而实现数据链路层的可达性。ARP数据包格式:关于ARP协议属于2层还是3层的讨论:https://networkengineering.stackexchange.com/questions/5064/on-which-layer-of-the-osi-model-does-the-arp-protocol-belong这里有句话很好:OSI只是一个模型,没有任何一个协议是完全属于哪一层的。我们看帧结构,ARP数据直接包含在Ethernet_II中,我个人认为它可以归纳于二层。网络设备通过ARP报文来发现目的MAC地址。ARP报文中包含以下字段:1)Hardware Type:硬件地址类型,一般为以太网;2)Protocol Type:表示三层协议地址类型,一般为IP;3)Hardware Length和Protocol Length为MAC地址和IP地址的长度,单位是字节; (这个理论上可以不要,因为前面已经确定了硬件类型和协议类型)4)Operation Code指定了ARP报文的类型,包括ARP request和ARP reply;5)Source Hardware Address 指的是发送ARP报文的设备MAC地址;6)Source Protocol Address指的是发送ARP报文的设备IP地址;7)Destination Hardware Address指的是接收者MAC地址,在ARP request报文中,该字段值为0;8)Destination Protocol Address指的是接受者的IP地址。通过ARP协议,网络设备可以建立目标IP地址和MAC地址之间的映射。网络设备通过网络层获取到目的IP地址之后,还要判断目的MAC地址是否已知。网络设备一般都有一个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 request报文后,会检查它的目的协议地址(一般是 00-00-00-00-00-00-00 与所有的匹配)字段与自身的IP地址是否匹配。如果不匹配,则该主机将不会响应该ARP request报文。如果匹配,则该主机会将ARP报文中的源MAC地址和源IP地址信息记录到自己的ARP缓存表中,然后通过ARP Reply报文进行响应。主机C会向主机A回应ARP Reply报文。 ARP Reply 报文中的源协议地址是主机C自己的IP地址,目标协议地址是主机A的IP地址,同事Operation Code被设置为reply。ARP Reply报文通过单播传送。主机A收到ARP Reply以后,会检查ARP报文中目的MAC地址是否与自己的MAC匹配。如果匹配,ARP报文中的源MAC地址和源IP地址会被记录到主机A的ARP缓存表中。ARP表项的老化超时时间缺省为1200秒(20min)。位于不同网络的网络设备在不配置网关的情况下,能够通过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可以用来探测IP地址是否冲突。主机被分配了IP地址或者IP地址发生变化后,必须立刻检测其所分配的IP地址在网络上是否是唯一的,以避免地址冲突。主机通过发送ARP request报文来进行地址冲突检测。主机A将 ARP request 广播报文中的目的IP地址字段设置为自己的IP地址,该网络中所有主机包括网关都会接收到此报文。当目的IP地址已经被某一个主机或网关使用时,该主机或网关就会回应 ARP reply 报文。通过这种方式,主机A就能探测到IP地址冲突了。总结:1.网络设备在什么情况下回发送ARP request?源设备在发送数据给目的设备前,会首先查看自身的ARP缓存,查找ARP缓存是否在目的设备的IP地址和MAC地址的映射。如果存在则直接使用,如果不存在则会发送ARP request。2.网络设备什么时候会产生免费ARP? 当网络上的一个设备被分配了IP地址或者IP地址发生变化后,可以通过免费ARP来检查IP地址是否冲突。
      ARP 协议

      arp数据包的构造

      在网络中,IP数据包常通过以太网发送。以太网设备并不识别32位IP地址:它们是以48位以太网地址传输以太网数据包的。因此,IP驱动器必须把IP目的地址转换成以太网网目的地址。在这两种地址之间存在着某种静态的或算法的映射,常常需要查看一张表。地址解析协议(Address Resolution Protocol,ARP)就是用来确定这些映象的协议。 ARP工作时,送出一个含有所希望的IP地址的以太网广播数据包。目的地主机,或另一个代表该主机的系统,以一个含有IP和以太网地址对的数据包作为应答。发送者将这个地址对高速缓存起来,以节约不必要的ARP通信。 如果有一个不被信任的节点对本地网络具有写访问许可权,那么也会有某种风险。这样一台机器可以发布虚假的ARP报文并将所有通信都转向它自己,然后它就可以扮演某些机器,或者顺便对数据流进行简单的修改。ARP机制常常是自动起作用的。在特别安全的网络上, ARP映射可以用固件,并且具有自动抑制协议达到防止干扰的目的。
      arp数据包的构造

      本文由 在线网速测试 整理编辑,转载请注明出处,原文链接:https://www.wangsu123.cn/news/67802.html

          热门文章

          文章分类