单路径vs多路径
一些复杂的路由协议可以支持到同一目的地的多条路径。与单路径算法不同,多路径算法可以在多条路径之间实现数据流量的多路复用。多路径路由算法的优势是非常明显的,可以提供更大的数据吞吐量,同时增强了网络的可靠性。
单层结构vs分层结构
在单层次的路由系统中,所有的路由器都是对等的;而在分层路由系统中,则是由一部分路由器组成路由主干。任何一台主机发送出的数据包首先经过非主干路由器到达主干路由器,然后沿着路由主干传递。当到达目的地的网络区域时,从主干路由器转入非主干路由器,并最终抵达目标接收方。
通常,我们把路由系统中的本地节点群称为域,自主系统,或区域。在分层路由系统中,一个域中的某些路由器可以与位于其它域中的路由器进行通讯,而另外一些路由器则只能与本域中的路由器通讯。在规模更大的网络中,可能会存在更多的路由等级,而路由主干一般都是由位于最高等级的路由器组成。
分层路由的最大优势就在于其组成结构与我们在现实企业中所采用的治理和组织结构相符,因而可以非常好的支持公司内部的数据流量和模式。举例来说,在企业网中,绝大多数的网络通讯都发生在小范围内的组或域中,所以域内路由器只需要知道如何与本域中的其它路由器通讯即可,不必关心其它域中的路由器。这样,就可以使路由算法得到简化,并相应降低了路由的更新流量。
主机智能vs路由器智能
所谓主机智能算法就是指由数据包的发送方决定整个传输过程中的完整路由,通常也被称为源路由。在源路由系统中,路由器的作用只是简单的存储和转发。
路由器智能算法的基础就是假定数据包的发送方对路由没有任何决定能力,完全由路由器基于各自的计算方法选择和确定数据的传输路径。
域间vs域内
有些路由算法只能在单独的域中使用,而另外一些路由算法则既可以在域间也可以在域内使用。这两种算法的性质是不同的,因此,一种好的域内路由算法往往并不一定能够在域间环境下使用。
链路状态vs距离向量
链路状态算法(又称为最短路径优先算法)可以把路由信息传递到网络上的所有节点。不过每一台路由器只是向外界发送描述自己链路状态的那一小部分路由表信息。距离向量算法(又称为 Bellman-Ford算法)要求每一台路由器向外发送全部或绝大部分的路由表信息,不过该信息只能发送给临近的路由器。因此,两者的区别就是链路状态算法可以向整个网络范围发送数据量较小的更新信息,而距离向量算法则是只能向临近的路由器发送大批量的更新信息。
因为链路状态算法的聚敛速度相对较快,所以要比距离向量算法更能有效的避免路由回路的出现。不过,从另一方面来说,链路状态算法需要占用更多的CPU处理时间和系统内存,因此比距离向量算法的实现和支持成本更高。除了我们在这里所提到的区别之外,两种路由算法都可以在绝大多数的网络环境中使用。
路由度量标准
路由算法使用很多不同的度量标准来确定最佳路径。一些复杂的路由算法更是可以把几个独立的度量标准综合起来,作出更为全面和准确的路由决定。以下是最为常用的路由度量标准:
路径长度
- 可靠性
- 时延
- 带宽
- 负载
- 通讯成本
路径长度是最为常用的一种路由度量标准。有些路由协议可以答应网络治理人员为每一条网络连接指定路由成本。在这种情况下,路径长度就是所有有关连接的路由成本的总和。其它一些路由协议还可以定义跳数,即数据包从源地址到目的地所必须经过的网络互连设备(如路由器等)的个数。
在路由算法的范畴内,可靠性主要是指每一条网络连接的可使用性(通常使用误码率表示)。一些网络连接可能比其它连接更轻易出现问题。在网络故障修复之后,有些网络连接可能比其它连接的恢复速度更快或更方便。网络治理人员可以把任何可靠性因素考虑在内,并据此为每一条网络连接指定相应的可靠值。
路由时延是指通过网络把数据包从源地址移动到目的地所需要的时间总和。有许多因素可以造成路由时延,其中包括网络连接的带宽,每一台途经路由器的负载,网络拥挤状况以及数据包所需要经过的物理距离等。因为路由时延是多项重要变量的综合反映,所以被普遍的采用。
带宽是指一条网络连接所能提供的流量吞吐能力。很明显,10-Mbps以太网的带宽要大大高出64-kbps专线的带宽。虽然带宽反映了一条网络连接所能够提供的最大速率,但是有时使用宽带连接的路由并不一定是最优路径。例如,假如一条高速连接非常繁忙,那么实际等待发送数据包的时间可能会更长。
负载是指象路由器这样的网络资源和设备的繁忙程度。我们可以通过多种方式计算负载,例如CPU的使用率以及每秒钟可以处理的数据包的数目等。对路由负载进行长期的持续监控可以更加有效的治理和配置网络资源。
通讯成本是另外一种非常重要的路由度量标准,尤其是对那些相对于网络性能更加关注运行成本的企业来说,其重要性就更加明显。举例来说,有时企业会为了节省公用线路的使用成本而改用延迟更大的私人线路,这就是通讯成本的具体体现。