处理网络数据包的方法、装置及存储介质制造方法及图纸

技术编号:27238945 阅读:17 留言:0更新日期:2021-02-04 12:09
本发明专利技术提供了一种处理网络数据包的方法、装置及存储介质。该方法包括:根据第一分类规则集合与所述网络数据包的包头信息,生成第一匹配向量,其中所述第一匹配向量中的各个元素分别用于表示所述网络数据包与所述第一分类规则集合中的各个分类规则是否匹配;根据第一优先级编码矩阵与所述第一匹配向量,生成第一报告向量,其中所述第一优先级编码矩阵中的各个元素分别用于表示所述第一分类规则集合中的各个分类规则之间的优先级高低关系;输出所述第一报告向量,以便根据所述网络数据包匹配的优先级最高的分类规则转发所述网络数据包。根据本发明专利技术实施例,能够更为灵活地实现网络数据包的分类。据包的分类。据包的分类。

【技术实现步骤摘要】
处理网络数据包的方法、装置及存储介质


[0001]本专利技术涉及网络
,更具体地,涉及一种处理网络数据包的方法、装置及存储介质。

技术介绍

[0002]网络数据包分类(Packet Classification)技术在交换机、路由器、防火墙及深度包检测等网络功能中的广泛应用,使之成为网络技术中至关重要的一部分。网包分类算法是用给定的分类规则,对网络数据包进行分类处理的算法。网包分类算法首先对网络数据包进行协议解析和字段抽取操作,然后依据协议类型和分类字段对网络数据包进行分类。同时,网包分类算法还需要考虑如何在分类规则集合中加入新的规则,即如何更新分类规则集合。
[0003]随着网络流量的持续增长,尤其是视频、多媒体流量的持续增长,传统网络暴露出来越来越多的问题。软件定义网络(Software-Defined Network,SDN)技术分离网络设备的控制层和转发层,以构建开放可编程的网络环境,被认为是解决现有问题的关键技术方向。分类规则集合规模变大,使得网络数据包分类算法对规则冗余的容忍度降低。更新频率增加使得网络数据包分类算法对实时动态更新性能要求更高。主流SDN网络架构中,网络数据包的转发规则是以流表的形式由控制器动态地下发至交换机进行配置。因此,相比于传统网络,SDN技术对交换机进行规则动态更新的性能提出了更高的要求。

技术实现思路

