用于对等直播流的基于队列的自适应块调度的制作方法

文档序号:7681631阅读:113来源:国知局
专利名称:用于对等直播流的基于队列的自适应块调度的制作方法
技术领域
本发明涉及在对等网络中调度内容的递送,并且具体地涉及在对等网络 中最大化直播流速率的基于队列的调度方法和装置。
背景技术
过去的工作表明了对等(P2P)直播流系统中的最大视频流速率由视频 源服务器的容量、系统中的对等体(peer)的数目、和所有对等体的累计上 栽容量确定。
在现有技术的中央化(centralized)调度方法中,协调者管理系统。协 调者收集关于对等体的上载容量和源的上载容量的信息。其后协调者基于中 央化调度方法计算从源到每个单个对等体的发送速率。
对于P2P直播流来说,期望实现高的流速率的能力。更高的流速率允许 系统以更好的质量来广播。更高的流速率还提供更多緩冲(cushion)以在广 播恒定比特率(CBR)视频时吸收由对等体的周转(churn)和网络拥塞导致
的带宽变动。实现高的流速率的关键是更好地利用资源。
具有包括用以处理新对等体加入P2P网络、遗失内容的恢复和对附加内 容的请求的优先级方案的、用于在P2P网络中调度内容递送的方法和装置是 有优势的。

发明内容
本发明旨在用于内容的P2P直播流系统的基于队列的调度方法。如这里 所使用的,内容可以是视频、音频或任何其他多媒体类型的数据/信息。如这 里所使用的,7"表示相同或相似组件的可替代的名称。本发明的基于队列 的调度方法实现了最大流速率而不使用中央化协调者。
理想地,在P2P系统/网络中,对等体仅仅局部地与其他对等体交换信 息以及做出决定。因而,理想地,不需要中央协调者,并且不收集全局信息。 进一步地,实际可用上载容量随时间变化。这要求中央协调者连续地监视每
6个对等体的上载容量,并且连续地重新计算到单个对等体的子流速率。因此,
期望一种去中央化(decentralized)调度方法。难点在于怎样设计仍然能够 实现全局最优(即系统的最大流速率)的去中央化(局部)调度方法。
在本发明的基于队列的调度方法中,每个对等体将直接从服务器获得的 内容上载至系统中的所有其他对等体。对等体是对等系统中的节点。为了接 近所有对等体的100%上载容量利用率,不同的对等体从服务器下载不同的 内容,并且对等体从内容源服务器下载内容的速率与其上载容量成比例。对 等体可以是包括计算机/处理器、膝上计算机、个人数字处理、移动终端或诸 如机顶盒之类的任何重放设备的节点。内容源服务器也在这里被替代地称作 源和服务器,并且包括向对等系统/网络中的对等体提供内容的任何装置或系 统。
在这里术语"上载"的使用被用于指示流量远离动作节点,其中动作节 点可以是对等网络中的服务器,或对等体中的一个。对应地,在这里术语"下 载"的使用被用于指示流量朝向动作节点,其中动作节点可以是对等网络中 的服务器,或对等体中的一个。
度系统,所述局部调度方法基于在源和对等体之间所交换的信息来做出决 定。不需要中央调度者,并且不需要收集全局信息。本发明的基于队列的调 度方法能够实现P2P直播流系统中的流速率的理论上限。
描述了用于在对等网络中调度内容递送的方法和装置,其包括从对等体 接收消息,分类所接收的消息,基于该分类将分类后消息存储在多个队列中 的 一个,基于其中存储分类后的消息的队列的优先级来生成对消息的响应并 且向对等网络中的所有对等体发送内容。还描述了用于在对等网络中调度内 容递送的方法和装置,其包括从内容源服务器和对等体中的一个接收消息和 内容中的一个,分类所接收的消息,基于该分类将分类后消息存储在多个队 列中的一个中,存储所接收的内容,基于其中存储了分类后的消息的队列的 优先级来生成对消息的响应并且向对等网络中的所有其他对等体发送内容。


