哈工大计算机网课程络网络层协议详解之:Internet网络路由协议详解(RIP、OSPF)

本文介绍了RIP协议的工作原理,包括其基于距离向量的路由计算方法,以及链路失效和恢复的处理。同时,文章探讨了OSPF协议,强调其链路状态路由算法和分层结构,以及相对于RIP的优势,如安全性和支持多播路由。OSPF的分层设计有助于大型网络的效率和带宽管理。
摘要由CSDN通过智能技术生成

之前我们也介绍了,作为我们现在广泛使用的Internet网络来说,采用的路由策略是层次化路由策略。 即将不同区域、组织的网络划分成一个个自治系统,在自治系统内部采用自定义的路由协议(算法)计算路由信息,而自治系统间的路由协议(算法)则依靠每个自治系统的网关路由器来实现。

在Internet网络中,自治系统(AS)的内部路由协议也被称为内部网路协议(IGP interior gateway protocols)。

最常见的AS内部路由协议:

  • 路由信息协议:RIP(Router Information protocol)
  • 开放最短路优先:OSPF(Open Shortest Path First)
  • 内部网关路由协议:IGRP(Interior Gateway Routing Protocol)(Cisco思科私有协议)

在本节中,我们首先介绍AS内部路由协议:RIP协议和OSPF协议。

RIP协议

RIP协议早于1982年随BSD-UNIX操作系统发布。

基于距离向量路由算法实现,来计算在自治系统(AS)内,到达某一个节点的最短路由。

RIP协议在使用距离向量路由算法时,有一些特殊的设置:

  • 距离度量:跳步数(max = 15 hops),每条链路一个跳步。
  • 每隔30s,邻居之间交换一次距离向量Dv。在距离向量路由算法中,每次节点间交换彼此距离向量时,称为一次通告。
  • 每次通告时,最多25个目的子网(IP地址形式)

具体的可以看以下这个例子,图中大写的A、B、C、D就是路由器,小写的u、v、w等就表示一个个子网(实际网络中,这些子网的表示就应该是CIRD形式,网路地址/前缀长度)。

在这里插入图片描述

在上述示例网络中,路由器A应该具有上述信息:到达子网u,需要一个跳步;到达子网v,需要两个跳步(先从A->B, B->v,经过两个链路);以此类推。

理论上来说,每次上述AS内部交换的距离向量信息,就是上述目的子网,跳步数组成的距离向量。

实际中的网路中路由器存储的转发信息可能如下所示:

在这里插入图片描述

上面的路由表中显示了路由器D的转发表,比如去往目的子网w经过的下一跳路由器是A,且需要的跳数为2。

假设,此时AS内进行了距离向量的交换(通告),此时路由器A的路由表为:

在这里插入图片描述

由于原先路由器D的转发表中,从路由器D到目的子网z需要经过的跳数是7,吸一跳路由器是B。而现在路由器A中的转发表到达目的子网z的跳数是4。那么在进行一次距离向量的交换后,路由器D会依据交换的距离向量信息重新计算到其他子网的跳数。此时从路由器D到目的子网z的最短跳数就是4+1=5,应该转发到路由器A,而不是原先的路由器B了。

更新后的路由器D的转发表如下所示:

在这里插入图片描述

事实上,上述抽象过程就是距离向量路由算法更新节点距离向量的计算过程,只不过在RIP协议中路由表多了下一跳信息。

RIP链路失效、恢复问题

在RIP协议中,判断链路失效的方法是:

当一个路由器如果在180s没有从另外的邻居收到新的通告,就可以推断跟对应的邻居/链路失效。

上面我们介绍过,RIP协议每30s邻居间发送一次通告,因此也就是如果有6个通告路由器都没收到,则推断与对应的邻居/链路失效。

如果路由器推断某一邻居或到邻居的链路不可用时,就需要重新计算路由,因为原先经过这个邻居的路径信息都不可用了。

重新计算可能会导致距离向量的改变,如果发生了改变,该路由器也需要将该距离向量通告给其他的邻居节点。邻居再依次向外发送通告(如果转发表改变),以此类推。

这里有个问题,就是链路失效信息能否快速传播到全网?

实际上,这个是不一定的,需要考虑网络特性以及协议机制,因为有可能产生无穷计数问题。

但是对RIP协议来说,这种问题应该来说被很大程度消减了,因为正如我们最初介绍的,RIP协议定义了最大有效跳步数15(无穷大距离=16 hops)。换句话说,即便出现无穷跳数问题,也可以在有限的次数内,得到正确的收敛。

同时,RIP协议也使用了毒性逆转技术用于预防乒乓(ping-pong)环路。

RIP路由表的处理

RIP路由表是利用一个称作route-d(daemon)的守护进程进行管理,是一个标准的应用层进程。作为一个应用进程,它的数据传输一定会用到传输层协议,具体来说,RIP协议就是利用UDP协议将通告报文封装成UDP数据报来周期性传输。

在这里插入图片描述

