在当今信息化社会中,人们对数据通信的需求日益增加,使得互联网以每6~9个月翻一番的速度飞速增长。TCP/IP已成为网络层通信协议的事实标准。Every Thing Over IP,IP Over Every Thing已成为当前IP网最真实的写照。路由器作为IP网的核心设备,其技术已成为当前信息产业的关键技术。低端路由器是应用最多、最广泛的路由器,为此有必要对其技术以及产品作研究和分析。
1 低端路由器定义
路由器是工作在OSI参考模型中第3层——网络层的数据包转发设备。路由器通过转发数据包来实现网络互连。虽然路由器可以支持多种协议(例如:TCP/IP、IPX/SPX、AppleTalk等协议),但使用最多的还是TCP/IP协议。路由器通常连接两个或多个由IP子网或点到点协议标识的逻辑端口,至少拥有1个物理端口。路由器根据收到数据包中的网络层地址以及路由器内部维护的路由表来决定输出端口和下一跳地址,并且重写链路层数据包头实现数据包的转发。路由器通过动态地维护路由表来反映当前的网络拓扑,通过与网络上其他路由器交换路由和链路信息来维护路由表。
从能力区分,路由器可分中高端路由器和低端路由器。各厂家的划分标准并不完全一致。通常将包交换能力>1 Mpps的路由器称为中高端路由器,包交换能力在1 Mpps以下的路由器称为低端路由器。以Cisco公司为例,7500以上系列路由器(包括12000系列和7500系列)为中高端路由器;7500以下系列路由器(包括3600系列和2600系列)称为低端路由器。
出于性能考虑,低端路由器一般适用于作为小规模网络核心路由器、小型企业网互联路由器、局域网接入公网路由器等。
2 低端路由器技术
2.1 路由器软件
路由器技术中最核心的技术是软件技术。路由器软件是最复杂的软件之一,有些路由软件运行在Unix操作系统上,有些路由器软件运行在嵌入式操作系统上,甚至有些路由器软件为提高效率,其本身就是操作系统。全球最大的路由器生产厂家Cisco公司曾一度宣称自己是一个软件公司,可见路由器软件在路由器技术中所占的重要地位。
路由器软件一般实现路由协议、查表转发和管理维护等功能。由于互联网规模庞大,运行在互联网上的路由器中的路由表也相应地非常巨大,可能包含几十万条路由信息。查表转发工作非常繁重。在高端路由器中,上述功能通常由ASIC芯片硬件实现。
路由软件的高复杂性另一方面体现在路由软件的高可靠性、高可用性以及鲁棒性。实现路由软件的功能并不复杂,在免费共享软件中甚至可以得到路由协议和数据转发的实现源代码,但是其可靠性无法满足商用产品不间断运行的需要。
在路由器研制过程中,可以通过购买商用源代码等形式迅速实现路由器软件,但成熟的路由器软件需要一年甚至两年的时间才稳定。
2.2 路由器接口
路由器接口用来将路由器连接到网络,可以分为局域网接口及广域网接口两种。局域网接口主要包括以太网10 Mbit/s、100 Mbit/s和1000 Mbit/s以太网、令牌环、令牌总线、FDDI等网络接口。广域网主要包括E1/T1、E3/T3、DS3、通用串行口(可转换成X.21DTE/DCE、V.35DTE/DCE、RS232DTE/DCE、RS449DTE/DCE、EIA530DTE)、ATM接口、POS接口等网络接口。
当前路由器接口技术较成熟,难点在于高密度接口板的设计与制作以及高速接口(≥2.5 Gbit/s)的实现。低端路由器一般不包括上述接口。
2.3 路由协议
路由器路由协议的程序是路由器软件中的重要组成部分。路由协议用作建立以及维护路由表,路由表用作为每个IP包选择输出端口和或下一跳地址。开放的路由协议主要包含RIP/RIPv2、OSPF、IS-IS和BGP4等。
RIP/RIPv2、OSPF和IS-IS作为域内路由协议,一般用在AS内部作为计算以及交换网络可达性消息。RIP/RIPv2是距离向量路由协议,一般用于企业内部小规模网络。OSPF和IS-IS协议原理和实现都类似,是链路状态协议,一般用于大规模企业网或运营商网络。
BGP4协议基于距离向量,是当前AS间路由协议的唯一选择。通常BGP交换大量网络可达性消息,是IP网上重要协议。
路由协议的实现与路由器软件要求相似,需要实现高可靠、高稳定、鲁棒性以及安全性。
3 路由器的性能
路由器性能通常主要包含如下内容。
· 背板能力:通常指路由器背板容量或者总线能力。
· 吞吐量:指路由器包转发能力。
· 丢包率:指路由器在稳定的持续负荷下,由于资源缺少在应该转发的数据包中不能转发的数据包所占比例。
· 转发时延:指需转发的数据包最后一比特进入路由器端口到该数据包第一比特出现在端口链路上的时间间隔。
· 路由表容量:指路由器运行中可以容纳的路由数量。
· 可靠性:指路由器可用性、无故障工作时间和故障恢复时间等指标。
除了以上的基本性能外,路由器的性能还体现在以下诸多方面。
3.1 路由器队列管理机制
由于路由器是基于分组交换的设备,在每个端口上带宽统计复用,所以路由器必须在端口上维护一个或多个队列,否则路由器无法处理多个数据包同时向同一端口转发,以及端口上的QoS能力等问题。队列管理算法的好坏直接影响到路由器性能、QoS能力以及拥塞管理能力。通常队列管理算法分为基于时标算法、基于轮转算法以及基于优先级队列等。
基于时标的分组调度算法都有相同的形式,它们为每个分组维持两个时标,一个命名为起始时标(start time_stamp),一个命名为完成时标(finish time_stamp)。路由器根据上述时标来决定下一个转发数据包。基于时标的算法最常见的有WFQ、WF2