欧美在线观看视频网站,亚洲熟妇色自偷自拍另类,啪啪伊人网,中文字幕第13亚洲另类,中文成人久久久久影院免费观看 ,精品人妻人人做人人爽,亚洲a视频

移動通信節(jié)點之間的內(nèi)容發(fā)現(xiàn)和傳送的制作方法

文檔序號:6701719閱讀:202來源:國知局
專利名稱:移動通信節(jié)點之間的內(nèi)容發(fā)現(xiàn)和傳送的制作方法
移動通信節(jié)點之間的內(nèi)容發(fā)現(xiàn)和傳送背景諸如車輛中的衛(wèi)星導(dǎo)航設(shè)備或個人導(dǎo)航設(shè)備之類的移動通信節(jié)點,由步行者攜帶 的個人數(shù)字助理和由正在旅行的人用戶攜帶的移動電話通常需要存儲內(nèi)容。例如,在衛(wèi)星 導(dǎo)航設(shè)備的情況下,內(nèi)容可以是地圖、公路建設(shè)位置、安全相機(jī)位置、興趣點位置、地標(biāo)位置 和類似的信息。取決于移動通信節(jié)點的類型和涉及的應(yīng)用,特定內(nèi)容將變化。通常,由這樣的移動通信節(jié)點所需的內(nèi)容需要被更新并分發(fā)到節(jié)點本身。一個選 項是安排移動通信節(jié)點在每當(dāng)需要內(nèi)容時從網(wǎng)絡(luò)基礎(chǔ)結(jié)構(gòu)下載內(nèi)容,而并非將內(nèi)容存儲在 移動通信節(jié)點本地。然而,這樣的按需系統(tǒng)產(chǎn)生非常大的通信成本。另一選項是將內(nèi)容存儲在移動通信設(shè)備本地。在移動設(shè)備具有足夠的存儲器資源 的情況下,這是切實可行的。然而,需要不斷地更新信息以保持新鮮,還需要以對用戶友好 的簡單、可靠、快速且成本有效的方式將新內(nèi)容傳播到許多這樣的移動通信設(shè)備。用于汽車中的衛(wèi)星導(dǎo)航設(shè)備是已知的,它們提供藍(lán)牙(商標(biāo))連通性,以允許設(shè)備 連接到也在車輛中的移動電話。以此方式,衛(wèi)星導(dǎo)航設(shè)備能夠通過使用移動電話的蜂窩網(wǎng) 絡(luò)的數(shù)據(jù)服務(wù)連接到因特網(wǎng)來從因特網(wǎng)數(shù)據(jù)中心獲取內(nèi)容。然而,此方法依賴于蜂窩電話 網(wǎng)絡(luò)來進(jìn)行內(nèi)容分發(fā)。不同的組織控制對蜂窩網(wǎng)絡(luò)基礎(chǔ)結(jié)構(gòu)的訪問,使得需要與那些不同 的組織協(xié)商才能進(jìn)行訪問。此外,還在不同的區(qū)域使用不同的蜂窩技術(shù),使得可能需要對移 動設(shè)備進(jìn)行硬件定制,以便用于那些不同的區(qū)域。還可能在網(wǎng)絡(luò)的不同的地理區(qū)域?qū)嵤┎?同的收費計劃,使得最終用戶很可能會發(fā)現(xiàn)他們無意中比預(yù)期的增加了更大的賬單。用于汽車上的衛(wèi)星導(dǎo)航設(shè)備也是已知的,它們經(jīng)由FM無線電信道或基于衛(wèi)星的 分發(fā)接收從網(wǎng)絡(luò)基礎(chǔ)結(jié)構(gòu)廣播的內(nèi)容。此方法在其中覆蓋可用的地理區(qū)域起作用,雖然這 樣的覆蓋通常是受限的?;贔M的解決方案提供低比特率,并且限于可以獲得許可證并安 裝基礎(chǔ)結(jié)構(gòu)的城市和地區(qū)?;谛l(wèi)星的解決方案可以支持高得多的比特率,但是要求昂貴 的基礎(chǔ)結(jié)構(gòu)投資。下面所描述的各實施例不限于解決移動通信節(jié)點之間的已知內(nèi)容發(fā)現(xiàn)和傳送過 程的任何或全部缺點的實現(xiàn)。概述下面呈現(xiàn)了本發(fā)明的簡要概述,以便向讀者提供基本理解。本概述不是本發(fā)明的 詳盡概述,并且不標(biāo)識本發(fā)明的關(guān)鍵/重要元素,也不描述本發(fā)明的范圍。其唯一的目的是 以簡化形式呈現(xiàn)此處所公開的一些概念,作為稍后呈現(xiàn)的更詳細(xì)的描述的序言。常常需要移動通信節(jié)點之間的內(nèi)容發(fā)現(xiàn)和內(nèi)容傳輸,例如,以同步安裝在車輛上 的衛(wèi)星導(dǎo)航設(shè)備、步行者手持式個人數(shù)字助理及其他移動通信節(jié)點的地圖、交通熱點信息 等。在一實施例中,使用以特定方式設(shè)計并使用單個數(shù)據(jù)包發(fā)送的數(shù)據(jù)結(jié)構(gòu)的內(nèi)容發(fā)現(xiàn)過 程使得節(jié)點能標(biāo)識要傳輸?shù)奈募?,而同時使開銷保持得較低。在一個實施例中,使用第一和 第二數(shù)據(jù)結(jié)構(gòu),每個數(shù)據(jù)結(jié)構(gòu)都是由關(guān)于要同步的文件的子集的稍微不同的信息構(gòu)成的。 在另一實施例中,使用單個基于樹的數(shù)據(jù)結(jié)構(gòu)。還描述了用于在兩個移動通信節(jié)點之間傳 輸數(shù)據(jù)的過程。
4
通過結(jié)合附圖參考以下詳細(xì)描述,可更易于領(lǐng)會并更好地理解許多附帶特征。附圖描述根據(jù)附圖閱讀以下詳細(xì)描述,將更好地理解本發(fā)明,在附圖中

