本发明涉及网络通信技术领域,特别是涉及一种低速链路下网络节点间数据同步方法及系统。
背景技术:
随着工业领域自动化的发展,用户对电子网络通信质量要求越来越高,尤其是对操作响应速度有更高的要求。在通信网络中主节点与其它网络节点的数据交互上,目前,现有的数据同步方式有以下几种:采用消息中的数据包含“地址及对应数据”的传输格式,其不利之处在于每个数据必需额外分配地址空间,降低链路有效利用率;采用循环传输所有数据的方式,其不利之处在于传输了可能不需要同步的数据,降低了同步实时性。本发明克服了以上同步方式的不足,有效提升数据同步的效率。
技术实现要素:
本发明主要解决的技术问题是提供一种低速链路下网络节点间数据同步方法及系统,能有效利用链路带宽,减轻链路负载,提高网络节点的数据同步性能,提升用户体验。
为解决上述技术问题,本发明采用的一个技术方案是:
一种低速链路下网络节点间数据同步方法,包括以下步骤:
主节点依次发送清空当前页表消息及添加页表消息给从节点;所述从节点根据所述清空当前页表消息进行清空从节点的当前页表项,所述从节点根据所述添加页表消息进行添加从节点的当前页表项;
所述主节点切换至下一页面,重复上述步骤,直至所述从节点完成添加所有页面的页表项;
在所述主节点与从节点的页表项校对一致的情况下,所述主节点根据预设的同步周期发送页表同步消息给从节点;
所述从节点根据所述页表同步消息向主节点发送需同步的表项索引以及所述表项索引对应的页表项;所述主节点根据所述表项索引及对应的页表项进行页表项同步。
优选地,所述主节点依次发送清空当前页表消息及添加页表消息给从节点之前包括:
主节点进行所有页面的页表项的初始化,以及根据链路的带宽设置页表项上限及同步周期。
优选地,所述直至所述从节点完成添加所有页面的页表项的步骤包括:
所述主节点判断从节点是否已添加所有页面的页表项,若是,则进入所述主节点与从节点的页表项校对的步骤;若否,则所述主节点继续发送清空当前页表消息及添加页表消息给从节点。
优选地,所述主节点与从节点的页表项校对一致的步骤包括:
所述主节点发送校对页表项消息给从节点,所述从节点反馈页表项校对信息给主节点,所述页表项校对信息包括从节点的页表项索引及该页表项索引对应的页表项地址;
所述主节点根据所述页表项校对信息的页表项索引,逐一比对所述从节点的页表项地址与主节点的页表项地址是否一致,若是,则表示所述主节点与从节点的页表项校对一致;若否,则返回所述主节点发送清空当前页表消息及添加页表消息给从节点的步骤。
优选地,所述主节点与从节点的页表项校对一致的步骤还包括:
所述主节点判断所有页面的页表项是否已校对完成,若是,则进入所述主节点与从节点周期同步页表项的步骤;若否,则所述主节点继续发送校对页表项消息给从节点。
优选地,所述主节点根据预设的同步周期发送页表同步消息给从节点的步骤还包括:
所述主节点根据预设的同步周期判断页表同步时间是否到期,若是,则所述主节点根据预设的同步周期发送页表同步消息给从节点;若否,则不进行同步操作。
优选地,所述从节点根据所述页表同步消息向主节点发送需同步的表项索引以及所述表项索引对应的页表项的步骤包括:
所述从节点通过比较所述页表同步消息的表项值与从节点的页表实际值,确定需同步的表项索引以及所述表项索引对应的页表项。
优选地,所述从节点根据所述页表同步消息向主节点发送需同步的表项索引以及所述表项索引对应的页表项的步骤还包括:
当所述页表同步消息的表项值与从节点的页表实际值不一致时,所述从节点将页表实际值发送给主节点。
优选地,所述主节点根据所述表项索引及对应的页表项进行页表项同步的步骤具体包括:
所述主节点判断所述表项索引是否大于预设的页表项上限,若是,则所述主节点根据所述表项索引及对应的页表项进行页表项同步;若否,则返回所述主节点发送清空当前页表消息及添加页表消息给从节点的步骤。
另,本发明还提供一种低速链路下网络节点间数据同步系统,所述系统包括:主节点及从节点;
所述主节点包括:
第一消息发送单元,用于主节点依次发送清空当前页表消息及添加页表消息给从节点;
校对单元,用于所述主节点与从节点的页表项校对是否一致;
第二消息发送单元,用于在所述主节点与从节点的页表项校对一致的情况下,根据预设的同步周期发送页表同步消息给从节点;
所述从节点包括:
页表清空添加单元,用于所述清空当前页表消息进行清空从节点的当前页表项,以及根据所述添加页表消息进行添加从节点的当前页表项,直至所述从节点完成添加所有页面的页表项;
同步反馈单元,用于根据所述页表同步消息向主节点发送需同步的表项索引以及所述表项索引对应的页表项;
所述主节点还包括:同步单元,用于根据所述表项索引及对应的页表项进行页表项同步。
本发明低速链路下网络节点间数据同步及系统的从节点与主节点之间仅通过传输同步索引及连续的页表项进行页表项同步,有效利用了链路带宽,减轻了链路负载,在较低的链路速度下提高了网络节点的数据同步性能,提升了用户体验。
附图说明
图1为本发明低速链路下网络节点间数据同步方法的具体流程示意图;
图2为本发明低速链路下网络节点间数据同步方法中主节点与从节点间的消息交互示意图;
图3为本发明低速链路下网络节点间数据同步系统的结构示意图。
具体实施方式
下面结合附图详细说明本发明的优选实施例。
本发明提供一种低速链路下网络节点间数据同步方法,所述方法包括以下步骤:主节点依次发送清空当前页表消息及添加页表消息给从节点;所述从节点根据所述清空当前页表消息进行清空从节点的当前页表项,所述从节点根据所述添加页表消息进行添加从节点的当前页表项;所述主节点切换至下一页面,重复上述步骤,直至所述从节点完成添加所有页面的页表项;在所述主节点与从节点的页表项校对一致的情况下,所述主节点根据预设的同步周期发送页表同步消息给从节点;所述从节点根据所述页表同步消息向主节点发送需同步的表项索引以及所述表项索引对应的页表项;所述主节点根据所述表项索引及对应的页表项进行页表项同步。这样,本发明的从节点与主节点之间通过同步索引及连续的页表项进行页表项同步,有效利用了链路带宽,减轻了链路负载,在较低的链路速度下提高了网络节点的数据同步性能,提升了用户体验。
请参阅图1及图2,图1为本发明低速链路下网络节点间数据同步方法的具体流程示意图。所述同步方法包括以下步骤:
步骤101:主节点进行所有页面的页表项的初始化,以及根据链路的带宽设置页表项上限及同步周期;
具体实现时,本实施例是基于rs422串行链路,消息基于网络节点间传输。本发明利用普通编程技术(如:c、c++、汇编、php、asp.net、jsp、asp、java、0bjective-c、android、ios等),为低速链路下的数据同步提供一种控制方式。所述主节点的每个页面对应一个寄存器页表,主节点初始化每个页面,即添加各个页面的页表项到相应页表;所述初始化还包括:基于链路的带宽,设定一个合适的页表项上限(页表项最大个数)及用于主节点与从节点之间的数据同步的同步周期;所述主节点与从节点维护一个相同的页表,且根据所述同步周期定时同步页表项。
步骤102:所述主节点依次发送清空当前页表消息及添加页表消息给从节点;
具体实现时,所述主节点与从节点需要保持相同的页表项,当主节点切换页表时,需要通知从节点同步清理旧的页表项,发送完清空页表消息后,所述主节点发送添加页表项消息给从节点。
步骤103:所述从节点根据所述清空当前页表消息进行清空从节点的当前页表项,所述从节点根据所述添加页表项消息进行添加从节点的当前页表项;
具体实现时,所述从节点接收到清空当前页表消息后,进行清空当前页表项的操作;所述从节点接收到添加页表项消息后,根据所述添加页表项消息添加新的当前页表项。
步骤104:所述主节点切换至下一页面,重复步骤102至步骤103,直至所述从节点完成添加所有页面的页表项。
具体实现时,当所述主节点切换到下一页面时,重复步骤102至步骤103的过程,以完成下一个页面从节点的旧的页表项清空及新的页表项添加,直至所述从节点完成添加所有页面的页表项。
所述步骤104还包括:
所述主节点判断从节点是否已添加所有页面的页表项,若是,则进入所述主节点与从节点的页表项校对的步骤;若否,则所述主节点继续发送清空当前页表消息及添加页表消息给从节点。
步骤105:所述主节点发送校对页表项消息给从节点,所述从节点反馈页表项校对信息给主节点,所述页表项校对信息包括从节点的页表项索引及该页表项索引对应的页表项地址;
具体实现时,所述主节点在判断从节点已添加所有页面的页表项后,即进行主节点与从节点的页表项校对:首先,所述主节点发送校对页表项消息给从节点,告知从节点需要进行校对页表项;接着,所述从节点接收到该校对页表项消息后,生成页表项校对信息,所述页表项校对信息包括从节点的页表项索引及该页表项索引对应的页表项地址;最后,所述从节点将该页表项校对信息反馈发送给主节点。
步骤106:所述主节点根据所述页表项校对信息的页表项索引,逐一比对所述从节点的页表项地址与主节点的页表项地址是否一致,若是,则表示所述主节点与从节点的页表项校对一致;若否,则返回步骤102;
具体实现时,所述主节点接收到从节点反馈的页表项校对信息后,根据页表项校对信息中的页表项索引,逐一比对由该索引开始的从节点的页表项地址与主节点的页表项地址是否一致,若是,则表示所述主节点与从节点的页表项校对一致;若否,则返回步骤102,即由于链路故障等因素,可能出现主节点与从节点两端的页表项地址不相等情况,此时需要重新进入页表清空与添加过程。
所述步骤106还包括:
所述主节点判断所有页面的页表项是否已校对完成,若是,则进入所述主节点与从节点周期同步页表项的步骤;若否,则所述主节点继续发送校对页表项消息给从节点。
步骤107:所述主节点根据预设的同步周期判断页表同步时间是否到期,若是,则进入步骤108;若否,则不进行同步操作;
具体实现时,所述主节点根据预设好的页表同步周期,判断页表同步时间是否到期,若是则进行同步操作;若否,则不进行同步操作。
步骤108:所述主节点发送页表同步消息给从节点,所述从节点根据所述页表同步消息向主节点发送需同步的表项索引以及所述表项索引对应的页表项;
具体实现时,所述从节点接收到主节点的页表同步消息后,根据所述页表同步消息生成需同步的表项索引以及所述表项索引对应的页表项,并将所述表项索引及对应的连续的页表项发送给主节点。即所述从节点记录数值发生变化的页表项索引,同步过程中,从节点将已记录的索引及其对应的连续页表项值发送给主节点(表项值与实际值对应相同的地址,但一个是实际值,一个是上次同步后的值,通过比较两个值,即可确定需要同步的表项索引),所述从节点向主节点回应消息传输多个页表项数据只需一个页表项索引,从而提升连续利用率。
即所述步骤108还包括:
所述从节点通过比较所述页表同步消息的表项值与从节点的页表实际值,确定需同步的表项索引以及所述表项索引对应的页表项。
需要说明的是,当所述页表同步消息的表项值与从节点的页表实际值不一致时,所述从节点将页表实际值发送给主节点。
步骤109:所述主节点根据所述表项索引及对应的页表项进行页表项同步。
具体实现时,所述主节点在接收到从节点反馈的表项索引以及所述表项索引对应的页表项后,判断所述表项索引是否大于预设的页表项上限,若是,则所述主节点根据所述表项索引及对应的页表项进行页表项同步;若否,则返回步骤s102。即若从节点反馈的表项索引大于页表项上限(之前设置的页表项最大个数)时,所述主节点重新发送清空页表消息及发送添加页表消息。
请参阅图3,本发明还提供一种低速链路下网络节点间数据同步系统,所述系统包括:主节点100及从节点200,所述主节点100包括第一消息发送单元101,用于主节点100依次发送清空当前页表消息及添加页表消息给从节点200;校对单元102,用于所述主节点与从节点的页表项校对是否一致;第二消息发送单元103,用于在所述主节点与从节点的页表项校对一致的情况下,根据预设的同步周期发送页表同步消息给从节点200;所述从节点200包括页表清空添加单元201,用于所述清空当前页表消息进行清空从节点的当前页表项,以及根据所述添加页表消息进行添加从节点的当前页表项,直至所述从节点完成添加所有页面的页表项;同步反馈单元202,用于根据所述页表同步消息向主节点发送需同步的表项索引以及所述表项索引对应的页表项;所述主节点100还包括:同步单元104,用于根据所述表项索引及对应的页表项进行页表项同步。
相比于于现有技术,本发明利用普通编程技术(如:c、c++、汇编、php、asp.net、jsp、asp、java、objective-c、android、ios等),为低速链路下的数据同步提供一种控制方式,通过仅传输一个索引的方法,达到传输批量数据,且仅传输当前需要同步的数据的目的,在保证准确控制的同时,有效提高链路传输的效率,减小主节点的操作相应时间,提供良好的用户体验。
综上,本发明低速链路下网络节点间数据同步及系统的从节点与主节点之间仅通过传输同步索引及连续的页表项进行页表项同步,有效利用了链路带宽,减轻了链路负载,在较低的链路速度下提高了网络节点的数据同步性能,提升了用户体验。
以上所述仅为本发明的实施例,并非因此限制本发明的专利范围,凡是利用本发明说明书及附图内容所作的等效结构或等效流程变换,或直接或间接运用在其他相关的技术领域,均同理包括在本发明的专利保护范围内。