IP协议及路由选择课件

上传人:博****1 文档编号:592873075 上传时间:2024-09-23 格式:PPT 页数:144 大小:1.84MB
返回 下载 相关 举报
IP协议及路由选择课件_第1页
第1页 / 共144页
IP协议及路由选择课件_第2页
第2页 / 共144页
IP协议及路由选择课件_第3页
第3页 / 共144页
IP协议及路由选择课件_第4页
第4页 / 共144页
IP协议及路由选择课件_第5页
第5页 / 共144页
点击查看更多>>
资源描述

《IP协议及路由选择课件》由会员分享,可在线阅读,更多相关《IP协议及路由选择课件(144页珍藏版)》请在金锄头文库上搜索。

1、第第5 5章章 IP IP协议和路由选择协议和路由选择广东韶关学院信息工程学院广东韶关学院信息工程学院骆耀祖骆耀祖1本章讨论本章讨论TCP/IPTCP/IP体系结构的网际层协议,介绍了体系结构的网际层协议,介绍了IP IP 地址子网和子网掩码等概念。本章还讨论了地址子网和子网掩码等概念。本章还讨论了路由选择及其原理,介绍了常用的几种动态选路路由选择及其原理,介绍了常用的几种动态选路协议以及无类型域间选路方面的知识。在设计网协议以及无类型域间选路方面的知识。在设计网络方案时,对络方案时,对IPIP协议有较深入的了解,将会有助协议有较深入的了解,将会有助于网络的规划设计。于网络的规划设计。5.1网

2、际层协议网际层协议在在TCP/IPTCP/IP协议族中,网际层大致对应协议族中,网际层大致对应OSIOSI模型的模型的网络层。网际层最主要的协议是网络层。网际层最主要的协议是IPIP协议,其基本协议,其基本功能是寻址和分片。功能是寻址和分片。IPIP协议处理了地址的问题,协议处理了地址的问题,将多个分组交换网络连接起来,在源地址和目的将多个分组交换网络连接起来,在源地址和目的地址之间传送数据报。地址之间传送数据报。IPIP提供对数据大小的重新提供对数据大小的重新组装功能,以适应不同网络对数据报大小的要求。组装功能,以适应不同网络对数据报大小的要求。5.1.1IP地址地址每台每台TCP/IPTC

3、P/IP主机由一个逻辑主机由一个逻辑IPIP地址确定。在地址确定。在Ipv4Ipv4中,每中,每个个IPIP地址的长度为地址的长度为3232位即位即4 4字节,由四个八位域(叫作字节,由四个八位域(叫作octetsoctets)组成。)组成。IPIP地址有二进制表示和点分十进制表示地址有二进制表示和点分十进制表示两种表示形式。使用点分十进制表示时,表示为两种表示形式。使用点分十进制表示时,表示为4 4个个0-0-255255之间的十进制数,每个之间的十进制数,每个OctetsOctets用句点分开。用句点分开。IPIP地址由网络号和主机号两部分组成。其中网络号标识地址由网络号和主机号两部分组成

4、。其中网络号标识一个物理的网络,同一个网络上所有主机具有同一个网一个物理的网络,同一个网络上所有主机具有同一个网络号,该号在互联网中是唯一的;而主机号确定网络中络号,该号在互联网中是唯一的;而主机号确定网络中的一个工作站、服务器、路由器或其它的一个工作站、服务器、路由器或其它TCP/IPTCP/IP主机。对主机。对于同一个网络号来说,主机号是唯一的。于同一个网络号来说,主机号是唯一的。1.IP地址类型地址类型将将IP地址按一定范围分配,称为将地址按一定范围分配,称为将IP地址分类。地址分类。图图5.1给出了四类给出了四类IP地址的结构。地址的结构。A A类地址:类地址:A A 类地址用于非常大

5、的网络或相关网络的集合,类地址用于非常大的网络或相关网络的集合,拥有很大数量的主机,最高位为拥有很大数量的主机,最高位为0 0,紧跟的,紧跟的7 7位表示网络位表示网络号,余号,余2424位表示主机号,总共允许有位表示主机号,总共允许有126126个网络。个网络。B B类地址:类地址:B B 类地址用于超过类地址用于超过 254 254 个节点(但少于个节点(但少于6553465534个节点)的中等规模和大规模的网络中,最高两位总被个节点)的中等规模和大规模的网络中,最高两位总被置于二进制的置于二进制的1010,允许有,允许有1638416384个网络。因为个网络。因为 B B 类地址类地址的

6、数量有限,通常只能用给一个组织分配几个的数量有限,通常只能用给一个组织分配几个C C类地址的类地址的方法代替分配方法代替分配B B类地址。类地址。C C类地址:较小的组织可采用类地址:较小的组织可采用C C 类地址。类地址。C C 类地址高三位类地址高三位被置为二进制的被置为二进制的110110,允许大约,允许大约200200万个网络。每个网络万个网络。每个网络可有可有254254个节点。个节点。D类地址:被用于多播组用户,高四位总被置为类地址:被用于多播组用户,高四位总被置为1110,余,余下的位用于标明客户机所属的组。下的位用于标明客户机所属的组。E类地址则被保留用类地址则被保留用于实验和

7、开发。于实验和开发。表表5.1各各IP类的地址范围类的地址范围2. “保留”IP 地址因特网赋号管理局(因特网赋号管理局(Internet Assigned Internet Assigned Numbers AuthorityNumbers Authority,IANAIANA)已经在)已经在 A A、B B 和和 C C 类地址中保留了一些网络号,无需注册就可以使类地址中保留了一些网络号,无需注册就可以使用这些地址。表用这些地址。表5.2是保留是保留IP IP 地址的范围。对于地址的范围。对于那些完全没有连接到因特网的网络,可从使用这那些完全没有连接到因特网的网络,可从使用这些保留的网络地

8、址。如果要实现对另一个网络些保留的网络地址。如果要实现对另一个网络(如因特网)的访问,可将某个主机用作网关。(如因特网)的访问,可将某个主机用作网关。本地网络通过内部本地网络通过内部IP IP 地址来访问该网关,而外地址来访问该网关,而外部世界则通过其正式注册的地址(由互联网服务部世界则通过其正式注册的地址(由互联网服务供应商分配)知道该网关。供应商分配)知道该网关。表表5.2保留保留地址地址3. 特殊的IP地址在在 TCP/IP TCP/IP 网络中有几个地址具有特殊含义:网络中有几个地址具有特殊含义:以零开头的地址表示当前网络中的本地节点。例如,以零开头的地址表示当前网络中的本地节点。例如

9、,0.0.0.23 0.0.0.23 指当前网络中的指当前网络中的 23 23 号工作站。地址号工作站。地址 0.0.0.0 0.0.0.0 指当前工作站。指当前工作站。 将地址上所有位全置为将地址上所有位全置为 1 1(也就是值(也就是值 255 255)代表)代表“所有所有地址地址”。所以,。所以,192.18.255.255 192.18.255.255 意味着将消息发送给意味着将消息发送给 192.18. 192.18. 网络上的所有节点;类似地,网络上的所有节点;类似地,255.255.255.255 255.255.255.255 意味着将消息发送给因特网上的每个节点。这些地址用意

10、味着将消息发送给因特网上的每个节点。这些地址用于多点广播消息和服务公告。于多点广播消息和服务公告。 因此,给系统分配节点号时,不要使用因此,给系统分配节点号时,不要使用 0 0 或或 255 255,它们,它们都是保留数字,具有特殊含义。都是保留数字,具有特殊含义。在进行故障排除和网络诊断时,以在进行故障排除和网络诊断时,以 127 127 开头的开头的地址非常重要。形式上将网络地址块地址非常重要。形式上将网络地址块 127.x.x.x 127.x.x.x 定义为定义为 A A 类地址,保留了该地址块用于网络软类地址,保留了该地址块用于网络软件测试以及本机进程间通信,称为回送地址件测试以及本机

11、进程间通信,称为回送地址(loopbackloopback)。根据惯例,大多数系统把)。根据惯例,大多数系统把IPIP地址地址127.0.0.1127.0.0.1分配给这个接口,并命名为分配给这个接口,并命名为localhostlocalhost。一个传给内部回送地址的一个传给内部回送地址的IPIP数据报不能在任何网数据报不能在任何网络上出现。主机和网关不能为该地址广播任何寻络上出现。主机和网关不能为该地址广播任何寻径信息。径信息。5.1.2IP协议的特征协议的特征和和基本功能基本功能1. IP协议的特征(1 1)IPIP协议是无连接的协议是无连接的无需征得目的方无需征得目的方“同意同意” ”

12、 即可向目的方发送即可向目的方发送IPIP数据报。数据报。(2 2)IPIP协议的数据报传送服务是不可靠的协议的数据报传送服务是不可靠的因为省略了复杂的可靠性传输机制,所以因为省略了复杂的可靠性传输机制,所以IPIP协议能尽量协议能尽量高效率地进行传送,减轻了网关的负担,提高了网关的高效率地进行传送,减轻了网关的负担,提高了网关的吞吐率。吞吐率。(3 3)IPIP协议隐藏了网络细节协议隐藏了网络细节IPIP协议不关心具体物理网络是如何连接的,各个具体物协议不关心具体物理网络是如何连接的,各个具体物理网络所做的工作是将理网络所做的工作是将IPIP数据报转换成自己的协议所要数据报转换成自己的协议所

13、要求的格式发送到网络上;将网络上接收的数据报提交给求的格式发送到网络上;将网络上接收的数据报提交给IPIP,由,由IPIP进行分析和路由处理。对各种具体物理网络协进行分析和路由处理。对各种具体物理网络协议来说,议来说,IPIP数据报只不过是用户数据而已。数据报只不过是用户数据而已。2.IP的两个基本功能的两个基本功能IPIP的两个基本功能是寻址和分片。的两个基本功能是寻址和分片。IPIP可以根据数可以根据数据报首部中包括的目的地址将数据报传送到目的据报首部中包括的目的地址将数据报传送到目的地址,在此过程中地址,在此过程中IPIP负责选择传送的道路,这种负责选择传送的道路,这种选择道路称为路由功

14、能。如果有些网络内只能传选择道路称为路由功能。如果有些网络内只能传送小数据报,送小数据报,IPIP可以将数据报重新组装并在报首可以将数据报重新组装并在报首部字段内注明。部字段内注明。IPIP模块中包括这些基本功能,这模块中包括这些基本功能,这些模块存在于网络中的每台主机和网关上,而且些模块存在于网络中的每台主机和网关上,而且这些模块(特别在网关上)有路由选择和其它服这些模块(特别在网关上)有路由选择和其它服务功能。对务功能。对IPIP来说,数据报之间没有什么联系。来说,数据报之间没有什么联系。图图5.2传输路径图传输路径图(1)寻址IPIP主要处理地址的问题。主要处理地址的问题。IPIP模块将

15、模块将IPIP地址和本地网络地地址和本地网络地址加以映射,把名字和地址进行映射的工作由上层协议址加以映射,把名字和地址进行映射的工作由上层协议完成。完成。IPIP支持广域网和本地网接口技术,使用网络设备支持广域网和本地网接口技术,使用网络设备接口规范接口规范NDISNDIS向网络接口层提交帧。向网络接口层提交帧。在将网络地址和本地网络地址进行映射时,必须考虑在在将网络地址和本地网络地址进行映射时,必须考虑在网络主机地址和网络网络主机地址和网络/ /主机接口之间的映射。即有些主机主机接口之间的映射。即有些主机可能使用几个不同的可能使用几个不同的IPIP地址(可以把本地网络地址理解地址(可以把本地

16、网络地址理解为为MACMAC地址),例如某一台主机有几个处理端口,而每个地址),例如某一台主机有几个处理端口,而每个端口都有几个逻辑的端口都有几个逻辑的IPIP地址的情况,允许几个地址的情况,允许几个IPIP地址对地址对应一个接口。同时还应该考虑到一台主机有多个处理接应一个接口。同时还应该考虑到一台主机有多个处理接口,对于从不同路径收到的信息应该看作来自同一个口,对于从不同路径收到的信息应该看作来自同一个IPIP地址。地址。(2)分片和重组网络的最大传输单元网络的最大传输单元 MTU MTU(Maximum Transfer UnitMaximum Transfer Unit)是)是由物理网络

17、硬件决定的,它规定了在网络中传输的物理由物理网络硬件决定的,它规定了在网络中传输的物理帧的最大长度。任何时候帧的最大长度。任何时候IPIP层接收到一份要发送的层接收到一份要发送的IPIP数数据报时,它要判断向本地哪个接口发送数据(路由选择)据报时,它要判断向本地哪个接口发送数据(路由选择),并查询该接口获得其,并查询该接口获得其MTUMTU。IPIP把把MTUMTU与数据报长度进行与数据报长度进行比较,如果需要则进行分片。分片可以发生在原始发送比较,如果需要则进行分片。分片可以发生在原始发送端主机上,也可以发生在中间路由器上。端主机上,也可以发生在中间路由器上。与由硬件决定的与由硬件决定的 M

18、TU MTU不同,不同,IPIP数据报大小是由软件所决数据报大小是由软件所决定的,在一定范围内可以任意选择。这样,可以通过选定的,在一定范围内可以任意选择。这样,可以通过选择适当的择适当的IPIP数据报大小来适应互联网中不同的数据报大小来适应互联网中不同的 MTU MTU。然而,假如以最大然而,假如以最大 MTU MTU作为数据报大小的上限,作为数据报大小的上限,则在则在 MTU MTU较小的网络上不能实现数据封装;假如较小的网络上不能实现数据封装;假如以最小以最小MTUMTU作为数据报的上限,则在作为数据报的上限,则在 MTU MTU较大的较大的网络上必然造成硬件能力的浪费。因此,网络上必然

19、造成硬件能力的浪费。因此,IPIP协议协议在确定数据报大小时,简单地以在确定数据报大小时,简单地以“方便方便”为原则。为原则。也就是说,在不超过版本本身规定的数据报大小也就是说,在不超过版本本身规定的数据报大小的前提下,的前提下,IPIP协议选择当前最合适的数据报大小协议选择当前最合适的数据报大小(所谓(所谓“合适合适”指在信源机所在物理网络上能进指在信源机所在物理网络上能进行最大限度封装)。同时,行最大限度封装)。同时,IPIP协议提供分片机制,协议提供分片机制,在在 MTU MTU较小的网络上,将数据报分成若干较小的较小的网络上,将数据报分成若干较小的部分进行传输。这种较小的部分叫作片。部

20、分进行传输。这种较小的部分叫作片。图图5.3数据报的分片情况数据报的分片情况当当IPIP数据报被分片后,每一片都成为一个分组,数据报被分片后,每一片都成为一个分组,具有自己的具有自己的IPIP首部,并在选择路由时与其他分组首部,并在选择路由时与其他分组独立。这样,当数据报的这些片到达目的端时有独立。这样,当数据报的这些片到达目的端时有可能会失序,但是在可能会失序,但是在IPIP首部中有足够的信息让接首部中有足够的信息让接收端能正确组装这些数据报片。收端能正确组装这些数据报片。MTUMTU大小的选择可以根据网络通信线路的质量来大小的选择可以根据网络通信线路的质量来考虑。如果通信线路的质量好,则可

21、以选择考虑。如果通信线路的质量好,则可以选择 MTU MTU较大一些,以提高网络效率。如果通信线路质量较大一些,以提高网络效率。如果通信线路质量较差,经常出现丢包或数据错误的情况,则较差,经常出现丢包或数据错误的情况,则 MTU MTU要小一些,一旦在需要数据重传时,重传的数据要小一些,一旦在需要数据重传时,重传的数据量会小一些,减轻了网络的负担。量会小一些,减轻了网络的负担。5.1.3IP地址的规划地址的规划如果只是设计企业或行业内部网,可采用保留如果只是设计企业或行业内部网,可采用保留IPIP地址。地址。如果要与其它网络互联,应该与其它网络的管理机构做如果要与其它网络互联,应该与其它网络的

22、管理机构做好好IPIP地址规划的协调工作。如果所设计的网络要连接地址规划的协调工作。如果所设计的网络要连接InternetInternet,则应向,则应向Internet Internet 服务提供商服务提供商ISPISP(Internet Internet Service ProviderService Provider)申请)申请IPIP地址。地址。在在IPIP地址规划工作中,一个网络实际上可能会有多个物地址规划工作中,一个网络实际上可能会有多个物理网段,把这些网段称之为子网。每个子网使用不同的理网段,把这些网段称之为子网。每个子网使用不同的网络号或子网号。划分网络的原因可能是:联网技术的

23、网络号或子网号。划分网络的原因可能是:联网技术的电气(物理层)限制、为了将网络功能逻辑地分成多个电气(物理层)限制、为了将网络功能逻辑地分成多个工作组、减少网络段负载或是需要用高速线路连接远程工作组、减少网络段负载或是需要用高速线路连接远程位置。所谓位置。所谓“划分子网划分子网”就是将大型的、实际的网络分就是将大型的、实际的网络分成较小的逻辑网络的过程。成较小的逻辑网络的过程。1.确定网络中的物理段数量即子网数确定网络中的物理段数量即子网数(1)以太网无论是采用同轴电缆还是采用双绞线,凡是通过集线器无论是采用同轴电缆还是采用双绞线,凡是通过集线器HUBHUB或以太网或以太网交换机相连接,能直接

24、相互通信的网上设备视为处在同一网络中。交换机相连接,能直接相互通信的网上设备视为处在同一网络中。(2)点对点网络点对点网络最常见的是点对点网络最常见的是DDNDDN网络或拨号网络,其上多运行网络或拨号网络,其上多运行SLIPSLIP、PPPPPP协议,这时候连线两端的两台机器构成一个独立的网络。图协议,这时候连线两端的两台机器构成一个独立的网络。图 5.4 5.4中中有三台机器,其中一台机器的两个串行口与另外一台机器相连,采有三台机器,其中一台机器的两个串行口与另外一台机器相连,采用用SLIPSLIP协议,这三台机器构成两个网络。协议,这三台机器构成两个网络。(3)X.25网络/帧中继网络虽然

25、虽然X.25/FRX.25/FR用户端设备(用户端设备(DTEDTE)都是接入电信系)都是接入电信系统的分组交换机,可以将其视为处在同一个网络统的分组交换机,可以将其视为处在同一个网络上(当然也可看成不同网络,视用户自己的需求上(当然也可看成不同网络,视用户自己的需求而定),因为不需要而定),因为不需要IPIP寻径,只需通过物理地址寻径,只需通过物理地址即可连接。即可连接。(4)互联网络的规划则该互联网络共有则该互联网络共有4 4个网络。然后就可根据网络个网络。然后就可根据网络号为设备分配号为设备分配IPIP地址。假设使用地址。假设使用A A类地址,则:类地址,则:5.1.4子网和子网掩码子网

26、和子网掩码上一节对互联网络上一节对互联网络IPIP地址的规划的讨论,主要是因为使用高速线路地址的规划的讨论,主要是因为使用高速线路连接远程位置或受到网络的电气(物理层)限制而划分网络的过程。连接远程位置或受到网络的电气(物理层)限制而划分网络的过程。在局域网中,有时为了将网络功能逻辑地分成多个工作组或为了减在局域网中,有时为了将网络功能逻辑地分成多个工作组或为了减少网络段的负载,常常也将大型的、实际的网络分成较小的逻辑网少网络段的负载,常常也将大型的、实际的网络分成较小的逻辑网络。网段划分的结果是使整个网络变成由一些小型子网块组成的网络。网段划分的结果是使整个网络变成由一些小型子网块组成的网络

27、,从而易于管理。这些较小的子网之间的通信通过网关和路由器络,从而易于管理。这些较小的子网之间的通信通过网关和路由器进行。如图进行。如图5.65.6所示。所示。IPIP地址的网络部分由地址的网络部分由IPIP地址类的网络位和子网信地址类的网络位和子网信息位组成。从表示主机的地址位中借用若干位表息位组成。从表示主机的地址位中借用若干位表示子网。例如要将一个示子网。例如要将一个 B B 类网络分成类网络分成 64 64 个单个单独的子网,需要借用主机地址的独的子网,需要借用主机地址的6 6位表示子网。位表示子网。B B类网络表示网络部分的位数是类网络表示网络部分的位数是 16 16,再加上子网,再加

28、上子网部分的部分的 6 6 位,表示网络的共有位,表示网络的共有 22 22 位。这种划位。这种划分的初步结果是有分的初步结果是有 64-2=62 64-2=62个网络,每个网络个网络,每个网络 1024-2=10221024-2=1022个节点。个节点。1. Internet地址解释TCP/IPTCP/IP上的每台主机都需要一个子网掩码。它是一个上的每台主机都需要一个子网掩码。它是一个4 4字节的地址,字节的地址,用来封装或用来封装或“屏蔽屏蔽”IPIP地址的一部分,以区分网络号和主机号。地址的一部分,以区分网络号和主机号。设置子网掩码实际上就是确定网络地址在何处结束以及主机地址在设置子网掩

29、码实际上就是确定网络地址在何处结束以及主机地址在何处开始。子网掩码是由全为何处开始。子网掩码是由全为“1 1”的网络部分和全为零的主机部信的网络部分和全为零的主机部信息组成。将息组成。将IPIP地址中的每一位与子网掩码中相应的位按逻辑地址中的每一位与子网掩码中相应的位按逻辑“与与”作比较,如果发现源作比较,如果发现源IPIP地址和目的地址和目的IPIP地址相地址相“与与”的结果相同,的结果相同,IPIP协议就知道数据报属于本地网上的某台主机;否则数据报将被送到协议就知道数据报属于本地网上的某台主机;否则数据报将被送到路由器上。路由器上。默认的子网掩码值用于一个还没有划分子网的网络。在它的默认的

