版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
网络上任意两台计算机之间的信息传送,最终都是依靠物理地址来实现的。在网络接口层使用的地址就是物理地址。本章讨论怎样把物理地址与在TCP/IP互联网络上标识主机的IP地址关联起来,着重介绍ARP(地址解析协议),简单介绍RARP(逆地址解析协议)。
0第4章地址解析协议分析
4.1物理地址和网络地址的转换数据链路如以太网或令牌环网都有自己的寻址机制,即采用物理地址来标识通信接口,对以太网这个地址也叫MAC地址,即IEEE802.3规定的48bit地址格式。在相邻的两个节点间传送数据帧时,以物理地址来封装数据帧。在网络层,用网络地址来标示通信节点,用以确定报文的转发路由。对IP网络这个地址即IP地址。1在将IP分组封装到数据链路帧中的时候,协议栈需要获得IP地址对应的网络接口的硬件地址。ARP为IP地址到对应的硬件地址之间提供动态映射。动态即指这个过程是由系统协议栈自动完成将某个IP地址解析成对应的MAC地址。对于那些没有磁盘驱动器的系统,一般是无盘工作站和X终端在引导时需要获得IP地址,即已获得网络接口的硬件地址但没有IP地址的情况,这时便需要RARP来完成地址转换。
24.2ARP协议工作原理4.2.1地址解析的例子下面通过运行一个常见的网络通信命令的例子来分析地址解析时网络协议栈的操作。
假定在局域网中连接有一台名为mytest.mydomain的Linux主机并已经开启Telnet服务,在局域网中另一台主机的终端里敲入下面的命令:
$telnetmytest.mydomain
34
系统网络协议栈中将进行下面的步骤,这些步骤在图4-1中用对应的序号标注出来了。
应用程序Telnet先通过DNS过程获得目标主机的IP地址,然后客户端用得到的IP地址来和远端的主机建立一个TCP连接,即用上述的IP地址来构造出一封包含TCP连接请求的IP数据报。
IP数据报需要被传送到位于本地网络上的目的主机或路由器上,为此,发送主机必须先把32bit的IP地址转换成48bit的以太网地址(对以太网)从而构造出链路层的帧(需要链路层目的MAC地址)来发送。54.2ARP协议工作原理
从逻辑Internet地址到对应的物理硬件地址需要进行翻译,这就是ARP的功能。如果发送主机不能够在自己的ARP数据库中获得地址映射所需要的数据,则广播一个ARP请求帧给以太网上的每个主机,这个过程称作ARP。如图4-1中的虚线所示。ARP请求帧中包含目的主机的IP地址,其用意是希望该IP地址的拥有者发回其硬件地址。
目的主机的ARP层收到这份广播报文后,构造一个包含自己IP地址及对应的硬件地址的ARP应答返回给请求者。
64.2ARP协议工作原理
发送主机收到ARP应答后,得到数据传送下一站的MAC地址,从而可以构造出链路层帧。这时IP数据报就可以传送了。
要注意的是,ARP请求是广播的,因此ARP请求帧不能穿越路由器,因为路由器对于广播报文是不转发的。另外点对点链路不需要使用ARP。
74.2.2ARP协议的工作过程实现ARP功能,将32bit的IP地址映射到48bit的以太网物理地址可以有不同的方式。常用的方式一种是直接方式,一种是动态绑定方式,也叫动态联编方式。直接方式是事先在主机中建立一张IP地址到物理地址的映射表,这是一个静态的数据库,需要人工来建立和维护,对大规模的网络不太适合,同时可能更新不及时。但这种静态的地址绑定方式却可以满足一些特殊的要求,比如安全需要。
84.2ARP协议工作原理ARP协议的工作主要采用动态绑定方式,即通过ARP动态地广播地址转换请求,只在本地维护一个动态的高速缓存来实现地址映射数据的存放。ARP功能实现的具体工作过程可以描述如下:
(1)每个主机上都有一个ARP高速缓存,这个高速缓存存放了最近使用的IP地址到硬件地址之间的映射记录。
(2)当发送端封装IP分组时,要先在高速缓存中查找相应的地址映射记录。
9
(3)如果找不到,则ARP发送一份称作ARP请求的以太网数据帧给以太网上的每个主机,这个过程称作ARP广播。
(4)目的主机的ARP层收到这份广播报文后,识别出这是发送端在寻问它的IP地址,于是发送一个包含IP地址及对应的硬件地址的ARP应答给发送方主机。
(5)收到ARP应答后,发送方就可以传送IP数据报了。可以看到,ARP高效运行的关键就是主机中有存放最近一段时间的IP地址到硬件地址之间映射记录的高速缓存。
104.2ARP协议工作原理在每台使用ARP的主机中,都保留了一个专用的高速缓存区,存放最新获得的IP地址到物理地址的映射数据。一旦收到ARP应答,主机就将从应答中得到的对方主机的IP地址和物理地址存入缓存。当要发送报文时,主机首先去缓存中查找相应的数据,如果找不到再利用ARP进行地址广播。对ARP缓存必须建立一种超时机制,使得缓存中的数据在超时后自动失效,才能保证协议的可靠运行。如果不设超时会有什么问题呢?
11一般ARP协议使用计时器方法,当计时器超时后则删除地址绑定数据。例如,在地址绑定信息放入ARP缓存时协议需要设置一个计时器,一般典型的超时时间是20分钟,超时后可以把地址信息删除。如果删除信息后又有分组需要发送到这个地址,则只需遵循通常的过程,广播一个ARP请求即可。
124.2ARP协议工作原理
为提高效率,ARP高速缓存还做了以下的改进:(1)在ARP请求报文中存有发送方的IP地址与物理地址的绑定,这样如果接收方的高速缓存中没有该地址绑定信息,那么接收方可把收到的ARP请求报文中发送方的地址信息添加到自己的高速缓存中。怎样通过实验来验证这一点?
(2)发送方在广播自己的地址绑定时,网上所有主机都可以将该绑定信息存入自己的高速缓存。不过不是所有的网络设备或系统实现都支持这样的情况。13
(3)新机入网时或主机更换网卡时,会主动广播地址绑定信息,以免其他主机对其进行ARP请求,这就是免费ARP(gratuitousARP)。可以用arp命令来检查和操作ARP高速缓存的内容(命令用法见实验4-1)。
思考:捕获到单播的ARP请求
RFC1122UnicastPoll144.2ARP协议工作原理154.2.3ARP协议报文格式ARP报文直接与数据链路层通信。
封装有ARP分组的以太网帧报文格式如图4-2所示。
以太网报头中若目的地址为全1则是广播地址,在ARP请求报文中会用到。以太网帧类型对于ARP请求或应答来说,该字段的值为0x0806。ARP报文包含9个字段,其报文大小根据本地网络媒介上使用的物理地址的大小的变化而变化。当物理媒介是以太网时,在图4-2中标示出的长度为28字节。报文的前5个字段,用来提供ARP报文的整体功能的描述,后4个字段是ARP有关的具体地址信息。
164.2ARP协议工作原理
各个字段的含义解释如下:1)硬件类型:2字节,表示被请求的硬件地址的类型。DIXEthernet的地址类型值为1,IEEE802.X的类型值为6,还可以有其他的类型取值。2)协议类型:2字节,表示要映射的协议地址类型。取值为0x0800即表示IP地址(这个值与包含IP数据报的以太网数据帧中的类型字段的值相同)。
ARP并不只专用于IP,可以让任何高层协议用来寻找与高层协议地址相关的硬件地址。
17
3)硬件地址长度:1字节,根据硬件类型确定的硬件地址的字节数。对以太网这个值是6。4)协议地址长度:1字节,高层协议地址的长度,以字节为单位。对于IP协议来说这个地址的值总是4。
5)操作:2字节,表示ARP报文类型。这个字段也叫操作码,用于区分报文是ARP请求还是应答,或者是RARP请求或应答。这个字段是必需的,因为ARP请求和ARP应答的帧类型字段值是相同的。操作字段的取值如表4-1所示。
184.2ARP协议工作原理
6)发送端硬件地址:发送该ARP报文的主机硬件地址。对以太网,这个字段长度总是6个字节,即48bit的MAC地址。
7)发送端网络地址:对IP网络,这就是发送该ARP报文的主机IP地址,长度是4字节。
19
8)接收端硬件地址:该ARP报文的目的地主机的硬件地址。对以太网这个字段长度也是6个字节。
9)接收端网络地址:4字节,ARP报文目的地主机的IP地址。204.2ARP协议工作原理当一个设备发送ARP请求时,先要填充报文中后4个与地址相关的字段中的3个,即发送端硬件地址和IP地址,还提供目标的IP地址,因为目标的硬件地址是不知道的,此时这个字段填充为0。另外会设置操作类型字段为“1”表明当前的报文是一个ARP请求。然后在局域网上广播这个请求,使得所有设备都能侦听到。一旦主机侦听到针对自己的地址请求,则提供自己的硬件地址构造响应报文反馈给请求主机,ARP响应报文中交换请求方和响应方的IP地址和硬件地址信息,把响应报文操作类型字段设置为“2”表明当前报文是一个ARP应答。该报文会直接传播给远端请求者而不再是广播发送。
214.2ARP协议工作原理4.3特殊的ARP
由于主机工作的特殊时期或网络连接的特定状况,会形成特殊的ARP工作状况,分别是免费ARP和代理ARP。
4.3.1免费ARP(gratuitousARP)免费ARP是指主机发送ARP请求查找自己的IP地址。这时候,ARP请求报文中发送端的IP地址和目的端的IP地址是一样的,同时这个ARP请求不希望得到ARP应答。免费ARP通常发生在系统引导期间进行接口配置的时候。
22主机系统重新引导有可能引发和地址有关的变化,这需要及时地通知到网络上,以便其他主机及时更新其相关的地址绑定信息。因此免费ARP通常有两个方面的作用:(1)测试网络上是否存在重复的IP地址。免费ARP其实是在局域网中广播自己的地址绑定关系。如果另一台主机响应这个ARP请求,说明该IP地址已经在使用,那么该主机就不能够初始化自己的TCP/IP栈。主机发出免费ARP请求,却并不希望收到相应的ARP应答。
23(2)更新网络上其他主机中的地址绑定信息。如果发送免费ARP的主机的IP地址并未变化,但正好改变了硬件地址,比如更换了网卡,那么这个分组就可以使网络上其他主机对其高速缓存中旧的硬件地址进行相应的更新。根据ARP协议的规定,网络上的主机如果收到某个IP地址的ARP请求并且这个地址已经在接收者的高速缓存中,那么就要用ARP请求中发送的硬件地址对高速缓存中相应的内容进行更新。主机接收到任何ARP请求都要完成这个操作。
244.3特殊的ARP
4.3.2代理ARP(ProxyARP)也叫ARP代理。是指如果ARP请求是从一个网络的主机发往另一个网络上的主机,那么连接这两个网络的路由器就可以回答该请求,这个过程称作代理ARP。考查如图4-3的网络,路由器Router0连接了两个局域网/24和/16。路由器上只做了静态路由配置。图中已经把路由器和各个主机的接口IP地址和MAC地址标示出来了。25264.3特殊的ARP注意图4-3右边的网络/16的网络号做了特别的设置,即与左边网络/24的高16位相同。另外,为在PC3处观察到ARP代理现象,PC3不配置默认网关。图4-3代理ARP工作的例子如果从PC3上发起对/24网络中任意的主机通信,假定是运行命令“ping1”,PC3上的IP协议栈会用自己的网络号来判断要通信的主机PC1是否和自己在同一网段,即用主机的网络掩码对目的IP地址进行运算。由于得到的网络号和自己在同一网络,因此PC3会将IP数据包发出。但为构造数据链路层的帧PC3需要先发出一个ARP请求以获得PC1的MAC地址。
27此时,路由器Router0收到这个ARP请求帧,但因为路由器不转发广播帧,所以这个ARP请求会被路由器接收但是不能被PC1收到。此时路由器知道目标地址1在自己连接的另外一个子网中,它就会以自己的Fa0/1接口的MAC地址00D0.D359.E002回答PC3。当PC3接收到路由器的回答后,就更新MAC地址表,把IP地址1和MAC地址00D0.D359.E002进行绑定。从此,PC3就把所有发给PC1的分组全部抛向路由器的Fa0/1接口。
284.3特殊的ARP
同理,PC3对网络/24中任何一台主机进行访问,都会产生一个和上述过程相同的ARP请求和处理过程。在PC3看来这些主机的IP都对应了路由器的Fa0/1接口的MAC地址。可以认为路由器Router0欺骗了发起ARP请求的PC3,使其误以为路由器就是目的主机,而事实上目的主机是在路由器的“另一边”。可见,路由器的功能相当于目的主机的代理,把分组从其他主机转发给它。这时在PC3的ARP高速缓存中发往多个不同网络中的IP地址都被指向路由器的接口地址(用arp命令查看)。这种多个IP地址被映射到一个MAC地址就是ARP代理的标志。29这个例子中路由器的ARP代理方式曾经用来连接两个不同的物理网络,使得他们之间互相隐藏而感觉像在同一个网络中。在实际应用中,主机一般都会配置默认网关,这时访问不在同一个网络的主机的IP数据报都通过默认网关转发,ARP高速缓存中就只有默认网关的地址绑定信息了。304.3特殊的ARP
代理ARP有两大应用:
一个是有利的,即在防火墙实现中常说的透明模式的实现;
一个是有害的,就是通过它可以达到在交换环境中进行嗅探的目的。通常在局域网交换环境中使用Sniffer一类的嗅探工具除了抓到自己的包以外,是不能看到其他主机的网络通信的,但是通过利用ARP欺骗可以实现嗅探。31以图4-3为例。假定PC0是局域网中的网关,局域网中每个节点的向外的通信都要通过它。
PC1想要听主机PC2的通信,先使用ARP欺骗让主机PC2认为它就是主机PC0。此时PC1可以发一个IP地址为0,物理地址为0060.5C3D.6C99的ARP响应包给主机PC2。根据ARP的工作机制,PC2会更新自己的ARP高速缓存,并把发往主机PC0的包发往物理地址为0060.5C3D.6C99主机PC1。这样便达成了ARP欺骗。
类似地,PC1还要向PC0发送一个IP地址为192.168.1.12,物理地址为0060.5C3D.6C99的ARP响应报文以欺骗PC0。在网络安全实践中,ARP欺骗、ARP病毒的形式都与ARP协议的工作机制有密切的联系。324.3特殊的ARP4.4逆地址解析协议RARPRARP用于支持无盘工作站在引导或启动时获得自身的IP地址。由于无盘工作站中没有硬盘,更准确地说是没有存放有引导所需操作系统文件的辅助存储器,因而需要从网络上获得引导所需操作系统文件,这就必须先获得自身的IP地址,从而才可能和存放有系统文件的服务器进行通信。RARP常常和TFTP(TrivialFileTransferProtocol,简单文件传输协议)一起使用,即通过RARP获得IP地址,用TFTP从服务器获得系统文件。
33无盘工作站的网卡带有可引导芯片(一般网卡没有,支持无盘引导则需要专门的网卡和相应的引导芯片)。在无盘工作站启动时网卡上的引导芯片从系统服务器中取回所需数据供用户使用。无盘系统的RARP实现过程可以简单表述如下:
(1)从接口卡上读取唯一的硬件地址(MAC地址)。
(2)发送一份RARP请求,请求某个RARP服务器响应该无盘系统的IP地址。RARP请求在网络上进行广播,它在分组中标明发送端的硬件地址,以请求相应IP地址的响应。
34
(3)如果网络上有RARP服务器收到这个请求,则发送一个RARP应答,其中包含有为无盘主机分配的IP地址。一个应答通常是单播传送的。
(4)如果网络上没有RARP服务器,无盘主机会按一定的时间间隔持续地发送RARP请求到网络上。RARP采用特殊类型的以太网帧来封装,其以太网帧类型值为0x8035。
354.4逆地址解析协议RARPRARP的分组格式基本上与ARP分组一致。区分RARP请求或应答的依据是表4-1中给出的分组中操作字段的取值。RARP在实现上的主要问题是RARP服务器的复杂性,主要体现在两个方面:(1)RARP服务器一般要为多个主机提供硬件地址到IP地址的映射,该映射包含在一个磁盘文件中。由于内核一般不读取和分析磁盘文件,因此RARP服务器的功能就由用户进程来提供,而不是作为内核的TCP/IP实现的一部分。但由于RARP的实现又必须和系统捆绑在一起,因而在实现上较为复杂。
36
(2)路由器不转发导致需要多个RARP服务器。RARP使用链路层广播,大多数路由器不会转发RARP请求。为了让无盘系统在RARP服务器关机的状态下也能引导,通常在一个网络上需要提供多个RARP服务器。协调各个服务器的工作是一个问题。BOOTP(BootstrapProtocol,引导程序协议)以及后来的DHCP(DynamicHostConfigurationProtocol,动态主机配置协议)提供了更加健壮、灵活的分配IP地址的方法,目前已取代了RARP。374.4逆地址解析协议RARP4.5小结
1.在大多数的TCP/IP实现中,ARP是一个基础协议,用于在将IP分组封装到数据链路帧中的时候,获得IP地址对应的网络接口的硬件地址。
2.ARP地址解析过程是由系统协议栈自动完成的,其运行对于应用程序或系统管理员来说一般是透明的、动态的。
3.ARP高速缓存在协议的运行过程中非常关键,其中的地址绑定记录是协议工作的基础数据结构,同时高速缓存中的每一项记录内容都有一个定时器,根据它来删除不完整和完整的表项。可以用arp命令对高速缓存进行检查和操作。
38
4.ARP分组以特定的帧类型封装在以太网帧中,其报文格式中的操作字段区分了ARP的报文类型。
5.免费ARP是一种特殊的AR
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 工程项目归档资料目录范本
- 工程项目管理试题库答案版
- 工程项目管理模式的研究
- 外国刑法学重点
- 第7课 近代殖民活动和人口的跨地域转移 课件高二历史统编版(2019)选择性必修3 文化交流与传播
- 12化学是一门以实验为基础的科学-2023-2024学年九年级化学上册课后培优分级练(人教版)(原卷版)
- 性病病例报告要求
- 内蒙古自治区锡林郭勒盟2023-2024学年高一下学期7月期末考试语文
- 广东湛江大成中学2016-2017学年高一下学期期中物理试题
- 11-宾语从句-上海2022年中考英语一模单项选择语法分类汇编(解析)
- 《ISO 55001-2024资产管理-资产管理体系-要求》之1:“4 组织环境-4.1理解组织及其环境”解读和应用指导材料(雷泽佳-2024)
- 4《平平安安回家来》第二课时(教学设计)-一年级道德与法治上册统编版·2024
- 2024年南昌市南昌县城管委招考编外城管协管员高频500题难、易错点模拟试题附带答案详解
- 基于人工智能的智能仓储研发与应用方案
- 2024-2030年中国微孔二氧化硅保温板市场专题研究及市场前景预测评估报告
- 院内突发心跳呼吸骤停、昏迷、跌倒事件应急预案及程序
- 部编版初中语文教材目录
- 2024-2030年果酒行业市场发展分析及前景趋势与投资研究报告
- 部编版小学语文二年级上册月考达标检测试题(全册)
- 人教版道德与法治九年级上册5.2《凝聚价值追求》说课稿
- 感控知识应知应会课件
评论
0/150
提交评论