使用等同匹配網(wǎng)絡(luò)名稱的集合同步的制作方法
【技術(shù)領(lǐng)域】
[0001]本發(fā)明大體上涉及數(shù)據(jù)同步。更具體來說,本發(fā)明涉及使用確切匹配名稱執(zhí)行集合在網(wǎng)絡(luò)上的對等機之間的同步。
【背景技術(shù)】
[0002]在許多計算應(yīng)用中,網(wǎng)絡(luò)上的對等機使其相應(yīng)數(shù)據(jù)集合同步常常是重要的。數(shù)字內(nèi)容的激增產(chǎn)生了大量需要調(diào)和的集合。內(nèi)容中心網(wǎng)絡(luò)(CCN)架構(gòu)已經(jīng)設(shè)計以促進存取及處理此類數(shù)字內(nèi)容。CCN包含實體或節(jié)點,例如網(wǎng)絡(luò)客戶端、轉(zhuǎn)發(fā)器(例如,路由器)及內(nèi)容產(chǎn)生器,其通過發(fā)送對于各種內(nèi)容項目的“興趣”包及接收返回的“內(nèi)容對象”包而彼此通信?;谖ㄒ幻Q識別CCN興趣及內(nèi)容對象,所述唯一名稱通常為階層結(jié)構(gòu)可變長度識別符(HSVLI),且包括從最一般層級到最特定層級排序的連續(xù)名稱組成部分。
[0003]當前CCN同步協(xié)議使用最長前綴匹配方法,其中對“/parc/events/”的興趣將匹配“/pare/events/calendar, txt”及“/pare/events/conference, txt”兩者。此當前同步協(xié)議是基于擴展興趣的名稱的響應(yīng)。此同步協(xié)議描述于以下申請案中:
[0004]標題為“使用數(shù)據(jù)庫同步的動態(tài)路由協(xié)議(DYNAMIC ROUTING PROTOCOLS USINGDATABASE SYNCHRONIZAT1N) ”的第13/720,736號美國專利申請案(代理人檔案號碼PARC-20111397-US-NP),發(fā)明人為 Van L.Jacobson 及 Marc E.Mosko,于 2012 年 12 月 19 H申請(下文中稱為“第13/720,736號美國專利申請案”);以及
[0005]標題為“通過按名稱的內(nèi)容同步進行數(shù)據(jù)輸送(DATA TRANSPORT BY NAMEDCONTENT SYNCHRONIZAT1N) ”的第13/681,306號美國專利申請案(代理人檔案號碼PARC-20111317-US-NP),發(fā)明人為 VanL.Jacobson 及 Marc E.Mosko,于 2012 年 11 月 19 日申請(下文中稱為“第13/681,306號美國專利申請案”)。
[0006]隨著CCN架構(gòu)演變,存在對于允許使用確切名稱匹配而非當前的最長前綴匹配的同步協(xié)議的需要。在此類新架構(gòu)中,當前CCN同步協(xié)議將不起作用。
【發(fā)明內(nèi)容】
[0007]—個實施例提供一種通過使用確切匹配名稱促進數(shù)據(jù)集合在本地節(jié)點與遠程節(jié)點之間的同步的系統(tǒng)。在操作期間,本地節(jié)點接收對應(yīng)于遠程節(jié)點處的遠程清單的播發(fā)。清單表示節(jié)點處的內(nèi)容對象集合。在一些實施例中,清單對應(yīng)于識別集合的內(nèi)容對象的根散列值。本地節(jié)點確定本地清單與遠程清單兩者指示相同內(nèi)容對象集合。所述本地節(jié)點接著通過比較本地清單的根散列值與遠程清單的根散列值而確定集合的內(nèi)容是否不同。響應(yīng)于確定清單的根散列值不同,本地節(jié)點通過發(fā)送對于遠程清單的請求而檢索遠程清單。本地節(jié)點確定遠程清單中識別的哪些內(nèi)容對象不同于本地清單中識別的內(nèi)容對象。本地節(jié)點發(fā)射對于不同的內(nèi)容對象的一組興趣且接收所請求的內(nèi)容對象集合,由此促進與本地節(jié)點及遠程節(jié)點兩者處的清單相關(guān)聯(lián)的內(nèi)容對象的同步。
[0008]在另一實施例中,本地節(jié)點通過基于組塊協(xié)議發(fā)送一組興趣而發(fā)送對于遠程清單的請求,其中每一興趣對應(yīng)于清單的經(jīng)編號信息塊。
[0009]在另一實施例中,本地節(jié)點基于以下各者中的一或多者發(fā)射對于不同的內(nèi)容對象的一組興趣:內(nèi)容對象的散列值;以及在清單中指示的內(nèi)容對象的名稱。
[0010]在一些實施例中,內(nèi)容對象的名稱為階層結(jié)構(gòu)可變長度識別符(HSVLI),其包括從最一般層級到最特定層級排序的連續(xù)名稱組成部分,且其中名稱進一步指示以下各者中的一或多者:修改內(nèi)容對象的時間;以及基于修改內(nèi)容對象的時間的序號。
[0011]在一些實施例中,本地節(jié)點基于以下各者中的一或多者:確定遠程清單中的內(nèi)容對象是否比本地清單中的內(nèi)容對象更為新近以下各者中的一或多者:修改內(nèi)容對象的時間,其中較晚的時間指示內(nèi)容對象的更為新近版本;基于修改內(nèi)容對象的時間的序號,其中較大序號指示內(nèi)容對象的更為新近版本;以及內(nèi)容對象的名稱的次序,其中隱式排序次序指示內(nèi)容對象的更為新近版本。
[0012]在一些實施例中,響應(yīng)于確定遠程清單中的內(nèi)容對象的修改時間比本地清單中的對應(yīng)內(nèi)容對象的修改時間更為新近,系統(tǒng)用遠程清單中的內(nèi)容對象的值更新本地清單中的內(nèi)容對象的值。
[0013]在一些實施例中,響應(yīng)于確定遠程清單中的內(nèi)容對象的修改時間不如本地清單中的對應(yīng)內(nèi)容對象的修改時間新近,系統(tǒng)將遠程清單中的內(nèi)容對象的對應(yīng)值及修改時間插入到本地清單中的內(nèi)容對象的歷史字段中。
[0014]在一些實施例中,由本地節(jié)點發(fā)送或接收的數(shù)據(jù)包指示以下各者中的一或多者:識別清單的可路由前綴;用以確定數(shù)據(jù)包對應(yīng)于數(shù)據(jù)傳送的識別符;清單的根散列值;對應(yīng)于基于組塊協(xié)議編號的信息塊的編號;內(nèi)容對象的散列;以及清單中的內(nèi)容對象的名稱。協(xié)議
[0015]在一些實施例中,本地節(jié)點發(fā)射對應(yīng)于清單的播發(fā),其中清單表示節(jié)點處的內(nèi)容對象集合。本地節(jié)點響應(yīng)于接收到對于清單的請求而將清單發(fā)射到遠程節(jié)點。本地節(jié)點將與清單相關(guān)聯(lián)的所請求內(nèi)容對象發(fā)射到遠程節(jié)點。
[0016]在一些實施例中,對應(yīng)于所發(fā)射播發(fā)的興趣指示以下各者中的一或多者:識別清單的可路由前綴;用以確定興趣對應(yīng)于清單的播發(fā)的識別符;以及清單的根散列值。
【附圖說明】
[0017]圖1說明根據(jù)本發(fā)明的實施例的促進使清單在內(nèi)容中心網(wǎng)絡(luò)中的節(jié)點之間同步的示范性計算機系統(tǒng)。
[0018]圖2說明根據(jù)本發(fā)明的實施例的在本地節(jié)點與遠程節(jié)點之間的示范性通信。
[0019]圖3呈現(xiàn)根據(jù)本發(fā)明的實施例的說明用于使與遠程清單及本地清單相關(guān)聯(lián)的內(nèi)容同步的方法的流程圖。
[0020]圖4呈現(xiàn)根據(jù)本發(fā)明的實施例的說明用于基于修改時間使與遠程清單及本地清單相關(guān)聯(lián)的內(nèi)容同步的方法的流程圖。
[0021]圖5呈現(xiàn)根據(jù)本發(fā)明的實施例的說明用于發(fā)射對應(yīng)于清單的播發(fā)的方法的流程圖。
[0022]圖6A呈現(xiàn)根據(jù)本發(fā)明的實施例的描繪集合中所表示的清單及內(nèi)容對象的格式的表。
[0023]圖6B呈現(xiàn)根據(jù)本發(fā)明的實施例的描繪在同步期間的兩個清單的格式的表,其中本地清單缺少來自遠程清單的內(nèi)容對象。
[0024]圖6C呈現(xiàn)根據(jù)本發(fā)明的實施例的描繪在同步期間的兩個清單的格式的表,其中本地清單中的相同名稱的內(nèi)容對象的摘要不同于遠程清單中的摘要,且其中遠程節(jié)點播發(fā)其清單。
[0025]圖6D呈現(xiàn)根據(jù)本發(fā)明的實施例的描繪在同步期間的兩個清單的格式的表,其中本地清單中的相同名稱的內(nèi)容對象的摘要不同于遠程清單中的摘要,且其中本地節(jié)點播發(fā)其清單。
[0026]圖6E呈現(xiàn)根據(jù)本發(fā)明的實施例的描繪在同步期間的兩個清單的格式的表,此時本地清單中的相同名稱的內(nèi)容對象的摘要及修改時間不同于遠程清單中的摘要及修改時間。
[0027]圖7說明根據(jù)本發(fā)明的實施例的促進內(nèi)容中心網(wǎng)絡(luò)中的清單的同步的示范性計算機及通信系統(tǒng)。
[0028]在諸圖式中,相同參考數(shù)字指代相同圖式元件。
【具體實施方式】
[0029]呈現(xiàn)以下描述以使所屬領(lǐng)域的技術(shù)人員能夠制備且使用實施例,且在特定應(yīng)用以及其要求的背景下提供以下描述。所屬領(lǐng)域的技術(shù)人員將易于了解對所揭示的實施例的各種修改,且在不脫離本發(fā)明的精神和范圍的情況下,本文中所定義的一般原理可應(yīng)用于其它實施例以及應(yīng)用。因此,本發(fā)明不限于所示出的實施例,而是應(yīng)被賦予與本文所揭示的原理以及特征一致的最寬范圍。
[0030]本發(fā)明的實施例提供一種通過使用確切匹配名稱促進清單在網(wǎng)絡(luò)上的節(jié)點之間的同步的系統(tǒng)。在本發(fā)明的實施例的以下描述中,相關(guān)CCN實體為本地節(jié)點及遠程節(jié)點,但角色可反轉(zhuǎn)。本地及遠程節(jié)點中的每一者與清單相關(guān)聯(lián),所述清單表示節(jié)點處的內(nèi)容對象的集合。清單通過特定前綴識別,使得具有相同前綴的兩個清單對應(yīng)于相同內(nèi)容對象集合。
[0031]在一些實施例中,清單為識別內(nèi)容對象集合的有序列表。集合中的每一內(nèi)容對象通過其名稱及對應(yīng)摘要識別,其中摘要為內(nèi)容對象的散列值。在一些實施例中,每一內(nèi)容對象還通過修改時間識別,所述修改時間指示修改內(nèi)容的時間。出于此描述的目的,將清單描述為有序列表,但其它實施例包含結(jié)構(gòu)化為同步樹的清單,其含有內(nèi)容對象以及嵌套的內(nèi)容對象集合。系統(tǒng)產(chǎn)生用于清單的根散列值。根散列值為基于集合的個別內(nèi)容對象的散列值的累加散列值。清單的根散列值為用于清單的唯一識別符。
[0032]系統(tǒng)可使用確切匹配名稱使本地清單中的集合與本地清單中的內(nèi)容同步。遠程節(jié)點播發(fā)其清單的散列。本地節(jié)點接收所述播發(fā)且確定所播發(fā)的遠程清單對應(yīng)于本地清單,其中遠程清單及本地清單對應(yīng)于相同內(nèi)容對象集合。本地節(jié)點通過比較本地清單的根散列值與遠程清單的根散列值而確定本地清單的內(nèi)容是否與遠程清單的內(nèi)容同步。如果其并不匹配,則本地節(jié)點通過將對于遠程清單的請求發(fā)送到遠程節(jié)點來檢索遠程清單。在一些實施例中,本地節(jié)點基于組塊協(xié)議發(fā)送一組興趣,且每一興趣對應(yīng)于清單的經(jīng)編號信