30、子网掩码值用于一个还没有划分子网的网络。在它的4 4个字节个字节里,所有对应网络号的位都被置为里,所有对应网络号的位都被置为1 1,于是每个八位体的十进制值都,于是每个八位体的十进制值都是是255255;所有对就主机号的位都置为;所有对就主机号的位都置为0 0。例如:。例如:C C类网地址类网地址192.168.0.1192.168.0.1和相应的默认掩码是和相应的默认掩码是255.255.255.0255.255.255.0。当网络还没有划。当网络还没有划分为子网时,可以使用默认的子网掩码;当网络被划分为若干个子分为子网时,可以使用默认的子网掩码;当网络被划分为若干个子网时,就要使用自定义的

31、子网掩码。网时,就要使用自定义的子网掩码。2. 定义子网掩码确定了子网的划分方法后,就可按如下步骤定义确定了子网的划分方法后,就可按如下步骤定义子网掩码:子网掩码:(1 1)确定子网的数量及每子网的主机数,并将)确定子网的数量及每子网的主机数,并将子网的数量转换成二进制数。子网的数量转换成二进制数。(2 2)计算物理网段数(子网数)的二进制位数。)计算物理网段数(子网数)的二进制位数。(3 3)以高位顺序(从左到右)将这个反码转换)以高位顺序(从左到右)将这个反码转换成相应的十进制值。成相应的十进制值。3. 确定子网号子网号与子网掩码的位数相同。子网号与子网掩码的位数相同。(1 1)列出子网号

32、按高到低的顺序使用的位数。)列出子网号按高到低的顺序使用的位数。(2 2)将最低的一位)将最低的一位1 1转换成十进制,用这个值来定义子转换成十进制,用这个值来定义子网的增量。网的增量。(3 3)用这个增量迭加从)用这个增量迭加从0 0开始的子网号,直到下一个值开始的子网号,直到下一个值为为256256。4. 确定子网中的主机号范围从上面的例子看出,一旦定义了子网号,就已经确定了从上面的例子看出,一旦定义了子网号,就已经确定了每个子网的主机号范围。在做每次增量后得出的值表明每个子网的主机号范围。在做每次增量后得出的值表明了子网中主机号范围的起始值。了子网中主机号范围的起始值。5.子网示例子网示

33、例一个一个 C C 类网类网192.168.1.0由下列信息组成:由下列信息组成:NNNNNNNN.NNNNNNNN.NNNNNNNN.HHHHHHHHNNNNNNNN.NNNNNNNN.NNNNNNNN.HHHHHHHH其中:其中:N = N = 网络,网络,H = H = 主机。每一位置表示主机。每一位置表示 32 32 位地址空间中的一位地址空间中的一位。如果将这个位。如果将这个 C C 类网取出类网取出m m位给子网,可形成位给子网,可形成2 2m m-2-2个子网。因此,个子网。因此,当当m=2m=2时可形成时可形成2 2个子网。掩码如下:个子网。掩码如下:11111111.1111

34、1111.11111111.1100000011111111.11111111.11111111.11000000如果用十进制数和点符号表示(即如果用十进制数和点符号表示(即点分四组(点分四组(dotted quaddotted quad)这个)这个地址,则子网掩码是地址,则子网掩码是 255.255.255.192 255.255.255.192。该掩码用于这个特定网络。该掩码用于这个特定网络中所有子网上的节点之间的通信。中所有子网上的节点之间的通信。相反,如果从相反,如果从 IP IP 地址的主机部分取出三位,则其网络掩码如下:地址的主机部分取出三位,则其网络掩码如下:11111111.1

35、1111111.11111111.1110000011111111.11111111.11111111.11100000该子网掩码是该子网掩码是 255.255.255.224 255.255.255.224。可以使用的子网络有。可以使用的子网络有6 6个个(192.168.1.0和和192.168.1.224与原来的网络或子网掩码相同,与原来的网络或子网掩码相同,不能不能使用)。每一个网络可有使用)。每一个网络可有3030个节点。(本应该是个节点。(本应该是 32 32 个,但由于全个,但由于全为为 1 1 和全为和全为 0 0 是不合法的主机地址,所以不能使用)。是不合法的主机地址,所以不

36、能使用)。表表5.3子网示例的可用地址子网示例的可用地址5.1.5可变长子网掩码可变长子网掩码上面的子网划分有一个缺点:子网掩码一经选定,网络上面的子网划分有一个缺点:子网掩码一经选定,网络地址的数目被限制在一个固定的范围内。如果一个组织地址的数目被限制在一个固定的范围内。如果一个组织有几个相对大的子网,而又有一些相对较小的子网,每有几个相对大的子网,而又有一些相对较小的子网,每个子网大概只有几台计算机。如果将一个个子网大概只有几台计算机。如果将一个C C类地址分成类地址分成6 6个子网(每个子网可以包含个子网(每个子网可以包含3030台计算机)。大的子网基台计算机)。大的子网基本上完全利用了

37、本上完全利用了IPIP地址范围,但是小的子网却造成了许地址范围,但是小的子网却造成了许多多IPIP地址的浪费。地址的浪费。为了避免为了避免IPIP浪费,出现了允许应用不同大小的子网掩码浪费,出现了允许应用不同大小的子网掩码来对来对IPIP地址空间进行子网划分的解决方案。这种新的方地址空间进行子网划分的解决方案。这种新的方案就叫作可变长子网掩码案就叫作可变长子网掩码VLSMVLSM(Variable Length Variable Length Subnet MaskingSubnet Masking)。)。VLSMVLSM用一个十分直观的方法来表示,那就是在用一个十分直观的方法来表示,那就是在

38、IPIP地址后地址后面加上面加上“/ /网络号及子网络号编址位数网络号及子网络号编址位数”来表示。例如:来表示。例如:193.168.125.0/27193.168.125.0/27,就表示前,就表示前2727位表示网络号。位表示网络号。5.1.6下一代的下一代的IP由由 IPv4 IPv4 到到IPv6IPv6的改变主要集中在以下几个方面:的改变主要集中在以下几个方面:(1)地址容量的扩展IPv6IPv6把把 IP IP 地址的大小从地址的大小从3232位增至位增至128128位,可以支持更多的地址层次,位,可以支持更多的地址层次,更大数量的节点,地址自动配置更简单。更大数量的节点,地址自动

39、配置更简单。(2)首部格式的简化 一些一些 IPv4 IPv4 首部字段被删除或者成为可选字段,减少了一般情况下首部字段被删除或者成为可选字段,减少了一般情况下数据报的处理开销以及数据报的处理开销以及IPv6IPv6首部占用的带宽。首部占用的带宽。 (3)支持扩展和选项的改进IP IP 首部选项编码方式的修改导致更加高效的传输,在选项长度方面首部选项编码方式的修改导致更加高效的传输,在选项长度方面更少的限制,以及将来引入新的选项时更强的适应性。更少的限制,以及将来引入新的选项时更强的适应性。 (4)数据流标签的能力加入一个新的能力,使得那些发送者要求特殊处理的属于特别的传加入一个新的能力,使得

40、那些发送者要求特殊处理的属于特别的传输输“流流”的数据报可贴上的数据报可贴上“标签标签”,如非默认质量服务或,如非默认质量服务或 “ “实时实时”服务。服务。 (5)认证和保密的能力 在在IPv6IPv6中说明了为支持认证、数据完整性以及数据保密(可选)的中说明了为支持认证、数据完整性以及数据保密(可选)的扩展。扩展。2. IPv4向向IPv6的过渡的过渡尽管尽管IPv6IPv6比比IPv4IPv4具有明显的先进性,在短时间内要将具有明显的先进性,在短时间内要将InternetInternet和各个企业网络中的所有系统全部从和各个企业网络中的所有系统全部从IPv4IPv4升级升级到到IPv6I

41、Pv6是不可能的。为此,做为是不可能的。为此,做为IPv6IPv6研究工作的一个部研究工作的一个部分,分,IETFIETF制定了推动制定了推动IPv4IPv4向向IPv6IPv6过渡的方案,其中包括过渡的方案,其中包括三个机制:兼容三个机制:兼容IPv4IPv4的的IPv6IPv6地址、双地址、双IPIP协议栈和基于协议栈和基于IPv4IPv4通道的通道的IPv6IPv6。(1)1)兼容兼容IPv4IPv4的的IPv6IPv6地址是一种特殊的地址是一种特殊的IPv6IPv6单点广单点广播地址,一个播地址,一个 IPv6 IPv6节点与一个节点与一个IPv4IPv4节点可以使用这种地节点可以使用

42、这种地址在址在IPv4IPv4网络中通信。这种地址是由网络中通信。这种地址是由9696个个0 0位加上位加上3232位位IPv4IPv4地址组成的,例如,假设某节点的地址组成的,例如,假设某节点的IPv4IPv4地址是地址是192.56.1.1192.56.1.1,那么兼容,那么兼容IPv4IPv4的的IPv6IPv6地址就是:地址就是: 0 0: 0 0:0 0:0 0:0 0:0 0:C038C038:101101。(2)2)双双IPIP协议栈是在一个系统(如一个主机或一个路由协议栈是在一个系统(如一个主机或一个路由器)中同时使用器)中同时使用IPv4IPv4和和IPv6IPv6两个协议栈

43、。这类系统既拥两个协议栈。这类系统既拥有有IPv4IPv4地址,也拥有地址,也拥有IPv6IPv6地址,因而可以收发地址,因而可以收发IPv4IPv4和和IPv6IPv6两种两种IPIP数据报。也就是用两套,需要使用数据报。也就是用两套,需要使用IPv4IPv4的时的时候就使用候就使用IPv4IPv4,需要使用,需要使用IPv6IPv6的时候就使用的时候就使用IPv6IPv6。(3) 3) 基于基于IPv4IPv4通道的通道的IPv6IPv6是一种更为复杂的技术,是一种更为复杂的技术,它是将整个它是将整个IPv6IPv6数据报封装在数据报封装在IPv4IPv4数据报中,由此实现数据报中,由此实

44、现在当前的在当前的IPv4IPv4网络(如网络(如InternetInternet)中)中IPv6IPv6节点与节点与IPv4IPv4节节点之间的点之间的IPIP通信。基于通信。基于IPv4IPv4通道的通道的IPv6IPv6实现过程分为三实现过程分为三个步骤:封装、解封和通道管理。封装,是指由通道起个步骤:封装、解封和通道管理。封装,是指由通道起始点创建一个始点创建一个IPv4IPv4首部,将首部,将IPv6IPv6数据报装入一个新的数据报装入一个新的IPv4IPv4数据报中。解封,是指由通道终节点移去数据报中。解封,是指由通道终节点移去IPv4IPv4首部,首部,还原原始的还原原始的IPv

45、6IPv6数据报。通道管理,是指由通道起始点数据报。通道管理,是指由通道起始点维护通道的配置信息。维护通道的配置信息。当进行通信的两个主机都有兼容当进行通信的两个主机都有兼容IPv4IPv4的的IPv6IPv6地址地址时,数据发送方主机将建立一个主机对主机通道。时,数据发送方主机将建立一个主机对主机通道。通道起始点(数据发送方主机)确定数据接收方通道起始点(数据发送方主机)确定数据接收方主机就是通道终节点,并自动从其兼容主机就是通道终节点,并自动从其兼容I Pv4I Pv4的的IPv6IPv6地址中抽取后地址中抽取后3232个地址位以确定通道终节点个地址位以确定通道终节点的的IPv4IPv4地

46、址,这种类型的通道被称为自动通道地址,这种类型的通道被称为自动通道(automated tunnelingautomated tunneling)。)。双双IPIP协议栈和基于协议栈和基于IPv4IPv4的的IPv6IPv6网络使网络使IPv4IPv4网网络能够以可控的速度向络能够以可控的速度向IPv6IPv6迁移。在开始向迁移。在开始向IPv6IPv6过渡之前,首先必须设置一个同时支持过渡之前,首先必须设置一个同时支持IPv4IPv4和和IPv6IPv6的新的的新的DNSDNS服务器。服务器。5.2地址解析与动态主机配置地址解析与动态主机配置IPIP地址将网络地址隐藏起来,使地址将网络地址隐

47、藏起来,使IPIP表现出统一的表现出统一的地址格式。但在实际进行通讯时,地址格式。但在实际进行通讯时,IPIP地址是不能地址是不能被物理层所识别的,物理网络所使用的依然是物被物理层所识别的,物理网络所使用的依然是物理地址。因此必须对地址进行转换或映射。地址理地址。因此必须对地址进行转换或映射。地址之间的映射叫地址解析(之间的映射叫地址解析(resolutionresolution)。地址解)。地址解析包括从析包括从IPIP地址到物理地址的映射和从物理地址地址到物理地址的映射和从物理地址到到IPIP地址的映射。地址的映射。5.2.1物理地址解析物理地址解析数据链路如以太网或令牌环网都有自己的寻址

48、机数据链路如以太网或令牌环网都有自己的寻址机制(常常为制(常常为48bit48bit地址),这是使用数据链路的地址),这是使用数据链路的任何网络层都必须遵从的。要在网络上通信,主任何网络层都必须遵从的。要在网络上通信,主机就必须知道对方主机的硬件地址。所谓地址解机就必须知道对方主机的硬件地址。所谓地址解析就是将析就是将32bit32bit的的IPIP地址映射为数据链路层使用地址映射为数据链路层使用的硬件地址的机制和过程。地址解析协议的硬件地址的机制和过程。地址解析协议ARPARP(Address Resolution ProtocolAddress Resolution Protocol)把)

49、把IPIP地址地址解析成解析成MACMAC地址(例如地址(例如48bit48bit的以太网地址)。的以太网地址)。1.解释本地解释本地IP地址地址在在图在在图 5.7 5.7中的网络上,中的网络上,A A(信源机)要与(信源机)要与B B(信宿机)进行通信,(信宿机)进行通信,但不知道但不知道B B的物理地址。的物理地址。A A主机利用主机利用ARPARP协议,将本地网络中的协议,将本地网络中的B B主机主机的的IPIP地址解析为硬件地址。步骤如下:地址解析为硬件地址。步骤如下:(1 1)A A主机初始化主机初始化ARPARP请求。当确定是本地请求。当确定是本地IPIP地址时,源主机在地址时,

50、源主机在ARPARP缓存中查找目标主机的硬件地址。缓存中查找目标主机的硬件地址。(2 2)若主机)若主机A A的的ARPARP缓存内无此信息,则主机缓存内无此信息,则主机A A会发送一个请求会发送一个请求ARPARP的的广播包,此包内包含着其欲通信的主机的广播包,此包内包含着其欲通信的主机的IPIP地址,也就是主机地址,也就是主机B B的的IPIP地址。地址。(3 3)本地网上的每个主机都收到广播并寻找相符的)本地网上的每个主机都收到广播并寻找相符的IPIP地址。地址。(4 4)当主机)当主机B B收到此广播包后,会将自己的硬件地址利用响应收到此广播包后,会将自己的硬件地址利用响应ARPARP

51、的的包传送给主机包传送给主机A A,并更新自己的,并更新自己的ARPARP缓存,也就是将主机缓存,也就是将主机A A的的IPIP地址地址/ /硬件地址保存起来,以供日后使用。硬件地址保存起来,以供日后使用。(5 5)源主机)源主机A A在得到主机在得到主机B B的硬件地址后,就可以与主机的硬件地址后,就可以与主机B B通信,同通信,同时也会将主机时也会将主机B B的的IPIP地址和硬件地址保存到自己的地址和硬件地址保存到自己的APRAPR缓存内。缓存内。2.解析远程解析远程IP地址地址(1 1)通信请求初始化时,得知目标)通信请求初始化时,得知目标IPIP地址为远程地址。源主机在本地址为远程地

52、址。源主机在本地路由表中查找,若无,源主机认为是默认网关的地路由表中查找,若无,源主机认为是默认网关的IPIP地址。在地址。在ARPARP缓缓存中查找符合该网关记录的存中查找符合该网关记录的IPIP地址(硬件地址)。地址(硬件地址)。(2 2)若没找到该网关的记录,)若没找到该网关的记录,ARPARP将广播请求网关地址而不是目标将广播请求网关地址而不是目标主机的地址。路由器用自己的硬件地址响应源主机的主机的地址。路由器用自己的硬件地址响应源主机的ARPARP请求。源主请求。源主机则将数据包送到路由器以传送到目标主机的网络,最终达到目标机则将数据包送到路由器以传送到目标主机的网络,最终达到目标主

53、机。主机。(3 3)在路由器上,由)在路由器上,由IPIP决定目标决定目标IPIP地址是本地还是远程。如果是本地址是本地还是远程。如果是本地,路由器用地,路由器用ARPARP(缓存或广播)获得硬件地址。如果是远程,路由(缓存或广播)获得硬件地址。如果是远程,路由器在其路由表中查找该网关,然后运用器在其路由表中查找该网关,然后运用ARPARP获得此网关的硬件地址。获得此网关的硬件地址。数据包被直接发送到下一个目标主机。数据包被直接发送到下一个目标主机。(4 4)目标主机收到请求后,形成)目标主机收到请求后,形成ICMPICMP响应。因源主机在远程网上,响应。因源主机在远程网上,将在本地路由表中查

54、找源主机网的网关。找到网关后,将在本地路由表中查找源主机网的网关。找到网关后,ARPARP即获取它即获取它的硬件地址。的硬件地址。(5 5)如果此网关的硬件地址不在)如果此网关的硬件地址不在ARPARP缓存中,通过缓存中,通过ARPARP广播获得。一广播获得。一旦它获得硬件地址,旦它获得硬件地址,ICMPICMP响应就送到路由器上,然后传到源主机。响应就送到路由器上,然后传到源主机。图图5.8在不同网络中应用在不同网络中应用ARP5.2.2ARP的原理的原理1. ARP的高速缓存技术ARPARP高效运行的关键是每台使用高效运行的关键是每台使用ARPARP的主机中都有一个的主机中都有一个ARPA

55、RP高速缓存。高速缓存。ARPARP在缓存中存放了最近被解释的在缓存中存放了最近被解释的IPIP地址到地址到MACMAC地址之间的映射记录,以减少广播量。由于多数网络地址之间的映射记录,以减少广播量。由于多数网络通信都要连续发送多个报文,所以高速缓存大大提高了通信都要连续发送多个报文,所以高速缓存大大提高了ARPARP的效率。的效率。ARPARP缓存总是为本地子网保留硬件广播地址缓存总是为本地子网保留硬件广播地址(0xffffffffffffh0xffffffffffffh)作为一个永久项。此项使主机能够)作为一个永久项。此项使主机能够接受接受ARPARP广播。当查看缓存时,该项不会显示。广播

56、。当查看缓存时,该项不会显示。另外,在另外,在ARPARP请求报文中还放入信源机的请求报文中还放入信源机的IPIP地址和地址和MACMAC地地址的映射,以防止信宿机接着为信源机的址的映射,以防止信宿机接着为信源机的MACMAC地址再来一地址再来一次次ARPARP请求,形成死锁。信源机在广播自己的地址映射时,请求,形成死锁。信源机在广播自己的地址映射时,网络上所有主机都可以将它存入自己的缓存。在新机入网络上所有主机都可以将它存入自己的缓存。在新机入网时,主动广播自己的地址映射,以减少其它主机对该网时,主动广播自己的地址映射,以减少其它主机对该新主机的新主机的ARPARP请求广播。请求广播。ARP

57、 ARP 协议使用一个协议使用一个arp_tablearp_table的表。表中每个条目描述一的表。表中每个条目描述一个个 IP IP 和物理地址的对应。这些条目在和物理地址的对应。这些条目在IP IP 地址需要转换地址需要转换的时候创建,随着时间推移变得陈旧的时候被删除。的时候创建,随着时间推移变得陈旧的时候被删除。ARP ARP 表包含一个指针(表包含一个指针(arp_tables arp_tables 向量表)的表,把向量表)的表,把 arp_tablearp_table的条目链接在一起。这些条目被缓存,以加速的条目链接在一起。这些条目被缓存,以加速对它们的访问。每一个条目用它的对它们的

58、访问。每一个条目用它的 IP IP地址的最后两个字地址的最后两个字节做表的索引进行查找,然后跟踪这个条目链,直到找节做表的索引进行查找,然后跟踪这个条目链,直到找到正确的条目。到正确的条目。 Linux Linux 也缓存从也缓存从 arp_table arp_table条目预先建条目预先建立的硬件头,用立的硬件头,用 hh_cache hh_cache 数据结构的形式进行缓存。数据结构的形式进行缓存。为了让为了让ARP ARP 表中包括最新的条目,每当需要分配一个新表中包括最新的条目,每当需要分配一个新的条目而的条目而 ARP ARP 表到达了它的最大尺寸的时候,就查找最表到达了它的最大尺寸

59、的时候,就查找最旧的条目并删除它们,从而更新缓存表。每个动态旧的条目并删除它们,从而更新缓存表。每个动态ARPARP高高速缓存项的生存时间从被创建时开始算起为速缓存项的生存时间从被创建时开始算起为1010分钟。分钟。2 2分分钟内未用则删除。缓存容量满时,删除最老的记录。钟内未用则删除。缓存容量满时,删除最老的记录。在在ARPARP背后有一个基本概念,那就是网络接口有一个硬件背后有一个基本概念,那就是网络接口有一个硬件地址(一个地址(一个48bit48bit的值,以标识不同的以太网或令牌环网的值,以标识不同的以太网或令牌环网络接口),在硬件层次上进行的数据帧交换必须使用正络接口),在硬件层次上

