CN1129281C - 利用缓存技术提高ip报文转发速度的方法 - Google Patents
利用缓存技术提高ip报文转发速度的方法 Download PDFInfo
- Publication number
- CN1129281C CN1129281C CN01135671A CN01135671A CN1129281C CN 1129281 C CN1129281 C CN 1129281C CN 01135671 A CN01135671 A CN 01135671A CN 01135671 A CN01135671 A CN 01135671A CN 1129281 C CN1129281 C CN 1129281C
- Authority
- CN
- China
- Prior art keywords
- message
- memory
- layer
- network equipment
- packets
- 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.)
- Expired - Fee Related
Links
Images
Landscapes
- Data Exchanges In Wide-Area Networks (AREA)
Abstract
本发明涉及一种利用缓存技术提高IP报文转发速度的方法,主要包括下述步骤:首先在内存管理单元申请内存块组成多个报文描述单元;再将这些报文描述单元采用单循链表连接起来,组成一个转发报文池;接收到报文时,直接从转发报文池中申请到报文描述单元;经过各层软件处理之后发送报文,并将报文描述单元释放回转发报文内存池。本发明由于采用报文描述单元和转发报文内存池,方便地将多块内存统一管理,从而使报文转发速度大幅提高。
Description
技术领域
本发明涉及数据通信中的IP报文转发的方法特别是一种提高IP报文转发速度的方法。
背景技术
在数据通信中,如附图1所示,数据是通过一个个的报文在不同网络设备之间传递的。数据在网络设备中需要经过层层软件处理后在网络介质上传输,如附图2所示:网络分层结构使得数据报文内容也呈分层结构,一个报文到达网络设备后,需要经过各层软件逐层向上处理,包括:物理层分析、链路层分析、网络层路由后,再由链路层封装、物理层发送到其它网络设备。各层软件对报文的分析、处理结果即各软件层处理后输出的信息需要往多层之间传递,所以一个报文除了报文本身需要一块内存缓存外,还至少需要一块内存保存不同软件的处理结果。在报文转发过程中,如附图3所示,表示报文的多块内存是通过网络设备中的内存管理单元的函数调用在每个报文来时申请、在转发完后释放,而内存管理单元因为要考虑到通用性、内存碎片、共享处理等特点,申请和释放算法往往比较复杂,占用了较多的CPU资源;同时,现代网络设备每秒处理报文已达100万~1万万包,在每个报文转发过程中,如附图4所示,组成数据报文的多块内存都要被申请、释放一次,在报文转发过程中耗费大量的CPU资源,较大地影响了转发效率。
发明内容
针对上述问题,本发明的目的是提供一种在数据通信中利用缓存技术,将多块内存统一管理来提高IP报文转发速度的方法,实现在不同的网络设备间转发报文,该方法包括以下步骤:
a、在所述网络设备的内存管理单元中建立多个报文描述单元;
b、将所述多个报文描述单元组成一个转发报文内存池;
c、所述网络设备接收到报文后,直接从所述的转发报文内存池中申请报文描述单元;
d、物理层、链路层及网络层的软件分别对所述报文进行处理,最后由所述网络设备发送;
e、所述网络设备发送所述报文后,释放所述的报文描述单元。
其中上述步骤a中在内存管理单元建立报文描述单元包括以下步骤:
a1、系统启动时,从所述内存管理单元中申请组成一个报文所需的多个内存块,其中包括了控制内存块、数据内存块、信息内存块和其它的内存块;
a2、将上述内存块全部初始化;
a3、通过指针建立控制内存块与其它各内存块的连接关系,从而组成一个报文描述单元。
其中上述步骤d中报文处理包括以下步骤:
d1、所述物理层、链路层和网络层逐层向上对所述报文进行处理,各层处理后将处理信息填入报文描述单元,并向各层的上层软件递交报文;
d2、最后将所述报文返回物理层并
d3、由所述网络设备将所述报文转发给下一个网络设备。
本发明由于采用缓存技术,引入了“报文描述单元”,并通过它将存储一个报文的多块内存统一管理;同时采用转发报文内存池来简化操作;在报文转发过程中,提供接口将以往一个报文需要多块内存、多次申请及释放的操作合为一次统一地申请和释放操作,使申请、释放效率大幅度提高,占用CPU时间大大减少;同时对外部模块,报文内存申请接口由多个统一为一个,使用简单、高效。
附图说明
以下结合附图详细说明本发明的实现方法:
图1是网络通信的分层结构图;
图2是网络通信数据报文的分层结构图;
图3是现有报文转发流程图;
图4是现有报文内存单独申请算法示意图;
图5是本发明报文描述单元示意图;
图6是本发明报文转发过程中软件模块交互图;
图7是本发明转发报文池组成图。
实施方式
如图1~图7所示,本发明利用缓存技术提高IP报文转发速度的方法的具体实施包括以下步骤:
首先,在内存管理单元中建立多个报文描述单元;其中本步骤中在内存管理单元中建立报文描述单元包括以下步骤:
a1、系统启动时,从所述内存管理单元中申请组成一个报文所需的多个内存块,其中包括了控制内存块、数据内存块、信息内存块和其它的内存块;
a2、将上述内存块全部初始化;
a3、通过指针建立控制内存块与其它各内存块的连接关系;
a4、组成一个如图5所示的包括数据内存块、控制内存块、信息内存块和其它内存块的报文描述单元。
系统重复上述申请、初始化、连接步骤,组成多个报文描述单元,并将它们存放在内存管理单元中。
其次,将多个报文描述单元组成一个转发报文内存池;从内存管理单元中申请一定数量的报文描述单元,并将它们按照单循环链表连接起来,构成一个如图7所示的环状转发报文内存池。当网络设备接收到报文后,直接从转发报文内存池申请报文描述单元;即当网络设备接收到一个报文后,物理层随即向内存管理单元申请存放报文信息的内存块,直接从转发报文内存池中获得一个报文描述单元,剩下的报文描述单元仍然按照单循环链表连接起来。
然后,物理层、链路层及网络层的软件分别对报文进行处理,最后由网络设备发送;此时,如图6所示,本步骤中各层软件分别对报文进行处理,最后由网络设备发送包括以下步骤:
d1、物理层对报文进行处理,将输出信息填入报文描述单元;其中将输出信息填入报文描述单元是通过调用本算法提供的函数来实现的。
d2、向上层软件递交报文;
d3、上层软件对报文进行处理,将输出信息填入报文描述单元;本步骤中报文需要经过链路层分析、网络层路由、链路层封装等多重分析、处理,各层软件对报文分析、处理后,将输出信息填入报文描述单元。
d4、再次将报文传递给物理层;
d5、网络设备将报文转发给下一个网络设备;
最后,报文发送后,释放报文描述单元;报文由网络设备发送到下一个网络设备后,需要将报文所占用的内存释放掉,此时,整个报文描述单元作为一个整体释放回到转发报文内存池中,重新与其它报文描述单元采用单循环链表连接起来,等待下一次被调用。
Claims (6)
1、一种利用缓存技术提高IP报文转发速度的方法,实现在不同的网络设备间转发报文,其特征在于包括以下步骤:
a、在所述网络设备的内存管理单元中建立多个报文描述单元;
b、将所述多个报文描述单元组成一个转发报文内存池;
c、所述网络设备接收到报文后,直接从所述转发报文内存池中申请报文描述单元;
d、物理层、链路层及网络层的软件分别对所述报文进行处理,最后由所述网络设备发送;
e、所述网络设备发送所述报文后,释放所述报文描述单元。
2、根据权利要求1所述的提高IP报文转发速度的方法,其特征在于上述步骤a中在内存管理单元建立报文描述单元包括以下步骤:
a1、系统启动时,从所述内存管理单元中申请组成一个报文所需的多个内存块,其中包括了控制内存块、数据内存块、信息内存块,
a2、将上述内存块全部初始化;
a3、通过指针建立控制内存块与其它各内存块的连接关系,从而组成一个报文描述单元。
3、根据权利要求1所述的提高IP报文转发速度的方法,其特征在于上述步骤b中将所述多个报文描述单元组成一个转发报文内存池的过程是:将所述多个报文描述单元采用单循环链表连接起来从而构成一个环状报文内存池。
4、根据权利要求1所述的提高IP报文转发速度的方法,其特征在于上述步骤c中所述网络设备接收到报文后,直接从转发报文内存池中通过指针形式申请获得报文描述单元。
5、根据权利要求1所述的提高IP报文转发速度的方法,其特征在于上述步骤d包括以下处理:
d1、所述物理层、链路层和网络层逐层向上对所述报文进行处理,各层处理后将处理信息填入报文描述单元,并向各层的上层软件递交报文;
d2、最后将所述报文返回物理层并
d3、由所述网络设备将所述报文转发给下一个网络设备。
6、根据权利要求1所述的提高IP报文转发速度的方法,其特征在于上述步骤e中报文发送后,释放报文描述单元的过程是:将整个报文描述单元作为一个整体放回到转发报文池中。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN01135671A CN1129281C (zh) | 2001-10-17 | 2001-10-17 | 利用缓存技术提高ip报文转发速度的方法 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN01135671A CN1129281C (zh) | 2001-10-17 | 2001-10-17 | 利用缓存技术提高ip报文转发速度的方法 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN1411217A CN1411217A (zh) | 2003-04-16 |
CN1129281C true CN1129281C (zh) | 2003-11-26 |
Family
ID=4673248
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN01135671A Expired - Fee Related CN1129281C (zh) | 2001-10-17 | 2001-10-17 | 利用缓存技术提高ip报文转发速度的方法 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN1129281C (zh) |
Cited By (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN100444579C (zh) * | 2005-01-18 | 2008-12-17 | 北京大学 | 一种基于自适应缓存机制实现快速网络报文分发的方法 |
Families Citing this family (7)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN1298147C (zh) * | 2003-11-18 | 2007-01-31 | 中兴通讯股份有限公司 | 一种在组播数据包转发时实现减少内存占用空间的方法 |
CN101170511B (zh) * | 2007-11-20 | 2010-11-24 | 中兴通讯股份有限公司 | 嵌入式操作系统中实现多核处理器通信的装置及方法 |
CN101321170B (zh) * | 2008-07-01 | 2011-07-27 | 北京锐安科技有限公司 | 一种新型的过滤查找表自动更新方法 |
CN101369983B (zh) * | 2008-10-15 | 2010-12-22 | 杭州华三通信技术有限公司 | 内存缓冲区管理方法及系统 |
CN102075432B (zh) * | 2011-01-25 | 2012-11-28 | 上海聚欣网络科技有限公司 | 一种用于发送及接收报文的方法、装置、设备及系统 |
CN102348237B (zh) * | 2011-10-28 | 2014-07-16 | 重庆邮电大学 | 一种宽带无线通信系统中的数据排队方法 |
CN113282040B (zh) * | 2021-05-26 | 2022-08-05 | 苏州智加科技有限公司 | 减少整车网关转发丢帧的方法及装置 |
-
2001
- 2001-10-17 CN CN01135671A patent/CN1129281C/zh not_active Expired - Fee Related
Cited By (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN100444579C (zh) * | 2005-01-18 | 2008-12-17 | 北京大学 | 一种基于自适应缓存机制实现快速网络报文分发的方法 |
Also Published As
Publication number | Publication date |
---|---|
CN1411217A (zh) | 2003-04-16 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN1315077C (zh) | 有效处理网络数据的系统和方法 | |
CN1975680A (zh) | 基于Java的进程间异步通信的实现方法 | |
CN1859325A (zh) | 基于链表的进程间消息传递方法 | |
CN1129281C (zh) | 利用缓存技术提高ip报文转发速度的方法 | |
CN1870767A (zh) | 对定时器任务进行管理的方法 | |
CN1933454A (zh) | 一种基于java消息服务的同步消息接口实现方法 | |
CN1879368A (zh) | 利用有序的加锁机制来维护诸如分组之类的项目的次序 | |
CN1270243C (zh) | 一种实现快速数据传递的方法 | |
CN1731374A (zh) | 一种高速缓存预取模块及其方法 | |
CN1781293A (zh) | 用于修改从源传输到目的地的数据的系统和方法 | |
CN1949203A (zh) | 小型计算机系统接口目标器的架构和数据传输方法 | |
CN1859205A (zh) | 一种单板软件存储和加载的方法及系统 | |
CN1225105C (zh) | 一种适用于应用服务器的呼叫处理方法 | |
CN1499751A (zh) | 数据发射装置、发射和接收数据的方法及数据通信系统 | |
CN1286277C (zh) | 网络处理器中核心处理器与微引擎之间的通信方法 | |
CN1955990A (zh) | 综合电信平台中的流程执行方法及系统 | |
CN1669279A (zh) | 提高分组应用的存储器存取效率 | |
CN1630235A (zh) | 基于消息的分布式平台的客户端反映任务进度的方法 | |
CN1210956C (zh) | 视讯会议流媒体实时接收存储方法 | |
CN1933450A (zh) | 板间通信方法及接口板 | |
CN1521990A (zh) | 全动态分布式网络服务管理系统及其服务方法 | |
CN1870708A (zh) | 一种话单传送方法、话单传送系统及交换设备 | |
CN1941733A (zh) | 一种集群通信中的报文群发方法 | |
CN1691637A (zh) | 通信设备中数据包的存储方法 | |
CN1314238C (zh) | 实现嵌入式系统中任务间自适应通讯的方法 |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
C10 | Entry into substantive examination | ||
SE01 | Entry into force of request for substantive examination | ||
C06 | Publication | ||
PB01 | Publication | ||
C10 | Entry into substantive examination | ||
SE01 | Entry into force of request for substantive examination | ||
C14 | Grant of patent or utility model | ||
GR01 | Patent grant | ||
DD01 | Delivery of document by public notice |
Addressee: Huawei Technologies Co., Ltd. Document name: Notification of Termination of Patent Right |
|
C17 | Cessation of patent right | ||
CF01 | Termination of patent right due to non-payment of annual fee |
Granted publication date: 20031126 Termination date: 20111017 |