一种快速数据同步方法及装置

文档序号:26699038发布日期:2021-09-18 02:38阅读:73来源:国知局
一种快速数据同步方法及装置

1.本发明涉及通信与网络技术领域,具体涉及一种网络设备间的快速数据同步方法及装置。


背景技术:

2.为了充分发挥传感器网络、机器人网络和无人机网络等分布式信息共享网络中各节点的协作效能,支撑该类系统实现实时最优决策与控制等功能,需要加速各节点间的信息共享,达成节点间的快速数据同步,以便为算法提供充足、可靠的基本输入信息。因此,分布式网络中各节点间的快速数据同步非常重要。更具体而言,分布式网络中各节点的快速数据同步是指在有线或无线网络的支撑下,通过广播的方式以尽可能少的时间开销,将网络中任意节点待共享的信息传递给网络中的其它所有节点。
3.目前针对分布式网络中各节点间快速数据同步的研究主要分为两个方向。其一,基于传统存储

转发的节点数据转发机制,各节点通过尽可能多地利用网络中该节点之外其它节点的先验信息感知网络状态,优化广播协议;此类方案的核心思想在于避免数据同步过程中产生的大量广播信息造成网络拥塞与冲突,从而影响数据同步性能。其二,基于网络编码的编码

转发机制,各节点通过融合物理层、媒体接入层等其它协议层的信息,自适应地选择任意数据块的调制和编码方式,提高数据同步效率与网络适应性。
4.对于基于传统存储

转发机制的节点间数据同步策略,由于各节点不对数据块进行额外计算处理,一次广播仅能传输一个数据块,在数据同步的过程中,部分节点可能多次重复接收到相同的数据块;对给定发送节点而言,从一次数据发送过程中获得新数据块的邻居节点数目少,数据同步效率低。同时,节点随机部署等原因可能导致网络中存在连接两个或多个区域的“瓶颈”节点,受限于经典信息论中比特流不能再被压缩的结论,即在经典信息论中网络信息流不可以被压缩,消息无法快速通过“瓶颈”节点,这制约了数据同步的效率和网络吞吐量。
5.对于基于传统编码

转发机制的节点间数据同步策略,现有方案中所依赖的网络编码利用了更多来自其它协议层的状态信息辅助计算,这可能导致数据同步算法中节点间的交互信息量增大、算法复杂提高,从而造成较大的存储和计算开销,降低了工程可实现性。


技术实现要素:

6.为解决分布式网络中大量节点间要实现数据同步所需的交互信息开销大、计算复杂度高的问题,降低网络负载和数据同步时间,更好地为分布式信息共享网络提供快速数据同步保障,本发明基于网络编码和编码

转发机制,设计了一种网络设备间的快速数据同步方法及装置。
7.本发明提供的一种网络设备间的快速数据同步装置,配置在执行数据同步的各网络节点上,包括控制模块、数据块存储模块与编码/解码模块。
8.所述控制模块用于选择执行数据传输的网络节点,并从所述数据块存储模块中选取待传输的数据块输入所述编码/解码模块。所述编码/解码模块若输入1个数据块,则不对数据块编码,直接封装,若输入大于1个数据块时,对输入的数据块依据设定规则编码后再封装,然后将封装数据广播出去。
9.所述控制模块选取待传输的数据块,包括:对任意网络节点n,本地已存储的所有数据块形成待传输的备选数据块集合,遍历该集合,求取一个数据块集合作为待传输数据块集合,该集合能使得节点n的所有邻居节点中能从封装数据中解码获取新数据块的节点数量最大,标记最大值为β
n
,若存在多个数据块的集合能获得最大值β
n
,则选择其中任意一个数据块的集合作为待传输的数据块集合;其中,当待传输的数据块中有且仅有一个数据块不存储在邻居节点本地时,邻居节点能解码封装数据;n=1,2,