60、进行的数据帧交换必须使用正确的硬件地址。因此,仅仅知道主机的确的硬件地址。因此,仅仅知道主机的IPIP地址并不能让地址并不能让内核发送一帧数据给主机。内核(如以太网驱动程序)内核发送一帧数据给主机。内核(如以太网驱动程序)必须知道目的端的硬件地址才能发送数据。必须知道目的端的硬件地址才能发送数据。ARPARP的功能是的功能是在在32bitIP32bitIP地址和采用不同网络技术的硬件地址之间提供地址和采用不同网络技术的硬件地址之间提供动态映射。动态映射。点对点链路不使用点对点链路不使用ARP。当设置这些链路时(一般在引。当设置这些链路时(一般在引导过程进行),必须告知内核链路每一端的导过程进行

61、),必须告知内核链路每一端的IP地址。并地址。并不涉及像以太网地址这样的硬件地址。不涉及像以太网地址这样的硬件地址。2. ARP高速缓存超时设置在在ARPARP高速缓存中的表项一般都要设置超时值。高速缓存中的表项一般都要设置超时值。从伯克利系统演变而来的系统一般对完整的表项从伯克利系统演变而来的系统一般对完整的表项设置超时值为设置超时值为2020分钟,而对不完整的表项(例如分钟,而对不完整的表项(例如在以太网上对一个不存在的主机发出在以太网上对一个不存在的主机发出ARPARP请求)请求)设置超时值为设置超时值为3 3分钟。当这些表项再次使用时,分钟。当这些表项再次使用时,这些实现一般都把超时值

62、重新设为这些实现一般都把超时值重新设为2020分钟。分钟。3. ARP命令ArpArp命令加上参数命令加上参数-a-a可显示可显示ARPARP高速缓存中的所有内容。高速缓存中的所有内容。超级用户可以用参数超级用户可以用参数-d-d来删除来删除ARPARP高速缓存中的某一项内高速缓存中的某一项内容。(可以在运行一些例子之前使用该命令格式,以看容。(可以在运行一些例子之前使用该命令格式,以看清楚清楚ARPARP的交换过程。)的交换过程。)另外,可以通过参数另外,可以通过参数-s-s来增加高速缓存中的内容。这个来增加高速缓存中的内容。这个参数需要主机名和以太网地址:对应于主机名的参数需要主机名和以太

63、网地址:对应于主机名的IPIP地址地址和以太网地址被增加到高速缓存中。新增加的内容是永和以太网地址被增加到高速缓存中。新增加的内容是永久性的(比如,它没有超时值),除非在命令行的末尾久性的(比如,它没有超时值),除非在命令行的末尾附上关键字附上关键字temptemp。位于命令行末尾的关键字位于命令行末尾的关键字pubpub和和-s-s参数一起,可以使系统参数一起,可以使系统起着主机起着主机ARPARP代理的作用。系统将回答与主机名对应的代理的作用。系统将回答与主机名对应的IPIP地址的地址的ARPARP请求,并以指定的以太网地址作为回答。如果请求,并以指定的以太网地址作为回答。如果广播的地址是

64、系统本身,那么系统就为指定的主机名起广播的地址是系统本身,那么系统就为指定的主机名起着委托着委托ARPARP代理的作用。代理的作用。5.2.3逆向地址解析协议逆向地址解析协议逆向地址解析(逆向地址解析(Reverse Address Resolution Reverse Address Resolution Protocol, RARP Protocol, RARP )的功能是在给出一个物理网)的功能是在给出一个物理网络地址时,通过服务器解析出对应的络地址时,通过服务器解析出对应的IPIP地址。地址。1.RARP的原理的原理无盘机的启动文件放在网络中的某台文件服务器上。无盘机在操作无盘机的启动

65、文件放在网络中的某台文件服务器上。无盘机在操作系统运行之前,必须首先获取并使用系统运行之前,必须首先获取并使用IPIP地址,然后通过标准的地址,然后通过标准的TCP/IPTCP/IP文件传输协议获取在文件服务器上的自举映象(文件传输协议获取在文件服务器上的自举映象(bootmapbootmap)。)。无盘机获取无盘机获取IPIP地址的实现过程步骤如下:地址的实现过程步骤如下:(1 1)由)由ROMROM基本输入输出系统向服务器发送(确切地说是广播,因基本输入输出系统向服务器发送(确切地说是广播,因为此时服务器的物理地址也是不知道的)请求报文以获得应答。为此时服务器的物理地址也是不知道的)请求报

66、文以获得应答。(2 2)在广播)在广播IPIP请求时,无盘机使用机器的物理地址作为其标志。因请求时,无盘机使用机器的物理地址作为其标志。因为从网卡中读取的物理地址是唯一的。为从网卡中读取的物理地址是唯一的。(3 3)RARPRARP服务器要响应请求,首先必须知道物理地址与服务器要响应请求,首先必须知道物理地址与IPIP地址对应地址对应关系关系. .为此,在为此,在RARPRARP服务器中维持着一个本网服务器中维持着一个本网 “物理地址到物理地址到IPIP地址地址” 的映射表。的映射表。(4 4)无盘机发出的)无盘机发出的RARPRARP请求中携带着本机的物理网络地址,当某无请求中携带着本机的物

67、理网络地址,当某无盘机发出盘机发出RARPRARP请求后,网上所有机器均收到该请求,但只有请求后,网上所有机器均收到该请求,但只有RARPRARP服服务器处理请求并根据请求者物理地址响应请求。此时由于服务器已务器处理请求并根据请求者物理地址响应请求。此时由于服务器已经知道无盘机的物理地址,因此直接向无盘机发送应答。这样,当经知道无盘机的物理地址,因此直接向无盘机发送应答。这样,当无盘机收到该回答报文时,便知道了自己的无盘机收到该回答报文时,便知道了自己的IPIP地址。地址。ARPARP与与RARPRARP分别用于两个方向上的地址解析问题:分别用于两个方向上的地址解析问题:ARPARP用用于从于

68、从IPIP地址到物理地址的转换,地址到物理地址的转换,RARPRARP用于从物理地址到用于从物理地址到IPIP地址的转换。二者几乎是可逆的,因此地址的转换。二者几乎是可逆的,因此RARPRARP报文的格报文的格式与式与ARPARP报文基本一致。它们之间主要的差别是报文基本一致。它们之间主要的差别是RARPRARP请求请求或回答的帧类型代码为或回答的帧类型代码为0x80350x8035,且,且RARPRARP请求的操作代码请求的操作代码为为3 3,回答操作代码为,回答操作代码为4 4。,。,RARPRARP请求与请求与ARPARP一样以广播方一样以广播方式传送,而式传送,而RARPRARP回答一

69、般是单播(回答一般是单播(unicastunicast)传送的。)传送的。当无盘系统从当无盘系统从RARPRARP回答中收到它的回答中收到它的IPIP地址后,它将发送地址后,它将发送TFTP TFTP (Trivial File Transfer ProtocolTrivial File Transfer Protocol)请求来读取)请求来读取引导映象。引导映象。2. RARP服务器的设计(1)作为用户进程的RARP服务器RARPRARP服务器一般要为多个主机(网络上所有的无盘系统)服务器一般要为多个主机(网络上所有的无盘系统)提供硬件地址到提供硬件地址到IPIP地址的映射。该映射包含在一个

70、磁盘地址的映射。该映射包含在一个磁盘文件中(在文件中(在UnixUnix系统中一般位于系统中一般位于/etc/ethers/etc/ethers目录中)。目录中)。由于内核一般不读取和分析磁盘文件,因此由于内核一般不读取和分析磁盘文件,因此RARPRARP服务器服务器的功能就由用户进程来提供,而不是作为内核的的功能就由用户进程来提供,而不是作为内核的TCP/IPTCP/IP实现的一部分。实现的一部分。此外,此外,RARPRARP请求是作为一个特殊类型的以太网数据帧来请求是作为一个特殊类型的以太网数据帧来传送的(帧类型字段值为传送的(帧类型字段值为0x80350x8035)。这说明)。这说明RA

71、RPRARP服务器服务器必须能够发送和接收这种类型的以太网数据帧。由于发必须能够发送和接收这种类型的以太网数据帧。由于发送和接收这些数据帧与系统有关,因此送和接收这些数据帧与系统有关,因此RARPRARP服务器的实服务器的实现与系统是捆绑在一起的。现与系统是捆绑在一起的。(2)有多个RARP服务器的网络RARPRARP服务器实现的一个复杂因素是服务器实现的一个复杂因素是RARPRARP请求是在硬件层上进行广播请求是在硬件层上进行广播的。这意味着它们不经过路由器进行转发。为了让无盘系统在某个的。这意味着它们不经过路由器进行转发。为了让无盘系统在某个RARPRARP服务器关机的状态下也能引导,通常

72、在一个网络上要提供多个服务器关机的状态下也能引导,通常在一个网络上要提供多个RARPRARP服务器。服务器。当服务器的数目增加时,网络流量也随之增加,因为每个服务器对当服务器的数目增加时,网络流量也随之增加,因为每个服务器对每个每个RARPRARP请求都要发送请求都要发送RARPRARP回答。发送回答。发送RARPRARP请求的无盘系统一般采请求的无盘系统一般采用最先收到的用最先收到的RARPRARP回答。(回答。(ARPARP不会遇到这种情况,因为只有一台主不会遇到这种情况,因为只有一台主机发送机发送ARPARP回答。)另外,还有一种可能发生的情况是每个回答。)另外,还有一种可能发生的情况是

73、每个RARPRARP服务服务器同时回答,这样会增加以太网发生冲突的概率。器同时回答,这样会增加以太网发生冲突的概率。ARPARP服务器通常是服务器通常是TCP/IPTCP/IP在内核中实现的一部分。由于内核知道在内核中实现的一部分。由于内核知道IPIP地地址和硬件地址,因此当它收到一个询问址和硬件地址,因此当它收到一个询问IPIP地址的地址的ARPARP请求时,只需用请求时,只需用相应的硬件地址来提供回答就可以了。相反的是,虽然相应的硬件地址来提供回答就可以了。相反的是,虽然RARPRARP在概念在概念上很简单,但上很简单,但RARPRARP服务器与系统相关而且比较复杂。因此,并不是服务器与系

74、统相关而且比较复杂。因此,并不是所有的所有的TCP/IPTCP/IP实现都提供实现都提供RARPRARP服务器。服务器。5.2.4动态主机配置协议动态主机配置协议1. 动态主机配置协议概述在在TCP/IPTCP/IP网络上,每台工作站要能存取网络上的资源之前,都必须网络上,每台工作站要能存取网络上的资源之前,都必须进行基本的网络配置。除了一些主要参数诸如进行基本的网络配置。除了一些主要参数诸如IPIP地址,子网掩码,地址,子网掩码,默认网关,默认网关,DNSDNS等之外,还可能需要一些附加的信息如等之外,还可能需要一些附加的信息如IPIP管理策略之管理策略之类。用手工方式分配类。用手工方式分配

75、IPIP地址可能出错,由于地址可能出错,由于IPIP地址、子网掩码及默地址、子网掩码及默认网关的错误,导至网络的错误,这种错误是很难查找的。此外,认网关的错误,导至网络的错误,这种错误是很难查找的。此外,当一台计算机从一个子网转移到另一个子网,就要重新对系统进行当一台计算机从一个子网转移到另一个子网,就要重新对系统进行配置。对于一个稍微大点的网络而言,网络的管理和维护的任务是配置。对于一个稍微大点的网络而言,网络的管理和维护的任务是相当繁重的。因此,需要有一种机制来让相当繁重的。因此,需要有一种机制来让TCP/IPTCP/IP的配置和管理从用的配置和管理从用户端转移到网络管理端,实现户端转移到

76、网络管理端,实现IPIP的集中式管理。的集中式管理。InternetInternet任务组开发的动态主机配置协议任务组开发的动态主机配置协议DHCPDHCP(Dynamic Host Dynamic Host Configuration ProtocolConfiguration Protocol)可以在)可以在TCP/IPTCP/IP网络上自动为客户机指定网络上自动为客户机指定唯一唯一IPIP地址。它对地址。它对IPIP地址进行集中管理,克服了静态地址进行集中管理,克服了静态IPIP地址的缺点,地址的缺点,还可在某种程度上解决还可在某种程度上解决IPIP地址不足的问题。地址不足的问题。2.

77、DHCP的设计目标(1 1)DHCPDHCP应该是一种机制而不是策略,它必须允许本地系统管理员应该是一种机制而不是策略,它必须允许本地系统管理员控制配置参数,本地系统管理员应该能够对所希望管理的资源管理控制配置参数,本地系统管理员应该能够对所希望管理的资源管理进行有效地管理。进行有效地管理。(2 2)客户不需要进行手工配置,客户应该在不参与的情况下发现合)客户不需要进行手工配置,客户应该在不参与的情况下发现合适于本地机的配置参数,并利用这些参数加以配置。适于本地机的配置参数,并利用这些参数加以配置。(3 3)不需要对单个客户配置网络。在通常情况下,网络管理员没有)不需要对单个客户配置网络。在通

78、常情况下,网络管理员没有必要输入任何预先设计好的用户配置参数。必要输入任何预先设计好的用户配置参数。(4 4)DHCPDHCP不需要在每个子网上配置一个服务器,为了经济的原因,不需要在每个子网上配置一个服务器,为了经济的原因,DHCPDHCP服务器必须可以和路由器和服务器必须可以和路由器和BOOTPBOOTP转发代理一起工作。转发代理一起工作。(5 5)DHCPDHCP客户必须可能对多个客户必须可能对多个DHCPDHCP服务器提供的服务作出响应。出服务器提供的服务作出响应。出于网络稳定与安全的考虑,有时需要为网络加入多个于网络稳定与安全的考虑,有时需要为网络加入多个DHCPDHCP服务器。服务

79、器。(6 6)DHCPDHCP必须静态配置,且必须以现存的网络协议实现。必须静态配置,且必须以现存的网络协议实现。(7 7)DHCPDHCP必须能够和必须能够和BOOTPBOOTP转发代理互操作。转发代理互操作。(8 8)DHCPDHCP必须能够为现有的必须能够为现有的BOOTPBOOTP客户提供服务。客户提供服务。下面几个设计目标是对于网络层参数的设计而言的,在网络层参数下面几个设计目标是对于网络层参数的设计而言的,在网络层参数上,上,DHCPDHCP必须可以做到以下几点:必须可以做到以下几点:(9 9)不允许有几个客户同时使用一个网络地址。)不允许有几个客户同时使用一个网络地址。(1010

80、)在)在DHCPDHCP客户重新启动后仍然能够保留它原先的配置参数,如客户重新启动后仍然能够保留它原先的配置参数,如果可能,客户应该可使用相同的配置参数。果可能,客户应该可使用相同的配置参数。(1111)在)在DHCPDHCP服务器重新启动后仍然能够保留客户的配置参数,如服务器重新启动后仍然能够保留客户的配置参数,如果可能,即使果可能,即使DHCPDHCP机制重新启动,也应该能够为客户分配原有的配机制重新启动,也应该能够为客户分配原有的配置参数。置参数。(1212)能够为新加入的客户自动提供配置参数。)能够为新加入的客户自动提供配置参数。(1313)支持对特定客户永久固定分配网络地址。)支持对

81、特定客户永久固定分配网络地址。3.DHCP客户获得客户获得IP地址的步骤地址的步骤DHCPDHCP使用客户使用客户/ /服务器模型。服务器模型。DHCPDHCP客户提出请求后,从客户提出请求后,从DHCPDHCP服务器得到服务器得到IPIP地址需要通过地址需要通过4 4个步骤。个步骤。 (1 1)DHCPdiscoverDHCPdiscover客户端以广播方式发送客户端以广播方式发送DHCPDHCP搜索信息包搜索信息包DHCPdiscoverDHCPdiscover,试图与试图与DHCPDHCP服务器端连结。服务器端连结。(2 2)DHCPofferDHCPoffer与该工作站处于相同子网上的

82、每个与该工作站处于相同子网上的每个DHCPDHCP服务器均会回应服务器均会回应DHCPofferDHCPoffer消息包括有效的消息包括有效的IPIP地址、子网掩码、地址、子网掩码、DHCPDHCP服务服务器的器的IPIP地址,以及租借时限。该消息也是以广播方式从地址,以及租借时限。该消息也是以广播方式从DHCPDHCPBOOTPBOOTP端口号端口号6868发送出去的。由于客户机没有发送出去的。由于客户机没有IPIP地地址,所以址,所以DHCPDHCP服务器不能直接把信息发送给申请服务器不能直接把信息发送给申请IPIP地址地址的客户机。的客户机。(3 3)DHCPrequestDHCPreq

83、uest客户机接收它所收到的第一个客户机接收它所收到的第一个DHCPofferDHCPoffer的的IPIP地址,并发地址,并发送广播消息,回应送广播消息,回应DHCPrequestDHCPrequest讯息给讯息给DHCPDHCP服务器,通知服务器,通知DHCPDHCP服务器它所接受的服务器它所接受的IPIP地址。由于该消息是广播式的,地址。由于该消息是广播式的,所以所有其他所以所有其他DHCPDHCP服务器会收到广播消息,并把准备分服务器会收到广播消息,并把准备分配的配的IPIP地址重新放回可用地址组中。地址重新放回可用地址组中。 (4 4)DHCPackDHCPack当被选中的当被选中的

84、DHCPDHCP服务器收到服务器收到DHCPDHCP客户端所传送过来的客户端所传送过来的DHCPackDHCPack确认消息后,它会以广播的方式回复一个确认消息后,它会以广播的方式回复一个DHCPackDHCPack确认信息。该确认信息会提供更详细信息,如客确认信息。该确认信息会提供更详细信息,如客户机也许申请了的户机也许申请了的DNSDNS或网关地址。或网关地址。上述处理步骤只涉及上述处理步骤只涉及4个信息包的数据交互,因而通常不个信息包的数据交互,因而通常不会增加客户机登录网络的时间。会增加客户机登录网络的时间。在租借期结束之前,客户机和服务器不必重复这种信息在租借期结束之前,客户机和服务

85、器不必重复这种信息交换过程。交换过程。IPIP地址会保留在客户机的地址会保留在客户机的TCPTCPIPIP设置中,即设置中,即使该设备重新启动,也能使用已经配置的使该设备重新启动,也能使用已经配置的IPIP地址。地址。DHCPDHCP是基于客户是基于客户/ /服务器模式的。这种模式下,把通过服务器模式的。这种模式下,把通过DHCPDHCP来获得网络配置参数的来获得网络配置参数的InternetInternet主机称为客户(通主机称为客户(通常就是普通用户的工作站),而将专门指定用于分配网常就是普通用户的工作站),而将专门指定用于分配网络地址、提供网络设置参数给络地址、提供网络设置参数给DHCP

86、DHCP客户的客户的InternetInternet主机主机称为称为DHCPDHCP服务器。服务器。DHCPDHCP客户和客户和DHCPDHCP服务器之间通过收发服务器之间通过收发DHCPDHCP消息进行通讯。在消息进行通讯。在DHCPDHCP客户和服务器之间转发客户和服务器之间转发 DHCP DHCP 消息的主机或路由器称为消息的主机或路由器称为DHCP/BOOTP DHCP/BOOTP 中继代理。中继代理。 DHCPDHCP向网络主机提供配置参数,它由两个基本部分组成:向网络主机提供配置参数,它由两个基本部分组成:一部分是向网络主机传送专用的配置信息,另一部分是一部分是向网络主机传送专用的

87、配置信息,另一部分是给主机分配网络地址。给主机分配网络地址。4.IP地址的租用地址的租用对于许多拥有许多台计算机的大型网络来说,每台计算机拥有一个对于许多拥有许多台计算机的大型网络来说,每台计算机拥有一个IPIP地址有时候可能是不必要的。地址有时候可能是不必要的。DHCPDHCP定义了一种可以使定义了一种可以使IPIP地址使用地址使用一段有限时间(租用)的机制,当租期到了的时候,服务器可以把一段有限时间(租用)的机制,当租期到了的时候,服务器可以把这个这个IPIP地址分配给别的机器使用。客户也可以当设备连接到网络时,地址分配给别的机器使用。客户也可以当设备连接到网络时,向向DHCPDHCP服务

88、器申请租用服务器申请租用IPIP地址。当与网络断开连接时,客户机就会地址。当与网络断开连接时,客户机就会放弃刚才所用的放弃刚才所用的IPIP地址,地址,DHCPDHCP服务器就可以把该服务器就可以把该IPIP地址分配给其他地址分配给其他设备。设备。租用期间的设定决定了租用期间的设定决定了DHCPDHCP客户端更新的时间。在客户端更新的时间。在DHCPDHCP服务器的设服务器的设定时间里,若租用期限已超过一半时间,则定时间里,若租用期限已超过一半时间,则DHCPDHCP客户端会更新一次客户端会更新一次IPIP地址的数据。租用期限的处理是非常重要的一件工作。如果设定地址的数据。租用期限的处理是非常

89、重要的一件工作。如果设定期间太长,此期间太长,此IPIP地址则会被某台主机占着不放,而无法再提供给别地址则会被某台主机占着不放,而无法再提供给别的客户端使用;如果租用期限设定太短,又使得更新频率太高而增的客户端使用;如果租用期限设定太短,又使得更新频率太高而增加网络流量。当网络上主机属於固定型(如:办公室、员工加网络流量。当网络上主机属於固定型(如:办公室、员工IPIP等)等)时,可以设定较长的租用时间;但如果网络上主机属於异动型(如时,可以设定较长的租用时间;但如果网络上主机属於异动型(如远程访问服务、笔记本计算机等)时,可以设定较短的时间。远程访问服务、笔记本计算机等)时,可以设定较短的时

90、间。配置配置DHCPDHCP包括指定可以被租借给特定网段上任何网络设备的地址范包括指定可以被租借给特定网段上任何网络设备的地址范围。网络管理员可以根据实际情况在围。网络管理员可以根据实际情况在DHCPDHCP服务器的配置中设定租借服务器的配置中设定租借时间。时间。DHCPDHCP支持三种支持三种IPIP地址分配方法。第一种是自动分配,地址分配方法。第一种是自动分配,DHCPDHCP给用户分给用户分配一个永久的配一个永久的IPIP地址。第二种是动态分配,在这种情况下,用户可地址。第二种是动态分配,在这种情况下,用户可以取得一个以取得一个IPIP地址,但是是有时间限制的。第三种是手工分配,在地址,

