CN105027533B - 用于识别点对点网络的计算装置的方法和装置 - Google Patents

用于识别点对点网络的计算装置的方法和装置 Download PDF

Info

Publication number
CN105027533B
CN105027533B CN201380064912.9A CN201380064912A CN105027533B CN 105027533 B CN105027533 B CN 105027533B CN 201380064912 A CN201380064912 A CN 201380064912A CN 105027533 B CN105027533 B CN 105027533B
Authority
CN
China
Prior art keywords
digital content
computing device
computing devices
point
information
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
CN201380064912.9A
Other languages
English (en)
Other versions
CN105027533A (zh
Inventor
A.伯巴
B.亨特
F.R.莫里森三世
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 Technology Licensing LLC
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 Technology Licensing LLC filed Critical Microsoft Technology Licensing LLC
Priority to CN201810725165.3A priority Critical patent/CN109104459B/zh
Publication of CN105027533A publication Critical patent/CN105027533A/zh
Application granted granted Critical
Publication of CN105027533B publication Critical patent/CN105027533B/zh
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Classifications

    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L69/00Network arrangements, protocols or services independent of the application payload and not provided for in the other groups of this subclass
    • 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
    • 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/1001Protocols in which an application is distributed across nodes in the network for accessing one among a plurality of replicated servers
    • H04L67/1004Server selection for load balancing
    • H04L67/1008Server selection for load balancing based on parameters of servers, e.g. available memory or workload
    • 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/1001Protocols in which an application is distributed across nodes in the network for accessing one among a plurality of replicated servers
    • H04L67/1004Server selection for load balancing
    • H04L67/101Server selection for load balancing based on network conditions
    • 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/1001Protocols in which an application is distributed across nodes in the network for accessing one among a plurality of replicated servers
    • H04L67/1004Server selection for load balancing
    • H04L67/1021Server selection for load balancing based on client or server locations
    • 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/10Protocols in which an application is distributed across nodes in the network
    • H04L67/104Peer-to-peer [P2P] networks
    • H04L67/1061Peer-to-peer [P2P] networks using node-based peer discovery mechanisms
    • H04L67/1063Discovery through centralising entities
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L67/00Network arrangements or protocols for supporting network services or applications
    • H04L67/50Network services
    • H04L67/60Scheduling or organising the servicing of application requests, e.g. requests for application data transmissions using the analysis and optimisation of the required network resources
    • H04L67/62Establishing a time schedule for servicing the requests

Landscapes

  • Engineering & Computer Science (AREA)
  • Computer Networks & Wireless Communication (AREA)
  • Signal Processing (AREA)
  • Computer Hardware Design (AREA)
  • General Engineering & Computer Science (AREA)
  • Computer Security & Cryptography (AREA)
  • Information Transfer Between Computers (AREA)
  • Computer And Data Communications (AREA)

Abstract

本文公开的实施例一般地涉及改善点对点网络中的数字内容的发布。例如,预测点对点网络的未来快照并且使用该未来快照来确定计算装置最好等待直到未来时间点才下载特定数字内容。对于另一个示例,计算装置被基于位置信息映射到不同的群组,并且使用群组间信息来为计算装置识别出要将针对数字内容的下载请求发送到的其它计算装置。对于另外一个示例,使用指示与不同的数字内容单元相关联的稀缺性的信息来对数字内容单元的发布进行优先级排序。对于再另一个示例,将计算装置分组成多个集群并且同一集群内的不同计算装置下载不同的数字内容单元,从而使得同一集群内的计算装置集体获得所有的不同数字内容单元。

Description

用于识别点对点网络的计算装置的方法和装置
技术领域
本发明涉及改善点对点性能,尤其涉及用于识别点对点网络的计算装置的方法和装置。
背景技术
诸如视频游戏这样的数字内容通常可以经由因特网从数字内容提供商那里直接下载而获得,从而消除了用户使用光学存储盘或某种其它的数据存储装置将这样的数字内容安装到他们的计算装置上的必要。不过,这样的数字内容可能包括大量数据,并且因此可能会花费潜在地很大量的时间来完整下载。此外,可能会使用很大量的数字内容提供商的资源和网络资源来将数字内容从数字内容提供商那里传递到用户的计算装置,用户的计算装置也被称为客户端。当很多计算装置试图同时下载同一数字内容的时候,传递这一数字内容所用到的时间量、数字内容提供商的资源和网络资源急剧增大,这通常发生在刚开始发行或更新数字内容的时候。
发明内容
本文公开的各种不同的实施例可以用于改善点对点网络中数字内容的发布。在某些这样的实施例中,收集与当前具有特定数字内容的计算装置有关的信息,也收集与当前处于获得特定数字内容的过程当中的计算装置有关的信息。基于这些信息,可以预测点对点网络的未来快照(snapshot)并且使用该未来快照确定在某些情况下计算装置最好等待直到未来时间点才尝试下载特定数字内容,而不是立即尝试施行下载。
在某些实施例中,计算装置被基于位置信息映射成不同的群组,并且收集群组间信息并使用该群组间信息来识别对于计算装置而言向其发送针对数字内容的下载请求会高效且有效的其它计算装置。
在某些实施例中,收集指示与不同的数字内容单元相关联的稀缺性的信息,并且基于这一信息对数字内容单元的发布进行优先级排序。
在某些实施例中,计算装置被分组成计算装置的集群,并且同一集群内的不同计算装置被指令或推荐向该集群外的计算装置发送针对不同数字内容单元的下载请求,从而使得同一集群内的多个计算装置将会集体获得所有的不同数字内容单元。于是同一集群内的计算装置可以彼此分享这些数字内容单元。
本发明内容被提供来以简化形式介绍概念的选择,这些概念将会在后文的具体实施方式进一步加以描述。本发明内容并不意图识别要求保护的主题的关键特征或必要特征,其也不意图用来限制所要求保护的主题的范围。此外,所要求保护的主题并不局限于解决本公开的任何一个部分中指出的任何或所有缺点的实现方式。
附图说明
图1示出可以用其实施本文描述的至少一些实施例的示范性使用环境。
图2示出描绘用于识别出实现或推荐点对点网络的特定计算装置向其发送针对特定数字内容的一个或多个下载请求的点对点网络的一个或多个其它计算装置的方法的实施例的流程图。
图3图示了可以在施行图2的流程图的步骤时生成的示范性表格。
图4示出描绘识别出实现或推荐点对点网络的计算装置向其发送针对数字内容的一个或多个下载请求的点对点网络的一个或多个其它计算装置的方法的实施例的流程图。
图5图示了提供可以在施行图4的流程图的步骤时访问和使用的信息类型的示例的示范性表格。
图6示出描绘用于改善点对点网络的多个计算装置之间的多个不同数字内容单元的发布的方法的实施例的流程图。
图7图示了示出点对点网络内或者作为点对点网络的一部分的计算装置群组内的数字内容项目的相对稀缺性的示范性直方图。
图8示出描绘用于改善点对点网络的计算装置之间的数字内容单元的发布的方法的实施例的流程图。
图9是用来图示参照图8的流程图描述的实施例的示范性使用的高层级框图。
图10是示范性游戏和媒体系统的立体视图。
图11是图10中所示的游戏和媒体系统的部件的示范性功能框图。
具体实施方式
点对点(P2P)网络可以用来减少将诸如视频游戏之类的数字内容发布到多个计算装置所用到的数字内容提供商资源、网络资源的量以及时间量。
在某些实施例中,为了改善特定数字内容的发布,收集与当前具有该特定数字内容的计算装置有关的信息,也收集与当前处于获得该特定数字内容的过程当中的计算装置有关的信息。基于这些信息,识别出下载请求(针对特定数字内容)所发送到的计算装置并且实现或推荐这些下载请求,来促使以高效且有效的方式进行特定数字内容的点对点传递。这些实施例预测点对点网络的未来快照,并且确定在某些情况下,不会立即试图开始数字内容的点对点传递,而是最好等待直到一个未来时间点才开始这一传递。
在某些实施例中,基于位置信息(例如,时区和/或地理区域信息),计算装置被映射到多个不同的群组。此外,收集包括例如群组间数据传递速率和/或群组间可用性的群组间信息。基于群组间信息,识别出这样的计算装置:向这些计算装置发送针对数字内容的下载请求将会是高效且有效的;并且实现或推荐这些下载请求。
在某些实施例中,收集指示与多个不同的数字内容单元中的每一个相关联的稀缺性的信息,并且以降低具有超出指定水平的稀缺性的数字内容单元的稀缺性的方式对数字内容单元的发布进行优先级排序。数字内容单元的发布是基于优先级排序的结果而实现的,以便降低具有超过指定水平的稀缺性的数字内容单元的稀缺性。这些实施例应当具有改善在点对点网络的计算装置之间进行的数字内容单元发布的效果。
在某些实施例中,计算装置被分组成计算装置集群,从而使得集群中的每一个都包括多个计算装置。对于集群中的每一个,指令或建议同一集群内的不同计算装置向该集群外的计算装置发送针对不同数字内容单元的下载请求,从而使得同一集群内的多个计算装置将集体获得所有这些不同的数字内容单元。这些实施例应当也具有改善在点对点网络的计算装置之间进行的数字内容单元发布的效果。
在更加详细地讨论前面提到的实施例之前,参照图1描述使用环境100的示例实施例。示范性使用环境100包括多个计算装置1121,1122,1123,...,112n,这些计算装置可以集体称为计算装置112,并且可以单独地称为计算装置112。被配置为用来接收、处理和呈现数字内容的每一个计算装置112与相应的用户相关联。在一些情况下,一个以上的计算装置可以与同一个用户相关联。例如,用户可以具有视频游戏控制台、移动装置、计算机(例如膝上型、桌面型、平板型)、可穿戴装置(例如头戴显示器)等中的两个或更多个,并且可以在这些计算装置中的每一个上消费数字内容。
每一个计算装置可以通过网络122(例如,计算机网络、蜂窝电话网络和/或任何其它适当类型的网络)与一个或多个数字内容商店132(例如,可以从其下载数字内容的位置)通信。数字内容商店132被描绘为存储着多种数字内容项目1341,1342,...,134n,它们可以被集体称为数字内容项目134,也可以被单独地称为数字内容项目134。数字内容商店可以由内容递送网络(CDN)支持,不过并不局限于此。每一个计算装置112还可以以点对点布置与一个或多个其它的计算装置112进行通信,以从对等点计算装置接收数字内容。在任何给定时刻,参与点对点通信的或者点对点通信可用的计算装置112可以被称为群集。群集是动态的,因为计算装置可以响应于用户打开和关闭他们的计算装置和/或用户(或他们的计算装置)选择性地启用和禁用点对点通信能力而加入或离开群集。举一个特定的示例,计算装置可以暂时禁用全部或部分它的点对点能力,从而使得诸如网络、CPU和/或存储器资源之类的资源可以用来维持用户体验。
每一个数字内容项目134包括多个内容部分,它们的示例被示出为用于数字内容项目1342的内容部分1361...136n。数字内容项目134可以表示任何适当类型的数字内容,包括但不局限于诸如视频游戏、交互式视频和社交媒体之类的交互式内容。其它的示例包括,但不局限于,电影、电视表演而其它视频、音乐、照片、网站等等。同样地,内容部分可以采取任何适当的形式,比如但不局限于,存储器的特定部分(例如存储器位置、磁盘扇区等),或者通过扩展,特定的文件或者它们的部分。
在计算装置112能够施行数字内容的点对点传递的情况下,每一个计算装置112也可以被称为对等节点(或者简单地对等点或节点),并且整个的使用环境100也可以被称为点对点内容发布网络(或者简单地点对点网络)。在点对点网络中,通信网络中的多个节点可以访问点对点文件共享协议,并且可以使用该协议来设法获得正被发布的特定数字内容(比如文件)的副本。网络中的节点可以每一个都具有一个或多个使用该协议的到其它节点的当前连接。这样,节点可以在它们中断或形成到网络中已有节点的连接时加入或离开网络。这些连接不必总是主动用于内容发布,尽管这些连接必须适合于使用特定协议进行内容发布,该特定协议可以使用或可以不使用网络编码。这些连接可以是单向的或者双向的连接。可能的是,给定节点可以同时是不止一个点对点网络的成员。
图1还示出了一个协调器计算装置142 ,也可以将其称为协调器节点,或者简单地协调器。协调器142可以收集和维护关于各个不同计算装置112的信息,比如计算装置是否参与到点对点网络中并且是否具有任何要共享的数字内容。此外,协调器142可以帮助计算装置112发现具有需要的或期望的数字内容的其它计算装置112。协调器142可以是,例如,追踪器,但是并不局限于此。虽然图1中仅仅示出了一个协调器142,但是点对点内容发布网络100可以包括多个协调器142。
使用延迟成种来改善P2P性能
如前面所提到的,某些实施例涉及通过收集与当前具有特定数字内容的计算装置有关的信息以及收集与当前处于获得特定数字内容的过程当中的计算装置有关的信息来改善特定数字内容的发布。基于这些信息,识别出下载请求(针对特定数字内容)所发送到的计算装置,并且实现或推荐这些下载请求,来促使以高效且有效的方式进行特定数字内容的点对点传递。这些实施例预测点对点网络的未来快照并且确定在某些情况下,不会立即试图实现数字内容的点对点传递,而是最好等待直到一个未来的时间点才实现这一传递。
下面讨论的图2的高层级流程图用来解释这些实施例。更具体地说,现在将会使用图2来描述一种用于识别出实现或推荐点对点网络的一个特定计算装置(例如,图1中的1121)向其发送针对特定数字内容的下载请求的点对点网络的一个或多个其它计算装置的方法。特定数字内容可以是包括多个数字内容部分(也称为数字内容单元)的整个数字内容项目、包括多个数字内容部分的数字内容项目的特定数字内容部分或者数字内容项目的一组特定的数字内容部分。
按照一种实施例,可以响应于计算装置(例如,图1中的1121)指示需要或期望获得特定数字内容(例如,特定数字内容部分)而发起图2中的步骤。参照图2,在步骤202,访问与当前具有该特定数字内容的其它计算装置中的一个或多个有关的信息。在步骤204,访问与当前处于获得该特定数字内容的过程当中的其它计算装置中的一个或多个有关的信息。在某些实施例中,当前处于获得该特定数字内容的过程当中的计算装置至少已经发送了针对该特定数字内容的下载请求,但是可以或可以没有已经开始下载该特定数字内容。在其它实施例中,当前处于获得该特定数字内容的过程当中的计算装置已经开始下载该特定数字内容。
在步骤202和204所访问的信息可以包括下载速度信息(其也可以称为数据传递速率信息)、计算装置可用性信息,但是并不局限于此。为了使这些信息被访问到,首先要收集这些信息。在某些实施例中,这些信息是由协调器(例如,图1中的协调器142)收集和维护的。在其它实施例中,点对点网络的每一个计算装置112可以收集和维护这些信息供其自己使用。在再其它的实施例中,特定的计算装置可以收集和维护一些这种信息,并且还可以从协调器访问一些这种信息。换句话说,特定的计算装置可以访问它自己收集和维护的信息和/或访问由协调器收集和维护的信息。更加一般地说,参照图1描述的方法可以由需要或期望特定数字内容的特定计算装置(没有来自协调器的任何帮助)施行、由与特定计算装置和其它计算装置通信的协调器施行或者由特定计算装置与协调器的组合施行。
将会从下文的描述中领会到,在步骤202和204访问的信息被用来为需要或期望特定数字内容的特定计算装置(例如,图1中的计算装置1121)识别一个或多个种子。在点对点网络中,种子是具有另一个计算装置需要或期望的特定数字内容并且可用于且乐于提供特定数字内容的副本(例如,响应于下载请求)的计算装置。在本说明书中,当前具有特定数字内容但是直到以后的时间点才可用做种子(例如,因为它们当前离线或过于繁忙)的计算装置可以被称为当前不可用种子。当前没有特定数字数据内容、但是当前处于获得该特定数字内容的过程当中的计算装置可以被称为未来种子。当前不可用种子和未来种子是延迟种子的不同示例。当前具有特定数字数据内容并且当前能够提供特定数字内容副本的种子可以被称为当前可用种子。在步骤202,可以访问与当前可用种子和当前不可用种子有关的信息。在步骤204,可以访问与未来种子有关的信息。
在步骤206,基于与当前具有特定数字内容的其它(多个)计算装置有关的信息,存在特定计算装置从当前具有特定数字内容的其它计算装置中的一个或多个中的每一个下载特定数字内容将会花费的时间量的(多个)第一估计值的(多个)确定结果。这并不必然意味着,如果有二十个当前具有特定数字内容的其它计算装置,则需要确定二十个估计值。相反,可能的是,可以仅为二十个当前具有特定数字内容的其它计算装置中的一些(例如十个)确定估计值。
在步骤208,基于与当前处于获得特定数字内容的过程当中的其它(多个)计算装置有关的信息,存在特定计算装置从当前处于获得特定数字内容的过程当中其它计算装置中的一个或多个中的每一个下载该特定数字内容将会花费的时间量的(多个)第二估计值的(多个)确定结果。和步骤206的情况一样,在步骤208,可以为当前处于获得特定数字内容的过程当中的其它计算装置中的每一个和每个或者仅仅是其中的一些确定估计值。
按照某些实施例,在步骤206确定的每一个第一估计值是直到当前具有特定数字内容的其它计算装置之一(例如,1122)可用于提供特定数字内容为止将花费的时间量的估计值加上一旦该其它计算装置(例如,1122)可用于提供特定数字内容,特定计算装置(例如,1121)完成特定数字内容的下载将花费的时间量的估计值的总和。例如,假设计算装置1122具有计算装置1121需要或期望的特定数字内容,但是计算装置1122将直到从现在起的七分钟才能够提供该特定数字内容(例如,因为计算装置1122将会忙于成为其它计算装置的种子和/或将会在接下来的七分钟内流送视频)。还假设一旦计算装置1122可用于提供特定数字内容,就估计特定计算装置1121将花费四分钟完成从计算装置1122下载特定数字内容。对于这个示例,在步骤206确定的第一估计值将是十一分钟(即,七分钟加上四分钟等于十一分钟)。在供替换的实施例中,每一个第一估计值是一旦从当前具有特定数字内容的其它计算装置之一开始下载,特定计算装置(例如,1121)完成特定数字内容下载将花费的时间量的估计值。继续前面描述的示例,在供替换的实施例中,第一估计值将是四分钟。
按照某些实施例,在步骤208确定的每一个第二估计值是其它计算装置之一(例如,1123)完成获得特定数字内容的过程将会花费的时间量的估计值加上特定计算装置在该其它计算装置(例如,1123)已经完成了获得特定数字内容的过程之后完成从它下载特定数字内容将花费的时间量的估计值的总和。例如,如果估计出计算装置1123将花费十分钟来完成获得特定数字内容的过程,并且估计出特定计算装置1121在其它计算装置1123已经完成了获得特定数字内容的过程之后将花费五分钟完成从它下载特定数字内容,那么在步骤208确定的第二估计值将是十五分钟。在供替换的实施例中,每一个第二估计值是特定计算装置在其它计算装置之一完成了获得特定数字内容的过程之后,完成从所述其它计算装置之一下载特定数字内容将花费的时间量的估计值。继续前面描述的示例,在供替换的实施例中,第二估计值将是五分钟。
在步骤210,基于第一和第二估计值(在步骤206和208确定的),存在对于针对特定数字内容的下载请求所发送到的其它计算装置中的一个或多个的识别。
在某些实施例中,在步骤210识别的其它计算装置之一是特定计算装置被估计相对于当前时间在最早时间从其下载特定数字内容的其它计算装置。也可以在步骤210识别出附加的其它计算装置。更一般地说,可以在步骤210识别出数目为N个的其它计算装置,这N个其它计算装置对应于特定计算装置被估计在第1、第2...第N个最早时间从其下载特定数字内容的N个其它计算装置。
在其它实施例中,在步骤210识别出的其它计算装置之一是一旦特定计算装置开始下载,特定计算装置被估计以最短时间量从其下载特定数字内容的其它计算装置。也可以在步骤210识别出附加的其它计算装置。更一般地说,可以在步骤210识别出数目为N个的其它计算装置,这N个其它计算装置对应于一旦特定计算装置开始下载,特定计算装置被估计以第1、第2...第N个最短时间量从其下载特定数字内容的N个其它计算装置。
在步骤212,实现或推荐针对特定数字内容的下载请求的发送。这可以包括,或者导致,针对特定数字内容的这一下载请求被从特定计算装置发送到所识别出的一个或多个其它计算装置中的至少一个。在步骤214 ,实现由特定计算装置进行的特定数字内容的下载。特定计算装置可以发起分别与步骤212和214相关联的(多个)下载请求的发送和下载的施行。替换地,分别与步骤212和214相关联地,协调器可以将发送针对特定数字内容的(多个)下载请求的指令或建议发送给特定计算装置,并且将执行下载的指令或建议发送给特定计算装置。
在点对点网络中,计算装置一次仅可以充当有限数目的其它计算装置(有时称为“下载方”)的种子。这个有限数目可以是动态的,意思是说,如果计算装置还在施行其它功能,比如流送视频或正被用于玩视频游戏,那么该计算装置可能仅能够充当只不过少量其它计算装置的种子,或者可能不能充当其它计算装置的种子。在点对点网络的典型实现方式中,在种子计算装置已经在为它能够服务的最大数目的下载方提供服务的时候,该种子计算装置将会拒绝它接收到的所有新的下载请求。此外,在点对点网络的典型实现方式中,向潜在的(多个)种子发送(多个)下载请求的(多个)计算装置并不了解该(多个)下载请求是否有可能被拒绝或接受。前面描述的实施例可以用来通过降低计算装置发送将会被拒绝的下载请求的可能性,并且通过潜在地选择等待相对较快的种子,而不是勉强接受相对较慢的当前可用种子,来改善点对点网络的性能。计算装置可以等待的相对较快的种子可以是当前不可用种子或未来种子,这两者都是延迟种子的示例,如前面所解释的。
特定计算装置可能会在指定时间量内(例如,在接下来的十分钟内)需要或期望特定数字内容。这可能例如因为这样的原因而发生:特定计算装置的用户正在玩游戏并且很可能会在十分钟内达到一个游戏水平,而该特定计算装置还没有用于该水平的数字内容。在某些实施例中,如果第一或第二估计值中没有一个(或者至少预定最小数目个)小于十分钟,那么特定计算装置可以直接向内容递送商店(例如,132)发送针对该特定数字内容的下载请求。更一般地说,参照图2描述的实施例可以被用来减少直接从内容递送商店下载的数字内容的量,并且因此,降低负责内容递送商店的公司的成本。不过,在从对等点计算装置下载数字内容将会对用户的体验造成不利影响的情形下,用户的计算装置直接从数字内容商店下载数字内容将是优选的。因此,在供替换的实施例中,会有这样的场面:不是实现或推荐特定计算装置向其它的“对等”计算装置中的一个或多个发送下载请求,而是会有直接向数字内容商店发送下载请求的建议或指令。
图3图示了可以由施行步骤202-208的计算装置和/或协调器生成的示范性表格300。表格300的列320列出了点对点网络的其它计算装置。列304包括这些其它计算装置中的各个是否当前具有所需要的或期望的特定数字内容的指示。列306包括这些其它计算装置中的各个是否当前处于获得该特定数字内容的过程中的指示。列308包括从列302中列出各个不同的其它计算装置中下载特定数字内容将会花费的时间量的估计值。
对于当前具有特定数字内容的其它计算装置,列308中的每一个相应的估计值可以是通过对其它计算装置变为可用于支持下载所花费的时间量的估计值与该特定计算装置一旦从当前具有特定数字内容的其它计算装置之一中开始下载,完成特定数字内容的下载将花费的时间量的估计值进行求和而生成的。如果该其它计算装置立即可用于支持特定数字内容的下载(即,立即可用于提供特定数字内容),则该估计值部分为零,并且所述总和将会等于该特定计算装置一旦从其它计算装置开始下载,完成特定数字内容的下载将花费的时间量的估计值。
对于当前处于获得特定数字内容的过程中的其它计算装置,列308中的每一个相应的估计值可以是通过对其它计算装置完成获得特定数字内容的过程将花费的时间量的估计值与在其它计算装置完成获得特定数字内容的过程之后该特定计算装置完成从其它计算装置下载特定数字内容将会花费的时间量的估计值进行求和而生成的。
在供替换的实施例中,对于当前具有特定数字内容的其它计算装置,列308中的每一个估计值可以简单地是特定计算装置一旦从当前具有特定数字内容的其它计算装置开始下载,完成特定数字内容的下载将会花费的时间量的估计值。类似地,对于当前处于获得特定数字内容的过程当中的其它计算装置,列308中的每一个估计值可以简单地是在其它计算装置完成了获得特定数字内容的过程之后特定计算装置完成从其它计算装置下载特定数字内容将会花费的时间量的估计值。用于生成估计值的其它变型也是可能的,并且处于实施例的范围之内。
示范性表格300图示了最快(即,最短)下载估计值可以对应于当前处于获得特定数字内容的过程当中的另一个计算装置。这可能会发生,例如因为其它计算装置1124几乎完成了获得特定数字内容,一旦它完成了获得特定数字内容就将会立即可用作种子,并且因为(需要或期望特定数字内容的)特定计算装置和其它计算装置1124之间的数据传递速率极其快速。因此,计算装置等待直到一个未来时间点(当另一个计算装置准备好作为特定数字内容的种子的时候)再尝试下载特定数字内容可能会比较好,而不是立即尝试施行下载。
通过预测的种子选择来提高群集效率
在某些实施例中,计算装置被基于位置信息(例如,时区和/或地理区域信息)映射到多个不同的群组。此外,收集群组间信息,其中群组间信息可以包括群组间数据传递速率和/或群组间可用性。基于群组间信息,识别出这样的计算装置:向它们发送针对数字内容的下载请求将会是高效且有效的,并且实现或推荐这些下载请求。
下面讨论的图4的高层级流程图用来解释这些实施例。更具体地说,现在将会使用图4来描述一种用于识别出点对点网络的一个计算装置(例如,图1中的1121)的针对数字内容的一个或多个下载请求被发送到的所述点对点网络的一个或多个其它计算装置的方法。该数字内容可以是包括多个数字内容部分(也称为数字内容单元)的整个数字内容项目、包括多个数字内容部分的数字内容项目的数字内容部分或者数字内容项目的一组数字内容部分。参照图4描述的步骤可以由协调器(例如,图1中的142)或对等点计算装置(例如,图1中的1121)或者它们的组合来施行。
参照图4,在步骤402,基于与多个计算装置中的每一个对应的位置信息,所述多个计算装置中的每一个被映射到(即,分组到)多个不同群组之一。该位置信息可以是时区和/或地理区域,但是并不局限于此。例如,第一时区内的或者第一组时区内的计算装置,可以被映射到第一群组;第二时区内的或者第二组时区内的计算装置,可以被映射到第二群组;...;并且第N时区内的或者第N组时区内的计算装置,可以被映射到第N群组。全世界目前总共有四十个时区。每一个时区可以对应于不同的群组,或者多个时区可以被映射到同一个群组,从而使得比起存在的总共的时区,存在更少的群组。对于另一个示例,第一地理区域内的计算装置可以被映射到第一群组,第二地理区域内的计算装置可以被映射到第二群组;...并且第N个地理区域内的计算装置可以被映射到第N群组。不同的地理区域可以对应于不同的洲、不同的国家、或者一个国家内不同的区域(例如,州、省、地区、城市等等),但是并不局限于此。
在步骤404,访问群组间信息,按照特定的实施例,群组间信息包括至少一个群组间数据传递速率信息和群组间可用性信息。在步骤404由协调器142施行的情况下,群组间信息可以由协调器142存储在本地,或者可以被远程存储并且由协调器142远程访问。在步骤404由计算装置112施行的情况下,群组间信息可以由计算装置112存储在本地,或者可以被远程存储并且由计算装置112远程访问(例如,计算装置112可以访问由协调器142或某一其它装置存储的群组间信息)。群组间数据传递速率信息可以指定数据在一对群组之间传递的平均或中间速度,但是并不局限于此,该群组间数据传递速率信息可以是基于历史信息,并且可选地也可以基于实时信息。类似地,群组间可用性信息可以指定第二群组中的计算装置将会接受来自于第一群组中的计算装置的下载请求的可能性,但是并不局限于此,该群组间可用性信息可以基于历史信息,并且可选地也可以基于实时信息。
为简明起见,假设将一万个计算装置中的每一个基于时区信息映射到三个不同的群组之一,这三个群组称为群1、群2和群3。群组间信息可以包括与群1与2之间、群1与3之间和群2与3之间的数据传递相关联的信息。群组间信息可以是双向的,在这样情况下,群1与群2之间的群组间数据传递速率信息和群组间可用性信息与群2与群1之间的相同。替换地,群组间信息可以是单向的,在这样情况下,群1与群2之间的群组间数据传递速率信息和群组间可用性信息与群2与群1之间的不同。 群组间信息可以独立于一日的时刻,或者优选地,可以有对应于一日的不同时刻和潜在地一周的不同日子的不同群组间信息。例如,可以有对应于一日的不同时间范围(例如, 12:00am到3:59am,4:00am到7:59am , 8:00am到11:59am , 12:00pm到3:59pm , 4:00pm到7:59pm , 8:00pm到11:59pm)的不同群组间信息。其它的变型也是可能的,并且处于实施例的范围之内。
这样的实施例利用了这样的预测(基于历史信息,并且潜在地也基于实时信息):从位于相对遥远之处的计算装置下载数字内容通常要比从位于相对靠近之处的计算装置下载数字内容更快。 这与直觉刚好相反,因为等待时间通常与数字内容行经的距离成反比。不过,这些实施例用数据传递速率和/或可用性的增加抵消了等待时间的增加。例如,加利福尼亚州、俄勒冈州和华盛顿州都处于时区UTC-8(其中UTC代表协调世界时)内,并且作为英国的组成部分的国家都处于时区UTC+0内,这个时区比时区UTC-8早8个小时。这意味着,当加利福尼亚州是晚上8:00时(这是加利福尼亚州的用户很可能正在使用他们的计算装置并且想要下载游戏或视频的时间),英国是凌晨4:00(这是英国的用户们将很可能正在睡觉并且他们的计算装置将处于空闲状态并很可能可用作种子的时间)。
仍然参照图4,在步骤406,对于群组之一内的计算装置之一,基于步骤404所访问的信息,存在对于针对数字内容的一个或多个下载请求所发送到的其它群组之一的识别。继续前面的示例,如果在加利福尼亚州的晚上8:00,被映射到与时区UTC-8相对应的第一群组的计算装置指示它需要或期望找到一个从其下载数字内容的种子计算装置,那么,如果所访问的群组间信息指示在加利福尼亚州的晚上8:00第一和第二群组之间的快速的群组间数据传递速率和/或高的群组间可用性,则可以识别出与时区UTC+0相对应的第二群组。换言之,在步骤404访问的群组间信息可以指示,在时区UTC-8的晚上8:00(其在时区UTC+0是凌晨4:00),在与时区UTC-8相对应的群组和与时区UTC+0相对应的群组之间,存在快速的群组间数据传递速率和高的群组间可用性。在步骤406,这可以导致为与时区UTC-8相对应的群组内的计算装置识别出与时区UTC+0相对应的群组。
在步骤408,实现或推荐一个或多个下载请求的发送。这一(这些)下载请求是针对数字内容的,并且是要从群组之一内的计算装置之一发送到所识别出的其它群组之一内的一个或多个计算装置。这可以包括,或者导致,这一针对数字内容的下载请求被从一个计算装置发送到被映射到所识别出的其它群组的一个或多个计算装置。在步骤410 ,实现数字内容的下载。需要或期望下载该数字内容的计算装置可以发起分别与步骤408和410相关联的(多个)下载请求发送和下载执行。替换地,分别与步骤408和410相关联地,协调器可以将发送针对数字内容的(多个)下载请求的指令或建议发送给该计算装置,并且可以将执行下载的指令发送给该计算装置。
在前面描述的实施例中,被映射到同一群组的计算装置可以被称为本地对等点,而被映射到不同群组计算装置可以被称为非本地对等点。从非本地对等点下载数字内容的另一个潜在的优点是,在时间上在前的非本地对等点更有可能是新发行的数字内容的好种子。例如,假设新的计算机游戏的全球发行在当地时间的晚上8:00进行。这意味着,英国的计算装置可以比加利福尼亚州的计算装置早8小时下载该新游戏。这样,当加利福尼亚州是晚上8:00时,加利福尼亚州的计算装置从英国的非本地对等点下载数字内容将有可能更快,这不仅是因为快速的群组间传递速率和高的群组间可用性,而且还因为英国的非本地对等点(与加利福尼亚州的本地对等点比较起来)更有可能已经有了新发行的数字内容。此外,通过实现或推荐从很可能空闲的计算装置(例如,因为它们的用户很可能在睡觉)下载数字内容,完成下载将要花费的时间量的估计值可以更加精确,因为可用的空闲种子计算装置不太可能在下载中途中断它的连接(与可用的非空闲种子计算装置比较起来)。
图5图示了表格500 ,该表格是在步骤404可以访问的信息类型的示例。沿着最左侧一列和横跨表格500最顶部一行列出了各个不同的时区。点对点网络的每一个计算装置可以被映射到时区之一(或者时区组之一)。表格500的格可以用群组间信息填充,比如但不局限于,群组间数据传递速率信息和群组间可用性信息。对于特定的示例,标注为502的格可以包括UTC-2时区与UTC+0时区之间的群组间数据传递速率信息和群组间可用性信息。可以针对一日的不同时间范围和/或一周的不同日子生成类似的表格,但是并不局限于此。在步骤406可以使用这样的表格来为映射到群组之一的计算装置识别将针对数字内容的下载请求发送到的(多个)其它群组。
如前面所提到的,在任何给定时刻,参与或可用于点对点通信的那些计算装置112被称为群集。参与或可用于点对点通信的计算装置可以是同一群集的一部分,即使它们被映射到不同的群组。参照图4和5描述的实施例可以通过预测在很多情形下被映射到另一个群组的计算装置可能对于特定计算装置而言是最佳的种子来提高群集效率。
区域层级的稀缺性缓解
在某些实施例中,收集指示与多个不同数字内容单元中的每一个相关联的稀缺性的信息,并且以降低具有超出指定水平的稀缺性的数字内容单元的稀缺性的方式对数字内容单元的发布进行优先级排序。数字内容单元的发布是基于优先级排序的结果来实现的,以便降低具有超出指定水平的稀缺性的数字内容单元的稀缺性。这些实施例应当具有改善点对点网络的计算装置之间的数字内容单元发布的效果。下面讨论的图6的高层级流程图用来解释这些实施例。更具体地说,现在将会使用图6来描述用于改善点对点网络的多个计算装置之间的多个不同数字内容单元的发布的方法。参照图4描述的步骤可以由协调器(例如,图1中的142)或计算装置(例如,图1中的1121)或者它们的组合来施行。每一个数字内容单元可以对应于整个数字内容项目,或者可以对应于包括多个数字内容部分的数字内容项目的一个或多个部分。参照图6,在步骤602,访问指示与多个不同的数字内容单元中的每一个相关联的稀缺性的信息。在步骤602访问的信息可以指示与多个不同数字内容单元中的每一个相关联的当前稀缺性和/或预测的未来稀缺性。指示稀缺性的信息量化数字内容在整个点对点网络或点对点网络的一部分内的出现频率(或未出现频率)。为简明起见,假设点对点网络的一部分包括一组一百个对等点计算装置。而且假设这一百个对等点计算装置中的五十个具有第一数字内容单元的副本,但这一百个对等点计算装置中只有五个具有第二数字内容单元的副本。指示稀缺性的信息可以例如指定第一数字内容单元具有100分之50的稀缺性,或者更简单地具有为二的稀缺性水平(即,100/50=2);并且指定第二数字内容单元具有100分之5的稀缺性,或者更加简单地具有为二十的稀缺性水平(即,100/5 = 20)。继续这个示例,可以领会到的是,第二数字内容单元的稀缺性是第一数字内容单元的十倍。供替换的表达稀缺性的方式也是可能的,并且处于实施例的范围之内。例如,指示稀缺性的信息可以指定具有特定数字内容的计算装置的百分比(或其它量化方式)。为了使指示稀缺性的信息在步骤602被访问,首先需要收集该信息。在某些实施例中,这些信息是由协调器(例如图1中的协调器142)收集和维护的。例如,协调器可以在对等计算装置向该协调器提供它们具有并且愿意与其它对等点计算装置分享的数字内容的列表时收集这些信息。对于另一个示例,协调器可以保持跟踪对等点计算装置下载了什么,并且可以基于这一信息推断出稀缺性。对于再另一个示例,协调器可以保持跟踪计算装置找到特定数字内容的种子有多困难和/或费时,并且可以基于这一信息推断出稀缺性。在其它实施例中,点对点网络的至少一些计算装置112可以收集和维护这些信息供他们自己使用。例如,对等点计算装置可以在该对等点计算装置(从协调器和/或其它计算装置)获得可用于下载的数字内容列表的时候收集这些信息。在再其它的实施例中,计算装置可以收集和维护一些这种信息,并且还可以从协调器访问一些这种信息。换句话说,计算装置可以访问它自己收集和维护的信息和/或访问由协调器收集和维护的信息。还可能的是:称为稀缺性评估器的另一个装置可以收集和维护前面提到的信息,并且计算装置和/或协调器可以从该稀缺性评估器访问这些信息。更一般地讲,参照图6描述的方法可以由对等点计算装置施行、由与该对等点计算装置通信的协调器施行、由稀缺性评估器施行或者由计算装置、协调器和/或稀缺性评估器的组合施行。这些仅仅是几个示例,并非意味着包含了所有情形。
在步骤604,数字内容单元的发布是以降低具有超出指定水平的稀缺性水平的数字内容单元的稀缺性的方式进行优先级排序的。按照一个实施例,数字内容单元可以按照它们的稀缺性水平排序,并且具有N个最大稀缺性水平的数字内容单元被认为超出指定水平,其中N是大于或等于一的整数。在另一个实施例中,具有最高稀缺性水平的百分之X(例如10%)的数字内容单元被认为超出指定水平。在再另一个实施例中,可以确定平均稀缺性水平,并且超过平均值的数字内容单元(或超出该平均值一指定百分比或者指定标准偏差)可以被认为超出指定水平。这些仅仅是几个示例,并非意味着包含了所有情形。在步骤604的优先级排序可以包括以降低具有超出指定水平的当前稀缺性的数字内容单元的稀缺性的方式和/或以降低具有超出指定水平的预测的未来稀缺性的数字内容单元的稀缺性的方式对数字内容单元的发布进行优先级排序。在某些实施例中,在步骤604的优先级排序是以被预测为多个数字内容单元实现基本上同质的稀缺性的方式施行的。例如,最高优先级可以降低具有最高稀缺性水平的数字内容单元的稀缺性(并且因此,增大充足度);第二高的优先级可以降低具有第二高的稀缺性水平的数字内容单元的稀缺性;以此类推。比如但不局限于对特定数字内容单元的需求的附加类型的信息也可以在对数字内容单元的发布进行优先级排序时使用。例如,如果两个数字内容单元具有相同或基本相同的稀缺性,但是一个在需求量方面高于另一个,则可以以较高的优先级来发布具有较高需求的数字内容单元。当前稀缺性指示点对点网络或其一部分内的当前稀缺性水平。预测的未来的稀缺性可以通过监测稀缺性水平的趋势来确定。例如,如果特定数字内容单元的稀缺性水平在历史上每天增加百分之10,则基于这一信息,可能预测未来的稀缺性水平。预测的未来稀缺性也可以考虑按照本文描述的实施例施行的降低稀缺性的努力。
在步骤606,基于优先级排序的结果实现或推荐数字内容单元的发布,以便降低具有超出指定水平的稀缺性的数字内容单元的稀缺性。在协调器施行图6的步骤的情况下,协调器可以通过指令(或推荐)一个或多个对等点计算装置下载稀缺的数字内容来施行步骤606。这可以发生来改善群集的整体健康,并且因此,可以发生而不管下载特定的稀缺数字内容的(多个)特定对等点计算装置是否实际上需要或期望该特定的稀缺数字内容。类似地,在对等点计算装置施行图6的步骤的情况下,该对等点计算装置可以通过向一个或多个其它计算装置发送针对稀缺数字内容的下载请求来施行步骤606,而不管发送下载请求的对等点计算装置是否实际上需要或期望该特定的稀缺数字内容。
参照图6描述的步骤可以针对整个点对点网络来施行。替换地,可以将点对点网络的计算装置分组成点对点网络内的多个不同的群组,并且参照图6描述的步骤可以在一个群组一个群组的基础上进行。更具体地说,可以在步骤602为点对点网络内的多个群组中的每一个访问单独的稀缺性信息,并且在步骤604施行的优先级排序可以针对群组中的每一个来施行,从而使得对于不同群组而言,优先级排序是不同的。可以以各种不同的方式对计算装置分组。例如,如前面参照图4和5描述的那样,可以基于位置信息(例如,时区和/或地理区域信息)将计算装置映射到不同的群组。替换地,可以基于计算装置的因特网服务提供商(ISP)来对计算装置分组。例如,由第一ISP服务的计算装置可以是第一群组的一部分,由第二ISP服务的计算装置可以是第二群组的一部分,...并且由第N个ISP服务的计算装置可以是第N群组的一部分群。在再其它的实施例中,可以基于计算装置所连接的路由器或者它们连接的路由器集线器对计算装置分组。这些仅仅是几个示例,并非意味着包含了所有情形。
图7图示了示出点对点网络内或者作为点对点网络的一部分的计算装置群组内的数字内容项目的相对稀缺性的示范性直方图。这个直方图是可以在步骤602访问的信息类型的说明性示例。在图7中,数字内容项目#10具有最高的稀缺性水平,并且数字内容项目#2具有第二高的稀缺性水平。因此,在步骤604,数字内容项目#10的发布可以具有最高优先级,并且数字内容项目#2的发布可以具有第二高的优先级。如前面所提到的,在某些实施例中,步骤604是以被预测为多个数字内容单元实现基本上同质的稀缺性的方式施行的。如果实现了同质的稀缺性,则稀缺性水平对于图7的直方图中所示的所有数字内容项目而言将是相同的。举例来说,目标可以是,一百个不同的数字内容单元每一个都具有相同的(即,同质的)稀缺性水平,这对应于(一百个计算装置的群组内的)百分之二十的计算装置具有数字内容单元中的每一个。实现这一目标的一种方式将是实现或推荐一百个计算装置中的每一个获得一百个数字内容单元中的二十个的不同组合,从而使得每一个数字内容单元具有100分之20的稀缺性。这仅仅是一个示例,并不意味着是限定。
稀缺性和充足度成反比,因为稀缺性越大,充足度越低,并且稀缺性越低,充足度越大。因此,在步骤602访问指示充足度的信息也将处于实施例的范围之内,因为指示充足度的信息也指示稀缺性(例如,具有最低充足度的数字内容项目具有最大稀缺性,并且反之亦然)。此外,以提高具有低于指定水平的充足度的数字内容项目的充足度的方式在步骤604对数字内容单元的发布进行优先级排序将处于本实施例的范围之内。类似地,在步骤606实现或推荐数字内容项目的发布以便提高具有低于指定水平的充足度的数字内容项目的充足度将处于实施例的范围之内。换句话说,充足度的衡量标准也指示稀缺性。
协作分片获取以提高对等点集群吞吐量
如前面所提到的,在某些实施例中,计算装置被分组成计算装置的集群,并且同一集群内的不同计算装置被指令或推荐向该集群外的计算装置发送针对不同数字内容单元的下载请求,从而使得同一集群内的多个计算装置将会集体获得所有的不同数字内容单元。这些实施例应当也具有改善点对点网络的计算装置之间的数字内容单元发布的效果。
下面讨论的图8的高层级流程图用来解释这些实施例。更具体地说,现在将会使用图8来描述改善点对点网络的计算装置之间的数字内容单元发布的方法。参照图8描述的步骤可以由协调器(例如,图1中的142)或计算装置(例如,图1中的1121)或者它们的组合来执行。参照图8,在步骤802,计算装置被分组成多个计算装置集群,从而使得集群中的每一个将会包括多个计算装置。以类似于前面讨论的那些方式,在步骤802施行的分组可以基于服务于计算装置的ISP、计算装置所位于其内的地理区域、计算装置所位于其内的时区、计算装置所连接的路由器或路由器集线器,但是并不局限于此。替换地或者此外,在步骤802施行的分组可以是基于计算装置之间的当前和/或历史数据传递吞吐量来施行的。例如,具有高的当前和/或历史数据传递吞吐量的计算装置可以被一起分组到同一集群中。集群,作为如本文使用的术语,是一组计算装置,它们为了该组的利益共同工作,组的利益通常也有益于该组中的各个计算装置。
在步骤804,指令或推荐同一集群内的不同计算装置向该集群外的计算装置发送针对不同数字内容单元的下载请求,从而使得同一集群内的多个计算装置将集体获得所有的不同数字内容单元。指令计算装置发送下载请求是实现下载请求的发送的一种方式。在某些实施例中,集群内的计算装置的下载请求所发送到的集群外的计算装置可以包括支持点对点网络的内容递送网络(CDN)计算装置,或者更一般地讲,包括管理支持点对点网络的数字内容商店(例如,图1中的132)的计算装置。举例来说,在参照图8描述的步骤由协调器(例如,图1中的142)施行的情况下,协调器可以施行与步骤802相关联的分组;并且在步骤804协调器可以指令(或推荐)群组内的计算装置向群组外的计算装置发送针对不同的数字内容单元的下载请求。
为简明起见,假设集群内有一百个计算装置,并且集群内的计算装置中的每一个需要或期望获得一百个不同的数字内容单元。计算装置中的每一个可以单独地尝试从集群外的种子计算装置或者直接从CDN获得一百个数字内容单元中的每一个。不过,那样将效率非常低并且潜在地花费不菲。相反,按照某些实施例,集群内的一百个计算装置中的每一个可以获得一百个不同的数字内容单元中一个不同的数字内容单元,这将使得集群集体获得所有一百个数字内容单元。
在步骤806,实现或推荐在同一集群内的计算装置之间进行不同数字内容单元的发布,从而使得同一集群内的计算装置每一个都获得所有的不同数字内容单元。继续前面的示例,集群内的一百个计算装置可以每一个都充当它下载的一个数字内容单元的种子(对于集群内的其它计算装置)。随着集群内的各个计算装置从该集群内的其它计算装置获得更多的数字内容单元,它们可以充当越来越多数字内容单元的种子。
步骤804和806可以是针对计算装置集群中的每一个独立地施行的。换句话说,如果步骤802导致计算装置被分组成二十个集群,那么可以针对这二十个集群中的每一个施行步骤804和806。
现在将使用图9来图示刚刚参照图8的流程图描述过的实施例的一个示例。 为简明起见,假设一个集群包括三个计算装置1121、1122和1123,每一个都需要下载同样的三个数字内容单元1341、1342和1343的。这个三个计算装置112中的每一个可以单独地下载三个数字内容项目中的每一个。替换地,使用本文描述的实施例,计算装置1121可以下载数字内容项目1311,计算装置1122可以下载数字内容项目1312,并且计算装置1123可以下载数字内容项目1313,这将导致计算装置的集群集体具有所有这三个数字内容项目131。这三个计算装置112可以从CDN支持或不支持的数字内容商店(例如132)下载数字内容项目131。与从数字内容商店132下载相对,计算装置112从它们的集群外的其它对等点计算装置112下载数字内容项目或者其至少一部分也处于实施例的范围之内。
计算装置1121于是可以从计算装置1122下载数字内容项目1342,并且从计算装置1123下载数字内容项目1343。类似地,计算装置1122于是可以分别从计算装置1121和1123下载数字内容项目1341和1343,并且计算装置1123于是可以分别从计算装置1121和1122下载数字内容项目1341和1342
可以将本文描述的各种不同的实施例进行组合。例如,可以将参照图6和8描述的实施例进行组合,从而使得在步骤804和/或步骤806,根据数字内容单元的稀缺性对数字内容单元的发布进行优先级排序,从而使得具有较高稀缺性水平的数字内容单元被集群更快地(从集群外的计算装置)获得和/或在该集群内的计算装置之间发布。 对于另一个示例,可以将参照图4和8描述的实施例进行组合,从而使得在步骤408,根据群组内数字内容单元的稀缺性对实现或推荐发送下载请求进行优先级排序,从而使得具有较高稀缺性水平的数字内容单元被群组更快地(从另一个群组中的计算装置)获得。 对于再另一个示例,可以将图2和8的实施例进行组合,从而根据指示稀缺性的信息的(在步骤202和204之前)识别出在步骤202和204访问的与已处于或正处于获得过程当中的其它计算装置有关的信息所针对的特定数字内容,以便降低具有超出指定水平的稀缺性的数字内容的稀缺性。在另一个示例中,可以将图2和4的实施例进行组合,从而使得最开始执行步骤402-406,以基于群组间信息识别出可能包括用于被映射到第一群组的特定计算装置的好种子计算装置的第二群组;并且然后在步骤202和204访问的信息可以对应于被映射到在步骤406识别出的第二群组的其它计算装置。前面描述的实施例的其它组合也处于实施例的范围之内。
示范性计算装置
如前面提到的,计算装置112中的一个或多个可以是,但不局限于,视频游戏控制台。现在将使用图10来描述示范性的视频游戏和媒体控制台,或者更一般地,将会使用图10来描述包括游戏和媒体控制台的示范性游戏和媒体系统1000。下文对图10的讨论意图用来提供可以用其实施本文提出的概念的适当计算装置的简要的、一般性的描述。所理解的是,图10的系统仅仅是举例而言。在另外的示例中,本文描述的实施例可以使用各种各样的客户端计算装置,通过驻留在客户端计算装置上并且由客户端计算装置执行的浏览器应用或软件应用来实施。如图10中所示,游戏和媒体系统1000包括游戏和媒体控制台(以下称为“控制台”)1002。一般说来,控制台1002是客户端计算装置的一种类型。控制台1002被配置为用来容纳一个或多个无线控制器,如由控制器10041和10042表示的。控制台1002配备有内部硬盘驱动器(未示出)和支持如光学存储盘1008表示的各种不同形式的便携式存储介质的便携式介质驱动器1006。适当的便携式存储介质的示例包括DVD、CD-ROM、游戏盘等等。控制台1002还包括两个存储器单元卡插口10251和10252,用于接纳可移动闪存型存储器单元1040。控制台1002上的命令按钮1035启用和禁用无线外围设备支持。
如图10中所描绘的,控制台1002还包括用于与一个或多个装置进行无线通信的光学端口1030和支持用于附加控制器或其它外围设备的有线连接的两个USB(通用串行总线)端口10101和10102。在一些实现方式中,可以修改附加端口的数目和布置。电源按钮1012和弹出按钮1014也位于游戏控制台1002的正面上。选择电源按钮1012来对游戏控制台加电,并且电源按钮1012还可以提供对其它特征和控制的访问,并且弹出按钮1014交替打开和关闭便携式媒体驱动器1006的托盘,以实现存储盘1008的插入和取出。
控制台1002通过A/V接口电缆1020与电视或其它显示器(比如监视器1050)连接。在一种实现方式中,控制台1002配备有被配置用于使用A/V电缆1020(例如,适合于与高清监视器1050或其它显示装置上的高清多媒体接口“HDMI”端口耦合的A/V电缆)进行内容安全的数字通信的专用的A/V端口(未示出)。电源电缆1022向游戏控制台供电。控制台1002可以被进一步配置有如有线或调制解调器接头1024表示的宽带能力,以便于访问网络,比如因特网。宽带能力也可以是通过诸如无线保真(Wi-Fi)网络这样的宽带网络以无线方式提供的。
每一个控制器1004通过有线或无线接口与控制台1002耦合。在图示的实现方式中,控制器1004是USB兼容的并且通过无线或USB端口1010与控制台1002耦合。控制台1002可以配备有多种多样的用户交互机制中的任一个。在图10图示的示例中,每一个控制器1004配备有两个控制棒10321和10322、十字键(D-pad)1034、按钮1036和两个触发器1038。这些控制器仅仅是代表性的,并且其它已知的游戏控制器可以代替或加入到图10中所示的那些控制器。
在一个实现方式中,存储器单元(MU)1040也可以被插入到控制器1004来提供附加且便携的存储空间。便携式MU使得用户能够存储用于在其它控制台上玩游戏时使用的游戏参数。在这种实现方式中,每一个控制器被配置成用来容纳两个MU 1040,尽管也可以采用多于或少于两个MU。
游戏和媒体系统1000一般被配置用于玩存储在存储介质上的游戏,以及用于下载和玩游戏,并且从电子和硬媒体源两者再现预先记录的音乐和视频。有了不同的存储空间供应,标题可以从硬盘驱动器播放、从光盘介质(例如1008)、从在线源播放或者从MU 1040播放。游戏和媒体系统1000能够播放的媒体类型的示例包括:
● 从CD和DVD盘、从硬盘驱动器或从在线源播放的游戏标题。
● 从便携式媒体驱动器1006中的CD、从硬盘驱动器上的文件(例如,视窗媒体音频(WMA)格式的音乐)或者从在线流送源播放的数字音乐。
● 从便携式媒体驱动器1006中的DVD盘、从硬盘驱动器上的文件(例如,活动流送格式)或者从在线流送源播放的数字音频/视频。
在操作期间,控制台1002被配置为用来接收来自控制器1004的输入和在显示器1050上显示信息。例如,控制台1002可以在显示器1050上显示用户界面,以允许用户如后面讨论的那样使用控制器1004和显示状态可解性信息来选择游戏。
图11是游戏和媒体系统1000的功能框图并且更加详细地示出了游戏和媒体系统1000的功能部件。控制台1002具有中央处理单元(CPU)1100和存储器控制器1102,存储器控制器1102便于处理器访问各种不同类型的存储器,包括闪存只读存储器(ROM)1104、随机存取存储器(RAM)1106、硬盘驱动器1108和便携式媒体驱动器1006。在一个实现方式中,CPU1100包括等级1高速缓存1110和等级2高速缓存1112,用于暂时存储数据,并因此减少对硬盘驱动器1108进行的存储器存取循环的数目,从而提高处理速度和吞吐量。
CPU 1100、存储器控制器1102和各种不同的存储器装置是通过一个或多个总线(未示出)相互连接的。这种实现方式中使用的总线的细节与理解本文所讨论的关注的主题并不特别相关。不过,将理解的是,这样的总线可能包括使用各种各样的总线架构中的任何一种的串行和并行总线、存储器总线、外围总线和处理器或本地总线中的一个或多个。举例来说,这样的架构可以包括工业标准架构(ISA)总线、微通道架构(MCA)总线、增强ISA(EISA)总线、视频电子标准协会(VESA)本地总线和也称为夹层(Mezzanine)总线的外围部件互连(PCI)总线。
在一个实现方式中,CPU 1100、存储器控制器1102、ROM 1104和RAM 1106都被集成到公共模块1114上。在这种实现方式中,ROM 1104被配置为通过PCI总线和ROM总线(二者都没有示出)与存储器控制器1102连接的闪存ROM。RAM 1106被配置为由存储器控制器1102通过单独的总线(未示出)独立控制的多个双数据速率同步动态RAM(DDR SDRAM)模块。硬盘驱动器1108和便携式媒体驱动器1006被示出为通过PCI总线和AT附接(ATA)总线1116与存储器控制器1102连接。不过,在其它的实现方式中,也可以在供替换的方案中应用不同类型的专用数据总线结构。
三维图形处理单元1120和视频编码器1122形成用于高速和高分辨率(例如,高清晰度)图形处理的视频处理流水线。数据通过数字视频总线(未示出)被从图形处理单元1120传送到视频编码器1122。音频处理单元1124和音频编解码器(编码器/解码器)1126形成用于各种不同的数字音频格式的多声道音频处理的相应音频处理流水线。音频数据通过通信链路(未示出)在音频处理单元1124和音频编解码器1126之间传送。视频和音频处理流水线向A/V(音频/视频)端口1128输出数据,以便传输到电视机或其它显示器。在所图示的实现方式中,视频和音频处理部件1120-1128安装在模块1114上。
图11示出包括USB主控制器1130和网络接口1132的模块1114。USB主控制器1130被示出为通过总线(例如,PCI总线)与CPU 1100和存储器控制器1102进行通信并且充当外围控制器10041-10044的主机。网络接口1132提供到网络(例如,因特网、家庭网络等)的访问并且可以是多种多样的各种不同有线或无线接口部件中的任何一种,所述有线或无线接口部件包括以太网卡、调制解调器、无线访问卡、蓝牙模块、电缆调制解调器等等。
在图11中描绘的实现方式中,控制台1002包括用于支持四个控制器10041-10044的控制器支持子组件1140。控制器支持子组件1140包括支持与外部控制装置(比如例如媒体和游戏控制器)进行有线和无线操作的任何硬件和软件部件。前面板I/O子组件1142支持电源按钮1012、弹出按钮1014以及暴露在控制台1002外表面上的任何LED(发光二极管)或其它指示器的多种功能。子组件1140和1142通过一个或多个电缆组件1144与模块1114进行通信。在其它的实现方式中,控制台1002可以包括附加的控制器子组件。所图示的实现方式还示出了光学I/O接口1135,其被配置为用来发送和接收可以被送达模块1114的信号。
MU 10401和10402被图示为可分别与MU端口“A”10301和“B”10302连接。附加的MU(例如,MU 10403 - 10406)被图示为可与控制器10041-10043连接,即,每一个控制器两个MU。控制器10042和10044还可以被配置为用来接纳MU(未示出)。每一个MU 1040提供可以在其上存储游戏、游戏参数和其它数据的附加存储空间。在一些实现方式中,其它数据可以包括数字游戏部件、可执行游戏应用、用于扩展游戏应用的指令集和媒体文件中的任何一种。当被插入到控制台1002或控制器中时,MU 1040可以由存储器控制器1102访问。
系统电源模块1150为游戏系统1000的部件供电。风扇1152对控制台1002内的电路进行冷却。
包括机器指令的应用1160被存储在硬盘驱动器1108上。当控制台1002上电时,应用1160的各个不同部分被加载到RAM 1106和/或高速缓存1110和1112中,以便在CPU 1100上执行,其中该应用1160是这样一个示例。各种不同的应用都可以存储在硬盘驱动器1108上以便在CPU 1100上执行。
控制台1002还被示出为包括通信子系统1170,该通信子系统1170被配置为将控制台1002与一个或多个其它计算装置(例如,其它控制台)通信地耦合。通信子系统1170可以包括兼容一个或多个不同的通信协议的有线和/或无线通信装置。作为非限定性的示例,通信子系统1170可以被配置用于通过无线电话网络或者有线或无线局域或广域网络进行通信。在一些实施例中,通信子系统1170可以允许控制台1002通过诸如因特网这样的网络向和/或从其它装置发送和/或接收消息。在特定的实施例中,通信子系统1170可用来与协调器和/或其它计算装置通信,以用于发送下载请求并且用于实现数字内容的下载和上传。更一般地说,通信子系统1170可以使得控制台1002能够参与点对点通信。
通过简单地将游戏和媒体系统1000与监视器1050(图10)、电视、视频投影仪或其它显示装置相连接,该游戏和媒体系统1000可以作为单机系统进行操作。在这一单机模式下,游戏和媒体系统1000使得一个或多个玩家能够玩游戏或者欣赏数字媒体,例如通过观看电影或聆听音乐。不过,在集成有通过网络接口1132或者更一般地通过通信子系统1170而使得可用的宽带连接的情况下,游戏和媒体系统1000可以被进一步作为比如点对点网络这样的较大的网络游戏社区的参与者进行操作,如前面结合图1讨论的那样。
前面描述的游戏和媒体控制台1002仅仅是前面参照图1和各个不同的其它附图讨论的计算装置112的一个示例。如前面所解释的那样,存在可以与本文描述的实施例一起使用的各种不同的其它类型的计算装置。
术语“模块”和“程序”可以用来描述被实现为用来施行特定功能的计算装置或系统的一个方面。将理解的是,不同的模块和/或程序可以实例化自同一应用、服务、代码块、对象、库、例程、API、函数等。同样地,同一模块和/或程序可以通过不同的应用、服务、代码块、对象、例程、API、函数等而实例化。术语“模块”和“程序”可以涵盖单个的或成组的可执行文件、数据文件、库、驱动程序、脚本、数据库记录等。
将领会到的是,如本文所使用的“服务”是可跨越多个用户会话执行的应用程序。服务可以是对于一个或多个系统部件、程序和/或其它服务可用的。在一些实现方式中,服务可以在一个或多个服务器计算装置上运行。
将理解的是,本文描述的配置和/或方法在本质上是示范性的,并且这些特定的实施例或示例不应被认为是限制意义上的,因为很多的变型是可能的。本文描述的特定例程和方法可以表示任何数目的处理策略中的一个或多个。正因为如此,所图示和/或描述的各种不同的动作可以以图示和/或介绍的顺序、以其它顺序、并行地施行,或者可以被省略。同样地,可以改变前面描述的处理的次序。例如,本公开的主题还包括本文公开的各种不同的例程和方法、系统和配置以及其它特征、功能、动作和/或属性的全部组合和子组合,以及它们的任何和全部等同物。
已经出于图示和描述的目的呈现了前面的本发明系统的具体实施方式。其并不意图是穷举的或者将本发明系统限制为所公开的精确形式。鉴于前面的教导,许多修改和变型是可能的。所描述的实施例被选择以便最佳地解释本发明系统的原理及其实际应用,从而使得本领域中的其他技术人员能够最佳地利用各种不同实施例中的以及具有适合于所设想的特定用途的各种不同修改的本发明系统。所意图的是,本发明系统的范围由本文所附的权利要求限定。

Claims (10)

1.一种用于识别出实现或推荐点对点网络的特定计算装置向其发送针对特定数字内容的下载请求的点对点网络的一个或多个其它计算装置的方法,该方法包括:
(a)访问与当前具有特定数字内容的其它计算装置中的一个或多个有关的信息;
(b)访问与当前处于获得特定数字内容的过程当中的其它计算装置中的一个或多个有关的信息;
(c)基于与当前具有特定数字内容的其它计算装置中的一个或多个有关的信息,确定特定计算装置从当前具有特定数字内容的其它计算装置中的一个或多个中的每一个下载特定数字内容将花费的时间量的一个或多个第一估计值;
(d)基于与当前处于获得特定数字内容的过程当中的其它计算装置中的一个或多个有关的信息,确定特定计算装置从当前处于获得特定数字内容的过程当中的其它计算装置中的一个或多个中的每一个下载特定数字内容将花费的时间量的一个或多个第二估计值;
(e)基于所确定的第一和第二估计值,识别出针对特定数字内容的下载请求所发送到的其它计算装置中的一个或多个;以及
(f)实现或推荐从特定计算装置向所识别出的一个或多个其它计算装置中的至少一个发送针对特定数字内容的下载请求。
2.权利要求1所述的方法,其中所述识别包括:
针对时间上的多个不同快照中的每一个,确定其它计算装置中的哪一个或多个将可用于下载特定数字内容,其中所述快照中的至少一个对应于当前时间点并且所述快照中的至少一个对应于未来的时间点;以及
基于确定的结果,识别出针对特定数字内容的下载请求所发送到的其它计算装置中的一个或多个中的至少一个。
3.权利要求1所述的方法,其中所述识别包括下列之一:
将特定计算装置被估计在相对于当前时间的最早时间完成从其下载特定数字内容的其它计算装置之一识别为针对特定数字内容的下载请求所发送到的其它计算装置之一;或者
将一旦下载开始则特定计算装置被估计以最短的时间量从其下载特定数字内容的其它计算装置之一识别为针对特定数字内容的下载请求所发送到的其它计算装置之一。
4.权利要求1所述的方法,其中:
所述识别包括识别出当前处于获得特定数字内容的过程当中的其它计算装置之一;并且
所述实现或推荐包括
等待直到所识别出的当前处于获得特定数字内容的过程当中的其它计算装置之一已经完成获得特定数字内容,以及
在所识别出的其它计算装置之一已经完成获得特定数字内容之后,实现或推荐针对特定数字内容的下载请求从特定计算装置向所识别出的其它计算装置之一的发送。
5.一种包括一个或多个存储装置和一个或多个处理器的装置,所述一个或多个存储装置包括处理器可读代码,所述一个或多个处理器与所述一个或多个存储装置进行通信以执行所述处理器可读代码来:
基于与多个计算装置中的每一个相对应的位置信息将多个计算装置中的每一个映射到多个不同的群组之一;
访问包括群组间数据传递速率信息和群组间可用性信息中的至少一个的群组间信息;
针对被映射到群组之一的计算装置之一,基于所访问的信息识别出针对数字内容的一个或多个下载请求所发送到的其它群组之一;以及
实现或推荐针对数字内容的下载请求从被映射到群组之一的计算装置之一向被映射到所识别出的其它群组之一的一个或多个计算装置的发送。
6.权利要求5所述的装置,其中:
位置信息包括时区,并且所述映射包括基于与计算装置对应的时区将多个计算装置中的每一个映射到多个不同的群组之一;或者
位置信息包括地理区域,并且所述映射包括基于与计算装置对应的地理区域将多个计算装置中的每一个映射到多个不同的群组之一。
7.一种用于改善点对点网络的计算装置之间的数字内容单元发布的方法,该方法包括:
(a)将计算装置中的至少一些分组到多个计算装置集群之一中,从而使得集群中的每一个将包括多个计算装置;
(b)对于多个集群中的至少一些,实现或推荐同一集群内的不同计算装置向该集群外的计算装置发送针对不同数字内容单元的下载请求,从而使得同一集群内的多个计算装置将集体获得所有的不同数字内容单元;以及
(c)对于多个集群中的至少一些,实现或推荐在同一集群内的计算装置之间发布不同的数字内容单元,从而使得多个集群中的每一个内的多个计算装置中的每一个获得所有的不同数字内容单元。
8.权利要求7所述的方法,其中点对点网络的多个计算装置中的每一个是由多个不同的因特网服务提供商之一服务、位于多个不同地理区域之一或者位于多个不同时区之一中的至少一个,并且其中多个计算装置中的每一个基于下列至少一项被分组到多个集群之一中:
服务计算装置的因特网服务提供商;
计算装置所位于其内的地理区域;或
计算装置所位于其内的时区。
9.权利要求7或8所述的方法,其中:
所述分组是基于计算装置之间的当前和历史数据传递吞吐量中的至少一个来施行的;以及
随着时间的推移,分组发生改变,从而使得集群中的至少一些内的多个计算装置随时间的推移而改变。
10.权利要求7或8所述的方法,其中该方法还包括,对于集群中的至少一个:
访问指示与多个不同的数字内容单元相关联的稀缺性的信息;
其中实现或推荐同一集群内的不同计算装置向该集群外的计算装置发送下载请求是优先级排序的,以降低具有超出指定水平的稀缺性的数字内容单元的稀缺性;并且
其中实现或推荐在同一集群内的计算装置之间发布不同的数字内容单元是优先级排序的,以降低具有超出指定水平的稀缺性的数字内容单元的稀缺性。
CN201380064912.9A 2012-12-11 2013-12-11 用于识别点对点网络的计算装置的方法和装置 Active CN105027533B (zh)

Priority Applications (1)

Application Number Priority Date Filing Date Title
CN201810725165.3A CN109104459B (zh) 2012-12-11 2013-12-11 用于识别点对点网络的计算装置的方法和装置

Applications Claiming Priority (3)

Application Number Priority Date Filing Date Title
US13/711152 2012-12-11
US13/711,152 US9219782B2 (en) 2012-12-11 2012-12-11 Identifying seed computing devices using estimates in peer-to-peer networks
PCT/US2013/074504 WO2014093559A2 (en) 2012-12-11 2013-12-11 Improving peer-to-peer performance

Related Child Applications (1)

Application Number Title Priority Date Filing Date
CN201810725165.3A Division CN109104459B (zh) 2012-12-11 2013-12-11 用于识别点对点网络的计算装置的方法和装置

Publications (2)

Publication Number Publication Date
CN105027533A CN105027533A (zh) 2015-11-04
CN105027533B true CN105027533B (zh) 2018-07-20

Family

ID=49887322

Family Applications (2)

Application Number Title Priority Date Filing Date
CN201810725165.3A Active CN109104459B (zh) 2012-12-11 2013-12-11 用于识别点对点网络的计算装置的方法和装置
CN201380064912.9A Active CN105027533B (zh) 2012-12-11 2013-12-11 用于识别点对点网络的计算装置的方法和装置

Family Applications Before (1)

Application Number Title Priority Date Filing Date
CN201810725165.3A Active CN109104459B (zh) 2012-12-11 2013-12-11 用于识别点对点网络的计算装置的方法和装置

Country Status (11)

Country Link
US (2) US9219782B2 (zh)
EP (1) EP2932687B1 (zh)
JP (1) JP6348505B2 (zh)
KR (2) KR102297157B1 (zh)
CN (2) CN109104459B (zh)
AU (1) AU2013359317B2 (zh)
BR (1) BR112015011457B1 (zh)
CA (1) CA2889589C (zh)
MX (1) MX348638B (zh)
RU (1) RU2657183C2 (zh)
WO (1) WO2014093559A2 (zh)

Families Citing this family (13)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US9219782B2 (en) * 2012-12-11 2015-12-22 Microsoft Technology Licensing, Llc Identifying seed computing devices using estimates in peer-to-peer networks
US9413846B2 (en) * 2012-12-14 2016-08-09 Microsoft Technology Licensing, Llc Content-acquisition source selection and management
US9716749B2 (en) 2012-12-14 2017-07-25 Microsoft Technology Licensing, Llc Centralized management of a P2P network
US10391387B2 (en) 2012-12-14 2019-08-27 Microsoft Technology Licensing, Llc Presenting digital content item with tiered functionality
CN104581421B (zh) * 2014-12-30 2018-05-22 新浪网技术(中国)有限公司 一种点对点流媒体下载方法及节点终端装置
US9998534B2 (en) * 2016-08-24 2018-06-12 International Business Machines Corporation Peer-to-peer seed assurance protocol
KR101941583B1 (ko) * 2016-08-26 2019-01-23 홍익대학교 산학협력단 P2p 네트워크 기반 피어 관리 방법 및 피어 관리 장치
US10587496B2 (en) 2017-02-10 2020-03-10 Microsoft Technology Licensing, Llc Localizing traffic using network topology
US11442669B1 (en) 2018-03-15 2022-09-13 Pure Storage, Inc. Orchestrating a virtual storage system
CN108156257B (zh) * 2018-01-17 2021-01-08 北京奇艺世纪科技有限公司 一种信息推送方法及装置
CN109347968B (zh) * 2018-11-07 2021-09-24 网宿科技股份有限公司 一种下载资源文件的数据块的方法、设备和系统
US11102272B2 (en) * 2019-12-19 2021-08-24 Wangsu Science and Technology Co., Ltd. Method and device for downloading resource file
WO2024075860A1 (ko) * 2022-10-05 2024-04-11 라쿠텐 심포니 코리아 주식회사 동영상 협업 서비스를 운용하기 위한 기술

Citations (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN101286982A (zh) * 2007-04-10 2008-10-15 佳能株式会社 通信设备、网络系统、通信方法及程序

Family Cites Families (31)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US7720996B2 (en) * 2001-03-27 2010-05-18 Microsoft Corporation Internet protocol (IP) address proximity and application to peer provider location
US7721110B2 (en) * 2001-04-06 2010-05-18 Mcafee, Inc. System and method for secure and verified sharing of resources in a peer-to-peer network environment
US7133368B2 (en) 2002-02-01 2006-11-07 Microsoft Corporation Peer-to-peer method of quality of service (QoS) probing and analysis and infrastructure employing same
US7194002B2 (en) 2002-02-01 2007-03-20 Microsoft Corporation Peer-to-peer based network performance measurement and analysis system and method for large scale networks
US7571251B2 (en) * 2002-05-06 2009-08-04 Sandvine Incorporated Ulc Path optimizer for peer to peer networks
US7558875B2 (en) * 2003-09-15 2009-07-07 Microsoft Corporation Measurement-based construction of locality-aware overlay networks
KR20070080331A (ko) * 2006-02-07 2007-08-10 주식회사 팬택앤큐리텔 무선인터넷 환경에서의 콘텐츠 다운로드 예상 소요시간제공방법
DE602006013405D1 (de) * 2006-02-21 2010-05-20 Microsoft Corp Topologieverwaltung in Peer-to-peer Datenverteilungswolken
US20090254659A1 (en) * 2006-04-12 2009-10-08 Jun Li Delayed Downloading Video Service Using Peer-to-Peer (P2P) Content Distribution Network
US8041784B1 (en) * 2006-06-27 2011-10-18 Qurio Holdings, Inc. Redundant hybrid P2P content sharing
CN100527695C (zh) * 2006-06-30 2009-08-12 腾讯科技(深圳)有限公司 构建半固定p2p网络的方法及其系统
GB2440774B (en) * 2006-08-11 2011-07-27 Cachelogic Ltd Content Delivery System For Digital Object
WO2008064602A1 (fr) 2006-11-29 2008-06-05 Yongmin Zhang Procédé et système de calcul de groupe à groupe
DE602006020050D1 (de) * 2006-12-08 2011-03-24 Deutsche Telekom Ag Verfahren und System für Peer-to-Peer-Inhaltsverbreitung
KR101105850B1 (ko) * 2007-02-28 2012-01-13 삼성전자주식회사 P2p 네트워킹을 통한 고품질 콘텐츠 제공 시스템 및 방법
WO2009005747A1 (en) * 2007-06-28 2009-01-08 The Trustees Of Columbia University In The City Of New York Set-top box peer-assisted video-on-demand
US8606846B2 (en) * 2007-10-15 2013-12-10 Nbcuniversal Media, Llc Accelerating peer-to-peer content distribution
US20090100128A1 (en) 2007-10-15 2009-04-16 General Electric Company Accelerating peer-to-peer content distribution
US20090234967A1 (en) * 2008-03-17 2009-09-17 Nokia Corporation Method, system, and apparatus for transferring P2P file distribution tasks between devices
US8082290B2 (en) 2008-03-19 2011-12-20 Verizon Patent And Licensing Inc. Intelligent establishment of peer-to-peer communication
US20100011060A1 (en) 2008-07-08 2010-01-14 Solid State Networks, Inc. Methods and apparatus for distributing content
US8126985B1 (en) * 2008-12-31 2012-02-28 Qurio Holdings, Inc. Prioritizing virtual object downloads in a distributed virtual environment
US8667549B2 (en) 2009-04-28 2014-03-04 Microsoft Corporation Personal video recorder E-mail alerts and status
US8204791B2 (en) 2009-07-13 2012-06-19 International Business Machines Corporation File fragment pricing in a segmented file sharing network
CN101640699A (zh) * 2009-08-21 2010-02-03 深圳创维数字技术股份有限公司 P2p流媒体系统及其中的流媒体下载方法
US9071875B2 (en) * 2009-12-17 2015-06-30 At&T Intellectual Property I, L.P. Processing and distribution of video-on-demand content items
EP2339814A1 (en) * 2009-12-28 2011-06-29 Telefónica, S.A. Method for downloading segments of a video file in a peer-to-peer network
KR101591534B1 (ko) * 2009-12-30 2016-02-04 주식회사 알티캐스트 계층적 트랙커를 이용한 p2p 전송 시스템 및 이를 위한 트랙커 장치
KR20120028751A (ko) * 2010-09-15 2012-03-23 주식회사 에이프릴세븐 피어 투 피어를 사용한 컨텐츠 분산 장치 및 방법 및 이를 구현하기 위한 프로그램이 기록된 기록매체
US20120271765A1 (en) * 2011-04-20 2012-10-25 Karen Cervenka Routing optimization
US9219782B2 (en) * 2012-12-11 2015-12-22 Microsoft Technology Licensing, Llc Identifying seed computing devices using estimates in peer-to-peer networks

Patent Citations (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN101286982A (zh) * 2007-04-10 2008-10-15 佳能株式会社 通信设备、网络系统、通信方法及程序

Also Published As

Publication number Publication date
CN109104459A (zh) 2018-12-28
WO2014093559A2 (en) 2014-06-19
KR102162382B1 (ko) 2020-10-06
US10574747B2 (en) 2020-02-25
RU2015122403A (ru) 2017-01-10
BR112015011457A2 (pt) 2017-07-11
MX2015007491A (es) 2015-12-03
AU2013359317B2 (en) 2016-12-22
CA2889589A1 (en) 2014-06-19
EP2932687B1 (en) 2017-09-20
JP2016510443A (ja) 2016-04-07
KR20150095666A (ko) 2015-08-21
AU2013359317A1 (en) 2015-05-14
CN109104459B (zh) 2021-06-11
MX348638B (es) 2017-06-22
US9219782B2 (en) 2015-12-22
CN105027533A (zh) 2015-11-04
US20160080487A1 (en) 2016-03-17
CA2889589C (en) 2021-09-07
US20140164627A1 (en) 2014-06-12
JP6348505B2 (ja) 2018-06-27
KR102297157B1 (ko) 2021-09-01
EP2932687A2 (en) 2015-10-21
RU2657183C2 (ru) 2018-06-08
KR20200115676A (ko) 2020-10-07
WO2014093559A3 (en) 2014-08-07
BR112015011457B1 (pt) 2022-09-13

Similar Documents

Publication Publication Date Title
CN105027533B (zh) 用于识别点对点网络的计算装置的方法和装置
JP6982684B2 (ja) ビデオゲームのゲームプレイをスケジューリングする方法及びシステム
KR102293004B1 (ko) P2p 네트워크에서의 콘텐츠 소스 선택
CN107427721A (zh) 使用连接质量历史来优化用户体验
CN109685487A (zh) 处理第一虚拟货币的方法、装置、计算设备及存储介质
US9908047B2 (en) User save data migration based on location information
JP7313467B2 (ja) サーバーの負荷予測及び高度なパフォーマンス測定
US9350804B2 (en) Peer-to-peer communication to increase download throughput
US9077765B2 (en) Content management and delivery
US11632588B2 (en) Measuring the performance of a peer-managed content distribution network
CN114885215B (zh) 码率自适应模型的训练、视频码率自适应方法及装置
JP7147015B2 (ja) ゲームログを活用したベッティングサービス提供方法およびシステム
US20150379820A1 (en) Method and apparatus that facilitates pooling lottery winnings via a relational structure

Legal Events

Date Code Title Description
C06 Publication
PB01 Publication
C10 Entry into substantive examination
SE01 Entry into force of request for substantive examination
GR01 Patent grant
GR01 Patent grant