一种基于实用拜占庭容错算法的软件定义机会网络流表更新方法与流程

文档序号:18523247发布日期:2019-08-24 10:00阅读:236来源:国知局
一种基于实用拜占庭容错算法的软件定义机会网络流表更新方法与流程

本发明涉及计算机技术领域,具体涉及一种基于实用拜占庭容错算法的软件定义机会网络流表更新方法。



背景技术:

作为一种新型的网络结构,软件定义机会网络具备了机会网络和软件定义网络的双重特性。首先,作为机会网络,它是一种移动自组织的网络结构,具有可容忍结构分裂的特点,这是和传统网络的重要区别。无中心节点、移动节点之间自组织、网络拓扑不断变化和移动节点的存储能力及能源受限是机会网络最鲜明的特性。机会网络中包含若干个不同的节点,这些所有的节点具有一定的通信范围,并且有着一定的运动规律,不同节点的移动模型、通信范围等属性可能是不同的。这些不断移动的节点构成了机会网络通信的基础,节点移动过程中会保持通信状态,构成动态变化的通信链路。机会网络的节点能够进行报文转发,当两个节点由于不在对方的通信半径内而无法直接交互时,那么将依赖其他节点的移动、携带、转发来协助这两个节点进行间接通信,这便导致了机会网络的通信具有随机性和延时性。其次,作为软件定义网络(sdn,softwaredefinednetwork),它将传统封闭的网络体系解耦为数据平面、控制平面和应用平面,通过在控制平面编程就可以在逻辑上实现网络环境的集中管理,开放性和可编程性是sdn最主要的特点。

目前,sdn技术已在数据中心网络、网络虚拟化、云计算和无线局域网等领域得到广泛应用,这种逻辑上实现网络结构集中控制和数据转发分离的思想已在学术界引起深度关注。sdn技术将网络设备的控制平面从复杂的嵌入式拓扑结构中独立出来,通过软件驱动的中央控制器来对整个网络拓扑进行部署,以开放、便捷的可编程控制平面替代了传统的系统嵌入式控制,极大简化了用户网络管理的工作流程,提供了良好网络可编程性。

本申请发明人在实施本发明的过程中,发现现有技术的方法,至少存在如下技术问题:

独特的结构使得软件定义机会网络具备了一些突出的特点,如:网络拓扑动态多变、逐跳转发的通信策略、网络本身较为脆弱等。由于不存在集中式的认证中心和存储基站,相比于传统的固定式有线网络,软件定义机会网络更容易遭受信息窃听、节点身份伪造、数据篡改和分布式拒绝服务攻击等安全威胁。并且,软件定义机会网络中的流表丢失及更新不一致问题经常出现,在现有的流表优化研究方案都存在效果不佳及可扩展性较弱的问题。

由此可知,现有技术中的方法存在流表更新不一致的技术问题。



技术实现要素:

有鉴于此,本发明提供了一种基于实用拜占庭容错算法的软件定义机会网络流表更新方法,用以解决或者至少部分解决现有技术中的方法存在流表更新不一致的技术问题。

本发明提供了一种基于实用拜占庭容错算法的软件定义机会网络流表更新方法,包括:

处于交换机上层的控制层向所有交换机发送初始待更新的流表;

第一交换机将自身接收的初始待更新的流表转发给其他交换机,其中,第一交换机转发的内容为第一流表;

当除第一交换机之外的其他交换机接收到由第一交换机转发的第一流表后,该交换机将第一流表的内容与自身接收到的流表信息的内容进行匹配,若匹配成功,则向其他交换机继续转发第一流表,且该交换机会收集并统计来自剩余其他交换机的转发的第一反馈信息,其中,第一反馈信息表示其他交换机转发的流表信息的集合;

如果某交换机接收到的第一反馈信息中流表的数量超过预设值,则该交换机进入确认状态,并向其他交换机转发自身的状态,且该交换机会收集来自剩余其他交换机的第二反馈信息,其中,第二反馈信息表示该交换机是否进入确认状态;

当最终进入确认状态的交换机数量超过预设值时,则各交换机进行流表的更新。

