最佳的,因?yàn)樗亲钐囟ǖ?。HSVLI的詳細(xì)描述可以在由發(fā)明人范.L.雅各布森(Van L.Jacobson)和詹姆斯.D.桑頓(JamesD.Thornton)在2009年9月23日遞交的發(fā)明名稱為“用于轉(zhuǎn)發(fā)具有分層結(jié)構(gòu)化的可變長度標(biāo)識(shí)符的包的系統(tǒng)(SYSTEM FOR FORWARDING A PACKET WITH A HIERARCHICHALLYSTRUCTURED VARIABLE-LENGTH IDENTIFIER) ” 的第 8,160, 069 號(hào)美國專利(代理人案號(hào)PARC-20090115Q)中找到。
[0036]“興趣”:對(duì)內(nèi)容對(duì)象的請(qǐng)求。興趣指定HSVLI名稱前綴和其它任選的選擇器,所述選擇器可用以在具有相同名稱前綴的多個(gè)對(duì)象當(dāng)中進(jìn)行挑選。其名稱與興趣名稱前綴(以及任選地其它所請(qǐng)求的參數(shù),例如公布者密鑰-1D匹配)匹配的任何內(nèi)容對(duì)象都滿足所述興趣。
[0037]“內(nèi)容對(duì)象”:響應(yīng)于興趣而發(fā)送的數(shù)據(jù)對(duì)象。其具有經(jīng)由加密簽名而綁定在一起的HSVLI名稱和內(nèi)容有效負(fù)載。任選地,所有內(nèi)容對(duì)象具有由內(nèi)容對(duì)象的SHA-256摘要組成的隱式終端名稱組成部分。在一個(gè)實(shí)施例中,隱式摘要不在線上傳送,而是在需要時(shí)在每一躍點(diǎn)處計(jì)算。應(yīng)注意,內(nèi)容對(duì)象與內(nèi)容組成部分不同。內(nèi)容對(duì)象具有在CCN方案下的具體界定的結(jié)構(gòu)并且其大小通常是網(wǎng)絡(luò)包的大小(對(duì)于廣域網(wǎng)約1500字節(jié)、對(duì)于局域網(wǎng)約8000字節(jié),并且具有碎片),而內(nèi)容組成部分是用于指代文件的一般術(shù)語,其可以是網(wǎng)頁的內(nèi)嵌對(duì)象。例如,網(wǎng)頁可以包含多種內(nèi)嵌對(duì)象,例如圖像或視頻文件。每一內(nèi)嵌對(duì)象是內(nèi)容組成部分并且可以跨越多個(gè)內(nèi)容對(duì)象。
[0038]如之前所提及,HSVLI指示一條內(nèi)容,是分層結(jié)構(gòu)化的,且包含從最一般層級(jí)到最特定層級(jí)排序的連續(xù)組成部分。相應(yīng)HSVLI的長度是不固定的。在內(nèi)容中心網(wǎng)絡(luò)中,不同于常規(guī)IP網(wǎng)絡(luò),包可以通過HSVLI來識(shí)別。例如,“abcd/bob/papers/ccn/news”可以是內(nèi)容的名稱且識(shí)別對(duì)應(yīng)包,即,在名為“AB⑶”的組織處針對(duì)名為“Bob”的用戶的來自“ccn”論文集合的“news”文章。為了請(qǐng)求一條內(nèi)容,節(jié)點(diǎn)通過內(nèi)容的名稱來表達(dá)(例如,廣播)對(duì)所述內(nèi)容的興趣。對(duì)一條內(nèi)容的興趣可以是根據(jù)所述內(nèi)容的名稱或標(biāo)識(shí)符對(duì)所述內(nèi)容的查詢。內(nèi)容如果在網(wǎng)絡(luò)中是可用的,則從存儲(chǔ)內(nèi)容的任何節(jié)點(diǎn)將所述內(nèi)容發(fā)回到請(qǐng)求節(jié)點(diǎn)。路由基礎(chǔ)結(jié)構(gòu)將興趣智能地傳播到很可能具有所述信息的預(yù)期節(jié)點(diǎn),且隨后沿著所述興趣消息穿越的反向路徑攜載可用的內(nèi)容返回?;旧?,內(nèi)容對(duì)象遵循興趣消息留下的路徑記錄,并且因而到達(dá)請(qǐng)求節(jié)點(diǎn)。
[0039]圖1圖解說明根據(jù)本發(fā)明的實(shí)施例的示例性網(wǎng)絡(luò)架構(gòu)。在此實(shí)例中,網(wǎng)絡(luò)180包括節(jié)點(diǎn)100到145。網(wǎng)絡(luò)中的每一節(jié)點(diǎn)耦合到一或多個(gè)其它節(jié)點(diǎn)。網(wǎng)絡(luò)連接185是此類連接的實(shí)例。網(wǎng)絡(luò)連接展示為實(shí)線,但每一線也可以表示可將一個(gè)節(jié)點(diǎn)耦合到另一節(jié)點(diǎn)的子網(wǎng)或超網(wǎng)。網(wǎng)絡(luò)180可以是內(nèi)容中心的本地網(wǎng)、超網(wǎng)或子網(wǎng)。這些網(wǎng)絡(luò)中的每一者可經(jīng)互連以使得一個(gè)網(wǎng)絡(luò)中的節(jié)點(diǎn)可以到達(dá)其它網(wǎng)絡(luò)中的節(jié)點(diǎn)。網(wǎng)絡(luò)連接可以是寬帶、無線、電話、衛(wèi)星或任何類型的網(wǎng)絡(luò)連接。節(jié)點(diǎn)可以是計(jì)算機(jī)系統(tǒng)、終端表示用戶和/或可以產(chǎn)生興趣或發(fā)起內(nèi)容的裝置。
[0040]根據(jù)本發(fā)明的實(shí)施例,消費(fèi)者可以產(chǎn)生對(duì)一條內(nèi)容的興趣且將所述興趣轉(zhuǎn)發(fā)到網(wǎng)絡(luò)180中的節(jié)點(diǎn)。所述條內(nèi)容可以由可位于網(wǎng)絡(luò)內(nèi)部或外部的公布者或內(nèi)容提供者存儲(chǔ)在網(wǎng)絡(luò)180中的節(jié)點(diǎn)處。例如,在圖1中,對(duì)一條內(nèi)容的興趣起源于節(jié)點(diǎn)105處。如果所述內(nèi)容在所述節(jié)點(diǎn)處不可用,那么所述興趣流動(dòng)到耦合到第一節(jié)點(diǎn)的一或多個(gè)節(jié)點(diǎn)。例如,在圖1中,興趣流動(dòng)(興趣流150)到并不具有可用的所述內(nèi)容的節(jié)點(diǎn)115。接著,興趣從節(jié)點(diǎn)115流動(dòng)(興趣流155)到同樣不具有所述內(nèi)容的節(jié)點(diǎn)125。隨后興趣流動(dòng)(興趣流160)到確實(shí)具有可用的所述內(nèi)容的節(jié)點(diǎn)130。內(nèi)容對(duì)象的流隨后反向地回溯其路徑(內(nèi)容流165、170和175)直到其到達(dá)節(jié)點(diǎn)105為止,在所述節(jié)點(diǎn)處投遞所述內(nèi)容。在所述內(nèi)容流中可涉及例如驗(yàn)證等其它過程。
[0041]在網(wǎng)絡(luò)180中,在內(nèi)容持有者(節(jié)點(diǎn)130)與興趣產(chǎn)生節(jié)點(diǎn)(節(jié)點(diǎn)105)之間的路徑中的任何數(shù)目的中間節(jié)點(diǎn)(節(jié)點(diǎn)100到145)可以參與在內(nèi)容在網(wǎng)絡(luò)上行進(jìn)時(shí)高速緩沖存儲(chǔ)所述內(nèi)容的本地副本。高速緩沖存儲(chǔ)通過隱式地共享對(duì)本地高速緩沖存儲(chǔ)內(nèi)容的存取而減少對(duì)位于接近其它訂戶處的第二訂戶的網(wǎng)絡(luò)負(fù)載。
[0042]在CCN中,內(nèi)容呈內(nèi)容對(duì)象形式流過網(wǎng)絡(luò),其中每一內(nèi)容對(duì)象是具有明確界定格式和大小的數(shù)據(jù)包。圖2呈現(xiàn)圖解說明內(nèi)容中心網(wǎng)絡(luò)(CCN)中的示例性內(nèi)容對(duì)象的簡圖。在圖2中,內(nèi)容對(duì)象200包含名稱組成部分202、密鑰-1D組成部分204、任選的密鑰組成部分206、有效負(fù)載組成部分208、其它組成部分以及簽名組成部分212。名稱組成部分202是非加密的用戶分配的字符串,其可以是呈人可讀形式的HSVLI或簡單的名稱。密鑰-1D組成部分204識(shí)別用以對(duì)內(nèi)容對(duì)象200進(jìn)行簽名的公開密鑰。公開密鑰可以任選地作為密鑰組成部分206包含在內(nèi)容對(duì)象200中。有效負(fù)載組成部分208包含用戶數(shù)據(jù)。內(nèi)容對(duì)象200還可以包含其它組成部分(在圖2中未示出),例如指示最后一次修改的時(shí)間的時(shí)間戳字段。簽名組成部分212是用以綁定內(nèi)容對(duì)象200中的所有其它組成部分的加密簽名??梢允褂肦SA方案產(chǎn)生簽名。例如,內(nèi)容的公布者可以使用其私用密鑰產(chǎn)生簽名,所述簽名是使用公開密鑰206可校驗(yàn)的。應(yīng)注意,所述簽名通常由對(duì)內(nèi)容對(duì)象200的散列(減去簽名組成部分212)進(jìn)行簽名而產(chǎn)生,而不是對(duì)所有字節(jié)進(jìn)行簽名,所述散列示出為簽名散列210。
[0043]當(dāng)請(qǐng)求者在CCN上請(qǐng)求內(nèi)容塊,例如文獻(xiàn)、圖像文件、視頻或音頻文件、或?qū)S脭?shù)據(jù)文件時(shí),其通常接收從內(nèi)容提供者傳輸?shù)亩鄠€(gè)內(nèi)容對(duì)象,內(nèi)容提供者可以是原始內(nèi)容公布者或存儲(chǔ)內(nèi)容塊的副本的節(jié)點(diǎn)。接收到的內(nèi)容對(duì)象的有效負(fù)載含有內(nèi)容數(shù)據(jù),其中每一內(nèi)容對(duì)象含有一個(gè)數(shù)據(jù)文件信息塊。當(dāng)接收到多個(gè)內(nèi)容對(duì)象時(shí),請(qǐng)求者(現(xiàn)在是內(nèi)容接收者)需要從所述內(nèi)容對(duì)象中選取內(nèi)容數(shù)據(jù)、匯編、并將內(nèi)容數(shù)據(jù)作為普通文件以其原始格式存儲(chǔ)在本地機(jī)器上,使得對(duì)應(yīng)應(yīng)用程序可以使用所述數(shù)據(jù)文件。例如,如果數(shù)據(jù)文件是JPEG圖像文件,那么JPEG圖像文件的請(qǐng)求者可以接收多個(gè)內(nèi)容對(duì)象,其中每一內(nèi)容對(duì)象在其有效負(fù)載中攜載JPEG圖像文件的一部分。接著,接收者可以從接收到的內(nèi)容對(duì)象中選取JPEG圖像文件的部分,將所選取的部分匯編為完整的JPEG圖像文件,并且存儲(chǔ)所匯編的JPEG圖像文件,使得圖像讀取應(yīng)用程序可以打開JPEG圖像文件以展示圖像。
[0044]另一方面,在CCN中,需要內(nèi)容接收者還高速緩沖存儲(chǔ)內(nèi)容對(duì)象,使得內(nèi)容接收者可以通過返回經(jīng)高速緩沖存儲(chǔ)的內(nèi)容對(duì)象對(duì)針對(duì)內(nèi)容塊的未來興趣作出響應(yīng)。應(yīng)注意,因?yàn)閮?nèi)容對(duì)象通過原始公布者以加密方式進(jìn)行簽名,所以它們需要以其原始形式保存,使得未來的內(nèi)容接收者可以通過校驗(yàn)?zāi)切┖灻麃硇r?yàn)內(nèi)容的真實(shí)性。如果當(dāng)前接收者僅保持內(nèi)容對(duì)象的有效負(fù)載并丟棄包裝程序(其可以包含名稱、密鑰-1D/密鑰、簽名等),那么當(dāng)前接收者無法復(fù)原那些簽名。即使當(dāng)前接收者存儲(chǔ)了所述簽名,它們也無法與原始內(nèi)容對(duì)象配對(duì)以實(shí)現(xiàn)驗(yàn)證過程。
[0045]然而,將內(nèi)容對(duì)象連同用戶數(shù)據(jù)一起存儲(chǔ)意味著當(dāng)前內(nèi)容接收者在其接收內(nèi)容塊之后需要以兩種不同形式存儲(chǔ)同一內(nèi)容數(shù)據(jù):一種呈普通數(shù)據(jù)文件形式,即應(yīng)用程序隨時(shí)可用的形式,另一種呈內(nèi)容對(duì)象形式。這形成了非所需的冗余,其中可能很大的經(jīng)復(fù)制數(shù)據(jù)組被存儲(chǔ)在本地系統(tǒng)上。為了避免這種冗余,在本發(fā)明的一些實(shí)施例中,所述系統(tǒng)以可重構(gòu)內(nèi)容對(duì)象投遞內(nèi)容,可重構(gòu)內(nèi)容對(duì)象允許接收者以應(yīng)用程序隨時(shí)可用的格式存儲(chǔ)所述內(nèi)容,并且在向其它節(jié)點(diǎn)重傳所述內(nèi)容時(shí)重構(gòu)原始內(nèi)容對(duì)象。為了產(chǎn)生可重構(gòu)內(nèi)容對(duì)象,在一些實(shí)施例中,實(shí)施包含一組規(guī)則的元數(shù)據(jù)文件。
[0046]圖3A呈現(xiàn)圖解說明根據(jù)本發(fā)明的實(shí)施例內(nèi)容公布者如何創(chuàng)建用于內(nèi)容塊的一組可重構(gòu)內(nèi)容對(duì)象的簡圖。在圖3A中,公布者在CCN網(wǎng)絡(luò)上公布數(shù)據(jù)文件302。為了這樣做,公布者需要產(chǎn)生符合CCN方案和/或由公布者界定的某些標(biāo)準(zhǔn)的多個(gè)內(nèi)容對(duì)象。在一些實(shí)施例中,產(chǎn)生多個(gè)內(nèi)容對(duì)象包括應(yīng)用元數(shù)據(jù)文件306中包含的一組規(guī)則。所述規(guī)則組可以指定如何劃分原始數(shù)據(jù)文件(例如,每信息塊多少字節(jié))以及在內(nèi)容對(duì)象的所有字段中填寫什么。例如,所述規(guī)則組可以指定如何填寫內(nèi)容對(duì)象中的創(chuàng)建時(shí)間字段以及何時(shí)使用區(qū)段結(jié)束字段。此外,所述規(guī)則組可以指定內(nèi)容對(duì)象的名稱的格式。在一些實(shí)施例中,所有內(nèi)容對(duì)象可以具有相同的CCN基本名稱,并且特定內(nèi)容對(duì)象的CCN名稱可以是基本名稱加上對(duì)應(yīng)信息塊編號(hào)。另外,所述規(guī)則組可以指定簽名密鑰,并且可以指定是否在一或多個(gè)內(nèi)容對(duì)象中包含簽名密鑰的公開密鑰。在一些實(shí)施例中,所述規(guī)則組可以指定第一內(nèi)容對(duì)象包含公開密鑰的副本?;谠獢?shù)據(jù)文件306中包含的規(guī)則組,公布者產(chǎn)生數(shù)據(jù)文件302的初始內(nèi)容對(duì)象組,每一內(nèi)容對(duì)象包含數(shù)據(jù)文件302的一個(gè)信息塊。例如,內(nèi)容對(duì)象310包含數(shù)據(jù)文件302的信息塊O。應(yīng)注意,元數(shù)據(jù)文件306可以是系統(tǒng)默認(rèn)文件,或由內(nèi)容公布者產(chǎn)生的文件,以便包含一組用戶可界定規(guī)則。
[0047]在初始內(nèi)容對(duì)象組產(chǎn)生之后,公布者使用簽名密鑰304對(duì)每一內(nèi)容對(duì)象以加密方式進(jìn)行簽名,從而產(chǎn)生一組簽名,例如簽名308。在一些實(shí)施例中,簽名密鑰304可以是公開/私用密鑰對(duì)的私用簽名密鑰。在其它實(shí)施例中,對(duì)內(nèi)容對(duì)象進(jìn)行簽名可以包括對(duì)內(nèi)容對(duì)象的散列值進(jìn)行簽名。應(yīng)注意,一旦產(chǎn)生,簽名就包含在對(duì)應(yīng)內(nèi)容對(duì)象中,成為內(nèi)容對(duì)象的有效部分。為了避免歧義,包含簽名的內(nèi)容對(duì)象也被稱為經(jīng)簽名內(nèi)容對(duì)象。
[0048]圖3B呈現(xiàn)圖解說明根據(jù)本發(fā)明的實(shí)施例對(duì)在網(wǎng)絡(luò)上傳送