掌桥专利:专业的专利平台
掌桥专利
首页

一种基于流属性的数据包路径编码的生成方法及系统

文献发布时间:2023-06-19 09:26:02


一种基于流属性的数据包路径编码的生成方法及系统

技术领域

本发明属于网络技术领域,涉及一种基于流属性的数据包路径编码的生成方法及系统。

背景技术

在计算机网络中,交换机和路由器等网络设备根据数据包头的目的地址进行查表转发。然而,近年来随着网络功能虚拟化等新业务的出现,网络转发策略变得越来越灵活,传统基于目的地址的转发模式难以适应这些需求。学术界和业界提出了段路由等新型基于标签的转发方法,将流量的转发路径编码为一个标签,使得网络设备可根据标签沿指定路径转发,以完成更加复杂、细粒度的转发行为控制。然而,现有的标签编码方法经常导致过长的标签。由于编码长度过长会占用网络带宽,因此过长的标签会造成过大的网络负载,带来网络时延。

发明内容

本发明的目的在于克服上述现有技术的缺点,提供一种基于流属性的数据包路径编码的生成方法及系统,能够获得一个适用于对网络路径及集中所有路径进行编码的最短公共超序列,缩短了编码的长度。

为达到上述目的,本发明采用以下技术方案予以实现:

一种基于流属性的数据包路径编码的生成方法,包括以下步骤;

步骤一,获取数据包在网络中的路径序列,构建数据包路径序列集;

步骤二,将网络中间件作为数据包路径序列集中的流属性,获取数据包路径序列集中每个流属性的前缀流属性;前缀流属性为流属性在其所处位置顺序前出现的流属性集合;

步骤三,将所有前缀流属性采用高依赖度优先和预前缀原则,求取数据包路径序列集的最短公共超序列;最短公共超序列中包括其路径序列对应的流属性;

步骤四,在数据包的包头空间中添加与最短公共超序列长度相同的编码空间;

步骤五,将编码空间中每一位与最短公共超序列中每个流属性对应,形成基于流属性的数据包路径编码;

步骤六,根据数据包路径编码生成转发规则表,并将转发规则表中的转发规则缓存至核心交换机和边缘交换机处;

步骤七,将数据包路径编码写进数据包中。