,n,n为执行数据同步的网络节点数量。
10.所述控制模块选择执行数据传输的网络节点,包括:对任意网络节点n,根据所述选取待传输数据块集合获得所述最大值β
n
,再计算比值β
n
/m
n
,m
n
为节点n的邻居节点数量;选择所有网络节点中所述比值最大的节点作为数据传输的节点,若存在多个比值最大的节点,则任意选择其中的一个。
11.所述编码/解码模块对接收到的封装数据进行处理获取待同步数据块,并输入数据块存储模块。
12.所述的数据块存储模块,检测所述编码/解码模块输入的待同步数据块是否已在本节点存储,若否,表示该数据块为新数据块,将新数据块存储在数据块存储模块中。
13.本发明提供的一种网络设备间的快速数据同步方法,包括如下步骤:
14.(1)初始时,执行数据同步的各网络节点确定自身待同步的数据块,再将各待同步数据块分别封装后依次广播给邻居节点,初始时封装不对数据块编码;
15.所述封装采用特定格式,包括字段type,用于标识封装的数据块是否进行了编码;当未编码时,在字段message中存储未编码的数据块;当编码时,在字段message中存储编码的数据块;在字段packet中存储待传输的数据块编号作为索引。
16.(2)邻居节点在接收到封装数据后,根据type字段判断数据块是否进行了编码,若是,从packet字段中获取待传输的数据块编号,对message字段进行解码获取待同步数据块;若否,直接从message字段获取待同步数据块;若获得的待同步数据块未在邻居节点本地存储,表示该数据块为新数据块,将该数据块存储在邻居节点本地。
17.(3)各网络节点对本地存储的数据块个数进行统计更新,根据存储的数据块个数是否与待同步的数据块总数相同判断是否完成本次数据同步,若完成,结束本次数据同步;否则继续步骤(4)。
18.(4)各网络节点依据数据块的选择方法选择待传输的数据块集合,然后依据传输节点的选择方法确定进行数据传输的节点。
19.所述数据块的选择方法,是指,针对执行数据同步的任意一个网络节点n,本地已存储的所有数据块形成待传输的备选数据块集合,遍历该集合,求取一个待传输的数据块集合,使得节点n的所有邻居节点中能从封装数据中解码获取新数据块的节点数量最大,标记最大值为β
n
,若存在多个数据块的集合能获得最大值β
n
,则选择其中任意一个数据块的集合作为待传输的数据块集合。其中,当待传输的数据块集合中有且仅有一个数据块不存储
在邻居节点本地时,该邻居节点能解码封装数据。所述传输节点的选择方法,是指,节点n的邻居节点数量记为m
n
,计算比值β
n
/m
n
,选择所述比值最大的一个节点作为执行数据传输的节点,若存在多个比值最大的节点,则任意选择其中的一个;n=1,2,

,n。
20.(5)执行数据传输的节点根据所选择的待传输的数据块集合,进行数据块编码和采用所述特定方式封装,然后广播出去,然后转步骤2执行。
21.所述(5)中,若待传输的数据块集合中只有1个数据块,则不对数据块编码,直接封装,将未编码标志存入type字段;若待传输的数据块集合包含大于1个的数据块,则将待传输的数据块进行编码后存入message字段中,将已编码标志存入type字段;将待传输的数据块的编号存入packet字段。
22.本发明与现有技术相比,其优点与积极效果在于:本发明针对网络设备间的快速同步需求基于线性网络编码提出了一种快速数据同步方法及装置,使用了更高效的编码

转发机制,利用传输节点的选择方法和数据块的选择方法充分发挥网络编码的优势,降低计算复杂度,提高一次数据传输分发的数据量,减小网络中“瓶颈”节点的影响,提高网络性能,相较于传统的存储

