利用缓存技术提高IP报文转发速度的方法

阅读: 评论:0

著录项
  • CN01135671.5
  • 20011017
  • CN1411217
  • 20030416
  • 华为技术有限公司
  • 范大卫;郭方路
  • H04L12/54
  • H04L12/54

  • 广东省深圳市南山区科技园科发路1号
  • 中国,CN,广东(44)
摘要
本发明涉及一种利用缓存技术提高IP报文转发速度的方法,主要包括下述步骤:首先在内存管理单元申请内存块组成多个报文描述单元;再将这些报文描述单元采用单循链表连接起来,组成一个转发报文池;接收到报文时,直接从转发报文池中申请到报文描述单元;经过各层软件处理之后发送报文,并将报文描述单元释放回转发报文内存池。本发明由于采用报文描述单元和转发报文内存池,方便地将多块内存统一管理,从而使报文转发速度大幅提高。
权利要求

1、一种利用缓存技术提高IP报文转发速度的方法,其特征在于包括以下步 骤:

a、在内存管理单元中建立多个报文描述单元;

b、将多个报文描述单元组成一个转发报文内存池;

c、网络设备接收到报文后,申请者直接从转发报文池申请报文描述单元;

d、物理层、链路层及网络层的软件分别对报文进行处理,最后由网络设备 发送;

e、报文发送后,释放报文描述单元。

2、根据权利要求1所述的提高IP报文转发速度的方法,其特征在于上述步 骤a中在内存管理单元建立报文描述单元包括以下步骤:

a1、系统启动时,从内存管理单元申请组成一个报文的多块内存,其中所 述内存块包括控制块、数据块、信息块或许其它内存块;

a2、将上述内存块全部初始化;

a3、通过指针建立好控制块与其它内存块的连接关系;

a4、组成一个报文描述单元。

3、根据权利要求1所述的提高IP报文转发速度的方法,其特征在于上述步 骤b中将多个报文描述单元组成一个转发报文内存池是将多个报文描述单元采 用单循环链表连接起来,构成一个环状报文内存池。

4、根据权利要求1所述的提高IP报文转发速度的方法,其特征在于上述步 骤c中网络设备接收到报文后,申请者直接从转发报文池申请报文描述单元是 整个报文描述单元以指针形式一次性被申请者获得。

5、根据权利要求1所述的提高IP报文转发速度的方法,其特征在于上述步 骤d中物理层链路层及网络层的软件分别对报文进行处理,最后由网络设备发 送包括以下步骤:

d1、接收单元对报文进行处理,将输出信息填入报文描述单元;

d2、向上层软件递交报文;

d3、上层软件对报文进行处理,将输出信息填入报文描述单元;

d4、再次将报文传递给物理层;

d5、网络设备将报文转发给下一个网络设备;

6、根据权利要求1所述的提高IP报文转发速度的方法,其特征在于上述步 骤e中报文发送后,释放报文描述单元是将整个报文描述单元作为一个整体放 回到转发报文池中。

说明书
技术领域

技术领域

本发明涉及数据通信中的IP报文转发的方法特别是一种提高IP报文转发速 度的方法。

背景技术

在数据通信中,如附图1所示,数据是通过一个个的报文在不同网络设备 之间传递的。数据在设备中需要经过层层软件处理后在网络介质上传输,如附 图2所示:网络分层结构使得数据报文内容也呈分层结构,一个报文到达网络 设备后,经过物理层分析、链路层分析、网络层路由后,再由链路层封装、物 理层发送到其它网络设备。各层软件对报文的分析、处理结果需要往多层之间 传递,所以一个报文除了报文本身需要一块内存缓存外,还至少需要一块内存 保存不同软件的处理结果。在报文转发过程中,如附图3所示,表示报文的多 块内存是通过内存管理模块的函数调用在每个报文来时申请、在转发完后释放, 而内存管理模块因为要考虑到通用性、内存碎片、共享处理等特点,申请和释 放算法往往比较复杂,占用了较多的CPU资源;同时,现代网络设备每秒处理 报文已达100万~1万万包,在每个报文转发过程中,如附图4所示,组成数据 报文的多块内存都要被申请、释放一次,在报文转发过程中耗费大量的CPU资 源,较大地影响了转发效率。

发明内容

针对上述问题,本发明的目的是提供一种在数据通信中利用缓存技术,将 多块内存统一管理来提高IP报文转发速度的方法,该方法包括以下步骤:

a、在内存管理单元中建立多个报文描述单元;

b、将多个报文描述单元组成一个转发报文内存池;

