软件定义网络多协议区分流表构建方法和系统与流程

文档序号:21542312发布日期:2020-07-17 17:45阅读:236来源:国知局
软件定义网络多协议区分流表构建方法和系统与流程

本发明涉及网络通信技术领域,尤其是涉及一种软件定义网络多协议区分流表构建方法和系统。



背景技术:

随着数据时代的到来,网络流量及应用呈现爆炸增长,根据使用需求的不同,各类网络协议被相继开发出来,这就要求网络转发设备在运行过程中需要同时支持多种协议且正确进行区分,而传统网络架构却难以适应多协议场景的应用需求。软件定义网络(software-definednetwork,sdn)作为一种新型网络架构,将网络控制面与数据面分离。控制面通过标准化接口管理配置数据面的流表,数据面则根据流表匹配结果对数据包进行转发处理,这种数据面流表的使用使得网络数据转发变得通用化,能够同时支持不同协议的运行,为多协议场景的应用提供了良好的平台。但经典的sdn协议openflow一直基于ip协议演进,其新协议部署往往需要新标准的制定及转发设备升级,极大限制了多协议场景下的适应能力。对此,华为2013年提出了协议无感知转发技术(protocolobliviousforwarding,pof),数据转发平面流表根据控制层下发的<偏移量,长度>二元组进行配置,使得流表匹配过程与具体协议完全解耦,对不同协议的适应化被动为主动,大大提高了网络对于多协议场景的适应能力。由于网络转发设备完成输入数据包到转发结果的映射是通过流表匹配实现的,因此流表匹配的高效与否直接影响着网络转发的性能,然而现有技术中仍缺乏简化匹配字段以高效区分不同协议的pof流表配置研究,存在着流表区分多协议时匹配字段冗长而导致的匹配效率低的技术问题。



技术实现要素:

有鉴于此,本发明的目的在于提供一种软件定义网络多协议区分流表构建方法和系统,以缓解现有技术中存在的流表区分多协议时匹配字段冗长而导致的匹配效率低的技术问题。

第一方面,本发明实施例提供了一种软件定义网络多协议区分流表构建方法,包括:基于多个目标网络协议的全部包头字段和每个包头字段在对应目标网络协议中的比特位置,构建所述多个目标网络协议所在的目标高维空间;所述多个目标网络协议为软件定义网络的目标流表中多个待区分网络协议,所述目标高维空间的一个维度对应于一个维度字段,所述维度字段为将所述全部包头字段进行分割和重组之后的字段;将所述多个目标网络协议分别映射到所述目标高维空间,得到每个目标网络协议的维度字段集合;基于所述每个目标网络协议的维度字段集合,确定能够区分所述多个目标网络协议的最小维度字段集合;将所述最小维度字段集合中的维度字段作为匹配字段,构建所述目标流表。

进一步地,基于多个目标网络协议的全部包头字段和所述每个包头字段在对应目标网络协议中的比特位置,构建所述多个目标网络协议所在的目标高维空间,包括:基于每个目标网络协议的包头字段,分别构建所述每个目标网络协议所在的初始高维空间;所述初始高维空间的一个维度对应一个包头字段;基于所述每个包头字段在对应目标网络协议中的比特位置,对所述初始高维空间的维度进行分割操作,得到第一维度集合;基于预设约束条件对所述第一维度集合中的维度进行重组操作,得到第二维度集合;基于所述第一维度集合和所述第二维度集合构建所述多个目标网络协议所在的目标高维空间。

进一步地,基于所述每个包头字段在对应目标网络协议中的比特位置,对所述初始高维空间的维度进行分割操作,得到第一维度集合,包括:通过如下算式对所述初始高维空间的维度进行分割操作,得到第一维度集合:其中,pi={pij|pij=[pijmin,pijmax],j=1,2,...,ni}为第i个目标网络协议的初始维度空间,ni为第i个目标网路协议的包头字段个数,pij=[pijmin,pijmax]为所述初始维度空间中的第j个维度,pijmin表示维度pij的起始比特位置,pijmax表示维度pij的结束比特位置,pit表示第i个网络协议的每个包头字段在对应目标网络协议中的结束比特位置的集合,sort(ctt)表示ctt中的元素按照比特大小从小到大排列,ct表示所述第一维度集合,cti表示所述第一维度集合中的第i个维度,len(ctt_s)表示集合ctt_s中的元素个数。

