在对等内容分布云中的连接管理的制作方法

文档序号:7641600阅读:175来源:国知局
专利名称:在对等内容分布云中的连接管理的制作方法
技术领域
本文一般地涉及对等内容分布,尤其涉及对等内容分布云中的连接管理。
扭且 冃足
对等文件共享云中的拓扑管理是一个重大问题,该问题亟待解决以增加云 的全部或大多数成员能够接收正被共享内容的速度和便利度。
在过去,使用提供基于基础结构解决方案的专用服务器场实现了大规模的 内容分布。在此类方法中,每个请求内容的客户机形成与服务器场中一服务器 的专用高带宽连接并在需要时下载内容。这类解决方案对必须提供并维持服务
器场的内容提供商而言是昂贵的。图1示出了具有服务器1和客户机2的这类 解决方案,每个客户机都有直接连接至一服务器的连接。这类解决方案不仅对 内容提供商是昂贵的,而且它还不够健壮,因为服务器的故障会导致无法向多 个客户机提供内容。此外,该解决方案的升级困难,因为每个服务器支持的客 户机数量有限。
当前的用于内容分布的新范例是基于使用在其中各节点共享其资源(存 储、CPU、带宽)的协作网络的分布式体系结构出现的。
协作内容分布解决方案固有地可自升级,因为系统的带宽容量随着更多节 点的到来而增加每个新节点请求来自其他节点的服务同时也向其他节点提供 服务。因为每个新节点都贡献资源,所以系统容量随着需求增加而增长,从而 导致无限的系统升级能力。通过协作,文件源即服务器不再需要增加其资源来 适应更大的用户群;这也就提供了对"快闪(flashcrowds)"(大量且突然的 通信量高峰,通常会导致受影响的服务器崩溃)的顺应力。因此,终端-系统 协作解决方案可用于快速有效地将软件更新、关键补丁、视频和其他的大型文 件传递给大量用户通常维持原服务器的低成本。
BitTorrent (BT下载)是由Bram Cohen编写的现有对等文件共享协议并 且在开源许可下可公开使用。使用BitTorrent算法将分布用的文件分割成块或碎片。
这些块以随机次序分布到云中的节点并且在请求节点上被重新装配。每个 节点从其连接的其他节点下载缺失的块,同时也提供对其已经有的块的上传连 接。
不考虑其巨大潜力和流行,诸如BitTorrent的现有终端-系统协作方案在某 些情况下会遭受降低其整体性能的低效率。这些低效率在大型且异类的用户群 中,在快闪期间,在高纷扰的环境中,或者在存在有协作刺激机制的情况下更 为明显。本发明考虑了在其中网络拓扑管理和其他方法可用于减轻或缓和部分 或全部这些问题的途径。
概述
提供本概述以便以简化形式介绍将在以下的详细描述中进一步描述的一 些概念。本概述并不旨在标识要求保护的主题的关键特征或本质特征,也不旨 在用于限制要求保护的主题的范围。
实现一种拓扑管理过程,其中涉及在某些情况下移除或"拆除(tear down)" 各节点之间的连接以尝试用更为优化的连接来代替这些连接。空闲连接被拆除 除非这些连接处于"通知"状态;通知状态是在其中已经对相邻节点作出了内 容请求但该相邻节点尚不具备有用内容的状态。也就是说,相邻节点的内容是 请求者的内容的子集。处于通知状态的空闲连接只有在其保持空闲的时间长于 空闲连接被拆除之前所需时间的情况下才被拆除。为了避免由节点簇形成以及 节点无法加入云导致的问题,教示了网络搅动算法。这涉及在达到指定条件时 请求节点丢弃连接。连接之间的相对内容分布被监控并且这些信息被用来影响 对这些要丢弃连接的选择。
我们描述了一种在对等内容分布云中的节点上管理连接的方法。本方法包

