LS和DV选路算法
问题??
- 我们通过百度建立连接,搜索信息。我们发送的信息通过无数个路由器的转发才能够到达百度的服务器。那么这些分组(我们姑且这么叫它)是如何选择一条通往百度服务器的路呐?这就是这片文章要回答的问题。
选路算法的分类
- 全局选路算法:这种算法必须知道网络中每条链路的费用,LS算法是全局选路算法的一种。
- 分散式的选路算法:每个节点仅有与其直接连接的链路的费用知识就可以开始工作,DV算法就是分散式的选路算法的一种
链路状态(Link-State,LS)选路算法
- 我们首先定义以下符号(如果现在不明白没有关系,我们通过后面的例子后再来看就清晰的多了:
- D(V):从源节点到目的v的最低费用路径的费用
- c(X,Y):表示X和Y间链路的费用
- p(V):从源节点到v的最低路径的v的前一个节点
- N’:节点子集;v在N’中,如果从源节点到目的节点的最低费用路径已经确定,也就是下面表格中的Travel Set
- N:节点的集合
- 源节点u的链路状态(LS)算法:如果看不懂也没关系,通过例子之后你会发现这样的表达很优雅。
- 链路算法有很多种:下面我们给出的这种叫做Dijkstra算法
/* 伪代码摘自《计算机网络:自顶向下方法与Internet特色》*/
Initialization:
N