在联系附恩阅读下面的详细描述时,从下面的详细描述最好地理解本发 明。所述附图包括在下面简要描述的下列图图1A为在现有技术的中央化调度方法中怎样在三个异质节点之间调度 数据的不同部分的阐释性例子。
图1B描绘了具有一个源服务器和三个对等体的、使用基于队列的块调 度的对等流系统。
图2描绘了根据本发明的原理的基于队列的调度方法中的对等体的排队 模型。
型。;'、、、、土 、。又,'、
图4示出了根据本发明的原理的对等体转发队列模型的信号阈值。 图5阐释了根据本发明的原理的内容源服务器的架构。 图6描绘了根据本发明的原理的、具有四个队列的示范性输出单元 (out-unit )。
图7描绘了根据本发明的原理的对等体的架构。
图8描绘了根据本发明的原理的对等体侧的输出单元的架构。
图9示出了根据本发明的原理的对等体中的重放緩存。
图10为根据本发明的原理的用于对等体加入P2P网络的示范方法的流程。
图IIA和11B—同为来自内容源服务器的视角的本发明的基于队列的 调度方法的流程图。
图12A和12B—同为来自对等体/节点的视角的本发明的基于队列的调 度方法的流程图。
具体实施例方式
现有技术中已经表明,给定具有已知上传容量的内容源服务器和一组对 等体,由以下方程确定最大流速率r"^。
rmax=min{wv,——(1)
其中Us为内容源服务器的上载容量,Ui为对等体i的上载容量,并且在系统
中存在n个对等体。现有技术提出了可以实现上面的流速率最大值/上限的中 央化调度方法。现有技术的调度方法采取了利用管理系统的f屯调者的中央化 方法。协调者收集关于每个对等体的上载容量和内容源的上载容量的信息。
8其后协调者基于中央化调度方法计算从内容源到单个对等体的发送速率。每
个对等体向所有其他对等体中继所接收的流内容中的一些。
为了在上下文中陈述本发明,首先讨论怎样计算从内容源到对等体的流
速率。其后描述本发明的基于队列的调度方法。本发明的基于队列的调度方
法不需要中央协调者,并且仍然能够实现最大流速率。
由等式(1)确定P2P系统中的最大流速率。等式的右手边的第二项
K+力",)/"为每个对等体的平均上载容量。中央化调度方法基于内容源的上 载容量和每个对等体的平均上载容量之间的关系而表现得不同。
考虑两种示范情况/情境在第一种情况中,内容源服务器的上载容量小 于对等体的上载容量的平均值,而在第二种情况中,内容源服务器的上载容 量远大于对等体的上载容量的平均值。在第一种情境中,内容服务器资源贫 乏,而在第二种情境中,内容服务器资源丰富。
<formula>formula see original document page 9</formula>
情况l: ^ .
最大流速率为rmax = us。内容流被划分为n个子流(对于每个对等体来 说一个子流),其中第i个子流具有速率A-"7^"",。注意n个子流的总计速
率等于最大流速率,即=Mt =,腦。
协调者请求服务器向第i个对等体发送第i个子流。进一步地,因为 07-l化sw,,所以第i个对等体向其他n-l个对等体中的每个发送该子流。因 而,每个对等体从服务器直接接收子流,并且还从其他n-l个对等体接收n-1 个附加的子流。对等体i接收整个流(所有n个子流)的总速率为 r, = s, + ="、。因此可以支持最大速率r薩=us。
情况2: <formula>formula see original document page 9</formula>这里,鹏=.。内容流被划分为n+l个子流,其中第i个子流(其 中i=l,2,...,n )具有速率Si = u/(n-l),而第(n+l)个子流具有速率显然,对于所有i-l,2,…,n+l来说《々0。现在服务器向每个对等体i发
送两个子流第i个子流和第(n+l)个子流。因为1;",+^,)=".,,所以服务器
可以如此做。进一步地,对等体i向n-l个其他对等体的每一个流发送(stream ) 第i个子流的副本。因为(n-l)s,Ui,所以每个对等体i可以如此做。对等体
接收整个流(所有n个子流)的总速率为^=5,+^+|+^>4=("、+|>,)/"。因
,'=1
w、. +
此,可以支持最大流速率r麵=~~。
图1A为在现有技术的中央化调度方法中怎样在三个异质节点之间调度 数据的不同部分的阐释性例子。系统中存在三个对等体。服务器具有容量6。 a、 b和c的上载容量分別为2、 4和6。假定所有对等体具有足够的下载容 量,则系统中可以支持的最大内容直播流速率为6。为了实现该速率,服务 器将内容块(chunk)划分为6的分组。对等体a负责向其他对等体中的每 个上载每个组中的1个块,同时b和c分别负责向其他对等体中的每个上载 每个组中的2个和3个块。以此方式,所有对等体的总计下载速率为最大速 率6,所述最大速率6为服务器的下载容量。为了实施这样的调度方法,要 求中央协调者来收集上载容量信息并且执行该调度方法。进一步地,每个对 等体需要保持与系统中的所有其他对等体的连接,并且与系统中的所有其他 对等体交换内容。附加地,服务器需要将视频流划分为用于每个对等体的具 有不同的速率的多个子流。
接着描述本发明的基于队列的调度方法。可以实现最大流速率而不使用法。
理想地,在P2P系统中,对等体仅仅局部地与其他对等体交换信息以及 做出决定。因而,理想地,不需要中央协调者,并且不收集全局信息。进一 步地,实际可用上载容量随时间变化。这要求中央协调者连续地监视每个对 等体的上载容量并且连续地重新计算到单个对等体的子流速率。因此,期望 去中央化调度方法。难点在于怎样设计仍然能够实现全局最优(即系统的最 大流速率)的去中央化(局部)调度方法。本发明的基于队列的去中央化调 度方法满足上面的目标。
10图1B描绘了具有一个源服务器和三个对等体的、使用基于队列的块调
度的对等流系统。每个对等体保持(maintain )包括转发队列的若干队列。 使用对等体a作为例子,接着描述信号和数据的流动。由具有数字周围的圆 圈的数字来指示步骤/动作。每当对等体a的队列变空(已经落到阈值以下) 时,从对等体a向服务器发送"拉,,信号(步骤l)。服务器通过向对等体a 发回三个数据块来响应"拉,,信号(步骤2)。这些块将被存储在对等体a 的转发队列中(步骤3 ),并且被中继/转发/发送至对等体b和对等体c (步 骤4)。在服务器已经响应了其"拉"信号队列上的所有"拉"信号时,服务 器向所有对等体转发/发送一个复制的数据块(步骤5)。这些数据块将不被 存储在对等体的转发队列中,并且将不被进一步中继。
对等体保持存储来自源服务器和所有其他对等体所接收的流内容的重放緩 存。按照重放顺序在重放缓存中组装来自不同节点的所接收的内容。对等体 的媒体播放器呈现/显示来自该緩存的内容。同时,对等体保持用于向所有其 他对等体转发内容的转发队列。所接收的内容被分为两类F标记的内容和 NF标记的内容。F ( forwarding,转发)代表应当被中继/转发至其他对等体 的内容。NF (non-forwarding ,不转发)指示目的只在于该对等体并且不需 要转发的内容。由相邻对等体转发的内容总是被标记为NF。从源服务器接 收的内容可以被标记为F或标记为NF。 NF内容被过滤出。F内容被存储至
转发队列中,并且将被转发至其他对等体。为了完全利用对等体的上载容量, 应当将对等体的转发队列保留为非空。每当转发队列变空时,向源服务器发
送信号以请求更多的内容。在这里用术语"拉"信号来表示这点。接着描述 用于在内容源服务器处标记的内容的规则。
图3阐释了本发明的基于队列的调度方法的服务器侧排队模型。源服务 器具有两个队列内容队列和信号队列。内容队列为具有两个分配器
(dispatcher)的多服务器队列F标记的内容分配器和转发分配器。被调用 的分配器取决于"拉"信号队列的控制/状态。具体地,如果信号队列中存在
"拉,,信号,则从内容緩存取出小块内容。该块内容#1标记为F并且由F标 记的内容分配器分配至发出"拉,,信号的对等体。其后从"拉"信号队列中 去除该"拉"信号。如果信号队列为空,则服务器从内容緩存中取出小块内 容并且将该块内容放入将被分配的转发队列中。转发分配器将该块标记为
iiNF,并且将其发送给系统中的所有对等体。
接着,示出本发明的基于队列的数据块调度方法的优化。即,用于对等 体侧和服务器侧的两者的基于队列的调度方法实现了由等式(1)指示的系 统的最大P2P直播流速率。
定理假定对等体和服务器之间的信号传播延迟可以忽略,并且可以以 任意小的量发送数据内容,那么如上所述的基于队列的去中央化调度算法实 现系统中的可能的最大流速率。
证明假定内容被划分为小块,则内容源服务器在每次对"拉"信号进 行服务时发送出一个块。每当对等体的转发队列变空时,该对等体向服务器 发出"拉"信号。S表示块尺寸。
对于对等体i来说,花费(n-l) S/Ui的时间来向所有对等体转发一个数据 块。设rj为由对等体i发出"拉,,信号的最大速率。因此,ri-u/(n-l)5。
由服务器接收的"拉"信号的最大累计速率r为/^Z",r,i^。服务
"=| (" 一 1)5
器花费5/us的时间来服务一个"拉"信号。因此,服务器可以容纳的最大"拉" 信号速率为Us/5。现在考虑下列两种情境/情况。
情况l: AWs^^
在该情境中,服务器不能处理最大"拉"信号速率。因此服务器侧的信 号队列从不为空,并且整个服务器带宽被用于向对等体发送F标记的内容。 相比之下,对等体的转发队列在等待来自源服务器的新的数据内容时变得空 闲。因为每个对等体具有足够的上载带宽以向所有其他对等体中继F标记的 (从服务器接收的)内容,所以对等体以最大速率接收由服务器发出的内容。
可支持流速率等于服务器的上载容量,条件"、/5s^^等效于
"、,^ A ^ ,,即上述其中服务器资源贫乏的情境。这里,流速率与方程(l)
一致,并且达到了最大流速率。 情况2: "、./5>
在该情境中,服务器具有服务处于最大速率的"拉,,信号的上载容量。 在"拉,,信号队列为空的时间段期间,服务器向所有对等体发送复制的NF
12标记的内容。被用于服务F标记的内容的上载容量的量为E=,"' 5 = Z——。
("一1)S (T7-l)
因此,被用于服务NF标记的内容的服务器的上载带宽为^—Li。对 于每个单个对等体来说,从服务器接收NF标记的内容的速率为 K-S^)/"。因为系统中存在n的对等体,所以对等体的可支持流速率为
"''+o、. —"' ')/"=丄"'' (n—i) (^一i) "
条件^M〉X^i等于M、.+ ,即上述其中服务器资源丰富的情境。再 一次地,流速率达到方程(i)中所指示的上限。
注意在其中累计"拉"信号到达速率小于服务器的服务速率的情况2中, 假定对等体在发出"拉,,信号之后立即接收F标记的内容。只在"拉"信号 不遭遇任何排队延迟并且可以立即由内容源服务器服务的情况中,以上假定 成立。这意味着(i)没有两个"拉"信号在精确相同的时间到达,并且(ii) 可以在下一输入"拉,,信号之前服务"拉,,信号。假定(i)被普遍用于排队 理论中,并且因为P2P系统为关于生成"拉"信号的对等体的分布式系统, 所以假定(i)是合理的。两个"拉"信号在精确相同的时间到达的概率低。 假定(ii)意味着可以以任意小的量发送数据,即数据块的尺寸S可以任意 地小。在实际中,数据块的尺寸被限制以减少与数据传输相关联的额外开销 (overhead )。
现在讨论在实际中实现上面的方案的实施考虑。现在以朝向实际实施考 虑的眼光来描述使用本发明的基于队列的数据块调度方法的内容源服务器 和对等体的架构,所述实际实施考虑包括块尺寸、网络拥塞和对等体周转的影响。
在最优性证明中,假定块尺寸可以任意地小,并且传播延迟可以忽略, 在实际中,块尺寸在千比特的数量级以避免由协议报头导致的过多发送额外 开销。传播延迟在数十至数百毫秒的数量级。因此,必须调节由对等体发出 "拉,,信号的定时,并且增加在内容源服务器处服务的F标记的块的数目, 以允许本发明的基于队列的调度方法实现接近最大直播流速率。
在服务器侧,响应于来自请求对等体的"拉,,信号而(经由F标记的内
13容队列)将K个F标记的块作为一批发送。K的较大值将减少"拉"信号频
率并且因而减少信令额外开销。但是这增加了对等体的启动延迟。在"拉,,信号队列为空时,服务器的转发队列向系统中的所有对等体一次转发一个
块。新的"拉"信号的到达先占(preempt)转发队列活动,并且F标记的内容队列立即服务K个块。
现在参考图4,在对等体侧,对等体设置用于转发队列的阈值丁,。在队列中的内容块的数目小于或等于T,时发出"拉,,信号。从服务器取得(retrieve )F标记的内容至少花费传播延迟的两倍。在转发队列变得完全空之前发出"拉"信号避免浪费上载容量。
接着考虑怎样恰当地设置Ti的值。清空具有T,个块的转发队列的时间为,—=(n-i)7^/M,。同时,对等体i在它发出了 "拉"信号之后花费
=2,、, + +~来接收K个块。这里tsl为内容源服务器和对等体i之间的传播延迟,i^/"、为服务器发送K个块所需要的时间,而tq为从服务器"拉"信号队列处的"拉,,信号来看的排队延迟。为了在转发队列变得完全耗尽之前接收块,h 。这导致
i;上(2《'+ +~)",/("-1>5" (2)
除tq之外所有量已知,所述tq为在服务器侧"拉,,信号队列处导致的排队延迟。在内容源服务器为瓶颈(内容源服务器资源贫乏)的情况l中,只
要服务器总是繁忙的,则对T,的选择将不影响流速率。在情况2中,因为信
号队列的服务速率快于"拉,,信号速率,所以tq非常小。所以可以将tq设置
为零,即7; 2(2《,+/^/w、)w,/(" —1)5 (3)
接着计算对等体的启动延迟。i表示该启动延迟。给定对等体具有Ti数
目的标记块的满队列,花费
7;5(打-=2《,+認"、 (4)
以向所有其他对等体发送块。注意对于所有对等体来说清空队列所需要的时间相同。在该时间段期间,对等体能够从其他对等体接收缓存的块。因此启动延迟为r = 2《,+ K5/w、。
内容源服务器响应来自对等体的"拉,,信号,并且主动地(proactively )向对等体推送(pUsh )NF标记的内容。内容源服务器还是引导节点(bootstrapnode)。作为引导节点,内容源服务器还管理对等体信息(诸如对等体id、IP地址、端口号等)并且回复来自输入的新对等体的关于对等体列表的请求。
14图5阐释了内容源服务器的架构。在基于队列的自适应P2P直播流中,
服务器和所有对等体利用全双工传输控制协议(TCP)连接而完全地连接。使用"选择调用(select call)"机制(或通过其监视内容或可以监视内容的任何等效手段)来监视与对等体的连接,服务器保持一组输入緩存来存储所接收的数据。在服务器侧存在三种类型的输入消息管理消息、"拉"信号和遗失块恢复请求。对应地,对于这些消息分别形成三个独立的队列。如果需要向远程对等体发送处理这些消息的输出,则该输出被放置在每个对等体的專IT出单元(out-unit)上以il^送。
存在用于每个目的地对等体的一个输出单元以处理数据发送过程。图6描绘了具有用于给定的/特定对等体的四个队列的示范输出单元,所述四个队列为管理消息队列、F标记的内容队列、NF标记的内容队列和遗失块恢复队列。管理消息队列存储对管理请求的响应。管理请求的一个例子是在新对等体刚刚加入P2P系统并且请求对等体列表时的情况。服务器将通过返回对等体列表来回应。F/NF标记的内容队列存储目的在于该对等体的FMF标记的内容。最后,块恢复队列存储由对等体请求的遗失块。
不同的队列被用于不同类型的业务(traffic)以区分诸业务类型的优先级。具体地,管理消息具有最高的优先级,随后是F标记的内容和NF标记的内容。可以基于设计要求来调节恢复块的优先级。因为管理消息对于系统平稳运行来说是重要的,所以它具有最高的优先级。例如,通过给予管理消息最高的优先级,缩短了新的对等体加入系统的延迟。在新对等体向内容源服务器发出加入P2P系统的请求时,可以快速地向新的/加入的对等体发送对等体列表。并且,管理消息与内容消息相比典型地在尺寸方面较小。给予管理消息更高优先级减少了整体平均延迟。内容源服务器用K个F标记的块来回应每个"拉,,信号。进一步由接收对等体将F标记的块中继至其他对等体。在"拉"信号队列为空时,内容源服务器向所有对等体发出NF标记的块。NF标记块只由目标对等体使用并且将不被进一步中继。因此,服务F标记块立刻改善了对等体的上载容量的利用率,并且增加了整体P2P系统直播流速率。因为遗失块严重地影响观看质量,所以定位和服务恢复块应当比KF标记块递送具有更高的优先级。如果将转发恢复块的优先级设置为比F标记块的优先级更高-,.则观看质量相比系统效率得到了优先的对待。相比之下,如果F标记块接收更高的优先级,则给予系统效率更高的优先级。所选择的优先级方案取决于系统设计目标。
使用分离队列的另 一原因为处理网络中的带宽波动和拥塞。许多P2P研
究者假定服务器/对等体的上载容量是瓶颈。在PlanetNet上的近期实验中, 观察到一些对等体由于拥塞而严重地被减速。如果所有对等体共享相同的队 列,则向最慢的对等体上载将阻断向剩余对等体的上载。服务器的上载带宽 将被浪费。这与输入队列切换(i叩ut-queued switch )设计中的线路头部阻断 问题(head-of-line blocking problem )相似输入队列将被目的地为拥塞的输 出端口的数据分组所阻断。通过在不同的虚拟输出队列中放置目标地为不同 的输出端口的数据分组来解决该切换问题。这里,通过对不同的对等体使用 分离的队列来采用相似的解决方案。分离的队列避免了由慢速对等体导致的 低效阻断。分离的队列还允许对排队的内容量的更精确的估算。这对于对等 体确定何时发出"拉"信号来说是重要的。
现在参考描绘了对等体的架构的图7。在这里所描述的P2P系统中的对 等体的架构与内容源服务器的架构相似。服务器和所有对等体利用全双工 TCP连接而完全地连接。对等体将所接收的块存储至重放緩存中。在管理消 息队列中存储来自服务器的管理消息(即对等体列表)或来自其他对等体的 管理消息(遗失块恢复消息)。块处理模块过滤出NF标记块。F标记块被复 制至所有其他对等体的输出单元中。
图8描绘了对等体侧输出单元的结构,它具有三个队列管理消息队列、 转发队列和恢复块队列。转发队列中的块将^f皮标记为NF,并且将不在"t妻收 对等体处被进一步中继。"拉,,信号发出者监视输出单元并且确定如方程(2 ) 中所描述的队列阈值,以确定何时向内容源服务器发出"拉"信号。在根据 方程(2)计算"拉,,信号阈值时,潜在的假设是使用单个队列以循环 (round-robin)的方式服务远程对等体。实际上,由于网络内的带宽波动和 拥塞,任何到一个目的地对等体的减速影响整个过程。因此,使用每对等体 一个队列的设计。在方程(2)中使用转发队列尺寸的平均值。如果对等体 总是经历慢速连接,可以强制放弃一些块。对等体必须使用遗失块恢复机制 来从丢失中恢复。
对等体周转和网络拥塞可以导致块丢失。诸如节点或连接故障的突然对 等体的离开使条统没有时间重新调度仍然被緩存在该对等体的输出_单_元中 的块。在网络路线在一些目的地被拥塞时,等待^皮发送的块可以使输出单元
16中的队列溢出,这导致接收端处的块丟失。本发明的遗失块恢复方案使得对 等体能够恢复遗失块以避免观看质量降级。
参考示出了重放緩存的图9。每个对等体保持重放緩存以存储从服务器
和其他对等体接收的视频块。重放緩存保持三个窗口重放窗口、恢复窗口 和下载窗口。 Wp、 Wr和Wd分别表示重放窗口、恢复窗口和下载窗口的尺寸
(以块数目为单位)。媒体播放器呈现/显示来自重放窗口的内容。使用下面 所描述的方法来在恢复窗口中恢复遗失块。最后,在下载窗口中拉出和推送
(push)在服务器和其他对等体之间的块。可以如下估算下载窗口的尺寸 Wd。
其中R为如方程(l)中所指示的系统的流速率,而t为启动延迟。上
面的方程中的第一项为在所有对等体处所緩存的F标记块的和。第二项为由 服务器发出的NF标记块的数目。下载窗口尺寸为启动延迟的函数。直觉上, 花费启动延迟时间以接收下载窗口中的所有块。因为从每个对等体中的输出 单元平行地发出块,所以下载窗口中的块不按顺序到达。这说明了启动延迟 时间至少为t。在实际中,必须增加启动延迟以容纳由重放窗口和恢复窗口 引入的时间段。
采用了启发式算法(heuristics)来恢复遗失的块。如果对等地适度地 (gracefully)离开,则通知服务器,并且将在输出单元中等待的F标记块指 定至其他对等体。如下恢复落入恢复窗口的遗失块。首先,将恢复窗口进一 步划分为四个子窗口。如果遗失块处于在时间上最接近重放窗口的窗口中, 则对等体直接向源服务器发送块恢复消息,这是因为紧急需要这些块、或者 如果不及时接收这些块则将影响内容质量。进行尝试以从其他对等体恢复其 他三个子窗口中的遗失块。对等体随机地从对等体列表选择三个恢复对等 体,并且将一个与每个子窗口关联。需要恢复块的对等体向对应的恢复对等 体发送块恢复消息。通过随机地选择恢复对等体,在所有对等体中均勾地分布恢复工作量。
图iO为用于对等体加入P2P网络的示范方法的流程图。在1005处,新 的/力口入的对等体联系内容源服务器并且请求允许加入P2P系统/网络。当接 收加入的对等体的请求并且内容服务器接受加入的对等体时,则内容源服务 向加入的对等体发送对等体列表,所述对等体列表为网络中的所有对等体的 列表。对等体列表还包括加入对等体所需要的任何其他信息以建立与网络中 的其他对等体的连接。在1010处,加入对等体从内容源服务器接收对等体 列表。在1015处,加入对等体建立与网络/系统中的所有其他对等体/节点的 连接。 一旦建立了连接,在1020处,加入对等体向内容源服务器发出"拉', 信号,以开始接收内容。在1025处,加入对等体接收内容并且在其重放緩 存中存储所接收的内容。在1030处,新对等体在已经接收了足够的内容之 后开始呈现/显示来自重放緩存的所接收的内容。
图IIA和11B—同为从内容源服务器的视角的本发明的基于队列的调 度方法的流程图。在1105处,内容源服务器从P2P网络/系统中的对等体接 收输入消息。其后在1110处,内容源服务器分类所接收的消息,并且将其 存储至三个队列中的一个。三个队列为MSG队列、RECOV REQ队列和PULL 信号队列。MSG队列用于管理消息。RECOVREQ队列用于遗失内容块恢复 请求。PULLSIG队列用于"4立"信号。在1115处,生成对MSG队列中的 下一管理消息的响应,并且将所生成的响应存储在用于对应的对等体(发出 管理消息请求的对等体)的输出单元中。在1120处执行测试以确定MSG队 列是否为空。如果MSG队列不为空,则重复1115。如果MSG队列为空, 则内容源服务器前进至1125,并且从PULL SIGN队列中去除下一消息,并 且通过定位K个F标记的内容块以及将其存储至发出"拉"信号的对等体的 输出单元中来回应。在1130处执行测试以确定PULL SIGN队列是否为空。 如果PULLSIG队列不为空,则重复1125。如果PULLSIG队列为空,则内 容源服务器前进至1135,并且从RECOV REQ队列中去除下一消息,并且 通过定位所请求的遗失内容块以及将其存储至发出遗失内容块恢复消息的 对等体的输出单元中来回应。在1140处执行测试以确定RECOV REQ队列 是否为空。如果RECOV REQ队列不为空,则重复1135。如果RECOVREQ 队列为空,则在1145处,内容源服务器去除NF标记的内容块,并且将NF 标记的内容块存储在每个对等体的输出单元处。其后本发明的基于队列的调
18度方法(用于内容源服务器的)前进以重新执行整个方法。这持续直至P2P网络不再存在。
图12A和12B—同为从对等体/节点的视角的本发明的基于队列的调度方法的流程图。在1205处,对等体从P2P网络/系统中的服务器或其他对等体接收输入消息。其后在1210处,对等体分类所接收的消息,并且将其存储至三个位置中的一个中。所述三个位置为MSG队列、RECOV REQ队列和转发队列。MSG队列用于管理消息。RECOV REQ用于遗失内容块恢复请求。转发队列为对等体/节点所接收的、作为对等体发出"拉"信号的结果、并且应当被转发至网络中的其他对等体的内容。任何所接收的内容也被放置在重放緩存中的恰当的位置处。在步骤1215处,对于MSG队列中的下一管理消息生成响应,并且将所生成的响应存储在用于对应的对等体(发出管理消息请求的对等体)的输出单元中。在步骤1220处执行测试以确定MSG队列是否为空。如果MSG队列不为空,则重复1215。如果MSG队列为空,则对等体前进至1225,并且定位所请求的(多个)遗失内容块以及将其存储至发出恢复请求消息的对等体的输出单元中。在1230处执行测试以确定RECOVREQ队列是否为空。如果RECOVREQ队列不为空,则重复1225。如果RECOV REQ队列为空,则对等体前进至1235,并且定位/取得F标记的内容块以及将其存储至用于所有对等体输出单元的转发队列以进行分配。在1240处,"拉,,信号发出者计算/算出在由对等体保持的所有输出单元上的平均队列尺寸。在1245处执行测试以确定平均队列尺寸是否小于或等于阈值Ti。如杲平均队列尺寸小于或等于Ti,则在K50处,生成新的"拉"信号并且将其放置在内容源服务器的输出单元上。如果平均队列尺寸大于阈值Ti,则其后本发明的基于队列的调度方法(用于对等体的)前进以重新执行整个方法。这持续直至P2P网络不再存在,或直至该对等体主动地退出/离开网络、或通过该对等体或一个或多个连接的故障而退出/离开网络。
应当理解,可以以各种形式的硬件、软件、固件、专用处理器或其组合来实施本发明。优选地,将按照硬件和软件的组合来实施本发明。此外,优选地按照在程序存储设备上被有形体现的应用程序来实施该软件。该应用程序可以被上载至包括任何合适的架构的机器,并且通过该机器来执行。优选地,在计算机平台上实施该机器,所述计算机平台具有诸如一个或更多的中央处理单元(CPU)、随机存取存储器(RAM)、(多个)输出/输出(I/O)接口之类的硬件。该计算机平台还包括操作系统和微指令码。在这里所描述的各种处理和功能可以是经由操作系统执行的微指令码的 一部分或应用程序的一部分(或其组合)。另外,诸如附加数据存储设备和打印设备之类的各种其他外围设备可以与该计算机平台连接。
还应当进一 步理解,因为优选地以软件来实施在附图中所描绘的 一些系统构成组件和方法步骤,所以系统组件(或处理步骤)之间的实际连接可能取决于本发明被编程的方式而不同。给定这里的教导,相关领域技术人员将能够想出本发明的这些和相似的实施方案或配置。
权利要求
1.一种用于在对等网络中调度内容递送的方法,所述方法包括从对等体接收消息;分类所述所接收的消息;基于所述分类将所述分类后消息存储在多个队列中的一个中;基于其中存储了所述分类后的消息的所述队列的优先级来生成对消息的响应;以及向所述对等网络中的所有对等体发送内容。
2. 根据权利要求1所述的方法,其中存在至少三个队列。
3. 根据权利要求2所述的方法,其中所述队列包括第一队列、第二队 列和第三队列。
4. 根据权利要求3所述的方法,其中所述第一队列中的消息包括加入 所述对等网络的请求,并且所述第一队列为最高优先级的队列。
5. 根据权利要求4所述的方法,其中对所述加入所述对等网络的请求 的响应包括向所述加入对等体发送关于已经处于所述对等网络中的对等体 的对等体列表和联系信息。
6. 根据权利要求3所述的方法,其中所述第二队列中的消息包括对附 加内容的请求,另外其中对所述对附加内容的请求的响应包括发送所述请求 的附加内容。
7. 根据权利要求3所述的方法,其中所述第三队列中的消息包括恢复 遗失内容的请求,另外其中对所述恢复遗失内容的请求的响应包括发送所述 请求的遗失内容。
8. 根据权利要求3所述的方法,其中所述第二队列的优先级和所述第 三队列的优先级是基于设计要求的。
9. 一种用于在对等网络中调度内容递送的装置,其包括 用于从对等体接收消息的部件;用于分类所述接收的消息的部件;用于基于所述分类将所述分类后的消息存储在多个队列中的一个中的 部件;用于基于其中存储了所述分类后的消息的所述队列的优先级来生成对消息的响应的部件;以及用于向所述对等网络中的所有对等体发送内容的部件。
10. 如权利要求9所述的装置,其中存在至少三个队列。
11. 根据权利要求10所述的装置,其中所述队列包括第一队列、第二 队列和第三队列。
12. 根据权利要求11所述的装置,其中所述第一队列中的消息包括加 入所述对等网络的请求,并且所述第一队列为最高优先级的队列。
13. 根据权利要求12所述的装置,其中对所述加入所述对等网络的请 求的响应包括用于向所述加入对等体发送关于已经处于所述对等网络中的 对等体的对等体列表和联系信,包、的部件。
14. 根据权利要求11所述的装置,其中所述第二队列中的消息包括对 附加内容的请求,另外其中对所述对附加内容的请求的响应包括用于发送所 述请求的附加内容的部件。
15. 根据权利要求11所述的装置,其中所述第三队列中的消息包括恢 复遗失内容的请求,另外其中对所述恢复遗失内容的请求的响应包括用于发 送所述请求的遗失内容的部件。
16. 根据权利要求11所述的装置,其中所述第二队列的优先级和所述 第三队列的优先级是基于设计要求的。
17. —种用于在对等网络中调度内容递送的方法,所述方法包括 从内容源服务器和对等体中的一个接收消息和内容中的一个; 分类所述接收的消息;基于所述分类将所述分类后的消息存储在多个队列中的一个中; 存储所述接收的内容;基于其中存储了所述分类后的消息的所述队列的优先级来生成对消息 的响应;以及向所述对等网络中的所有其他对等体发送内容。
18. 根据权利要求17所述的方法,其中存在至少三个队列。
19. 根据权利要求18所述的方法,其中所述队列包括第一队列和第二 队列。
20. 根据权利要求19所述的方法,其中所述第一队列中的消息包括关 于已经处于所述对等网络中的对等体的对等体列表和联系信息,并且所述第一队列为最高优先级的队列。
21. 根据权利要求20所述的方法,其中对所述对等体列表和所述联系 信息的响应包括与已经处于所述对等网络中的对等体建立连接。
22. 根据权利要求19所述的方法,其中所述第二队列中的消息包括恢复遗失内容的请求,并且所述第二队列相比所述第一队列是较低优先级的队 列,另外其中对所述恢复遗失内容的请求的响应包括发送所述请求的遗失内々谷。
23. 根据权利要求19所述的方法,进一步包括在第三队列中存储将被 转发至所述对等网络中的其他对等体的内容,其中所述第三队列具有最低的 优先级。
24. 根据权利要求17所述的方法,其进一步包括 确定平均队列尺寸;确定所述平均队列尺寸是否是小于阈值和等于阈值之一;以及 如果所述平均队列尺寸是小于所述阈值和等于所述阈值中之一,则生成信号消息并且向内容源服务器发送该信号消息,其中所述信号消息指示需要附加内容。
25. 根据权利要求17所述的方法,进一步包括呈现所述存储的内容。
26. —种用于在对等网络中调度内容递送的装置,其包括用于从内容源服务器和对等体中的一个接收消息和内容中的一个的部件;用于分类所述接收的消息的部件;用于基于所述分类将所述分类后的消息存储在多个队列中的一个中的 部件;用于存储所述接收的内容的部件;用于基于其中存储了所述分类后的消息的所述队列的优先级来生成对 消息的响应的部件;以及
27. 根据权利要求26所述的装置,其中存在至少三个队列。
28. 根据权利要求27所述的装置,其中所述队列包括第一队列和第二 队列。 —
29. 根据权利要求28所述的装置,其中所述第一队列中的消息包括关于已经处于所述对等网络中的对等体的对等体列表和联系信息,并且所述第 一队列为最高优先级的队列。
30. 根据权利要求29所述的装置,其中对所述对等体列表和所述联系 信息的响应包括用于与已经处于所述对等网络中的对等体建立连接的部件。
31. 根据权利要求28所述的装置,其中所述第二队列中的消息包括恢 复遗失内容的请求,并且所述第二队列相比所述第一队列是较低优先级的队 列,另外其中对所述恢复遗失内容的请求的响应包括用于发送所述请求的遗 失内容的部件。
32. 根据权利要求28所述的装置,进一步包括用于在第三队列中存储 将被转发至所述对等网络中的其他对等体的内容的部件,其中所述第三队列 具有最低的优先级。
33. 根据权利要求26所述的装置,其进一步包括 用于确定平均队列尺寸的部件;用于确定所述平均队列尺寸是否是小于阅值和等于阈值中之一的部件;以及用于在所述平均队列尺寸是小于所述阔值和等于所述阈值中之一的情 况下,则生成信号消息并且向内容源服务器发送所述信号消息的部件,其中 所述信号消息指示需要附加内容。
34. 根据权利要求26所述的装置,进一步包括用于呈现所述存储的内 容的部件。
全文摘要
描述了用于在对等网络中调度内容递送的方法和装置,其包括从对等体接收消息,分类所接收的消息,基于该分类将分类后的消息存储在多个队列中的一个中,基于其中存储了分类后的消息的队列的优先级来生成对消息的响应,以及向对等网络中的所有对等体发送内容。还描述了用于在对等网络中调度内容递送的方法和装置,其包括从内容源服务器和对等体中的一个接收消息和内容中的一个,分类所接收的消息,基于该分类将分类后的消息存储在多个队列中的一个中,存储所接收的内容,基于其中存储了分类后的消息的队列的优先级来生成对消息的响应,以及向对等网络中的所有其他对等体发送内容。
文档编号H04L29/08GK101690022SQ200780053346
公开日2010年3月31日 申请日期2007年6月28日 优先权日2007年6月28日
发明者勇 刘, 超 梁, 阳 郭 申请人:汤姆森特许公司
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1