CN111522653A - 基于容器的网络功能虚拟化平台 - Google Patents
基于容器的网络功能虚拟化平台 Download PDFInfo
- Publication number
- CN111522653A CN111522653A CN202010082931.6A CN202010082931A CN111522653A CN 111522653 A CN111522653 A CN 111522653A CN 202010082931 A CN202010082931 A CN 202010082931A CN 111522653 A CN111522653 A CN 111522653A
- Authority
- CN
- China
- Prior art keywords
- flow
- network function
- packet
- node
- container
- 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.)
- Granted
Links
Images
Classifications
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L47/00—Traffic control in data switching networks
- H04L47/10—Flow control; Congestion control
- H04L47/24—Traffic characterised by specific attributes, e.g. priority or QoS
- H04L47/2425—Traffic characterised by specific attributes, e.g. priority or QoS for supporting services specification, e.g. SLA
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F9/00—Arrangements for program control, e.g. control units
- G06F9/06—Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
- G06F9/46—Multiprogramming arrangements
- G06F9/50—Allocation of resources, e.g. of the central processing unit [CPU]
- G06F9/5083—Techniques for rebalancing the load in a distributed system
- G06F9/5088—Techniques for rebalancing the load in a distributed system involving task migration
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L41/00—Arrangements for maintenance, administration or management of data switching networks, e.g. of packet switching networks
- H04L41/08—Configuration management of networks or network elements
- H04L41/0803—Configuration setting
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F16/00—Information retrieval; Database structures therefor; File system structures therefor
- G06F16/20—Information retrieval; Database structures therefor; File system structures therefor of structured data, e.g. relational data
- G06F16/22—Indexing; Data structures therefor; Storage structures
- G06F16/2228—Indexing structures
- G06F16/2255—Hash tables
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F9/00—Arrangements for program control, e.g. control units
- G06F9/06—Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
- G06F9/46—Multiprogramming arrangements
- G06F9/50—Allocation of resources, e.g. of the central processing unit [CPU]
- G06F9/5005—Allocation of resources, e.g. of the central processing unit [CPU] to service a request
- G06F9/5027—Allocation of resources, e.g. of the central processing unit [CPU] to service a request the resource being a machine, e.g. CPUs, Servers, Terminals
- G06F9/505—Allocation of resources, e.g. of the central processing unit [CPU] to service a request the resource being a machine, e.g. CPUs, Servers, Terminals considering the load
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L41/00—Arrangements for maintenance, administration or management of data switching networks, e.g. of packet switching networks
- H04L41/08—Configuration management of networks or network elements
- H04L41/0895—Configuration of virtualised networks or elements, e.g. virtualised network function or OpenFlow elements
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L41/00—Arrangements for maintenance, administration or management of data switching networks, e.g. of packet switching networks
- H04L41/34—Signalling channels for network management communication
- H04L41/342—Signalling channels for network management communication between virtual entities, e.g. orchestrators, SDN or NFV entities
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L41/00—Arrangements for maintenance, administration or management of data switching networks, e.g. of packet switching networks
- H04L41/40—Arrangements for maintenance, administration or management of data switching networks, e.g. of packet switching networks using virtualisation of network functions or resources, e.g. SDN or NFV entities
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L41/00—Arrangements for maintenance, administration or management of data switching networks, e.g. of packet switching networks
- H04L41/50—Network service management, e.g. ensuring proper service fulfilment according to agreements
- H04L41/5003—Managing SLA; Interaction between SLA and QoS
- H04L41/5006—Creating or negotiating SLA contracts, guarantees or penalties
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L41/00—Arrangements for maintenance, administration or management of data switching networks, e.g. of packet switching networks
- H04L41/50—Network service management, e.g. ensuring proper service fulfilment according to agreements
- H04L41/5003—Managing SLA; Interaction between SLA and QoS
- H04L41/5019—Ensuring fulfilment of SLA
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L41/00—Arrangements for maintenance, administration or management of data switching networks, e.g. of packet switching networks
- H04L41/50—Network service management, e.g. ensuring proper service fulfilment according to agreements
- H04L41/5041—Network service management, e.g. ensuring proper service fulfilment according to agreements characterised by the time relationship between creation and deployment of a service
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L45/00—Routing or path finding of packets in data switching networks
- H04L45/74—Address processing for routing
- H04L45/745—Address table lookup; Address filtering
- H04L45/7453—Address table lookup; Address filtering using hashing
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L47/00—Traffic control in data switching networks
- H04L47/10—Flow control; Congestion control
- H04L47/12—Avoiding congestion; Recovering from congestion
- H04L47/125—Avoiding congestion; Recovering from congestion by balancing the load, e.g. traffic engineering
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L41/00—Arrangements for maintenance, administration or management of data switching networks, e.g. of packet switching networks
- H04L41/08—Configuration management of networks or network elements
- H04L41/0803—Configuration setting
- H04L41/0813—Configuration setting characterised by the conditions triggering a change of settings
- H04L41/082—Configuration setting characterised by the conditions triggering a change of settings the condition being updates or upgrades of network functionality
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L43/00—Arrangements for monitoring or testing data switching networks
- H04L43/08—Monitoring or testing based on specific metrics, e.g. QoS, energy consumption or environmental parameters
- H04L43/0852—Delays
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L43/00—Arrangements for monitoring or testing data switching networks
- H04L43/16—Threshold monitoring
Landscapes
- Engineering & Computer Science (AREA)
- Computer Networks & Wireless Communication (AREA)
- Signal Processing (AREA)
- Theoretical Computer Science (AREA)
- Software Systems (AREA)
- Physics & Mathematics (AREA)
- General Engineering & Computer Science (AREA)
- General Physics & Mathematics (AREA)
- Data Mining & Analysis (AREA)
- Databases & Information Systems (AREA)
- Data Exchanges In Wide-Area Networks (AREA)
Abstract
本发明涉及基于容器的网络功能虚拟化平台,所述网络功能虚拟化平台至少包括至少一个主节点和至少一个从节点,所述主节点被配置为通过衡量基于干扰感知的待分配网络功能的特性、待分配网络功能的负载流的特征、各从节点之间的通信开销、各从节点内部的处理性能及各从节点内部的负载情况关系的方式来将引入至少两个从节点的主从模型分布式计算***中基于容器的网络功能分配到各个从节点。
Description
技术领域
本发明涉及网络虚拟化技术领域,尤其涉及基于容器的网络功能虚拟化平台。
背景技术
网络虚拟化是网络规模不断扩大以及各种新型应用和服务大规模部署后出现的一种新的趋势。它为解决当前网络僵化问题提供了一条有效的途径,大大提高了网络的灵活性和多元性。在网络虚拟化的场景下,物理网络资源池化后,可以被灵活的分割和合并,以逻辑资源方式按需分配给用户。因而,用户可以独立地部署和管理其所拥有的虚拟网络,而不用关心底层物理网络的实现。
传统的网络虚拟化技术主要通过扩展网络协议、使用封装或网络地址转换技术实现,这使得网络协议变得更加复杂。一群研究者开始考虑让这些网络硬件设备可编程化,并集中控制,将控制面和数据面分离,于是软件定义网络(Software-Defined Network,SDN)诞生了。各网络厂商制定了Open Flow,将控制平面和转发平面之间的通讯协议标准化,一方面定义了流量数据组织成流的形式的方法,另一方面定义了流按需控制的方法。
网络虚拟化的另一个分支就是网络功能虚拟化(Network Functions Virtualization,NFV),网络功能虚拟化最早由欧洲电信标准化协会(Europ eanTelecommunications Standards Institute,ETSI)提出。NFV技术通过将软硬件解耦以及功能抽象,使虚拟化网络功能运行在通用的X86架构硬件上,使网络功能不再依靠传统的专有硬件设备,使得数据中心可以使用通用的服务器、存储和交换设备取代专用的网元设备,即只需要在通用服务器上实现软件形式的网络功能。NFV术的落地为硬件资源池化、网络功能和网络服务快速部署、新业务的即时投入使用提供了新的可能。这样,大大加速了业务部署,简化了网络部署,并且减少了专用硬件部署和迭代更新的开销。
网络功能(Network Function,NF)是传统网络基础设施中的功能模块,具有固定的内部功能以及良好定义的外部接口。网络功能虚拟化将网络功能虚拟化成各类软件部署在虚拟资源上。虽然虚拟化网络功能在通用的x86服务器上运行,在运维和开发上节省了许多成本,但是相比于专用硬件上运行的网络功能,性能会有明显的下降。高性能数据平面平台的提出和开发使得虚拟化网络功能的性能得到明显改善。DPDK绕过了传统基于中断的内核网络栈包处理中的固有开销,使应用程序能够直接从NIC访问数据。PF_Ring通过使用允许用户空间和内核空间访问的环形缓冲区来实现线速度包捕获。Ne tmap预先分配包缓冲区,使用批处理减少***调用时间,实现了用户空间和内核空间之间共享内存缓冲区的零拷贝。虚拟网络功能体(Virtual Networ k Function,VNF)是传统基于专用硬件的网络功能体在NFV中的软件实现。一般而言,VNF主要由两种方式来实现:虚拟机(VM)或者容器(containe r)。
随着高性能数据平面平台的提出和开发,研究人员提出和设计了许多N FV框架和NFV平台/即网络功能虚拟化平台。例如,ClickOS是基于XEN和C lick模块化路由器实现的一个NFV平台,ClickOS使用netmap和VALE swi tch在运行Click软件路由的轻量级虚拟机之间移动数据。他们通过解决hy pervisor的网络I/O管道中的瓶颈和使用ClickOS,一种轻量级,启动速度快的迷你操作***来提高Xen的网络性能。又例如,E2是一个端到端中间件编排的基于DPDK的框架,包括放置、资源和元数据管理以及服务链。其中, DPDK(DataPlane Development Kit)是Intel为在X86平台上开发高速网络应用而推出的一组库和驱动,大多数情况下运行在Linux用户空间。DPDK 通过一系列优化技术来提高通用服务器的收发包能力,使得在通用服务器上用软件实现的网络功能可以达到与专用硬件设备相同的速度。
以上这些NFV框架和平台都是基于VM这种平台虚拟化技术的,虽然虚拟机提供了良好的隔离性和可移植性,但是虚拟机消耗资源较多,影响平台的扩放性。而容器是一种更加轻量级的操作***虚拟化技术,在不要求虚拟网络功能迁移的场合下具有较大的资源成本优势,其利用Namespace特性实现资源隔离以及利用cgroups特性实现资源管理,其为网络功能虚拟化平台提供VNF的运行环境。相比于虚拟机,容器具有轻量级、启动速度快等优点,而且由于少了Guest OS这一级,大大节省了资源,从而使得主机能够启动更多数量的容器实例。例如,OpenNetvm是一个可扩展的、高效的基于DPDK 的包处理框架,支持通过服务链动态控制包。OpenNetVM在Docker容器中部署网络功能,通过不同的服务提供者促进NFS(Network File System,网络文件***)的开发,同时最小化内存消耗和启动时间。OpenNetvm使用Dock er这种容器技术使得每个虚拟网络功能消耗的资源更少,性能更高,但是其设计中每个网络功能需要独占一个CPU核心,因此无法运行较多的网络功能。
NFV平台上运行的NF拥有异构的处理要求,因此需要不同CPU资源,然而OS调度器并不能感知这些需求,通常会均分CPU资源。NF的CPU资源需求是由NF类型和其工作负载的流特征决定的。流特征包括流的包到达速率、包大小和延迟需求。比如其他流特征相同的两个同种NF,包到达速率高的N F需要更多的CPU资源来处理更多的包。OS调度器的均分CPU策略会导致C PU资源的浪费以及部分NF的性能需求得不到满足。因此,NFV平台需要合理的CPU资源分配策略来满足拥有异构的处理要求的NF的性能需求。此外,由于流速率的波动,NFS上的工作负载具有时变性,对于资源的需求随着工作负载的变化而变化。静态分配虚拟资源将会造成资源的浪费或者违反SLA。
此外,一方面由于对本领域技术人员的理解存在差异;另一方面由于发明人做出本发明时研究了大量文献和专利,但篇幅所限并未详细罗列所有的细节与内容,然而这绝非本发明不具备这些现有技术的特征,相反本发明已经具备现有技术的所有特征,而且申请人保留在背景技术中增加相关现有技术之权利。
发明内容
针对现有技术之不足,例如OS调度器的均分CPU策略会导致CPU资源的浪费以及部分NF的性能需求得不到满足、以及静态分配虚拟资源将会造成资源的浪费或者违反SLA的问题,本发明提供了一种基于容器的网络功能虚拟化平台,其目的在于提高***并行处理异构NF的性能,为异构流提供性能保证;其目的还在于动态分配容器的虚拟资源,不仅容器性能得到了保证且同时最小化了资源部署量。此外,该网络功能虚拟化平台基于CPU复用启用规则复用VNF,共用不同VNF之间的相同数据包处理模块或VNF并行处理数据包来优化NFV平台的性能。具体地:
基于容器的网络功能虚拟化平台,所述网络功能虚拟化平台至少包括至少一个主节点和至少一个从节点,所述主节点被配置为通过其基于干扰感知的情况对待分配网络功能的特性、待分配网络功能的负载流的特征、各从节点之间的通信开销、各从节点内部的处理性能及各从节点内部的负载情况关系进行衡量的方式来将引入至少两个从节点的主从模型分布式计算***中基于容器的网络功能分配到各个从节点。为进一步明确上述语句的含义,以下将上述语句拆分简化:所述主节点用于将网络功能分配到各个从节点。其中,网络功能指的是主从模型分布式计算***中基于容器的网络功能。网络功能是放在容器中运行的。其中,主从模型分布式计算***指的是引入至少两个从节点的主从模型分布式计算***。其中,分配网络功能的方式是:通过所述主节点对若干个信息进行衡量的方式。其中,对若干个信息进行衡量是指:基于干扰感知的情况对若干个信息进行衡量。其中,若干个信息至少包括以下五个信息:待分配网络功能的特性、待分配网络功能的负载流的特征、各从节点之间的通信开销、各从节点内部的处理性能及各从节点内部的负载情况关系。其中,基于容器的网络功能虚拟化平台即指的是基于容器的 NFV平台,容器为网络功能虚拟化平台/NFV平台提供虚拟网络功能/VNF的运行环境。以下进一步地对上述语句进行展开解释:“基于干扰感知的情况”指的是:基于不同类型NF之间相互产生干扰而导致不同性能下降程度的情况。优选地,主节点通过其基于干扰感知的情况对所述主节点对若干个信息进行衡量的方式可以确定其中干扰最小的子节点。在所述网络功能虚拟化平台上进行的大量测量实验表明,同主机内的NF会互相干扰,影响干扰的因素主要是NF的数量和NF的种类两个因素,即不同的NF相互产生干扰的程度也会不同。为了寻找规律性,本发明将现有NF根据其功能需求进行分类,并将相同或不同类别NF交叉同组进行性能测量,得出相互干扰导致的性能下降程度。本发明中将现有NF分为六类,第一类NF只需要对包的IP进行读取和识别,例如网关;第二类NF需要对包的IP和port进行读取和识别,例如防火墙和监控;第三类NF需要对包的IP、port以及内容进行读取和识别,例如NIDS;第四类NF需要对包的IP进行读和写,例如负载均衡和代理;第五类NF需要对包的IP和port进行读和写,例如NAT;第五类NF需要对包的IP、port以及内容进行读和写,例如加密和解密。前三类NF在数据中心中占有75%以上的比例,并且最后一种NF的占比不超过5%。其中,针对“待分配网络功能的特性、待分配网络功能的负载流的特征”:待分配网络功能的特性至少包括网络功能/NF的类型,前期的测量实验结果表明,NF的类型不同,其需要的CPU资源不同。在NF负载相同的情况下,即NF上的流的流特征相同,NF的处理函数越复杂,其需要的CPU资源也就越多。比如执行加密操作的NF比执行简单路由操作的NF所需的CPU资源多。在NF类型相同的情况下,NF上的负载不同。即NF上的流的流特征不同,NF需要的C PU资源也不同。待分配网络功能的负载流的特征可以是流特征,而影响CPU 资源需求的流特征至少包括流速率、包大小、延迟需求。在NF类型相同以及其他流特征相同的情况下,流速率越大,NF所需的CPU资源就越多。同样,在NF类型相同以及其他流特征相同的情况下,流的包大小越大,NF所需的 CPU资源就越多。在NF类型相同以及其他流特征相同的情况下,NF要求的延迟越小,NF所需的CPU资源就越多。其中,针对“各从节点之间的通信开销、各从节点内部的处理性能及各从节点内部的负载情况”:主节点上的主控程序创建并维护了一张全局资源分配表。该全局资源分配表中至少包括上述若干个信息。全局资源分配表记录着各个子节点的资源分配情况,并支持动态扩展。全局资源表数据结构中的变量至少包括子节点id、核id、核已分配CPU资源大小核上存放的NFS的instance id以及每个NF所分配的CP U资源大小。每个NF在分配了CPU资源并成功创建前,主控程序查询全局资源表,根据NF所需的CPU资源筛选出合适的子节点,然后选择干扰最小的子节点上的指定核进行放置,这个过程为初次NF放置和资源分配。
根据一种优选实施方式,所述网络功能虚拟化平台至少包括主节点网络功能调度模块、主从节点通信模块和从节点网络功能管理模块,其中,所述主节点网络功能调度模块被配置为执行以下步骤中的一个或几个:初始化流表;查询流表进行包转发;为新流的数据包创建NF并分配CPU资源,所述主从节点通信模块被配置为执行以下步骤中的一个或几个:查询主节点容器 ip转化表IDP;以将目的NF的instance id转化为所在容器的ip;并通过容器间的跨主机通信网络flannel将包转发至对应的ip的容器,所述从节点网络功能管理模块至少包括用于对网络功能运行状态进行监控的监控模块和用于实现不同网络功能之间的资源隔离的资源隔离模块。
优选地,所述主节点网络功能调度模块的数据结构包括:记录平台已有流的流表ft,记录各个从节点的状态信息结构node_status,包的五元组信息5tuple,以及所属流的流特征(其至少包括流速率rate、延迟latency、所需NF服务链sc等等)。
优选地,构建flannel网络,实现主从节点的包转发和各从节点容器之间的包转发。所述Flannel在每个节点中运行flanneld作为代理,flannel d会为所在节点从主从节点集群的网络地址空间中,获取一个小的子网段,本节点内所有容器的IP地址都将从中分配。所述flanneld将本节点获取的子网段以及用于节点间通信的公网IP通过etcd存储起来。各节点上的fla nneld通过监听etcd可以获取其他子网段和其他节点公网IP的映射关系。所述flanneld通过hostgw的方式封装包实现不同节点之间的包转发。因为各节点处于同一子网,之间可以直接互相访问,故可直接设置转发目的节点的公网IP为网关。
根据一种优选实施方式,所述初始化流表的步骤至少包括以下操作中的一个或几个:设置hash表的各种参数;调用数据平面开发套件DPDK的has h表创建函数rte_hash_create建立所述流表的hash表;并为所述流表项预先分配空间;根据生成的hash表以及流表项flow_entry获得流表ft,所述查询流表进行包转发的步骤至少包括以下操作中的一个或几个:根据当前到达数据包的五元组信息在hash表中寻找相应的key-value键值对,在匹配得到与当前到达数据包的五元组信息相应的key-value键值对时,找到对应的流表项中的NF服务链,将包传给对应的NF服务链,所述为新流的数据包创建NF并分配CPU资源的步骤至少包括以下操作中的一个或几个:根据当前到达数据包的五元组信息在hash表中寻找相应的key-value键值对,在未匹配到与当前到达数据包的五元组信息相应的key-value键值对时,读取配置文件,创建流所需的NF服务链,并在hash表中***相应的键值对和流表中***相应的流表项,根据数据包所属流的流特征分配CPU资源。
具体地:hash表的hash参数(rte_hash_parameters)至少包括hash 表的名字name、表项最大数目entries、key长度key_len、hash函数rte_ hash_function、hash函数初始值hash_func_init_val、NUMA套接字socke t_id中的一个或几个。优选地,根据生成的hash表以及流表项flow_entry 生成流表ft。其中,流表项中至少包括流中数据包的五元组信息5tuple、所属的NF服务链sc、数据包的数量统计信息packet_count、字节统计信息byte_count中的一个或几个。其中,五元组信息至少包括源ip地址src_ip、源端口src_port、目的端口dst_ip、目的端口dst_port以及协议proto。
其中,所述hash表的名字参数设置为包含当前运行的rte_lcore_id() 和***时间周期数rte_get_tsc_cycles()的字符串s。所述hash表的表项最大数目参数设置为默认流表项最大数目。所述hash表的key长度参数设置为数据包的五元组数据结构的大小。所述hash表的hash函数参数设置为数据平面开发套件DPDK提供的hash函数rte_jhash。所述hash表的hash 函数初始值参数设置为0。所述hash表的NUMA套接字参数由调用数据平面开发套件DPDK提供的函数rte_socket_id获得。
根据一种优选实施方式,所述主节点网络功能调度模块被配置为执行以下步骤中的一个或几个:对于到达的数据包,基于其包头的五元组信息调用数据平面开发套件DPDK提供的函数rte_hash_lookup_with_hash查询所述流表,如果匹配得到与当前到达数据包的五元组信息相应的流表项,找到对应的流表项中的NF服务链,将包传给对应的NF服务链,即服务链的第一个 NF instance id的NF,如果未匹配到与当前到达数据包的五元组信息相应的流表项,读取配置文件,根据包的五元组信息匹配流规则,创建所需的N F实例,调用数据平面开发套件DPDK的提供的函数rte_hash_add_key_with _hash向流表的hash填添加新的键值对,并向流表添加一项新的流表项。
根据一种优选实施方式,所述主节点网络功能调度模块被配置为执行以下步骤中的一个或几个:根据到达的数据包所属流的流特征,根据CPU资源分配策略给新创建的NF服务链中的每个NF分配CPU资源,并查询每个子节点的NF分配和CPU资源使用状态,通过NF放置策略将NF放置在子节点上,其中,所述CPU资源分配策略是指基于测量实验经验通过cgroup将CPU资源合理分配给新创建的NF服务链中的每个NF,所述NF放置策略是指基于子节点的空闲CPU资源大于NF所需CPU资源的分配条件从多个子节点中挑选出符合该分配条件的至少一个子节点,根据干扰感知的情况来将NF放置于其中干扰最小的子节点上。优选地,所述流特征主要包含包大小、流速率和延迟需求。经过大量的测量实验发现,同一类型NF满足不同流特征的流的S ervice-Level Agreement(SLA,服务等级协议)需要的CPU资源不同。
根据一种优选实施方式,至少一个从节点上设置有至少一个所述监控模块,所述监控模块被配置为执行以下步骤中的一个或几个:采用轮询的方式反复读取NF的数据结构以监控流的包到达速率和包延迟,根据流需求的变化来动态地调整网络功能的资源分配,在NF的数据结构中所记录的现在包到达速率与之前包到达速率之间的差值大于设定阈值时,或在包的平均延迟大于该包所属流SLA验证所规定的最大包延迟时,对NF的CPU资源进行重新分配。
优选地,所述基于容器的网络功能虚拟化平台维护了一张全局的资源分配表,上面记录着每个NF所在的子节点序号以及其所分配的CPU资源。每个NF都维护了一张数据结构表,记录其状态,例如之前的包到达速率,现在的包到达速率,以及包的平均延迟。包到达速率由统计每个NF的ring环中的包到达速率获得,可以通过计算主节点rx线程将包入队第一个NF的r ing环队列的速率或者上个NF的tx线程将包入队下个NF的ring环队列的速率。包的延迟通过主节点rx线程打时间戳和tx线程读取时间戳计算获得。
根据一种优选实施方式,所述监控模块还被配置为执行以下步骤中的一个或几个:对其所服务的流的流特征以及各个NF的资源使用情况进行监控,根据其所服务的流的流特征的变化来相应地调整NF所服务的资源,调整NF 所服务的资源后发送信息至主节点,通知主节点修改全局资源表,以此通过细粒度的底层统计NF的资源使用状况,实现各NF之间的CPU资源隔离。
优选地,通过NF复用,有效的节省CPU资源。所述的基于容器的网络功能虚拟化平台上进行的大量测量实验表明,网络功能上的负载,即流的包到达速率,和所需的CPU资源并不是线性的关系。同一核上的NF数量增多会产生大量额外的CPU开销,比如进程切换开销。所以进行NF复用可以减少NF数量,从而减少额外的CPU开销,从而节省CPU资源。
一种基于容器的网络功能虚拟化方法,所述网络功能虚拟化方法至少包括以下步骤中的一个或几个:通过所述主节点基于干扰感知的情况对待分配网络功能的特性、待分配网络功能的负载流的特征、各从节点之间的通信开销、各从节点内部的处理性能及各从节点内部的负载情况关系进行衡量的方式来将引入至少两个从节点的主从模型分布式计算***中基于容器的网络功能分配到各个从节点,从而为该主从模型分布式计算***提供网络功能服务、节点间的负载均衡以及适应流负载的动态波动。
根据一种优选实施方式,所述网络功能虚拟化方法中至少包括主节点网络功能调度模块、主从节点通信模块和从节点网络功能管理模块,所述从节点网络功能管理模块至少包括监控模块和资源隔离模块,其中,由所述主节点网络功能调度模块执行初始化流表、查询流表进行包转发、为新流的数据包创建NF并分配CPU资源中的一个或几个步骤,由所述主从节点通信模块执行查询主节点容器ip转化表IDP、以将目的NF的instance id转化为所在容器的ip、并通过容器间的跨主机通信网络flannel将包转发至对应的i p的容器中的一个或几个步骤,由所述监控模块对网络功能运行状态进行监控,由所述资源隔离模块实现不同网络功能之间的资源隔离。
优选地,所述主节点用于放置NF到从节点和动态分配资源给NF,所述从节点用于执行NF并监控NF状态。
由基于容器的网络功能虚拟化平台所提供的NF管理框架,所述NF管理框架被配置为:由基于容器的网络功能虚拟化平台对任意一个到来包执行查询流表的步骤、在定制NF服务链中传递的步骤、对于所属流进行监控的步骤中的一个或几个;由基于容器的网络功能虚拟化平台对任意一个NF执行创建步骤、动态分配资源步骤、迁移步骤、销毁步骤、基于CPU复用规则的复用步骤中的一个或几个,其中,所述CPU复用规则至少包括R1~R4中的一个或几个,R1:流所需的服务链中有与被复用NF相同类型的NF;R2:流与复用NF上的所有流是可以相互信任的,不会存在其中一条流恶意抢占另外流的CPU处理时间;R3:复用之后,能满足复用NF上所有流的SLA需求;R 4:复用之后,整体的CPU资源使用率会降低。
通过本发明所提供的基于容器的网络功能虚拟化平台,至少能够取得以下有益效果中一个或几个:
(1)本发明所提供的基于容器的网络功能虚拟化平台,提供了一个轻量并高效的多节点NF管理框架,利用了流表和容器ip转化表IDP,能够实现多节点之间的灵活的包转向,并通过使用容器技术提供了隔离性强、易于部署、可扩展性好的NF对到来包进行处理。
(2)本发明所提供的基于容器的网络功能虚拟化平台,为NFV网络提供了一个动态的、细粒度的资源管理框架,通过考虑流的流特征以及经验性的测量结果,查询全局资源分配表来为每个NF分配最合适的子节点、CPU核和最有效的CPU资源。
(3)本发明所提供的基于容器的网络功能虚拟化平台,实现了实时的流监控和动态的资源调整。通过统计和计算,基于容器的网络功能虚拟化平台可以实时监控每个NF上的包到达速率、丢包情况以及处理延迟。通过这些数据,基于容器的网络功能虚拟化平台可以使用cgroup动态调整NF的C PU资源分配,包括CPU资源分配百分比和所在CPU核。甚至通过NF的迁移,调整NF所在的子节点位置。
(4)本发明所提供的基于容器的网络功能虚拟化平台,支持NF的复用来有效的节省CPU资源并提高吞吐率和降低延迟。通过在NF内部创建子流表,实现NF在处理完包后能够根据包的五元组将包转发给不同的目的NF。
附图说明
图1为本发明所提供的基于容器的网络功能虚拟化平台的***架构简化示意图;和
图2为本发明所提供的对到来包进行处理的流程简化示意图。
具体实施方式
为了使本发明的目的、技术方案及优点更加清楚明白,以下结合附图及实施例,对本发明进行进一步详细说明。应当理解,此处所描述的具体实施例仅仅用以解释本发明,并不用于限定本发明。此外,下面所描述的本发明各个实施方式中所涉及到的技术特征只要彼此之间未构成冲突就可以相互组合。
在详细解释本发明的技术方案之前,先对基于容器的网络功能虚拟化平台的***架构进行简要介绍。如图1所示出的为本发明所提供的基于容器的网络功能虚拟化平台的***架构简化示意图,如图2所示出的为本发明所提供的对到来包进行处理的流程简化示意图。为便于理解,以下对图1及图2 中所包含的步骤内容作进一步地说明:
如图1所示,基于容器的网络功能虚拟化平台至少包括两种节点。该平台至少包括负责NF管理和资源调度的主节点。该平台至少包括负责NF运行和记录NF状态的子节点。该平台的主要功能是接收包,并根据包的需求创建NF服务链,进行初始放置和资源分配;或者转发包到其NF服务链上进行包处理,并对包到达速率和处理延迟进行计算和监控,实现动态的资源分配调整;对于满足复用条件的两条流,实现NF的复用,节省CPU资源。
根据一种优选实施方式,负责主节点的主节点网络功能调度模块被配置为执行以下步骤中的一个或几个:
1、初始化主控程序(步骤S4~S11)。初始化共享内存、流表、容器ip转化表IDP以及全局资源分配表。创建rx和tx线程,rx线程调用DPDK的rte _eth_rx_burst函数从网卡读取包进行包处理,查询流表得到目的NF的inst ance id。查询容器ip转化表IDP得到目的NF所在容器的ip地址。tx线程调用DPDK的onvm_pkt_enqueue_port函数将包送出主节点,并通过flannel 网络送到子节点上的目的NF所在的容器中。
2、创建NF(步骤S4~S11)和销毁NF(步骤S14)。根据NF上负载的流特征给NF分配CPU资源,查询全局资源表,给NF绑定子节点上的CPU核。初始化NF配置结构,给NF分配instance id。与子节点通信更新NF的状态,完成NF的初始化和创建。在NF创建成功后,将NF所在服务链信息写入流表。将NF的资源分配信息写入全局资源分配表。当NF上的负载流结束时,需要销毁NF。主控程序修改NF运行信号量,通知子节点结束NF运行进程,清理NF相关数据结构。销毁成功后,主控程序将分配的instance id回收,清除流表和全局资源表中相应的表项。
3、动态分配CPU资源(步骤S12)。当流速率发生变化时,主控程序将会收到来自子节点的NF状态信息。主控程序会根据信息中NF变化的状态即流速率重新分配CPU资源。如果NF所在核可以满足该NF的CPU需求,则直接改变NF的分配资源大小。如果NF所在核无法满足该NF的CPU需求,就需要将NF迁移到其他核上。如果同子节点内存在核可以满足该NF的资源需求,则使用cgroup为NF重新绑定核。如果同子节点内没有核可以满足该NF的资源需求,则需要在不同节点之间迁移NF。
根据一种优选实施方式,负责子节点的从节点网络功能管理模块被配置为执行以下步骤中的一个或几个:
1、NF的运行(步骤S3)。子节点上的NF运行在容器中,通过调用DPDK 从网卡端口读取数据包进行处理。处理完后,如果该NF不是服务链中最后一个NF,则将数据包入队下个目的NF的ring环队列中。如果该NF是服务链中最后一个NF,则将数据包送出端口。
2、NF的监控(步骤S3)。子节点对容器中的NF进行监控。监控对象至少包括NF的包到达速率、包处理时间、NF的实际CPU使用情况中的一个或几个。并将这些信息通过flannel网络反馈给主节点。
根据一种优选实施方式,接下来简要介绍基于容器的网络功能虚拟化平台对到来包的简要处理流程,如图2所示,至少包括以下步骤中的一个或几个:
步骤S1:主节点主控程序的rx线程反复查询如图2所示的Ports(网卡端口)是否有包,如果有包到来,则调用DPDK的rte_eth_rx_burst函数从网卡端口批量读取数据包,并将数据包的存放地址存放在主控程序rx线程的缓存区中,之后读取数据包的IP协议和源/目标地址和端口,调用rte_j hash函数得到这五元组的hash值,在如图2所示的flow table中寻找有无匹配的表项,即包的hash和表项中记录的hash值相等。如果有hash值相等的表项,并且包的五元组和流表项记录的五元组一样,则证明这个包属于该已有流,转入步骤(S2)。如果没有hash值相等的表项,则证明这个包属于新流,根据指定的NF复用规则,查找各个子节点中是否有满足规则的N F可以进行复用,如果存在,则转向步骤(S3)。如果各个子节点上都不存在满足复用条件的NF,则转向步骤(S4)。
步骤S2:据表项中记录的目的NF的service id,查询容器ip转化表I DP,得到目的NF所在的容器ip,通过建立的flannel网络,将包传递到它所需的已创建的服务链上。
步骤S3:查看复用NF的启用复用标志位。如果复用NF的启用复用标志位为1,则代表该NF已经启用复用了,在其子流表中为包所属的新流添加一个新表项,记录该新流的五元组,以及下个目的NF所在的容器ip。如果复用NF的启用复用标志位为0,则代表该NF没有启用复用,需要创建子流表,并为NF上原先的流和新流分别添加一个表项,分别记录原先流和新流的五元组,以及下个目的NF所在的容器ip。
步骤S4:根据这个流的服务需求创建一条新的NF服务链。创建NF需要先初始化NF相关配置,初始化NF的运行信号量,设置信号处理函数,初始化NF的函数功能表,包括四个函数,分别为NF设置函数,NF信息处理函数, NF回调函数和NF包处理函数。读取NF的命令参数,初始化运行环境,然后等待分配运行子节点和CPU核,以及CPU资源大小。然后转向步骤(S5)。
步骤S5:根据流的包大小、包到达速率、延迟需求以及NF类型,确定每个NF所需的CPU资源,查询全局资源分配表,挑选出符合分配条件的子节点,即空闲CPU资源大于NF所需CPU资源。如若有多个子节点满足条件,将NF放置干扰最小的子节点上。然后确定可满足NF资源分配需求的CPU核 id,并将NF的分配结果写回到全局资源分配表中。然后转向步骤(S6)。
步骤S6:根据NF的分配结果,在分配的子节点上创建容器,并通过fl annel网络将NF的初始化配置数据结构传给目的子节点。子节点在接收到N F的初始化配置数据结构后便在新创建的容器中运行程序根据配置创建NF。先读取调用NF时的命令参数,初始化运行环境DPDK,通过调用DPDK函数r te_thread_set_affinity绑定NF的运行线程到指定的CPU核上,并通过设置cgroup中的CPU份额cpu.cfs_quota_us值来限制NF所用的CPU资源。接下来为NF分配共享内存,并记录共享内存地址,包括ring环内存地址,N F数据结构内存地址,配置信息结构地址,端口信息内存地址等等。接下来初始化NF的配置信息,设置NF运行的核id为分配的核id,运行时间限制和处理包数量限制,如果没有限制则设为0,同时设置NF的instance为NF _NO_ID,NF的状态设为NF_WAITING_FOR_ID。从用于主控程序和NF之间传递消息的内存池中,取出一个消息结构,消息类型设为MSG_NF_STARTING,消息数据为该NF的配置信息,然后通过flannel网络将消息传送至主节点,并入队主节点主控程序的消息队列,该消息相当于通知主控程序,该NF申请启动。然后转向步骤(S7)。
步骤S7:主控程序会不断检查其消息队列是否有新的消息,读取消息队列中消息的数量,如果数量大于零,就将消息队列中所有消息出队。当主控程序接收到NF发来的消息类型为MSG_NF_STARTING的消息,主控程序会为这个NF分配一个instance id,这个instance id是唯一的,不同于其他已存在NF的instance id。更新NF配置数据结构上的instance id,并将NF 的状态变为NF_STARTING,将更新后的NF配置数据结构放到消息中,通过f lannel网络传给目的子节点上的目的容器,并将消息入队NF的消息队列。然后转向步骤(S8)。
步骤S8:NF接收到消息后,NF的状态更新为NF_STARTING,此时,NF 的运行信号量init_finished设为1,说明NF初始化完成。从用于主控程序和NF之间传递消息的内存池中,取出一个消息结构,消息类型设为MSG_NF _READY,消息数据为该NF的信息数据结构,然后通过flannel网络将消息传送至主节点,并入队主节点主控程序的消息队列,该消息相当于通知主控程序,该NF已经准备好接受包进行处理了。然后转向步骤(S9)。
步骤S9:当主控程序收到NF发来的消息类型为MSG_NF_READY的消息,会将NF的总数量加1,NF的状态更新为NF_RUNNING,并且NF状态更新的消息通过flannel网络传给目的子节点上的目的容器,并将消息入队NF的消息队列。然后转向步骤(S10)。
步骤S10:NF接收到消息后,NF的状态更新为NF_RUNNING,NF初始化完成,处于运行状态了。之后NF开始运行其函数功能表中的NF设置函数和包处理函数,接受发来的包,并对包进行包处理。然后转向步骤(S11)。
步骤S11:在流所需的NF服务链的所有NF创建完毕后,主节点的主控程序将新流的hash值和新创建NF服务链的每个NF的instance id写入流表。
根据一种优选实施方式,以下是对由基于容器的网络功能虚拟化平台所提供的NF管理框架的详细介绍,以进一步对上述执行步骤进行详细说明。如下所提及的S1~S15与上述内容中的S1~S15相互对应。
优选地,所述NF管理框架被配置为:对任意一个到来包执行查询流表的步骤S1、在定制NF服务链中传递的步骤S2、对于所属流进行监控的步骤 S3中的一个或几个;对任意一个NF执行创建步骤S4~S11、动态分配资源步骤S12、迁移步骤S13、销毁步骤S14、复用步骤S15中的一个或几个。
查询流表的步骤S1至少包括:获得所述到来包的包头的五元组信息ke y和预计算key的hash值hash.rss以及查询流表的hash表。优选地,读取所述到来包的包头,填充五元组信息key。其中,所述五元组信息至少包括所述到来包的源ip地址src_ip、源端口src_port、目的端口dst_ip、目的端口dst_port以及协议proto中的一个或几个。优选地,调用DPDK的has h表查询函数rte_hash_lookup_with_hash,输入参数以查询流表数据结构中的hash表,所述参数至少包括包五元组信息key以及预计算key的hash 值hash.rss。进一步优选地,在返回值为-ENOENT时,说明在hash表中没有找到key值,证明该包不属于平台中任意一个已有的流,即该包属于需要根据其需求定制化地创建一条新的NF服务链的新流。在返回值为正值时,说明该包属于已有流,所述返回值作为流表数据结构中数据数组的偏移量。流表数据结构中数据数组的偏移量对于key是唯一的。根据返回值,在流表数据结构中存放流表项的数据数组中找到对应的流表项,读取包传递的目的 NF的instance id。进一步地,在读取到包传递的目的NF的instance id 后,查询主节点容器ip转化表IDP将目的NF的instance id转化为所在容器的ip,并通过容器间的跨主机通信网络flannel的将包转发至对应的ip 的容器。其中,所述主节点容器ip转化表IDP记录着NF的instance id和所在容器的ip的一对一映射关系,容器ip由主机内运行的flanneld分配。 Flannel利用etcd用于存储整个集群的网络配置,其中最主要的内容是设置集群的网络地址空间。
在定制NF服务链中传递的步骤S2至少包括:根据查询流表的结果获取到包传递的目的NF的instance id后,获得目的NF所在的容器的ip,并将包传递到目的NF所在的容器。
对于所属流进行监控的步骤S3至少包括:统计每条流的包到达总数pk t_sum,计算包到达速率pkt_num和包平均延迟avg_latency。监控模块至少包括流速率监控模块和延迟监控模块。由于监控需要额外的统计和计算步骤,会引入额外的计算开销,因此设置全局变量MEASURE_RT和MEASURE_LA。当MEASURE_RT为1时,代表对包到达总数进行统计;MEASURE_RT为0时代表不对包到达总数进行统计。当MEASURE_LA为1时,代表对总延迟时间进行统计;当MEASURE_LA为0时代表不对总延迟时间进行统计。优选地,该平台还设置有用于计算统计数据并进行输出的时间频率变量,其默认值设为 1s。即每隔1s根据统计的包到达总数和总延迟时间计算包到达速率和包平均延迟。优选地,用户可以根据自己需求来动态调整这些变量的值,决定是否启用这些监控模块,以及监控数据输出的频率。
优选地,流速率的监控实现了对网卡端口和每个NF的接收线程rx和发送线程tx的包进行统计。由于DPDK支持批量同时处理多个包来实现高效的 I/O,所以网卡端口rx线程将从网卡批量读取一定量的包放入自己的数据结构,以避免包的多次拷贝,这里存放的不是包数据而是包存放的地址。批量处理的包数量的默认值为32,即一次读取32个包。但实际读取的包数量会≤32,因为网卡队列中的包数量可能小于32。每次读取后,会将实际读取的包的数量加到端口统计数据结构的rx统计值上。rx队列从网卡批量读取到包后,会读取包的包头,填充五元组信息key,根据五元组信息实现流的分类,查询流表,找到目的NF的instance id,将包入队目的NF的ring环队列。NF的rx线程会一直查询其ring环队列中是否有包,如果有包,则从r ing环中批量读取一定量的包放入自己的数据结构。同样能够避免包的多次拷贝,这里存放的也是包存放的地址而不是包数据。批量处理的包数量的默认值同样为32,即一次读取32个包。但实际读取的包数量会小于等于32,因为ring环队列中的包数量可能小于32。每次读取后,会将实际读取的包的数量加到NF统计数据结构的rx统计值上。当NF没被复用时,NF在被创建的时候会被指定下个目的NF的instance id,或被指定传出端口。当NF 不是包所属流的NF服务链中的最后一个NF并且下个目的NF在同一个节点中时,NF的tx线程在处理完包后会将包入队下个目的NF的ring环队列中。当NF是包所属流的NF服务链中的最后一个NF或者下个目的NF不在同一个节点中时,NF的tx线程在处理完包后会将包入队端口的发送队列中。每次入队后,会将实际入队的包的数量加到NF统计数据结构的tx统计值上。端口的tx线程将入队的包送出端口,并将实际送出端口的包的数量加到端口统计数据结构的tx统计值上。主线程每隔1s会根据这些数据计算出端口和每个NF接收和发送包的速率。端口或上个NF的tx入队速率可视为NF的包到达速率。
优选地,延迟的监控实现了对包处理延迟的监控。在网卡端口rx线程从网卡批量读取到包后,会对包打一个时间戳。每个NF在处理完包后,会读取包的时间戳,并进行***调用读取当前***时间,当前***时间减去时间戳就得到当前NF的包总处理时间,减去到上个NF的包总处理时间就得到当前NF的包处理时间。当包经过其所属流的NF服务链的最后一个NF后,网卡端口tx线程将包送出端口,进行***调用读取当前***时间,当前***时间减去时间戳就得到包通过NF服务链的总处理时间,也就是处理延迟。主线程每隔1s会根据这些数据计算出包所属流从进入端口,到每个NF,再最后从端口送出的各个阶段的平均处理时间。从端口进入再到最后从端口送出的平均处理时间可视为NF的平均延迟。
所述NF的创建步骤至少包括初始化NF、分配instance id和相应内存空间中的一个或几个。
优选地,调用创建NF的命令后,首先会初始化NF运行信号量,runnin g设为1,init_finished设为0,stopped设为0。设置信号处理函数,如果遇到SIGINT或者SIGTERM信号,则终止该NF的运行,即将running设为0, stopped设为1,若init_finished为0,代表该NF还未完成初始化,若in it_finished为1,代表该NF还已经完成初始化,还需调用nf_clean函数对该NF的内存等数据进行清理。然后初始化NF的函数功能表,为NF的函数功能表分配内存函数。优选地,函数功能表中存放着四个函数指针,分别为NF设置函数指针,NF信息处理函数指针,NF回调函数指针,NF包处理函数指针。接下来读取调用NF时的命令参数,初始化运行环境DPDK,查找主控程序预先分配的共享内存地址。所述共享内存地址至少包括ring环内存地址、NF数据结构内存地址、配置信息结构地址、端口信息内存地址中的一个或几个。接下来初始化NF的配置信息,设置NF运行的核id,运行时间限制和处理包数量限制。如果没有限制则设置NF运行的核id为0,同时设置 NF的instance为NF_NO_ID,NF的状态设为NF_WAITING_FOR_ID。
优选地,从用于主控程序和NF之间传递消息的内存池中,取出一个消息结构,消息类型设为MSG_NF_STARTING,消息数据为该NF的配置信息,然后将消息入队主控程序的消息队列,该消息相当于通知主控程序,该NF申请启动。主控程序会不断检查其消息队列是否有新的消息,读取消息队列中消息的数量,如果数量大于零,就将消息队列中所有消息出队。对于每一个消息,读取消息结构中的类型变量,针对不同类型的消息,主控程序采取不同的操作。如果主控程序收到NF发来的消息类型为MSG_NF_STARTING的消息,主控程序会为这个NF分配一个instance id。这个instance id是唯一的,不同于其他已存在的NF的instanceid。通常会使用一个变量来记录已创建NF的数量,新创建的NF的instance id为该变量值加1。如果instan ce id的值大于设定的最大NF数量值MAX_NFS,说明没有可用ID分配给NF,NF的状态变为NF_NO_IDS。如果NF的instance id是一个被正在运行的NF 使用的ID,NF的状态设为NF_ID_CONFLICT。如果NF分配到可用唯一的ins tance id,那么将这个NF绑定到指定的节点上的指定的核上,更新NF配置数据结构上的instance id、节点id、核id信息中的一个或几个,并设置N F的tag为该NF的类型标志。该NF的类型标志可以比如防火墙。同时设置 NF的存活时间和最大处理包数量,如果没有限制,则设为0。设置完NF配置数据结构中的所有变量后,NF的状态变为NF_STARTING。NF在向主控程序的消息队列发送完消息类型为MSG_NF_STARTING的消息后,一直查询其状态是否从NF_WAITING_FOR_ID更新为NF_STARTING。如果状态在NF存活时间之内更新为NF_STARTING,说明主控程序已经收到并处理完了消息,为NF分配了一个唯一的instance id。此时,NF的运行信号量init_finished设为1,说明NF初始化完成。
优选地,从用于主控程序和NF之间传递消息的内存池中,取出一个消息结构,消息类型设为MSG_NF_READY,消息数据为该NF的信息数据结构,然后将消息入队主控程序的消息队列。该消息相当于通知主控程序,该NF 已经准备好接受包进行处理了。如果主控程序收到NF发来的消息类型为MS G_NF_READY的消息,会将NF的总数量加1,NF的状态更新为NF_RUNNING。 NF在向主控程序的消息队列发送完消息类型为MSG_NF_READY的消息后,一直查询其状态是否从NF_STARTING更新为NF_RUNNING。如果状态在NF存活时间之内更新为NF_RUNNING,说明主控程序已经收到并处理完了消息,NF 初始化完成,处于运行状态了。之后NF开始运行其函数功能表中的NF设置函数,有些NF需要设置函数进行NF处理包之前的配置。比如防火墙,在N F处理包之前需要读取规则配置文件,导入设置的防火墙规则。在NF设置函数执行完后,NF在其运行时间内不断查询其ring环中是否有包,如果有包,则批量读取,批处理的默认值为32,即一次读取32个进行处理,如果ring 环中的包数量小于32,则全部读取出来。NF对读取出来的包调用其函数功能表中的NF包处理函数进行处理,处理完后将包入队下个NF的ring环队列或者从端口发送出去。如果NF的存活时间耗尽或者处理的包数量到达限制,则设置NF运行信号量running为0。
所述动态分配NF资源步骤S12至少包括:获取流的流特征以及SLA需求,根据之前测量的实验结果,得出NF的CPU资源需求,查找全局资源分配表,初次放置NF和分配CPU资源,之后根据监控模块的数据动态调整CP U资源的分配。
主节点上的主控程序创建并维护了一张全局资源分配表。全局资源分配表记录着各个子节点的资源分配情况,并支持动态扩展。全局资源表数据结构中的变量至少包括子节点id、核id、核已分配CPU资源大小核上存放的N FS的instance id以及每个NF所分配的CPU资源大小中的一个或几个。每个NF在分配了CPU资源并成功创建前,主控程序查询全局资源表,根据NF 所需的CPU资源筛选出合适的子节点,然后选择干扰最小的子节点上的指定核进行放置,这个过程为初次NF放置和资源分配。每个NF在分配了CPU资源并成功创建后,主控程序会将放置结果写入全局资源表,即在放置的子节点id的指定核id的表项下,加入该NF的instance id和其分配的CPU资源大小,并更新该核已分配的CPU资源大小。
在实际网络环境中,流的流速率并不是一成不变的。由于流速率的波动,NFS上的工作负载具有时变性,对于资源的需求随着工作负载的变化而变化。静态分配虚拟资源将会造成资源的浪费或者违反SLA。因此,需要根据监控的数据,动态的调整NF的资源分配。优选地,对于每条流保留一个变量,记录之前的流速率。进一步优选地,当实时监控的流速率与之前的流速率超过一定阈值时,改变NF的CPU资源分配大小,并更新全局资源分配表中该N F的CPU资源分配大小和所在核的已分配CPU资源大小。
所述NF迁移步骤S13至少包括:同子节点内NF迁移只需重新将NF绑定核;不同节点间NF的迁移需要将NF的状态数据打包,然后在新节点重新创建NF。当NF由于其负载变大而需要增大CPU资源分配时,如果NF所在核无法满足该NF的CPU需求,就需要将NF迁移到其他核上。首先查询全局资源表,查看同子节点内是否有核可以满足该NF的资源需求。优选地,如果存在核可以满足该NF的资源需求,则使用cgroup为NF重新绑定核。优选地,如果没有核可以满足该NF的资源需求,则需要在不同节点之间迁移NF,需要将NF的状态数据打包,通过flannel网络传递,然后在新节点重新创建NF。
所述NF销毁步骤S14至少包括修改NF运行信号量、结束NF运行进程、清理NF相关数据结构中的一个或几个。优选地,修改NF运行信号量stopp ed为1,结束NF运行进程。如果NF处于睡眠状态,就将NF唤醒,然后再结束进程。检查NF运行信号量init_finished的值。如果NF运行信号量i nit_finished值为0,则代表NF初始化未完成,不需要接下来的数据结构清理的步骤。如果NF运行信号量init_finished值为1,则代表初始化已完成,接下来需要清理NF相关的数据结构。首先释放NF存放包的ring环内存,然后依次释放NF的tx线程的缓存区、NF的函数功能表、NF的信息池,并清理流表中的对应流表项和全局资源分配表对应表项。
所述NF复用步骤S15至少包括:判断是否满足复用条件;如果满足复用条件,则在NF内创建子流表,并将NF复用启用标志位置为1。
通过前期大量的测量实验发现,复用NF即两个不同的流共用一个NF可以节省CPU资源,但也不是所有情况下,复用NF都能节省CPU资源。为此制定了CPU复用启用规则:
(1)流所需的服务链中有与被复用NF相同类型的NF。
(2)流与复用NF上的所有流是可以相互信任的,不会存在其中一条流恶意抢占另外流的CPU处理时间。
(3)复用之后,能满足复用NF上所有流的SLA需求。
(4)复用之后,整体的CPU资源使用率会降低。
满足以上四条规则后,即可复用NF。在复用NF之后,将NF的复用启用标志位置为1,NF会处理来自不同流的包。因此,NF在处理完包后,需要查询流表,根据包所属的流来转发包到下一个NF或者送出端口。每个NF复用后会创建一个子流表,记录流的五元组来区分不同流以及对应的下个NF的i nstance id或者转发出去的端口id。当复用NF上某个流结束需要销毁服务链时,如果服务链中的复用NF还需要服务其他多条流,即流表上还有其他多项流表项,那么只需将流表中关于这条流的流表项删除。如果服务链中的复用NF只需要服务另一条流,即流表上只有其他一项流表项,需要将流表中关于这条的流表项删除后再将NF启用复用标志位置0。
本领域的技术人员容易理解,以上所述仅为本发明的较佳实施例而已,并不用以限制本发明,凡在本发明的精神和原则之内所作的任何修改、等同替换和改进等,均应包含在本发明的保护范围之内。
Claims (10)
1.基于容器的网络功能虚拟化平台,所述网络功能虚拟化平台至少包括至少一个主节点和至少一个从节点,其特征是,
所述主节点被配置为通过其基于干扰感知的情况对待分配网络功能的特性、待分配网络功能的负载流的特征、各从节点之间的通信开销、各从节点内部的处理性能及各从节点内部的负载情况关系进行衡量的方式来将引入至少两个从节点的主从模型分布式计算***中基于容器的网络功能分配到各个从节点。
2.根据权利要求1所述的网络功能虚拟化平台,其特征是,
所述网络功能虚拟化平台至少包括主节点网络功能调度模块、主从节点通信模块和从节点网络功能管理模块,其中,
所述主节点网络功能调度模块被配置为执行以下步骤中的一个或几个:初始化流表;查询流表进行包转发;为新流的数据包创建NF并分配CPU资源,
所述主从节点通信模块被配置为执行以下步骤中的一个或几个:查询主节点容器ip转化表IDP;以将目的NF的instance id转化为所在容器的ip;并通过容器间的跨主机通信网络flannel将包转发至对应的ip的容器,
所述从节点网络功能管理模块至少包括用于对网络功能运行状态进行监控的监控模块和用于实现不同网络功能之间的资源隔离的资源隔离模块。
3.根据前述权利要求之一所述的网络功能虚拟化平台,其特征是,所述初始化流表的步骤至少包括以下操作中的一个或几个:设置hash表的各种参数;调用数据平面开发套件DPDK的hash表创建函数rte_hash_create建立所述流表的hash表;并为所述流表项预先分配空间;根据生成的hash表以及流表项flow_entry获得流表ft,
所述查询流表进行包转发的步骤至少包括以下操作中的一个或几个:根据当前到达数据包的五元组信息在hash表中寻找相应的key-value键值对,在匹配得到与当前到达数据包的五元组信息相应的key-value键值对时,找到对应的流表项中的NF服务链,将包传给对应的NF服务链,
所述为新流的数据包创建NF并分配CPU资源的步骤至少包括以下操作中的一个或几个:根据当前到达数据包的五元组信息在hash表中寻找相应的key-value键值对,在未匹配到与当前到达数据包的五元组信息相应的key-value键值对时,读取配置文件,创建流所需的NF服务链,并在hash表中***相应的键值对和流表中***相应的流表项,根据数据包所属流的流特征分配CPU资源。
4.根据前述权利要求之一所述的网络功能虚拟化平台,其特征是,所述主节点网络功能调度模块被配置为执行以下步骤中的一个或几个:
对于到达的数据包,基于其包头的五元组信息调用数据平面开发套件DPDK提供的函数rte_hash_lookup_with_hash查询所述流表,
如果匹配得到与当前到达数据包的五元组信息相应的流表项,找到对应的流表项中的NF服务链,将包传给对应的NF服务链,即服务链的第一个NF instance id的NF,
如果未匹配到与当前到达数据包的五元组信息相应的流表项,读取配置文件,根据包的五元组信息匹配流规则,创建所需的NF实例,调用数据平面开发套件DPDK的提供的函数rte_hash_add_key_with_hash向流表的hash填添加新的键值对,并向流表添加一项新的流表项。
5.根据前述权利要求之一所述的网络功能虚拟化平台,其特征是,所述主节点网络功能调度模块被配置为执行以下步骤中的一个或几个:
根据到达的数据包所属流的流特征,根据CPU资源分配策略给新创建的NF服务链中的每个NF分配CPU资源,并查询每个子节点的NF分配和CPU资源使用状态,通过NF放置策略将NF放置在子节点上,其中,
所述CPU资源分配策略是指基于测量实验经验通过cgroup将CPU资源合理分配给新创建的NF服务链中的每个NF,
所述NF放置策略是指基于子节点的空闲CPU资源大于NF所需CPU资源的分配条件从多个子节点中挑选出符合该分配条件的至少一个子节点,根据干扰感知的情况来将NF放置于其中干扰最小的子节点上。
6.根据前述权利要求之一所述的网络功能虚拟化平台,其特征是,
至少一个从节点上设置有至少一个所述监控模块,所述监控模块被配置为执行以下步骤中的一个或几个:
采用轮询的方式反复读取NF的数据结构以监控流的包到达速率和包延迟,根据流需求的变化来动态地调整网络功能的资源分配,
在NF的数据结构中所记录的现在包到达速率与之前包到达速率之间的差值大于设定阈值时,或在包的平均延迟大于该包所属流SLA验证所规定的最大包延迟时,对NF的CPU资源进行重新分配。
7.根据前述权利要求之一所述的网络功能虚拟化平台,其特征是,
所述监控模块还被配置为执行以下步骤中的一个或几个:
对其所服务的流的流特征以及各个NF的资源使用情况进行监控,
根据其所服务的流的流特征的变化来相应地调整NF所服务的资源,调整NF所服务的资源后发送信息至主节点,通知主节点修改全局资源表,
以此通过细粒度的底层统计NF的资源使用状况,实现各NF之间的CPU资源隔离。
8.一种基于容器的网络功能虚拟化方法,其特征是,所述网络功能虚拟化方法至少包括以下步骤中的一个或几个:
通过所述主节点基于干扰感知的情况对待分配网络功能的特性、待分配网络功能的负载流的特征、各从节点之间的通信开销、各从节点内部的处理性能及各从节点内部的负载情况关系进行衡量的方式来将引入至少两个从节点的主从模型分布式计算***中基于容器的网络功能分配到各个从节点,从而为该主从模型分布式计算***提供网络功能服务、节点间的负载均衡以及适应流负载的动态波动。
9.根据权利要求8所述的网络功能虚拟化方法,其特征是,所述网络功能虚拟化方法中至少包括主节点网络功能调度模块、主从节点通信模块和从节点网络功能管理模块,所述从节点网络功能管理模块至少包括监控模块和资源隔离模块,其中,
由所述主节点网络功能调度模块执行初始化流表、查询流表进行包转发、为新流的数据包创建NF并分配CPU资源中的一个或几个步骤,
由所述主从节点通信模块执行查询主节点容器ip转化表IDP、以将目的NF的instanceid转化为所在容器的ip、并通过容器间的跨主机通信网络f lannel将包转发至对应的ip的容器中的一个或几个步骤,
由所述监控模块对网络功能运行状态进行监控,由所述资源隔离模块实现不同网络功能之间的资源隔离。
10.由基于容器的网络功能虚拟化平台所提供的NF管理框架,其特征是,所述NF管理框架被配置为:
由基于容器的网络功能虚拟化平台对任意一个到来包执行查询流表的步骤、在定制NF服务链中传递的步骤、对于所属流进行监控的步骤中的一个或几个;
由基于容器的网络功能虚拟化平台对任意一个NF执行创建步骤、动态分配资源步骤、迁移步骤、销毁步骤、基于CPU复用规则的复用步骤中的一个或几个,
其中,所述CPU复用规则至少包括R1~R4中的一个或几个,
R1:流所需的服务链中有与被复用NF相同类型的NF;
R2:流与复用NF上的所有流是可以相互信任的,不会存在其中一条流恶意抢占另外流的CPU处理时间;
R3:复用之后,能满足复用NF上所有流的SLA需求;
R4:复用之后,整体的CPU资源使用率会降低。
Priority Applications (2)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202010082931.6A CN111522653B (zh) | 2020-02-07 | 2020-02-07 | 基于容器的网络功能虚拟化平台 |
US17/248,519 US11563689B2 (en) | 2020-02-07 | 2021-01-28 | Container-based network functions virtualization platform |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202010082931.6A CN111522653B (zh) | 2020-02-07 | 2020-02-07 | 基于容器的网络功能虚拟化平台 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN111522653A true CN111522653A (zh) | 2020-08-11 |
CN111522653B CN111522653B (zh) | 2023-08-18 |
Family
ID=71901956
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202010082931.6A Active CN111522653B (zh) | 2020-02-07 | 2020-02-07 | 基于容器的网络功能虚拟化平台 |
Country Status (2)
Country | Link |
---|---|
US (1) | US11563689B2 (zh) |
CN (1) | CN111522653B (zh) |
Cited By (11)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN112052068A (zh) * | 2020-08-17 | 2020-12-08 | 烽火通信科技股份有限公司 | 一种Kubernetes容器平台CPU绑核的方法与装置 |
CN112231056A (zh) * | 2020-10-12 | 2021-01-15 | 中电积至(海南)信息技术有限公司 | 一种虚拟网络功能的容器安全隔离方法 |
CN112286695A (zh) * | 2020-12-24 | 2021-01-29 | 武汉绿色网络信息服务有限责任公司 | 服务器资源分配方法以及边缘数据中心 |
CN112367290A (zh) * | 2020-09-11 | 2021-02-12 | 浙江大学 | 一种内生安全waf构造方法 |
CN113382014A (zh) * | 2021-06-23 | 2021-09-10 | 中移(杭州)信息技术有限公司 | 协商处理方法、装置、终端设备以及存储介质 |
CN114205185A (zh) * | 2020-09-16 | 2022-03-18 | 厦门网宿有限公司 | 一种控制报文的代理方法及装置 |
CN114598746A (zh) * | 2022-03-07 | 2022-06-07 | 中南大学 | 基于智能网卡的服务器间负载均衡性能优化方法 |
TWI773200B (zh) * | 2021-03-18 | 2022-08-01 | 中華電信股份有限公司 | 容器服務基礎設施供裝管理系統、方法及電腦可讀媒介 |
CN114996026A (zh) * | 2022-08-01 | 2022-09-02 | 阿里巴巴达摩院(杭州)科技有限公司 | 资源虚拟化方法、通信组件、设备及*** |
CN115412502A (zh) * | 2022-11-02 | 2022-11-29 | 之江实验室 | 一种网络端口扩展和报文快速均衡处理方法 |
CN116248593A (zh) * | 2022-12-30 | 2023-06-09 | 天翼云科技有限公司 | 一种流表关键字匹配方法、装置、电子设备和存储介质 |
Families Citing this family (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN113708965B (zh) * | 2021-08-24 | 2023-04-07 | 北京计算机技术及应用研究所 | 一种高性能构件化的数据包处理*** |
US11792690B2 (en) * | 2021-08-26 | 2023-10-17 | Apple Inc. | Enhanced packet filtering |
US20230214392A1 (en) * | 2021-12-31 | 2023-07-06 | Verizon Patent And Licensing Inc. | Systems and methods for scalable off-chain storage of blockchain-secured data |
CN115567208A (zh) * | 2022-09-29 | 2023-01-03 | ***量子科技有限公司 | 网络会话数据流细粒度透明加解密方法及*** |
US11962473B1 (en) * | 2022-10-20 | 2024-04-16 | Cisco Technology, Inc. | Virtual network function proof of transit |
Citations (6)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN105247826A (zh) * | 2013-01-11 | 2016-01-13 | 华为技术有限公司 | 网络设备的网络功能虚拟化 |
CN105468435A (zh) * | 2015-12-25 | 2016-04-06 | 赛特斯信息科技股份有限公司 | Nfv动态资源分配方法 |
US20170048165A1 (en) * | 2015-08-10 | 2017-02-16 | Futurewei Technologies, Inc. | System and Method for Resource Management |
CN107147517A (zh) * | 2017-03-24 | 2017-09-08 | 上海交通大学 | 一种针对虚拟网络功能的自适应计算资源分配方法 |
US20180123943A1 (en) * | 2016-11-03 | 2018-05-03 | Futurewei Technologies, Inc. | Global Resource Orchestration System for Network Function Virtualization |
CN108234536A (zh) * | 2016-12-14 | 2018-06-29 | 中国电信股份有限公司 | 虚拟资源分配方法和云管平台 |
Family Cites Families (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US10999155B2 (en) * | 2017-10-26 | 2021-05-04 | Cisco Technology, Inc. | System and method for hybrid and elastic services |
-
2020
- 2020-02-07 CN CN202010082931.6A patent/CN111522653B/zh active Active
-
2021
- 2021-01-28 US US17/248,519 patent/US11563689B2/en active Active
Patent Citations (6)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN105247826A (zh) * | 2013-01-11 | 2016-01-13 | 华为技术有限公司 | 网络设备的网络功能虚拟化 |
US20170048165A1 (en) * | 2015-08-10 | 2017-02-16 | Futurewei Technologies, Inc. | System and Method for Resource Management |
CN105468435A (zh) * | 2015-12-25 | 2016-04-06 | 赛特斯信息科技股份有限公司 | Nfv动态资源分配方法 |
US20180123943A1 (en) * | 2016-11-03 | 2018-05-03 | Futurewei Technologies, Inc. | Global Resource Orchestration System for Network Function Virtualization |
CN108234536A (zh) * | 2016-12-14 | 2018-06-29 | 中国电信股份有限公司 | 虚拟资源分配方法和云管平台 |
CN107147517A (zh) * | 2017-03-24 | 2017-09-08 | 上海交通大学 | 一种针对虚拟网络功能的自适应计算资源分配方法 |
Non-Patent Citations (2)
Title |
---|
李林晓: "基于微服务的网络功能虚拟化编排架构重构与优化" * |
李源灏: "网络服务功能链优化部署与性能研究" * |
Cited By (15)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN112052068A (zh) * | 2020-08-17 | 2020-12-08 | 烽火通信科技股份有限公司 | 一种Kubernetes容器平台CPU绑核的方法与装置 |
CN112367290A (zh) * | 2020-09-11 | 2021-02-12 | 浙江大学 | 一种内生安全waf构造方法 |
CN114205185B (zh) * | 2020-09-16 | 2023-03-24 | 厦门网宿有限公司 | 一种控制报文的代理方法及装置 |
CN114205185A (zh) * | 2020-09-16 | 2022-03-18 | 厦门网宿有限公司 | 一种控制报文的代理方法及装置 |
CN112231056A (zh) * | 2020-10-12 | 2021-01-15 | 中电积至(海南)信息技术有限公司 | 一种虚拟网络功能的容器安全隔离方法 |
CN112231056B (zh) * | 2020-10-12 | 2023-09-05 | 积至(海南)信息技术有限公司 | 一种虚拟网络功能的容器安全隔离方法 |
CN112286695A (zh) * | 2020-12-24 | 2021-01-29 | 武汉绿色网络信息服务有限责任公司 | 服务器资源分配方法以及边缘数据中心 |
TWI773200B (zh) * | 2021-03-18 | 2022-08-01 | 中華電信股份有限公司 | 容器服務基礎設施供裝管理系統、方法及電腦可讀媒介 |
CN113382014A (zh) * | 2021-06-23 | 2021-09-10 | 中移(杭州)信息技术有限公司 | 协商处理方法、装置、终端设备以及存储介质 |
CN114598746A (zh) * | 2022-03-07 | 2022-06-07 | 中南大学 | 基于智能网卡的服务器间负载均衡性能优化方法 |
CN114996026B (zh) * | 2022-08-01 | 2022-12-30 | 阿里巴巴达摩院(杭州)科技有限公司 | 资源虚拟化方法、通信组件、设备及*** |
CN114996026A (zh) * | 2022-08-01 | 2022-09-02 | 阿里巴巴达摩院(杭州)科技有限公司 | 资源虚拟化方法、通信组件、设备及*** |
CN115412502A (zh) * | 2022-11-02 | 2022-11-29 | 之江实验室 | 一种网络端口扩展和报文快速均衡处理方法 |
CN115412502B (zh) * | 2022-11-02 | 2023-03-24 | 之江实验室 | 一种网络端口扩展和报文快速均衡处理方法 |
CN116248593A (zh) * | 2022-12-30 | 2023-06-09 | 天翼云科技有限公司 | 一种流表关键字匹配方法、装置、电子设备和存储介质 |
Also Published As
Publication number | Publication date |
---|---|
CN111522653B (zh) | 2023-08-18 |
US11563689B2 (en) | 2023-01-24 |
US20210250299A1 (en) | 2021-08-12 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN111522653B (zh) | 基于容器的网络功能虚拟化平台 | |
US10091122B2 (en) | Traffic management | |
US6393026B1 (en) | Data packet processing system and method for a router | |
JP6592595B2 (ja) | コンピューティングネットワークにおけるデータトラフィックを管理する方法およびシステム | |
US7529224B2 (en) | Scheduler, network processor, and methods for weighted best effort scheduling | |
CN105900063B (zh) | 多处理环境中的调度方法和装置 | |
US8149846B2 (en) | Data processing system and method | |
US20010043564A1 (en) | Packet communication buffering with dynamic flow control | |
EP3283953B1 (en) | Providing services in a system having a hardware acceleration plane and a software plane | |
CN107122233B (zh) | 一种面向tsn业务的多vcpu自适应实时调度方法 | |
CN112416737B (zh) | 一种容器的测试方法、装置、设备和存储介质 | |
WO2020087523A1 (zh) | 网络通信的方法、装置及电子设备 | |
US10348683B2 (en) | Network packet filtering via media access control (MAC) address learning | |
Aljoby et al. | On SDN-enabled online and dynamic bandwidth allocation for stream analytics | |
Meng et al. | CoCo: Compact and optimized consolidation of modularized service function chains in NFV | |
Moro et al. | A framework for network function decomposition and deployment | |
US7474662B2 (en) | Systems and methods for rate-limited weighted best effort scheduling | |
He et al. | Firebird: Network-aware task scheduling for spark using sdns | |
WO2022160714A1 (zh) | 一种通信方法、装置以及*** | |
Priyadarsini et al. | A new approach for SDN performance enhancement | |
Jiang et al. | Adia: Achieving high link utilization with coflow-aware scheduling in data center networks | |
WO2019152942A2 (en) | Dynamic software architecture reconfiguration for converged cable access platform (ccap) | |
Gu et al. | CNTC: A container aware network traffic control framework | |
Ara et al. | A framework for comparative evaluation of high-performance virtualized networking mechanisms | |
Han | System design for software packet processing |
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 | ||
GR01 | Patent grant | ||
GR01 | Patent grant |