本發明涉及網絡通信技術領域,特別是涉及一種低速鏈路下網絡節點間數據同步方法及系統。
背景技術:
隨著工業領域自動化的發展,用戶對電子網絡通信質量要求越來越高,尤其是對操作響應速度有更高的要求。在通信網絡中主節點與其它網絡節點的數據交互上,目前,現有的數據同步方式有以下幾種:采用消息中的數據包含“地址及對應數據”的傳輸格式,其不利之處在于每個數據必需額外分配地址空間,降低鏈路有效利用率;采用循環傳輸所有數據的方式,其不利之處在于傳輸了可能不需要同步的數據,降低了同步實時性。本發明克服了以上同步方式的不足,有效提升數據同步的效率。
技術實現要素:
本發明主要解決的技術問題是提供一種低速鏈路下網絡節點間數據同步方法及系統,能有效利用鏈路帶寬,減輕鏈路負載,提高網絡節點的數據同步性能,提升用戶體驗。
為解決上述技術問題,本發明采用的一個技術方案是:
一種低速鏈路下網絡節點間數據同步方法,包括以下步驟:
主節點依次發送清空當前頁表消息及添加頁表消息給從節點;所述從節點根據所述清空當前頁表消息進行清空從節點的當前頁表項,所述從節點根據所述添加頁表消息進行添加從節點的當前頁表項;
所述主節點切換至下一頁面,重復上述步驟,直至所述從節點完成添加所有頁面的頁表項;
在所述主節點與從節點的頁表項校對一致的情況下,所述主節點根據預設的同步周期發送頁表同步消息給從節點;
所述從節點根據所述頁表同步消息向主節點發送需同步的表項索引以及所述表項索引對應的頁表項;所述主節點根據所述表項索引及對應的頁表項進行頁表項同步。
優選地,所述主節點依次發送清空當前頁表消息及添加頁表消息給從節點之前包括:
主節點進行所有頁面的頁表項的初始化,以及根據鏈路的帶寬設置頁表項上限及同步周期。
優選地,所述直至所述從節點完成添加所有頁面的頁表項的步驟包括:
所述主節點判斷從節點是否已添加所有頁面的頁表項,若是,則進入所述主節點與從節點的頁表項校對的步驟;若否,則所述主節點繼續發送清空當前頁表消息及添加頁表消息給從節點。
優選地,所述主節點與從節點的頁表項校對一致的步驟包括:
所述主節點發送校對頁表項消息給從節點,所述從節點反饋頁表項校對信息給主節點,所述頁表項校對信息包括從節點的頁表項索引及該頁表項索引對應的頁表項地址;
所述主節點根據所述頁表項校對信息的頁表項索引,逐一比對所述從節點的頁表項地址與主節點的頁表項地址是否一致,若是,則表示所述主節點與從節點的頁表項校對一致;若否,則返回所述主節點發送清空當前頁表消息及添加頁表消息給從節點的步驟。
優選地,所述主節點與從節點的頁表項校對一致的步驟還包括:
所述主節點判斷所有頁面的頁表項是否已校對完成,若是,則進入所述主節點與從節點周期同步頁表項的步驟;若否,則所述主節點繼續發送校對頁表項消息給從節點。
優選地,所述主節點根據預設的同步周期發送頁表同步消息給從節點的步驟還包括:
所述主節點根據預設的同步周期判斷頁表同步時間是否到期,若是,則所述主節點根據預設的同步周期發送頁表同步消息給從節點;若否,則不進行同步操作。
優選地,所述從節點根據所述頁表同步消息向主節點發送需同步的表項索引以及所述表項索引對應的頁表項的步驟包括:
所述從節點通過比較所述頁表同步消息的表項值與從節點的頁表實際值,確定需同步的表項索引以及所述表項索引對應的頁表項。
優選地,所述從節點根據所述頁表同步消息向主節點發送需同步的表項索引以及所述表項索引對應的頁表項的步驟還包括:
當所述頁表同步消息的表項值與從節點的頁表實際值不一致時,所述從節點將頁表實際值發送給主節點。
優選地,所述主節點根據所述表項索引及對應的頁表項進行頁表項同步的步驟具體包括:
所述主節點判斷所述表項索引是否大于預設的頁表項上限,若是,則所述主節點根據所述表項索引及對應的頁表項進行頁表項同步;若否,則返回所述主節點發送清空當前頁表消息及添加頁表消息給從節點的步驟。
另,本發明還提供一種低速鏈路下網絡節點間數據同步系統,所述系統包括:主節點及從節點;
所述主節點包括:
第一消息發送單元,用于主節點依次發送清空當前頁表消息及添加頁表消息給從節點;
校對單元,用于所述主節點與從節點的頁表項校對是否一致;
第二消息發送單元,用于在所述主節點與從節點的頁表項校對一致的情況下,根據預設的同步周期發送頁表同步消息給從節點;
所述從節點包括:
頁表清空添加單元,用于所述清空當前頁表消息進行清空從節點的當前頁表項,以及根據所述添加頁表消息進行添加從節點的當前頁表項,直至所述從節點完成添加所有頁面的頁表項;
同步反饋單元,用于根據所述頁表同步消息向主節點發送需同步的表項索引以及所述表項索引對應的頁表項;
所述主節點還包括:同步單元,用于根據所述表項索引及對應的頁表項進行頁表項同步。
本發明低速鏈路下網絡節點間數據同步及系統的從節點與主節點之間僅通過傳輸同步索引及連續的頁表項進行頁表項同步,有效利用了鏈路帶寬,減輕了鏈路負載,在較低的鏈路速度下提高了網絡節點的數據同步性能,提升了用戶體驗。
附圖說明
圖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等),為低速鏈路下的數據同步提供一種控制方式,通過僅傳輸一個索引的方法,達到傳輸批量數據,且僅傳輸當前需要同步的數據的目的,在保證準確控制的同時,有效提高鏈路傳輸的效率,減小主節點的操作相應時間,提供良好的用戶體驗。
綜上,本發明低速鏈路下網絡節點間數據同步及系統的從節點與主節點之間僅通過傳輸同步索引及連續的頁表項進行頁表項同步,有效利用了鏈路帶寬,減輕了鏈路負載,在較低的鏈路速度下提高了網絡節點的數據同步性能,提升了用戶體驗。
以上所述僅為本發明的實施例,并非因此限制本發明的專利范圍,凡是利用本發明說明書及附圖內容所作的等效結構或等效流程變換,或直接或間接運用在其他相關的技術領域,均同理包括在本發明的專利保護范圍內。