[0004]为解决现有技术中的上述问题,本专利技术实施例提出一种处理网络数据包的方法、装置及存储介质,能够更为灵活地实现网络数据包的分类,为同时实现高匹配性能与高更新性能提供技术基础。
[0005]本专利技术的一个方面提供了一种处理网络数据包的方法。该方法包括:根据第一分类规则集合与所述网络数据包的包头信息,生成第一匹配向量,其中所述第一匹配向量中的各个元素分别用于表示所述网络数据包与所述第一分类规则集合中的各个分类规则是否匹配;根据第一优先级编码矩阵与所述第一匹配向量,生成第一报告向量,其中所述第一优先级编码矩阵中的各个元素分别用于表示所述第一分类规则集合中的各个分类规则之间的优先级高低关系,所述第一报告向量用于标识在所述第一分类规则集合中所述网络数据包匹配的优先级最高的分类规则;输出所述第一报告向量,以便根据所述网络数据包匹配的优先级最高的分类规则转发所述网络数据包。
[0006]本专利技术的另一方面提供了一种处理网络数据包的装置。该装置包括:匹配模块,用于根据第一分类规则集合与所述网络数据包的包头信息,生成第一匹配向量,其中所述第一匹配向量中的各个元素分别用于表示所述网络数据包与所述第一分类规则集合中的各个分类规则是否匹配;第一选择模块,用于根据第一优先级编码矩阵与所述第一匹配向量,生成第一报告向量,其中所述第一优先级编码矩阵中的各个元素分别用于表示所述第一分
类规则集合中的各个分类规则之间的优先级高低关系,所述第一报告向量用于标识在所述第一分类规则集合中所述网络数据包匹配的优先级最高的分类规则;输出模块,用于输出所述第一报告向量,以便根据所述网络数据包匹配的优先级最高的分类规则转发所述网络数据包。
[0007]本专利技术的另一方面提供了一种计算机可读存储介质,所述计算机可读存储介质上存储有可执行上述方法的指令。
附图说明
[0008]为了更完整地理解本专利技术及其优势,现在将参考结合附图的以下描述,其中:
[0009]图1是现有技术中TCAM芯片方案的匹配方法的示意性原理图;
[0010]图2是现有技术中TCAM芯片方案的更新方法的示意性原理图;
[0011]图3为根据本专利技术一个实施例的处理网络数据包的方法的示意性流程图;
[0012]图4为根据本专利技术一个实施例的优先级编码矩阵的示意图;
[0013]图5为根据本专利技术一个实施例的使用优先级编码矩阵生成报告向量的示意性流程图;
[0014]图6为根据本专利技术一个实施例的优先级编码矩阵的存储结构的示意图;
[0015]图7为根据本专利技术一个实施例的更新优先级编码矩阵的示意图;
[0016]图8为根据本专利技术一个实施例的8T SRAM的列写过程的示意图;
[0017]图9为根据本专利技术一个实施例的8T SRAM的列写过程的另一示意图;
[0018]图10为根据本专利技术另一实施例的使用优先级编码矩阵生成报告向量的示意性流程图;
[0019]图11为根据本专利技术一个实施例的处理网络数据包的装置的示意性框图;以及
[0020]图12为根据本专利技术一个实施例的处理网络数据包的装置的另一示意性框图。
具体实施方式
[0021]以下,将参照附图来描述本专利技术的实施例。但是应该理解,这些描述只是示例性的,而并非要限制本专利技术的范围。此外,在以下说明中,省略了对公知结构和技术的描述,以避免不必要地混淆本专利技术的概念。另外,本专利技术以下提供的各个实施例以及实施例中的各技术特征可以以任意方式相互组合。
[0022]在此使用的术语仅仅是为了描述具体实施例,而并非意在限制本专利技术。此外,在此使用的术语“包括”、“包含”等表明了所述特征、步骤、操作和/或部件的存在,但是并不排除存在或添加一个或多个其他特征、步骤、操作或部件。在此使用的所有术语(包括技术和科学术语)具有本领域技术人员通常所理解的含义,除非另外定义。应注意,这里使用的术语应解释为具有与本说明书的上下文相一致的含义,而不应以理想化或过于刻板的方式来解释。
[0023]现有技术中网络数据包分类技术的实现分为硬件和软件两类。对于交换机、路由器等网络设备,由于数据包流量巨大,为了提供最好的匹配性能,常见的商用交换机产品采用三态内容寻址存储器(Ternary Content-Addressable Memory,TCAM)芯片方案。但是TCAM芯片方案的分类规则更新性能较差,且其更新性能随着分类规则数量的增加而下降。
若无法及时更新分类规则,便会存在更新过渡期,进而导致网络数据包被错误地转发、丢包以及网络拥塞等问题。近几年出现了以OVS(OpenVSwitch)虚拟交换机为代表的纯软件实现的网络数据包分类技术。在软件实现的方案中,虽然更新性能不受分类规则数量的影响,但匹配性能比硬件TCAM至少慢3个数量级。因此,软件实现的方案目前主要用在流量有限的地方,比如云计算虚拟化的网卡、深度包检测等。
[0024]在现有TCAM芯片方案的基础上,本专利技术提出一种处理网络数据包的方法、装置及存储介质,能够消除TCAM芯片方案在更新性能上的技术壁垒,并进一步提供兼具高匹配性能与高更新性能的技术方案。应理解,本专利技术提出的技术方案的使用场景不限于SDN网络,还可以应用于其它实现网络数据分类技术的场景。
[0025]下面结合图1和图2详细描述TCAM芯片方案的实现原理,以更好地理解本专利技术的技术方案以及所实现的有益效果。
[0026]图1是现有技术中TCAM芯片方案的匹配方法的示意性原理图。如图1中(a)所示,分类规则集合包含四个分类规则,标识(Rule ID,RID)分本文档来自技高网
...

【技术保护点】