在一种实施方式中,所述方法还包括,当最终进入确认状态的交换机数量未达到预设值时,则各交换机不进行流表的更新。

在一种实施方式中,当第一流表的内容与该交换机自身接收到的流表信息的内容相同时,则匹配成功。

在一种实施方式中,其他交换机转发的流表信息的集合包括除第一交换机和本身之外的交换机转发的流表信息。

在一种实施方式中,第二反馈信息采用状态参数表示交换机是否进入确认状态。本申请实施例中的上述一个或多个技术方案,至少具有如下一种或多种技术效果:

本发明提供的一种基于实用拜占庭容错算法的软件定义机会网络流表更新方法,首先由位于交换机上层的控制层向所有交换机发送初始待更新的流表;当交换机接收到初始待更新的流表,会将自身接收的初始待更新的流表转发给其他交换机;当交换机将第一交换机发送的第一流表的内容与自身接收到的流表信息的内容进行匹配,匹配成功时,则向其他交换机继续转发第一流表,如果某交换机接收到的第一反馈信息中流表的数量超过预设值,则该交换机进入确认状态,并向其他交换机转发自身的状态,且该交换机会收集来自剩余其他交换机的第二反馈信息,其中,第二反馈信息表示该交换机是否进入确认状态;当最终进入确认状态的交换机数量超过预设值时,则各交换机进行流表的更新。

本发明针对现有技术中软件定义机会网络中的流表更新不一致的问题,将区块链的pbft算法(实用拜占庭容错算法)来解决流表更新过程的流表更新不一致和安全问题。通过执行pbft算法后,当最终进入确认状态的交换机数量超过预设值时,各交换机进行流表的更新,从而可以保证所有交换机按照统一的规则进行更新。即使网络结构中存在部分交换机或控制器失效,仍然能够保证流表可靠分发,具有极高的容错性。

附图说明

为了更清楚地说明本发明实施例或现有技术中的技术方案,下面将对实施例或现有技术描述中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图是本发明的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其他的附图。

图1为本发明实施例中基于实用拜占庭容错算法的软件定义机会网络流表更新方法的流程图;

图2为本发明实施例采用的pbft算法原理图;

图3为本发明实施例中出错交换机对与算法执行轮数的影响示意图;

图4为本发明实施例中转发通过概率随恶意节点的变化曲线示意图。

具体实施方式

本发明的目的在于针对现有技术中的方法存在流表更新不一致的技术问题,提供了一种基于实用拜占庭容错算法的软件定义机会网络流表更新方法。

为使本发明实施例的目的、技术方案和优点更加清楚,下面将结合本发明实施例中的附图,对本发明实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例是本发明一部分实施例,而不是全部的实施例。基于本发明中的实施例,本领域普通技术人员在没有作出创造性劳动前提下所获得的所有其他实施例,都属于本发明保护的范围。

实施例一

本申请发明人通过大量的实践发现,在软件定义机会网络中,常会频繁进行路由切换、流量监控、负载均衡等改变网络状态的行为,这便需要通过交换机更改流表项来对数据包进行差异处理,即sdn的流表更新,将若干个交换机上的旧规则流表替换为新规则流表,这会产生两种结果,一是该若干个交换机全部按照新规则或者旧规则处理流表项,二是部分交换机接受了新规则的定义,而另一部分交换机的规则更新失败,导致流表更新不一致。

因而,本发明提出了使用区块链的pbft算法来解决流表更新过程的安全问题,pbft算法是区块链中解决分布式节点消息传播可靠性的常用方案,该算法能够容忍更多的节点故障,即使有部分节点发生故障,或恶意传播虚假消息,也能保证其他正常能接受到正确的消息。

软件定义机会网络是一种通过节点自由移动,随机相遇来进行消息传输的特殊网络结构,它不依赖于移动节点之间的完整路由,以“存储-携带-转发”的路由模式来形成通信机会并逐跳通信。但是这种通讯模式也带来了新的问题。软件定义机会网络不需要在建立通讯的两个节点之间存在固定可靠的传输信道,不要求网络具有全连通性,节点的随机移动也会导致通讯的不稳定性等。在安全方面,软件定义机会网络中节点稀疏性较高,导致恶意节点可以随意加入当前的网络环境中,恶意节点会恶意传播虚假信息,其次且恶意节点会俘获正常节点来误导其进行正常的消息传播,使得整个网络内消息的真实性无法保证。

