当前位置: 首页 > 专利查询>清华大学专利>正文

面向网络功能虚拟化的高性能设计方法技术

技术编号:20013589 阅读:28 留言:0更新日期:2019-01-05 22:07
面向网络功能虚拟化的高性能设计架构是一个高效的网络功能虚拟化框架通过聚合服务链中网络功能对数据流的操作来消除网络功能中的处理冗余,以实现高效的网络数据通路。本设计架构在每个网络功能中建立本地动作匹配表来记录对数据流中数据包以及网络功能状态的操作行为,并建立全局动作匹配表来聚合所有本地动作匹配表,同时使用事件触发表和新的数据包处理模式来保证网络功能在运行时的逻辑正确性,以及通过网络功能函数的并行化来提高系统的性能。本发明专利技术在保证网络功能逻辑正确性的情况下,显著优化了网络功能服务链的处理延时以及吞吐率。

High Performance Design Method for Network Function Virtualization

The high performance design architecture for network function virtualization is an efficient network function virtualization framework, which can eliminate the redundancy of processing in network function by aggregating the operation of network function on data flow in service chain to realize efficient network data path. The design framework establishes local action matching tables in each network function to record the operation behavior of data packets and network function status in data stream, and establishes global action matching tables to aggregate all local action matching tables. At the same time, event triggering tables and new data packet processing modes are used to ensure the logical correctness of network functions at run time, as well as through network function letters. Parallelization of numbers to improve system performance. Under the condition of guaranteeing the correctness of network function logic, the processing delay and throughput of network function service chain are significantly optimized.