91、但是是有时间限制的。第三种是手工分配,在这种方法下,用户的这种方法下,用户的IPIP地址是由管理员手工指定的,这种情况下,地址是由管理员手工指定的,这种情况下,DHCPDHCP服务器只需要将这个指定的服务器只需要将这个指定的IPIP地址传送给用户即可。至于用什地址传送给用户即可。至于用什么样的分配方法,不同的网络各不相同。么样的分配方法,不同的网络各不相同。动态分配是唯一一种允许自动重用地址的机制。因此,这种方法对动态分配是唯一一种允许自动重用地址的机制。因此,这种方法对于有临时上网用户,而且网络的于有临时上网用户,而且网络的IPIP地址资源又有点紧张的时候特别地址资源又有点紧张的时候特别有用

92、。而手工指定对于管理不希望使用动态有用。而手工指定对于管理不希望使用动态IPIP地址的用户十分方便,地址的用户十分方便,不会因为手工指定而和不会因为手工指定而和DHCPDHCP冲突或和别的已经分配的地址冲突。因冲突或和别的已经分配的地址冲突。因此,此,DHCPDHCP是一种相对集中式的管理方式。是一种相对集中式的管理方式。5.使用使用DHCP的优点的优点(1 1)降低花费在降低花费在IPIP地址管理和规划方面的时间。地址管理和规划方面的时间。IPIP地址的集中式管地址的集中式管理免除了网络管理员编辑每台网络工作站、打印机或其他设备上的理免除了网络管理员编辑每台网络工作站、打印机或其他设备上的T

93、CPTCPIPIP配置的必要性。配置的必要性。(2 2)降低分配降低分配IPIP地址的错误率。当手工分配每台工作站的地址的错误率。当手工分配每台工作站的IPIP地址,地址,或者手工编辑或者手工编辑BOOTPBOOTP表时,很容易输入错误地址,或者重复使用相同表时,很容易输入错误地址,或者重复使用相同地址。使用地址。使用DHCPDHCP,不会存在分配给工作站无效地址的可能性,并且,不会存在分配给工作站无效地址的可能性,并且几乎不可能存在两台工作站使用相同几乎不可能存在两台工作站使用相同IPIP地址,并因而导致网络错误地址,并因而导致网络错误的可能性。的可能性。(3 3)为使用户在无须更改为使用户

94、在无须更改TCPTCPIPIP配置的情况下随意移动工作站和配置的情况下随意移动工作站和打印机。只要工作站被配置为从中心服务器获取打印机。只要工作站被配置为从中心服务器获取IPIP地址,则工作站地址,则工作站可以连到网络上任何地方,并且会收到有效地址。可以连到网络上任何地方,并且会收到有效地址。(4)使使IP分址对移动用户透明。当客户移动到其它子网,重新启动分址对移动用户透明。当客户移动到其它子网,重新启动时,时,DHCP服务器自动提供新的服务器自动提供新的TCP/IP配置信息。配置信息。5.3Internet控制报文协议控制报文协议5.3.1ICMP概述概述5.3.2ICMP报文的类型报文的类

95、型5.3.3ping命令命令5.3.4traceroute程序程序5.3.1ICMP概述概述InternetInternet控制报文协议控制报文协议ICMPICMP(Internet Control Internet Control Message ProtocolMessage Protocol)经常被认为是)经常被认为是IPIP层的一个组成部分。层的一个组成部分。在网络上传递在网络上传递IPIP数据包时,如果发生了错误,就会用数据包时,如果发生了错误,就会用ICMPICMP协议来报告差错信息以及其它需要注意的信息。协议来报告差错信息以及其它需要注意的信息。ICMPICMP报文通常被报文通常

96、被IPIP层或更高层协议(层或更高层协议(TCPTCP或或UDPUDP)使用。)使用。一些一些ICMPICMP报文把差错信息返回给用户进程。报文把差错信息返回给用户进程。由於由於TCP/IPTCP/IP是一个开放式的网络环境,其动态性极高,是一个开放式的网络环境,其动态性极高,所以在传递数据包之前,确定对方是否存在以及路由路所以在传递数据包之前,确定对方是否存在以及路由路径是否可靠就变得非常重要了。使用径是否可靠就变得非常重要了。使用ICMPICMP协议能够检测协议能够检测网络的连线状况,确保连线的准确性。其功能主要有:网络的连线状况,确保连线的准确性。其功能主要有:侦测远端主机是否存在,建立

97、及维护路由数据,重导数侦测远端主机是否存在,建立及维护路由数据,重导数据传送路径以及数据流量控制。据传送路径以及数据流量控制。图图5.10ICMP封装在封装在IP数据报内部数据报内部ICMP消息以基本消息以基本IP首部发送。数据的第一个字节是首部发送。数据的第一个字节是ICMP类型字段;类型字段;此字段的值决定了了其余数据的格式。任何标记为此字段的值决定了了其余数据的格式。任何标记为“未使用未使用”的字段的字段都是为以后的扩展保留的,在传送过程中必须全部是都是为以后的扩展保留的,在传送过程中必须全部是0。ICMP报文报文格式如图格式如图5.11所示。所示。所有所有ICMPICMP报文的前报文的

98、前4 4个字节都是一样的,但是剩个字节都是一样的,但是剩下的其它字节则互不相同。类型字段可以有下的其它字节则互不相同。类型字段可以有1515个不同的值,以描述个不同的值,以描述特定类型的特定类型的ICMPICMP报文。某些报文。某些ICMPICMP报文还使用代码字段的值来进一步报文还使用代码字段的值来进一步描述不同的条件。描述不同的条件。ICMPICMP必需检验和。检验和字段覆盖整个必需检验和。检验和字段覆盖整个ICMPICMP报文。报文。使用的算法与使用的算法与IPIP首部检验和算法相同。首部检验和算法相同。5.3.2ICMP报文的类型报文的类型ICMPICMP在沟通之中使用不同的信息让机器

99、来识别,各种类型的在沟通之中使用不同的信息让机器来识别,各种类型的ICMPICMP报文如图报文如图 5.125.12所示,不同类型由报文中的类型字段和代码字段来共同决定。所示,不同类型由报文中的类型字段和代码字段来共同决定。当数据报不能到达目的地时,或当网关的已经失去缓存功能,或者当数据报不能到达目的地时,或当网关的已经失去缓存功能,或者当网关能够引导主机在更短路由上发送的情况下,将发送当网关能够引导主机在更短路由上发送的情况下,将发送ICMPICMP消息。消息。ICMPICMP以不同的错误码来表示各种错误信息,如表以不同的错误码来表示各种错误信息,如表 5.4 5.4所示。所示。ICMPIC

100、MP协议的目的是为了当网络出现问题的时候返回控制协议的目的是为了当网络出现问题的时候返回控制信息,而不是使信息,而不是使IPIP协议变得绝对可靠,并不保证数据报协议变得绝对可靠,并不保证数据报或控制信息能够返回。一些数据报仍将在没有任何报告或控制信息能够返回。一些数据报仍将在没有任何报告的情况下丢失。上层协议必须使用自己的差错控制程序的情况下丢失。上层协议必须使用自己的差错控制程序来判断通信是否正确。来判断通信是否正确。ICMPICMP信息通常报告在处理数据报信息通常报告在处理数据报过程中的错误。为了避免信息无限制地返回,对于过程中的错误。为了避免信息无限制地返回,对于ICMPICMP消息不会

101、单独成数据报发送,而且消息不会单独成数据报发送,而且ICMPICMP信息只在处理数信息只在处理数据报偏移量为据报偏移量为0 0时发送。时发送。ICMPICMP使用使用IPIP做底层支持,好象它是一个高层协议,而实做底层支持,好象它是一个高层协议,而实际上它是际上它是IPIP的一部分,必须由其它的一部分,必须由其它IPIP模块实现。当要对模块实现。当要对网络连接状况进行判断的时候,网络连接状况进行判断的时候,ICMPICMP是个非常有用的协是个非常有用的协议。议。5.3.3ping命令命令pingping是一个最常用的网络检查命令。当架设好一个是一个最常用的网络检查命令。当架设好一个IPIP网络

102、,要检查网络,要检查一下网络是否连接成功,最常用的就是一下网络是否连接成功,最常用的就是pingping命令。本节用命令。本节用pingping程序程序作为诊断工具来研究作为诊断工具来研究ICMPICMP。pingping还给提供了检测还给提供了检测IPIP记录路由和时间记录路由和时间戳选项的机会。戳选项的机会。pingping程序编写的目的是为了测试另一台主机是否可达。该程序发送程序编写的目的是为了测试另一台主机是否可达。该程序发送一份一份ICMPICMP回显请求报文给主机,并等待返回回显请求报文给主机,并等待返回ICMPICMP回显回答。一般来回显回答。一般来说,如果不能说,如果不能pin

103、gping到某台主机,那么就不能到某台主机,那么就不能TelnetTelnet或者或者FTPFTP到那台主到那台主机。反过来,如果不能机。反过来,如果不能TelnetTelnet到某台主机,那么通常可以用到某台主机,那么通常可以用pingping程程序来确定问题出在哪里。序来确定问题出在哪里。pingping程序还能测出到这台主机的往返时间,程序还能测出到这台主机的往返时间,以表明离该主机有以表明离该主机有“多远多远”。返回信息意思分别为从哪里得到的回应该次返回信息意思分别为从哪里得到的回应该次pingping执行的数据大小执行的数据大小roundtriproundtrip时间(微秒)生存期限

104、(微秒)。并显示送出了多少个数时间(微秒)生存期限(微秒)。并显示送出了多少个数据报,获得的回应是多少,丢失率是多少。还可显示来回所需时间据报,获得的回应是多少,丢失率是多少。还可显示来回所需时间的最小值、最大值和平均值。的最小值、最大值和平均值。通常通常pingping命令是送出一个命令是送出一个echo_requestecho_request(type8type8)的)的ICMPICMP数据报给目数据报给目的端。如果目的端愿意回答,则回应一个的端。如果目的端愿意回答,则回应一个echo_replyecho_reply(type0type0)的)的ICMPICMP数据报给查询端,以确定连接的

105、可行性。数据报给查询端,以确定连接的可行性。随着提供访问控制列表的路由器和防火墙的出现,一台随着提供访问控制列表的路由器和防火墙的出现,一台主机的可达性不只取决于主机的可达性不只取决于IPIP层是否可达,还取决于使用层是否可达,还取决于使用何种协议以及端口号。可能何种协议以及端口号。可能pingping程序的运行结果显示某程序的运行结果显示某台主机不可达,但可以用台主机不可达,但可以用TelnetTelnet远程登录到该台主机的远程登录到该台主机的2525号端口(邮件服务器)。如果号端口(邮件服务器)。如果ICMPICMP包因为某些原因包因为某些原因(如火墙的过滤)不能到达目的端或是目的端不愿

106、回答(如火墙的过滤)不能到达目的端或是目的端不愿回答或是回应给挡下来了,或是回应给挡下来了,pingping就不能顺利完成,但并非代就不能顺利完成,但并非代表不能连接。表不能连接。通常称发送回显请求的通常称发送回显请求的pingping程序为客户,而称被程序为客户,而称被pingping的的主机为服务器。大多数的主机为服务器。大多数的TCP/IPTCP/IP实现都在内核中直接支实现都在内核中直接支持持pingping服务器。服务器。ICMPICMP的两种查询服务,地址掩码和时间的两种查询服务,地址掩码和时间戳请求,也都是直接在内核中进行处理的。戳请求,也都是直接在内核中进行处理的。1. IP记

107、录路由选项pingping程序为提供了查看程序为提供了查看IPIP记录路由(记录路由(RRRR)选项的机会。)选项的机会。大多数不同版本的大多数不同版本的pingping程序都提供程序都提供RRRR参数,以提供记录参数,以提供记录路由的功能。它使得路由的功能。它使得pingping程序在发送出去的程序在发送出去的IPIP数据报中数据报中设置设置IPRRIPRR选项(该选项(该IPIP数据报包含数据报包含ICMPICMP回显请求报文)。回显请求报文)。这样,每个处理该数据报的路由器都把它的这样,每个处理该数据报的路由器都把它的IPIP地址放入地址放入选项字段中。当数据报到达目的端时,选项字段中。

108、当数据报到达目的端时,IPIP地址清单应该地址清单应该复制到复制到ICMPICMP回显回答中,这样返回途中所经过的路由器回显回答中,这样返回途中所经过的路由器地址也被加入清单中。当地址也被加入清单中。当pingping程序收到回显回答时,它程序收到回显回答时,它就打印出这份就打印出这份IPIP地址清单。当原始主机(运行地址清单。当原始主机(运行pingping程序程序的主机)收到带有的主机)收到带有RRRR选项的选项的ICMPICMP回显回答时,它也要把回显回答时,它也要把它的入口它的入口IPIP地址放入清单中。地址放入清单中。2. IP时间戳选项IPIP时间戳选项与记录路由选项类似。时间戳选

109、项时间戳选项与记录路由选项类似。时间戳选项的代码为的代码为0x440x44。其它两个字段。其它两个字段lenlen和和ptrptr与记录路与记录路由选项相同:选项的总长度(一般为由选项相同:选项的总长度(一般为3636或或4040)和)和指向下一可用空间的指针(指向下一可用空间的指针(5 5,9 9,1313等)。等)。由于可能无法控制任何给定路由器上时间戳的正由于可能无法控制任何给定路由器上时间戳的正确性。这使得无法用确性。这使得无法用IPIP选项来计算路由器之间的选项来计算路由器之间的跳站数。跳站数。traceroutetraceroute程序可以提供一种更好的方程序可以提供一种更好的方法

110、来计算路由器之间的跳数。法来计算路由器之间的跳数。5.3.4traceroute程序程序另一个常用的另一个常用的ICMP程序程序traceroute是一个能更深是一个能更深入探索入探索TCP/IP协议的方便工具。尽管不能保证从协议的方便工具。尽管不能保证从源端发往目的端的两份连续的源端发往目的端的两份连续的IP数据报具有相同数据报具有相同的路由,但是大多数情况下,的路由,但是大多数情况下,traceroute程序可程序可以看到以看到IP数据报从一台主机传到另一台主机所经数据报从一台主机传到另一台主机所经过的路由。过的路由。traceroute程序还可以使用程序还可以使用IP源路由源路由选项。选

111、项。1. traceroute程序的操作traceroute程序使用程序使用ICMP报文和报文和IP首部中的首部中的TTL字段。字段。TTL字段(生存周期)是由发送端初始设置一个字段(生存周期)是由发送端初始设置一个8bit字段。字段。推荐的初始值由分配数字推荐的初始值由分配数字RFC指定,当前值为指定,当前值为64。较老。较老版本的系统经常初始化为版本的系统经常初始化为15或或32。从第。从第7章中的一些章中的一些ping程序例子中可以看出,发送程序例子中可以看出,发送ICMP回显回答时经常把回显回答时经常把TTL设为最大值设为最大值255。每每个个处处理理数数据据报报的的路路由由器器都都需

112、需要要把把TTL的的值值减减1或或减减去去数数据据报报在在路路由由器器中中停停留留的的秒秒数数。由由于于大大多多数数的的路路由由器器转转发发数数据据报报的的时时延延都都小小于于1秒秒钟钟,因因此此TTL最最终终成成为为一一个个跳跳站站的计数器,所经过的每个路由器都将其值减的计数器,所经过的每个路由器都将其值减1。在在Winodws98某次执行某次执行tracert的结果的结果D:WINDOWSDT168.95.1.83overamaximumof30hops:139.175.169.352137ms134ms147ms139.175.169.13131ms136ms129msR58-139.1

113、75.58.334137ms139ms129msR58-139.175.58.415146ms135ms137msR58-168.95.1.83Tracecomplete.最左边一行分别是跳站(最左边一行分别是跳站(hophop)数,然後是三个)数,然後是三个round trip timeround trip time最最後是主机的名称(如果有的话)和後是主机的名称(如果有的话)和IPIP地址。通常地址。通常traceroutetraceroute命令会命令会从从1 1开始递增开始递增TTLTTL,并将,并将ICMPICMP命令送给每下一跳站。当路由器检测到命令送给每下一跳站。当路由器检测到T

114、TLTTL超时,则会向发送源寄出超时,则会向发送源寄出TIME_EXCEEDEDTIME_EXCEEDED的的ICMPICMP包。而每一次回包。而每一次回应都会送出应都会送出3 3个个UDPUDP数据报(数据报(datagramsdatagrams)以获得更详细的概念。)以获得更详细的概念。透过这样的递进查询过程,查询端就可以追踪到连线所经过的跳站透过这样的递进查询过程,查询端就可以追踪到连线所经过的跳站情况。这在判断包的路由路径非常有用。不过还必须指出,包的路情况。这在判断包的路由路径非常有用。不过还必须指出,包的路由在每次的传递过程中都可能不一样。在某些多路由环境中,查询由在每次的传递过程

115、中都可能不一样。在某些多路由环境中,查询路由和回应路由未必一致。而且在防火墙的保护下,有些路由和回应路由未必一致。而且在防火墙的保护下,有些ICMPICMP包会包会被拦下来,这时被拦下来,这时traceroutetraceroute也就不能完整的显示出包的传输路径了。也就不能完整的显示出包的传输路径了。TTLTTL字段的目的是防止数据报在路由选择时无休止地在网络中流动。字段的目的是防止数据报在路由选择时无休止地在网络中流动。例如,当路由器瘫痪或者两个路由器之间的连接丢失时,路由选择例如,当路由器瘫痪或者两个路由器之间的连接丢失时,路由选择协议有时会去检测丢失的路由并一直进行下去。在这段时间内,

116、数协议有时会去检测丢失的路由并一直进行下去。在这段时间内,数据报可能在循环回路被终止。据报可能在循环回路被终止。TTLTTL字段就是在这些循环传递的数据报字段就是在这些循环传递的数据报上加上一个生存上限。上加上一个生存上限。关于关于traceroutetraceroute程序程序(1 1)并不能保证现在的路由也是将来所要采用的路由,甚至两份连)并不能保证现在的路由也是将来所要采用的路由,甚至两份连续的续的IPIP数据报都可能采用不同的路由。如果在运行程序时,路由发数据报都可能采用不同的路由。如果在运行程序时,路由发生改变,就会观察到这种变化,这是因为对于一个给定的生改变,就会观察到这种变化,这

117、是因为对于一个给定的TTLTTL,如果,如果其路由发生变化,其路由发生变化,traceroutetraceroute程序将打印出新的程序将打印出新的IPIP地址。地址。(2 2)不能保证)不能保证ICMPICMP报文的路由与报文的路由与traceroutetraceroute程序发送的程序发送的UDPUDP数据报数据报采用同一路由。这表明所打印出来的往返时间可能并不能真正体现采用同一路由。这表明所打印出来的往返时间可能并不能真正体现数据报发出和返回的时间差。(如果数据报发出和返回的时间差。(如果UDPUDP数据报从信源到路由器的时数据报从信源到路由器的时间是间是1 1秒,而秒,而ICMPICM

118、P报文用另一条路由返回信源用了报文用另一条路由返回信源用了3 3秒时间,则打印秒时间,则打印出来的往返时间是出来的往返时间是4 4秒。)秒。)(3 3)返回的)返回的ICMPICMP报文中的信源报文中的信源IPIP地址是地址是UDPUDP数据报到达的路由器接数据报到达的路由器接口的口的IPIP地址。这与地址。这与IPIP记录路由选项不同,记录的记录路由选项不同,记录的IPIP地址指的是发送地址指的是发送接口地址。由于每个定义的路由器都有接口地址。由于每个定义的路由器都有2 2个或更多的接口,因此,从个或更多的接口,因此,从A A主机到主机到B B主机上运行主机上运行traceroutetrac

119、eroute程序和从程序和从B B主机到主机到A A主机上运行主机上运行traceroutetraceroute程序所得到的结果可能是不同的。程序所得到的结果可能是不同的。2. IP源站选路选项源站选路(源站选路(source routingsource routing)的思想是由发送者指定路)的思想是由发送者指定路由。它可以采用以下两种形式:由。它可以采用以下两种形式:(1 1)严格的源路由选择。发送端指定)严格的源路由选择。发送端指定IPIP数据报所必须采数据报所必须采用的确切路由。如果一个路由器发现源路由所指定的下用的确切路由。如果一个路由器发现源路由所指定的下一路由器不在其直接连接的网

120、络上,那么它就返回一个一路由器不在其直接连接的网络上,那么它就返回一个“源站路由失败源站路由失败”的的ICMPICMP差错报文。差错报文。(2 2)宽松的源站选路。发送端指定一个数据报经过的)宽松的源站选路。发送端指定一个数据报经过的IPIP地址清单,但是数据报在清单上指定的任意两个地址之地址清单,但是数据报在清单上指定的任意两个地址之间可以通过其它路由器。间可以通过其它路由器。traceroutetraceroute程序为提供了一个查看源站选路的方法,可程序为提供了一个查看源站选路的方法,可以在选项中指明源站路由,然后检查其运行情况。以在选项中指明源站路由,然后检查其运行情况。ICMP协议有

121、许多实际的例子。能灵活运用协议有许多实际的例子。能灵活运用ICMP协议对协议对了解和测试网络情况很有帮助。了解和测试网络情况很有帮助。5.4网际互连和路由选择网际互连和路由选择网际互连的目的是使一个网络上的用户能访问其它网络上的资源,网际互连的目的是使一个网络上的用户能访问其它网络上的资源,使不同网络上的用户互相通信和交换信息。这不仅有利于资源共享,使不同网络上的用户互相通信和交换信息。这不仅有利于资源共享,也可以从整体上提高网络的可靠性。要实现网际互连,必须:也可以从整体上提高网络的可靠性。要实现网际互连,必须:(1 1)在网络之间至少提供一条物理上连接的链路,并具有对这条链)在网络之间至少

