书城计算机网络计算机网络技术与应用
7730300000017

第17章 网络互联技术(2)

3.子网编址举例

【例5-1】 假设一个网络申请到B类地址146.10.0.0,要将其划分为6个子网,如何划分子网和主机IP地址?子网地址范围为多少?

规划:划分6个子网,需要在第3字节取高3位来编码这6个子网;这样划分共有8个子网,其中两个作为扩展。二进制范围:

146.10.00000000.0~146.10.00011111.0→ 146.10.0.0~146.10.31.0

146.10.00100000.0~146.10.00111111.0→ 146.10.32.0~146.10.63.0

146.10.01000000.0~146.10.01011111.0→ 146.10.65.0~146.10.95.0

146.10.01100000.0~146.10.01111111.0→ 146.10.96.0~146.10.127.0

146.10.10000000.0~146.10.10011111.0→ 146.10.128.0~146.10.159.0

146.10.10100000.0~146.10.10111111.0→ 146.10.160.0~146.10.191.0

146.10.11000000.0~126.10.11011111.0→ 146.10.192.0~146.10.223.0

146.10.11100000.0~126.10.11111111.0→ 146.10.225.0~146.10.255.0

子网掩码由默认的255.255.0.0变成255.255.224(11100000).0

【例5-2】 一个B类网络的子网屏蔽码为255.255.248.0,该网络可以划分为多少个子网?每个子网最多能有多少台主机?

(1)子网掩码的第3字节共占用高5位(11111),最多可以编出25=32个子网。

(2)第3字节余下3位+第4字节的8位,共11位,可以编出211=2048个主机地址。

注意:主机地址中应该去掉全“0”和全“1”。

5.3.5 无类别(超网)编址

1.无类别

1992年,CIDR(Classless Inter Domain Routing)的引入意味着网络层次的地址“类”的概念已经被取消,代之以“网络前缀”的概念。

“无类”含义是路由的策略,是基于32位IP地址掩码操作的,它不再关心IP地址是A类、B类还是C类,这样可以使多个连续的C类地址或者B类地址组合起来使用。这种表示看不出标准的分类,无类网络编址把连续的网络地址组合成一个装载更多主机的网络。例如,多个C类地址可以组合成一个连续地址空间,突破了地址必须按照有类地址的三种基本单位划分局限。事实证明,CIDR的使用已经在一定程度上减慢了地址消耗速度。

2.编址方法

现举例说明无类别的编址方法。

【例5-3】 假设申请到连续的地址是223.1.185.0~223.1.191.0,换成二进制表示就是:

11011111.00000001.10111000.00000000~11011111.00000001.10111111.00000000如果不考虑第3字节的低3位(作为主机地址位),那么第3字节的高5位都是184,也就是说这组连续的地址构成了一个前缀(前缀长度为21)是223.1.184的网络,掩码为255.255.248.0。这样,这个连续网络的主机位数就可以达到11位。通过以上过程,我们就把网络的主机范围扩大了很多。

无分类地址的表示法,以上面地址为例。223.1.185.0/21表示地址掩码为21位(高位21个1,其余为0),高位21位为网络地址标识,低位11位为主机标识。

本题要点和步骤:

申请连续的C类地址。

找出所有地址相同的前缀。

确定子网掩码位数,应与前缀位数相同。

确定标识主机位数(32减去前缀位数)。

说明:无分类方法也可以将主机的空间缩小,例如223.1.185.0/27,只剩下低5位用于标识主机。

5.4 路由协议

路由器运行三层协议:物理层、数据链路和网络层协议,一般情况下,路由协议位于网络协议层。

路由器工作包括寻找路由和转发两项基本内容,路由选择算法判定到达目的地的最佳路径。

为了判定最佳路径,路由器必须启动并维护包含路由信息的路由表,而路由信息依赖于所使用的路由选择算法而不尽相同。

路由选择算法将收集到的不同信息更新路由表,根据路由表将目的网络与下一跳(nexthop)的关系告诉路由器。

路由器之间交换路由信息,更新并维护路由表使之正确反映网络拓扑结构变化,并由路由器根据权重去决定最佳路径。

总之,路由选择必须完成两个任务,一是收集网络的拓扑结构信息,用于建立路由表,另一个任务就是选择最佳路径,转发数据包。两个任务均由路由协议完成。

5.4.1 RIP协议与距离向量选择算法

路由信息协议(Routing Information Protocols,RIP)是使用最广泛的距离向量协议,它是由施乐(Xerox)公司在20世纪70年代开发的。当时,RIP是施乐网络服务(Xerox Network Service,XNS)协议体系的一部分。

TCP/IP版本的RIP是施乐协议的改进版。RIP协议最大的特点是无论实现原理还是配置方法都非常简单,但它不适应大型网络,并且该协议工作在应用层,而不是在网络层。

1.度量方法

RIP的度量是基于跳数(Hops Count)的,每经过一台路由器,路径的跳数加1。跳数越多,路径就越长。RIP算法会优先选择跳数少的路径。RIP支持的最大跳数是15,跳数为16的网络被认为不可到达。

2.路由更新——距离向量方法

RIP协议中路由更新是通过定时广播实现的。默认的情况下,路由器每隔30s向与它相邻的路由器广播自己的路由表;接到广播的路由器将收到的信息添加到自己的路由表中。

