一种基于P2P网络的直播数据处理方法、装置和系统与流程

文档序号:14898334发布日期:2018-07-10 14:19阅读:148来源:国知局

本申请涉及网络服务技术领域,特别地,涉及一种基于P2P网络的直播数据处理方法、装置和系统。



背景技术:

近年来,随着互联网视频行业蓬勃发展,基于点到点网络(P2P,Peer to Peer Network)的视频点播技术受到越来越多的关注,各种各样的 p2p 视频播放软件也走进了人们的生活。P2P技术是采用点对点的方式进行数据传输,与传统的客户端/服务器(C/S,Client/Server)模式不同,在 P2P网络中,节点既要从邻居节点下载数据,同时也要为邻居节点服务,上传数据给邻居节点。

在网络直播系统中,P2P作为一项关键技术,能有效利用客户端提供数据、带宽、存储等资源,有效降低服务器压力,提高服务质量。

在现有P2P直播系统中,请求端请求数据时按数据包的序号依次发出请求,响应端按请求的到达顺序依次响应,因此,具有如下缺点:1.对于同一个请求端,按序号从小到大的顺序向响应端发送请求,由于存在UDP丢包及重传问题,到达响应端的顺序可能会发生变化,从而会出现响应数据时不是按序响应的问题,序号小、相对较紧急的请求可能需要等待较长的时间才能得到应答,在一定程度上会影响播放质量。2.对于同一个响应端,接收到不同请求端的数据请求的紧急程度不一样,有的客户端请求的可能是即将要播放的数据,而有的客户端请求的可能是一段时间之后才能播放到的数据,按请求的到达顺序响应数据,会导致有的客户端拿到的数据够很长一段时间播放,而有的客户端下载的数据却跟不上播放所需,而出现播放缓冲的问题;当数据响应出现丢包,且需要在较短的时间内做重传时,会带来较高的重传率和服务压力,降低服务质量。



技术实现要素:

本申请提供一种基于P2P网络的直播数据处理方法、装置和系统,用于解决现有技术可能因丢包重传而导致播放缓冲的问题以及重传率高、服务压力大的问题。

本申请公开的一种基于P2P网络的直播数据处理方法,在直播数据请求端一侧,所述方法包括:根据请求端类型、直播数据参数以及所述直播数据的最新数据块信息,将请求端本地的缓冲区划分为若干个不同播放紧急程度的区域;根据待请求数据块在缓冲区中的区域位置选择响应端,向所述响应端发出数据块下载请求,并将所述响应端返回的数据缓存到缓冲区的相应区域。

优选的,根据待请求数据块在缓冲区中的区域位置选择响应端,向所述相应端发出数据块下载请求,具体包括:对于位于播放紧急程度高于预设紧急程度的区域的待请求数据块,选择P2P服务器作为响应端,并从所述P2P服务器下载数据;对于位于播放紧急程度不高于预设紧急程度的区域的待请求数据块,选择其他客户端作为响应端并从所述其他客户端下载数据;或先从其他客户端节点下载数据,若尝试预设次数之后数据块下载失败或数据块下载不完整,转向从P2P服务器下载。

优选的,所述方法还包括:为不同播放紧急程度的区域设置不同的超时重传时间,其中,播放紧急程度越高的区域的超时重传时间越小。

优选的,根据待请求数据块在缓冲区中的区域位置选择响应端,向所述响应端发出数据块下载请求,具体包括:根据待请求数据块在缓冲区中的区域位置所对应的播放紧急程度选择响应端,并确定所述待请求数据块对应的优先级标识,向所述响应端发出携带所述优先级标识的所述数据块下载请求。

优选的,根据请求端类型、直播数据参数以及所述直播数据的最新数据块信息,将请求端本地的缓冲区划分为若干个不同播放紧急程度的区域,具体包括:向登录服务器发出登录请求,接收登录服务器根据请求端类型和直播数据参数生成并返回的缓冲区分级参数;与P2P服务器交互,获得所述最新数据块信息;根据所述缓冲区分级参数和最新数据块信息,确定分区数量以及每个区域的边界。

