CN103843297A - 用于为实时流服务提供和选择候选节点的方法、装置和*** - Google Patents
用于为实时流服务提供和选择候选节点的方法、装置和*** Download PDFInfo
- Publication number
- CN103843297A CN103843297A CN201180073323.8A CN201180073323A CN103843297A CN 103843297 A CN103843297 A CN 103843297A CN 201180073323 A CN201180073323 A CN 201180073323A CN 103843297 A CN103843297 A CN 103843297A
- Authority
- CN
- China
- Prior art keywords
- node
- progress
- real
- time streams
- load
- 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.)
- Granted
Links
Images
Classifications
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L67/00—Network arrangements or protocols for supporting network services or applications
- H04L67/01—Protocols
- H04L67/10—Protocols in which an application is distributed across nodes in the network
- H04L67/104—Peer-to-peer [P2P] networks
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L65/00—Network arrangements, protocols or services for supporting real-time applications in data packet communication
- H04L65/60—Network streaming of media packets
- H04L65/61—Network streaming of media packets for supporting one-way streaming services, e.g. Internet radio
- H04L65/611—Network streaming of media packets for supporting one-way streaming services, e.g. Internet radio for multicast or broadcast
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L65/00—Network arrangements, protocols or services for supporting real-time applications in data packet communication
- H04L65/80—Responding to QoS
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L67/00—Network arrangements or protocols for supporting network services or applications
- H04L67/01—Protocols
- H04L67/10—Protocols in which an application is distributed across nodes in the network
- H04L67/1001—Protocols in which an application is distributed across nodes in the network for accessing one among a plurality of replicated servers
- H04L67/1004—Server selection for load balancing
- H04L67/1008—Server selection for load balancing based on parameters of servers, e.g. available memory or workload
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L67/00—Network arrangements or protocols for supporting network services or applications
- H04L67/01—Protocols
- H04L67/10—Protocols in which an application is distributed across nodes in the network
- H04L67/1001—Protocols in which an application is distributed across nodes in the network for accessing one among a plurality of replicated servers
- H04L67/1029—Protocols in which an application is distributed across nodes in the network for accessing one among a plurality of replicated servers using data related to the state of servers by a load balancer
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L67/00—Network arrangements or protocols for supporting network services or applications
- H04L67/50—Network services
- H04L67/56—Provisioning of proxy services
- H04L67/568—Storing data temporarily at an intermediate stage, e.g. caching
Landscapes
- Engineering & Computer Science (AREA)
- Multimedia (AREA)
- Computer Networks & Wireless Communication (AREA)
- Signal Processing (AREA)
- Computer Hardware Design (AREA)
- General Engineering & Computer Science (AREA)
- Information Transfer Between Computers (AREA)
- Two-Way Televisions, Distribution Of Moving Picture Or The Like (AREA)
Abstract
本发明涉及用于为实时流服务提供和选择候选节点的方法、装置和***。根据本发明的一个方面,用于为实时流服务提供候选节点列表的方法,其包括:收集实时流服务中所涉及的每个节点的信息;基于所收集的信息,计算每个节点的进度因子;将所收集的每个节点的信息与负载阈值进行比较;在所计算的进度因子的基础上,对所收集的信息低于负载阈值的节点进行排序;以及由排序的节点的前数目N个节点形成候选节点列表。根据本发明的另一个方面,用于为实时流服务选择候选节点的方法包括:基于实时流服务中所涉及的信息,计算进度因子;报告所计算的进度因子并请求候选节点列表;根据针对实时流服务覆盖的延迟要求和策略,从候选节点列表中选择候选节点。
Description
技术领域
本发明一般涉及用于为实时流(live streaming)服务提供候选节点的方法、相对应的装置和***,还涉及用于为实时流服务选择候选节点的方法、相对应的装置和***。
背景技术
应用层流被广泛用于互联网中,以提供各种实时广播/组播服务。例如,HTTP实时流(也称为HLS)是时下最流行的流通信协议。借助于实时流,大量的并存观看者收看相同的媒体流。然而,将存在瞬间拥挤问题,因为任何单个媒体服务器的运算能力和网络吞吐量不足以为如此多观看者同时提供服务。出于这个原因,内容分发网络(CDN)被广泛用于优化网络流量,并向观看者提供巨大的分发能力。CDN的这种功能可以通过利用应用层组播(ALM)技术来实现,其中将CDN节点以特定的逻辑进行组织以分配媒体。
当前的CDN始终工作在尽力服务(best-effort)模式,而在CDN部分处,媒体分发的延迟是不可预测的。到目前为止,没有CDN服务供应商约定媒体分发延迟指标。然而,在实时流的情况下,延迟对于用户体验非常重要。例如,当两组观众在不同的屏幕上收看相同的直播足球比赛节目时,一组为进球欢呼,但另一组仍然平静,因为他们的播放进度远远落后于正在欢呼的组。这对于用户体验来说总是令人沮丧的,并且一般是由CDN中所使用的ALM算法引起的。
如Carl Livadas在“An Evaluation of Three Application-Layer Multicast Protocols”(clivadaslcs.mit.edu, 2002.9.25)中所分析的那样,现有的ALM算法,例如Narada、NICE等,更喜欢选择具有与根节点的以跳计算的更近距离的节点。然而,其在许多情况下并不是客观的。例如,路径中节点A可能具有较大延迟。如果下游节点B由于到根媒体源的较少跳数而选择节点A作为媒体源,那么节点B和所有其下游节点将继承由该节点引起的较大延迟。显然,在此情况下选择具有到该媒体源较多跳数但具有较短延迟的另一节点将好得多。
另一个问题是媒体分发的延迟,即在节点处的媒体进度和源节点处的媒体进度之间的时间差,在每一节点处是不可预测的,因为到源节点的跳数既不能被用来计算时间延迟,也不能给出时间延迟的粗略估计。
当路径中的节点离开并且其下游节点将切换到其他节点以便得到媒体时,也是有问题的。通常,下游节点仅可选择其有联系的节点。但是,如果所有这些节点的播放进度晚于左节点,即,左节点在所有其接触节点中具有最快进度,则媒体播放连续性将受到威胁。缓冲时间是播放进度和下载进度之间的时间差,其可能帮助减轻该问题。但是如果节点选择其有联系且播放进度晚于左节点的这些节点之一,由于新的上游节点的媒体源晚于先前的上游节点的媒体源,因此缓冲时间将被缩短。例如图1中所示,如果当下游节点被切换到替代节点时下载时间未改变,C’处的缓冲时间将被缩短。并且随时间推移,缓冲时间将耗尽,且又存在不连续性问题。
普遍的ALM算法集中于建立全分布式覆盖,其中以树模式或网状模式来组织节点,如在Carl Livadas的“An Evaluation of Three Application-Layer Multicast Protocols”中所介绍的。在树模式下,每个节点将媒体分发给其下游节点。为了解决饱和问题,开发出多树模式,使得一个节点在其上游节电离开时,可从可替代节点得到媒体源。基于网状的模式也可被使用,因为自然不存在饱和问题。然而,这些方法集中于媒体可用性,即节点如何得到必要的媒体,但是不考虑用户体验,尤其是对于实时流的媒体分发连续性和延迟。已经完成许多研究工作,这些研究工作关于如何优化覆盖拓扑、如何处理异常情况(例如节点离开等)使得流可继续。
在苹果(Apple)的HTTP实时流文档("draft-pantos-http-live-streaming-06", 在http://datatracker.ietf.org/doc/draft-pantos-http-live-streaming/7include_text=l 下, R. Pantos, Apple Inc.)中,完整的媒体文件或动态媒体流被分割成很多块,每一块包含一段流,且播放列表文件被定义为顺次描述这些块。在播放列表文件中,每个块由统一资源识别符(URI)识别,该URI前面是包括块持续时间(媒体文件段)的标签(即EXTINF)。这使得通过所有先前块的EXTINF计算每个节点的播放进度成为可能。将以秒测量的播放进度与CDN第一节点(用于媒体源注入的入口节点)的播放进度进行比较,将确定由CDN所引起的延迟。当节点的延迟达到或接近于约定的延迟阈值时,其他节点均不应该被当作其下游节点。
US 7,450,580 B2描述了ALM架构,其中路由控制由路由控制器所处理,以及数据拷贝由多个专用数据拷贝装置完成。因此,这种ALM架构可以实现更好的效率,但其没有提供关于延迟优化或最大延迟控制的任何想法。
并且,在US2009/0238182A1中,ALM中引入了连接目的地引入服务器。当连接目的地引入服务器接收到连接目的地候选引入请求消息时,连接目的地引入服务器从拓扑管理信息中搜索可连接到下游侧的节点Nn,并返回连接目的地候选响应消息,其包括因此被搜索的一个或多个连接目的地候选的位置信息(节点信息,例如IP地址、端口号)。然而,仍然不能优化每个节点处的延迟,并且不能确保媒体播放连续性。
发明内容
本发明被用于CDN中以优化延迟并控制最大延迟,从而改善对于实时流服务的用户体验。本发明的基本想法是当建立媒体分发覆盖时考虑现有节点的播放进度。
本发明的一个目的是提供用于为实时流服务提供候选节点列表以及为实时流服务选择候选节点的方法、相对应的装置和***。
根据本发明的一个方面,提供了用于为实时流服务提供候选节点列表的第一方法,其包括以下步骤:
- 收集实时流服务中所涉及的每个节点的信息,
- 基于所收集的信息计算每个节点的进度因子,
- 将所收集的每个节点的信息与负载阈值进行比较,
- 在所计算的进度因子的基础上,对所收集的信息低于负载阈值的节点进行排序,以及
- 由排序的节点的前数目N个节点形成候选节点列表。
优选地,N为可配置参数,其可由OAM(操作管理和维护)配置。
根据本发明的一个优选实施例,每个节点的信息包括节点的进度信息、负载信息和联系信息。具体而言,负载信息包括关于CPU、存储器、磁盘空间和带宽等的负载等级,且节点的联系信息包括联系IP地址、用于媒体下载的联系端口号、所使用的传输协议等。
在本发明的一个实施例中,进度因子包括下载进度DP和供应进度SP。下载进度DP被定义为从上游节点得到的最新连续媒体块的时间标度。供应进度SP被定义为能负担下载的最新媒体块的时间标度。
在本发明的其他优选实施例中,借助于每个节点的块号来计算进度因子。替代地,通过将所有先前的媒体块的持续时间求和或通过组成先前的块来计算进度因子。
在本发明的一个实施例中,负载阈值包括普通负载阈值和极端负载阈值。
在本发明的第一方法中,排除负载等级在极端负载阈值之外的节点。在正常情况下,排除负载等级在普通负载阈值之外的节点。
在本发明的第一方法中,排序的步骤以递减次序执行。
如果存在具有相同供应进度SP的两个或更多节点,将具有较轻负载的节点放在其他节点之前。
当节点离开时,排除供应进度SP比左节点的供应进度SP低的节点。
如果没有负载等级在普通负载阈值之下的节点具有比左节点的供应进度SP更高的供应进度SP,则将在负载等级超过普通负载阈值且低于极端负载阈值的节点中搜索候选节点。
根据本发明的优选实施例,由OAM对普通负载阈值和极端负载阈值进行预配置。优选地,依据实时流服务的覆盖决定普通负载阈值和极端负载阈值。例如,普通负载阈值可以是总负载的90%,而极端负载阈值可以是总负载的92%。
在本发明的第一方法中,如果可用节点的数目小于N,则候选节点列表中包括所有可用节点。
根据本发明的另一方面,提供了一种用于为实时流服务提供候选节点列表的装置,其可以被用来执行本发明的第一方法。
根据本发明的其他方面,提供了一种用于为实时流服务提供候选节点列表的***,其包括用于执行本发明的第一方法的装置。
根据本发明的其他方面,提供了用于为实时流服务选择候选节点的第二方法,其包括以下步骤:
- 基于实时流服务中所涉及的信息来计算进度因子,
- 报告所计算的进度因子并请求候选节点列表,
- 根据针对实时流服务覆盖的延迟要求和策略,从候选节点列表中选择候选节点。
优选地,针对实时流服务覆盖的策略包括树遍历算法中的深度优先策略和广度优先策略。
在本发明的一个优选实施例中,通过将所有先前媒体块的持续时间求和来计算进度因子。并且在与协调节点列表一起返回的参数中指示针对实时流服务覆盖的策略。
根据本发明的其他方面,进一步提供了一种用于为实时流服务选择候选节点的装置,其可以被用来执行根据本发明的第二方法。
根据本发明的其他方面,提供了一种用于为实时流服务选择候选节点的***,其包括用于执行根据本申请的第二方法的装置。
在本发明中,实时流服务是HTTP实时流服务或其他渐进式下载流服务。
因此,与现有技术相比,由于在构建覆盖时,已考虑每个节点处的延迟而不是跳数,本发明可以优化延迟。本发明还可以控制在CDN部分处的最大延迟,因为每个节点将测量其延迟并选择用于媒体下载的合格路径。并且本发明可提供良好的服务连续性。
附图说明
参考以下附图将详细地描述本发明,其中,
图1示出了媒体分发覆盖建立期间缓冲时间变化的情况;
图2示出了根据本申请的为实时流服务提供候选节点列表的方法的流程图;
图3示意性示出了借助于根据本发明的方法的媒体分发覆盖的构建;
图4示出了固定缓冲时间的情况下的DP和SP;
图5示出了弹性缓冲时间的情况下的DP和SP;
图6示意性示出了用于计算节点侧处的DP和SP的过程;
图7示意性示出了用于计算在追踪器侧的DP和SP的过程;以及
图8示出了根据本申请的用于为实时流服务选择候选节点的方法的流程图。
优选实施例
在本发明中,引入追踪器函数来收集每个节点的进度信息以及指引覆盖的构建。当节点离开时,追踪器可以为下游节点分配合适的节点,其与左节点具有类似的媒体进度,使得节点在不缩短其缓冲时间的情况下可以保持媒体的平滑播放。
图1示出了媒体分发覆盖建立期间缓冲时间变化的情况。
这里,为了单独地描述媒体分发覆盖建立期间所涉及的各个进度,首先定义两个进度概念,即下载进度(DP)和供应进度(SP)。SP是能负担下载的最新媒体块的时间标度,而DP是从一个或多个上游节点得到的最新连续媒体块的时间标度。DP和SP之间的时间间隔为缓冲时间。如果节点的上游节点发生故障,该节点仍可利用缓冲的媒体块来供应其下游节点,以避免由上游节点的故障所引起的影响的扩散。如果在缓冲媒体块用尽之前,节点能够找到新的上游节点作为替代节点,那么将不对下游节点产生影响。然后,节点将更“贪婪地”下载直到其已补足缓冲时间。在普通情况下,SP应该等于DP减去固定缓冲时间。
然而,如上文中所提及的,如果下游节点选择了其有接触且播放进度晚于左节点的这些节点之一,则缓冲时间将被缩短。并且然后将终止该流。
图2示出了根据本申请的用于为实时流服务提供候选节点列表的方法的流程图。
在步骤S21处,追踪器首先收集实时流服务中所涉及的每个节点的信息。在步骤S22处,基于所收集的信息,追踪器计算每个节点的进度因子。并且然后,步骤S23处,将所收集的每个节点的信息与负载阈值进行比较。在步骤S24处,在所计算的进度因子的基础上,对所收集的信息低于负载阈值的节点进行排序。因此,在步骤S25处,候选节点列表由前N个节点形成,其中N由OAM所配置。例如,根据节点的能力,N可以是按节点可配置的。
图3示意性示出了借助于根据本发明的方法的用于HTTP实时流的媒体分发覆盖的构建。在基于树的架构中执行图3中示出的实施例。
如图3中所示,***被用来收集节点1-6中的每一个的进度信息和其他附加信息,并且然后也采用用于覆盖构建以及节点分配的适当策略。附加信息包括负载信息和节点的联系信息,该联系信息在另一节点想要连接节点时被使用。联系信息包括例如节点的联系IP地址、用于媒体下载的联系端口号、所使用的传输协议等等。负载信息指的是关于节点中资源使用的信息,资源例如是CPU、存储器、磁盘空间、带宽等,CDN节点周期性地将其负载信息报告给追踪器。仅当CDN节点想要加入组播覆盖时,节点将其联系信息报告给追踪器。并且随后,当节点想要改变其联系信息时,其向追踪器刷新其联系信息。节点1-6中的每个从上游节点下载媒体块并将这些块供应给下游节点。
首先,一旦每个节点的DP和SP发生变化,每个节点应立即报告其DP和SP给追踪器。换言之,一旦节点结束下载新的媒体块,其DP和SP将改变。并且然后新的DP和SP将立即被报告给追踪器。稍后将描述如何计算SP和DP。其次,每个节点将其负载状态周期性地报告给追踪器,使得追踪器知道哪个节点具有可用资源。在图3的实施例中,我们假定所约定的CDN延迟为t0。
接下来,参照图3详细描述了用于建立媒体分发覆盖的过程。
媒体注入点是节点1,其将其SP和负载信息报告给追踪器。当节点2加入时,它向追踪器做出针对节点列表的请求。追踪器发现节点1具有可用资源并将节点1的相关信息返回给节点2。因此,节点2选择节点1作为从其中下载媒体的上游节点。当节点3出现时,追踪器发现节点2和节点1具有可用资源,且两个SP都没有超过约定的延迟t0,所以节点2和节点1被返回到节点3。节点3尝试从节点1和节点2进行下载,并且发现从两节点中的任一个下载都可以满足延迟要求,即延迟<t0。然后节点3应当选择节点2作为上游节点,在此情况下其是具有“最差”但可接受延迟的节点。节点1的剩余资源块被保存用于在将来对树进行扩展。当然,如果覆盖的容量是足够的且无需再被扩展,那么节点3可选择节点1。此处由于追踪器知道覆盖的状态,其可通过返回消息中的参数指示节点3选择“最差”或“最佳”节点。
当下个节点4出现时,追踪器将把节点3、节点2和节点1放在按延迟时间排次序的节点列表中。第一节点(节点3)具有可接受但接近于t0的延迟。节点4尝试从节点3下载并发现延迟超过t0,因此其尝试连接节点2并发现节点2的延迟小于t0,因此节点4采用节点2作为上游节点并从节点2下载媒体。类似地,当节点5出现时,追踪器发现节点2没有更多可用资源,并依次返回节点3、节点4和节点1。由于节点5发现节点3和节点4不能满足延迟要求,其将选择节点1。基于相同的原则,节点6选择节点5。
这样,可以利用追踪器的指令构建覆盖,且每个节点的延迟被控制为小于t0。具有接近t0延迟的节点被认为是叶节点,并可以被分配给观看者用于媒体分发。在覆盖构建过程中,我们应当为具有优先级的观看者分配叶节点,并将其他节点(具有较少延迟)留下用于容量扩展。
借助于以上逻辑,基于树的架构将从包括节点1到节点2、节点2到节点3的非常瘦的树生长,并且随后逐步长胖(添加节点4、节点5、节点6)。此逻辑遵循深度优先策略。即,基于树的架构首先在纵向方向上生长,直到节点由于延迟限制不能有子节点,然后该节点被认为是用户可连接到用于实时流服务的叶节点。对于非叶节点,它们被保存用于按比例扩大的目的。对于实时流服务,用户数目是无法预测的,并且基于树的架构可随用户数目增加而逐步增长。在最开始,仅有一个叶节点(如图3中所示的,节点3)。如果用户数目增加到叶节点的资源将被用尽的程度,那么追踪器指示空闲节点(例如图3中的节点4)加入覆盖。新节点(节点4)从追踪器得到上游节点的列表。此处,选择具有“最差但可接受延迟”的节点可以使其自身最有可能成为叶节点。图3中,节点4选择节点2作为上游节点,使得节点4可使其成为叶节点且立刻开始服务用户。然而,如果它选择节点1作为上游节点,节点4将不是叶节点,我们需要增加其之下的至少一个更多节点来成为叶节点以提供服务。
因此,借助于此策略,覆盖的服务容量逐步增长。这还对CDN提供了非常好的可缩放性。一旦容量足够,追踪器可指示新出现的节点应用新策略,例如,首先选择具有轻微延迟的节点。
对于具有可预测观看者数目的实时流节目,利用合适的标度来规划覆盖。例如,在广度优先的策略中,当用户数目是可预测的时,追踪器可以指示新节点来选择“最佳”上游节点作为替代。同样我们可决定合理的t0值。并且,由从追踪器返回的参数连同节点列表信息一起指示了选择“最佳”或“最差”节点。例如,来自追踪器的对请求节点的响应如下:
候选节点1的联系IP地址、候选节点1的联系端口号、候选节点1的传输协议、候选节点1的SP;
候选节点2的联系IP地址、候选节点2的联系端口号、候选节点2的传输协议、候选节点2的SP;
… …
标志(首先选择“最佳”或“最差”节点的指示符)
关于进度因子(即DP和SP)的计算,有两种选择:在节点侧或在追踪器侧进行计算。
实践中,由于在节点处哪些块可用是清楚的,因此DP是渐进式下载情况下的严格时间标度参数。问题是如何识别SP。一种简单的方式是定义固定缓冲时间t1。这样,SP应为DP-t1,参见图4。在此情况下,DP与块末尾精确匹配,但SP不是。这非常容易实现,且仅一个参数(SP或DP)需要被报告给追踪器,因为另一个可被计算出。
对于渐进式下载流服务,每个块的时间长度由于划分方法而稍有不同。也就是说,媒体文件块具有不同的长度,例如2.0s、1.9s、2.1s等。在此情况下,如果我们更愿意使DP和SP二者均匹配块的边界,则可使用弹性缓冲时间。也就是说,如果DP被定义为最新可用块末尾的时间标度,且缓冲时间被定义为一定数目块的长度,那么SP达到块的边界,参见图5。在此情况下,如果DP和SP在节点侧被计算,则DP和SP二者均应被报告给追踪器。
本发明中,固定缓冲时间和弹性缓冲时间的上述方案均可被应用。
为了计算DP和SP,源媒体文件的开始被视为零时间标度。假设源媒体文件可被切割成n块,每一块具有其自己的持续时间。块i的持续时间被标注为Di。如果在当前节点刚好已经完成下载m块,那么其DP应当为:
如果缓冲时间t1是固定的,那么SP(m)=DP(m)-t1。
如果缓冲时间t1’是弹性的(缓冲k块),则:
每个块是一个小媒体文件。例如,如果其是以AVC(高级视频编解码)格式,持续时间Di在其文件报头(持续时间属性)中可得到。具体而言,对于苹果(Apple)的HTTP实时流(http://datatracker.ietf.org/doc/draft-pantos-http-live-streaming/?include_text=1 ), 每个块的持续时间被写在EXTINF标记中,其可被当作Di。
在节点侧计算: 节点对所有先前的媒体块(从块1到块m)的持续时间求和并按照以上方式得到DP或SP。如图6中所示,一旦节点完成下载新块(块m),其计算其DP(m)和SP(m), 并然后将它们报告给追踪器。当追踪器接收到该报告时,其更新节点的DP和SP数据并发送回响应。
这是一种有效的方法,因为我们只需要检查播放列表文件.缺点是,它适用于播放列表文件中每一块的持续时间可得到的情况,例如苹果(Apple)的HTTP实时流,且如果每个先前块的持续时间并不准确,则可能存在累积公差。一种替代方式是通过组成(节点处可得到的)所有先前的块来计算进度,这可以是非常准确的。并且除了苹果(Apple)的HTPP实时流,这种替代方式可被应用于其他情况下,因为每个块的持续时间标记不再是必要的。这需要对于加密媒体块的附加工作量,因为节点应解密先前的块来组成为媒体流。对于未在开始时加入的节点,我们不能确保其也具有所有先前的媒体块。
在追踪器侧计算: 节点将其块数目报告给追踪器,并且然后追踪器计算进度因子。类似地,追踪器可对所有先前的媒体块的持续时间求和或者也可以通过组成先前的块进行计算。对于第二种方法,追踪器应作为节点工作来下载媒体块,或者更具体而言,其可以是实时流的注入节点。因而,追踪器具有最大量的块且可通过给定的块数来计算进度。
例如,如图7中所示,当节点已完成下载块m,它立刻将块数“m”报告给追踪器。追踪器计算其DP(m)和SP(m),更新其数据库中的节点的DP和SP信息,且然后发送回响应。以这种方式,我们可具有对于DP和SP计算所有节点的协同,尤其是对于加密媒体情况。如果缓冲的块数k对于所有节点是恒量,其在报告请求中可被省略。
本发明中,两种选项均可起作用,并且在追踪器侧进行计算是优选的。
如上文中所提及的,节点离开将引起对下游节点的服务不连续性问题,且引起基于树的覆盖中的饱和问题。下面解释如何由追踪器解决服务不连续性的问题。
对于服务不连续性问题,当节点离开时,其直接下游节点继续将媒体块供应给其下游节点。同时,这些直接下游节点尝试找到新的上游节点。如果在缓冲块被用尽之前完成从新节点的下载路径,那么确保了服务连续性。接着,直接下游节点比平常更快地下载媒体块以补足缓冲时间,且覆盖达到新的稳定状态。
在本发明中,一种简单的方法被用来找到新的上游节点,并避免饱和问题。定义用于节点负载的两个阈值L0和L1。事实上,L0和L1应是用以描述针对媒体分发的总体负载状态的全面指标,其包括CPU使用、磁盘空间、存储器、带宽等,并且可以像普通指标那样被处理。由于CDN节点和追踪器由CDN运营商所部署或控制,L0和L1由OAM预配置或预备。此处,L0为普通负载阈值(例如90%的总负载),其意味着非常安全的等级。L1为极端负载阈值,其意味着仍然安全的等级(例如92%的总负载)。
首先,叶节点和负载等级超过L1的节点应被排除。
在正常情况下,每个节点的负载应在L0之下,这是由追踪器来保证的。当追踪器在普通情况下分配节点时,它应当选择具有在L0之下的负载等级的节点。也就是说,负载等级超过L0的节点被排除。然后,追踪器选择具有最低SP的节点(这意味着深度优先情况下的最大延迟)并以递减次序进行排序(具有较大延迟的节点被放在前面)。如果两个候选节点具有相同的SP,则具有较轻负载的节点被放在另一个之前。追踪器将前N个(N是配置的参数)候选节点返回到请求节点。如果可用节点的数目少于N,则返回所有节点。
在异常情况下,即节点离开,直接下游节点中的每个将为了合适的替代节点而检查其节点列表。如果成功,则其继续利用替代节点工作。如果失败,则其向追踪器发起要求替代节点的特殊请求。在此情况下,所需的SP(标注为SPx,其等于左节点的SP)被放在请求消息中。追踪器随后排除具有比SPx更慢的SP的节点。剩余节点按负载等级被划分成两个组:负载等级在0和L0之间的组1、负载等级在L0和L1之间的组2。在组1中,按SP从慢到快对节点进行排次序。这样,具有较大延迟的节点首先被放入。在理想的情况下,其SP刚好等于SPx的一些节点,被发现并在开始时被放置。以及然后,按负载等级(具有较轻负载的节点在先)对节点排次序。前N个候选节点被返回。如果可用候选节点少于N个,追踪器进一步在组2中搜索节点来得到更多作为补充。最后,追踪器返回N个节点(如果可用节点数>=N)或全部节点(如果可用节点数<N)。通过这种方式,我们可避免树变得饱和。并且左节点的下游节点可以找到合适的替代节点。
为参数选择合理的值是非常重要的。缓冲时间t1意味着节点处的延迟。较长的t1意味着节点离开时更多的安全时间,但其也带来更长的延迟。这样,t1应当等于不少于节点离开的反应时间的值。L0和L1影响了节点的资源使用效率,该使用效率应当依据覆盖的用户流失状态(churn status)来决定。
追踪器是逻辑实体,并且可被实现为物理节点或分布式***。
关于实时流服务中的节点,本发明提供了另一种用于为实时流服务选择候选节点的方法。图8示出了该方法的流程图。
如上文中所述,在步骤S81处,节点可以基于实时流服务中所涉及的信息来计算进度因子。并且在步骤S82处,节点将所计算的进度因子报告给追踪器,并请求候选节点列表。在步骤S83处,根据针对实时流服务覆盖的延迟要求和策略,节点从候选节点列表中选择候选节点。由与候选节点列表一起从追踪器返回的参数来指示针对实时流服务覆盖的策略。
根据本发明的方法可被应用于HTTP实时流,并且同样也可应用于其他渐进式下载流。
此外,根据本发明的方法可以被用在CDN中来为工作在渐进式下载模式中的实时流服务优化用户体验。渐进式下载模式是当前OTT(Over The Top)实时流的最流行模式。因此,CDN服务供应商可以使用根据本发明的方法来为这样的流服务进行特殊优化,并且可以进行CDN规划以及对希望将实时流服务分发给终端用户的ISP(互联网服务供应商)约定延迟保证。
虽然已结合上述优选实施例描述了本发明,但本领域技术人员应当理解,在不脱离所附权利要求的精神和范围的情况下,可对本发明做出许多修改和变化。
Claims (30)
1.一种用于为实时流服务提供候选节点列表的方法,其包括以下步骤:
收集实时流服务中所涉及的每个节点的信息,
基于所收集的信息来计算每个节点的进度因子,
将所收集的每个节点的信息与负载阈值相比较,
在所计算的进度因子的基础上,对所收集的信息低于所述负载阈值的节点进行排序,以及
由排序的节点的前数目N个节点形成所述候选节点列表。
2.根据权利要求1的方法,其中N是可配置的参数。
3.根据权利要求1或2的方法,其中每个节点的信息包括节点的进度信息、负载信息和联系信息。
4.根据权利要求3的方法,其中所述负载信息包括关于CPU、存储器、磁盘空间和带宽的负载等级,以及节点的所述联系信息包括联系IP地址、用于媒体下载的联系端口号、所使用的传输协议。
5.根据前述权利要求之一的方法,其中所述进度因子包括下载进度DP和供应进度SP,其中所述下载进度DP被定义为从上游节点得到的最新连续媒体块的时间标度,以及所述供应进度SP被定义为能负担下载的最新媒体块的时间标度。
6.根据权利要求5的方法,其中借助于每个节点的块号来计算所述进度因子。
7.根据权利要求5或6的方法,其中通过对所有先前媒体块的持续时间求和或通过组成先前块来计算所述进度因子。
8.根据前述权利要求之一的方法,其中所述负载阈值包括普通负载阈值(L0)和极端负载阈值(L1)。
9.根据权利要求8的方法,其中负载等级超过所述极端负载阈值(L1)的所有节点被排除。
10.根据权利要求8或9的方法,其中,在正常情况下,负载等级超过普通负载阈值(L0)的节点被排除。
11.根据权利要求8-10之一的方法,其中排序的步骤以递减次序来执行。
12.根据权利要求11的方法,其中如果存在具有相同供应进度SP的两个或更多节点,则具有较轻负载的节点被放在其他节点之前。
13.根据权利要求8-12之一的方法,其中,当节点离开时,其供应进度SP低于左节点的供应进度SP的节点被排除。
14.根据权利要求11的方法,其中如果没有负载等级在所述普通负载阈值(L0)之下的节点具有比左节点的供应进度SP更高的供应进度SP,则将在负载等级超过所述普通负载阈值(L0)且低于所述极端负载阈值(L1)的节点中来搜索所述候选节点。
15.根据权利要求8-14之一的方法,其中由OAM来预配置所述普通负载阈值(L0)和所述极端负载阈值(L1),优选地基于实时流服务的覆盖。
16.根据权利要求15的方法,其中所述普通负载阈值(L0)是总负载的90%,所述极端负载阈值(L1)是总负载的92%。
17.根据前述权利要求之一的方法,其中如果可用节点的数目小于N,则将所有可用节点包括在所述候选节点列表中。
18.根据前述权利要求之一的方法,其中所述实时流服务是HTTP实时流服务或其他渐进式下载流服务。
19.一种用于为实时流服务提供候选节点列表的装置,其可以被用于执行根据前述权利要求之一的方法。
20.一种用于为实时流服务提供候选节点列表的***,其包括根据权利要求19的装置,所述装置用于执行根据前述权利要求之一的方法。
21.一种用于为实时流服务选择候选节点的方法,其包括以下步骤:
基于实时流服务中所涉及的信息来计算进度因子,
报告所计算的进度因子并请求候选节点列表,
根据针对实时流服务覆盖的延迟要求和策略,从所述候选节点列表中选择候选节点。
22.根据权利要求21的方法,其中针对实时流服务覆盖的策略包括树遍历算法中的深度优先和广度优先的策略。
23.根据权利要求21或22的方法,其中每个节点的信息包括节点的进度信息、负载信息和联系信息。
24.根据权利要求23的方法,其中所述负载信息包括关于CPU、存储器、磁盘空间和带宽的负载等级,以及节点的所述联系信息包括联系IP地址、用于媒体下载的联系端口号、所使用的传输协议。
25.根据前述权利要求21-24之一的方法,其中所述进度因子包括下载进度DP和供应进度SP,其中所述下载进度DP被定义为从上游节点得到的最新连续媒体块的时间标度,以及所述供应进度SP被定义为能负担下载的最新媒体块的时间标度。
26.根据权利要求25的方法,其中通过对所有先前媒体块的持续时间求和来计算所述进度因子。
27.根据前述权利要求21-26之一的方法,其中在与所述候选节点列表一起返回的参数中指示针对实时流服务覆盖的策略。
28.根据前述权利要求21-27之一的方法,其中所述实时流服务是HTTP实时流服务或其他渐进式下载流服务。
29.一种用于为实时流服务选择候选节点的装置,其可以被用来执行根据前述权利要求21-28之一的方法。
30.一种用于为实时流服务选择候选节点的***,其包括根据权利要求29的装置,所述装置用于执行根据前述权利要求21-28之一的方法。
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
PCT/CN2011/001534 WO2013033869A1 (en) | 2011-09-09 | 2011-09-09 | Method, device and system for providing and selecting candidate nodes for live streaming services |
Publications (2)
Publication Number | Publication Date |
---|---|
CN103843297A true CN103843297A (zh) | 2014-06-04 |
CN103843297B CN103843297B (zh) | 2017-07-11 |
Family
ID=47831419
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201180073323.8A Active CN103843297B (zh) | 2011-09-09 | 2011-09-09 | 用于为实时流服务提供和选择候选节点的方法、装置和*** |
Country Status (4)
Country | Link |
---|---|
US (1) | US9621646B2 (zh) |
EP (2) | EP3393091B1 (zh) |
CN (1) | CN103843297B (zh) |
WO (1) | WO2013033869A1 (zh) |
Cited By (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN105591888A (zh) * | 2014-11-18 | 2016-05-18 | 中兴通讯股份有限公司 | 一种计算路径的方法和路径计算服务器 |
CN107241386A (zh) * | 2017-05-05 | 2017-10-10 | 中广热点云科技有限公司 | 一种网络节点筛选方法及*** |
CN111092922A (zh) * | 2018-10-24 | 2020-05-01 | 杭州海康威视***技术有限公司 | 一种信息发送方法及装置 |
Families Citing this family (10)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN105766005B (zh) * | 2013-10-24 | 2019-09-20 | 康维达无线有限责任公司 | 服务覆盖管理***和方法 |
CN103986977A (zh) * | 2014-04-15 | 2014-08-13 | 上海聚力传媒技术有限公司 | 用于在内容分发网络中预加载视频的方法与设备 |
US10868880B2 (en) | 2015-04-30 | 2020-12-15 | V2Com S.A. | Control system with persistent and transient data stores for registration, production and status data for networked devices |
US10761900B1 (en) | 2015-04-30 | 2020-09-01 | V2Com S.A. | System and method for secure distributed processing across networks of heterogeneous processing nodes |
US9918146B2 (en) * | 2016-02-08 | 2018-03-13 | Intel Corporation | Computing infrastructure optimizations based on tension levels between computing infrastructure nodes |
US10476985B1 (en) * | 2016-04-29 | 2019-11-12 | V2Com S.A. | System and method for resource management and resource allocation in a self-optimizing network of heterogeneous processing nodes |
CN107707964A (zh) * | 2016-08-08 | 2018-02-16 | 华为软件技术有限公司 | 预测视频内容热度的方法和装置 |
CN109495568B (zh) * | 2018-11-19 | 2021-06-18 | 北京金山云网络技术有限公司 | 一种数据获取方法、数据获取装置、服务器及存储介质 |
CN109547286B (zh) * | 2018-11-21 | 2020-06-19 | 中国联合网络通信集团有限公司 | 一种cdn节点的选择方法、设备及存储介质 |
US11122110B2 (en) * | 2019-06-11 | 2021-09-14 | Advanced New Technologies Co., Ltd. | Blockchain-based file processing method, apparatus, and device, and storage medium |
Citations (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN1852252A (zh) * | 2006-04-14 | 2006-10-25 | 清华大学 | 基于对等网络的视频直播应用中节点选择与检测方法 |
CN101087403A (zh) * | 2007-05-31 | 2007-12-12 | 吴彬 | 基于p2p技术上的分布式流媒体点播***及其点播流媒体节目的实现方法 |
Family Cites Families (25)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US7650376B1 (en) * | 2000-03-27 | 2010-01-19 | Blumenau Trevor I | Content distribution system for distributing content over a network, with particular applicability to distributing high-bandwidth content |
US6832239B1 (en) * | 2000-07-07 | 2004-12-14 | International Business Machines Corporation | Systems for managing network resources |
EP1211842A1 (en) * | 2000-11-30 | 2002-06-05 | BRITISH TELECOMMUNICATIONS public limited company | Network management apparatus |
US7337231B1 (en) * | 2000-12-18 | 2008-02-26 | Nortel Networks Limited | Providing media on demand |
US7165107B2 (en) * | 2001-01-22 | 2007-01-16 | Sun Microsystems, Inc. | System and method for dynamic, transparent migration of services |
JP3925188B2 (ja) | 2001-12-20 | 2007-06-06 | 日本電気株式会社 | アプリケーションレイヤ・マルチキャスト方法及び中継ノードシステム |
US7085829B2 (en) | 2001-12-31 | 2006-08-01 | Innomedia, Pte Ltd. | Method and system for an intelligent proxy server for workload balancing by workload shifting |
US7411901B1 (en) * | 2002-03-12 | 2008-08-12 | Extreme Networks, Inc. | Method and apparatus for dynamically selecting timer durations |
US7177325B2 (en) * | 2002-07-25 | 2007-02-13 | Micrel, Incorporated | Operations, administration and maintenance (OAM) systems and methods for packet switched data networks |
US7779096B2 (en) * | 2003-06-23 | 2010-08-17 | Hewlett-Packard Development Company, L.P. | System and method for managing a shared streaming media service |
US7975035B2 (en) | 2003-12-01 | 2011-07-05 | International Business Machines Corporation | Method and apparatus to support application and network awareness of collaborative applications using multi-attribute clustering |
US8214516B2 (en) * | 2006-01-06 | 2012-07-03 | Google Inc. | Dynamic media serving infrastructure |
US20070234327A1 (en) * | 2006-03-31 | 2007-10-04 | Baxter Robert A | Configuring media applications based on performance characteristics |
EP2044771A2 (en) * | 2006-07-24 | 2009-04-08 | NDS Limited | Peer-to-peer set-top box system |
US8892761B1 (en) * | 2008-04-04 | 2014-11-18 | Quickplay Media Inc. | Progressive download playback |
US7636789B2 (en) * | 2007-11-27 | 2009-12-22 | Microsoft Corporation | Rate-controllable peer-to-peer data stream routing |
JP4518169B2 (ja) | 2008-03-24 | 2010-08-04 | ブラザー工業株式会社 | ツリー型放送システム、モード切替指示方法、放送装置、及び放送処理プログラム |
US8117487B1 (en) * | 2008-12-29 | 2012-02-14 | Symantec Corporation | Method and apparatus for proactively monitoring application health data to achieve workload management and high availability |
CN101969448B (zh) | 2009-06-17 | 2013-03-13 | ***通信集团公司 | 在p2p流媒体***中查找活动节点的方法、***及设备 |
US8762461B2 (en) | 2009-06-17 | 2014-06-24 | China Mobile Communications Corporation | Method, system and device for searching active peer in P2P streaming media system |
US10749947B2 (en) | 2009-06-24 | 2020-08-18 | Provenance Asset Group Llc | Method and apparatus for signaling of buffer content in a peer-to-peer streaming network |
US8452835B2 (en) * | 2009-12-23 | 2013-05-28 | Citrix Systems, Inc. | Systems and methods for object rate limiting in multi-core system |
US9020039B2 (en) * | 2011-01-06 | 2015-04-28 | Sonic Ip, Inc. | Systems and methods for encoding alternative streams of video for use in adaptive bitrate streaming |
US20130007218A1 (en) * | 2011-06-28 | 2013-01-03 | Cisco Technology, Inc. | Network Assisted Tracker for Better P2P Traffic Management |
US8654649B2 (en) * | 2011-07-27 | 2014-02-18 | Cisco Technology, Inc. | Reduced topology routing in shared media communication networks |
-
2011
- 2011-09-09 WO PCT/CN2011/001534 patent/WO2013033869A1/en active Application Filing
- 2011-09-09 EP EP18150564.5A patent/EP3393091B1/en active Active
- 2011-09-09 CN CN201180073323.8A patent/CN103843297B/zh active Active
- 2011-09-09 US US14/343,962 patent/US9621646B2/en active Active
- 2011-09-09 EP EP11871877.4A patent/EP2754272B1/en active Active
Patent Citations (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN1852252A (zh) * | 2006-04-14 | 2006-10-25 | 清华大学 | 基于对等网络的视频直播应用中节点选择与检测方法 |
CN101087403A (zh) * | 2007-05-31 | 2007-12-12 | 吴彬 | 基于p2p技术上的分布式流媒体点播***及其点播流媒体节目的实现方法 |
Cited By (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN105591888A (zh) * | 2014-11-18 | 2016-05-18 | 中兴通讯股份有限公司 | 一种计算路径的方法和路径计算服务器 |
CN107241386A (zh) * | 2017-05-05 | 2017-10-10 | 中广热点云科技有限公司 | 一种网络节点筛选方法及*** |
CN107241386B (zh) * | 2017-05-05 | 2019-09-06 | 中广热点云科技有限公司 | 一种网络节点筛选方法及*** |
CN111092922A (zh) * | 2018-10-24 | 2020-05-01 | 杭州海康威视***技术有限公司 | 一种信息发送方法及装置 |
Also Published As
Publication number | Publication date |
---|---|
EP2754272B1 (en) | 2018-03-21 |
CN103843297B (zh) | 2017-07-11 |
US20140351451A1 (en) | 2014-11-27 |
EP2754272A1 (en) | 2014-07-16 |
EP3393091B1 (en) | 2020-10-28 |
WO2013033869A1 (en) | 2013-03-14 |
US9621646B2 (en) | 2017-04-11 |
EP2754272A4 (en) | 2016-01-20 |
EP3393091A1 (en) | 2018-10-24 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN103843297A (zh) | 用于为实时流服务提供和选择候选节点的方法、装置和*** | |
Chi et al. | Efficient search and scheduling in P2P-based media-on-demand streaming service | |
Liu et al. | Locality-awareness in BitTorrent-like P2P applications | |
CN103108008B (zh) | 一种下载文件的方法及文件下载*** | |
Zhang et al. | BDS: A centralized near-optimal overlay network for inter-datacenter data replication | |
CN105340237A (zh) | 内容分发***和方法 | |
AU2011265540A1 (en) | P2P Engine | |
CN105103518A (zh) | 内容分发***和方法 | |
CN105340216A (zh) | 内容分发***和方法 | |
JP6383009B2 (ja) | 通信速度推定装置、通信速度推定方法及びプログラム | |
Wang et al. | PLVER: Joint stable allocation and content replication for edge-assisted live video delivery | |
CN102404133B (zh) | 一种ip网络数据交互的方法和装置 | |
CN114222086B (zh) | 音视频码流的调度方法、***、介质及电子装置 | |
Zhou et al. | Joint optimization for the delivery of multiple video channels in Telco-CDNs | |
Walkowiak et al. | Modeling and optimization of survivable P2P multicasting | |
CN105359537A (zh) | 内容分发***和方法 | |
CN106209952B (zh) | 服务节点分配方法、装置、cdn管理服务器及*** | |
Pal et al. | Priority-based scheduling scheme for live video streaming in peer-to-peer network | |
Graffi et al. | Load balancing for multimedia streaming in heterogeneous peer-to-peer systems | |
Jin et al. | Content routing and lookup schemes using global bloom filter for content-delivery-as-a-service | |
CN104113545A (zh) | 信息中心网络下的流媒体***及其使用方法 | |
CN102256164A (zh) | 一种基于ip网络的视频传输*** | |
Zhang et al. | A centralized optimization solution for application layer multicast tree | |
Nguyen et al. | Conat: A network coding-based interest aggregation in content centric networks | |
Zhou et al. | Exploring coding benefits in CDN-based VoD systems |
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 |