CN102694727A - 实现网络数据包转发加速的方法及装置 - Google Patents
实现网络数据包转发加速的方法及装置 Download PDFInfo
- Publication number
- CN102694727A CN102694727A CN2012101577233A CN201210157723A CN102694727A CN 102694727 A CN102694727 A CN 102694727A CN 2012101577233 A CN2012101577233 A CN 2012101577233A CN 201210157723 A CN201210157723 A CN 201210157723A CN 102694727 A CN102694727 A CN 102694727A
- Authority
- CN
- China
- Prior art keywords
- information
- forwarding
- network packet
- protocol stack
- module
- 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
Images
Landscapes
- Data Exchanges In Wide-Area Networks (AREA)
Abstract
本发明公开一种实现网络数据包转发加速的方法及装置,主要针对现有网络数据包在转发过程中,每个数据包都要经过协议栈的不足而发明。本发明实现网络数据包转发加速的方法及步骤,通过增设经过数据栈处理过的数据包的转发信息条目的转发数据库的方法及与所述方法对应的装置,减少进入协议栈中的数据包,实现步骤包括:1.1接收网络数据包;1.2将接收到的网络数据包信息与转发数据库中的信息进行信息匹配,若匹配成功,则进行步骤1.3;若匹配不成功,则进行步骤1.4;1.3将接收到的所述的网络数据包进行转发;1.4将接收到的所述的网络数据包输入协议栈进行处理,转发处理之后的网络数据包。
Description
技术领域
本发明涉及一种实现网络数据包转发加速的方法及装置。
背景技术
目前一些网络设备尤其是一些低端的网络设备的网络数据包转发功能主要依赖于嵌入式系统协议栈所提供的网桥或路由功能来实现的,因通常这种软件协议栈都是一些通用协议栈,而这些协议栈都是参照TCP/IP协议栈模型来创建的,每个被转发网络数据包都需要在协议栈中流转一次,在这个过程中涉及的函数和中断较多,从而造成转发速率过慢,同时对CPU资源使用也造成了极大的浪费;另外目前也有很多的网络设备使用硬加速的方法,这种方式主要是通过在硬件芯片中置入一个专用的加速单元来实现对于网络包转发的加速,虽然这种方式可以实现对网络数据包的高速转发,但因为硬件的接口和规则都是预置好的,缺乏灵活性,另外因为硬件加速单元的加入,相应的成本也会增加,这对于一些对成本非常敏感低端的网络设备来说影响非常大。
发明内容
针对上述问题,本发明提供一种对于网络数据包传输过程中相似的数据包进行二次传输时,使其跳过协议栈进行直接发送,实现网络数据包转发加速的方法及装置。
为达到上述目的,本发明实现网络数据包转发加速的方法,通过增设经过数据栈处理过的数据包的转发信息条目的转发数据库,以及进行以下步骤实现,步骤包括:
1.1接收网络数据包;
1.2将接收到的网络数据包信息与转发数据库中的信息进行信息匹配,
若匹配成功,则进行步骤1.3;
若匹配不成功,则进行步骤1.4;
1.3将接收到的所述的网络数据包进行转发;
1.4将接收到的所述的网络数据包输入协议栈进行处理,转发处理之后的网络数据包。
进一步地,进行步骤1.2后,匹配成功,依据转发数据库中的信息,更新协议栈中信息库的相应条目。
进一步地,进行步骤1.2后,匹配不成功,依据所述的网络数据包在协议栈中建立的信息,建立转发信息条目。
特别地,转发存储器中已记录的转发条目依据协议栈中信息库信息进行定期更新。
为达到上述目的,本发明实现网络数据包转发加速的装置,包括接收模块、转发处理模块、转发存储模块和发送模块,其中
所述接收模块,用于接收网络数据包;
所述转发存储模块,用于存储经过协议栈处理的数据包的转发信息条目;
所述转发处理模块,将接收到的网络数据包的信息与转发存储模块中的信息进行匹配,匹配成功将所述数据包发送到发送模块进行发送,并更新协议栈中的信息库的相应条目,匹配不成功将所述数据包发送到协议栈中进行信息处理之后,发送到发送模块进行发送。
所述发送模块,用于将所述的网络数据包发送出去。
进一步地,还包括转发学习模块,用于读取接收到的数据包的信息,将信息输出到转发处理单元,并将经协议栈处理过的数据包的转发信息条目存储到转发存储器模块,进行备份。
特别地,还包括定时模块,用于控制学习模块处理转发存储模块中的转发信息条目的频率。
本发明实现网络数据包转发加速方法及装置,通过对需要转发的网络数据包进行提前的与已经经过协议栈的数据包进行信息匹配,匹配成功后进行直接转发,减少了相似的数据包多次转发,多次进入协议栈中的流转过程;匹配不成功,根据在协议栈中处理过的数据包在协议栈中的信息,建立该数据包的转发条目以备份,在此数据包下次转发时备用。
附图说明
图1是本发明实现网络数据包转发和加速的方法的步骤流程图;
图2是本发明实现网络数据包转发和加速的方法的转发数据库的更新流程图;
图3为本发明实现网络数据包转发和加速的装置的结构示意图。
具体实施方式
下面结合说明书附图对本发明做进一步的描述。
如图1-2所示,本发明实现网络数据包转发加速的方法,通过增设经过数据栈处理过的数据包的转发信息条目的转发数据库,以及进行以下步骤实现,步骤包括:
1.1接收网络数据包;
1.2将接收到的网络数据包信息与转发数据库中的信息进行信息匹配,
若匹配成功,则进行步骤1.3;
若匹配不成功,则进行步骤1.4;
1.3将接收到的所述的网络数据包进行转发;
1.4将接收到的所述的网络数据包输入协议栈进行处理,转发处理之后的网络数据包。
进一步地,进行步骤1.2后,匹配成功,依据转发数据库中的信息,更新协议栈中信息库的相应条目。
进一步地,进行步骤1.2后,匹配不成功,依据所述的网络数据包在协议栈中建立的信息,建立转发信息条目。
特别地,转发存储器中已记录的转发条目依据协议栈中信息库信息进行定期更新。
相应地,如图3所示,本发明实现网络数据包转发加速的装置,包括接收模块、转发处理模块、转发存储模块和发送模块,其中
所述接收模块,用于接收网络数据包;
所述转发存储模块,用于存储经过协议栈处理的数据包的转发信息条目;
所述转发处理模块,将接收到的网络数据包的信息与转发存储模块中的信息进行匹配,匹配成功将所述数据包发送到发送模块进行发送,并更新协议栈中的信息库的相应条目,匹配不成功将所述数据包发送到协议栈中进行信息处理之后,发送到发送模块进行发送。
所述发送模块,用于将所述的网络数据包发送出去。
进一步地,还包括转发学习模块,用于读取接收到的数据包的信息,将信息输出到转发处理单元,并将经协议栈处理过的数据包的转发信息条目存储到转发存储器模块,进行备份。
转发学习模块主要读取的是,数据包信息为MAC地址、IP地址和端口信息。
特别地,还包括定时模块,用于控制学习模块处理转发存储模块中的转发信息条目的频率。所述存储模块存储的转发信息库通过转发学习模块进行更新。当协议栈的信息库的条目出现老化时,转发学习单元会删除转发信息库中相应的条目。
以上,仅为本发明的较佳实施例,但本发明的保护范围并不局限于此,任何熟悉本技术领域的技术人员在本发明揭露的技术范围内,可轻易想到的变化或替换,都应涵盖在本发明的保护范围之内。因此,本发明的保护范围应该以权利要求所界定的保护范围为准。
Claims (7)
1.一种实现网络数据包转发加速的方法,其特征在于:通过增设经过数据栈处理过的数据包的转发信息条目的转发数据库,以及进行以下步骤实现,步骤包括:
1.1接收网络数据包;
1.2将接收到的网络数据包信息与转发数据库中的信息进行信息匹配,
若匹配成功,则进行步骤1.3;
若匹配不成功,则进行步骤1.4;
1.3将接收到的所述的网络数据包进行转发;
1.4将接收到的所述的网络数据包输入协议栈进行处理,转发处理之后的网络数据包。
2.根据权利要求1所述的实现网络数据包转发加速的方法,其特征在于:进行步骤1.2后,匹配成功,依据转发数据库中的信息,更新协议栈中信息库的相应条目。
3.根据权利要求1所述的实现网络数据包数据包加速的方法,其特征在于:进行步骤1.2后,匹配不成功,依据所述的网络数据包在协议栈中建立的信息,建立转发信息条目。
4.根据权利要求1所述的实现网络数据包转发加速的方法,其特征在于:转发存储器中已记录的转发条目依据协议栈中信息库信息进行定期更新。
5.一种实现网络数据包转发加速的装置,其特征在于:包括接收模块、转发处理模块、转发存储模块和发送模块,其中
所述接收模块,用于接收网络数据包;
所述转发存储模块,用于存储经过协议栈处理的数据包的转发信息条目;
所述转发处理模块,将接收到的网络数据包的信息与转发存储模块中的信息进行匹配,匹配成功将所述数据包发送到发送模块进行发送,并更新协议栈中的信息库的相应条目,匹配不成功将所述数据包发送到协议栈中进行信息处理之后,发送到发送模块进行发送。
所述发送模块,用于将所述的网络数据包发送出去。
6.根据权利要求5述的实现网络数据包转发加速的装置,还包括转发学习模块,用于读取接收到的数据包的信息,将信息输出到转发处理单元,并将经协议栈处理过的数据包的转发信息条目存储到转发存储器模块,进行备份。
7.根据权利要求5所述的实现网络数据包加速的装置,其特征在于:还包括定时模块,用于控制学习模块处理转发存储模块中的转发信息条目的频率。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN2012101577233A CN102694727A (zh) | 2012-05-21 | 2012-05-21 | 实现网络数据包转发加速的方法及装置 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN2012101577233A CN102694727A (zh) | 2012-05-21 | 2012-05-21 | 实现网络数据包转发加速的方法及装置 |
Publications (1)
Publication Number | Publication Date |
---|---|
CN102694727A true CN102694727A (zh) | 2012-09-26 |
Family
ID=46860016
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN2012101577233A Pending CN102694727A (zh) | 2012-05-21 | 2012-05-21 | 实现网络数据包转发加速的方法及装置 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN102694727A (zh) |
Cited By (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
WO2015176247A1 (zh) * | 2014-05-21 | 2015-11-26 | 华为技术有限公司 | 一种网络协议栈的数据处理方法及装置 |
CN103856407B (zh) * | 2014-03-25 | 2016-09-07 | 重庆邮电大学 | 一种基于NetFPGA可编程虚拟路由器的数据包加速转发方法及装置 |
CN106789756A (zh) * | 2016-12-26 | 2017-05-31 | 腾讯科技(深圳)有限公司 | 一种基于操作系统内核网桥的数据发送方法和装置 |
CN110572330A (zh) * | 2019-09-17 | 2019-12-13 | 普联技术有限公司 | 实现转发加速功能和协议栈功能兼容的方法、装置及介质 |
Citations (8)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US6172981B1 (en) * | 1997-10-30 | 2001-01-09 | International Business Machines Corporation | Method and system for distributing network routing functions to local area network stations |
US6266336B1 (en) * | 1998-02-18 | 2001-07-24 | International Business Machines Corporation | Apparatus and method for setting A/C bits in token ring frames for switches |
CN1466340A (zh) * | 2002-06-24 | 2004-01-07 | �人��������������ι�˾ | 以策略流方式转发数据的方法和数据转发设备 |
JP2005223449A (ja) * | 2004-02-03 | 2005-08-18 | Nec Access Technica Ltd | ルータ及びスタティックドメインネームルーティング |
CN1996948A (zh) * | 2006-12-28 | 2007-07-11 | 杭州华为三康技术有限公司 | 基于媒体访问控制层的报文转发方法和装置 |
CN101494605A (zh) * | 2009-03-05 | 2009-07-29 | 中兴通讯股份有限公司 | 一种基于以太网驱动的数据转发方法和装置 |
CN102123082A (zh) * | 2011-01-14 | 2011-07-13 | 中兴通讯股份有限公司 | 数据包转发方法和设备 |
CN102158419A (zh) * | 2011-05-23 | 2011-08-17 | 深圳市共进电子有限公司 | 在家庭网关中实现数据包加速转发的方法 |
-
2012
- 2012-05-21 CN CN2012101577233A patent/CN102694727A/zh active Pending
Patent Citations (8)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US6172981B1 (en) * | 1997-10-30 | 2001-01-09 | International Business Machines Corporation | Method and system for distributing network routing functions to local area network stations |
US6266336B1 (en) * | 1998-02-18 | 2001-07-24 | International Business Machines Corporation | Apparatus and method for setting A/C bits in token ring frames for switches |
CN1466340A (zh) * | 2002-06-24 | 2004-01-07 | �人��������������ι�˾ | 以策略流方式转发数据的方法和数据转发设备 |
JP2005223449A (ja) * | 2004-02-03 | 2005-08-18 | Nec Access Technica Ltd | ルータ及びスタティックドメインネームルーティング |
CN1996948A (zh) * | 2006-12-28 | 2007-07-11 | 杭州华为三康技术有限公司 | 基于媒体访问控制层的报文转发方法和装置 |
CN101494605A (zh) * | 2009-03-05 | 2009-07-29 | 中兴通讯股份有限公司 | 一种基于以太网驱动的数据转发方法和装置 |
CN102123082A (zh) * | 2011-01-14 | 2011-07-13 | 中兴通讯股份有限公司 | 数据包转发方法和设备 |
CN102158419A (zh) * | 2011-05-23 | 2011-08-17 | 深圳市共进电子有限公司 | 在家庭网关中实现数据包加速转发的方法 |
Cited By (8)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN103856407B (zh) * | 2014-03-25 | 2016-09-07 | 重庆邮电大学 | 一种基于NetFPGA可编程虚拟路由器的数据包加速转发方法及装置 |
WO2015176247A1 (zh) * | 2014-05-21 | 2015-11-26 | 华为技术有限公司 | 一种网络协议栈的数据处理方法及装置 |
CN106464705A (zh) * | 2014-05-21 | 2017-02-22 | 华为技术有限公司 | 一种网络协议栈的数据处理方法及装置 |
US10187329B2 (en) | 2014-05-21 | 2019-01-22 | Huawei Technologies Co., Ltd. | Method and apparatus for processing network protocol stack data |
CN106464705B (zh) * | 2014-05-21 | 2019-11-01 | 华为技术有限公司 | 一种网络协议栈的数据处理方法及装置 |
CN106789756A (zh) * | 2016-12-26 | 2017-05-31 | 腾讯科技(深圳)有限公司 | 一种基于操作系统内核网桥的数据发送方法和装置 |
US11201760B2 (en) | 2016-12-26 | 2021-12-14 | Tencent Technology (Shenzhen) Company Limited | Data forwarding method and apparatus based on operating system kernel bridge |
CN110572330A (zh) * | 2019-09-17 | 2019-12-13 | 普联技术有限公司 | 实现转发加速功能和协议栈功能兼容的方法、装置及介质 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN106330414B (zh) | 一种报文传输方法及装置 | |
EP3352431B1 (en) | Network load balance processing system, method, and apparatus | |
CN102377685B (zh) | 一种订阅消息的发送系统以及订阅消息的发送方法 | |
CN110418376A (zh) | 数据传输方法及装置 | |
CN104811459A (zh) | 用于消息服务的处理方法、装置及系统、消息服务系统 | |
CN102035751A (zh) | 一种数据的传输方法和设备 | |
EP2866395B1 (en) | Maximum transmission unit negotiation method and data terminal | |
CN103248452A (zh) | 数据发送装置、数据接收装置、终端和数据传输方法 | |
CN103546258B (zh) | 一种数据传输方法及装置 | |
CN102209039B (zh) | 一种文件传输方法及设备 | |
CN103370911A (zh) | 流通信系统 | |
CN102148662A (zh) | 一种数据发送速率的调整方法及装置 | |
CN202424770U (zh) | 一种网络数据安全隔离器 | |
CN103095568A (zh) | 机架式交换设备实现堆叠的系统及方法 | |
CN105743951A (zh) | 一种数据发送、接收的方法及装置 | |
CN102780621B (zh) | 一种上行数据包发送方法、装置及网络设备 | |
CN102694727A (zh) | 实现网络数据包转发加速的方法及装置 | |
CN104270344A (zh) | 万兆网闸 | |
CN101719872B (zh) | 基于零拷贝方式的多队列报文发送和接收方法和装置 | |
CN101562500B (zh) | 数据传输请求、发送方法及数据传输装置 | |
CN104980257A (zh) | 物联网通讯方法及装置 | |
CN102104552A (zh) | 基于明确拥塞通知机制的报文控制方法及设备 | |
KR20110029920A (ko) | 이종 링크 상에서의 패킷 전송 방법 및 그 시스템 | |
CN103297384A (zh) | 协议转换的通信方法及系统 | |
CN103812746A (zh) | 基于linux操作系统的桥接设备及其通信方法 |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
C06 | Publication | ||
PB01 | Publication | ||
C10 | Entry into substantive examination | ||
SE01 | Entry into force of request for substantive examination | ||
C12 | Rejection of a patent application after its publication | ||
RJ01 | Rejection of invention patent application after publication |
Application publication date: 20120926 |