科技大本营|到底什么是路由?

路由是指路由器从一个接口上收到数据包 , 根据数据包的目的地址进行定向并转发到另一个接口的过程 。
从下面的动图可以明显看出 , 进行从源到目标的数据管理不是一件容易的事情 。
设置路由器的主要目的是找到数据包从源到目的地的最有效路径 。 使用非常复杂的算法 , 路由器决定当前数据包必须通过哪个路由器或设备发送 。 重复此过程 , 直到数据包最终到达目的地 。
在动态路由中 , 路由是由软件根据网络的当前状态来设置的 。
网络变化 , 如链路故障、流量变化等 , 将在每一个离散时间步更新 。 根据这些信息 , 将在每个时间步长确定新路线 。 动态路由优于静态路由 , 因为路由器会根据网络中的变化进行实时更新 。
下面介绍一下最流行的动态路由算法之一 , 链接状态算法 。
链路状态算法分为ReliableFlooding和Dijkstra最短路径算法 。
这个算法是由著名的荷兰计算机科学家EdsgerWybeDijkstra(1930-2002)在1956年开发的 。 下面的网络中标记出了每个节点之间的成本 , 挑战在于找出从一个节点到另一个节点的最短路径 。 Dijkstra算法生成一个表作为它的输出 , 利用这个表我们可以确定网络中的最短路径 。
下面的动图简单演示了这个过程 。
您可能已经注意到 , 为了完美地执行Dijkstra算法 , 每个路由器应该具有整个拓扑的信息 。 这是链路状态路由的第一步 。 路由器的邻域信息称为它的链路状态 。 这些信息可以是相邻路由器的IP地址、相邻链路的成本等 。 包含此邻域信息的小数据包称为链路状态数据包 。 我们应该准确地用拓扑中所有其他路由器的链接状态填充每个路由器 。


推荐阅读