在指定的第一时段内监视该节点处各连接上的通信量; 将该节点处已经经由其请求来自相邻节点的内容但该相邻节点处不存 在请求内容的任何空闲连接分配为通知状态;以及 拆除该节点处已经空闲了至少是指定的第一时段并且不处于通知状态的 任何连接。处于通知状态的连接如下文详述也将在特定情形中被拆除。
本方法通过拆除既不通过上传也不通过下载提供内容的连接来提供优点, 这些连接随后可以被在内容分布方面更为有用的其他连接所代替。以此方式, 我们能够縮短云中所有成员接收被分布内容的完整副本的时间量。我们业已开 发的用于'清除'连接的这些算法是有利的,因为它们不会为对等体节点处所 需的计算强加太多的复杂性,并且作为结果,我们己经发现相比于更复杂可选 方法的改进结果。由我们开发的"通知"状态的使用尤为有用,因为它允许潜 在地能在不久的将来变为有用的空闲连接维持比其他空闲连接更长的时间。例 如,尚未接收到任何内容的相邻节点可能很快收到内容并且能够将这些内容与 有关节点共享。
优选地,本方法还包括拆除节点处已经处于通知状态至少第二指定时段的 任何连接,其中第二指定时段长于第一时段。这允许在最终丢弃处于通知状态 的连接。以此方式,与将来可能生成有用内容的相邻节点的连接能被保持,但 却不是无限期的。
优选地,所述第二时段约为所述第一时段的两倍。我们已经经验性地并通 过仿真研究发现将连接维持在通知状态约其他空闲连接的两倍时间会提供良 好的结果。我们还发现良好结果中所述第一时段约在3-7分钟之间。
优选地,本方法还包括指定该节点所需的最小连接数以作为对等内容分布 云的一部分,并且允许在该节点处的连接数在指定情形中低于该最小值。我们 已经发现通过以此方式使用"弹性"最小值,我们能够加速内容通过网络的分 布。例如,在某些情形中,我们允许节点具有少于所要求的最低连接数但仍在 有限时间内保持在云中。
类似地,本方法还可包括指定该节点所需的最大连接数以作为对等内容分 布云的一部分,并且允许在该节点处的连接数在指定情形中超过该最大值。'弹 性'最大值的这一类型也允许我们加速通过云的内容分布。
优选地,所述监视该节点处各连接上的通信量的步骤还包括获取有关经这 些连接的相对内容分布的信息。例如,这可以是内容块经连接接收的速率或者 内容块上传的速率。也可以使用有关连接带宽的信息、历史信息和/或预测信息。优选地,本方法还包括在每个指定的时间间隔,在节点处选择一个连接并 拆除该连接。这能够让我们确保一定程度的网络"搅动",因为连接必须时不 时地被丢弃并促进新连接的形成。我们己经发现这类方法允许我们减少簇的形 成并帮助新节点加入云。
优选地,以基本随机的方式从节点处的至少一个连接子集中选择该连接。 例如,可使用选择伪随机算法。
在一个示例中,节点处的所述连接子集不包括在其中监视的经该连接的相 对内容分布为最低的连接。这有助于避免形成孤独者。
在另一个示例中,节点处的连接子集不包括在其中监视的经该连接的相对 内容分布为最高的连接。这有助于防止丢失经由其正分布大量内容的良好连 接。这还可以通过依据相对内容分布排除第二和/或第三高的连接而得到扩展。
我们还描述了在对等内容分布云中的节点,该节点具有 与云中其他节点的多个连接;
监视器,被安排用于在指定的第一时段内监视该节点处各连接上 的通信量;
分配器,被安排为将该节点处已经经由其请求来自相邻节点的内 容但该相邻节点处不存在请求内容的任何空闲连接分配为通知 状态;
处理器,被安排用于拆除该节点处已经空闲了至少是指定的第一 时段并且不处于通知状态的任何连接。
将一连接分配为'通知'状态还可以由连接的任一侧否决,例如如果连接 的任一侧具有过大的比例的连接已经处于通知状态中。对于"过大",我们指 的是例如指定的连接最大值的一半或以上。
在此描述的各方法可由存储介质上具备机器可读形式的软件执行。软件能 够适于在并行处理器或串行处理器上执行,使得本方法的各步骤可以按任何合 适的次序或同时执行。
这里承认软件能够是有价值的、可以单独交易的商品。它旨在包含运行于 或者控制"哑(dumb)"或者标准的硬件以实现期望的功能的软件,(因此, 软件本质上定义了寄存器的功能,并且可以被叫做寄存器,即使是在它与其标
准硬件结合之前)。出于类似的理由,还旨在包含"描述"或者定义硬件配置 的软件,例如HDL (硬件描述语言)软件,用于设计硅芯片,或者用于配置 通用可编程芯片以实现期望的功能。
许多伴随特征将随着参考下面的详细描述并结合附图进行理解而得到更 好的认识。


