用于通過信息中心網(wǎng)絡維持分布式和容錯狀態(tài)的系統(tǒng)和方法
【技術(shù)領域】
[0001]本申請一般涉及信息中心網(wǎng)絡。更具體地,本申請涉及通過信息中心網(wǎng)絡(ICN)復制變量,并維持變量的分布式和容錯狀態(tài)。
【背景技術(shù)】
[0002]在信息中心網(wǎng)絡(ICN)中,客戶端裝置可以通過傳播包括數(shù)據(jù)名稱的請求或興趣消息來獲得此數(shù)據(jù)。ICN中的中間路由器朝與興趣的名稱前綴關(guān)聯(lián)的任何內(nèi)容生產(chǎn)者廣播此興趣。接收興趣的內(nèi)容生產(chǎn)者可以生成并返回滿足興趣的內(nèi)容對象(例如內(nèi)容對象的名稱與興趣包中的名稱精確地匹配)。路由器然后沿由興趣消息行進所通過的相反路徑將內(nèi)容對象轉(zhuǎn)發(fā)到客戶端裝置,從而利用由興趣消息保留在路由器中的相反路徑信息。
[0003]設計出ICN架構(gòu)以允許客戶端不管數(shù)據(jù)來自何方都有效地、安全地獲得數(shù)據(jù)。然而,典型的ICN架構(gòu)通常返回一個內(nèi)容對象以滿足一個興趣。如果托管數(shù)據(jù)的ICN節(jié)點失敗或受損,則消費數(shù)據(jù)的其它ICN節(jié)點面臨使用過時(緩存)信息或惡意值的風險。
【發(fā)明內(nèi)容】
[0004]—個實施例提供一種副本管理系統(tǒng),其通過在ICN節(jié)點集合上復制變量,促進通過信息中心網(wǎng)絡(ICN)維持變量的分布式和容錯狀態(tài)。操作中,變量托管ICN節(jié)點可以接收包括變量的更新值命令、變量的副本集合的當前值和變量的新值的興趣。ICN節(jié)點可以基于副本變量集合的當前值確定變量的當前本地值是否是授權(quán)值。如果當前本地值是授權(quán)值,則ICN節(jié)點可以將變量的本地副本更新到新值。然而,如果當前本地值不是授權(quán)值,則ICN節(jié)點可以將變量的本地副本的狀態(tài)回滾到之前狀態(tài),并將變量的本地副本更新為新值。
[0005]在信息中心網(wǎng)絡(ICN)中,每項內(nèi)容是分別被命名的,每項數(shù)據(jù)被綁定到將該數(shù)據(jù)與任何其它項數(shù)據(jù)相區(qū)分的唯一名稱,所述任何其它項數(shù)據(jù)諸如相同數(shù)據(jù)的其它形式或來自其它源的數(shù)據(jù)。此唯一名稱允許網(wǎng)絡裝置通過傳播指示唯一名稱的請求或興趣來請求數(shù)據(jù),并且可以獲得與數(shù)據(jù)的存儲位置、網(wǎng)絡位置、應用和傳輸裝置無關(guān)的數(shù)據(jù)。命名數(shù)據(jù)網(wǎng)絡(NDN)或內(nèi)容中心網(wǎng)絡(CCN)是ICN架構(gòu)的示例,以下術(shù)語描述NDN或CCN架構(gòu)的元件:
[0006]內(nèi)容對象(Content Object):單——項命名數(shù)據(jù),其綁定到唯一名稱。內(nèi)容對象是“永久的”,這意味著內(nèi)容對象可以在計算裝置內(nèi)或者在不同的計算裝置中移動,但不會改變。如果內(nèi)容對象的任何組成變化,則出現(xiàn)變化的實體創(chuàng)建包括更新內(nèi)容的新內(nèi)容對象,并且將新內(nèi)容對象綁定到新唯一名稱。
[0007]唯一名稱(Uniaue Name):CCN中的名稱通常是與位置無關(guān)的,唯一地標識內(nèi)容對象。數(shù)據(jù)轉(zhuǎn)發(fā)裝置不管內(nèi)容對象的網(wǎng)絡地址或物理位置如何,可以使用名稱或名稱前綴將包向生成或存儲內(nèi)容對象的網(wǎng)絡節(jié)點轉(zhuǎn)發(fā)。在一些實施例中,名稱可以是層次結(jié)構(gòu)的可變長度標識符(HSVLI)。HSVLI可以分成幾個層次組成,這些組成可以以各種方式構(gòu)造。例如,個別的名稱組成pare、home、ccn和test, txt可以以左對齊的前綴為主的方式構(gòu)造,以形成名稱“/parc/home/ccn/test.txt”。因此,名稱“/parc/home/ccn” 可以是“/parc/home/ccn/test.txt”的“父”或“前綴”。附加組成可以用來區(qū)分內(nèi)容項目的不同形式,諸如合作文檔。
[0008]在一些實施例中,名稱可以包括標識符,諸如從內(nèi)容對象的數(shù)據(jù)(例如檢驗和值)和/或從內(nèi)容對象的名稱的元素導出的散列值。基于散列的名稱的描述在美國專利申請?zhí)?3/847,814 (發(fā)明人 Ignac1 Solis 于 2013 年 3 月 20 日提交,名稱為 “0RDERED-ELEMENTNAMING FOR NAME-BASED PACKET FORWARDING”)中描述。名稱還可以是扁平標簽。后文中“名稱”用來指名稱數(shù)據(jù)網(wǎng)絡中的一條數(shù)據(jù)的任何名稱,諸如層次名稱或名稱前綴、扁平名稱、固定長度的名稱、任意長度的名稱或標簽(例如多協(xié)議標識交換(MPLS)標簽)。
[0009]^(Interest):指示對一條數(shù)據(jù)的請求的包,包括該條數(shù)據(jù)的名稱(或名稱前綴)。數(shù)據(jù)消費者可以在信息中心網(wǎng)絡中傳播請求或興趣,CCN/NDN路由器可以向可以提供所請求數(shù)據(jù)以滿足請求或興趣的存儲裝置(例如緩存服務器)或數(shù)據(jù)生產(chǎn)者播送。
[0010]在一些實施例中,ICN系統(tǒng)可以包括內(nèi)容中心網(wǎng)路(CCN)架構(gòu)。然而,本文中公開的方法還適用于其它ICN架構(gòu)。對CCN架構(gòu)的描述在美國專利申請?zhí)?2/338,175 (發(fā)明人Van L.Jacobson 和 Diana K.Smetters 于 2008 年 12 月 18 日申請,名稱為 “CONTROLLINGTHE SPREAD OF INTERESTS AND CONTENT IN A CONTENT CENTRIC NETWORK”)中描述。
[0011]在一些實施例中,在確定變量的當前本地值是否是授權(quán)值時,ICN節(jié)點確定授權(quán)值是否存在,并確定當前本地值是否與授權(quán)值匹配。
[0012]在這些實施例的一些變形中,在確定授權(quán)值是否存在時,ICN節(jié)點基于副本變量的集合的當前值確定匹配值的最大集合,并確定最大集合中匹配值的數(shù)目是否大于或等于最小定額閾值。
[0013]在這些實施例的一些變形中,如果ICN節(jié)點確定授權(quán)值不存在,則ICN節(jié)點可以將變量的本地副本的狀態(tài)回滾到之前狀態(tài)。
[0014]在一些實施例中,興趣包括附加到興趣的名稱的更新值命令。
[0015]在一些實施例中,興趣包括有效載荷,所述有效載荷包括更新值命令。
[0016]—個實施例提供一種客戶端ICN節(jié)點,其可以讀并更新在ICN節(jié)點集合上被復制的分布式變量。操作中,客戶端ICN節(jié)點可以通過傳播對讀變量副本的集合的至少一個興趣來讀分布式變量的值。相應興趣可以包括用于讀變量的相應副本的閱讀值命令和包括與副本變量關(guān)聯(lián)的路由名稱如綴和托管副本變量的任何副本服務器的名稱。在傳播至少一個興趣之后,ICN節(jié)點可以接收滿足至少一個興趣的內(nèi)容對象的集合,使得相應內(nèi)容對象可以包括相應的副本變量的當前值。ICN節(jié)點然后可以基于內(nèi)容對象的集合中的當前值確定變量是否存在授權(quán)值。如果授權(quán)值不存在,則ICN節(jié)點可以將變量的本地副本的狀態(tài)回滾到之前狀態(tài)。
[0017]在一些實施例中,ICN節(jié)點可以在不通知副本服務器副本變量有非授權(quán)值時,回滾變量的本地副本的狀態(tài)。
[0018]在一些實施例中,響應于確定授權(quán)值存在,ICN節(jié)點可以將變量的本地副本設置為授權(quán)值。
[0019]在一些實施例中,在確定授權(quán)值是否存在時,ICN節(jié)點通過滿足興趣的內(nèi)容對象的集合確定變量的相似值的最大集合。ICN節(jié)點然后確定最大集合中的相似值的數(shù)目是否大于或等于最小定額閾值。如果大于或等于最小定額閾值,則來自此相似值的最大集合的值被用作授權(quán)值。
[0020]在一些實施例中,ICN節(jié)點可以更新變量的副本集合。這樣,ICN節(jié)點選擇副本變量的至少一個子集來更新。ICN節(jié)點然后生成興趣,所述興趣包括副本變量的子集中相應副本變量的更新值命令、接收的副本變量集合的當前值和變量的新值,并傳播對相應副本變量的興趣。
[0021]在一些實施例中,所選的副本變量的子集中的副本變量的數(shù)目大于或等于最小定額閾值。
[0022]在這些實施例的一些變形中,對相應的副本變量的興趣包括具有與變量關(guān)聯(lián)的路由名稱如綴的名稱,接著是與變量的相應副本關(guān)聯(lián)的名稱組成。
【附圖說明】
[0023]圖1圖