路由基础知识:路由算法

路由算法可以根据多个特性来加以区分。首先,算法设计者的特定目标影响了该路由协议的操作;其次,存在着多种路由算法,每种算法对网络和路由器资源的影响都不同;最后,路由算法使用多种metric,影响到最佳路径的计算。下面的章节分析了这些路由算法的特性。

1、设计目标

路由算法通常具有下列设计目标的一个或多个:

优化

简单、低耗

健壮、稳定

快速聚合

灵活性

优化指路由算法选择最佳路径的能力,根据metric的值和权值来计算。例如有一种路由算法可能使用跳数和延迟,但可能延迟的权值要大些。当然,路由协议必须严格定义计算metric的算法。

路由算法也可以设计得尽量简单。换句话说,路由协议必须高效地提供其功能,尽量减少软件和应用的开销。当实现路由算法的软件必须运行在物理资源有限的计算机上时高效尤其重要。

路由算法必须健壮,即在出现不正常或不可预见事件的情况下必须仍能正常处理,例如硬件故障、高负载和不正确的实现。因为路由器位于网络的连接点,当它们失效时会产生重大的问题。最好的路由算法通常是那些经过了时间考验,证实在各种网络条件下都很稳定的算法。

此外,路由算法必须能快速聚合,聚合是所有路由器对最佳路径达成一致的过程。当某网络事件使路径断掉或不可用时,路由器通过网络分发路由更新信息,促使最佳路径的重新计算,最终使所有路由器达成一致。聚合很慢的路由算法可能会产生路由环或网路中断。

在下图中的路由环中,某分组在时间t1到达路由器1,路由器1已经更新并知道到达目的的最佳路径是以路由器2为下一跳,于是就把该分组转发给路由器2。但是路由器2还没有更新,它认为最佳的下一跳是路由器1,于是把该分组发回给路由器1,结果分组在两个路由器间来回传递直到路由器2收到路由更新信息或分组超过了生存期。

路由算法还应该是灵活的,即它们应该迅速、准确地适应各种网络环境。例如,假定某网段断掉了,当知道问题后,很多路由算法对通常使用该网段的路径将迅速选择次佳的路径。路由算法可以设计得可适应网络带宽、路由器队列大小和网络延迟。

时间: 2025-01-30 11:56:01

路由基础知识:路由算法的相关文章

路由基础知识:PIM的相关配置

PIM是Protocol Independent Multicast(协议无关组播)的简称,表示可以利用静态路由或者任意单播路由协议(包括RIP.OSPF.IS-IS.BGP等)所生成的单播路由表为IP组播提供路由.组播路由与所采用的单播路由协议无关,只要能够通过单播路由协议产生相应的组播路由表项即可. 要把路由器配置为HSRP备份组的成员,可以在接口配置模式下使用下面的命令: router(config-if)# standby group-number ip ip-address 为了使一个

路由基础知识之PIM的相关配置总结

PIM是Protocol Independent Multicast(协议无关组播)的简称,表示可以利用静态路由或者任意单播 路由协议(包括RIP.OSPF.IS-IS.BGP等)所生成的单播路由表为IP组播提供路由.组播路由与所采用的单播路由协议无关,只要能够通过单播路由协议产生相应的组播路由表项即可.要把路由器配置为HSRP备份组的成员,可以在接口配置模式下使用下面的命令:router(config-if)# standby group-number ip ip-address为了使一个路由

Cisco路由技术基础知识详解

本文详细的介绍了思科路由技术的基础知识,简单细致的介绍了所能应用的基本技术,包括IP冲突,ARP静态地址使用,ARP代理等问题.最简单的网络可以想象成单线的总线,各个计算机可以通过向总线发送分组以互相通信.但随着网络中的计算机数目增长,这就很不可行了,会产 生许多问题:1.带宽资源耗尽.2.每台计算机都浪费许 多时间处理无关的广播数据.3.网络变得无法管理,任何错误都可能导致整个网络瘫痪.4.每台计算机都可以监听到其他计算机的通信.把网络分段可以解决这些问题,但同时你必须提供一种机制使不同网段的

