本发明涉及物联网虚拟资源分配领域,尤其涉及一种基于区块链的网络功能分配方法及装置。
背景技术:
目前,越来越多的私有和公共网络为物联网应用提供服务,形成了异构的云-边缘环境。网络功能虚拟化(nfv)由网络服务提供商引入,它通过在通用硬件上部署虚拟网络功能(vnf)来将网络功能与专用硬件分离。结合软件定义网络(sdn),它为网络运营商提供了前所未有的机会,即只需配置其基础设施以满足特定的应用需求。移动边缘计算(mec)是传统云计算的补充,可以解决中心云高延迟问题。为实现更好的服务质量(qos),mec和nfv的组合使得服务提供商可将他们的服务从云转移到邻近边缘云。通过这种方式,在边缘节点部署服务的私有服务提供商可以在边缘进行事务自治。然而,边缘网络是由支持物联网应用资源共享的公共和私有网络运营商组合而成的异构网络,但是他们通过分布式提供的服务的可靠性无法保证。因此,实现安全和可扩展的服务管理以改进自主服务提供商的服务可靠性是一个重要因素。
但是,目前的网络功能虚拟化并没有与物联网中的区块链建立,具有安全性,透明性和去中心化性质的区块链技术作为在服务提供商和服务消费者之间建立信任和实现可靠的边缘网络自主交易管理的有效解决方案,但现有技术中并没有网络功能虚拟化与区块链技术的功能连接关系。区块链技术中对nfv分配的主要问题是服务功能链(sfc)的编排,这是对vnf的放置和路由编排操作。sfc的放置和编排至关重要,因为它会影响服务提供和物理资源使用的效率。因此,建立网络功能虚拟化与区块链的建立,并在服务功能链(sfc)的编排中降低网络功能分配时的网络资源的成本,也是需要解决的问题。
技术实现要素:
针对现有技术中存在的问题,本发明实施例提供一种能够降低网络资源成本的基于区块链的网络功能分配方法及装置。
本发明实施例提供一种基于区块链的网络功能分配方法,包括:
接收物理层的服务请求,将所述服务请求分配到边缘网络层;
根据所述服务请求建立服务功能链的初始编排;
通过所述边缘网络层中预设的强化学习算法对所述服务功能链的初始编排进行强化学习,并根据所述服务功能链的网络资源消耗确定所述服务功能链的优选编排;
将所述服务功能链的优选编排注册到区块链。
在其中一个实施例中,所述方法还包括:
根据所述服务功能链的初始编排建立所述服务功能链对应的模型,所述模型包含所述服务功能链对应的满意度以及所述服务功能链的连接状态;
将所述服务功能链的连接状态代入预设的优化算法,并根据所述优化算法计算所述服务功能链的满意编排,所述服务功能链的满意编排为所述满意度达到预设要求的服务功能链;
计算所述满意编排的服务功能链的网络资源消耗,根据所述网络资源消耗的计算结果得到所述服务功能链的优选编排。
在其中一个实施例中,所述方法还包括:
根据所述优化算法调整所述初始编排的连接状态,计算调整后的服务功能链的满意度,并检测所述调整后的服务功能链的满意度是否达到预设要求;
当所述调整后的服务功能链的满意度达到预设要求后,所述服务功能链标记为所述满意编排的服务功能链。
在其中一个实施例中,所述网络资源消耗,包括:
cpu资源消耗、内存资源消耗、链路资源消耗。
在其中一个实施例中,所述方法还包括:
当通过所述边缘网络层中预设的强化学习算法对所述服务功能链的初始编排进行强化学习后,无法确定所述服务功能链的优选编排时,将所述服务功能链的初始编排分配到区块链云层;
获取所述区块链云层中的所述强化学习算法,通过所述强化学习算法对所述服务功能链的初始编排进行强化学习,得到所述服务功能链的优选编排。
在其中一个实施例中,所述方法还包括:
获取所述服务请求对应的用户信息,并验证所述用户信息是否注册;
当所述用户信息已经注册,将所述服务请求分配到边缘网络层。
本发明实施例提供一种基于区块链的网络功能分配装置,包括:
接收模块,用于接收物理层的服务请求,将所述服务请求分配到边缘网络层;
建立模块,用于根据所述服务请求建立服务功能链的初始编排;
强化学习模块,用于通过所述边缘网络层中预设的强化学习算法对所述服务功能链的初始编排进行强化学习,并根据所述服务功能链的网络资源消耗确定所述服务功能链的优选编排;
注册模块,用于将所述服务功能链的优选编排注册到区块链。
在其中一个实施例中,所述装置还包括:
模型建立模块,用于根据所述服务功能链的初始编排建立所述服务功能链对应的模型,所述模型包含所述服务功能链对应的满意度以及所述服务功能链的连接状态;
第一计算模块,用于将所述服务功能链的连接状态代入预设的优化算法,并根据所述优化算法计算所述服务功能链的满意编排,所述服务功能链的满意编排为所述满意度达到预设要求的服务功能链;
第二计算模块,用于计算所述满意编排的服务功能链的网络资源消耗,根据所述网络资源消耗的计算结果得到所述服务功能链的优选编排。
本发明实施例提供一种电子设备,包括存储器、处理器及存储在存储器上并可在处理器上运行的计算机程序,所述处理器执行所述程序时实现上述基于区块链的网络功能分配方法的步骤。
本发明实施例提供一种非暂态计算机可读存储介质,其上存储有计算机程序,该计算机程序被处理器执行时实现上述基于区块链的网络功能分配方法的步骤。
本发明实施例提供的基于区块链的网络功能分配方法及装置,接收物理层的服务请求,将服务请求分配到区块链的边缘网络层;根据服务请求建立服务功能链的初始编排;然后通过边缘网络层中预设的强化学习算法对服务功能链的初始编排进行强化学习,并根据服务功能链的网络资源消耗确定所述服务功能链的优选编排;将服务功能链的优选编排注册到区块链,为服务请求提供对应的网络功能。本发明通过对服务功能链的初始编排进行强化学习,提供一种能够降低网络资源成本的基于区块链的网络功能分配方法及装置。
附图说明
为了更清楚地说明本发明实施例或现有技术中的技术方案,下面将对实施例或现有技术描述中所需要使用的附图作一简单地介绍,显而易见地,下面描述中的附图是本发明的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其他的附图。
图1为本发明实施例中基于区块链的网络功能分配方法的流程图;
图2为本发明实施例中基于区块链的网络功能分配装置的结构图;
图3为本发明实施例中电子设备结构示意图。
具体实施方式
为使本发明实施例的目的、技术方案和优点更加清楚,下面将结合本发明实施例中的附图,对本发明实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例是本发明一部分实施例,而不是全部的实施例。基于本发明中的实施例,本领域普通技术人员在没有作出创造性劳动前提下所获得的所有其他实施例,都属于本发明保护的范围。
图1为本发明实施例提供的基于区块链的网络功能分配方法的流程示意图,如图1所示,本发明实施例提供了一种基于区块链的网络功能分配方法,包括:
步骤s101,接收物理层的服务请求,将所述服务请求分配到边缘网络层。
具体地,区块链的物理层监控各种公共基础设施环境的智能设备组成,物理层用于用于接收数据,并将数据发送到边缘网络层以请求服务,区块链的物理层在接收到用户的服务请求数据后,将服务请求数据发送给到边缘网络层。其中,边缘网络层通常包含三种节点,区块链模块、sdn控制器和nfv协调器、服务节点。
步骤s102,根据所述服务请求建立服务功能链的初始编排。
具体地,根据服务请求获取对应的虚拟网络功能(vnf),并建立虚拟网络功能(vnf)对应的服务功能链(sfc)的初始编排,其中服务功能链的编排可以包含虚拟网络功能与服务器之间的连接关系,虚拟网络功能连接的服务器之间的连接关系,虚拟网络功能之间的连接关系,初始编排则为服务功能链中的任意初始连接关系。
步骤s103,通过所述边缘网络层中预设的强化学习算法对所述服务功能链的初始编排进行强化学习,并根据所述服务功能链的网络资源消耗确定所述服务功能链的优选编排。
具体地,边缘网络层通过调用深度强化学习(drl)对应的强化学习算法来对初始编排的服务功能链进行强化学习,其中强化学习算法可以为dhsoa算法,dhsoa算法由马尔可夫决策过程以及基于a3c的sfc编排算法构成,根据强化学习算法可以计算出更合理的服务功能链,然后选出其中网络资源消耗相对较小的编排方式,得到服务功能链的优选编排。其中,网络资源消耗可以包括区块链中的cpu资源消耗、内存资源消耗、链路资源消耗。
另外,对于sfc来说,计算sfc的网络资源消耗的方法,可以包括:
边缘云(边缘网络层)的物理网络由无向图ug={v,l}表示,其中v表示服务器节点,l表示物理链路。服务器节点分为三类:边缘服务器节点v∈sv,负责低延迟任务。云服务器节点v∈sv,负责大规模任务。切换节点,转发流量。服务器节点v的特征在于cpu计算和存储vnf实例的存储容量,其被定义为com(v)和mem(v)。链路以带宽为特征。即服务器i和服务器j之间的最大数据传输速率被定义为bi,j,传输延迟是dij(t)。此外,由于移动性,边缘云中的sfc编排将网络公式化为时隙模型。边缘云中的服务器节点的位置被表示为相对于参考点(0,0)的二维矢量(x,y)。pu(t)和pi(t)分别表示用户和服务器节点在时隙t的位置。然后,服务器节点i和j之间的距离度量可以表示为|pi(t)-pj(t)|,其可以被计算为服务器节点i和j之间的跳数。以这种方式,假设传输延迟dij(t)与传输距离|pi(t)-pj(t)|线性相关。基于物理网络,提出一个抽象的sfc模型,它不仅给出了vnf的属性和顺序,还提供了服务质量约束。sfc实例中被定义为s(i1,i2,vnfs),其中源节点是vi1,目标节点是vi2。vnfs是vnf的顺序,属性和互连定义。更具体的是,将cpuf和memf定义为服务器节点中vnff∈vnfs所需的cpu和内存资源,并且vnff的处理延迟为df。考虑到服务质量特性,sfc的延迟阈值由dls表示。
然后,将vnf布局和流量路由定义为两个二进制变量:psf,v(t),trsij,uw(t)来描述sfc的编排状态。
psf,v(t):如果sfc中的vnff在时隙t映射到服务器v,psf,v(t)=1,否则psf,v(t)=0。
trsij,uw(t):如果sfc中的虚链路在时隙t映射到物理连接lij,trsij,uw(t)=1,否则trsij,uw(t)=0.为保证服务质量并改善网络效率,每台服务器和链路的延迟不得超过最大容限延迟。因此,考虑拥塞控制。为了平衡服务器和链路之间的负载,我们将两个平衡因子(包括ζv和ξij)定义如下,注意ζv与服务器cpu和内存资源的使用率正相关,ξij与使用率正相关转移。
然后采用cpu和内存使用率的加权和来描述时隙t的服务器使用情况,并表示为
其中ωcpu和ωmem是用户预先指定的cpu和内存资源使用的权重,ωcpu+ωmem=1.平衡因子ζv定义为:
然后获得网络中服务器cpu资源消耗以及内存资源消耗的成本,定义为:
其中,qc和qm分别是cpu和内存资源的单价。
同理,链路资源消耗成本表示为:
最后,sfc的编排总成本可以为cost(tr)+cost(vp)。
步骤s104,将所述服务功能链的优选编排注册到区块链。
具体地,在得到服务功能链的优选编排之后,区块链的sdn控制器和nfv协调器在服务节点上完成vnf布局和流量路由,已完成服务功能链的注册,以便服务节点可以为用户提供服务。
本发明实施例提供的一种基于区块链的网络功能分配方法及装置,接收物理层的服务请求,将服务请求分配到区块链的边缘网络层;根据服务请求建立服务功能链的初始编排;然后通过边缘网络层中预设的强化学习算法对服务功能链的初始编排进行强化学习,并根据服务功能链的网络资源消耗确定所述服务功能链的优选编排;将服务功能链的优选编排注册到区块链,为服务请求提供对应的网络功能。本发明通过对服务功能链的初始编排进行强化学习,提供一种能够降低网络资源成本的基于区块链的网络功能分配方法及装置。
在上述实施例的基础上,所述网络功能分配方法,还包括:
根据所述服务功能链的初始编排建立所述服务功能链对应的模型,所述模型包含所述服务功能链对应的满意度以及所述服务功能链的连接状态;
将所述服务功能链的连接状态代入预设的优化算法,并根据所述优化算法计算所述服务功能链的满意编排,所述服务功能链的满意编排为所述满意度达到预设要求的服务功能链;
计算所述满意编排的服务功能链的网络资源消耗,根据所述网络资源消耗的计算结果得到所述服务功能链的优选编排。
本发明实施例中,对服务功能链的初始编排进行强化学习可以分为3个步骤:
1、根据服务功能链的初始编排建立初始编排对应的模型,模型的建立可以通过马尔可夫决策过程建立,其中马尔可夫决策过程{ms,a,r,p},其中ms,a,r,p表示状态空间,动作空间,奖励函数和转移概率。其中,前两者分别可以表示满意度以及连接状态,定义如下。
状态空间为基于用户对服务质量的满意度的sfc的状态。具体地,ms={ms1,ms2,...,msm},其中msi={0,1}并且m是服务功能的数量。为了指定满意度,我们根据用户要求为每个sfc的延迟设置一个阈值。如果未超过阈值,则sfc状态为1,否则为0。动作空间为根据每个时刻网络的状态信息,代理需要采取措施来选择vnf位置和流量路由,这会改变sfc的状态。其中,动作空间为其中sfc改变后的状态。
2、将服务功能链的连接状态代入预设的优化算法,其中,优化算法为基于a3c的sfc编排方法,基于a3c的sfc编排方法可以不停的对服务功能链的连接状态进行动作,让服务功能链的连接状态发生改变,然后根据马尔可夫决策过程中的奖励函数计算服务功能链的连接状态发生改变后的奖励状态,根据奖励状态对服务功能链的连接状态进行反馈,反馈结果满足预期要求后继续改变连接状态,并计算每次连接状态改变后对应的用户满意度,当用户满意度中sfc的状态都为1,则将当前的服务功能链的编排记为服务功能链的满意编排。
3、通过上述的sfc的网络资源消耗的计算方法计算满意编排的sfc的网络资源消耗,并选取计算结果中网络资源消耗最少的编排方式,作为sfc的优先编排。
本发明实施例通过强化学习方法,对sfc编排进行不断的连接状态改变,获取满意度,根据满意度计算网络资源消耗,获取既满足需求,又能节约网络资源消耗的sfc编排方式。
在上述实施例的基础上,所述网络功能分配方法,还包括:
根据所述优化算法调整所述初始编排的连接状态,计算调整后的服务功能链的满意度,并检测所述调整后的服务功能链的满意度是否达到预设要求;
当所述调整后的服务功能链的满意度达到预设要求后,所述服务功能链标记为所述满意编排的服务功能链。
本发明实施例中,在根据优化算法深度学习的过程中得到各种连接状态的sfc,通过上述马尔可夫决策过程中的状态空间模型得到用户对当前的sfc的满意度,并筛选出其中满意度为ms={1,1,...,1}的sfc,将其记为sfc的满意编排。
本发明实施例通过满意度筛选出用户满意的服务功能链,保证了服务功能链能够满足用户需求。
在上述实施例的基础上,所述网络功能分配方法,还包括:
当通过所述边缘网络层中预设的强化学习算法对所述服务功能链的初始编排进行强化学习后,无法确定所述服务功能链的优选编排时,将所述服务功能链的初始编排分配到区块链云层;
获取所述区块链云层中的所述强化学习算法,通过所述强化学习算法对所述服务功能链的初始编排进行强化学习,得到所述服务功能链的优选编排。
本发明实施例中,云层为边缘网络层无法保证用户服务的服务质量或者资源受限时,sfc可以编排在云层上,云层与边缘网络层拥有同样的强化学习算法,能够对服务功能链强化学习,得到sfc的优选编排,即当边缘网络层的服务功能链出现资源受限等原因无法确定优先编排时,将服务功能链的初始编排分配到区块链云层,通过云层中的强化学习算法,得到服务功能链的优选编排。
本发明实施例通过将服务功能链上传到云层,解决在边缘网络层中无法解决的无法保证用户服务的服务质量或者资源受限等问题。
在上述实施例的基础上,所述网络功能分配方法,还包括:
获取所述服务请求对应的用户信息,并验证所述用户信息是否注册;
当所述用户信息已经注册,将所述服务请求分配到边缘网络层。
本发明实施例中,在接收到来自用户的服务请求后,检测用户的用户信息,其中,用户信息可以包括用户的设备id,加密数据的密钥、设备属性等,并检测用户信息在区块链中是否已经注册,当用户信息已经注册过,说明用户为可信任用户,则为可信任用户提供对应的功能服务。
本发明实施例检测了服务请求的安全性,并为确认为安全的服务请求提供对应的功能服务。
图2为本发明实施例提供的一种的基于区块链的网络功能分配装置,包括:接收模块201、建立模块202、强化学习模块203、注册模块204,其中:
接收模块201,用于接收物理层的服务请求,将服务请求分配到边缘网络层。
建立模块202,用于根据服务请求建立服务功能链的初始编排。
强化学习模块203,用于通过边缘网络层中预设的强化学习算法对服务功能链的初始编排进行强化学习,并根据服务功能链的网络资源消耗确定服务功能链的优选编排。
注册模块204,用于将服务功能链的优选编排注册到区块链。
在一个实施例中,装置还可以包括:
模型建立模块,用于根据服务功能链的初始编排建立服务功能链对应的模型,模型包含服务功能链对应的满意度以及服务功能链的连接状态。
第一计算模块,用于将服务功能链的连接状态代入预设的优化算法,并根据优化算法计算服务功能链的满意编排,服务功能链的满意编排为满意度达到预设要求的服务功能链。
第二计算模块,用于计算满意编排的服务功能链的网络资源消耗,根据网络资源消耗的计算结果得到服务功能链的优选编排。
在一个实施例中,装置还可以包括:
调整模块,用于根据优化算法调整初始编排的连接状态,计算调整后的服务功能链的满意度,并检测调整后的服务功能链的满意度是否达到预设要求。
标记模块,用于当调整后的服务功能链的满意度达到预设要求后,服务功能链标记为满意编排的服务功能链。
在一个实施例中,装置还可以包括:
分配模块,用于当通过边缘网络层中预设的强化学习算法对服务功能链的初始编排进行强化学习后,无法确定服务功能链的优选编排时,将服务功能链的初始编排分配到区块链云层。
获取模块,用于获取区块链云层中的强化学习算法,通过强化学习算法对服务功能链的初始编排进行强化学习,得到服务功能链的优选编排。
在一个实施例中,装置还可以包括:
第二获取模块,用于获取服务请求对应的用户信息,并验证用户信息是否注册。
第二分配模块,用于当用户信息已经注册,将服务请求分配到边缘网络层。
关于网络功能分配装置的具体限定可以参见上文中对于网络功能分配方法的限定,在此不再赘述。上述网络功能分配装置中的各个模块可全部或部分通过软件、硬件及其组合来实现。上述各模块可以硬件形式内嵌于或独立于计算机设备中的处理器中,也可以以软件形式存储于计算机设备中的存储器中,以便于处理器调用执行以上各个模块对应的操作。
图3示例了一种电子设备的实体结构示意图,如图3所示,该电子设备可以包括:处理器(processor)301、存储器(memory)302、通信接口(communicationsinterface)303和通信总线304,其中,处理器301,存储器302,通信接口303通过通信总线304完成相互间的通信。处理器301可以调用存储器302中的逻辑指令,以执行如下方法:接收物理层的服务请求,将所述服务请求分配到边缘网络层;根据所述服务请求建立服务功能链的初始编排;通过所述边缘网络层中预设的强化学习算法对所述服务功能链的初始编排进行强化学习,并根据所述服务功能链的网络资源消耗确定所述服务功能链的优选编排;将所述服务功能链的优选编排注册到区块链。
此外,上述的存储器302中的逻辑指令可以通过软件功能单元的形式实现并作为独立的产品销售或使用时,可以存储在一个计算机可读取存储介质中。基于这样的理解,本发明的技术方案本质上或者说对现有技术做出贡献的部分或者该技术方案的部分可以以软件产品的形式体现出来,该计算机软件产品存储在一个存储介质中,包括若干指令用以使得一台计算机设备(可以是个人计算机,服务器,或者网络设备等)执行本发明各个实施例所述方法的全部或部分步骤。而前述的存储介质包括:u盘、移动硬盘、只读存储器(rom,read-onlymemory)、随机存取存储器(ram,randomaccessmemory)、磁碟或者光盘等各种可以存储程序代码的介质。
另一方面,本发明实施例还提供一种非暂态计算机可读存储介质,其上存储有计算机程序,该计算机程序被处理器执行时实现以执行上述各实施例提供的传输方法,例如包括:接收物理层的服务请求,将所述服务请求分配到边缘网络层;根据所述服务请求建立服务功能链的初始编排;通过所述边缘网络层中预设的强化学习算法对所述服务功能链的初始编排进行强化学习,并根据所述服务功能链的网络资源消耗确定所述服务功能链的优选编排;将所述服务功能链的优选编排注册到区块链。
以上所描述的装置实施例仅仅是示意性的,其中所述作为分离部件说明的单元可以是或者也可以不是物理上分开的,作为单元显示的部件可以是或者也可以不是物理单元,即可以位于一个地方,或者也可以分布到多个网络单元上。可以根据实际的需要选择其中的部分或者全部模块来实现本实施例方案的目的。本领域普通技术人员在不付出创造性的劳动的情况下,即可以理解并实施。
通过以上的实施方式的描述,本领域的技术人员可以清楚地了解到各实施方式可借助软件加必需的通用硬件平台的方式来实现,当然也可以通过硬件。基于这样的理解,上述技术方案本质上或者说对现有技术做出贡献的部分可以以软件产品的形式体现出来,该计算机软件产品可以存储在计算机可读存储介质中,如rom/ram、磁碟、光盘等,包括若干指令用以使得一台计算机设备(可以是个人计算机,服务器,或者网络设备等)执行各个实施例或者实施例的某些部分所述的方法。
最后应说明的是:以上实施例仅用以说明本发明的技术方案,而非对其限制;尽管参照前述实施例对本发明进行了详细的说明,本领域的普通技术人员应当理解:其依然可以对前述各实施例所记载的技术方案进行修改,或者对其中部分技术特征进行等同替换;而这些修改或者替换,并不使相应技术方案的本质脱离本发明各实施例技术方案的精神和范围。