專利名稱:跨越公共網(wǎng)絡(luò)以連接任意主機(jī)的虛擬專用lan的制作方法
跨越公共網(wǎng)絡(luò)以連接任意主機(jī)的虛擬專用LAN
祖旦 冃足
當(dāng)今,"家庭"和某些"小公司"網(wǎng)絡(luò)的概念被限于其上連接PC的物 理網(wǎng)絡(luò)。對(duì)等系統(tǒng)(P2P)已經(jīng)得到廣泛流行,并作為因特網(wǎng)流量的主要來 源中的一個(gè)而顯現(xiàn)。P2P網(wǎng)絡(luò)使客戶機(jī)器能夠直接彼此通信而無需托管基 礎(chǔ)結(jié)構(gòu)或?qū)S梅?wù)器。P2P連網(wǎng)提供至少部分地與容易設(shè)置、高效數(shù)據(jù)傳 輸、和網(wǎng)絡(luò)回復(fù)力相關(guān)的若干優(yōu)點(diǎn)。盡管最初出于文件共享的目的來構(gòu)想 和普及,但P2P現(xiàn)在已經(jīng)顯現(xiàn)為用于在因特網(wǎng)中構(gòu)造有回復(fù)力的大規(guī)模分 布式服務(wù)和應(yīng)用的一般范例。
按照慣例,某些操作系統(tǒng)提供使主機(jī)能夠加入名為P2P"覆蓋"網(wǎng)絡(luò) 的專用網(wǎng)的網(wǎng)絡(luò)解決方案。各節(jié)點(diǎn)可以通過名稱來標(biāo)識(shí)覆蓋網(wǎng)絡(luò),并自動(dòng) 地定位覆蓋內(nèi)的其它活動(dòng)的參與者。在這些覆蓋網(wǎng)絡(luò)中,活動(dòng)節(jié)點(diǎn)可以創(chuàng) 建并自組織通信路徑,從而啟用有回復(fù)力的通信和低等待時(shí)間的數(shù)據(jù)傳輸。 例如,覆蓋網(wǎng)絡(luò)可以提供包括消息收發(fā)和數(shù)據(jù)庫復(fù)制在內(nèi)的各種服務(wù)以供 在活動(dòng)節(jié)點(diǎn)之間通信。
不幸的是,常規(guī)P2P覆蓋網(wǎng)絡(luò)概念具有若干局限。該網(wǎng)絡(luò)只可用于特 別地對(duì)覆蓋網(wǎng)絡(luò)API編程的應(yīng)用程序(意味著該覆蓋不能用于一般網(wǎng)絡(luò)通 信)。另外,多個(gè)應(yīng)用程序共享同一覆蓋網(wǎng)絡(luò)是困難的,并且用戶沒有配 置和管理覆蓋網(wǎng)絡(luò)的直接標(biāo)準(zhǔn)方式。
無縫虛擬連網(wǎng)是普遍確立的概念,其普遍使用的兩個(gè)示例包括虛擬專 用網(wǎng)(VPN)和虛擬局域網(wǎng)(VLAN)。用戶配置并啟動(dòng)VPN (通過IPSec、 PPTP、或L2TP/IPSec等),VPN通過公共網(wǎng)絡(luò)(例如因特網(wǎng))或某一其 它物理介質(zhì)建立點(diǎn)對(duì)點(diǎn)(客戶機(jī)-服務(wù)器)連接。VPN被展示為虛擬網(wǎng)絡(luò)接 口,該虛擬網(wǎng)絡(luò)接口有效地隱藏點(diǎn)對(duì)點(diǎn)"覆蓋"連接,并且相反,展示VPN 客戶機(jī)、VPN服務(wù)器和VPN服務(wù)器所展示的網(wǎng)絡(luò)之間的無縫IP可路由性。 VLAN示出無縫虛擬連網(wǎng)的另一示例。在VLAN中,網(wǎng)絡(luò)交換機(jī)通過對(duì)以 太網(wǎng)幀進(jìn)行特別標(biāo)記(例如IEEE 802.1q)來將物理鏈路的集合聚集到邏輯子網(wǎng)中。VLAN上的主機(jī)形成單個(gè)廣播域,其中網(wǎng)絡(luò)交換機(jī)負(fù)責(zé)視需要轉(zhuǎn)
發(fā)分組來為客戶機(jī)主機(jī)創(chuàng)建虛擬子網(wǎng)語義。然而,這些和其它常規(guī)網(wǎng)絡(luò)部 分地不能在專用和公共網(wǎng)絡(luò)上的對(duì)等節(jié)點(diǎn)之間提供高效且無縫的連接。
概述
以下提出了簡化概述以便提供對(duì)在此描述的某些新穎實(shí)施例的基本理 解。該概述不是詳盡的概覽,它不旨在標(biāo)識(shí)關(guān)鍵/重要的元素,也不旨在描 繪其范圍。其唯一的目的是以簡化的形式來介紹一些概念,作為稍后提出 的更為詳細(xì)的描述的序言。
所公開的體系結(jié)構(gòu)基于覆蓋網(wǎng)絡(luò)技術(shù)提供下文被稱為因特網(wǎng)虛擬LAN
(IVLAN)的無服務(wù)器對(duì)等虛擬專用網(wǎng)。IVLAN允許創(chuàng)建具有標(biāo)準(zhǔn)局域網(wǎng)
屬性的虛擬IP網(wǎng)絡(luò)而不需要中央服務(wù)器。該技術(shù)允許通常只在單個(gè)物理網(wǎng)
絡(luò)中運(yùn)行的應(yīng)用程序?qū)嶋H上以完全分布式的方式在諸如因特網(wǎng)等網(wǎng)絡(luò)上使
用。在不存在網(wǎng)絡(luò)基礎(chǔ)設(shè)施的情況下,該系統(tǒng)還可以使IP應(yīng)用在通過多跳
自組織通信鏈路(例如Wi-Fi、藍(lán)牙等)通信的設(shè)備上操作。
在一個(gè)實(shí)施例中,該體系結(jié)構(gòu)在允許形成網(wǎng)絡(luò)圖或覆蓋網(wǎng)絡(luò)的現(xiàn)有 Windows P2P SDK (軟件開發(fā)工具包)的上下文中描述。為啟用IVLAN
場景,可以用允許將消息路由到參與該覆蓋網(wǎng)絡(luò)的任何節(jié)點(diǎn)的路由協(xié)議來 擴(kuò)展Windows P2P SDK構(gòu)圖組件。在該覆蓋之上,構(gòu)建基于TAP(或虛
擬網(wǎng)絡(luò)接口)的虛擬IP層來提供局域網(wǎng)的假象。
該虛擬網(wǎng)絡(luò)具有標(biāo)準(zhǔn)局域網(wǎng)的所有特征并支持IPv4和IPv6單播、多 播和廣播分組。因此,該體系結(jié)構(gòu)允許通常限于局域網(wǎng)的應(yīng)用程序在因特 網(wǎng)上運(yùn)行而無需任何修改。
為實(shí)現(xiàn)上述及相關(guān)目的,本文結(jié)合下面的描述和附圖描述某些說明性 方面。然而,這些方面僅指示了其中可利用此處公開的原理的各種方法中 的少數(shù)幾種,且旨在包括所有這些方面及其等效方面。結(jié)合附圖閱讀下面 的詳細(xì)描述,則其它優(yōu)點(diǎn)和新穎特征將變得顯而易見。
附圖簡述
圖1示出用于將專用網(wǎng)接入擴(kuò)展到公共域的計(jì)算機(jī)實(shí)現(xiàn)的連網(wǎng)系統(tǒng)。
圖2示出所公開的IVLAN能力的邏輯體系結(jié)構(gòu)。 圖3示出用于客戶機(jī)的IVLAN體系結(jié)構(gòu)的更詳細(xì)的圖。 圖4示出兩個(gè)IVLAN節(jié)點(diǎn)之間的示例性通信。 圖5示出異構(gòu)網(wǎng)絡(luò)環(huán)境中的VPN。 圖6示出在因特網(wǎng)上采用所公開的IVLAN的系統(tǒng)。 圖7示出在IVLAN圖上采用構(gòu)建在IVLAN內(nèi)部的本地DNS解析器組 件來進(jìn)行名稱解析的系統(tǒng)。
圖8示出用于專用網(wǎng)絡(luò)設(shè)備的VLAN接入的系統(tǒng)的替換實(shí)現(xiàn)。 圖9示出經(jīng)由用戶級(jí)中間層的替換實(shí)現(xiàn)。 圖IO示出采用內(nèi)核級(jí)中間層的替換實(shí)現(xiàn)。
圖11示出其中內(nèi)核級(jí)中間層將從TCP/IP層接收到的關(guān)于虛擬IP網(wǎng)絡(luò) 的所有IP分組傳送到用戶級(jí)應(yīng)用程序的替換方法。
圖12示出采用具有內(nèi)置P2P組件的內(nèi)核級(jí)虛擬NIC接口驅(qū)動(dòng)程序的
替換方法。
圖13示出用于P2P連網(wǎng)體系結(jié)構(gòu)的組件的一個(gè)示例性系統(tǒng)。 圖14示出對(duì)設(shè)備進(jìn)行連網(wǎng)的方法。 圖15示出實(shí)現(xiàn)專用VLAN的方法。
圖16示出在IVLAN體系結(jié)構(gòu)中接收和發(fā)送IP分組的方法。 圖17示出在IVLAN體系結(jié)構(gòu)中接收和處理IP分組的方法。 圖18示出在圖中洪泛(flooding)分組的方法。
圖19示出了可用于執(zhí)行所公開的IVLAN體系結(jié)構(gòu)的計(jì)算系統(tǒng)的框圖。
詳細(xì)描述
所公開的體系結(jié)構(gòu)組合了對(duì)等(P2P)覆蓋網(wǎng)絡(luò)、虛擬專用網(wǎng)(VPN) 和虛擬局域網(wǎng)(VLAN)的技術(shù),以形成將在本說明書全文中被稱為因特網(wǎng) 虛擬LAN (IVLAN)的新穎實(shí)體。雖然使用了術(shù)語"因特網(wǎng)",但應(yīng)當(dāng)理 解,所公開的體系結(jié)構(gòu)不限于因特網(wǎng),而也可應(yīng)用于任何公共網(wǎng)絡(luò)。IVLAN 是包括通過因特網(wǎng)連接的任意主機(jī)的專用虛擬網(wǎng)絡(luò)。在IVLAN中, 一組節(jié)點(diǎn)形成覆蓋網(wǎng)絡(luò)。然而,該覆蓋網(wǎng)絡(luò)可具有以下三個(gè)屬性中的一個(gè)或多個(gè)。 類似于VPN,該覆蓋網(wǎng)絡(luò)支持IP路由。因此,發(fā)送到該覆蓋網(wǎng)絡(luò)的其它成 員(或節(jié)點(diǎn))的分組通過覆蓋自身來路由(逐跳地)。然而, 一般而言,
覆蓋網(wǎng)絡(luò)支持某種形式的路由,并且不只限于IP路由。類似于VLAN和 VPN兩者,IVLAN被展示為應(yīng)用程序可以使用標(biāo)準(zhǔn)Winsock調(diào)用來訪問的 網(wǎng)絡(luò)接口 (出于本討論的目的,在覆蓋網(wǎng)絡(luò)的上下文中每一主機(jī)被分配一 專用IPv4禾卩/或IPv6地址)。類似于VLAN, IVLAN支持廣播/多播語義。 換言之,在覆蓋內(nèi)分配的專用地址(例如IPv6)共享共同的網(wǎng)絡(luò)地址前綴。 當(dāng)在IVLAN上傳送子網(wǎng)廣播時(shí),分組被轉(zhuǎn)發(fā)到參與底層覆蓋的所有主機(jī)。
IVLAN中的成員關(guān)系可以在每一連接的基礎(chǔ)上來認(rèn)證,因此IVLAN 是專用的。然而,每一主機(jī)不必先驗(yàn)地知道每一其它主機(jī)的身份。相反, 對(duì)每一主機(jī)而言,僅僅確認(rèn)其對(duì)等體是IVLAN的授權(quán)成員(并且因此是可 信成員)就已足夠。作為類推,IVLAN將蜂窩網(wǎng)絡(luò)中找到的"直接連接" 或多連接或路由連接的語義等效物帶入因特網(wǎng)。
現(xiàn)在參考附圖,附圖中相同的附圖標(biāo)記用于指代在全文中相同的元素。 在以下描述中,為解釋起見,描繪了眾多具體細(xì)節(jié)以提供對(duì)本發(fā)明的全面 理解。然而,顯然,這些新穎實(shí)施例可以在沒有這些具體細(xì)節(jié)的情況下實(shí) 現(xiàn)。在其它情況下,以框圖形式示出了公知的結(jié)構(gòu)和設(shè)備以便于描述它們。
最初參考附圖,圖1示出用于將專用網(wǎng)接入擴(kuò)展到公共域的計(jì)算機(jī)實(shí) 現(xiàn)的連網(wǎng)系統(tǒng)100。系統(tǒng)100包括客戶機(jī)104的管理組件102,用于創(chuàng)建和 管理覆蓋用于客戶機(jī)104和其它任意節(jié)點(diǎn)110之間的P2P通信的虛擬網(wǎng)絡(luò) 108 (例如虛擬專用網(wǎng)(VPN))的對(duì)等(P2P)圖106。換言之,客戶機(jī) 104可創(chuàng)建其它VPN節(jié)點(diǎn)112可作為對(duì)等設(shè)備加入其中的圖106。
客戶機(jī)104還可包括用于將P2P圖106的任意P2P節(jié)點(diǎn)110展示給公 共網(wǎng)絡(luò)118上所設(shè)置的公共節(jié)點(diǎn)116的接口組件114。
其它VPN節(jié)點(diǎn)112也可包括管理組件102和接口組件114來支持作為 其它P2P節(jié)點(diǎn)110的一部分加入P2P圖106并根據(jù)對(duì)等技術(shù)來不僅在其它 P2P節(jié)點(diǎn)和客戶機(jī)104之間而且與公共節(jié)點(diǎn)116進(jìn)行通信。
接口組件114將P2P圖106作為虛擬接口來展示給公共節(jié)點(diǎn)116。管
7理組件102在物理接口 IP地址上創(chuàng)建,其中該IP地址是IPv4和/或IPv6 地址。如此處所描述的,接口組件114包括由虛擬網(wǎng)絡(luò)接口卡(VNIC)驅(qū) 動(dòng)程序所控制的VNIC,其中VNIC驅(qū)動(dòng)程序展示用于在VNIC和管理組件 102之間傳遞IP分組以便路由并傳輸?shù)絇2P圖106的任意節(jié)點(diǎn)的小型端口 驅(qū)動(dòng)程序和文件流接口。管理組件102包括用于啟用在P2P圖106上的多 跳消息路由的路由協(xié)議。管理組件102包括用于控制和配置VNIC驅(qū)動(dòng)程 序并代表VNIC傳遞IP分組的用戶級(jí)應(yīng)用程序。管理組件102的其它方面 方便了多播通信或廣播通信中的至少一個(gè),以及對(duì)防火墻系統(tǒng)或網(wǎng)絡(luò)地址 轉(zhuǎn)換系統(tǒng)中的至少一個(gè)的穿越。
圖2示出所公開的IVLAN能力的邏輯體系結(jié)構(gòu)200。體系結(jié)構(gòu)200包 括用于處理虛擬TCP/IP的虛擬IP層202,其在用于處理P2P通信的P2P 層204之上。虛擬層202和P2P層204在真實(shí)IP層206和物理接口 208(例 如NIC)之上提供。
圖3示出用于客戶機(jī)的IVLAN體系結(jié)構(gòu)300的更詳細(xì)的圖。體系結(jié)構(gòu) 300包括VNIC 302和用戶級(jí)IVLAN應(yīng)用程序304。 VNIC 302包括展示標(biāo) 準(zhǔn)NDIS(網(wǎng)絡(luò)驅(qū)動(dòng)器接口規(guī)范,例如5.1版本)小型端口驅(qū)動(dòng)程序接口 308 和文件流接口 310的VNIC驅(qū)動(dòng)程序306 (也被稱為IVLAN驅(qū)動(dòng)程序)。 通過NDIS接口, TCP/IP協(xié)議棧(或?qū)?312與IVLAN驅(qū)動(dòng)程序306交換 分組,使得現(xiàn)有應(yīng)用程序314能夠在IVLAN上運(yùn)行并能夠與其它P2P圖節(jié) 點(diǎn)通信或通過物理NIC316與公共節(jié)點(diǎn)通信。通過文件流接口 310, IVLAN 驅(qū)動(dòng)程序306將這些IP分組傳遞到IVLAN應(yīng)用程序以通過P2P圖路由和 傳輸。
IVLAN用戶應(yīng)用程序304控制并配置VNIC驅(qū)動(dòng)程序308,并代表
VNIC 302發(fā)送和接收IP分組。在一個(gè)實(shí)施例中,IVLAN應(yīng)用程序304使 用Windows P2P SDK (軟件開發(fā)工具包)來形成并維護(hù)連接IVLAN的所
有節(jié)點(diǎn)的覆蓋網(wǎng)絡(luò)(或圖)。如以下所述,Windows P2P SDK可支持通過 圖鏈路、用于參與節(jié)點(diǎn)之間的直接通信的點(diǎn)對(duì)點(diǎn)TCP連接、和圖節(jié)點(diǎn)之間 的復(fù)制數(shù)據(jù)庫來進(jìn)行消息洪泛。IVLAN用戶應(yīng)用程序304通過引入啟用在 P2P圖上的多跳消息路由的路由協(xié)議來擴(kuò)展該行為。在一個(gè)實(shí)現(xiàn)中,采用自組織(ad hoc)按需距離向量路由協(xié)議(ADOV),因?yàn)樵搮f(xié)議最小化控 制通信開銷并最大化性能。AODV的按需本性允許對(duì)圖情況中的改變進(jìn)行 快速反應(yīng)。另外,該協(xié)議總是尋找在兩個(gè)節(jié)點(diǎn)之間提供最小等待時(shí)間的路 由。
在IVLAN應(yīng)用程序304開始時(shí),其啟用VNIC驅(qū)動(dòng)程序接口 308并向 VNIC 302分配IPv4和IPv6地址。因此,從TCP/IP棧312到達(dá)并且以VNIC 接口 308為目標(biāo)的每一以太網(wǎng)分組都被VNIC驅(qū)動(dòng)程序306捕獲,并例如 使用CreateFile()(創(chuàng)建文件)、ReadFile()(讀文件)、和WriteFile()(寫 文件)API來通過文件流接口 310被轉(zhuǎn)發(fā)到IVLAN用戶應(yīng)用程序304。文 件流接口 310接口允許IVLAN用戶應(yīng)用程序304通過文件系統(tǒng)中所展示的
文件名來與內(nèi)核內(nèi)設(shè)備驅(qū)動(dòng)程序直接通信。
以太網(wǎng)分組隨后被封裝在內(nèi)部P2P消息中并被傳遞到P2P圖以路由到 指定目的地(經(jīng)由物理NIC 316上的TCP/IP連接)。只有IP分組被路由 到圖中,而非IP以太網(wǎng)分組(例如ARP地址解析協(xié)議、IPv6鄰居請求) 在本地處理或簡單地丟棄。
在目的地節(jié)點(diǎn)上,IVLAN用戶應(yīng)用程序通過圖中的鄰居節(jié)點(diǎn)來接收該 通信。目的地從接收到的P2P消息中提取以太網(wǎng)分組并將這些分組傳遞到 相關(guān)聯(lián)的VNIC。 VNIC將以太網(wǎng)分組轉(zhuǎn)發(fā)到TCP/IP棧,如同這些分組是 從物理網(wǎng)絡(luò)控制器316到達(dá)的一樣。
圖4示出兩個(gè)IVLAN節(jié)點(diǎn)之間的示例性通信。源節(jié)點(diǎn)的源傳統(tǒng)應(yīng)用程 序(表示為傳統(tǒng)應(yīng)用程序2)向目的地節(jié)點(diǎn)的目的地應(yīng)用程序發(fā)起分組通信。 該分組通信由源VNIC截取并由源P2P用戶應(yīng)用程序(表示為IVLAN用戶 應(yīng)用程序)通過源TCP/IP層路由到源物理NIC (表示為物理NIC)。源物 理NIC通過圖將該通信路由到鄰居節(jié)點(diǎn)的鄰居物理NIC,而鄰居物理NIC 又將該通信路由到鄰居P2P用戶應(yīng)用程序。鄰居P2P應(yīng)用程序檢査分組上 的P2P封裝,并將該通信返回給鄰居物理NIC以通過圖路由到目的地物理 NIC。目的地物理NIC將該通信沿目的地棧向上路由到目的地P2P用戶應(yīng) 用程序,以通過目的地VNIC路由到預(yù)期目的地傳統(tǒng)應(yīng)用程序。
如上所述并且將在此處更詳細(xì)地說明的,所公開的體系結(jié)構(gòu)為傳統(tǒng)應(yīng)
9用程序提供了充分利用標(biāo)準(zhǔn)通信層的解決方案,以使IP可通過P2P網(wǎng)絡(luò)覆 蓋來支持以提供無服務(wù)器VPN。該體系結(jié)構(gòu)使通常只在單個(gè)物理網(wǎng)絡(luò)中運(yùn) 行的許多應(yīng)用程序能夠?qū)嶋H上以完全分布式的方式來使用。在不存在網(wǎng)絡(luò) 基礎(chǔ)設(shè)施的情況下,如對(duì)于與地震和火災(zāi)相關(guān)聯(lián)的緊急情況中的第一響應(yīng) 者而言,所公開的體系結(jié)構(gòu)使得IP應(yīng)用程序能夠在通過多跳自組織和異構(gòu)
通信鏈路(Wi-Fi、藍(lán)牙等)來彼此通信的一組設(shè)備上使用。
以下場景呈現(xiàn)基于P2P的VPN的應(yīng)用。這些場景描述可以如何利用虛
擬IP覆蓋網(wǎng)絡(luò)的示例性實(shí)現(xiàn)。
圖5示出異構(gòu)網(wǎng)絡(luò)環(huán)境500中的VPN。在該場景中,不同的設(shè)備(例
如PC、膝上型計(jì)算機(jī)、PDA等)在自組織網(wǎng)絡(luò)502中彼此連接,并使用異
構(gòu)鏈路(Wi-Fi、藍(lán)牙等)來通信。這種場景在沒有網(wǎng)絡(luò)基礎(chǔ)設(shè)施可用的緊
急情況下最可能是可行的。
在此,PC1和PC2經(jīng)由有線以太網(wǎng)交換機(jī)504連接,并分別具有IP地 址192.168.0.23和192.168.0.56。 PC2還具有無線(例如Wi-Fi)適配器, 通過該無線適配器,PC2連接到自組織無線網(wǎng)絡(luò)502中的膝上型計(jì)算機(jī)。 PC2中的Wi-Fi適配器被分配了 IP地址192.168丄3。膝上型計(jì)算機(jī)中的 Wi-Fi適配器具有IP地址192.168丄21。膝上型計(jì)算機(jī)還能使用Wi-Fi以自 組織方式連接到PDA1。 PDA1具有IP地址192.168.1.6。
膝上型計(jì)算機(jī)還可具有藍(lán)牙適配器,通過該藍(lán)牙適配器,膝上型計(jì)算 機(jī)連接到個(gè)人區(qū)域網(wǎng)(PAN)中的PDA2和PDA3。在PAN中,膝上型計(jì) 算機(jī)、PDA2和PDA3分別具有IP地址192.168.0.1 、 192.168.0.2和 192.168.0.5。
顯而易見,在當(dāng)前場景中,這些設(shè)備中的任一個(gè)都不可能與所有其它 設(shè)備通信。例如,PC1不能與膝上型計(jì)算機(jī)或PDA1、 PDA2和PDA3通信。 類似地,PDA1不能與PDA2、 PDA3、 PC1和PC2通信。問題是這些設(shè)備 不屬于單個(gè)LAN,這使得依賴于通過廣播和/或多播發(fā)現(xiàn)其它節(jié)點(diǎn)的能力的 應(yīng)用程序不能運(yùn)行。在這種自組織環(huán)境502中,基于P2P的虛擬IP網(wǎng)絡(luò)504 提供好處?,F(xiàn)在,在經(jīng)由基于P2P的VPN 504連接之后,所有設(shè)備變成單 個(gè)虛擬LAN(或子網(wǎng))的一部分,并且因此可以與所有成員通信。IP分組通過P2P覆蓋在各設(shè)備之間路由。
圖6示出在因特網(wǎng)604上采用所公開的IVLAN 602的系統(tǒng)600。IVLAN
602還可以用因特網(wǎng)接入在聯(lián)網(wǎng)的計(jì)算機(jī)之間提供連接。即使連接到 IVLAN 602的所有計(jì)算機(jī)在路由器/防火墻/NAT設(shè)備之后并且只具有專有 IP地址,但這些計(jì)算機(jī)仍將能夠像在LAN中一樣彼此訪問。IVLAN 602 與傳統(tǒng)VPN相比的獨(dú)特性是無服務(wù)器和非集中式性質(zhì)。這使得本來不能運(yùn) 行的一些應(yīng)用程序能夠在IVLAN 602上運(yùn)行。例如,IVLAN可被用來在通 過因特網(wǎng)連接的計(jì)算機(jī)之間創(chuàng)建虛擬LAN,從而使得這些計(jì)算機(jī)能玩多玩 家游戲或運(yùn)行只可在局域網(wǎng)中運(yùn)行的應(yīng)用程序。
IVLAN 602還可被用于組織的商務(wù)需求。對(duì)于需要VPN來連接多個(gè)分 公司的組織而言,IVLAN 602可以用作無服務(wù)器VPN。否則,使用傳統(tǒng)VPN 解決方案要求尋找固定公共IP地址并在每一辦事處主存一 VPN服務(wù)器。 另外,在使用IVLAN 602時(shí)既沒有中央瓶頸也沒有單點(diǎn)失效。
IVLAN 602還允許使用遠(yuǎn)程訪問軟件而無需知道公共IP地址也無需改 變路由器或防火墻設(shè)置來將端口映射到PC。這對(duì)于IVLAN 602而言很方 便。只要各計(jì)算機(jī)使用相同的對(duì)等體ID是IVLAN 602的一部分,則各計(jì) 算機(jī)可以使用該對(duì)等體ID作為計(jì)算機(jī)名來彼此通信。
因特網(wǎng)上的計(jì)算機(jī)通過DHCP (動(dòng)態(tài)主機(jī)配置協(xié)議)而被給予動(dòng)態(tài)IP 地址、通過NAT (網(wǎng)絡(luò)地址轉(zhuǎn)換)設(shè)備而被給予共享或過濾IP地址、或被 給予由于防火墻而很難達(dá)到的IP地址。在這種情況下創(chuàng)建TCP/IP通信或 者是不可能的或者需要精細(xì)的應(yīng)用級(jí)策略來繞過這些限制。TCP/IP套接字 和服務(wù)器套接字還依賴于DNS (域名服務(wù)器)來將對(duì)人友好的主機(jī)名解析 成IP地址。標(biāo)準(zhǔn)DNS不能很好地處理具有過濾或動(dòng)態(tài)IP地址的計(jì)算機(jī), 并且更新花費(fèi)太長的時(shí)間來傳播。希望創(chuàng)建將DNS擴(kuò)展到新方向(如在 DNS中存儲(chǔ)即時(shí)消息收發(fā)用戶名和在場信息)的應(yīng)用程序的開發(fā)者受到 DNS系統(tǒng)的技術(shù)和策略問題的阻礙。
這些問題可以通過實(shí)現(xiàn)所公開的VLAN體系結(jié)構(gòu)來解決。網(wǎng)絡(luò)上的每 一對(duì)等體隨后被給予唯一的IP地址,即使該對(duì)等體在防火墻后面或在其歸 屬網(wǎng)絡(luò)中不具有穩(wěn)定的IP地址。
11在基于P2P的因特網(wǎng)中,希望成為服務(wù)器的對(duì)等體只需發(fā)布該對(duì)等體 想要的域名的名稱記錄,并創(chuàng)建在其它對(duì)等體應(yīng)該用于聯(lián)系的端口處監(jiān)聽 的服務(wù)器套接字。其它對(duì)等體現(xiàn)在可以直接打開到該對(duì)等體的客戶機(jī)套接 字連接。該基于P2P的因特網(wǎng)帶來許多優(yōu)點(diǎn)。第一,域名可具有任何形式,
如MyTestDomain19、 AlphaBravoCharlie、或Hollywood-Movies、或傳統(tǒng)的 www.mytest-domain.com。第二, 一個(gè)或多個(gè)對(duì)等體可以發(fā)布同一 DNS名 稱。在這種情況下,對(duì)兩個(gè)或更多對(duì)等體所發(fā)布的域的客戶機(jī)請求中的一 些由某些對(duì)等體來處理,而其余的由其它一些對(duì)等體來處理。這類似于其 中一個(gè)主機(jī)名解析成多個(gè)不同的IP地址來幫助負(fù)載平衡的DNS循環(huán)。第 三,給定主機(jī)名的服務(wù)端口可以跨全球多個(gè)不同的對(duì)等體來發(fā)布。 一個(gè)對(duì) 等體可以是提供網(wǎng)頁的主機(jī)服務(wù)端口 80,而其它對(duì)等體可以是用于即時(shí)消 息收發(fā)的主機(jī)服務(wù)端口 3000。
對(duì)于IP地址分配,虛擬IP網(wǎng)絡(luò)中的每一節(jié)點(diǎn)應(yīng)當(dāng)能夠獲得唯一的IP 地址。對(duì)于IVLAN體系結(jié)構(gòu),以下方案可被用來向VNIC接口分配IP地 址并將IP地址映射到對(duì)等體ID。
在第一方案中,對(duì)等體ID可被用作VNIC的IP地址。該方案的優(yōu)點(diǎn) 是它是最簡單的方案。在此,要求管理員在主機(jī)中設(shè)置分接設(shè)備,并以在 虛擬IP地址空間中唯一的IP地址來啟動(dòng)該設(shè)備。因?yàn)镻2P網(wǎng)絡(luò)上的所有 通信都是基于對(duì)等體ID (或節(jié)點(diǎn)ID)的,所以需要將IP地址映射到對(duì)等 體ID (或節(jié)點(diǎn)ID)的機(jī)制。
第二方案使用動(dòng)態(tài)唯一 IP作為所發(fā)布的記錄。該第二方案使用P2P圖 維護(hù)復(fù)制數(shù)據(jù)庫的能力,以發(fā)布所使用的IP地址的列表。加入對(duì)等體首先 檢査其本地?cái)?shù)據(jù)庫以尋找其自身先前發(fā)布的有效IP地址記錄,并且如果找 到這樣的記錄,則將該IP地址分配給其VNIC。如果加入對(duì)等體沒有找到 任何自身發(fā)布的有效IP地址記錄,則加入對(duì)等體檢查其本地?cái)?shù)據(jù)庫以尋找 所有節(jié)點(diǎn)所發(fā)布的所有IP地址記錄,并隨后選擇在任何所發(fā)布的IP記錄中 都未找到的隨機(jī)IP地址。加入對(duì)等體以"、新/尸、<;^教#>"的形式來 發(fā)布該新IP地址記錄,其具有等于臨時(shí)IP期限(TEMP—IP—EXPIRY)(例如l分鐘)的期限。y^教J^可以是加入節(jié)點(diǎn)的節(jié)點(diǎn)ID或加入節(jié)點(diǎn)的對(duì)等體 ID的散列。
代替在圖中發(fā)布該臨時(shí)IP記錄,也可以完成經(jīng)由路由管理器的IP記 錄廣播。如果在該臨時(shí)IP期滿時(shí)間內(nèi)未發(fā)現(xiàn)沖突,則加入節(jié)點(diǎn)假定無人使 用該地址并永久地將其分配給該加入節(jié)點(diǎn)的VNIC。該節(jié)點(diǎn)還以更長的期滿 時(shí)間(例如7天)來在圖中發(fā)布該IP地址記錄。在沖突的情況下,發(fā)布了 具有更接近0的隨機(jī)數(shù)的臨時(shí)IP記錄的節(jié)點(diǎn)獲勝,并且另一節(jié)點(diǎn)將選擇另
一隨機(jī)IP地址并隨后重復(fù)整個(gè)過程。在獲得成功的IP地址后,每一對(duì)等體
以一期滿時(shí)間(例如7天)在圖中發(fā)布其IP地址記錄。在對(duì)等體在線并且
該對(duì)等體所發(fā)布的IP地址記錄將要期滿的情況下,該對(duì)等體用新的期滿時(shí) 間再次重新發(fā)布/更新IP地址記錄。
該第二方案具有若干優(yōu)點(diǎn)。第一,與第一方案相比,用戶不必使用IP
地址形式的對(duì)等體ID,并且因此可以使用任何任意對(duì)等體ID。第二,用戶 僅僅需要確保使用唯一的對(duì)等體ID而不必?zé)_IP地址的唯一性。唯一的 對(duì)等體ID比唯一的IP地址更易確保,因?yàn)榭梢允褂萌魏稳我獯鳛閷?duì)等 體ID。因此,與其中每一用戶必須確保IP地址形式的對(duì)等體ID應(yīng)具有相 同的網(wǎng)絡(luò)ID但具有唯一的主機(jī)ID的第一方案相比,該第二方案適于不了 解或只了解很少連網(wǎng)的用戶。
在IVLAN體系結(jié)構(gòu)中,只在圖中對(duì)基于IP的以太網(wǎng)分組進(jìn)行路由, 而丟棄所有非基于IP的分組。 一個(gè)例外是ARP和ICMPv6請求分組。在目 的地IP地址與解析節(jié)點(diǎn)的地址處于同一子網(wǎng)中時(shí),ARP請求與IPv4 —起 使用,以將該地址解析成MAC (媒體訪問控制)地址。ARP請求在鏈路層 廣播,且支持ARP請求的一個(gè)可能的方式是使用圖的洪泛支持來用于廣播。
代替丟棄或使用圖來解析ARP請求,ARP請求可由每一節(jié)點(diǎn)在VNIC 驅(qū)動(dòng)程序內(nèi)部本地地處理。不同的VNIC的MAC地址由靜態(tài)算法從與該節(jié) 點(diǎn)相關(guān)聯(lián)的虛擬IP地址中導(dǎo)出。結(jié)果,在VNIC驅(qū)動(dòng)程序接收到針對(duì)IP 地址A.B.C.D (例如192.168.100.35)的ARP請求分組時(shí),該驅(qū)動(dòng)程序創(chuàng)建 ARP回復(fù),其中對(duì)應(yīng)于所請求的IP地址的MAC地址是本地地生成的。在 虛擬網(wǎng)絡(luò)使用IPv6地址并且需要將這些地址解析成MAC地址時(shí),可以采用同一機(jī)制來處理ICMP v6鄰居請求。
在一個(gè)實(shí)現(xiàn)中,MAC地址是通過在IP地址的開頭處加上前綴00-FF 來從該IP地址中生成的。因此,對(duì)于IP地址192.168.100.35 (以16進(jìn)制 是C0.A8.64.23),所生成的MAC地址是00-FF-C0-A8-64-23。
名稱到IP地址的動(dòng)態(tài)名稱解析是用戶曾經(jīng)使用過的,并且因此應(yīng)當(dāng)在 虛擬IP網(wǎng)絡(luò)內(nèi)部支持。用于名稱解析的傳統(tǒng)機(jī)制是DNS。然而,虛擬IP 網(wǎng)絡(luò)中不存在DNS服務(wù)器是可能的。因此,應(yīng)當(dāng)利用不同的名稱解析機(jī)制。
用于發(fā)布名稱的一種機(jī)制是使用圖的支持來發(fā)布名稱解析記錄。當(dāng)對(duì) 等節(jié)點(diǎn)在圖中添加名稱記錄時(shí),該記錄被自動(dòng)地洪泛到虛擬網(wǎng)絡(luò)中的所有 節(jié)點(diǎn)并存儲(chǔ)在其數(shù)據(jù)庫中。每一名稱解析記錄可具有相關(guān)聯(lián)的期滿時(shí)間(例 如7天)。每一節(jié)點(diǎn)負(fù)責(zé)在其期滿前重新發(fā)布/更新名稱解析記錄。
所公開的IVLAN體系結(jié)構(gòu)的一個(gè)優(yōu)點(diǎn)是比標(biāo)準(zhǔn)DNS更快地對(duì)更新作 出響應(yīng)的替換P2P域名系統(tǒng)。IVLAN提供基于P2P的名稱解析。因?yàn)镻2P 名稱解析不使用DNS系統(tǒng),所以主機(jī)名可以是任何串。另外,對(duì)等體可發(fā) 布對(duì)應(yīng)于不同的網(wǎng)站或web服務(wù)的一個(gè)或若干名稱。
在操作系統(tǒng)中的TCP/IP協(xié)議棧中實(shí)現(xiàn)的標(biāo)準(zhǔn)名稱解析器可能不知道 底層P2P圖,所以該圖不能直接用來解析名稱。該解析器首先檢査本地名 稱以用于從名稱映射到IP地址,隨后檢查用于該映射的主文件,并且如果 未找到,則將該DNS査詢發(fā)送到DNS服務(wù)器。以下兩個(gè)方案可被用來將 網(wǎng)絡(luò)名解析成IP地址,并且進(jìn)一步解析成對(duì)等體ID。
第一解析方案使用主文件。在此,每一對(duì)等體維護(hù)對(duì)等體ID、 IP地址 和所有對(duì)等體所發(fā)布的名稱記錄的列表(稱為名稱列表或NL)。在對(duì)等體 接收到具有對(duì)等體id Pid并具有唯一的IP地址IPr的對(duì)等體所發(fā)布的新名 稱記錄Nr時(shí),其將該記錄添加到它的NL中。該對(duì)等體還在主文件中插入 條目。在名稱記錄期滿或被刪除時(shí),該條目也被從NL和主文件中刪除。
第二解析方案使用本地DNS解析器組件。圖7示出采用構(gòu)建在IVLAN 內(nèi)部的本地DNS解析器組件702來進(jìn)行IVLAN圖上的名稱解析的系統(tǒng) 700。在此,并非將名稱記錄添加到主文件,而是每一對(duì)等體實(shí)現(xiàn)本地DNS 解析器組件702作為IVLAN用戶應(yīng)用程序304的一部分,以在本地解析所
14有DNS請求。解析器組件702維護(hù)對(duì)等體ID、 IP地址和所有對(duì)等體所發(fā) 布的名稱記錄的NL列表704,并通過圖的記錄洪泛機(jī)制來提供更新。在對(duì) 等體接收到具有對(duì)等體ID Pid并具有唯一的IP地址IPr的對(duì)等體所發(fā)布的 新名稱Nr記錄時(shí),該對(duì)等體在NL 704中添加新條目。在名稱記錄期滿或 被刪除時(shí),對(duì)應(yīng)的條目也從NL 704中刪除。
在使用該方案的IVLAN網(wǎng)絡(luò)中, 一任意IP地址對(duì)于虛擬DNS服務(wù)器 是固定的,該IP地址隨后不由該虛擬網(wǎng)絡(luò)中存在的任何對(duì)等體使用。在生 成對(duì)于名稱Nr的名稱解析(DNS)請求時(shí),VNIC 302從TCP/IP棧312接 收該請求,并將該請求轉(zhuǎn)發(fā)到IVLAN應(yīng)用程序304。 IVLAN用戶應(yīng)用程序 304檢査從本地VNIC 302接收到的所有IP分組,并且如果IP分組是DNS 請求,則用戶應(yīng)用程序304將該DNS請求傳遞到本地DNS解析器組件702。 本地DNS解析器組件702走査所發(fā)布的名稱(NL)的列表704,并用分配 給發(fā)布該名稱記錄Nr的對(duì)等體(具有對(duì)等體ID IP)的IP地址IPr來回復(fù)。 此后,接收到的針對(duì)該目的地IP IPr的任何IP分組被轉(zhuǎn)發(fā)到具有對(duì)等體ID PI的對(duì)等體。
該第二解析方案與先前方案之間的不同之處是,多個(gè)對(duì)等體可發(fā)布單 個(gè)域名,并且本地DNS解析器可將一些請求路由到一個(gè)對(duì)等體并將一些請 求路由到其它對(duì)等體以用于負(fù)載平衡。另外,改變主文件是不合適的,因 為如果IVLAN圖意外終止,則輸入到主文件中的名稱記錄條目將保留在那 里,并且該文件將不被還原到其原始形式。注意,名稱解析也通過使用 IVLAN支持多播語義的能力的多播DNS來支持。
在P2P網(wǎng)絡(luò)上覆蓋IP的多個(gè)好處中的一個(gè)是在覆蓋上的路由可以穿過 防火墻和NAT。實(shí)現(xiàn)這一點(diǎn)是因?yàn)?虛擬IP網(wǎng)絡(luò)的)IP分組的所有路由 是由引入到P2P SDK的構(gòu)圖組件的路由管理器來完成的。該路由管理器通 過P2P圖路由(虛擬IP網(wǎng)絡(luò)的)所有IP分組,并且因此一旦節(jié)點(diǎn)是P2P 圖的一部分,則即使該圖中的任何其它節(jié)點(diǎn)在物理IP網(wǎng)絡(luò)中的NAT或防 火墻后面,也有可能通過虛擬IP網(wǎng)絡(luò)向它們發(fā)送數(shù)據(jù)或通信。
在P2P網(wǎng)絡(luò)上覆蓋IP的一個(gè)優(yōu)點(diǎn)是設(shè)備移動(dòng)性。按照慣例,在物理IP 網(wǎng)絡(luò)中,兩個(gè)設(shè)備只能在知道對(duì)應(yīng)的IP地址的情況下彼此通信。如果在通信期間設(shè)備中的任何一個(gè)將其IP地址改變?yōu)槟骋黄渌S機(jī)IP地址,則通信 中斷。第二設(shè)備隨后需要知道第一設(shè)備的新IP地址以使通信繼續(xù)進(jìn)行。所
公開的IVLAN體系結(jié)構(gòu)固有地支持設(shè)備移動(dòng)性。因?yàn)槭褂脤?duì)等體ID來通 過P2P覆蓋網(wǎng)絡(luò)路由消息,所以即使虛擬IP網(wǎng)絡(luò)中的節(jié)點(diǎn)改變它在其物理 NIC中的IP地址,只要該對(duì)等體以同一對(duì)等體ID連接到P2P圖(或虛擬 IP網(wǎng)絡(luò)),則它就可以與另一節(jié)點(diǎn)通信。
圖8示出用于專用網(wǎng)絡(luò)設(shè)備的虛擬LAN接入的系統(tǒng)800的替換實(shí)現(xiàn)。 在該特定實(shí)現(xiàn)中,系統(tǒng)800將功能封裝在NDIS小型端口驅(qū)動(dòng)程序和用戶 模式進(jìn)程中。NDIS驅(qū)動(dòng)程序展示虛擬接口 (具有IPv4和/或IPv6地址), 并將所有分組傳遞到用戶模式覆蓋管理器802 (例如,IVLAN用戶應(yīng)用程 序304)。覆蓋管理器802負(fù)責(zé)至少若干操作使用憑證存儲(chǔ)804來對(duì)進(jìn)入 IVLAN的認(rèn)證、相鄰設(shè)備的發(fā)現(xiàn)和選擇、路由管理和分組轉(zhuǎn)發(fā)。設(shè)置界面 806 (例如類似于VPN客戶端)使用戶能夠配置新IVLAN,并配置IVLAN 來按需或在引導(dǎo)時(shí)自動(dòng)地啟動(dòng)。
在一替換實(shí)現(xiàn)中,采用覆蓋管理器802來在本地節(jié)點(diǎn)上創(chuàng)建路由方案, 但隨后利用IP的屬性來路由分組。換言之,并非將P2P展示為向上反向與 用戶模式進(jìn)程通信的小型端口驅(qū)動(dòng)程序,而是由用戶模式進(jìn)程來簡單地驅(qū) 動(dòng)棧中的幾乎是TCP/UDP的等效物的一級(jí)。該后一實(shí)現(xiàn)避開內(nèi)核模式到用 戶模式再回到內(nèi)核模式操作以及可能發(fā)生的所有TCP封裝。因此,通過在 IP層或TCP/UDP層創(chuàng)建網(wǎng)絡(luò)可以達(dá)到更好的性能。覆蓋管理器802可以使 用例如PNRP (對(duì)等體名解析協(xié)議)808來與該棧進(jìn)行通信。也可采用鏈路 本地多播名稱解析(LMNR)協(xié)議,因?yàn)镮VLAN支持分組多播。
IVLAN的圖2的邏輯體系結(jié)構(gòu)200不要求當(dāng)虛擬IP層在P2P之上時(shí) 應(yīng)設(shè)計(jì)和開發(fā)新TCP/IP層。以下是可用于實(shí)現(xiàn)這點(diǎn)的不同的可能方法。圖 9示出經(jīng)由用戶級(jí)中間層902的替換實(shí)現(xiàn)900。在TCP/IP層904之上引入 用戶級(jí)中間層902。中間層902使用P2P組件906維護(hù)與P2P網(wǎng)絡(luò)中的其 它節(jié)點(diǎn)的P2P連接,并向應(yīng)用程序提供API卯8以供與P2P網(wǎng)絡(luò)進(jìn)行接口 。 該API 908可類似于標(biāo)準(zhǔn)套接字API,其將允許編程者基于網(wǎng)絡(luò)套接字通信 的知識(shí)來開發(fā)利用IVLAN層的能力的應(yīng)用程序。
16圖10示出采用內(nèi)核級(jí)中間層1002的替換實(shí)現(xiàn)1000。在該方法中,在 TCP/IP層904和NIC驅(qū)動(dòng)程序1004之間引入內(nèi)核級(jí)中間層1002。該中間 層的角色是將目的地為虛擬IP層的分組橋接到P2P網(wǎng)絡(luò)。存在可通過P2P 覆蓋網(wǎng)絡(luò)執(zhí)行通信的方法。圖IO示出中間層1002可包括負(fù)責(zé)與P2P網(wǎng)絡(luò) 通信的內(nèi)置P2P組件1006的一種方法。盡管有效,但該解決方案可能難以 管理,因?yàn)閷?duì)P2P網(wǎng)絡(luò)的支持應(yīng)被集成在內(nèi)核模塊中。
圖11示出替換方法1100,其中內(nèi)核級(jí)中間層1102將從TCP/IP層904 接收到的針對(duì)虛擬IP網(wǎng)絡(luò)的所有IP分組傳送到用戶級(jí)應(yīng)用程序(例如P2P 組件)1104,而用戶級(jí)應(yīng)用程序1104又使用P2P API將各分組傳送到P2P 網(wǎng)絡(luò)中的目的地節(jié)點(diǎn)。目的地不是虛擬IP網(wǎng)絡(luò)的其余分組被傳遞到物理 NIC。在操作系統(tǒng)(例如Windows)中,該層例如可被實(shí)現(xiàn)為NDIS中間驅(qū) 動(dòng)程序1106。
另一替換方法采用內(nèi)核級(jí)虛擬NIC接口驅(qū)動(dòng)程序。在該方法中,引入 對(duì)TCP/IP層看似為僅僅是另一 NIC的內(nèi)核級(jí)虛擬NIC驅(qū)動(dòng)程序。在概念 上,該方法類似于內(nèi)核級(jí)中間層方法。不同之處是TCP/IP棧負(fù)責(zé)將各分組 路由到正確的NIC,所以驅(qū)動(dòng)程序不必確定各分組的目的地是否為VNNIC。 這里也存在可通過P2P覆蓋網(wǎng)絡(luò)完成通信的兩種方法。
圖12示出采用具有內(nèi)置P2P組件1204的內(nèi)核級(jí)虛擬NIC接口驅(qū)動(dòng)程 序1202的替換方法1200。 P2P組件1204負(fù)責(zé)與P2P網(wǎng)絡(luò)通信。該解決方 案具有與圖io的使用內(nèi)置P2P組件1006的內(nèi)核級(jí)中間層相同的缺點(diǎn)。
微軟P2P SDK是使應(yīng)用程序編程者能夠創(chuàng)建基于P2P的應(yīng)用程序的一 組連網(wǎng)API。該SDK是更大的P2P連網(wǎng)平臺(tái)的一部分,該平臺(tái)是創(chuàng)建P2P 應(yīng)用程序的開發(fā)者平臺(tái)。
圖13示出用于P2P連網(wǎng)體系結(jié)構(gòu)的組件的一個(gè)示例性系統(tǒng)1300。系 統(tǒng)1300包括提供P2P名稱解析的PNRP組件1302。 PNRP是安全的、無服 務(wù)器的、可伸縮的以及動(dòng)態(tài)的名稱注冊和名稱解析協(xié)議,其使用將對(duì)等體 名解析成IPv6地址的、類似于DHT (分布式散列表)系統(tǒng)的體系結(jié)構(gòu)。對(duì) 等體名是用于通信的端點(diǎn),其可以是計(jì)算機(jī)、用戶、組、服務(wù)等。對(duì)等體 名可被散列成128位對(duì)等體標(biāo)識(shí)符,并且使用類DHT算法來檢索發(fā)布該標(biāo)識(shí)符的主機(jī)的位置。PNRP不使用路由表,而相反使用PNRP條目的高速緩
存。高速緩存維護(hù)算法確保每一節(jié)點(diǎn)維護(hù)云或一組其它節(jié)點(diǎn)的適當(dāng)?shù)闹R(shí), 以解析對(duì)等體名。
系統(tǒng)1300還可包括負(fù)責(zé)維護(hù)連接的對(duì)等體的網(wǎng)格或圖并提供數(shù)據(jù)跨 該圖的洪泛和復(fù)制的構(gòu)圖組件1304。該圖是各節(jié)點(diǎn)的IP之上的覆蓋,這些 節(jié)點(diǎn)被連接成使得任何節(jié)點(diǎn)可通過一系列邏輯鄰居連接與所有其它節(jié)點(diǎn)通 信。圖中的鄰居是距離為一個(gè)圖跳(經(jīng)由TCP連接直接連接)的節(jié)點(diǎn)。
連接良好的圖在任何兩個(gè)節(jié)點(diǎn)之間都具有一路徑。圖具有"小直徑", 即,圖的最遠(yuǎn)邊中的節(jié)點(diǎn)之間的相對(duì)小的跳數(shù)。即使一些節(jié)點(diǎn)或一些連接 消失,該圖也是穩(wěn)健的并且保持是連接的。如圖所示,構(gòu)圖組件1304使用 洪泛和同步子組件1306、數(shù)據(jù)庫(或存儲(chǔ))子組件1308以及圖維護(hù)子組件 1310。
對(duì)于洪泛和同步子組件1306,該對(duì)等體圖使用洪泛來在圖中發(fā)布數(shù)據(jù) (或名稱)記錄。記錄名是通過將點(diǎn)和圖名追加到主機(jī)名來計(jì)算的。在一 節(jié)點(diǎn)在圖中發(fā)布(或添加)新紀(jì)錄時(shí),該記錄經(jīng)由洪泛被傳播到所有節(jié)點(diǎn)。 若一節(jié)點(diǎn)在已發(fā)布的記錄中進(jìn)行任何改變(例如,更新該記錄),則這些 更新也通過洪泛被傳播到所有節(jié)點(diǎn)。若一節(jié)點(diǎn)刪除記錄,則洪泛也將該刪 除傳播到圖中的所有節(jié)點(diǎn)。在圖中所發(fā)布的每一記錄由全局唯一標(biāo)識(shí)符 (GUID)來唯一地標(biāo)識(shí)。每一記錄還具有版本號(hào)和壽命或狀態(tài)。同步進(jìn)程 還確保對(duì)等體具有相同的記錄集。
圖維護(hù)子組件1310包括定義該圖如何進(jìn)化的算法,以維護(hù)穩(wěn)健的連接 性和維護(hù)小直徑。圖維護(hù)組件1310通過計(jì)算圖的簽名并使用該簽名來檢測 分區(qū)來實(shí)現(xiàn)這一點(diǎn)。如果圖被分區(qū),則每一分區(qū)將具有不同的簽名。圖維 護(hù)子組件1310還允許節(jié)點(diǎn)在其進(jìn)入圖中和離開該圖時(shí)建立適當(dāng)?shù)倪B接而不 創(chuàng)建"空穴"。
當(dāng)在圖中發(fā)布記錄時(shí),具有多個(gè)連接的圖節(jié)點(diǎn)將接收該記錄的多個(gè)副 本。為決定保持哪些連接和移除哪些連接,圖節(jié)點(diǎn)評(píng)估所洪泛的記錄并計(jì) 算其連接的雙向效用指數(shù)。效用指數(shù)是指示該連接在傳送所發(fā)布的記錄時(shí) 的有用性的數(shù)字。如果從一連接接收到先前已經(jīng)從某一其它連接接收到的記錄,則降低該連接的效用指數(shù)。否則,如果通過一連接接收到新記錄, 則增加該連接的效用指數(shù)。在正在進(jìn)行的基礎(chǔ)上,圖維護(hù)算法嘗試基于節(jié) 點(diǎn)所具有的所有連接的效用指數(shù)和在洪泛期間接收到的信息來移除無用的 連接并建立新連接。以此方式,該算法嘗試將圖會(huì)聚于對(duì)當(dāng)前通信模式的 洪泛最優(yōu)的拓?fù)浣Y(jié)構(gòu)。
為連接到該圖,加入節(jié)點(diǎn)連接到已經(jīng)連接到該圖的節(jié)點(diǎn)。加入節(jié)點(diǎn)解 析聯(lián)系節(jié)點(diǎn)的IPv6地址來連接。這可以通過DNS、對(duì)等體發(fā)現(xiàn)、和諸如 PNRP等名稱解析方法、或任何其它定制的方法來完成。如果所選聯(lián)系節(jié)點(diǎn)
具有少于最大可允許數(shù)量的與鄰居的圖連接,則該節(jié)點(diǎn)將發(fā)送接受響應(yīng)。 否則,該節(jié)點(diǎn)將發(fā)送拒絕響應(yīng)連同推舉列表,該列表是圖中的其它節(jié)點(diǎn)的 列表。接收到拒絕響應(yīng)的加入節(jié)點(diǎn)在推舉列表中選擇隨機(jī)節(jié)點(diǎn)并嘗試聯(lián)系 它。
在節(jié)點(diǎn)從圖斷開連接時(shí),該節(jié)點(diǎn)向鄰居節(jié)點(diǎn)(相鄰節(jié)點(diǎn))發(fā)送斷開連 接消息。該斷開連接消息攜帶包括除與其斷開連接的鄰居之外的各個(gè)鄰居 在內(nèi)的推舉列表。在其它節(jié)點(diǎn)接收到斷開連接消息時(shí),其嘗試連接到推舉
列表中的對(duì)等體。這在修復(fù)由節(jié)點(diǎn)的斷開連接所引起的任何分區(qū)時(shí)有所幫 助。
隨著節(jié)點(diǎn)從圖中連接和斷開連接,在圖中可能出現(xiàn)分區(qū)。每一圖具有
圖簽名和多個(gè)聯(lián)系節(jié)點(diǎn)。聯(lián)系節(jié)點(diǎn)的數(shù)量與圖的大小成正比。聯(lián)系節(jié)點(diǎn)和
圖簽名信息被周期性地刷新。如果聯(lián)系節(jié)點(diǎn)和圖簽名信息變得失效,則出
現(xiàn)分區(qū)。在檢測到分區(qū)時(shí),做出與聯(lián)系節(jié)點(diǎn)通信的嘗試以重新連接該圖。 圖是具有定義用于洪泛信息的拓?fù)浣Y(jié)構(gòu)的連接的一組節(jié)點(diǎn)的關(guān)聯(lián)。圖
自身是不安全的。圖的安全性可以通過組組件1312中的可插入模塊來提供。 編組是PNRP組件1302、對(duì)等體構(gòu)圖(經(jīng)由構(gòu)圖組件1304)和組安全性(經(jīng) 由安全子組件1314和組SSP (安全支持提供者)1316)的組合。編組提供 該組的成員的憑證的管理和該組中的記錄的安全發(fā)布。
組安全子組件1314使用對(duì)等體名來標(biāo)識(shí)該組的每一成員并標(biāo)識(shí)每一 組。在創(chuàng)建組時(shí),創(chuàng)建該組的新公鑰/私鑰對(duì),組名基于該公鑰/私鑰對(duì)。擁 有對(duì)應(yīng)于該組的對(duì)等體名的私鑰的成員是組擁有者。參與被限于被稱為組成員的對(duì)等體集合。每一組成員需要安全憑證來證明組的成員資格。 一旦 對(duì)等體成為組的一部分,則組成員使用構(gòu)圖來建立多個(gè)鄰居連接并優(yōu)化圖 的形狀以用于洪泛。
每一對(duì)等體具有相關(guān)聯(lián)的對(duì)等體數(shù)據(jù)庫(或存儲(chǔ)1308),其存儲(chǔ)與圖 相關(guān)聯(lián)的、在該組的所有成員之間安全地發(fā)布和同步的記錄集。構(gòu)圖確保 所發(fā)布的記錄被傳播到所有節(jié)點(diǎn),而編組防止未授權(quán)的記錄在整個(gè)圖上傳
播。成員之間的記錄復(fù)制使用SSL (安全套接字層)來提供記錄數(shù)據(jù)的加
密和數(shù)據(jù)完整性。
在一新對(duì)等體加入組時(shí),該新對(duì)等體自動(dòng)地接收從其所附連到的當(dāng)前 組成員所發(fā)布的所有記錄。在最初同步之后,組成員周期性地重新同步所 發(fā)布的記錄來確保所有組成員一致地具有所發(fā)布的數(shù)據(jù)的相同視圖。對(duì)等 體使用本地搜索機(jī)制來搜索所發(fā)布的記錄。在本地搜索中,組成員只搜索 其本地對(duì)等體數(shù)據(jù)庫來尋找該記錄,并且不向其它組成員發(fā)送搜索査詢。
以下是支持提供IVLAN體系結(jié)構(gòu)的各個(gè)方面的方法的一系列流程圖。 盡管出于解釋簡明的目的,此處例如以流圖或流程圖形式示出的一個(gè)或多 個(gè)方法被示出并描述為一系列動(dòng)作,但是可以理解和明白,這些方法不受 動(dòng)作的次序的限制,因?yàn)楦鶕?jù)本發(fā)明,某些動(dòng)作可以按與此處所示并描述 的不同的次序和/或與其它動(dòng)作同時(shí)發(fā)生。例如,本領(lǐng)域技術(shù)人員將會(huì)明白 并理解,方法可被替換地表示為一系列相互關(guān)聯(lián)的狀態(tài)或事件,諸如以狀 態(tài)圖的形式。此外,并非一方法中所示的所有動(dòng)作都是對(duì)于新穎實(shí)現(xiàn)所必 需的。
圖14示出對(duì)設(shè)備進(jìn)行連網(wǎng)的方法。在1400處,創(chuàng)建虛擬專用網(wǎng)的任 意節(jié)點(diǎn)的P2P圖。在1402處,將P2P網(wǎng)絡(luò)展示為虛擬接口。在1404處, 經(jīng)由該虛擬接口在P2P網(wǎng)絡(luò)的任意節(jié)點(diǎn)和公共網(wǎng)絡(luò)之間傳遞IP通信。
圖15示出實(shí)現(xiàn)專用虛擬LAN的方法。在1500處,接收設(shè)備操作系統(tǒng)。 在1502處,將IVLAN功能作為操作系統(tǒng)的一部分來封裝為小型端口驅(qū)動(dòng) 程序(例如NDIS)和用戶模式進(jìn)程。在1504處,使用IPv4禾卩/或IPv6協(xié) 議經(jīng)由小型端口驅(qū)動(dòng)程序和用戶模式進(jìn)程來展示IVLAN。在1506處,向 用戶模式覆蓋管理器發(fā)送接收到的所有分組。在1508處,該管理器提供進(jìn)入IVLAN的認(rèn)證。在1510處,該管理器提供鄰居設(shè)備發(fā)現(xiàn)和選擇。在1512 處,該管理器提供路由管理。在1514處,該管理器提供向IVLAN的設(shè)備 的分組轉(zhuǎn)發(fā)。
圖16示出在IVLAN體系結(jié)構(gòu)中接收和發(fā)送IP分組的方法。在1600 處,啟動(dòng)IVLAN用戶應(yīng)用程序。在1602處,用戶應(yīng)用程序啟用VNIC驅(qū) 動(dòng)程序接口。在1604處,用戶應(yīng)用程序向虛擬接口分配IPv4和IPv6地址。 在1606處,VNIC驅(qū)動(dòng)程序截取所接收到的并且預(yù)期發(fā)往VNIC接口的分 組,并通過文件流接口將其轉(zhuǎn)發(fā)到用戶應(yīng)用程序。在1608處,將分組封裝 在P2P消息中并通過圖來路由到目的地。
圖17示出在IVLAN體系結(jié)構(gòu)中接收和處理IP分組的方法。在1700 處,目的地用戶應(yīng)用程序通過鄰居節(jié)點(diǎn)接收分組。在1702處,用戶應(yīng)用程 序從P2P消息中提取以太網(wǎng)分組并將該以太網(wǎng)分組發(fā)送到VNIC。在1704 處,VNIC將該以太網(wǎng)分組轉(zhuǎn)發(fā)到TCP/IP棧以供正常的棧處理。
圖18示出在圖中洪泛分組的方法。在1800處,啟動(dòng)圖上的發(fā)現(xiàn)。在 1802處,接收用于廣播和/或多播的分組。在1804處,向各個(gè)圖節(jié)點(diǎn)洪泛 分組。在1806處,節(jié)點(diǎn)向鄰居節(jié)點(diǎn)轉(zhuǎn)發(fā)所接收到的分組。在1808處,節(jié) 點(diǎn)丟棄冗余的分組。
IVLAN適于聚集一組因特網(wǎng)(或公共網(wǎng)絡(luò))主機(jī)以便于各種應(yīng)用???以假定,IVLAN關(guān)系通常是長期的。因此,至少可以創(chuàng)建以下類型的 IVLAN:家庭IVLAN、擴(kuò)展的家庭IVLAN、和社交網(wǎng)絡(luò)IVLAN。
IVLAN通過提供廣播語義來提供支持現(xiàn)有應(yīng)用程序和體驗(yàn)的能力。廣 播語義暗示許多現(xiàn)有協(xié)議和應(yīng)用程序?qū)⒃谔摂M網(wǎng)絡(luò)上不經(jīng)修改地運(yùn)行。例 如,網(wǎng)絡(luò)瀏覽器可被用來跨IVLAN中的所有機(jī)器來發(fā)現(xiàn)資源。其它廣播體 驗(yàn)包括發(fā)現(xiàn)會(huì)議、人和媒體。
IVLAN通過提供轉(zhuǎn)發(fā)語義來提供透明"超節(jié)點(diǎn)"能力的能力。因?yàn)镮P 路由在IVLAN上操作,所以即使在成對(duì)連接性不可獲得時(shí),也可在IVLAN 中的所有主機(jī)之間實(shí)現(xiàn)連接性。作為副作用,具有良好連接性的節(jié)點(diǎn)能無 縫地用作其它主機(jī)之間的通信的轉(zhuǎn)發(fā)代理。這一能力啟用了基于活動(dòng)主機(jī) 的動(dòng)態(tài)連接性而自動(dòng)地創(chuàng)建的超節(jié)點(diǎn)角色。IVLAN還提供有回復(fù)力的通信的能力。動(dòng)態(tài)覆蓋路由可被用來構(gòu)造有
回復(fù)力的網(wǎng)絡(luò),其"路由繞過"因特網(wǎng)擁塞或失效。此外,可以采用IVLAN (例如在沒有廣播語義的情況下)來執(zhí)行快速病毒簽名傳播或軟件分發(fā)。
IVLAN能允許的其它好處包括文件共享和訪問(例如尤其是媒體共 享)。換言之,可以使"家庭"中的多個(gè)PC能夠在其間共享信息,而不管 這些計(jì)算機(jī)位于何處。具體地,該系統(tǒng)可允許對(duì)媒體源(例如媒體中心、 媒體庫等)的遠(yuǎn)程發(fā)現(xiàn)和訪問。能夠允許實(shí)況流傳輸(以及甚至多方流傳 輸)。IVLAN提供對(duì)位于"家庭"中的設(shè)備和其它資源的無縫發(fā)現(xiàn)。IVLAN 通過鏈接形成消費(fèi)管理域以易于遠(yuǎn)程網(wǎng)絡(luò)管理的PC來便于家庭網(wǎng)絡(luò)管理 和故障診斷。IVLAN促進(jìn)遠(yuǎn)程訪問,包括遠(yuǎn)程幫助和會(huì)議。另外,例如, 通過創(chuàng)建個(gè)人網(wǎng)站的方式來向朋友和家人進(jìn)行內(nèi)容發(fā)布提供對(duì)IVLAN中 的朋友和家人的自動(dòng)且安全的共享。
IVLAN能在應(yīng)用級(jí)向用戶展示是在本體系結(jié)構(gòu)的構(gòu)想之內(nèi)的。換言之, 用戶可能感覺IVLAN是"專用網(wǎng)絡(luò)"或"網(wǎng)絡(luò)圈"。因此,應(yīng)用程序可以 按這些網(wǎng)絡(luò)圈來展示功能。例如,考慮照片發(fā)布應(yīng)用程序。并非請用戶枚 舉可訪問這些照片的各個(gè)用戶,而是該應(yīng)用程序可提供"發(fā)布到你的家庭 網(wǎng)絡(luò)圈"的選項(xiàng)。這自動(dòng)地展示照片以供只通過對(duì)應(yīng)的VLAN來訪問。
可以采用應(yīng)用程序?qū)VLAN的知曉。如果應(yīng)用程序知道其正在使用 IVLAN,則該應(yīng)用程序可被配置成"看到"實(shí)際鄰居鏈路,從而使諸如DHT 等更高級(jí)的系統(tǒng)能夠針對(duì)該拓?fù)浣Y(jié)構(gòu)來優(yōu)化。
在另一實(shí)現(xiàn)中,可以采用多個(gè)同時(shí)IVLAN,以使客戶機(jī)可以同時(shí)加入 多個(gè)IVLAN。在一個(gè)示例性實(shí)現(xiàn)中,每一活動(dòng)的IVLAN以專用地址范圍 創(chuàng)建新接口。注意,該機(jī)器可多次加入同一IVLAN, 一次代表每一個(gè)登錄 的用戶。
IVLAN支持到外部網(wǎng)絡(luò)的橋接,并且因此支持各活動(dòng)節(jié)點(diǎn)之間的發(fā)現(xiàn) 和通信。然而,在一個(gè)方面,該設(shè)計(jì)可以是限制性的,因?yàn)槊恳还?jié)點(diǎn)位于 包含可能不在該IVLAN中活動(dòng)的設(shè)備、PC、和服務(wù)的網(wǎng)絡(luò)上。理想地,每 一節(jié)點(diǎn)可以通告到其本地網(wǎng)絡(luò)的路由。在更穩(wěn)健的實(shí)現(xiàn)中,IVLAN外的并 且因此不在該IVLAN的廣播域內(nèi)的資源(例如設(shè)備)可被配置成包括諸如網(wǎng)絡(luò)發(fā)現(xiàn)等應(yīng)用程序特征。這可以采用允許授權(quán)設(shè)備在IVLAN中獲得身份
的代理模型。
一種認(rèn)證方案是與P2P編組相關(guān)聯(lián)的方案。該方案本質(zhì)上創(chuàng)建專用證 書授權(quán)機(jī)構(gòu)(CA)并向所有授權(quán)方發(fā)行成員資格證書。該方法具有主機(jī)可 通過簡單地驗(yàn)證證書共享共同的根來彼此信任的優(yōu)點(diǎn)。為解決證書撤銷, 可以采用基于口令的組的概念,其中節(jié)點(diǎn)使用口令來訪問該組并從管理節(jié) 點(diǎn)獲得持久成員資格證書。
在覆蓋網(wǎng)絡(luò)中,端到端TCP可能具有低到中帶寬、可變等待時(shí)間、和 中到低可靠性。TCP擁塞控制在該環(huán)境中可有效工作,然而,其它優(yōu)化也 是可能的。
感興趣的是多層封裝。IP頭部壓縮可被引入到IVLAN環(huán)境中,以解 決多層封裝(例如應(yīng)用程序》TCP-〉IP》IPSec)。上述替換實(shí)現(xiàn)中的一些設(shè) 法完全移除一些IP層,但該優(yōu)化能以更多代碼(或復(fù)雜度)為代價(jià)來出現(xiàn)。 另一優(yōu)化可以是通過簡單地用點(diǎn)對(duì)點(diǎn)IPSec替換覆蓋隧道來消除覆蓋隧道。
如果IVLAN點(diǎn)對(duì)點(diǎn)鏈路能使用IPSec,則可以消除許多隧道開銷(無 需TLS和TCP封裝)。然而,要使其發(fā)生,IPSec應(yīng)當(dāng)支持用戶到用戶IPSec, 因?yàn)镮VLAN正在使用按用戶憑證。
每一節(jié)點(diǎn)將經(jīng)歷穿過的通信和目的地是本地的通信。該系統(tǒng)可被配置 成確定將多少帶寬專用于通信轉(zhuǎn)發(fā)。另外,該系統(tǒng)可以基于端對(duì)端應(yīng)用程 序需求或基于公平策略來區(qū)分轉(zhuǎn)發(fā)哪些通信的優(yōu)先級(jí)。
在IVLAN中,每一節(jié)點(diǎn)的專用IPv6地址駐留在共享子網(wǎng)中,所以諸 如BGP (邊界網(wǎng)關(guān)路由)等分層路由方案可能是不適當(dāng)?shù)摹H缟纤?,?種方法涉及每一節(jié)點(diǎn)將其鄰居的列表發(fā)布到通過覆蓋網(wǎng)絡(luò)復(fù)制的數(shù)據(jù)庫 中。每一節(jié)點(diǎn)隨后使用該數(shù)據(jù)來構(gòu)造其自己的路由表(基于最短跳數(shù)路徑)。
虛擬環(huán)路由(VRR)可以是另一解決方案。另選地,可以運(yùn)行分布式路由 表(DRT)協(xié)議(在PNRP路由發(fā)現(xiàn)下層的協(xié)議)。換言之,更一般而言, 通常用于移動(dòng)自組織網(wǎng)絡(luò)的所有協(xié)議都能適用,例如AODV、前攝協(xié)議 (DSDV)和基于DHT的協(xié)議(例如VRR)。
對(duì)于鄰居管理,P2P覆蓋網(wǎng)絡(luò)可以尋求多個(gè)主動(dòng)連接。可以考慮這些連接的穩(wěn)定性以及平衡路由優(yōu)化的可能性和路由維護(hù)成本。
如任何其它VPN —樣,可以提供允許用戶手動(dòng)地連接到所需IVLAN
的"撥號(hào)器"客戶端。這一點(diǎn)的邏輯擴(kuò)展是支持按需撥號(hào)。此外,已配置
的IVLAN可以處于休眠中,從而展示專用IPv6地址。在該IPv6地址被實(shí) 際使用時(shí),該接口變?yōu)榛顒?dòng)并連接。
在分割和安全上下文中,很自然地將IVLAN認(rèn)為是機(jī)器級(jí)構(gòu)造。另選 地,可以將IVLAN的范圍定為供單獨(dú)的用戶使用(網(wǎng)絡(luò)分區(qū))或甚至定為 特定應(yīng)用程序(網(wǎng)絡(luò)視圖)。
可以定義機(jī)器級(jí)策略。可以使用防火墻來阻止分組轉(zhuǎn)發(fā)(從而使節(jié)點(diǎn) 成為僅僅是終端站)。
還可以基于將IVLAN對(duì)于域加入的機(jī)器的使用來在企業(yè)中設(shè)置限制。 此外,可以實(shí)施限制來確保IVLAN不能被用來橋接去往本地物理網(wǎng)絡(luò)的通 信。
可以提供IVLAN支持來使之在服務(wù)器SKU可用,以使服務(wù)器可以用 作家庭的中央節(jié)點(diǎn)。
服務(wù)可被用來管理最終用戶身份并便于IVLAN邀請。已配置的IVLAN 可以存檔在網(wǎng)絡(luò)云中,從而使用戶能夠從任何因特網(wǎng)主機(jī)下載和配置 IVLAN。 IVLAN可以部分地置于無線網(wǎng)狀網(wǎng)絡(luò)之上。無線網(wǎng)狀網(wǎng)絡(luò)可依賴 于同構(gòu)或異構(gòu)無線技術(shù)。在一個(gè)實(shí)現(xiàn)中,IVLAN簡單地重用無線網(wǎng)狀鏈路 來減少重復(fù)通信并增強(qiáng)性能。
在接受來自IVLAN中的對(duì)等機(jī)器的連接或通信之前,機(jī)器可以自動(dòng)地 確認(rèn)該主機(jī)的健康度??紤]到主機(jī)可能代表其它主機(jī)轉(zhuǎn)發(fā)通信,IVLAN不 應(yīng)被用于傳播蠕蟲、病毒或惡意軟件。鑒于此,可以用對(duì)等方式采用輕量 級(jí)健康確認(rèn)過程。如果檢測到不健康的對(duì)等體,則可以調(diào)用一服務(wù)來支持 矯正。
以下是可由所公開的IVLAN體系結(jié)構(gòu)提供的一組連網(wǎng)體驗(yàn)的高級(jí)描 述。在過去幾年中,連網(wǎng)集中于允許普遍性和協(xié)作性計(jì)算。隨著Wi-Fi熱 點(diǎn)、EV-DO (進(jìn)化數(shù)據(jù)優(yōu)化)和諸如NAP (網(wǎng)絡(luò)訪問協(xié)議)等社團(tuán)解決方 案的流行,連網(wǎng)處于實(shí)現(xiàn)該前景的尖端。EV-DO和其它"無處不在的網(wǎng)絡(luò)"技術(shù)允許用戶通信和協(xié)作而不管其位置。社團(tuán)公民和顧客/伙伴將能夠可靠 且安全地協(xié)作而不管從屬關(guān)系。圍繞無線和通信棧(例如OSI模型)的新 創(chuàng)新使計(jì)算機(jī)能夠以記錄速度傳遞和處理信息。
與此同時(shí),用戶想要從PC獲得的體驗(yàn)已經(jīng)更加成熟。音樂、照片和電 影的體驗(yàn)不再是"令人高興"的特征,相反,這些體驗(yàn)是操作系統(tǒng)的預(yù)期
的一部分。例如,用戶現(xiàn)在期望容易地導(dǎo)入并完善其照片,在PC、 MP3播 放器、媒體擴(kuò)展器和移動(dòng)設(shè)備(例如PDA和智能電話)上下載并收聽音樂。 盡管視頻/電視是較新的體驗(yàn),但用戶將期望能夠管理電視和個(gè)人視頻內(nèi)容。 換言之,下一代用戶體驗(yàn)應(yīng)當(dāng)包括在任何地點(diǎn)、任何時(shí)間對(duì)在任何設(shè) 備上的內(nèi)容和信息的易于管理的無處不在的訪問。用戶需要普遍性和協(xié)作 性計(jì)算和內(nèi)容的統(tǒng)一。以下是IVLAN體系結(jié)構(gòu)可以提供的各類型場景的一 般描述。
在家庭網(wǎng)絡(luò)示例的上下文中,用戶在家中具有多個(gè)PC,并想要能夠在 家庭網(wǎng)絡(luò)PC和設(shè)備之間共享信息。這可以用插件應(yīng)用程序來完成。為創(chuàng)建 家庭網(wǎng)絡(luò),用戶下載新插件并安裝它。在安裝之后,該插件呈現(xiàn)允許配置 新網(wǎng)絡(luò)的設(shè)置或加入頁面。用戶能夠選擇家庭網(wǎng)絡(luò)的名稱和口令。作為安 裝該軟件包的用戶,該用戶能作為該新網(wǎng)絡(luò)的管理員來添加。在完成設(shè)置 之后,用戶被帶到提供關(guān)于如何向新網(wǎng)絡(luò)添加更多PC的指令的網(wǎng)絡(luò)控制 臺(tái)。該指令可包括名稱和口令,設(shè)置另一PC (可任選地,提供USB鑰匙 并在另一PC上使用該鑰匙),以及經(jīng)由允許用戶下載或傳輸該插件的強(qiáng)口 令。
為加入新網(wǎng)絡(luò),用戶遵循指示去往另一PC并將其加入新網(wǎng)絡(luò)的指令。 在安裝插件包之后,PC被加入到該網(wǎng)絡(luò)。該網(wǎng)絡(luò)已經(jīng)被列出,并且用戶可 以簡單地輸入該網(wǎng)絡(luò)的口令。呈現(xiàn)允許將該網(wǎng)絡(luò)自動(dòng)發(fā)布到其它設(shè)備并經(jīng) 由口令容易地加入的網(wǎng)絡(luò)控制臺(tái)。使用該控制臺(tái),用戶看到其它PC被列出, 并且向用戶呈現(xiàn)了至關(guān)重要的安全信息和當(dāng)前操作系統(tǒng)更新狀況。還可以 在這兩臺(tái)PC上向用戶呈現(xiàn)所有帳戶,并且這兩臺(tái)PC已經(jīng)被添加到人員區(qū) 域。用戶隨后可以審閱其它PC上的帳戶和狀況。最后,用戶還可以看到附 連到PC和網(wǎng)絡(luò)的設(shè)備的列表。附連到PC的設(shè)備已經(jīng)被添加到網(wǎng)絡(luò)。呈現(xiàn)網(wǎng)絡(luò)設(shè)備以供確認(rèn)??刂婆_(tái)對(duì)于家庭網(wǎng)絡(luò)管理而言是輕量級(jí)的,其具有管 理用戶的能力、查看/管理PC更新的能力和査看/管理與家庭網(wǎng)絡(luò)相關(guān)聯(lián)的 設(shè)備的能力。
IVLAN體系結(jié)構(gòu)便于從任何位置訪問單個(gè)桌面。用戶可以經(jīng)由第二PC 看到已經(jīng)設(shè)置了帳戶并能夠登錄到該新PC。新PC桌面可以具有與其它PC
所具有的相同的主題和相同的元素(例如相同的桌面背景等)??梢栽诔?br>
現(xiàn)一個(gè)所有文檔的聚集視圖的文檔區(qū)域中瀏覽新PC和第一 PC上的文檔。 類似地,照片部分可以呈現(xiàn)該網(wǎng)絡(luò)可訪問的所有照片。另外,媒體播放器 應(yīng)用程序已經(jīng)對(duì)網(wǎng)絡(luò)上可訪問的音樂進(jìn)行了分類。還可為新PC復(fù)制打印機(jī) 和打印設(shè)置。換言之,復(fù)制桌面設(shè)置,將用戶帳戶復(fù)制到其它PC,使文檔、 照片、音樂等全可經(jīng)由正常位置訪問,并且設(shè)置設(shè)備以供使用。
還使網(wǎng)絡(luò)連接性通過因特網(wǎng)可用,并且使網(wǎng)絡(luò)中的所有設(shè)備和內(nèi)容通 過因特網(wǎng)對(duì)用戶可用。例如,用戶可從因特網(wǎng)訪問家庭網(wǎng)絡(luò)上的PC并將文 檔打印到家庭打印機(jī)。
在又一示例中,用戶可以在家庭網(wǎng)絡(luò)上創(chuàng)建使得可通過IVLAN對(duì)用戶
可用的網(wǎng)站??梢蕴砑诱掌推渌愋偷奈臋n和媒體以供査看或下載。通 過將音頻、照片和/或媒體文件拖放到體驗(yàn)中可將內(nèi)容添加到網(wǎng)站。例如, 用戶還可以選擇發(fā)布日歷。該網(wǎng)站可以直接從網(wǎng)絡(luò)PC向所選個(gè)人發(fā)布,并 通告所選聯(lián)系人。
作為聯(lián)系人接收者,授予站點(diǎn)訪問并査看內(nèi)容。該聯(lián)系人可以訂閱并 查看用戶的日歷。該聯(lián)系人還可以訂閱用戶對(duì)網(wǎng)站和照片所做的任何更新 或媒體更新。還可以向該聯(lián)系人提供評(píng)論功能來對(duì)用戶內(nèi)容進(jìn)行評(píng)論和/或 注釋。換言之,這些能力至少包括接收通告(例如電子郵件或祝詞)、訪 問該站點(diǎn)并查看內(nèi)容、訂閱內(nèi)容的不同"訂閱源"、以及對(duì)內(nèi)容進(jìn)行評(píng)論。
一旦在該專用網(wǎng)站上公布了評(píng)論,則可以發(fā)送新評(píng)論已被公布的通知。 作為響應(yīng),添加新內(nèi)容并向聯(lián)系人接收者發(fā)送已經(jīng)添加了媒體以供査看的 通知。因此,可以通過IVLAN來在本地提供新公布的內(nèi)容的通知,并且在 本地提供新改變的訂閱源的通知。
如果用戶此后在遠(yuǎn)程位置拍攝照片,則可以向該專用網(wǎng)站上傳內(nèi)容,如同該用戶在家庭網(wǎng)絡(luò)中的另一PC上一樣。基于登錄到家庭網(wǎng)絡(luò),發(fā)布站 點(diǎn)識(shí)別新內(nèi)容并提示用戶是否應(yīng)當(dāng)公布該內(nèi)容。用戶確認(rèn)并且該內(nèi)容被公 布。向聯(lián)系人接收者通知該新內(nèi)容,并且用戶能夠設(shè)置來自該照相機(jī)的所 有圖片應(yīng)被發(fā)布到該站點(diǎn)的規(guī)則。因此,提供了從遠(yuǎn)程位置上傳內(nèi)容、遠(yuǎn) 程地向該站點(diǎn)添加內(nèi)容、家庭網(wǎng)絡(luò)集成、以及從任何位置自動(dòng)地將來自照 相機(jī)的圖片上傳到家庭網(wǎng)絡(luò)PC的能力。
以下是可被利用來允許與所公開的IVLAN體系結(jié)構(gòu)相關(guān)聯(lián)的體驗(yàn)的
組件的描述。
跨各場景的身份的統(tǒng)一的概念是創(chuàng)建這些體驗(yàn)的一部分。身份提供"了 解"和"被了解"的手段,并允許端對(duì)端的安全可靠的連接性。身份可被
分為兩個(gè)類別私人和聯(lián)系人。
私人身份是向網(wǎng)絡(luò)和其他人描述"我是"誰的邏輯信息集。私人身份 包含諸如昵稱或家庭地址等元數(shù)據(jù)和用來向其他人和聯(lián)系人證明誰身份的 憑證。
聯(lián)系人是一個(gè)人"知道"或"信任"的其他人的私人身份。聯(lián)系人被 用來認(rèn)證、授權(quán)和管理關(guān)于另一個(gè)人的元數(shù)據(jù)。對(duì)私人聯(lián)系人列表中的各 個(gè)人而言,在本地顯式地信任或經(jīng)由可信第三方來驗(yàn)證是合乎需要的。
各個(gè)人或PC—起的關(guān)聯(lián)利用了組語義。該組能夠彼此通信和認(rèn)證到該 組中。 一旦進(jìn)入該組,則通信安全地發(fā)生而不易于受外來者攻擊。該組的 每一成員信任其他成員,并且如果需要,則數(shù)據(jù)可以基于與訪問控制列表
(ACL)相關(guān)聯(lián)的成員許可來在各組成員之間傳遞。
本地或分布式網(wǎng)絡(luò)中的節(jié)點(diǎn)之間的無縫通信對(duì)于允許這些體驗(yàn)而言是 合乎需要的。應(yīng)當(dāng)提供端對(duì)端的安全可靠的連接性來允許這些體驗(yàn)。
因?yàn)镮P地址是動(dòng)態(tài)的,所以可以采用一機(jī)制來標(biāo)識(shí)端點(diǎn)而不必害怕這 些標(biāo)識(shí)符改變。這些標(biāo)識(shí)符映射到身份(或可以作為身份的那些事物), 所以可以發(fā)生從身份到端點(diǎn)的解析。該技術(shù)可以是認(rèn)證身份并返回與所注 冊的身份的相關(guān)聯(lián)的端點(diǎn)的會(huì)合服務(wù)器。因?yàn)榭梢灶A(yù)見可能有數(shù)十億用戶 在利用IVLAN體系結(jié)構(gòu),所以提供由身份來保護(hù)并且無需服務(wù)器來解析的 固定標(biāo)識(shí)符的對(duì)等解決方案可以是替換解決方案。PNRP是實(shí)現(xiàn)大多數(shù)這些需求的解決方案。
因?yàn)橥ㄐ艑⒃趯?duì)等設(shè)備之間直接通過因特網(wǎng)發(fā)生,所以需要邊緣安全 性來保護(hù)用戶。用戶必須知道他們確實(shí)在與正確的聯(lián)系人通信、該通信是 安全的、以及他們在與之通信的人只在接收他們授權(quán)接收的信息。對(duì)該防
火墻考慮的一個(gè)解決方案是IPSec。
網(wǎng)絡(luò)設(shè)備發(fā)現(xiàn)向用戶提供發(fā)現(xiàn)并關(guān)聯(lián)網(wǎng)絡(luò)上的設(shè)備的能力。 一旦與一
機(jī)器相關(guān)聯(lián),則可以使用該設(shè)備,如同它直接附連到PC上一樣。 一旦該設(shè) 備與PC相關(guān)聯(lián),則用戶隨后可以管理與該系統(tǒng)相關(guān)聯(lián)的設(shè)備,或利用安裝
的特征(例如打印機(jī)選項(xiàng))來更有效地利用該設(shè)備。
下一代設(shè)備是可以通過因特網(wǎng)與之通信以及跨因特網(wǎng)通信的設(shè)備(例 如因特網(wǎng)照相機(jī))。換言之,用戶可以在夏威夷拍攝照片,并使用所公開
的IVLAN體系結(jié)構(gòu)將其自動(dòng)地發(fā)送回家中的PC。 WS-設(shè)備協(xié)議和其它技
術(shù)套件可以允許該場景。
在以上場景中,在各機(jī)器之間復(fù)制內(nèi)容和狀態(tài)。其真正是用戶的桌面 的狀態(tài)、機(jī)器的狀態(tài)(例如存在或關(guān)聯(lián)了什么設(shè)備)、和內(nèi)容的狀態(tài)(例 如正在進(jìn)行ACL等)。該狀態(tài)的復(fù)制允許用戶從任何位置訪問桌面。
在上述示例中,用戶做的第一件事是將PC關(guān)聯(lián)在一起。這可以使用用 于設(shè)備的web服務(wù)技術(shù)以關(guān)聯(lián)PC來促進(jìn),從而形成組關(guān)聯(lián)。 一旦發(fā)生該 關(guān)聯(lián),則內(nèi)容/狀態(tài)復(fù)制可以開始為每一私人身份將狀態(tài)跨越同步到新關(guān)聯(lián) 的PC。最后,可以在全球PNRP云中將家庭網(wǎng)絡(luò)組作為可以被解析到家庭 網(wǎng)絡(luò)中的任何節(jié)點(diǎn)的端點(diǎn)來發(fā)布。 一旦解析,則可以通過利用NAT和防火 墻穿越解決方案以確保連接性來在IPv6上建立連接。 一旦連接建立,則內(nèi) 容/狀態(tài)同步利用可以發(fā)生。這還可以包括遠(yuǎn)程地調(diào)用設(shè)備動(dòng)作的機(jī)制。例 如,這可以采用來自組關(guān)聯(lián)的代理執(zhí)行的形式。
如在本申請中所使用的,術(shù)語"組件"和"系統(tǒng)"旨在表示計(jì)算機(jī)相 關(guān)的實(shí)體,其可以是硬件、硬件和軟件的組合、軟件、或者執(zhí)行中的軟件。 例如,組件可以是但不限于,在處理器上運(yùn)行的進(jìn)程、處理器、硬盤驅(qū)動(dòng) 器、(光和/或磁存儲(chǔ)介質(zhì)的)多個(gè)存儲(chǔ)驅(qū)動(dòng)器、對(duì)象、可執(zhí)行代碼、執(zhí)行 的線程、程序、和/或計(jì)算機(jī)。作為說明,運(yùn)行在服務(wù)器上的應(yīng)用程序和服
28務(wù)器都可以是組件。 一個(gè)或多個(gè)組件可以駐留在進(jìn)程和/或執(zhí)行的線程內(nèi), 且組件可以位于一臺(tái)計(jì)算機(jī)內(nèi)上/或分布在兩臺(tái)或更多的計(jì)算機(jī)之間。
現(xiàn)在參考圖19,示出了可用于執(zhí)行所公開的IVLAN體系結(jié)構(gòu)的計(jì)算 系統(tǒng)1900的框圖。為了提供用于其各方面的附加上下文,圖19及以下討 論旨在提供對(duì)其中可實(shí)現(xiàn)該各方面的合適的計(jì)算系統(tǒng)1900的簡要概括描 述。盡管以上描述是在可在一個(gè)或多個(gè)計(jì)算機(jī)上運(yùn)行的計(jì)算機(jī)可執(zhí)行指令 的一般上下文中進(jìn)行的,但是本領(lǐng)域的技術(shù)人員將認(rèn)識(shí)到,新穎實(shí)施例也 可結(jié)合其它程序模塊和/或作為硬件和軟件的組合來實(shí)現(xiàn)。
一般而言,程序模塊包括執(zhí)行特定任務(wù)或?qū)崿F(xiàn)特定抽象數(shù)據(jù)類型的例 程、程序、組件、數(shù)據(jù)結(jié)構(gòu)等等。此外,本領(lǐng)域的技術(shù)人員可以理解,本 發(fā)明的方法可用其它計(jì)算機(jī)系統(tǒng)配置來實(shí)施,包括單處理器或多處理器計(jì) 算機(jī)系統(tǒng)、小型機(jī)、大型計(jì)算機(jī)、以及個(gè)人計(jì)算機(jī)、手持式計(jì)算設(shè)備、基 于微處理器的或可編程消費(fèi)電子產(chǎn)品等,其每一個(gè)都可操作上耦合到一個(gè) 或多個(gè)相關(guān)聯(lián)的設(shè)備。
所示各方面也可以在其中某些任務(wù)由通過通信網(wǎng)絡(luò)鏈接的遠(yuǎn)程處理設(shè) 備來執(zhí)行的分布式計(jì)算環(huán)境中實(shí)施。在分布式計(jì)算環(huán)境中,程序模塊可以 位于本地和遠(yuǎn)程存儲(chǔ)器存儲(chǔ)設(shè)備中。
計(jì)算機(jī)通常包括各種計(jì)算機(jī)可讀介質(zhì)。計(jì)算機(jī)可讀介質(zhì)可以是可由計(jì) 算機(jī)訪問的任何可用介質(zhì),且包括易失性和非易失性介質(zhì)、可移動(dòng)和不可 移動(dòng)介質(zhì)。作為示例而非限制,計(jì)算機(jī)可讀介質(zhì)可以包括計(jì)算機(jī)存儲(chǔ)介質(zhì) 和通信介質(zhì)。計(jì)算機(jī)存儲(chǔ)介質(zhì)包括以存儲(chǔ)如計(jì)算機(jī)可讀指令、數(shù)據(jù)結(jié)構(gòu)、 程序模塊或其它數(shù)據(jù)等信息的任何方法或技術(shù)實(shí)現(xiàn)的易失性和非易失性、 可移動(dòng)和不可移動(dòng)介質(zhì)。計(jì)算機(jī)存儲(chǔ)介質(zhì)包括但不限于RAM、 ROM、 EEPROM、閃存或者其它存儲(chǔ)器技術(shù)、CD-ROM、數(shù)字視頻盤(DVD)或 其它光盤存儲(chǔ)、磁帶盒、磁帶、磁盤存儲(chǔ)或其它磁存儲(chǔ)設(shè)備、或可以用于 存儲(chǔ)所需信息并且可以由計(jì)算機(jī)訪問的任何其它介質(zhì)。
再次參考圖19,用于實(shí)現(xiàn)各方面的示例性計(jì)算系統(tǒng)1900包括計(jì)算機(jī) 1902,計(jì)算機(jī)1902包括處理單元1904、系統(tǒng)存儲(chǔ)器1906和系統(tǒng)總線1908。 系統(tǒng)總線1908向各系統(tǒng)組件提供接口,包括但不限于系統(tǒng)存儲(chǔ)器1906到處理單元1904的接口。處理單元1904可以是市場上可購買到的各種處理 器中的任意一種。雙微處理器和其它多處理器體系結(jié)構(gòu)也可用作處理單元 1904。
系統(tǒng)總線1908可以是若干種總線結(jié)構(gòu)中的任一種,這些總線結(jié)構(gòu)還可 互連到存儲(chǔ)器總線(帶有或沒有存儲(chǔ)器控制器)、外圍總線、以及使用各 類可購買到的總線體系結(jié)構(gòu)中的任一種的局部總線。系統(tǒng)存儲(chǔ)器1906包括 只讀存儲(chǔ)器(ROM) 1910和隨機(jī)存取存儲(chǔ)器(RAM) 1912。基本輸入/輸 出系統(tǒng)(BIOS)儲(chǔ)存在諸如ROM、 EPROM、 EEPROM等非易失性存儲(chǔ)器 1910中,其中BIOS包含幫助諸如在啟動(dòng)期間在計(jì)算機(jī)1902內(nèi)的元件之間 傳輸信息的基本例程。RAM 1912還可包括諸如靜態(tài)RAM等高速RAM來 用于高速緩存數(shù)據(jù)。
計(jì)算機(jī)1902還包括內(nèi)置硬盤驅(qū)動(dòng)器(HDD)1914(例如,EIDE、SATA), 該內(nèi)置硬盤驅(qū)動(dòng)器1914還可被配置成在合適的機(jī)殼(未示出)中外部使用; 磁軟盤驅(qū)動(dòng)器(FDD)1916(例如,從可移動(dòng)磁盤1918中讀取或向其寫入); 以及光盤驅(qū)動(dòng)器1920 (例如,從CD-ROM盤1922中讀取,或從諸如DVD 等其它高容量光學(xué)介質(zhì)中讀取或向其寫入)。硬盤驅(qū)動(dòng)器1914、磁盤驅(qū)動(dòng) 器1916和光盤驅(qū)動(dòng)器1920可分別通過硬盤驅(qū)動(dòng)器接口 1924、磁盤驅(qū)動(dòng)器 接口 1926和光盤驅(qū)動(dòng)器接口 1928連接到系統(tǒng)總線1908。用于外置驅(qū)動(dòng)器 實(shí)現(xiàn)的接口 1924包括通用串行總線(USB)和IEEE 1394接口技術(shù)中的至 少一種或兩者。
驅(qū)動(dòng)器及其相關(guān)聯(lián)的計(jì)算機(jī)可讀介質(zhì)提供了對(duì)數(shù)據(jù)、數(shù)據(jù)結(jié)構(gòu)、計(jì)算 機(jī)可執(zhí)行指令等的非易失性存儲(chǔ)。對(duì)于計(jì)算機(jī)1902,驅(qū)動(dòng)器和介質(zhì)容納適 當(dāng)?shù)臄?shù)字格式的任何數(shù)據(jù)的存儲(chǔ)。盡管以上對(duì)計(jì)算機(jī)可讀介質(zhì)的描述涉及 HDD、可移動(dòng)磁盤以及諸如CD或DVD等可移動(dòng)光學(xué)介質(zhì),但是本領(lǐng)域的 技術(shù)人員應(yīng)當(dāng)理解,示例性操作環(huán)境中也可使用可由計(jì)算機(jī)讀取的任何其 它類型的介質(zhì),諸如zip驅(qū)動(dòng)器、磁帶盒、閃存卡、盒式磁帶等等,并且任 何這樣的介質(zhì)可包含用于執(zhí)行所公開的體系結(jié)構(gòu)的新穎方法的計(jì)算機(jī)可執(zhí) 行指令。
多個(gè)程序模塊可儲(chǔ)存在驅(qū)動(dòng)器和RAM 1912中,包括操作系統(tǒng)1930、一個(gè)或多個(gè)應(yīng)用程序1932、其它程序模塊1934和程序數(shù)據(jù)1936。 一個(gè)或 多個(gè)應(yīng)用程序1932、其它程序模塊1934和程序數(shù)據(jù)1936可包括例如管理 組件102、客戶機(jī)104、接口組件114、虛擬IP層202、 P2P層204、真實(shí) IP層206、用戶應(yīng)用程序304、 VNIC 302和子組件(306、 308、 310) 、 TCP/IP 層312、傳統(tǒng)應(yīng)用程序(應(yīng)用程序l、應(yīng)用程序2)、本地DNS解析器702 和NL 704、覆蓋管理器802、憑證存儲(chǔ)804、設(shè)置和監(jiān)控組件806、PNRP 808、 和系統(tǒng)900、 100、 1100、 1200、 1300的組件。
所有或部分操作系統(tǒng)、應(yīng)用程序、模塊和/或數(shù)據(jù)也可被高速緩存在 RAM 1912中。應(yīng)該明白,所公開的體系結(jié)構(gòu)可以用市場上可購得的各種操 作系統(tǒng)或操作系統(tǒng)的組合來實(shí)施。
用戶可以通過一個(gè)或多個(gè)有線/無線輸入設(shè)備,例如鍵盤1938和諸如 鼠標(biāo)1940等定點(diǎn)設(shè)備將命令和信息輸入到計(jì)算機(jī)1902中。其它輸入設(shè)備 (未示出)可包括話筒、IR遙控器、操縱桿、游戲手柄、指示筆、觸摸屏 等等。這些和其它輸入設(shè)備通常通過耦合到系統(tǒng)總線1908的輸入設(shè)備接口 1942連接到處理單元1904,但也可通過其它接口連接,如并行端口、 IEEE 1394串行端口、游戲端口、 USB端口、 IR接口等等。
監(jiān)視器1944或其它類型的顯示設(shè)備也經(jīng)由接口,諸如視頻適配器1946 連接至系統(tǒng)總線1908。除了監(jiān)視器1944之外,計(jì)算機(jī)通常包括諸如揚(yáng)聲器 和打印機(jī)等的其它外圍輸出設(shè)備(未示出)。
計(jì)算機(jī)1902可使用經(jīng)由有線和/或無線通信至一個(gè)或多個(gè)遠(yuǎn)程計(jì)算機(jī), 諸如遠(yuǎn)程計(jì)算機(jī)1948的邏輯連接在網(wǎng)絡(luò)化環(huán)境中操作。遠(yuǎn)程計(jì)算機(jī)1948 可以是工作站、服務(wù)器計(jì)算機(jī)、路由器、個(gè)人計(jì)算機(jī)、便攜式計(jì)算機(jī)、基 于微處理器的娛樂設(shè)備、對(duì)等設(shè)備或其它常見的網(wǎng)絡(luò)節(jié)點(diǎn),并且通常包括 以上相對(duì)于計(jì)算機(jī)1902描述的許多或所有元件,盡管為簡明起見僅示出了 存儲(chǔ)器/存儲(chǔ)設(shè)備1950。所描繪的邏輯連接包括到局域網(wǎng)(LAN) 1952和/ 或例如廣域網(wǎng)(WAN) 1954等更大的網(wǎng)絡(luò)的有線/無線連接。這一LAN和 WAN連網(wǎng)環(huán)境常見于辦公室和公司,并且方便了諸如內(nèi)聯(lián)網(wǎng)等企業(yè)范圍計(jì) 算機(jī)網(wǎng)絡(luò),所有這些都可連接到例如因特網(wǎng)等全球通信網(wǎng)絡(luò)。
當(dāng)在LAN連網(wǎng)環(huán)境中使用時(shí),計(jì)算機(jī)1902通過有線和/或無線通信網(wǎng)
31絡(luò)接口或適配器1956連接到局域網(wǎng)1952。適配器1956可以方便到LAN 1952的有線或無線通信,并且還可包括其上設(shè)置的用于與無線適配器1956 通信的無線接入點(diǎn)。
當(dāng)在WAN連網(wǎng)環(huán)境中使用時(shí),計(jì)算機(jī)1902可包括調(diào)制解調(diào)器1958, 或連接到WAN 1954上的通信服務(wù)器,或具有用于通過WAN 1954,諸如 通過因特網(wǎng)建立通信的其它裝置。或?yàn)閮?nèi)置或?yàn)橥庵靡约坝芯€和/或無線設(shè) 備的調(diào)制解調(diào)器1958經(jīng)由串行端口接口 1942連接到系統(tǒng)總線1908。在網(wǎng) 絡(luò)化環(huán)境中,相對(duì)于計(jì)算機(jī)1902所描述的程序模塊或其部分可以存儲(chǔ)在遠(yuǎn) 程存儲(chǔ)器/存儲(chǔ)設(shè)備1950中。應(yīng)該理解,所示網(wǎng)絡(luò)連接是示例性的,并且可 以使用在計(jì)算機(jī)之間建立通信鏈路的其它手段。
計(jì)算機(jī)1902可用于與操作上設(shè)置在無線通信中的任何無線設(shè)備或?qū)?體通信,這些設(shè)備或?qū)嶓w例如有打印機(jī)、掃描儀、臺(tái)式和/或便攜式計(jì)算機(jī)、 便攜式數(shù)據(jù)助理、通信衛(wèi)星、與無線可檢測標(biāo)簽相關(guān)聯(lián)的任何一個(gè)設(shè)備或 位置(例如,公用電話亭、報(bào)亭、休息室)以及電話機(jī)。這至少包括Wi-Fi 和藍(lán)牙TM無線技術(shù)。由此,通信可以如對(duì)于常規(guī)網(wǎng)絡(luò)那樣是預(yù)定義結(jié)構(gòu), 或者僅僅是至少兩個(gè)設(shè)備之間的自組織(adhoc)通信。
Wi-Fi,即無線保真,允許從家里沙發(fā)、酒店房間的床上或工作的會(huì)議 室連接到因特網(wǎng)而不需要線纜。Wi-Fi是一種類似蜂窩電話中使用的無線技 術(shù),它使得諸如計(jì)算機(jī)等設(shè)備能夠在室內(nèi)和室外,在基站范圍內(nèi)的任何地 方發(fā)送和接收數(shù)據(jù)。Wi-Fi網(wǎng)絡(luò)使用稱為IEEE 802.11x(例如a、 b、 g等等) 的無線電技術(shù)來提供安全、可靠、快速的無線連接。Wi-Fi網(wǎng)絡(luò)可用于將計(jì) 算機(jī)彼此連接、連接到因特網(wǎng)以及連接到有線網(wǎng)絡(luò)(使用IEEE 802.3或以 太網(wǎng))。
以上所描述的包括所公開的體系結(jié)構(gòu)的各示例。當(dāng)然,描述每一個(gè)可 以想到的組件和/或方法的組合是不可能的,但本領(lǐng)域內(nèi)的普通技術(shù)人員應(yīng) 該認(rèn)識(shí)到,許多其它組合和排列都是可能的。因此,本新穎體系結(jié)構(gòu)旨在 涵蓋所有這些落入所附權(quán)利要求書的精神和范圍內(nèi)的更改、修改和變化。 此外,就在說明書或權(quán)利要求書中使用術(shù)語"包括"而言,這一術(shù)語旨在 以與術(shù)語"包含"在被用作權(quán)利要求書中的過渡此時(shí)所解釋的相似的方式為包含性的,
權(quán)利要求
1.一種計(jì)算機(jī)實(shí)現(xiàn)的連網(wǎng)系統(tǒng),包括用于創(chuàng)建和管理覆蓋虛擬網(wǎng)絡(luò)的對(duì)等(P2P)圖以便在任意節(jié)點(diǎn)之間進(jìn)行P2P通信的管理組件;以及用于向公共節(jié)點(diǎn)展示所述P2P圖的任意節(jié)點(diǎn)的接口組件。
2. 如權(quán)利要求1所述的系統(tǒng),其特征在于,所述接口組件將所述P2P 圖作為虛擬接口來向所述公共節(jié)點(diǎn)展示。
3. 如權(quán)利要求1所述的系統(tǒng),其特征在于,所述管理組件是在物理接口 IP地址上創(chuàng)建的。
4. 如權(quán)利要求3所述的系統(tǒng),其特征在于,所述IP地址是IPv4或IPv6地址。
5. 如權(quán)利要求1所述的系統(tǒng),其特征在于,所述接口組件包括VNIC 驅(qū)動(dòng)程序所控制的虛擬網(wǎng)絡(luò)接口卡(VNIC),所述VNIC驅(qū)動(dòng)程序展示小 型端口驅(qū)動(dòng)程序和文件流接口。
6. 如權(quán)利要求5所述的系統(tǒng),其特征在于,所述管理組件包括用于控 制和配置所述VNIC驅(qū)動(dòng)程序并代表所述VNIC傳遞IP分組的用戶級(jí)應(yīng)用 程序。
7. 如權(quán)利要求1所述的系統(tǒng),其特征在于,所述管理組件便于多播通 信或廣播通信中的至少一個(gè)。
8. 如權(quán)利要求1所述的系統(tǒng),其特征在于,所述管理組件便于穿越防 火墻系統(tǒng)或網(wǎng)絡(luò)地址轉(zhuǎn)換系統(tǒng)中的至少一個(gè)。
9. 如權(quán)利要求1所述的系統(tǒng),其特征在于,所述接口組件包括用于在 VNIC和所述管理組件之間傳遞IP分組的文件流接口 ,并且所述管理組件 用于路由和傳輸所述P2P圖的任意節(jié)點(diǎn)。
10. 如權(quán)利要求1所述的系統(tǒng),其特征在于,所述管理組件包括用于 允許通過所述P 2 P圖的多跳消息路由的路由協(xié)議。
11. 如權(quán)利要求1所述的系統(tǒng),其特征在于,還包括用于在所述圖中 解析名稱記錄的本地名稱解析器。
12. —種對(duì)設(shè)備進(jìn)行連網(wǎng)的計(jì)算機(jī)實(shí)現(xiàn)的方法,包括創(chuàng)建虛擬專用網(wǎng)的任意節(jié)點(diǎn)的P2P圖; 將所述P2P網(wǎng)絡(luò)作為虛擬接口來展示;以及 經(jīng)由所述虛擬接口在所述P2P網(wǎng)絡(luò)的任意節(jié)點(diǎn)和公共網(wǎng)絡(luò)之間傳遞IP通信。
13. 如權(quán)利要求12所述的方法,其特征在于,還包括向所述任意節(jié) 點(diǎn)中的每一個(gè)分配專用IP地址。
14. 如權(quán)利要求12所述的方法,其特征在于,還包括允許消息通過 所述P2P圖的多跳消息路由。
15. 如權(quán)利要求12所述的方法,其特征在于,還包括在所述圖中發(fā) 布名稱記錄和將所述名稱記錄洪泛到所述虛擬專用網(wǎng)的任意節(jié)點(diǎn)。
16. 如權(quán)利要求12所述的方法,其特征在于,還包括展示用于容納 對(duì)應(yīng)的應(yīng)用程序的IPv4和IPv6接口 。
17. 如權(quán)利要求12所述的方法,其特征在于,所述公共網(wǎng)絡(luò)的節(jié)點(diǎn) 經(jīng)由對(duì)等體發(fā)現(xiàn)無服務(wù)器名稱解析協(xié)議來獲得所述任意節(jié)點(diǎn)中的一個(gè)的節(jié) 點(diǎn)信息。
18. 如權(quán)利要求12所述的方法,其特征在于,還包括提供點(diǎn)對(duì)點(diǎn)TCP 連接以供在所述圖的參與節(jié)點(diǎn)之間直接通信。
19. 如權(quán)利要求12所述的方法,其特征在于,還包括在所述任意節(jié) 點(diǎn)之間復(fù)制數(shù)據(jù)庫。
20. —種計(jì)算機(jī)實(shí)現(xiàn)的系統(tǒng),包括-用于創(chuàng)建虛擬專用網(wǎng)的任意節(jié)點(diǎn)的P2P圖的計(jì)算機(jī)實(shí)現(xiàn)的裝置; 用于將所述P2P網(wǎng)絡(luò)作為虛擬接口來展示的計(jì)算機(jī)實(shí)現(xiàn)的裝置;以及 用于經(jīng)由所述虛擬接口在所述P2P網(wǎng)絡(luò)的任意節(jié)點(diǎn)和公共網(wǎng)絡(luò)之間傳 遞IP通信的計(jì)算機(jī)實(shí)現(xiàn)的裝置。
全文摘要
一種用于經(jīng)由覆蓋網(wǎng)絡(luò)將對(duì)等設(shè)備的虛擬專用網(wǎng)展示到公共域中的體系結(jié)構(gòu)。計(jì)算設(shè)備、外圍設(shè)備、以及移動(dòng)設(shè)備可以在物理上分布,但看起來屬于同一虛擬專用(或家庭)網(wǎng),并可從任何位置訪問。好處包括從任何位置訪問用戶媒體/文檔、從一個(gè)位置搜索所有連接的設(shè)備、多播和廣播連接性、管理該專用網(wǎng)和相關(guān)聯(lián)的策略、以及從跨公共網(wǎng)發(fā)現(xiàn)該專用網(wǎng)上的設(shè)備。P2P網(wǎng)絡(luò)和自組織網(wǎng)絡(luò)可以作為虛擬接口來展示,以及利用客戶機(jī)操作系統(tǒng)來創(chuàng)建該虛擬網(wǎng)絡(luò)、編組、構(gòu)圖、與中繼服務(wù)和其它NAT/防火墻穿越方案集成、以及在物理NIC(網(wǎng)絡(luò)接口卡)地址而非虛擬地址上創(chuàng)建P2P覆蓋管理器。
文檔編號(hào)H04L12/46GK101595688SQ200880003200
公開日2009年12月2日 申請日期2008年1月15日 優(yōu)先權(quán)日2007年1月30日
發(fā)明者A·A·亞琛, A·吉弗倫特, S·辛格豪爾, T·曼尼恩 申請人:微軟公司