计算机网络原理 路由算法
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
计算机网络原理路由算法
网络层的主要功能是将分组从源计算机通过所选定的路由送到目标计算机中。在大多数子网中,分组需要经过多次转发才能到达目的地。广播式网络是惟一一个值得指出的例外,但即使是在广播式网络中,如果源机器和目标机器不在同一个网络中,仍然有路由选择的问题。路由选择算法及其使用的数据结构是网络层设计主要的内容。
路由算法(Routing Algorithm)是网络层软件的一部分,它负责确定所收到的分组应该被传送的线路。如果子网内部采用数据报,那么路由器需要对每一个收到的数据分组重新作路由选择,因为对第一个分组来说,上次选择的最佳到达路径可能已被除改变。但是,如果子网内部采用虚电路,当建立健一条新的虚电路时,仅需要作一次路由选择,以后,数据分组就在这条已经建立的路径上传递。后一种情况有时又称作会话路由选择(Session Routing),因为在整个用户会话过程中,传输路径必须保持有效(例如终端上的登录会话或文件传输期间)。
不管是针对每个分组单独地选择路由,还是只有建立新连接的时候才选择路由,我们总希望路由选择算法中具有这些特性:正确性、简单性、健壮性、稳定性、公平性和最优性。正确性和简单性不需要多加解释,但对健壮性的要求则并不显然。一旦一个重要的网络投入运行,它有可能需要连续无误的运行数年。在这期间,将会出现各种各样的硬件和软件错误。主机、路由器和线路可能会增加或撤除,网络拓扑结构也可能会发生多次变化。路由选择算法应该能够妥善处理拓扑结构和流量的变化,而不会使所有主机都停止工作,并且每当某台路由器崩溃时,不需要重新启动该网络。
稳定性也是路由选择算法的一个重要目标。有些路由算法不管运行了多长时间,都不可能会趋于平衡。一个稳定的算法则会使其达到平衡,并且保持平衡状态不变。公平性和最优性是显而易见的,但它们又通常是相互矛盾的。
路由算法可以分成两大类:非自适应的和自适应的。非自适应的算法(Nonadaptive Algorithm)不会根据当前测量或者估计的流量和拓扑结构来做路由选择。相反,从I到J的路由对于所有从I到J是预先在离线的情况下计算好的,在网络启动时就被下载到路由器中。这一过程有时也被称为静态路由选择(Static Routing)。
相反,自适应算法(Adaptive Algorithm)则会改变它们的路由选择,用来反映出拓扑结构的变化,通常也会反映出流量的变化情况。自适应算法由于其获取信息的来源不同(例如,从本地、从相邻路由器或从所有路由器)、改变路径的时间策略不同(例如,每隔T秒、当载荷变化或者拓扑结构改变的时候)、用于优化的参数不同(例如,距离、站点数或估计传输时间)。下面我们将讨论各种各样的路由算法,包括静态的和动态的。