跨越公共网络以连接任意主机的虚拟专用lan的制作方法

文档序号:7936419阅读:322来源:国知局
专利名称:跨越公共网络以连接任意主机的虚拟专用lan的制作方法
跨越公共网络以连接任意主机的虚拟专用LAN
祖旦 冃足
当今,"家庭"和某些"小公司"网络的概念被限于其上连接PC的物 理网络。对等系统(P2P)已经得到广泛流行,并作为因特网流量的主要来 源中的一个而显现。P2P网络使客户机器能够直接彼此通信而无需托管基 础结构或专用服务器。P2P连网提供至少部分地与容易设置、高效数据传 输、和网络回复力相关的若干优点。尽管最初出于文件共享的目的来构想 和普及,但P2P现在已经显现为用于在因特网中构造有回复力的大规模分 布式服务和应用的一般范例。
按照惯例,某些操作系统提供使主机能够加入名为P2P"覆盖"网络 的专用网的网络解决方案。各节点可以通过名称来标识覆盖网络,并自动 地定位覆盖内的其它活动的参与者。在这些覆盖网络中,活动节点可以创 建并自组织通信路径,从而启用有回复力的通信和低等待时间的数据传输。 例如,覆盖网络可以提供包括消息收发和数据库复制在内的各种服务以供 在活动节点之间通信。
不幸的是,常规P2P覆盖网络概念具有若干局限。该网络只可用于特 别地对覆盖网络API编程的应用程序(意味着该覆盖不能用于一般网络通 信)。另外,多个应用程序共享同一覆盖网络是困难的,并且用户没有配 置和管理覆盖网络的直接标准方式。
无缝虚拟连网是普遍确立的概念,其普遍使用的两个示例包括虚拟专 用网(VPN)和虚拟局域网(VLAN)。用户配置并启动VPN (通过IPSec、 PPTP、或L2TP/IPSec等),VPN通过公共网络(例如因特网)或某一其 它物理介质建立点对点(客户机-服务器)连接。VPN被展示为虚拟网络接 口,该虚拟网络接口有效地隐藏点对点"覆盖"连接,并且相反,展示VPN 客户机、VPN服务器和VPN服务器所展示的网络之间的无缝IP可路由性。 VLAN示出无缝虚拟连网的另一示例。在VLAN中,网络交换机通过对以 太网帧进行特别标记(例如IEEE 802.1q)来将物理链路的集合聚集到逻辑子网中。VLAN上的主机形成单个广播域,其中网络交换机负责视需要转
发分组来为客户机主机创建虚拟子网语义。然而,这些和其它常规网络部 分地不能在专用和公共网络上的对等节点之间提供高效且无缝的连接。
概述
以下提出了简化概述以便提供对在此描述的某些新颖实施例的基本理 解。该概述不是详尽的概览,它不旨在标识关键/重要的元素,也不旨在描 绘其范围。其唯一的目的是以简化的形式来介绍一些概念,作为稍后提出 的更为详细的描述的序言。
所公开的体系结构基于覆盖网络技术提供下文被称为因特网虚拟LAN
(IVLAN)的无服务器对等虚拟专用网。IVLAN允许创建具有标准局域网
属性的虚拟IP网络而不需要中央服务器。该技术允许通常只在单个物理网
络中运行的应用程序实际上以完全分布式的方式在诸如因特网等网络上使
用。在不存在网络基础设施的情况下,该系统还可以使IP应用在通过多跳
自组织通信链路(例如Wi-Fi、蓝牙等)通信的设备上操作。
在一个实施例中,该体系结构在允许形成网络图或覆盖网络的现有 Windows P2P SDK (软件开发工具包)的上下文中描述。为启用IVLAN
场景,可以用允许将消息路由到参与该覆盖网络的任何节点的路由协议来 扩展Windows P2P SDK构图组件。在该覆盖之上,构建基于TAP(或虚
拟网络接口)的虚拟IP层来提供局域网的假象。
该虚拟网络具有标准局域网的所有特征并支持IPv4和IPv6单播、多 播和广播分组。因此,该体系结构允许通常限于局域网的应用程序在因特 网上运行而无需任何修改。
为实现上述及相关目的,本文结合下面的描述和附图描述某些说明性 方面。然而,这些方面仅指示了其中可利用此处公开的原理的各种方法中 的少数几种,且旨在包括所有这些方面及其等效方面。结合附图阅读下面 的详细描述,则其它优点和新颖特征将变得显而易见。
附图简述