正常情况下,每过30s路由器可以收到一次路由信息确认;如果经过180s,没有一个路由项得到确认,路由器就认为这次更新失效;如果经过240s,路由项仍没有得到确认,则从路由表中删除与此路由器相关的项目。

3.RIP存在的缺陷

RIP虽然简单易行,并且久经考验,但是也存在着一些很重要的缺陷,主要有以下几点。

(1)过于简单,以跳数为依据计算度量值,经常得出非最优路由。

(2)度量值以16为限,不适合大的网络。

(3)安全性差,接受来自任何设备的路由更新。

(4)收敛缓慢,一般的时间大于5分钟,一旦有网络故障,会产生死锁现象。

(5)消耗网络资源等。

5.4.2 OSPF协议

20世纪80年代中期,RIP已不能适应大规模异构网络的互联需求,OSPF协议随之产生。它是IETF的内部网关协议工作组(Internet的一个组织)为IP网络开发的一种路由协议。

OSPF是基于链路状态的路由协议,需要每个路由器向与其同一自治域(同一个广播域)的所有其他路由器发送链路状态广播信息。

在OSPF的链路状态广播中包括所有网络接口信息、所有的量度以及其他变量。利用OSPF的路由器,首先必须收集有关的链路状态信息,并根据一定的算法计算出到每个节点的最短路径。

国际互联网上分成若干个自治区域,例如中国教育科研网、中国网通网络等,都是一个自治区域。OSPF将一个自治域再划分为区,对应两种类型的路由选择方式。

(1)当源和目的地在同一区时,采用区内路由选择。

(2)当源和目的地在不同区时,则采用区间路由选择。

这样做可以大大减少网络开销,并增加网络的稳定性。当一个区内的路由器出故障时并不影响自治域内其他区路由器的正常工作,这给网络的管理和维护带来方便。

需要说明的是,OSPF协议使用被称为最短路径优先算法(Shortest Path First,SPF),这种算法需要每一个路由器都保存一份最新的关于整个网络的拓扑结构数据库,因此路由器不仅清楚地知道从本路由器出发能否到达某一指定网络,而且在能到达的情况下,还能选择出最短的路径以及使用该路径将经过哪些路由器。

OSPF这个方法被称为链路状态算法,使用链路状态数据包(Link State Packets,LSP)、网络拓扑数据库、路径选择算法,最终计算出从该路由器到其他目标网络的最短路径。这些路径被写入路由表。

5.4.3 静态和动态路由

对于路由来说,可以采取静态路由和动态路由的方式管理。

1.静态路由

静态路由是指在路由器中设置固定的路由表,除非人为改变路由表,否则静态路由不会发生变化。由于静态路由不能对网络改变作出反应,一般用于网络规模不大、拓扑结构固定的网络中。

静态路由的优点是简单、高效、可靠。在所有的路由中,静态路由优先级最高。当动态路由与静态路由发生冲突时,以静态路由为准。

2.动态路由

动态路由选择是网络中的路由器之间相互通信、传递路由信息,并利用收到的路由信息更新路由表的过程。

动态路由能实时地适应网络结构的变化。如果路由更新信息表明发生了网络变化,路由选择算法就会重新计算路由,并发出新的路由更新信息。这些信息通过各个网络,引起各路由器重新启动其路由算法,并更新各自的路由表,以动态地反映网络拓扑变化。

动态路由适用于网络规模大、网络拓扑复杂的网络。当然,各种动态路由协议会不同程度地占用网络带宽和CPU资源。

静态路由和动态路由有各自的适用范围,因此在网络中动态路由通常作为静态路由的补充。当一个包在路由器中进行路径选择时,路由器首先查找静态路由。如果查到,则根据相应的静态路由转发分组,否则再查找动态路由。

5.4.4 直接路由和间接路由

1.直接路由

在本地网络中,当数据包从一台计算机传递到另一台计算机时,只使用直接路由。换句话说,数据包的源和目的网络地址是相同的,属于同一个网络,不用通过路由设备转发这个数据包。

2.间接路由

数据包源和目的网络地址不相同,属于不同的网络,发送方需要路由器转发给目的计算机。中间可能跨越若干网络,这种方式采用间接路由。

3.认识路由表

路由器中存在一张路由表,用来指出到达目的地(可能是网络,也可能是某台计算机)的路由信息。路由器通过查询这个表,为数据包选择一条到达目的地的路由。

以国际互联网为例,路由表通常包含多个(N,R)路由信息对,其中N是目的网络的IP地址,R是到达网络N的“下一跳”路由器的IP地址。在路由表中,仅指定从本路由器到目的网络路径上的下一步,并不包含到达目的站点的完整路径。

路由表的大小仅取决于互联网中网络的数量,与连接计算机数量无关。IP路由仅维护有关目的网络地址信息,与计算机地址信息无关。

在Internet上,千万台计算机要发送数据,路由表的条目会无限膨胀下去,一种隐藏信息、保持路由表尽可能小的技术是使用默认路由。让IP路由选择首先在路由表中查找目的网络,如果表中没有路由,则把数据包发送到一个默认路由器上。当一个网络的地址不多,并且与其他网络只有一个连接时,这种默认路由选择特别有效,选择路由方法也很简单。

以下我们将通过一些路由表举例说明路由的选择过程。