动态选路协议のRIP

在前面各章中,我们讨论了静态选路。在配置接口时,以默认方式生成路由表项(对于直接连接的接口),并通过r o u t e命令增加表项(通常从系统自引导程序文件),或是通过I C M P重定向生成表项(通常是在默认方式出错的情况下)。在网络很小,且与其他网络只有单个连接点且没有多余路由时(若主路由失败,可以使用备用路由),采用这种方法是可行的。如果上述三种情况不能全部满足,通常使用动态选路。

本章讨论动态选路协议,它用于路由器间的通信。我们主要讨论R I P,即选路信息协议(Routing Infromation Protocol),大多数T C P / I P实现都提供这个应用广泛的协议。然后讨论两种新的选路协议,O S P F和B G P。本章的最后研究一种名叫无分类域间选路的新的选路技术,现在I n t e r n e t上正在开始采用该协议以保持B类网络的数量。

动态选路

当相邻路由器之间进行通信,以告知对方每个路由器当前所连接的网络,这时就出现了动态选路。路由器之间必须采用选路协议进行通信,这样的选路协议有很多种。路由器上有一个进程称为路由守护程序(routing daemon),它运行选路协议,并与其相邻的一些路由器进行通信。正如图9 - 1所示,路由守护程序根据它从相邻路由器接收到的信息,更新内核中的路由表。动态选路并不改变我们在9 . 2节中所描述的内核在I P层的选路方式。这种选路方式称为选路机制(routing mechanism)。内核搜索路由表,查找主机路由、网络路由以及默认路由的方式并没有改变。仅仅是放置到路由表中的信息改变了—当路由随时间变化时,路由是由路由守护程序动态地增加或删除,而不是来自于自引导程序文件中的r o u t e命令。正如前面所描述的那样,路由守护程序将选路策略(routing policy)加入到系统中,选择路由并加入到内核的路由表中。如果守护程序发现前往同一信宿存在多条路由,那么它(以某种方法)将选择最佳路由并加入内核路由表中。如果路由守护程序发现一条链路已经断开(可能是路由器崩溃或电话线路不好),它可以删除受影响的路由或增加另一条路由以绕过该问题。
在像I n t e r n e t这样的系统中,目前采用了许多不同的选路协议。I n t e r n e t是以一组自治系统(A S,Autonomous System)的方式组织的,每个自治系统通常由单个实体管理。常常将一个公司或大学校园定义为一个自治系统。N S F N E T的I n t e r n e t骨干网形成一个自治系统,这是因为骨干网中的所有路由器都在单个的管理控制之下。每个治系统可以选择该自治系统中各个路由器之间的选路协议。这种协议我们称之为内部网关协议I G P(Interior Gateway Protocol)或域内选路协议(intradomain routing protocol)。最常用的I G P是选路信息协议R I P。一种新的I G P是开放最短路径优先O S P F(Open Shortest
Path First)协议。它意在取代R I P。另一种1 9 8 6年在原来N S F N E T骨干网上使用的较早的I G P协议—H E L L O,现在已经不用了。新的RFC [Almquist 1993]规定,实现任何动态选路协议的路由器必须同时支持OSPF和RIP,还可以支持其他IGP协议。外部网关协议E G P(Exterier Gateway Protocol)或域内选路协议的分隔选路协议用于不

同自治系统之间的路由器。在历史上,(令人容易混淆)改进的E G P有着一个与它名称相同的协议:E G P。新E G P是当前在N S F N E T骨干网和一些连接到骨干网的区域性网 

Unix选路守护程序

U n i x系统上常常运行名为r o u t e d路由守护程序。几乎在所有的T C P / I P实现中都提供该程序。该程序只使用R I P进行通信,我们将在下一节中讨论该协议。这是一种用于小型到中型网络中的协议。另一个程序是g a t e d。I G P和E G P都支持它。

选路信息协议

       RIP报文包含中在UDP数据报中。这里只总结版本1,对于版本2参考tcp/ipv1)。

动态选路协议のRIP_第1张图片

动态选路协议のRIP_第2张图片

  命令字段为1表示请求,2表示应答。还有两个舍弃不用的命令( 34),两个非正式的命令:轮询( 5)和轮询表项( 6)。请求表示要求其他系统发送其全部或部分路由表。应答则包含发送者全部或部分路由表。版本字段通常为1,而第2R I P将此字段设置为2。紧跟在后面的2 0字节指定地址系列( address family)(对于I P地址来说,其值是2)、I P地址以及相应的度量。在本节的后面可以看出, R I P的度量是以跳计数的。采用这种2 0字节格式的R I P报文可以通告多达2 5条路由。上限2 5是用来保证R I P报文的总长度为2 0×25 + 4 = 504,小于5 1 2字节。由于每个报文最多携带2 5个路由,因此为了发送整个路由表,经常需要多个报文。有一个注意点:跳数的最大值是1 5,这意味着R I P只能用在主机间最大跳数值为1 5A S(自治系统)内。度量为1 6表示到无路由到达该I P地址。最大跳数为15限制了使用RIP网络的大小。

正常运行

   让我们来看一下采用R I P协议的r o u t e d程序正常运行的结果。R I P常用的U D P端口号是5 2 0

1)初始化:在启动一个路由守护程序时,它先判断启动了哪些接口,并在每个接口上发送一个请求报文,要求其他路由器发送完整路由表。在点对点链路中,该请求是发送给其他终点的。如果网络支持广播的话,这种请求是以广播形式发送的。这种请求报文的命令字段为1,但地址系列字段设置为0,而度量字段设置为1 6。这是一种要求另一端完整路由表的特殊请求报文。

2)接收到请求。如果这个请求是刚才提到的特殊请求,那么路由器就将完整的路由表发送给请求者。否则,就处理请求中的每一个表项:如果有连接到指明地址的路由,则将度量设置成我们的值,否则将度量置为1 6(度量为1 6是一种称为“无穷大”的特殊值,它意味着没有到达目的的路由)。然后发回响应。

3)接收到响应。使响应生效,可能会更新路由表。可能会增加新表项,对已有的表项进行修改,或是将已有表项删除。

4)定期选路更新。每过3 0秒,所有或部分路由器会将其完整路由表发送给相邻路由器。发送路由表可以是广播形式的(如在以太网上),或是发送给点对点链路的其他终点的。

5)触发更新。每当一条路由的度量发生变化时,就对它进行更新。不需要发送完整路由表,而只需要发送那些发生变化的表项。

      每条路由都有与之相关的定时器。如果运行R I P的系统发现一条路由在3分钟内未更新,就将该路由的度量设置成无穷(16),并标注为删除。这意味着已经在63 0秒更新时间里没收到通告该路由的路由器的更新了。再过6 0秒,将从本地路由表中删除该路由,以保证该路由的失效已被传播开。

更新算法

      RIP采用的是距离向量算法,是以最小的跳数为判定标准的。这里举个例子:

动态选路协议のRIP_第3张图片

动态选路协议のRIP_第4张图片

 RIP存在的问题

          RIP存在的一个问题就是当网络出现故障的时候,要经过较长的时间才能将此信息传送到所有的路由器。如下图:

动态选路协议のRIP_第5张图片

          如果网络1出现故障,然后R1更新自己的路由表,但是需要30秒之后才向R2发送,所以此时如果R2先发送了路由表过来的话,然们就会使得,需要很多次往返发送才能使R2得知网络1故障。




你可能感兴趣的:(网络,tcpip)