【技术实现步骤摘要】
面向网络功能虚拟化的高性能设计方法
本专利技术属于网络
,涉及网络功能虚拟化(NFV)的性能优化,特别涉及一种面向网络功能虚拟化的高性能设计方法。
技术介绍
网络功能虚拟化(NetworkFunctionVirtualization,NFV)是指在软件中实现网络功能(NF,如入侵检测,监控和负载平衡等),以实现更具弹性的管理和更低的网络系统成本。网络功能通常连接在一起形成一个串行的服务链,而NFV运行商通过服务链引导数据包进行传递。然而,网络功能的软件化实现也带来了较大的性能问题。现有研究表明,当数据包通过含有多个网络功能的长链时,包处理性能会严重下降。NFV的性能问题促使研究人员提出了一些解决方案,以提升服务链处理数据包的性能。现有研究主要从两个角度出发:(1)一类工作专注于直接加速NFV的数据平面路径,包括使用特殊硬件(例如FPGA和GPU)来加速单个NF的性能,以及引入NF之间数据包传输的共享内存机制(例如NetVM和ClickOS)来加速服务链的性能。(2)另一类研究提议并行执行NF以加速服务链(例如,NFP和Parabox)。这类研究的分析表明,服务链内部的某些NF之间并没有依赖关系,因此可以并行执行。我们将NF并行化执行称为拓宽数据路径,因为它试图在原有数据路径上同时执行网络功能。然而,以上两种服务链性能优化方法有一个共同的假设:网络功能是模块化的,即一个网络功能的处理与下一个网络功能处理之间的仍然是互相隔离的。因此,服务链的处理性能存在一个上限。即使使用了上述两类优化方法,性能下降也是不可避免的。如果我们不打破NF处理的边界,例如合并作用于数据包的多次修改,则可能会有一些处理冗余是现有两类优化无法消除的。加速这些操作不能完全消除冗余;而并行化它们则未必可行,因为它们可能不是独立的(例如,如果它们会对数据包的相同域进行写入操作)。这种冗余操作可能会随着链的长度而增加,因而当服务链足够长时,处理性能会显著下降。
技术实现思路
为了克服上述现有技术的缺点,本专利技术的目的在于提供一种面向网络功能虚拟化的高性能设计方法,搭建一个在单机实现的网络功能(NF)链,通过缓存每条数据流对应的NF操作,来提高NF链的处理性能,降低NF链上数据包的处理延迟的包处理系统。为了实现上述目的,本专利技术采用的技术方案是:一种面向网络功能虚拟化的高性能设计方法,其特征在于,对每条数据流的第一个数据包和之后的数据包进行不同的处理,其中:对数据流的第一个数据包处理步骤如下:步骤(11),数据包经过包分类器,计算数据包对应数据流的FID,在GMAT中寻找对应数据流的处理动作缓存;步骤(12),如果在GMAT没有找到对应数据流的处理动作缓存,则新建一个对于该数据流的空缓存并分配一个新的FID,然后将数据包发送给NF链进行进行处理并记录处理操作;步骤(13),NF链中的每个NF正常处理数据包,将处理动作按FID编号缓存到LMAT中,然后将数据包传递给下一个NF,所述处理动作包括对头部的动作和对NF内部状态的动作;步骤(14),每个NF将LMAT中对于数据流的头部动作以及状态动作可能触发的事件列表与对应行为上传到GMAT中,并将所有的NF头部动作按顺序叠加,建立新的数据流缓存以备后续使用;对数据流的后续数据包处理步骤如下:步骤(21),数据包经过包分类器,计算数据包对应流的FID,在GMAT中寻找对应数据流的处理动作缓存;步骤(22),如果在GMAT找到对应数据流的处理动作缓存,取出FID对应缓存空间中处理动作,然后将数据包以及每个针对状态的动作发送给不同的分核进行处理;步骤(23),每个分核对同一数据包并行处理状态动作,并将处理结果同一返回主核;步骤(24),主核在收到分核的处理结果后,如果发现状态动作上没有触发事件,则对数据包进行头部动作处理,否则根据事件编号触发对应的事件行为,并将数据包发回对应的NF中,重复第一个数据包的步骤(13)和步骤(14)。所述步骤(11)和步骤(21)中,通过由传输层协议、源IP、目的IP、源端口、目的端口组成的五元组,对数据包的所属流进行分类,每条数据流根据五元组分配一个用来标识的流标志(FID)。所述步骤(12)中,根据哈希规则分配新的FID。所述步骤(22),在多核系统中,每个NF位于一个核上,将每个NF各自对应的状态动作以句柄形式发回对应的核执行。所述头部动作只包含对数据包五元组的识别与处理,并且不会造成NF内部状态的改变,所述状态动作包含对数据包其他部分的识别与处理或者会修改NF内部状态的其余行为。与现有技术相比,本专利技术的有益效果是:1)统筹整体NF链上的所有操作,大大减少NF内部以及NF之间的冗余计算,加快系统处理效率和数据包吞吐率。2)在保证系统正确性的情况下,实现多个NF对单个数据包的并行化处理,降低系统的处理时延。3)系统提供极为简洁的框架接口,原先的NF只需修改少量的代码即可放置到该系统中。附图说明图1为面向网络功能虚拟化的高性能设计架构示意图。图2为数据包处理流程图。具体实施方式下面结合附图和实施例详细说明本专利技术的实施方式。本专利技术一种面向网络功能虚拟化的高性能设计方法,设计数据流的全局匹配动作表,通过缓存每条数据流所对应的NF处理行为的方式减少冗余计算,并由此实现多个NF对同一数据包处理的并行化,从而实现数据流的后续数据包的处理效率提升与处理延时缩减。参考图1,本专利技术通过五元组(传输层协议、源IP、目的IP、源端口、目的端口)对数据包的所属流进行分类,每条数据流根据五元组分配一个用来标识的流标志(FID)。系统中,NF对数据包的处理行为分为头部动作和状态动作两种。头部动作只包含对数据包五元组的识别与处理并且不会造成NF内部状态的改变,其余包含对数据包其他部分的识别与处理或者会修改NF内部状态的行为则被称为状态动作。在本专利技术中,缓存被称为匹配行为表MatchActionTable(MAT),在NF本地的行为表被称为LocalMAT(LMAT),全局的行为表缓存则被称为GlobalMAT(GMAT)。系统通过流对应的FID访问MAT表并获取数据流对应头部动作和状态动作。当一个NF只包含对数据包的头部动作时,那么该NF对同一个数据流中所有数据包的头部处理行为都相同,因此只需缓存每条数据流的第一个数据包在NF链中的处理行为,即可将该行为复用到该流之后所有的数据包上。同时多个NF头部动作可以通过按处理顺序覆盖叠加的方式被合并成一个行为。因此对于每条数据流只需缓存一个头部动作即可完成整个NF链对流中数据包的操作,并且如果NF不包含对数据包的状态动作,则NF对单个流的头部动作不会改变。合并多个NF的头部动作可以大大减少NF对数据包处理的冗余,其中最典型的就是如果最后一个NF将数据包丢弃,那么之前的NF操作都无意且在头部动作合并时会被认定为无效动作被清除。系统同时考虑并优化NF对数据包的状态动作处理。虽然NF对数据流中各个数据包的状态动作无法叠加,但是系统依然可以通过缓存NF对数据流中数据包的状态动作来简单实现多个状态动作的并行化,以减少NF链的对单个数据包的处理时延。GMAT按顺序存储每个NF对给定流中数据包的状态动作。状态动作根据对数据包的处理被分为读类型(对数据包只有读操作)、本文档来自技高网
...

