高速转发面系统设计随笔1

来源:互联网 发布:js根据class获取元素 编辑:程序博客网 时间:2024/05/04 16:37

> 高速转发系统

       在电信、数通设备的应用中,除了繁杂的信令面,系统最大的瓶颈即转发速率。

本文的高速转发系统,主要应用业务简单而对数据包处理速率要求极高的数据平面。

>数据平面部署

         电信网络设备基本上遵循控制转发分离的设计原则。两者既可以是逻辑、物理层面的分离,也可以是逻辑上的分离、物理上的统一。

         软件部署系统的形态,随着处理器、操作系统的发展存在多种形态。当前,多核处理器已经成了主流,因此探讨的方式主要指多核处理器上的几种应用方式。

1)AMP

AMP指的并非CPU多核间与存储器的对称关系,而是多核处理器上软件的部署形态,简单来说即是:部分核部署OS1,其余核部署OS2

在这一点上,影响操作系统选择的因素主要是实时性。商用操作系统,设计得再精巧,也需要照顾一定的通用性与完整性,对实时性存在一定的影响。

        而一些定制的操作系统,甚至不能称为操作系统,只提供简单的驱动、buffer管理、少量的维测手段和调试工具,由于系统简单,可充分照顾实时性以及肆无忌惮地优化性能。设计原则上,稳定性、安全控制等特性都可以让位给高性能。一般这类系统都是定制的。

AMP系统,在复杂的标准化的信令面上,可以选择部署成熟的商业操作系统或者开源系统,但简单而高效的数据平面会选择定制化的系统。

2)SMP

        Linux的信徒们一直致力于将Linux推广到任何一个角落,哪怕Linux的确不适用于高性能的数据平面,哪怕Linux SMP在核数超过一定后性能提升受益接近于零,甚至负反馈。

        但是俗话说,人多力量大,社区大集市的开发模式集思广益、各路英才汇聚,很多原先看似不可能的问题都逐渐得到了解决或改善。

        现状来说,已经不能绝对说Linux不适用于高速转发系统了。(对于Linux SMP多核、众核的扩展性问题我暂时持保留意见)

        如果比较纯性能,经过一系列使用限制和优化后的Linux SMP跟裸跑系统比还是存在一定的差距,但差距不明显,而Linux带来的好处是,丰富得多的工具、活力四射的社区力量。

>高性能数据平面设计要点

       在Linux这类大系统上部署数据面业务,优化的核心思想是绕过内核或最大程度上减少内核的干扰

       高速转发的核心是高速的报文收发。

      当且业界已经有很多解决方案了,后续系列将主要介绍几种解决方案的思路,并综合。



原创粉丝点击