122、提供一条物理上连接的链路,并具有对这条链的控制规程;的控制规程;(2 2)在不同网络的进程之间提供合适的路由实现数据交换;)在不同网络的进程之间提供合适的路由实现数据交换;(3 3)有一个始终记录不同网络使用情况并维护该状态信息的统一的)有一个始终记录不同网络使用情况并维护该状态信息的统一的记费服务;记费服务;(4 4)在提供以上服务时,尽可能不对互连在一起的网络的体系结构)在提供以上服务时,尽可能不对互连在一起的网络的体系结构做任何修改。做任何修改。互连的网络在体系结构、层次协议及服务等方面或多或少存在着差互连的网络在体系结构、层次协议及服务等方面或多或少存在着差异,对于异构网来说(例如各种

123、类型的局域网)差异就更大。这种异,对于异构网来说(例如各种类型的局域网)差异就更大。这种差异可能表现在寻址方式、路由选择、最大长度、网络接入机制、差异可能表现在寻址方式、路由选择、最大长度、网络接入机制、用户接入控制、超时控制、差错恢复方法、服务、管理方式等诸方用户接入控制、超时控制、差错恢复方法、服务、管理方式等诸方面的不同。要实现网际互连,就必须消除差异。要实现网际互连,面的不同。要实现网际互连,就必须消除差异。要实现网际互连,就必须消除网络间的差异,这些都是网际互连要解决的问题。就必须消除网络间的差异,这些都是网际互连要解决的问题。5.4.1路由选择概述路由选择概述路由包含两个基本的动作

124、:确定最佳路径和通过网络传输信息。后路由包含两个基本的动作:确定最佳路径和通过网络传输信息。后者也称为(数据)交换。交换相对来说比较简单,而选择路径很复者也称为(数据)交换。交换相对来说比较简单,而选择路径很复杂。杂。1. 路径选择IPIP层的路由实际上是执行一种选择机制,它搜索路由表并决定向哪层的路由实际上是执行一种选择机制,它搜索路由表并决定向哪个网络接口发送分组。而路由选择策略,即一组决定把哪些路由放个网络接口发送分组。而路由选择策略,即一组决定把哪些路由放入路由表的规则,一般由路由守护程序提供。入路由表的规则,一般由路由守护程序提供。路路由由的的一一个个重重要要的的目目标标就就是是为为

125、主主机机提提供供能能够够准准确确反反映映当当前前网网络络状状态态的的一一张张路路由由表表。路路由由表表为为路路由由器器存存储储了了到到达达网网络络上上任任一一目目的的地地所所需需要要的的一一切切必必要要的的信信息息。但但由由于于物物理理上上(cpucpu和和内内存存)的的限限制制,路路由由器器很很难难、有有时时就就根根本本不不可可能能处处理理庞庞大大的的路路由由表表。因因此此,在在不不影影响响到到达达每每个个目目的的地地的的能能力力的的情情况况下下,要要使使路路由由表表最最小小化化。例例如如,路路由由器器在在它它的的路路由由表表中中不不存存储储任任何何非非本本地地网网络络目目的的地地的的信信息

126、息,而而是是将将这这些些“包包”发发送送到到串串行行链链路路另另一一端端的的路路由由器器,由由这这个个路路由由器器来来提提供供必必要要的的信息。信息。为了帮助选路,路由算法初始化并维护包含路径信息的路由表,路为了帮助选路,路由算法初始化并维护包含路径信息的路由表,路径信息根据使用的路由算法不同而不同。径信息根据使用的路由算法不同而不同。metricmetric是路由算法用以确是路由算法用以确定到达目的地的最佳路径的计量标准,如路径长度。路由算法根据定到达目的地的最佳路径的计量标准,如路径长度。路由算法根据许多信息来填充路由表。目的许多信息来填充路由表。目的/ /下一跳地址对告知路由器到达该目的

127、下一跳地址对告知路由器到达该目的最佳方式是把分组发送给代表最佳方式是把分组发送给代表“下一跳下一跳”的路由器,当路由器收到的路由器,当路由器收到一个分组,它就检查其目标地址,尝试将此地址与其一个分组,它就检查其目标地址,尝试将此地址与其“下一跳下一跳”相相联系。联系。路由表还可以包括其它信息。路由表比较路由表还可以包括其它信息。路由表比较metricmetric以确定最佳路径,以确定最佳路径,这些这些metricmetric根据所用的路由算法而不同,下面将介绍常见的根据所用的路由算法而不同,下面将介绍常见的metricmetric。路由器彼此通信,通过交换路由信息维护其路由表,通过分析来自路由

128、器彼此通信,通过交换路由信息维护其路由表,通过分析来自其它路由器的路由更新信息,路由器可以建立网络拓扑图。路由器其它路由器的路由更新信息,路由器可以建立网络拓扑图。路由器间发送的信息的另一个例子是链接状态广播信息,它通知其它路由间发送的信息的另一个例子是链接状态广播信息,它通知其它路由器发送者的链接状态,链接信息用于建立完整的拓扑图,使路由器器发送者的链接状态,链接信息用于建立完整的拓扑图,使路由器可以确定最佳路径。可以确定最佳路径。2. 交换交换算法相对比较简单,对大多数路由协议来说它们是交换算法相对比较简单,对大多数路由协议来说它们是相同的。在大多数情况下,某主机决定向另一个主机发相同的。

129、在大多数情况下,某主机决定向另一个主机发送数据,通过某些方法获得路由器的地址后,源主机发送数据,通过某些方法获得路由器的地址后,源主机发送指向该路由器的物理(送指向该路由器的物理(MACMAC)地址的数据报,其协议地)地址的数据报,其协议地址是指向目的主机的。址是指向目的主机的。路由器查看了数据报的目的协议地址后,确定是否知道路由器查看了数据报的目的协议地址后,确定是否知道如何转发该包,如果路由器不知道如何转发,通常就将如何转发该包,如果路由器不知道如何转发,通常就将之丢弃。如果路由器知道如何转发,就把目的物理地址之丢弃。如果路由器知道如何转发,就把目的物理地址变成下一跳的物理地址并向之发送。

130、下一跳可能就是最变成下一跳的物理地址并向之发送。下一跳可能就是最终的目的主机,否则为另一个路由器,它将执行同样的终的目的主机,否则为另一个路由器,它将执行同样的步骤。当分组在网络中流动时,它的目的物理地址在改步骤。当分组在网络中流动时,它的目的物理地址在改变,但其协议地址始终不变。变,但其协议地址始终不变。上面描述了源系统与目的系统间的交换,上面描述了源系统与目的系统间的交换,ISOISO定义了用于定义了用于描述此过程的分层的术语。在该术语中,没有转发分组描述此过程的分层的术语。在该术语中,没有转发分组能力的网络设备称为端系统(能力的网络设备称为端系统(ES-end systemES-end

131、system),有此能),有此能力的称为中介系统力的称为中介系统ISIS(intermediate systemintermediate system)。)。ISIS又进又进一步分成可在路由域内通信的域内一步分成可在路由域内通信的域内ISIS(intradomain intradomain ISIS)和既可在路由域内又可在域间通信的域间)和既可在路由域内又可在域间通信的域间ISIS(interdomain ISinterdomain IS)。路由域通常被认为是统一管理)。路由域通常被认为是统一管理下的一部分网络,遵守特定的一组管理规则,也称为自下的一部分网络,遵守特定的一组管理规则,也称为自治

132、系统。在某些协议中,路由域可以分为路由区间,但治系统。在某些协议中,路由域可以分为路由区间,但是域内路由协议仍可用于在区间内和区间之间交换数据。是域内路由协议仍可用于在区间内和区间之间交换数据。5.4.2静态路由和动态路由静态路由和动态路由常见的路由配置有四种:常见的路由配置有四种:1. 最小路由 完全与其它所有网络隔离开的网络仅需要最小的路由。完全与其它所有网络隔离开的网络仅需要最小的路由。通常在初始化网络接口时,建立的最小路由表。如果不通常在初始化网络接口时,建立的最小路由表。如果不需要与其它的需要与其它的 TCP/IP TCP/IP 网络通信,而且不划分子网,系网络通信,而且不划分子网,

133、系统的所有路由信息就是最小路由。统的所有路由信息就是最小路由。 2. 静态路由 网络只有一两个网关时,通常使用静态路由来配置网络。网络只有一两个网关时,通常使用静态路由来配置网络。静态路由表由网络配置脚本(使用用户提供的静态路由表由网络配置脚本(使用用户提供的 IP IP)自动)自动地创建或者由系统管理员手工创建(使用地创建或者由系统管理员手工创建(使用/sbin/route 命命令)。该表是静态的,它不会随网络的变化而自动调整。令)。该表是静态的,它不会随网络的变化而自动调整。当网络变化时,必须手工重新配置该路由表。当网络变化时,必须手工重新配置该路由表。 3. 动态路由 动态路由根据路由设

134、备之间所交换的信息动态地构造(并不断地更动态路由根据路由设备之间所交换的信息动态地构造(并不断地更新)路由表。交换路由信息的目的在于通过路由表找到一条数据交新)路由表。交换路由信息的目的在于通过路由表找到一条数据交换的换的“最佳最佳”路径。大多数路由算法可以通过路径的某一特性进行路径。大多数路由算法可以通过路径的某一特性进行计算,也可以在综合多个特性的基础上进行计算,几个比较常用的计算,也可以在综合多个特性的基础上进行计算,几个比较常用的特征是:特征是: (1 1)路径所包含的路由器节点数()路径所包含的路由器节点数(hop counthop count)(2 2)网络传输代价()网络传输代价

135、(costcost)(3 3)带宽()带宽(bandwidthbandwidth)(4 4)延迟()延迟(delaydelay)(5 5)负载()负载(loadload)(6 6)可靠性()可靠性(reliabilityreliability)(7 7)最大传输单元)最大传输单元MTUMTU(maximum transmission unitmaximum transmission unit)动态路由的最大缺点是设备间的路由信息交换会消耗相动态路由的最大缺点是设备间的路由信息交换会消耗相当大的带宽。当大的带宽。 4. 混合的路由第四种是使用静态和动态路由的组合。每个子网上的机第四种是使用静态和

136、动态路由的组合。每个子网上的机器都使用静态路由以到达紧邻它们的机器。那些没有由器都使用静态路由以到达紧邻它们的机器。那些没有由路由表分配特定路由的信息包所使用的路由路由表分配特定路由的信息包所使用的路由 (默认路由)(默认路由)被设置通向一台网关机器,该机器被配置成可以提供动被设置通向一台网关机器,该机器被配置成可以提供动态路由,因此也就了解其子网以外的网络。态路由,因此也就了解其子网以外的网络。5.4.3路由表路由表1. IP路由表运行运行 TCP/IP TCP/IP 的每台计算机的每台计算机上都有一个用于确定优化路由的路由表。上都有一个用于确定优化路由的路由表。路由表是一系列称为路由(路由

137、表是一系列称为路由(routesroutes)的入口,表中包含了本地每一)的入口,表中包含了本地每一台计算机或本地计算机与之通信的网络的网络号(台计算机或本地计算机与之通信的网络的网络号(network IDs network IDs )所在位置的信息。所在位置的信息。路由选择决定是由路由选择决定是由“路由表路由表”控制的。控制的。在互联网上,每台主机或路由器(网关)将在互联网上,每台主机或路由器(网关)将IPIP数据报转发至下一个数据报转发至下一个节点(节点(next hopnext hop)。至于下一个节点以后沿什么路径传送,则由下)。至于下一个节点以后沿什么路径传送,则由下一节点决定。寻

138、找一节点决定。寻找IPIP路由的过程,称为路由的过程,称为IPIP寻径,寻径是通过路由表寻径,寻径是通过路由表实现的。路由表具有如下基本结构(实际上还有其它一些信息):实现的。路由表具有如下基本结构(实际上还有其它一些信息):路由表中指明了要到达目的网络的路由表中指明了要到达目的网络的IPIP数据报转发到哪一个节点,如数据报转发到哪一个节点,如果在路由表中未指定这条路径,则果在路由表中未指定这条路径,则IPIP数据报将无法转发。数据报将无法转发。从上表中可以看出,从上表中可以看出,S S1 1机器在处理机器在处理IPIP数据报时,将目的地是数据报时,将目的地是129.1129.1或或130.1

139、130.1网络的所有网络的所有IPIP数据报发往直接相连的路由器数据报发往直接相连的路由器R R1 1,即,即IPIP地址为地址为128.1.1.2128.1.1.2的设备,的设备,R R1 1收到来自收到来自S S1 1的的IPIP数据报后,根据目的数据报后,根据目的IPIP地址确地址确定将该定将该IPIP数据报再发往哪一个节点,依此类推。数据报再发往哪一个节点,依此类推。IPIP数据报被一级一数据报被一级一级地转发,直至到达目的地。在转发过程中,级地转发,直至到达目的地。在转发过程中,IPIP包的源地址和目的包的源地址和目的地址都不改变,而它将根据下一节点的地址都不改变,而它将根据下一节点

140、的IPIP地址得到相应的物理地址,地址得到相应的物理地址,将其放入相应的物理帧中。根据路径上物理网络的不同,将其放入相应的物理帧中。根据路径上物理网络的不同,IPIP包将被包将被封装成不同的物理帧。另外,封装成不同的物理帧。另外,IPIP数据报在经过路由器时可能被分成数据报在经过路由器时可能被分成多个小的多个小的IPIP数据片,但是源数据片,但是源IPIP和目的和目的IPIP在整个在整个IPIP数据报传送过程中数据报传送过程中不变,被分片时,源不变,被分片时,源IPIP和目的和目的IPIP被复制到每一个分片中。被复制到每一个分片中。S S1 1与与R R1 1拥有直接的物理连接,其通信是通过拥

141、有直接的物理连接,其通信是通过ARPARP广播报文来实现的,广播报文来实现的,S S2 2与与R R2 2之间的处理也是一样。之间的处理也是一样。R R1 1与与R R2 2通过通过X.25X.25或或FRFR或或DDNDDN连接时,通过连接时,通过X.121X.121地址或地址或PVCPVC与与IPIP地址的变换也是直接通信。地址的变换也是直接通信。要显示路由表,可在命令提示符下键入要显示路由表,可在命令提示符下键入routeprint。也可以用。也可以用netstat命令来显示路由表。命令来显示路由表。2.默认网关默认网关由于路由表的维护比较困难,在实际工作中,通由于路由表的维护比较困难,

142、在实际工作中,通常使用默认网关(常使用默认网关(GatewayGateway)来代替。默认网关)来代替。默认网关是将本地子网连接到其他网络的计算机。它具有是将本地子网连接到其他网络的计算机。它具有在互连网上其他网络的网络号(在互连网上其他网络的网络号(network Idnetwork Id)以)以及如何到达这些网络的知识。当本地网络与其它及如何到达这些网络的知识。当本地网络与其它网络互连时,需要默认网关。网络互连时,需要默认网关。因为默认网关包含了在互连网络中其他网络的网因为默认网关包含了在互连网络中其他网络的网络络ID ID 的有关信息,它可以将数据报传送到其他的有关信息,它可以将数据报传

143、送到其他路由器,直到数据报被传递到连接在指定目标的路由器,直到数据报被传递到连接在指定目标的路由器上面为止。路由器上面为止。在图在图 5.15 5.15所示的网络中,所示的网络中,S S1 1要访问的网络比较多,如果全部在路由要访问的网络比较多,如果全部在路由表中说明则比较复杂。为了简化,在表中说明则比较复杂。为了简化,在S S1 1中可以说明一条默认路径:要中可以说明一条默认路径:要访问不在路由表中出现的目的网络的所有访问不在路由表中出现的目的网络的所有IPIP数据报全部送往网关数据报全部送往网关R R1 1,该网关称之为默认路由或默认网关。于是该网关称之为默认路由或默认网关。于是S S1

144、1中的路由表简化为:中的路由表简化为:3.特定主机寻径特定主机寻径假设有图假设有图 5.16 5.16所示网络,所示网络,S1S1访问访问S2S2时希望通过时希望通过FRFR网络以得到较快的网络以得到较快的访问速度,访问访问速度,访问S3S3等其它机器时通过等其它机器时通过X.25X.25网络访问。这时的问题实网络访问。这时的问题实际上是要通过特定的网关访问目的网上的某些特定主机,这个过程际上是要通过特定的网关访问目的网上的某些特定主机,这个过程称之为特定主机寻径。称之为特定主机寻径。此时此时S1S1的路由表如下:的路由表如下:4.IP路由寻径算法路由寻径算法下面讨论下面讨论IPIP路由寻径算

145、法,互联网上的每台主机、每个网关都遵循路由寻径算法,互联网上的每台主机、每个网关都遵循类似的方法。类似的方法。按照从特定到一般的顺序,在路由表中搜寻匹配的目标地址按如下按照从特定到一般的顺序,在路由表中搜寻匹配的目标地址按如下步骤进行:步骤进行:(1 1)按完全匹配的方式检查路由表的的主机路由(搜索匹配的主机)按完全匹配的方式检查路由表的的主机路由(搜索匹配的主机地址);地址);(2 2)在目标地址中略去主机部分,检查路由表的的路由(搜索匹配)在目标地址中略去主机部分,检查路由表的的路由(搜索匹配的子网地址);的子网地址);(3 3)在目标地址中略去子网部分,检查路由表的的路由(搜索匹配)在目

146、标地址中略去子网部分,检查路由表的的路由(搜索匹配的网络地址);的网络地址);(4 4)使用默认网关(默认表项一般在路由表中被指定为一个网络表)使用默认网关(默认表项一般在路由表中被指定为一个网络表项,其网络号为项,其网络号为0 0););(5 5)若默认网关没有指定,则将该包丢弃。)若默认网关没有指定,则将该包丢弃。注意:匹配主机地址步骤始终发生在匹配网络地址步骤之前。注意:匹配主机地址步骤始终发生在匹配网络地址步骤之前。当当IP IP 准备传送一个数据报的时候,将本地(源)准备传送一个数据报的时候,将本地(源)IPIP地址和数据报的目的地址和数据报的目的IPIP地址插入数据报的地址插入数据

147、报的IPIP头头中。跟着检查目的地址,把它和本地维护的路由中。跟着检查目的地址,把它和本地维护的路由表相比较,根据比较的结果确定是将包传到本地表相比较,根据比较的结果确定是将包传到本地主机主机IPIP层的上层协议,或将包直接传送给本地可层的上层协议,或将包直接传送给本地可到达的某一个网卡,或将该包丢弃。路由器将采到达的某一个网卡,或将该包丢弃。路由器将采取最合适的行动。取最合适的行动。由于静态路由器不与动态路由器交换路由信息。由于静态路由器不与动态路由器交换路由信息。如果要使静态路由器向运行如果要使静态路由器向运行RIPRIP或或OSPFOSPF的动态路的动态路由器传送信息,必须在各自的路由表

148、由器传送信息,必须在各自的路由表中用中用routeroute命令增加一条静态路由。命令增加一条静态路由。5.5动态选路协议动态选路协议在网络很小、与其它网络只有单个连接点且没有多余路在网络很小、与其它网络只有单个连接点且没有多余路由时(若主路由失败时,可以使用备用路由),采用静由时(若主路由失败时,可以使用备用路由),采用静态路由是可行的。如果上述三种情况不能全部满足的话,态路由是可行的。如果上述三种情况不能全部满足的话,通常使用动态选路。动态选路协议通常称为路由协议通常使用动态选路。动态选路协议通常称为路由协议(Routing ProtocolRouting Protocol)。)。可被路由

149、的协议(可被路由的协议(Routed ProtocolRouted Protocol)由路由协议传输,)由路由协议传输,亦称为网络协议。网络协议发生在亦称为网络协议。网络协议发生在OSIOSI参考模型的上四层。参考模型的上四层。它们在网络中被路由,例如它们在网络中被路由,例如IPIP、DECnetDECnet、AppleTalkAppleTalk、Novell NetWareNovell NetWare、OSIOSI、Banyan VINESBanyan VINES和和XNS XNS (Xerox Xerox Network SystemNetwork System)。路由协议是实现路由算法的

150、协议,)。路由协议是实现路由算法的协议,它用于路由器间的通信,给网络协议做导向。常见的路它用于路由器间的通信,给网络协议做导向。常见的路由协议有:由协议有:IGRPIGRP、EIGRPEIGRP、OSPFOSPF、EGPEGP、BGPBGP、IS-ISIS-IS及及RIPRIP等。等。5.5.1动态选路动态选路概述概述当相邻路由器之间进行通信,以告知对方每个路由器当当相邻路由器之间进行通信,以告知对方每个路由器当前所连接的网络,这时就出现了动态选路。路由器之间前所连接的网络,这时就出现了动态选路。路由器之间必须采用路由协议(必须采用路由协议(Routing ProtocolRouting Pr

151、otocol)进行通信,路)进行通信,路由协议也称选路协议,它是路由器之间实现路由信息共由协议也称选路协议,它是路由器之间实现路由信息共享的一种机制。路由协议不承担网络上终端用户之间的享的一种机制。路由协议不承担网络上终端用户之间的数据传输任务,它的作用是允许路由器之间相互交换和数据传输任务,它的作用是允许路由器之间相互交换和维护各自的路由表。当一台路由器的路由表由于某种原维护各自的路由表。当一台路由器的路由表由于某种原因发生变化时,它需要及时地将这一变化通知与之相连因发生变化时,它需要及时地将这一变化通知与之相连接的其他路由器,以保证数据的正确传递。路由器上有接的其他路由器,以保证数据的正确

