这节课我们来学习一下路由算法及相关的路由协议。
首先呢我们在之前一直在讲这个路由器的事儿。那路由器呢它自己本身会有这样一个路由表或者是转发表。只要有了这个表,啊只要通过这个表,我们就可以知道我们这个分组经过这个路由器之后,接下来应该往哪儿走,也就是我的下一跳应该往哪里去呢?所以可以看到这个路由表它是至关重要的。但是路由表当中的表项,也就是它当中的每一行,这些是怎么得到的呢?
啊,其实就是靠路由算法来得到的。但是我们可以想象,如果这一个路由器,它连着很多个路由器,那它的下一跳是不是有很多种方向。那我们如何决定究竟是哪个方向呢?当然,这也是路由算法帮我们考虑到了。
路由算法呢它会选择一个最佳路由,也就是说,
这节课我们来学习一下RIP协议以及相应的距离向量算法。
在上节课呢我们讲解了路由选择协议的一个分类。根据是在一个自治系统内使用还是自治系统之间所使用的路由选择协议,我们分成了内部网关协议IGP以及外部网关协议EGP。其中这个内部网关协议IGP当中呢,啊比较常用的两个,一个是RIP,一个是OSPF。那它们两个的区别呢,一个是在于使用的路由选择算法不一样。RIP呢使用的是距离向量,OSPF呢使用的是链路状态。而且呢它们两个适用的网络大小也不一样。RIP呢,适用于比较小的网络。OSPF呢,是适用于比较大的网络。那造成这种网络大小区别的原因呢,我们就这节课来研究一下。
首先呢我们来看一下什么是RIP协议。
这节课我们来学习一下OSPF协议以及它所使用的链路状态算法。
那在之前呢我们学习了路由选择协议的一个分类,根据是在自治系统内还是自治系统之间所使用的协议分成内部网关协议IGP以及外部网关协议EGP。那其中,对于IGP呢,我们常使用的两个协议是RIP和OSPF。那上节课我们讲了RIP协议以及距离向量算法,这节课我们就来学习一下OSPF。
那OSPF协议呢它叫做开放最短路径优先协议。“开放”指的是这个OSPF协议不是受某一家厂商所控制,而是公开发表的。那这个SPF呢,其实代表的就是最短路径优先。啊之所以叫最短路径优先,是因为我们使用了迪杰克斯特拉提出的这个最短路径算法SPF。那有的同学可能会想,这个之前讲过的RIP协议,也就是RIP协议,难道不是求最短路径吗?当然也是的。OSPF和RIP协议它们都是要求出这个最短路径也就是路由器到网络之间的最短路径是多少。那这里面只是因为啊它使用的这个算法啊叫做最短路径,所以我们就叫它最短路径优先协议。
那OSPF最主要的特征呢,就是使用了分布式的链路状态协议也可以说是使用了链路状态的算法。那有关于这个链路状态算法呢,我们接下来会详细地讲解。
首先我们来解决这几个问题,就是OSPF协议它和谁交换信息以及交换什么信息,还有多久交换一次信息。那这个都是我们上节课在讨论RIP协议当中提出的三个问题。首先我们来看,在OSPF协议当中,路由器和谁交换信息呢?
啊,它是使用洪泛法向自治系统内的所有路由器发送信息,也就是路由器通过输出端口向所有相邻的路由器发送信息。而每一个相邻路由器呢又会把这个信息发往其所有的相邻路由器。啊虽然表面看上去是这个路由器在给相邻的路由器发信息,但是最后发完的结果就是这个路由器所发送的信息,全网内的路由器全部可以收到,这就叫做洪泛法。啊就像洪水一样泛滥出去了,这个信息就一传十,十传百地传给了整个网络当中的所有路由。
那其实呢就类似于我们之前讲过的一种广播的形式。这个路由器把自己的信息,发送给这个网络当中的所有路由器。
因此到最后整个区域内所有路由器都会得到这个信息的一个副本。
那接下来我们看第二个问题。交换什么信息呢?啊交换的是相邻的路由器的链路状态,啊而且是所有路由器的链路状态。那这个链路状态指的是什么呢?啊包括本路由器和哪些路由器相邻,以及它们相邻这个距离,也就是链路的度量或者叫代价。那这个里面的度量和代价和之前讲的距离向量不一样,之前的距离向量呢指的就是跳数,经过路由器的个数。那这里面的度量呢,啊可以是费用、距离、时延、带宽等等。那这个取决于我们自己定义它的一个标准。那这个是和RIP协议完全不同的一点,啊RIP协议呢它是和相邻路由器交换自己完整的路由表,而这个路由表当中包含信息呢就是到目的网络的最短距离,以及下一跳走的路由器。而这里面路由器它所交换的信息呢,是它的相邻路由器,以及它到相邻路由器之间的一个度量或者说是代价。
那再来看第三个问题,多久交换一次呢?在OSPF协议当中是只有当链路状态发生变化的时候,路由器才会向所有路由器洪泛使用洪泛的方法发送这个信息。也就是说链路状态发生变化时,才会交换信息。那链路状态如果没有发生改变,它就不会发送信息了。那这个也是和RIP协议要区分的一点。RIP协议呢是每30秒就会更新一次,或者说每30秒就会交换一次自己的路由表。但是这个OSPF只有变化才会交换。
那经过以上我们所讲的这个交换信息的过程呢,所有的路由器到最后都能够建立一个链路状态数据库,也就是全网的拓扑图。也就是说,对于每一个路由器,它都知道,到自己这个网络内的所有路由器应该经历多少的度量或者是代价。也就是最后呢,每一个路由器它都清楚自己到这个全网络内的其他路由器的一个最短路径是多少。
接下来我们就详细地看一下链路状态的路由算法。首先呢第一步,就是每一个路由器都会发现它的邻居结点,啊这个发现过程呢是通过发送HELLO问候分组,并且呢了解邻居结点的网络地址。那这个过程呢其实是任何两个相邻的路由器之间都会发生的一个过程。也就是任何两个邻居,两个相邻的路由器,它每隔十秒都会发送这样一个问候的分组。那这样呢它就会知道我周围有哪些路由器,然后来确定周围的哪些临站是可达的。因为我们知道,只有可达,我们才能够进行接下来的步骤,进行度量的设置,以及这个路由表的建立。
那再来看第二步。第二步就是设置到它的每个邻居的成本度量。这个度量呢英文单词是metric。
这节课我们来学习一下BGP协议。
首先呢我们回顾一下之前所讲到的路由选择协议。根据是在一个自治系统内使用还是自治系统之间使用,我们分成了内部网关协议IGP以及外部网关协议EGP。那我们之前两节课呢讲的就是RIP以及OSPF这两种协议。这节课我们就来学习一下外部网关协议的一个典型代表BGP协议。
首先呢BGP协议我们还是要解决这三个问题。在这个协议当中,谁和谁交换信息,交换什么样的路由信息,以及多久交换一次信息。首先第一个问题,这个BGP协议当中啊是与其他AS的邻站BGP发言人交换信息。
首先我们解决一个问题,什么叫做BGP发言人。
啊,结合这样一个网络拓扑图我们来看一下。这里呢有AS1,AS2,AS3,AS4,AS5,5个自治系统。那其中呢我们这边也标识了有一些叫做BGP发言人的路由器。我们在配置BGP的时候呢,每一个自治系统的管理员都要选择至少一个路由器来作为这个自治系统的BGP发言人。一般来说呢两个BGP发言人都是通过一个网络、共享的网络连接在一起的,而这个BGP发言人往往就是BGP边界路由器也就是一个自治系统边界与外界相连的这样一个路由器。当然呢,有的时候也可以不是这个边界路由器。
那我们接下来再看第二个问题,这些BGP发言人它们要交换什么信息呢?啊交换的是网络可达性的信息,也就是要达到某个网络所要经过的一系列AS。比如说对于这个AS5,也就是自治系统5,它的一个边界路由器也就是它的一个BGP发言人。那这个发言人呢它路由表内的信息呢就是指明这个网络的可达性。
那接下来第三个问题是多久交换一次呢。这个和之前讲过的OSPF协议很类似,就是发生变化的时候才会更新有变化的部分。而并不像RIP协议一样,每30秒就要更新一次,交换一次。
那接下来我们就看一下BGP协议交换信息一个过程。啊BGP所交换的网络可达性信息呢就是到达某个网络所要经过的一系列AS。