第4章 路由选择算法
合集下载
相关主题
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
常见路由选择算法: (1)、最短路径法 (2)、扩散法 (3)、基于流量的路由选择 (4)、距离向量路由选择 (5)、链路状态路由选择 (6)、分级路由选择 (7)、移动主机的路由选择 (8)、广播路由选择 (9)、组播路由选择
4.2 最短路径法
4.2.1 基本原理 基本原理 在最短路径法中,数据沿着到目的网络的最短路径 传送。每个路由器有一张路由表,表中包含去往 任一目的路由器的下一跳路由器的地址和距离等 路由信息。路由表在整个初始化配置时生成,并 且在此后的一段时间内保持固定不变。当网络通 信量相对稳定且拓扑结构固定不变时,采用最短 路径法是最好的。
4.5.2 路由表生成与刷新 (1)、距离向量的含义 距离向量路由选择算法使用两个向量来计算到目的 地的最佳距离。
d i1 si1 Di = M ,Si = M , d s iN iN
其中Di是路由器i的延时向量,Si路由器i的下一跳向 量。
(2)、延时计算 每个路由器每隔128ms与它 的所有相邻的路由器交换 它们的延时向量Di,然后 根据收到全部延时向量来 修改本路由器的延时向量 和下一跳向量。 距离向量法要通过比较延时 大小,同时记录使延时当 前最小的路由器,从而最 终给出Si。 dxw=m+dyz+dzw。
链路的总流量表(定量分析表)
(2)、计算链路平均分组数Ci,其中=1/800。800 代表分组平均长度,单位为比特(b)。代表位宽 度,单位为s。 例如:CAB=1/800X20,000=25(分组/s) (3)、计算链路平均延时ti=1/(Ci-λi)。 (4)、计算网络加权平均延时T。 T=∑witi,其中链路i的权重wi=λi/∑λi 本例中,8条链路的加权平均延时是86ms。
4.4.1 基本原理 基本思想 基于流量的路由选择算法就是找出网络最小延时的 路由。 这种算法假定网络中每对路由器之间平均数据流量 是相对稳定的和可预测的,然后通过对流量的定 量分析,再对某个路由选择进行优化(这个路由 选择先由其他某个路由选择算法给出)。
定量分析基本方法: 对某一给定的通信链路,如果已知平均流量和载荷 量,那么就可以由排队论原理计算出该链路上的 平均分组延时。再由所有链路的平均延时,可直 接计算出流量加权平均值,进而得到整个网络的 平均分组延时。
4.6 链路状态路由选择
链路状态路由选择替代距离向量路由选择的主要 原因: (1)、距离向量路由选择使用待发分组排队的队列长 度作为延时度量,没有考虑线路的带宽,不能适 应后来线路升级; (2)、距离向量路由选择算法用于信息记录的耗时过 多。
4.6.1 基本原理 基本原理: 路由器定期探测它的相邻路由器,并把测量到的到 相邻的路由器链路上的状态信息装入一个特定分 组,通过发送该分组到所有的路由器(不只相邻 路由器把链路状态信息告知其他路由器。到其他 路由器的最短路径有Dijkstra算法(Dijkstra算法 是典型最短路算法,用于计算一个节点到其他所 有节点的最短路径。主要特点是以起始点为中心 向外层层扩展,直到扩展到终点为止。Dijkstra算 法能得出最短路径的最优解,但由于它遍历计算 的节点很多,所以效率低)计算。
4.4 基于流量的路由选择
最短路径法和扩散法是针对网络拓扑结构设 计的,在路由选择时没有考虑到通信流量 的影响。这类路由选择算法会把大量的通 信量汇集到最短路径的某一段上,尽管别 的路径很空闲。如最短路径法中A→B的通 信量很大。 一个好的路由选择策略要兼顾拓扑结构和通 信量这两种因素。下面介绍这样的一种算 法——基于流量的路由选择(flow-based routing)。
最短路径度量指标 (1)、两个路由器之间的跳数; (2)、地理距离(单位:千米); (3)、信道带宽; (4)、平均通信量; (5)、通信开销; (6)、队列平均长度; (7)、延时;
4.2.2 路由表的生成
A到D的最短路径计算的前5步,箭头指示工作路由器
最短路径树计算与路由表
使用最短路径算法注意: 由A的路由表可以看出,所有由A转发的分组都要 经过B,如果通信量变化较大的话,B很可能不堪 重负而发生拥塞,进而影响网络的传输性能。可 见,最短路径算法在通信量不平稳时不好。
第4章 路由选择算法
宫彦磊 2008级计算机应用技术
4.1 路由选择策略
考虑因素: (1)、网络的通信量 选择通信量相对较小的路径以避免拥塞。 (2)、网络的拓扑结构 随时掌握网络的拓扑结构,不能选择一个 不工作的路由器作为数据的下一跳路由器。
路由选择策略的两大分类: (1)、静态路由选择(static routing) 事先计算好路由选择,网络启动时加载到路由器中, 不再变化。 (2)、动态路由选择(dynamic routing) 也叫自适应路由选择(adaptive routing),根据 实时测量或者估计网络的当前通信量和拓扑结构 做出路由选择。
4.4.3 路由策略 上述定量分析的结果给出了网络加权平均延时T,它 可以看作是泛函f以cij,fij和R0(初始路由选择算 法)为输入值,即T=f(cij,fij,R0)。 因此,当R0变化时,即采用另外一种路由选择算法 R1后,会得到一个新的T1,当T1<T时,基于流量 的路由选择算法认定为R1比R0好。
(3)、计算下一跳路由器 对任一路ቤተ መጻሕፍቲ ባይዱ器i,令
d ij = min (tik + d kj ) k∈ A sij = h,h使t ih + d hj最小
其中,A为路由器i所有相邻路由器的集合,dkj为路由 器k到路由器j的延时的当前估值,tik为i,k间的当前 延时。上式第一式的意义是求出路由器i经某个相邻 路由器到路由器j的最小延时。第二式的物理意义是, 若i经相邻路由器h到j的延时最小,则h就作为i~j的 下一跳路由器,i到j的延时是tih+dhj。
4.6.4 组装链路状态分组 链路状态分组的格式: (1)、发送者标识是发送该分组的路由 器的名字; (2)、序号是指该分组是路由器发送的 第几个分组,路由器每发送一个分 组,其序号就加1。序号占32b, 足够路由器为分组排序之用; (3)、年龄是指分组生存时间,每秒减 1,当年龄归零时,分组就被丢掉。 可以防止分组在网络中生存时间过 长。
抑制方法负面作用 被丢弃的复制品的原分组有可能没有被目的主机接 收。因为扩散法的复制转发完全是随机地,没有 任何条件约束。因此,更有使用价值的扩散法应 该是有选择的,也就是选择性扩散法(selective flooding)。
4.3.2 选择性扩散法 路由器并不将每一个到来的分组转发到所有相邻的 路由器,而是进发送到与正确方向接近的路由器。 因此,分组仅在满足某些事先确定的条件的链路 上发送,而不是向不希望的方向转发。 例如:应该向“南”发送的分组不会转发到向“北” 发送的链路上去。
4.5 距离向量路由选择
4.5.1基本原理 距离向量路由选择算法要给出的两个重要数据 (1)、到达目的地的输出链路; (2)、到达目的地的距离(或者是跳数、延时、排队 长度等度量)。 此外,相邻路由器要周期性地交换网络状态信息, 即各路由器中的路由表不断刷新,由于网络状态 信息只能在相邻路由器之间交换,因此,网络状 态变化要经过一定时间后,才能被各路由器知道, 从而刷新其路由表数据,这段时间越短,网络路 由越早地趋于稳定,因而就越好。
(4)、路由表生成与刷新 在网络启动的最初一段时间内,路由器首先探测相 邻路由器,得到它们之间的延时,然后通过以上 算法计算到任一路由器的下一跳路由器以及相应 的延时。当所有的路由器通过互换路由信息得到 上述Di和Si后,网络路由就稳定地建立起来了, 即每个路由器中的路由表就生成了(主要项目就 是延时向量Di和下一跳向量Si)。
优点: 继承了距离向量路由选择动态采集交换路由信息的 特点,使用了最短路径算法处理链路信息,简单 高效。
执行链路状态路由选择的路由器的工作: (1)、探测相邻路由器,并获得其网络地址; (2)、测量到相邻路由器的延时或开销; (3)、组装链路状态信息分组; (4)、发送链路状态信息分组到所有其他路由器; (5)、计算到其他路由器的最短路径。
分组组装时机: (1)、定期组装,即每隔一定时间组装一次分组。 (2)、不定期组装,只有当网络中发生链路或路由器 的增删或状态信息发生明显改变时才组装分组。
基于流量的路由选择必须已知以下信息: (1)、网络的拓扑结构。(链路数量) (2)、路由器i和j之间流量fij (3)、路由器i和j之间链路的载荷(容量)Cij (4)、初始路由算法。由它给出待优化路由。 在流量和拓扑结构相对稳定的场合,这些条件是容 易满足的。这也正是静态算法适用的场合。,也 就是把该算法作为静态算法的原因。
4.3 扩散法(flooding)
4.3.1 基本原理 基本思想 当某个路由器收到一个不是发给它的分组时,就向 所有相邻的路由器转发该组(发送该分组的路由 器除外)。
扩散法优缺点 (1)、优点:当网络通信量很小时,扩散法可使分组 的传输延时达到最小,同时,会存在许多路由供 分组使用,而且会有一条是最佳的,因而扩散法 有很好的稳健性和可靠性。 (2)、缺点:网络中存在大量重复分组(这也是其可 靠性的代价),重复分组的数目会呈几何级数增 长,如果不采取抑制措施,会导致网络出现拥塞 现象。
抑制重复分组数目的措施(计数器和序号登记) (1)、计数器法 在每个分组的头部设置一个计数器。分组每经过一 个路由器,计数器就自动加1。当计数器的当前值 达到规定值(如网络两端最大跳数)时,就将该 分组丢弃。
(2)、序号登记法 源路由器在每个分组中设置一个序号,当分组经过 路由器时,路由器就把该序号在登记表中登记, 当分组再次经过该路由器时,路由器就不在转发 它了。 由于每个分组的序号全局有效,因此路由器的登记 表有可能会无限制地增长,这样会占用路由器的 存储空间,同时也会降低查表效率。 防止登记表过大措施:为每个表增加一个参数k,k 相当于一个门限值,表示序号≤k的分组已经登记 过,因此不用在表中把保存,从而节约空间。
4.2.2 定量分析
定量分析的步骤: (1)、计算链路i总流量λi。 a、链路i的总流量λi是指各路由经i的流量之和。例 如链路AB的总流量: λAB=9(A→B)+4(A→C)+1(A→D)=14,即λi=∑fij。 b、链路是有向的,即AB和BA是两条链路。本例中 的流量是对称的,即XY流量与YX流量相等。
4.6.2 探测相邻路由器 相邻路由器的存在是由Hello分组的发送及响应确定: 路由器向每条点对点链路发送Hello分组,接到 Hello分组的另一端路由器发回一个应答,说明 “我是谁”。 路由器的名字必须是全局唯一,否则无法确定叫me 的路由器应该由哪条链路到达,因为同时存在多 个me。
链路状态路由选择把LAN抽象成一个结点
4.6.3 测量链路开销 最直观的方法:(以延时开销为例) 发送一个ECHO分组给相邻的路由器X,并要求X收 到后,立即把ECHO分组发回来,ECHO分组往 返的时间的一半就是与X之间延时的一个自然估值, 可以多取几个这样的估值,按数理统计原理计算 出更为精确合理的估值。
延时包括了分组在链路上的传输时间和两端发送 与接收的排队时间。其中传输时间与带宽有关, 排队时间与载荷(链路容量)有关。
举 例 说 明 路 由 表 的 生 成 过 程:
4.5.3 好坏消息的快慢问 题 距离向量路由选择有一 个显著的问题: 好消息传播快,坏消息 传播慢。
图a结论: 每交换一次信息,好消息就会被传播到更远的一个 路由器。在一个N个路由器的网络中,在N次交换 内,所有路由器都会知道新增的线路和路由器。 因此好消息传播的快。 图b结论: 各路由器到A的距离逐渐增大,要经过很长时间才 能达到∞。此时,A才会被发现不可达,因此坏消 息传播得慢。(为迅速得知A不可达,可定义一 个较大值代替∞,N+1;延时为指标时,一般采用 网络最大延时来替代∞)