【技术特征摘要】
1.一种处理网络数据包的方法,其特征在于,包括:根据第一分类规则集合与所述网络数据包的包头信息,生成第一匹配向量,其中所述第一匹配向量中的各个元素分别用于表示所述网络数据包与所述第一分类规则集合中的各个分类规则是否匹配;根据第一优先级编码矩阵与所述第一匹配向量,生成第一报告向量,其中所述第一优先级编码矩阵中的各个元素分别用于表示所述第一分类规则集合中的各个分类规则之间的优先级高低关系,所述第一报告向量用于标识在所述第一分类规则集合中所述网络数据包匹配的优先级最高的分类规则;输出所述第一报告向量,以便根据所述网络数据包匹配的优先级最高的分类规则转发所述网络数据包。2.根据权利要求1所述的方法,其特征在于,所述第一分类规则集合为构成分类规则全集的多个分类规则子集中的一个分类规则子集,其中所述多个分类规则子集中的每个分类规则子集分别对应一个优先级区间,且所述多个分类规则子集能够按照优先级高低依次排序;在所述根据第一优先级编码矩阵与所述第一匹配向量,生成第一报告向量之前,还包括:从所述多个分类规则子集中各个分类规则子集对应的局部优先级编码矩阵中选出所述第一优先级编码矩阵,其中所述第一优先级编码矩阵为优先级最高且包含与所述网络数据包匹配的分类规则的分类规则子集所对应的局部优先级编码矩阵。3.根据权利要求2所述的方法,其特征在于,所述从所述多个分类规则子集中各个分类规则子集对应的局部优先级编码矩阵中选出所述第一优先级编码矩阵,包括:根据所述多个分类规则子集中各个分类规则子集的局部匹配向量,生成全局匹配向量,其中所述第一匹配向量为所述各个分类规则子集中第一分类规则集合的局部匹配向量,所述全局匹配向量中的各个元素分别用于表示所述各个分类规则子集是否包含与所述网络数据包匹配的分类规则;根据全局优先级编码矩阵与所述全局匹配向量,生成全局报告向量,其中所述全局优先级编码矩阵中的各个元素分别用于表示所述多个分类规则子集中各个分类规则子集之间的优先级高低关系,所述全局报告向量用于标识所述第一优先级编码矩阵。4.根据权利要求1至3中任一项所述的方法,其特征在于,所述第一分类规则集合包括n个分类规则,所述第一匹配向量M为n维向量,所述第一匹配向量M中的第i个元素M
i
用于表示所述网络数据包是否与所述第一分类规则集合中的第i个分类规则匹配,所述第一优先级编码矩阵P为n阶方阵,所述第一优先级编码矩阵P中的第i行j列元素P
ij
用于表示所述第一分类规则集合中的第i个分类规则与第j个分类规则之间的优先级高低关系,所述第一报告向量R为n维独热向量;其中,1≤i,j≤n,且i、j与n均为正整数。5.根据权利要求4所述的方法,其特征在于,所述第i行j列元素P
ij
为1时表示所述第一分类规则集合中的第i个分类规则的优先级大于第j个分类规则的优先级,所述第i行j列元素P
ij
为0时表示所述第一分类规则集合中的第i个分类规则的优先级小于等于第j个分类规则的优先级,所述第i个元素M
i
为1时表示所
述网络数据包与所述第一分类规则集合中的第i个分类规则匹配,所述第i个元素M
i
为0时表示所述网络数据包与所述第一分类规则集合中的第i个分类规则不匹配;其中,所述根据第一优先级编码矩阵与所述第一匹配向量,生成第一报告向量,包括:根据公式(1)计算所述第一报告向量R中的第j个元素R
j
,其中,运算符号∨表示逻辑或,运算符号∧表示逻辑与,运算符号上划线表示逻辑取反,符号M
j
表示所述第一匹配向量M中的第j个元素,所述第j个元素R
j
为1时表示所述第一分类规则集合中的第j个分类规则为所述网络数据包匹配的优先级最高的分类规则。6.根据权利要求5所述的方法,其特征在于,所述第一优先级编码矩阵按照元素的排列顺序存储于具有存内计算功能的第一八管静态随机存取存储器中,其中所述第一优先级编码矩阵中的一个元素占用所述第一八管静态随机存取存储器的一个存储器单元。7.根据权利要求6所述的方法,其特征在于,所述根据公式(1)计算所述第一报告向量R中的第j个元素R
j
,包括:预充所述第一匹配向量中取值为1的元素所对应的所述第一八管静态随机存取存储器的读位线,以及激活所述第一匹配向量中取值为1的元素所对应的所述第一八管静态随机存取存储器的读字线,其中从所述第一八管静态随机存取存储器的第j个读取位线读取的值为所述报告向量R中的第j个元素R
j
的取值。8.根据权利要求6或7所述的方法,其特征在于,当有新分类规则加入所述第一分类规则集合时,所述方法还包括:根据所述新分类规则的优先级与所述第一分类规则集合中各个分类规则的优先级之间的高低关系,生成在所述第一优先级编码矩阵中所述新分类规则对应的行与列;将所述新分类规则对应的行与列写入所述第一八管静态随机存取存储器的所述新分类规则的行与列中,以更新所述第一八管静态随机存取存储器中存储的所述第一优先级编码矩阵。9.根据权利要求8所述的方法,其特征在于,在写入所述第一八管静态随机存取存储器的列时,所述新分类规则对应的列中取值为1的元素与取值为0的元素各占用一个写周期。10.根据权利要求8或9所述的方法,其特征在于,在写入所述第一八管静态随机存取存储器的列时,使用低电压驱动所述第一八管静态随机存取存储器的待写列的存储器单元,以及使用常规电压驱动所述第一八管静态随机存取存储器的非待写列的存储器单元。11.根据权利要求3所述的方法,其特征在于,所述分类规则全集包括m个分类规则子集,所述全局匹配向量GM为m维向量,所述全局匹配向量GM中的第s个元素GM
s
用于表示所述m个分类规则子集中的第s个分类规则子集是否包含与所述网络数据包匹配的分类规则,所述全局优先级编码矩阵GP为m阶方阵,所述全局编码矩阵GP中的第s行t列元素GP
st
用于表示所述m个分类规则子集中的第s个分类规则子集与第t个分类规则子集之间的优先级高低关系,所述全局报告向量GR为m维独热向量;其中,1≤s,t≤m,且s、t与m均为正整数。12.根据权利要求11所述的方法,其特征在于,所述第s行t列元素GP
st
为1时表示所述m个分类规则子集中的第s个分类规则子集的优
先级大于第t个分类规则子集的优先级,所述第s行t列元素GP
st
为0时表示所述m个分类规则子集中的第s个分类规则子集的优先级小于等于第t个分类规则子集的优先级,所述第s个元素GM
s
为1时表示所述m个分类规则子集中的第s个分类规则子集包含与所述网络数据包匹配的分类规则,所述第s个元素GM
s
为0时表示所述m个分类规则子集中的第s个分类规则子集不包含与所述网络数据包匹配的分类规则;其中,所述根据所述全局优先级编码矩阵与所述全局匹配向量,生成全局报告向量,包括:根据公式(2)计算所述全局报告向量GR中的第t个元素GR
t
,其中,运算符号∨表示逻辑或,运算符号∧表示逻辑与,运算符号上划线表示逻辑取反,符号GM
t
表示所述全局匹配向量GM中的第t个元素,所述第t个元素GR
t
为1时表示所述m个分类规则子集中的第t个分类规则子集对应的局部优先级编码矩阵为所述第一优先级编码矩阵。13.根据权利要求12所述的方法,其特征在于,所述全局优先级编码矩阵按照元素的排列顺序存储于具有存内计算功能的第二八管静态随机存取存储器中,其中所述全局优先级编码矩阵中的一个元素占用所述第二八管静态随机存取存储器的一个存储器单元。14.根据权利要求13所述的方法,其特征在于,所述根据公式(2)计算所述全局报告向量GR中的第t个元素GR
t
,包括:预充所述全局匹配向量中取值为1的元素所对应的所述第二八管静态随机存取存储器的读位线,以及激活所述全局匹配向量中取值为1的元素所对应的所述第二八管静态随机存取存储器的读字线,其中从所述第二八管静态随机存取存储器的第t个读取位线读取的值为所述全局报告向量GR中的第t个元素GR
t
的取值。15.根据权利要求13或14所述的方法,其特征在于,当有新分类规则子集加入所述分类规则全集时,所述方法还包括:根据所述新分类规则子集的优先级与所述m个分类规则子集中各个分类规则子集的优先级之间的高低关系,生成在所述全局优先级编码矩阵中所述新分类规则子集对应的行与列;将所述新分类规则子集对应的行与列写入所述第二八管静态随机存取存储器的所述新分类规则子集的行与列中,以更新所述第二八管静态随机存取存储器中存储的所述全局优先级编码矩阵。16.根据权利要求15所述的方法,其特征在于,在写入所述第二八管静态随机存取存储器的列时,所述新分类规则子集对应的列中取值为1的元素与取值为0的元素各占用一个写周期。17.根据权利要求15或16所述的方法,其特征在于,在写入所述第二八管静态随机存取存储器的列时,使用低电压驱动所述第二八管静态随机存取存储器的待写列的存储器单元,以及使用常规电压驱动所述第二八管静态随机存取存储器的非待写列的存储器单元。18....

【专利技术属性】
技术研发人员:刘雷波陈迪贝李兆石魏少军
申请(专利权)人:清华大学无锡应用技术研究院
类型:发明
国别省市:

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

1