本發(fā)明涉及一種實現(xiàn)方法,尤其涉及的是一種基于互聯(lián)網(wǎng)的數(shù)據(jù)通信實現(xiàn)方法。
背景技術:
互聯(lián)網(wǎng)已經(jīng)成為人類生活中不可缺少的一部分,它提供多種數(shù)據(jù)服務,因此降低數(shù)據(jù)通信延遲尤為重要。近年來,很多研究工作致力于互聯(lián)網(wǎng)的數(shù)據(jù)通信工作,以便使人們能夠快速獲取網(wǎng)絡服務。隨著互聯(lián)網(wǎng)技術的發(fā)展,互聯(lián)網(wǎng)的數(shù)據(jù)通信技術會進一步提高服務質(zhì)量。
目前,互聯(lián)網(wǎng)的數(shù)據(jù)通信延遲和代價都比較大,降低了網(wǎng)絡服務性能。因此,如何降低互聯(lián)網(wǎng)的數(shù)據(jù)通信的延遲和代價成為近年來研究的熱點問題。
技術實現(xiàn)要素:
發(fā)明目的:本發(fā)明所要解決的技術問題是針對現(xiàn)有技術的不足,提供一種基于互聯(lián)網(wǎng)的數(shù)據(jù)通信實現(xiàn)方法,通過以數(shù)據(jù)為中心的方式來實現(xiàn)互聯(lián)網(wǎng)的數(shù)據(jù)通信,從而降低互聯(lián)網(wǎng)的數(shù)據(jù)通信的延遲和代價,有效提高網(wǎng)絡服務性能。
技術方案:本發(fā)明公開了一種基于互聯(lián)網(wǎng)的數(shù)據(jù)通信實現(xiàn)方法,所述互聯(lián)網(wǎng)包括兩個以上的子網(wǎng),一個子網(wǎng)由一個全局網(wǎng)絡前綴唯一標識,子網(wǎng)通過接入路由器接入到互聯(lián)網(wǎng);一個子網(wǎng)內(nèi)包括兩個以上的交換機,與接入路由器直接相連的交換機稱為核心交換機,與用戶設備(例如PC機)直接相連的交換機稱為接入交換機,同時與接入路由器以及用戶設備連接交換機可以稱為核心交換機,也可以稱為接入交換機,但是交換機一般分為多層,也就是說核心交換機不直接連接用戶設備;一個子網(wǎng)內(nèi)所有的接入路由器和交換機組成的拓撲結(jié)構(gòu)為樹狀結(jié)構(gòu),其中接入路由器為樹狀結(jié)構(gòu)的根節(jié)點;交換機與自己在樹狀結(jié)構(gòu)中的父節(jié)點相連的接口稱為上游接口,與自己在樹狀結(jié)構(gòu)中的子節(jié)點相連的接口稱為下游接口;
一個子網(wǎng)內(nèi)設置兩個以上的服務器,一個子網(wǎng)內(nèi)的服務器包括主服務器和備份服務器;一種類型的數(shù)據(jù)由一個數(shù)據(jù)名稱唯一標識,一個數(shù)據(jù)名稱映射為一個服務器的單播地址,該服務器稱為該數(shù)據(jù)的主服務器,主服務器能夠產(chǎn)生和更新該數(shù)據(jù),主服務器用版本號來標識該數(shù)據(jù),當主服務器更新該數(shù)據(jù)后,該數(shù)據(jù)的版本號對應更新;從主服務器申請數(shù)據(jù)后保存該數(shù)據(jù)并在本地向用戶設備提供該種數(shù)據(jù)的服務器稱為備份服務器,備份服務器能夠與任何交換機或者接入路由器直接相連;
交換機、服務器和接入路由器稱為系統(tǒng)設備;
數(shù)據(jù)名稱和主服務器單播地址的映射信息,以及數(shù)據(jù)名稱標識的數(shù)據(jù)的最新版本號保存在數(shù)據(jù)服務器,如果數(shù)據(jù)的主服務器更新了該數(shù)據(jù)并產(chǎn)生了新的版本號,主服務器通知數(shù)據(jù)服務器更新相應數(shù)據(jù)的版本號;數(shù)據(jù)服務器的工作模式與域名服務器的工作模式相同;數(shù)據(jù)服務器不屬于任何子網(wǎng),也不用于產(chǎn)生、更新或者備份數(shù)據(jù);
如果用戶設備請求一種數(shù)據(jù),用戶設備通過訪問數(shù)據(jù)服務器來獲取該數(shù)據(jù)的最新版本號以及主服務器的單播地址;
每個接入路由器或者交換機維護一個轉(zhuǎn)發(fā)表和一個請求表,轉(zhuǎn)發(fā)表項包括三個域:單播地址域,輸出接口域,以及版本號域;請求表包括兩個域:單播地址域和輸入接口域;
在服務器S1為數(shù)據(jù)C1的主服務器,單播地址為U1,服務器S1所在域的接入路由器為AR1,服務器S2所在域的接入路由器為AR2的情況下,如果服務器S2需要獲取數(shù)據(jù)C1并成為數(shù)據(jù)C1的備份服務器,那么服務器S2首先訪問數(shù)據(jù)服務器獲取數(shù)據(jù)C1的最新版本號v1以及主服務器S1的單播地址U1,然后執(zhí)行下述步驟:
步驟101:開始;
步驟102:服務器S2從上游接口發(fā)送數(shù)據(jù)請求消息,該消息的目的地址為單播地址U1,源地址為服務器S2的單播地址,負載為版本號v1;
步驟103:系統(tǒng)設備從接口f接收到數(shù)據(jù)請求消息,接口f與發(fā)送或者轉(zhuǎn)發(fā)數(shù)據(jù)請求消息的系統(tǒng)設備相連接,如果系統(tǒng)設備為數(shù)據(jù)C1的備份服務器,執(zhí)行步驟104,否則執(zhí)行步驟105;
步驟104:備份服務器返回數(shù)據(jù)響應消息,數(shù)據(jù)響應消息的目的地址為服務器S2的單播地址,源地址為單播地址U1,負載為數(shù)據(jù)C1和版本號v1,執(zhí)行步驟113;
步驟105:系統(tǒng)設備判斷在請求表中是否存在單播地址為U1的表項,如果是,執(zhí)行步驟106,否則執(zhí)行步驟107;
步驟106:系統(tǒng)設備將接口f加入到該表項的接入接口域,執(zhí)行步驟113;
步驟107:系統(tǒng)設備在請求表中創(chuàng)建一個表項,該表項的單播地址域為單播地址U1,接入接口域為f;
步驟108:系統(tǒng)設備判斷轉(zhuǎn)發(fā)表中是否存在單播地址域為U1并且版本域值為v1的表項,如果存在,執(zhí)行步驟109,否則執(zhí)行步驟110;
步驟109:系統(tǒng)設備從該表項的輸出接口域轉(zhuǎn)發(fā)接收到的數(shù)據(jù)請求消息,執(zhí)行步驟103;
步驟110:系統(tǒng)設備判斷自己是否為交換機,如果是,執(zhí)行步驟111,否則執(zhí)行步驟112;
步驟111:交換機從上游接口轉(zhuǎn)發(fā)接收到的數(shù)據(jù)請求消息,執(zhí)行步驟103;
步驟112:接入路由器AR2將數(shù)據(jù)請求消息路由到接入路由器AR1,然后接入路由器AR1將數(shù)據(jù)請求消息轉(zhuǎn)發(fā)到主服務器S1,主服務器S1返回數(shù)據(jù)響應消息,消息的目的地址為服務器S2的單播地址,源地址為單播地址U1,負載為C1和版本號v1,數(shù)據(jù)響應消息首先到達接入路由器AR2;
步驟113:系統(tǒng)設備從接口f1收到數(shù)據(jù)響應消息,接口f1與發(fā)送或者轉(zhuǎn)發(fā)數(shù)據(jù)響應消息的系統(tǒng)設備相連接,如果系統(tǒng)設備為服務器S2,則執(zhí)行步驟114,否則執(zhí)行步驟115;
步驟114:服務器S2保存數(shù)據(jù)C1,執(zhí)行步驟120;
步驟115:系統(tǒng)設備判斷轉(zhuǎn)發(fā)表中是否存在單播地址為U1的表項,如果存在,執(zhí)行步驟117,否則執(zhí)行步驟116;
步驟116:系統(tǒng)設備在轉(zhuǎn)發(fā)表中創(chuàng)建一個表項,單播地址域為U1,輸出接口域為請求表中單播地址域為U1的表項的輸入接口域值,版本號為v1,執(zhí)行步驟119;
步驟117:系統(tǒng)設備判斷請求表中單播地址為U1的表項的輸入接口域值是否為自己的下游接口,如果是,執(zhí)行步驟118,否則執(zhí)行步驟119;
步驟118:系統(tǒng)設備將請求表中單播地址為U1的表項的輸入接口域值加入到轉(zhuǎn)發(fā)表中單播地址為U1的表項的輸出接口域;
步驟119:系統(tǒng)設備查看請求表中單播地址為U1的表項,然后從該表項的輸入接口域值轉(zhuǎn)發(fā)數(shù)據(jù)響應消息,最后從請求表中刪除該表項,執(zhí)行步驟113;
步驟120:結(jié)束。
通過上述過程,服務器可以從距離最近的備份服務器獲取數(shù)據(jù),并成為該種數(shù)據(jù)的備份服務器,從而可以快速地為用戶提供數(shù)據(jù),降低數(shù)據(jù)通信延遲和代價。
本發(fā)明所述方法中,在服務器S1為數(shù)據(jù)C1的主服務器,單播地址為U1,主服務器S1所在域的接入路由器為AR1,用戶設備D1所在域的接入路由器為AR2的情況下,如果用戶設備D1需要獲取數(shù)據(jù)C1,那么用戶設備D1首先訪問數(shù)據(jù)服務器獲取數(shù)據(jù)C1的最新版本號v以及主服務器S1的單播地址U1,然后根據(jù)下述步驟獲取數(shù)據(jù)C1:
步驟201:開始;
步驟202:用戶設備D1從上游接口發(fā)送數(shù)據(jù)請求消息,該數(shù)據(jù)請求消息的目的地址為單播地址U1,源地址為用戶設備D1的單播地址,負載為版本號v;
步驟203:系統(tǒng)設備從接口f2接收到數(shù)據(jù)請求消息,接口f2與發(fā)送或者轉(zhuǎn)發(fā)數(shù)據(jù)請求消息的系統(tǒng)設備相連接,如果系統(tǒng)設備為數(shù)據(jù)C1的備份服務器,執(zhí)行步驟204,否則執(zhí)行步驟205;
步驟204:備份服務器返回數(shù)據(jù)響應消息,消息的目的地址為用戶設備D1的單播地址,源地址為單播地址U1,負載為C1和版本號v,執(zhí)行步驟213;
步驟205:系統(tǒng)設備判斷在請求表中是否存在單播地址為U1的表項,如果是,執(zhí)行步驟206,否則執(zhí)行步驟207;
步驟206:系統(tǒng)設備將接口f2加入到該表項的接入接口域,執(zhí)行步驟213;
步驟207:系統(tǒng)設備在請求表中創(chuàng)建一個表項,該表項的單播地址域為單播地址U1,接入接口域為f2;
步驟208:系統(tǒng)設備判斷轉(zhuǎn)發(fā)表中是否存在單播地址域為U1并且版本域的值為v的表項,如果存在,執(zhí)行步驟209,否則執(zhí)行步驟210;
步驟209:系統(tǒng)設備從該表項的輸出接口域轉(zhuǎn)發(fā)接收到的數(shù)據(jù)請求消息,執(zhí)行步驟203;
步驟210:系統(tǒng)設備判斷自己是否為交換機,如果是,執(zhí)行步驟211,否則執(zhí)行步驟212;
步驟211:交換機從上游接口轉(zhuǎn)發(fā)接收到的數(shù)據(jù)請求消息,執(zhí)行步驟203;
步驟212:接入路由器AR2將數(shù)據(jù)請求消息路由到接入路由器AR1,然后接入路由器AR1將數(shù)據(jù)請求消息轉(zhuǎn)發(fā)到主服務器S1,主服務器S1返回數(shù)據(jù)響應消息,數(shù)據(jù)響應消息的目的地址為用戶設備D1的單播地址,源地址為單播地址U1,負載為數(shù)據(jù)C1和版本號v,數(shù)據(jù)響應消息首先到達接入路由器AR2;
步驟213:系統(tǒng)設備從接口f3收到數(shù)據(jù)響應消息,接口f3與發(fā)送或者轉(zhuǎn)發(fā)數(shù)據(jù)請求消息的系統(tǒng)設備相連接,如果系統(tǒng)設備為用戶設備D1,則執(zhí)行步驟214,否則執(zhí)行步驟215;
步驟214:用戶設備D1保存數(shù)據(jù)C1,執(zhí)行步驟216;
步驟215:系統(tǒng)設備查看請求表中單播地址為U1的表項,然后從該表項的輸入接口域值轉(zhuǎn)發(fā)數(shù)據(jù)響應消息,最后從請求表中刪除該表項,執(zhí)行步驟213;
步驟216:結(jié)束。
通過上述過程,用戶設備能夠從距離最近的備份服務器獲取數(shù)據(jù),從而降低數(shù)據(jù)通信延遲和代價,提高了網(wǎng)絡服務質(zhì)量。
本發(fā)明所述方法中,在服務器S1為數(shù)據(jù)C1的主服務器,單播地址為U1,主服務器S1所在域的接入路由器為AR1的情況下;如果交換機或者接入路由器AR3收到請求版本號為v2的數(shù)據(jù)C1的數(shù)據(jù)請求消息后,交換機或者接入路由器AR3首先查看轉(zhuǎn)發(fā)表,如果轉(zhuǎn)發(fā)表中存在單播地址為U1的表項,但是該表項的版本號不是v2,表明主服務器S1對數(shù)據(jù)C1進行了更新操作,則收到數(shù)據(jù)請求消息的交換機或者接入路由器執(zhí)行下述過程更新數(shù)據(jù)C1:
步驟301:開始;
步驟302:判斷接收到數(shù)據(jù)請求消息的系統(tǒng)設備是否為交換機,如果是,執(zhí)行步驟303,否則執(zhí)行步驟304;
步驟303:交換機從其上游接口轉(zhuǎn)發(fā)數(shù)據(jù)請求消息,執(zhí)行步驟302;
步驟304:接入路由器AR3將數(shù)據(jù)請求消息路由到接入路由器AR1,然后接入路由器AR1將數(shù)據(jù)請求消息轉(zhuǎn)發(fā)到主服務器S1,主服務器S1返回數(shù)據(jù)響應消息,消息的目的地址為數(shù)據(jù)請求消息的源地址,源地址為單播地址U1,負載為數(shù)據(jù)C1和版本號v2,數(shù)據(jù)響應消息首先到達接入路由器AR3;
步驟305:接入路由器AR3將轉(zhuǎn)發(fā)表中單播地址為U1的表項的版本號更新為v2,然后從該表項中的輸出接口域轉(zhuǎn)發(fā)該數(shù)據(jù)響應消息,如果在請求表中存在單播地址為U1的表項,則接入路由器AR3從該表項的輸入接口域轉(zhuǎn)發(fā)該數(shù)據(jù)響應消息;
步驟306:如果接收到數(shù)據(jù)響應消息的為數(shù)據(jù)C1的備份服務器,則執(zhí)行步驟307,否則執(zhí)行步驟308;
步驟307:數(shù)據(jù)C1的備份服務器將數(shù)據(jù)C1更新為版本號為v2的數(shù)據(jù),執(zhí)行步驟311;
步驟308:如果接收到數(shù)據(jù)響應消息的為請求數(shù)據(jù)C1的用戶設備,則執(zhí)行步驟309,否則執(zhí)行步驟310;
步驟309:用戶設備保存版本號為v2的數(shù)據(jù)C1,執(zhí)行步驟311;
步驟310:系統(tǒng)設備將轉(zhuǎn)發(fā)表中單播地址為U1的表項的版本號更新為v2,然后從該表項中的輸出接口域轉(zhuǎn)發(fā)該數(shù)據(jù)響應消息,如果在請求表中存在單播地址為U1的表項,則從該表項的輸入接口域轉(zhuǎn)發(fā)該數(shù)據(jù)響應消息,執(zhí)行步驟306;
步驟311:結(jié)束。
備份服務器通過上述過程能夠?qū)?shù)據(jù)更新到最新版本,從而保證能夠向用戶設備提供最新的數(shù)據(jù),從而保證數(shù)據(jù)的一致性。
本發(fā)明所述方法中,數(shù)據(jù)C1的主服務器為S1,主服務器S1的單播地址為U1,備份服務器S3能夠提供數(shù)據(jù)C1,備份服務器S3所在域的接入路由器為AR3的情況下,如果備份服務器S3已經(jīng)刪除數(shù)據(jù)C1,備份服務器S3接收到請求數(shù)據(jù)C1的數(shù)據(jù)請求消息,那么備份服務器S3根據(jù)如下步驟修改轉(zhuǎn)發(fā)表:
步驟401:開始;
步驟402:備份服務器S3發(fā)送數(shù)據(jù)拒絕消息,該數(shù)據(jù)拒絕消息的目的地址為接收到的數(shù)據(jù)請求消息的源地址,源地址為數(shù)據(jù)請求消息的目的地址,負載為接收到的數(shù)據(jù)請求消息中的負載;
步驟403:系統(tǒng)設備從接口f4接收到數(shù)據(jù)拒絕消息后,接口f4與發(fā)送或者轉(zhuǎn)發(fā)數(shù)據(jù)請求消息的系統(tǒng)設備相連接,查看轉(zhuǎn)發(fā)表中單播地址為U1的表項,并從該表項的輸出接口域中刪除接口f4,其中接口f~f4分別為不同的數(shù)據(jù)傳輸接口;
步驟404:系統(tǒng)設備判斷該表項的輸出接口域值是否為空,如果為空,則執(zhí)行步驟405,否則執(zhí)行步驟411;
步驟405:判斷系統(tǒng)設備的請求表中是否存在單播地址為U1的表項,如果存在,則執(zhí)行步驟406,否則執(zhí)行步驟407;
步驟406:如果該表項的輸入接口為上游接口,系統(tǒng)設備從請求表中刪除該表項,執(zhí)行步驟408;
步驟407:系統(tǒng)設備在請求表中創(chuàng)建一個表項,該表項的輸入接口為f4,單播地址為數(shù)據(jù)拒絕消息的源地址;
步驟408:判斷系統(tǒng)設備是否為接入路由器AR3,如果是,則執(zhí)行步驟409,否則執(zhí)行步驟410;
步驟409:接入路由器AR3向主服務器S1發(fā)送數(shù)據(jù)請求消息,同時從轉(zhuǎn)發(fā)表中刪除單播地址為U1的表項,數(shù)據(jù)請求消息的目的地址為接收到的數(shù)據(jù)拒絕消息的源地址,源地址為數(shù)據(jù)拒絕消息的目的地址,負載為接收到的數(shù)據(jù)拒絕消息中的負載,數(shù)據(jù)請求消息到達主服務器S1后,主服務器S1返回數(shù)據(jù)響應消息,數(shù)據(jù)響應消息的目的地址為接收到的數(shù)據(jù)請求消息的源地址,源地址為數(shù)據(jù)請求消息的目的地址,負載數(shù)據(jù)C1,執(zhí)行步驟412;
步驟410:系統(tǒng)設備從上游接口轉(zhuǎn)發(fā)數(shù)據(jù)拒絕消息,并從轉(zhuǎn)發(fā)表中刪除單播地址為U1的表項,執(zhí)行步驟403;
步驟411:系統(tǒng)設備從轉(zhuǎn)發(fā)表中單播地址為U1的輸出接口域發(fā)送數(shù)據(jù)請求消息,數(shù)據(jù)請求消息的目的地址為接收到的數(shù)據(jù)拒絕消息的源地址,源地址為數(shù)據(jù)拒絕消息的目的地址,負載為接收到的數(shù)據(jù)拒絕消息中的負載,數(shù)據(jù)請求消息到達數(shù)據(jù)C1的備份服務器后,備份服務器返回數(shù)據(jù)響應消息,數(shù)據(jù)響應消息的目的地址為接收到的數(shù)據(jù)請求消息的源地址,源地址為數(shù)據(jù)請求消息的目的地址,負載為數(shù)據(jù)C1;
步驟412:系統(tǒng)設備收到數(shù)據(jù)響應消息后,從請求表中單播地址為U1的輸入接口轉(zhuǎn)發(fā)該數(shù)據(jù)響應消息,并從請求表中刪除單播地址為U1的表項;
步驟413:如果服務器或者用戶設備接收到數(shù)據(jù)響應消息,則執(zhí)行步驟414,否則執(zhí)行步驟412;
步驟414:結(jié)束。
系統(tǒng)設備通過上述過程能夠快速更新轉(zhuǎn)發(fā)表,將無法提供數(shù)據(jù)的備份服務器從轉(zhuǎn)發(fā)表中刪除,從而保證能夠向用戶設備提供有效的備份服務器信息,從而使得用戶設備能夠從最近的備份服務器獲取數(shù)據(jù),降低數(shù)據(jù)通信延遲和代價。
有益效果:本發(fā)明提供了一種基于互聯(lián)網(wǎng)的數(shù)據(jù)通信實現(xiàn)方法,用戶通過本發(fā)明所提供的基于互聯(lián)網(wǎng)的數(shù)據(jù)通信實現(xiàn)方法能夠從距離最近的服務器以單播方式獲取服務數(shù)據(jù),縮短了獲取服務數(shù)據(jù)的延遲和代價,提高了服務質(zhì)量,本發(fā)明可應用于大數(shù)據(jù)獲取等領域,具有廣泛的應用前景。
附圖說明
下面結(jié)合附圖和具體實施方式對本發(fā)明做更進一步的具體說明,本發(fā)明的上述和/或其他方面的優(yōu)點將會變得更加清楚。
圖1為本發(fā)明所述的網(wǎng)絡體系結(jié)構(gòu)示意圖。
圖2為本發(fā)明所述的備份服務器獲取數(shù)據(jù)的流程示意圖。
圖3為本發(fā)明所述的用戶設備獲取數(shù)據(jù)的流程示意圖。
圖4為本發(fā)明所述的備份服務器更新數(shù)據(jù)的流程示意圖。
圖5為本發(fā)明所述的轉(zhuǎn)發(fā)表更新流程示意圖。
具體實施方式:
本發(fā)明提供了一種基于互聯(lián)網(wǎng)的數(shù)據(jù)通信實現(xiàn)方法,用戶通過本發(fā)明所提供的基于互聯(lián)網(wǎng)的數(shù)據(jù)通信實現(xiàn)方法能夠從距離最近的服務器以單播方式獲取服務數(shù)據(jù),縮短了獲取服務數(shù)據(jù)的延遲和代價,提高了服務質(zhì)量,本發(fā)明可應用于大數(shù)據(jù)獲取等領域,具有廣泛的應用前景。
圖1為本發(fā)明所述的網(wǎng)絡體系結(jié)構(gòu)示意圖。所述互聯(lián)網(wǎng)包括兩個以上的子網(wǎng)1,一個子網(wǎng)1由一個全局網(wǎng)絡前綴唯一標識,子網(wǎng)1通過接入路由器2接入到互聯(lián)網(wǎng)3;一個子網(wǎng)1內(nèi)包括兩個以上的交換機,與接入路由器直接相連的交換機稱為核心交換機4,與用戶設備(例如PC機)直接相連的交換機稱為接入交換機5;一個子網(wǎng)1內(nèi)所有的接入路由器2和交換機組成的拓撲結(jié)構(gòu)為樹狀結(jié)構(gòu),其中接入路由器2為樹狀結(jié)構(gòu)的根節(jié)點;交換機與自己在樹狀結(jié)構(gòu)中的父節(jié)點相連的接口稱為上游接口,與自己在樹狀結(jié)構(gòu)中的子節(jié)點相連的接口稱為下游接口。
圖2為本發(fā)明所述的備份服務器獲取數(shù)據(jù)的流程示意圖。一個子網(wǎng)內(nèi)設置兩個以上的服務器,一個子網(wǎng)內(nèi)的服務器包括主服務器和備份服務器;一種類型的數(shù)據(jù)由一個數(shù)據(jù)名稱唯一標識,一個數(shù)據(jù)名稱映射為一個服務器的單播地址,該服務器稱為該數(shù)據(jù)的主服務器,主服務器能夠產(chǎn)生和更新該數(shù)據(jù),主服務器用版本號來標識該數(shù)據(jù),當主服務器更新該數(shù)據(jù)后,該數(shù)據(jù)的版本號對應更新;從主服務器申請數(shù)據(jù)后保存該數(shù)據(jù)并在本地向用戶設備提供該種數(shù)據(jù)的服務器稱為備份服務器,備份服務器能夠與任何交換機或者接入路由器直接相連;
交換機、服務器和接入路由器稱為系統(tǒng)設備;
數(shù)據(jù)名稱和主服務器單播地址的映射信息,以及數(shù)據(jù)名稱標識的數(shù)據(jù)的最新版本號保存在數(shù)據(jù)服務器,如果數(shù)據(jù)的主服務器更新了該數(shù)據(jù)并產(chǎn)生了新的版本號,主服務器通知數(shù)據(jù)服務器更新相應數(shù)據(jù)的版本號;數(shù)據(jù)服務器的工作模式與域名服務器的工作模式相同;數(shù)據(jù)服務器不屬于任何子網(wǎng),也不用于產(chǎn)生、更新或者備份數(shù)據(jù);
如果用戶設備請求一種數(shù)據(jù),用戶設備通過訪問數(shù)據(jù)服務器來獲取該數(shù)據(jù)的最新版本號以及主服務器的單播地址;
每個接入路由器或者交換機維護一個轉(zhuǎn)發(fā)表和一個請求表,轉(zhuǎn)發(fā)表項包括三個域:單播地址域,輸出接口域,以及版本號域;請求表包括兩個域:單播地址域和輸入接口域;
在服務器S1為數(shù)據(jù)C1的主服務器,單播地址為U1,服務器S1所在域的接入路由器為AR1,服務器S2所在域的接入路由器為AR2的情況下,如果服務器S2需要獲取數(shù)據(jù)C1并成為數(shù)據(jù)C1的備份服務器,那么服務器S2首先訪問數(shù)據(jù)服務器獲取數(shù)據(jù)C1的最新版本號v1以及主服務器S1的單播地址U1,然后執(zhí)行下述步驟:
步驟101:開始;
步驟102:服務器S2從上游接口發(fā)送數(shù)據(jù)請求消息,該消息的目的地址為單播地址U1,源地址為服務器S2的單播地址,負載為版本號v1;
步驟103:系統(tǒng)設備從接口f接收到數(shù)據(jù)請求消息,接口f與發(fā)送或者轉(zhuǎn)發(fā)數(shù)據(jù)請求消息的系統(tǒng)設備相連接,如果系統(tǒng)設備為數(shù)據(jù)C1的備份服務器,執(zhí)行步驟104,否則執(zhí)行步驟105;
步驟104:備份服務器返回數(shù)據(jù)響應消息,數(shù)據(jù)響應消息的目的地址為服務器S2的單播地址,源地址為單播地址U1,負載為數(shù)據(jù)C1和版本號v1,執(zhí)行步驟113;
步驟105:系統(tǒng)設備判斷在請求表中是否存在單播地址為U1的表項,如果是,執(zhí)行步驟106,否則執(zhí)行步驟107;
步驟106:系統(tǒng)設備將接口f加入到該表項的接入接口域,執(zhí)行步驟113;
步驟107:系統(tǒng)設備在請求表中創(chuàng)建一個表項,該表項的單播地址域為單播地址U1,接入接口域為f;
步驟108:系統(tǒng)設備判斷轉(zhuǎn)發(fā)表中是否存在單播地址域為U1并且版本域值為v1的表項,如果存在,執(zhí)行步驟109,否則執(zhí)行步驟110;
步驟109:系統(tǒng)設備從該表項的輸出接口域轉(zhuǎn)發(fā)接收到的數(shù)據(jù)請求消息,執(zhí)行步驟103;
步驟110:系統(tǒng)設備判斷自己是否為交換機,如果是,執(zhí)行步驟111,否則執(zhí)行步驟112;
步驟111:交換機從上游接口轉(zhuǎn)發(fā)接收到的數(shù)據(jù)請求消息,執(zhí)行步驟103;
步驟112:接入路由器AR2將數(shù)據(jù)請求消息路由到接入路由器AR1,然后接入路由器AR1將數(shù)據(jù)請求消息轉(zhuǎn)發(fā)到主服務器S1,主服務器S1返回數(shù)據(jù)響應消息,消息的目的地址為服務器S2的單播地址,源地址為單播地址U1,負載為C1和版本號v1,數(shù)據(jù)響應消息首先到達接入路由器AR2;
步驟113:系統(tǒng)設備從接口f1收到數(shù)據(jù)響應消息,接口f1與發(fā)送或者轉(zhuǎn)發(fā)數(shù)據(jù)響應消息的系統(tǒng)設備相連接,如果系統(tǒng)設備為服務器S2,則執(zhí)行步驟114,否則執(zhí)行步驟115;
步驟114:服務器S2保存數(shù)據(jù)C1,執(zhí)行步驟120;
步驟115:系統(tǒng)設備判斷轉(zhuǎn)發(fā)表中是否存在單播地址為U1的表項,如果存在,執(zhí)行步驟117,否則執(zhí)行步驟116;
步驟116:系統(tǒng)設備在轉(zhuǎn)發(fā)表中創(chuàng)建一個表項,單播地址域為U1,輸出接口域為請求表中單播地址域為U1的表項的輸入接口域值,版本號為v1,執(zhí)行步驟119;
步驟117:系統(tǒng)設備判斷請求表中單播地址為U1的表項的輸入接口域值是否為自己的下游接口,如果是,執(zhí)行步驟118,否則執(zhí)行步驟119;
步驟118:系統(tǒng)設備將請求表中單播地址為U1的表項的輸入接口域值加入到轉(zhuǎn)發(fā)表中單播地址為U1的表項的輸出接口域;
步驟119:系統(tǒng)設備查看請求表中單播地址為U1的表項,然后從該表項的輸入接口域值轉(zhuǎn)發(fā)數(shù)據(jù)響應消息,最后從請求表中刪除該表項,執(zhí)行步驟113;
步驟120:結(jié)束。
通過上述過程,服務器可以從距離最近的備份服務器獲取數(shù)據(jù),并成為該種數(shù)據(jù)的備份服務器,從而可以快速地為用戶提供數(shù)據(jù),降低數(shù)據(jù)通信延遲和代價。
圖3為本發(fā)明所述的用戶設備獲取數(shù)據(jù)的流程示意圖。在服務器S1為數(shù)據(jù)C1的主服務器,單播地址為U1,主服務器S1所在域的接入路由器為AR1,用戶設備D1所在域的接入路由器為AR2的情況下,如果用戶設備D1需要獲取數(shù)據(jù)C1,那么用戶設備D1首先訪問數(shù)據(jù)服務器獲取數(shù)據(jù)C1的最新版本號v以及主服務器S1的單播地址U1,然后根據(jù)下述步驟獲取數(shù)據(jù)C1:
步驟201:開始;
步驟202:用戶設備D1從上游接口發(fā)送數(shù)據(jù)請求消息,該數(shù)據(jù)請求消息的目的地址為單播地址U1,源地址為用戶設備D1的單播地址,負載為版本號v;
步驟203:系統(tǒng)設備從接口f2接收到數(shù)據(jù)請求消息,接口f2與發(fā)送或者轉(zhuǎn)發(fā)數(shù)據(jù)請求消息的系統(tǒng)設備相連接,如果系統(tǒng)設備為數(shù)據(jù)C1的備份服務器,執(zhí)行步驟204,否則執(zhí)行步驟205;
步驟204:備份服務器返回數(shù)據(jù)響應消息,消息的目的地址為用戶設備D1的單播地址,源地址為單播地址U1,負載為C1和版本號v,執(zhí)行步驟213;
步驟205:系統(tǒng)設備判斷在請求表中是否存在單播地址為U1的表項,如果是,執(zhí)行步驟206,否則執(zhí)行步驟207;
步驟206:系統(tǒng)設備將接口f2加入到該表項的接入接口域,執(zhí)行步驟213;
步驟207:系統(tǒng)設備在請求表中創(chuàng)建一個表項,該表項的單播地址域為單播地址U1,接入接口域為f2;
步驟208:系統(tǒng)設備判斷轉(zhuǎn)發(fā)表中是否存在單播地址域為U1并且版本域的值為v的表項,如果存在,執(zhí)行步驟209,否則執(zhí)行步驟210;
步驟209:系統(tǒng)設備從該表項的輸出接口域轉(zhuǎn)發(fā)接收到的數(shù)據(jù)請求消息,執(zhí)行步驟203;
步驟210:系統(tǒng)設備判斷自己是否為交換機,如果是,執(zhí)行步驟211,否則執(zhí)行步驟212;
步驟211:交換機從上游接口轉(zhuǎn)發(fā)接收到的數(shù)據(jù)請求消息,執(zhí)行步驟203;
步驟212:接入路由器AR2將數(shù)據(jù)請求消息路由到接入路由器AR1,然后接入路由器AR1將數(shù)據(jù)請求消息轉(zhuǎn)發(fā)到主服務器S1,主服務器S1返回數(shù)據(jù)響應消息,數(shù)據(jù)響應消息的目的地址為用戶設備D1的單播地址,源地址為單播地址U1,負載為數(shù)據(jù)C1和版本號v,數(shù)據(jù)響應消息首先到達接入路由器AR2;
步驟213:系統(tǒng)設備從接口f3收到數(shù)據(jù)響應消息,接口f3與發(fā)送或者轉(zhuǎn)發(fā)數(shù)據(jù)請求消息的系統(tǒng)設備相連接,如果系統(tǒng)設備為用戶設備D1,則執(zhí)行步驟214,否則執(zhí)行步驟215;
步驟214:用戶設備D1保存數(shù)據(jù)C1,執(zhí)行步驟216;
步驟215:系統(tǒng)設備查看請求表中單播地址為U1的表項,然后從該表項的輸入接口域值轉(zhuǎn)發(fā)數(shù)據(jù)響應消息,最后從請求表中刪除該表項,執(zhí)行步驟213;
步驟216:結(jié)束。
通過上述過程,用戶設備能夠從距離最近的備份服務器獲取數(shù)據(jù),從而降低數(shù)據(jù)通信延遲和代價,提高了網(wǎng)絡服務質(zhì)量。
圖4為本發(fā)明所述的備份服務器更新數(shù)據(jù)的流程示意圖。在服務器S1為數(shù)據(jù)C1的主服務器,單播地址為U1,主服務器S1所在域的接入路由器為AR1的情況下;如果交換機或者接入路由器AR3收到請求版本號為v2的數(shù)據(jù)C1的數(shù)據(jù)請求消息后,交換機或者接入路由器AR3首先查看轉(zhuǎn)發(fā)表,如果轉(zhuǎn)發(fā)表中存在單播地址為U1的表項,但是該表項的版本號不是v2,表明主服務器S1對數(shù)據(jù)C1進行了更新操作,則收到數(shù)據(jù)請求消息的交換機或者接入路由器執(zhí)行下述過程更新數(shù)據(jù)C1:
步驟301:開始;
步驟302:判斷接收到數(shù)據(jù)請求消息的系統(tǒng)設備是否為交換機,如果是,執(zhí)行步驟303,否則執(zhí)行步驟304;
步驟303:交換機從其上游接口轉(zhuǎn)發(fā)數(shù)據(jù)請求消息,執(zhí)行步驟302;
步驟304:接入路由器AR3將數(shù)據(jù)請求消息路由到接入路由器AR1,然后接入路由器AR1將數(shù)據(jù)請求消息轉(zhuǎn)發(fā)到主服務器S1,主服務器S1返回數(shù)據(jù)響應消息,消息的目的地址為數(shù)據(jù)請求消息的源地址,源地址為單播地址U1,負載為數(shù)據(jù)C1和版本號v2,數(shù)據(jù)響應消息首先到達接入路由器AR3;
步驟305:接入路由器AR3將轉(zhuǎn)發(fā)表中單播地址為U1的表項的版本號更新為v2,然后從該表項中的輸出接口域轉(zhuǎn)發(fā)該數(shù)據(jù)響應消息,如果在請求表中存在單播地址為U1的表項,則接入路由器AR3從該表項的輸入接口域轉(zhuǎn)發(fā)該數(shù)據(jù)響應消息;
步驟306:如果接收到數(shù)據(jù)響應消息的為數(shù)據(jù)C1的備份服務器,則執(zhí)行步驟307,否則執(zhí)行步驟308;
步驟307:數(shù)據(jù)C1的備份服務器將數(shù)據(jù)C1更新為版本號為v2的數(shù)據(jù),執(zhí)行步驟311;
步驟308:如果接收到數(shù)據(jù)響應消息的為請求數(shù)據(jù)C1的用戶設備,則執(zhí)行步驟309,否則執(zhí)行步驟310;
步驟309:用戶設備保存版本號為v2的數(shù)據(jù)C1,執(zhí)行步驟311;
步驟310:系統(tǒng)設備將轉(zhuǎn)發(fā)表中單播地址為U1的表項的版本號更新為v2,然后從該表項中的輸出接口域轉(zhuǎn)發(fā)該數(shù)據(jù)響應消息,如果在請求表中存在單播地址為U1的表項,則從該表項的輸入接口域轉(zhuǎn)發(fā)該數(shù)據(jù)響應消息,執(zhí)行步驟306;
步驟311:結(jié)束。
備份服務器通過上述過程能夠?qū)?shù)據(jù)更新到最新版本,從而保證能夠向用戶設備提供最新的數(shù)據(jù),從而保證數(shù)據(jù)的一致性。
圖5為本發(fā)明所述的轉(zhuǎn)發(fā)表更新流程示意圖。數(shù)據(jù)C1的主服務器為S1,主服務器S1的單播地址為U1,備份服務器S3能夠提供數(shù)據(jù)C1,備份服務器S3所在域的接入路由器為AR3的情況下,如果備份服務器S3已經(jīng)刪除數(shù)據(jù)C1,備份服務器S3接收到請求數(shù)據(jù)C1的數(shù)據(jù)請求消息,那么備份服務器S3根據(jù)如下步驟修改轉(zhuǎn)發(fā)表:
步驟401:開始;
步驟402:備份服務器S3發(fā)送數(shù)據(jù)拒絕消息,該數(shù)據(jù)拒絕消息的目的地址為接收到的數(shù)據(jù)請求消息的源地址,源地址為數(shù)據(jù)請求消息的目的地址,負載為接收到的數(shù)據(jù)請求消息中的負載;
步驟403:系統(tǒng)設備從接口f4接收到數(shù)據(jù)拒絕消息后,接口f4與發(fā)送或者轉(zhuǎn)發(fā)數(shù)據(jù)請求消息的系統(tǒng)設備相連接,查看轉(zhuǎn)發(fā)表中單播地址為U1的表項,并從該表項的輸出接口域中刪除接口f4,其中接口f~f4分別為不同的數(shù)據(jù)傳輸接口;
步驟404:系統(tǒng)設備判斷該表項的輸出接口域值是否為空,如果為空,則執(zhí)行步驟405,否則執(zhí)行步驟411;
步驟405:判斷系統(tǒng)設備的請求表中是否存在單播地址為U1的表項,如果存在,則執(zhí)行步驟406,否則執(zhí)行步驟407;
步驟406:如果該表項的輸入接口為上游接口,系統(tǒng)設備從請求表中刪除該表項,執(zhí)行步驟408;
步驟407:系統(tǒng)設備在請求表中創(chuàng)建一個表項,該表項的輸入接口為f4,單播地址為數(shù)據(jù)拒絕消息的源地址;
步驟408:判斷系統(tǒng)設備是否為接入路由器AR3,如果是,則執(zhí)行步驟409,否則執(zhí)行步驟410;
步驟409:接入路由器AR3向主服務器S1發(fā)送數(shù)據(jù)請求消息,同時從轉(zhuǎn)發(fā)表中刪除單播地址為U1的表項,數(shù)據(jù)請求消息的目的地址為接收到的數(shù)據(jù)拒絕消息的源地址,源地址為數(shù)據(jù)拒絕消息的目的地址,負載為接收到的數(shù)據(jù)拒絕消息中的負載,數(shù)據(jù)請求消息到達主服務器S1后,主服務器S1返回數(shù)據(jù)響應消息,數(shù)據(jù)響應消息的目的地址為接收到的數(shù)據(jù)請求消息的源地址,源地址為數(shù)據(jù)請求消息的目的地址,負載數(shù)據(jù)C1,執(zhí)行步驟412;
步驟410:系統(tǒng)設備從上游接口轉(zhuǎn)發(fā)數(shù)據(jù)拒絕消息,并從轉(zhuǎn)發(fā)表中刪除單播地址為U1的表項,執(zhí)行步驟403;
步驟411:系統(tǒng)設備從轉(zhuǎn)發(fā)表中單播地址為U1的輸出接口域發(fā)送數(shù)據(jù)請求消息,數(shù)據(jù)請求消息的目的地址為接收到的數(shù)據(jù)拒絕消息的源地址,源地址為數(shù)據(jù)拒絕消息的目的地址,負載為接收到的數(shù)據(jù)拒絕消息中的負載,數(shù)據(jù)請求消息到達數(shù)據(jù)C1的備份服務器后,備份服務器返回數(shù)據(jù)響應消息,數(shù)據(jù)響應消息的目的地址為接收到的數(shù)據(jù)請求消息的源地址,源地址為數(shù)據(jù)請求消息的目的地址,負載為數(shù)據(jù)C1;
步驟412:系統(tǒng)設備收到數(shù)據(jù)響應消息后,從請求表中單播地址為U1的輸入接口轉(zhuǎn)發(fā)該數(shù)據(jù)響應消息,并從請求表中刪除單播地址為U1的表項;
步驟413:如果服務器或者用戶設備接收到數(shù)據(jù)響應消息,則執(zhí)行步驟414,否則執(zhí)行步驟412;
步驟414:結(jié)束。
系統(tǒng)設備通過上述過程能夠快速更新轉(zhuǎn)發(fā)表,將無法提供數(shù)據(jù)的備份服務器從轉(zhuǎn)發(fā)表中刪除,從而保證能夠向用戶設備提供有效的備份服務器信息,從而使得用戶設備能夠從最近的備份服務器獲取數(shù)據(jù),降低數(shù)據(jù)通信延遲和代價。
實施例1
基于表1的仿真參數(shù),本實施例模擬了本發(fā)明中的數(shù)據(jù)通信實現(xiàn)方法,性能分析如下:當備份服務器數(shù)量增加時,用戶設備能夠從最近的備份服務器獲取數(shù)據(jù),從而大幅度降低了數(shù)據(jù)獲取路由路徑,代價,延遲和成功率。車輛節(jié)點獲取服務數(shù)據(jù)的平均延遲為35ms,平均代價為6。
表1仿真參數(shù)
本發(fā)明提供了一種基于互聯(lián)網(wǎng)的數(shù)據(jù)通信實現(xiàn)方法的思路,具體實現(xiàn)該技術方案的方法和途徑很多,以上所述僅是本發(fā)明的優(yōu)選實施方式,應當指出,對于本技術領域的普通技術人員來說,在不脫離本發(fā)明原理的前提下,還可以做出若干改進和潤飾,這些改進和潤飾也應視為本發(fā)明的保護范圍。本實施例中未明確的各組成部份均可用現(xiàn)有技術加以實現(xiàn)。