CN110336689A - 网络功能服务组链的处理方法、装置及电子设备 - Google Patents

网络功能服务组链的处理方法、装置及电子设备 Download PDF

Info

Publication number
CN110336689A
CN110336689A CN201910412397.8A CN201910412397A CN110336689A CN 110336689 A CN110336689 A CN 110336689A CN 201910412397 A CN201910412397 A CN 201910412397A CN 110336689 A CN110336689 A CN 110336689A
Authority
CN
China
Prior art keywords
network function
predetermined registration
data packet
registration operation
instruction
Prior art date
Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
Pending
Application number
CN201910412397.8A
Other languages
English (en)
Inventor
毕军
孙晨
郑智隆
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Tsinghua University
Original Assignee
Tsinghua University
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by Tsinghua University filed Critical Tsinghua University
Priority to CN201910412397.8A priority Critical patent/CN110336689A/zh
Publication of CN110336689A publication Critical patent/CN110336689A/zh
Pending legal-status Critical Current

Links

Classifications

    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L41/00Arrangements for maintenance, administration or management of data switching networks, e.g. of packet switching networks
    • H04L41/14Network analysis or design
    • H04L41/145Network analysis or design involving simulating, designing, planning or modelling of a network
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L47/00Traffic control in data switching networks
    • H04L47/10Flow control; Congestion control
    • H04L47/12Avoiding congestion; Recovering from congestion

Abstract

本发明提供一种网络功能服务组链的编排方法,包括:获取第一预设操作指令;其中,第一预设操作指令为第一网络功能对数据包的操作指令;获取第二预设操作指令;其中,第二预设操作指令为第二网络功能对数据包的操作指令;判断第一预设操作指令与第二预设操作指令是否存在依赖关系,当第一预设操作指令与第二预设操作指令无依赖关系时,复制接收到的数据包,并将复制的数据包分别发送至第一网络功能和第二网络功能,以使第一网络功能与第二网络功能并行对数据包进行操作。本发明还提供一种网络功能服务组链的编排装置、电子设备及计算机可读储存介质。

Description

