简述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协议只有2种报文,哪两种?
ARP协议只有2种报文:链路层。但既然是用帧传输就应该属于链路层,osi链路层对应的tcp/ip的网络接入层,所以arp应该属于tcp/ip中的网络接入层。黄色的部分是以太网(这里是Ethernet II类型)的帧头部。第一个字段是广播类型的MAC地址:0XFF-FF-FF-FF-FF-FF,其目标是网络上的所有主机。第二个字段是源 MAC地址,即请求地址解析的主机MAC地址。第三个字段是协议类型,这里用0X0806代表封装的上层协议是ARP协议。ARP缓存:ARP缓存个用来储存IP地址和MAC地址的缓冲区,其本质就是一个IP地址-->MAC地址的对应表,表中每一个条目分别记录了网络上其他主机的IP地址和对应的MAC地址。每一个以太网或令牌环网络适配器都有自己单独的表。当地址解析协议被询问一个已知IP地址节点的MAC地址时,先在ARP缓存中查看,若存在,就直接返回与之对应的MAC地址,若不存在,才发送ARP请求向局域网查询。

ARP协议都包括哪些内容?
网络层使用的是IP地址,但在实际网络的链路上传送数据帧时,最终还是必须使用该网络的硬件地址。但IP地址和下面的网络的硬件地址之间由于格式不同而不存在简单的映射关系(例如,IP地址有32位,而局域网的硬件地址是48位)。此外,在一个网络上可能经常会有新的主机加入进来,或撤走一些主机。更换网络适配器也会使主机的硬件地址改变。地址解析协议ARP解决这个问题的方法是在主机ARP高速缓存中存放一个从IP地址到硬件地址的映射表,并且这个映射表还经常动态更新(新增或超时删除)。每一台主机都设有一个ARP高速缓存(ARP cache),里面有本局域网上的各主机和路由器的IP地址到硬件地址的映射表,这些都是该主机目前知道的一些地址。那么主机怎样知道这些地址呢?我们可以通过下面的例子来说明。当主机A要向本局域网上的某台主机B发送IP数据报时,就先在其ARP高速缓存中查看有无主机B的IP地址。如有,就在ARP高速缓存中查出其对应的硬件地址,再把这个硬件地址写入MAC帧,然后通过局域网把该MAC帧发往此硬件地址。也有可能查不到主机B的IP地址的项目。这可能是主机B才入网,也可能是主机A刚刚加电,其高速缓存还是空的。在这种情况下,主机A就自动运行ARP,然后按以下步骤找出主机B的硬件地址。

ARP 与 RARP 协议
地址解析协议,即ARP(Address Resolution Protocol),是根据IP地址获取物理地址的一个TCP/IP协议。主机发送信息时将包含目标IP地址的ARP请求广播到局域网络上的所有主机,并接收返回消息,以此确定目标的物理地址;收到返回消息后将该IP地址和物理地址存入本机ARP缓存中并保留一定时间,下次请求时直接查询ARP缓存以节约资源。反向地址转换协议(RARP)是局域网的物理机器从网关服务器的ARP表或者缓存上根据MAC地址请求IP地址的协议,其功能与地址解析协议相反。与ARP相比,RARP的工作流程也相反。首先是查询主机向网路送出一个RARP Request广播封包,向别的主机查询自己的IP地址。这时候网络上的RARP服务器就会将发送端的IP地址用RARP Reply封包回应给查询者,这样查询主机就获得自己的IP地址了。数据包在物理链路上传输 以太网帧 需要目的地的物理地址(MAC)通过ARP协议来获取同一个网络内的机器的IP地址和Mac的对应关系,为上层协议提供支持,因为上层协议使用IP地址进行通信。Wireshark 抓包ARP 广播请求 (由192.168.1.88 发起的广播请求,询问谁的IP是192.168.1.1)ARP 应答 (192.168.1.1 直接应答 192.168.1.88,告知其Mac地址)其他收到该广播的机器判断【192.168.1.1】不是自己的IP,直接丢弃只有arp请求可以看到只会发送ARP请求,且ARP请求没有获得响应,此时无法获取ping的目的地,故不会发送ping(ICMP)请求且错误显示为:“无法访问目标主机”先添加IP对MAC的映射关系用 arp -a 查看结果ping 测试只有ping数据报详情:当本地的Arp缓存中有IP地址和Mac地址的对应关系时,会直接往目标地址发送数据报,从以太网帧中可以看到目的地Mac就是我们设置的Mac。此时不会再发送ARP请求,直接发送了Ping请求,且错误显示为:“请求超时”这里修改 192.168.1.1 的Mac地址arp 命令修改失败:拒绝访问改用netsh命令修改比如在浏览器中访问百度使用wireshar 抓包使用netsh 命令设置之后,再用arp -d 192.168.1.1 命令删除,在重启之前是可以上网的,下次重启网关的mac地址还将是错误的需要使用上面的命令删除,完了之后就会变成 “可以访问”ARP欺骗可以分成两种情况:发送一系列错误的内网MAC地址给路由器,并按照一定的频率不断进行,使真实的地址信息无法通过更新保存在路由器中,结果路由器的所有数据只能发送给错误的MAC地址,造成正常PC无法收到信息。不停发送错误的网关Mac到局域网的机器中,让局域网内的机器建立错误的绑定关系,让局域网内的机器不能正确的将数据包发送到网关设备,导致PC不能上网。......有时间再试试......返回值为1表示已被使用,0表示没有被使用过滤目的地址arp.dst.proto_ipv4==192.168.1.214

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地址是否冲突。

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