152、传递。路由器上有一个进程称为路由守护程序(一个进程称为路由守护程序(routing daemonrouting daemon),它运),它运行路由协议,并与其相邻的一些路由器进行通信。路由行路由协议,并与其相邻的一些路由器进行通信。路由守护程序根据它从相邻路由器接收到的信息,更新内核守护程序根据它从相邻路由器接收到的信息,更新内核中的路由表。中的路由表。CiscoCisco路由器中用于路由器中用于TCP/IPTCP/IP的路由协议包括路由信息协议(的路由协议包括路由信息协议(Routing Routing Information Protocol, RIPInformation Protoco

153、l, RIP)、内部网关路由协议()、内部网关路由协议(Interior Interior Gateway Routing Protocol, IGRPGateway Routing Protocol, IGRP)、最短路径优先()、最短路径优先(Open Open Shortest Path First, OSPFShortest Path First, OSPF)、)、NetwareNetware链路服务协议(链路服务协议(Netware Netware Link Services Protocol,NLSPLink Services Protocol,NLSP)和增强)和增强IGRPIG

154、RP(Enhanced Interior Enhanced Interior Gateway Routing Protocol ,EIGRPGateway Routing Protocol ,EIGRP)等。)等。动态选路并不改变在内核在动态选路并不改变在内核在IPIP层的选路方式和选路机制(层的选路方式和选路机制(routing routing mechanismmechanism)。内核搜索路由表,查找主机路由、网络路由以及默认)。内核搜索路由表,查找主机路由、网络路由以及默认路由的方式并没有改变。仅仅是放置到路由表中的信息改变了路由的方式并没有改变。仅仅是放置到路由表中的信息改变了当路由

155、随时间变化时,路由是由路由守护程序动态地增加或删除,当路由随时间变化时,路由是由路由守护程序动态地增加或删除,而不是来自于自引导程序文件中的而不是来自于自引导程序文件中的routeroute命令。命令。路由守护程序将选路策略(路由守护程序将选路策略(routing policyrouting policy)加入到系统中,选择)加入到系统中,选择路由并加入到内核的路由表中。如果守护程序发现前往同一信宿有路由并加入到内核的路由表中。如果守护程序发现前往同一信宿有多条路由存在,那么它(以某种方法)将选择最佳路由并加入内核多条路由存在,那么它(以某种方法)将选择最佳路由并加入内核路由表中。如果路由守护

156、程序发现一条链路已经断开(可能是路由路由表中。如果路由守护程序发现一条链路已经断开(可能是路由器崩溃或电话线路不好),它可以删除受影响的路由或增加另一条器崩溃或电话线路不好),它可以删除受影响的路由或增加另一条路由以绕过该链路。路由以绕过该链路。5.5.2路由选择算法路由选择算法下面介绍由下面介绍由DijkstraDijkstra于于19591959年提出的算法。首先为通信子网建立一年提出的算法。首先为通信子网建立一个图,图中每个节点代表一个个图,图中每个节点代表一个IMPIMP,每一条线代表一条通信链路,线,每一条线代表一条通信链路,线上的标注表示两个相邻节点之间的权值。然后把每个节点用从源

157、节上的标注表示两个相邻节点之间的权值。然后把每个节点用从源节点沿已知最佳路径到本节点的代价或距离来标注点沿已知最佳路径到本节点的代价或距离来标注( (在圆括号内在圆括号内) )。开。开始,一条路径也不知道,故所有节点都标注为始,一条路径也不知道,故所有节点都标注为 。随着算法的进行和。随着算法的进行和不断找到了路径,标注随之改变,使之反映较好的路径。一个标注不断找到了路径,标注随之改变,使之反映较好的路径。一个标注可以是暂时性的,亦可以是永久性的。最初,所有的标注都是暂时可以是暂时性的,亦可以是永久性的。最初,所有的标注都是暂时性的。当发现标注代表了从源节点到该节点的最短可能路径时,就性的。当

158、发现标注代表了从源节点到该节点的最短可能路径时,就使它成为永久性的,不再进行修改。使它成为永久性的,不再进行修改。图图5.175.17给出了一个加权无向图,要找出给出了一个加权无向图,要找出A A到到D D的最短路径。其中线上的最短路径。其中线上的标记表示代价,不妨称之为距离。先将的标记表示代价,不妨称之为距离。先将A A节点涂黑作为一个永久性节点涂黑作为一个永久性节点。接下来,检查与节点。接下来,检查与A A邻接的每个节点邻接的每个节点( (此时,此时,A A是工作节点是工作节点) ),并,并用到用到A A的距离重新标注这些节点。每当重新标注一个节点时,也标注的距离重新标注这些节点。每当重新

159、标注一个节点时,也标注上此次检查所依据的基准节点,以便可以在此后重建最终路径。检上此次检查所依据的基准节点,以便可以在此后重建最终路径。检查完与查完与A A相邻的每个节点后,把图中所有被临时标记的节点中具有最相邻的每个节点后,把图中所有被临时标记的节点中具有最小标记的节点变为永久性的节点。如图小标记的节点变为永久性的节点。如图5.17(b)5.17(b)所示,这个节点所示,这个节点B(2B(2,A)A)成为新工作节点。成为新工作节点。从从B B开始检查所有与它邻接的节点,如果节点开始检查所有与它邻接的节点,如果节点B B上的标记上的标记与与B B到某个节点的距离的和比该节点的标记要小,那么就到

160、某个节点的距离的和比该节点的标记要小,那么就得到了一条更短的路径,而这个节点就会被重新标记。得到了一条更短的路径,而这个节点就会被重新标记。注意,任一节点标记中的距离都是从源节点注意,任一节点标记中的距离都是从源节点A A起始计算的。起始计算的。当所有与工作节点相邻接的节点都已检查并且可能修改当所有与工作节点相邻接的节点都已检查并且可能修改的临时标记都已经重新标注之后,这时便在全图的临时的临时标记都已经重新标注之后,这时便在全图的临时标记节点中找到具有最小标记值的节点。该节点变为永标记节点中找到具有最小标记值的节点。该节点变为永久节点,并且又成为下一个检查周期的工作节点。图久节点,并且又成为下

161、一个检查周期的工作节点。图5.185.18的的(c)(c)至至(i)(i)示出了计算从示出了计算从A A到到D D最短路径接下去的所最短路径接下去的所有步骤,其中的箭头指示工作节点。有步骤,其中的箭头指示工作节点。在一条最佳路由上有一个最佳原理成立,即如果在一条最佳路由上有一个最佳原理成立,即如果从节点从节点A A到节点到节点B B的最佳路由上经过了节点的最佳路由上经过了节点C C,则,则在该最佳路由上从节点在该最佳路由上从节点C C到到B B的那一段也是从的那一段也是从C C到到B B的最佳路由,从的最佳路由,从A A到到C C也如此。所以一个节点只要也如此。所以一个节点只要记录最佳路由上的

162、下一节点而不需要记录所有节记录最佳路由上的下一节点而不需要记录所有节点。点。下面介绍两种基本的路由算法,即距离向量法下面介绍两种基本的路由算法,即距离向量法(DistanceVectorRouting)和链路状态算法)和链路状态算法(Link-StateRouting)。路由协议和路由算法只)。路由协议和路由算法只针对动态路由。针对动态路由。5.5.3距离向量法和路由信息协议距离向量法和路由信息协议在距离向量法(在距离向量法(Distance Vector RoutingDistance Vector Routing)中,相邻路由器之间周)中,相邻路由器之间周期性地相互交换各自的路由表备份。当

163、网络拓扑结构发生变化时,期性地相互交换各自的路由表备份。当网络拓扑结构发生变化时,路由器之间也将及时地相互通知有关变更信息。路由器之间也将及时地相互通知有关变更信息。 每一个路由器从与之直接相邻的路由器处获得对方的路由表。例如,每一个路由器从与之直接相邻的路由器处获得对方的路由表。例如,路由器路由器B B从路由器从路由器A A和和C C那里获得路由信息后,根据其所得到的信息对那里获得路由信息后,根据其所得到的信息对自己的路由表进行加工,然后将加工后的路由表再传送给路由器自己的路由表进行加工,然后将加工后的路由表再传送给路由器A A和和C C。路由器通过这种方法不断地积累路由信息,直到最终收敛为

164、止。路由器通过这种方法不断地积累路由信息,直到最终收敛为止。所谓收敛,是指直接或间接交换路由信息的一组路由器在网络的拓所谓收敛,是指直接或间接交换路由信息的一组路由器在网络的拓扑结构方面或者说在网络的路由信息方面达成一致。路由协议必须扑结构方面或者说在网络的路由信息方面达成一致。路由协议必须通过某种算法使各路由器尽快达到收敛状态。通过某种算法使各路由器尽快达到收敛状态。值得研究的是,在这种算法中,路由器不可能获知整个网络确切的值得研究的是,在这种算法中,路由器不可能获知整个网络确切的拓扑结构。路由器是如何根据收到的路由信息对自身路由表进行加拓扑结构。路由器是如何根据收到的路由信息对自身路由表进

165、行加工,又是如何达到收敛的呢?工,又是如何达到收敛的呢? 1.距离向量法(距离向量法(DistanceVectorRouting)在距离向量法中,相邻路由器之间周期性地相互交换各自的路由表在距离向量法中,相邻路由器之间周期性地相互交换各自的路由表备份。当网络拓扑结构发生变化时,路由器之间也将及时地相互通备份。当网络拓扑结构发生变化时,路由器之间也将及时地相互通知有关变更信息。知有关变更信息。在图在图 5.19 5.19中,每一个路由器从与之直接相邻的中,每一个路由器从与之直接相邻的路由器处获得对方的路由表。例如,路由器路由器处获得对方的路由表。例如,路由器B B从从路由器路由器A A和和C C

166、获得路由信息后,对自己的路由表进获得路由信息后,对自己的路由表进行加工,加工后的路由表再传送给路由器行加工,加工后的路由表再传送给路由器A A和和C C。路由器通过这种方法不断地积累路由信息,直到路由器通过这种方法不断地积累路由信息,直到最终收敛为止。最终收敛为止。所谓收敛,是指直接或间接交换路由信息的一组所谓收敛,是指直接或间接交换路由信息的一组路由器在网络的拓扑结构方面或者说在网络的路路由器在网络的拓扑结构方面或者说在网络的路由信息方面达成一致。路由协议必须通过某种算由信息方面达成一致。路由协议必须通过某种算法使各路由器尽快达到收敛状态。法使各路由器尽快达到收敛状态。1.路由表的建立与更新

167、路由表的建立与更新在图在图5.20中,有三个路由器:中,有三个路由器:A、B和和C。路由器。路由器A的两个网络接口的两个网络接口E0和和S0分别连接在分别连接在10.1.0.0和和10.2.0.0网段上;路由器网段上;路由器B的两个网络接的两个网络接口口S0和和S1分别连接在分别连接在10.2.0.0和和10.3.0.0网段上;路由器网段上;路由器C的网络接口的网络接口S0和和E0分别连接在分别连接在10.3.0.0和和10.4.0.0网段上。网段上。图图 5.20 5.20各路由器路由表的前两行,通过路由器的网络接口到与之直各路由器路由表的前两行,通过路由器的网络接口到与之直接相连的网段的网

168、络连接,向量距离设置为接相连的网段的网络连接,向量距离设置为0 0。就是最初的路由表。就是最初的路由表。当路由器当路由器B和和A以及以及B和和C之间相互交换路由信息后,它们会更新各自之间相互交换路由信息后,它们会更新各自的路由表。例如,路由器的路由表。例如,路由器B通过网络端口通过网络端口S1收到路由器收到路由器C的路由信息的路由信息(10.3.0.0,S0,0)和()和(10.4.0.0,E0,0)后,在自己的路由表中增加一条)后,在自己的路由表中增加一条(10.4.0.0,S1,1)路由信息。该信息表示)路由信息。该信息表示:通过路由器通过路由器B的网络接口的网络接口S1可以访问到可以访问

169、到10.4.0.0网段,其向量距离为网段,其向量距离为1,该向量距离是在路由器,该向量距离是在路由器C的基础上加的基础上加1获得的。同样,路由器获得的。同样,路由器B还会产生一条(还会产生一条(10.1.0.0,S0,1)路由,这条路由是通过网络端口路由,这条路由是通过网络端口S0从路由器从路由器A获得的。如此反复,直获得的。如此反复,直到最终收敛,形成图到最终收敛,形成图5.21所示的路由表。所示的路由表。简单地说,距离向量算法要求每一个路由器把它简单地说,距离向量算法要求每一个路由器把它的整个路由表发送给与它直接连接的其他路由器。的整个路由表发送给与它直接连接的其他路由器。路由表中的每一条

170、记录都包括目标逻辑地址、相路由表中的每一条记录都包括目标逻辑地址、相应的网络接口和该条路由的向量距离。当一个路应的网络接口和该条路由的向量距离。当一个路由器从它的邻居处收到更新信息时,它会将更新由器从它的邻居处收到更新信息时,它会将更新信息与本身的路由表相比较。如果该路由器比较信息与本身的路由表相比较。如果该路由器比较出一条新路由或是找到一条比当前路由更好的路出一条新路由或是找到一条比当前路由更好的路由时,它会对路由表进行更新:将从该路由器到由时,它会对路由表进行更新:将从该路由器到邻居之间的向量距离与更新信息中的向量距离相邻居之间的向量距离与更新信息中的向量距离相加作为新路由的向量距离。上例

171、中将相邻路由器加作为新路由的向量距离。上例中将相邻路由器之间的向量距离设置为之间的向量距离设置为1 1。2.解决路由环路问题的方法解决路由环路问题的方法要实现收敛,必须解决路由器之间的路由环路(要实现收敛,必须解决路由器之间的路由环路(Routing LoopsRouting Loops)问)问题。下面的例子比较直观地讲述了路由环路问题的产生。假设在图题。下面的例子比较直观地讲述了路由环路问题的产生。假设在图 5.185.18中,网络中,网络10.4.0.010.4.0.0发生故障,在网络发生故障前,路由器发生故障,在网络发生故障前,路由器A A、B B、C C的路由表已经收敛。下面的情况将逐

172、步发生:的路由表已经收敛。下面的情况将逐步发生: (1 1)网络发生故障后,路由器)网络发生故障后,路由器C C检测到故障,停止通过接口检测到故障,停止通过接口E0E0向外向外发送数据报,并通过接口发送数据报,并通过接口S0S0通知路由器通知路由器B B。在路由器。在路由器A A没有收到故障没有收到故障通知前,它仍然相信可以通过路由器通知前,它仍然相信可以通过路由器B B访问到访问到10.4.0.010.4.0.0(路由器(路由器A A路路由表的最后一行),这条路径的距离为由表的最后一行),这条路径的距离为2 2。 (2 2)由于路由器)由于路由器B B的路由表中指示有一条通往的路由表中指示有

173、一条通往10.4.0.010.4.0.0的路径,因的路径,因此,如果路由器此,如果路由器B B在收到路由器在收到路由器C C的故障通知前将路由表发送到的故障通知前将路由表发送到C C的话,的话,C C会认为通过会认为通过B B可以访问可以访问10.4.0.0,10.4.0.0,并在此基础上修改自己的路由表,并在此基础上修改自己的路由表,将路由表中第二条记录修改为(将路由表中第二条记录修改为(10.4.0.0,S0,210.4.0.0,S0,2), ,其中其中S0S0表示通过表示通过接口接口S0S0可以访问可以访问10.4.0.0,10.4.0.0,其距离为其距离为2 2。 (3 3)这样一来,

174、路由器)这样一来,路由器A A、B B、C C都认为通过其他的路由器存在着一都认为通过其他的路由器存在着一条通往条通往10.4.0.010.4.0.0的网络路径,结果导致目标地址为的网络路径,结果导致目标地址为10.4.0.010.4.0.0的数据的数据报在这三个路由器之间来回地传递,从而造成一条路由环路。报在这三个路由器之间来回地传递,从而造成一条路由环路。 解决路由环路问题可以采用以下几种方法:解决路由环路问题可以采用以下几种方法: (1 1)水平分割)水平分割 规定,路由器必须有选择地将路由表中的路由信息发送给相邻的其规定,路由器必须有选择地将路由表中的路由信息发送给相邻的其他路由器,而

175、不是发送整个路由表。具体一点,即对于某条路由信他路由器,而不是发送整个路由表。具体一点,即对于某条路由信息来说,不将它发送给该条路由信息的来源方向。每一条路由信息息来说,不将它发送给该条路由信息的来源方向。每一条路由信息都不通过该条路由信息中所指的网络端口向外发送。这样就可以避都不通过该条路由信息中所指的网络端口向外发送。这样就可以避免路由环路的产生。免路由环路的产生。 (2 2)定义一个最大值)定义一个最大值 定义一个向量距离的最大值,可以在一定程度上防止形成路由环路,定义一个向量距离的最大值,可以在一定程度上防止形成路由环路,例如例如RIPRIP协议定义协议定义Hop CountHop C

176、ount的最大值为的最大值为1616。使用这种方法,路由协。使用这种方法,路由协议在向量距离超过协议允许的最大值前,允许路由环路的存在,一议在向量距离超过协议允许的最大值前,允许路由环路的存在,一旦路由信息的向量距离超过规定的最大值,该路由信息将被标记为旦路由信息的向量距离超过规定的最大值,该路由信息将被标记为不可到达。不可到达。 与此相关的另外一个概念是与此相关的另外一个概念是TTLTTL(Time To LiveTime To Live)。)。TTLTTL是一个包含是一个包含在数据报中的参数,数据报每经过一次路由器的路由处理,在数据报中的参数,数据报每经过一次路由器的路由处理,TTLTTL

177、值减值减1 1,当,当TTLTTL值等于值等于0 0时,路由器将放弃对该数据报的处理,这样可避免时,路由器将放弃对该数据报的处理,这样可避免数据报在某个环路中无休止的传递。数据报在某个环路中无休止的传递。 (3 3)挂起计数器)挂起计数器 所谓挂起计数器(所谓挂起计数器(Hold-Down TimersHold-Down Timers)是指路由器需要将某些可能)是指路由器需要将某些可能导致路由环路的网络状态的变化保留一段时间,在这段时间内,路导致路由环路的网络状态的变化保留一段时间,在这段时间内,路由器将视情况对这些网络状态的变化所产生的路由信息进行更改。由器将视情况对这些网络状态的变化所产生

178、的路由信息进行更改。 当一个路由器从它的邻居那儿收到以前某个可访问的网络现在变为当一个路由器从它的邻居那儿收到以前某个可访问的网络现在变为不可访问的信息时,路由器将指向该网络的路由设置为不可访问,不可访问的信息时,路由器将指向该网络的路由设置为不可访问,同时启动计数器。如果在计数器到期前,该路由器又从同一个邻居同时启动计数器。如果在计数器到期前,该路由器又从同一个邻居那儿收到该网络可以访问的信息,则它会重新将网络标记为可访问,那儿收到该网络可以访问的信息,则它会重新将网络标记为可访问,并删除计数器。并删除计数器。 如果该路由器从另外一个邻居那儿收到一条比原路由更好的访问该如果该路由器从另外一个

179、邻居那儿收到一条比原路由更好的访问该网络的路由信息,它同样将该网络标记为可访问,以新的路由替代网络的路由信息,它同样将该网络标记为可访问,以新的路由替代原路由,并删除计数器。如果在计数器到期前,该路由器从另外一原路由,并删除计数器。如果在计数器到期前,该路由器从另外一个邻居那儿收到一条访问该网络的比原路由差的路由信息,这条信个邻居那儿收到一条访问该网络的比原路由差的路由信息,这条信息将被忽略。这样做能够使息将被忽略。这样做能够使“网络不可访问网络不可访问”的信息有更多的时间的信息有更多的时间在整个网络上传播。在整个网络上传播。 计数器到期后,该路由标记为不可到达,如果这时收到该网络可以计数器到

180、期后,该路由标记为不可到达,如果这时收到该网络可以访问的路由信息,路由器的处理方式同上。访问的路由信息,路由器的处理方式同上。 计数器计数时间的长短应该略大于路由信息传遍整个网络所需的时计数器计数时间的长短应该略大于路由信息传遍整个网络所需的时间。间。 (4 4)触发式更新)触发式更新 触发式更新(触发式更新(Triggered UpdatesTriggered Updates)是指路由器之间不单纯按照预定)是指路由器之间不单纯按照预定的时间周期进行路由信息交换,而是在路由表发生变化的时候及时的时间周期进行路由信息交换,而是在路由表发生变化的时候及时地进行路由信息交换。触发式更新普遍地应用在各

181、种路由协议中。地进行路由信息交换。触发式更新普遍地应用在各种路由协议中。 一般说来,路由表在没有发生变化的情况下,将按照预定的时间周一般说来,路由表在没有发生变化的情况下,将按照预定的时间周期进行交换,例如期进行交换,例如IP RIPIP RIP协议规定路由器之间每隔协议规定路由器之间每隔3030秒交换一次路秒交换一次路由信息,由信息,IPX RIPIPX RIP协议则规定为协议则规定为6060秒。但是当路由表由于某种原因发秒。但是当路由表由于某种原因发生变化时,路由器立刻将路由表的变化情况通知邻近的路由器,再生变化时,路由器立刻将路由表的变化情况通知邻近的路由器,再由它们去通知其他的路由器,

182、这样一波接一波,在不发生意外的情由它们去通知其他的路由器,这样一波接一波,在不发生意外的情况下就可以将该路由的变化通知到网络中所有的路由器。意外情况况下就可以将该路由的变化通知到网络中所有的路由器。意外情况包括路由更新信息在网络传输过程中的丢失或者路由更新信息没有包括路由更新信息在网络传输过程中的丢失或者路由更新信息没有及时地发出,这都有可能导致路由环路的产生。及时地发出,这都有可能导致路由环路的产生。 触发式更新经常和挂起计数器技术结合在一起来解决路由环路问题。触发式更新经常和挂起计数器技术结合在一起来解决路由环路问题。 3.路由信息协议路由信息协议路由信息协议路由信息协议RIPRIP(Ro

183、uting Information ProtocolRouting Information Protocol)在)在计算路由时使用了计算路由时使用了“距离向量(距离向量(distance vectordistance vector)”的的算法,因此也被称作算法,因此也被称作“距离向量路由协议距离向量路由协议”(distance distance vector routing protocolvector routing protocol)。)。 RIPRIP的特点是路由器间定时地和相邻路由器交换网络信息。的特点是路由器间定时地和相邻路由器交换网络信息。路由器一旦从相邻路由器获取了新的知识,就将