其次,软件定义机会网络无法建立端到端的可靠连接,因此无法采用在线向集中式认证中心进行实时通信,任何鉴别节点身份和消息的可靠性都只能通过传统密码学解决,具有较大局限性。另外,在隐私保护方面,软件定义机会网络中节点携带信息的方式容易被恶意截取或篡改,数据的完整性和设备的容错性都受到很大威胁。

区块链可视为一种能解决软件定义机会网络中安全性问题的工具。在离散网络中,区块链可以维护一个所有成员一致认同的数据库,即使节点无法与集中式认证中心实时通信,也能够保证区块中数据的安全可靠。区块链是有序的链表结构,每个“块”中除了数据外,还存储了时间戳、前趋块的引用等,且每次修改、更新都要获得所有成员的共同许可,区块链中所有成员均处于完全对等的地位,并保持相同的区块链副本。区块链的核心是“挖矿”权力的选择策略,本文通过模仿区块链常用的选举机制,设计了一种联合了工作量证明机制和股权证明机制相结合的信任偏移量“区块”更新方案,其数据存储结构具有良好的容错性,在没有足够的算力支撑下,任何恶意节点都无法篡改链中的记录。

使用区块链技术优化机会网络的安全性具有以下优点:

1)去中心化:区块链结构下,数据由各个分布式节点相互协作维护,每个节点都保留一个区块链副本,有效防止单点故障,整个系统的可扩展性也得到提高;

2)防篡改:基于链表的存储结构使得恶意节点在试图篡改链中数据时,同时需要重建整个链表,使得犯罪成本呈指数增长;

3)数据一致性:区块链结构中,数据库由所有节点共同维护,只有达成共识的操作才会被允许,任何节点发出的查询请求都回得到完全相同的结果;

4)更新时效性:基于股权证明机制的更新策略,使得每次更新区块链操作能最大化反映节点信任度的变化,从而确保了链中数据的更新时效性;

5)容错性:基于工作量证明机制的“矿工”选举策略,使得在部分节点失效或被俘获的情况下,只要有足够的算力支撑,仍能够保证系统的正常运作。本实施例提供了一种基于实用拜占庭容错算法的软件定义机会网络流表更新方法,请参见图1,该方法包括:

步骤s1:处于交换机上层的控制层向所有交换机发送初始待更新的流表。

具体来说,软件定义机会网络包括控制层和交换机,交换机用于根据流表的内容进行数据包的转发。本发明的方法采用了实用拜占庭容错算法,其原理如图2所示,pbft算法通过引入协调者节点,以牺牲一部分消息传播实时性、降低系统吞吐量的方式使得系统的容错节点比例达到了1/3,假设网络环境中节点总数为3f+1,其中,f为恶意节点的个数,恶意节点会通过篡改原有消息的方式扰乱网络中的信息传递,剩下的2f+1为正常节点。

步骤s2:第一交换机将自身接收的初始待更新的流表转发给其他交换机,其中,第一交换机转发的内容为第一流表。

具体来说,第一交换机可以为任意一个交换机,本实施方式为了方便阐述,将其命名为第一交换机。其他交换机即为除了第一交换机之外的交换机,如果总共有3f+1个交换机,则第一交换机会向其他3f个交换机转发第一流表。同时,其他交换机也会将接收到的流表进行转发。步骤s2为整个算法的预准备过程:pre-prepare过程。

步骤s3:当除第一交换机之外的其他交换机接收到由第一交换机转发的第一流表后,该交换机将第一流表的内容与自身接收到的流表信息的内容进行匹配,若匹配成功,则向其他交换机继续转发第一流表,且该交换机会收集并统计来自剩余其他交换机的转发的第一反馈信息,其中,第一反馈信息表示其他交换机转发的流表信息的集合。

具体来说,自身接收到的流表信息的内容为除了第一交换机和本身之外的其他3f-1个交换机转发的流表信息。

