随着互联网业务的高速发展,对构建互联网基础架构的网络设备提出了更高要求,例如容量、性能、扩展性以及QoS等诸多关键特性,而这往往是由其所采用的硬件架构决定的。以框式核心交换机为例,先后出现了多种硬件架构,而现在最为常用的有三种:Full-Mesh交换架构、Crossbar矩阵交换架构和基于Cell的CLOS交换架构。本文将通过对这三种硬件架构、报文转发流程等原理的分析,全面剖析三种架构的优劣势。
名词解释
Hash |
散列函数 |
DLB |
Dynamic Load Balancing,动态负载均衡 |
Arbiter |
仲裁器 |
LC |
Line-Card,业务线卡 |
Ingress |
入口 |
Egress |
出口 |
CrossPoint |
交叉点 |
CICQ |
Combined Input and Crosspoint Buffered Queuing,联合输入交叉节点排队 |
VOQ |
Virtual Output Queueing,虚拟输出队列 |
RR |
Round Robin,轮询算法 |
Cell |
信元 |
FE |
交换网板 |
PCB |
Printed Circuit Board,印制电路板 |
Full-Mesh
架构说明
图1:Full-Mesh架构图
如图1所示,所有业务线卡通过背板走线连接到其它线卡,因为Full-Mesh不需要外部的交换芯片,而是任意两个节点间都有直接连接,故得名全连接。
由于各线卡需要Full-Mesh互联,一个节点数为N的Full-Mesh,连接总数为【N×(N-1)】÷2,所以随着节点数量增加连接总数也急剧上升,因而可扩展性较差,仅适用于槽位数量较少的核心设备。
报文转发流程
1.报文从线卡进入,跨卡报文送到与目的线卡连接的背板通路;
2.报文到达目的线卡。
Crossbar
架构说明
图2:Crossbar架构图
如图2所示,业务线卡通过背板走线连接到Crossbar芯片上,Crossbar芯片集成在主控引擎上。
图3:Crossbar芯片架构
Crossbar芯片架构如图3所示,每一条输入链路和输出链路都有一个CrossPoint,在CrossPoint处有一个半导体开关连接输入线路和输出线路,当来自某个端口的输入线路需要交换到另一个端口的输出点时,在CPU或交换矩阵的控制下,将交叉点的开关连接,数据就被发到另一个接口。
简单地说,Crossbar 架构是一种两级架构,它是一个开关矩阵,每一个CrossPoint都是一个开关,交换机通过控制开关来完成输入到特定输出的转发。如果交换具有N个输入和N个输出,那么该Crossbar Switch就是一个带有N*(N-1)≈N?个CrossPoint点的矩阵,可见,随着端口数量的增加,交叉点开关的数量呈几何级数增长。对于Crossbar芯片的电路集成水平、矩阵控制开关的制造难度、制造成本都会呈几何级数增长。所以,采用一块Crossbar交换背板的交换机,所能连接的端口数量也是有限的。
报文转发流程
无缓存Crossbar
每个交叉点没有缓存,业务调度采用集中调度的方式,对输入输出进行统一调度,报文转发流程如下:
1.报文从线卡进入,线卡先向Arbiter请求发送;
2.Arbiter根据输出端口队列拥塞情况,决定是否允许线卡发送报文到输出端口;
3.报文通过Crossbar转发到目的线卡输出端口。
由于是集中调度,所以仲裁器的调度算法复杂度很高,扩展性较差,系统容量大时仲裁器容易形成瓶颈,难以做到精确调度。
缓存式Crossbar
最早的缓存式Crossbar只有交叉节点带缓存,而输入端是无缓存的,被称为”bus matrix”,后来,CICQ的概念被引入,即在输入端用大的Input Buffer,在中间节点用小的CrossPoint Buffer。
这种结构采用分布式调度的方式进行业务调度,即输入和输出端都有各自的调度器,报文转发流程如下:
1.报文从线卡进入,输入端口通过特定的调度算法(如RR算法)独立地选择有效的VOQ;
2.将VOQ队列头部分组发送到相应的交叉点缓存;
3.输出端口通过特定的算法在非空的交叉点缓存中选择进行服务。
由于输入和输出的调度策略相互独立,所以很难保证交换系统在每个时隙整体上达到最佳匹配状态,并且调度算法复杂度和交换系统规模有关,限制了其扩展性。
CLOS
架构说明
图4:CLOS架构图
如图4所示,每块业务线卡和所有交换网板相连,交换芯片集成在交换网板上,实现了交换网板和主控引擎硬件分离。CLOS架构是一种多级架构,每个入口级开关和每个中间级开关之间只有一个连接,并且,每个中间级开关正好连接到每个出口级开关,这种架构的优点是可以通过多个小型Crossbar 开关来实现大量输入和输出端口之间的连接,CrossPoint数量级别低于Crossbar架构的N的2次方,降低了芯片实现难度。
报文转发流程
基于Cell的动态负载
1.入方向线卡将数据包切分为N个cell,其中:N=下一跳可用线路数量;
2.交换网板采用动态路由方式,即根据下一级各链路的实际可用交换能力,动态选路和负载均衡,通过多条路径将分片发送到出方向线卡;
3.出方向线卡重组报文。
动态负载关键点在于能负载分担地均衡利用所有可达路径,由此实现了无阻塞交换。
CLOS架构交换机的分类
非正交背板设计
图5:非正交背板
如图5所示,业务线卡与交换网板互相平行,板卡之间通过背板走线连接。
背板走线会带来信号干扰,背板设计也限制了带宽的升级,同时,背板上PCB的走线要求很高,从背板开孔就成了奢望,这直接导致纯前后的直通风道设计瓶颈一直无法突破。
正交背板设计
图6:正交背板
如图6所示,交换机线卡与交换网板分别与背板对接。
同非正交背板设计一样,背板带宽限制了带宽的升级,同时也增加了散热的难度。
正交零背板设计
图7:正交零背板
如图7所示,业务线卡与交换网板互相垂直,背板走线为零,甚至无中板。
正交设计能减少背板走线带来的高速信号衰减,提高了硬件的可靠性,无背板设计能够解除背板对容量提升的限制,当需要更大带宽的时候,只需要更换相应板卡即可,大大缩短业务升级周期,并且因为没有了背板的限制,交换机直通风道散热问题迎刃而解,完美匹配数据中心机房空气流的走向,形成了贯穿前后板卡的高速、通畅的气流。
总结
下表将对以上三种架构做出总结:
|
Full-Mesh |
Crossbar |
CLOS | |||
分类 |
- |
无缓存 |
有缓存 |
非正交背板 |
正交背板 |
正交零背板 |
硬件架构 |
· 无交换网板 · 线卡之间通过背板走线相连 |
· 单平面交换 · 集中调度 · 交叉点无缓存 |
· 单平面交换 · 分布式调度 · 交叉点有缓存 |
· 多平面交换 · 线卡和交换网板平行 · 背板长走线 |
· 多平面交换 · 线卡和交换网板正交 · 背板短走线 |
· 多平面交换 · 线卡和交换网板正交 · 无背板无走线 |
性能特点 |
· 受限于背板带宽和连接总数,扩展性差 · 背板带宽是瓶颈 |
· 随端口数增加CrossPoint数量呈几何增长 · 系统容量大时仲裁器易形成瓶颈 |
· 随端口数增加CrossPoint数量呈几何增长 · 调度算法复杂度限制扩展 |
· 背板限制带宽扩展且无法实现直通散热 · 走线带来信号衰减 · 基于cell的动态负载实现无阻塞 |
· 背板限制带宽扩展且无法实现直通散热 · 基于cell的动态负载实现无阻塞 |
· 带宽扩展更换相应网板即可 · 无背板设计实现交换机直通散热 · 基于cell的动态负载实现无阻塞 |
适用设备 |
· 低密度槽位 |
· 高密度槽位 · 可面向未来1-3年扩展 |
· 高密度槽位 · 可面向未来1-3年扩展 |
· 高密度槽位 · 可面向未来10年扩展 |
对于高端机架式交换机,以Crossbar交换架构和CLOS交换架构为主。其中CLOS交换架构是当前大容量数据中心核心交换机的理想架构。锐捷网络RG-N18000-X系列交换机基于无阻塞的CLOS架构,并且首次采用“零背板”技术,在提供高效、稳定交换服务的同时,可实现未来10年网络可持续平滑升级。