这里就涉及什么是目前、或者说传统交换机。从经典的范畴,传统交换机就是采用了ASIC芯片的交换机,ASIC芯片主要起数据交换的作用,将进入交换机的数据流量通过ASIC限速转发出去。并且在这其中实现:数据接收、转发决策、报文存储、报文编辑等等操作。ASIC有非常多的优点,它可以高速处理各种传统的业务,如二层交换、三层路由、ACL、QoS以及组播处理等等。总结看来其实也没什么:就是快,而且价格合适。
典型ASIC芯片交换机-华为S5700
那么这种ASIC交换机的缺点是什么?
ASIC芯片是固化的,一旦开发完毕就很难继续扩展其他应用了,新功能的添加需要芯片研发公司花费较长开发周期。它不灵活,不能将更多的功能加入到硬件中。而当下那么多新的应用不断的往外冒,如果依赖传统ASIC,只要有一个新的应用出来,我们都要做一件事情:去查网络上的所有的节点,所有的设备,所有的板卡是不是支持新的应用,如果不支持,就需要投钱去买新的设备。这种投入是无止境的,因为应用的发展是无止境的。解决的唯一办法就是换掉ASIC,换一个灵活的、可编程的芯片。华为就是做了个ENP(以太网络处理器)芯片,采用了ENP芯片的交换机就是“敏捷交换机”。
敏捷交换机长这样
有人要说了,可编程的芯片多了去了。为什么是ENP?
是的。CPU功能易扩展,理论上可以实现任何网络功能,但性能非常低,所以我们只用它做网络设备的控制和管理。
FPGA可以反复编程、擦除、使用以及在外围电路不动的情况下用不同软件就可实现不同的功能,可以在一定程度上灵活地扩展业务处理类型。但可惜的是,FPGA由于技术的限制,发展至今其处理能力还是非常有限。
NP通过众多并行运转的微码处理器,能够通过微码编程进行复杂的多业务扩展,不足是各厂家的NP需要统一标准,无法进行开发经验的复制,同时NP的性能和ASIC相比依然还存在一些差距,所以NP网络处理器被应用于高端路由器,但并不用于网络传统功能的实现。
ASIC之所以广泛应用于交换机,就是因为“快”且“便宜”,我们只是要在这两个特点上再加一个“灵活”。无疑,以上几种芯片技术够“灵活”却不适合用在交换机上。
那么,ENP呢?
华为投入了大量的人力和物力研发ENP芯片出来,可谓是芯的创新,全球首款以太网络处理器ENP,在整个业界主流的网络厂商中,能够真正拥有自己自研芯片技术的只有三家,华为便是其中之一。
ASIC和ENP对比
ENP芯片不同于NP,它采用了网络处理优化的指令集,使用专用协处理硬件加速,在具备NP芯片的“灵活”可编程特性的同时还具备了ASIC“快速”的特点。更重要的一点是因为华为自研技术所成产品,其成本远远低于NP(NP贵在其各项高额专利费用),可以广泛应用于交换机中。
ENP够“灵活”。它可重新定义报文转发流程,更好地处理专属应用的数据转发。通过可编程查找引擎,实现业务与资源解耦,灵活定制表项查找方式/索引规则/表项位置/表项大小等,通过软件升级定制新业务。
ENP够“快速”。处理数据时,首先,硬加速对业务进行预处理。比如对二层、三层、MPLS、VPN业务做全处理或部分处理,降低NPU内核的负载,提升了性能。再次,硬加速支持复杂指令集,对于一些常见的计算行为进行指令整合,使得基础运算性能提高数倍。
ENP芯片架构
总而言之,业务需求催生技术,芯片决定品质。ENP芯片的成功研制和商用,让华为先一步领跑网络设备厂商。华为敏捷交换机在当下大行其道,有其必然性。