【技术保护点】
1.一种面向网络功能虚拟化的高性能设计方法,其特征在于,对每条数据流的第一个数据包和之后的数据包进行不同的处理,其中:对数据流的第一个数据包处理步骤如下:步骤(11),数据包经过包分类器,计算数据包对应数据流的FID,在GMAT中寻找对应数据流的处理动作缓存;步骤(12),如果在GMAT没有找到对应数据流的处理动作缓存,则新建一个对于该数据流的空缓存并分配一个新的FID,然后将数据包发送给NF链进行进行处理并记录处理操作;步骤(13),NF链中的每个NF正常处理数据包,将处理动作按FID编号缓存到LMAT中,然后将数据包传递给下一个NF,所述处理动作包括对头部的动作和对NF内部状态的动作;步骤(14),每个NF将LMAT中对于数据流的头部动作以及状态动作可能触发的事件列表与对应行为上传到GMAT中,并将所有的NF头部动作按顺序叠加,建立新的数据流缓存以备后续使用;对数据流的后续数据包处理步骤如下:步骤(21),数据包经过包分类器,计算数据包对应流的FID,在GMAT中寻找对应数据流的处理动作缓存;步骤(22),如果在GMAT找到对应数据流的处理动作缓存,取出FID对应缓存空间中处理动作,然后将数据包以及每个针对状态的动作发送给不同的分核进行处理;步骤(23),每个分核对同一数据包并行处理状态动作,并将处理结果同一返回主核;步骤(24),主核在收到分核的处理结果后,如果发现状态动作上没有触发事件,则对数据包进行头部动作处理,否则根据事件编号触发对应的事件行为,并将数据包发回对应的NF中,重复第一个数据包的步骤(13)和步骤(14)。...

【技术特征摘要】
1.一种面向网络功能虚拟化的高性能设计方法,其特征在于,对每条数据流的第一个数据包和之后的数据包进行不同的处理,其中:对数据流的第一个数据包处理步骤如下:步骤(11),数据包经过包分类器,计算数据包对应数据流的FID,在GMAT中寻找对应数据流的处理动作缓存;步骤(12),如果在GMAT没有找到对应数据流的处理动作缓存,则新建一个对于该数据流的空缓存并分配一个新的FID,然后将数据包发送给NF链进行进行处理并记录处理操作;步骤(13),NF链中的每个NF正常处理数据包,将处理动作按FID编号缓存到LMAT中,然后将数据包传递给下一个NF,所述处理动作包括对头部的动作和对NF内部状态的动作;步骤(14),每个NF将LMAT中对于数据流的头部动作以及状态动作可能触发的事件列表与对应行为上传到GMAT中,并将所有的NF头部动作按顺序叠加,建立新的数据流缓存以备后续使用;对数据流的后续数据包处理步骤如下:步骤(21),数据包经过包分类器,计算数据包对应流的FID,在GMAT中寻找对应数据流的处理动作缓存;步骤(22),如果在GMAT找到对应数据流的处理动作缓存,取出FID对应缓存空间中处理动作,然后将数据包以及每个针对状态的动作发送给不同的分核进行处理;步...

【专利技术属性】
技术研发人员:崔勇江逸敏吴文斐顾嘉瀚许哲
申请(专利权)人:清华大学
类型:发明
国别省市:北京,11

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

1