184、其追加路由器一旦从相邻路由器获取了新的知识,就将其追加到自己的数据库,并将该信息传递给所有的相邻的路由到自己的数据库,并将该信息传递给所有的相邻的路由器。相邻路由器做同样的操作,经过若干次传递,自治器。相邻路由器做同样的操作,经过若干次传递,自治系统内的所有路由器都能获得完整的路由信息。系统内的所有路由器都能获得完整的路由信息。 RIPRIP报文用报文用UDPUDP数据报来传送。在数据报来传送。在IPv4IPv4中中RIPRIP使用的端口号使用的端口号是是520520。为了区别于其他的。为了区别于其他的UDPUDP应用,规定应用,规定RIPngRIPng的公认专的公认专用用UDPUDP端口号为

185、端口号为521521。主动寻址更新报文的源。主动寻址更新报文的源/ /目的的端口目的的端口都是都是RIPngRIPng端口,应答的更新报文送往发起请求的端口。端口,应答的更新报文送往发起请求的端口。 在在RIPRIP中,为支持寻址操作使用了三个不同的定时器。中,为支持寻址操作使用了三个不同的定时器。 第一个是启动定时进行第一个是启动定时进行RIPRIP更新操作的定时器。此定时器通常设置成更新操作的定时器。此定时器通常设置成3030秒。在秒。在RIPRIP标准中对其进一步加以限制,它要求路由器对更新报文标准中对其进一步加以限制,它要求路由器对更新报文的发送间隔采用随机数,将的发送间隔采用随机数,

186、将RIPRIP更新报文的间隔选取在更新报文的间隔选取在2525秒到秒到3535秒之秒之间。利用随机间隔可均衡业务量,避免网络上所有的路由器以相同间。利用随机间隔可均衡业务量,避免网络上所有的路由器以相同的定时发送更新报文,减少路由器的冲突。的定时发送更新报文,减少路由器的冲突。 此外,在触发更新中,此外,在触发更新中, RIPRIP规定不论何时发送了报文都不对规定不论何时发送了报文都不对3030秒定时器复位。因为如果复位,秒定时器复位。因为如果复位,所有的路由器在发送触发更新后就会同时启动定时器,各个路由器所有的路由器在发送触发更新后就会同时启动定时器,各个路由器的更新报文的发送间隔就会发生冲

187、突。的更新报文的发送间隔就会发生冲突。RIPRIP使用的第二个定时器是期满(使用的第二个定时器是期满(expirationexpiration)定时器。路由器只要)定时器。路由器只要收到通往特定信宿的路由,就对通往该信宿的期满定时器初始化。收到通往特定信宿的路由,就对通往该信宿的期满定时器初始化。期满定时器虽然被设定为期满定时器虽然被设定为180180秒,但在稳定的网络中总是每隔秒,但在稳定的网络中总是每隔3030秒被秒被初始化。当网络不稳定时,此定时器的时间区间表示该路由无效。初始化。当网络不稳定时,此定时器的时间区间表示该路由无效。 RIPRIP最后一个定时器是垃圾收集(最后一个定时器是垃

188、圾收集(garbage collectiongarbage collection)定时器。路)定时器。路由器对无效路由打上度量为无穷大的无效标记并将垃圾收集定时器由器对无效路由打上度量为无穷大的无效标记并将垃圾收集定时器置位。此时,定时器在置位。此时,定时器在120120秒的区间内工作。在该期间内路由器将度秒的区间内工作。在该期间内路由器将度量代价置成无穷大的同时,继续公布该信宿。以这种方法公布路由,量代价置成无穷大的同时,继续公布该信宿。以这种方法公布路由,相邻路由表就能迅速从寻址表中删除该路由。相邻路由表就能迅速从寻址表中删除该路由。 RIPRIP协议的缺陷协议的缺陷(1 1)网络直径较小

189、。)网络直径较小。RIPRIP将度量(即代价)无穷大定义为将度量(即代价)无穷大定义为1616,这一,这一定义对使用定义对使用RIPRIP的所有网络的规模作出了严格的限制。因度量必须是的所有网络的规模作出了严格的限制。因度量必须是整数,故网络的代价至少为整数,故网络的代价至少为1 1。在基于。在基于RIPRIP的的InternetInternet中,所有的系中,所有的系统距其他任何系统不能超过统距其他任何系统不能超过1515个网络。这一大小被称作网络直径。个网络。这一大小被称作网络直径。 这一限制对管理员分配代价的灵活性是一个很大的制约。管理员分这一限制对管理员分配代价的灵活性是一个很大的制约

190、。管理员分配代价最直接的方法是对各个网络的代价都设成配代价最直接的方法是对各个网络的代价都设成1 1。但是,在这种分。但是,在这种分配方式下,配方式下,RIPRIP就会选择代价最小的路径,而不管该路径上的信道容就会选择代价最小的路径,而不管该路径上的信道容量的大小。因此会舍弃量的大小。因此会舍弃“较长较长”的高速路径而通过低效的的高速路径而通过低效的“较短较短”路径传送数据。为了避免这种情况的发生,管理员可将大于路径传送数据。为了避免这种情况的发生,管理员可将大于1 1的代价的代价分配给低效链路,人为地提高其代价。其结果是最大网络直径随之分配给低效链路,人为地提高其代价。其结果是最大网络直径随

191、之变小,进一步限制了变小,进一步限制了RIPRIP的网络规模。的网络规模。 (2 2)对网络变化的反应较慢。)对网络变化的反应较慢。RIPRIP网络中的路由器从路由失效到将网络中的路由器从路由失效到将其识别出来要等待其识别出来要等待180180秒,而在秒,而在OSPFOSPF中典型值是中典型值是1212秒。秒。 (3 3)不支持组播。在)不支持组播。在RIPRIP中没有公布组成员信息的方法,因此不支中没有公布组成员信息的方法,因此不支持组播寻址。为实现组播寻址需配合使用其他协议。持组播寻址。为实现组播寻址需配合使用其他协议。 5.5.4链路状态算法及开放最短路径优先链路状态算法及开放最短路径优

192、先链路状态算法(链路状态算法(Link-State RoutingLink-State Routing)有时也称为最短)有时也称为最短路径优先算法(路径优先算法(SPF-Shortest Path FirstSPF-Shortest Path First)。与向量距)。与向量距离算法不同的是,这种算法需要每一个路由器都保存一离算法不同的是,这种算法需要每一个路由器都保存一份最新的关于整个网络的网络拓扑结构数据库,因此路份最新的关于整个网络的网络拓扑结构数据库,因此路由器不仅清楚地知道从本路由器出发能否到达某一指定由器不仅清楚地知道从本路由器出发能否到达某一指定网络,而且在能到达的情况下,还能选

193、择出最短的路径网络,而且在能到达的情况下,还能选择出最短的路径以及使用该路径将经过哪些路由器。使用链路状态算法以及使用该路径将经过哪些路由器。使用链路状态算法的路由协议有的路由协议有NLSPNLSP,OSPFOSPF和和IS-ISIS-IS。 链路状态算法使用链路状态数据报链路状态算法使用链路状态数据报LSPLSP(Link-State Link-State PacketsPackets)、网络拓扑数据库、)、网络拓扑数据库、SPFSPF路径选择算法和路径选择算法和SPFSPF树,树,最终计算出从该路由器到其他目标网络的最短路径,这最终计算出从该路由器到其他目标网络的最短路径,这些路径就构成了

194、路由表。在算法中,需要给每个路由器些路径就构成了路由表。在算法中,需要给每个路由器一个唯一的名字或标识。一个唯一的名字或标识。 1. 链路状态(Link-State Routing)网络发现机制该机制用于创建整个网络的一幅全景,所有的路由器都该机制用于创建整个网络的一幅全景,所有的路由器都保存该的一个副本,从而保持一致。工作过程如下。保存该的一个副本,从而保持一致。工作过程如下。(1 1)每个路由器都必须知道它的邻居是谁,这一点需要)每个路由器都必须知道它的邻居是谁,这一点需要相邻的路由器之间互相通知。相邻的路由器之间互相通知。(2 2)每个路由器都将)每个路由器都将LSPLSP(链路状态数据

195、包)发送给网(链路状态数据包)发送给网络上其他的路由器,络上其他的路由器,LSPLSP的内容包括该路由器通过哪些网的内容包括该路由器通过哪些网络与哪些路由器直接连接,以及相应连接的传输代价。络与哪些路由器直接连接,以及相应连接的传输代价。以以2 2中所示的网络为例,路由器中所示的网络为例,路由器B B向外发送的向外发送的LSPLSP包括包括(B,A,10.2.0.0B,A,10.2.0.0), ,(B,C,10.3.0.0B,C,10.3.0.0), ,这表示这表示B B通过通过10.2.0.010.2.0.0与与A A连接,通过连接,通过10.3.0.010.3.0.0与与C C连接(这里假

196、设相连接(这里假设相邻路由器之间的传输代价为邻路由器之间的传输代价为1 1)。)。(3 3)路由器根据收到的)路由器根据收到的LSPLSP逐步地构建起网络的拓扑数逐步地构建起网络的拓扑数据库(即据库(即SPFSPF树,树的根接点为该路由器本身)。树,树的根接点为该路由器本身)。(4 4)路由器根据网络的拓扑结构数据库判断目标网络是)路由器根据网络的拓扑结构数据库判断目标网络是否可到达以及确定其最短路径。否可到达以及确定其最短路径。(5 5)路由器将第)路由器将第4 4步计算出的最短路径以及所使用的该步计算出的最短路径以及所使用的该路由器的网络端口信息添加到路由表中。路由器的网络端口信息添加到路

197、由表中。(6 6)链路状态算法要求各路由器的网络拓扑结构数据库)链路状态算法要求各路由器的网络拓扑结构数据库相互一致。因此,当链路状态发生变化时,最先检测到相互一致。因此,当链路状态发生变化时,最先检测到这一变化的路由器需要将变化的情况发送给其他的路由这一变化的路由器需要将变化的情况发送给其他的路由器。每当路由器收到新的器。每当路由器收到新的LSPLSP,它都会重新计算最短路径,它都会重新计算最短路径并更新路由表,保证各路由器在网络拓扑结构方面重新并更新路由表,保证各路由器在网络拓扑结构方面重新达成一致。达成一致。2.链路状态算法要考虑的因素链路状态算法要考虑的因素在采用链路状态算法时,应当考

198、虑以下两方面的因素:在采用链路状态算法时,应当考虑以下两方面的因素: (1 1)路由器的存储空间和处理能力)路由器的存储空间和处理能力 由于采用链路状态算法时路由器不但要保存来自其他路由于采用链路状态算法时路由器不但要保存来自其他路由器的由器的LSPLSP,而且还要保存网络的拓扑结构和路由表,所,而且还要保存网络的拓扑结构和路由表,所以其存储空间一定要大。另外,根据以其存储空间一定要大。另外,根据SPFSPF树计算最短路径树计算最短路径的算法较为复杂,因此要求路由器的处理能力要强。的算法较为复杂,因此要求路由器的处理能力要强。 (2 2)带宽)带宽 在建立在建立SPF树的最初阶段,有大量的树的

199、最初阶段,有大量的LSP需要通过网络进需要通过网络进行传输,因此对网络带宽的要求较高。如果带宽不够,行传输,因此对网络带宽的要求较高。如果带宽不够,不仅影响路由器收敛的速度,而且会影响正常的数据传不仅影响路由器收敛的速度,而且会影响正常的数据传输。输。3.可能出现的问题及解决办法可能出现的问题及解决办法链路状态算法同样必须保证所有的路由器能够收到所有必需的链路状态算法同样必须保证所有的路由器能够收到所有必需的LSP。图图5.22给出了一个可能发生问题的案例。给出了一个可能发生问题的案例。假设路由器假设路由器C C首先检测到首先检测到C C和和D D之间的之间的Network 1Network

200、1发生故障,发生故障,那么象前面说的那样,路由器那么象前面说的那样,路由器C C将把该故障情况以将把该故障情况以LSPLSP的的方式发送给网络上的其他路由器方式发送给网络上的其他路由器B B、D D、和、和A A(为了讲述方(为了讲述方便,称该便,称该LSPLSP为为LSP1LSP1)。假设)。假设Network 1Network 1很快地就恢复了很快地就恢复了正常,而且路由器正常,而且路由器D D先检测到,那么路由器先检测到,那么路由器D D将把将把Network Network 1 1恢复正常的情况以恢复正常的情况以LSPLSP的形式再发送给路由器的形式再发送给路由器A A、C C和和B

201、B(称之为(称之为LSP2LSP2)。如果由于某种原因(如因不同网络的)。如果由于某种原因(如因不同网络的传输速度不同或传输路径长度不同等),传输速度不同或传输路径长度不同等),LSP2LSP2先于先于LSP1LSP1到达路由器到达路由器A A。这时,路由器。这时,路由器A A究竟应该把哪一个究竟应该把哪一个LSPLSP作为作为反映最终情况的反映最终情况的LSPLSP呢?实际的应用中,网络的拓扑结构呢?实际的应用中,网络的拓扑结构要复杂的多,而且各方面因素的影响也很多。例如:路要复杂的多,而且各方面因素的影响也很多。例如:路由器启动顺序的先后将影响到由器启动顺序的先后将影响到LSPLSP发送的

202、顺序,大型网络发送的顺序,大型网络中不同子网的网络传输速度也可能有较大差别等等。中不同子网的网络传输速度也可能有较大差别等等。 链路状态算法可以采用以下几种技术来解决这些潜在问题:链路状态算法可以采用以下几种技术来解决这些潜在问题: (1 1)延长)延长LSPLSP的发送周期。的发送周期。 (2 2)以多点发送)以多点发送LSPLSP(MulticastMulticast)代替广播发送)代替广播发送LSPLSP(BroadcastBroadcast)。)。 在由多个在由多个LANLAN互连组成的网络中,可以指定一个或多个路由器用于存互连组成的网络中,可以指定一个或多个路由器用于存放各路由器发送

203、的放各路由器发送的LSPLSP,其他的路由器通过这些指定路由器获得一致,其他的路由器通过这些指定路由器获得一致的拓扑数据。的拓扑数据。 在大型网络中,可以设定一个由不同区域组成的层次结构。某一级在大型网络中,可以设定一个由不同区域组成的层次结构。某一级区域中的路由器不必存储和处理来自不同区域路由器的区域中的路由器不必存储和处理来自不同区域路由器的LSPLSP。 (3 3)使用)使用LSPLSP时间戳、顺序号等手段来解决时间戳、顺序号等手段来解决LSPLSP发送过程中的顺序问发送过程中的顺序问题。题。 4.开放最短路径优先开放最短路径优先OSPFOSPF(Open Shortest Path F

204、irstOpen Shortest Path First)是一个链路状态协)是一个链路状态协议。在链路状态协议中,路由器并不与其邻站交换距离议。在链路状态协议中,路由器并不与其邻站交换距离信息。而是每个路由器主动地测试与其邻站相连链路的信息。而是每个路由器主动地测试与其邻站相连链路的状态,将这些信息发送给它的其它邻站,而邻站将这些状态,将这些信息发送给它的其它邻站,而邻站将这些信息在自治系统中传播出去。每个路由器接收这些链路信息在自治系统中传播出去。每个路由器接收这些链路状态信息,并建立起完整的路由表。状态信息,并建立起完整的路由表。OSPFOSPF克服了采用距克服了采用距离向量的离向量的RI

205、PRIP的限制,是最常用的另一种内部网关协议。的限制,是最常用的另一种内部网关协议。从实际角度来看,链路状态协议总是比距离向量协议收从实际角度来看,链路状态协议总是比距离向量协议收敛更快。收敛的意思是在路由发生变化后,例如在路由敛更快。收敛的意思是在路由发生变化后,例如在路由器关闭或链路出故障后,可以稳定下来。器关闭或链路出故障后,可以稳定下来。OSPFOSPF与与RIPRIP(以及其它选路协议)的不同点还在于,(以及其它选路协议)的不同点还在于,OSPFOSPF直接使用直接使用IPIP。也就是说,它并不使用。也就是说,它并不使用UDPUDP或或TCPTCP。对于。对于IPIP首部的首部的pr

206、otocolprotocol字段,字段,OSPFOSPF有其自己的值。有其自己的值。在图在图5.23中,主干中,主干backboneArea里有两台边界路由器,里有两台边界路由器,如果在如果在Area1中的主机中的主机H1希望发送数据到希望发送数据到Area2中的主机中的主机H2,那它就必须把包发送到,那它就必须把包发送到backboneArea左边的边界路左边的边界路由器,由它将信息发送到由器,由它将信息发送到backboneArea右边的路由器,右边的路由器,再发送到再发送到Area2的主机的主机H2。主干自己也是一个。主干自己也是一个OSPF域,域,域内的路由器使用相同的路由策略,域结构

207、对所有的域域内的路由器使用相同的路由策略,域结构对所有的域内路由器来说是可见的。要注意,主干域的结构是不同内路由器来说是可见的。要注意,主干域的结构是不同构的,因此主干域的相互连接要使用虚拟连接方式进行,构的,因此主干域的相互连接要使用虚拟连接方式进行,也就是说,两个主干域内的路由器必须通过一个非主干也就是说,两个主干域内的路由器必须通过一个非主干域进行通信,而这种通信对这两个主干域路由器又是透域进行通信,而这种通信对这两个主干域路由器又是透明的。明的。图图5.23最简单的最简单的OSPF区域设计区域设计当一个当一个OSPFOSPF路由器启动时,首先初始化路由信息结构表;当确定下路由器启动时,

208、首先初始化路由信息结构表;当确定下层接口可用时,它就使用层接口可用时,它就使用OSPFOSPF的的HelloHello协议向相邻的路由器发送一个协议向相邻的路由器发送一个问候包,然后接收这些路由器发回的信息。这个问候包不但可以帮问候包,然后接收这些路由器发回的信息。这个问候包不但可以帮助路由器在初始工作时了解相邻结构,而且可以在运行中了解相邻助路由器在初始工作时了解相邻结构,而且可以在运行中了解相邻路由器的工作情况。如果网络支持多个路由器,路由器的工作情况。如果网络支持多个路由器,HelloHello协议可以帮助协议可以帮助选择一个主控路由器和一个备份路由器,由主控路由器向整个网络选择一个主控

209、路由器和一个备份路由器,由主控路由器向整个网络发送发送LSPLSP。如果两个相邻节点路由器的连接状态数据库取得了同步(称为相邻如果两个相邻节点路由器的连接状态数据库取得了同步(称为相邻了),在有主控路由器的网络中,主控路由器有权决定哪些路由器了),在有主控路由器的网络中,主控路由器有权决定哪些路由器可以是相邻的,拓朴结构数据库在相邻的路由器之间是同步的,路可以是相邻的,拓朴结构数据库在相邻的路由器之间是同步的,路由信息包的发送也仅仅在相邻的路由器间进行。每个路由器要定期由信息包的发送也仅仅在相邻的路由器间进行。每个路由器要定期发出发出LSPLSP,如果它的路由信息发生了改变,那它需要立即通知其

210、它路,如果它的路由信息发生了改变,那它需要立即通知其它路由器。通过获得相邻路由器发送的信息,能够很快知道哪些路由器由器。通过获得相邻路由器发送的信息,能够很快知道哪些路由器不能工作了,能够对网络拓朴结构的变化做到快速反应。通过接收不能工作了,能够对网络拓朴结构的变化做到快速反应。通过接收到到LSPLSP产生拓朴结构数据库,再经过产生拓朴结构数据库,再经过SPFSPF算法可以得到最短路树,树算法可以得到最短路树,树的根节点就是当前这个路由器,通过这个树可以产生路由表。的根节点就是当前这个路由器,通过这个树可以产生路由表。图图5.24OSPF包包24位的首部格式位的首部格式OSPF包包24位的首部

211、信息如图位的首部信息如图5.24所示:所示:首先是版本号,它标明了使用的首先是版本号,它标明了使用的OSPFOSPF版本信息,下一个字段是数据版本信息,下一个字段是数据类型,它说明了包内的数据是干什么的,第三个数据域用于表示包类型,它说明了包内的数据是干什么的,第三个数据域用于表示包长度,这个长度包括首部的长度并以字节表示;这个数据域后面是长度,这个长度包括首部的长度并以字节表示;这个数据域后面是路由器号,它用于标明是哪个路由器发送的包,路由器号后面是域路由器号,它用于标明是哪个路由器发送的包,路由器号后面是域号,它标明包属于的域,每个包只能属于一个域。号,它标明包属于的域,每个包只能属于一个

212、域。OSPFOSPF协议还支持协议还支持对紧急信息的优先发送功能,它为网络管理提供了灵活方便的手段。对紧急信息的优先发送功能,它为网络管理提供了灵活方便的手段。 OSPFOSPF与与RIPRIP的比较的比较(1 1)OSPFOSPF可以对每个可以对每个IPIP服务类型计算计算各自的路由集。对于任何服务类型计算计算各自的路由集。对于任何目的,可以有多个路由表表项,每个表项对应着一个目的,可以有多个路由表表项,每个表项对应着一个IPIP服务类型。服务类型。(2 2)给每个接口指派一个无维数的代价。可以通过吞吐率、往返时)给每个接口指派一个无维数的代价。可以通过吞吐率、往返时间、可靠性或其它性能给每

213、个间、可靠性或其它性能给每个IPIP服务类型指派一个单独的代价。服务类型指派一个单独的代价。(3 3)当对同一个目的地址存在着多个相同代价的路由时,)当对同一个目的地址存在着多个相同代价的路由时,OSPFOSPF在这在这些路由上平均分配流量。称之为流量平衡。些路由上平均分配流量。称之为流量平衡。(4 4)OSPFOSPF支持子网:子网掩码与每个通告路由相连。这样就允许将支持子网:子网掩码与每个通告路由相连。这样就允许将一个任何类型的一个任何类型的IPIP地址分割成多个不同大小的子网。到一个主机的地址分割成多个不同大小的子网。到一个主机的路由是通过全路由是通过全1 1子网掩码进行通告的。默认路由

