FFS技术白皮书
低端路由器的性能问题
从20世纪80年代中期,CISCO推出了业界第一台路由器以来,路由器在IP网络中得到越来越广泛的应用。因为业务的复杂性和接口的多样性要求,低端路由器一直采用CPU作为转发引擎和业务处理引擎,这一体系结构一直延续至今。
随着信息产业的发展,网络宽带化已经成为主流,路由器的组网环境发生了很大变化。从最初的低速广域网链路(低于1个E1=2Mbps,如PSTN、ISDN、DDN、Frame Relay等),发展到2M E1、N*2M、甚至155M已经成为广域网上常见的链路,同时宽带城域网的发展,也使以太网形式的上连接口快速普及。对路由器的性能要求日益增高。
另一方面,低端路由器的业务功能也有了很大发展,从最初的基本的异种网络互连和IP报文转发,发展到对NAT,ACL包过滤,策略路由,QOS,VOIP,VPN,DLSW,哑终端等业务的支持。
低端路由器上业务功能丰富性和处理性能高速化之间的矛盾日益突出。
软件算法优化提升路由器处理性能
低端路由器遇到的性能难题,成为各网络厂家攻关的重点之一。
在低端路由器这一产品领域,各主流厂家采用的硬件方案都大同小异。产品开发完成后,硬件结构就基本趋于稳定。此时,从软件优化方面来提升路由器的转发和业务处理性能,成为最主要的可行途径。
通过研究路由器转发算法,分析其转发流程中的瓶颈所在,可以在相同的硬件平台上,大幅度提升低端路由器的处理性能。
下面将对路由器的传统转发流程做一个简单介绍。
通常转发流程
低端路由器的软件总体架构,基本上都参考了UNIX平台的IP协议栈来实现。其通常转发流程如下:
通常转发流程性能分析:
1. 底层的收发过程
底层的收发过程,是在硬件中断中处理的,这一部分的性能比较快。
2. 任务切换消耗资源大
报文处理过程中的任务切换消耗CPU的资源。通常地,软件模块之间采用任务切换(这里的任务类似于UNIX的进程,又因为内存是共享的,所以也可以说更类似于线程),在任务切换中,消耗CPU资源较大。
3. 内存分配算法
路由器的转发原理是缓存转发。报文入任务队列时,需要将底层收发上来的报文信息拷贝到内存中,这一过程中,不同的内存分配算法,对硬件资源的消耗有一定区别。
4. 业务模块处理过程
在路由查找、NAT、ACL、QOS等业务的处理过程中,各个业务模块的软件设计,对总体性能均有影响。
FFS实现性能突破
在通过系统仿真分析了路由器通常转发流程的性能瓶颈点所在之后,港湾公司针对中低端路由器产品设计开发了专利技术“快速流交换(FFS,Fast Flow Switch)”算法,对转发流程和业务处理流程进行了革命性的改造和优化,使得NetHammer M系列路由器处理性能大幅度提升。
FFS转发流程如下图所示:

FFS对原有转发流程进行了三大优化:
1. 保持底层数据收发的高效
保持底层数据收发在硬件中断处理中的高效性
2. 硬件中断中实现报文快速交换
在硬件中断中实现报文快速交换,避免报文转发处理过程中的软件任务切换,提升报文转发的效率。
3. 快速缓存算法
对内存分配算法进行优化,针对IP报文的特点,在内存中开辟独立的快速缓存区,实现IP报文的快速缓存。
4. 统一业务处理引擎
在快速转发处理引擎中,采用流交换的方式对报文进行处理,所谓流,在这里指的是IP报文中的五元组(即源IP地址,源端口号,目的IP地址,目的端口,协议)。一般地,双向对应的两个流,可以代表网络中一个端到端的应用。
FFS设计快速交换流表,在一个统一的业务处理引擎中,同时实现转发、NAT、ACL等业务的处理。
下图是快速交换流表的一个示例:
1#和2#流表是内部10.1.1.1的主机访问202.90.8.2的WEB服务,需要做NAT转换的流量。
3#是SQL server的访问流量,因配置了防止病毒攻击的ACL,被deny。
在快速流交换处理流程中,报文收发过程如下:
1. 收报文,入快速缓存
2. 执行流分类,查找快速流表,一次查表判断下一跳转发决定和NAT、ACL过滤等业务处理要求。
3. 业务处理,封装下一跳,报文发送
FFS技术的核心在于把关键处理过程下移,在硬件中断里实现流分类、流交换,结合普通的快速转发算法,减少系统内部任务间切换和内存、缓存管理引起的资源消耗,从而提升了整个系统的处理性能。
NetHammerM系列路由器转发性能大提速
M系列路由器在应用了FFS技术后经过反复测试和验证,可靠性和稳定性没有受到任何影响,但处理性能获得了大幅度的提升。下表是与原来采用传统软件算法的处理性能与采用FFS技术后处理性能的比较。
从20世纪80年代中期,CISCO推出了业界第一台路由器以来,路由器在IP网络中得到越来越广泛的应用。因为业务的复杂性和接口的多样性要求,低端路由器一直采用CPU作为转发引擎和业务处理引擎,这一体系结构一直延续至今。
随着信息产业的发展,网络宽带化已经成为主流,路由器的组网环境发生了很大变化。从最初的低速广域网链路(低于1个E1=2Mbps,如PSTN、ISDN、DDN、Frame Relay等),发展到2M E1、N*2M、甚至155M已经成为广域网上常见的链路,同时宽带城域网的发展,也使以太网形式的上连接口快速普及。对路由器的性能要求日益增高。
另一方面,低端路由器的业务功能也有了很大发展,从最初的基本的异种网络互连和IP报文转发,发展到对NAT,ACL包过滤,策略路由,QOS,VOIP,VPN,DLSW,哑终端等业务的支持。
低端路由器上业务功能丰富性和处理性能高速化之间的矛盾日益突出。
软件算法优化提升路由器处理性能
低端路由器遇到的性能难题,成为各网络厂家攻关的重点之一。
在低端路由器这一产品领域,各主流厂家采用的硬件方案都大同小异。产品开发完成后,硬件结构就基本趋于稳定。此时,从软件优化方面来提升路由器的转发和业务处理性能,成为最主要的可行途径。
通过研究路由器转发算法,分析其转发流程中的瓶颈所在,可以在相同的硬件平台上,大幅度提升低端路由器的处理性能。
下面将对路由器的传统转发流程做一个简单介绍。
通常转发流程
低端路由器的软件总体架构,基本上都参考了UNIX平台的IP协议栈来实现。其通常转发流程如下:
通常转发流程性能分析:
1. 底层的收发过程
底层的收发过程,是在硬件中断中处理的,这一部分的性能比较快。
2. 任务切换消耗资源大
报文处理过程中的任务切换消耗CPU的资源。通常地,软件模块之间采用任务切换(这里的任务类似于UNIX的进程,又因为内存是共享的,所以也可以说更类似于线程),在任务切换中,消耗CPU资源较大。
3. 内存分配算法
路由器的转发原理是缓存转发。报文入任务队列时,需要将底层收发上来的报文信息拷贝到内存中,这一过程中,不同的内存分配算法,对硬件资源的消耗有一定区别。
4. 业务模块处理过程
在路由查找、NAT、ACL、QOS等业务的处理过程中,各个业务模块的软件设计,对总体性能均有影响。
FFS实现性能突破
在通过系统仿真分析了路由器通常转发流程的性能瓶颈点所在之后,港湾公司针对中低端路由器产品设计开发了专利技术“快速流交换(FFS,Fast Flow Switch)”算法,对转发流程和业务处理流程进行了革命性的改造和优化,使得NetHammer M系列路由器处理性能大幅度提升。
FFS转发流程如下图所示:

