广播路由选择算法

不同于单播(点对点)通信的路由选择协议,广播路由选择需要提供一种从源结点到网络中的所有其他结点交付分组的服务。本文主要对广播路由选择算法进行详细说明:

1、N次单播
如果有N个目的结点,那么在源结点中就产生N个分组副本,然后将这N份分组传到N个目的结点,这种方法看上去十分简单,而且是可以利用单播的协议进行N次传送。但是这方法有很多致命的缺点,比如:N次单播的第一段路径都相同,那么这段路径就是被利用了N次,第二个路由器也收到了N个重复的分组。那么,如果从第二个路由器开始发送这N个分组会不会更好点呢?所以这种方法会使得效率变得很低。

2、无控制的洪泛
洪泛是:每个结点收到了广播分组之后向它的所有邻居(除了发送给他分组的那个邻居)发送分组。这个方法看起来是挺好的,但是却存在这两个问题:第一个问题是如果这个拓扑中有圆,那么在这个圆中传播的分组将要无休止地循环下去。第二个问题是路由器将会收到很多重复的分组。

3、受控的洪泛
受控的洪泛主要是通过两种方法进行控制的。
第一种方法是序号控制洪泛(sequence - number - controlled flooding)中,对需要洪泛的分组添加一个广播序号,然后每个路由器都维护一个序号列表。当每个路由器收到一个分组的时候,先检查是否已经存在于序号列表中,如果不在,则记录该序号,然后转发分组,如果在的话,就直接丢弃分组并不转发分组。
第二种方法是反向路径转发(Reverse Path Forwarding ,RPF)(也可以称为反向路径广播)。如果一台路由器接收到一个分组的时候,需要做一件事情,查看一下分组的源地址,检查这个分组是否是从源结点到此结点的最短路径上。如果是的话,就进行继续转发,如果不是,则直接丢弃分组。

4、生成树广播
现在已经研制出了很多种生成树的算法,这里我们只研究一种简单的算法,采用基于中心的方法(center - based approach)建立一颗生成树。首先需要定义一个中心结点,然后其他结点都向中心结点单播“加入树报文”,如果路径还未在树中,那么就直接加入树,如果路径中的某些部分已经在树中,例如该路径是B -> A -> F -> C -> G,但是F已经在树中了,那么就将B -> A加入到树中。通过这样的方法创建一颗生成树。



猜你喜欢

转载自blog.csdn.net/qq_22238021/article/details/80506343