网络功能服务组链的处理方法、装置及电子设备
技术领域
本发明涉及互联网信息技术领域,尤其涉及一种网络功能服务组链的处理方法、装置、电子设备及计算机可读储存介质。
背景技术
网络功能包括网络安全(如防火墙、入侵检测IDS)、网络管理(如流量工程)、网络测量(如监控功能Monitor)、网络优化(如广域网优化WAN Optimizer)等。在传统网络中,网络功能通常由专有的硬件承载,这些网络功能被称为中间件(Middle box)。随着网络功能发展的日新月异,对网络功能的特性需求层出不穷,传统的专有硬件承载网络功能的方式由于专有硬件的研发周期长的特点,阻碍了网络功能的灵活扩展与演进。并且,由于专有硬件需要通过网线、光纤等介质静态部署在网络中,考虑到网络流量可能发生频繁、大幅度波动,中间件设备可能会承载过多流量,造成过载。若预先部署冗余设备以避免过载,则可能增加投资成本以及在网络轻载时造成资源浪费。
为此,针对传统专有硬件承载中间件的问题,相关技术中提出了网络功能虚拟化(Network Function Virtualization,NFV)技术。NFV技术于2012年由欧洲电信标准协会(European Telecommunication Standards Institute,ETSI)首先提出,将传统专有硬件承载的中间件转化为基于软件实现的网络功能,从而降低了网络功能开发难度、研发成本,并缩短了研发周期,且易于扩展新功能。
但是,相关技术中以软件形式实现的网络功能容易导致处理时延呈线性增加,造成网络功能的性能损失,难以满足时延敏感性应用(如股票交易系统,搜索引擎等)对网络时延的要求。
发明内容
本发明提供一种网络功能服务组链的处理方法、装置、电子设备及计算机可读储存介质,以解决相关技术中以软件形式实现的网络功能容易导致处理时延增加,造成网络功能的性能损失,无法满足对网络时延的要求的问题。
为实现上述目的,根据本发明的一个方面,提供了一种网络功能服务组链的处理方法,该方法包括:
获取第一预设操作指令;其中,所述第一预设操作指令为第一网络功能对数据包的操作指令;
获取第二预设操作指令;其中,所述第二预设操作指令为第二网络功能对所述数据包的操作指令;
判断所述第一预设操作指令与所述第二预设操作指令是否存在依赖关系,当所述第一预设操作指令与所述第二预设操作指令无依赖关系时,复制接收到的数据包,并将复制的数据包分别发送至所述第一网络功能和所述第二网络功能,以使所述第一网络功能与所述第二网络功能并行对所述数据包进行操作。
可选的,所述获取第一预设操作指令;其中,所述第一预设操作指令为第一网络功能对数据包的操作指令,具体包括:
获取所述第一网络功能对数据包的包头的第一子操作指令,和/或,获取所述第一网络功能对所述数据包的有效载荷的第二子操作指令;其中,所述第一预设操作指令包括所述第一子操作指令和所述第二子操作指令;
相应的,
获取第二预设操作指令;其中,所述第二预设操作指令为第二网络功能对所述数据包的操作指令,具体包括:
获取所述第二网络功能对所述数据包的包头的第三子操作指令,和/或,获取所述第二网络功能对所述数据包的所述有效载荷的第四子操作指令;其中,所述第二预设操作指令包括所述第三子操作指令和第四子操作指令。
进一步的,所述第一子操作指令、第二子操作指令、第三子操作指令和所述第四子操作指令均包括:对数据包包头和/或有效载荷的读操作、写操作、增加操作、移除操作或丢包操作中的至少一种。
进一步的,在所述判断所述第一预设操作指令与所述第二预设操作指令是否存在依赖关系,当所述第一预设操作指令与所述第二预设操作指令无依赖关系时,并复制接收到的数据包,并将复制的数据包分别发送至所述第一网络功能和所述第二网络功能,以使所述第一网络功能与所述第二网络功能并行对所述数据包进行操作之前,所述方法还包括:
基于所述第一预设操作指令,建立所述第一网络功能对所述数据包的第一操作模型;其中,所述第一操作模型包括至少一个第一预设操作指令;
基于所述第二预设操作指令,建立所述第二网络功能对所述数据包的第二操作模型;其中,所述第二操作模型包括至少一个第二预设操作指令;
相应的,
判断所述第一预设操作指令与所述第二预设操作指令是否存在依赖关系,当所述第一预设操作指令与所述第二预设操作指令无依赖关系时,复制接收到的数据包,并将复制的数据包分别发送至所述第一网络功能和所述第二网络功能,以使所述第一网络功能与所述第二网络功能并行对所述数据包进行操作,具体包括:
获取第一输出结果;所述第一输出结果为所述第一操作模型和所述第二操作模型依次对所述数据包进行操作后的输出结果;
获取第二输出结果;所述第二输出结果为所述第一操作模型和所述第二操作模型同时对所述数据包进行操作后的输出结果;
对比所述第一输出结果与所述第二输出结果,当所述第一输出结果与所述第二输出结果相同时,并行编排所述网络功能服务组链。
可选的,所述方法还包括:
当所述第一预设操作指令与所述第二预设操作指令存在依赖关系时,根据所述第一网络功能与所述第二网络功能对所述数据包的操作顺序,串行编排所述网络功能服务组链。
进一步的,所述判断所述第一预设操作指令与所述第二预设操作指令是否存在依赖关系,当所述第一预设操作指令与所述第二预设操作指令无依赖关系时,复制接收到的数据包,并将复制的所述数据包分别发送至所述第一网络功能和所述第二网络功能,以使所述第一网络功能与所述第二网络功能并行对所述数据包进行操作,具体包括:
将所述第一网络功能添加至第一集合中;所述第一集合为多个所述网络功能组成的集合;
当所述第一预设操作指令与所述第二预设操作指令无依赖关系时,将所述第二网络功能添加至所述第一集合中,以使所述第一网络功能和所述第二网络功能并行;
相应的,
所述当所述第一预设操作指令与所述第二预设操作指令存在依赖关系时,根据所述第一网络功能与所述第二网络功能对所述数据包的操作顺序,串行编排所述网络功能服务组链,具体包括:
当所述第一预设操作指令与所述第二预设操作指令存在依赖关系时,将所述第二网络功能添加至第二集合中;以使所述第一网络功能与所述第二网络功能串行;其中,所述第二集合为多个所述网络功能组成的集合。
根据本发明的另一个方面,提供了一种网络功能服务组链的处理装置,包括:
获取模块,用于获取第一预设操作指令;其中,所述第一预设操作指令为第一网络功能对数据包的操作指令;
所述获取模块,还用于获取第二预设操作指令;其中,所述第二预设操作指令为第二网络功能对所述数据包的操作指令;
处理模块,用于判断所述第一预设操作指令与所述第二预设操作指令是否存在依赖关系,当所述第一预设操作指令与所述第二预设操作指令无依赖关系时,复制接收到的数据包,并将复制的数据包分别发送至所述第一网络功能和所述第二网络功能,以使所述第一网络功能与所述第二网络功能并行对所述数据包进行操作。
可选的,所述获取模块,还用于获取所述第一网络功能对数据包的包头的操作指令,和/或,获取所述第一网络功能对所述数据包的有效载荷的操作指令;以及,
所述获取模块,还用于获取所述第二网络功能对所述数据包的包头的操作指令,和/或,获取所述第二网络功能对所述数据包的所述有效载荷的操作指令。
根据本发明的另一个方面,提供了一种电子设备,包括:
储存器、处理器和通讯总线;所述处理器通过所述通讯总线与所述处理器通讯连接;其中,
所述储存器中储存有可执行计算机指令;
所述处理器用于执行所述储存器中的所述计算机可执行指令,以实现本发明第一个方面所述的方法。
根据本发明的另一个方面,提供了一种计算机可读储存介质,所述计算机可读储存介质储存有多条计算机可执行指令,所述计算机可执行指令在执行时,实现本发明第一个方面所述的方法。
本发明提供一种网络功能服务组链的处理方法、装置、电子设备及计算机可读储存介质,其中,该网络功能服务组链的处理方法包括:获取第一预设操作指令;其中,第一预设操作指令为第一网络功能对数据包的操作指令;获取第二预设操作指令;其中,第二预设操作指令为第二网络功能对数据包的操作指令;判断第一预设操作指令与第二预设操作指令是否存在依赖关系,当第一预设操作指令与第二预设操作指令无依赖关系时,复制接收到的数据包,并将复制的数据包分别发送至所述第一网络功能和所述第二网络功能,以使所述第一网络功能与所述第二网络功能并行对所述数据包进行操作。如此,通过对第一网络功能和第二网络功能对数据包的操作是否存在依赖关系的判断,并在不存在依赖关系时,将第一网络功能与第二网络功能进行并行编排;并行编排的多个网络功能在对数据包进行操作处理时,多个网络功能能够同时对数据包进行操作处理;无需等待其中一个网络功能对数据包处理完成后,另一个网络功能再对数据包处理;如此,提高了网络功能对数据包操作处理的效率,降低了网络功能对数据包处理的时延,并且,降低了网络功能的性能损失。
附图说明
为了更清楚地说明本发明实施例或现有技术中的技术方案,下面将对实施例或现有技术描述中所需要使用的附图作一简单地介绍,显而易见地,下面描述中的附图是本发明的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动性的前提下,还可以根据这些附图获得其他的附图。
图1为根据本发明实施例一提供的网络功能服务组链的编排方法的实现流程图;
图2为根据本发明实施例二提供的网络功能服务组链的编排方法的实现流程图;
图3为根据本发明实施例二提供的网络功能服务组链的示例性结构示意图;
图4为根据本发明实施例三提供的网络功能服务组链的编排装置的结构示意图;
图5为根据本发明实施例四提供的电子设备的结构示意图。
具体实施方式
为使本发明实施例的目的、技术方案和优点更加清楚,下面将结合本发明实施例中的附图,对本发明实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例是本发明一部分实施例,而不是全部的实施例。基于本发明中的实施例,本领域普通技术人员在没有作出创造性劳动前提下所获得的所有其他实施例,都属于本发明保护的范围。
此外,术语“第一”、“第二”仅用于描述目的,而不能理解为指示或暗示相对重要性或者隐含指明所指示的技术特征的数量。由此,限定有“第一”、“第二”的特征可以明示或者隐含地包括至少一个该特征。
在本发明的描述中,“多个”的含义是两个或两个以上,除非是另有精确具体地规定。
此外,术语“包括”和“具有”以及他们的任何变形,意图在于覆盖不排他的包含,例如,包含了一系列步骤或单元的过程、方法、系统、产品或设备不必限于清楚地列出的那些步骤或单元,而是可包括没有清楚地列出的或对于这些过程、方法、产品或设备固有的其它步骤或单元。
实施例一
图1为根据本发明实施例一提供的网络功能服务组链的编排方法的实现流程图。
参照图1所示,根据本发明实施例一,提供了一种网络功能服务组链的编排方法,该方法包括以下步骤:
步骤101,获取第一预设操作指令;其中,第一预设操作指令为第一网络功能对数据包的操作指令。
本发明实施例提供的网络功能服务组链的编排方法可以运行在中央处理器(Central Processing Unit/Processor,CPU)、现场可编程门阵列(Field-ProgrammableGate Array,FPGA)、网络处理器(Network Processing Unit,NPU)、可编程交换芯片等多种可编程平台上。本发明实施例提供的网络功能服务组链的编排方法也可以接入任意基于数据平面开发套件(DPDK,Data Plane Development Kit)实现的网络功能,该网络功能服务组链的编排方法对应的装置可称为网络功能服务组链编排装置。
具体的,在一些实施方式中,获取第一预设操作指令可以是由网络功能服务组链编排装置的获取模块来执行的。具体的,第一预设操作指令是第一网络功能可对数据包执行的操作指令,若第一网络功能正在对数据包进行操作,第一预设操作指令也可以是第一网络功能正在对数据包执行的操作指令。
步骤102,获取第二预设操作指令;其中,第二预设操作指令为第二网络功能对数据包的操作指令。
具体的,第二预设操作指令是第二网络功能可对数据包执行的操作指令,当第二网络功能正在对数据包进行操作时,第二预设操作指令也可以是第二网络功能正在对数据包执行的操作指令。
步骤103,判断第一预设操作指令与第二预设操作指令是否存在依赖关系,当第一预设操作指令与第二预设操作指令无依赖关系时,复制接收到的数据包,并将复制的数据包分别发送至第一网络功能和第二网络功能,以使第一网络功能与第二网络功能并行对数据包进行操作。
具体的,第一预设操作指令与第二预设操作指令之间的依赖关系是指第一网络功能与第二网络功能对数据包进行的操作之间是否存在相关性,例如,在一些典型的实例中,第二网络功能对数据包的操作是基于第一网络功能对数据包进行的操作后的进一步操作,在这种情况下,则表明第一网络功能与第二网络功能对数据包进行的操作之间存在关联性,即第一预设操作指令与第二预设操作指令之间有依赖关系。在另一些典型实例中,第二网络功能对数据包的操作并不是基于第一网络功能对数据包进行操作之后的进一步操作,也就是说,第一网络功能和第二网络功能对数据包进行的操作之间没有相关性,即第一预设操作指令与第二预设操作指令之间无依赖关系,此时,复制接收到的数据包,并将复制的数据包分别发送至第一网络功能和第二网络功能,以使第一网络功能与第二网络功能并行对数据包进行操作。例如,在一些实施方式中,网络功能服务组链中只包含两个网络功能,此时将接收到的数据包复制一份,两份相同的数据包分别发送至两个网络功能,从而两个网络功能同时对数据包进行操作,实现两个网络功能在网络功能服务组链中的并行编排。
本实施例中,通过获取第一网络功能可对数据包进行操作的第一预设操作指令,和获取第二网络功能可对数据包进行操作的第二预设操作指令,并通过判断第一预设操作指令与第二预设操作指令是否存在依赖关系,并在第一预设操作指令与第二预设操作指令无依赖关系时,复制接收到的数据包,并将复制的数据包分别发送至第一网络功能和第二网络功能,以使第一网络功能与第二网络功能并行对数据包进行操作。将网络功能以并行方式编排。如此,在网络功能对数据包进行操作时,多个无依赖关系的网络功能可以同时对数据包进行操作处理,无需等待其中一个网络功能对数据包处理完成后,另一个网络功能再对数据包处理;如此,提高了网络功能对数据包操作处理的效率,降低了网络功能对数据包处理的时延,并且,降低了网络功能的性能损失。
实施例二
图2为根据本发明实施例二提供的网络功能服务组链的编排方法的实现流程图。图3为根据本发明实施例二提供的网络功能服务组链的示例性结构示意图。
基于前述实施例一,参照图2所示,根据本发明实施例二提供的网络功能服务组链的编排方法,具体包括以下步骤:
步骤201,获取第一网络功能对数据包的包头的第一子操作指令,和/或,获取第一网络功能对数据包的有效载荷的第二子操作指令;其中,第一预设操作指令包括第一子操作指令和第二子操作指令。
具体的,不同的网络功能对数据包可能会执行不同的操作,在一些实施方式中,网络功能可能会对数据数据包的包头进行操作,在另一些实施方式中,网络功能也可能会对数据数据包的有效载荷进行操作。第一子操作指令是指网络功能对数据数据包的包头所进行的操作,第二子操作指令是指网络功能对数据数据包的有效载荷进行的操作。
步骤202,获取第二网络功能对数据包的包头的第三子操作指令,和/或,获取第二网络功能对数据包的有效载荷的第四子操作指令;其中,第二预设操作指令包括第三子操作指令和第四子操作指令。
具体的,在一些实施方式中,第一子操作指令、第二子操作指令、第三子操作指令和第四子操作指令均包括对数据包包头和/或有效载荷的读操作、写操作、增加操作、移除操作或丢包操作中的至少一种。
步骤203,判断第一预设操作指令与第二预设操作指令是否存在依赖关系,当第一预设操作指令与第二预设操作指令无依赖关系时,复制接收到的数据包,并将复制的数据包分别发送至第一网络功能和第二网络功能,以使第一网络功能与第二网络功能并行对数据包进行操作。
由于不同的网络功能对数据包执行的操作可能不同,并且不同网络功能对数据包执行的操作之间可能会发生冲突,因此,需要对不同网络功能对数据包执行操作之间是否存在依赖关系进行判断,在不同网络功能对数据包执行操作之间无依赖关系时,复制接收到的数据包,并将复制的数据包分别发送至第一网络功能和第二网络功能,以使第一网络功能与第二网络功能并行对数据包进行操作。
具体的,在一些实施方式中,可以是基于第一预设操作指令,建立第一网络功能对数据包的第一操作模型;其中,第一操作模型包括至少一个第一预设操作指令。
基于第二预设操作指令,建立第二网络功能对数据包的第二操作模型;其中,第二操作模型包括至少一个第二预设操作指令。
例如,在一些实施方式中,网络地址转换(Network Address Translation,NAT)和负载均衡器(Load Balancer,LB)均会对数据包的目的IP地址进行修改,从而导致两个不同的网络功能对数据包的操作可能存在不同,因此,为分析不同网络功能对数据包的操作是否发生冲突,需要建立统一的操作模型。通过研究发现,尽管网络功能类型多种多样,但网络功能对数据包的操作主要包括以下五种操作:
long read(field):网络功能读取数据包的field字段并返回读到的数值。
void write(field,value):网络功能将value写入field字段。
void add(offset,field,value):网络功能在数据包的offset位置添加field,并设置为value。
void remove(field):网络功能移除数据包的field字段。
void drop():网络功能丢弃数据包。
因此,在一些实施方式中,可以将一个网络功能对数据包的操作表示为:
[action],action∈{read,write,add,remove,drop},即将一个网络功能对数据包的操作进行抽象建模,建立网络功能对数据数据包的操作模型。
通过分析两个网络功能对报文的操作是否冲突,我们可以确认两个网络功能能否并行处理报文。我们提出结果一致性原则:当两个网络功能(Network Function,NF)并行时对相同数据包的处理结果和每个NF各自的内部状态与串行服务组链时处理的结果都相同时,我们认为两个NF能并行执行。例如,我们假设NF1对包头进行读操作,而NF2接着对相同的包头域进行修改。为了保证NF1读到的是包头的原始信息,而不是经过NF2修改后的信息,我们可以对数据包进行复制,然后将这两份数据包并行的发送到这两个NF中。反之,若NF1首先对包头进行写操作,而NF2再接着对包头进行读操作,该管理员希望传递给NF2的数据是经过NF1修改后的结果。则此时,这两个NF应该以串行的方式来组链。
本方法还支持灵活的新NF的集成。当对有新NF加入的服务链时,网络管理员只需以手工或自动的方式产生网络功能对报文的操作列表[action],即可与其他NF进行依赖性分析。此外,本方法也可接入任意基于DPDK实现的网络功能。我们针对DPDK提供的报文访问和修改功能,设计了代码解析器,能自动分析网络功能对报文的操作,从而进行依赖性分析。
具体的,获取第一输出结果;第一输出结果为第一操作模型和第二操作模型依次对数据包进行操作后的输出结果。
具体的,第一输出结果为两个NF按串行编排网络功能服务组链时,两个NF按照各自内部状态对数据包进行操作后输出的经过两个NF处理的数据包。
获取第二输出结果;第二输出结果为第一操作模型和第二操作模型同时对数据包进行操作后的输出结果。
具体的,第二输出结果为两个NF并行时,对相同的数据包进行操作处理后输出的数据包。
对比第一输出结果与第二输出结果,当第一输出结果与第二输出结果相同时,复制接收到的数据包,并将复制的数据包分别发送至第一网络功能和第二网络功能,以使第一网络功能与第二网络功能并行对数据包进行操作。
在一些典型实例中,假设网络功能服务组链中包括两个网络功能,分别为第一网络功能和第二网络功能;假设第一网络功能对数据包的包头进行读操作,而第二网络功能对数据包相同的包头进行修改操作,则第一网络功能和第二网络功能串行编排时,对数据包进行的操作结果为经过第二网络功能对包头进行修改后的数据包;而第一网络功能和第二网络功能并行编排时的输出结果也是经过第二网络功能对包头进行修改后的数据包。因此,第一输出结果与第二输出结果相同,第一网络功能和第二网络功能可并行编排。具体的,在一些实施方式中,为了保证第一网络功能读到的是包头的原始信息,而不是经过第二网络功能修改后的信息,可以对数据包进行复制,将复制的两份数据包分别并行发送至第一网络功能和第二网络功能,以使第一网络功能和第二网络功能并行对数据包进行操作处理,即并行编排第一网络功能和第二网络功能。
在一些实施方式中,当第一预设操作指令与第二预设操作指令存在依赖关系时,根据所述第一网络功能与所述第二网络功能对所述数据包的操作顺序,串行编排网络功能服务组链。
具体的,在一些实施例中,假设网络功能服务组链中包括两个网络功能,分别为第一网络功能和第二网络功能,假设第一网络功能对数据包的操作为对包头进行修改操作,而第二网络功能对数据包的包头进行的操作数读操作;即第二网络功能需要读取的数据包的包头是经过第一网络功能修改后的数据包的包头,此时,按照第一网络功能、第二网络功能的串行顺序串行编排网络功能服务组链。
参照图3所示,在一些具体的实施方式中,可以根据多个网络功能之间的依赖关系构建网络功能服务链。
具体的,将第一网络功能添加至第一集合中;第一集合为多个网络功能组成的集合。
具体的,参照图3所示,假设网络服务组链中包括五个网络功能,分别为NF1、NF2、NF3、NF4和NF5,首先,将NF1添加至第一集合中,如图3中Stage1,将NF1添加至ActiveGroup中,即第一集合可以为活跃集合;表明暂不确定NF1应当串行编排还是应当并行编排。
当第一预设操作指令与第二预设操作指令无依赖关系时,将第二网络功能添加至第一集合中,以使第一网络功能和第二网络功能并行。
具体的,参照图3中Stage1所示,对NF2与NF1之间的依赖性进行判断,当NF2与NF1之间无依赖关系时,将NF2添加到活跃集合中,代表NF1、NF2两个网络功能在活跃集合中并行执行,从而将NF1、NF2并行编排。
当第一预设操作指令与第二预设操作指令存在依赖关系时,将第二网络功能添加至第二集合中;以使第一网络功能与第二网络功能串行;其中,第二集合为多个网络功能组成的集合。
具体的,参照图3中Stage3所示,当判断NF3与NF1或NF2中的至少一个存在依赖关系时,此时,将当前活跃集合中的网络功能,即NF1、NF2冻结,归为固定集合;并将NF3添加至第二集合,即第二集合为当前活跃集合中,表面NF3与NF1或NF2中的至少之一串行执行,即固定集合与活跃集合之间的网络功能为串行编排。依次类推,直至将所有的网络功能均添加至固定集合或活跃集合,如图3中的最终图所示,如此,位于同一个集合中的网络功能并行执行对数据包的处理,位于不同集合中的网络功能串行执行对数据包的处理。在假定一个服务链包括五个网络功能时,将串行编排的五个网络功能并行编排后,实际转化为两个串行步骤。如此,将网络功能服务链并行编排后相比于串行编排对数据包的处理时延降低了60%。
具体的,在一些实施方式中,可以通过计算机程序对网络功能进行编排,例如,如下网络功能编排的伪代码:
需要说明的是,本实施例中与其他实施例相同的步骤或术语,可以参照其他实施例的解释说明,本实施例中不再赘述。
实施例三
基于前述实施例,参照图4所示,根据本发明实施例三提供的网络功能服务组链的编排装置40,应用于电子设备,该装置包括所包括的各单元、以及各单元所包括的各模块,可以通过电子设备中的处理器来实现;当然也可通过具体的逻辑电路实现;在实施的过程中,处理器可以为中央处理器(Central Processing Unit,CPU)、微处理器(MicroProcessor Unit,MPU)、数字信号处理器(Digital Signal Processor,DSP)或现场可编程门阵列(Field-Programmable Gate Array,FPGA)等;该装置包括:
获取模块41,用于获取第一预设操作指令;其中,第一预设操作指令为第一网络功能对数据包的操作指令。
获取模块41,还用于获取第二预设操作指令;其中,第二预设操作指令为第二网络功能对数据包的操作指令。
处理模块42,用于判断第一预设操作指令与第二预设操作指令是否存在依赖关系,复制接收到的数据包,并将复制的数据包分别发送至第一网络功能和第二网络功能,以使第一网络功能与第二网络功能并行对数据包进行操作。
在一些实施方式中,获取模块41,还用于获取第一网络功能对数据包的包头的操作指令,和/或,获取第一网络功能对数据包的有效载荷的操作指令;以及,
获取模块41,还用于获取第二网络功能对数据包的包头的操作指令,和/或,获取第二网络功能对数据包的有效载荷的操作指令。
需要说明的是,装置实施例的描述,与上述方法实施例的描述是类似的,具有同方法实施例相似的有益效果。对于本发明装置实施例中未披露的技术细节,请参照本发明方法实施例的描述而理解。
实施例四
基于前述实施例,参照图5所示,根据本发明实施例四提供的电子设备50,包括:
储存器51、处理器52和通讯总线53;处理器52通过通讯总线53与处理器52通讯连接;其中,
储存器51中储存有可执行计算机指令;
处理器52用于执行储存器51中的计算机可执行指令,以实现实施例一或实施例二任一实施例提供的方法。
需要说明的是,电子设备实施例与上述方法实施例的描述是类似的,具有同方法实施例相似的有益效果。对于本发明电子设备实施例中未披露的技术细节,请参照本发明方法实施例的描述而理解。
实施例五
基于前述实施例,根基本发明实施例五提供的计算机可读储存介质,该计算机可读储存介质储存有多条计算机可执行指令,计算机可执行指令在执行时,实现施例一或实施例二任一实施例提供的方法。
本申请实施例中,如果以软件功能模块的形式实现上述的数据模型处理方法,并作为独立的产品销售或使用时,也可以存储在一个计算机可读取存储介质中。基于这样的理解,本申请实施例的技术方案本质上或者说对现有技术做出贡献的部分可以以软件产品的形式体现出来,该计算机软件产品存储在一个存储介质中,包括若干指令用以使得一台计算机设备(可以是个人计算机、服务器、或者网络设备等)执行本申请各个实施例所述方法的全部或部分。而前述的存储介质包括:U盘、移动硬盘、只读存储器(Read Only Memory,ROM)、磁碟或者光盘等各种可以存储程序代码的介质。这样,本申请实施例不限制于任何特定的硬件和软件结合。
应理解,说明书通篇中提到的“一个实施例”或“一实施例”意味着与实施例有关的特定特征、结构或特性包括在本申请的至少一个实施例中。因此,在整个说明书各处出现的“在一个实施例中”或“在一实施例中”未必一定指相同的实施例。此外,这些特定的特征、结构或特性可以任意适合的方式结合在一个或多个实施例中。应理解,在本申请的各种实施例中,上述各过程的序号的大小并不意味着执行顺序的先后,各过程的执行顺序应以其功能和内在逻辑确定,而不应对本申请实施例的实施过程构成任何限定。上述本申请实施例序号仅仅为了描述,不代表实施例的优劣。
需要说明的是,在本文中,术语“包括”、“包含”或者其任何其他变体意在涵盖非排他性的包含,从而使得包括一系列要素的过程、方法、物品或者装置不仅包括那些要素,而且还包括没有明确列出的其他要素,或者是还包括为这种过程、方法、物品或者装置所固有的要素。在没有更多限制的情况下,由语句“包括一个……”限定的要素,并不排除在包括该要素的过程、方法、物品或者装置中还存在另外的相同要素。
在本申请所提供的几个实施例中,应该理解到,所揭露的设备和方法,可以通过其它的方式实现。以上所描述的设备实施例仅仅是示意性的,例如,所述单元的划分,仅仅为一种逻辑功能划分,实际实现时可以有另外的划分方式,如:多个单元或组件可以结合,或可以集成到另一个系统,或一些特征可以忽略,或不执行。另外,所显示或讨论的各组成部分相互之间的耦合、或直接耦合、或通信连接可以是通过一些接口,设备或单元的间接耦合或通信连接,可以是电性的、机械的或其它形式的。
上述作为分离部件说明的单元可以是、或也可以不是物理上分开的,作为单元显示的部件可以是、或也可以不是物理单元;既可以位于一个地方,也可以分布到多个网络单元上;可以根据实际的需要选择其中的部分或全部单元来实现本实施例方案的目的。
另外,在本申请各实施例中的各功能单元可以全部集成在一个处理单元中,也可以是各单元分别单独作为一个单元,也可以两个或两个以上单元集成在一个单元中;上述集成的单元既可以采用硬件的形式实现,也可以采用硬件加软件功能单元的形式实现。
本领域普通技术人员可以理解:实现上述方法实施例的全部或部分步骤可以通过程序指令相关的硬件来完成,前述的程序可以存储于计算机可读取存储介质中,该程序在执行时,执行包括上述方法实施例的步骤;而前述的存储介质包括:移动存储设备、只读存储器(ReadOnly Memory,ROM)、磁碟或者光盘等各种可以存储程序代码的介质。
或者,本申请上述集成的单元如果以软件功能模块的形式实现并作为独立的产品销售或使用时,也可以存储在一个计算机可读取存储介质中。基于这样的理解,本申请实施例的技术方案本质上或者说对现有技术做出贡献的部分可以以软件产品的形式体现出来,该计算机软件产品存储在一个存储介质中,包括若干指令用以使得一台计算机设备(可以是个人计算机、服务器、或者网络设备等)执行本申请各个实施例所述方法的全部或部分。而前述的存储介质包括:移动存储设备、ROM、磁碟或者光盘等各种可以存储程序代码的介质。
最后应说明的是:以上各实施例仅用以说明本发明的技术方案,而非对其限制;尽管参照前述各实施例对本发明进行了详细的说明,本领域的普通技术人员应当理解:其依然可以对前述各实施例所记载的技术方案进行修改,或者对其中部分或者全部技术特征进行等同替换;而这些修改或者替换,并不使相应技术方案的本质脱离本发明各实施例技术方案的范围。