进一步地,基于预设约束条件对所述第一维度集合中的维度进行重组操作,得到第二维度集合,包括:通过如下表达式对所述第一维度集合中的维度以n个维度一组进行重组操作,得到多个第三维度集合:其中,1<n≤len(ct),且n为整数,len(ct)表示集合ct中的元素个数,为集合{1,2,…,len(ct)}的n元素子集,k=1,2,…,cbn为所述第三维度集合;

对所述多个第三维度集合的并集作为所述第二维度集合。

进一步地,所述预设约束条件包括:对均有成立;其中,1<j≤n,cb1为空集,cbn为cbn的一个元素,qi为组成cbn的第i个维度,为第i个目标网络协议pi在第j个维度pij上的映射取值。

进一步地,基于所述每个目标网络协议的维度字段集合,确定能够区分所述多个目标网络协议的最小维度字段集合,包括:将所述多个目标网络协议中的网络协议两两分组,得到所有网络协议对;基于所述每个目标网络协议的维度字段集合,确定能够区分每个网络协议对的维度字段,得到可行维度字段集合;通过算式:η=num可区分协议对/num维度比特数计算所述可行维度字段集合中,所有维度字段的区分效率;其中,η为区分效率,num可区分协议对为所述可行维度字段集合中的维度字段所能够区分的网络协议对的数量,num维度比特数为所述可行维度字段集合中的维度字段的比特数;基于所述区分效率,在所述可行维度字段集合中确定可区分所述多个目标网络协议的最小子集;对所述最小子集中的维度字段进行去重操作,得到所述最小维度字段集合。

第二方面,本发明实施例还提供了一种软件定义网络多协议区分流表构建系统,包括:维度重组模块,映射模块,维度提取模块和构建模块,其中,所述维度重组模块,用于基于多个目标网络协议的全部包头字段和每个包头字段在对应目标网络协议中的比特位置,构建所述多个目标网络协议所在的目标高维空间;所述多个目标网络协议为软件定义网络的目标流表中多个待区分网络协议,所述目标高维空间的一个维度对应于一个维度字段,所述维度字段为将所述全部包头字段进行分割和重组之后的字段;所述映射模块,用于将所述多个目标网络协议分别映射到所述目标高维空间,得到每个目标网络协议的维度字段集合;所述维度提取模块,用于基于所述每个目标网络协议的维度字段集合,确定能够区分所述多个目标网络协议的最小维度字段集合;所述构建模块,用于将所述最小维度字段集合中的维度字段作为匹配字段,构建所述目标流表。

进一步地,所述维度重组模块包括:第一构建单元,分割单元,重组单元和第二构建单元,其中,所述第一构建单元,用于基于每个目标网络协议的包头字段,分别构建所述每个目标网络协议所在的初始高维空间;所述初始高维空间的一个维度对应一个包头字段;所述分割单元,用于基于所述每个包头字段在对应目标网络协议中的比特位置,对所述初始高维空间的维度进行分割操作,得到第一维度集合;所述重组单元,用于基于预设约束条件对所述第一维度集合中的维度进行重组操作,得到第二维度集合;所述第二构建单元,用于基于所述第一维度集合和所述第二维度集合构建所述多个目标网络协议所在的目标高维空间。

第三方面,本发明实施例还提供了一种电子设备,包括存储器、处理器及存储在所述存储器上并可在所述处理器上运行的计算机程序,所述处理器执行所述计算机程序时实现上述第一方面所述的方法的步骤。

第四方面,本发明实施例还提供了一种具有处理器可执行的非易失的程序代码的计算机可读介质,所述程序代码使所述处理器执行上述第一方面所述方法。