转发机制,减少了数据同步占用的总时隙,提高了数据同步的效率,提高了网络的吞吐量,对于网络节点的数据同步具有重要意义。
附图说明
23.图1是本发明的快速数据同步装置的结构示意图;
24.图2是本发明数据同步包格式示意图;
25.图3是本发明数据块存储模块存储格式示意图;
26.图4是本发明快速数据同步方法的流程示意图。
具体实施方式
27.本发明提供的网络设备间的快速数据同步方法及装置,采用网络编码技术,利用广播和线性编码操作,增加数据传输效率。下面结合附图和实施例对本发明作进一步的详细说明。
28.如图1所示,本发明的一种快速数据同步装置,包括控制模块1、数据块存储模块2与编码/解码模块3。参与数据同步的各网络节点在本节点上均配置本发明的快速数据同步装置,以完成数据同步功能。
29.控制模块1用于完成节点本地待传输的数据块的选择、传输节点的选择与总体控制。控制模块1在数据同步过程中具体地负责以下两个过程中的任务:
30.(1)数据发送过程:根据本发明提供的传输节点的选择方法选择进行数据传输的网络节点,并将通过本发明提供的数据块的选择方法在数据块存储模块2已存储的数据块的辅助下选定待编码数据块输入编码/解码模块3。本发明提供的传输节点的选择方法和待传输的数据块的选择方法将在下面说明。
31.(2)总体控制过程:通过比较本地数据块存储模块2存储的数据块个数与本次数据同步过程需要同步的总数据块个数是否相等,来判断本节点是否已获得网络中所有其他节点的所有信息,若不相等,表明该节点未完全获取其他节点的信息,数据同步未完成,否则该节点已完成数据同步;再判断所有节点是否均已完成数据同步,若均已完成数据同步,本
次数据同步任务结束,等待下一次数据同步任务,否则,继续进行数据同步过程。
32.数据块存储模块2在控制模块1的控制下完成对数据块的提取、存储与处理工作,在数据同步过程中具体负责以下两个过程中的任务:
33.(1)数据发送过程:将控制模块1选定的待编码数据块从本模块中提取出来,输入给编码/解码模块3。
34.(2)数据接收过程:向编码/解码模块3提供已存储数据块的信息以辅助其完成解码工作;将编码/解码模块3解码获得的数据块与本节点已存储的数据块进行对比,若存在与已存储的数据块不同的数据块,则将新数据块按照如图3所示的存储格式存储于本模块中,否则,不进行操作。
35.编码/解码模块3主要完成数据块的编码与解码工作,在数据同步过程中具体负责以下两个过程中的任务:
36.(1)数据发送过程:编码/解码模块3从数据块存储模块2中提取控制模块1选择的待传输的数据块,若选择的数据块个数大于1,则使用指定线性编码方式将所选择的数据块进行编码,其中一次数据同步过程只能指定一种编码方式,将编码后的数据块采用如图2所示的特定格式封装后进行数据传输;否则,不进行编码,直接对选择的1个数据块采用如图2所示的特定格式封装后直接广播出去。
37.(2)数据接收过程:编码/解码模块3获取特定封装格式的数据包后根据封装中信息判断数据是否进行了编码,若为非编码包,则将数据块直接输入至数据块存储模块2,否则,依据指定编码方式相对应的解码规则在数据块存储模块2提供的已存储数据块的辅助下根据封装数据可以解码的判断条件判断是否可以进行解码,若可以解码,将解码后的数据块输入至数据块存储模块2进行处理,否则,不进行操作。
38.如图2所示,本发明在数据同步过程中为传输数据设置的特定封装格式包括如下字段:
39.type:指示接收到的数据分组类型,用于区分编码、非编码包;
40.num:用于指示封装的数据块总长度;
41.packet:指示“message”字段中包含的所有待传输的数据块编号;
42.message:待传输的数据内容;未编码时,message中存放待传输的数据块,已编码时,message中存放编码后的数据信息。
43.上述字段均可根据网络实际需求调整长短、位置,“packet”字段可以由其他可唯一索引数据块的信息代替,“num”字段可以由其他指示数据分组长度的信息代替。
44.如图3所示,数据块存储模块2存储格式,各字段定义如下:
45.packet:指示数据块编号;
46.block:指示数据块内容。
47.上述字段均可根据网络实际需求调整长短、位置。
48.对于分布式系统,任意节点都可以作为中心点,也可以作为分布式系统的边缘叶子节点,因此本发明快速数据同步方法在分布式系统与集中式系统中均可以采用集中式方法简化描述。
49.如图4所示,本发明提供的一种快速数据同步方法,具体步骤如下:
50.步骤0:初始化阶段,任意网络设备节点确定待同步的数据块,其中数据块可以是
通过采集自身状态或环境状态等方式获得的,且单个节点可以存在多个待同步的数据块。编码/解码模块3分别将各待同步的数据块进行封装:将“未编码”标志存入特定格式封装中的“type”字段中,将待同步的数据块编号存入特定格式封装中的“packet”字段中,将数据块直接存入特定格式封装中的“message”字段中,将数据块总长度存入特定格式封装中的“num”字段中,进入步骤1。
51.步骤1:节点以时分多址(time division multiple address,tdma)方式向其邻居广播特定格式的封装,进入步骤2。
52.步骤2:邻居节点在接收到封装后,根据封装中的“type”字段判断数据块是否进行了编码,如果是,则在编码/解码模块3中根据“packet”字段中存储的待传输的数据块编号,依据与编码相对应的解码规则从数据块存储模块2中提取已存储的数据块,对封装中的“message”字段进行解码,并将解码后获得的数据块输入本节点的数据块存储模块2,与数据块存储模块2中已存储的数据块进行对比,若解码结果中存在与已存储的数据块不同的数据块,则将其存储于本节点的数据块存储模块2中,否则,不进行操作;若“type”字段指示未进行编码,则直接将封装中的“message”字段输入数据块存储模块2,并与已存储的数据块进行对比,若该数据块与已存储的数据块不同,则将其存储于本模块中,否则,不进行操作,进入步骤3。
53.步骤3:各节点对自身数据块存储模块2中存储的数据块个数进行统计更新,通过比较本节点存储的数据块个数是否与本次数据同步的待同步的数据块总个数相同判断各节点是否已完成本次数据同步,如果均相同,则数据同步过程完成,本次数据同步流程结束;否则进入步骤4。
54.步骤4:根据传输节点的选择方法对编码发送节点进行选择,进入步骤5。
55.步骤5:根据数据块的选择方法对待传输的待同步数据块进行选择,进入步骤6。
56.步骤6:步骤4中被选择的编码发送节点通过编码/解码模块3从数据块存储模块2中提取步骤5中选定的数据块,若提取的数据块个数为1,则将“未编码”标志存入特定格式封装中的“type”字段中,该数据块编号存入特定格式封装中的“packet”字段中,数据块直接存入特定格式封装中的“message”字段中,将数据块总长度存入特定格式封装中的“num”字段中;否则,将提取的数据块输入编码/解码模块3中进行编码,将“已编码”标志存入特定格式封装中的“type”字段中,所有待传输的数据块的编号存入特定格式封装中的“packet”字段中,编码后的数据存入特定格式封装中的“message”字段中,将数据块总长度存入特定格式封装中的“num”字段中,进入步骤2执行。
57.本发明设置了网络节点对封装数据可以解码的判断条件、数据块的选择方法与传输节点的选择方法,下面进行描述。
58.首先,对使用的变量进行说明:
59.节点n中储存的数据块的集合;
60.节点n
k
中缺少数据块的集合;
61.节点n中拟待传输的可选数据块的集合。
62.初始包含节点n本地所有数据块,在经过数据块选择后,包含待传输的数据块。
63.对封装数据可以解码的判断条件描述如下:
64.当待传输的数据块中有且仅有一个数据块是未知时,接收端才能够解码封装数据,获得一个新的数据块,即对于发送节点n,若选择的待编码数据块为其邻居节点n
k
能够解码的条件为
65.数据块的选择方法描述如下:
66.定义节点n的所有邻居节点中能够从封装数据中获取新数据块的节点数量β
n
为:
[0067][0068]
其中j表示邻居节点的索引。ε
nj
表示节点n的邻居节点n
j
是否能解码数据包,当取值为1时代表能解码,取值为0代表不能解码。m
n
是节点n的所有邻居节点数量。
[0069]
对于中的元素,若满足条件:
[0070][0071]
则为节点n的参与的编码数据块。
[0072]
上述遍历求取使得β
n
值最大时的待传输的数据块集合,所获得的待传输的数据块集合中可以只有一个待同步数据块。若获得多个使得β
n
值最大的待传输的数据块集合,从中任选一个集合。
[0073]
传输节点的选择方法描述如下:
[0074]
对于任意一个节点i,i=1,2,

,n,n为执行同步的网络节点数量,节点i的邻居节点数目为m
i
,若其满足条件:
[0075][0076]
则节点i为选定的编码节点。β
i
是节点i根据数据块的选择方法计算得到,是节点i的所有邻居节点中能够从节点i发送的封装数据中获取新数据块的最大节点数量。当获得多个相同的最大比值β
i
/m
i
时,i=1,2,

,n,从中任选一个节点作为传输节点。
[0077]
对于随机布置的分布式传感器系统,充分感知彼此位置后,针对本场景制定如图4所示的数据同步策略,首先为任意待同步的数据块分配的一个传输时隙,任意传感器按指定时隙向其邻居节点广播封装后的数据块,邻居节点将接收到的数据块存储后判断本节点存储的数据块总数是否与待同步的数据块总数相同,如果所有节点存储的数据块总数均与待同步的数据块总数相同,则同步完成,流程结束;否则,根据传输节点的选择方法选择下一个时隙进行数据传输的节点,然后,根据数据块的选择方法选定待传输的数据块,封装后再次广播,重复此流程直到数据同步结束。
当前第1页1 2 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1