路由基础概念解析

一.什么是路由 路由是把信息从源穿过网络传递到目的的行为,在路上,至少遇到一个中间节点.路由通常与桥接来对比,在粗心的人看来,它们似乎完成的是同样的事.它们的主要区别在于桥接发生在OSI参考协议的第二层(链接层),而路由发生在第三层(网络层).这一区别使二者在传递信息的过程中使用不同的信息,从而以不同的方式来完成其任务. 路由的话题早已在计算机界出现,但直到八十年代中期才获得商业成功,这一时间延迟的主要原因是七十年代的网络很简单,后来大型的网络才较为普遍. 二.路由的组成 路由包含两个基本的动作

多核程序设计的相关基础知识----以误差扩散算法为例

    本文从基础入手,主要阐述基于桌面电脑的多核程序设计的基础知识,包括一些向量化运算,虚拟机算,多线程等的相关知识总结. 一.计算平台的分类 单指令单数据流机器(SISD) 传统的串行计算机,所有指令都是串行. 多指令单数据流机器(MISD) 多个指令流同时对一个数据流进行处理.但是大多数情况下,多个指令流处理多个数据才是更加有效的处理方式. 单指令多数据流机器(SIMD) 几乎所有的计算机都实现了SIMD功能,intel处理器中实现的MMX,SSE,SSE2,SSE3等扩展指令集 说到这里

《算法导论(原书第3版)》一第一部分 基础知识

第一部分 基础知识 这一部分将引导读者开始思考算法的设计和分析问题,简单介绍算法的表达方法.将在本书中用到的一些设计策略,以及算法分析中用到的许多基本思想.本书后面的内容都是建立在这些基础知识之上的. 第1章是对算法及其在现代计算系统中地位的一个综述.本章给出了算法的定义和一些算法的例子.此外,本章还说明了算法是一项技术,就像快速的硬件.图形用户界面.面向对象系统和网络一样. 在第2章中,我们给出了书中的第一批算法,它们解决的是对n个数进行排序的问题.这些算法是用一种伪代码形式给出的,这种伪代码

JavaScript数据结构与算法之栈与队列_基础知识

学习起因 曾经有一次在逛V2EX时,碰到这么一个帖子. 数学完全还给老师了,想学回一些基础数学,大概是高中程度的,有什么书籍推荐? 发帖的楼主大学没有高数课程,出去工作时一直在从事前端的工作.感觉到数学知识的匮乏,所以想补一补数学. 看了看帖子,感觉和我很像,因为我的专业是不开高数的,我学的也是前端.也同样感觉到了数学知识匮乏所带来的困顿.同时因为自己的数学思维实在是不怎么好,所以决定努力补习数学与计算机基础知识. 当时也有人说:"前端需要什么数据结构与算法",但是对于这个事情我有自己

[C++ 面试基础知识总结] 泛型算法

[C++ 面试基础知识总结] 泛型算法 参考书籍:<C++ Primer> 目录 C 面试基础知识总结 泛型算法 目录 基础泛型算法 只读算法 写容器算法 重排容器元素算法 定制操作 向算法传递函数 lambda表达式 参数绑定 特殊迭代器 插入迭代器 iostream迭代器 反向迭代器 5类迭代器 链表的特定容器算法 基础泛型算法 泛型算法本身运行于迭代器之上,不会执行容器的操作,可以改变容器中保存元素的值,也可以在容器内移动元素,但永远不会直接添加或删除元素.插入迭代器是一种特殊的迭代器,

《Python算法教程》——第2章 基础知识 2.1 计算领域中一些核心理念

第2章 基础知识 Tracey:我不知道您在哪里. Zoe:隐身术就是这样--您应该听说过的. Tracey:我可不认为这属于基础知识. --选自<Firefly>第14集台词 在我们将注意力转向本书主体内容,也就是那些数学技术.算法设计原则及经典算法之前,还必须先了解一些最基本的技术与原则.因为当您阅读到后续章节时,至少应该非常清楚类似"无反向环路的加权有向图"以及"Θ(n lg n)运行时间"这些词句所表达的具体含义.同时,我们也理应要对Python