基于区块链安全属性的自组网弹性传输控制方法与流程

文档序号:22477811发布日期:2020-10-09 22:21阅读:198来源:国知局
基于区块链安全属性的自组网弹性传输控制方法与流程
本发明涉及区块链技术和网络传输
技术领域
,尤其涉及一种基于区块链安全属性的自组网弹性传输控制方法。
背景技术
:区块链是一种具有不可篡改性、可验证性和可追溯性、高安全性等特点的分布式数据库。首先,不可篡改性是指信息一旦添加至区块链,则无法被任何人篡改,这是由于区块需要经过系统所有节点的一致性验证,因此单个节点上对数据的修改是无效的。其次,可验证性与可追溯性是区块中记录的每条信息都可以验证其真实性与可靠性并且追踪溯源,这是由于区块中的每条信息均附有时间戳,且已记录在区块中的数据是不可篡改的,因此可通过区块进行数据验证与追溯。最后,高安全性是指区块链采用非对称密码学技术对数据进行加密,同时借助共识算法形成的巨大算力来抵御外部攻击,使得整个区块链网络具有极高的安全性。区块链系统一般由数据层、网络层、共识层、激励层、合约层和应用层组成。其中,数据层包括数据区块、数据加密技术和时间戳等;网络层包括组网机制、传播机制和验证机制;共识层主要是分布式共识算法,如工作量证明、权益证明、拜占庭容错算法等;激励层主要包括发行机制和分配机制,用来激励节点挖矿;合约层主要封装各类脚本、算法和智能合约,它使得区块链具有可编程特性,极大增强了区块链的灵活性;应用层封装了各种应用场景、案例等等。集群网络具有节点距离远、拓扑高度动态、时空尺度变化大以及能量受限等特点。集群网络会同时受到信息泄露与动态组网以及传输间歇性的挑战。传统的tcp/ip网络体系架构的传输层采用的是基于tcp协议的端到端的可靠性传输不具备特殊的安全机制保障数据安全性,而且对于网络拓扑动态变化的集群网络,端到端的路径可能不存在,无法时刻建立路由路径,若使用传统网络的tcp协议会导致可能的信息泄露与可靠性传输的效率低下。同时传统网络的尽力而为的转发在链路中断时会导致分组丢失,间歇性链路资源利用率低。技术实现要素:为了有效地满足集群网络对依据数据名称获取数据和缓存的需求,本发明的目的是提供一种基于区块链安全属性的自组网弹性传输控制方法,是一种具有安全保障、逐跳弹性传输特性的集群网络传输机制。本发明的目的是通过以下技术方案实现的:一种基于区块链安全属性的自组网弹性传输控制方法,包括:采用区块链技术更新网络节点的安全属性值,且每一次更新后所有节点都将自身安全属性值上传至区块链;当源节点向目的节点发送数据时,采用区块安全属性驱动的内容逐跳逐块传输机制:上游节点基于下游节点安全属性值与阈值大小判断是否发送数据包;若下游节点安全属性值大于阈值,则向下游节点发送数据,并在接收到下游节点发送的确认接收信息后,删除自身缓存中存储的相应数据;若下游节点安全属性值小于阈值,则暂缓发送,直到下游节点的安全属性值更新到阈值以上;且在源节点与目的节点间设置端到端的确认信息,由源节点基于确认信息对数据块大小进行控制,实现拥塞控制。由上述本发明提供的技术方案可以看出,结合区块链技术的优势,基于全网统一的安全属性阈值控制全网的数据传输行为,解决了传统端到端传输由集群网络节点高动态和传输间歇性引发的传输效率低下等问题。逐跳传输方式结合了环境感知和调度策略,实现异构节点的安全柔性传输与拥塞控制,保证了集群数据端到端传输的可靠性。附图说明为了更清楚地说明本发明实施例的技术方案,下面将对实施例描述中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图仅仅是本发明的一些实施例,对于本领域的普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其他附图。图1为本发明实施例提供的一种基于区块链安全属性的自组网弹性传输控制方法的总体框架图;图2为本发明实施例提供的区块安全驱动的集群网络逐跳传输流程图;图3为本发明实施例提供的无人机安集群区块安全的逐跳传输流程图。具体实施方式下面结合本发明实施例中的附图,对本发明实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例仅仅是本发明一部分实施例,而不是全部的实施例。基于本发明的实施例,本领域普通技术人员在没有做出创造性劳动前提下所获得的所有其他实施例,都属于本发明的保护范围。在集群网络中,由于传统的tcp/ip网络体系架构可能无法时刻建立路由路径,若使用传统网络的tcp协议会导致可能的信息泄露与可靠性传输的效率低下等问题。在这样的背景下,为了有效地满足集群网络对依据数据名称获取数据和缓存的需求,设计一种具有安全保障、逐跳弹性传输特性的集群网络传输机制。同时结合区块链技术的优势,使该机制基于全网统一的安全属性阈值控制全网的数据传输行为,解决了传统端到端传输由集群网络节点高动态和传输间歇性引发的传输效率低下等问题。逐跳传输方式结合了环境感知和调度策略,实现异构节点的安全柔性传输与拥塞控制,保证了集群数据端到端传输的可靠性。本发明实施例提供的一种基于区块链安全属性的自组网弹性传输控制方法,其主要包括:采用区块链技术更新网络节点的安全属性值,且每一次更新后所有节点都将自身安全属性值上传至区块链;当源节点向目的节点发送数据时,采用区块安全属性驱动的内容逐跳逐块传输机制,即,上游节点基于下游节点安全属性值与阈值大小判断是否发送数据包;若下游节点安全属性值大于阈值,则向下游节点发送数据,并在接收到下游节点发送的确认接收信息后,删除自身缓存中存储的相应数据;若下游节点安全属性值小于阈值,则暂缓发送,直到下游节点的安全属性值更新到阈值以上;且在源节点与目的节点间设置端到端的确认信息,由源节点基于确认信息对数据块大小进行控制,实现拥塞控制。如图1所示,为上述方法的总体架构;下面针对上述方法的主要实现过程做详细的介绍。一、区块安全属性驱动的内容逐跳逐块传输机制。节点在传输数据前先要对传输的下一跳节点进行安全属性验证,只有当传输的下一跳节点安全属性高于安全属性阈值时才启动内容逐跳、逐块的传输。安全属性更新之后将会把更新之后的安全属性上传至区块链,以保证各个节点的安全属性的透明与不可篡改。本发明实施例中,集群网络组成一个区块链,基于改进的拜占庭将军解决方案(raft)共识算法更新集群网络中各个节点的安全属性值;raft算法由leader节点生成区块,其余节点地位相同,为follower节点(跟随者节点)。由于在raft中,一旦某个节点被选为leader节点(领导者节点),只有当它出现故障或宕机时,其他follower节点才会重新选择新的leader节点,这不利于分布式的无人机集群,一旦集群中某个恶意节点被选为leader节点,除非该恶意节点退出,否则区块链网络将被恶意节点控制。因此我们对raft进行了一定的修改:在每一轮循环周期内,初始时所有节点都是follower节点,每个follower节点都有一个倒计时,在其中一个节点倒计时结束后,该节点变成候选者节点(candidate),它给其他所有follower节点发送选举请求(requestvote),在收到多于半数follower节点返回的同意应答后,该节点变为leader节点。本轮循环周期结束后,重新开始选举,进入下一轮循环。通过改进的raft共识算法,只有被集群中多数节点认同的节点才有可能成为leader节点并生成区块,且每一轮周期的leader节点是不同的,不会产生网络被一个节点控制的情况。根据上述机制,安全属性值更新公式为:其中,security表示安全属性值,securityt和securityt+1分别表示security在t时刻和t+1时刻的大小;β为调整因子(通常,β>1),表示提高leader节点的安全属性,这是由于leader节点一般为可信节点,它被多数节点所认同,因此在leader节点成功生成新区块后,提高其安全属性;投票期间投给leader的节点可认为是正常节点,其安全属性值不变;ε为指数因子,投票期间未投给leader的节点可认为是问题节点,其安全属性值按照指数衰减,例如,可设置ε<1。如图2所示,内容逐跳、逐块的传输是指利用逐跳传输的方式在网络节点之间传输块数据,将数据接收并存储在当前节点,并将数据和节点的相关信息的散列值(hash)上传到区块链上,然后在发送到下一跳之前先检查下游节点的安全属性值,如果下游节点安全属性值低于阈值则暂缓发送,直到下游节点安全属性值更新到阈值以上。当下游节点收到上游节点发来的数据后,便立即向上游节点发送确认信息,此时的路由信息也将上传至区块链上以保证路由路径的绝对安全。当一个节点收到下游节点发来的确认信息,就会删除确认的存储数据。而当一个节点在规定时间内未收到下游节点的确认信息或者收到下游节点的数据接收失败信息,那么本节点就可以立刻重新读取下游节点安全属性,如果高于阈值便从本地缓存中再次对传输失败的数据进行再次发送,若低于阈值便继续等待。内容逐跳、逐块传输的方式,有利于沿途节点将内容缓存下来。本领域技术人员可以理解,上游节点与下游节点是指一对相邻节点。逐跳存储与转发机制保证了集群网络数据包的可靠传输。该机制的运行场景为一条特定的端到端网络传输路径,由若干相对独立的跳首尾相连组成。。数据以数据包的形式组成数据块,每个数据包和每个数据块都经过了编号。结合图2对采用安全属性驱动的内容逐跳逐块传输进行数据传输的流程进行介绍。1、每一跳的上游节点读取从下游节点发来的srlm(swarmroute-learningmessage,路由学习包)中记录的下游节点安全属性值,当安全属性值低于阈值时将待发送数据缓存在本地节点,直到下一跳节点安全属性值上升到超过安全阈值;同时各个节点定期更新自己的安全属性并上传至区块链。路由学习包中的信息用于计算链路质量等信息,它会周期性广播,所以本发明实施例中,将安全属性值也添加到了这个路由学习包里。2、上游节点在确认下游节点安全属性高于阈值后,向下游节点发送握手信号,下游节点收到握手信号后开辟内存,声明一个数据块准备接收将要到达的数据包,然后回复一个确认消息给上游节点,告知上游节点已经准备好接收数据包。3、上游节点在收到下游节点回复的确认消息之后以占满带宽的,或不引起拥塞的速率,向下游节点不间断地发送数据;数据块包含的数据包数量由内容本身的大小以及链路拥塞状况决定;每个数据块的大小不超过最大传输单元,每一个数据块的包头中包含了数据块的大小值(以其包含的数据包个数为准)。所有已经发出,而未经下游节点确认收到的数据,都留下副本暂时存储在上游节点本地的缓存中,同时传输的记录也将上传至区块链。4、上游节点每发出一个完整的数据块,都产生一个发送完成包发送给下游节点,通知下游节点,相应数据块已经发送完毕,等待下游节点发送确认接收信号;发送完成包包含了自上一个发送截止信号至今所有己发出的数据包编号,且发送完成包的序列号和前一个数据块的序列号相同,即,发送完成包和数据块是一一对应的。截止信号和发送完成包是对应的,发送一个发送完成包即代表发送一个截止信号。上游节点发送完发送完成包后,开启一个定时器;如果一段时间内,未收到来自下游节点的确认接收信号,则重传数据块,直到上游节点收到了来自下游节点的确认接收信号;每个节点都有一个定量尺寸,表示一次性发送的最大数量的数据包;当上游节点出口队列中的数据包数量小于该定量尺寸(具体大小可自行设定,本发明不做限定),上游节点不需要等待队列中数据包数凑够该定量尺寸,可直接将所有数据包打包成数据块直接发出,并尾随一个发送完成包。在特殊情况下,一次性发送的数据量,最小可至仅有一个数据包。因此,一个数据块的大小最大为设定的定量尺寸,最小为一个数据包。5、下游节点维持一个数据包序列号和相应数据包是否收到的映射关系表,如表1所示,用来记录数据块中的数据包是否成功收到;每成功收到一个数据包,则将包头中的序列号提取出来,将相对应的位置记为1,下游节点收到来自上游节点的发送完成包后,向上游回复一个确认接收信号,确认接收信号中包含了收到的数据块中所有的数据包序列号,且确认接收信号的序列号,和上游发送的数据块序列相同,即确认接收信号和数据块是一一对应的。数据包序列号123...n接收情况110...1表1关系映射表如果除必要的内存拷贝、查找转发表和排队等操作所产生的时延以外,节点接收和转发数据的过程中没有额外的等待时延。这里“成功收到”是指下游节点所收到的数据中,不存在因误码等问题而足以判断为不可用的数据,以及不存在因本地缺乏足够缓存空间导致队列溢出等拥塞问题而发生的数据丢弃。数据被成功收到,意味着这些数据已被下游节点确认为有效并可用,并且成功保存在下游节点本地的缓存介质中,除非断电等极端情况,该数据不会发生丢失,能够稳定地保存在下游节点中的状态。6、上游节点每次收到从下游节点发来的确认接收信号后,都将确认信号所携带的已接收数据的编号提取出来;比对确认接收信号中已接收的数据包,将自身缓存中相应数据包删除。7、上游节点再根据未接收的数据包编号,从自身缓存中提取出对应的数据包,重新向下游节点发送,重新发送的数据相对于等待首次发送的数据,优先发送。二、安全属性驱动的拥塞控制机制。以上安全属性驱动的逐跳可靠传输的设计只能解决数据的安全可靠传输问题,但无法避免数据源端发送过量数据包到网络中,即无法避免拥塞。所以,需要设计一种拥塞控制机制,在网络避免丢包的同时,使发送方(也即源节点)发送数据的速率得到控制。当中间某个节点上游链路的有效带宽高于下游链路的有效带宽,则在该节点产生拥塞,发往下游的数据来不及被处理。而根据设计的安全属性驱动的逐跳可靠传输协议,只要设备不发生故障,数据未被下游确认之前,应由上游节点暂时存储,不能被删除。因此,多余的来不及处理的数据会在缓冲区中迅速堆积,很快将缓冲区填满。当该节点的缓冲区被填满时,不再向上游回送确认信号。而上游节点在一定时间内收不到来自下游的确认信号,便会反复发送数据包。大量的数据包将造成链路带宽被浪费。最重要的是,上游节点一面也会收到来自其上游节点发来的数据包。而未被确认的数据包无法被删除而在上游节点不停地堆积,从而造成上游节点的缓冲区被填满,以此类推,上一跳也同样存在这个问题。即,如果没有有效的拥塞控制机制,当中间一个节点出现拥塞,将会造成整条链路瘫痪。为了避免因一个节点拥塞导致整条链路崩溃的问题,需要一种有效可靠的拥塞控制机制。源节点应该对数据块大小进行控制,也就是对数据块中包含的数据包个数进行控制。安全属性驱动的逐跳可靠传输机制中,内容是逐跳逐块传输的。那么,源节点将数据发送给下一跳后,如果没有接收方(即目的节点)相应的反馈,便无法得知数据是否被成功接收,也无法得知在发送过程中,是否存在因中间节点故障导致数据丢失,也无法得知应该维持一个怎样的发送速率,使得数据能够高效传输。因此,在逐跳传输的基础上,源节点需要一种来自目的节点的反馈机制。因此,在区块安全属性驱动的内容逐跳逐块传输机制的基础上,增加一种包类型,称为端到端确认信息(ack)。类似于tcp的ack反馈机制。不同的是,逐跳可靠传输协议的端到端确认信息仅用于通知源节点已经收到信息,源节点可以增大数据块的大小。与逐跳确认信息不同,逐跳确认信息只作用于上下游节点两跳之间,用于下游节点对上游节点发送的数据块表示确认。而端到端确认信息作用于源节点和目的节点之间,实现源节点与目的节点间的信息反馈;所述端到端确认信息由目的节点反馈至源节点,告知源节点数据已被目的节点成功接收,能够增加下一轮传输的数据块尺寸。将源节点维持的数据块尺寸设为m,初始值可设为1;设每个数据块的实际长度为l,最大长度为l;在初始阶段,m小于l,每个数据块长度大小为m,即发送了m个数据包后,发送发送完成包;目的节点每收到一个数据包后,便会向源节点回送一个端到端确认信息,发送方收到后,便将数据块尺寸加1。本发明实施例中,上游节点和下游节点指的是路径中间的节点,源节点为发送方,目的节点为接收方,因此机制一和二是不同的。一条路径a->b->c->d->e,前文第一个机制是在每一跳做丢失重传,是为了避免数据包在传输过程中丢包,第二个机制是在两端点处做拥塞控制。比如,假设只采用前文第一个机制,a并不知道d->e这条链路是否拥塞了,也无法得知e是否接收到了数据,a只能知道发送的数据是否被b接收;因此,涉及了第二个机制,使得a能知道数据是否被e接收,进而判断在下一次传输时是否可以增大数据块尺寸。三、使用数据包标记的显式拥塞反馈机制。在tcp协议中进行拥塞控制时,数据的源节点维持一个定时器,当某条链路因拥塞而丢包时,源节点一定时间内无法收到相应的ack,便判定链路拥塞,从而减小数据块尺寸大小。然而,这种感知方式是隐式的,tcp仅通过丢包超时来判定拥塞,不够准确。只要链路发生丢包,就减小数据块尺寸,而无法区分丢包原因是误码还是拥塞。而且,tcp的拥塞控制机制只有源节点和目的节点两方参与,中间节点无法参与其中,而集群网络的数据传输机制需要中间节点的配合参与。因此,需要设计一种显式的拥塞反馈机制,由中间节点加以配合,当链路拥塞时,告知源节点链路出现拥塞,使得源节点减小发送速率;当中间节点维持的发送队列占用率超过设定的阈值,中间节点将经其转发的数据包做上标记,发送至下游;目的节点每次收到带标记的数据包,将向源节点返回一个带标记的端到端确认信息;源节点收到带标记的的端到端确认信息后,将发送数据块的尺寸减小至初始值。通过上述机制,保障了在链路质量较差的网络场景中能够维持一个较高的吞吐量,提高了传输效率,使得源节点明确得知链路拥塞状况,从而做出正确的反应。本发明实施例上述方案主要获得如下有益效果:1)克服了传统网络的tcp协议应用于集群网络会导致信息泄露、可靠性传输的效率低下和间歇性链路资源利用率低等网络问题。2)基于全网统一的安全属性阈值控制全网的数据传输行为,解决了传统端到端传输由集群网络节点高动态和传输间歇性引发的传输效率低下等问题。3)逐跳传输方式结合了环境感知和调度策略,实现异构节点的安全柔性传输与拥塞控制,保证了集群数据端到端传输的可靠性,提高了每一跳传输的容错性。下面以无人机集群网络为例,介绍安全属性驱动的内容逐跳逐块传输过程,如图3所示,主要过程如下:1)无人机a首先读取无人机b发来的路由学习包中记录的安全属性值,当安全属性值,并判断安全属性值是否高于阈值。与此同时无人机的各个节点定期更新自己的安全属性并上传至安全区块链。2)无人机a确认下游节点安全属性高于安全阈值后向无人机b发送握手信号,无人机b接收握手信号后开辟内存,然后回复一个确认消息给无人机a,告知已经准备好接收数据包。3)无人机a向无人机b不间断地发送数据,与此同时,所有已经发出,而未经无人机b确认收到的数据,都留下复本暂时存储在本地的缓存设备中,以便重传丢失的数据包。同时成功传输的路由记录也将上传至安全区块链中。4)无人机b成功接收数据包并将数据包缓存在本地缓存中。5)无人机b重复上述操作与无人机c进行通讯。6)目的节点无人机c接收到数据包并通过安全区块链验证数据有效性与路径完整性。7)验证成功,传输完成。通过以上的实施方式的描述,本领域的技术人员可以清楚地了解到上述实施例可以通过软件实现,也可以借助软件加必要的通用硬件平台的方式来实现。基于这样的理解,上述实施例的技术方案可以以软件产品的形式体现出来,该软件产品可以存储在一个非易失性存储介质(可以是cd-rom,u盘,移动硬盘等)中,包括若干指令用以使得一台计算机设备(可以是个人计算机,服务器,或者网络设备等)执行本发明各个实施例所述的方法。以上所述,仅为本发明较佳的具体实施方式,但本发明的保护范围并不局限于此,任何熟悉本
技术领域
的技术人员在本发明披露的技术范围内,可轻易想到的变化或替换,都应涵盖在本发明的保护范围之内。因此,本发明的保护范围应该以权利要求书的保护范围为准。当前第1页12
当前第1页1 2 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1