c、网络设备接收到报文后,申请者直接从转发报文池申请报文描述单元;

d、物理层、链路层及网络层的软件分别对报文进行处理,最后由网络设备 发送;

e、报文发送后,释放报文描述单元。

其中上述步骤a中在内存管理单元建立报文描述单元包括以下步骤:

a1、系统启动时,从内存管理单元申请一个报文的多块内存,其中所述内 存块包括控制块、数据块、信息块或其它内存块;

a2、将上述内存块全部初始化;

a3、通过指针建立好控制块与其它内存块的连接关系;

a4、组成一个报文描述单元。

其中上述步骤d中报文处理包括以下步骤:

d1、接收单元对报文进行处理,将输出信息填入报文描述单元;

d2、向上层软件递交报文;

d3、上层软件对报文进行处理,将输出信息填入报文描述单元;

d4、再次将报文传递给物理层;

d5、网络设备将报文转发给下一个网络设备。

本发明由于采用缓存技术,引入了“报文描述单元”,并通过它将表示一个 报文的多块内存统一管理;同时采用转发报文内存池来简化操作;在报文转发 过程中,提供接口将以往一个报文分为多块内存、多次申请及释放的操作合为 一次统一地申请和释放操作,使申请、释放效率大幅度提高,占用CPU时间大 大减少;同时对外部模块,报文内存申请接口由多个统一为一个,使用简单、 高效。

附图说明

以下结合附图详细说明本发明的实现方法:

图1是网络通信的分层结构图;

图2是网络通信数据报文的分层结构图;

图3是现有报文转发流程图;

图4是现有报文内存单独申请算法示意图;

图5是本发明报文描述单元示意图;

图6是本发明报文转发过程中软件模块交互图;

图7是本发明转发报文池组成图。

实施方式

如图1~图7所示,本发明利用缓存技术提高IP报文转发速度的方法的具体 实施包括以下步骤:

首先,在内存管理单元中建立多个报文描述单元;其中本步骤中在内存管 理单元中建立报文描述单元包括以下步骤:

a1、当系统启动时,从内存管理单元申请组成一个报文地多块内存,所述 内存块包括数据块、控制块、信息块或其它内存块;

a2、将上述内存块全部初始化;

a3、并通过指针建立好控制块与其它内存块的连接关系;

a4、组成一个如图5所示的包括数据块、控制块、信息块和其它内存块的 报文描述单元。

系统重复上述申请、初始化、连接步骤,组成多个报文描述单元,并将它 们存放在内存管理单元中。

其次,将多个报文描述单元组成一个转发报文内存池;从内存管理单元中 申请一定数量的报文描述单元,并将它们按照单循环链表连接起来,构成一个 如图7所示的环状转发报文内存池。当网络设备接收到报文后,申请者直接从 转发报文内存池申请报文描述单元;即当网络设备接收到一个报文后,接收单 元随即向内存管理单元申请存放报文信息的内存块,申请者直接从转发报文内 存池中获得一个报文描述单元,剩下的报文描述单元仍然按照单循环链表连接 起来。

然后,物理层、链路层及网络层的软件分别对报文进行处理,最后由网络 设备发送;此时,如图6所示,本步骤中各层软件分别对报文进行处理,最后 由网络设备发送包括以下步骤:

d1、接收单元对报文进行处理,将输出信息填入报文描述单元;其中将输 出信息填入报文描述单元是通过调用本算法提供的函数来实现的。

d2、向上层软件递交报文;

d3、上层软件对报文进行处理,将输出信息填入报文描述单元;本步骤中 报文需要经过链路层分析、网络层路由、链路层封装等多重分析、处理,各层 软件对报文分析、处理后,将输出信息填入报文描述单元。

d4、再次将报文传递给物理层;

d5、网络设备将报文转发给下一个网络设备;

最后,报文发送后,释放报文描述单元;报文由网络设备发送到下一个网 络设备后,需要将报文所占用的内存释放掉,此时,整个报文描述单元作为一 个整体释放回到转发报文内存池中,重新与其它报文描述单元采用单循环链表 连接起来,等待下一次被调用。

本文发布于:2023-04-15 03:23:58,感谢您对本站的认可!

本文链接:https://patent.en369.cn/patent/1/87544.html

版权声明:本站内容均来自互联网,仅供演示用,请勿用于商业和其他非法用途。如果侵犯了您的权益请与我们联系,我们将在24小时内删除。

留言与评论(共有 0 条评论)
   
验证码:
Copyright ©2019-2022 Comsenz Inc.Powered by © 369专利查询检索平台 豫ICP备2021025688号-20 网站地图