优选的,步骤六中,当步骤三获得的最短公共超序列长度为N时,构建容量为N条的转发规则表,N条转发规则对应最短公共超序列中N个流属性,对于最短公共超序列S={s

优选的,步骤一中,探测包获取数据包在网络中所有可能路径,将所有路径合成为一个路径序列集,并存储每种路径对应数据包的源地址和目的地址。

进一步,步骤一中,路径集中的路径为数据包经过网络中间件的有序序列,当网络中包含的中间件为M={M

优选的,网络中间件包括交换机、路由器、IDS和防火墙。

优选的,步骤三中,构造空序列S,若存在前缀流属性为空的流属性A,优先将流属性A添加至空序列S,从前缀集中删除流属性A;否则,以每个流属性前缀中的流属性作为其依赖流属性,遵循高依赖度优先原则和预前缀原则找寻流属性,每次选取在所有流属性的前缀集中出现次数最多的流属性为高依赖度流属性;对于在前缀集中次数最多的流属性B,将流属性B的前缀流属性添加至序列S,从其它流属性的前缀中删除流属性B的前缀流属性;将流属性添加进最短公共超序列并从前缀表中删除流属性后,重复上述过程,直至前缀集为空,序列S为前缀集对应路径集中路径序列的最短公共超序列S={s

进一步,步骤三中,对数据包优先经过的网络中间件,赋予相较于其他网络中间件的较高权重,当多个中间件对应的流属性前缀为空,或多个中间件对应的流属性均为前缀集中出现次数最多的前缀时,优先选取权重较高的流属性添加至最短公共超序列S中。

优选的,步骤五中,在长度为N的编码中,N位依次与最短公共超序列中N个流属性对应,若数据包路径为流属性序列{a

一种基于流属性的数据包路径编码的生成系统,包括用于获取数据包在网络中的路径序列,构建数据包路径序列的数据包路径序列构建模块;用于获取数据包路径序列集中每个流属性的前缀流属性的前缀流属性获取模块;用于求取数据包路径序列集的最短公共超序列的最短公共超序列求取模块;用于在数据包的包头空间中添加与最短公共超序列长度相同的编码空间的编码空间生成模块;用于将编码空间中每一位与最短公共超序列中每个流属性对应,形成基于流属性的数据包路径编码的数据包路径编码生成模块;用于根据数据包路径编码生成转发规则表,并将转发规则表中的转发规则缓存至核心交换机和边缘交换机处的转发规则表生成及存储模块;用于将数据包路径编码写进数据包中的数据包路径编码存储模块。

与现有技术相比,本发明具有以下有益效果:

本发明通过构建数据包路径序列集,获取网络中全部数据包可能经过的路径序列,同时获取了每一个路径序列与数据包源地址和目的地址的映射关系;然后通过数据包路径序列集,后去前缀流属性;通过前缀流属性采用高依赖度优先和预前缀原则求取数据包路径序列集的最短公共超序列,获得一个适用于对网络路径及集中所有路径进行编码的最短公共超序列,缩短了编码的长度,减小了网络带宽的占用,降低了出现网络时延或丢包的概率。

在数据包头中添加与最短公共超序列长度相同的编码空间,用于写入流属性编码;对网络路径序列中每一条路径,构建长度与最短公共超序列相同的基于流属性的数据包路径编码,通过流属性的思想复用转发规则,进而压缩了转发表;构建容量大小与最短公共超序列相同的转发规则表,将转发规则缓存至交换机处,并将流属性编码于边缘交换机写进数据包,从而实现数据包利用本发明提出的流属性编码和转发策略进行转发。利用流属性编码和更适用于网络路径的最短公共超序列求解方法,在编码长度和转发规则数目经常呈现反作用关系的情况下,同时在两方面取得了优化,通过对编码长度和转发规则数目的减小,可以进一步降低规则更新频率,为交换机减小存储开销,在TCAM资源较为稀缺的情况下,减小了网络最大转发能力受硬件条件的制约的程度。

附图说明

图1为本发明的工作流程框图;

图2为本发明的最短公共超序列求取示意图。

具体实施方式

下面结合附图对本发明做进一步详细描述:

本发明所述基于流属性的数据包路径编码的生成方法,包括以下步骤:

步骤一,探测包获取数据包在网络中所有可能路径序列,将所有路径序列合成为一个路径序列集,并存储每种路径序列对应数据包的源地址和目的地址。

路径序列集中的路径序列为数据包经过网络中间件的有序序列,当网络中包含的中间件为M={M

步骤二,将网络中间件作为数据包路径序列集中的流属性,一个流属性的前缀为步骤一获得的路径集内每一条路径中,在该流属性所处位置顺序前出现的流属性集合,将数据包路径序列集中所有前缀流属性合成为前缀流属性表。

网络中间件包括交换机、路由器、IDS和防火墙。

步骤三,前缀流属性表中的所有前缀流属性采用高依赖度优先和预前缀原则,求取数据包路径序列集的最短公共超序列S={s

构造空序列S,若存在前缀流属性为空的流属性A,优先将流属性A添加至空序列S,从前缀集中删除流属性A;否则,以每个流属性前缀中的流属性作为其依赖流属性,遵循高依赖度优先(HDDF)原则和预前缀(PA)原则找寻流属性,每次选取在所有流属性的前缀集中出现次数最多的流属性为高依赖度流属性,对于在前缀集中次数最多的流属性B,将流属性B的前缀流属性添加至序列S,从其它流属性的前缀中删除流属性B的前缀流属性;将流属性添加进最短公共超序列并从前缀表中删除流属性后,重复上述两个步骤,直至前缀集为空,序列S为前缀集对应路径集中路径序列的最短公共超序列。

对多数数据包优先经过的网络中间件,赋予相较于其他网络中间件的较高权重,当多个中间件对应的流属性前缀为空,或多个中间件对应的流属性均为前缀集中出现次数最多的前缀时,优先选取权重较高的流属性添加至最短公共超序列S中。

步骤四,当最短公共超序列长度为N时,在数据包头中添加长度为N位的编码空间。

步骤五,构建长度为N的基于流属性的数据包路径编码。

在长度为N的编码中,N位依次与最短公共超序列S中N个流属性对应,若数据包路径为流属性序列{a

步骤六,根据数据包路径编码生成转发规则表,具体为:

当步骤三获得的最短公共超序列长度为N时,构建容量为N条的转发规则表。N条转发规则对应最短公共超序列中N个流属性,对于最短公共超序列S={s

步骤七,将转发规则表中的转发规则缓存至核心交换机和边缘交换机处。

步骤八,将数据包路径编码通过边缘交换机写进数据包中。

本发明所述的基于流属性的数据包路径编码的生成系统,包括用于获取数据包在网络中的路径序列,构建数据包路径序列的数据包路径序列构建模块;用于获取数据包路径序列集中每个流属性的前缀流属性的前缀流属性获取模块;用于求取数据包路径序列集的最短公共超序列的最短公共超序列求取模块;用于在数据包的包头空间中添加与最短公共超序列长度相同的编码空间的编码空间生成模块;用于将编码空间中每一位与最短公共超序列中每个流属性对应,形成基于流属性的数据包路径编码的数据包路径编码生成模块;用于根据数据包路径编码生成转发规则表,并将转发规则表中的转发规则缓存至核心交换机和边缘交换机处的转发规则表生成及存储模块;用于将数据包路径编码写进数据包中的数据包路径编码存储模块。

实际应用中,如图1所示,包括以下步骤:

步骤1、构建数据包路径序列集。本发明借助应用程序ATPG,VeriDP向指定网络发送探测包,这些探测包对网络中所有可能的转发路径进行探索并记录转发成功的路径对应的数据包的完整信息。通过对这些数据包信息的分析,可以得到源地址、目的地址、起点交换机和这些路径之间的映射关系,进而将该映射关系作为流表写入边缘交换机。边缘交换机解析数据包头中的IP地址后,会将相应的编码作为标签添加到数据包头中。

步骤2、以获得的数据包路径序列集对网络中流属性创建前缀流属性集,合成为前缀流属性表。为网络路径集寻找最短公共超序列,其中的关键是以各路径中流属性的前后关系作为依赖关系连成一张有向图后,打破序列图中的循环依赖关系。如果图中的依赖关系都是单向依赖,就可以将路径序列对应的拓扑图拟合成一条直线序列。本发明将路径集中,在每一个流属性a之前出现过的其他流属性整理成流属性a的前缀,进而符合这种要求的前缀整理为流属性a的前缀集,再将所有流属性的前缀集拟合为一张前缀表。那么,在这张表中出现次最多的流属性,就是相互依赖性更大的流属性,也就是在循环中应优先考虑添加进最短公共超序列的流属性。

步骤3、以获得的前缀流属性表对数据包路径序列集求取最短公共超序列,本发明将流属性前缀集中的流属性视为该流属性的依赖关系,并将流属性出现在其他流属性的前缀表中的次数视为依赖度。进而,本发明寻找最短公共超序列时,需要反复寻找到当前依赖度最高的流属性。由于高依赖度关系的流属性出现在路径集中大多数流属性的前面,因此本发明首先将此类流属性优先考虑添加到最短公共超序列,在构造公共最短公共超序列时,本发明遵循此类高依赖度优先原则。

然而,仅考虑直接依赖性,会导致构造最短公共超序列时忽视间接依赖性的问题,进而在构造最短公共超序列时造成不必要的冗余。在网络路径中一些流属性可能间接依赖于其他流属性。例如,流属性B出现在流属性C和流属性D的前缀集中,而流属性A出现在流属性B的前缀集中,那么流属性C,流属性D对流属性B有直接依赖性,而它们对流属性A具有间接依赖性。考虑到直接和间接依赖性,应将流属性A优先于流属性B优先添加到最短公共超序列中。因此,除了高依赖度优先原则之外,本发明还遵循预前缀优先原则。在将具有最高依赖度的流属性添加到公共最短公共超序列之前,将序列中该流属性前缀集中的所有流属性优先添加到最短公共超序列。

图2展现了一个基于高依赖度优先原则和预前缀优先原则求取路径集最短公共超序列的例子,其中主要包含3个主要步骤:

1)向最短公共超序列中添加无前缀流属性:此步骤具有高优先级。如果无前缀流属性出现在前缀表中,例如图2(e)中的流属性B和图2(g)中的流属性C,它们的前缀流属性为空,那么就意味着无需在添加此流属性之前将任何其他流属性添加到最短公共超序列。因此,一旦无前缀流属性出现在前缀表中,本文将立即将其添加到最短公共超序列中。

2)查找基于HDDF和PA的流属性:如果表中没有无前缀的流属性,本文将基于HDDF和PA查找流属性。首先,本文在前缀表中查找最频繁出现的流属性。在图2(c)中,B在前缀表中出现3次,这是4个流属性中出现次数最多的流属性。因此,本文基于PA将B的前缀列表中的流属性添加到最短公共超序列中。在图2(c)中,B的前缀列表中有一个流属性A,因此本文通过HDDF找到了B,并通过PA找到了A,本文在这一步中将A添加到最短公共超序列中。

3)从前缀表中删除添加的流属性:将流属性添加到最短公共超序列中时,需要删除前缀表中的流属性。如果仅添加了无前缀流属性,则需要删除该流属性的行以及表中的所有流属性,如图2(f)和图2(g)所示。如果仅添加HDDF选择的流属性,则只需要表中的所有流属性,如图2(d)和图2(e)所示。

重复上述三个步骤直至前缀表为空,则得到了路径集的公共最短公共超序列,它的长度是所有公共最短公共超序列中较短的。

步骤4、当获得的最短公共超序列长度为N时,在数据包头中添加长度为N位的编码空间。由于初始的数据包在包头空间中并没有本发明中基于流属性编码的匹配域,因此需要在对网络路径求解最短公共超序列后,在包头空间中加入与最短公共超序列长度相同的编码空间,以便于边缘交换机向数据包头添加构造后的流属性编码。

步骤5、以得到的每一个网络数据包路径序列,构建与最短公共超序列长度相同的基于流属性的数据包路径编码。在长度为N的编码中,N位依次与最短公共超序列中N个流属性对应,若数据包路径为流属性序列{a

步骤6、当获得的最短公共超序列长度为N时,构建容量为N条的转发规则表。与本发明中流属性编码对应的转发规则的构造方式如下。转发规则分为有序规则和无序规则,在无序规则中,只关心编码对应的数据包或流要经过哪些中间件,以及它们包含哪些流属性,而不关心它们经过这些中间件的顺序或流属性的顺序;反之,在有序规则中,需要通过转发规则解析出编码中体现的流经过中间件以及流属性的顺序。这两种规则的具体构造方式为:1)无序规则:获得最短公共超序列之后,本发明获得了与最短公共超序列长度相同的路径编码,并仅需要的为编码的每一位准备一条转发规则。由于在本发明的流属性编码中,编码的每一位对应着网络中的一个流属性,而所有带有某个流属性的流或数据包,它们的编码中的对应这个流属性的位就会被设置为1,因此,无序规则表的构造方式为,假设最短公共超序列中的第i位对应于流属性A,则流属性A对应的转发规则为:第i位设置为1,其他位为[*]。表1显示了无序规则表的示例。

表1

然而,对于编码为[11100]的包,表1中的“1****”,“*1***”和“**1**”都可以成功匹配。这导致交换机在确定输出端口时无法确定。因此,需要在构造规则的过程中通过其他操作以确保顺序,即需要为编码设计有序规则。2)有序规则:为能指定数据包在转发时通过中间件的顺序或者执行各个流属性的顺序,在数据包每一次匹配转发规则成功后,本发明需要增加对编码修改的操作:将刚刚匹配成功的位由1更改为0,同时将转发规则中1之前的位由[*]更改为0。

在该规则表中,表2中S1的编码[11100]只能匹配“1****”。在此次成功匹配之后,将此代码的第一位更改为0。随后编码变为[01100],该代码只能匹配“01***”并将被发送至B。同理,再将刚刚匹配到的第二位从1改为0,使编码变为[00100]。在这种情况下,编码只能匹配到规则表中的[001**]并将包转发到C。这样就完成了基于顺序序列的转发并使每一个编码严格按照从左到右的顺序发送到每一个数字“1”对应的中间件。

表2

步骤7、将转发规则表中的转发规则缓存至交换机处。通过下发流表的方式,将本发明构造的转发规则缓存至交换机。由于本发明为基于流属性的编码,而其转发规则也同样为基于流属性的转发规则,每一条转发规则都仅适用于网络中的一个流属性或一个中间件,因此,将转发规则缓存至交换机时,只需要考虑将其交换机的相邻交换机对应的转发规则存入该交换机即可,这进一步压缩了转发表的大小。

步骤8、将流属性编码于边缘交换机写进数据包。对于已经得到的网络中所有路径与数据包源地址、目的地址、起点交换机的映射关系,构建规则表并下发至相应边缘交换机,当数据包被发送至这些边缘交换机时,即可通过源地址、目的地址匹配相应的规则表并将该规则中的流属性编码写进交换机,从而完成基于本发明的流数性编码的转发。

以上内容仅为说明本发明的技术思想,不能以此限定本发明的保护范围,凡是按照本发明提出的技术思想,在技术方案基础上所做的任何改动,均落入本发明权利要求书的保护范围之内。

相关技术
  • 一种基于流属性的数据包路径编码的生成方法及系统
  • 一种基于流属性的数据包路径编码的生成方法及系统
技术分类

06120112162786