FFS对原有转发流程进行了三大优化:
1. 保持底层数据收发的高效
保持底层数据收发在硬件中断处理中的高效性
2. 硬件中断中实现报文快速交换
在硬件中断中实现报文快速交换,避免报文转发处理过程中的软件任务切换,提升报文转发的效率。
3. 快速缓存算法
对内存分配算法进行优化,针对IP报文的特点,在内存中开辟独立的快速缓存区,实现IP报文的快速缓存。
4. 统一业务处理引擎
在快速转发处理引擎中,采用流交换的方式对报文进行处理,所谓流,在这里指的是IP报文中的五元组(即源IP地址,源端口号,目的IP地址,目的端口,协议)。一般地,双向对应的两个流,可以代表网络中一个端到端的应用。
FFS设计快速交换流表,在一个统一的业务处理引擎中,同时实现转发、NAT、ACL等业务的处理。
下图是快速交换流表的一个示例:
1#和2#流表是内部10.1.1.1的主机访问202.90.8.2的WEB服务,需要做NAT转换的流量。
3#是SQL server的访问流量,因配置了防止病毒攻击的ACL,被deny。
在快速流交换处理流程中,报文收发过程如下:
1. 收报文,入快速缓存
2. 执行流分类,查找快速流表,一次查表判断下一跳转发决定和NAT、ACL过滤等业务处理要求。
3. 业务处理,封装下一跳,报文发送
|
快速交换流表ID
|
源IP地址
|
源端口号
|
目的IP地址
|
目的端口
|
协议
|
路由下一跳
|
下一跳封装
|
源地址转换
|
目的地址转换
|
ACL包过滤结果
|
……
|
|
1
|
10.1.1.1
|
3039
|
202.99.8.2
|
80
|
TCP
|
66.0.0.1
|
MAC
00:05: 3B:01: 01:01 |
66.0.0.2:3039
|
Null
|
Permit
|
Null
|
|
2
|
202.99.8.2
|
80
|
66.0.0.1
|
3039
|
TCP
|
10.1.1.1
|
MAC
00:0a: de:f3: 01:02 |
Null
|
10.1.1.1
|
Permit
|
Null
|
|
3
|
10.1.1.3
|
1434
|
10.2.1.1
|
1433
|
UDP
|
66.0.0.1
|
MAC
00:05: 3B:01: 01:01 |
Null
|
Null
|
Deny
|
Null
|
|
…
|
|
|
|
|
|
|
|
|
|
|
|
FFS技术的核心在于把关键处理过程下移,在硬件中断里实现流分类、流交换,结合普通的快速转发算法,减少系统内部任务间切换和内存、缓存管理引起的资源消耗,从而提升了整个系统的处理性能。
NetHammerM系列路由器转发性能大提速
M系列路由器在应用了FFS技术后经过反复测试和验证,可靠性和稳定性没有受到任何影响,但处理性能获得了大幅度的提升。下表是与原来采用传统软件算法的处理性能与采用FFS技术后处理性能的比较。
|
NetHammer
路由器型号 |
M121/
M128 |
M141
|
M162
|
M242
|
M262
|
M380
|
|
CPU主频(MHz)
|
50M
|
50M
|
200M
|
200M
|
200M
|
300M
|
|
原来转发性能(PPS)
|
12K
|
15K
|
60K
|
60K
|
80K
|
120K
|
|
应用FFS技术后转发性能
(PPS) |
15K
|
20K
|
120K
|
140K
|
160K
|
180K
|
0
相关文章