从结合附图的下列详细描述将更好地理解本描述,在附图中
图1是使用服务器场的现有内容分布系统的示意图2是对等文件共享云的示意图3是对等文件共享云的另一示例的示意图4是通过高带宽连接相互连接的两个节点的示意图,其中每个节点还通 过低带宽连接与其他节点相连接;
图5是用于"清除"连接的拓扑管理过程的流程图6是用于便利"网络搅动(network churn)"的拓扑管理过程的流程图。
相同的标号用于指示附图中相同的部分。
详细描述
下面结合附图提供的详细描述旨在作为对本示例的描述,而非表示用于构 造或利用本示例的唯一形式。该描述阐述本示例的功能以及用于构造和操作本 示例的步骤序列。然而,相同或等价的功能与序列可由不同的示例来完成。
本文中使用的术语"云"指的是在通信网络中可以访问对等文件共享协议 并使用该协议来尝试获取诸如正被分布文件的内容的特定片段的副本的多个 节点。云在某些文献中还被称为图表(graph)。云中的节点使用上述协议各自 与其他节点形成一个或多个当前连接。于是在节点丢弃或形成与已位于云中节 点的连接时,该节点就加入或离开云。连接无需总是处于活动状态以用于内容 分布,虽然连接需要适用于使用特定协议进行文件分布,而这可能会使用也可 能不会使用网络编码。连接可以是单向或双向连接。在本文描述的特定示例中, 所有的连接都是单向的,这就使得云是不对称的,虽然本发明可适用于并包括
在其中连接是双向的且单个连接同时支持上传和下载方向通信量的对称云。同 样地,给定的节点同时可以是一个以上云的成员。例如,第一片云中的节点正 尝试获取正被共享的视频的副本而第二片云中的节点正尝试获取静止数字图 像文件夹的副本。云可以相互独立,也可以部分或完全重叠。
图2是对等文件分布云10的示意图,云10包括经由互联网11或任何其 他适合的通信网络连接的多个节点。云本身可以包括多得多的节点,但为了清 楚仅示出了少于十个的节点。同样地,虽然并非是对等文件共享参与者也不是 云的成员,但其他节点当前也可以连接在云成员之间或直接与其相连接,且上 述节点未示出。
在云10中提供了一个或多个种子节点12。种子节点是内容(也可称之为
文件)起源于其中的节点。例如,假设一个公司有一个想公开共享给云成员的 产品演示视频。可以将该文件放在种子节点上。该种子节点通常"总是在工作", 这就使得内容文件在相当长的时段(不包括例如维护时段)内可以从其上传。 通常情况下,种子节点处于上传内容而非下载内容的活动状态中。云中仅有有 限且相对较小数量的节点能够同时从该种子节点中下载内容。种子节点可以使 用也可以不使用对等文件共享协议来将内容上传至云中的其他成员。然而,上 述其他成员接着使用对等文件共享协议与云成员共享内容或内容的各部分。于 是,其他云成员在它们允许从其上传内容的时段内可以有效地充当种子节点,
但在此期间并不处于下载内容的活动状态中。在某些情况下, 一旦种子节点12 已经将内容传送至云10中,该种子节点12就可以下线而云IO将仍然起作用。
在云10中提供了一个或多个跟踪者节点14。跟踪者节点14具有关于云 成员的信息(诸如一对等体是否正参与该云)以及任何要共享的信息。这一跟 踪者节点帮助云成员找出具有其所需内容的其他云成员。
在云中还存在多个对等体节点16、 19,它们也被称为客户机。对等体节 点是需要云中共享的内容并且可以或者也可以不共享其已经获取的内容各部 分的节点。对等体节点如上所述可以充当临时种子。在图l所示的示例中,对 等体节点16位于诸如互联网的公网中,而对等体节点19则位于防火墙和/或网 络地址翻译器(NAT) 18后的专用企业网或家庭网中。
本文中使用的术语"吸血鬼(leech)"指的是只下载但不上传内容的对等体;吸血鬼是从系统中获取但给予很少或者根本不给予回报的寄生虫。例如,
吸血鬼可以是频繁下载内容但只给其他对等体节点提供很少或者根本不提供
上传容量的节点。
术语"孤独者(loner)"用于指代寻求加入对等内容分布云但尚未对云中 对等体形成最小连接数量的单独节点。
如上所述,现有的对等文件共享协议时常会在特定情况下遇到问题,而使 它们的总性能降低。例如,在云包括大型且异类的用户群,在快闪群发期间, 在高搅动的环境中,或者在存在有协作刺激机制的情况下。本发明考虑了在其 中网络拓扑管理和其他方法可用于减轻或缓和部分或全部这些问题的途径。此 外,本发明至少部分是有关于认识可能会出现的问题以及标识这些问题在哪些 情况下最容易发生。这已通过在实际网络中的经验测试以及使用计算机仿真两 者而得到实现。如下将参考图3和图4描述我们已经通过经验性测试和仿真标 识的若干上述问题。
我们将我们的对等文件共享技术的全部目的指定为能让所有(或者大多 数)的云成员在最短的可能时间内获取分布文件的完整副本。在某些情况下, 我们还力图减少种子节点或始发服务器需要为待共享内容提供的上传次数。
考虑到这些目标,我们创建了一种拓扑管理过程,其中涉及在某些情况下 移除或"拆除(teardown)"各节点之间的连接以尝试用更为优化的连接来代 替这些连接。为此目的,我们创建了要在对等体节点上实现的多个条件或规则。 上述规则中的许多优选但非必须地被周期性(诸如,经过一分钟)而不是立刻 估计。这有助于防止网络内不必要的颠簸。现给出这些条件或规则的部分示 例 为每个对等体节点提供它能够与其相邻节点形成的预指定的最大连 接数以及预指定的最小连接数。相邻节点是在单个逻辑"路程段 (hop)"内与其形成直接连接的节点。在本文中,不认为那些间接 连接的节点是相邻节点。例如,对等体节点所必须具有以参与到云 中的最小连接数可以约为4。对等体节点所能够具有以保持在云中 的最大连接数可以约为几十。
如果任何节点己经在长于指定阈值时段内空闲,或者等待通知的时 间超过指定阈值时段,则连接断开。 如果作为连接断开或其他方式的结果而使得连接数低于最小值,则
询问跟踪者要连接的对等体。
如果任何连接正以低于指定下载速率的速率下载并且同一节点处还
有同样速率或者更快的活动下载,则断开连接。
如果任何连接正以低于指定上传阈值的速率上传,则断开连接。
如果存在下载连接空闲并且需要更多的下载,则请求在空闲连接上
的下载。
如果活动的上传或下载连接过少,则询问跟踪者要连接的更多对等 体,随后用上传和下载连接请求两者与其相连接。
每个节点为上传和下载内容发起各自独立的连接(在云不对称的情 况下)。
如果一节点在本地已具有全部内容,则该节点将不发起或接受下载 连接。
如果一节点在本地己具有全部内容,则该节点可以增大其上传连接 上限。
除了空闲、下载和上传状态之外,我们指定在其中连接可被称为"通 知"状态的新状态。通知状态在对等体请求经连接下载但远程对等 体没有可用内容供应的情况下出现。它也会在对等体请求来自跟踪 者的信息但是跟踪者没有新对等体信息可提供的情况下出现。
如果在连接下载侧处的节点具有大于其指定数量的下载连接处于通 知状态中,则断开一个或多个的这些处于通知状态中的连接。
如果在连接下载侧处的节点具有大于其指定数量的上传连接处于通 知状态中,则断开这些连接之一。
允许连接在"通知"状态中等待长于允许其保持在"空闲"状态的 时间。
没有必须使用全部这些规则或条件。也就是说,可以在对等体节点处的方 法中实现这些规则或条件的一个或多个。
通过使用这些类型的连接丢弃和发起条件或规则,我们发现在某些情况下 在云中形成的节点簇在各簇之间的交互很少甚至没有。这在某些情况下是有问题的,因为云中每个成员用于获取被分文件的完整副本所花的时间会很长。图
3例示了这一情况并且示出了两个节点簇,第一簇包括节点31至35,第二簇 包括节点37至39。如上所述,我们发现簇只有在岛(不连接的簇)几乎总是 导致性能劣化的情况下才是不利的。
图3是类似于图2所示的对等文件共享云的示意图。在文件共享过程的执 行期间,例如在将种子12处的视频A共享给云中每个成员的过程中,节点簇 趋于形成。我们发现在对等体节点使用安排为拆除'非优化'连接的规则或准则 时以及/或者在网络本身是非纯一的情况下,这些簇很可能形成。例如,这一非 纯一性可以是存在有连接或不同带宽和/或使用了防火墙和网络地址翻译器 (NAT)的结果。这些节点簇在使用对等文件分布的情况下有时是不利的,因 为内容块会变得保持在簇中并且对该簇之外的云成员而言变得不可用或者至 少是非常难以获得。如上所述,在某些情况下成簇是理想的,但是作为不连接 簇的岛的存在却总是成问题的。于是,这些岛和/或簇会增加全部云成员获取被 分布内容的完全分布所花的时间量。此外,我们发现簇成员或岛成员之间的连 接通常极好,使得被安排用于拆除'非优化'连接的规则或条件不应用于这些 连接。结果是这些簇和岛趋于在云中存在相当长的时间。
在某些情况下,我们还观察到了另一个问题,即某些独立节点在云中变得 孤立并且无法形成所需的最小连接数。这一问题容易在云中还存在有节点簇的 情况下出现。我们将这些孤立节点称为"孤独者",图3中的节点36是一个 示例。孤独者的存在尤其是个问题,因为它会大幅增加云中全部成员接收被分 布内容所需的时间量。
为了解决簇和/或岛的问题,我们开发了用于在云中的对等体节点处执行 的规则或准则。这些规则或准则旨在增加云中搅动;也就是说,增加或确保在 云中各节点间连接的至少部分周转。以此方式,我们旨在传播对已从种子节点 下载的各块的访问的益处。在对等体处执行的这一类型的规则或条件的示例为 计数在该对等体处发送或接收的块数,并且一旦其达到指定数 量,就丢弃该对等体的一个连接。
例如,将指定的发送或接收的块数设置为与该对等体处的连接数相类似 (或相同数量级)的数目。可选地,对等体被安排为一旦经过指定的时间间隔就丢弃它的一个连接。
规则或条件可以通过指定选择丢弃哪个连接的准则来修改。例如,选择可 以通过基于连接已经存在的时间长度、基于连接上的块传送速率、基于连接带 宽或任何其他合适准则来随机作出。可以考虑基于连接的物理特性的准则,诸
如带宽、连接是双向还是单向、连接是否在地理上网络位置遥远的端点之间, 或者考虑有关该连接上的历史、当前及可能的预测通信量的其他准则。
在此情况下,可以在独立对等体节点处指定最大和最小连接数,于是就会 出现要求对等体节点丢弃一现有连接以实现诸如上述的"网络搅动"算法的情 形。这会要求对等体节点丢弃连接,使其总连接数小于最小值。我们已经凭经 验发现这一情形是可接受且可使用的,特别是在使用的对等文件共享算法包括 网络编码方面的情况下。这在下面更详细地解释。
通过使用规则或条件以此方式来确保网络搅动,我们已经能够降低在云中 形成节点簇的发生率。此外,存在的孤独者也减少了,因为网络搅动确保对新 连接的持续搜寻,从而为孤独者提供了连接至其他云成员的机会。
此外,通过使用仿真以及在实际网络中的经验性测试,我们已经发现,总 的说来,在对等体节点处执行的规则或条件越少,这些规则或条件越简单,则 文件共享性能就越好。
在对等体节点已被设置为执行以上讨论的连接 <清除'和网络'搅动'算 法的情况下,我们在我们的经验性和仿真研究期间发现了另一类问题。这涉及 用于允许快速与高级的内容分布的高带宽、高性能连接被不经意地丢失或拆除 的情况。图4示出了这一情形。它示出了通过快速的高带宽连接42彼此相连
接的两个节点A和B。每个节点A和B还分别通过慢速低带宽连接43连接至 节点40或41。在此情形中,假设A和B同时具有相对较大量的内容正在彼此 共享。如果A随后丢弃它与节点B的连接,则会让A保有相对大量的内容无 法与其剩余相邻节点40快速共享,因为连接43是慢速低带宽连接。结果是A 保有的稀有内容无法被快速分布,从而导致每个云成员接收被分布文件的完整 副本的总时间增加。
为了解决这个问题,我们修改了网络'搅动'算法以确保最高带宽、最快 连接得以维持。例如,可以基于对等体节点处各连接的带宽或通信量流速来对
各连接进行排序或设定其优先次序。网络'搅动'算法以这一排序为基础选择 要丢弃的连接。然而,不丢弃最慢连接,因为我们已经发现这样做趋于随机挑 选节点的一个连接丢弃,假设该连接不是第二或第三快或是最慢连接之一。
作为网络非纯一性结果而产生的另一个问题涉及公共网和专用网以及节 点是否可到达。例如,图2示出了公共网11 (在此情况下为因特网)以及两个
具有路由器或网络地址翻译器(NAT) 18。公共互联网11内的节点无法达到 连接在NAT18后的节点19,除非NAT18的所有者特别支持该连接,而这是 需要网络专门知识的动作。例如,专用企业网内连接在NAT18后的节点通常 具有在该企业网内唯一的唯一地址。然而,这些地址在互联网上不是唯一的。 如果NAT或防火墙19后的节点具有公共节点16之一的网络地址,这样就能 够使用该地址建立与上述公共节点的连接。但是反之则不然。也就是说,公共 互联网内的节点16若没有请求绑定在前已设置的NAT处端口的网络地址详细 信息,则无法形成与NAT后的节点19的连接。正因为此,作为对等文件共享 云中一部分的专用节点19发现与公共节点相比,其相对较难获得内容。如果 云中专用节点的比例占到50%以上,则对等内容分布会出现显著问题。实践中, 我们已经发现对等内容分布云中专用节点的比例约为70%。为了解决这一问 题,我们因此加权我们的网络'搅动'算法以偏向于丢弃公共而非专用连接。 在本发明的一个较佳实施例中,我们使用设置在几十数量级的连接'弹性' 最大值,但在某些情况下可以增大该值。例如,如果要求更多的连接,则可以 在指定时段内建立这些连接。类似地,我们在某些实施例中使用连接的弹性最 小值。例如,在某些情况下,当前提供最小连接数的节点作为网络搅动算法的 一部分被要求丢弃这些连接中的一个。弹性最小值允许该节点在指定时间内仍 位于云中,而不考虑其连接过少。在一个较佳实施例中,弹性最小值能将现有 对等体考虑为云成员直至其到达零连接。
我们已经发现以下的'清除,规则或拓扑管理过程尤为有效
安排每个对等体节点每60秒或在任何合适的时间间隔之后执行一 次'清除,(见图5的框52)
在该'清除'期间拆除已经空闲约5分钟或者更久并且不处于通知 状态的任何空闲连接(见图5的框50);和/或
在该'清除'期间拆除处于通知状态已长于io分钟或者其时间是允
许的最长空闲时间的两倍的的任何连接(见图5的框51)。这一清 除过程在图5中示出。 我们已经发现以下的'网络搅动'规则或拓扑管理过程尤为有效
在对等体节点处获取有关经每个连接的相对内容分布的信息(见
图6的框60)
随机选择这些连接中的一个连接(见图6的框62)
丢弃所选连接,除了经该连接的相对内容分布是最差的情况之外
(见图6的框63) 等待指定的时间间隔并在随后重复该方法(见图6的框64)。 在一个较佳实施例中,有关相对内容分布的信息包括内容分布的速率。本 方法还包括在对等体节点处标识一连接子集,该连接子集是在排除了具有最差 相对内容分布以及具有最高相对内容分布的连接之后的全部连接。随后从该子 集中作出随机选择。 对等体初始化
当对等体初始化时,它必须知晓跟踪者的网络端点。为了在云中第一次初 始化,它连接至跟踪者并请求该对等体有兴趣下载或共享的特定文件的描述。 如果客户机已经从在前会话中获取该数据,它与跟踪者进行核对以确认该内容 仍应被供应。在获取或确认文件描述之后,就认为该对等体被初始化。
只要对等体活动并且具有至少一个内容块用于共享,它就在跟踪者上登记 它自己。该登记必须周期性地刷新,因为它会自动过期。对等体还应该在离开 云的时候撤销在跟踪者上的登记。
除了获取文件信息并在跟踪者上登记之外,对等体可以周期性地询问跟踪 者以找出其他对等体。这些询问由对跟踪者的请求组成,随后跟踪者将零个或 多个端点传输至该对等体。
每次跟踪者事务都能经分别建立并维持的连接来处理。连接的生存期通常 会是单次事务。
从云中断开连接
当从云中断开连接时,对等体如下动作
发送消息给跟踪者,把自己从云中活动参与者列表中删除。
发送请求以关闭与每个相邻节点的连接,让相邻节点知晓该节点关 闭。
刷新每个连接(以确保断开连接通知被远程接收)并在随后关闭该连 接。在本发明的某些实施例中,对等内容分布算法使用网络编码,虽 然这不是必须的。网络编码背后的原理是允许对等体编码分组,这与其中只有 服务器或种子节点编码分组的服务器编码相反。使用网络编码,在每一次对等 体节点需要将分组上传给另一对等体时,源对等体生成并发送其全部可用信息 的线性组合。在对等体接收了足够多的线性独立分组组合之后,它就能重构原 始信息。使用网络编码,云中的对等体节点就很有可能具有其他相邻节点所不 具有的内容块的至少一部分。内容的各部分通过云传播,使得新建立的连接有 可能生成至少部分的有用内容,这与不使用网络编码的分布算法相反。在本发 明中,有一些方法在使用网络编码时尤为有利。例如,网络搅动算法能被安排 用于在即使随后将无法实现最小连接的情况下仍能丢弃连接。这是因为相比于
不使用网络编码的情形,节点找出新的有用连接相对容易。例如,BitTorrent 是不使用网络编码的一个算法示例。
本领域的技术人员将认识到用于存储程序指令的存储设备可分布在网络 上。例如,远程计算机可存储描述为软件的该过程的示例。本地或终端计算机 可访问远程计算机并下载该软件的一部分或全部以运行该程序。可替换地,本 地计算机可按需下载软件的片断,或者可以在本地终端上执行一些软件指令而 在远程计算机(或计算机网络)上执行一些软件指令。本领域的技术人员将认 识到,通过使用本领域技术人员已知的常规技术,软件指令的全部或部分可由 专用电路如DSP、可编程逻辑阵列等来执行。
如对于本领域的技术人员而言,显然此处给出的任何范围或者设备值可以 被扩展或者改变而不失去所寻求的效果。
文本中描述的各方法步骤可以在需要时按任何合适的次序或同时执行。
可以理解,上面对于较佳实施例的描述仅仅是作为例子给出的,而本领域 的技术人员可以做出多种改变。
权利要求
1.一种在对等内容分布云(10)中的节点(16,19)处管理连接的方法,所述方法包括步骤如下(i)在指定的第一时段内监视所述节点处各连接上的通信量;其特征在于所述方法还包括(ii)将所述节点处已经经由其请求来自相邻节点的内容但该相邻节点处不存在请求内容的任何空闲连接分配为通知状态;以及(iii)拆除所述节点处已经空闲了至少是该指定的第一时段并且不处于通知状态的任何连接。
2. 如权利要求1所述的方法,其特征在于,还包括拆除所述节点处己经 处于通知状态至少第二指定时段的任何连接,其中第二指定时段长于所述第一 时段。
3. 如权利要求2所述的方法,其特征在于,所述第二时段约为所述第一 时段的两倍。
4. 如前述任一权利要求所述的方法,其特征在于,所述第一时段约在3-7 分钟之间。
5. 如前述任一权利要求所述的方法,其特征在于,还包括指定所述节点 所需的最小连接数以作为所述对等内容分布云(10)的一部分,并且允许所述 节点处的连接数在指定情形中低于所述最小值。
6. 如前述任一权利要求所述的方法,其特征在于,还包括指定所述节点 所需的最大连接数以作为所述对等内容分布云(10)的一部分,并且允许所述 节点处的连接数在指定情形中超过所述最大值。
7. 如前述任一权利要求所述的方法,其特征在于,所述监视节点处各连 接上的通信量的步骤(i)还包括获取有关经这些连接的相对内容分布的信息。
8. 如前述任一权利要求所述的方法,其特征在于,还包括在每个指定的 时间间隔,在所述节点处选择所述连接之一并拆除该连接。
9. 如权利要求8所述的方法,其特征在于,所述连接以基本随机的方式 从所述节点处的至少一个连接子集中选择。
10. 如权利要求9所述的方法,其特征在于,所述监视节点处各连接上的通信量的步骤(i)还包括获取有关经这些连接的相对内容分布的信息;并且其中 节点处的所述连接子集不包括在其中监视的经该连接的相对内容分布为最低 的连接。
11. 如权利要求10所述的方法,其特征在于,节点处的所述连接子集不 包括在其中监视的经该连接的相对内容分布为最高的连接。
12. 如权利要求11所述的方法,其特征在于,所述连接子集还不包括在 其中监视的经该连接的相对内容分布为次高的连接。
13. 在对等内容分布云(10)中的节点(16, 19),所述节点包括(i) 与所述云中其他节点的多个连接;(ii) 监视器,被安排用于在指定的第一时段内监视所述节点处各连接上的 通信量;其特征在于所述节点还包括(iii) 分配器,被安排用于将所述节点处已经经由其请求来自相邻节点的内 容但该相邻节点处不存在请求内容的任何空闲连接分配为通知状态;(iv) 处理器,被安排用于拆除所述节点处己经空闲了至少是该指定的第一 时段并且不处于通知状态的任何连接。
14. 如权利要求13所述的节点,其特征在于,所述处理器还被安排用于 拆除所述节点处已经处于通知状态至少第二指定时段的任何连接,其中第二指 定时段长于所述第一时段。
15. 如权利要求13或权利要求14所述的节点,其特征在于,所述处理器还被安排用于在每个指定的时间间隔,在所述节点处选择所述连接之一并拆除 该连接。
16. 带有设备可执行指令用于在连接至对等内容分布云(10)中的节点 (16, 19)处执行各步骤的一种或多种设备可读介质,所述步骤包括(i) 在指定的第一时段内监视所述节点处各连接上的通信量;其特征在于 所述步骤还包括(ii) 将所述节点处已经经由其请求来自相邻节点的内容但该相邻节点处 不存在请求内容的任何空闲连接分配为通知状态;以及(iii) 拆除所述节点处已经空闲了至少是该指定的第一时段并且不处于通知状态的任何连接。
17. 如权利要求16所述的一种或多种设备可读介质,其特征在于,所述 步骤还包括拆除所述节点处已经处于通知状态至少第二指定时段的任何连接, 其中第二指定时段长于所述第一时段。
18. 如权利要求16或权利要求17所述的一种或多种设备可读介质,其特征在于,所述步骤还包括在每个指定的时间间隔,在所述节点处选择所述连接 之一并拆除该连接。
19. 如权利要求18所述的一种或多种设备可读介质,其特征在于,所述连接以基本随机的方式从所述节点处的至少一个连接子集中选择。
20. 如权利要求19所述的一种或多种设备可读介质,其特征在于,所述 监视节点处各连接上的通信量的步骤还包括获取有关经这些连接的相对内容 分布的信息;并且其中节点处的所述连接子集不包括在其中监视的经该连接的 相对内容分布为最低的连接。
全文摘要
实现一种拓扑管理过程,其中涉及在某些情况下移除或“拆除”各节点之间的连接以尝试用更为优化的连接来代替这些连接。空闲连接被拆除除非这些连接处于“通知”状态;通知状态是在其中已经对相邻节点作出了内容请求但该相邻节点尚不具备可用内容的状态。处于通知状态的空闲连接只有在其保持空闲的时间长于空闲连接被拆除之前所需时间的情况下才被拆除。为了避免由节点簇形成以及孤独者无法加入云导致的问题,教示了网络搅动算法。这涉及在达到指定条件时请求节点丢弃连接。连接之间的相对内容分布被监控并且这些信息被用来影响对这些要丢弃连接的选择。
文档编号H04L12/28GK101341688SQ200680048125
公开日2009年1月7日 申请日期2006年12月4日 优先权日2005年12月22日
发明者C·康特西迪斯, J·米勒, M·科斯塔, P·R·罗德里格斯, S·瑞森 申请人:微软公司
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1