在对等网络内产生缓存位图位移的系统、方法和计算机编程产品的制作方法

文档序号:7923509阅读:109来源:国知局
专利名称:在对等网络内产生缓存位图位移的系统、方法和计算机编程产品的制作方法
技术领域
本发明通常涉及对等(P2P)网络,特别涉及在对等设备内产 生缓存位图位移。
背景技术
图1是一个传统的P2P网络100。网络100包括源对等方101、 接收对等方102-108、和跟踪服务器110。在一个例子里,接收对等方108 加入网络110,并从跟踪服务器IIO请求信息而启动过程。特别地,对等 方108向跟踪服务器110申请一个邻近对等方列表,其共享一个由源对等 方101提供的特别流。邻近对等方列表通常包括在P2P网络100内的其它 对等设备,并可能包括一些或所有对等方101-107。 —旦接收对等方108接收到邻近对等方列表,它会从那些邻近 对等方请求缓存位图。缓存位图是一个数据集合,其通常符合以下格式 <缓存位移,播放位移,位图>。 一个给定对等方的缓存器通常可以被看作 一个存储器,其存储接收到的部分流。这些部分依顺序被编号,并且一个 部分的编号充当其标识符。为了给用户提供一个平稳且持续的播放, 一个 对等方在播放部分流之前通常需要请求和保存一段时间的部分流。缓存器 也通常保留一段时间的已被播放的部分流,以防其它对等方请求已播放的 部分。当接收到额外的部分时,较旧的部分被丢弃。图2是缓存位图200的一个概念性说明,其可以由传统P2P网 络100的对等方使用。例如,对等方108可以从对等方102接收缓存位图 200。 一旦接收到,缓存位图200采用以下格式<80,84, 1111 1111 0000 1010>。如图所示,缓存位移是80,其标识缓存开始的部分流(即由发送 缓存位图200的对等方当前所缓存的最早部分)。播放位移是84,其标识 发送缓存位图200的对等方当前正播放的部分。位图201是一组1和0, 其中1表示流的特定部分当前被缓存,而0表示流的特定部分还没接收到。
返回到图l,对等方108从其邻近对等方请求缓存位图,并接 收以上所述的格式的缓存位图。通常期望接收相同流的各个对等方具有不 同缓存位移、播放位移和位图的缓存位图。对等方108通过检査接收到的 缓存位图的内容从每个邻近对等方"知道"哪部分流是可用的。然后,对 等方108开始向一个或多个邻近对等方请求部分流,并建立自身的缓存。在P2P网络100内出现的一个问题是如果对等方108开始请 求的流是在非常最近部分,它会发送许多请求到源对等方101,从而使源 对等方101发生超载。另一方面,如果对等方108开始请求的流是较旧部 分,那么对等方108上的观众看到的流是一个显著延时的版本(对一些实 时流,如体育赛事,这可能没有任何吸引力)。当前,没有一个令人满意的 技术用在P2P网络内一个对等设备上来选择一个起始位移。
发明概述本发明的各种实施例涉及通过使用一个考虑来自邻近对等方 的缓存位图信息的统计函数确定在P2P网络内一个请求对等设备的一个起 始位移的系统、方法和计算机编程产品。在一个例子里,对等设备使用一 个均值函数,其考虑邻近对等方的播放位移和这些对等方的缓存位图使用 期。均值函数的结果被添加请求对等方的一个预设缓存时间,以至少提供 一个起始位移的预值(preliminary value)。取决于是否满足某些条件,预 值要么被接受要么需要重新进行计算。当计算了起始位移的一个最终值时, 通常期望最终值不会很接近源对等方的播放位置,以至于请求对等方发送 流媒体请求到源对等方,不会落后用户感觉到一个不可接受的延时之后太 长时间(当然假设有许多不同于源对等方的对等方,其能够提供流的部分)。 —个给定P2P网络可以包括许多对等设备,其使用本发明实施 例的技术以产生起始缓存位移。当在P2P网络的许多或所有对等方采用一 种技术来降低对源对等方的请求时, 一些实施例产生的一个优势包括改善 源对等方的功能性。前述已经相当广泛地概括了本发明的特征和技术优势,以便可 以更好地理解以下对本发明的详细描述。本发明的其它特征和优势将以随 后进行描述,甚构成本发—明权利要求的主题。本领域有经验的技术人员应
7该注意到,可以容易地利用在此披露的概念和具体实施例,以此作为一个 基础用来修改或设计能够执行本发明相同目的的其它结构。本领域有经验 的技术人员也应该认识到,这种等同构造没有偏移在附加权利要求内阐述 的本发明精神和范围。被看作本发明特性的新颖性特征,有关其组织和运 作方法,与其它目的和优势一起,结合附图从以下的描述可以被更好地理 解。但是,应该深刻地认识到,在此提供的每个附图仅是用作描述和说明 用途,并不是意在作为限制本发明的定义


