> 高速转发系统
在电信、数通设备的应用中,除了繁杂的信令面,系统最大的瓶颈即转发速率。
本文的高速转发系统,主要应用业务简单而对数据包处理速率要求极高的数据平面。
>数据平面部署
电信网络设备基本上遵循控制转发分离的设计原则。两者既可以是逻辑、物理层面的分离,也可以是逻辑上的分离、物理上的统一。
软件部署系统的形态,随着处理器、操作系统的发展存在多种形态。当前,多核处理器已经成了主流,因此探讨的方式主要指多核处理器上的几种应用方式。
1)AMP
AMP指的并非CPU多核间与存储器的对称关系,而是多核处理器上软件的部署形态,简单来说即是:部分核部署OS1,其余核部署OS2
在这一点上,影响操作系统选择的因素主要是实时性。商用操作系统,设计得再精巧,也需要照顾一定的通用性与完整性,对实时性存在一定的影响。
而一些定制的操作系统,甚至不能称为操作系统,只提供简单的驱动、buffer管理、少量的维测手段和调试工具,由于系统简单,可充分照顾实时性以及肆无忌惮地优化性能。设计原则上,稳定性、安全控制等特性都可以让位给高性能。一般这类系统都是定制的。
AMP系统,在复杂的标准化的信令面上,可以选择部署成熟的商业操作系统或者开源系统,但简单而高效的数据平面会选择定制化的系统。
2)SMP
Linux的信徒们一直致力于将Linux推广到任何一个角落,哪怕Linux的确不适用于高性能的数据平面,哪怕Linux SMP在核数超过一定后性能提升受益接近于零,甚至负反馈。
但是俗话说,人多力量大,社区大集市的开发模式集思广益、各路英才汇聚,很多原先看似不可能的问题都逐渐得到了解决或改善。
现状来说,已经不能绝对说Linux不适用于高速转发系统了。(对于Linux SMP多核、众核的扩展性问题我暂时持保留意见)
如果比较纯性能,经过一系列使用限制和优化后的Linux SMP跟裸跑系统比还是存在一定的差距,但差距不明显,而Linux带来的好处是,丰富得多的工具、活力四射的社区力量。
>高性能数据平面设计要点
在Linux这类大系统上部署数据面业务,优化的核心思想是绕过内核或最大程度上减少内核的干扰
高速转发的核心是高速的报文收发。
当且业界已经有很多解决方案了,后续系列将主要介绍几种解决方案的思路,并综合。