既然RIP协议是由应用进程实现的协议,为什么还把它叫做网络层的协议呢?需要注意的是,在网络中对一个层次的划分,无论是OSI参考模型、TCP/IP参考模型、还是五层参考模型也好,通常不是根据协议的具体实现形式来划分的,而是根据功能进行划分的。 换句话说,实现的功能是为了解决哪一层的功能,就属于对应层次的协议,而具体的实现形式可以是高层的应用进程实现,后者是底层的硬件实现都可以。

OSPF协议

OSPF协议我们之前提到过,名称叫做最短路径优先(Open Shortest Path First)。

OSPF协议的特点包括:

  • “开放”:公众可用,即不是某一个公司或企业私有的协议。

  • 采用链路状态路由算法(构造链路状态分组,借助Dijkstra算法求节点间最短路径)。

    • 链路(LS)状态分组扩散(通告)
    • 每个路由器构造完整的网络(AS)拓扑图
    • 利用Dijkstra算法计算路由
  • OSPF通告中每个入口对应一个邻居。即有多少个邻居与其相连,就会有多少个入口,其中包含了邻居的ID、链路费用等信息。

  • OSPF通告在整个AS范围内泛洪(通告发给邻居,邻居再发给邻居,以此类推)

    • OSPF报文直接封装在IP数据报中进行传输的(即没有借助于TCP/UDP传输层协议)。
  • 与OSPF协议极其相似的一个路由协议:IS-IS路由协议

OSPF协议有时候会被认为是对RIP协议后续的一个改进协议,与RIP协议相比,OSPF的优点包括:

  • 安全(Security):所有OSPF报文可以被认证(预防恶意入侵)。

    • 比如一个恶意入侵在网络中构造一些虚假的链路状态分组,并在网络中进行扩展,如果不加以鉴别,被路由器维护在链路状态数据库中,就会使得路由器得到一个假的网络拓扑,进而得到错误的路由数据。
  • 允许使用多条相同费用的路由(RIP只能选一条)

    如果到达某个目的网络具有多条相同费用的路径的话,OSPF协议不是在这些路径中任取其中一个,而是可以同时使用多条路径。这样做的优点就在于,有大量数据要传输到网络中时,可以把这些数据分散到多条路径上去,这样可以实现负载/流量的均衡。

  • 对于每条链路,可以针对不同的TOS设置多个不同的费用度量

    e.g.,卫星链路可以针对“尽力”(best effort)TOS设置“低”费用;针对实时TOS设置“高”费用。

    实现不同类型数据分组的分流。

  • 集成单播路由与多播路由:

    多播路由:把一个数据报路由到某一个多播组的所有成员,保证每个多播组成员都能收到这个数据报的副本。

    多播OSPF协议(MOSPF)与OSPF利用相同网络拓扑数据

  • 最明显的优点:OSPF支持对大规模AS分层(hierarchical)

分层的OSPF

分层的OSPF示例如下所示:

在这里插入图片描述

OSPF可以在上图的AS中,再对层次进一步划分。划分成两级分层:

  • 若干局部区(Area)
  • 主干区(Backbone)

这样的划分思想与我们之前介绍过的层次路由的思想是非常一致的。

在OSPF协议中使用了这样进一步的层次划分后,就可以只在每个划分的AS区域内交换链路状态分组就可以了,从而更进一步的缩小了交换链路状态分组的范围。 使得在一个大的自治系统内部,链路状态分组的传播和扩散范围更小了,极大地提高了计算效率,节省了网络带宽。

由于只在AS区域内的路由器间交换链路状态分组,因此每个区域内的路由器只掌握所在区域的详细网络拓扑,也只在这个区域内按照链路状态算法计算路由信息。

同样的,在划分区域后,区域间的路由信息交换跟我们之前将分层路由原理是类似的,都需要借助于网关路由器,如下所示

在这里插入图片描述

区边界路由器从上图中可以看出,它既是某个区域的路由器,同时也是主干区的路由器。作为某个区域的路由器,它可以跟区域内的路由器交换链路状态分组,构造区域的网络拓扑,根据链路状态算法计算路由。

同时,它也是个主干去的路由器,因此也可以参与主干区的链路状态分组交换,得到主干区的网络结构拓扑和路由交换信息。

更重要的,作为区边界路由器,它需要负责汇总它所在区域网络内的路由转发信息,并通告给其他区边界路由器。从而让其他区域的区边界路由器知道如何到达该区域的路由信息。

主干路由器

在主干区域内的路由器称为主干路由器。在主干区域内既存在区边界路由器,也存在一般内部路由器。我们将一般内部路由器成为主干路由器。

在这里插入图片描述

主干路由器跟其他局部区域的内部路由器一样,只在主干区运行OSPF路由算法,扩散链路状态分组,按照Dijkstra计算路由等操作。

除此之外,也包含一个特殊的AS边界路由器(自治系统边界路由器)。这个AS边界路由器需要负责连接其他自治系统。

在这里插入图片描述

由于OSPF是自治系统内的协议,当在自治系统内部继续分层时,仍然是局限在一个自治系统内。而作为一个自治系统,终究要去其他自治系统相连,这里的区边界路由器就相当于网关路由器,连接其他自治系统。

事实上,在自治系统内可以有多个AS边界路由器,负责不同的与其他AS自治系统的路由交换和转发。

更详细的信息可以参考RFC 2328

  • 1
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

JermeryBesian

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值