践中深入理解ARP协议.doc

  1. 1、本文档共12页,可阅读全部内容。
  2. 2、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
  3. 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载
  4. 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
查看更多
践中深入理解ARP协议

践中深入理解ARP协议 0.说明 有兴趣的朋友可以继续关注我的博客,我将会陆续撰写各种协议的实践分析文章。 在同一个网络(无特别说明,均指以太网络)中进行通信的主机,必须要拥有目标主机的MAC地址才能够正确地将数据发送给目标主机,那么如何知道目标主机的MAC地址呢?可以通过ARP协议。ARP协议就是用来获取目标IP地址所对应的MAC地址的,也就是说,ARP协议可以动态地在三层IP地址和二层MAC地址之间建立一种映射关系。可以用如下示意图来形象表示其作用: 可以看到上面的图示是把ARP协议划分到网络层,也既是认为它是一个网络层的协议,这是出于它为网络层的IP协议提供服务而考虑的。但实际上,由于ARP协议用以解析出IP地址(逻辑地址)所对应数据链路层中的地址(物理地址/硬件地址),所以把其划分在数据链路层也是没有问题的,这并没有严格的定义。 我们下面将通过具体的实践过程来分析四种常见的ARP包:ARP请求包、ARP响应包、无偿ARP包与IP地址冲突检测,同时也会分析一下ARP代理的发生过程。 这里会使用的环境如下: 网络设备模拟器:GNS3 抓包软件:Wireshark 1.网络环境搭建 为了简洁起见,这里不设置一个较大的网络环境来满足前面四种情况ARP包分析的需要,而是在分析不同的ARP情况时分别搭建较小的网络环境,这样可以使我们的分析更有针对性。 2.ARP包报文格式 如下: 注意我们关注的是28字节的ARP包,只不过上面的图还包含了以太网首部字段信息(显然以太网首部的帧类型为ARP,在分析IP协议时提到过,这是一个数据分用的概念)。 因为对于ARP包的分析,其实我们更关心的应该是ARP请求包、ARP响应包、无偿ARP包或者ARP代理相关的知识,而后面的实践也主要是分类地进行讨论。所以下面先给出一个普通ARP包(请求包)的实际结构,然后再给出每一个字段的具体含义(参考了《TCP/IP详解 卷1:协议》的部分内容),先作一个基本的了解,最后再详细分析这些包产生的过程: 一个普通ARP包(请求包的实际结构) ARP包各字段具体含义(对比上面实际抓到的包) 字段 含义 硬件类型 占16位 表示硬件地址的类型,值为1即表示以太网地址,也就是MAC地址 协议类型 点16位 表示要映射的协议地址类型,值为0x0800即表示IP地址,因为本文都是在IP协议的基础上进行分析的(即网络层逻辑地址为IP地址),所以所抓到的包的该字段类型都为0x0800 硬件地址长度 占8位 指出硬件地址的长度,单位为字节,因为本文针对的是以太网,而以太网地址为MAC地址,占48位,即6字节,所以后面抓到的包中该字段的值都为6,不再作特别说明 协议地址长度 占8位 指出三层逻辑地址的长度,单位为字节,因为本文针对的是以太网地址和IP地址的映射,而IP地址占32位,即6字节,所以后面抓到的包中该字段的值都为4,不再作特别说明 操作字段 指出操作类型,对应的值如下: ARP请求:1 ARP响应:2 RARP请求:3 RARP响应:4 但因为RARP现在已经很少使用了,所以本文不会讨论 发送端以太网地址 占48位 准确上说是“发送端硬件地址”,但因为本文只针对以太网进行讨论,所以表述为“发送端以太网地址” 发送端IP地址 占32位 准确上说是“发送端网络层逻辑地址”,但因为本文只针对的是以太网地址和IP地址的映射的讨论,所以表述为“发送端IP地址” 目的以太网地址 占48位 目的IP地址 占32位 3.在实践中分析ARP的实现过程:ARP请求、ARP响应 (1)网络环境搭建 本节主要是抓取ARP请求包和ARP响应包来分析ARP请求与响应的一个详细过程,以及对应ARP包中相关字段的含义,这个实践的网络环境比较简单,如下: 在R1路由器上做如下配置: R1#conf?t R1(config)#int?f0/0 R1(config-if)#no?shu R1(config-if)#ip?add?192.168.1.1?255.255.255.0 R1(config-if)#do?wr 在R2路由器上做如下配置: R2#conf?t R2(config)#int?f0/0 R2(config-if)#no?shu R2(config-if)#ip?add?192.168.1.2?255.255.255.0 R2(config-if)#do?wr 然后在R1路由器上查看arp缓存表: R1#show?arp Protocol??Address??Age?(min)??Hardware?Addr???Type???Interface Internet??192.168.1.1?????-???cc01.127f.0000??ARPA

文档评论(0)

70后老哥 + 关注
实名认证
内容提供者

该用户很懒,什么也没介绍

1亿VIP精品文档

相关文档