本发明提供了一种软件定义网络多协议区分流表构建方法和系统,以目标网络协议的包头字段进行分割和重组之后的字段作为多维空间的维度,构建目标高维空间,然后将多个目标网络协议分别映射到目标高维空间,最后在目标高维空间中确定能够区分多个目标网络协议的最小维度字段集合,将最小维度字段集合中的维度字段作为匹配字段,构建目标流表。本发明通过一种高维空间构建方法,高效提取不同网络协议间的匹配字段,完成了流表对多协议的正确匹配区分,缓解了现有技术中存在的流表区分多协议时匹配字段冗长而导致的匹配效率低的技术问题,提高了匹配效率。

附图说明

为了更清楚地说明本发明具体实施方式或现有技术中的技术方案,下面将对具体实施方式或现有技术描述中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图是本发明的一些实施方式,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其他的附图。

图1为本发明实施例提供的一种软件定义网络多协议区分流表构建方法的流程图;

图2为本发明实施例提供的三个目标网络协议的示意图;

图3为本发明实施例提供的一种网络协议在第一维度集合的映射结果示意图;

图4为本发明实施例提供的一种网络协议在第二维度集合的映射结果示意图;

图5为本发明实施例提供的一种提取区分各目标网络协议的最小维度集合的过程的示意图;

图6为本发明实施例提供的一种软件定义网络多协议区分流表构建系统的示意图;

图7是根据本发明实施例提供的一种维度重组模块的示意图;

图8是根据本发明实施例提供的一种维度提取模块的示意图。

具体实施方式

下面将结合附图对本发明的技术方案进行清楚、完整地描述,显然,所描述的实施例是本发明一部分实施例,而不是全部的实施例。基于本发明中的实施例,本领域普通技术人员在没有做出创造性劳动前提下所获得的所有其他实施例,都属于本发明保护的范围。

实施例一:

在多协议场景中,各协议之间的区别在于其包头匹配域字段的取值存在差异。为了提取这种存在差异的字段用以准确区分不同协议,本发明实施例提供了一种基于高维空间构建的软件定义网络多协议区分流表构建方法。

图1是根据本发明实施例提供的一种软件定义网络多协议区分流表构建方法的流程图。如图1所示,该方法具体包括如下步骤:

步骤s102,基于多个目标网络协议的全部包头字段和每个包头字段在对应目标网络协议中的比特位置,构建多个目标网络协议所在的目标高维空间;多个目标网络协议为软件定义网络的目标流表中多个待区分网络协议,目标高维空间的一个维度对应于一个维度字段,维度字段为将全部包头字段进行分割和重组之后的字段。

步骤s104,将多个目标网络协议分别映射到目标高维空间,得到每个目标网络协议的维度字段集合。

步骤s106,基于每个目标网络协议的维度字段集合,确定能够区分多个目标网络协议的最小维度字段集合。

步骤s108,将最小维度字段集合中的维度字段作为匹配字段,构建目标流表。

本发明提供了一种软件定义网络多协议区分流表构建方法,以目标网络协议的包头字段进行分割和重组之后的字段作为多维空间的维度,构建目标高维空间,然后将多个目标网络协议分别映射到目标高维空间,最后在目标高维空间中确定能够区分多个目标网络协议的最小维度字段集合,将最小维度字段集合中的维度字段作为匹配字段,构建目标流表。本发明通过一种高维空间构建方法,高效提取不同网络协议间的匹配字段,完成了流表对多协议的正确匹配区分,缓解了现有技术中存在的流表区分多协议时匹配字段冗长而导致的匹配效率低的技术问题,提高了匹配效率。

可选地,步骤s102包括如下步骤:

步骤s1021,基于每个目标网络协议的包头字段,分别构建每个目标网络协议所在的初始高维空间;初始高维空间的一个维度对应一个包头字段。

步骤s1022,基于每个包头字段在对应目标网络协议中的比特位置,对初始高维空间的维度进行分割操作,得到第一维度集合。

