在实时通信系统中实现大数据包快速转发的方法技术方案

技术编号:3510296 阅读:190 留言:0更新日期:2012-04-11 18:40
本发明专利技术涉及在实时通信系统中实现大数据包快速转发的方法,网卡收到由其他设备发送过来的数据包;CPU每隔一段时间向网卡查询是否有待处理的数据包;如在网卡缓存中有待处理的数据包,进入中断处理程序;该程序收到发送过来的“流”的第一个数据包,进行流程转发;“流”是指具有相同的源地址,目的地址,源端口,目的端口和协议的数据包;流程转发包括:在接收缓存中对该数据包进行NAT,防火墙过滤等处理,同时在高速缓冲中建立一个索引,将该流的具体信息和需要转发的端口记录下来;当“流”的随后包达到时,中断处理程序去查找高速缓冲,根据高速缓冲中的信息将内存的数据包由相应的端口直接发送,不再将数据包从内存拷贝到发送缓冲。

【技术实现步骤摘要】

本专利技术涉及路由器领域,尤其涉及一种路由器大数据包的转发的方法。
技术介绍
ReOS是HiPER系列路由器的实时通信系统。ReOS系统主要运行在嵌入式CPU上,如摩托罗拉公司的Power PC,ARM7和ARM9核,MIPS核,IntelXscale,也可以运行在i386兼容的CPU等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以下。但是,由于网络应用的不断发展,用户对接入带宽的要求也越来越高。
技术实现思路
本专利技术需要解决的技术问题是提供了一种,旨在解决上述的问题。为了解决上述技术问题,本专利技术是通过以下步骤实现的网卡收到由其他设备发送过来的数据包;CPU每隔一段时间向网卡查询是否有待处理的数据包;如果在网卡缓存中有待处理的数据包,进入中断处理程序;中断处理程序收到发送过来的“流”的第一个数据包,进行流程转发;所述的“流”是指具有相同的源地址,目的地址,源端口,目的端口和协议的数据包;所述的流程转发包括在接收缓存中对该数据包进行NAT,防火墙过滤等处理,同时在高速缓冲中建立一个索引,将该流的具体信息和需要转发的端口记录下来;当“流”的随后包达到时,中断处理程序去查找高速缓冲,根据高速缓冲中的信息将数据包直接由相应端口发送,不再将内存的数据先拷贝到发送缓冲;与现有技术相比,本专利技术的有益效果是包长512字节及以上,达到了双向线速。附图说明图1是本专利技术和另一“流”的技术的比较图;具体实施方式下面结合附图与具体实施方式对本专利技术作进一步详细描述网卡收到由其他设备发送过来的数据包;CPU每隔一段时间向网卡查询是否有待处理的数据包;如果在网卡缓存中有待处理的数据包,进入中断处理程序;中断处理程序收到发送过来的“流”的第一个数据包,进行流程转发;所述的“流”是指具有相同的源地址,目的地址,源端口,目的端口和协议的数据包;所述的流程转发包括在接收缓存中对该数据包进行NAT,防火墙过滤等处理,同时在高速缓冲中建立一个索引,将该流的具体信息和需要转发的端口记录下来;当“流”的随后包达到时,中断处理程序去查找高速缓冲,根据高速缓冲中的信息将数据包直接由相应端口发送,不再将内存的数据先拷贝到发送缓冲。采用CPU轮询和不拷贝内存的方式,对小包的转发有所提高,但是对大包的转发效率提高了很多。包长512字节及以上,已经达到双向线速。下面是本专利技术和采用另一“流”的技术比较(如图1所示)另一“流”的技术是是通过以下步骤实现的网卡收到由其他设备发送过来的数据包,进入中断处理程序;中断处理程序收到发送过来的“流”的第一个数据包,进行流程转发;所述的“流”是指具有相同的源地址,目的地址,源端口,目的端口和协议的数据包;所述的流程转发包括将数据包从网卡缓存中拷贝到内存中,再进行如需要经过防火墙处理,或者经过NAT处理等,同时在高速缓冲中建立一个索引,将该流的具体信息和需要转发的端口记录下来;当“流”的随后包达到时,中断处理程序去查找高速缓冲,根据高速缓冲中的信息,将内存中的包内容先拷贝到发送缓冲,然后等待该端口的发送。权利要求1.一种,是通过以下步骤实现的网卡收到由其他设备发送过来的数据包;CPU每隔一段时间向网卡查询是否有待处理的数据包;如果在网卡缓存中有待处理的数据包,进入中断处理程序;中断处理程序收到发送过来的“流”的第一个数据包,进行流程转发;所述的“流”是指具有相同的源地址,目的地址,源端口,目的端口和协议的数据包;所述的流程转发包括在接收缓存中对该数据包进行NAT,防火墙过滤等处理,同时在高速缓冲中建立一个索引,将该流的具体信息和需要转发的端口记录下来;当“流”的随后包达到时,中断处理程序去查找高速缓冲,根据高速缓冲中的信息将数据包直接由相应端口发送,不再将内存的数据先拷贝到发送缓冲。全文摘要本专利技术涉及,网卡收到由其他设备发送过来的数据包;CPU每隔一段时间向网卡查询是否有待处理的数据包;如在网卡缓存中有待处理的数据包,进入中断处理程序;该程序收到发送过来的“流”的第一个数据包,进行流程转发;“流”是指具有相同的源地址,目的地址,源端口,目的端口和协议的数据包;流程转发包括在接收缓存中对该数据包进行NAT,防火墙过滤等处理,同时在高速缓冲中建立一个索引,将该流的具体信息和需要转发的端口记录下来;当“流”的随后包达到时,中断处理程序去查找高速缓冲,根据高速缓冲中的信息将内存的数据包由相应的端口直接发送,不再将数据包从内存拷贝到发送缓冲。文档编号G06F9/46GK1848795SQ20051002513公开日2006年10月18日 申请日期2005年4月15日 优先权日2005年4月15日专利技术者沈慷 申请人:上海艾泰科技有限公司 本文档来自技高网
...

【技术保护点】
一种在实时通信系统中实现大数据包快速转发的方法,是通过以下步骤实现的:网卡收到由其他设备发送过来的数据包;CPU每隔一段时间向网卡查询是否有待处理的数据包;如果在网卡缓存中有待处理的数据包,进入中断处理程序; 中断处理程序收到发送过来的“流”的第一个数据包,进行流程转发;所述的“流”是指具有相同的源地址,目的地址,源端口,目的端口和协议的数据包;所述的流程转发包括:在接收缓存中对该数据包进行NAT,防火墙过滤等处理,同时在高速缓冲中建立一个索引,将该流的具体信息和需要转发的端口记录下来;当“流”的随后包达到时,中断处理程序去查找高速缓冲,根据高速缓冲中的信息将数据包直接由相应端口发送,不再将内存的数据先拷贝到发送缓冲。

【技术特征摘要】

【专利技术属性】
技术研发人员:沈慷
申请(专利权)人:上海艾泰科技有限公司
类型:发明
国别省市:31[中国|上海]

网友询问留言 已有0条评论
  • 还没有人留言评论。发表了对其他浏览者有用的留言会获得科技券。

1
相关领域技术
  • 暂无相关专利