计算机网络-4-6-路由选择协议RIP

互联网的路由选择协议

有关路由选择协议的基本概念

理想的路由算法

路由选择协议的核心是路由算法。即需要一种算法来获取路表中的各项,一个比较好的路由选择算法应该有以下特点[BELL86]:

  1. 算法必须是正确和完整的。(正确的含义是沿着各路由表所指引的路由,分组一定能到达最终目的网络和主机)
  2. 算法在计算上应该简单。(路由选择的计算不应该使网络通信量增加太多的额外开销)
  3. 算法能够适应通信量和网络拓扑的变化,也就是自适应性。(当网络中的通信量发生变化的时,算法能够自适应的改变路由以均衡各路由的负载。当某个或者某些结点链路发生故障的时候,算法能够及时的改变路由,有时候称这种适应性为稳健性
  4. 算法应该具有稳定性。(在网络通信量和网络拓扑结构相对稳定的情况下,路由算法应该收敛于一个可以接受的解,而不应该使得出的路由不断地发生变化。)
  5. 算法是公平的。(路由选择算法应该对所有用户(除了少数优先高级的用户)都是公平的。)
  6. 算法应该是最佳的。(路由选择算法应当能找出最好的路由,使得分组平均时延最小而网络的通信量最大。虽然我们希望得到“最佳”的算法,但并不是最重要的,对于某些网络来说,网络的可靠性有时要比最小的分组平均时延或最大吞吐量更加的重要,因此,所谓"最佳"只能是相对于某一种特定要求下得出的比较合理的选择而已。)

一个实际的路由选择算法,应该尽可能的接近于理想的算法,在不同的应用条件下,可以对上面提出的六个方面有不同的侧重。

倘若从路由算法能否随网络的通信量或拓扑自适应的进行调整变化来划分,则只有两大类:静态路由选择策略动态路由选择策略。静态路由选择策略也叫做非自适应路由选择,其特点是简单和开销较小,但不能即使适应网络状态的变化。对于很简单的小网络,完全可以采用静态路由选择,用人工配置每一条路由。动态路由选择也叫做自适应路由选择,其特点是能够较好的适应网络状态的变化,但实现起来较为复杂,开销也比较大,因此动态路由选择适用于较复杂的大网络。

分层次的路由选择协议

互联网采用的路由选择协议主要是自适应的(动态的),分布式路由选择协议。由于以下两种原因,互联网采用分层次的路由选择协议:

  1. 互联网的规模越来越大,如果让所有的路由器都知道所有的网络应该怎样到达,则这种路由表将会非常的大,处理起来也会太花时间。
  2. 许多单位不愿意外界了解自己单位网络的布局细节,但同时还希望能够连接到互联网上。

为此,可以把整个互联网划分为许多较小的自治系统AS(autonomous system),自治系统AS是在单一技术管理下的一组路由器,而这些路由器使用一种自治系统内部的路由选择协议和共同的度量,一个AS对其他AS表现的出是一个单一的和一致的路由选择策略

在目前的互联网中,一个大的ISP就是一个自治系统。这样,互联网就把路由选择协议划分为两大类:

  1. 内部网关协议IGP(Interior Gateway Protocol):在一个自治系统内部使用的路由选择协议,而这在与互联网中的其他自治系统选用什么路由选择协议无关。目前这类路由选择协议使用的最多,如RIP和OSPF协议。
  2. 外部网关协议EGB(External Gateway Protocol):若源主机与目的主机处在不同的自治系统中,当数据报传到一个自治系统的边界时,就需要使用一种协议将路由选择协议传递到另一个自治系统中。这样的协议就是外部网关协议EGP。目前使用最多的外部网关协议是BGP第4版(BGP-4)。

自治系统之间的路由选择协议也叫做域间路由选择(interdomain routing),而在自治系统内部的路由选择叫做域内路由选择(intradomain routing)。如图4-31

内部网关协议RIP

工作原理

RIP(routing information protocol)是内部网关协议IGP中最先得到广泛使用的协议[RFC1058],也叫路由信息协议,RIP是一种分布式的基于距离向量的路由选择协议。最大的优点就是简单。

RIP协议要求网络中的每一个路由器都要维护从它自己到其他每一个目的网络的距离记录(因此这是一组距离,叫做距离向量),RIP将距离定义如下:

从一路由器到直接连接的网络的距离为1,从路由器到非之间的网络的距离定义为所经过的路由器数+1。

RIP协议的距离也称之为跳数,但是一条跳数最多只能包含15个路由器,因此,当距离=16时,就相当于不可达。因此RIP只能适用于小型互联网。

注意的是,到直接连接的网络也定义为0(采用这种定义的理由是:路由器在和直接连接在该网络上的主机进行通信并不需要经过另外的路由器,既然经过每一个路由器都要将距离增加1,那么不经过路由器就不需要+1,就是0)。

RIP不能在两个网络之间同时使用多条路由。RIP选择一条具有最少路由器的路由(最短路由),哪怕还存在另一条高速低延时的但是路由器较多的路由。

RIP协议的特点

  1. 仅和相邻路由器交换信息。如果两个路由器之间的通信不需要经过另一个路由器,那么这两个路由器就是相邻的。RIP协议规定:不相邻的路由器不交换信息。
  2. 路由器交换的信息是当前路由器所知道的全部信息,就是现在自己的路由表。也就是说,交换的信息是:我到本自治系统中所有网络的最短距离,以及到每个网络应该经过的下一跳路由器。
  3. 按照固定的时间间隔交换路由信息,例如每隔30秒。然后路由器接收到的路由信息更新路由表。当网络拓扑结构发生变化的时候,路由器也应及时向相邻路由器通告拓扑变化后的路由信息。

路由器在刚开始工作的时候,其内部路由表是空的。然后路由器就可以和直接相连的几个网络的距离(这些距离为1),接着,每个路由器和与自己相连的路由器不断交换路由表信息,经过若干次更新后,所有的路由器最终就可以知道本自治系统中任何一个网络地址和最短下一跳路由器的地址。

路由器最主要的信息是:到某个网路的距离(最短距离),以及下一跳的地址,路由表更新的原则是找出到每个网络的最短距离,这种算法又称之为距离向量算法

距离向量算法

每一个相邻的路由器发送过来的RIP报文,进行以下步骤:

  1. 对地址为X的相邻路由器发来的RIP报文,先修改此报文中的所有项目,把下一跳字段都改为X,并把所有的距离的值+1。每一个项目都有三个关键数据:到目的网络N,距离d,下一跳路由器是X。
  2. 对修改后的RIP报文中的每一个项目,进行以下步骤:
    • 若原来的路由表没有目的网络N,则把该项目添加到路由表中。
    • 否则(即在路由表中有目的网络N,这时再查看下一跳的路由器地址)
      • 若下一跳路由器地址是X,则把收到的项目替换为原路由表中的项目。
      • 否则(即这个项目是:到目的网络N,但下一跳路由器不是X)
        • 若收到的项目中的距离d小于路由表中的距离,则进行更新。
        • 否则什么也不做。
  3. 若3分钟后还没收到相邻路由表中的更新路由,则把相邻路由器记为不可达路由器,即把距离设置为16。(16代表的是不可达)
  4. 返回。

算法描述:其实就是求一个路由器到另一个路由器的最短距离。

例题:
已知路由器R6有表4-9(a)所表示的路由表,现在收到相邻路由器路由表R4发过来的路由更新信息,如图4-9(b)所示。试更新路由器R6的路由表。

image

image

解:首先把R4发过来的路由表中的距离都+1:

image

把这个表和R6的路由表进行比较:

  1. 第一行Net1没有,加到R6的路由表走中。
  2. 第二行Net2存在,但是大于R6的路由表,因此R6的路由表关于Net2这一行不变。
  3. 第三行Net3存在,但是Net3距离小于R6路由表Net3的距离,因此更新。
    因此R6路由表更新后的表为:

image

RIP协议让每一个自治系统中的所有路由都和自己的相邻路由器定期交换路由表信息,并不断更新路由表,使得每从每一个路由器到每一个目的网络的路由都是最短距离(也就是跳数最小)。

RIP协议的报文格式

现在比较新的RIP协议报文格式是1998年提出的RIP2。

image

RIP协议使用运输层的用户数据报(UDP端口为520)进行传输。

RIP报文由首部和路由部分组成。
RIP首部占4个字节,其中的命令字段指出报文的意义。

  1. 命令为1表示请求路由信息。
  2. 命令为2表示对请求路由信息的响应或者更新报文。
    版本就是RIP版本号。
    必为0表示4字节对齐。

RIP2报文中的路由部分有若干路由信息组成,每个路由信息需要用20字节。地址标识符(又称地址列别)字段用来标识所用的地址协议。如果采用IP地址就为2。路由标记填入自治系统号ASN(Autonomous System Number),这是考虑使用RIP有可能收到本自治系统以外的路由选择信息,再后面指出某个网络地址下一跳路由器地址以及到此网络的距离,一个RIP报文最多可以包含25个路由,因而RIP报文的最大长度是4+20x25=504字节。如果超过,则必然再使用以恶搞RIP报文来传送。

RIP还具有简单的鉴别功能,若使用鉴别功能,则将原来写入第一个路由信息(20字节)的位置用作鉴别,这时应该将地址标识符置为全1(0xFFFF),而路由标记写入鉴别类别,剩下的16字节作为鉴别数据,在鉴别数据之后才能写入路由信息,但这时只能写入24个路由信息。

RIP存在的一个问题是当网络出现故障的时候,要经过比较长的时间才能将信息传送到所有的路由器,RIP协议的这一特点是:好消息传播的很快,而坏消息传播的很慢,网络出现故障的传播时间往往需要经过较长时间,这是RIP协议的一个主要缺点。

为了使坏消息传播的更快些,可以采用多种措施,例如,让路由器记录收到某特定路由信息的接口,而不是让同一个路由信息再通过此接口反方向传送。

总之,RIP协议最大的优点是实现简单,开销较小,但RIP协议缺点也很明显,首先限制了网络规模,因为路由器最大的跳数是15跳,一般中大型网络规模RIP协议就不适用了。其次就是路由器之间交换的路由信息是路由器中完整的路由表,因而随着网络规模变大,开销也就增加。最后就是好消息传播的很快,坏消息传播的很慢

posted @ 2021-08-16 21:00  LilyFlower  阅读(591)  评论(0编辑  收藏  举报