步骤s1023,基于预设约束条件对第一维度集合中的维度进行重组操作,得到第二维度集合。

步骤s1024,基于第一维度集合和第二维度集合构建多个目标网络协议所在的目标高维空间。

例如,在本发明实施例中,采用集合的方式描述不同网络协议所在的初始高维空间,定义第i个目标网络协议的初始高维空间为:pi={pij|pij=[pijmin,pijmax],j=1,2,...,ni},其中,ni为第i个目标网路协议的包头字段个数,pij=[pijmin,pijmax]为初始维度空间中的第j个维度,pijmin表示维度pij的起始比特位置,pijmax表示维度pij的结束比特位置。

在本发明实施例中,目标网络协议的在初始高维空间上的映射,是由初始高维空间的维度集合中各元素规定的比特切割区间进行包头字段的取值映射而成的,因此为了将各目标网络协议统一映射到同一目标高维空间下,本发明实施例将各目标网络协议的初始高维空间的维度的比特切割区间按照最小区间颗粒汇总,从而形成重组的维度集合。

具体的,在本发明实施例中,通过如下算式对初始高维空间的维度进行分割操作,得到第一维度集合:

其中,pit表示第i个网络协议的每个包头字段在对应目标网络协议中的结束比特位置的集合,sort(ctt)表示ctt中的元素按照比特大小从小到大排列,ct表示第一维度集合,cti表示第一维度集合中的第i个维度,len(ctt_s)表示集合ctt_s中的元素个数,m为目标网络协议的种类数量。

在本发明实施例中,为了考虑其他维度映射值对维度提取时的影响,例如,两个维度原本属于某协议中的同一个包头字段,或两个维度之间有约束关系,还提供了对第一维度集合中的维度进行重组的方法,该方法的核心是将经过重组的第一维度集合中有取值约束关系的维度进行组合。

具体的,通过如下表达式对第一维度集合中的维度以n个维度一组进行重组操作,得到多个第三维度集合:

其中,1<n≤len(ct),且n为整数,len(ct)表示集合ct中的元素个数,为集合{1,2,…,len(ct)}的n元素子集,k=1,2,…,cbn为第三维度集合;

对多个第三维度集合的并集作为第二维度集合。具体的,第二维度集合cb=cb2∪cb3∪…∪cblen(ct)

可选地,预设约束条件包括:

均有成立;

其中,1<j≤n,cb1为空集,cbn为cbn的一个元素,qi为组成cbn的第i个维度,为第i个目标网络协议pi在第j个维度pij上的映射取值。

最后,基于第一维度集合和第二维度集合构建多个目标网络协议所在的目标高维空间。具体的,目标高维空间c=ct∪cb。

可选地,步骤s106包括如下步骤:

步骤s1061,将多个目标网络协议中的网络协议两两分组,得到所有网络协议对。

步骤s1062,基于每个目标网络协议的维度字段集合,确定能够区分每个网络协议对的维度字段,得到可行维度字段集合。

步骤s1063,通过算式:η=num可区分协议对/num维度比特数计算可行维度字段集合中,所有维度字段的区分效率;其中,η为区分效率,num可区分协议对为可行维度字段集合中的维度字段所能够区分的网络协议对的数量,num维度比特数为可行维度字段集合中的维度字段的比特数。

步骤s1064,基于区分效率,在可行维度字段集合中确定可区分多个目标网络协议的最小子集。

步骤s1065,对最小子集中的维度字段进行去重操作,得到最小维度字段集合。

例如,首先在重组后的目标高维空间c中搜索能够区分多个目标网络协议的可行维度集合(即上述可行维度字段集合),可行维度集合中的维度只需要满足某两个目标网络协议在该维度上的映射取值没有交集,即可用该维度区分出这两个网络协议。我们分别对各两两目标网络协议对搜索所有可行的能区分这两个目标网络协议的维度,形成可行维度集合。然后从可行维度集合中,寻找能够区分所有目标网络协议的最小维度集合(即上述最小维度字段集合)。