在一种实施方式中,当第一流表的内容与该交换机自身接收到的流表信息的内容相同时,则匹配成功。

具体地,如果该交换机接收到的第一交换机转发的流表信息与接收到的流表信息的内容一致时,表明第一交换机是可靠的。此时,则该交换机会向其他3f-1个交换机转发第一流表。

其中,其他交换机转发的流表信息的集合包括除第一交换机和本身之外的交换机转发的流表信息。

具体来说,s3为真个算法的准备过程:prepare过程。prepare过程的第一反馈信息就是除第一交换机以外的其他交换机转发的所有流表信息的集合,数量在[0,3f-1]区间之内,其中,f为恶意交换机的数目。

步骤s4:如果某交换机接收到的第一反馈信息中流表的数量超过预设值,则该交换机进入确认状态,并向其他交换机转发自身的状态,且该交换机会收集来自剩余其他交换机的第二反馈信息,其中,第二反馈信息表示该交换机是否进入确认状态。

具体来说,预设值可以根据交换机的数量进行设置。例如若交换机的总数量为3f+1,则预设值为2f。步骤s4为commit过程:确认或者承诺过程。

其中,第二反馈信息可以采用状态参数表示交换机是否进入确认状态。

具体地,如果交换机已进入commit状态,第二反馈信息中就会用一个参数表明该交换机目前的状态是commit;反之,若该参数的取值不是commit。

步骤s5:当最终进入确认状态的交换机数量超过预设值时,则各交换机进行流表的更新。

具体来说,如果有2f个交换机进入commit状态时,则表示该传输过程是可信的。此时,各个交换机进行流表的更新,从而保证各个交换机根据统一规则进行流表的更新,保证传输的安全性。

在一种实施方式中,所述方法还包括,当最终进入确认状态的交换机数量未达到预设值时,则各交换机不进行流表的更新。

当终进入确认状态的交换机数量未达到预设值时,表明该传输过程不可信,则不进行流表的更新,从而保证安全性。

为了更清楚地说明本发明方法的有益效果,下面通过具体的示例进行说明。本实施方式针对基于pbft算法的流表更新一致性优化结果进行评估,采用基于mininet-wifi的机会网络模型仿真平台进行实验。本示例主要通过两个指标来评判方案的可行性及优化效率:1)交换机容错率;2)流表更新操作达成一致所需的时间消耗。本示例的拓扑由一个控制器及与其相连的100台交换机组成,不需要与主机或节点交互。

通过控制不同的出错交换机比例,当控制器下发待更新的流表时,分别在各组交换机使用pbft算法进行流表更新,每执行完一轮算法便对所有交换机上的流表信息进行查询,当内部流表信息与待更新流表一致的交换机比例超过97%时,停止该组实验并统计算法执行轮数,若未达到97%,则继续执行。

由表1中实验结果可知,使用区块链的pbft算法优化流表分发一致性问题,可保证在去中心化的软件定义机会网络结构中,当交换机单点失效比例小于等于38%左右时,依然能以少数延时为代价,实现流表分发或更新的可靠性和一致性,当失效交换机比例超过39%时,延时代价过大,该方案的实用性急剧降低,实验结果符合模型预期期望。

表1pbft算法执行轮数分布表

下面采用推理方式推导出本发明的优点。

pbft算法的运用会使得软件定义机会网络中的交换机间数据包转发过程发生一些变化,首先,某交换机向其他交换机转发数据包时会生成一个递增的时间戳δ,若原单次转发的时间消耗为t,则修改后的单次转发耗时为t+δ,区块链中的pbft算法使用coinflip指令生成一个0到1之间的随机数random∈[0,1),这样,在交换机执行上述prepare过程时,首先会根据随机数random计算nonce,这是为了验证该数据包的工作量是否满足要求。random的随机性导致了工作量验证结果的随机性,假设一次证明通过的概率为p,则单次转发完成的概率可表示为:

其中n为控制器下管理的交换机个数,f为其中出错的交换机个数,且f<n/3。

若该次转发由正常节点发起,则该轮转发最终通过的概率为:

