式算法设计基础(第四章)路由算法
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
分布式算法设计基础
第四章路由算法(Routing Algorithms)
一般地,一个进程并不直接用一个其他每一个结点联结,一个结点能够直接发送信息邮包的结点集合称之为该结点的邻居。所谓路由是一个刻画决策过程的术语,根据这个决策过程,一个结点选择其邻居结点中的一个(或一个以上),使这条路上的邮包最终到达目的地。设计路由算法的目的是对每个结点产生一个决策过程,以便执行该功能并确保每个邮包的投递。
显然,每个结点都要保留网络拓扑结构的一些信息作为(局部)决策的工作基础,我们把这些信息与路由表联系在一起,根据这些表的引导,路由问题可以很自然地分成两部分:
(1)表计算在网络初始化的时候计算路由表,且当网络拓扑结构发生改变时,该表必须重新计算更新;
(2)邮包转递通常,我们从以下几个方面来判断和评价一个“好”的路由方法:
(3)正确性算法必须把递交给网络的每一个邮包投递到它的最终目的地;
(4)复杂性路由表的计算算法应该尽可能地使用极少的信息、时间和存储;
(5)有效性算法必须经过“好”的路径发送邮包,例如,路径只承受小的时间延迟,并且保证整个网络高度流畅(通畅)。若一个路由算法使用“最佳”路径,则该算法称为最优的,令人满意的;
(6)健壮性在拓扑结构被改变的情况下(如增加或删除一个结点和通道),算法能自动更新路由表,以便在修改后的网络中执行路由选择功能;
(7)适应性算法应能调整路由表以便平衡通道和结点负载,以免这些要经过的结点和通道过于忙碌;
(8)公平性算法应该以相同的优先级公平地为每个用户提供服务。
这些标准并不一定都能达到,其中一些有时候是相互冲突的,大多数算法只能针对其中的一部分是比较好的。
一般地,网络的拓扑结构抽象地用一个图来表示,于是,算法的最优性依赖于图中什么是“最佳”路径。有几种“最佳”的概念,每一种都与
其自己的路由算法联系在一起,就象编译和文法的分析方法一样。
(1)最小跳跃应用一般路径的成本度量为该路径跳跃的数目,即经过的结点数目减一, hop(跳跃)表示经过通道或从一个结点到一个结点的步数。一个最小跳跃路由算法使用一条具有最小可能跳跃数目的路径。
(2)最短路径每个通道静态地被赋予一个非负数,也称权。一段路径的成本度量为该路径上通道的权和。一个最短路径算法使用一条具有最低可能成本的路径。
(3)最小延迟每个通道动态赋予一个权,该权取决于通道上的交通忙闲情况。一个最小延迟算法以下列方式重复修正一个表,使得这条路径的选择具有最小总延迟数,即总的延迟时间最小。当通道上遇到的延迟依赖于实际交通时,经过网络发送的各个邮包会相互影响,并由此导致群延迟,这是十分复杂的。
1.基于目的地的路由
当投递一个邮包通常只涉及邮包的目的地(和路由表的内容)时要做路由决策,而且,这种决策与邮包最初的发送者是无关的。这样,路由可以忽略源头同时仍使用最优路径策略。本章所得到的结果并不依赖于路径上具体的最优性标准的选择,即无论是最短路径、最小跳跃或其他标准都可以,但下列假设必须成立(回忆:一个路径是简单的,如果他包含每个结点至多一次;称一个路径是一个环,如果第一个结点等于最后一个结点):
(1)经一条路径P发送一个邮包的成本与该路径的实际利用无关,特别,当其他信息也可以使用P的边时,这一假设允许我们把使用路径P的成本看成是路径函数,故将P的成本用C(P) R表示。
(2)两条路径连接的成本等于被连接的路径的成本之和,即对所有的i=0,1,2,k,
C(
特别,空路径
(3)图中不包含一个负成本的环。
最小跳跃和最短路径成本标准满足这些标准。从u到v的一条路径称为是最优的,如果不存在从u到v的具有更小成本的路径。注意,一条最优路径并不总是唯一的,有可能存在不同的路径,它们都具有相同的最小成本。
引理4.1设G =(V,E),u,v V,如果G中存在一条从u到v的路径,则存在一条最优的简单路径。
证明:直接在黑板上证明。
定理4.2对每一个d V,存在一棵树T d = ( V,E d ) 使得,E d ⊆ E,且使得对每一个结点v V,T d中从v到d的路径是G中从v到d的最优路径。
证明:这棵树实际上是一棵生成树。
定理4.2中每一棵树 T d 实际上是原来图中一棵以d为根结点的最优汇集树,他是一棵生成树,但不一定是一棵最小生成树。
术语:若一棵树具有定理4.2中所给定的性质,则称该树为最优汇集树。
最优汇集树的存在性表明:如果仅考虑路由算法,那么,算法4-2中的转发机制不会是对最优性的折中,即不会损害算法的最佳路由。
在算法中,table-lookup u是仅有一个变量的局部过程,它根据路由表作出判断,返回u的近邻作为值。当所有目的地为d的邮包,经过朝向根为d的生成树最优路由时,如果对于所有的u≠d,table-lookup u(d)返回的是生成树T d中u的父结点,则转发是最优的。
当转发机制具有这种形式且拓扑结构不再变化,使用下面的结果就能验证路由表的正确性。
称(针对目的地结点d)路由表包含回路,若存在结点u1,u2,⋯,u k,
满足对任意i,u i≠d,对任意i table_lookup u i(d) = u i+1,且 table_lookup u k(d) = u1 若对任何目的地d,路由表不包含回路,则称它是无回路的。 算法4.2 基于目的地的向前推进算法。(转发算法) 引理4.3 向前推进机制把每个邮包投递到它的目的地,当且仅当路由表无回路。 ∙ 最小延迟分支路由算法 作一个简单的说明。