可选地,定义可行维度集合中的维度(即上述维度字段)的单位比特区分协议效率(即上述区分效率)为:η=num可区分协议对/num维度比特数,则寻找最小维度集合的方法为:首先计算所有可行维度集合中的维度的η值,提取其最大η值对应的维度,然后将该维度及通过该维度可以区分的两两目标网络协议对去除,将剩余的维度的集合作为新的可行维度集合,重复以上步骤,直至可成功区分出所有目标网络协议对,最后将提取出的维度的集合进行元素去重,即可提取出最终的可成功区分所有目标网络协议的最小维度集合,即最简的可区分协议字段。

实施例二:

下面举例说明本发明实施例提供的一种软件定义网络多协议区分流表构建方法的具体实施方式。

例如,目标流表中待区分网络协议为如图2所示的三个目标网络协议,分别为:协议1,协议2和协议3。则三个目标网络协议在初始高维空间的维度集合可以表示为:p1={[1,3],[4,7],[8,10]},p2={[1,4],[5,9]},p1={[1,3],[4,6],[7,10]}。

根据上述实施例一中步骤s102的方法的步骤,可以计算得到三个目标网络协议的第一维度集合为ct={[1,3],[4,4],[5,6],[7,7],[8,9],[10,10]}。为了表示方便,分别以符号a、b、c、d、e、f代表维度[1,3]、[4,4]、[5,6]、[7,7]、[8,9]、[10,10],各个目标网络协议在由第一维度集合构成的维度空间所形成的映射结果如图3所示。进一步计算可以得到三个目标网络协议的第二维度集合为cb={{[4,6]}},各个目标网络协议在由第二维度集合构成的维度空间所形成的映射结果如图4所示。最终得到的目标高维空间为c=ct∪cb={[1,3],[4,4],[5,6],[7,7],[8,9],[10,10],{[4,6]}}。

根据上述实施例一中步骤s106的方法,得到三个目标网络协议的可行维度集合为:

区分协议对1&2:{c,bc};

区分协议对1&3:{bc};

区分协议对2&3:{e}。

根据可行维度集合,提取区分各目标网络协议的最小维度集合的过程如图5所示,最终得到的最小维度集合为{b,c,e},即字段3th~6thbit及字段8th~9thbit。

最后根据最小维度集合,针对pof协议下实际网络转发设备的目标流表的配置,可以设置如表1所示的流表进行协议区分:

表1;指针fields=<3,3>+<7,2>

实施例三:

图6是根据本发明实施例提供的一种软件定义网络多协议区分流表构建系统的示意图。如图6所示,该系统截图包括:维度重组模块10,映射模块20,维度提取模块30和构建模块40。

具体的,维度重组模块10,用于基于多个目标网络协议的全部包头字段和每个包头字段在对应目标网络协议中的比特位置,构建多个目标网络协议所在的目标高维空间;多个目标网络协议为软件定义网络的目标流表中多个待区分网络协议,目标高维空间的一个维度对应于一个维度字段,维度字段为将全部包头字段进行分割和重组之后的字段。

映射模块20,用于将多个目标网络协议分别映射到目标高维空间,得到每个目标网络协议的维度字段集合。

维度提取模块30,用于基于每个目标网络协议的维度字段集合,确定能够区分多个目标网络协议的最小维度字段集合。

构建模块40,用于将最小维度字段集合中的维度字段作为匹配字段,构建目标流表。

本发明提供了一种软件定义网络多协议区分流表构建系统,以目标网络协议的包头字段进行分割和重组之后的字段作为多维空间的维度,构建目标高维空间,然后将多个目标网络协议分别映射到目标高维空间,最后在目标高维空间中确定能够区分多个目标网络协议的最小维度字段集合,将最小维度字段集合中的维度字段作为匹配字段,构建目标流表。本发明通过一种高维空间构建系统,高效提取不同网络协议间的匹配字段,完成了流表对多协议的正确匹配区分,缓解了现有技术中存在的流表区分多协议时匹配字段冗长而导致的匹配效率低的技术问题,提高了匹配效率。

