CN101341688B - 在对等内容分布云中的连接管理 - Google Patents

在对等内容分布云中的连接管理 Download PDF

Info

Publication number
CN101341688B
CN101341688B CN200680048125.5A CN200680048125A CN101341688B CN 101341688 B CN101341688 B CN 101341688B CN 200680048125 A CN200680048125 A CN 200680048125A CN 101341688 B CN101341688 B CN 101341688B
Authority
CN
China
Prior art keywords
connection
node
content
node place
peer
Prior art date
Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
Active
Application number
CN200680048125.5A
Other languages
English (en)
Other versions
CN101341688A (zh
Inventor
C·康特西迪斯
J·米勒
M·科斯塔
P·R·罗德里格斯
S·瑞森
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Microsoft Technology Licensing LLC
Original Assignee
Microsoft Corp
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by Microsoft Corp filed Critical Microsoft Corp
Publication of CN101341688A publication Critical patent/CN101341688A/zh
Application granted granted Critical
Publication of CN101341688B publication Critical patent/CN101341688B/zh
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Images

Classifications

    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L67/00Network arrangements or protocols for supporting network services or applications
    • H04L67/01Protocols
    • H04L67/10Protocols in which an application is distributed across nodes in the network
    • H04L67/104Peer-to-peer [P2P] networks
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L67/00Network arrangements or protocols for supporting network services or applications
    • H04L67/01Protocols
    • H04L67/06Protocols specially adapted for file transfer, e.g. file transfer protocol [FTP]
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L67/00Network arrangements or protocols for supporting network services or applications
    • H04L67/01Protocols
    • H04L67/10Protocols in which an application is distributed across nodes in the network
    • H04L67/104Peer-to-peer [P2P] networks
    • H04L67/1074Peer-to-peer [P2P] networks for supporting data block transmission mechanisms
    • H04L67/1078Resource delivery mechanisms
    • H04L67/1085Resource delivery mechanisms involving dynamic management of active down- or uploading connections

Landscapes

  • Engineering & Computer Science (AREA)
  • Computer Networks & Wireless Communication (AREA)
  • Signal Processing (AREA)
  • Information Transfer Between Computers (AREA)
  • Computer And Data Communications (AREA)
  • Two-Way Televisions, Distribution Of Moving Picture Or The Like (AREA)
  • Mobile Radio Communication Systems (AREA)

Abstract

实现一种拓扑管理过程,其中涉及在某些情况下移除或“拆除”各节点之间的连接以尝试用更为优化的连接来代替这些连接。空闲连接被拆除除非这些连接处于“通知”状态;通知状态是在其中已经对相邻节点作出了内容请求但该相邻节点尚不具备可用内容的状态。处于通知状态的空闲连接只有在其保持空闲的时间长于空闲连接被拆除之前所需时间的情况下才被拆除。为了避免由节点簇形成以及孤独者无法加入云导致的问题,教示了网络搅动算法。这涉及在达到指定条件时请求节点丢弃连接。连接之间的相对内容分布被监控并且这些信息被用来影响对这些要丢弃连接的选择。

Description

在对等内容分布云中的连接管理
技术领域
本文一般地涉及对等内容分布,尤其涉及对等内容分布云中的连接管理。
背景技术
对等文件共享云中的拓扑管理是一个重大问题,该问题亟待解决以增加云的全部或大多数成员能够接收正被共享内容的速度和便利度。
在过去,使用提供基于基础结构解决方案的专用服务器场实现了大规模的内容分布。在此类方法中,每个请求内容的客户机形成与服务器场中一服务器的专用高带宽连接并在需要时下载内容。这类解决方案对必须提供并维持服务器场的内容提供商而言是昂贵的。图1示出了具有服务器1和客户机2的这类解决方案,每个客户机都有直接连接至一服务器的连接。这类解决方案不仅对内容提供商是昂贵的,而且它还不够健壮,因为服务器的故障会导致无法向多个客户机提供内容。此外,该解决方案的升级困难,因为每个服务器支持的客户机数量有限。
当前的用于内容分布的新范例是基于使用在其中各节点共享其资源(存储、CPU、带宽)的协作网络的分布式体系结构出现的。
协作内容分布解决方案固有地可自升级,因为系统的带宽容量随着更多节点的到来而增加:每个新节点请求来自其他节点的服务同时也向其他节点提供服务。因为每个新节点都贡献资源,所以系统容量随着需求增加而增长,从而导致无限的系统升级能力。通过协作,文件源即服务器不再需要增加其资源来适应更大的用户群;这也就提供了对“快闪(flash crowds)”(大量且突然的通信量高峰,通常会导致受影响的服务器崩溃)的顺应力。因此,终端-系统协作解决方案可用于快速有效地将软件更新、关键补丁、视频和其他的大型文件传递给大量用户通常维持原服务器的低成本。
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就可以下线而云10将仍然起作用。
在云10中提供了一个或多个跟踪者节点14。跟踪者节点14具有关于云成员的信息(诸如一对等体是否正参与该云)以及任何要共享的信息。这一跟踪者节点帮助云成员找出具有其所需内容的其他云成员。
在云中还存在多个对等体节点16、19,它们也被称为客户机。对等体节点是需要云中共享的内容并且可以或者也可以不共享其已经获取的内容各部分的节点。对等体节点如上所述可以充当临时种子。在图1所示的示例中,对等体节点16位于诸如互联网的公网中,而对等体节点19则位于防火墙和/或网络地址翻译器(NAT)18后的专用企业网或家庭网中。
本文中使用的术语“吸血鬼(leech)”指的是只下载但不上传内容的对等体;吸血鬼是从系统中获取但给予很少或者根本不给予回报的寄生虫。例如,吸血鬼可以是频繁下载内容但只给其他对等体节点提供很少或者根本不提供上传容量的节点。
术语“孤独者(loner)”用于指代寻求加入对等内容分布云但尚未对云中对等体形成最小连接数量的单独节点。
如上所述,现有的对等文件共享协议时常会在特定情况下遇到问题,而使它们的总性能降低。例如,在云包括大型且异类的用户群,在快闪群发期间,在高搅动的环境中,或者在存在有协作刺激机制的情况下。本发明考虑了在其中网络拓扑管理和其他方法可用于减轻或缓和部分或全部这些问题的途径。此外,本发明至少部分是有关于认识可能会出现的问题以及标识这些问题在哪些情况下最容易发生。这已通过在实际网络中的经验测试以及使用计算机仿真两者而得到实现。如下将参考图3和图4描述我们已经通过经验性测试和仿真标识的若干上述问题。
我们将我们的对等文件共享技术的全部目的指定为能让所有(或者大多数)的云成员在最短的可能时间内获取分布文件的完整副本。在某些情况下,我们还力图减少种子节点或始发服务器需要为待共享内容提供的上传次数。
考虑到这些目标,我们创建了一种拓扑管理过程,其中涉及在某些情况下移除或“拆除(tear down)”各节点之间的连接以尝试用更为优化的连接来代替这些连接。为此目的,我们创建了要在对等体节点上实现的多个条件或规则。上述规则中的许多优选但非必须地被周期性(诸如,经过一分钟)而不是立刻估计。这有助于防止网络内不必要的颠簸。现给出这些条件或规则的部分示例:
·为每个对等体节点提供它能够与其相邻节点形成的预指定的最大连接数以及预指定的最小连接数。相邻节点是在单个逻辑“路程段(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内的节点无法达到连接在NAT 18后的节点19,除非NAT 18的所有者特别支持该连接,而这是需要网络专门知识的动作。例如,专用企业网内连接在NAT 18后的节点通常具有在该企业网内唯一的唯一地址。然而,这些地址在互联网上不是唯一的。如果NAT或防火墙19后的节点具有公共节点16之一的网络地址,这样就能够使用该地址建立与上述公共节点的连接。但是反之则不然。也就是说,公共互联网内的节点16若没有请求绑定在前已设置的NAT处端口的网络地址详细信息,则无法形成与NAT后的节点19的连接。正因为此,作为对等文件共享云中一部分的专用节点19发现与公共节点相比,其相对较难获得内容。如果云中专用节点的比例占到50%以上,则对等内容分布会出现显著问题。实践中,我们已经发现对等内容分布云中专用节点的比例约为70%。为了解决这一问题,我们因此加权我们的网络‘搅动’算法以偏向于丢弃公共而非专用连接。
在本发明的一个较佳实施例中,我们使用设置在几十数量级的连接‘弹性’最大值,但在某些情况下可以增大该值。例如,如果要求更多的连接,则可以在指定时段内建立这些连接。类似地,我们在某些实施例中使用连接的弹性最小值。例如,在某些情况下,当前提供最小连接数的节点作为网络搅动算法的一部分被要求丢弃这些连接中的一个。弹性最小值允许该节点在指定时间内仍位于云中,而不考虑其连接过少。在一个较佳实施例中,弹性最小值能将现有对等体考虑为云成员直至其到达零连接。
我们已经发现以下的‘清除’规则或拓扑管理过程尤为有效:
·安排每个对等体节点每60秒或在任何合适的时间间隔之后执行一次‘清除’(见图5的框52)
·在该‘清除’期间拆除已经空闲约5分钟或者更久并且不处于通知状态的任何空闲连接(见图5的框50);和/或
·在该‘清除’期间拆除处于通知状态已长于10分钟或者其时间是允许的最长空闲时间的两倍的的任何连接(见图5的框51)。这一清除过程在图5中示出。
我们已经发现以下的‘网络搅动’规则或拓扑管理过程尤为有效:
·在对等体节点处获取有关经每个连接的相对内容分布的信息(见图6的框60)
·随机选择这些连接中的一个连接(见图6的框62)
·丢弃所选连接,除了经该连接的相对内容分布是最差的情况之外(见图6的框63)
·等待指定的时间间隔并在随后重复该方法(见图6的框64)。
在一个较佳实施例中,有关相对内容分布的信息包括内容分布的速率。本方法还包括在对等体节点处标识一连接子集,该连接子集是在排除了具有最差相对内容分布以及具有最高相对内容分布的连接之后的全部连接。随后从该子集中作出随机选择。
对等体初始化
当对等体初始化时,它必须知晓跟踪者的网络端点。为了在云中第一次初始化,它连接至跟踪者并请求该对等体有兴趣下载或共享的特定文件的描述。如果客户机已经从在前会话中获取该数据,它与跟踪者进行核对以确认该内容仍应被供应。在获取或确认文件描述之后,就认为该对等体被初始化。
只要对等体活动并且具有至少一个内容块用于共享,它就在跟踪者上登记它自己。该登记必须周期性地刷新,因为它会自动过期。对等体还应该在离开云的时候撤销在跟踪者上的登记。
除了获取文件信息并在跟踪者上登记之外,对等体可以周期性地询问跟踪者以找出其他对等体。这些询问由对跟踪者的请求组成,随后跟踪者将零个或多个端点传输至该对等体。
每次跟踪者事务都能经分别建立并维持的连接来处理。连接的生存期通常会是单次事务。
从云中断开连接
当从云中断开连接时,对等体如下动作:
·发送消息给跟踪者,把自己从云中活动参与者列表中删除。
·发送请求以关闭与每个相邻节点的连接,让相邻节点知晓该节点关闭。
·刷新每个连接(以确保断开连接通知被远程接收)并在随后关闭该连接。
在本发明的某些实施例中,对等内容分布算法使用网络编码,虽然这不是必须的。网络编码背后的原理是允许对等体编码分组,这与其中只有服务器或种子节点编码分组的服务器编码相反。使用网络编码,在每一次对等体节点需要将分组上传给另一对等体时,源对等体生成并发送其全部可用信息的线性组合。在对等体接收了足够多的线性独立分组组合之后,它就能重构原始信息。使用网络编码,云中的对等体节点就很有可能具有其他相邻节点所不具有的内容块的至少一部分。内容的各部分通过云传播,使得新建立的连接有可能生成至少部分的有用内容,这与不使用网络编码的分布算法相反。在本发明中,有一些方法在使用网络编码时尤为有利。例如,网络搅动算法能被安排用于在即使随后将无法实现最小连接的情况下仍能丢弃连接。这是因为相比于不使用网络编码的情形,节点找出新的有用连接相对容易。例如,BitTorrent是不使用网络编码的一个算法示例。
本领域的技术人员将认识到用于存储程序指令的存储设备可分布在网络上。例如,远程计算机可存储描述为软件的该过程的示例。本地或终端计算机可访问远程计算机并下载该软件的一部分或全部以运行该程序。可替换地,本地计算机可按需下载软件的片断,或者可以在本地终端上执行一些软件指令而在远程计算机(或计算机网络)上执行一些软件指令。本领域的技术人员将认识到,通过使用本领域技术人员已知的常规技术,软件指令的全部或部分可由专用电路如DSP、可编程逻辑阵列等来执行。
如对于本领域的技术人员而言,显然此处给出的任何范围或者设备值可以被扩展或者改变而不失去所寻求的效果。
文本中描述的各方法步骤可以在需要时按任何合适的次序或同时执行。
可以理解,上面对于较佳实施例的描述仅仅是作为例子给出的,而本领域的技术人员可以做出多种改变。

Claims (12)

1.一种在对等内容分布云(10)中的节点(16,19)处管理连接的方法,所述方法包括步骤如下:
(i)在指定的第一时段内监视所述节点处各连接上的通信量;
(ii)将所述节点处已经经由其请求来自相邻节点的内容但该相邻节点处不存在请求内容的任何空闲连接分配为通知状态;以及
(iii)拆除所述节点处已经空闲了至少是该指定的第一时段并且不处于通知状态的任何连接;
(iv)在每个指定的时间间隔,以基本随机的方式从所述节点处的至少一个连接子集中选择所述连接之一并拆除该连接,
其中,所述监视节点处各连接上的通信量的步骤(i)还包括获取有关经这些连接的相对内容分布的信息;并且其中节点处的所述连接子集不包括在其中监视的经该连接的相对内容分布为最低的连接。
2.如权利要求1所述的方法,其特征在于,还包括拆除所述节点处已经处于通知状态至少第二指定时段的任何连接,其中第二指定时段长于所述第一时段。
3.如权利要求2所述的方法,其特征在于,所述第二指定时段约为所述第一时段的两倍。
4.如权利要求3所述的方法,其特征在于,所述第一时段约在3-7分钟之间。
5.如权利要求1或2所述的方法,其特征在于,还包括指定所述节点所需的最小连接数以作为所述对等内容分布云(10)的一部分,并且允许所述节点处的连接数在指定情形中低于所述最小连接数。
6.如权利要求1或2所述的方法,其特征在于,还包括指定所述节点所需的最大连接数以作为所述对等内容分布云(10)的一部分,并且允许所述节点处的连接数在指定情形中超过所述最大连接数。
7.如权利要求1所述的方法,其特征在于,节点处的所述连接子集不包括在其中监视的经该连接的相对内容分布为最高的连接。
8.如权利要求7所述的方法,其特征在于,所述连接子集还不包括在其中监视的经该连接的相对内容分布为次高的连接。
9.在对等内容分布云(10)中的节点(16,19),所述节点包括:
(i)与所述云中其他节点的多个连接;
(ii)监视器,被安排用于在指定的第一时段内监视所述节点处各连接上的通信量;
(iii)分配器,被安排用于将所述节点处已经经由其请求来自相邻节点的内容但该相邻节点处不存在请求内容的任何空闲连接分配为通知状态;
(iv)处理器,被安排用于拆除所述节点处已经空闲了至少是该指定的第一时段并且不处于通知状态的任何连接,
所述处理器还被安排用于:在每个指定的时间间隔,以基本随机的方式从所述节点处的至少一个连接子集中选择所述连接之一并拆除该连接,
其中,被安排用于监视节点处各连接上的通信量的监视器获取有关经这些连接的相对内容分布的信息;并且其中节点处的所述连接子集不包括在其中监视的经该连接的相对内容分布为最低的连接。
10.如权利要求9所述的节点,其特征在于,所述处理器还被安排用于拆除所述节点处已经处于通知状态至少第二指定时段的任何连接,其中第二指定时段长于所述第一时段。
11.一种用于在连接至对等内容分布云(10)中的节点(16,19)处执行如权利要求1中各步骤的系统,所述系统包括:
(i)用于在指定的第一时段内监视所述节点处各连接上的通信量的装置;
(ii)用于将所述节点处已经经由其请求来自相邻节点的内容但该相邻节点处不存在请求内容的任何空闲连接分配为通知状态的装置;以及
(iii)用于拆除所述节点处已经空闲了至少是该指定的第一时段并且不处于通知状态的任何连接的装置,
(iv)用于在每个指定的时间间隔、以基本随机的方式从所述节点处的至少一个连接子集中选择所述连接之一并拆除该连接的装置,
其中,所述用于监视节点处各连接上的通信量的装置还包括用于获取有关经这些连接的相对内容分布的信息的装置;并且其中节点处的所述连接子集不包括在其中监视的经该连接的相对内容分布为最低的连接。
12.如权利要求11所述的系统,其特征在于,还包括用于拆除所述节点处已经处于通知状态至少第二指定时段的任何连接的装置,其中第二指定时段长于所述第一时段。
CN200680048125.5A 2005-12-22 2006-12-04 在对等内容分布云中的连接管理 Active CN101341688B (zh)

Applications Claiming Priority (3)

Application Number Priority Date Filing Date Title
EP05270099.4 2005-12-22
EP05270099A EP1802079B1 (en) 2005-12-22 2005-12-22 Connection management in peer-to-peer content distribution clouds
PCT/US2006/046227 WO2007075266A1 (en) 2005-12-22 2006-12-04 Connection management in peer-to-peer content distribution clouds

Publications (2)

Publication Number Publication Date
CN101341688A CN101341688A (zh) 2009-01-07
CN101341688B true CN101341688B (zh) 2012-11-14

Family

ID=35798475

Family Applications (1)

Application Number Title Priority Date Filing Date
CN200680048125.5A Active CN101341688B (zh) 2005-12-22 2006-12-04 在对等内容分布云中的连接管理

Country Status (6)

Country Link
US (1) US7849196B2 (zh)
EP (1) EP1802079B1 (zh)
CN (1) CN101341688B (zh)
AT (1) ATE463120T1 (zh)
DE (1) DE602005020331D1 (zh)
WO (1) WO2007075266A1 (zh)

Families Citing this family (31)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
EP1821487B1 (en) 2006-02-21 2010-04-07 Microsoft Corporation Topology management in peer-to-peer content distribution clouds
DE602006007537D1 (de) 2006-02-28 2009-08-13 Microsoft Corp Progressives Herunterladen
US8595794B1 (en) 2006-04-13 2013-11-26 Xceedium, Inc. Auditing communications
ATE482562T1 (de) * 2006-05-19 2010-10-15 Microsoft Corp Inhaltsverwaltung in peer-to-peer datenverteilungswolken
US8347286B2 (en) * 2007-07-16 2013-01-01 International Business Machines Corporation Method, system and program product for managing download requests received to download files from a server
CN101163156B (zh) * 2007-09-27 2010-07-21 腾讯科技(深圳)有限公司 获取网络资源的方法、客户端与系统
EP2086206A1 (en) * 2008-01-31 2009-08-05 Alcatel Lucent System for operating a peer-to-peer network taking into account access network subscriber information
JP2009237843A (ja) * 2008-03-27 2009-10-15 Brother Ind Ltd ファイル管理システム、携帯端末及び携帯端末プログラム
US20100185769A1 (en) * 2009-01-16 2010-07-22 Amlogic Co., Ltd. Methods for Downloading a File to Consumer Electronic Devices via a Peer-to-peer Network
CN102483768B (zh) * 2009-04-16 2015-12-16 泰必高软件公司 基于策略的储存结构分布
US10929401B2 (en) 2009-04-16 2021-02-23 Tibco Software Inc. Policy-based storage structure distribution
US8509237B2 (en) * 2009-06-26 2013-08-13 Wisconsin Alumni Research Foundation Architecture and system for coordinated network-wide redundancy elimination
US8504682B2 (en) * 2009-12-17 2013-08-06 Alcatel Lucent Localization of peer to peer traffic
US20110246294A1 (en) * 2010-03-30 2011-10-06 Beet, Inc. System and method for content management and distribution
US20120030343A1 (en) 2010-07-29 2012-02-02 Apple Inc. Dynamic migration within a network storage system
US8806049B2 (en) * 2011-02-15 2014-08-12 Peerialism AB P2P-engine
US20120297405A1 (en) * 2011-05-17 2012-11-22 Splendorstream, Llc Efficiently distributing video content using a combination of a peer-to-peer network and a content distribution network
US8681649B2 (en) * 2011-08-01 2014-03-25 Cisco Technology, Inc. System and method for adaptive optimization of resource utilization for redundancy elimination
US8898327B2 (en) 2011-10-05 2014-11-25 Peerialism AB Method and device for arranging peers in a live streaming P2P network
US8713194B2 (en) 2011-11-18 2014-04-29 Peerialism AB Method and device for peer arrangement in single substream upload P2P overlay networks
US8799498B2 (en) 2011-11-18 2014-08-05 Peerialism AB Method and device for peer arrangement in streaming-constrained P2P overlay networks
US11082490B2 (en) 2012-11-28 2021-08-03 Nvidia Corporation Method and apparatus for execution of applications in a cloud system
EP2944069B1 (en) * 2013-01-10 2019-03-13 Telefonaktiebolaget LM Ericsson (publ) Connection mechanism for energy-efficient peer-to-peer networks
US9438638B2 (en) * 2013-03-15 2016-09-06 Silicon Graphics International Corp. Method for transparently connecting augmented network socket operations
US10116740B2 (en) * 2013-12-27 2018-10-30 Microsoft Technology Licensing, Llc Peer-to-peer network prioritizing propagation of objects through the network
US9912529B2 (en) 2014-08-20 2018-03-06 International Business Machines Corporation Tenant-specific log for events related to a cloud-based service
US9906420B2 (en) 2014-12-22 2018-02-27 International Business Machines Corporation Dynamic boundary based monitoring and metering
US10021184B2 (en) 2015-12-31 2018-07-10 Dropbox, Inc. Randomized peer-to-peer synchronization of shared content items
US9479578B1 (en) 2015-12-31 2016-10-25 Dropbox, Inc. Randomized peer-to-peer synchronization of shared content items
US10419401B2 (en) 2016-01-08 2019-09-17 Capital One Services, Llc Methods and systems for securing data in the public cloud
CN109698843A (zh) * 2017-10-20 2019-04-30 中兴通讯股份有限公司 一种实现数据传输的方法及装置

Citations (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20040044790A1 (en) * 2002-08-12 2004-03-04 Scot Loach Heuristics-based peer to peer message routing

Family Cites Families (14)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US6331983B1 (en) * 1997-05-06 2001-12-18 Enterasys Networks, Inc. Multicast switching
US6252884B1 (en) 1998-03-20 2001-06-26 Ncr Corporation Dynamic configuration of wireless networks
US6600817B1 (en) * 1999-08-19 2003-07-29 Siemens Information & Communication Networks, Inc. Method and apparatus for monitoring communication connections within and across time zones
US6988140B2 (en) * 2001-02-23 2006-01-17 Sun Microsystems, Inc. Mechanism for servicing connections by disassociating processing resources from idle connections and monitoring the idle connections for activity
US7493363B2 (en) * 2001-09-19 2009-02-17 Microsoft Corporation Peer-to-peer group management and method for maintaining peer-to-peer graphs
US7206934B2 (en) * 2002-09-26 2007-04-17 Sun Microsystems, Inc. Distributed indexing of identity information in a peer-to-peer network
US7376732B2 (en) * 2002-11-08 2008-05-20 Federal Network Systems, Llc Systems and methods for preventing intrusion at a web host
US7404006B1 (en) * 2002-12-20 2008-07-22 Symantec Operating Corporation Publishing a network address in a computer network
US20040215693A1 (en) * 2003-03-26 2004-10-28 Jim Thompson Apparatus, methods and computer program products for power monitoring using networked UPS clients
US7953860B2 (en) * 2003-08-14 2011-05-31 Oracle International Corporation Fast reorganization of connections in response to an event in a clustered computing system
US7496648B2 (en) * 2003-10-23 2009-02-24 Microsoft Corporation Managed peer name resolution protocol (PNRP) interfaces for peer to peer networking
US7908357B2 (en) * 2005-09-21 2011-03-15 Battelle Memorial Institute Methods and systems for detecting abnormal digital traffic
DE602005021134D1 (de) * 2005-12-22 2010-06-17 Microsoft Corp Peer-to-Peer-Nachrichtenformat
US20080059631A1 (en) * 2006-07-07 2008-03-06 Voddler, Inc. Push-Pull Based Content Delivery System

Patent Citations (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20040044790A1 (en) * 2002-08-12 2004-03-04 Scot Loach Heuristics-based peer to peer message routing

Non-Patent Citations (2)

* Cited by examiner, † Cited by third party
Title
KLEMM, LINDEMANN, VERNON, WALDHORST.Characterizing the Query Behavior in Peer-to-peer File Sharing System.《PROCEEDINGS OF THE 4TH ACM SIGCOMM CONFERENCE ON INTERNET MEASUREMENT, 2004, TAORMINA, SICILY, ITALY》.2004, *
KLEMM, LINDEMANN, VERNON, WALDHORST.Characterizing the Query Behavior in Peer-to-peer File Sharing System.《PROCEEDINGS OF THE 4TH ACM SIGCOMM CONFERENCE ON INTERNET MEASUREMENT, 2004, TAORMINA, SICILY, ITALY》.ACM Press,2004,55-67. *

Also Published As

Publication number Publication date
EP1802079B1 (en) 2010-03-31
WO2007075266A1 (en) 2007-07-05
US20080294779A1 (en) 2008-11-27
ATE463120T1 (de) 2010-04-15
EP1802079A1 (en) 2007-06-27
DE602005020331D1 (de) 2010-05-12
CN101341688A (zh) 2009-01-07
US7849196B2 (en) 2010-12-07

Similar Documents

Publication Publication Date Title
CN101341688B (zh) 在对等内容分布云中的连接管理
CN101385280B (zh) 对等内容分布云中的拓扑管理
CN101356769B (zh) 一种在对等内容分布云中的一节点上形成分组的方法
CN1833423B (zh) 对等网络中的应用运行
US8090861B2 (en) Content management in peer-to-peer content distribution clouds
Chmaj et al. A P2P computing system for overlay networks
CN101304381A (zh) P2p网络中文件传输的方法、系统及装置
EP3022887A1 (en) Distributing data content in private networks
Jamali et al. Adaptive peer to peer resource discovery in grid computing based on reinforcement learning
Kotevski et al. A modeling framework for performance analysis of P2P live video streaming systems
Shen et al. LAN-awareness: improved P2P live streaming
Chisci et al. An evolutionary game approach to P2P video streaming
Taddia et al. A multicast-anycast based protocol for trackerless BitTorrent
Favalli et al. Improved multicast algorithm for overlay multicast in P2P based video streaming
CN105959369A (zh) 对等网络的资源下载方法
Ouali et al. Revisiting peering strategies in push-pull based P2P streaming systems
Smaragdakis et al. Distributed network formation for n-way broadcast applications
Ono et al. Resilient live-streaming with dynamic reconfiguration of p2p networks
Pinthong et al. New Technique to Improve BitTorrent Performance Based on Application Layer Traffic Optimization
Liao et al. A novel time-aware block scheduling model for media streaming in peer-to-peer overlay networks
Umamaheswari et al. P2P Overlay Maintenance Algorithm
Bustos et al. Multicast-P2P content distribution in large-scale enterprise networks
Liu et al. A manageable small world for collaborative enterprises social network
Tang et al. A teamwork approach to improving the downloading time in BitTorrent-like systems
Rossi et al. Equilibrium selection via strategy restriction in multi-stage congestion games for real-time streaming

Legal Events

Date Code Title Description
C06 Publication
PB01 Publication
C10 Entry into substantive examination
SE01 Entry into force of request for substantive examination
C14 Grant of patent or utility model
GR01 Patent grant
ASS Succession or assignment of patent right

Owner name: MICROSOFT TECHNOLOGY LICENSING LLC

Free format text: FORMER OWNER: MICROSOFT CORP.

Effective date: 20150506

C41 Transfer of patent application or patent right or utility model
TR01 Transfer of patent right

Effective date of registration: 20150506

Address after: Washington State

Patentee after: Micro soft technique license Co., Ltd

Address before: Washington State

Patentee before: Microsoft Corp.