圖1是通信網(wǎng)絡(luò)的示意圖;圖2是通信節(jié)點處的方法的框圖;圖3是另一通信節(jié)點處的方法的框圖;圖4是作為動態(tài)高速緩存中的文件的內(nèi)容發(fā)現(xiàn)過程的一部分的通信節(jié)點處的方 法的框圖;圖5是作為動態(tài)高速緩存中的文件的內(nèi)容發(fā)現(xiàn)過程的另一部分的通信節(jié)點處的 方法的框圖;圖6是內(nèi)容發(fā)現(xiàn)過程中的節(jié)點之間的消息交換的消息序列圖表;圖7是作為固定高速緩存中的文件的內(nèi)容發(fā)現(xiàn)過程的一部分的方法的框圖;圖8是內(nèi)容發(fā)現(xiàn)過程中的節(jié)點之間的消息交換的消息序列圖表;圖9是節(jié)點處用于內(nèi)容傳輸?shù)姆椒ǖ目驁D;圖10是另一節(jié)點處用于內(nèi)容傳輸?shù)姆椒ǖ目驁D;圖11示出了其中可以實現(xiàn)通信網(wǎng)絡(luò)節(jié)點的實施例的示例性基于計算的設(shè)備。在各個附圖中使用相同的附圖標(biāo)記來指代相同的部件。詳細(xì)描述下面結(jié)合附圖提供的詳細(xì)描述旨在作為本發(fā)明示例的描述,并不旨在表示可以構(gòu) 建或使用本發(fā)明示例的唯一形式。本描述闡述了本發(fā)明示例的功能,以及用于構(gòu)建和操作 本發(fā)明示例的步驟的序列。然而,可以通過不同的示例來實現(xiàn)相同或等效功能和序列。雖然本示例此處被描述為和示為是在包括安裝在車輛上的衛(wèi)星導(dǎo)航設(shè)備的汽車 網(wǎng)絡(luò)中實現(xiàn)的,但是,所描述的系統(tǒng)是作為示例而不是限制來提供的。如本領(lǐng)域技術(shù)人員將 理解的,本發(fā)明示例適用于應(yīng)用在各種不同類型的具有移動通信網(wǎng)絡(luò)節(jié)點的通信網(wǎng)絡(luò)中。術(shù)語“數(shù)據(jù)包”被用來指代具有頭部和有效負(fù)載的消息數(shù)據(jù)結(jié)構(gòu)。頭部被配置為 保留諸如地址細(xì)節(jié)之類的控制信息。有效負(fù)載被配置為保留一個或多個內(nèi)容塊。每一個塊 都是諸如文件或其他信息項之類的內(nèi)容片段的部分。每一個塊都具有指示塊將被配置為構(gòu) 成內(nèi)容片段的順序的序列標(biāo)識符。如上文所提及的,內(nèi)容常常本地存儲在移動通信設(shè)備中。然而,需要不斷地更新信 息以使其保持新鮮,且還需要以對用戶友好的簡單、可靠、快速且成本有效的方式將新內(nèi)容 散布到許多這樣的移動通信設(shè)備。內(nèi)容可以是任何類型的信息,并且可包括圖像、列表、地 圖、數(shù)值信息、文本信息,且還包括諸如操作系統(tǒng)更新之類的控制信息或用于控制移動通信 節(jié)點本身的其他指令或在移動通信節(jié)點上提供的任何軟件應(yīng)用程序。內(nèi)容可以作為文件或 作為任何其他形式的信息來存儲。此處所描述的方法適合用于對等或流行的內(nèi)容分發(fā)系統(tǒng)中,由此移動通信節(jié)點能 夠直接向彼此傳輸內(nèi)容(即,無需經(jīng)由諸如基站之類的靜態(tài)網(wǎng)絡(luò)基礎(chǔ)結(jié)構(gòu)節(jié)點來發(fā)送內(nèi) 容)。許多現(xiàn)有的對等內(nèi)容分發(fā)系統(tǒng)被設(shè)計成與固定通信節(jié)點一起使用,且不適合在通信節(jié) 點移動的情況下使用,或者效率非常低。當(dāng)通信節(jié)點正在移動時,連接周期常常短暫,大約 幾秒。例如,在節(jié)點與安裝在機(jī)動車輛或其他車輛上的衛(wèi)星導(dǎo)航設(shè)備形成整體或由步行者攜帶的情況下。除短暫之外,連接質(zhì)量通常也較差,且現(xiàn)有的對等內(nèi)容分發(fā)系統(tǒng)在設(shè)計時沒 有考慮到這些。另一因素是,與固定網(wǎng)絡(luò)基礎(chǔ)結(jié)構(gòu)相比,移動通信節(jié)點通常具有有限的處理 資源。這是現(xiàn)有的對等內(nèi)容分發(fā)協(xié)議通常沒有考慮的另一特征。圖1是作為內(nèi)容分發(fā)云100的成員的多個移動通信網(wǎng)絡(luò)節(jié)點101的示意圖。每一 個移動節(jié)點101可以是能夠使用無線接口與一個或多個其他移動節(jié)點101進(jìn)行通信的任何 合適的設(shè)備。即,移動節(jié)點可以彼此不同,并包括不同的硬件和軟件應(yīng)用程序,只要它們能 夠使用任何合適的無線接口彼此進(jìn)行通信。無線接口可以是諸如如IEEE 802. 11標(biāo)準(zhǔn)所定 義的WiFi之類的短距離無線接口或任何其他合適的無線接口。例如,也可以使用藍(lán)牙(商 標(biāo))、IEEE 802. 15. 4/Zigbee。每一個移動節(jié)點101都具有用于存儲從其他移動節(jié)點中的 一個或多個分發(fā)的內(nèi)容的存儲器??梢匀芜x地提供靜態(tài)信息站102。這是具有使用無線接 口與移動節(jié)點101進(jìn)行通信的功能的靜態(tài)或固定通信網(wǎng)絡(luò)節(jié)點。對移動節(jié)點101和任何靜 態(tài)信息站節(jié)點102中的全部設(shè)置了合適的通信協(xié)議軟件以實現(xiàn)此處所描述的方法??梢允褂渺o態(tài)信息站102來將內(nèi)容播種到內(nèi)容分發(fā)云100中。靜態(tài)信息站可以訪 問要通過云分發(fā)的全部內(nèi)容或僅內(nèi)容的子集。當(dāng)移動節(jié)點101和靜態(tài)信息站102靠近時, 移動節(jié)點被安排成與信息站102同步。例如,靜態(tài)信息站可以是家庭網(wǎng)絡(luò)的一部分。在該 情況下,移動通信節(jié)點101可以是,例如,PDA,而每當(dāng)用戶返回到他或她的家時,PDA可以被 安排成將內(nèi)容與家庭網(wǎng)絡(luò)中的靜態(tài)信息站同步。替換地,可以在公共停車場提供靜態(tài)信息 站,以使得安裝在車輛上的移動節(jié)點能夠在使用停車場的過程中將內(nèi)容與該靜態(tài)信息站同步ο在一個示例中,需要分發(fā)表示要分發(fā)的內(nèi)容的一組文件,f。每一個文件具有任何 合適的類型的用密碼簽名的文件證書。例如,文件證書包括文件SHAl散列、版本號、文件的 文本名稱以及指示一組文件的任選標(biāo)志。如本領(lǐng)域內(nèi)已知的,可以使用離線認(rèn)證機(jī)構(gòu)(CA) 來提供公鑰基礎(chǔ)結(jié)構(gòu)(PKI)。例如,可以給每一個設(shè)備提供CA的公鑰。每一個文件都可以 與被稱為文件的所有者的單個內(nèi)容提供商相關(guān)聯(lián),且一般而言,只有所有者才能夠生成文 件的新版本。當(dāng)更新文件時,要求新證書帶有新文件散列和增大的版本號。一般而言,預(yù)期 版本號會單調(diào)地增大,如此,給定同一個文件的兩個證書,任何設(shè)備都能夠確定哪一個是最 新的。每一個文件都可以具有與它相關(guān)聯(lián)的此處稱為文件標(biāo)識符和實例標(biāo)識符的兩個 文件標(biāo)識符。文件標(biāo)識符可以是例如與內(nèi)容所有者的公鑰串接在一起的文本文件名的 SHA-I散列。實例標(biāo)識符與文件和版本相關(guān)聯(lián),且可以是文件證書的SHA-I散列。通過比較 文件標(biāo)識符,可使節(jié)點能確定它們共同擁有的文件組,且通過比較實例標(biāo)識符,可使節(jié)點能 檢查它們是否具有相同的文件版本。每一個節(jié)點都具有用于進(jìn)行內(nèi)容分發(fā)的一組文件,并能夠向該組中添加或從該組 中刪除文件。對該組的文件的選擇可以作為用戶輸入的結(jié)果,或者也可以是以任何合適的 方式控制的自動化過程。此組文件可以被視為存儲在每一個節(jié)點上的動態(tài)高速緩存中。當(dāng)兩個節(jié)點101,102相遇時,這些節(jié)點上的通信協(xié)議允許這些節(jié)點同步,以使得 指定的文件的較新的版本在節(jié)點之間傳輸(如果可用的話)??梢允褂梦募C書和PKI基 礎(chǔ)結(jié)構(gòu)或以任何其他合適的方式來驗證所傳輸?shù)膬?nèi)容。如上文所提及的,在節(jié)點與安裝在機(jī)動車輛或其他車輛中的衛(wèi)星導(dǎo)航設(shè)備形成整
6體或由步行者攜帶的情況下,有特定的挑戰(zhàn)。要求節(jié)點物理鄰近以便傳輸內(nèi)容。至少有兩 個因素會影響此動作,支持內(nèi)容分發(fā)系統(tǒng)的車輛的比率和所需的內(nèi)容的流行度。同樣,如果 一個節(jié)點不太可能不久就遇到帶有相同文件的另一節(jié)點,則一部分所傳輸?shù)奈募膬r值較 低。當(dāng)兩個節(jié)點101進(jìn)入彼此的無線通信范圍時,它們需要快速而有效地建立連接, 且還需要標(biāo)識需要在節(jié)點101之間傳輸?shù)囊粋€或多個文件??梢允褂糜糜谠诠?jié)點之間建立 連接的任何合適的方法,諸如802. 11協(xié)議系列的自組織(ad-hoc)模式。每一個節(jié)點都被 配置成每隔一定時間間隔廣播信標(biāo)消息。在優(yōu)選實施例中,建立連接的過程基于如上文所提及的802. 11協(xié)議系列的自組 織(ad-hoc)模式。通常,每隔100毫秒,802. 11網(wǎng)絡(luò)內(nèi)的一個節(jié)點發(fā)出其當(dāng)前SSID和 BSSID0當(dāng)一個節(jié)點啟動時,它進(jìn)入安靜狀態(tài),并進(jìn)行預(yù)定義信道列表的主動掃描,以發(fā)現(xiàn)它 可以加入的網(wǎng)絡(luò)的(SSID,BSSID)對。為進(jìn)行主動掃描,節(jié)點在每一個信道上傳送探針請 求。當(dāng)一個節(jié)點接收到探針請求時,如果它相信它是被用信標(biāo)指示的最后節(jié)點,則它用包含 SSID,BSSID對的探針響應(yīng)作出響應(yīng)。如果發(fā)現(xiàn)了被內(nèi)容分發(fā)云使用的SSID,那么,該節(jié)點 進(jìn)入已加入狀態(tài),并將此信息發(fā)信號通知到該節(jié)點所連接到的操作系統(tǒng)。節(jié)點保持在已加入狀態(tài),只要每隔指定的秒數(shù)都能接收到一個或多個信標(biāo)。例如, 這可以每隔3秒或每隔1秒進(jìn)行一次。如果沒有接收到信標(biāo),那么,節(jié)點如上文所描述的使 用探針請求進(jìn)行掃描。例如,每秒地發(fā)送探測請求,且如果在10秒內(nèi)沒有發(fā)現(xiàn)其他節(jié)點,則 該節(jié)點進(jìn)入安靜狀態(tài),并向操作系統(tǒng)發(fā)送已斷開連接的信號。對于移動節(jié)點,如上文所提及的,用于連通性的時間窗口非常小。迅速地發(fā)現(xiàn)節(jié)點 以最大化此窗口十分重要??梢孕薷淖越M織(ad-hoc)模式802. 11過程的各種默認(rèn)計時器 和參數(shù),以縮短節(jié)點發(fā)現(xiàn)時間。此外,還可以修改自組織(ad-hoc)模式過程,以確保實現(xiàn)如 上文所描述的有源探測,而并非進(jìn)行被動掃描。例如,當(dāng)一個節(jié)點從已加入狀態(tài)變換到安靜 狀態(tài)時,可以頻繁地執(zhí)行主動掃描,而沒有任何睡眠過程。同樣,節(jié)點可以保持在已加入狀 態(tài),只要每隔1秒地接收到一個或多個信標(biāo),如果這種情況未能發(fā)生,就會立即觸發(fā)斷開連 接。802. 11協(xié)議的自組織(ad-hoc)模式包括了信標(biāo)抑制過程,此處認(rèn)識到,該過程可 能會對通信范圍內(nèi)的節(jié)點的發(fā)現(xiàn)時間造成負(fù)面影響。當(dāng)一個節(jié)點由于無意中聽到針對其當(dāng) 前SSID的另一信標(biāo)而停止發(fā)送信標(biāo)時,會發(fā)生信標(biāo)抑制。如此,此處所描述的方法使用顯 式的廣告過程,藉此內(nèi)容分發(fā)云中的每一個節(jié)點都反復(fù)地廣播宣告其存在的廣告。例如,每 隔k毫秒地廣播廣告,其中,k大約是100毫秒或任何其他合適的值。以此方式,在k毫秒 之后,內(nèi)容分發(fā)云中的在彼此的通信范圍內(nèi)的所有節(jié)點都將發(fā)現(xiàn)彼此。如上文所提及的,移動節(jié)點可能只有十分短的機(jī)會窗口,約為幾秒,用于交換內(nèi) 容。因此,希望標(biāo)識需要利用盡可能少的通信往返行程進(jìn)行傳輸?shù)奈募?。往返行程是將?息從源節(jié)點發(fā)送到目的地節(jié)點以及源節(jié)點從目的地節(jié)點接收到應(yīng)答所需的時間。該過程還 需要是穩(wěn)健的,因為消息可能會由于移動節(jié)點之間的連接質(zhì)量差而導(dǎo)致容易丟失。術(shù)語“源 節(jié)點”是指通信網(wǎng)絡(luò)的一個節(jié)點,該節(jié)點被配置為將存儲在該節(jié)點上的內(nèi)容傳送到通信網(wǎng) 絡(luò)中的另一節(jié)點。術(shù)語“目的地節(jié)點”是指通信網(wǎng)絡(luò)的一個節(jié)點,該節(jié)點被配置為接受從通 信網(wǎng)絡(luò)中的另一節(jié)點傳送的內(nèi)容。通信網(wǎng)絡(luò)的單個節(jié)點可以既作為源節(jié)點又作為目的地節(jié)點來操作?,F(xiàn)在將參考圖2的框圖來描述諸如圖1的內(nèi)容分發(fā)云100之類的通信網(wǎng)絡(luò)中的源 節(jié)點處的方法。此方法包括從源節(jié)點廣播廣告。在通信網(wǎng)絡(luò)中的目的地節(jié)點接收這些廣告, 并可以使用它們來標(biāo)識需要利用很少的往返行程傳輸?shù)奈募?如下面參考圖3所描述的)。 此外,兩個節(jié)點還能夠有效地確定它們共同擁有哪些文件以及哪一個節(jié)點具有最新的版本 (如下面參考圖3所描述的)。這種類型的過程可以稱為動態(tài)內(nèi)容的內(nèi)容發(fā)現(xiàn)過程。源節(jié)點訪問(圖2的框200)其存儲了用于內(nèi)容分發(fā)的文件的動態(tài)高速緩存。如上 文所提及的,每一個文件都具有名稱、版本和公鑰。對于每一個文件,源節(jié)點生成兩個標(biāo)識 符(框201)?;谖募拿Q和公鑰,為文件生成文件標(biāo)識符。基于文件的名稱、公鑰和版 本,為文件生成實例標(biāo)識符。源節(jié)點還根據(jù)文件和每一個文件的實例標(biāo)識符生成全局標(biāo)識 符(參見圖2的框20 。即,每個動態(tài)高速緩存都只有一個全局標(biāo)識符。源節(jié)點將全局標(biāo) 識符以及關(guān)于其動態(tài)高速緩存中的文件的總數(shù)的信息嵌入到廣告消息中(圖2的框203)。 如上文所描述的,源節(jié)點反復(fù)地廣播廣告(框204)。目的地節(jié)點接收(圖3的框300)廣告,如在圖2的框204廣播的廣告。目的地節(jié) 點任選地檢查(框301)在其動態(tài)高速緩存中它是否具有比廣告發(fā)送者更少的文件。它使 用接收到的廣告中關(guān)于源節(jié)點動態(tài)高速緩存中的文件的數(shù)量的信息來執(zhí)行此項動作。進(jìn)行此任選檢查是為了減少完成關(guān)于在兩個節(jié)點之間共同擁有哪些文件以及哪 一個節(jié)點具有這些文件中的每一個文件的最新版本的協(xié)商所需的消息的數(shù)量。在其動態(tài)高 速緩存中具有最少數(shù)量的文件的節(jié)點開始該過程,以便減少消息的數(shù)量。該過程是可行的, 無需進(jìn)行框301中的檢查,在該情況下,廣告不需要包括關(guān)于適當(dāng)節(jié)點的動態(tài)高速緩存中 保留的文件的數(shù)量的信息。如果目的地節(jié)點的動態(tài)高速緩存中的文件比源節(jié)點的文件少,則目的地節(jié)點執(zhí)行 如圖3所示的過程。否則,目的地節(jié)點繼續(xù)廣播廣告(框302)。為了判斷是否要與源節(jié)點交換文件,目的地節(jié)點將其全局標(biāo)識符與接收到的廣告 中的全局標(biāo)識符進(jìn)行比較(框30 。如果發(fā)現(xiàn)了區(qū)別,那么,源節(jié)點和目的地節(jié)點具有不同 的內(nèi)容文件。節(jié)點任選地被配置為存儲源節(jié)點的地址以及它們完全與其交換了它們的動態(tài) 高速緩存內(nèi)容的任何源節(jié)點的全局標(biāo)識符(框304)。這防止對于已經(jīng)被同步的節(jié)點不必要 地進(jìn)行內(nèi)容發(fā)現(xiàn)過程。接下來進(jìn)行用于判定共同保留了哪些動態(tài)緩存文件以及哪個節(jié)點具有這些文件 的最新版本(框30幻。下面將參考圖4和5比較詳細(xì)地描述此過程。使用任何合適的內(nèi)容 傳輸過程,例如,IP上的TCP或任何其他合適的基于數(shù)據(jù)包的內(nèi)容傳輸過程,傳輸已標(biāo)識的 文件(框306)。在同步之后,接收到的廣告中的源節(jié)點的地址和全局標(biāo)識符任選地存儲在 目的地節(jié)點上(框307)。因為節(jié)點的動態(tài)高速緩存中的文件組可以是任意大的,并且因為在數(shù)據(jù)包的有效 負(fù)載中可以傳輸?shù)臄?shù)據(jù)量是有限的,因此,難以以有效的方式實現(xiàn)內(nèi)容發(fā)現(xiàn)過程。為了尋 址,使用這些數(shù)據(jù)結(jié)構(gòu)來在節(jié)點之間傳輸關(guān)于動態(tài)高速緩存中的文件的數(shù)據(jù),且這些數(shù)據(jù) 結(jié)構(gòu)被以特定方式設(shè)計,以便能簡單而有效地實現(xiàn)內(nèi)容發(fā)現(xiàn)過程。在特定示例中,數(shù)據(jù)結(jié)構(gòu)基于Bloom(布隆)過濾器。然而,不一定要使用Bloom 過濾器??梢允褂媚芤允沟脭?shù)據(jù)結(jié)構(gòu)可被用于確定特定文件是否是一組已編碼的文件的成員而不會提供錯誤否定的方式編碼文件組成員資格的任何合適的數(shù)據(jù)結(jié)構(gòu)。在B. Bloom所 著的 “Space/time trade-offs in hash coding with allowable errors (具有容許差錯 的散列編碼中的空間/時間權(quán)衡)” (ACM通信,13 (7) :422-426,1970)中詳細(xì)描述了 Bloom 過濾器OBloom過濾器包括某一長度的比特陣列,其中,對于給定集的每一個項目,對于j 個散列函數(shù)的給定集合中的所有散列函數(shù),haS~(item)th(散列J項目)th)比特被置位。 為了檢查集合中是否存在一項目,檢查每一個has、(item)th,且如果每一比特都被置位,那 么,bloom過濾器被視為包含該項目。Bloom過濾器不會產(chǎn)生錯誤否定,但是,它們可以產(chǎn)生 錯誤肯定。一般而言,在可以在給定長度的Bloom過濾器中編碼的項目的數(shù)量與錯誤肯定 的概率之間有折衷。在某些實施例中,使用了完全的Bloom過濾器,其中,在Bloom過濾器中編碼了動 態(tài)高速緩存中的所有文件的文件標(biāo)識符。然而,在其他實施例中,使用部分Bloom過濾器, 其中只編碼了文件標(biāo)識符的子集。例如,頭1000個或頭500個文件標(biāo)識符。在特定實施例中,提供了帶有陣列長度1擬88比特的bloom過濾器,該過濾器被 安排成與數(shù)據(jù)包有效負(fù)載的大小相同。通過使用由Mitzenmacher (M. Mitzenmacher.壓縮 bloom過濾器.IEEE/ACM關(guān)于聯(lián)網(wǎng)的學(xué)報,10(5),2002)給出的啟發(fā)式法,使用12個散列函 數(shù),每部分Bloom過濾器地編碼1000個文件標(biāo)識符。這會產(chǎn)生0. 0巧4%的錯誤肯定概率。 然而,使用這些特定Bloom過濾器參數(shù)不是不可缺少的。現(xiàn)在將參考圖4、5和6描述用于確定要在兩個節(jié)點A和B之間傳輸?shù)倪m當(dāng)文件的 協(xié)商方案。圖4和5的過程更詳細(xì)地描述了在圖3的框305中的高層所描述的過程。假設(shè) 節(jié)點B是在其動態(tài)高速緩存中有較少文件的節(jié)點(雖然如上文所提及的,這不是必需的)。節(jié)點B從節(jié)點A接收廣告602。廣告包括如上文所提及的全局標(biāo)識符,并且任選地 包括關(guān)于A的動態(tài)高速緩存中的文件的數(shù)量的細(xì)節(jié)。通過使用此信息,B能夠確定它在其 動態(tài)高速緩存中具有較少的文件,以及在A與B之間需要傳輸至少一個文件。節(jié)點B還生成第一數(shù)據(jù)結(jié)構(gòu),并將其發(fā)送到節(jié)點A。此第一數(shù)據(jù)結(jié)構(gòu)由動態(tài)高速緩 存處指定的文件組的文件標(biāo)識符構(gòu)成(圖4的框400)。指定的文件組可以是動態(tài)高速緩存 中的文件的子集,或者也可以是所有那些文件。上文參考圖2描述了文件標(biāo)識符。節(jié)點B還生成第二數(shù)據(jù)結(jié)構(gòu),并將其發(fā)送到節(jié)點A。此第二數(shù)據(jù)結(jié)構(gòu)由相同的文件 的實例標(biāo)識符構(gòu)成(圖4的框401)。上文參考圖2描述了實例標(biāo)識符。 節(jié)點B創(chuàng)建第一和第二數(shù)據(jù)結(jié)構(gòu)并在消息603中將它們發(fā)送到節(jié)點A (參見圖6)。 在一個示例中,此消息是包括兩部分Bloom過濾器(都使用可用比特的一半)的全幀(或 數(shù)據(jù)包)。第一部分Bloom過濾器是從B的頭500個本地文件的文件標(biāo)識符生成的。第二 部分Bloom過濾器是從B的頭500個本地文件的實例標(biāo)識符生成的。
設(shè)備A從B接收第一數(shù)據(jù)結(jié)構(gòu)和第二數(shù)據(jù)結(jié)構(gòu),并繼續(xù)以進(jìn)行圖5的框501和502 所描述的檢查。參考圖5,節(jié)點A從節(jié)點B接收第一和第二數(shù)據(jù)結(jié)構(gòu)(框500)。對于其動 態(tài)高速緩存中的每一個文件,節(jié)點A檢查該文件的文件標(biāo)識符是否被包括在第一數(shù)據(jù)結(jié)構(gòu) 中(框501)。如果包括,則就第二數(shù)據(jù)結(jié)構(gòu)中是否沒有該文件的實例標(biāo)識符進(jìn)行檢查(框 502)。如果如此,則選擇該文件作為兩個節(jié)點共享的,但是帶有不同的版本文件(錯誤肯定 的情況除外)(框50 。在該情況下,向B發(fā)送包括所選文件的細(xì)節(jié)的數(shù)據(jù)結(jié)構(gòu)(框504)。然后,A通過發(fā)送由A中的所有文件的文件標(biāo)識符構(gòu)成的全幀大小的部分bloom過濾器(消 息604)來對B作出響應(yīng),文件標(biāo)識符被表示在從B接收到的第一數(shù)據(jù)結(jié)構(gòu)中,但是,認(rèn)為不 被表示在從B接收到的第二數(shù)據(jù)結(jié)構(gòu)中。全幀大小的部分Bloom過濾器是由A發(fā)送到B的。B從A接收全幀大小的部分Bloom過濾器,并比較B上存在的文件的高速緩存,以 確定那些文件中的哪些被表示在全幀大小的部分Bloom過濾器中。對于每一個這樣的文 件,B發(fā)送(60 包含B的文件版本以及A判定是向B推該文件還是從B拉該文件所依據(jù) 的其他文件信息的文件信息記錄(消息606)。接著發(fā)生批量內(nèi)容傳輸過程607,并且對于 下一已標(biāo)識的文件608重復(fù)該過程。再次參考圖4,節(jié)點B從節(jié)點A接收數(shù)據(jù)結(jié)構(gòu),該數(shù)據(jù)結(jié)構(gòu)包括組中兩個節(jié)點共享 但是帶有不同的版本的所有已標(biāo)識文件的細(xì)節(jié)(框40幻。對于每一個已標(biāo)識文件,節(jié)點B 將文件信息記錄發(fā)送到節(jié)點A (框40 ,并從A接收推或拉該文件的請求(框404)。然后, 進(jìn)入內(nèi)容傳輸過程,以傳輸文件(框40 ,并且對每一個已標(biāo)識文件重復(fù)此過程,如圖4所 示的??梢允褂萌魏魏线m的內(nèi)容傳輸過程。在圖6中概述了圖4和5的方法,圖6表示了節(jié)點A 600,以及B 601和在這些節(jié) 點之間發(fā)送的消息。箭頭的方向指示發(fā)送消息的方向,而頁面上箭頭的相對位置指示消息 在時間上的順序。可以對方法進(jìn)行各種修改。例如,部分Bloom過濾器可以由任何合適的預(yù)先指定 數(shù)目個隨機(jī)或以任何其他合適的方式選擇的本地文件構(gòu)成。在另一示例中,代替使用兩個 部分Bloom過濾器,可以使用單個Bloom過濾器來編碼第一和第二數(shù)據(jù)結(jié)構(gòu)兩者的數(shù)據(jù)。 即,第一和第二數(shù)據(jù)結(jié)構(gòu)可以是整體的。在特定示例中,動態(tài)高速緩存dd中的每一個文件i都具有文件名fnamei和16比 特版本Versioni以及與它相關(guān)聯(lián)的其所有者的公鑰pkit)通過使用SHA-I散列函數(shù)H,節(jié)點 為dd中的每一個文件i生成兩個唯一性160比特標(biāo)識符File Identifieri = H(concat (fnamei; Pki)) ( f 牛t示i = H(concat (
j, Pki)))以及 Instance Identifieri = H(concat (J^namei, pk" version》)(實例標(biāo)識符 i =H(concat (文件名 ^pki,版本,)))0為dd中的按文件標(biāo)識符排序的所有η個文件生成表示dd的全部內(nèi)容的單個 160 比特散列密鑰:Global Identifier = H (concat (InstanceIdentifier1, Instance Identifier^ …,Instance Identifier》)(全局標(biāo)識符=H(concat (實例標(biāo)識符!、實例 標(biāo)識符2、…實例標(biāo)識符 )))。在另一實施例中,可以使用散列鏈接生成全局標(biāo)識符。全局 標(biāo)識符是使用一致排序生成的,以使得帶有相同文件和版本的兩個節(jié)點能具有相同的全局 標(biāo)識符??梢允褂萌魏魏线m的排序,只要一致地使用即可。每一設(shè)備都在其周期性的廣告 中嵌入其全局標(biāo)識符。如此,任何設(shè)備都可以將其160比特全局標(biāo)識符與另一設(shè)備(剛才 聽到了其廣告)的全局標(biāo)識符進(jìn)行比較,并快速地確定這些設(shè)備是否具有相同或不同的內(nèi) 容文件。因為全局標(biāo)識符只占用20個字節(jié),因此,周期性的廣告保持很小。通信網(wǎng)絡(luò)中的每一個節(jié)點也可以在固定內(nèi)容高速緩存中保持固定的內(nèi)容文件。預(yù) 計固定內(nèi)容在所有節(jié)點上存在,且固定內(nèi)容的示例可以是操作系統(tǒng)文件。現(xiàn)在將參考圖7描述固定內(nèi)容發(fā)現(xiàn)的過程的示例。每一個節(jié)點都生成用于嵌入 在廣告中的信息,并如現(xiàn)在所描述的,廣播此廣告。節(jié)點將其固定文件分組為2k個組(框700)。例如,對于每一個固定文件,取文件標(biāo)識符的k比特前綴(如上文參考圖2所描述 的)。此文件標(biāo)識符可以是內(nèi)容提供商公鑰和文件的文本名稱的散列。將具有相同前綴的 所有文件都被放進(jìn)一個組中??梢赃x擇k的值,以使得每一個組平均具有m個文件,例如, m = 16,k = 4。這會產(chǎn)生2k個組,表示為而到&k。如此使用文件標(biāo)識符,以使得文件獨立 于它們的版本被分組。對于每一個組,由節(jié)點上的處理器自動地生成組散列(框701)。對于每一個文件, 通過取文件證書的散列來創(chuàng)建實例標(biāo)識符。然后,使用每一個組中的文件的實例標(biāo)識符值 對這些文件進(jìn)行排序,且通過散列鏈接,來生成組散列。即,遞歸地散列每一個實例標(biāo)識符, 例如,H(IdFile4, H(IdFile3, H(IdFile2, H(IdFilel))))。其中,H 表示散列函數(shù)。然后,使用節(jié)點處的處理器自動地創(chuàng)建Merkle樹(框702)。在R. Merkle的A digital signature based on a conventional encryption function (基于常規(guī)力口密函數(shù) 的數(shù)字簽名)(在Crypto' 87,1987中)中詳細(xì)描述了 Merkle樹。Merkle樹的每一行是 通過取來自前一行的對并將它們散列在一起來生成。組散列值是樹的葉子,并根據(jù)它們的k 比特前綴被排序。對于空組,使用空值令牌。Merkle樹的根是整個固定文件集的唯一性散 列,由所使用的k的值來參數(shù)化。任何節(jié)點都可以通過比較相同的k值的根散列來確定它 們的固定集是否相同。如果根散列不同,那么,節(jié)點具有不同的內(nèi)容。在信標(biāo)(框703)和 廣播(框704)中包括了根散列和k的值。如果一節(jié)點檢測到其根散列不同于另一節(jié)點的根散列,則它執(zhí)行遞歸過程,以確 定在兩個節(jié)點處的固定高速緩存中哪些文件不同。現(xiàn)在將參考圖8對此進(jìn)行描述。節(jié)點A 800廣播由節(jié)點B 801接收的廣告802。節(jié)點B 801處的處理器自動地檢 查廣告中的根散列是否不同于節(jié)點B的本地根散列(框803)。如果是,則節(jié)點B處的處理 器選擇節(jié)點B的Merkle樹的第j層,并在數(shù)據(jù)包804中將其發(fā)送到節(jié)點A。第j層是基于 被通信協(xié)議使用的數(shù)據(jù)包的有效負(fù)載大小來選擇的。例如,如此選擇Merkle樹的第j層, 以使得2、20 <有效負(fù)載大小。在節(jié)點A處,處理器自動地檢查805其本地Merkle樹的第 j層中的哪些散列不同于在數(shù)據(jù)包804中接收到的那些散列。對于那些不同的散列,節(jié)點A 使用數(shù)據(jù)包806將其本地Merkle樹的相關(guān)聯(lián)子樹層發(fā)送到節(jié)點B。然后,節(jié)點B檢查其本 地Merkle樹的該子樹層中的哪些散列不同于在數(shù)據(jù)包806中接收到的那些散列。它基于 那些不同的散列來選擇其本地Merkle樹的相關(guān)聯(lián)子樹層,并使用數(shù)據(jù)包808將該子樹層發(fā) 回到節(jié)點A。重復(fù)此過程,直到可以將可能不同的組的集合的全部散列放進(jìn)一個數(shù)據(jù)包中。 在某些實施例中,將兩個組放入一個數(shù)據(jù)包中,從而使所需的數(shù)據(jù)包的數(shù)量低一些,且這會 影響m的值的選擇。這提供了有效地允許一個節(jié)點利用較低開銷檢測不同的文件的非常有效的算法。 例如,在使用2304字節(jié)的有效負(fù)載大小的一實現(xiàn)中,可以將115個散列裝入單個數(shù)據(jù)包中。 在此情況下,當(dāng)m= 16時,組具有57個以上的文件的可能性較低。(當(dāng)m= 16時,單個組 具有56個條目或更多的概率是10_15。在此情況下,僅Merkle樹的一個層需要交換,以便發(fā) 現(xiàn)不同的文件,其中,固定集中的文件的數(shù)量少于大致3650個。如此,該過程能夠在幾個消 息中迅速而有效地標(biāo)識不同的文件??梢韵蚬潭ㄎ募咚倬彺嬷刑砑游募钠渲袆h除文件。添加文件會影響單個 組,并且該文件被映射到單個組??梢詫σ褎h除的文件保持永久性記錄。對文件進(jìn)行分組可以在添加或刪除一個或多個文件的情況下有效地確定需要哪些組。例如,這樣進(jìn)行分組, 以使得當(dāng)添加一個文件時,只影響單個組。然后,如果添加兩個文件,每一個文件被添加在 不同的組中,則可以有效地確定哪兩個組已被影響。在發(fā)現(xiàn)了第一不同的文件之后,不需要 重復(fù)內(nèi)容發(fā)現(xiàn)過程?!┦褂蒙衔乃枋龅姆椒z測到固定文件高速緩存中的不同的文件,就可以使 用任何合適的內(nèi)容傳輸過程來在兩個節(jié)點之間傳輸該文件。例如,可以使用IP上的TCP,或 任何其他合適的基于數(shù)據(jù)包的內(nèi)容傳輸過程。在某些實施例中,現(xiàn)在將參考圖9和10描述與此處所描述的方法一起使用的內(nèi)容 傳輸過程。此內(nèi)容傳輸過程利用每一個節(jié)點預(yù)先知道要傳輸?shù)奈募拇笮〉哪芰?。例如?在圖6的過程中,文件大小信息對于當(dāng)前具有該文件的節(jié)點是已知的,并該信息作為文件 信息記錄的一部分被發(fā)送到其他節(jié)點(圖6的消息60 。在圖8的過程中,將接收已標(biāo)識 文件的最新版本的節(jié)點要么從其他節(jié)點請求文件大小信息,要么向它自動地發(fā)送該信息。圖9是通信網(wǎng)絡(luò)中的源節(jié)點處的方法的框圖。源節(jié)點可以是圖1的通信節(jié)點中的 任一個,且它也可以作為目的地節(jié)點來操作。源節(jié)點具有訪問(框901)要傳輸?shù)侥康牡毓?jié)點的文件或其他內(nèi)容片段的輸入。 源節(jié)點包括任何合適的類型的處理器,該處理器被安排成將文件或其他內(nèi)容片段拆分為塊 (參見框90 ,其中,一個塊具有預(yù)先指定的大小。處理器為每一個塊創(chuàng)建具有一個比特的 發(fā)送矢量(參見框90 ,且此矢量被初始化,例如,以使得每個比特都具有零值。當(dāng)初始化了發(fā)送矢量時,該矢量中的所有比特都被視為被復(fù)位。然后,發(fā)生將塊發(fā) 送到目的地節(jié)點的過程(參見圖9的框904)。對于發(fā)送矢量中的任何復(fù)位的比特,處理器 被配置為將與該復(fù)位的比特相對應(yīng)的塊發(fā)送到目的地節(jié)點。對于±夬,重復(fù)此過程,且當(dāng)發(fā)送 矢量中的所有比特都被置位時結(jié)束(框90幻。在此過程中,如果從目的地節(jié)點接收到接收 矢量(框906),則使用該接收矢量代替發(fā)送矢量。在下文中參考圖10更詳細(xì)地描述了接 收矢量。當(dāng)發(fā)送塊時,它們可以構(gòu)成例如數(shù)據(jù)包,且一個或多個塊構(gòu)成一個數(shù)據(jù)包的有效負(fù) 載,并且數(shù)據(jù)包具有包括諸如源節(jié)點和目的地節(jié)點的細(xì)節(jié)之類的控制信息的頭部。圖10是目的地節(jié)點處的方法的框圖。目的地節(jié)點訪問關(guān)于要傳輸?shù)臄?shù)據(jù)塊的數(shù) 量的信息(圖10的框1001)。以任何合適的方式獲取此信息。例如,源節(jié)點和目的地節(jié)點之 間的連接可能已經(jīng)建立,且源節(jié)點可以將此信息提供給目的地節(jié)點。目的地節(jié)點包括處理 器,該處理器被安排成為要傳輸?shù)拿恳粋€塊創(chuàng)建具有一個比特的接收矢量(圖10的1002)。 初始化接收矢量,以便每一個比特都被視為被復(fù)位。如上文所提及的,源節(jié)點和目的地節(jié)點之間的連接已經(jīng)建立,且目的地節(jié)點針對 數(shù)據(jù)包監(jiān)視該連接。如果接收到塊,則目的地節(jié)點上的處理器被安排成置位接收矢量中的 相關(guān)聯(lián)比特,并監(jiān)視該矢量中的置位的比特的數(shù)量(圖10的框1003)。如果置位比特的數(shù)量已增大了閾值比例(圖10的框1006),那么,目的地節(jié)點將 其接收矢量發(fā)送給源節(jié)點(圖10的框1007)。閾值比例可以是50%或任何其他合適的閾 值。而且,處理器任選地被安排成如果在目的地節(jié)點上接收到重復(fù)的塊,則將接收矢量發(fā)送 到源節(jié)點(圖10的框1004和1007)。當(dāng)接收矢量中的所有比特都被置位時,過程結(jié)束(框 1005)。通過使用如此處所描述的接收矢量,需要發(fā)送的確認(rèn)數(shù)據(jù)包的數(shù)量是較低的。這里的確認(rèn)數(shù)據(jù)包是那些發(fā)送接收矢量的數(shù)據(jù)包。這就提高了效率并減輕對通信網(wǎng)絡(luò)資源的 壓力。例如,目的地節(jié)點不需要每η個數(shù)據(jù)包就發(fā)送接收矢量的副本。它可以基于接收到的 數(shù)據(jù)包的函數(shù)來發(fā)送其接收比特矢量的副本。例如,每當(dāng)目的地節(jié)點發(fā)送接收矢量時,它都 能夠記錄置位的比特的數(shù)量。當(dāng)置位比特的數(shù)量增大50% (或其他合適的閾值比例)時, 這會觸發(fā)對接收矢量的發(fā)送。而且,如果目的地節(jié)點獲得預(yù)定義的數(shù)量的重復(fù)的數(shù)據(jù)包,例 如,一個,則它會觸發(fā)對接收矢量的發(fā)送。以此方式,協(xié)議生成包含接收矢量信息的0 (Iogk) 個數(shù)據(jù)包(其中,k是傳輸文件所需的數(shù)據(jù)包的數(shù)量)。例如,要在帶有30%的丟失率的鏈 路上傳輸1MB文件,所發(fā)送的接收矢量數(shù)據(jù)包的數(shù)量少于完成傳輸所需的數(shù)據(jù)包的總數(shù)的 1%。此外,在目的地節(jié)點處接收到的重復(fù)的數(shù)據(jù)包的數(shù)量將接近于零。而且,如果文件傳 輸被中斷,且需要利用相同或者不同的通信網(wǎng)絡(luò)節(jié)點來恢復(fù),則目的地節(jié)點能夠提供接收 矢量,且傳輸過程從那一點開始。還要注意,如果源節(jié)點和目的地節(jié)點之間的連接具有高丟失率,并且這會導(dǎo)致包 含接收矢量的數(shù)據(jù)包被丟棄,那么,恢復(fù)是快速的。這是因為包含接收矢量的另一數(shù)據(jù)包將 立即被發(fā)送。結(jié)果,該過程是穩(wěn)健的。接收矢量通常是能夠放入單個數(shù)據(jù)包中的大小。在一個非常大的文件要從源節(jié)點 傳輸?shù)侥康牡毓?jié)點的情況下,不可能將接收矢量放入單個數(shù)據(jù)包中。在此情況下,源節(jié)點可 以將文件分解或拆分為一個或多個部分,并使用此處所描述的過程來分開地發(fā)送這些部分 中的每一部分。一旦接收到所有部分,目的地節(jié)點就可以重構(gòu)原始較大的文件。在現(xiàn)在將參考圖5所描述的另一實施例中,源節(jié)點和目的地節(jié)點是具有用于連接 彼此的無線網(wǎng)絡(luò)接口控制器的移動通信設(shè)備。節(jié)點具有有限的計算能力。源節(jié)點和目的地 節(jié)點可以使用基于IEEE 802. 11系列標(biāo)準(zhǔn)中所定義的那些通信協(xié)議的通信協(xié)議以自組織 (ad hoc)模式彼此直接接口(如圖5中的箭頭503所表示的)。在此實施例中,源節(jié)點和 目的地節(jié)點之間的通信鏈路是短暫的,并是有損耗的。例如,源節(jié)點和目的地節(jié)點與行駛中 的汽車500中的衛(wèi)星導(dǎo)航設(shè)備501集成在一起。例如,在此實施例中,節(jié)點包括帶有集成的無線網(wǎng)絡(luò)接口控制器的衛(wèi)星導(dǎo)航設(shè)備。 節(jié)點被安排成使用如上文所描述的圖2到6的方法來執(zhí)行每一個節(jié)點處的動態(tài)高速緩存中 的文件的內(nèi)容發(fā)現(xiàn)。節(jié)點被安排成使用諸如IP上的TCP之類的任何合適的協(xié)議或使用上 文參考圖9和10所描述的過程來執(zhí)行內(nèi)容傳輸。在使用上文參考圖9和10所描述的過程 的情況下,不需要使用IP。替代地,可以使用結(jié)合到所有數(shù)據(jù)包中的頭部里的節(jié)點的MAC地 址來標(biāo)識節(jié)點。以此方式,不需要檢測和管理重復(fù)的IP地址或使用地址解析協(xié)議(ARP)。 而且,還可以利用無線網(wǎng)絡(luò)接口控制器可以支持的全幀大小。這會減少每個數(shù)據(jù)包的開銷, 并且使得能實現(xiàn)更高的實際吞吐量(goodput)。在評估中,在包括兩輛汽車的小型車輛試驗臺上進(jìn)行許多實驗。對于所有實驗,在 每一輛汽車中安裝了帶有Netgear (商標(biāo))WAG511 PCMCIA卡(該卡使用Atheros (商標(biāo)) ar5212芯片集)的運行Windows XP SP2的膝上型計算機(jī)。計算802. 11天線的兩種可能 的配置在基本的情況下,在后置物架上放置了膝上型計算機(jī),與將安裝便攜式衛(wèi)星導(dǎo)航設(shè) 備的高度一致。在第二種情況下,通過在每一小汽車的頂棚安裝膝上型計算機(jī)來將天線放 置在小汽車外部。為了最小化來自部署在家庭的其他無線網(wǎng)絡(luò)的干擾,使用在5. 4GHz頻帶 上操作的802. Ila0另外,兩個膝上型計算機(jī)都配備有GPS接收器,以記錄它們的相應(yīng)的位置和速度。在實驗中,每臺膝上型計算機(jī)都被配置成使用經(jīng)修改以確保快速的鏈路層發(fā)現(xiàn) 的Atheros (商標(biāo))Reference (參考)驅(qū)動程序。對于每一個實驗,兩臺膝上型計算機(jī)在它 們的dd中都具有相同50個文件條目。其中一臺膝上型計算機(jī)具有每一文件的稍晚的版本, 且每一文件的大小都是10MB。當(dāng)兩個設(shè)備形成連接時,它們使用前面所描述的內(nèi)容發(fā)現(xiàn)算 法來確定要傳輸?shù)奈募?。為了傳輸文件,考慮了兩個配置TCP和Broadside(側(cè)面)。TCP 在此配置中,使用了標(biāo)準(zhǔn)的未經(jīng)修改的Windows XP SP2 TCP/IP堆棧,且使用配置有1500 字節(jié)的標(biāo)準(zhǔn)MTU的TCP來傳輸文件。為了動態(tài)地消除將IP地址指派到膝上型計算機(jī)的開 銷,我們向每一臺膝上型計算機(jī)靜態(tài)地配置了非沖突的IP地址。Broadside 在此配置中, TCP/IP堆棧被禁用,使用參考圖9和10所描述的數(shù)據(jù)傳輸協(xié)議。這意味著,不需要向每一 臺膝上型計算機(jī)指派IP地址,并且數(shù)據(jù)傳輸被配置成使用2304字節(jié)的最大幀大小。實驗 是在英國劍橋的街道進(jìn)行的。為了增大結(jié)果中的置信度,所有實驗都是在同一天進(jìn)行的,每 一個實驗緊接著進(jìn)行5次,從而試圖確保所有實驗都是以相同車輛速度進(jìn)行的。為了取得 可重復(fù)性,在我們的實驗中只使用了一輛行駛的小汽車,而第二輛汽車停在路邊。行駛的小 汽車全程作為數(shù)據(jù)源,向靜止的小汽車傳輸。對于每一個實驗,進(jìn)行了 5遍。每一遍的持續(xù) 時間都不同,因此對于每一遍,通過膝上型計算機(jī)之間的連通性的持續(xù)期來規(guī)范化已實現(xiàn) 的實際吞吐量,以提供以每秒字節(jié)數(shù)計的實際吞吐量?;诖藢嶋H吞吐量度量,對該5遍進(jìn) 行排序,且選擇達(dá)成了中值的那一遍,以在隨后進(jìn)行交叉比較。位置接近于劍橋市中心,但 是,由于地方交通限制通行方案,只有適量的過境交通。該地區(qū)具有很密集的典型的十九世 紀(jì)歐洲城鎮(zhèn)中心開發(fā)的建筑物,并有典型的狹窄馬路,馬路兩側(cè)排列著兩層帶陽臺的房屋。 沿著馬路的一側(cè)或兩側(cè)停滿了一排汽車,沒有足夠的空間讓兩輛汽車在相反的方向通過, 因此實施了單行規(guī)則,并限速。這就在最接近點將我們的小汽車的速度限制在10和15英 里/小時之間。結(jié)果表明,TCP實現(xiàn)差不多1兆字節(jié)/秒的合理的實際吞吐量,對于內(nèi)部和 外部天線都是如此。Broadside使用內(nèi)部天線比TCP好1. 61倍,而在使用外部天線的情況 下,則好1. 85倍。在下表中示出了連接時間和實際吞吐量的字節(jié)總數(shù)。
權(quán)利要求
1.一種在具有存儲了需要與通信網(wǎng)絡(luò)(100)中的至少一個其他節(jié)點(101)同步的多個 文件的存儲器(1101)的通信網(wǎng)絡(luò)節(jié)點(101)處的方法,包括自動地生成包括第一數(shù)據(jù)結(jié)構(gòu)的數(shù)據(jù)包(603)并將其發(fā)送G00)到其他節(jié)點,該第一 數(shù)據(jù)結(jié)構(gòu)是使用所述多個文件的文件名和公鑰來形成的;自動地生成使用所述多個文件的文件名、公鑰和版本號形成的第二數(shù)據(jù)結(jié)構(gòu),并將其 發(fā)送(401)到其他節(jié)點;從所述其他節(jié)點接收(40 包括具有所述多個文件中存在于在該其他節(jié)點處的存儲 器中的帶有不同的版本號的任何已標(biāo)識文件的細(xì)節(jié)的數(shù)據(jù)結(jié)構(gòu)的數(shù)據(jù)包。
2.如權(quán)利要求1所述的方法,其特征在于,所述第一和第二數(shù)據(jù)結(jié)構(gòu)兩者都在所述數(shù) 據(jù)包中發(fā)送。
3.如權(quán)利要求1或2所述的方法,其特征在于,所述數(shù)據(jù)結(jié)構(gòu)基于Bloom過濾器。
4.如任一項在前權(quán)利要求所述的方法,其特征在于,所述第一和第二數(shù)據(jù)結(jié)構(gòu)是使用 僅關(guān)于所述多個文件的一部分的信息來形成的。
5.如任一項在前權(quán)利要求所述的方法,其特征在于,還包括執(zhí)行內(nèi)容傳送過程(607) 以使已標(biāo)識文件中的每一個與其他節(jié)點同步。
6.根據(jù)任一項在前權(quán)利要求所述的方法,其特征在于,包括從其他節(jié)點接收廣告 (300),所述廣告是包括全局標(biāo)識符的數(shù)據(jù)包,以及基于所述全局標(biāo)識符與所述節(jié)點的全局 標(biāo)識符的比較判斷是否進(jìn)行(301)對所述數(shù)據(jù)結(jié)構(gòu)的發(fā)送。
7.如權(quán)利要求6所述的方法,其特征在于,每個全局標(biāo)識符是使用所述存儲器中的每 個文件的文件標(biāo)識符和實例標(biāo)識符來形成的,所述文件標(biāo)識符是使用每個文件的文件名和 公鑰形成的,而所述實例標(biāo)識符是使用每個文件的文件名、公鑰和版本號形成的。
8.一種在具有存儲了需要與通信網(wǎng)絡(luò)中的至少一個其他節(jié)點同步的多個文件的存儲 器(1101)的通信網(wǎng)絡(luò)節(jié)點(101)處的方法,包括將所述文件存儲在所述節(jié)點處的多個組(700)中;使用所述節(jié)點處的處理器(1106)來為每個組生成組散列;使用所述處理器來利用所述組散列值來創(chuàng)建基于樹的數(shù)據(jù)結(jié)構(gòu)并將其存儲在所述節(jié) 點處的存儲器中;創(chuàng)建(703)廣告,所述廣告是包括關(guān)于組的數(shù)量的信息和關(guān)于所述數(shù)據(jù)結(jié)構(gòu)的信息的 數(shù)據(jù)包;在所述通信網(wǎng)絡(luò)上廣播(704)所述廣告。
9.如權(quán)利要求8所述的方法,其特征在于,所述多個文件被存儲在每個通信網(wǎng)絡(luò)節(jié)點 處的存儲器中,且那些文件中的至少一些具有在所述節(jié)點之間不同的版本。
10.如權(quán)利要求8或9所述的方法,其特征在于,所述文件是獨立于它們的版本來分組的。
11.如權(quán)利要求8到10中的任一項所述的方法,其特征在于,所述組散列是通過遞歸地 散列每個文件的標(biāo)識符來形成的,其中每個文件標(biāo)識符是使用該文件的所述文件名、公鑰 和版本號來形成的。
12.—種移動通信網(wǎng)絡(luò)節(jié)點(101),包括:存儲需要與通信網(wǎng)絡(luò)中的至少一個其他移動節(jié)點同步的多個文件的存儲器(1101);被布置成與所述通信網(wǎng)絡(luò)中的至少一個其他節(jié)點建立無線通信鏈路的無線接口 (1105),該其他節(jié)點還具有存儲需要同步的多個文件的存儲器;被布置成生成包括數(shù)據(jù)結(jié)構(gòu)的數(shù)據(jù)包并通過所述無線通信鏈路將那些數(shù)據(jù)包發(fā)送到 其他節(jié)點的處理器;以及,由此所述處理器被布置成生成所述數(shù)據(jù)結(jié)構(gòu),以使得在少于四十 秒的時間內(nèi)建立無線通信鏈路的情況下,該時間期間的同步量大約是每秒鐘1兆字節(jié)。
13.如權(quán)利要求12所述的節(jié)點,其特征在于,所述處理器被布置成生成包括第一數(shù)據(jù) 結(jié)構(gòu)的數(shù)據(jù)包并將其發(fā)送到其他節(jié)點,該第一數(shù)據(jù)結(jié)構(gòu)是使用所述多個文件的文件名和公 鑰來形成的。
14.如權(quán)利要求13所述的節(jié)點,其特征在于,所述處理器還被布置成自動地生成使用 所述多個文件的文件名、公鑰和版本號形成的第二數(shù)據(jù)結(jié)構(gòu),并將其發(fā)送到其他節(jié)點。
15.如權(quán)利要求14所述的節(jié)點,其特征在于,所述處理器被布置成在單個數(shù)據(jù)包中將 所述第一和第二數(shù)據(jù)結(jié)構(gòu)發(fā)送到其他節(jié)點。
全文摘要
常常要求移動通信節(jié)點之間的內(nèi)容發(fā)現(xiàn)和內(nèi)容傳輸,例如,以同步安裝在車輛上的衛(wèi)星導(dǎo)航設(shè)備、步行者手持式個人數(shù)字助理及其他移動通信節(jié)點的地圖,交通熱點信息。在一實施例中,使用以特定方式設(shè)計的并使用單個數(shù)據(jù)包發(fā)送的數(shù)據(jù)結(jié)構(gòu)的內(nèi)容發(fā)現(xiàn)過程使得節(jié)點能標(biāo)識要傳輸?shù)奈募瑫r使開銷保持得較低。在一實施例中,使用第一和第二數(shù)據(jù)結(jié)構(gòu),每個數(shù)據(jù)結(jié)構(gòu)都是由關(guān)于要同步的文件的子集的稍微不同的信息構(gòu)成的。在另一實施例中,使用單個基于樹的數(shù)據(jù)結(jié)構(gòu)。還描述了在兩個移動通信節(jié)點之間傳輸數(shù)據(jù)的過程。
文檔編號G08G1/096GK102113352SQ200980131158
公開日2011年6月29日 申請日期2009年7月20日 優(yōu)先權(quán)日2008年7月31日
發(fā)明者A·羅姆斯特姆, G·F·奧謝, T·C·策恩 申請人:微軟公司
網(wǎng)友詢問留言 已有0條留言
  • 還沒有人留言評論。精彩留言會獲得點贊!
1
蒲江县| 子洲县| 都昌县| 上蔡县| 宁陵县| 金乡县| 本溪市| 灵石县| 巨鹿县| 八宿县| 铜鼓县| 桦甸市| 砀山县| 肥乡县| 罗甸县| 盖州市| 娄烦县| 石屏县| 中江县| 镇沅| 合阳县| 兴安盟| 湘潭县| 娄底市| 永川市| 日照市| 罗平县| 嫩江县| 沧源| 英山县| 斗六市| 方城县| 房产| 洛隆县| 泸州市| 新营市| 衡阳市| 锡林浩特市| 凌源市| 祁阳县| 武强县|