可选地,图7是根据本发明实施例提供的一种维度重组模块的示意图,如图7所示,维度重组模块10包括:第一构建单元11,分割单元12,重组单元13和第二构建单元14。

具体的,第一构建单元11,用于基于每个目标网络协议的包头字段,分别构建每个目标网络协议所在的初始高维空间;初始高维空间的一个维度对应一个包头字段。

分割单元12,用于基于每个包头字段在对应目标网络协议中的比特位置,对初始高维空间的维度进行分割操作,得到第一维度集合。

重组单元13,用于基于预设约束条件对第一维度集合中的维度进行重组操作,得到第二维度集合。

第二构建单元14,用于基于第一维度集合和第二维度集合构建多个目标网络协议所在的目标高维空间。

可选地,分割单元12还用于:通过如下算式对初始高维空间的维度进行分割操作,得到第一维度集合:

其中,pi={pij|pij=[pijmin,pijmax],j=1,2,...,ni}为第i个目标网络协议的初始维度空间,ni为第i个目标网路协议的包头字段个数,pij=[pijmin,pijmax]为初始维度空间中的第j个维度,pijmin表示维度pij的起始比特位置,pijmax表示维度pij的结束比特位置,pit表示第i个网络协议的每个包头字段在对应目标网络协议中的结束比特位置的集合,sort(ctt)表示ctt中的元素按照比特大小从小到大排列,ct表示第一维度集合,cti表示第一维度集合中的第i个维度,len(ctt_s)表示集合ctt_s中的元素个数。

可选地,重组单元13还用于:通过如下表达式对第一维度集合中的维度以n个维度一组进行重组操作,得到多个第三维度集合:

其中,1<n≤len(ct),且n为整数,len(ct)表示集合ct中的元素个数,为集合{1,2,…,len(ct)}的n元素子集,k=1,2,…,cbn为第三维度集合;对多个第三维度集合的并集作为第二维度集合。

可选地,预设约束条件包括:

均有成立;

其中,1<j≤n,cb1为空集,cbn为cbn的一个元素,qi为组成cbn的第i个维度,为第i个目标网络协议pi在第j个维度pij上的映射取值。

可选地,图8是根据本发明实施例提供的一种维度提取模块的示意图。如图8所示,维度提取模块30包括:分组单元31,第一确定单元32,计算单元33,第二确定单元34和提取单元35。

具体的,分组单元31,用于将多个目标网络协议中的网络协议两两分组,得到所有网络协议对。

第一确定单元32,用于基于每个目标网络协议的维度字段集合,确定能够区分每个网络协议对的维度字段,得到可行维度字段集合。

计算单元33,用于通过算式:η=num可区分协议对/num维度比特数计算可行维度字段集合中,所有维度字段的区分效率;其中,η为区分效率,num可区分协议对为可行维度字段集合中的维度字段所能够区分的网络协议对的数量,num维度比特数为可行维度字段集合中的维度字段的比特数。

第二确定单元34,用于基于区分效率,在可行维度字段集合中确定可区分多个目标网络协议的最小子集。

提取单元35,用于对最小子集中的维度字段进行去重操作,得到最小维度字段集合。

本发明实施例还提供了一种电子设备,包括存储器、处理器及存储在存储器上并可在处理器上运行的计算机程序,处理器执行计算机程序时实现上述实施例一或实施例二中的方法的步骤。

本发明实施例还提供了一种具有处理器可执行的非易失的程序代码的计算机可读介质,程序代码使处理器执行上述实施例一或实施例二中的方法。

最后应说明的是:以上各实施例仅用以说明本发明的技术方案,而非对其限制;尽管参照前述各实施例对本发明进行了详细的说明,本领域的普通技术人员应当理解:其依然可以对前述各实施例所记载的技术方案进行修改,或者对其中部分或者全部技术特征进行等同替换;而这些修改或者替换,并不使相应技术方案的本质脱离本发明各实施例技术方案的范围。

当前第1页1 2 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1