Claims (10)

1.一种网络功能服务组链的处理方法,其特征在于,包括:
获取第一预设操作指令;其中,所述第一预设操作指令为第一网络功能对数据包的操作指令;
获取第二预设操作指令;其中,所述第二预设操作指令为第二网络功能对所述数据包的操作指令;
判断所述第一预设操作指令与所述第二预设操作指令是否存在依赖关系,当所述第一预设操作指令与所述第二预设操作指令无依赖关系时,复制接收到的数据包,并将复制的数据包分别发送至所述第一网络功能和所述第二网络功能,以使所述第一网络功能与所述第二网络功能并行对所述数据包进行操作。
2.根据权利要求1所述的方法,其特征在于,所述获取第一预设操作指令;其中,所述第一预设操作指令为第一网络功能对数据包的操作指令,具体包括:
获取所述第一网络功能对数据包的包头的第一子操作指令,和/或,获取所述第一网络功能对所述数据包的有效载荷的第二子操作指令;其中,所述第一预设操作指令包括所述第一子操作指令和所述第二子操作指令;
相应的,
获取第二预设操作指令;其中,所述第二预设操作指令为第二网络功能对所述数据包的操作指令,具体包括:
获取所述第二网络功能对所述数据包的包头的第三子操作指令,和/或,获取所述第二网络功能对所述数据包的所述有效载荷的第四子操作指令;其中,所述第二预设操作指令包括所述第三子操作指令和第四子操作指令。
3.根据权利要求2所述的方法,其特征在于,所述第一子操作指令、第二子操作指令、第三子操作指令和所述第四子操作指令均包括:对数据包包头和/或有效载荷的读操作、写操作、增加操作、移除操作或丢包操作中的至少一种。
4.根据权利要求1所述的方法,其特征在于,在所述判断所述第一预设操作指令与所述第二预设操作指令是否存在依赖关系,当所述第一预设操作指令与所述第二预设操作指令无依赖关系时,复制接收到的数据包,并将复制的数据包分别发送至所述第一网络功能和所述第二网络功能,以使所述第一网络功能与所述第二网络功能并行对所述数据包进行操作之前,所述方法还包括:
基于所述第一预设操作指令,建立所述第一网络功能对所述数据包的第一操作模型;其中,所述第一操作模型包括至少一个第一预设操作指令;
基于所述第二预设操作指令,建立所述第二网络功能对所述数据包的第二操作模型;其中,所述第二操作模型包括至少一个第二预设操作指令;
相应的,
判断所述第一预设操作指令与所述第二预设操作指令是否存在依赖关系,当所述第一预设操作指令与所述第二预设操作指令无依赖关系时,复制接收到的数据包,并将复制的数据包分别发送至所述第一网络功能和所述第二网络功能,以使所述第一网络功能与所述第二网络功能并行对所述数据包进行操作,具体包括:
获取第一输出结果;所述第一输出结果为所述第一操作模型和所述第二操作模型依次对所述数据包进行操作后的输出结果;
获取第二输出结果;所述第二输出结果为所述第一操作模型和所述第二操作模型同时对所述数据包进行操作后的输出结果;
对比所述第一输出结果与所述第二输出结果,当所述第一输出结果与所述第二输出结果相同时,复制接收到的数据包,并将复制的数据包分别发送至所述第一网络功能和所述第二网络功能,以使所述第一网络功能与所述第二网络功能并行对所述数据包进行操作。
5.根据权利要求1-4任一项所述的方法,其特征在于,所述方法还包括:
当所述第一预设操作指令与所述第二预设操作指令存在依赖关系时,根据所述第一网络功能与所述第二网络功能对所述数据包的操作顺序,串行编排所述网络功能服务组链。
6.根据权利要求5所述的方法,其特征在于,所述判断所述第一预设操作指令与所述第二预设操作指令是否存在依赖关系,当所述第一预设操作指令与所述第二预设操作指令无依赖关系时,复制接收到的数据包,并将复制的数据包分别发送至所述第一网络功能和所述第二网络功能,以使所述第一网络功能与所述第二网络功能并行对所述数据包进行操作,具体包括:
将所述第一网络功能添加至第一集合中;所述第一集合为多个所述网络功能的集合;
当所述第一预设操作指令与所述第二预设操作指令无依赖关系时,将所述第二网络功能添加至所述第一集合中,以使所述第一网络功能和所述第二网络功能并行;
相应的,
所述当所述第一预设操作指令与所述第二预设操作指令存在依赖关系时,根据所述第一网络功能与所述第二网络功能对所述数据包的操作顺序,串行编排所述网络功能服务组链,具体包括:
当所述第一预设操作指令与所述第二预设操作指令存在依赖关系时,将所述第二网络功能添加至第二集合中;以使所述第一网络功能与所述第二网络功能串行;其中,所述第二集合为多个所述网络功能组成的集合。
7.一种网络功能服务组链的处理装置,其特征在于,包括:
获取模块,用于获取第一预设操作指令;其中,所述第一预设操作指令为第一网络功能对数据包的操作指令;
所述获取模块,还用于获取第二预设操作指令;其中,所述第二预设操作指令为第二网络功能对所述数据包的操作指令;
处理模块,用于判断所述第一预设操作指令与所述第二预设操作指令是否存在依赖关系,当所述第一预设操作指令与所述第二预设操作指令无依赖关系时,复制接收到的数据包,并将复制的数据包分别发送至所述第一网络功能和所述第二网络功能,以使所述第一网络功能与所述第二网络功能并行对所述数据包进行操作。
8.根据权利要求7所述的装置,其特征在于,
所述获取模块,还用于获取所述第一网络功能对数据包的包头的操作指令,和/或,获取所述第一网络功能对所述数据包的有效载荷的操作指令;以及,
所述获取模块,还用于获取所述第二网络功能对所述数据包的包头的操作指令,和/或,获取所述第二网络功能对所述数据包的所述有效载荷的操作指令。
9.一种电子设备,其特征在于,包括:
储存器、处理器和通讯总线;所述处理器通过所述通讯总线与所述处理器通讯连接;其中,
所述储存器中储存有可执行计算机指令;
所述处理器用于执行所述储存器中的所述计算机可执行指令,以实现权利要求1-6任一项所述的方法。
10.一种计算机可读储存介质,其特征在于,所述计算机可读储存介质储存有多条计算机可执行指令,所述计算机可执行指令在执行时,实现权利要求1-6任一项所述的方法。
CN201910412397.8A 2019-05-17 2019-05-17 网络功能服务组链的处理方法、装置及电子设备 Pending CN110336689A (zh)