为了完整地理解本发明,现结合附图参照以下的描述,其中
图1描述一个传统的P2P网络;图2是一个缓存位图的概念性说明,其可以由在图1的传统
P2P网络内的对等方使用;图3描述本发明一个实施例的一个接收对等方的典型系统示 意图;图4描述本发明一个实施例的一种典型方法;
图5描述本发明一个实施例的一种典型方法;
图6描述本发明一个实施例的一种典型方法;和图7描述本发明一个实施例的一种典型计算机系统。 T:当前时间(秒)
B:预设时间(如1秒)
TBj:从PEERi接收最新缓存位图的时间 Ts:呼叫最后一个数据请求调度器的时间 S:预设的数据调度间隔(E.G0.2秒)Pj: PEERj
bmi: PEERi的缓存位图
bmCUF:当前对等放的起始位移
posi: PEERi的当前重放位置
possp:源对等方的最新组块ID
sdcw:建议的推迟
maxTime:最大尝试时间
Posest:估计位置
N:对等方的数目
bmj : PEERi的缓存位图
BmjAGE: PEERj的最后一个缓存位图的消失时间
R :预设的阈值(如5秒)
pos :每个对等方的当前重放位置
pre :预设的缓存时间
发明详述图3描述本发明一个实施例的典型对等设备300。典型对等设 备300与P2P网络301进行通信,P2P网络301还包括其它对等设备310、 320和330。在此例子里使用的术语是将典型对等设备300称为peeri,而 对等方310、 320、 330是邻近对等方,其中peerij是在对等方i附近的第j
个对等方。 Peeri包括缓存器302,其存储接收到的部分流(也被称为"组 块")。在缓存器302内的组块被发送到播放器303 (诸如MP3播放器), 其在转换器304上再现流媒体,转换器304可能包括诸如扬声器和屏幕。 在缓存器302内的组块也可以被发送到网络301内的一个或多个邻近对等 方。更进一步地,对等设备300构造其自身的缓存位图305,其由调度器 306使用以请求失去的组块,并被发送到网络301内的其它对等方。尽管 在此未作显示,应该理解,对等设备300可以通过任何有线或无线方式与 网络301进行通信,包括输入和输出,如天线、RJ45端口/连接器、调节 器、解调器等。 ■
9
对等设备300从网络301内的邻近对等方(例如从对等方310、 320、 330)接收对等方统计和缓存位图307。对等方统计包括诸如到一个 给定对等方的跳数目、网络连接类型和速度等。此例子的缓存位图可能与 以上有关图2所示和所述的那些缓存位图相同或者不同。依照本发明的实 施例,调度器306使用来自邻近对等设备的对等方统计和缓存位图307, 以产生一个起始位移。在此例子里,产生的起始位移是对等设备300的开 始缓存位移和对等设备300的开始播放位移。图4描述本发明一个实施例的典型方法400。方法400是由P2P 网络内的一个对等方执行,如图3的对等设备300。在模块401,对等方建 立一个邻近对等方列表。列表可以通过咨询跟踪服务器、通过向邻近对等 方请求信息等而获得。在一个例子里,P2P网络有大量观看同一流的对等 方,比如10000个对等方。当一个对等方加入到P2P网络,它在跟踪服务 器上进行注册,跟踪服务器保留有一个参与对等方的列表。在此例子里, 其包括非常大数量的对等方,跟踪服务器通过一些算法仅返回1%的对等 方列表,如随机选择请求对等方列表的40个对等方。在模块402,请求对等方接收和处理有关邻近对等方的数据。 在模块402被执行之后,对等设备就有了一个邻近对等方列表,由此它可 以请求缓存位图。在模块403,向一个特定邻近对等方peerj请求一个缓存 位图,如果当前时间值减去peeij的最后一个缓存位图的时间值仍然大于一 个调度间隔。在此例子里,从」=1到j二N,对列表里的所有邻近对等方执 行模块403。在模块404,如果当前时间值减去最后一个数据请求的时间值 仍然大于一个预设调度间隔,运行调度器以请求媒体流的组块。模块404 考虑了由请求对等方计算的起始位移,从而请求对等方在计算出的起始位 移上开始请求媒体流。在模块405,对等设备将媒体流再现给用户。图5描述本发明一个实施例的典型方法500。图5是由P2P网 络内的一个对等方如图3的对等设备300执行以产生一个起始位移。在模块501,请求对等方获得源对等方的最后一个组块的组块 标识符和P2P网络的建议延迟。可以通过向跟踪服务器请求信息而执行模块501,但在一些例子里,可以通过向其它对等方请求信息而执行。建议 延迟可以以任何方式产生。在一个例子里,建议延迟仅是一个预设值。在 其它例子里,建议延迟由跟踪服务器动态产生,或从一个预设范围随机选 择。对于产生一个建议延迟,实施例的范围不限于任何特定技术。在模块502,变量k被设置为0。在模块503,请求对等方(也 被称为"当前对等方")向对等方列表内的每个邻近对等方请求和接收缓存 位图。在模块504,为当前对等方计算一个估计位置值(即一个预起始位 移)。参照图6,将详细讨论模块504。在模块505,碰到两个条件。第一个条件是估计位置值是否大 于源对等方的最后一个组块标识符减去建议延迟。第二个条件是k是否大 于一个设定的最大数目的循环迭代。如果任何一个条件是真的,在模块 508,估计位置被使用作为当前对等设备的起始位移。如果这两个条件都是假的,在模块506,变量k递增l,在模 块507,当前对等方请求一个额外对等方列表。接着,对额外对等方重复 模块503、 504和505。因此,重复图5流程图里的循环,直到在模块505 上其中一个条件是真的。方法500是示范性的,在其它实施例里可以有一 些修改。例如,在模块507,如果没有额外的对等方,请求多个对等方就 返回一个负结果,接着有可能行进到模块508,而没有重新计算估计位置 值。图6描述本发明一个实施例的典型方法600。图6是由P2P网 络内的一个对等方执行,如图3的对等设备300,计算图5的模块504内
的一个估计位置值。在模块601 ,变量SumPos, j和Count被设置为0。如在图4内, 变量j与邻近对等方数目有关。在模块602,检查peeij缓存位图的使用期。如果缓存位图的使 用期低于一个预设阈值,方法600持续行进到模块603。如果缓存位图太旧,变量j递增,从而检查下一个对等设备的缓存位图的使用期。在模块603,增加变量SumPos以等于SumPos的直接前一个值 加上peerj的播放位置加上peeij的缓存位图的使用期。增加缓存位图的使 用期到其相应播放位置有助于补偿建立缓存位图和当前时间之间的延迟。 再者,Count变量被递增1。在模块604, j值与当前对等方靠近的总邻近 对等设备数目进行比较。在模块604上,循环确保考虑了每个邻近对等方 的缓存位图。 一旦处理了从O到N的所有邻近对等设备的缓存位图,在模 块606,计算的估计位置值是当前对等设备的一个预设的缓存时间加上变 量SumPos除以变量Count的商。 一个设备的预设的缓存时间显示在设备 开始播放之前被缓存的组块数目。预设的缓存时间通常取决于一个特定设 备的性能,所以通常是随设备不同而不同。方法600是根据一个考虑了邻近对等设备的当前播放位置和缓 存位图使用期(从其可以看出播放位置)的均值函数来计算位置估计。位 置估计也被当前对等设备的一个缓存时间值来调整。方法400、 500、 600是示范性的例子,所以实施例的范围并不 限于那些特别的方法。各种实施例可以增加、忽略、重整和/或修改方法 400、 500、 600。例如,各个变量及其递增大小仅是示范性的。而且,对一 个特别应用,可以按需改变方法500和600里的循环重复次数。另外,统计函数而不是以上所述的均值函数可以实施在各个实 施例里。例如,其它实施例可以采用一个加权均值函数、模函数等。当通过计算机可执行指令实施时,本发明实施例的各个元素本 质上是定义这种不同元素操作的软件代码。可执行指令或软件代码可以从 一个可读媒质获得(如硬盘媒体、光学媒质、RAM、 EPROM、 EEPROM、 磁带媒质、胶带媒质、闪存、ROM、记忆棒等)。实际上,可读媒质可能 包括能够存储信息的任何介质。
f00361图7描述本发明一个实施例的示范计算机系统700。即计算机系统700包含一个可以实施本发明实施例的示范系统(如图3示范实施的 对等设备)。中央处理单元(CPU) 701被连接到系统总线702。 CPU 701 可以使任何通用型或专用型CPU。但是,本发明不受CPU701的构造限制, 只要CPU701支持在此所述的发明操作。依照本发明的实施例,CPU 701 可以执行各种逻辑指令。例如, 一个或多个CPU,如CPU701,依照以上 图4、 5和6所述的典型操作流程可以执行机器级指令。优选地,计算机系统700也包括随机存储器(RAM) 703,其 可以是SRAM、 DRAM、 SDRAM等。在此例子里,计算机系统700使用 RAM 703为图3的缓存器302。优选地,计算机系统700包括只读存储器 (ROM) 704,其可以是PROM、 EPROM、 EEPROM等。如本领域所共 知的,RAM 703和ROM 704支持用户和系统数据和程序。优选地,计算机系统700也包括输入/输出(I/O)适配器705、 通信适配器711 、用户接口适配器708和显示适配器709。在某些实施例里, I/O适配器705、用户接口适配器708和/或通信适配器711可以使用户能 够与计算机系统700进行互动,以便能够输入信息如媒体选择。优选地,1/O适配器705连接存储设备706,如一个或多个硬盘 驱动、光碟(CD)驱动、软碟驱动、磁带驱动等到计算机系统700。当 RAM703达不到有关存储媒体数据的存储要求时,可以利用存储设备。优 选地,通信适配器711被调配以连接计算机系统700到网络712 (如互联 网、局域网、蜂窝网络等)。用户接口适配器708连接用户输入设备,如键 盘713、定点设备707、和麦克风714和/或输出设备如扬声器715到计算 机系统700。显示适配器709由CPU 701驱动,以控制在显示设备710上 的显示,以便在播放时显示媒体。虽然图7显示了一个通用计算机,应该注意到,依照各种实施 例一个系统的一部分实际构造可能稍有不同。例如,本发明一个或多个实 施例的对等设备可以是任何类型的处理器设备,如蜂窝电话、个人数字助 理、专用设备(如一个独立P2P电视模组、或香港应用科技研究院有限公 司出品的一个家庭影院中心流电视内容)机顶盒(STB- —个P2P电视模
13组,其接收电视输入,如HDM和组件输入和输出到电视或其它组件)等。 另外,依照本发明的一个或多个实施例,服务器(如跟踪服务器)可以是 任何类型的处理器设备,其能够发送媒体流,如个人计算机、服务器型计 算机、STB、家庭影院中心等。而且,本发明的实施例可以被实施在专用 集成电路(ASICs)或超大型集成电路(VLSI)上。实际上,本领域技术 人员可以利用任何数目的合适结构,依照本发明的实施例执行逻辑操作。虽然已经详细说明了本发明及其优越性,但应理解,在不脱离 所附权利要求定义的本发明的条件下可以做出各种改变,替换和变化。此 外,本申请的范围不限定到此处说明书中描述的处理方法,机器,制造, 物质构成,手段,方法和步骤等的特定实施例。从说明书可以容易理解, 可以利用实质上执行了与这里说明的相应实施例相同功能或实现了相同结 果的目前已有的或者将来会开发出的处理方法,机器,制造,物质构成, 手段,方法和步骤。因此,所附的权利要求书旨在包括这些处理方法,机 器,制造,物质构成,手段,方法或步骤。
权利要求
1. 对等(P2P)网络内的一个对等方计算设备,此对等方计算设备包括一个输入,从多个邻近对等方接收多个缓存位图,每个所述缓存位图显示其各个邻近对等方的一个当前播放位置;一个存储器,存储所述接收到的多个缓存位图;和一个处理器,使用至少一小组所述当前播放位置,确定对等方计算设备的一个起始位移位置,并依照所述确定的起始位移位置,控制所述对等方计算设备的流活动。
2. 根据权利要求1所述的对等方计算设备,其中所述处理器在确定所 述起始位移位置时将一个统计函数应用到所述至少一小组当前播放位置。
3. 根据权利要求2所述的对等方计算设备,其中所述统计函数包含 一个均值函数。
4. 根据权利要求3所述的对等方计算设备,其中所述均值函数使用与 所述至少一小组所述当前播放位置相关的一个所述缓存位图的使用期。
5. 根据权利要求1所述的对等方计算设备,还包括 一个视频转换器和一个音频转换器,输出一个多媒体流。
6. 根据权利要求1所述的对等方计算设备,其中所述处理器使用所述 起始位移位置来调度请求媒体流部分。
7. 根据权利要求1所述的对等方计算设备,其中所述处理器使用所述 起始位移位置来标识首先被请求的一个媒体流部分。
8. 根据权利要求1所述的对等方计算设备,选自P2P电视模组;个人计算机,蜂窝电话; 个人数字助理(PDA);家庭影院中心;和 机顶盒(STB)。
9.根据权利要求1所述的对等方计算设备,其中所述处理器产生所述 对等方计算设备的一个缓存位图,并发送所述对等方计算设备的所述缓存位图到一个或多个所述邻近对等方。
10. —种由对等(P2P)网络内的第一对等方设备执行的方法,所述 P2P网络包括多个其它对等方设备,所述方法包括接收多个缓存位图,每个所述接收到的缓存位图与所述P2P网络内的 各个所述其它对等设备有关-,识别与所述其它对等设备相关的播放位置; 使用多个识别出的播放位置,为第一对等方产生一个起始位移; 根据所述起始位移,调度请求一个媒体流部分;和 将所述媒体流再现在一个或多个转换器上。
11. 根据权利要求10所述的方法,包括 缓存在所述起始位移上开始的接收到的所述媒体流部分。
12.根据权利要求10所述的方法,其中产生所述起始位移包括 使用所述多个识别出的播放位置和一个或多个接收到的缓存位图的使 用期,反复计算第一数值。
13. 根据权利要求12所述的方法,还包括使用所述第一数值和所述第一对等方的一个预设缓存时间,计算第二数值;将所述第二数值与一个条件进行比较;和 执行从以下列表内挑选的一个操作,此列表包含当所述第二数值满足所述条件时,设置所述起始位移等于所述第 二数值;和当所述第二数值不满足所述条件时,使用来自所述P2P网络内的额外其它对等设备的额外接收到的缓存位图,重新计算所述第一和第二数 值。
14. 根据权利要求10所述的方法,其中所述媒体流包含按顺序编号 的组块。
15. 根据权利要求14所述的方法,其中每个所述缓存位图显示一个 起始位移、 一个播放位移和一个位图,位图显示缓存的组块。
16. —个具有计算机可读媒质的计算机编程产品,其上具有计算机编 程逻辑,所述计算机编程产品包括用来从对等(P2P)网络内的多个对等设备接收多个缓存位图的代码, 每个所述缓存位图显示一个播放位移;使用一个统计函数来计算第一对等设备的一个起始位移的代码,其有 来自所述缓存位图的至少一部分所述播放位移作为输入;和调度所述起始位移上开始的媒体请求的代码。
17. 根据权利要求16所述的计算机编程产品,包括 请求部分流的代码,此流在所述多个对等设备和所述第一对等设备中共享。
18. 根据权利要求17所述的计算机编程产品,其中用来调度媒体请 求的所述代码包括调度媒体数据组块的请求,所述调度是通过使用所述多 个对等设备的所述多个缓存位图而执行。
19. 根据权利要求17所述的计算机编程产品,其中所述统计函数包 括一个均值函数。
20. 根据权利要求17所述的计算机编程产品,其中所述均值函数的 输入包括来自所述缓存位图的所述至少一部分所述播放位移;和至少一部分所述缓存位移的使用期'
全文摘要
一种由对等(P2P)网络内新加入等对设备执行的方法,包括接收多个缓存位图,每个接收到的缓存位图与P2P网络内的各个其它对等设备有关。本方法也包括识别与接收到的缓存位图相关的播放位置,使用一个或多个识辨的播放位置为新加入对等方产生一个起始位移。依照起始位移,调度请求一个媒体流部分,调度器将从此位移建立一个缓存位图,并开始请求媒体缓存。
文档编号H04L1/16GK101505313SQ200810188580
公开日2009年8月12日 申请日期2008年12月15日 优先权日2008年12月15日
发明者吴俊彦, 吴康恒, 林德荣, 陈良乔 申请人:香港应用科技研究院有限公司
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1