优选的,所述将请求端本地的缓冲区划分为若干个不同播放紧急程度的区域,具体包括:将请求端本地的缓冲区划分为已下载区、紧急区、次紧急区和非紧急区;所述将请求端本地的缓冲区划分为已下载区、紧急区、次紧急区和非紧急区,具体包括:向登录服务器发出登录请求,接收登录服务器根据请求端类型和直播数据参数生成并返回的缓冲区分级参数;与P2P服务器交互,获得所述最新数据块信息,其中,所述最新直播数据块信息包括最新直播数据块序号E;根据所述缓冲区分级参数和最新数据块序号E,计算次紧急区的结束位置C和紧急区的结束位置B;将缓冲区的开始位置S与正在下载的数据块号A之间的区域作为已下载区,A与B之间的区域作为紧急区,B和C之间的区域作为次紧急区,C和E之间的区域作为非紧急区;所述根据待请求数据块在缓冲区中的区域位置选择响应端,向所述响应端发出数据块下载请求,具体包括:对于位于紧急区的待请求数据块,选择P2P服务器作为响应端,并从所述P2P服务器下载数据;对于位于次紧急区的待请求数据块,先从其他客户端节点下载数据,若尝试预设次数之后数据块下载失败或数据块下载不完整,转向从P2P服务器下载;对于位于非紧急区的待请求数据块,选择其他客户端作为响应端,并从该所述其他客户端下载数据;所述方法还包括:将紧急区、次紧急区和非紧急区的超时重传时间分别设置为第一超时时间、第二超时时间和第三超时时间,其中,第一超时时间<第二超时时间<第三超时时间。

本申请公开的一种基于P2P网络的直播数据处理方法,在直播数据响应端一侧,所述方法包括:接收请求端发出的数据块下载请求,根据下载请求的数据块在请求端缓冲区中的区域位置,确定所述数据块下载请求在所述请求端对应的优先级队列中的排序位置,并将所述数据块下载请求插入所述请求端对应的优先级队列中;从各个请求端对应的优先级队列的头部开始依次轮询回复各个数据块下载请求,并将回复后的数据块下载请求从优先级队列中删除。

优选的,所述方法还包括:为不同优先级的数据块下载请求设置不同的超时重传时间,其中,优先级越高的数据块下载请求的超时重传时间越小。

优选的,每个优先级队列中优先级相同的数据块下载请求按照请求的数据块序号从小到大排序。

本申请公开的一种基于P2P网络的直播数据处理装置,在直播数据请求端一侧,所述装置包括:缓冲区分级模块,用于根据请求端类型、直播数据参数以及所述直播数据的最新数据块信息,将请求端本地的缓冲区划分为若干个不同播放紧急程度的区域;分级下载模块,用于根据待请求数据块在缓冲区中的区域位置选择响应端,向所述响应端发出数据块下载请求,并将所述响应端返回的数据缓存到缓冲区的相应区域。

本申请公开的一种基于P2P网络的直播数据处理装置,在直播数据响应端一侧,所述装置包括:下载请求分级模块,用于接收请求端发出的数据块下载请求,根据下载请求的数据块在请求端缓冲区中的区域位置,确定所述数据块下载请求在所述请求端对应的优先级队列中的排序位置,并将所述数据块下载请求插入所述请求端对应的优先级队列中; 分级应答模块,用于从各个请求端对应的优先级队列的头部开始依次轮询回复各个数据块下载请求,并将回复后的数据块下载请求从优先级队列中删除。

本申请公开的一种基于P2P网络的直播数据处理系统,包括通过网络互相连接的登录服务器、P2P服务器和客户端,其中:所述P2P服务器配置有上述基于P2P网络的直播数据处理装置;所述客户端配置有上述基于P2P网络的直播数据处理装置。

本申请还公开了一种在其上记录有用于执行上述方法的程序的计算机可读记录介质。

与现有技术相比,本申请优选实施例请求端利用P2P服务器(P2Pserver)中最新直播数据位置以及请求端类型、直播数据参数等将缓冲区划分为多个不同播放紧急程度区域(如紧急区、次紧急区和非紧急区等),并根据待下载数据块在缓冲区中的区域位置选择响应端,能够根据非紧急区的请求一般会在较长时间之后才会播放的特点尽可能选择从其他客户端获取数据,可有效提高分享率,降低P2P服务器的压力。对于响应端来说,通过紧急数据优先响应策略,能够较大程度的提高用户观看直播数据的流畅度。在进一步的优选实施例中,通过为不同优先级的数据设置不同的重传时间,可以有效降低重传率,从而进一步提高网络传输效率和直播数据的流畅度,提升用户观看体验。