Priority Applications (1)

Application Number Priority Date Filing Date Title
CN201910412397.8A CN110336689A (zh) 2019-05-17 2019-05-17 网络功能服务组链的处理方法、装置及电子设备

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN201910412397.8A CN110336689A (zh) 2019-05-17 2019-05-17 网络功能服务组链的处理方法、装置及电子设备

Publications (1)

Publication Number Publication Date
CN110336689A true CN110336689A (zh) 2019-10-15

Family

ID=68138944

Family Applications (1)

Application Number Title Priority Date Filing Date
CN201910412397.8A Pending CN110336689A (zh) 2019-05-17 2019-05-17 网络功能服务组链的处理方法、装置及电子设备

Country Status (1)

Country Link
CN (1) CN110336689A (zh)

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN112235149A (zh) * 2020-12-15 2021-01-15 广东省新一代通信与网络创新研究院 一种网络功能单元仿真建模的方法及系统、网络功能单元

Citations (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN103543988A (zh) * 2013-10-23 2014-01-29 华为终端有限公司 队列消息的处理方法、控制消息进入队列的方法及装置
WO2015054582A1 (en) * 2013-10-11 2015-04-16 Vmware, Inc. Methods and apparatus to manage virtual machines
CN107800571A (zh) * 2017-10-23 2018-03-13 清华大学 一种网络功能动态编排方法、装置和系统
CN107947965A (zh) * 2017-11-07 2018-04-20 清华大学 服务链编译器
CN108512672A (zh) * 2017-02-24 2018-09-07 华为技术有限公司 业务编排方法、业务管理方法及装置

Patent Citations (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
WO2015054582A1 (en) * 2013-10-11 2015-04-16 Vmware, Inc. Methods and apparatus to manage virtual machines
CN103543988A (zh) * 2013-10-23 2014-01-29 华为终端有限公司 队列消息的处理方法、控制消息进入队列的方法及装置
CN108512672A (zh) * 2017-02-24 2018-09-07 华为技术有限公司 业务编排方法、业务管理方法及装置
CN107800571A (zh) * 2017-10-23 2018-03-13 清华大学 一种网络功能动态编排方法、装置和系统
CN107947965A (zh) * 2017-11-07 2018-04-20 清华大学 服务链编译器

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN112235149A (zh) * 2020-12-15 2021-01-15 广东省新一代通信与网络创新研究院 一种网络功能单元仿真建模的方法及系统、网络功能单元

Similar Documents

Publication Publication Date Title
CN1307564C (zh) 网络交换机和部件及其操作方法
Mu et al. IP routing processing with graphic processors
CN104580027B (zh) 一种OpenFlow报文转发方法及设备
CN104079492B (zh) 一种OpenFlow网络中流表配置的方法、装置和系统
CN108200086B (zh) 一种高速网络数据包过滤装置
CN101160856A (zh) 一种网络处理器
CN104821924B (zh) 一种网络数据包处理方法、装置和网络处理设备
CN109039829A (zh) 一种网卡性能测试方法、装置、终端及存储介质
CN110351286A (zh) 一种软件定义网络中链路洪泛攻击检测响应机制
WO2014000819A1 (en) A method of and network server for detecting data patterns in an input data stream
JP2005117206A5 (zh)
CN104852813B (zh) 家庭网关设备中tr069参数节点的按需加载方法及系统
US20050286439A1 (en) Method of testing a router, and a test system
CN104281488B (zh) 服务器引擎的实现方法和系统
CN110336689A (zh) 网络功能服务组链的处理方法、装置及电子设备
CN107947965A (zh) 服务链编译器
CN107566098B (zh) 软件定义网络应用测试序列的生成方法与生成系统
Sun et al. Hybrid regular expression matching for deep packet inspection on multi-core architecture
CN107526541B (zh) 数据处理方法和装置
CN102316035A (zh) 集群路由器系统中前后台通讯及数据安全处理方法
US20050188070A1 (en) Vertical perimeter framework for providing application services
CN113395183B (zh) 网络仿真平台vlan互联的虚拟节点调度方法与系统
CN106911730A (zh) 一种云盘服务器访问迁移方法和装置
CN107181701B (zh) 公共网关接口数据的收集方法及装置
CN109873716A (zh) 数据的处理方法、装置和存储介质

Legal Events

Date Code Title Description
PB01 Publication
PB01 Publication
SE01 Entry into force of request for substantive examination
SE01 Entry into force of request for substantive examination
RJ01 Rejection of invention patent application after publication
RJ01 Rejection of invention patent application after publication

Application publication date: 20191015