用于发现对等覆盖网络的方法和装置 基于 35U.S.C.§.119 要求优先权
本专利申请要求于 2009 年 3 月 11 日递交的、 名称为 “Methods and Apparatus for Creation, Advertisement and Discovery of Peer To Peer Overlay Networks” 的临时 申请 No.61/159,387 的优先权, 该临时申请被转让给本申请的受让人, 故以引用方式将其 明确地并入本文。
本专利申请还要求于 2009 年 6 月 8 日递交的、 名称为 “Methods and Apparatus for Creation, Advertisement and Discovery of Peer To Peer Overlay Networks” 的 临时申请 No.61/185,110 的优先权, 该临时申请被转让给本申请的受让人, 故以引用方式 将其明确地并入本文。
技术领域
本申请一般地涉及覆盖网络的操作, 并且更具体地, 涉及用于建立、 公告和发现对 等覆盖网络的方法和装置。 背景技术
在称为 “对等” 覆盖网络的网络中, 成员节点在没有基于服务器的基础结构的情况 下获取服务。在对等覆盖网络中, 对等节点相互协作, 从而既提供服务又维护网络。可以在 一个或多个基础网络 ( 例如利用网际协议 (IP) 的网络 ) 之上构建对等覆盖网络。
通常在对于多个节点公共的介质 ( 诸如因特网 ) 上进行覆盖公告后构成覆盖网 络。但是, 可能不总是存在用于将覆盖公告者和对加入覆盖网络感兴趣的节点联合在一起 的、 对于因特网的接入。这种情况可能存在问题, 因为即使可能不能获得因特网接入, 仍然 可能需要公告和构成覆盖网络。例如, 两个节点可能单独地使用链路本地广播来尝试建立 覆盖网络。 但是, 这会导致第一组节点加入由节点之一公告的第一覆盖网络, 第二组节点加 入由另一个节点公告的第二覆盖网络。 这导致同时的覆盖网络建立, 其会导致连接孤岛。 如 果节点用来公告覆盖网络的接口不同, 这种情况也会发生。
即使因特网可用, 节点也可能难于加入被公告的覆盖网络。 例如, 已经决定加入覆 盖网络的节点需要知道如何到达控制加入过程的引导对等点。通常, 要求引导对等点具有 全局可路由的地址, 并且节点可能难于到达这些引导对等点。
因此, 存在与覆盖网络建立、 公告和发现相关联的两个难题。 第一个难题是如何减 少会引起连接孤岛的同时覆盖建立的机会。第二个难题是使得加入覆盖网络更普遍和有 益, 并且为了这样, 需要简化引导对等点的可到达性。
用于解决覆盖网络发现问题的一种方式使用域名服务 (DNS) 基础结构来公告覆 盖网络。例如, 每个节点使用动态的类 DNS 的基础结构来公告覆盖网络。不幸的是, 这种技 术低效, 并且使得节点难于发现和加入特定的覆盖网络。 例如, 这种方式不解决同时覆盖网 络建立的问题, 因为其假定总是可以获得因特网接入来公告或者发现覆盖。 而且, 由于实现 在 DNS 基础结构上的搜索不可调整, 发现是更严重的问题。因此, 期望具有一种简单的经济合算的机制, 其用于促成对等覆盖网络的建立、 公 告和发现。发明内容
在一个或多个方面中, 提供了一种包括方法和装置的通用发现系统, 其促成了对 等覆盖网络的建立、 公告和发现。 在通用发现系统的各种实现方式中, 所有节点尝试变为可 基于可接入的通信介质而识别的覆盖网络的一部分。而且, 每个节点总是尝试变为通用覆 盖网络的一部分。一旦变为通用覆盖网络的一部分, 所发布的覆盖网络公告使用统一节点 定位符 (UNL) 来促成到引导对等点的容易连接。
在一个方面, 提供了一种用于操作节点以发现对等覆盖网络的方法。所述方法包 括: 检测允许所述节点与其它节点进行通信的一个或多个通信链路 ; 确定可使用至少一个 通信链路来接入通用覆盖网络 ; 从所述至少一个通信链路中选择被选择的通信链路 ; 以及 使用所述被选择的通信链路来加入所述通用覆盖网络。
在一个方面, 提供了一种用于发现对等覆盖网络的装置。所述装置包括 : 收发机, 其被配置来检测允许所述节点与其它节点进行通信的一个或多个通信链路 ; 以及处理器, 其被配置来确定可使用至少一个通信链路来接入通用覆盖网络, 从所述至少一个通信链路 中选择被选择的通信链路, 以及使用所述被选择的通信链路来加入所述通用覆盖网络。 在一个方面, 提供了一种用于发现对等覆盖网络的装置。 所述装置包括 : 用于检测 允许所述节点与其它节点进行通信的一个或多个通信链路的模块 ; 用于确定可使用至少一 个通信链路来接入通用覆盖网络的模块 ; 用于从所述至少一个通信链路中选择被选择的通 信链路的模块 ; 以及, 用于使用所述被选择的通信链路来加入所述通用覆盖网络的模块。
在一个方面, 提供了一种用于发现对等覆盖网络的计算机程序产品。所述计算机 程序产品包括计算机可读介质, 其包含代码, 所述代码可被处理器执行来 : 检测允许所述节 点与其它节点进行通信的一个或多个通信链路 ; 确定可使用至少一个通信链路来接入通用 覆盖网络 ; 从所述至少一个通信链路中选择被选择的通信链路 ; 以及使用所述被选择的通 信链路来加入所述通用覆盖网络。
在阅读了所给出的附图简要说明、 说明书和权利要求后, 其它方面将变得显而易 见。
附图说明
通过参考下面结合附图进行的说明, 本文描述的上述方面将变得显而易见, 其 图 1 示出了包括示例性通用发现系统的网络 ; 图 2 示出了根据所述通用发现系统的、 在节点处使用的示例性发现装置 ; 图 3 示出了根据所述通用发现系统而使用的示例性公告 ; 图 4 示出了根据所述通用发现系统而使用的示例性覆盖数据库 ; 图 5 示出了根据所述通用发现系统的、 用于操作在节点处的发现装置的示例性方 图 6 示出了根据所述通用发现系统的、 用于操作在节点处的发现装置的示例性方6中:
法;
102349279 A CN 102349298说明书3/12 页法;
图 7 示出了根据所述通用发现系统的、 用于操作在节点处的发现装置的示例性方 图 8 示出了说明通用发现系统的示例性操作的图 ; 图 9 示出了根据所述通用发现系统的、 用于操作在节点处的发现装置的示例性方 图 10 示出了根据所述通用发现系统的、 用于在节点处使用的示例性发现装置。法;
法; 以及
具体实施方式
下面的说明描述了通用发现系统的多个方面, 所述通用发现系统用于促成对等覆 盖网络的建立、 公告和发现。
图 1 示出了包括示例性通用发现系统的网络 100。网络 100 包括基础网络 102, 其 在一种实现方式中包括网际协议网络。虽然基础网络 102 被示出为单个实体, 但是所述基 础网络可以包括任何数量和 / 或类型的网络, 诸如 WAN、 LAN、 无线网络或者任何其它类型的 网络。 根据通用发现系统的方面, 提供了用于在在图 1 中所示的全部或者任意节点处使 用的发现装置 (DA)。例如, DA 在网络 100 的所选择的节点处被示出, 并且用于提供本文所 述的通用发现系统的功能。
连接的通用覆盖网络
基础网络 102 包括 “连接的通用覆盖网络” 104。连接的通用覆盖网络 104 被定义 为由因特网连接的设备建立的单个通用覆盖网络。连接的通用覆盖网络 104 包括基础网络 102 的节点的子集, 它们被分配对应的覆盖节点标识符。例如, 连接的通用覆盖网络初始包 括节点 50、 60、 80 和 95。节点使用基础网络 102 的服务来彼此通信。例如, 连接的通用覆盖 网络 104 的节点通过由基础网络 102 提供的通信链路而连接, 以构成期望的路由路径。也 应当注意, 连接的通用覆盖网络 104 可以具有使用任何路由配置的任何拓扑或者架构, 并 且不限于在图 1 中所示的配置。
断开的通用覆盖网络
网络 100 还包括 “断开的通用覆盖网络” 106。断开的通用覆盖网络 106 被定义为 由非因特网连接的设备建立的单个通用覆盖网络。例如, 断开的通用覆盖网络初始包括节 点 4、 6、 8 和 10。 断开的通用覆盖网络 106 的节点在不使用基础网络的服务的情况下彼此通 信。例如, 节点使用任何适当的传输技术 ( 诸如 WiFi 技术 ) 来彼此通信。当一个节点初始 公告断开的覆盖网络 106 并且每个其它的节点逐渐地加入时, 所述节点构成断开的覆盖网 络 106。应当注意, 断开的通用覆盖网络 106 不限于使用 WiFi 技术, 并且可以使用任何其 它类型的通信技术。而且, 通用发现系统适合于用于任何数量和 / 或类型的断开的覆盖网 络。也应当注意, 断开的通用覆盖网络 106 可以具有使能任何路由配置的任何拓扑或者架 构, 并且不限于在图 1 中所示的配置。
发现装置
DA 在节点处工作以提供根据本文所述的通用发现系统的下面的功能。
1. 维护与在特定节点处可用的通信接口相关联的覆盖网络的数据库。
2. 在通电或者在工作期间的任何时间确定可用的通信链路。
3. 根据可用的通信链路来选择要加入的覆盖网络。
4. 如果可能的话, 加入连接的通用覆盖网络。
5. 如果可能的话, 加入断开的通用覆盖网络。
6. 在加入通用的连接或者断开的覆盖网络后, 公告并发现任何覆盖网络, 以便使 用 UNL 来访问引导对等点。
示例性操作
在通用发现系统的工作期间, 每个节点尝试基于该节点可用的通信介质 ( 或者 “链路” ) 而变为一个或多个覆盖网络的一部分。例如, 节点包括一个或多个通信接口, 其允 许通过对应的通信链路进行通信。例如, 通信接口包括以太网、 WiFi、 蓝牙和 / 或可以用于 与其它节点进行通信的任何其它类型的接口。 每个节点用信息进行配置或者否则的话获得 该信息, 所述信息用于识别与该节点的一个或多个通信接口相关联的覆盖网络。
DA 用于确定是否有与每个接口相关联的可用通信链路。例如, 节点可以具有 WiFi 接口, 但是可能不在可与其建立 WiFi 通信链路的任何其它 WiFi 使能的节点的范围中。一 旦 DA 确定了可用的通信链路, 其搜索其数据库以识别与每个链路相关联的覆盖网络。 DA 然 后尝试加入所识别的与每个链路相关联的覆盖网络。例如, 如果节点在特定通信链路上接 入因特网, 则其尝试加入连接的通用覆盖网络。 如果节点未连接到因特网, 则其仍然可以在 已经被使能用于覆盖网络操作的其它接口上加入覆盖网络, 所述其它接口诸如 WiFi、 蓝牙 或者其它接口。断开的通用覆盖网络 106 是已经基于可用的 WiFi 通信链路来构成的断开 的覆盖网络的节点的示例。 节点可以选择根据与每个节点相关联的策略信息经由多个接口 来加入多个覆盖网络。 加入连接的通用覆盖网络
再次参见图 1, 节点 108 位于基础网络 102 上, 并且位于节点 108 的 DA 确定可以 获得通信链路来允许其加入连接的通用覆盖网络 104。例如, 节点可以包括无线广域网 (WWAN) 接口, 其能够在基础网络 102 上通信。 在通用发现系统的一种实现方式中, 如果节点 具有因特网连接, 则其总是尝试加入连接的通用覆盖网络。因此, 在节点 108 处的 DA 确定 可以获得 WWAN 通信链路并使用这个链路来加入连接的通用覆盖网络 104, 并且被分配节点 标识符 70。
一旦连接到连接的通用覆盖网络 104, 节点 108 操作来公告或者加入其它的连接 的覆盖网络。例如, 节点 108 加入连接的覆盖网络 110, 其还包括节点 50 和 80。例如, 连接 的覆盖网络 110 可以是在其中的参与者可以获得体育节目剪辑或者其它体育节目相关的 内容的覆盖网络。
加入断开的通用覆盖网络
再次参见图 1, 节点 112 不位于基础网络 102 上, 并且位于节点 112 上的 DA 确定可 以获得通信链路来允许其加入断开的通用覆盖网络 106。例如, 节点可以包括 WiFi 接口, 该 WiFi 接口能够在断开的通用覆盖网络 106 上与其它节点进行通信。在通用发现系统的 一种实现方式中, 节点总是尝试加入断开的通用覆盖网络。因此, 在节点 108 处的 DA 确定 可以获得 WiFi 通信链路并使用这个链路来加入断开的通用覆盖网络 106, 并且被分配节点 标识符 2。
一旦加入了断开的通用覆盖网络 106, 节点 112 操作来公告或者加入其它断开的 覆盖网络。例如, 节点 112 加入断开的覆盖网络 114, 断开的覆盖网络 114 还包括节点 4 和 6。例如, 断开的覆盖网络 114 可以是照片共享的覆盖网络, 其中, 参与者可以参与照片共 享。
公告断开的覆盖网络
为了说明通用发现系统的这个方面, 假定在节点 112 处的 DA 确定存在链路, 通过 该链路节点 112 可以加入连接的通用覆盖网络 104。例如, 节点 112 包括 WWAN 接口, 并且 WWAN 链路被检测以允许节点 112 与基础网络 102 通信。在如此进行时, 节点 112 发现连接 的通用覆盖网络 104, 并且作为加入的结果, 被分配覆盖网络标识符 40, 如图 1 中所示。
一旦连接到连接的通用覆盖网络 104, 则节点 112 在连接的通用覆盖网络 104 上公 告断开的通用覆盖网络 106。例如, 节点 112 在节点 95 发布公告 (Ad), 所述公告标识断开 的覆盖网络 106, 并且表明节点 40 可以用于到达断开的通用覆盖网络 106。例如, 节点 40 在 Ad 中被标识为相对于连接的覆盖网络 104 的统一节点定位符 (UNL)。 在连接的通用覆盖 网络 104 上的其它节点然后可以发现 Ad, 并且通过节点 112( 被标识为 40) 来到达断开的通 用覆盖网络 106。
这种公告机制能够构成其它专用覆盖网络。而且, 这种机制适用于断开的和连接 的通用覆盖网络。也应当注意, 节点 112 也可以在连接的通用覆盖网络 104 上公告断开的 覆盖网络 114。 因此, 位于连接的通用覆盖网络 104 上的任何节点可以通过使用在连接的通 用覆盖网络 104 上被标识为 40 的节点来加入和参与断开的覆盖网络 114。
节点移动
通用发现系统允许节点在节点移动期间保持彼此连接。例如, 节点 116——其在 断开的通用覆盖网络 106 上具有节点标识符 4——离开断开的通用覆盖网络 106, 如在 118 所示。例如, 节点 116 是改变其地理位置的移动电话。节点 116 可以通过加入覆盖网络或 者作为客户来查询连接的通用覆盖网络 104。 对于本说明书, 假定节点 116 包括用于提供到 基础网络 102 的通信链路的接口, 因此允许节点 116 加入连接的通用覆盖网络 104, 并且节 点 116 被分配节点标识符 90。节点 116 然后能够发现 ( 在 120 所示 ) 由节点 112 在节点 95 处发布的 Ad。该 Ad 识别在连接的通用覆盖网络 104 上的 UNL40( 节点 112), UNL 40 可 以用于引导回到断开的覆盖网络 106 中, 如路径 122 和 124 所示。因此, 离开断开的覆盖网 络 106 的节点 116 能够通过使用连接的通用覆盖网络 104 与断开的覆盖网络 106 的节点进 行通信。结果, 节点 116 仍然可以在照片共享覆盖网络 114 上进行通信。
统一节点定位符
如上所述, 通用发现系统促成了节点可以在其上执行覆盖公告或者发现覆盖网络 并且然后加入它们的公共介质。在这种环境中, 系统提供了在通用覆盖网络的环境中命名 引导节点的机制。这消除了部署考虑和当公告覆盖时确定引导节点是否是公共可达的困 难。
因此, 通用发现系统使得覆盖配置文件包含用于指定引导对等点的统一节点定位 符, 而不是 IP 地址和端口号。考虑在节点标识符 95 的在连接的通用覆盖网络 104 上公告 的照片共享覆盖网络 114 的示例。在照片共享覆盖网络的覆盖配置文件中, 引导对等元素 可以包含下述形式的条目 ;覆盖 - 节点 ://40/ ; 环境= “断开的通用覆盖”
这指定了能够经由断开的通用覆盖网络来到达的引导对等点。 任何节点然后可以 连接到在连接的通用覆盖网络 104 上的节点标识符 40, 以便然后被引导到照片共享的断开 覆盖网络 114。
因此, 所述系统提供了一种用于在节点的任何情况下 ( 或者连接到因特网或者甚 至当它们在断开模式中时 ) 公告和发现覆盖网络的机制。其允许通过建立用于能够到达覆 盖网络的公共介质来在分开的子网 ( 例如, 节点从封闭的家用网络向移动因特网移动 ) 上 发现和改良覆盖网络。下面提供 DA 和通用发现系统的操作的更详细的说明。
图 2 示出了根据所述通用发现系统的在节点处使用的示例性发现装置 200。 例如, DA 200 适合于用作在图 1 中所示的 DA。DA 200 包括处理器 202、 存储器 204 和收发机 206, 它们都耦合以在数据总线 208 上通信。应当注意, DA 200 仅仅是一种实现方式, 并且其它 实现方式是可能的。
收发机 206 包括硬件和 / 或硬件执行软件, 其允许 DA 200 使用多个通信接口来与 其它节点传送数据或者其它信息。例如, 收发机 206 包括蓝牙 214、 WiFi 216 和 WWAN 218 接口, 它们可以用于与在连接的通用覆盖网络上的节点或者与在断开的覆盖网络上的节点 建立通信链路。虽然示出了三个通信接口, 但是收发机 206 可以包括任何数量和 / 或类型 的通信接口。 存储器 204 包括任何适当的存储设备, 所述任何适当的存储设备可用于存储覆盖 数据库 210、 通用发现模块 212、 公告 (AD)220 和覆盖 (OL) 路由模块 222。覆盖数据库 210 包括与一个或多个覆盖网络相关联的信息 ( 即元数据 )。 例如, 覆盖数据库 210 根据可接入 的通信链路来识别 DA 200 要尝试加入的连接的通用覆盖网络和 / 或断开的覆盖网络。
通用发现模块 212 包括一个或多个模块, 其包括可被处理器 202 执行来提供本文 所述的通用发现系统的功能的指令或者代码。
AD 220 包括要在覆盖网络上发布的信息, 所述信息用于识别提供对一个或多个覆 盖网络的接入的对等点。AD 220 包括 UNL, 所述 UNL 标识相对于通用覆盖网络的节点, 该节 点可以用于到达所公告的网络。
覆盖路由模块 224 包括一个或多个模块, 其包括可被处理器 202 执行来控制如何 路由分组、 保持状态、 进行维修和 / 或与特定的覆盖网络相关联的其它功能的指令或者代 码。
处理器 202 包括 CPU、 处理器、 门阵列、 硬件逻辑、 存储器元件和 / 或硬件执行软件 中的至少一个。在一个方面, 处理器 202 执行通用发现模块 212 的指令, 以控制 DA200 来执 行本文所述的通用发现系统的功能。在另一种实现方式中, DA200 的所有功能被一个或多 个集成电路实现。
覆盖网络数据库
在运行期间, 处理器 202 操作来获得覆盖数据库 210, 其包括关于覆盖网络的信 息。例如, 在节点配置期间, 处理器 202 使用收发机 206 的可用接口将覆盖数据库 210 下载 到 DA 200, 并且将其存储在存储器 204 中。 在运行期间, 当处理器 202 变得知道与一个或多 个覆盖网络相关联的信息和 / 或元数据时, 覆盖数据库 210 被更新。在一种实现方式中, 处 理器 202 接收用户输入, 所述用户输入指示要与每个接口相关联的覆盖网络。处理器 202
将这个信息和 / 或元数据存储在覆盖数据库 210 中。例如, 在覆盖数据库 210 中的信息包 括但是不限于下面的信息。
1. 覆盖网络名称
2. 节点地址
3. 引导者节点地址
4. 内容类型
5. 特定内容
6. 服务质量 (QoS) 参数
7. 覆盖网络工作区域
8. 覆盖网络类型
加入覆盖网络
处理器 202 控制收发机逻辑 206 来检测可用的通信链路。例如, 收发机逻辑 206 使用其通信接口 (214, 216, 218) 来确定可用的通信链路。 根据可用的通信链路, 处理器 202 从数据库 210 选择要参与其中的覆盖网络。 例如, 如果检测到 WWAN 通信链路, 则处理器 202 从覆盖数据库 210 中选择与 WWAN 通信链路相关联的覆盖网络。这样的选择可以是连接的 通用覆盖网络或者断开的覆盖网络。处理器 202 然后控制收发机 206 来加入所选择的覆盖 网络。 公告覆盖网络
一旦节点加入了通用覆盖网络, 则 DA200 产生和公告该节点可以提供接入的其它 覆盖网络。所述公告包括 UNL, 其标识相对于通用覆盖网络的该节点。例如, 处理器 202 产 生与断开的覆盖网络相关联的公告, 并且在存储器 204 中将这些公告存储为 AD 220。当加 入了连接的通用覆盖网络时, 处理器 202 确定通过收发机 206 的通信链路可以接入哪些断 开的覆盖网络。处理器 202 然后选择适当的公告, 并且控制收发机 206 来在连接的通用覆 盖网络上发布这些公告。 因此, 在连接的通用覆盖网络上的任何节点可以搜索和发现公告, 并且通过经由使用在公告中包括的 UNL 而识别的节点来接入这些断开的覆盖网络。
在一个方面, 所述通用发现系统包括计算机程序产品, 其具有在机器可读介质上 存储或者包含的一个或多个程序指令 (“指令” ) 或者一个或多个代码集 (“代码” )。当诸 如处理器 202 的至少一个处理器执行代码时, 它们的执行使得 DA 200 提供本文所述的通用 发现系统的功能。例如, 所述机器可读介质包括与 DA 200 连接的软盘、 CDROM、 存储卡、 快闪 存储器、 RAM、 ROM 或者任何其它类型的存储设备或者机器可读介质。在另一个方面, 所述代 码集可以从外部设备或者通信网络资源被下载到 DA 200 中。所述代码集当被执行时提供 本文所述的通用发现系统的功能。
图 3 示出了根据所述通用发现系统而使用的示例性公告 300。 例如, 公告 300 可以 是在图 1 中所示的在节点 95 处的 Ad。公告 300 包括覆盖名称 302、 连接参数 304、 UNL 306 和安全证书 308。UNL 306 标识了提供对所公告的覆盖网络的接入的、 在通用覆盖网络上的 节点。应当注意, 如果需要, 公告 300 可以包括更多的参数, 用于识别公告的网络或者控制 对其的接入。
图 4 示出了根据所述通用发现系统而使用的示例性覆盖数据库 400。 例如, 覆盖数 据库 400 可以是在图 2 中所示的覆盖数据库 210。
覆盖数据库 400 包括接口类型 402、 网络标识符 404 和状态 406。接口类型 402 标 识在运行期间可以变得对节点可用的接口的类型。例如, 接口类型包括 WWAN、 WiFi 和蓝牙。
网络标识符 404 标识针对每个接口类型而言要加入的网络。例如, 所述网络标识 符包括通用的连接和断开的覆盖网络和诸如体育节目剪辑、 照片共享和音乐共享网络的多 种其它网络。 在一种实现方式中, 所述网络标识符按照优先级被列出, 使得如果对应的接口 类型可用时, 则所述系统首先加入具有最高优先级的网络标识符。 在一些情况下, 有可能使 用同一接口类型来加入多个网络。例如, WWAN 接口类型可以用于加入连接的通用覆盖网络 和体育节目剪辑覆盖网络。
状态 406 标识每个所标识的网络 404 的当前状态。例如, 在 WWAN 接口上的通用的 连接的覆盖网络被示出为加入。
图 5 示出了根据所述通用发现系统的用于在节点处操作发现装置的示例性方法 500。为清楚起见, 下面参考在图 2 中所示的 DA200 来描述方法 500。在一种实现方式中, 处 理器 202 执行由发现模块 212 提供的一个或多个代码集, 以控制 DA200 来执行下述的功能。
在框 502, 获得来自覆盖数据库的信息。 所述覆盖数据库包括用于识别覆盖网络和 用于在那些网络上参与的相关联的通信接口的信息。例如, 覆盖数据库被格式化为在图 4 中所示的覆盖数据库 400, 并且在存储器 204 中被存储为覆盖数据库 210。在一个方面, 覆 盖数据库 210 的信息在节点配置期间被提供到 DA 200, 在运行期间被下载到 DA 200, 并且 / 或者使用用户输入进行更新。当更多的覆盖网络被检测到或者变得可用时, 处理器 202 更 新、 修改和 / 或维护覆盖数据库 210。在一种实现方式中, 处理器 202 从存储器 204 检索来 自覆盖数据库 210 的信息。 在框 504, 检测可用的通信链路。例如, 处理器 202 控制收发机逻辑 206 来检测与 一个或多个通信接口相关联的可用的通信链路。所述通信接口包括 WWAN、 WiFi、 蓝牙或者 任何其它适当的通信接口。
在框 506, 确定在给出所检测的通信链路的情况下是否可接入连接的通用覆盖网 络。在一种实现方式中, 处理器 202 通过控制收发机 206 来进行这种确定, 以确定是否可在 任何可用接口上接入连接的通用覆盖网络。 如果可在一个或多个接口上接入连接的通用覆 盖网络, 则所述方法进行到框 508。如果不能接入该连接的通用覆盖网络, 则所述方法进行 到框 512。
在框 508, 选择用于加入该连接的通用覆盖网络的接口。在一种实现方式中, 处理 器 202 访问覆盖数据库 210 以交叉参考所检测的接口, 从而确定要使用哪个接口来连接到 该连接的通用覆盖网络。 如果在多个接口上可以获得该连接的通用覆盖网络, 则处理器 202 根据信号强度、 频率、 数据率、 吞吐量或者任何其它参数或者标准来选择要使用的接口。因 此, 如果高数据率连接可用时, 则可以使用该高数据率连接来替换到该连接的通用覆盖网 络的低数据率连接。
在框 510, 加入连接的通用覆盖网络。例如, 处理器 202 控制收发机 206 使用在框 508 选择的接口和通信链路来加入该连接的通用覆盖网络。 在加入后, 处理器 202 更新在数 据库 210 中的状态 406。
在框 512, 确定在给出所检测的通信链路的情况下是否可接入断开的覆盖网络。 在 一种实现方式中, 处理器 202 通过控制收发机 206 来进行这种确定, 以确定是否可在任何可
用的接口上接入断开的通用覆盖网络。 如果可在一个或多个接口上接入该断开的通用覆盖 网络, 则所述方法进行到框 514。如果不可接入该断开的通用覆盖网络, 则所述方法进行到 框 518。
在框 514, 选择要用于加入该断开的通用覆盖网络的接口。在一种实现方式中, 处 理器 202 访问覆盖数据库 210 以交叉参考所检测的接口, 从而确定要使用哪个接口来连接 到断开的通用覆盖网络。如果可在多个接口上获得该断开的通用覆盖网络, 则处理器 202 根据信号强度、 频率、 数据率、 吞吐量或者任何其它参数或者标准来选择要使用的接口。因 此, 如果高数据率连接可用时, 则可以使用高数据率连接来替换到该断开的通用覆盖网络 的低数据率连接。
在框 516, 加入该断开的通用覆盖网络。例如, 处理器 202 控制收发机 206 使用在 框 514 确定的适当接口和通信链路来加入该断开的通用覆盖网络。在加入该断开的覆盖网 络后, 处理器 202 更新在数据库 210 中的状态 406。
在框 518, 确定在给出所检测的通信链路的情况下是否可接入任何其它覆盖网络。 在一种实现方式中, 处理器 202 通过控制收发机 206 来进行这种确定, 从而确定是否可在任 何可用的接口上接入任何其它覆盖网络。 如果可在一个或多个接口上接入任何其它覆盖网 络, 则所述方法进行到框 520。如果不可接入其它覆盖网络, 则所述方法结束。
在框 520, 选择要用于加入一个或多个其它覆盖网络的接口。在一种实现方式中, 处理器 202 访问覆盖数据库 210 以交叉参考所检测的接口, 从而确定要使用哪个接口来连 接到其它覆盖网络。如果可在多个接口上获得其它覆盖网络, 则处理器 202 根据信号强度、 频率、 数据率、 吞吐量或者任何其它参数或者标准来选择要使用的接口。因此, 如果高数据 率连接是可用的, 则可以使用高数据率连接来替换到特定的覆盖网络的低数据率连接。
在框 522, 加入所述其它覆盖网络。 例如, 处理器 202 控制收发机 206 使用在框 520 确定的适当接口和通信链路来加入其它覆盖网络。在加入其它覆盖网络后, 处理器 202 更 新在数据库 210 中的状态 406。
因此, 方法 500 提供了用于发现和加入覆盖网络的快速和有效的系统。由根据通 用发现系统的、 在节点处的发现装置来执行方法 500。应当注意, 方法 500 仅仅是一种实现 方式, 并且可以在各个方面的范围内重新布置或者修改方法 500 的操作。因此, 其它实现方 式是可能的。
图 6 示出了根据所述通用发现系统的、 用于操作在节点处的发现装置的示例性方 法 600。为了清楚起见, 下面参考在图 2 中所示的 DA 200 来描述方法 600。在一种实现方 式中, 处理器 202 执行由发现模块 212 提供的一个或多个代码集来控制 DA 200 以执行下述 的功能。
在框 602, 在连接的通用网络上建立节点标识。例如, 处理器 202 确定可通过现有 的通信接口来接入的连接的通用覆盖网络。处理器 202 然后控制收发机 206 使用适当的通 信接口来加入连接的通用覆盖网络, 并且在该连接的通用覆盖网络上获得节点标识符。
在框 604, 产生一个或多个覆盖网络的公告。在一个方面, 处理器 202 产生一个或 多个公告, 用于公告所述节点当前接入的一个或多个覆盖网络。所述公告在存储器中被存 储为 AD 220 的一部分。在一个方面, 如图 3 中所示的那样格式化公告。所述公告包括 UNL, 用于标识在连接或者断开的通用覆盖网络上的节点, 该节点提供对所公告的覆盖网络的接入。 在框 606, 在通用覆盖网络上发布所产生的一个或多个公告。在一个方面, 处理器 逻辑 202 控制收发机 206 来在连接或者断开的通用覆盖网络上发布公告。
在框 608, 接收要接入所公告的覆盖网络的请求。例如, 接入到通用覆盖网络的第 二节点发现该公告, 并且确定可以通过由在公告中的 UNL 标识的当前节点来到达所选择的 覆盖网络。 第二节点使用连接的通用覆盖网络向当前节点发送加入所选择的覆盖网络的请 求。
在框 610, 将所接收的加入请求路由到在与覆盖网络相关联的标识空间中的最近 的节点。处理器 202 接收所述请求, 并且使用收发机 206 将所述请求路由到在所公告的覆 盖网络上的适当的节点。
因此, 方法 600 提供了用于公告对一个或多个覆盖网络的接入的快速和有效的机 制。由根据通用发现系统的、 在节点处工作的发现装置 200 来执行方法 600。应当注意, 方 法 600 仅仅是一种实现方式, 并且可以在各个方面的范围内重新布置或者修改方法 600 的 操作。因此, 方法 600 的其它实现方式是可能的。
图 7 示出了根据所述通用发现系统的、 用于操作在节点处的发现装置的示例性方 法 700。为了清楚起见, 下面参考在图 2 中所示的发现装置 200 来描述方法 700。在一种实 现方式中, 处理器 202 执行由发现模块 212 提供的一个或多个代码集, 以控制发现装置 200 来执行下述的功能。
在框 702, 结束与第一覆盖网络的通信。例如, 节点可以是正在离开其当前的地理 区域的移动电话, 并且因而结束到第一覆盖网络的连接。在一个方面, 处理器 212 控制收发 机 206 来结束网络连接。第一覆盖网络可以是断开的覆盖网络。处理器 202 还更新在数据 库 210 中的状态 406。
在框 704, 检测可用的通信链路。在一个方面, 处理器 202 控制收发机 206 来检测 与一个或多个通信接口相关联的可用的通信链路。
在框 706, 确定是否可接入连接的通用覆盖网络。例如, 处理器 202 根据所检测的 通信链路来确定是否可获得对连接的通用覆盖网络的接入。如果可接入连接的通用覆盖 网络, 则所述方法进行到框 708。如果不可接入连接的通用覆盖网络, 则所述方法返回到框 704。
在框 708, 加入连接的通用覆盖网络。在一个方面, 处理器 202 控制收发机 206 使 用适当的通信接口和对应的通信链路来加入该连接的通用覆盖网络。处理器 202 还更新在 数据库 210 中的状态 406。
在框 710, 在该连接的通用覆盖网络上发现第一覆盖网络的公告。在一个方面, 处 理器 202 控制收发机 206 来搜索该连接的通用覆盖网络以发现公告。例如, 所述公告被格 式化为在图 3 中所示的公告 300。
在框 712, 确定可以提供对第一覆盖网络的接入的、 在该连接的覆盖网络上的引导 对等点。在一个方面, 处理器 202 处理所述公告以确定可用于到达第一覆盖网络的引导对 等点。例如, 由在公告中包括的 UNL 在通用覆盖网络上识别对等点。
在框 714, 使用在连接的通用覆盖网络上的引导对等点将业务路由到第一覆盖网 络。在一个方面, 处理器 202 控制收发机 206 来使用对等点路由第一覆盖网络的业务。
因此, 方法 700 允许设备在设备移动期间保持与覆盖网络的通信。由根据通用发 现系统的、 在节点处工作的发现装置 200 来执行方法 700。应当注意, 方法 700 仅仅是一种 实现方式, 并且可以在各个方面的范围内重新布置或者修改方法 700 的操作。因此, 方法 700 的其它实现方式是可能的。
图 8 示出了说明通用发现系统的示例性操作的图 800。 例如, 图 800 说明了位于节 点的 DA 如何公告和构成断开的通用覆盖网络。
节点 802 包括根据所述发现系统而操作的发现装置。DA 检测可用的通信接口, 并 且选择蓝牙 (BT) 接口来向区域 804 中的其它节点公告断开的通用覆盖网络。节点 806 和 808 响应于所述公告而与节点 802 通信, 以构成断开的覆盖网络 810。节点 802、 806 和 808 根据在它们各自的覆盖数据库中的信息来加入该断开的覆盖网络 810。
图 9 示出了根据所述通用发现系统的、 用于操作在节点处的发现装置的示例性方 法 900。方法 900 适合于用在方法 700 的框 706 和 708。为了清楚起见, 下面参考在图 2 中 所示的发现装置 200 来描述方法 900。在一种实现方式中, 处理器 202 执行由发现模块 212 提供的一个或多个代码集, 以控制发现装置 200 执行下述的功能。
在框 902, 确定是否可在多个通信链路上接入连接的通用覆盖网络。例如, 处理器 202 根据所检测的通信链路来确定是否可获得对连接的通用覆盖网络的接入。如果可在多 个通信链路上接入该连接的通用覆盖网络, 则所述方法进行到框 904。 如果可在单个通信链 路上接入该连接的通用覆盖网络, 则所述方法进行到框 908。 在框 904, 根据选择标准来选择用以加入该连接的通用覆盖网络的链路。处理器 202 进行这种选择。 所述选择标准包括但是不限于频率、 带宽、 数据率、 吞吐量和 / 或任何其 它类型的选择标准。因此, 相对于低数据率链路, 可以优先选择高数据率链路。
在框 906, 结束基于任何未选择的链路的到该连接的通用覆盖网络的任何连接。 处 理器 202 控制收发机 206 执行这个功能。
在框 912, 使用所选择的链路来加入该连接的通用覆盖网络。 处理器 202 控制收发 机 206 使用所选择的链路来加入该连接的通用覆盖网络。
因此, 方法 900 选择可用于连接到该连接的通用覆盖网络的最佳链路。由根据通 用发现系统的、 在节点工作的发现装置来执行方法 900。应当注意, 方法 900 仅仅是一种实 现方式, 并且可以在各个方面的范围内重新布置或者修改方法 900 的操作。因此, 方法 900 的其它实现方式是可能的。
图 10 示出了根据所述通用发现系统的、 用于在节点处使用的示例性发现装置 1000。例如, DA 1000 适合于用作在图 1 中所示的 DA。在一个方面, DA 1000 由至少一个集 成电路来实现, 所述至少一个集成电路包括一个或多个模块, 所述一个或多个模块被配置 来提供如本文所述的通用发现系统的方面。例如, 每个模块包括硬件和 / 或硬件执行软件。
DA 1000 包括第一模块, 所述第一模块包括用于检测允许节点与其它节点进行通 信的一个或多个通信链路的模块 (1002), 其在一个方面中包括收发机 206。 DA 1000 还包括 第二模块, 其包括用于确定可使用至少一个通信链路来接入通用覆盖网络的模块 (1004), 其在一个方面中包括处理器 202。DA 1000 还包括第三模块, 其包括用于从所述至少一个通 信链路来选择所选择的通信链路的模块 (1006), 其在一个方面中包括处理器 202。DA1000 还包括第四模块, 其包括用于使用所选择的通信链路来加入通用覆盖网络的模块 (1008),
其在一个方面包括处理器 202。
可以使用被设计来执行本文所述功能的通用处理器、 数字信号处理器 (DSP)、 专用 集成电路 (ASIC)、 现场可编程门阵列 (FPGA) 或者其它可编程逻辑器件、 分立门或者晶体管 逻辑、 分立硬件部件或者其任何组合来实现或者执行结合本文公开的方面描述的各种说明 性逻辑、 逻辑框、 模块和电路。 通用处理器可以是微处理器, 但是作为替代, 所述处理器可以 是任何传统处理器、 控制器、 微控制器或者状态机。处理器也可以被实现为计算装置的组 合, 例如 DSP 和微处理器的组合、 多个微处理器、 与 DSP 核心相结合的一个或多个微处理器 或者任何其它这样的配置。
可以以硬件、 以由处理器执行的软件模块或者以两者的组合来直接地体现结合本 文公开的方面描述的方法或者算法的步骤。软件模块可以驻留在 RAM 存储器、 快闪存储器、 ROM 存储器、 EPROM 存储器、 EEPROM 存储器、 寄存器、 硬盘、 可移动盘、 CD-ROM 或者在本领域 中已知的任何其它形式的存储介质。示例性存储介质耦合到所述处理器, 以便所述处理器 可以从存储介质读取信息和向存储介质写入信息。作为替代, 所述存储介质可以集成到处 理器。所述处理器和所述存储介质可以驻留在 ASIC 中。ASIC 可以驻留在无线通信设备中。 作为替代, 所述处理器和所述存储介质可以作为分立的部件驻留在无线通信设备中。 提供所公开的方面的说明以使得本领域内的技术人员能够实施或者使用本发明。 对于这些方面的各种修改对本领域内的技术人员来说是显而易见的, 并且在不偏离本发明 的精神或者范围的情况下可以将本文定义的一般原理应用到其它方面, 例如, 在即时消息 传送服务或者任何一般的无线数据通信应用中。 因此, 本发明不意欲限于本文所示的方面, 并且要符合与本文公开的原理和新颖特征一致的最宽范围。措词 “示例性” 在本文中专用 于表示 “作为示例、 实例或者例示” 。本文被描述为 “示例性” 的任何方面不必然被解释为相 对于其它方面是优选的或者有利的。
因此, 虽然本文已经说明和描述了通用发现系统的多个方面, 但可以理解, 在不偏 离它们的精神和关键特征的情况下, 可以对于所述方面进行各种改变。 因此, 本文的公开和 说明意欲说明而不是限制本发明的范围, 本发明的范围在所附的权利要求中阐明。