在经过r轮后,由正常节点发起的转发成功次数符合二项分布:

blockc=binom(pc,r)(1-3)

反之,由于一次错误转发在验证工作量时,可以联合所有出错交换机的算力来迫使该过程通过,故由错误节点发起的转发过程最终通过的概率为:

同样的,经过r轮后,由错误节点发起的转发成功次数服从另外的二项分布:

blockf=binom(pf,r)(1-5)

使用正太分布n(np,np(1-p))拟合二项分布binom(n,p)可将式(1-3)和式(1-5)转化为以下形式:

blockc=n(rpc,rpc(1-pc))(1-6)

blockf=n(rpf,rpf(1-pf))(1-7)

根据区块链的“最长链原则”,需要保证执行正常总次数要大于错误转发次数,即:blockc-blockf>0,由此根据正太分布性质可得:

blockc-blockf=n(r(pc-pf),rpc(1-pc)+rpf(1-pf))(1-8)

由标准正太分布性质prob=p{u-kσ<x<u+kσ},将式(1-8)变型后应保证:

将轮数r提取至式子的左边得到:

将pc、pf分别带入上式中,可得到算法执行轮数r、出错交换机个数f以及交换机总数n三者之间的关系,绘出f和r间的函数关系如图3所示。从图3可看出,f和r间的函数关系符合正太分布,实验中,取得n=1000,将f的值从n/4调整至n/2-1,并观测算法执行轮数r的数值变化,容易看出当f的值小于0.38n或大于0.43n时,可保证在执行轮数r较低的情况下保证流表转发的可靠性,其中,f大于0.43n的部分没有实际意义,故舍弃这部分数据。反之,当f取值在0.39n至0.43n之间时,时间消耗过大。

此外,由上文已知,该算法正确的执行结果应保证正常交换机转发成功率大于出错交换机的转发成功率,这是系统最终达成一致性的必要条件,故可得到pc与pf分别随f的变化曲线如图4所示。

由图4可以看出,正常交换机与错误交换机转发成功率在f约为0.42n左右相交,能够保证推论pc>pf,此时,正常交换机转发流表的成功率要高于错误交换机,有利于流表更新达成一致。

使用区块链的pbft算法优化流表分发一致性问题,可保证在去中心化的软件定义机会网络结构中,当交换机单点失效比例小于等于38%左右时,依然能以少数延时为代价,实现流表分发或更新的可靠性和一致性,当失效交换机比例超过39%时,延时代价过大,该方案的实用性急剧降低,实验结果符合模型预期期望。

本领域内的技术人员应明白,本发明的实施例可提供为方法、系统、或计算机程序产品。因此,本发明可采用完全硬件实施例、完全软件实施例、或结合软件和硬件方面的实施例的形式。而且,本发明可采用在一个或多个其中包含有计算机可用程序代码的计算机可用存储介质(包括但不限于磁盘存储器、cd-rom、光学存储器等)上实施的计算机程序产品的形式。

本发明是参照根据本发明实施例的方法、设备(系统)、和计算机程序产品的流程图和/或方框图来描述的。应理解可由计算机程序指令实现流程图和/或方框图中的每一流程和/或方框、以及流程图和/或方框图中的流程和/或方框的结合。可提供这些计算机程序指令到通用计算机、专用计算机、嵌入式处理机或其他可编程数据处理设备的处理器以产生一个机器,使得通过计算机或其他可编程数据处理设备的处理器执行的指令产生用于实现在流程图一个流程或多个流程和/或方框图一个方框或多个方框中指定的功能的装置。

尽管已描述了本发明的优选实施例,但本领域内的技术人员一旦得知了基本创造性概念,则可对这些实施例做出另外的变更和修改。所以,所附权利要求意欲解释为包括优选实施例以及落入本发明范围的所有变更和修改。

显然,本领域的技术人员可以对本发明实施例进行各种改动和变型而不脱离本发明实施例的精神和范围。这样,倘若本发明实施例的这些修改和变型属于本发明权利要求及其等同技术的范围之内,则本发明也意图包含这些改动和变型在内。

当前第1页1 2 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1