TCPIP网络与协议第4章 地址解析

整理文档很辛苦,赏杯茶钱您下走!

免费阅读已结束,点击下载阅读编辑剩下 ...

阅读已结束,您可以下载文档离线阅读编辑

资源描述

第4章地址解析互联网地址能够将不同的物理地址统一起来,采用的技术是在各种物理网络技术上覆盖一层软件(IP协议+ARP协议+RARP协议),将物理地址隐藏起来。IP地址是网络层(IP层)的地址,IP地址实现了底层网络物理地址的统一。但因特网技术并没有取消物理网络的地址,最终数据还是要在物理网络上传输,而在物理网络上传输时使用的仍是物理地址。因特网在网络层使用IP地址的同时,在物理网络中仍使用物理地址。这样一来,网络中就同时存在两套地址,而且在这两套地址之间必须建立映射关系。IP地址又称为逻辑地址。建立逻辑地址与物理地址之间映射的方法通常有两种:静态映射主要采用地址映射表格来实现逻辑地址与物理地址之间的映射。不足:地址映射表一般由人工方式建立和维护,不能适应物理地址和逻辑地址频繁变化的网络和规模庞大的网络。动态映射是在需要获得地址映射关系时利用网络通信协议直接从其他主机上获得映射信息。因特网采用了动态映射的方法进行地址映射。逻辑地址与物理地址之间的映射称为地址解析(Addressresolution)。地址解析包括两个方面的内容:从IP地址到物理地址的映射从物理地址到IP地址的映射TCP/IP用两个协议来实现这两种映射:地址解析协议(ARP)用于从IP地址到物理地址的映射反向地址解析协议(RARP)用于从物理地址到IP地址的映射。•介绍:地址解析协议和反向地址解析协议的工作原理和方法,并给出两者的报文格式及封装方法。网络接口层IP地址图4-1用协议实现动态地址映射IP数据报IPARP、RARP帧物理地址ARPRARP第4章地址解析4.1地址解析协议(ARP)4.2反向地址解析协议(RARP)4.3地址解析报文4.4代理ARP4.1地址解析协议(ARP)4.1.1地址解析原理•地址解析协议ARP使IP能够获得与某个给定IP地址相关的主机物理地址。当主机A需要向同一物理网络中的主机B发送IP数据报时,主机A的IP层要将IP数据报传给数据链路层进行帧封装,封装时要求给出目的主机的物理地址。IP层发送IP数据报时通常将产生以下事件:(1)IP调用ARP,请求IP地址为IB的目的主机B的物理地址PB。(2)ARP创建一个ARP请求帧,请求IP地址IB对应的物理地址。ARP请求帧的数据部分将包括如下信息:请求主机的物理地址PA请求主机的IP地址IA目的主机的IP地址IB(3)主机A在本地网络中广播ARP请求帧,请求帧的目的地址为(物理地址)广播地址(全“1”)。如图4-2所示。图4-2ARP请求以广播方式发送IP地址:196.168.27.20物理地址:0x02608C5A263B主机AARP请求196.168.27.19主机BIP地址:196.168.27.22物理地址:0x02608C5A1716IP地址:196.168.27.21物理地址:0x02608C5A2712IP地址:196.168.27.1物理地址:0xC0E1623418A1196.168.27.22对应的物理地址是什么?(4)该网络中的所有主机都能接收ARP请求帧,并将该帧中的目的主机IP地址IB和自己的IP地址进行比较。其地址与IB不匹配的主机,将忽略这个帧。(5)如果主机发现请求中的目的主机IP地址IB与自己的IP地址相同,就产生一个包含其物理地址PB的ARP应答帧。(6)ARP应答帧直接发回给发送ARP请求的主机A。ARP应答帧的数据部分包含以下信息:应答主机的物理地址PB;应答主机的IP地址IB;请求主机的物理地址PA;请求主机的IP地址IA图4-3ARP应答以单播方式发送IP地址:196.168.27.20物理地址:0x02608C5A263B主机AARP应答196.168.27.19主机BIP地址:196.168.27.22物理地址:0x02608C5A1716IP地址:196.168.27.21物理地址:0x02608C5A2712IP地址:196.168.27.1物理地址:0xC0E1623418A1196.168.27.22对应的物理地址是0x02608C5A1716ARP应答帧的发送如图所示。(7)利用从应答帧中得到的目的主机的物理地址PB完成IP数据报的帧封装,并将该帧发送给主机B。这里需要注意两点:1ARP请求帧在网络中是以广播方式发送的,ARP应答帧是以单播方式发送的。2目的主机必须与源主机位于同一网络。由于ARP采用的是物理网络中的广播,IP路由器不会对该广播帧进行转发,因而不能用ARP确定远程网络中主机的物理地址,而且也没有必要知道远程主机的物理地址。如果目的主机位于远程网络,IP会将数据报先发送给路由器,然后由路由器进行转发。这种情况下,IP只需要利用ARP确定路由器的物理地址即可。4.1.2ARP高速缓存•问题:如果每次在发送IP数据报前都重复上面的过程,势必会带来较大的开销。广播ARP请求不仅要耗费带宽,而且使得本地网络中的每台主机都要处理该广播帧,或忽略或给出响应帧。•解决:为了使地址解析时的广播尽可能少,每台主机都维护一个名为ARP高速缓存的本地列表。ARP高速缓存中含有最近使用过的IP地址与物理地址的映射列表。ARP请求和应答方都把对方的地址映射存储在ARP高速缓存中。•使用:当发送IP数据报需要获取目的主机的物理地址时,首先检查它的ARP高速缓存,如果ARP高速缓存中已经存在对应的映射表项,则目的主机的硬件地址可以从ARP高速缓存中获得,主机可以立即发送IP数据报。只有当ARP高速缓存中不存在与该目的IP地址对应的映射表项时,才广播ARP请求。•创建:由于ARP高速缓存位于内存中,因此每次计算机或路由器重新启动时,都必须动态地创建地址映射表。当主机收到一个ARP请求帧或响应帧时,检查它的ARP高速缓存,如果ARP高速缓存中不存在对应的映射表项,则将ARP请求帧或响应帧中的发送方的IP地址和物理地址加入到ARP高速缓存中。1.ARP高速缓存中地址映射表项的超时问题:由于IP地址与物理地址的映射关系可能因网络接口或IP地址的变化而发生变化,对于ARP高速缓存中地址映射表项都存在一个过时的问题。解决:给ARP高速缓存中的每一个表项设置一个超时值(老化时间),使得每个地址映射表项都有一个生命期。不同的TCP/IP实现使用不同的超时值,短的仅有几十秒钟,而长的则长达几个小时。超时值越短,系统中出现的ARP请求广播就越多。但若超时值过长,主机又不能及时地发现地址映射关系的改变,也可能会引起问题。•对于Windows2000/XP系统,ARP高速缓存中新加入的表项的超时值是2分钟,若在2分钟内没有被使用就会超时。如果在2分钟内被使用,那么该表项的超时值又会被重置为2分钟,超时前的每次使用都会被重置为2分钟,一直到10分钟的最长生命期限制。超过10分钟的最大限制后将被移除,并通过另一个ARP请求/回应过程获得新的对应关系。2.控制地址映射表项的超时值•对于WindowsNT计算机,可以利用注册表参数ArpCacheLife对高速缓存表项的超时值进行控制。若未设置ArpCacheLife参数,则ARP高速缓存中超时值的设置为默认值2分钟。当在注册表中添加了ArpCacheLife参数后,注册表中的值会覆盖前面提到的2分钟默认值。•另一个相关的注册表参数是ArpCacheMinReferencedLife,该参数是被重复使用的表项可以在ARP缓存中存放的最长生命期限制时间。不设置该参数就是默认值的10分钟(600秒)。•ArpCacheLife和ArpCacheMinReferencedLife参数的类型为REG_DWORD,单位为秒,值的有效范围0-0xFFFFFFFF,两个参数存放在如下的注册表项中:•HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Services\Tcpip\Parameters•如果在注册表中看不到这两个键值,说明当前使用的是默认值,即分别为120秒和600秒。若要修改,须自行创建这两个键值,修改后重启计算机后生效。•ArpCacheLife和ArpCacheMinReferencedLife的使用规则:–如果ArpCacheLife的值大于等于ArpCacheMinReferencedLife的值,则被使用和未被使用的ARP缓存表项可存储的时间都是ArpCacheLife;–如果ArpCacheLife的值小于ArpCacheMinReferencedLife的值,则未被使用的ARP缓存表项在ArpCacheLife秒的时间后过期,被使用的表项的最大生存期为ArpCacheMinReferencedLife的值。3.静态ARP表项•另一种控制地址映射表项超时值的方法是在ARP高速缓存中创建一个静态表项。静态表项是永不超时的地址映射表项。静态表项主要用在一台主机经常向另一台主机发送ARP请求的情况下。为了提高效率,减少不必要的开销,可以在ARP高速缓存中创建一个静态表项,使该地址映射表项始终存在于ARP高速缓存中,避免向某一主机发送ARP广播。•静态表项也有可能发生变化:–当主机接收到ARP广播,而且该广播所含的地址信息与当前ARP高速缓存中对应的静态表项不一致时,主机将用新收到的物理地址替代原有的物理地址,并为该表项设置超时值,使其不再是静态表项。–使用arp实用程序可以人工删除静态表项。–重新启动主机也会使静态表项丢失。•静态表项的不足之处是不能很好地适应地址映射的变化。•ARP请求也可能用单播。4.1.3ARP实用程序•通过arp实用程序,可以对ARP高速缓存进行查看和管理。ARP命令可以显示或删除ARP高速缓存中的IP地址与物理地址的映射表项,而且还可以添加静态表项。•arp命令的格式如下:arp-a[inet_addr][-Nif_addr][-v]显示地址映射表项,[]为可选项。arp-g功能与arp-a相同。arp-dinet_addr[if_addr]删除由inet_addr所指定的表项。arp-sinet_addreth_addr[if_addr]增加由inet_addr和eth_addr指定的静态表项。inet_addr为点分十进制格式的IP地址,eth_addr为十六进制形式的物理地址,物理地址的字节之间用短横线分割,例如,0C-26-1B-23-45-67。•显示计算机ARP高速缓存中的当前表项:C:\arp–aInterface:192.168.1.105---0x7Internet地址物理地址类型192.168.1.1a8-57-4e-0a-4e-5e动态192.168.1.255ff-ff-ff-ff-ff-ff静态224.0.0.2201-00-5e-00-00-16静态255.255.255.255ff-ff-ff-ff-ff-ff静态……•在ARP高速缓存中加入静态表项:C:\arp-s192.168.1.2020a-2d-23-35-66-13添加后查看结果C:\arp-aInterface:192.168.1.105---0x7Internet地址物理地址类型192.168.1.1a8-57-4e-0a-4e-5e动态192.168.1.2020a-2d-23-35-66-13静态192.168.1.255ff-ff-ff-ff-ff-ff静态224.0.0.2201-00-5e-00-00-16静态255.255.255.255ff-ff-ff-ff-ff-ff静态……•删除高速缓存中的表项:C:\arp-d192.168.1.202C:\arp-aInterface:192.168.1.105---0x7Internet地址物理地址类型192.168.1.1a8-57-4e-0a-4e-5e动态192.168.1.255ff-ff-ff-ff-ff-ff静态224.0.0.2201-00-5e-00-00-16静态255.255.255.255ff-ff-ff-ff-ff-ff静态……•Arp实用程序只能

1 / 67
下载文档,编辑使用

©2015-2020 m.777doc.com 三七文档.

备案号:鲁ICP备2024069028号-1 客服联系 QQ:2149211541

×
保存成功