附图说明

图1为本申请基于P2P网络的直播数据处理方法第一实施例的流程图;

图2为本申请基于P2P网络的直播数据处理方法第二实施例的流程图;

图3为本申请基于P2P网络的直播数据请求装置一实施例的结构示意图;

图4为本申请基于P2P网络的直播数据应答装置一实施例的结构示意图;

图5为本申请基于P2P网络的直播数据处理系统一实施例的结构示意图;

图6为图1所示方法实施例中请求端的缓冲区分级结构示意图;

图7为图2所示方法实施例中响应端的响应队列结构示意图。

具体实施方式

为使本申请的上述目的、特征和优点能够更加明显易懂,下面结合附图和具体实施方式对本申请作进一步详细的说明。

在本申请的描述中,需要理解的是,术语“第一”、“第二”仅用于描述目的,而不能理解为指示或暗示相对重要性或者隐含指明所指示的技术特征的数量。由此,限定有“第一”、“第二”的特征可以明示或者隐含地包括一个或者更多个该特征。术语“多个”的含义是两个或两个以上,除非另有明确具体的限定。术语“包括”、“包含”及类似术语应该被理解为是开放性的术语,即“包括/包含但不限于”。术语“基于”是“至少部分地基于”。术语“一实施例”表示“至少一个实施例”;术语“另一实施例”表示“至少一个另外的实施例”。其他术语的相关定义将在下文描述中给出。

参照图1,示出了本申请基于P2P网络的直播数据处理方法第一实施例的流程,该P2P网络设置有通过网络互相连接的登录服务器、二个以上的P2P服务器节点和二个以上的客户端节点,本方法实施例的执行主体为直播数据的请求端(一般是客户端),具体包括以下步骤:

步骤S101:根据请求端类型、直播数据参数以及所述直播数据的最新数据块信息,将请求端本地的缓冲区划分为若干个不同播放紧急程度的区域。

在具体实施时,可以根据服务端预置的规则,将本地缓冲区划分为已下载区、紧急区、次紧急区和非紧急区。另外,直播数据的最新数据块信息可以从P2P服务器节点获得。

步骤S102:根据待请求数据块在缓冲区中的区域位置选择响应端,向所述响应端发出数据块下载请求,并将所述响应端返回的数据缓存到缓冲区的相应区域。

在进一步的优选实施例中,请求端根据待请求数据块在缓冲区中的区域位置选择响应端的策略,具体包括:对于位于播放紧急程度高于预设紧急程度的区域的待请求数据块,选择P2P服务器作为响应端,并从所述P2P服务器下载数据;对于位于播放紧急程度不高于预设紧急程度的区域的待请求数据块,选择其他客户端作为响应端并从所述其他客户端下载数据;或先从其他客户端节点下载数据,若尝试预设次数之后数据块下载失败或数据块下载不完整,转向从P2P服务器下载。

以将本地缓冲区划分为已下载区、紧急区、次紧急区和非紧急区的区域划分方式为例:

对于紧急区的数据块,选择P2P服务器作为响应端,并从该P2P服务器下载数据;

对于次紧急区的数据块,先从其他客户端节点下载数据,若尝试预设次数之后数据块下载失败或数据块下载不完整,转向从P2P服务器下载;

对于非紧急区的数据块,选择其他客户端作为响应端,并从该其他客户端下载数据。

在另一实施例中,为减少丢包率,降低系统的服务压力,还可以为不同紧急区的请求设置不同的超时重传时间,紧急程度越高设置的超时重传时间越短,对于将本地缓冲区划分为已下载区、紧急区、次紧急区和非紧急区的情况,超时重传时间的设置方式具体方法可以为:

将紧急区、次紧急区和非紧急区的超时重传时间分别设置为第一超时时间、第二超时时间和第三超时时间,其中,第一超时时间<第二超时时间<第三超时时间。

在另一实施例中,为使响应端及时处理紧急的数据,根据待请求数据块在缓冲区中的区域位置选择响应端,向所述响应端发出数据块下载请求,具体包括:

根据待请求数据块在缓冲区中的区域位置所对应的播放紧急程度选择响应端,并确定所述待请求数据块对应的优先级标识,向所述响应端发出携带所述优先级标识的所述数据块下载请求。

