本發(fā)明涉及網(wǎng)絡(luò)通信技術(shù)領(lǐng)域,特別是涉及一種低速鏈路下網(wǎng)絡(luò)節(jié)點間數(shù)據(jù)同步方法及系統(tǒng)。
背景技術(shù):
隨著工業(yè)領(lǐng)域自動化的發(fā)展,用戶對電子網(wǎng)絡(luò)通信質(zhì)量要求越來越高,尤其是對操作響應(yīng)速度有更高的要求。在通信網(wǎng)絡(luò)中主節(jié)點與其它網(wǎng)絡(luò)節(jié)點的數(shù)據(jù)交互上,目前,現(xiàn)有的數(shù)據(jù)同步方式有以下幾種:采用消息中的數(shù)據(jù)包含“地址及對應(yīng)數(shù)據(jù)”的傳輸格式,其不利之處在于每個數(shù)據(jù)必需額外分配地址空間,降低鏈路有效利用率;采用循環(huán)傳輸所有數(shù)據(jù)的方式,其不利之處在于傳輸了可能不需要同步的數(shù)據(jù),降低了同步實時性。本發(fā)明克服了以上同步方式的不足,有效提升數(shù)據(jù)同步的效率。
技術(shù)實現(xiàn)要素:
本發(fā)明主要解決的技術(shù)問題是提供一種低速鏈路下網(wǎng)絡(luò)節(jié)點間數(shù)據(jù)同步方法及系統(tǒng),能有效利用鏈路帶寬,減輕鏈路負(fù)載,提高網(wǎng)絡(luò)節(jié)點的數(shù)據(jù)同步性能,提升用戶體驗。
為解決上述技術(shù)問題,本發(fā)明采用的一個技術(shù)方案是:
一種低速鏈路下網(wǎng)絡(luò)節(jié)點間數(shù)據(jù)同步方法,包括以下步驟:
主節(jié)點依次發(fā)送清空當(dāng)前頁表消息及添加頁表消息給從節(jié)點;所述從節(jié)點根據(jù)所述清空當(dāng)前頁表消息進(jìn)行清空從節(jié)點的當(dāng)前頁表項,所述從節(jié)點根據(jù)所述添加頁表消息進(jìn)行添加從節(jié)點的當(dāng)前頁表項;
所述主節(jié)點切換至下一頁面,重復(fù)上述步驟,直至所述從節(jié)點完成添加所有頁面的頁表項;
在所述主節(jié)點與從節(jié)點的頁表項校對一致的情況下,所述主節(jié)點根據(jù)預(yù)設(shè)的同步周期發(fā)送頁表同步消息給從節(jié)點;
所述從節(jié)點根據(jù)所述頁表同步消息向主節(jié)點發(fā)送需同步的表項索引以及所述表項索引對應(yīng)的頁表項;所述主節(jié)點根據(jù)所述表項索引及對應(yīng)的頁表項進(jìn)行頁表項同步。
優(yōu)選地,所述主節(jié)點依次發(fā)送清空當(dāng)前頁表消息及添加頁表消息給從節(jié)點之前包括:
主節(jié)點進(jìn)行所有頁面的頁表項的初始化,以及根據(jù)鏈路的帶寬設(shè)置頁表項上限及同步周期。
優(yōu)選地,所述直至所述從節(jié)點完成添加所有頁面的頁表項的步驟包括:
所述主節(jié)點判斷從節(jié)點是否已添加所有頁面的頁表項,若是,則進(jìn)入所述主節(jié)點與從節(jié)點的頁表項校對的步驟;若否,則所述主節(jié)點繼續(xù)發(fā)送清空當(dāng)前頁表消息及添加頁表消息給從節(jié)點。
優(yōu)選地,所述主節(jié)點與從節(jié)點的頁表項校對一致的步驟包括:
所述主節(jié)點發(fā)送校對頁表項消息給從節(jié)點,所述從節(jié)點反饋頁表項校對信息給主節(jié)點,所述頁表項校對信息包括從節(jié)點的頁表項索引及該頁表項索引對應(yīng)的頁表項地址;
所述主節(jié)點根據(jù)所述頁表項校對信息的頁表項索引,逐一比對所述從節(jié)點的頁表項地址與主節(jié)點的頁表項地址是否一致,若是,則表示所述主節(jié)點與從節(jié)點的頁表項校對一致;若否,則返回所述主節(jié)點發(fā)送清空當(dāng)前頁表消息及添加頁表消息給從節(jié)點的步驟。
優(yōu)選地,所述主節(jié)點與從節(jié)點的頁表項校對一致的步驟還包括:
所述主節(jié)點判斷所有頁面的頁表項是否已校對完成,若是,則進(jìn)入所述主節(jié)點與從節(jié)點周期同步頁表項的步驟;若否,則所述主節(jié)點繼續(xù)發(fā)送校對頁表項消息給從節(jié)點。
優(yōu)選地,所述主節(jié)點根據(jù)預(yù)設(shè)的同步周期發(fā)送頁表同步消息給從節(jié)點的步驟還包括:
所述主節(jié)點根據(jù)預(yù)設(shè)的同步周期判斷頁表同步時間是否到期,若是,則所述主節(jié)點根據(jù)預(yù)設(shè)的同步周期發(fā)送頁表同步消息給從節(jié)點;若否,則不進(jìn)行同步操作。
優(yōu)選地,所述從節(jié)點根據(jù)所述頁表同步消息向主節(jié)點發(fā)送需同步的表項索引以及所述表項索引對應(yīng)的頁表項的步驟包括:
所述從節(jié)點通過比較所述頁表同步消息的表項值與從節(jié)點的頁表實際值,確定需同步的表項索引以及所述表項索引對應(yīng)的頁表項。
優(yōu)選地,所述從節(jié)點根據(jù)所述頁表同步消息向主節(jié)點發(fā)送需同步的表項索引以及所述表項索引對應(yīng)的頁表項的步驟還包括:
當(dāng)所述頁表同步消息的表項值與從節(jié)點的頁表實際值不一致時,所述從節(jié)點將頁表實際值發(fā)送給主節(jié)點。
優(yōu)選地,所述主節(jié)點根據(jù)所述表項索引及對應(yīng)的頁表項進(jìn)行頁表項同步的步驟具體包括:
所述主節(jié)點判斷所述表項索引是否大于預(yù)設(shè)的頁表項上限,若是,則所述主節(jié)點根據(jù)所述表項索引及對應(yīng)的頁表項進(jìn)行頁表項同步;若否,則返回所述主節(jié)點發(fā)送清空當(dāng)前頁表消息及添加頁表消息給從節(jié)點的步驟。
另,本發(fā)明還提供一種低速鏈路下網(wǎng)絡(luò)節(jié)點間數(shù)據(jù)同步系統(tǒng),所述系統(tǒng)包括:主節(jié)點及從節(jié)點;
所述主節(jié)點包括:
第一消息發(fā)送單元,用于主節(jié)點依次發(fā)送清空當(dāng)前頁表消息及添加頁表消息給從節(jié)點;
校對單元,用于所述主節(jié)點與從節(jié)點的頁表項校對是否一致;
第二消息發(fā)送單元,用于在所述主節(jié)點與從節(jié)點的頁表項校對一致的情況下,根據(jù)預(yù)設(shè)的同步周期發(fā)送頁表同步消息給從節(jié)點;
所述從節(jié)點包括:
頁表清空添加單元,用于所述清空當(dāng)前頁表消息進(jìn)行清空從節(jié)點的當(dāng)前頁表項,以及根據(jù)所述添加頁表消息進(jìn)行添加從節(jié)點的當(dāng)前頁表項,直至所述從節(jié)點完成添加所有頁面的頁表項;
同步反饋單元,用于根據(jù)所述頁表同步消息向主節(jié)點發(fā)送需同步的表項索引以及所述表項索引對應(yīng)的頁表項;
所述主節(jié)點還包括:同步單元,用于根據(jù)所述表項索引及對應(yīng)的頁表項進(jìn)行頁表項同步。
本發(fā)明低速鏈路下網(wǎng)絡(luò)節(jié)點間數(shù)據(jù)同步及系統(tǒng)的從節(jié)點與主節(jié)點之間僅通過傳輸同步索引及連續(xù)的頁表項進(jìn)行頁表項同步,有效利用了鏈路帶寬,減輕了鏈路負(fù)載,在較低的鏈路速度下提高了網(wǎng)絡(luò)節(jié)點的數(shù)據(jù)同步性能,提升了用戶體驗。
附圖說明
圖1為本發(fā)明低速鏈路下網(wǎng)絡(luò)節(jié)點間數(shù)據(jù)同步方法的具體流程示意圖;
圖2為本發(fā)明低速鏈路下網(wǎng)絡(luò)節(jié)點間數(shù)據(jù)同步方法中主節(jié)點與從節(jié)點間的消息交互示意圖;
圖3為本發(fā)明低速鏈路下網(wǎng)絡(luò)節(jié)點間數(shù)據(jù)同步系統(tǒng)的結(jié)構(gòu)示意圖。
具體實施方式
下面結(jié)合附圖詳細(xì)說明本發(fā)明的優(yōu)選實施例。
本發(fā)明提供一種低速鏈路下網(wǎng)絡(luò)節(jié)點間數(shù)據(jù)同步方法,所述方法包括以下步驟:主節(jié)點依次發(fā)送清空當(dāng)前頁表消息及添加頁表消息給從節(jié)點;所述從節(jié)點根據(jù)所述清空當(dāng)前頁表消息進(jìn)行清空從節(jié)點的當(dāng)前頁表項,所述從節(jié)點根據(jù)所述添加頁表消息進(jìn)行添加從節(jié)點的當(dāng)前頁表項;所述主節(jié)點切換至下一頁面,重復(fù)上述步驟,直至所述從節(jié)點完成添加所有頁面的頁表項;在所述主節(jié)點與從節(jié)點的頁表項校對一致的情況下,所述主節(jié)點根據(jù)預(yù)設(shè)的同步周期發(fā)送頁表同步消息給從節(jié)點;所述從節(jié)點根據(jù)所述頁表同步消息向主節(jié)點發(fā)送需同步的表項索引以及所述表項索引對應(yīng)的頁表項;所述主節(jié)點根據(jù)所述表項索引及對應(yīng)的頁表項進(jìn)行頁表項同步。這樣,本發(fā)明的從節(jié)點與主節(jié)點之間通過同步索引及連續(xù)的頁表項進(jìn)行頁表項同步,有效利用了鏈路帶寬,減輕了鏈路負(fù)載,在較低的鏈路速度下提高了網(wǎng)絡(luò)節(jié)點的數(shù)據(jù)同步性能,提升了用戶體驗。
請參閱圖1及圖2,圖1為本發(fā)明低速鏈路下網(wǎng)絡(luò)節(jié)點間數(shù)據(jù)同步方法的具體流程示意圖。所述同步方法包括以下步驟:
步驟101:主節(jié)點進(jìn)行所有頁面的頁表項的初始化,以及根據(jù)鏈路的帶寬設(shè)置頁表項上限及同步周期;
具體實現(xiàn)時,本實施例是基于rs422串行鏈路,消息基于網(wǎng)絡(luò)節(jié)點間傳輸。本發(fā)明利用普通編程技術(shù)(如:c、c++、匯編、php、asp.net、jsp、asp、java、0bjective-c、android、ios等),為低速鏈路下的數(shù)據(jù)同步提供一種控制方式。所述主節(jié)點的每個頁面對應(yīng)一個寄存器頁表,主節(jié)點初始化每個頁面,即添加各個頁面的頁表項到相應(yīng)頁表;所述初始化還包括:基于鏈路的帶寬,設(shè)定一個合適的頁表項上限(頁表項最大個數(shù))及用于主節(jié)點與從節(jié)點之間的數(shù)據(jù)同步的同步周期;所述主節(jié)點與從節(jié)點維護(hù)一個相同的頁表,且根據(jù)所述同步周期定時同步頁表項。
步驟102:所述主節(jié)點依次發(fā)送清空當(dāng)前頁表消息及添加頁表消息給從節(jié)點;
具體實現(xiàn)時,所述主節(jié)點與從節(jié)點需要保持相同的頁表項,當(dāng)主節(jié)點切換頁表時,需要通知從節(jié)點同步清理舊的頁表項,發(fā)送完清空頁表消息后,所述主節(jié)點發(fā)送添加頁表項消息給從節(jié)點。
步驟103:所述從節(jié)點根據(jù)所述清空當(dāng)前頁表消息進(jìn)行清空從節(jié)點的當(dāng)前頁表項,所述從節(jié)點根據(jù)所述添加頁表項消息進(jìn)行添加從節(jié)點的當(dāng)前頁表項;
具體實現(xiàn)時,所述從節(jié)點接收到清空當(dāng)前頁表消息后,進(jìn)行清空當(dāng)前頁表項的操作;所述從節(jié)點接收到添加頁表項消息后,根據(jù)所述添加頁表項消息添加新的當(dāng)前頁表項。
步驟104:所述主節(jié)點切換至下一頁面,重復(fù)步驟102至步驟103,直至所述從節(jié)點完成添加所有頁面的頁表項。
具體實現(xiàn)時,當(dāng)所述主節(jié)點切換到下一頁面時,重復(fù)步驟102至步驟103的過程,以完成下一個頁面從節(jié)點的舊的頁表項清空及新的頁表項添加,直至所述從節(jié)點完成添加所有頁面的頁表項。
所述步驟104還包括:
所述主節(jié)點判斷從節(jié)點是否已添加所有頁面的頁表項,若是,則進(jìn)入所述主節(jié)點與從節(jié)點的頁表項校對的步驟;若否,則所述主節(jié)點繼續(xù)發(fā)送清空當(dāng)前頁表消息及添加頁表消息給從節(jié)點。
步驟105:所述主節(jié)點發(fā)送校對頁表項消息給從節(jié)點,所述從節(jié)點反饋頁表項校對信息給主節(jié)點,所述頁表項校對信息包括從節(jié)點的頁表項索引及該頁表項索引對應(yīng)的頁表項地址;
具體實現(xiàn)時,所述主節(jié)點在判斷從節(jié)點已添加所有頁面的頁表項后,即進(jìn)行主節(jié)點與從節(jié)點的頁表項校對:首先,所述主節(jié)點發(fā)送校對頁表項消息給從節(jié)點,告知從節(jié)點需要進(jìn)行校對頁表項;接著,所述從節(jié)點接收到該校對頁表項消息后,生成頁表項校對信息,所述頁表項校對信息包括從節(jié)點的頁表項索引及該頁表項索引對應(yīng)的頁表項地址;最后,所述從節(jié)點將該頁表項校對信息反饋發(fā)送給主節(jié)點。
步驟106:所述主節(jié)點根據(jù)所述頁表項校對信息的頁表項索引,逐一比對所述從節(jié)點的頁表項地址與主節(jié)點的頁表項地址是否一致,若是,則表示所述主節(jié)點與從節(jié)點的頁表項校對一致;若否,則返回步驟102;
具體實現(xiàn)時,所述主節(jié)點接收到從節(jié)點反饋的頁表項校對信息后,根據(jù)頁表項校對信息中的頁表項索引,逐一比對由該索引開始的從節(jié)點的頁表項地址與主節(jié)點的頁表項地址是否一致,若是,則表示所述主節(jié)點與從節(jié)點的頁表項校對一致;若否,則返回步驟102,即由于鏈路故障等因素,可能出現(xiàn)主節(jié)點與從節(jié)點兩端的頁表項地址不相等情況,此時需要重新進(jìn)入頁表清空與添加過程。
所述步驟106還包括:
所述主節(jié)點判斷所有頁面的頁表項是否已校對完成,若是,則進(jìn)入所述主節(jié)點與從節(jié)點周期同步頁表項的步驟;若否,則所述主節(jié)點繼續(xù)發(fā)送校對頁表項消息給從節(jié)點。
步驟107:所述主節(jié)點根據(jù)預(yù)設(shè)的同步周期判斷頁表同步時間是否到期,若是,則進(jìn)入步驟108;若否,則不進(jìn)行同步操作;
具體實現(xiàn)時,所述主節(jié)點根據(jù)預(yù)設(shè)好的頁表同步周期,判斷頁表同步時間是否到期,若是則進(jìn)行同步操作;若否,則不進(jìn)行同步操作。
步驟108:所述主節(jié)點發(fā)送頁表同步消息給從節(jié)點,所述從節(jié)點根據(jù)所述頁表同步消息向主節(jié)點發(fā)送需同步的表項索引以及所述表項索引對應(yīng)的頁表項;
具體實現(xiàn)時,所述從節(jié)點接收到主節(jié)點的頁表同步消息后,根據(jù)所述頁表同步消息生成需同步的表項索引以及所述表項索引對應(yīng)的頁表項,并將所述表項索引及對應(yīng)的連續(xù)的頁表項發(fā)送給主節(jié)點。即所述從節(jié)點記錄數(shù)值發(fā)生變化的頁表項索引,同步過程中,從節(jié)點將已記錄的索引及其對應(yīng)的連續(xù)頁表項值發(fā)送給主節(jié)點(表項值與實際值對應(yīng)相同的地址,但一個是實際值,一個是上次同步后的值,通過比較兩個值,即可確定需要同步的表項索引),所述從節(jié)點向主節(jié)點回應(yīng)消息傳輸多個頁表項數(shù)據(jù)只需一個頁表項索引,從而提升連續(xù)利用率。
即所述步驟108還包括:
所述從節(jié)點通過比較所述頁表同步消息的表項值與從節(jié)點的頁表實際值,確定需同步的表項索引以及所述表項索引對應(yīng)的頁表項。
需要說明的是,當(dāng)所述頁表同步消息的表項值與從節(jié)點的頁表實際值不一致時,所述從節(jié)點將頁表實際值發(fā)送給主節(jié)點。
步驟109:所述主節(jié)點根據(jù)所述表項索引及對應(yīng)的頁表項進(jìn)行頁表項同步。
具體實現(xiàn)時,所述主節(jié)點在接收到從節(jié)點反饋的表項索引以及所述表項索引對應(yīng)的頁表項后,判斷所述表項索引是否大于預(yù)設(shè)的頁表項上限,若是,則所述主節(jié)點根據(jù)所述表項索引及對應(yīng)的頁表項進(jìn)行頁表項同步;若否,則返回步驟s102。即若從節(jié)點反饋的表項索引大于頁表項上限(之前設(shè)置的頁表項最大個數(shù))時,所述主節(jié)點重新發(fā)送清空頁表消息及發(fā)送添加頁表消息。
請參閱圖3,本發(fā)明還提供一種低速鏈路下網(wǎng)絡(luò)節(jié)點間數(shù)據(jù)同步系統(tǒng),所述系統(tǒng)包括:主節(jié)點100及從節(jié)點200,所述主節(jié)點100包括第一消息發(fā)送單元101,用于主節(jié)點100依次發(fā)送清空當(dāng)前頁表消息及添加頁表消息給從節(jié)點200;校對單元102,用于所述主節(jié)點與從節(jié)點的頁表項校對是否一致;第二消息發(fā)送單元103,用于在所述主節(jié)點與從節(jié)點的頁表項校對一致的情況下,根據(jù)預(yù)設(shè)的同步周期發(fā)送頁表同步消息給從節(jié)點200;所述從節(jié)點200包括頁表清空添加單元201,用于所述清空當(dāng)前頁表消息進(jìn)行清空從節(jié)點的當(dāng)前頁表項,以及根據(jù)所述添加頁表消息進(jìn)行添加從節(jié)點的當(dāng)前頁表項,直至所述從節(jié)點完成添加所有頁面的頁表項;同步反饋單元202,用于根據(jù)所述頁表同步消息向主節(jié)點發(fā)送需同步的表項索引以及所述表項索引對應(yīng)的頁表項;所述主節(jié)點100還包括:同步單元104,用于根據(jù)所述表項索引及對應(yīng)的頁表項進(jìn)行頁表項同步。
相比于于現(xiàn)有技術(shù),本發(fā)明利用普通編程技術(shù)(如:c、c++、匯編、php、asp.net、jsp、asp、java、objective-c、android、ios等),為低速鏈路下的數(shù)據(jù)同步提供一種控制方式,通過僅傳輸一個索引的方法,達(dá)到傳輸批量數(shù)據(jù),且僅傳輸當(dāng)前需要同步的數(shù)據(jù)的目的,在保證準(zhǔn)確控制的同時,有效提高鏈路傳輸?shù)男?,減小主節(jié)點的操作相應(yīng)時間,提供良好的用戶體驗。
綜上,本發(fā)明低速鏈路下網(wǎng)絡(luò)節(jié)點間數(shù)據(jù)同步及系統(tǒng)的從節(jié)點與主節(jié)點之間僅通過傳輸同步索引及連續(xù)的頁表項進(jìn)行頁表項同步,有效利用了鏈路帶寬,減輕了鏈路負(fù)載,在較低的鏈路速度下提高了網(wǎng)絡(luò)節(jié)點的數(shù)據(jù)同步性能,提升了用戶體驗。
以上所述僅為本發(fā)明的實施例,并非因此限制本發(fā)明的專利范圍,凡是利用本發(fā)明說明書及附圖內(nèi)容所作的等效結(jié)構(gòu)或等效流程變換,或直接或間接運(yùn)用在其他相關(guān)的技術(shù)領(lǐng)域,均同理包括在本發(fā)明的專利保護(hù)范圍內(nèi)。