- 易迪拓培训,专注于微波、射频、天线设计工程师的培养
先进高性能路由器的系统架构剖析
录入:edatop.com 点击:
路由器架构总体上分为两大类:集总式和分布式。
图1a展示了通过交换结构连起来的一些网络接口、转发引擎、路由控制器、管理控制器。输入端口通过交换结构把数据包发送到转发引擎,转发引擎再确定数据包该发往哪个输出端口。该信息再送回给输入接口,由其转发数据包到输出端口。转发引擎的唯一任务是处理数据报头。所有其它的任务如处理路由协议、资源预留、对需要进一步操作的数据包的处理,以及其它的管理和维护操作都由路由控制器和管理控制器操作。
通常Gb级路由器用这种设计技术实现。
而分布式路由器的区别在于转发引擎的功能以分布的方式集成进了接口卡中。大多数高端路由器都使用这种设计架构。转发表从路由控制器下载,路由控制器负责维护路由表和根据路由协议如OSPF和BGP更新路由表,如图1b所示。
没有必要每次路由更新时都下载新的转发表,路由更新可能非常频繁,而路由协议需要几分钟的时间收敛。路由控制器需要设计一个为快速更新而设计的动态路由表,并快速产生转发表。而转发表需要对查找速度优化,并不需要动态。
图2展示了一个典型的分布式路由器具体架构,其中多个线卡、路由控制器、管理控制器都通过交换结构相互连接。线卡是数据进出路由器的端口,它们提供了从物理层和更高层到交换结构的接口。随着新应用的发展和协议的进化,线卡的任务变得越来越复杂。
每个线卡至少支持一个网络侧的全双工光纤连接,至少一个到交换结构背板的进入和出口连接。一般来说,对于高带宽的应用,如OC-48及其更高的应用,网络连接支持管道化,使得低速链路汇聚成更大的管道,交换结构连接对于几千个输入和输出队列提供流控机制,以调节进出交换结构的流量。
线卡上通常包含如收发器、成帧器、网络处理器(NP)或路由SoC、流量管理器和中央处理器(CPU)。
A 收发器
该器件执行光电和电光信号转化和串并和并串转化。对于收发器件的重要性,美国国家半导体公司亚太区接口产品市场经理尹俊民先生特别指出,高端核心路由器的数据传输率介于 XAUI(3.125Gbps)与 N×10Gbps 之间。随着路由器的传输量不断提高,要确保传输的信号完整无缺并不容易,因为信号之间不但会产生串音干扰,而且经由底板长距离传送的信号会不断衰减,这是信号出现缺漏的两大原因。要彻底解决信号失真的问题,路由器开发商必须采用合适的信号调节收发器。
B 成帧器
成帧器执行同步,帧开销处理,信元或数据包生成。例如,在传输侧,同步光纤网(SONET)成帧器产生段,线和路径开销。在接收侧,成帧器处理段,线和路径开销。
C 网络处理器(NP)
NP主要执行表查找,数据包分类,数据包修改。网络处理器利用SRAM或DRAM以线速执行前两个功能。但可能需要外加的内容寻址存储器(CAM)或专用的协处理器来在更高的层上执行数据包分类。
D 流量管理器
为了满足每个连接和服务级别的需求,流量管理器对信元/数据包流执行不同的控制功能,包括流量接入控制,缓冲管理,信元/数据包调度。流量接入控制由一组协议技术和机制构成:
1 明确期望的流量属性和服务需求(比如数据流的峰值速度,需要的延迟边界,丢失容忍度)
2 数据流整形(即延迟),比如降低速度和/或突发度。
3 管辖数据流和当流量偏离规定时,采取适当的行为(如丢弃,延迟,数据包标记)。ATM中的用户参数控制(UPC)和IP中的区分服务(DiffServ)在网络边缘执行相似的接入控制。
缓冲管理当缓冲超过一个确定的阈值时,按照丢失需求和优先级别执行信元/数据包丢弃。建议的机制包括随机RED, 加权RED,早期数据包丢弃(EPD)和部分数据包丢弃(PPD)。
数据包调度确保了数据包传递满足每个连接的分配带宽/延迟需求。建议的机制包括不足额循环,加权公平队列(WFQ)和变种如整形虚时钟和最坏情况公平WFQ。后两种机制实现了最坏情况公平属性。流量管理器也管理多个队列来解决交换结构的输入间竞争。
E CPU
CPU执行控制面功能,包括连接建立/挂断、表更新、寄存器/缓冲器管理、异常处理。CPU通常不在实现最大流量的快速路径上。
交换结构为线卡提供了数据的通道,使得数据包能从进入的线卡转发到目的线卡。交换结构对路由器的总体性能和扩展性有很大的影响。交换结构可以用多种方式实现,包括总线、crossbar、共享内存或者多级结构。现在为了能够有效的扩展交换结构的容量,多级结构被广泛采用。
多级交换结构是由多个交换单元互联起来的,每个交换单元具有一整套输入输出,与普通交换机类似,提供输入输出的连接。通过互联多个小的交换单元,就可以制造一个大型的、可扩展的交换结构。多级结构之间的不同取决于交换单元之间是如何互联的。典型的结构包括Benes网、Butterfly网、Clos网等形式。
Benes网使用方形交换单元(即:输入输出端口数相同)进行多级互联。一般来说,3级N部Benes网的每一级均可以用N个输入/输出端口和N个交换单元来构造。这个格形结构在每个输入端和每个输出端之间形成N个可能的通路。Benes输出可以扩展至任意奇数级。
虽然对于小型系统单级结构的设计相对简单,成本也相对低,但是它不能满足下一代互联网扩展的需要。多级结构在操作上较复杂,但是可以扩展到成百上千个端口,这对于下一代互联网核心路由系统是绝对必要的。在多级拓扑结构中,Benes结构是最佳选择,因为它的系统复杂程度最低,性能好且满足可扩展的要求。
图1a展示了通过交换结构连起来的一些网络接口、转发引擎、路由控制器、管理控制器。输入端口通过交换结构把数据包发送到转发引擎,转发引擎再确定数据包该发往哪个输出端口。该信息再送回给输入接口,由其转发数据包到输出端口。转发引擎的唯一任务是处理数据报头。所有其它的任务如处理路由协议、资源预留、对需要进一步操作的数据包的处理,以及其它的管理和维护操作都由路由控制器和管理控制器操作。
通常Gb级路由器用这种设计技术实现。
而分布式路由器的区别在于转发引擎的功能以分布的方式集成进了接口卡中。大多数高端路由器都使用这种设计架构。转发表从路由控制器下载,路由控制器负责维护路由表和根据路由协议如OSPF和BGP更新路由表,如图1b所示。
没有必要每次路由更新时都下载新的转发表,路由更新可能非常频繁,而路由协议需要几分钟的时间收敛。路由控制器需要设计一个为快速更新而设计的动态路由表,并快速产生转发表。而转发表需要对查找速度优化,并不需要动态。
图2展示了一个典型的分布式路由器具体架构,其中多个线卡、路由控制器、管理控制器都通过交换结构相互连接。线卡是数据进出路由器的端口,它们提供了从物理层和更高层到交换结构的接口。随着新应用的发展和协议的进化,线卡的任务变得越来越复杂。
每个线卡至少支持一个网络侧的全双工光纤连接,至少一个到交换结构背板的进入和出口连接。一般来说,对于高带宽的应用,如OC-48及其更高的应用,网络连接支持管道化,使得低速链路汇聚成更大的管道,交换结构连接对于几千个输入和输出队列提供流控机制,以调节进出交换结构的流量。
线卡上通常包含如收发器、成帧器、网络处理器(NP)或路由SoC、流量管理器和中央处理器(CPU)。
A 收发器
该器件执行光电和电光信号转化和串并和并串转化。对于收发器件的重要性,美国国家半导体公司亚太区接口产品市场经理尹俊民先生特别指出,高端核心路由器的数据传输率介于 XAUI(3.125Gbps)与 N×10Gbps 之间。随着路由器的传输量不断提高,要确保传输的信号完整无缺并不容易,因为信号之间不但会产生串音干扰,而且经由底板长距离传送的信号会不断衰减,这是信号出现缺漏的两大原因。要彻底解决信号失真的问题,路由器开发商必须采用合适的信号调节收发器。
B 成帧器
成帧器执行同步,帧开销处理,信元或数据包生成。例如,在传输侧,同步光纤网(SONET)成帧器产生段,线和路径开销。在接收侧,成帧器处理段,线和路径开销。
C 网络处理器(NP)
NP主要执行表查找,数据包分类,数据包修改。网络处理器利用SRAM或DRAM以线速执行前两个功能。但可能需要外加的内容寻址存储器(CAM)或专用的协处理器来在更高的层上执行数据包分类。
D 流量管理器
为了满足每个连接和服务级别的需求,流量管理器对信元/数据包流执行不同的控制功能,包括流量接入控制,缓冲管理,信元/数据包调度。流量接入控制由一组协议技术和机制构成:
1 明确期望的流量属性和服务需求(比如数据流的峰值速度,需要的延迟边界,丢失容忍度)
2 数据流整形(即延迟),比如降低速度和/或突发度。
3 管辖数据流和当流量偏离规定时,采取适当的行为(如丢弃,延迟,数据包标记)。ATM中的用户参数控制(UPC)和IP中的区分服务(DiffServ)在网络边缘执行相似的接入控制。
缓冲管理当缓冲超过一个确定的阈值时,按照丢失需求和优先级别执行信元/数据包丢弃。建议的机制包括随机RED, 加权RED,早期数据包丢弃(EPD)和部分数据包丢弃(PPD)。
数据包调度确保了数据包传递满足每个连接的分配带宽/延迟需求。建议的机制包括不足额循环,加权公平队列(WFQ)和变种如整形虚时钟和最坏情况公平WFQ。后两种机制实现了最坏情况公平属性。流量管理器也管理多个队列来解决交换结构的输入间竞争。
E CPU
CPU执行控制面功能,包括连接建立/挂断、表更新、寄存器/缓冲器管理、异常处理。CPU通常不在实现最大流量的快速路径上。
交换结构为线卡提供了数据的通道,使得数据包能从进入的线卡转发到目的线卡。交换结构对路由器的总体性能和扩展性有很大的影响。交换结构可以用多种方式实现,包括总线、crossbar、共享内存或者多级结构。现在为了能够有效的扩展交换结构的容量,多级结构被广泛采用。
多级交换结构是由多个交换单元互联起来的,每个交换单元具有一整套输入输出,与普通交换机类似,提供输入输出的连接。通过互联多个小的交换单元,就可以制造一个大型的、可扩展的交换结构。多级结构之间的不同取决于交换单元之间是如何互联的。典型的结构包括Benes网、Butterfly网、Clos网等形式。
Benes网使用方形交换单元(即:输入输出端口数相同)进行多级互联。一般来说,3级N部Benes网的每一级均可以用N个输入/输出端口和N个交换单元来构造。这个格形结构在每个输入端和每个输出端之间形成N个可能的通路。Benes输出可以扩展至任意奇数级。
虽然对于小型系统单级结构的设计相对简单,成本也相对低,但是它不能满足下一代互联网扩展的需要。多级结构在操作上较复杂,但是可以扩展到成百上千个端口,这对于下一代互联网核心路由系统是绝对必要的。在多级拓扑结构中,Benes结构是最佳选择,因为它的系统复杂程度最低,性能好且满足可扩展的要求。