214、是以子网掩码进行通告的。默认路由是以IPIP地址为地址为0.0.0.00.0.0.0,网络掩码为全,网络掩码为全0 0进行通告的。进行通告的。(5 5)路由器之间的点对点链路不需要每端都有一个)路由器之间的点对点链路不需要每端都有一个IPIP地址。称之为地址。称之为无编号网络。这样可以节省无编号网络。这样可以节省IPIP地址。地址。(6 6)采用了一种简单鉴别机制。可以采用类似于)采用了一种简单鉴别机制。可以采用类似于RIP-2RIP-2机制的方法机制的方法指定一个明文口令。指定一个明文口令。(7 7)OSPFOSPF采用多播,而不是广播,减少不参与采用多播,而不是广播,减少不参与OSPFOS

215、PF的系统负载。的系统负载。表表 5.5 5.5 距离向量法和链路状态算法的比较距离向量法和链路状态算法的比较表表 5.5 5.5是距离向量法和链路状态算法两种算法的比较,可以以此作是距离向量法和链路状态算法两种算法的比较,可以以此作为具体应用中选择路由协议的技术依据。为具体应用中选择路由协议的技术依据。 5.5.5边界网关协议边界网关协议BGPBGP(Boundary Gateway ProtocolBoundary Gateway Protocol)是一种不同自治系)是一种不同自治系统之间网关进行通信的外部网关协议。统之间网关进行通信的外部网关协议。BGPBGP系统与其它系统与其它BGPB

216、GP系统之间交换网络可到达信息。这些信息包括数据到系统之间交换网络可到达信息。这些信息包括数据到达这些网络所必须经过的自治系统达这些网络所必须经过的自治系统ASAS(Autonomous Autonomous SystemSystem)中的所有路径。这些信息足以构造一幅自治系)中的所有路径。这些信息足以构造一幅自治系统连接图。然后,可以根据连接图删除选路环,制订选统连接图。然后,可以根据连接图删除选路环,制订选路策略。路策略。首先,将一个自治系统中的首先,将一个自治系统中的IPIP数据报分成本地流量和通数据报分成本地流量和通过流量。在自治系统中,本地流量是起始或终止于该自过流量。在自治系统中,

217、本地流量是起始或终止于该自治系统的流量。也就是说,其信源治系统的流量。也就是说,其信源IPIP地址或信宿地址或信宿IPIP地址地址所指确定的主机位于该自治系统中。其它的流量则称为所指确定的主机位于该自治系统中。其它的流量则称为通过流量。在通过流量。在InternetInternet中使用中使用BGPBGP的一个目的就是减少通的一个目的就是减少通过流量。过流量。可以将自治系统分为以下几种类型:可以将自治系统分为以下几种类型:(1 1)残桩自治系统()残桩自治系统(stub ASstub AS),它与其它自治系统只),它与其它自治系统只有单个连接,只有本地流量。有单个连接,只有本地流量。(2 2)

218、多接口自治系统()多接口自治系统(multihomed ASmultihomed AS),与其它自治),与其它自治系统有多个连接,但不传送通过流量。系统有多个连接,但不传送通过流量。(3 3)转送自治系统()转送自治系统(transit AStransit AS),它与其它自治系统),它与其它自治系统有多个连接,在一些策略准则之下,它可以传送本地流有多个连接,在一些策略准则之下,它可以传送本地流量和通过流量。量和通过流量。这样,可以将这样,可以将InternetInternet的总拓扑结构看成是由一些残桩的总拓扑结构看成是由一些残桩自治系统、多接口自治系统以及转送自治系统的任意互自治系统、多接

219、口自治系统以及转送自治系统的任意互连。残桩自治系统和多接口自治系统不需要使用连。残桩自治系统和多接口自治系统不需要使用BGPBGP它们通过运行它们通过运行EGPEGP在自治系统之间交换可到达信息。在自治系统之间交换可到达信息。BGPBGP允许使用基于策略的选路。由自治系统管理员制订策略,并通过允许使用基于策略的选路。由自治系统管理员制订策略,并通过配置文件将策略指定给配置文件将策略指定给BGPBGP。制订策略并不是协议的一部分,但指定。制订策略并不是协议的一部分,但指定策略允许策略允许BGPBGP实现在存在多个可选路径时选择路径,并控制信息的重实现在存在多个可选路径时选择路径,并控制信息的重发

220、送。选路策略与政治、安全或经济因素有关。发送。选路策略与政治、安全或经济因素有关。BGPBGP与与RIPRIP和和OSPFOSPF的不同之处在于的不同之处在于BGPBGP使用使用TCPTCP作为其传输层协议。两作为其传输层协议。两个运行个运行BGPBGP的系统之间建立一条的系统之间建立一条TCPTCP连接,然后交换整个连接,然后交换整个BGPBGP路由表。路由表。从这个时候开始,在路由表发生变化时,再发送更新信号。从这个时候开始,在路由表发生变化时,再发送更新信号。BGPBGP是一个距离向量协议,但是与(通告到目的地址跳数的)是一个距离向量协议,但是与(通告到目的地址跳数的)RIPRIP不不同

221、的是,同的是,BGPBGP列举了到每个目的地址的路由(自治系统到达目的地址列举了到每个目的地址的路由(自治系统到达目的地址的序号)。这样就排除了一些距离向量协议的问题。采用的序号)。这样就排除了一些距离向量协议的问题。采用16 bit16 bit数数字表示自治系统标识。字表示自治系统标识。BGPBGP通过定期发送通过定期发送keepalivekeepalive报文给其邻站来检测报文给其邻站来检测TCPTCP连接对端的链路连接对端的链路或主机失败。两个报文之间的时间间隔建议值为或主机失败。两个报文之间的时间间隔建议值为3030秒。应用层的秒。应用层的keepalivekeepalive报文与报文

222、与TCPTCP的的keepalivekeepalive选项是独立的。选项是独立的。5.5.6无类型域间选路无类型域间选路由于由于B B类地址的缺乏,因此现在的许多网络只能采用多个类地址的缺乏,因此现在的许多网络只能采用多个C C类网络号,类网络号,而不采用单个而不采用单个B B类网络号。尽管这样可解决类网络号。尽管这样可解决B B类地址缺乏的问题,但类地址缺乏的问题,但却带来了另一个问题:每个却带来了另一个问题:每个C C类网络都需要一个路由表表项,引起了类网络都需要一个路由表表项,引起了路由表的膨胀。无类型域间选路路由表的膨胀。无类型域间选路CIDRCIDR(Classless Inter-

223、Domain Classless Inter-Domain RoutingRouting)是一个防止)是一个防止InternetInternet路由表膨胀的方法。它也称为超网路由表膨胀的方法。它也称为超网(supernettingsupernetting)。)。CIDRCIDR的基本观点是采用一种分配多个的基本观点是采用一种分配多个IPIP地址的方式,使其能够将路地址的方式,使其能够将路由表中的许多表项汇总(由表中的许多表项汇总(Route SummarizationRoute Summarization)成更少的数目。例)成更少的数目。例如,如果给单个站点分配如,如果给单个站点分配1616个

224、个C C类地址,以一种可以用总和的方式来类地址,以一种可以用总和的方式来分配这分配这1616个地址,这样,所有这个地址,这样,所有这1616个地址可以参照个地址可以参照InternetInternet上的单上的单个路由表表项。同时,如果有个路由表表项。同时,如果有8 8个不同的站点是通过同一个个不同的站点是通过同一个InternetInternet服务提供商的同一个连接点接入服务提供商的同一个连接点接入InternetInternet的,且这的,且这8 8个站点分配的个站点分配的8 8个不同个不同IPIP地址可以进行总和,那么,对于这地址可以进行总和,那么,对于这8 8个站点,在个站点,在In

225、ternetInternet上,上,只需要单个路由表表项。只需要单个路由表表项。要使用这种总和,必须满足以下三种特性。要使用这种总和,必须满足以下三种特性。(1 1)为进行选路要对多个)为进行选路要对多个IPIP地址进行总和时,这些地址进行总和时,这些IPIP地址必须具有地址必须具有相同的高位地址位。相同的高位地址位。(2 2)路由表和选路算法必须扩展成根据)路由表和选路算法必须扩展成根据32 bitIP32 bitIP地址和地址和32 bit32 bit掩码掩码做出选路决策的。做出选路决策的。(3 3)必须扩展选路协议使其除了)必须扩展选路协议使其除了32 bit32 bit地址外,还要有地

226、址外,还要有32 bit32 bit掩码。掩码。OSPFOSPF和和RIP-2RIP-2都能够携带第都能够携带第4 4版版BGPBGP所提出的所提出的32 bit32 bit掩码。掩码。例如,例如,RFC 1466RFC 1466建议欧洲新的建议欧洲新的C C类地址的范围是类地址的范围是194.0.0.0194.0.0.0到到195.255.255.255195.255.255.255。以。以1616进制表示,这些地址的范围是进制表示,这些地址的范围是0xc20000000xc2000000到到0xc3ffffff0xc3ffffff。它代表了。它代表了6553665536个不同的个不同的C

227、C类网络号,但他们地址的高类网络号,但他们地址的高7 7 bitbit是相同的。在欧洲以外的国家里,可以采用是相同的。在欧洲以外的国家里,可以采用IPIP地址为地址为0xc20000000xc2000000和和32 bit0xfe000000 32 bit0xfe000000 (254.0.0.0254.0.0.0)为掩码的单个路由表表项来对)为掩码的单个路由表表项来对所有这些所有这些6553665536个个C C类网络号选路到单个点上。类网络号选路到单个点上。C C类地址的后面各位位类地址的后面各位位(即在(即在194194或或195195后面各位)也可以进行层次分配,例如以国家或服后面各位

228、)也可以进行层次分配,例如以国家或服务提供商分配,以允许在欧洲路由器之间,使用除了这务提供商分配,以允许在欧洲路由器之间,使用除了这32 bit32 bit掩码掩码的高的高7 bit7 bit外的其它位进行概括。外的其它位进行概括。CIDRCIDR同时还使用一种技术,使最佳匹配总是最长的匹配:即在同时还使用一种技术,使最佳匹配总是最长的匹配:即在32 32 bitbit掩码中,它具有最大值。继续采用上一段中所用的例子,欧洲的掩码中,它具有最大值。继续采用上一段中所用的例子,欧洲的一个服务提供商可能会采用一个与其它欧洲服务提供商不同的接入一个服务提供商可能会采用一个与其它欧洲服务提供商不同的接入

229、点。如果给该提供商分配的地址组是从点。如果给该提供商分配的地址组是从194.0.16.0194.0.16.0到到194.0.31.255 194.0.31.255 (1616个个C C类网络号),那么可能只有这些网络的路由表项的类网络号),那么可能只有这些网络的路由表项的IPIP地址是地址是194.0.16.0194.0.16.0,掩码为,掩码为255.255.240.0 255.255.240.0 (0xfffff0000xfffff000)。发往)。发往194.0.22.1194.0.22.1地址的数据报将同时与这个路由表表项与其它欧洲地址的数据报将同时与这个路由表表项与其它欧洲C C类地

230、类地址的表项进行匹配。但是由于掩码址的表项进行匹配。但是由于掩码255.255.240255.255.240比比254.0.0.0254.0.0.0更更“长长”,因此将采用具有更长掩码的路由表表项。,因此将采用具有更长掩码的路由表表项。“无类型无类型”的意思是现在的选路决策是基于整个的意思是现在的选路决策是基于整个32 bitIP32 bitIP地址的掩地址的掩码操作。而不管其码操作。而不管其IPIP地址是地址是A A类、类、B B类或是类或是C C类,都没有什么区别。类,都没有什么区别。CIDRCIDR的最初是针对新的的最初是针对新的C C类地址提出的。这种变化将使类地址提出的。这种变化将使

231、InternetInternet路由路由表增长的速度缓慢下来,但对于现存的选路则没有任何帮助。这是表增长的速度缓慢下来,但对于现存的选路则没有任何帮助。这是一个短期解决方案。作为一个长期解决方案,如果将一个短期解决方案。作为一个长期解决方案,如果将CIDRCIDR应用于所应用于所有有IPIP地址,并根据各洲边界和服务提供商对已经存在的地址,并根据各洲边界和服务提供商对已经存在的IPIP地址进行地址进行重新分配(且所有现有主机重新进行编址),重新分配(且所有现有主机重新进行编址), FordFord,RekhterRekhter,and Braun 1993 and Braun 1993 宣称,

232、目前包含宣称,目前包含10,00010,000网络表项的路由表将会减网络表项的路由表将会减少成只有少成只有200200个表项。个表项。练习与思考练习与思考5.15.1有人说有人说: :“ARPARP向网络层提供服务,因此它是数据链路层的一部分。向网络层提供服务,因此它是数据链路层的一部分。”,这种说法对吗?,这种说法对吗?5.2 5.2 一个单位有一个一个单位有一个C C类网络类网络200.1.1200.1.1。考虑到共有四个部门,准备。考虑到共有四个部门,准备划分子网。这四个部门内的主机数目分别是:划分子网。这四个部门内的主机数目分别是:A72A72台,台, B35 B35台,台, C20C

233、20台,台, D18 D18台;台; 即共有即共有145145台主机。台主机。(a a)给出一种可能的子网掩码安排来完成划分任务)给出一种可能的子网掩码安排来完成划分任务(b b)如果部门)如果部门D D的主机数目增长到的主机数目增长到3434台,那么该单位又该怎么做?台,那么该单位又该怎么做?5.3 5.3 让让ARPARP登录项在登录项在10-1510-15分钟后超时是进行合理的折中的一种尝试。分钟后超时是进行合理的折中的一种尝试。试说明如果把超时值定得太小或太大可能引发的问题。试说明如果把超时值定得太小或太大可能引发的问题。5.4 5.4 当采用当采用IPv6IPv6协议的时候,协议的时

234、候,ARPARP协议是否需要改变?如果需要,是协议是否需要改变?如果需要,是概念上的改变,还是技术上的改变?概念上的改变,还是技术上的改变?5.55.5地址解析协议地址解析协议(ARP)(ARP)的用途是什么?的用途是什么?5.6 5.6 判定下列判定下列IPIP地址的类型。地址的类型。131.109.54.1131.109.54.1 78.34.6.90 220.103.9.56 78.34.6.90 220.103.9.56 240.9.12.2240.9.12.219.5.91.245 19.5.91.245 129.9.234.52 125.78.6.2 129.9.234.52 12

235、5.78.6.25.7 5.7 判定下列判定下列IPIP地址中哪些是无效的,并说明其无效的原因。地址中哪些是无效的,并说明其无效的原因。131.255.255.18 127.21.19.109 220.103.256.56131.255.255.18 127.21.19.109 220.103.256.56240.9.12.12 192.5.91.255 129.9.255.254 240.9.12.12 192.5.91.255 129.9.255.254 10.255.255.254 10.255.255.254 5.85.8主机如何不需发送广播就能解析位于同一子网的另一主机的主机如何不需

236、发送广播就能解析位于同一子网的另一主机的IPIP地地址?址?5.9 ARP5.9 ARP高速缓存中包含什么?当解析位于同一子网的目标主机高速缓存中包含什么?当解析位于同一子网的目标主机IPIP地地址时,址时,ARPARP如何工作?如何工作? 5.105.10将互连网络划分为子网的三个原因是什么?如何划分子网?将互连网络划分为子网的三个原因是什么?如何划分子网? 5.115.11子网掩码的用途是什么?子网掩码的用途是什么?(1 1)对于子网掩码为)对于子网掩码为255.255.252.0255.255.252.0的的B B类网络地址,能够创建多少类网络地址,能够创建多少个子网?个子网?(2 2)

237、对于子网掩码为)对于子网掩码为255.255.252.224255.255.252.224的的C C类网络地址,能够创建多类网络地址,能够创建多少个子网?少个子网?(3 3)对于子网掩码为)对于子网掩码为255.255.248.0255.255.248.0的的B B类网络地址,能够分配多少类网络地址,能够分配多少台主机?台主机?(4 4)对于子网掩码为)对于子网掩码为255.255.255.192255.255.255.192的的C C类网络地址,能够分配多类网络地址,能够分配多少台主机?少台主机?5.12 5.12 解释为什么解释为什么IPIP对于数据的正确传输是很重要的。对于数据的正确传输

238、是很重要的。5.135.13什么是广播地址?什么是广播地址?5.145.14路由表的用处是什么?路由表的用处是什么?5.155.15在同一台主机上,在同一台主机上,pingping环回地址与环回地址与pingping主机以太网地址会出现主机以太网地址会出现什么不同?什么不同?5.165.16如果系统提供如果系统提供netstatnetstat命令,请用它来查看接收和发送的命令,请用它来查看接收和发送的ICMPICMP报报文类型。文类型。5.17 5.17 计算机计算机little-sister.cs.vu.nllittle-sister.cs.vu.nl的的IPIP地址是地址是130.37.6

239、2.23130.37.62.23,那,那么该计算机是在么该计算机是在A A类、类、B B类还是类还是C C类网上?类网上?5.185.18假定假定IPIP的的B B类地址不是使用类地址不是使用1616位而是使用位而是使用2020位作为位作为B B类地址的网类地址的网络号部分,那么将会有多少个络号部分,那么将会有多少个B B类网络?类网络?5.195.19在因特网上的一个在因特网上的一个B B类网络具有子网掩码类网络具有子网掩码255.255.240.0255.255.240.0。问每。问每个子网中的最大主机数目是多少?个子网中的最大主机数目是多少?5.205.20大多数大多数IPIP数据报重组

240、算法都有一个计数器来避免一个丢失的片数据报重组算法都有一个计数器来避免一个丢失的片段长期挂起一个重组缓冲区。假定一个数据报被分割成段长期挂起一个重组缓冲区。假定一个数据报被分割成4 4个片段。开个片段。开头头3 3个片段到达了,但最后一个被耽搁了,最终计数器超时,在接收个片段到达了,但最后一个被耽搁了,最终计数器超时,在接收方存储器中的方存储器中的3 3个片段被丢弃。过了一段时间,最后一个片段蹒跚而个片段被丢弃。过了一段时间,最后一个片段蹒跚而至。那么应该如何处置这个片段?至。那么应该如何处置这个片段?5.21 5.21 考虑下图所示的子网。使用距离向量路由选择,下列向量刚刚考虑下图所示的子网

241、。使用距离向量路由选择,下列向量刚刚被路由器被路由器C C收到:收到:来自来自B B:(:(5 5,0 0,8 8,1212,6 6,2 2)来自来自D D:(:(1616,1212,6 6,0 0,9 9,1010)来自来自E E:(:(7 7,6 6,3 3,9 9,0 0,4 4)路由器路由器C C测量得到的到达测量得到的到达B B、D D和和E E的延时分别等于的延时分别等于6 6、3 3和和5 5。试问路由。试问路由器器C C的新的路由表是什么?请给出所使用的输出线路和所预期的延时。的新的路由表是什么?请给出所使用的输出线路和所预期的延时。5.22 5.22 数据报网络把每个分组都作

242、为独立的单元(独立于所有其它单数据报网络把每个分组都作为独立的单元(独立于所有其它单元)进行路由选择。虚电路网络则不必这样做,每个数据分组都遵元)进行路由选择。虚电路网络则不必这样做,每个数据分组都遵循一个事先确定好的路由。这个事实意味着虚电路网络不需要从任循一个事先确定好的路由。这个事实意味着虚电路网络不需要从任意源到任意目的地为分组做路由选择的能力吗?意源到任意目的地为分组做路由选择的能力吗?5.23 5.23 请给出一个简单的试探方法,寻找通过一个网络从一个给定的请给出一个简单的试探方法,寻找通过一个网络从一个给定的源到一个给定的目的地的两条通路(假定确实存在两条这样的通路)源到一个给定

243、的目的地的两条通路(假定确实存在两条这样的通路),以便在任一条通信线路失效的情况下,在这两个节点之间还能进,以便在任一条通信线路失效的情况下,在这两个节点之间还能进行通信。假定路由器是足够可靠的,因此不必担心路由器崩溃的可行通信。假定路由器是足够可靠的,因此不必担心路由器崩溃的可能性。能性。5.25 5.25 检查所使用的系统上的路由表,并解释每一项内容。检查所使用的系统上的路由表,并解释每一项内容。5.265.26在在IPIP意义上的近邻(意义上的近邻(neighborneighbor)是什么?)是什么?5.275.27什么是自治系统什么是自治系统ASAS(Autonomous System

244、Autonomous System)?)? 5.245.24下图中每个圆圈代表一个网络节点,每一条线代表一条通信线下图中每个圆圈代表一个网络节点,每一条线代表一条通信线路,线上的标注表示两个相邻节点之间的代价。路,线上的标注表示两个相邻节点之间的代价。请根据请根据DijkstraDijkstra最短通路搜索算法找出最短通路搜索算法找出A A到到J J的最短路径。规定使用的最短路径。规定使用直接在图上加标注的方法,而且,在答案中只要求:直接在图上加标注的方法,而且,在答案中只要求:(1 1)依次列出每一步的工作节点)依次列出每一步的工作节点(2 2)给出从)给出从A A到到J J的最短路径及代价的最短路径及代价(3 3)在原图上示出最后一步算法完成时图上每个节点(除)在原图上示出最后一步算法完成时图上每个节点(除A A以外)以外)的标注。的标注。

展开阅读全文
相关资源
正为您匹配相似的精品文档
相关搜索

最新文档


当前位置:首页 > 资格认证/考试 > 自考

电脑版 |金锄头文库版权所有
经营许可证:蜀ICP备13022795号 | 川公网安备 51140202000112号