未決興趣表行為的制作方法
【專利摘要】一個實施例提供一種促進有效聚合來自多個前輩的相同內容的多個興趣消息的系統。操作中,中間節點從前輩節點接收第一興趣消息。第一興趣消息指示內容對象的名稱和與第一興趣關聯的生存期。中間節點識別未決興趣表中與第一興趣對應的表項并確定表項還未過期。中間節點確定是否已經從前輩節點接收指示與第一興趣消息相同的內容對象名稱的第二興趣消息。如果接收,則轉發第一興趣。如果沒有接收,則將與前輩節點關聯的信息增加到表項。中間節點確定與表項關聯的前輩生存期,并且還確定與表項關聯的最大生存期。
【專利說明】
未決興趣表行為
技術領域
[0001]本申請一般涉及數字內容的分發。更具體地,本申請涉及用于高效地聚合來自多個前輩的相同內容的多個興趣消息的系統和方法。
【背景技術】
[0002]互聯網和電子商務的激增繼續產生大量的數字內容。設計出內容中心網絡(CCN)架構來促進訪問并處理這些數字內容。CCN包括實體或節點,諸如網絡客戶端、轉發器(例如路由器)和內容生產者,他們通過發送對各種內容項目的興趣包并接收返回的內容對象包來彼此通信。CCN興趣和內容對象由其唯一的名稱標識,該唯一的名稱通常是分層結構的可變長度標識符(HSVLI) ASVLI可以包括從最概括級到最具體級排序的連續名稱組成。當興趣包通過網絡從內容請求節點路由到內容生產節點時,每個中間CCN路由器在其與興趣對應的未決興趣表(PIT)中增加表項,并將興趣轉發到下一CCN路由器。當匹配的內容對象包從內容生產節點往回發送到請求節點時,它遵循興趣的相反路徑。每個中間CCN路由器沿相應的PIT表項中列出的請求接口轉發內容對象,并隨后去掉PIT表項,指示興趣已經得到滿足。
[0003]中間CCN節點可以接收對相同內容對象的多個興趣(例如“相似興趣”)。發送節點可以基于估計的包的往返時間為相似興趣分配生存期。中間節點可以接收初始興趣,在其PIT中增加相應表項。一旦接收第二或隨后(“后來的”)相似興趣,中間節點可以通過將請求接口加入到現有PIT表項,并在初始興趣的生存期期滿之前抑制后來興趣的轉發,將后來的興趣聚合在與初始興趣相同的PIT表項。結果,具有長生存期的現有PIT表項可以阻擋具有較短生存期的后續相似興趣的轉發,造成網絡不高效。此外,基于可變網絡度量的興趣生存期可能不是可靠的,可能導致另外的網絡不高效。因此,需要的是一種PIT聚合機構,其不會阻擋其它請求者,并且不要求測量往返時間。
【發明內容】
[0004]一個實施例提供一種促進有效聚合來自多個前輩的相同內容的多個興趣消息的系統。操作中,系統通過中間節點從前輩節點接收與第一興趣消息對應的包,其中,第一興趣消息指示內容對象的名稱和與第一興趣消息關聯的生存期。中間節點識別未決興趣表中與第一興趣消息對應的表項。響應于確定表項還未到期,中間節點如下操作:響應于確定已經從所述前輩節點接收指示與所述第一興趣消息相同的內容對象名稱的第二興趣消息,中間節點轉發所述第一興趣消息;響應于確定還未從所述前輩節點接收指示與所述第一興趣消息相同的內容對象名稱的第二興趣消息,中間節點將與所述前輩節點關聯的信息增加到所述表項;中間節點確定與所述表項關聯的前輩生存期;以及中間節點確定與所述表項關聯的最大生存期。
[0005]在一些實施例中,與所述第一興趣消息關聯的生存期基于以下的一個或多個:往返時間以及訂閱時間。
[0006]在一些實施例中,所述未決興趣表中的表項指不以下的一個或多個:名稱;最大生存期;以及一個或多個前輩節點的前輩信息,其中,所述前輩信息包括前輩標識符和前輩生存期。
[0007]在一些實施例中,中間節點通過確定在當前時間之后表項的最大生存期的期滿出現,確定表項還未到期。
[0008]在一些實施例中,中間節點通過基于當前時間和第一興趣消息的生存期確定新到期時間,確定與表項關聯的前輩生存期。響應于確定在前輩生存期期滿之后新到期時間出現,中間節點將與表項關聯的前輩生存期設置為新到期時間。
[0009]在一些實施例中,中間節點通過響應于確定在最大生存期期滿之后與表項關聯的前輩生存期的期滿出現,確定與表項關聯的最大生存期,將與表項關聯的最大生存期設置為前輩生存期。
[0010]在一些實施例中,中間節點接收與未決興趣表中的匹配表項對應的內容對象對應的包。中間節點基于匹配表項確定有效前輩節點,并且基于前輩信息將內容對象轉發到有效前輩節點。中間節點從匹配表項中去掉前輩信息,并且響應于確定對于匹配表項沒有任何前輩信息剩余,從未決興趣表中去掉匹配表項。
[0011]在一些實施例中,中間節點通過選擇在當前時間之后出現前輩生存期期滿的前輩節點,確定有效的前輩節點。
【附圖說明】
[0012]圖1A圖解說明根據本發明的實施例促進有效聚合來自多個前輩的相同內容的多個興趣消息的示例性網絡。
[0013]圖1B圖解說明根據本發明的實施例由中間節點保存的示例性未決興趣表。
[0014]圖2呈現圖解說明根據本發明的實施例中間節點執行的有效聚合來自多個前輩的相同內容的多個興趣消息的方法的流程圖。
[0015]圖3呈現圖解說明根據本發明的實施例由中間節點執行的更新其未決興趣表中的表項的方法的流程圖。
[0016]圖4呈現圖解說明根據本發明的實施例由中間節點執行的處理匹配的內容對象的方法的流程圖。
[0017]圖5A圖解說明根據本發明的實施例與網絡中的中間節點的示例性通信。
[0018]圖5B呈現根據本發明的實施例描述圖5A的示例性通信包括未決興趣表中的示例性表項的狀態的表。
[0019]圖6圖解說明根據本發明的實施例促進有效聚合來自多個前輩的相同內容的多個興趣消息的示例性計算機和通信系統。
[0020]在圖中,相同的附圖標記指相同的附圖元件。
【具體實施方式】
[0021]給出以下描述使得本領域技術人員能夠制造和使用實施例,以下描述是在特定應用和其需求的背景下提供的。對所公開實施例的各種改進對本領域技術人員是非常顯然的,在不偏離本發明的精神和范圍下,本文中定義的通用原理可以應用于其它實施例和應用。因此,本發明不局限于所顯示的實施例,而是給予與本文中公開的原理和特征一致的最寬范圍。
[0022]挺述
[0023]在本發明的實施例中,有效處理對相同數據的多個興趣(“類似興趣”)的問題是通過保存未決興趣表(PIT)來解決的,未決興趣表包括對從前一跳節點接收的每個相似興趣的生存期以及興趣的單獨的聚合生存期。在處理相似興趣的現有方法中,中間節點可以在單個PIT表項中聚合相似興趣。然而,具有長生存期的現有PIT表項可能會阻擋或抑制具有短生存期的后來的相似興趣,導致網絡的不高效。以前的解決方案依賴于中間節點跟蹤每個未決的相似興趣的興趣生存期,通過基于每個未決相似興趣的生存期以粒度水平執行計算來應對鏈接延遲,并基于計算結構執行重傳(例如發送隨后的相似興趣)。此外,以前的方法可能要求中間節點緩存興趣包,保存每個未決興趣的定時器或抑制較少的興趣。然而,中間節點(例如CCN轉發器或路由器)執行這些任務既不是高效的也不是有效的。
[0024]本發明的實施例通過以下方式解決這些效率低下的問題:由中間節點基于是否已經從相同的前一跳(前輩)節點接收相似興趣(例如,可以由相同的內容對象滿足的興趣),保存未決興趣表(PIT)。如果已經接收,則中間節點轉發興趣。如果沒有接收,則中間節點通過將前輩信息增加到相應的PIT表項來聚合興趣,而不轉發興趣。PIT表項可以包括興趣的名稱、聚合生存期(“最大生存期”)以及一個或多個前輩的前輩信息(“前輩表項”)。每個前輩表項可以包括由前輩發送的興趣的生存期(“前輩生存期”)。隨后,中間節點通過延長前輩生存期和/或修改最大生存期來確定是否更新相應的PIT表項。以此方式,中間節點可以聚合從前輩接收的對現有PIT表項的第一相似興趣,并轉發任何后續的相似興趣。此外,基于所接收興趣的生存期更新PIT表項的最大生存期可以延長興趣的最大生存期。通過保存每個前輩的興趣生存期和興趣的聚合生存期,本發明的實施例提供這樣一種系統,在此系統中,長生存期的現有PIT表項不會干擾(例如不會抑制)從前輩接收的具有較短生存期的后來的相似興趣,因此促進來自多個前輩的相同內容的多個興趣的有效聚合。
[0025]—旦接收與現有PIT表項匹配的內容對象,中間節點識別有效的前輩表項(例如前輩生存期還沒期滿)。中間節點將內容對象轉發到每個相應的前輩,隨后從PIT表項去掉有效的前輩表項。如果任何無效(例如期滿的)前輩表項仍在PIT表項中,則中間節點不去掉他們,直到表項的最大生存期期滿。如果匹配的內容對象滿足所有的前輩表項(例如PIT表項沒有任何前輩表項),則中間節點不管興趣的最大生存期是否期滿,都去掉PIT表項。
[0026]在CCN中,每項內容是分別被命名的,每項數據被綁定到將該數據與任何其它項數據相區分的唯一名稱,諸如相同數據的其它形式或來自其它源的數據。此唯一名稱允許網絡裝置通過傳播指示唯一名稱的請求或興趣來請求數據,可以獲得與數據的存儲位置、網絡位置、應用和傳輸手段無關的數據。以下詞語用來描述CCN架構:
?0027] 內容對象(Content Object):單--項命名數據,其綁定到唯一名稱。內容對象是
“永久的”,這意味著內容對象可以在計算裝置內或者在不同的計算裝置中移動,但不會改變。如果內容對象的任何組成變化,則出現變化的實體創建包括更新內容的新內容對象,并且將新內容對象綁定到新唯一名稱。
[0028]唯一名稱(Unique Name):CCN中的名稱通常是與位置無關的,唯一地標識內容對象。數據轉發裝置不管內容對象的網絡地址或物理位置如何,可以使用名稱或名稱前綴將包向生成或存儲內容對象的網絡節點轉發。在一些實施例中,名稱可以是分層結構的可變長度標識符(HSVLI) ASVLI可以分成幾個層次組成,這些組成可以以各種方式構造。例如,個別的名稱組成pare,home,ccn和test.txt可以以左對齊的前綴為主的方式構造,形成名稱 “/parc/home/ccn/test.txt”。因此,名稱 “/parc/home/ccn” 可以是 “/parc/home/ccn/test, txt”的“父”或“前綴”。附加組成可以用來區分內容項目的不同形式,諸如合作文檔。
[0029]在一些實施例中,名稱可以包括不分層的標識符,諸如從內容對象的數據(例如驗證和值)和/或從內容對象的名稱的元素導出的散列值。基于散列的名稱的描述在美國專利申請號13/847,814中描述。名稱還可以是扁平標簽。后文中“名稱”用來指名稱數據網絡中的一條數據的任何名稱,諸如層次名稱或名稱前綴、扁平名稱、固定長度的名稱、任意長度的名稱或標簽(例如多協議標簽交換(MPLS)標簽)。
[0030]興趣(Interest):指示對一條數據的請求的包,包括該條數據的名稱(或名稱前綴)。數據消費者可以在信息中心網絡中傳播請求或興趣,CCN路由器可以向可以提供所請求數據以滿足請求或興趣的存儲裝置(例如緩存服務器)或數據生產者播送。
[0031]本文中描述的方法不局限于CCN網絡,還適用于其它架構。CCN架構的描述在美國專利申請號12/338,175中描述。
[0032]圖1A圖解說明根據本發明的實施例促進有效聚合來自多個前輩的相同內容的多個興趣消息的示例性網絡100。網絡100可以包括內容請求裝置116、內容生產裝置118和節點102,104,106,108,110,112和114上的路由器或其它轉發裝置。節點可以是計算機系統,代表用戶的端點和/或可以生成興趣或發起內容的裝置。節點還可以是邊緣路由器(例如CCN節點102和114)或核心路由器(例如中間CCN路由器104-112)。每個CCN路由器可以保存其自己的未決興趣表(PIT)(例如節點110的PIT 130)和其自己的轉發信息庫(FIB)(未顯示)oPIT 130可以包括與未決興趣關聯的PIT表項131.1-131.n WIT表項(例如PIT表項131.1)可以包括名稱132、聚合生存期或最大生存期134和前輩信息136。前輩信息136可以包括前輩標識符142.1-142.m和m個前輩表項的前輩生存期144.1-144.m。
[0033]操作中,節點114可以在內容項中向節點110發送興趣150。興趣150可以包括名稱152和生存期154,生存期154可以用時間單位(例如毫秒)度量。在一些實施例中,生存期154是絕對時間。節點110可以接收興趣150,更新PIT 130以指示從前輩節點114接收的興趣150。如果PIT 130中對相似興趣,存在有效的(例如未到期的)PIT表項,并且如果前輩節點還未列在PIT表項(例如興趣150是從前輩節點114接收的第一相似的興趣),則節點110通過增加對節點114的前輩信息來更新現有PIT表項。如果前輩節點已經列于PIT表項(例如興趣150是第二或隨后的從前輩節點114接收的相似興趣),則節點110將興趣150轉發到下一跳節點(例如節點108)。中間節點110然后如關于圖2和圖3在下文描述的那樣更新PIT表項。
[0034]圖1B圖解說明根據本發明的實施例由中間節點保存的示例性未決興趣表(PIT)130oPIT 130中的每個表項包括名稱132、最大生存期134和一個或多個前輩的前輩信息136。前輩信息136可以包括前輩標識符142和前輩生存期144。例如,PIT表項131.1指示對名稱為“/a/b/c/dl”、最大生存期的值為395毫秒以及分別發送對相同內容對象的興趣的四個前輩節點(例如節點114,112,106和108)的前輩信息的內容對象的未決興趣。前輩節點114的前輩信息可以包括值為“PRED_IDnqde 114”的前輩標識符和值為220毫秒的前輩生存期。注意,PIT表項131.1的最大生存期(例如395ms)是與此PIT表項關聯的所有前輩生存期的最大值(例如,對于前輩節點108,值為395ms的前輩生存期144)。在一些實施例中,生存期和最大生存期以絕對時間單位度量。
[0035]圖2呈現根據本發明的實施例圖解說明由中間節點執行的有效聚合來自多個前輩的相同內容的多個興趣消息的方法200的流程圖。操作中,系統通過中間節點從與興趣消息對應的前輩節點接收包(操作202)。興趣消息包括名稱(可以對應于請求的內容對象)和興趣的生存期。興趣生存期可以由發送節點分配或確定。興趣生存期可以基于往返時間,往返時間是基于網絡度量確定的,例如估計的包在兩個節點之間行進的往返時間。興趣生存期還可以基于訂閱時間,訂閱時間是基于發送節點接收響應的興趣時間長度確定的。基于訂閱的生存期(例如以秒測量的)可以比基于往返時間的生存期(例如以毫秒測量的)更長。此夕卜,因為興趣生存期不需要在每一跳被調整,所以興趣生存期可以作為興趣包的簽名信息被包括。在一些實施例中,所接收興趣的生存期、前輩生存期和PIT表項的最大生存期表示為絕對時間。如果興趣消息不包括生存期字段,則中間節點可以使用默認值。
[0036]中間節點確定PIT中的表項是否存在與所接收興趣相同的名稱(判斷204)。如果不存在,則中間節點轉發興趣(操作218)并通過增加與所接收興趣對應的表項來更新其PIT(操作220)。如果存在與所接收興趣相同名稱的PIT表項,則系統確定現有的PIT表項是否是有效的(判斷206)。例如,中間節點通過將當前時間與現有PIT表項的最大生存期比較,確定現有PIT表項是否期滿。如果PIT表項無效(例如已經期滿),則中間節點轉發興趣(操作218),通過增加與所接收興趣對應的表項,更新其PIT(操作220)。
[0037]如果PIT表項有效(例如還未到期),則系統確定前輩是否列于PIT表項中(例如是否從相同的前輩接收對相同內容的興趣)(判斷208)。如果沒有(指示此接收的興趣是從前輩接收的第一個這種相似興趣),則中間節點更新相應的PIT表項以包括前輩信息(操作210),不轉發興趣。前輩信息可以包括前輩標識符和前輩生存期。前輩標識符可以指示曾接收興趣所通過的進入接口或前輩節點的地址。系統可以保存進入接口和前輩節點的(例如前一跳節點)地址之間的映射。
[0038]如果前輩列于PIT表項中(指示所接收的興趣是來自前輩的第二或后來的興趣),則中間節點轉發所接收的興趣(操作212)。在一些實施例中,中間節點可以應用數據傳輸規劃算法(例如令牌桶算法),以便在多個前輩在近似相同的時間發送(或中間節點接收)后來的相似興趣時,轉發后來的興趣。規劃算法可以是中間節點本地的,與興趣生存期不相關。隨后,中間節點通過延長前輩的生存期(操作214)更新PIT表項,并且如關于圖3在下文描述的,如果某些條件存在,還通過修改PIT表項的最大生存期更新PIT表項(操作216)。
[0039]圖3呈現根據本發明的實施例圖解說明由中間節點執行的更新其未決興趣表(PIT)中的表項的方法300的流程圖。假設中間節點具有現有的有效PIT表項(例如從判斷204和206得到肯定條件),其包括名稱、最大生存期和前輩彳目息,前輩?目息可以包括前輩標識符和前輩生存期。操作中,中間節點接收具有名稱和生存期的興趣。中間節點可以基于當前時間和所接收興趣的生存期確定所接收興趣的新的到期時間(操作302)。在一些實施例中,新的到期時間是通過將所接收興趣的生存期加上當前時間以獲得新的(例如絕對)到期時間來計算的。中間節點確定在前輩生存期期滿之后是否出現新到期時間(如在與PIT表項關聯的相應前輩表項中列出的)(判斷304)。如果出現,則中間節點將PIT表項中的前輩生存期設置成新到期時間(操作306)。如果沒有出現,則操作返回。
[0040]中間節點還確定在PIT表項的最大生存期期滿之后前輩生存期是否期滿(判斷308)。如果期滿,則中間節點將PIT表項的最大生存期設置成前輩生存期(操作310)。如果沒有期滿,則操作返回。
[0041]圖4呈現根據本發明的實施例圖解說明由中間節點執行的處理匹配的內容對象的方法的流程圖40O。操作中,中間節點接收與內容對象對應的包(操作402)。中間節點確定PIT中是否存在與內容對象對應的表項(判斷404)。例如,系統在PIT中執行查詢,尋找匹配的PIT表項,例如,是否有與所接收的內容對象相同名稱的PIT表項。如果匹配的PIT表項不存在,則中間節點可以丟棄內容對象或在預期有未來的內容對象(未顯示)時,存儲內容對象的副本,正如在美國專利號8,204,060中描述的。如果匹配的PIT表項確實存在,則中間節點確定PIT表項是否存在有效的前輩表項(判斷406)。例如,對于PIT表項中的前輩表項,中間節點通過將當前時間與前輩生存期比較,來確定前輩表項是否已經期滿。如果前輩表項還未到期,則被認為是有效的,如果已經期滿,則被認為是無效的。如果前輩表項有效,則中間節點基于前輩信息將內容對象轉發到有效前輩(操作408),前輩信息可以包括前輩標識符。如上文描述的,前輩標識符可以指示曾接收興趣所通過的進入接口(因此是發送返回的內容對象要通過的接口)或者可以指示前輩節點的地址。系統可以保存進入接口和前輩節點(例如前一跳節點)之間的映射。可選地,中間節點可以在其緩存中存儲內容對象的副本(操作410)。隨后,中間節點從PIT表項去掉前輩表項(操作412),操作返回到判斷406(例如確定是否存在有效前輩)。
[0042]如果對于PIT表項不存在任何有效的前輩表項,則中間節點確定對PIT表項是否存在任何更多的剩余前輩表項(判斷414)。如果沒有更多的剩余前輩表項,則中間節點從PIT去掉PIT表項(操作418),操作返回。如果存在任何剩余的前輩表項,則中間節點確定PIT表項是否仍是有效的(判斷416)。例如,中間節點通過將當前時間與現有PIT表項的最大生存期比較,確定現有的PIT表項是否已經期滿。如果PIT表項是無效的(例如已經期滿),則中間節點從PIT中去掉PIT表項(操作418),操作返回。如果PIT表項是有效的(例如還沒期滿),則操作返回。在一些實施例中,當沒有任何剩余前輩表項時,則在PIT中不存在無效的PIT表項(例如到期的最大生存期),原因是一旦最大生存期期滿,則PIT表項(連同任何關聯的前輩表項)從PIT中移除。
[0043]因此,前輩表項只有在有效的前輩表項由匹配的內容對象滿足時或者(對于任何剩余的無效前輩表項)在PIT表項的最大生存期期滿時被移除,導致從PIT中去掉PIT表項。當相應的PIT表項不再包含任何前輩表項時,還可以從PIT將其移除。此外,當PIT充滿時,中間節點可以去掉PIT表項。當達到PIT容量時,中間節點可以基于特定于節點的驅逐算法(諸如至少最近使用過(LRU)算法)循環表項,其中,“使用過”是自從最后一次匹配請求以來的時間。
[0044]圖5A圖解說明根據本發明的實施例與網絡中的中間節點的示例性通信500。通信500可以包括節點532( “節點A” )、節點534( “節點B” )、節點536( “節點C”)和節點538( “節點D”)之間的通信。例如,節點A和B可以創建并發送對與相同名稱(例如“/a/b”)對應的內容的興趣消息。節點C可以是接收并處理對來自前輩節點A和B的相同內容(對應于名稱“a/b”)的多個興趣消息的中間節點。節點D可以是滿足對與名稱“/a/b”對應的內容的興趣。節點A,B,C和D下面的垂直線表示時間的流逝。具體的時間由例如“TI = O毫秒(ms)”,“T2 = 10ms”等表示。每個指示的時間Tx的詳細描述在下面關于圖5B提供。如果兩個興趣對應于對相同名稱的內容的請求,或者如果他們可以由相同的內容對象滿足,則他們可以是“相似的”。轉發的包或興趣可以導致失效,例如本地端口失效、鏈接失效或遠程端口失效,如由失效560,562和564示出的。
[0045]圖5B呈現根據本發明的實施例描述圖5A的通信500(包括由中間節點C保存的未決興趣表中的示例性表項的狀態)的表550。對于圖5A中描繪的每個時間Tx,表500包含時間540和與時間Tx出現的動作和/或通信對應的動作542以及與由中間節點C在時間Tx保存的相應PIT表項的狀態對應的PIT表項544。以下縮寫用在此使用示例中:1)表示興趣:“名稱,生存期”;以及2)表示PIT表項:“{名稱,最大生存期,{前輩ID,前輩生存期}}”。此外,值“Α”用來指示節點A的前輩標識符,值“B”用來指示節點B的前輩標識符。在一些實施例中,所有描述的時間(例如圖5Β的每個Tx)和所有的生存期(例如興趣生存期、最大生存期和前輩生存期)以絕對時間表示。
[0046]操作中,在時間Τ1=0,節點A將興趣502(/a/b,240ms)發送到節點C。在時間Τ3 =80,節點C接收興趣502,確定對于此名稱的興趣,PIT表項不存在,增加相應的PIT表項,將前輩生存期設置成320(通過將興趣生存期240加上當前接收的時間80以獲得320),將興趣的最大生存期設置成320(由T13 = 320終止的塊示出)。這導致PIT表項544在時間T3 = 80時,值為{/&/13,320{4,320}}。節點(:然后轉發興趣502(這可以導致失效560)。在時間了2 = 10,節點A向節點C發送相似的興趣504(/a/b,240ms)。在時間Τ4 = 90,節點C接收興趣504,確定它是否是來自相同前輩(例如節點Α)的第二或隨后的相似的興趣,并轉發興趣504(這可能導致失效562)。節點C還通過將相應的前輩表項的前輩生存期延長到330(通過將興趣生存期240加上當前所接收的時間90,以獲得330),并將最大生存期修改為330,更新PIT表項。這導致PIT 表項 544在時間Τ4 = 90,值為{/a/b,330 {Α,330}}。
[0047]在時間T5 = 105,節點B將興趣506(/a/b,80ms)發送到節點C。在時間T6 = 115,節點C接收興趣506,確定對于此名稱的興趣,有效的PIT表項確實存在,確定興趣506是從此前輩接收的第一相似興趣,并通過增加前輩信息來更新PIT表項。例如,節點C將B的前輩生存期設置為195(通過將興趣生存期80加上當前接收的時間115,得到195,由終止于T9 = 195模塊示出的)。注意,節點C不會修改興趣的最大生存期,原因是前輩生存期(195ms)在最大生存期(330ms)之前被設置成期滿,節點C也不會轉發興趣506。實際上,節點C聚合PIT表項中的興趣506,原因是興趣506是從此前輩(例如節點A)接收的第一相似興趣。這導致PIT表項544在時間1'6 = 115值為{/£1/13,330{4,330}{8,195}}。在時間了7 = 145,節點8向節點(:發送相似興趣508(/a/b,80ms)。在時間T8 = 155,節點C接收興趣508,確定來自相同前輩(例如節點B)的第二或隨后的相似興趣,并轉發興趣508(這可能導致失效564)。節點C還通過將相應前輩表項的前輩生存期延長到235(通過將興趣生存期80加上當前接收時間155,以獲得235)來更新PIT表項。注意,節點C并不會修改興趣的最大生存期,原因是前輩生存期(235ms)被設置成在最大生存期(330ms)之后期滿。這導致PIT表項544在時間T8= 155,值為{/a/b,330{八,330}{8,235}}。在時間110 = 235,達到對于節點8前輩生存期的期滿,但對于節點郎勺前輩表項不會從?1!'表項544去除,在時間110 = 235,繼續為值{/&/13,330{4,330}{8,235}}。
[0048]在時間!11 = 305,節點8向節點(:發送相似興趣510(/&/13,801^)。在時間1'12 = 315,節點C接收興趣510,確定興趣510是來自相同前輩(例如節點B)的第二或隨后的相似興趣,轉發興趣510(這可以成功地達到節點D,并由內容對象520滿足)。節點C還通過將對應的前輩表項的前輩生存期延長到395(通過將興趣生存期80加上當前接收時間315,得到395)來更新PIT表項。注意,節點C還修改興趣的最大生存期,原因是前輩生存期(395ms)被設置成在最大生存期(330ms)之后期滿。這導致PIT表項544在時間T12 = 315,值為{/a/b,395{A,330}{8,395}}。在時間114 = 330,達到對于節點八前輩生存期的期滿,但對于節點八前輩表項不會從?1!'表項544中去掉,在時間114 = 330,繼續有值{/&/13,395{4,330}{8,395}}。
[0049]在時間T15 = 335,節點D接收興趣510,在時間T16 = 350,節點D向節點C發送名稱為“/a/b”的匹配內容對象520。在時間T17 = 370,節點C接收內容對象520,確定對于相應的PIT表項存在有效的前輩(例如,對于節點B前輩的生存期還未到期),將內容對象520轉發到節點B。注意,因為對于節點A前輩的生存期已經期滿,所以節點C并不向節點A轉發內容對象520。同樣,節點C并不從PIT表項中去掉節點A的前輩表項,原因是最大生存期還未到期。因此,這導致?1!'表項544在時間117 = 370,值為{/&/13,395{4,330}}。在時間1'18 = 380,節點8接收內容對象520,并基于本文中描述的方法對其PIT采取動作。因為由興趣或內容對象遍歷的每個節點基于其前輩節點保存其PIT,并且因為每個這種遍歷的(例如中間)節點執行與本文中描述的相同操作,所以系統有效地聚合每個中間節點的未決興趣表上的興趣。最后,在時間T19 = 39 5,PIT表項的最大生存期期滿,節點C從PIT去掉PIT表項(連同節點A的剩余的到期前輩表項)。
[0050]圖6圖解說明根據本發明的實施例促進有效聚合來自多個前輩的相同內容的多個興趣消息的示例性計算機和通信系統。計算機和通信系統602包括處理器604、存儲器606和存儲裝置608。存儲器606可以包括充當管理存儲器的易失性存儲器(例如RAM),并且可以用來存儲一個或多個內存池。而且,計算機和通信系統602可以耦連到顯示裝置610、鍵盤612和定位裝置614。存儲裝置608可以存儲操作系統616、內容處理系統618和數據632。
[0051 ]內容處理系統618可以包括指令,這些指令在由計算機和通信系統602執行時,可以引起計算機和通信系統602執行本申請中描述的方法和/或過程。具體地,內容處理系統618可以包括用于由中間節點從與第一興趣消息對應的前輩節點接收包(通信機構620)和用于識別未決興趣表中與第一興趣消息對應的表項的指令(查詢機構622)。內容處理系統618可以包括用于響應于確定表項還未到期(查詢機構622),確定是否已經從前輩節點接收指示與第一興趣消息相同的內容對象名稱的第二興趣消息的指令(查詢機構622)。如果已經接收,則內容處理系統618可以包括用于轉發第一興趣消息的指令(通信機構620)。如果沒有接收,則內容處理系統618可以包括用于將與前輩節點關聯的信息加入到表項中的指令(聚合機構626)。內容處理系統618還可以包括用于確定與表項關聯的前輩生存期的指令(前輩機構624)。內容處理系統618可以包括用于確定與表項關聯的最大生存期的指令(期滿機構624)。
[0052]內容處理系統618另外可以包括用于確定在當前時間之后出現表項的最大生存期期滿的指令(期滿機構624)。內容處理系統618可以包括用于基于當前時間和第一興趣消息的生存期確定新到期時間,并且響應于確定在前輩生存期期滿之后出現新期滿,將與表項關聯的前輩生存期設置成新到期時間的指令(前輩機構624)。內容處理系統618還可以包括用于響應于確定在最大生存期期滿之后與表項關聯的前輩生存期期滿,將與表項關聯的最大生存期設置成前輩生存期的指令(期滿機構628)。
[0053]內容處理系統618還可以包括用于接收與對應于未決興趣表中的匹配表項的內容對象對應的包的指令(通信機構620)。內容處理系統618可以包括用于基于匹配表項確定有效的前輩節點(查詢機構622)以及基于前輩信息將內容對象轉發到有效的前輩節點的指令(通信機構620)。內容處理系統618還可以包括用于從匹配表項中去掉前輩信息的指令(去除機構624)。內容處理系統618可以包括用于響應于確定對匹配表項沒有任何前輩信息剩余(查詢機構622),從未決興趣表中去掉匹配表項的指令(去除機構630)。
[0054]數據632可以包括通過本申請中描述的方法和/或過程作為輸入請求的或作為輸出生成的任何數據。具體地,數據632可以存儲至少:與興趣消息對應的包;興趣或內容對象的名稱;與興趣關聯的生存期;基于往返時間的生存期;基于訂閱時間的生存期;未決興趣表(PIT);未決興趣表中的表項;與PIT表項關聯的最大生存期;與PIT表項關聯的前輩表項;前輩表項的前輩標識符;前輩表項的前輩生存期;基于當前時間和興趣的生存期的新到期時間;以及與內容對象對應的包。
[0055]在此詳細描述中描述的數據結構和代碼通常存儲于計算機可讀存儲介質上,計算機可讀存儲介質可以是可以存儲代碼和/或數據以由計算機系統使用的任何裝置或介質。計算機可讀存儲介質包括但不限于易失性存儲器、非易失性存儲器、磁和光存儲裝置(諸如磁盤驅動器、磁帶、CD(光盤)、DVD(數字通用盤或數字視頻盤))或能夠存儲計算機可讀介質的現在已知或以后開發的其它介質。
[0056]在詳細描述部分描述的方法和過程可以體現為代碼和/或數據,這些代碼和/或數據可以存儲在如上文描述的計算機可讀存儲介質中。當計算機系統讀、執行計算機可讀存儲介質上存儲的代碼和/或數據時,計算機系統執行體現為數據結構和代碼并存儲于計算機可讀存儲介質中的方法和過程。
[0057]而且,上面描述的方法和過程可以包括于硬件模塊或設備中。硬件模塊或設備可以包括但不限于專用集成電路(ASIC)芯片、現場可編程門陣列(FPGA)、在特定時間執行特定軟件模塊或代碼段的專用或共用處理器,和現在已知或以后開發的其它可編程邏輯器件。當硬件模塊或設備被激活時,他們執行其中包括的方法和過程。
【主權項】
1.一種用于轉發包的計算機實現的方法,所述方法包括:由中間節點從與第一興趣消息對應的前輩節點接收包,其中,所述第一興趣消息指示 內容對象的名稱和與所述第一興趣消息關聯的生存期,識別未決興趣表中與所述第一興趣消息對應的表項;以及 響應于確定所述表項還未到期:響應于確定已經從所述前輩節點接收指示與所述第一興趣消息相同的內容對象名稱 的第二興趣消息,轉發所述第一興趣消息;響應于確定還未從所述前輩節點接收指示與所述第一興趣消息相同的內容對象名稱 的第二興趣消息,將與所述前輩節點關聯的信息增加到所述表項;確定與所述表項關聯的前輩生存期;以及 確定與所述表項關聯的最大生存期。2.根據權利要求1所述的方法,其中,與所述第一興趣消息關聯的生存期基于以下的一 個或多個:往返時間;以及 訂閱時間。3.根據權利要求1所述的方法,其中,所述未決興趣表中的表項指示以下的一個或多 個:名稱;最大生存期;以及一個或多個前輩節點的前輩信息,其中,所述前輩信息包括前輩標識符和前輩生存期。4.根據權利要求1所述的方法,還包括:接收與對應于所述未決興趣表中的匹配表項的內容對象對應的包;基于所述匹配表項確定有效前輩節點;基于所述前輩信息將所述內容對象轉發到所述有效前輩節點;從所述匹配表項去掉所述前輩信息;以及響應于確定所述匹配表項不保留任何前輩信息,從所述未決興趣表去掉所述匹配表項。5.—種存儲指令的非暫態計算機可讀存儲介質,所述指令在由計算機執行時引起所述 計算機執行一種方法,所述方法包括:由中間節點從與第一興趣消息對應的前輩節點接收包,其中,所述第一興趣消息指示 內容對象的名稱和與所述第一興趣消息關聯的生存期,識別未決興趣表中與所述第一興趣消息對應的表項;以及 響應于確定所述表項還未到期:響應于確定已經從所述前輩節點接收指示與所述第一興趣消息相同的內容對象名稱 的第二興趣消息,轉發所述第一興趣消息;響應于確定還未從所述前輩節點接收指示與所述第一興趣消息相同的內容對象名稱 的第二興趣消息,將與所述前輩節點關聯的信息增加到所述表項;確定與所述表項關聯的前輩生存期;以及 確定與所述表項關聯的最大生存期。6.根據權利要求5所述的存儲介質,其中,所述未決興趣表中的表項指示以下的一個或 多個:名稱;最大生存期;以及一個或多個前輩節點的前輩信息,其中,所述前輩信息包括前輩標識符和前輩生存期。7.根據權利要求5所述的存儲介質,其中,所述方法還包括:接收與對應于所述未決興趣表中的匹配表項的內容對象對應的包;基于所述匹配表項確定有效前輩節點;基于所述前輩信息將所述內容對象轉發到所述有效前輩節點;從所述匹配表項去掉所述前輩信息;以及響應于確定所述匹配表項不保留任何前輩信息,從所述未決興趣表去掉所述匹配表項。8.—種用于促進轉發包的計算機系統,所述系統包括:處理器;以及存儲指令的存儲裝置,所述指令在由所述處理器執行時引起所述處理器執行一種方 法,所述方法包括:由中間節點從與第一興趣消息對應的前輩節點接收包,其中,所述第一興趣消息指示 內容對象的名稱和與所述第一興趣消息關聯的生存期,識別未決興趣表中與所述第一興趣消息對應的表項;以及 響應于確定所述表項還未到期:響應于確定已經從所述前輩節點接收指示與所述第一興趣消息相同的內容對象名稱 的第二興趣消息,轉發所述第一興趣消息;響應于確定還未從所述前輩節點接收指示與所述第一興趣消息相同的內容對象名稱 的第二興趣消息,將與所述前輩節點關聯的信息增加到所述表項;確定與所述表項關聯的前輩生存期;以及 確定與所述表項關聯的最大生存期。9.根據權利要求8所述的計算機系統,其中,與所述第一興趣消息關聯的生存期基于以 下的一個或多個:往返時間;以及 訂閱時間。10.根據權利要求8所述的計算機系統,其中,所述未決興趣表中的表項指示以下的一 個或多個:名稱;最大生存期;以及一個或多個前輩節點的前輩信息,其中,所述前輩信息包括前輩標識符和前輩生存期。
【文檔編號】H04L29/08GK105991763SQ201610116676
【公開日】2016年10月5日
【申請日】2016年3月1日
【發明人】M·E·莫斯科, I·索利斯, J·J·加西亞-魯娜-阿塞韋斯
【申請人】帕洛阿爾托研究中心公司