CN1848796A - 在实时通信系统中实现快速转发的方法 - Google Patents
在实时通信系统中实现快速转发的方法 Download PDFInfo
- Publication number
- CN1848796A CN1848796A CNA200510025134XA CN200510025134A CN1848796A CN 1848796 A CN1848796 A CN 1848796A CN A200510025134X A CNA200510025134X A CN A200510025134XA CN 200510025134 A CN200510025134 A CN 200510025134A CN 1848796 A CN1848796 A CN 1848796A
- Authority
- CN
- China
- Prior art keywords
- packet
- stream
- port
- communication system
- real
- Prior art date
- Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
- Pending
Links
Landscapes
- Data Exchanges In Wide-Area Networks (AREA)
Abstract
本发明涉及一种在实时通信系统中实现快速转发的方法,是通过以下步骤实现的:网卡收到由其他设备发送过来的数据包,进入中断处理程序;中断处理程序收到发送过来的“流”的第一个数据包,进行流程转发;同时在高速缓冲中建立一个hash索引,将该流的具体信息和需要转发的端口记录下来;当“流”的随后包达到时,中断处理程序去查找高速缓冲,根据高速缓冲中的信息将数据包转发到相应的端口;本发明的有益效果是:使得“流”的非第一个包的转发都可以通过高速缓冲的查找来实现,而免去了对CPU比较耗时的任务调度处理;转发包的数量可以达到50 000PPS,比原来的系统提高了接近9倍,在包长为1280字节的时候达到单向线速。
Description
技术领域
本发明涉及路由器领域,尤其涉及一种路由器数据包的转发的方法。
背景技术
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。
Claims (1)
1.一种在实时通信系统中实现快速转发的方法,是通过以下步骤实现的:
网卡收到由其他设备发送过来的数据包,进入中断处理程序;
中断处理程序收到发送过来的“流”的第一个数据包,进行流程转发;所述的“流”是指具有相同的源地址,目的地址,源端口,目的端口和协议的数据包;所述的流程转发包括:将数据包从网卡缓存中拷贝到内存中,再进行下一步处理,如需要经过防火墙处理,或者经过NAT处理等,同时在高速缓冲中建立一个hash索引,将该流的具体信息和需要转发的端口记录下来;
当“流”的随后包达到时,中断处理程序去查找高速缓冲,根据高速缓冲中的信息找到数据包到相应的端口,然后将要修改以后的要转发的数据包拷贝到相应端口的发送缓冲区,等待完成转发。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CNA200510025134XA CN1848796A (zh) | 2005-04-15 | 2005-04-15 | 在实时通信系统中实现快速转发的方法 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CNA200510025134XA CN1848796A (zh) | 2005-04-15 | 2005-04-15 | 在实时通信系统中实现快速转发的方法 |
Publications (1)
Publication Number | Publication Date |
---|---|
CN1848796A true CN1848796A (zh) | 2006-10-18 |
Family
ID=37078165
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CNA200510025134XA Pending CN1848796A (zh) | 2005-04-15 | 2005-04-15 | 在实时通信系统中实现快速转发的方法 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN1848796A (zh) |
Cited By (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN101217573B (zh) * | 2007-12-29 | 2010-11-24 | 厦门大学 | 一种加速网卡报文捕获的方法 |
CN101699796B (zh) * | 2009-09-09 | 2012-08-22 | 成都飞鱼星科技开发有限公司 | 一种基于流信任的数据报文高速转发的方法、系统及路由器 |
CN104954262A (zh) * | 2015-06-24 | 2015-09-30 | 上海斐讯数据通信技术有限公司 | 一种数据快速转发方法和系统 |
CN105183541A (zh) * | 2015-08-10 | 2015-12-23 | 上海斐讯数据通信技术有限公司 | 一种中断响应方法及系统 |
-
2005
- 2005-04-15 CN CNA200510025134XA patent/CN1848796A/zh active Pending
Cited By (6)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN101217573B (zh) * | 2007-12-29 | 2010-11-24 | 厦门大学 | 一种加速网卡报文捕获的方法 |
CN101699796B (zh) * | 2009-09-09 | 2012-08-22 | 成都飞鱼星科技开发有限公司 | 一种基于流信任的数据报文高速转发的方法、系统及路由器 |
CN104954262A (zh) * | 2015-06-24 | 2015-09-30 | 上海斐讯数据通信技术有限公司 | 一种数据快速转发方法和系统 |
CN104954262B (zh) * | 2015-06-24 | 2017-11-24 | 上海斐讯数据通信技术有限公司 | 一种数据快速转发方法和系统 |
CN105183541A (zh) * | 2015-08-10 | 2015-12-23 | 上海斐讯数据通信技术有限公司 | 一种中断响应方法及系统 |
CN105183541B (zh) * | 2015-08-10 | 2019-07-12 | 上海斐讯数据通信技术有限公司 | 一种中断响应方法及系统 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
US8149705B2 (en) | Packet communications unit | |
US20020136217A1 (en) | Method and apparatus to manage packet fragmentation | |
CN1750485A (zh) | 网络仿真测试系统及方法 | |
EP2069950A1 (en) | Systems and methods of improving performance of transport protocols in a multi-path environment | |
CN1178435C (zh) | 在网络交换机中选择性地删除地址表项目的方法及使用这种方法的网络交换机 | |
CN101719918A (zh) | 一种改进的适用于多连接多路径的传输方法 | |
CN111294291B (zh) | 一种协议报文的处理方法和装置 | |
CN1825836A (zh) | 避免网络设备拥塞的系统和方法 | |
CN112039746B (zh) | 一种工业控制网络系统 | |
CN102447627A (zh) | 报文封装和解封装的装置及方法 | |
CN1848796A (zh) | 在实时通信系统中实现快速转发的方法 | |
CN1848795A (zh) | 在实时通信系统中实现大数据包快速转发的方法 | |
CN1527544A (zh) | 一种以太网交换机及其业务处理方法 | |
CN1773993A (zh) | 会话中继设备和会话中继方法 | |
Li et al. | The comparison and verification of some efficient packet capture and processing technologies | |
CN102868636A (zh) | 多核网络设备报文按流保序方法及系统 | |
CN101340370B (zh) | 链路选择方法和链路选择装置 | |
CN110417687A (zh) | 一种报文发送与接收方法及装置 | |
US6839355B1 (en) | Cable modem link layer bridge | |
CN1968207A (zh) | 广播风暴控制系统及方法 | |
CN116723162A (zh) | 一种网络首包处理方法、系统、装置、介质及异构设备 | |
JP2003244223A (ja) | 輻輳制御方法、エッジ型パケット転送装置及びネットワーク | |
CN101247397A (zh) | 一种镜像和访问控制列表功能生效顺序的优化方法 | |
CN110475288B (zh) | 一种卫星网络信令报文优先传送方法及装置、系统 | |
CN1292355C (zh) | 实现防火墙交换式透明代理的方法 |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
C06 | Publication | ||
PB01 | Publication | ||
C02 | Deemed withdrawal of patent application after publication (patent law 2001) | ||
WD01 | Invention patent application deemed withdrawn after publication |