图1示出用于将专用网接入扩展到公共域的计算机实现的连网系统。
图2示出所公开的IVLAN能力的逻辑体系结构。 图3示出用于客户机的IVLAN体系结构的更详细的图。 图4示出两个IVLAN节点之间的示例性通信。 图5示出异构网络环境中的VPN。 图6示出在因特网上采用所公开的IVLAN的系统。 图7示出在IVLAN图上采用构建在IVLAN内部的本地DNS解析器组 件来进行名称解析的系统。
图8示出用于专用网络设备的VLAN接入的系统的替换实现。 图9示出经由用户级中间层的替换实现。 图IO示出采用内核级中间层的替换实现。
图11示出其中内核级中间层将从TCP/IP层接收到的关于虚拟IP网络 的所有IP分组传送到用户级应用程序的替换方法。
图12示出采用具有内置P2P组件的内核级虚拟NIC接口驱动程序的
替换方法。
图13示出用于P2P连网体系结构的组件的一个示例性系统。 图14示出对设备进行连网的方法。 图15示出实现专用VLAN的方法。
图16示出在IVLAN体系结构中接收和发送IP分组的方法。 图17示出在IVLAN体系结构中接收和处理IP分组的方法。 图18示出在图中洪泛(flooding)分组的方法。
图19示出了可用于执行所公开的IVLAN体系结构的计算系统的框图。
详细描述
所公开的体系结构组合了对等(P2P)覆盖网络、虚拟专用网(VPN) 和虚拟局域网(VLAN)的技术,以形成将在本说明书全文中被称为因特网 虚拟LAN (IVLAN)的新颖实体。虽然使用了术语"因特网",但应当理 解,所公开的体系结构不限于因特网,而也可应用于任何公共网络。IVLAN 是包括通过因特网连接的任意主机的专用虚拟网络。在IVLAN中, 一组节点形成覆盖网络。然而,该覆盖网络可具有以下三个属性中的一个或多个。 类似于VPN,该覆盖网络支持IP路由。因此,发送到该覆盖网络的其它成 员(或节点)的分组通过覆盖自身来路由(逐跳地)。然而, 一般而言,
覆盖网络支持某种形式的路由,并且不只限于IP路由。类似于VLAN和 VPN两者,IVLAN被展示为应用程序可以使用标准Winsock调用来访问的 网络接口 (出于本讨论的目的,在覆盖网络的上下文中每一主机被分配一 专用IPv4禾卩/或IPv6地址)。类似于VLAN, IVLAN支持广播/多播语义。 换言之,在覆盖内分配的专用地址(例如IPv6)共享共同的网络地址前缀。 当在IVLAN上传送子网广播时,分组被转发到参与底层覆盖的所有主机。
IVLAN中的成员关系可以在每一连接的基础上来认证,因此IVLAN 是专用的。然而,每一主机不必先验地知道每一其它主机的身份。相反, 对每一主机而言,仅仅确认其对等体是IVLAN的授权成员(并且因此是可 信成员)就已足够。作为类推,IVLAN将蜂窝网络中找到的"直接连接" 或多连接或路由连接的语义等效物带入因特网。
现在参考附图,附图中相同的附图标记用于指代在全文中相同的元素。 在以下描述中,为解释起见,描绘了众多具体细节以提供对本发明的全面 理解。然而,显然,这些新颖实施例可以在没有这些具体细节的情况下实 现。在其它情况下,以框图形式示出了公知的结构和设备以便于描述它们。
最初参考附图,图1示出用于将专用网接入扩展到公共域的计算机实 现的连网系统100。系统100包括客户机104的管理组件102,用于创建和 管理覆盖用于客户机104和其它任意节点110之间的P2P通信的虚拟网络 108 (例如虚拟专用网(VPN))的对等(P2P)图106。换言之,客户机 104可创建其它VPN节点112可作为对等设备加入其中的图106。
客户机104还可包括用于将P2P图106的任意P2P节点110展示给公 共网络118上所设置的公共节点116的接口组件114。
其它VPN节点112也可包括管理组件102和接口组件114来支持作为 其它P2P节点110的一部分加入P2P图106并根据对等技术来不仅在其它 P2P节点和客户机104之间而且与公共节点116进行通信。
接口组件114将P2P图106作为虚拟接口来展示给公共节点116。管
7理组件102在物理接口 IP地址上创建,其中该IP地址是IPv4和/或IPv6 地址。如此处所描述的,接口组件114包括由虚拟网络接口卡(VNIC)驱 动程序所控制的VNIC,其中VNIC驱动程序展示用于在VNIC和管理组件 102之间传递IP分组以便路由并传输到P2P图106的任意节点的小型端口 驱动程序和文件流接口。管理组件102包括用于启用在P2P图106上的多 跳消息路由的路由协议。管理组件102包括用于控制和配置VNIC驱动程 序并代表VNIC传递IP分组的用户级应用程序。管理组件102的其它方面 方便了多播通信或广播通信中的至少一个,以及对防火墙系统或网络地址 转换系统中的至少一个的穿越。
图2示出所公开的IVLAN能力的逻辑体系结构200。体系结构200包 括用于处理虚拟TCP/IP的虚拟IP层202,其在用于处理P2P通信的P2P 层204之上。虚拟层202和P2P层204在真实IP层206和物理接口 208(例 如NIC)之上提供。
图3示出用于客户机的IVLAN体系结构300的更详细的图。体系结构 300包括VNIC 302和用户级IVLAN应用程序304。 VNIC 302包括展示标 准NDIS(网络驱动器接口规范,例如5.1版本)小型端口驱动程序接口 308 和文件流接口 310的VNIC驱动程序306 (也被称为IVLAN驱动程序)。 通过NDIS接口, TCP/IP协议栈(或层)312与IVLAN驱动程序306交换 分组,使得现有应用程序314能够在IVLAN上运行并能够与其它P2P图节 点通信或通过物理NIC316与公共节点通信。通过文件流接口 310, IVLAN 驱动程序306将这些IP分组传递到IVLAN应用程序以通过P2P图路由和 传输。
IVLAN用户应用程序304控制并配置VNIC驱动程序308,并代表
VNIC 302发送和接收IP分组。在一个实施例中,IVLAN应用程序304使 用Windows P2P SDK (软件开发工具包)来形成并维护连接IVLAN的所
有节点的覆盖网络(或图)。如以下所述,Windows P2P SDK可支持通过 图链路、用于参与节点之间的直接通信的点对点TCP连接、和图节点之间 的复制数据库来进行消息洪泛。IVLAN用户应用程序304通过引入启用在 P2P图上的多跳消息路由的路由协议来扩展该行为。在一个实现中,采用自组织(ad hoc)按需距离向量路由协议(ADOV),因为该协议最小化控 制通信开销并最大化性能。AODV的按需本性允许对图情况中的改变进行 快速反应。另外,该协议总是寻找在两个节点之间提供最小等待时间的路 由。
在IVLAN应用程序304开始时,其启用VNIC驱动程序接口 308并向 VNIC 302分配IPv4和IPv6地址。因此,从TCP/IP栈312到达并且以VNIC 接口 308为目标的每一以太网分组都被VNIC驱动程序306捕获,并例如 使用CreateFile()(创建文件)、ReadFile()(读文件)、和WriteFile()(写 文件)API来通过文件流接口 310被转发到IVLAN用户应用程序304。文 件流接口 310接口允许IVLAN用户应用程序304通过文件系统中所展示的
文件名来与内核内设备驱动程序直接通信。
以太网分组随后被封装在内部P2P消息中并被传递到P2P图以路由到 指定目的地(经由物理NIC 316上的TCP/IP连接)。只有IP分组被路由 到图中,而非IP以太网分组(例如ARP地址解析协议、IPv6邻居请求) 在本地处理或简单地丢弃。
在目的地节点上,IVLAN用户应用程序通过图中的邻居节点来接收该 通信。目的地从接收到的P2P消息中提取以太网分组并将这些分组传递到 相关联的VNIC。 VNIC将以太网分组转发到TCP/IP栈,如同这些分组是 从物理网络控制器316到达的一样。
图4示出两个IVLAN节点之间的示例性通信。源节点的源传统应用程 序(表示为传统应用程序2)向目的地节点的目的地应用程序发起分组通信。 该分组通信由源VNIC截取并由源P2P用户应用程序(表示为IVLAN用户 应用程序)通过源TCP/IP层路由到源物理NIC (表示为物理NIC)。源物 理NIC通过图将该通信路由到邻居节点的邻居物理NIC,而邻居物理NIC 又将该通信路由到邻居P2P用户应用程序。邻居P2P应用程序检査分组上 的P2P封装,并将该通信返回给邻居物理NIC以通过图路由到目的地物理 NIC。目的地物理NIC将该通信沿目的地栈向上路由到目的地P2P用户应 用程序,以通过目的地VNIC路由到预期目的地传统应用程序。
如上所述并且将在此处更详细地说明的,所公开的体系结构为传统应
9用程序提供了充分利用标准通信层的解决方案,以使IP可通过P2P网络覆 盖来支持以提供无服务器VPN。该体系结构使通常只在单个物理网络中运 行的许多应用程序能够实际上以完全分布式的方式来使用。在不存在网络 基础设施的情况下,如对于与地震和火灾相关联的紧急情况中的第一响应 者而言,所公开的体系结构使得IP应用程序能够在通过多跳自组织和异构
通信链路(Wi-Fi、蓝牙等)来彼此通信的一组设备上使用。
以下场景呈现基于P2P的VPN的应用。这些场景描述可以如何利用虚
拟IP覆盖网络的示例性实现。
图5示出异构网络环境500中的VPN。在该场景中,不同的设备(例
如PC、膝上型计算机、PDA等)在自组织网络502中彼此连接,并使用异
构链路(Wi-Fi、蓝牙等)来通信。这种场景在没有网络基础设施可用的紧
急情况下最可能是可行的。
在此,PC1和PC2经由有线以太网交换机504连接,并分别具有IP地 址192.168.0.23和192.168.0.56。 PC2还具有无线(例如Wi-Fi)适配器, 通过该无线适配器,PC2连接到自组织无线网络502中的膝上型计算机。 PC2中的Wi-Fi适配器被分配了 IP地址192.168丄3。膝上型计算机中的 Wi-Fi适配器具有IP地址192.168丄21。膝上型计算机还能使用Wi-Fi以自 组织方式连接到PDA1。 PDA1具有IP地址192.168.1.6。
膝上型计算机还可具有蓝牙适配器,通过该蓝牙适配器,膝上型计算 机连接到个人区域网(PAN)中的PDA2和PDA3。在PAN中,膝上型计 算机、PDA2和PDA3分别具有IP地址192.168.0.1 、 192.168.0.2和 192.168.0.5。
显而易见,在当前场景中,这些设备中的任一个都不可能与所有其它 设备通信。例如,PC1不能与膝上型计算机或PDA1、 PDA2和PDA3通信。 类似地,PDA1不能与PDA2、 PDA3、 PC1和PC2通信。问题是这些设备 不属于单个LAN,这使得依赖于通过广播和/或多播发现其它节点的能力的 应用程序不能运行。在这种自组织环境502中,基于P2P的虚拟IP网络504 提供好处。现在,在经由基于P2P的VPN 504连接之后,所有设备变成单 个虚拟LAN(或子网)的一部分,并且因此可以与所有成员通信。IP分组通过P2P覆盖在各设备之间路由。
图6示出在因特网604上采用所公开的IVLAN 602的系统600。IVLAN
602还可以用因特网接入在联网的计算机之间提供连接。即使连接到 IVLAN 602的所有计算机在路由器/防火墙/NAT设备之后并且只具有专有 IP地址,但这些计算机仍将能够像在LAN中一样彼此访问。IVLAN 602 与传统VPN相比的独特性是无服务器和非集中式性质。这使得本来不能运 行的一些应用程序能够在IVLAN 602上运行。例如,IVLAN可被用来在通 过因特网连接的计算机之间创建虚拟LAN,从而使得这些计算机能玩多玩 家游戏或运行只可在局域网中运行的应用程序。
IVLAN 602还可被用于组织的商务需求。对于需要VPN来连接多个分 公司的组织而言,IVLAN 602可以用作无服务器VPN。否则,使用传统VPN 解决方案要求寻找固定公共IP地址并在每一办事处主存一 VPN服务器。 另外,在使用IVLAN 602时既没有中央瓶颈也没有单点失效。
IVLAN 602还允许使用远程访问软件而无需知道公共IP地址也无需改 变路由器或防火墙设置来将端口映射到PC。这对于IVLAN 602而言很方 便。只要各计算机使用相同的对等体ID是IVLAN 602的一部分,则各计 算机可以使用该对等体ID作为计算机名来彼此通信。
因特网上的计算机通过DHCP (动态主机配置协议)而被给予动态IP 地址、通过NAT (网络地址转换)设备而被给予共享或过滤IP地址、或被 给予由于防火墙而很难达到的IP地址。在这种情况下创建TCP/IP通信或 者是不可能的或者需要精细的应用级策略来绕过这些限制。TCP/IP套接字 和服务器套接字还依赖于DNS (域名服务器)来将对人友好的主机名解析 成IP地址。标准DNS不能很好地处理具有过滤或动态IP地址的计算机, 并且更新花费太长的时间来传播。希望创建将DNS扩展到新方向(如在 DNS中存储即时消息收发用户名和在场信息)的应用程序的开发者受到 DNS系统的技术和策略问题的阻碍。
这些问题可以通过实现所公开的VLAN体系结构来解决。网络上的每 一对等体随后被给予唯一的IP地址,即使该对等体在防火墙后面或在其归 属网络中不具有稳定的IP地址。
11在基于P2P的因特网中,希望成为服务器的对等体只需发布该对等体 想要的域名的名称记录,并创建在其它对等体应该用于联系的端口处监听 的服务器套接字。其它对等体现在可以直接打开到该对等体的客户机套接 字连接。该基于P2P的因特网带来许多优点。第一,域名可具有任何形式,
如MyTestDomain19、 AlphaBravoCharlie、或Hollywood-Movies、或传统的 www.mytest-domain.com。第二, 一个或多个对等体可以发布同一 DNS名 称。在这种情况下,对两个或更多对等体所发布的域的客户机请求中的一 些由某些对等体来处理,而其余的由其它一些对等体来处理。这类似于其 中一个主机名解析成多个不同的IP地址来帮助负载平衡的DNS循环。第 三,给定主机名的服务端口可以跨全球多个不同的对等体来发布。 一个对 等体可以是提供网页的主机服务端口 80,而其它对等体可以是用于即时消 息收发的主机服务端口 3000。
对于IP地址分配,虚拟IP网络中的每一节点应当能够获得唯一的IP 地址。对于IVLAN体系结构,以下方案可被用来向VNIC接口分配IP地 址并将IP地址映射到对等体ID。
在第一方案中,对等体ID可被用作VNIC的IP地址。该方案的优点 是它是最简单的方案。在此,要求管理员在主机中设置分接设备,并以在 虚拟IP地址空间中唯一的IP地址来启动该设备。因为P2P网络上的所有 通信都是基于对等体ID (或节点ID)的,所以需要将IP地址映射到对等 体ID (或节点ID)的机制。
第二方案使用动态唯一 IP作为所发布的记录。该第二方案使用P2P图 维护复制数据库的能力,以发布所使用的IP地址的列表。加入对等体首先 检査其本地数据库以寻找其自身先前发布的有效IP地址记录,并且如果找 到这样的记录,则将该IP地址分配给其VNIC。如果加入对等体没有找到 任何自身发布的有效IP地址记录,则加入对等体检查其本地数据库以寻找 所有节点所发布的所有IP地址记录,并随后选择在任何所发布的IP记录中 都未找到的随机IP地址。加入对等体以"、新/尸、<;^教#>"的形式来 发布该新IP地址记录,其具有等于临时IP期限(TEMP—IP—EXPIRY)(例如l分钟)的期限。y^教J^可以是加入节点的节点ID或加入节点的对等体 ID的散列。
代替在图中发布该临时IP记录,也可以完成经由路由管理器的IP记 录广播。如果在该临时IP期满时间内未发现冲突,则加入节点假定无人使 用该地址并永久地将其分配给该加入节点的VNIC。该节点还以更长的期满 时间(例如7天)来在图中发布该IP地址记录。在冲突的情况下,发布了 具有更接近0的随机数的临时IP记录的节点获胜,并且另一节点将选择另
一随机IP地址并随后重复整个过程。在获得成功的IP地址后,每一对等体
以一期满时间(例如7天)在图中发布其IP地址记录。在对等体在线并且
该对等体所发布的IP地址记录将要期满的情况下,该对等体用新的期满时 间再次重新发布/更新IP地址记录。
该第二方案具有若干优点。第一,与第一方案相比,用户不必使用IP
地址形式的对等体ID,并且因此可以使用任何任意对等体ID。第二,用户 仅仅需要确保使用唯一的对等体ID而不必烦扰IP地址的唯一性。唯一的 对等体ID比唯一的IP地址更易确保,因为可以使用任何任意串作为对等 体ID。因此,与其中每一用户必须确保IP地址形式的对等体ID应具有相 同的网络ID但具有唯一的主机ID的第一方案相比,该第二方案适于不了 解或只了解很少连网的用户。
在IVLAN体系结构中,只在图中对基于IP的以太网分组进行路由, 而丢弃所有非基于IP的分组。 一个例外是ARP和ICMPv6请求分组。在目 的地IP地址与解析节点的地址处于同一子网中时,ARP请求与IPv4 —起 使用,以将该地址解析成MAC (媒体访问控制)地址。ARP请求在链路层 广播,且支持ARP请求的一个可能的方式是使用图的洪泛支持来用于广播。
代替丢弃或使用图来解析ARP请求,ARP请求可由每一节点在VNIC 驱动程序内部本地地处理。不同的VNIC的MAC地址由静态算法从与该节 点相关联的虚拟IP地址中导出。结果,在VNIC驱动程序接收到针对IP 地址A.B.C.D (例如192.168.100.35)的ARP请求分组时,该驱动程序创建 ARP回复,其中对应于所请求的IP地址的MAC地址是本地地生成的。在 虚拟网络使用IPv6地址并且需要将这些地址解析成MAC地址时,可以采用同一机制来处理ICMP v6邻居请求。
在一个实现中,MAC地址是通过在IP地址的开头处加上前缀00-FF 来从该IP地址中生成的。因此,对于IP地址192.168.100.35 (以16进制 是C0.A8.64.23),所生成的MAC地址是00-FF-C0-A8-64-23。
名称到IP地址的动态名称解析是用户曾经使用过的,并且因此应当在 虚拟IP网络内部支持。用于名称解析的传统机制是DNS。然而,虚拟IP 网络中不存在DNS服务器是可能的。因此,应当利用不同的名称解析机制。
用于发布名称的一种机制是使用图的支持来发布名称解析记录。当对 等节点在图中添加名称记录时,该记录被自动地洪泛到虚拟网络中的所有 节点并存储在其数据库中。每一名称解析记录可具有相关联的期满时间(例 如7天)。每一节点负责在其期满前重新发布/更新名称解析记录。
所公开的IVLAN体系结构的一个优点是比标准DNS更快地对更新作 出响应的替换P2P域名系统。IVLAN提供基于P2P的名称解析。因为P2P 名称解析不使用DNS系统,所以主机名可以是任何串。另外,对等体可发 布对应于不同的网站或web服务的一个或若干名称。
在操作系统中的TCP/IP协议栈中实现的标准名称解析器可能不知道 底层P2P图,所以该图不能直接用来解析名称。该解析器首先检査本地名 称以用于从名称映射到IP地址,随后检查用于该映射的主文件,并且如果 未找到,则将该DNS査询发送到DNS服务器。以下两个方案可被用来将 网络名解析成IP地址,并且进一步解析成对等体ID。
第一解析方案使用主文件。在此,每一对等体维护对等体ID、 IP地址 和所有对等体所发布的名称记录的列表(称为名称列表或NL)。在对等体 接收到具有对等体id Pid并具有唯一的IP地址IPr的对等体所发布的新名 称记录Nr时,其将该记录添加到它的NL中。该对等体还在主文件中插入 条目。在名称记录期满或被删除时,该条目也被从NL和主文件中删除。
第二解析方案使用本地DNS解析器组件。图7示出采用构建在IVLAN 内部的本地DNS解析器组件702来进行IVLAN图上的名称解析的系统 700。在此,并非将名称记录添加到主文件,而是每一对等体实现本地DNS 解析器组件702作为IVLAN用户应用程序304的一部分,以在本地解析所
14有DNS请求。解析器组件702维护对等体ID、 IP地址和所有对等体所发 布的名称记录的NL列表704,并通过图的记录洪泛机制来提供更新。在对 等体接收到具有对等体ID Pid并具有唯一的IP地址IPr的对等体所发布的 新名称Nr记录时,该对等体在NL 704中添加新条目。在名称记录期满或 被删除时,对应的条目也从NL 704中删除。
在使用该方案的IVLAN网络中, 一任意IP地址对于虚拟DNS服务器 是固定的,该IP地址随后不由该虚拟网络中存在的任何对等体使用。在生 成对于名称Nr的名称解析(DNS)请求时,VNIC 302从TCP/IP栈312接 收该请求,并将该请求转发到IVLAN应用程序304。 IVLAN用户应用程序 304检査从本地VNIC 302接收到的所有IP分组,并且如果IP分组是DNS 请求,则用户应用程序304将该DNS请求传递到本地DNS解析器组件702。 本地DNS解析器组件702走査所发布的名称(NL)的列表704,并用分配 给发布该名称记录Nr的对等体(具有对等体ID IP)的IP地址IPr来回复。 此后,接收到的针对该目的地IP IPr的任何IP分组被转发到具有对等体ID PI的对等体。
该第二解析方案与先前方案之间的不同之处是,多个对等体可发布单 个域名,并且本地DNS解析器可将一些请求路由到一个对等体并将一些请 求路由到其它对等体以用于负载平衡。另外,改变主文件是不合适的,因 为如果IVLAN图意外终止,则输入到主文件中的名称记录条目将保留在那 里,并且该文件将不被还原到其原始形式。注意,名称解析也通过使用 IVLAN支持多播语义的能力的多播DNS来支持。
在P2P网络上覆盖IP的多个好处中的一个是在覆盖上的路由可以穿过 防火墙和NAT。实现这一点是因为(虚拟IP网络的)IP分组的所有路由 是由引入到P2P SDK的构图组件的路由管理器来完成的。该路由管理器通 过P2P图路由(虚拟IP网络的)所有IP分组,并且因此一旦节点是P2P 图的一部分,则即使该图中的任何其它节点在物理IP网络中的NAT或防 火墙后面,也有可能通过虚拟IP网络向它们发送数据或通信。
在P2P网络上覆盖IP的一个优点是设备移动性。按照惯例,在物理IP 网络中,两个设备只能在知道对应的IP地址的情况下彼此通信。如果在通信期间设备中的任何一个将其IP地址改变为某一其它随机IP地址,则通信 中断。第二设备随后需要知道第一设备的新IP地址以使通信继续进行。所
公开的IVLAN体系结构固有地支持设备移动性。因为使用对等体ID来通 过P2P覆盖网络路由消息,所以即使虚拟IP网络中的节点改变它在其物理 NIC中的IP地址,只要该对等体以同一对等体ID连接到P2P图(或虚拟 IP网络),则它就可以与另一节点通信。
图8示出用于专用网络设备的虚拟LAN接入的系统800的替换实现。 在该特定实现中,系统800将功能封装在NDIS小型端口驱动程序和用户 模式进程中。NDIS驱动程序展示虚拟接口 (具有IPv4和/或IPv6地址), 并将所有分组传递到用户模式覆盖管理器802 (例如,IVLAN用户应用程 序304)。覆盖管理器802负责至少若干操作使用凭证存储804来对进入 IVLAN的认证、相邻设备的发现和选择、路由管理和分组转发。设置界面 806 (例如类似于VPN客户端)使用户能够配置新IVLAN,并配置IVLAN 来按需或在引导时自动地启动。
在一替换实现中,采用覆盖管理器802来在本地节点上创建路由方案, 但随后利用IP的属性来路由分组。换言之,并非将P2P展示为向上反向与 用户模式进程通信的小型端口驱动程序,而是由用户模式进程来简单地驱 动栈中的几乎是TCP/UDP的等效物的一级。该后一实现避开内核模式到用 户模式再回到内核模式操作以及可能发生的所有TCP封装。因此,通过在 IP层或TCP/UDP层创建网络可以达到更好的性能。覆盖管理器802可以使 用例如PNRP (对等体名解析协议)808来与该栈进行通信。也可采用链路 本地多播名称解析(LMNR)协议,因为IVLAN支持分组多播。
IVLAN的图2的逻辑体系结构200不要求当虚拟IP层在P2P之上时 应设计和开发新TCP/IP层。以下是可用于实现这点的不同的可能方法。图 9示出经由用户级中间层902的替换实现900。在TCP/IP层904之上引入 用户级中间层902。中间层902使用P2P组件906维护与P2P网络中的其 它节点的P2P连接,并向应用程序提供API卯8以供与P2P网络进行接口 。 该API 908可类似于标准套接字API,其将允许编程者基于网络套接字通信 的知识来开发利用IVLAN层的能力的应用程序。
16图10示出采用内核级中间层1002的替换实现1000。在该方法中,在 TCP/IP层904和NIC驱动程序1004之间引入内核级中间层1002。该中间 层的角色是将目的地为虚拟IP层的分组桥接到P2P网络。存在可通过P2P 覆盖网络执行通信的方法。图IO示出中间层1002可包括负责与P2P网络 通信的内置P2P组件1006的一种方法。尽管有效,但该解决方案可能难以 管理,因为对P2P网络的支持应被集成在内核模块中。
图11示出替换方法1100,其中内核级中间层1102将从TCP/IP层904 接收到的针对虚拟IP网络的所有IP分组传送到用户级应用程序(例如P2P 组件)1104,而用户级应用程序1104又使用P2P API将各分组传送到P2P 网络中的目的地节点。目的地不是虚拟IP网络的其余分组被传递到物理 NIC。在操作系统(例如Windows)中,该层例如可被实现为NDIS中间驱 动程序1106。
另一替换方法采用内核级虚拟NIC接口驱动程序。在该方法中,引入 对TCP/IP层看似为仅仅是另一 NIC的内核级虚拟NIC驱动程序。在概念 上,该方法类似于内核级中间层方法。不同之处是TCP/IP栈负责将各分组 路由到正确的NIC,所以驱动程序不必确定各分组的目的地是否为VNNIC。 这里也存在可通过P2P覆盖网络完成通信的两种方法。
图12示出采用具有内置P2P组件1204的内核级虚拟NIC接口驱动程 序1202的替换方法1200。 P2P组件1204负责与P2P网络通信。该解决方 案具有与图io的使用内置P2P组件1006的内核级中间层相同的缺点。
微软P2P SDK是使应用程序编程者能够创建基于P2P的应用程序的一 组连网API。该SDK是更大的P2P连网平台的一部分,该平台是创建P2P 应用程序的开发者平台。
图13示出用于P2P连网体系结构的组件的一个示例性系统1300。系 统1300包括提供P2P名称解析的PNRP组件1302。 PNRP是安全的、无服 务器的、可伸缩的以及动态的名称注册和名称解析协议,其使用将对等体 名解析成IPv6地址的、类似于DHT (分布式散列表)系统的体系结构。对 等体名是用于通信的端点,其可以是计算机、用户、组、服务等。对等体 名可被散列成128位对等体标识符,并且使用类DHT算法来检索发布该标识符的主机的位置。PNRP不使用路由表,而相反使用PNRP条目的高速缓
存。高速缓存维护算法确保每一节点维护云或一组其它节点的适当的知识, 以解析对等体名。
系统1300还可包括负责维护连接的对等体的网格或图并提供数据跨 该图的洪泛和复制的构图组件1304。该图是各节点的IP之上的覆盖,这些 节点被连接成使得任何节点可通过一系列逻辑邻居连接与所有其它节点通 信。图中的邻居是距离为一个图跳(经由TCP连接直接连接)的节点。
连接良好的图在任何两个节点之间都具有一路径。图具有"小直径", 即,图的最远边中的节点之间的相对小的跳数。即使一些节点或一些连接 消失,该图也是稳健的并且保持是连接的。如图所示,构图组件1304使用 洪泛和同步子组件1306、数据库(或存储)子组件1308以及图维护子组件 1310。
对于洪泛和同步子组件1306,该对等体图使用洪泛来在图中发布数据 (或名称)记录。记录名是通过将点和图名追加到主机名来计算的。在一 节点在图中发布(或添加)新纪录时,该记录经由洪泛被传播到所有节点。 若一节点在已发布的记录中进行任何改变(例如,更新该记录),则这些 更新也通过洪泛被传播到所有节点。若一节点删除记录,则洪泛也将该删 除传播到图中的所有节点。在图中所发布的每一记录由全局唯一标识符 (GUID)来唯一地标识。每一记录还具有版本号和寿命或状态。同步进程 还确保对等体具有相同的记录集。
图维护子组件1310包括定义该图如何进化的算法,以维护稳健的连接 性和维护小直径。图维护组件1310通过计算图的签名并使用该签名来检测 分区来实现这一点。如果图被分区,则每一分区将具有不同的签名。图维 护子组件1310还允许节点在其进入图中和离开该图时建立适当的连接而不 创建"空穴"。
当在图中发布记录时,具有多个连接的图节点将接收该记录的多个副 本。为决定保持哪些连接和移除哪些连接,图节点评估所洪泛的记录并计 算其连接的双向效用指数。效用指数是指示该连接在传送所发布的记录时 的有用性的数字。如果从一连接接收到先前已经从某一其它连接接收到的记录,则降低该连接的效用指数。否则,如果通过一连接接收到新记录, 则增加该连接的效用指数。在正在进行的基础上,图维护算法尝试基于节 点所具有的所有连接的效用指数和在洪泛期间接收到的信息来移除无用的 连接并建立新连接。以此方式,该算法尝试将图会聚于对当前通信模式的 洪泛最优的拓扑结构。
为连接到该图,加入节点连接到已经连接到该图的节点。加入节点解 析联系节点的IPv6地址来连接。这可以通过DNS、对等体发现、和诸如 PNRP等名称解析方法、或任何其它定制的方法来完成。如果所选联系节点
具有少于最大可允许数量的与邻居的图连接,则该节点将发送接受响应。 否则,该节点将发送拒绝响应连同推举列表,该列表是图中的其它节点的 列表。接收到拒绝响应的加入节点在推举列表中选择随机节点并尝试联系 它。
在节点从图断开连接时,该节点向邻居节点(相邻节点)发送断开连 接消息。该断开连接消息携带包括除与其断开连接的邻居之外的各个邻居 在内的推举列表。在其它节点接收到断开连接消息时,其尝试连接到推举
列表中的对等体。这在修复由节点的断开连接所引起的任何分区时有所帮 助。
随着节点从图中连接和断开连接,在图中可能出现分区。每一图具有
图签名和多个联系节点。联系节点的数量与图的大小成正比。联系节点和
图签名信息被周期性地刷新。如果联系节点和图签名信息变得失效,则出
现分区。在检测到分区时,做出与联系节点通信的尝试以重新连接该图。 图是具有定义用于洪泛信息的拓扑结构的连接的一组节点的关联。图
自身是不安全的。图的安全性可以通过组组件1312中的可插入模块来提供。 编组是PNRP组件1302、对等体构图(经由构图组件1304)和组安全性(经 由安全子组件1314和组SSP (安全支持提供者)1316)的组合。编组提供 该组的成员的凭证的管理和该组中的记录的安全发布。
组安全子组件1314使用对等体名来标识该组的每一成员并标识每一 组。在创建组时,创建该组的新公钥/私钥对,组名基于该公钥/私钥对。拥 有对应于该组的对等体名的私钥的成员是组拥有者。参与被限于被称为组成员的对等体集合。每一组成员需要安全凭证来证明组的成员资格。 一旦 对等体成为组的一部分,则组成员使用构图来建立多个邻居连接并优化图 的形状以用于洪泛。
每一对等体具有相关联的对等体数据库(或存储1308),其存储与图 相关联的、在该组的所有成员之间安全地发布和同步的记录集。构图确保 所发布的记录被传播到所有节点,而编组防止未授权的记录在整个图上传
播。成员之间的记录复制使用SSL (安全套接字层)来提供记录数据的加
密和数据完整性。
在一新对等体加入组时,该新对等体自动地接收从其所附连到的当前 组成员所发布的所有记录。在最初同步之后,组成员周期性地重新同步所 发布的记录来确保所有组成员一致地具有所发布的数据的相同视图。对等 体使用本地搜索机制来搜索所发布的记录。在本地搜索中,组成员只搜索 其本地对等体数据库来寻找该记录,并且不向其它组成员发送搜索査询。
以下是支持提供IVLAN体系结构的各个方面的方法的一系列流程图。 尽管出于解释简明的目的,此处例如以流图或流程图形式示出的一个或多 个方法被示出并描述为一系列动作,但是可以理解和明白,这些方法不受 动作的次序的限制,因为根据本发明,某些动作可以按与此处所示并描述 的不同的次序和/或与其它动作同时发生。例如,本领域技术人员将会明白 并理解,方法可被替换地表示为一系列相互关联的状态或事件,诸如以状 态图的形式。此外,并非一方法中所示的所有动作都是对于新颖实现所必 需的。
图14示出对设备进行连网的方法。在1400处,创建虚拟专用网的任 意节点的P2P图。在1402处,将P2P网络展示为虚拟接口。在1404处, 经由该虚拟接口在P2P网络的任意节点和公共网络之间传递IP通信。
图15示出实现专用虚拟LAN的方法。在1500处,接收设备操作系统。 在1502处,将IVLAN功能作为操作系统的一部分来封装为小型端口驱动 程序(例如NDIS)和用户模式进程。在1504处,使用IPv4禾卩/或IPv6协 议经由小型端口驱动程序和用户模式进程来展示IVLAN。在1506处,向 用户模式覆盖管理器发送接收到的所有分组。在1508处,该管理器提供进入IVLAN的认证。在1510处,该管理器提供邻居设备发现和选择。在1512 处,该管理器提供路由管理。在1514处,该管理器提供向IVLAN的设备 的分组转发。
图16示出在IVLAN体系结构中接收和发送IP分组的方法。在1600 处,启动IVLAN用户应用程序。在1602处,用户应用程序启用VNIC驱 动程序接口。在1604处,用户应用程序向虚拟接口分配IPv4和IPv6地址。 在1606处,VNIC驱动程序截取所接收到的并且预期发往VNIC接口的分 组,并通过文件流接口将其转发到用户应用程序。在1608处,将分组封装 在P2P消息中并通过图来路由到目的地。
图17示出在IVLAN体系结构中接收和处理IP分组的方法。在1700 处,目的地用户应用程序通过邻居节点接收分组。在1702处,用户应用程 序从P2P消息中提取以太网分组并将该以太网分组发送到VNIC。在1704 处,VNIC将该以太网分组转发到TCP/IP栈以供正常的栈处理。
图18示出在图中洪泛分组的方法。在1800处,启动图上的发现。在 1802处,接收用于广播和/或多播的分组。在1804处,向各个图节点洪泛 分组。在1806处,节点向邻居节点转发所接收到的分组。在1808处,节 点丢弃冗余的分组。
IVLAN适于聚集一组因特网(或公共网络)主机以便于各种应用。可 以假定,IVLAN关系通常是长期的。因此,至少可以创建以下类型的 IVLAN:家庭IVLAN、扩展的家庭IVLAN、和社交网络IVLAN。
IVLAN通过提供广播语义来提供支持现有应用程序和体验的能力。广 播语义暗示许多现有协议和应用程序将在虚拟网络上不经修改地运行。例 如,网络浏览器可被用来跨IVLAN中的所有机器来发现资源。其它广播体 验包括发现会议、人和媒体。
IVLAN通过提供转发语义来提供透明"超节点"能力的能力。因为IP 路由在IVLAN上操作,所以即使在成对连接性不可获得时,也可在IVLAN 中的所有主机之间实现连接性。作为副作用,具有良好连接性的节点能无 缝地用作其它主机之间的通信的转发代理。这一能力启用了基于活动主机 的动态连接性而自动地创建的超节点角色。IVLAN还提供有回复力的通信的能力。动态覆盖路由可被用来构造有
回复力的网络,其"路由绕过"因特网拥塞或失效。此外,可以采用IVLAN (例如在没有广播语义的情况下)来执行快速病毒签名传播或软件分发。
IVLAN能允许的其它好处包括文件共享和访问(例如尤其是媒体共 享)。换言之,可以使"家庭"中的多个PC能够在其间共享信息,而不管 这些计算机位于何处。具体地,该系统可允许对媒体源(例如媒体中心、 媒体库等)的远程发现和访问。能够允许实况流传输(以及甚至多方流传 输)。IVLAN提供对位于"家庭"中的设备和其它资源的无缝发现。IVLAN 通过链接形成消费管理域以易于远程网络管理的PC来便于家庭网络管理 和故障诊断。IVLAN促进远程访问,包括远程帮助和会议。另外,例如, 通过创建个人网站的方式来向朋友和家人进行内容发布提供对IVLAN中 的朋友和家人的自动且安全的共享。
IVLAN能在应用级向用户展示是在本体系结构的构想之内的。换言之, 用户可能感觉IVLAN是"专用网络"或"网络圈"。因此,应用程序可以 按这些网络圈来展示功能。例如,考虑照片发布应用程序。并非请用户枚 举可访问这些照片的各个用户,而是该应用程序可提供"发布到你的家庭 网络圈"的选项。这自动地展示照片以供只通过对应的VLAN来访问。
可以采用应用程序对IVLAN的知晓。如果应用程序知道其正在使用 IVLAN,则该应用程序可被配置成"看到"实际邻居链路,从而使诸如DHT 等更高级的系统能够针对该拓扑结构来优化。
在另一实现中,可以采用多个同时IVLAN,以使客户机可以同时加入 多个IVLAN。在一个示例性实现中,每一活动的IVLAN以专用地址范围 创建新接口。注意,该机器可多次加入同一IVLAN, 一次代表每一个登录 的用户。
IVLAN支持到外部网络的桥接,并且因此支持各活动节点之间的发现 和通信。然而,在一个方面,该设计可以是限制性的,因为每一节点位于 包含可能不在该IVLAN中活动的设备、PC、和服务的网络上。理想地,每 一节点可以通告到其本地网络的路由。在更稳健的实现中,IVLAN外的并 且因此不在该IVLAN的广播域内的资源(例如设备)可被配置成包括诸如网络发现等应用程序特征。这可以采用允许授权设备在IVLAN中获得身份
的代理模型。
一种认证方案是与P2P编组相关联的方案。该方案本质上创建专用证 书授权机构(CA)并向所有授权方发行成员资格证书。该方法具有主机可 通过简单地验证证书共享共同的根来彼此信任的优点。为解决证书撤销, 可以采用基于口令的组的概念,其中节点使用口令来访问该组并从管理节 点获得持久成员资格证书。
在覆盖网络中,端到端TCP可能具有低到中带宽、可变等待时间、和 中到低可靠性。TCP拥塞控制在该环境中可有效工作,然而,其它优化也 是可能的。
感兴趣的是多层封装。IP头部压縮可被引入到IVLAN环境中,以解 决多层封装(例如应用程序》TCP-〉IP》IPSec)。上述替换实现中的一些设 法完全移除一些IP层,但该优化能以更多代码(或复杂度)为代价来出现。 另一优化可以是通过简单地用点对点IPSec替换覆盖隧道来消除覆盖隧道。
如果IVLAN点对点链路能使用IPSec,则可以消除许多隧道开销(无 需TLS和TCP封装)。然而,要使其发生,IPSec应当支持用户到用户IPSec, 因为IVLAN正在使用按用户凭证。
每一节点将经历穿过的通信和目的地是本地的通信。该系统可被配置 成确定将多少带宽专用于通信转发。另外,该系统可以基于端对端应用程 序需求或基于公平策略来区分转发哪些通信的优先级。
在IVLAN中,每一节点的专用IPv6地址驻留在共享子网中,所以诸 如BGP (边界网关路由)等分层路由方案可能是不适当的。如上所述,一 种方法涉及每一节点将其邻居的列表发布到通过覆盖网络复制的数据库 中。每一节点随后使用该数据来构造其自己的路由表(基于最短跳数路径)。
虚拟环路由(VRR)可以是另一解决方案。另选地,可以运行分布式路由 表(DRT)协议(在PNRP路由发现下层的协议)。换言之,更一般而言, 通常用于移动自组织网络的所有协议都能适用,例如AODV、前摄协议 (DSDV)和基于DHT的协议(例如VRR)。
对于邻居管理,P2P覆盖网络可以寻求多个主动连接。可以考虑这些连接的稳定性以及平衡路由优化的可能性和路由维护成本。
如任何其它VPN —样,可以提供允许用户手动地连接到所需IVLAN
的"拨号器"客户端。这一点的逻辑扩展是支持按需拨号。此外,已配置
的IVLAN可以处于休眠中,从而展示专用IPv6地址。在该IPv6地址被实 际使用时,该接口变为活动并连接。
在分割和安全上下文中,很自然地将IVLAN认为是机器级构造。另选 地,可以将IVLAN的范围定为供单独的用户使用(网络分区)或甚至定为 特定应用程序(网络视图)。
可以定义机器级策略。可以使用防火墙来阻止分组转发(从而使节点 成为仅仅是终端站)。
还可以基于将IVLAN对于域加入的机器的使用来在企业中设置限制。 此外,可以实施限制来确保IVLAN不能被用来桥接去往本地物理网络的通 信。
可以提供IVLAN支持来使之在服务器SKU可用,以使服务器可以用 作家庭的中央节点。
服务可被用来管理最终用户身份并便于IVLAN邀请。已配置的IVLAN 可以存档在网络云中,从而使用户能够从任何因特网主机下载和配置 IVLAN。 IVLAN可以部分地置于无线网状网络之上。无线网状网络可依赖 于同构或异构无线技术。在一个实现中,IVLAN简单地重用无线网状链路 来减少重复通信并增强性能。
在接受来自IVLAN中的对等机器的连接或通信之前,机器可以自动地 确认该主机的健康度。考虑到主机可能代表其它主机转发通信,IVLAN不 应被用于传播蠕虫、病毒或恶意软件。鉴于此,可以用对等方式采用轻量 级健康确认过程。如果检测到不健康的对等体,则可以调用一服务来支持 矫正。
以下是可由所公开的IVLAN体系结构提供的一组连网体验的高级描 述。在过去几年中,连网集中于允许普遍性和协作性计算。随着Wi-Fi热 点、EV-DO (进化数据优化)和诸如NAP (网络访问协议)等社团解决方 案的流行,连网处于实现该前景的尖端。EV-DO和其它"无处不在的网络"技术允许用户通信和协作而不管其位置。社团公民和顾客/伙伴将能够可靠 且安全地协作而不管从属关系。围绕无线和通信栈(例如OSI模型)的新 创新使计算机能够以记录速度传递和处理信息。
与此同时,用户想要从PC获得的体验已经更加成熟。音乐、照片和电 影的体验不再是"令人高兴"的特征,相反,这些体验是操作系统的预期
的一部分。例如,用户现在期望容易地导入并完善其照片,在PC、 MP3播 放器、媒体扩展器和移动设备(例如PDA和智能电话)上下载并收听音乐。 尽管视频/电视是较新的体验,但用户将期望能够管理电视和个人视频内容。 换言之,下一代用户体验应当包括在任何地点、任何时间对在任何设 备上的内容和信息的易于管理的无处不在的访问。用户需要普遍性和协作 性计算和内容的统一。以下是IVLAN体系结构可以提供的各类型场景的一 般描述。
在家庭网络示例的上下文中,用户在家中具有多个PC,并想要能够在 家庭网络PC和设备之间共享信息。这可以用插件应用程序来完成。为创建 家庭网络,用户下载新插件并安装它。在安装之后,该插件呈现允许配置 新网络的设置或加入页面。用户能够选择家庭网络的名称和口令。作为安 装该软件包的用户,该用户能作为该新网络的管理员来添加。在完成设置 之后,用户被带到提供关于如何向新网络添加更多PC的指令的网络控制 台。该指令可包括名称和口令,设置另一PC (可任选地,提供USB钥匙 并在另一PC上使用该钥匙),以及经由允许用户下载或传输该插件的强口 令。
为加入新网络,用户遵循指示去往另一PC并将其加入新网络的指令。 在安装插件包之后,PC被加入到该网络。该网络已经被列出,并且用户可 以简单地输入该网络的口令。呈现允许将该网络自动发布到其它设备并经 由口令容易地加入的网络控制台。使用该控制台,用户看到其它PC被列出, 并且向用户呈现了至关重要的安全信息和当前操作系统更新状况。还可以 在这两台PC上向用户呈现所有帐户,并且这两台PC已经被添加到人员区 域。用户随后可以审阅其它PC上的帐户和状况。最后,用户还可以看到附 连到PC和网络的设备的列表。附连到PC的设备已经被添加到网络。呈现网络设备以供确认。控制台对于家庭网络管理而言是轻量级的,其具有管 理用户的能力、查看/管理PC更新的能力和査看/管理与家庭网络相关联的 设备的能力。
IVLAN体系结构便于从任何位置访问单个桌面。用户可以经由第二PC 看到已经设置了帐户并能够登录到该新PC。新PC桌面可以具有与其它PC
所具有的相同的主题和相同的元素(例如相同的桌面背景等)。可以在呈
现一个所有文档的聚集视图的文档区域中浏览新PC和第一 PC上的文档。 类似地,照片部分可以呈现该网络可访问的所有照片。另外,媒体播放器 应用程序已经对网络上可访问的音乐进行了分类。还可为新PC复制打印机 和打印设置。换言之,复制桌面设置,将用户帐户复制到其它PC,使文档、 照片、音乐等全可经由正常位置访问,并且设置设备以供使用。
还使网络连接性通过因特网可用,并且使网络中的所有设备和内容通 过因特网对用户可用。例如,用户可从因特网访问家庭网络上的PC并将文 档打印到家庭打印机。
在又一示例中,用户可以在家庭网络上创建使得可通过IVLAN对用户
可用的网站。可以添加照片和其它类型的文档和媒体以供査看或下载。通 过将音频、照片和/或媒体文件拖放到体验中可将内容添加到网站。例如, 用户还可以选择发布日历。该网站可以直接从网络PC向所选个人发布,并 通告所选联系人。
作为联系人接收者,授予站点访问并査看内容。该联系人可以订阅并 查看用户的日历。该联系人还可以订阅用户对网站和照片所做的任何更新 或媒体更新。还可以向该联系人提供评论功能来对用户内容进行评论和/或 注释。换言之,这些能力至少包括接收通告(例如电子邮件或祝词)、访 问该站点并查看内容、订阅内容的不同"订阅源"、以及对内容进行评论。
一旦在该专用网站上公布了评论,则可以发送新评论已被公布的通知。 作为响应,添加新内容并向联系人接收者发送已经添加了媒体以供査看的 通知。因此,可以通过IVLAN来在本地提供新公布的内容的通知,并且在 本地提供新改变的订阅源的通知。
如果用户此后在远程位置拍摄照片,则可以向该专用网站上传内容,如同该用户在家庭网络中的另一PC上一样。基于登录到家庭网络,发布站 点识别新内容并提示用户是否应当公布该内容。用户确认并且该内容被公 布。向联系人接收者通知该新内容,并且用户能够设置来自该照相机的所 有图片应被发布到该站点的规则。因此,提供了从远程位置上传内容、远 程地向该站点添加内容、家庭网络集成、以及从任何位置自动地将来自照 相机的图片上传到家庭网络PC的能力。
以下是可被利用来允许与所公开的IVLAN体系结构相关联的体验的
组件的描述。
跨各场景的身份的统一的概念是创建这些体验的一部分。身份提供"了 解"和"被了解"的手段,并允许端对端的安全可靠的连接性。身份可被
分为两个类别私人和联系人。
私人身份是向网络和其他人描述"我是"谁的逻辑信息集。私人身份 包含诸如昵称或家庭地址等元数据和用来向其他人和联系人证明谁身份的 凭证。
联系人是一个人"知道"或"信任"的其他人的私人身份。联系人被 用来认证、授权和管理关于另一个人的元数据。对私人联系人列表中的各 个人而言,在本地显式地信任或经由可信第三方来验证是合乎需要的。
各个人或PC—起的关联利用了组语义。该组能够彼此通信和认证到该 组中。 一旦进入该组,则通信安全地发生而不易于受外来者攻击。该组的 每一成员信任其他成员,并且如果需要,则数据可以基于与访问控制列表
(ACL)相关联的成员许可来在各组成员之间传递。
本地或分布式网络中的节点之间的无缝通信对于允许这些体验而言是 合乎需要的。应当提供端对端的安全可靠的连接性来允许这些体验。
因为IP地址是动态的,所以可以采用一机制来标识端点而不必害怕这 些标识符改变。这些标识符映射到身份(或可以作为身份的那些事物), 所以可以发生从身份到端点的解析。该技术可以是认证身份并返回与所注 册的身份的相关联的端点的会合服务器。因为可以预见可能有数十亿用户 在利用IVLAN体系结构,所以提供由身份来保护并且无需服务器来解析的 固定标识符的对等解决方案可以是替换解决方案。PNRP是实现大多数这些需求的解决方案。
因为通信将在对等设备之间直接通过因特网发生,所以需要边缘安全 性来保护用户。用户必须知道他们确实在与正确的联系人通信、该通信是 安全的、以及他们在与之通信的人只在接收他们授权接收的信息。对该防
火墙考虑的一个解决方案是IPSec。
网络设备发现向用户提供发现并关联网络上的设备的能力。 一旦与一
机器相关联,则可以使用该设备,如同它直接附连到PC上一样。 一旦该设 备与PC相关联,则用户随后可以管理与该系统相关联的设备,或利用安装
的特征(例如打印机选项)来更有效地利用该设备。
下一代设备是可以通过因特网与之通信以及跨因特网通信的设备(例 如因特网照相机)。换言之,用户可以在夏威夷拍摄照片,并使用所公开
的IVLAN体系结构将其自动地发送回家中的PC。 WS-设备协议和其它技
术套件可以允许该场景。
在以上场景中,在各机器之间复制内容和状态。其真正是用户的桌面 的状态、机器的状态(例如存在或关联了什么设备)、和内容的状态(例 如正在进行ACL等)。该状态的复制允许用户从任何位置访问桌面。
在上述示例中,用户做的第一件事是将PC关联在一起。这可以使用用 于设备的web服务技术以关联PC来促进,从而形成组关联。 一旦发生该 关联,则内容/状态复制可以开始为每一私人身份将状态跨越同步到新关联 的PC。最后,可以在全球PNRP云中将家庭网络组作为可以被解析到家庭 网络中的任何节点的端点来发布。 一旦解析,则可以通过利用NAT和防火 墙穿越解决方案以确保连接性来在IPv6上建立连接。 一旦连接建立,则内 容/状态同步利用可以发生。这还可以包括远程地调用设备动作的机制。例 如,这可以采用来自组关联的代理执行的形式。
如在本申请中所使用的,术语"组件"和"系统"旨在表示计算机相 关的实体,其可以是硬件、硬件和软件的组合、软件、或者执行中的软件。 例如,组件可以是但不限于,在处理器上运行的进程、处理器、硬盘驱动 器、(光和/或磁存储介质的)多个存储驱动器、对象、可执行代码、执行 的线程、程序、和/或计算机。作为说明,运行在服务器上的应用程序和服
28务器都可以是组件。 一个或多个组件可以驻留在进程和/或执行的线程内, 且组件可以位于一台计算机内上/或分布在两台或更多的计算机之间。
现在参考图19,示出了可用于执行所公开的IVLAN体系结构的计算 系统1900的框图。为了提供用于其各方面的附加上下文,图19及以下讨 论旨在提供对其中可实现该各方面的合适的计算系统1900的简要概括描 述。尽管以上描述是在可在一个或多个计算机上运行的计算机可执行指令 的一般上下文中进行的,但是本领域的技术人员将认识到,新颖实施例也 可结合其它程序模块和/或作为硬件和软件的组合来实现。
一般而言,程序模块包括执行特定任务或实现特定抽象数据类型的例 程、程序、组件、数据结构等等。此外,本领域的技术人员可以理解,本 发明的方法可用其它计算机系统配置来实施,包括单处理器或多处理器计 算机系统、小型机、大型计算机、以及个人计算机、手持式计算设备、基 于微处理器的或可编程消费电子产品等,其每一个都可操作上耦合到一个 或多个相关联的设备。
所示各方面也可以在其中某些任务由通过通信网络链接的远程处理设 备来执行的分布式计算环境中实施。在分布式计算环境中,程序模块可以 位于本地和远程存储器存储设备中。
计算机通常包括各种计算机可读介质。计算机可读介质可以是可由计 算机访问的任何可用介质,且包括易失性和非易失性介质、可移动和不可 移动介质。作为示例而非限制,计算机可读介质可以包括计算机存储介质 和通信介质。计算机存储介质包括以存储如计算机可读指令、数据结构、 程序模块或其它数据等信息的任何方法或技术实现的易失性和非易失性、 可移动和不可移动介质。计算机存储介质包括但不限于RAM、 ROM、 EEPROM、闪存或者其它存储器技术、CD-ROM、数字视频盘(DVD)或 其它光盘存储、磁带盒、磁带、磁盘存储或其它磁存储设备、或可以用于 存储所需信息并且可以由计算机访问的任何其它介质。
再次参考图19,用于实现各方面的示例性计算系统1900包括计算机 1902,计算机1902包括处理单元1904、系统存储器1906和系统总线1908。 系统总线1908向各系统组件提供接口,包括但不限于系统存储器1906到处理单元1904的接口。处理单元1904可以是市场上可购买到的各种处理 器中的任意一种。双微处理器和其它多处理器体系结构也可用作处理单元 1904。
系统总线1908可以是若干种总线结构中的任一种,这些总线结构还可 互连到存储器总线(带有或没有存储器控制器)、外围总线、以及使用各 类可购买到的总线体系结构中的任一种的局部总线。系统存储器1906包括 只读存储器(ROM) 1910和随机存取存储器(RAM) 1912。基本输入/输 出系统(BIOS)储存在诸如ROM、 EPROM、 EEPROM等非易失性存储器 1910中,其中BIOS包含帮助诸如在启动期间在计算机1902内的元件之间 传输信息的基本例程。RAM 1912还可包括诸如静态RAM等高速RAM来 用于高速缓存数据。
计算机1902还包括内置硬盘驱动器(HDD)1914(例如,EIDE、SATA), 该内置硬盘驱动器1914还可被配置成在合适的机壳(未示出)中外部使用; 磁软盘驱动器(FDD)1916(例如,从可移动磁盘1918中读取或向其写入); 以及光盘驱动器1920 (例如,从CD-ROM盘1922中读取,或从诸如DVD 等其它高容量光学介质中读取或向其写入)。硬盘驱动器1914、磁盘驱动 器1916和光盘驱动器1920可分别通过硬盘驱动器接口 1924、磁盘驱动器 接口 1926和光盘驱动器接口 1928连接到系统总线1908。用于外置驱动器 实现的接口 1924包括通用串行总线(USB)和IEEE 1394接口技术中的至 少一种或两者。
驱动器及其相关联的计算机可读介质提供了对数据、数据结构、计算 机可执行指令等的非易失性存储。对于计算机1902,驱动器和介质容纳适 当的数字格式的任何数据的存储。尽管以上对计算机可读介质的描述涉及 HDD、可移动磁盘以及诸如CD或DVD等可移动光学介质,但是本领域的 技术人员应当理解,示例性操作环境中也可使用可由计算机读取的任何其 它类型的介质,诸如zip驱动器、磁带盒、闪存卡、盒式磁带等等,并且任 何这样的介质可包含用于执行所公开的体系结构的新颖方法的计算机可执 行指令。
多个程序模块可储存在驱动器和RAM 1912中,包括操作系统1930、一个或多个应用程序1932、其它程序模块1934和程序数据1936。 一个或 多个应用程序1932、其它程序模块1934和程序数据1936可包括例如管理 组件102、客户机104、接口组件114、虚拟IP层202、 P2P层204、真实 IP层206、用户应用程序304、 VNIC 302和子组件(306、 308、 310) 、 TCP/IP 层312、传统应用程序(应用程序l、应用程序2)、本地DNS解析器702 和NL 704、覆盖管理器802、凭证存储804、设置和监控组件806、PNRP 808、 和系统900、 100、 1100、 1200、 1300的组件。
所有或部分操作系统、应用程序、模块和/或数据也可被高速缓存在 RAM 1912中。应该明白,所公开的体系结构可以用市场上可购得的各种操 作系统或操作系统的组合来实施。
用户可以通过一个或多个有线/无线输入设备,例如键盘1938和诸如 鼠标1940等定点设备将命令和信息输入到计算机1902中。其它输入设备 (未示出)可包括话筒、IR遥控器、操纵杆、游戏手柄、指示笔、触摸屏 等等。这些和其它输入设备通常通过耦合到系统总线1908的输入设备接口 1942连接到处理单元1904,但也可通过其它接口连接,如并行端口、 IEEE 1394串行端口、游戏端口、 USB端口、 IR接口等等。
监视器1944或其它类型的显示设备也经由接口,诸如视频适配器1946 连接至系统总线1908。除了监视器1944之外,计算机通常包括诸如扬声器 和打印机等的其它外围输出设备(未示出)。
计算机1902可使用经由有线和/或无线通信至一个或多个远程计算机, 诸如远程计算机1948的逻辑连接在网络化环境中操作。远程计算机1948 可以是工作站、服务器计算机、路由器、个人计算机、便携式计算机、基 于微处理器的娱乐设备、对等设备或其它常见的网络节点,并且通常包括 以上相对于计算机1902描述的许多或所有元件,尽管为简明起见仅示出了 存储器/存储设备1950。所描绘的逻辑连接包括到局域网(LAN) 1952和/ 或例如广域网(WAN) 1954等更大的网络的有线/无线连接。这一LAN和 WAN连网环境常见于办公室和公司,并且方便了诸如内联网等企业范围计 算机网络,所有这些都可连接到例如因特网等全球通信网络。
当在LAN连网环境中使用时,计算机1902通过有线和/或无线通信网
31络接口或适配器1956连接到局域网1952。适配器1956可以方便到LAN 1952的有线或无线通信,并且还可包括其上设置的用于与无线适配器1956 通信的无线接入点。
当在WAN连网环境中使用时,计算机1902可包括调制解调器1958, 或连接到WAN 1954上的通信服务器,或具有用于通过WAN 1954,诸如 通过因特网建立通信的其它装置。或为内置或为外置以及有线和/或无线设 备的调制解调器1958经由串行端口接口 1942连接到系统总线1908。在网 络化环境中,相对于计算机1902所描述的程序模块或其部分可以存储在远 程存储器/存储设备1950中。应该理解,所示网络连接是示例性的,并且可 以使用在计算机之间建立通信链路的其它手段。
计算机1902可用于与操作上设置在无线通信中的任何无线设备或实 体通信,这些设备或实体例如有打印机、扫描仪、台式和/或便携式计算机、 便携式数据助理、通信卫星、与无线可检测标签相关联的任何一个设备或 位置(例如,公用电话亭、报亭、休息室)以及电话机。这至少包括Wi-Fi 和蓝牙TM无线技术。由此,通信可以如对于常规网络那样是预定义结构, 或者仅仅是至少两个设备之间的自组织(adhoc)通信。
Wi-Fi,即无线保真,允许从家里沙发、酒店房间的床上或工作的会议 室连接到因特网而不需要线缆。Wi-Fi是一种类似蜂窝电话中使用的无线技 术,它使得诸如计算机等设备能够在室内和室外,在基站范围内的任何地 方发送和接收数据。Wi-Fi网络使用称为IEEE 802.11x(例如a、 b、 g等等) 的无线电技术来提供安全、可靠、快速的无线连接。Wi-Fi网络可用于将计 算机彼此连接、连接到因特网以及连接到有线网络(使用IEEE 802.3或以 太网)。
以上所描述的包括所公开的体系结构的各示例。当然,描述每一个可 以想到的组件和/或方法的组合是不可能的,但本领域内的普通技术人员应 该认识到,许多其它组合和排列都是可能的。因此,本新颖体系结构旨在 涵盖所有这些落入所附权利要求书的精神和范围内的更改、修改和变化。 此外,就在说明书或权利要求书中使用术语"包括"而言,这一术语旨在 以与术语"包含"在被用作权利要求书中的过渡此时所解释的相似的方式为包含性的,
权利要求
1.一种计算机实现的连网系统,包括用于创建和管理覆盖虚拟网络的对等(P2P)图以便在任意节点之间进行P2P通信的管理组件;以及用于向公共节点展示所述P2P图的任意节点的接口组件。
2. 如权利要求1所述的系统,其特征在于,所述接口组件将所述P2P 图作为虚拟接口来向所述公共节点展示。
3. 如权利要求1所述的系统,其特征在于,所述管理组件是在物理接口 IP地址上创建的。
4. 如权利要求3所述的系统,其特征在于,所述IP地址是IPv4或IPv6地址。
5. 如权利要求1所述的系统,其特征在于,所述接口组件包括VNIC 驱动程序所控制的虚拟网络接口卡(VNIC),所述VNIC驱动程序展示小 型端口驱动程序和文件流接口。
6. 如权利要求5所述的系统,其特征在于,所述管理组件包括用于控 制和配置所述VNIC驱动程序并代表所述VNIC传递IP分组的用户级应用 程序。
7. 如权利要求1所述的系统,其特征在于,所述管理组件便于多播通 信或广播通信中的至少一个。
8. 如权利要求1所述的系统,其特征在于,所述管理组件便于穿越防 火墙系统或网络地址转换系统中的至少一个。
9. 如权利要求1所述的系统,其特征在于,所述接口组件包括用于在 VNIC和所述管理组件之间传递IP分组的文件流接口 ,并且所述管理组件 用于路由和传输所述P2P图的任意节点。
10. 如权利要求1所述的系统,其特征在于,所述管理组件包括用于 允许通过所述P 2 P图的多跳消息路由的路由协议。
11. 如权利要求1所述的系统,其特征在于,还包括用于在所述图中 解析名称记录的本地名称解析器。
12. —种对设备进行连网的计算机实现的方法,包括创建虚拟专用网的任意节点的P2P图; 将所述P2P网络作为虚拟接口来展示;以及 经由所述虚拟接口在所述P2P网络的任意节点和公共网络之间传递IP通信。
13. 如权利要求12所述的方法,其特征在于,还包括向所述任意节 点中的每一个分配专用IP地址。
14. 如权利要求12所述的方法,其特征在于,还包括允许消息通过 所述P2P图的多跳消息路由。
15. 如权利要求12所述的方法,其特征在于,还包括在所述图中发 布名称记录和将所述名称记录洪泛到所述虚拟专用网的任意节点。
16. 如权利要求12所述的方法,其特征在于,还包括展示用于容纳 对应的应用程序的IPv4和IPv6接口 。
17. 如权利要求12所述的方法,其特征在于,所述公共网络的节点 经由对等体发现无服务器名称解析协议来获得所述任意节点中的一个的节 点信息。
18. 如权利要求12所述的方法,其特征在于,还包括提供点对点TCP 连接以供在所述图的参与节点之间直接通信。
19. 如权利要求12所述的方法,其特征在于,还包括在所述任意节 点之间复制数据库。
20. —种计算机实现的系统,包括-用于创建虚拟专用网的任意节点的P2P图的计算机实现的装置; 用于将所述P2P网络作为虚拟接口来展示的计算机实现的装置;以及 用于经由所述虚拟接口在所述P2P网络的任意节点和公共网络之间传 递IP通信的计算机实现的装置。
全文摘要
一种用于经由覆盖网络将对等设备的虚拟专用网展示到公共域中的体系结构。计算设备、外围设备、以及移动设备可以在物理上分布,但看起来属于同一虚拟专用(或家庭)网,并可从任何位置访问。好处包括从任何位置访问用户媒体/文档、从一个位置搜索所有连接的设备、多播和广播连接性、管理该专用网和相关联的策略、以及从跨公共网发现该专用网上的设备。P2P网络和自组织网络可以作为虚拟接口来展示,以及利用客户机操作系统来创建该虚拟网络、编组、构图、与中继服务和其它NAT/防火墙穿越方案集成、以及在物理NIC(网络接口卡)地址而非虚拟地址上创建P2P覆盖管理器。
文档编号H04L12/46GK101595688SQ200880003200
公开日2009年12月2日 申请日期2008年1月15日 优先权日2007年1月30日
发明者A·A·亚琛, A·吉弗伦特, S·辛格豪尔, T·曼尼恩 申请人:微软公司
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1