考虑一个场景,其中三个节点A、B和C相互连接。节点A向B和C发送链路状态信息。类似地,C将信息发送给B,B再次将信息发送给C,这个过程在一个循环中继续。这个问题称为循环。
因此,在理想的情况下,你希望节点只接收此信息一次。
那么如何克服循环问题呢?
每个包被分配一个唯一的ID。当B从A和C收到这个唯一ID的数据包时,它不发送给C。
Flooding操作后,每个节点独立运行Dijkstra最短路径算法,以确定从自身到网络中其他节点的最短路径。我们所看到的算法是在网络协议的帮助下实现的。
将Flooding操作应用到整个全球网络几乎是不可能完成的任务。
链路状态路由算法的协议称为OSPF。
在OSPF中,整个网络被分成几个局部区域。还创建了一个主干区域,它共享来自本地区域的至少一个路由器。这样就创建了一些边界路由器。你可以看到所有的本地区域都通过这些边界路由器连接到主干区域。在OSPF中,Flooding操作发生在局部区域,而不是全局。
如果一个局部区域的数据包需要传送到另一个局部区域,它们必须经过主干区域。比如数据包从区域二流向区域三,它们必须通过主干区域,而不是直接通过。这种类型的结构通过减少路由表的大小来降低操作的复杂性,还有助于提高网络的可伸缩性。
希望这篇文章能帮助你对路由操作有一个更好的认识!