用户侧带宽聚合的方法、设备和内容分发系统
技术领域
本发明涉及互联网技术领域,尤其涉及一种用户侧带宽聚合的方法、设备和内容分发系统。
背景技术
网络音视频直播技术是一种重要的互联网热门应用,其在后台数据传输端的架构发展经历了单服务器阶段、服务器集群阶段以及CDN(ContentDeliveryNetwork,内容分发网络)+客户端P2P阶段等。
其中,在单服务器阶段,只有单台服务器提供服务,客户端播放器通过流媒体协议直接连接到服务器,获取音视频数据,并在本地解码播放。
在服务器集群阶段,采用多种热备份的服务器集群方案或者是从源服务器到边缘服务器进行CDN分发的组网方案。此时客户端播放器通过服务器端的负载均衡调度,连接到某一台服务器,然后通过流媒体协议(如RTMP(RealTimeMessagingProtocol,实时消息传输协议)/RTSP(RealTimeStreamingProtocol,实时流传输协议)/MMS(MultiMediaServer,多媒体服务器)等),或基于HTTP(超文本传输协议,HyperTextTransferProtocol)(如HLS(HttpLiveStreaming,HTTP流媒体直播)/HTTP下载(download)等)进行传输的协议获取音视频数据,并在本地解码播放。这种纯服务器的解决方案,可以将服务器部署在IDC(InternetDataCenter,互联网数据中心)机房里,以保证在线时长和服务带宽质量,缺点是成本较高。
在CDN+客户端P2P阶段,由于同时在线人数的不断增加,以及服务器带宽成本的压力,可以利用客户端来分担一部分访问压力。通常视频数据从生产端(摄像机/摄像头拍摄后进行数字编码并通过流媒体协议推送到源服务器)出来,进入CDN网络,通过CDN网络分发到CDN的边缘节点,在这里会按照P2P传输的需求对数据进行分割以适应P2P传输。同时需要在客户端部署一个P2P服务的代理,这样客户端的播放器可以从P2P代理获取数据。不同客户端的P2P代理还可以通过P2P协议互相共享数据。这样就分担了服务器的访问压力。另一方面,由于P2P网络的不稳定,要想保证数据传输质量不间断,还可以进行设定,让P2P代理在无法从别的P2P代理(对端PEER)获取数据时直接访问CDN网络里的服务器。例如专利CN201510150133.1就采用了这种CDN+P2P的架构。CDN+P2P的架构可以分担一部分服务器的访问压力,降低带宽成本,同时还可以保证服务质量。
但是P2P代理模块加入/退出P2P网络是不受控制的,完全取决于客户是否选择观看对应的直播频道,也就意味着,这一部分来自于客户端的带宽无法挪作它用。如果直播结束或用户退出收看,来自于客户端的这部分带宽就没有了。
发明内容
技术问题
有鉴于此,本发明要解决的技术问题是,如何提高用户侧带宽的利用率,以保证内容分发系统所分发的内容的服务质量。
解决方案
为了解决上述技术问题,根据本发明的一实施例,提供了一种用户侧带宽聚合的方法,包括:
位于内容分发网络的虚拟化控制器接收用户终端的播放器发送的内容分发请求;
所述虚拟化控制器根据各网络设备的状态信息进行设备分级,其中,分级结果包括所述网络设备为第一级设备或第二级设备,所述第一级设备为中间设备,所述第二级设备为边缘设备;
所述虚拟化控制器将所述分级结果下发给对应的网络设备;
所述虚拟化控制器控制点对点P2P管理服务器建立所述第一级设备和所述第二级设备之间的P2P连接;
所述虚拟化控制器向所述用户终端的播放器返回至少一个第二级设备的地址信息,以利用所返回的第二级设备的可用带宽向所述用户终端的播放器进行内容分发。
对于上述方法,在一种可能的实现方式中,所述虚拟化控制器根据各网络设备的状态信息进行设备分级,包括:
所述虚拟化控制器获取其所能管辖的网络设备的状态信息,所述网络设备的状态信息包括所述网络设备的可用带宽和NAT拓扑状态,在所述NAT拓扑状态中,第一状态表示所述网络设备具有公网IP地址,第二状态表示所述网络设备在NAT后且属于非对称网络NAT类型,第三状态表示所述网络设备在NAT后且属于对称网络NAT类型;
所述虚拟化控制器从其所能管辖的网络设备中选取多个空闲网络设备,并根据内容分发需求和各所述空闲网络设备的可用带宽,选取NAT拓扑状态为第一状态的部分设备作为第二级设备,所述内容分发需求包括直播节目的总带宽和码流,其中,所述第二级设备与客户端连接并能够与至少一个所述第一级设备建立P2P连接,两个所述第二级设备之间禁止建立P2P连接;
所述虚拟化控制器根据所述内容分发需求、所选取的第二级设备的数量和剩余的所述空闲网络设备的可用带宽,选取NAT拓扑状态为第一状态的部分设备作为第一级设备,和/或,选取NAT拓扑状态为第二状态的部分设备作为第一级设备,其中,所述第一级设备与所述内容分发网络连接,两个所述第一级设备之间允许建立P2P连接。
对于上述方法,在一种可能的实现方式中,所述虚拟化控制器控制点对点P2P管理服务器建立所述第一级设备和所述第二级设备之间的P2P连接,包括:
所述P2P管理服务器在接收到所述第一级设备和/或所述第二级设备的发起的第一P2P连接请求的情况下,向所述虚拟化控制器请求获取对等设备标识列表,并向发起设备返回所获取的对等设备标识列表,所述对等设备标识列表中包括多个第一级设备的标识;
所述发起设备根据所接收到的对等设备标识列表选取感兴趣的对等设备,并向所选取的对等设备发送第二P2P连接请求,以建立所述发起设备与其所选取的对等设备之间的P2P连接。
对于上述方法,在一种可能的实现方式中,还包括:
所述虚拟化控制器对各所述网络设备的运行状况进行统计,以得到各所述网络设备的可信度,并根据各所述网络设备的可信度更新各所述网络设备的可用带宽。
对于上述方法,在一种可能的实现方式中,还包括:
所述虚拟化控制器接收各所述网络设备按照预定间隔发送的心跳请求;
所述虚拟化控制器根据所述心跳请求,更新所述网络设备的运行状态;
在所述网络设备处于掉线的状态下,所述虚拟化控制器停止向其他网络设备发送掉线的网络设备的对等设备标识,并停止将掉线的网络设备的IP地址发送给所述用户终端的播放器。
为了解决上述技术问题,根据本发明的另一实施例,提供了一种虚拟化控制器,其设置于云端的内容分发网络中,包括:
客户端接口模块,与用户终端的播放器相通信,用于接收所述用户终端的播放器发送的内容分发请求;
分级模块,与各网络设备相通信,用于根据各网络设备的状态信息进行设备分级,其中,分级结果包括所述网络设备为第一级设备或第二级设备,所述第一级设备为中间设备,所述第二级设备为边缘设备;
网络设备接口模块,与各所述网络设备相通信,用于将所述分级结果下发给对应的网络设备;
P2P连接控制模块,与P2P管理服务器相通信,用于控制所述P2P管理服务器建立所述第一级设备和所述第二级设备之间的P2P连接;
所述客户端接口模块还用于向所述用户终端的播放器返回至少一个第二级设备的地址信息,以利用所返回的第二级设备的可用带宽向所述用户终端的播放器进行内容分发。
对于上述虚拟化控制器,在一种可能的实现方式中,所述分级模块包括:
NAT探测单元,用于获取所述虚拟化控制器所能管辖的网络设备的状态信息,所述网络设备的状态信息包括所述网络设备的可用带宽和NAT拓扑状态,在所述NAT拓扑状态中,第一状态表示所述网络设备具有公网IP地址,第二状态表示所述网络设备在NAT后且属于非对称网络NAT类型,第三状态表示所述网络设备在NAT后且属于对称网络NAT类型;
第二级设备选取单元,用于从所述虚拟化控制器所能管辖的网络设备中选取多个空闲网络设备,并根据内容分发需求和各所述空闲网络设备的可用带宽,选取NAT拓扑状态为第一状态的部分设备作为第二级设备,所述内容分发需求包括直播节目的总带宽和码流,其中,所述第二级设备与客户端连接并能够与至少一个所述第一级设备建立P2P连接,两个所述第二级设备之间禁止建立P2P连接;
第一级设备选取单元,用于根据所述内容分发需求、所选取的第二级设备的数量和剩余的所述空闲网络设备的可用带宽,选取NAT拓扑状态为第一状态的部分设备作为第一级设备,和/或,选取NAT拓扑状态为第二状态的部分设备作为第一级设备,其中,所述第一级设备与所述内容分发网络连接并能够与至少一个所述第二级设备相通信,两个所述第一级设备之间允许建立P2P连接。
对于上述虚拟化控制器,在一种可能的实现方式中,还包括:
更新模块,用于对各所述网络设备的运行状况进行统计,以得到各所述网络设备的可信度,并根据各所述网络设备的可信度更新各所述网络设备的可用带宽。
对于上述虚拟化控制器,在一种可能的实现方式中,还包括:
容错模块,用于接收各所述网络设备按照预定间隔发送的心跳请求;根据所述心跳请求,更新所述网络设备的运行状态;在所述网络设备处于掉线的状态下,停止向其他网络设备发送掉线的网络设备的对等设备标识,并停止将掉线的网络设备的IP地址发送给所述用户终端的播放器。
为了解决上述技术问题,根据本发明的另一实施例,提供了一种P2P管理服务器,包括:
接收模块,与各网络设备相通信,用于接收到第一级设备和/或第二级设备的发起的P2P连接请求,其中,所述第一级设备和所述第二级设备为由所述虚拟化控制器根据各所述网络设备的状态信息进行设备分级得到的,所述第一级设备为中间设备,所述第二级设备为边缘设备;
标识请求模块,与虚拟化控制器相通信,用于向所述虚拟化控制器请求获取对等设备标识列表,所述对等设备标识列表中包括多个第一级设备的标识;
发送模块,与各所述网络设备相通信,用于向所述发起设备返回所获取的对等设备标识列表,以使得所述发起设备根据所接收到的对等设备标识列表选取感兴趣的对等设备并向所选取的对等设备发送第二P2P连接请求,以建立所述发起设备与其所选取的对等设备之间的P2P连接。
为了解决上述技术问题,根据本发明的另一实施例,提供了一种内容分发系统,包括:
内容分发网络CDN模块,用于提供直播节目数据流;
虚拟化控制器,采用本发明实施例中任意一种结构的虚拟化控制器;
P2P管理服务器,与所述虚拟化控制器相通信,所述P2P管理服务器采用权利要求10所述的P2P管理服务器;
多个网络设备,与所述虚拟化控制器和所述P2P管理服务器分别相通信,用于通过所述虚拟化控制器和所述P2P管理服务器建立P2P连接,以从所述CDN模块获取所述直播节目数据流,并将所获取的所述直播节目数据流发送给用户终端的播放器。
有益效果
本发明实施例中,虚拟化控制器在接收用户终端的播放器的内容分发请求后,能够根据各网络设备的状态信息将网络设备分为第一级设备或第二级设备,通过对等设备标识来控制P2P管理服务器建立所述第一级设备和所述第二级设备之间的P2P连接,能够较好的聚合用户侧网络设备的带宽,来提供不弱于IDC服务器的较高质量的服务内容。
根据下面参考附图对示例性实施例的详细说明,本发明的其它特征及方面将变得清楚。
附图说明
包含在说明书中并且构成说明书的一部分的附图与说明书一起示出了本发明的示例性实施例、特征和方面,并且用于解释本发明的原理。
图1示出根据本发明一实施例的内容分发系统的结构框图;
图2示出根据本发明一实施例的内容分发系统按照功能模块划分的结构框图;
图3示出根据本发明一实施例的内容分发系统中RD组网的流程图;
图4示出根据本发明一实施例的虚拟化控制器的结构框图;
图5示出根据本发明另一实施例的虚拟化控制器的结构框图;
图6示出根据本发明一实施例的P2P管理服务器的结构框图;
图7示出根据本发明一实施例的用户侧带宽聚合的方法的流程图;
图8示出根据本发明一实施例的用户侧带宽聚合的方法的流程图。
具体实施方式
以下将参考附图详细说明本发明的各种示例性实施例、特征和方面。附图中相同的附图标记表示功能相同或相似的元件。尽管在附图中示出了实施例的各种方面,但是除非特别指出,不必按比例绘制附图。
在这里专用的词“示例性”意为“用作例子、实施例或说明性”。这里作为“示例性”所说明的任何实施例不必解释为优于或好于其它实施例。
另外,为了更好的说明本发明,在下文的具体实施方式中给出了众多的具体细节。本领域技术人员应当理解,没有某些具体细节,本发明同样可以实施。在一些实例中,对于本领域技术人员熟知的方法、手段、元件和电路未作详细描述,以便于凸显本发明的主旨。
当前在互联网最后一公里的用户侧的接入带宽日益增长,大多数时候用户侧的上行/下行带宽都是大大富余的。遵从带宽摩尔定律,采用内容分发网络(CDN)加上基于互联网最后一公里的接入端进行虚拟化的方案,将用户侧的网络设备的带宽聚合起来,能够提高用户侧的带宽利用率,减轻服务器侧的带宽压力。其中,用户侧的网络设备可以用RD(RealDevice,真实设备)来表示。
本发明实施例通过在RD中部署代理模块,通过虚拟化API(ApplicationProgrammingInterface,应用程序编程接口)与部署在云端的虚拟化控制器进行通信。通过虚拟化控制器的调度将RD集中起来,并通过这些RD将用户侧的富余带宽进行集中管理,提供CDN加速服务。
不同于IDC机房的服务器,RD具有自身的特点。相比较于IDC机房的服务器,一方面,RD的运营/购置成本非常低,同时单位带宽价格也很低。另一方面,RD的稳定性、可靠性、在线时长、运算能力、能提供的带宽总量也大大低于服务器。此外,由于RD接入互联网的拓扑复杂多变。有相当比例的RD处于NAT(NetworkAddressTranslation,网络地址转换)或者防火墙后边,可能导致外部的设备/播放器无法直接访问这部分RD的直播CDN服务。在RD处于NAT或者防火墙后边,使得外部的设备/播放器无法直接访问这部分RD的直播CDN服务时,可以采用P2P的穿透技术,来使得某些处于NAT/防火墙后边的RD可以有效地贡献上行带宽。但不是所有处于NAT/防火墙后的设备都可以进行直接的P2P连接。这里说的直接的P2P连接是指不经过中间设备进行数据中转的情况。对于NAT/防火墙的类型,可以分为如下几种情况,具体解释可以参见RFC3489协议:
a.完全圆锥(FullCone)
b.受限圆锥(RestrictedCone)
c.端口受限圆锥(PortRestrictedCone)
d.对称网络(Symmetric)
这里,如果处于对称网络NAT的后边,通常无法不通过一个中转(代理)和另一个对端(peer)设备建立P2P连接。如果要利用处于这种网络环境的RD来提供带宽加速服务,会变得比较困难。
综上,本发明实施例针对RD的特点,可以有效的克服其缺点,发挥其低成本优势,集合这些零散带宽并有效加以利用,具体可以参见以下实施例。
实施例1
图1示出根据本发明一实施例的内容分发系统的结构框图。如图1所示,该内容分发系统主要可以包括:CDN模块11,用于提供直播节目数据流。虚拟化控制器13,其具体结构可以参见下述实施例的相关描述。P2P管理服务器15,与所述虚拟化控制器相通信,所述P2P管理服务器15的具体结构可以参见下述实施例的相关描述。多个网络设备17,用于与所述虚拟化控制器13和所述P2P管理服务器15分别相通信,用于通过所述虚拟化控制器13和所述P2P管理服务器15建立P2P连接,以从所述CDN模块11获取所述直播节目数据流,并将所获取的所述直播节目数据流发送给用户终端19的播放器。
其中,用户侧的网络设备可以用RD来表示,RD可以是例如一台能上网的PC(PersonalComputer,个人计算机),也可以是一台路由器,也可以是一个IP(InternetProtocol,互联网协议)机顶盒等。用户侧可以通过多种方式接入互联网,如PPPoE(Point-to-PointProtocoloverEthernet,以太网上运行点对点协议)、小区宽带、光纤等。RD可以直接接入互联网,也可以通过别的设备接入。
具体而言,如图2所示,本发明实施例的内容分发系统按照功能可以划分为以下几个模块:
NAT拓扑探测模块21,包括部署在网络设备如RD上的NAT探测客户端211,以及部署在云端的NAT探测服务器213,NAT探测服务器213可以设置在云端的虚拟化控制器中也可以单独设置服务器。通过让NAT探测客户端211和云端的NAT探测服务器213进行NAT通信探测,可以得到当前网络设备的NAT网络拓扑状况。拓扑状况包括如下几种状态:
(1)RD直接接入公网,不在NAT的后边。
(2)RD处于NAT设备的后端,例如可以分为完全圆锥、受限圆锥、端口受限圆锥、对称网络等情况。
虚拟化调度模块23,包括部署在RD上的虚拟化客户端代理模块231(可以通过软件程序来实现),以及部署在云端的虚拟化控制器13。虚拟化控制器13通过虚拟化API与虚拟化客户端代理模块231进行通信,从而实现对RD的管理。用户终端19的播放器会首先访问该虚拟化控制器13,以获取RD的访问地址,之后播放器再去连接RD。
P2P控制模块25,包括部署在RD上的P2P客户端251,以及部署在云端的P2P管理服务器15。P2P管理服务器15又可以包括索引服务器(tracker)、NAT打洞服务器等。在进行直播CDN加速时,RD上的P2P客户端251通过云端的P2P管理服务器15的辅助,与正在传输同一内容(例如直播节目)的其他RD建立P2P的连接,并互相传输数据。同时tracker的数据,即peer信息的来源,是由虚拟化控制器253提供的,这样虚拟化控制器253通过提供的数据可以控制tracker对RD上的P2P客户端251的响应,从而起到控制RD之间网络拓扑连接的目的。
云端的CDN模块11。不同于部署在最后一公里的RD,云端CDN模块11可以部署在IDC机房,以提供稳定可靠的直播节目数据流。
RD的对外直播模块29,部署在RD上,用于将从云端CDN模块11,或者是对端的其他RD获取的直播节目流,向用户终端19的播放器进行传输。其中,用户终端19的播放器也可以叫做客户端播放器,可以是安装在用户PC/移动设备等用户终端上的音视频播放器,是直播节目流的最终消费者。
本发明实施例利用上述NAT拓扑探测模块21、虚拟化调度模块23、P2P控制模块25、CDN模块11、对外直播模块29等进行的RD组网方案,来实现带宽虚拟化聚合的效果。带宽聚合过程具体可以包括以下阶段:
首先,对虚拟化控制器进行初始化,设定虚拟化控制器所能管辖的RD集合。此外虚拟化控制器还会定期更新其所辖RD的部分信息,如RD所能提供的上行/下行带宽总量等。
其次,虚拟化控制器定期更新RD的状态信息。具体而言,部署在RD上的虚拟化客户端代理模块可以定期向云端的虚拟化控制器汇报RD的状态信息。这些状态信息可以包括:(1)通过RD上的NAT探测程序获得的当前RD的接入互联网的拓扑状态;(2)RD当前传输的上行/下行数据总量,根据不同时段得到的这个数据量的差值可以得出当前RD消耗的上行/下行带宽,再通过步骤1得到的RD上行/下行带宽总量,可以计算出当前RD所能提供的上行/下行带宽总量;(3)当前RD的服务状态,如是否在进行直播加速服务,直播加速服务的频道,对等端的RD列表等;(4)用户终端19的播放器连接到RD上的连接数。
其中,虚拟化控制器可以根据各RD的NAT拓扑状态,将其所辖RD分为三种类型:
i.不在NAT/防火墙后,具有公网IP;
ii.在NAT后,且不是对称网络NAT类型;
iii.在NAT后,且是对称网络NAT类型。
在提供直播节目CDN加速服务时,虚拟化控制器可以根据RD的NAT类型将其归集到不同的转发群体中。
然后,虚拟化控制器通过P2P管理服务器控制RD组网,如图3所示,当有直播CDN需求时,虚拟化控制器可以进行如下步骤以便选取所管辖的RD进行组网:
步骤301、虚拟化控制器将RD按其作用分为2级。
第1级的RD是作为直播数据传输的中间者,作用是从云端CDN或者是其他的第1级RD获取直播节目流,并将直播节目流分享给第1级的RD,或者是第2级的RD;第2级的RD是作为整个虚拟化CDN加速方案的边缘设备,直接向用户终端的播放器提供直播节目流,并且第2级的RD之间不会分享数据,只会被动的从第1级RD接收数据。
步骤302、虚拟化控制器按照直播节目所需总带宽的设定,从空闲RD池中选取一批RD作为第2级的设备。其中,选取依据可以是该RD的接入互联网拓扑为不在NAT/防火墙的后边,具有公网IP(即上述的i型),直接接入互联网。此外选取的RD的数目可以按照如下示例方法确定:假定直播节目总带宽是M,直播节目的码流是b,每个RD可以提供的上行带宽是Ri(i=1,2,3,…N),且Ri>2b,设置一个初始计数值Ms=M,每选取一个RDi设备,就让Ms=Ms–Ri,直到Ms<0,停止。
步骤303、虚拟化控制器从空闲RD池中剩余的RD设备中选取一批RD作为第1级的设备。其中,选取依据是该RD虽然在NAT/防火墙后,且不是对称网络的NAT类型(即上述的ii型)。如果这种RD类型的已经分配完毕,可以选取具有公网IP(即上述的i型),不在NAT后的RD来代替。选取的第1级设备的数量,按照如下方法确定:假定一共选取了n个第2级的RD,直播节目的码流是b,那么总共需要第1级设备向第2级设备提供n*b的上行带宽。与选取第2级的要求类似,假设每个RD可提供上行带宽是Ri(i=1,2,3…n),要求Ri>2b,设置一个初始计数值Ms=n*b,每选取一个RDi设备,就让Ms=Ms-Ri,直到Ms<0,停止。由于第1级RD之间可以互相连接,就有可能消耗可用带宽,因而在进行分配计算时,可以对可用上行带宽的计算持保守方案,例如让Ri乘以一个百分比系数,作为计算时的Ri值,这样做的目的是使得在进行分配计算时留有余量,以抵消第1级设备互联可能产生的带宽消耗。详见下文的具体说明。
步骤304、所有RD之间通过P2P的方式进行连接。
具体地,RD会向P2P管理服务器中的tracker发出请求,然后按照tracker返回的peer列表,向感兴趣的peer发起P2P的连接请求,由P2P的穿透管理服务器协助建立P2P连接。虚拟化控制器通过控制tracker的返回peer列表,达到控制所有RD按照设定进行组网的目的。例如,虚拟化控制器想让RD1作为第1级设备,RD2作为第2级设备,那么在RD2向tracker发出请求时,虚拟化控制器将RD1的对等设备标识(peerid)返回给RD2,而RD1向tracker发出请求时,则得不到RD2的peer信息。
除此之外,虚拟化控制器在选定好RD的组网级别后,可以通过虚拟化API将每个RD对应的级别信息下发。这样每个RD都会清楚自己所要加速的直播节目,以及自己的级别。这样,RD在和别的RD分享数据时会进行不同的操作。例如,RD1和RD2连接时,RD1不会向RD2请求数据,而只会向RD2发送数据。此外,一个RD在获取到对等设备标识列表(peerid列表)后,可以自行选择一个或者若干个对等设备(peer),发出P2P连接请求,并从一个或若干个peer获取数据。当RD从某个peer无法再获取数据,或者数据获取的速度较慢时,RD还可以根据peerid列表自行选择新的peer,发起新的P2P连接请求,以避免由于某些RD不可达(例如,掉线、宕机、拥塞等)而造成的单点故障。
此外,在实际运行时,虚拟化控制器可以按照调度策略满足负载均衡的要求。如当一个RD发出peer请求时,虚拟化控制器可以通过tracker优选地给该RD返回一组负载最轻或者是距离最接近的peerid列表。如果是第2级设备的请求,tracker会给他一组第1级设备列表,如果是第1级设备的请求,tracker也会给他返回一组第1级设备的列表。也就是说,第1级设备之间也可以建立数据分享的通道。但是如果第1级设备无法从别的设备获取数据或者是数据获取延迟较大时,可以自行选择从云端CDN获取数据。
进一步地,由于RD的可用带宽是不稳定的,某一时刻得到的结果并不意味着下一时刻还能有同样的可用带宽Ri,如果直接按照计算出来的可用带宽进行分配,有可能导致较差的用户体验。因此,可以对带宽进行优化。具体地,虚拟化控制器可以对不同区域RD的运行状况进行长期评定,不同评级结果对应不同的可信度,在通过计算获得可用带宽之后再根据可信度乘以一个百分比系数,获得一个较可靠的估算结果。另外也可以采用一个区域范围的RD经验值法,即统一乘以一个百分比系数,如70%,80%等。
进一步地,本发明实施例还提供了一种负载均衡和容错机制。具体地,用户终端的播放器请求直播节目流时,会向虚拟化控制器发出查询请求,虚拟化控制器会将负载最轻的或者是距离用户终端的播放器最接近的第2级RD的IP地址和服务端口返回,之后用户终端的播放器会向对应的RD发出直播节目请求。由于这些第2级RD具有公网IP,直接接入互联网,可以像IDC的服务器那样向播放器提供服务。但由于RD并不总是很稳定,在虚拟化控制器里可以按照预定的间隔根据RD虚拟化客户端代理模块发来的心跳请求刷新所辖的RD状态信息,以此作为响应用户终端的播放器请求/tracker控制请求的依据。如某些RD掉线,则虚拟化控制器不再将掉线的RD的地址信息返回给用户终端的播放器,也不再把他的peerid返回给别的RD。
本发明实施例的内容分发网络,在进行用户侧RD组网是,可以将RD分为2种级别,第1级可以和云端CDN服务器或者别的第1级设备连接,第2级从第1级获取数据,并作为整个CDN加速服务的边缘设备向用户终端的播放器(消费者)传输数据。并且,为了克服RD带宽不稳定,连接不稳定,可能处于NAT之后的情况,使用P2P作为RD之间的连接方案,通过控制P2P管理服务器的tracker,每次向RD提供一组RD的peerid,由RD自己选取最佳的一个或多个RD来获取数据,从而避免出现单点故障。此外,在响应用户终端的播放器时,还可以对第2级RD采用了负载均衡调度策略,能够有效剔除不可用设备,以提高整个直播服务的可用性。因此,本发明实施例可以利用最后一公里的用户网络接入设备RD的富余上下行带宽,提供CDN加速服务,以克服RD不稳定,可用带宽较少,且网络拓扑复杂多变的缺点,有效合理的实现RD的带宽聚合的目的。
实施例2
图4示出根据本发明一实施例的虚拟化控制器的结构框图。如图4所示,本发明实施例的虚拟化控制器13可以设置于上述实施例中的云端的内容分发网络中,作为上述实施例中所述的内容分发网络的一个组成部分。其中,该虚拟化控制器主要可以包括:
客户端接口模块31,与用户终端19的播放器相通信,用于接收所述用户终端19的播放器发送的内容分发请求。
分级模块33,与各网络设备17相通信,用于根据各网络设备17的状态信息进行设备分级,其中,所述分级结果包括所述网络设备17为第一级设备或第二级设备,所述第一级设备为中间设备,所述第二级设备为边缘设备;其中,第一级设备和第二级设备的具体分级过程可以参见实施例1中图3及其相关描述。
网络设备接口模块35,与各所述网络设备17相通信,用于将所述分级结果下发给对应的网络设备17。
P2P连接控制模块37,与P2P管理服务器15相通信,用于控制所述P2P管理服务器15建立所述第一级设备和所述第二级设备之间的P2P连接;其中,所述P2P管理服务器15在接收到所述第一级设备和/或所述第二级设备的发起的P2P连接请求的情况下,向发起设备返回从所述P2P控制模块获取的至少一个对等设备标识,以建立所述发起设备与所述对等设备标识所对应的设备之间的P2P连接,所述对等设备标识为目前可用的第一级设备的标识。
其中,所述客户端接口模块31还用于向所述用户终端19的播放器返回至少一个第二级设备的地址信息,以利用所返回的第二级设备的可用带宽向所述用户终端19的播放器进行内容分发。
本实施例的虚拟化控制器,客户端接口模块在接收用户终端的播放器的内容分发请求后,分级模块能够根据各网络设备的状态信息将网络设备分为第一级设备或第二级设备,网络设备接口模块将分级结果下发给对应的网络设备后,P2P连接控制模块通过返回的对等设备标识来控制P2P管理服务器建立所述第一级设备和所述第二级设备之间的P2P连接,能够较好的聚合用户侧网络设备的带宽,来提供不弱于IDC服务器的较高质量的服务内容,例如高质量的直播节目数据流。
实施例3
图5示出根据本发明另一实施例的虚拟化控制器的结构框图。图5中标号与图4相同的组件具有相同的功能,为简明起见,省略对这些组件的详细说明。
如图5所示,与图4所示虚拟化控制器的主要区别在于,该虚拟化控制器的分级模块33具体可以包括:
NAT探测单元331,用于获取所述虚拟化控制器所能管辖的网络设备17的状态信息,所述网络设备17的状态信息包括所述网络设备17的可用带宽和NAT拓扑状态,在所述NAT拓扑状态中,第一状态表示所述网络设备17具有公网IP地址,第二状态表示所述网络设备17在NAT后且属于非对称网络NAT类型,第三状态表示所述网络设备17在NAT后且属于对称网络NAT类型;
第二级设备选取单元333,用于从所述虚拟化控制器所能管辖的网络设备中选取多个空闲网络设备,并根据内容分发需求和各所述空闲网络设备17的可用带宽,选取NAT拓扑状态为第一状态的部分设备作为第二级设备,所述内容分发需求包括直播节目的总带宽和码流,其中,所述第二级设备与客户端连接并能够与至少一个所述第一级设备建立P2P连接,两个所述第二级设备之间禁止建立P2P连接;
第一级设备选取单元335,用于根据所述内容分发需求、所选取的第二级设备的数量和剩余的所述空闲网络设备17的可用带宽,选取NAT拓扑状态为第一状态的部分设备作为第一级设备,和/或,选取NAT拓扑状态为第二状态的部分设备作为第一级设备,其中,所述第一级设备与所述内容分发网络连接,两个所述第一级设备之间允许建立P2P连接。
在一种可能的实现方式中,虚拟化控制器还可以包括:
更新模块38,用于对各所述网络设备17的运行状况进行统计,以得到各所述网络设备17的可信度,并根据各所述网络设备17的可信度更新各所述网络设备17的可用带宽。
在一种可能的实现方式中,虚拟化控制器还可以包括:
容错模块39,用于接收各网络设备17按照预定间隔发送的心跳请求;根据所述心跳请求,更新所述网络设备17的运行状态;在所述网络设备17处于掉线的状态下,停止向其他网络设备17发送掉线的网络设备17的对等设备标识,并停止将掉线的网络设备17的IP地址发送给所述用户终端19的播放器。
本实施例的虚拟化控制器,客户端接口模块在接收用户终端的播放器的内容分发请求后,分级模块能够根据各网络设备的状态信息将网络设备分为第一级设备或第二级设备,网络设备接口模块将分级结果下发给对应的网络设备后,P2P连接控制模块通过返回的对等设备标识来,来控制P2P管理服务器建立所述第一级设备和所述第二级设备之间的P2P连接。其中,即使某一第一级设备位于在NAT后,如果该第一级设备属于非对称网络NAT类型,则该第一级设备能够从云端CDN服务器或其他第一级设备获取所要分发的内容,在通过P2P连接由第二级设备发送给向用户终端的播放器。也即是说,第二级设备能从第一级设备获取数据并作为整个CDN加速服务的边缘设备向用户终端的播放器(消费者)传输数据,从而能够较好的聚合用户侧网络设备的带宽,来提供不弱于IDC服务器的较高质量的服务内容。
并且,在对等设备标识列表中包括多个第一级设备的标识,在某一设备不可用的情况下,还可以尝试连接其他设备,从而避免出现单点故障。
进一步地,更新模块可以对网络设备的带宽进行优化,容错模块能够实时剔除不可用的网络设备,以减少不可用的网络设备对带宽的浪费。
实施例4
图6示出根据本发明一实施例的P2P管理服务器的结构框图。如图6所示,本发明实施例的P2P管理服务器15可以设置于上述实施例中的云端的内容分发网络中,作为上述实施例中所述的内容分发网络的一个组成部分。具体而言,P2P管理服务器主要可以包括:
接收模块51,与各网络设备17相通信,用于接收到第一级设备和/或第二级设备的发起的P2P连接请求,其中,所述第一级设备和所述第二级设备为由所述虚拟化控制器根据各所述网络设备17的状态信息对空闲网络设备17进行分级得到的,所述第一级设备为中间设备,所述第二级设备为边缘设备;
标识请求模块53,与虚拟化控制器13相通信,用于向所述虚拟化控制器请求获取对等设备标识列表,所述对等设备标识列表中包括多个第一级设备的标识;
发送模块55,与各所述网络设备17相通信,用于向所述发起设备返回所获取的对等设备标识列表,以使得所述发起设备根据所接收到的对等设备标识列表选取感兴趣的对等设备并向所选取的对等设备发送第二P2P连接请求,以建立所述发起设备与其所选取的对等设备之间的P2P连接。
本实施例的P2P管理服务器可以参见图2的相关描述,P2P管理服务器能够与网络设备、虚拟化控制器相通信,在虚拟化控制器的控制下,采用对等设备标识列表来控制第一级设备和第二级设备之间建立P2P连接,能够较好的聚合用户侧网络设备的带宽,来提供不弱于IDC服务器的较高质量的服务内容。并且,对等设备标识列表可以包括多个第一级设备的标识,在某一设备不可用的情况下,还可以尝试连接其他设备,从而避免出现单点故障。
实施例5
图7示出根据本发明一实施例的用户侧带宽聚合的方法的流程图。如图7所示,该用户侧带宽聚合的方法主要可以包括:
步骤101、位于内容分发网络的虚拟化控制器接收用户终端的播放器发送的内容分发请求。
步骤102、虚拟化控制器根据各网络设备的状态信息进行设备分级,所述分级结果包括所述网络设备为第一级设备或第二级设备,所述第一级设备为中间设备,所述第二级设备为边缘设备。
步骤103、虚拟化控制器将所述分级结果下发给对应的网络设备。
步骤104、虚拟化控制器控制P2P管理服务器建立所述第一级设备和所述第二级设备之间的P2P连接。
步骤105、虚拟化控制器向所述用户终端的播放器返回至少一个第二级设备的地址信息,以利用所返回的第二级设备的可用带宽向所述用户终端的播放器进行内容分发。
本实施例的用户侧带宽聚合的方法,虚拟化控制器在接收用户终端的播放器的内容分发请求后,能够根据各网络设备的状态信息将网络设备分为第一级设备或第二级设备,通过对等设备标识来控制P2P管理服务器建立所述第一级设备和所述第二级设备之间的P2P连接,能够较好的聚合用户侧网络设备的带宽,来提供不弱于IDC服务器的较高质量的服务内容,例如高质量的直播节目数据流。
实施例6
图8示出根据本发明一实施例的用户侧带宽聚合的方法的流程图。图8中标号与图7相同的步骤具有相同的含义,为简明起见,省略对这些步骤的详细说明。
如图8所示,与图7所示的用户侧带宽聚合的方法的主要区别在于,该用户侧带宽聚合的方法的步骤102具体可以包括:
步骤201、虚拟化控制器获取其所能管辖的网络设备的状态信息,所述网络设备的状态信息包括所述网络设备的可用带宽和NAT拓扑状态,在所述NAT拓扑状态中,第一状态(参见实施例1中对i型的相关描述)表示所述网络设备具有公网IP地址,第二状态(参见实施例1中对ii型的相关描述)表示所述网络设备在NAT后且属于非对称网络NAT类型,第三状态(参见实施例1中对iii型的相关描述)表示所述网络设备在NAT后且属于对称网络NAT类型;
步骤202、虚拟化控制器从其所能管辖的网络设备中选取多个空闲网络设备,并根据内容分发需求和各所述空闲网络设备的可用带宽,选取NAT拓扑状态为第一状态的部分设备作为第二级设备,所述内容分发需求包括直播节目的总带宽和码流,其中,所述第二级设备与客户端连接并能够与至少一个所述第一级设备建立P2P连接,两个所述第二级设备之间禁止建立P2P连接;
步骤203、虚拟化控制器根据所述内容分发需求、所选取的第二级设备的数量和剩余的所述空闲网络设备的可用带宽,选取NAT拓扑状态为第一状态的部分设备作为第一级设备,和/或,选取NAT拓扑状态为第二状态的部分设备作为第一级设备,其中,所述第一级设备与所述内容分发网络连接,两个所述第一级设备之间允许建立P2P连接。
其中,第一级设备和第二级设备可以参见实施例1中对第1级设备和第2级设备的相关解释和示例。
在一种可能的实现方式中,步骤104具体可以包括:
步骤204、P2P管理服务器在接收到所述第一级设备和/或所述第二级设备的发起的第一P2P连接请求的情况下,向所述虚拟化控制器请求获取对等设备标识列表,并向发起设备返回所获取的对等设备标识列表,所述对等设备标识列表中包括多个第一级设备的标识;
步骤205、发起设备根据所接收到的对等设备标识列表选取感兴趣的对等设备,并向所选取的对等设备发送第二P2P连接请求,以建立所述发起设备与其所选取的对等设备之间的P2P连接。
在一种可能的实现方式中,该用户侧带宽聚合的方法还可以包括:虚拟化控制器对各所述网络设备的运行状况进行统计,以得到各所述网络设备的可信度,并根据各所述网络设备的可信度更新各所述网络设备的可用带宽。
具体而言,由于RD的可用带宽是不稳定的,某一时刻得到的结果并不意味着下一时刻还能有同样的可用带宽Ri,如果直接按照计算出来的可用带宽进行分配,有可能导致较差的用户体验。因此,可以对带宽进行优化。具体地,虚拟化控制器可以对不同区域RD的运行状况进行长期评定,不同评级结果对应不同的可信度,在通过计算获得可用带宽之后再根据可信度乘以一个百分比系数,获得一个较可靠的估算结果。另外也可以采用一个区域范围的RD经验值法,即统一乘以一个百分比系数,如70%,80%等,从而可以对各RD的可用带宽进行优化。
在一种可能的实现方式中,该用户侧带宽聚合的方法还可以包括容错机制。具体而言,虚拟化控制器接收各所述网络设备按照预定间隔发送的心跳请求;虚拟化控制器根据所述心跳请求,更新所述网络设备的运行状态;在所述网络设备处于掉线的状态下,所述虚拟化控制器停止向其他网络设备发送掉线的网络设备的对等设备标识,并停止将掉线的网络设备的IP地址发送给所述用户终端的播放器。
举例而言,用户终端的播放器请求直播节目流时,会向虚拟化控制器发出查询请求,虚拟化控制器会将负载最轻的或者是距离用户终端的播放器最接近的第2级RD的IP地址和服务端口返回,之后用户终端的播放器会向对应的RD发出直播节目请求。由于这些第2级RD具有公网IP,直接接入互联网,可以像IDC的服务器那样向播放器提供服务。但由于RD并不总是很稳定,在虚拟化控制器里可以按照预定的间隔根据RD虚拟化客户端代理模块发来的心跳请求刷新所辖的RD状态信息,以此作为响应用户终端的播放器请求/tracker控制请求的依据。如某些RD掉线,则虚拟化控制器不再将掉线的RD的地址信息返回给用户终端的播放器,也不再把他的peerid返回给别的RD。
本实施例的用户侧带宽聚合的方法,虚拟化控制器在接收用户终端的播放器的内容分发请求后,能够根据各网络设备的状态信息将网络设备分为第一级设备或第二级设备,通过对等设备标识来控制P2P管理服务器建立所述第一级设备和所述第二级设备之间的P2P连接,能够较好的聚合用户侧网络设备的带宽,来提供不弱于IDC服务器的较高质量的服务内容,例如高质量的直播节目数据流。
其中,即使某一第一级设备位于在NAT后,如果该第一级设备属于非对称网络NAT类型,则该第一级设备能够从云端CDN服务器或其他第一级设备获取所要分发的内容,在通过P2P连接由第二级设备发送给向用户终端的播放器。也即是说,第二级设备能从第一级设备获取数据并作为整个CDN加速服务的边缘设备向用户终端的播放器(消费者)传输数据,从而能够较好的聚合用户侧网络设备的带宽,来提供不弱于IDC服务器的较高质量的服务内容。
并且,在对等设备标识列表中包括多个第一级设备的标识,在某一设备不可用的情况下,还可以尝试连接其他设备,从而避免出现单点故障。
进一步地,采用容错机制能够实时剔除不可用的网络设备,以减少不可用的网络设备对带宽的浪费。
以上所述,仅为本发明的具体实施方式,但本发明的保护范围并不局限于此,任何熟悉本技术领域的技术人员在本发明揭露的技术范围内,可轻易想到变化或替换,都应涵盖在本发明的保护范围之内。因此,本发明的保护范围应以所述权利要求的保护范围为准。