在实时通信系统中实现快速转发的方法

文档序号:7613120阅读:171来源:国知局
专利名称:在实时通信系统中实现快速转发的方法
技术领域
本发明涉及路由器领域,尤其涉及一种路由器数据包的转发的方法。
背景技术
ReOS是HiPER系列路由器的实时通信系统。ReOS系统主要运行在嵌入式CPU上,如摩托罗拉公司的Power PC,ARM7和ARM9核,MIPS核,IntelXscale,也可以运行在i386兼容的CPU等。ReOS通过CPU和外接的网络接口芯片实现了网络设备的数据包转发和其他管理功能,在现在的系统上,数据包的转发主要通过CPU来实现的。
而一个典型的中低端路由器系统,以ARM9为内核的CPU,在ReOS的处理方式的流程如下1.网卡的芯片收到以太网的数据包,将该数据包放在接收缓冲,然后向CPU发出中断消息;2.CPU收到中断消息以后,CPU进行任务调度,调用需要处理的任务;3.该任务从接收缓存中将数据包拷贝到内存中,进行相应的处理,如经过防火墙过滤模块决定丢弃还是转发,或者经过NAT处理修改IP地址和端口,或者需要进行流量控制放置到排队队列等;4.将经过处理的数据包转发到相应的端口,或者丢弃,或者转到上层的应用程序;5.当需要转发出去的数据包处理完毕后,将新生成的数据包送到相应的发送缓冲。
在以上的步骤中,第一步比较快,第二步开始需要CPU大量干预,比较耗时。在这个模式下,ReOS的转发效率,在典型的ARM9内核,主频为166Mhz的CPU上,包转发的数值为6000PPS(Packet Per Second),也就是说当包长为64字节时,每秒能转发6000个包。无丢包的吞吐量在2Mbps。
在这种处理能力下,当包长为1518字节时(以太网的最大包长),每秒可以转发的包的数量也在5000以下。
但是,由于网络应用的不断发展,用户对接入带宽的要求也越来越高。

发明内容
本发明需要解决的技术问题是提供了一种在实时通信系统中实现快速转发的方法(可称为13switch),旨在解决上述的问题。
为了解决上述技术问题,本发明是通过以下步骤实现的网卡收到由其他设备发送过来的数据包,进入中断处理程序;中断处理程序收到发送过来的“流”的第一个数据包,进行流程转发;所述的“流”是指具有相同的源地址,目的地址,源端口,目的端口和协议的数据包;所述的流程转发包括将数据包从网卡缓存中拷贝到内存中,再进行下一步处理,如需要经过防火墙处理,或者经过NAT处理等,同时在高速缓冲中建立一个hash索引,将该流的具体信息和需要转发的端口记录下来;当“流”的随后包达到时,中断处理程序去查找高速缓冲,根据高速缓冲中的信息找到数据包到相应的端口,然后将要修改以后的要转发的数据包拷贝到相应端口的发送缓冲区,等待完成转发;与现有技术相比,本发明的有益效果是使得“流”的非第一个包的转发都可以通过高速缓冲的查找来实现,而免去了对CPU比较耗时的任务调度处理;在两个以太网口都是100Mbps的条件下,使用ARM9内核的166Mhz的嵌入式CPU,转发包的数量可以达到50 000PPS,比原来的系统提高了接近9倍,在包长为1280字节的时候达到单向线速。


图1是本发明和现有技术的转发效率比较图;具体实施方式
下面结合附图与具体实施方式
对本发明作进一步详细描述本发明是通过以下步骤实现的网卡收到由其他设备发送过来的数据包,进入中断处理程序;中断处理程序收到发送过来的“流”的第一个数据包,进行流程转发;所述的“流”是指具有相同的源地址,目的地址,源端口,目的端口和协议的数据包;所述的流程转发包括将数据包从网卡缓存中拷贝到内存中,再进行下一步处理,如需要经过防火墙处理,或者经过NAT处理等,同时在高速缓冲中建立一个hash索引,将该流的具体信息和需要转发的端口记录下来;当“流”的随后包达到时,中断处理程序去查找高速缓冲,根据高速缓冲中的信息找到数据包要转发的相应的端口,然后将要修改以后的要转发的数据包拷贝到相应端口的发送缓冲区,等待完成转发;任务切换和经过上层转发所花费的时间比较多,因此,将转发的工作放到硬件中断处理程序中完成。
在同样的硬件上,实现了本发明以后,转发效率得到极大的提高,用工业标准Sprient公司的Smartbits 2000测试得到的结果,比较如图1。
权利要求
1.一种在实时通信系统中实现快速转发的方法,是通过以下步骤实现的网卡收到由其他设备发送过来的数据包,进入中断处理程序;中断处理程序收到发送过来的“流”的第一个数据包,进行流程转发;所述的“流”是指具有相同的源地址,目的地址,源端口,目的端口和协议的数据包;所述的流程转发包括将数据包从网卡缓存中拷贝到内存中,再进行下一步处理,如需要经过防火墙处理,或者经过NAT处理等,同时在高速缓冲中建立一个hash索引,将该流的具体信息和需要转发的端口记录下来;当“流”的随后包达到时,中断处理程序去查找高速缓冲,根据高速缓冲中的信息找到数据包到相应的端口,然后将要修改以后的要转发的数据包拷贝到相应端口的发送缓冲区,等待完成转发。
全文摘要
本发明涉及一种在实时通信系统中实现快速转发的方法,是通过以下步骤实现的网卡收到由其他设备发送过来的数据包,进入中断处理程序;中断处理程序收到发送过来的“流”的第一个数据包,进行流程转发;同时在高速缓冲中建立一个hash索引,将该流的具体信息和需要转发的端口记录下来;当“流”的随后包达到时,中断处理程序去查找高速缓冲,根据高速缓冲中的信息将数据包转发到相应的端口;本发明的有益效果是使得“流”的非第一个包的转发都可以通过高速缓冲的查找来实现,而免去了对CPU比较耗时的任务调度处理;转发包的数量可以达到50 000PPS,比原来的系统提高了接近9倍,在包长为1280字节的时候达到单向线速。
文档编号H04L12/56GK1848796SQ20051002513
公开日2006年10月18日 申请日期2005年4月15日 优先权日2005年4月15日
发明者张洪忠 申请人:上海艾泰科技有限公司
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1