在另一进一步的优选实施例中,根据请求端类型、直播数据参数以及所述直播数据的最新数据块信息,将请求端本地的缓冲区划分为若干个不同播放紧急程度的区域,具体包括:

向登录服务器发出登录请求,接收登录服务器根据请求端类型和直播数据参数生成并返回的缓冲区分级参数;

与P2P服务器交互,获得所述最新数据块信息;

根据所述缓冲区分级参数和最新数据块信息,确定分区数量以及每个区域的边界。

优选地,上述步骤S101生成的缓冲区分级结构如图6所示,其具体实现方法可以包括:

步骤S101-1:向登录服务器发出登录请求,接收登录服务器根据请求端类型和直播数据参数生成并返回的缓冲区分级参数n1和n2,其中,n1≤n2;

具体实施时,可以根据请求端(即客户端)CPU的处理能力、直播数据(直播视频或音频)的码率生成缓冲区的分级参数。客户端开始播放时,P2Pserver会从当前最新位置往后回退一定数据量(如时长为30s的数据量)的位置开始给请求端提供数据。参数n2的取值可以按照客户端刚开始播放时前几秒(如3秒)数据的大小设置;参数n1的取值可以在n2的基础上再往后延几秒(如5秒)数据的大小设置。

例如,对于主频为1GHz的CPU(即处理1条指令的时间为1ns),当直播视频的码率为1.5Mbps时,n2的取值可以为40.5Mb(30s*1.5Mbps-3s*1.5Mbps),n1的取值可以为33Mb(30s*1.5Mbps-8s*1.5Mbps)。

步骤S101-2:与P2P服务器交互,获得最新直播数据块信息,其中,所述最新直播数据块信息包括最新直播数据块序号E;

步骤S101-3:计算次紧急区的结束位置C和紧急区的结束位置B,其中C=E-n1;B=E-n2;

步骤S10104:将缓冲区的开始位置S与当前正在下载的数据块号A之间的区域作为已下载区,A与B之间的区域作为紧急区,B和C之间的区域作为次紧急区,C和E之间的区域作为非紧急区。

其中,S≤A≤B≤C≤E;当B=C(即n1=n2)时,将缓冲区划分为已下载区、紧急区和非紧急区(即不存在次紧急区)。

参照图2,示出了本申请基于P2P网络的直播数据处理方法第二实施例的流程,本方法实施例的执行主体为P2P网络的直播数据的响应端,该响应端可以是P2P服务器,也可以是为其他客户端提供下载服务的客户端。本实施例方法具体包括:

步骤S201:接收请求端发出的数据块下载请求,根据下载请求的数据块在请求端缓冲区中的区域位置,确定所述数据块下载请求在所述请求端对应的优先级队列中的排序位置,并将所述数据块下载请求插入所述请求端对应的优先级队列中;

步骤S202:从各个请求端对应的优先级队列的头部开始依次轮询回复各个数据块下载请求,并将回复后的数据块下载请求从优先级队列中删除。

上述优先级队列的结构以及响应顺序如图7所示。

在另一实施例中,为减少丢包率,降低服务压力,还可以为不同优先级的数据块下载请求设置不同的超时重传时间,优先级越高的数据块下载请求的超时重传时间越小,具体方法可以为:将优先级最高、优先级最低和介于二者之间的优先级的超时重传时间分别设置为第一超时时间、第三超时时间和第二超时时间,其中,第一超时时间<第二超时时间<第三超时时间。

在进一步的优选实施例中,当一个优先级队列中存在优先级相同的数据块下载请求时,按照请求的数据块序号从小到大排序。

对于前述的各方法实施例,为了描述简单,故将其都表述为一系列的动作组合,但是本领域的技术人员应该知悉,本申请并不受所描述的动作顺序的限制,因为根据本申请,某些步骤可以采用其他顺序或同时执行;其次,本领域技术人员也应该知悉,上述方法实施例均属于优选实施例,所涉及的动作和模块并不一定是本申请所必须的。

本申请还公开了一种在其上记录有用于执行上述方法的程序的计算机可读记录介质。所述计算机可读记录介质包括配置为以计算机(以计算机为例)可读的形式存储或传送信息的任何机制。例如,机器可读介质包括只读存储器(ROM)、随机存取存储器(RAM)、磁盘存储介质、光存储介质、闪速存储介质、电、光、声或其他形式的传播信号(例如,载波、红外信号、数字信号等)等。

参照图3,示出了本申请基于P2P网络的直播数据请求装置一实施例的结构示意图,包括:

缓冲区分级模块31,用于根据请求端类型、直播数据参数以及所述直播数据的最新数据块信息,将请求端本地的缓冲区划分为若干个不同播放紧急程度的区域;

分级下载模块32,用于根据待请求数据块在缓冲区中的区域位置选择响应端,向所述响应端发出数据块下载请求,并将所述响应端返回的数据缓存到缓冲区的相应区域。

参照图4,示出了本申请基于P2P网络的直播数据响应装置一实施例的结构示意图,所述装置包括:

下载请求分级模块41,用于接收请求端发出的数据块下载请求,根据下载请求的数据块在请求端缓冲区中的区域位置,确定所述数据块下载请求在所述请求端对应的优先级队列中的排序位置,并将所述数据块下载请求插入所述请求端对应的优先级队列中;

分级应答模块42,用于从各个请求端对应的优先级队列的头部开始依次轮询回复各个数据块下载请求,并将回复后的数据块下载请求从优先级队列中删除。

参照图5,示出了本申请基于P2P网络的直播数据处理系统一实施例的结构示意图,包括通过网络互相连接的登录服务器、二个以上的P2P服务器节点和二个以上的客户端节点,另外,所述系统还配置有数据接入分发层,用于将直播源中的直播数据流封装成私有格式,切割成固定大小的数据块,并对数据块进行编号,增加频道号、码率、是否关键帧等信息后,分发推送至P2P服务器。其中:

P2P服务器缓存固定时间长度的直播数据,并配置有图4所示的基于P2P网络的直播数据响应装置;

登录服务器(Tracker)主要用于节点管理、路由服务和负载均衡;

客户端作为直播终端(如网络机顶盒、网络电视等),配置有图3所示的基于P2P网络的直播数据请求装置;另外,客户端还可以用作其他客户端的响应端,并配置有图4所示的基于P2P网络的直播数据响应装置,为其他客户端提供数据下载服务。

关于缓冲区分级参数,可以在客户端启动时登录Tracker,并接收tracker根据客户端类型、直播数据信息(如频道码率等)等参数返回的两个缓冲区分级参数(假设为n1和n2,n1 < n2);也可以由客户端的缓冲区分级模块31动态向Tracker请求获取。之后,缓冲区分级模块31从P2P服务器获取当前直播数据的最新数据块号E,将自己的缓冲区划分成四个区域:已下载区、紧急区、次紧急区、非紧急区。之后,分级下载模块32根据待请求数据块在缓冲区的位置选择响应端(如P2P服务器或其他客户端),并向选择出的响应端发送数据块下载请求,收到响应端返回的数据后缓存到本地缓冲区的已下载区。

作为响应端的客户端或P2P服务器的下载请求分级模块41收到请求端的分级下载模块发出的数据块下载请求后,首先根据请求的优先级(来自紧急区、次紧急区或非紧急区)将请求插入到对应请求端的优先级队列中。为确保各个数据块下载请求都能得到及时响应,响应端的分级应答模块42从各个优先级队列的头部开始依次轮询回复各个请求端的请求,响应顺序可参照图7所示的方式进行。

需要说明的是,上述装置和系统实施例属于优选实施例,所涉及的单元和模块并不一定是本申请所必须的。

本说明书中的各个实施例均采用递进的方式描述,每个实施例重点说明的都是与其他实施例的不同之处,各个实施例之间相同相似的部分互相参见即可。对于本申请的装置实施例而言,由于其与方法实施例基本相似,所以描述的比较简单,相关之处参见方法实施例的部分说明即可。

以上对本申请所提供的一种基于P2P网络的直播数据处理方法、装置和系统,进行了详细介绍,本文中应用了具体个例对本申请的原理及实施方式进行了阐述,以上实施例的说明只是用于帮助理解本申请的方法及其核心思想;同时,对于本领域的一般技术人员,依据本申请的思想,在具体实施方式及应用范围上均会有改变之处,综上所述,本说明书内容不应理解为对本申请的限制。

当前第1页1 2 3 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1