一种基于模糊控制的P2P点播数据调度方法及系统转让专利

申请号 : CN201110211478.5

文献号 : CN102904832B

文献日 :

基本信息:

PDF:

法律信息:

相似专利:

发明人 : 王劲林李晓林尤佳莉苏杭郑鹏飞

申请人 : 中国科学院声学研究所

摘要 :

本发明涉及一种基于模糊控制的P2P流媒体数据调度方法,该方法基于模糊控制策略处理P2P流媒体点播的数据调度,所述方法包含:步骤1,调度周期开始,流媒体请求节点统计其当前运行模糊变量的值;步骤2,根据模糊控制策略处理模糊变量值得到模糊决策;步骤3,利用模糊决策计算该媒体请求节点的邻居节点的数据请求量,并发送数据请求;步骤4,如果所述邻居节点不能满足媒体请求节点的需求,则基于模糊决策启动对服务器的数据请求;其中,根据流媒体请求节点依据邻居节点缓冲区中缺少的数据块和提供所述数据块所需的上行带宽选取模糊变量。本发明提高系统中节点整体的上行带宽利用,并降低服务器负载,提高服务器上行带宽利用效率。

权利要求 :

1.一种基于模糊控制的P2P流媒体数据调度方法,该方法基于模糊控制策略处理P2P网络中邻居节点之间对流媒体点播的数据调度,所述方法包含:步骤1,调度周期开始,流媒体请求节点统计其当前运行模糊变量的值;

步骤2,根据模糊控制策略处理模糊变量值得到模糊决策;

步骤3,利用模糊决策计算该流媒体请求节点向邻居节点请求的数据量,并发送数据请求;

步骤4,如果所述邻居节点不能满足流媒体请求节点的需求,则基于模糊决策启动流媒体请求节点向服务器请求数据量;

其中,所述流媒体请求节点依据自身的缓冲区状态信息和上行带宽状态信息选取模糊变量;

所述模糊变量包含:流媒体请求节点当前的缓冲区中的数据量RB、数据量的增量ΔRB、固有的上行带宽UA,当前上行带宽的利用量UU和节点剩余上行带宽UL;

步骤3所述流媒体请求节点向邻居节点请求的数据量采用如下公式计算:QR(n)=QRR(n-1)-ηIfI(·)eI其中,fI(·)为非线性函数,其输出用模糊决策来估计;ηI为控制比例系数;eI为上轮调度中流媒体请求节点向其邻居节点请求的误差信号;QRR(n-1)为流媒体请求节点上轮调度中向邻居节点的实际请求的流媒体信息的数据量;

所述模糊决策步骤为:

用于将模糊变量的值根据语言值模糊子集进行模糊化得到模糊值的步骤;

用于将模糊值进行模糊推理,输出被控量模糊决策的步骤;

用于对被控量决策反模糊化输出本轮调度的模糊决策的步骤。

2.根据权利要求1所述的基于模糊控制的P2P流媒体数据调度方法,其特征在于,步骤

4所述的流媒体请求节点向服务器请求的数据量采用如下公式计算:QRS(n)=ηEfE(·)eE;

其中,ηE为控制比例系数;fE(·)为非线性函数,其值用模糊决策来估计;eE为上轮调度和本轮调度中流媒体请求节点数据请求量与播放需求数据量之差的最大值,称为误差信号,QRS(n)为流媒体请求节点向服务器请求的数据量。

3.根据权利要求1所述的基于模糊控制的P2P流媒体数据调度方法,其特征在于,所述步骤3进一步包含如下子步骤:根据流媒体请求节点的数据请求信息与数据接收信息,计算误差信号;

根据模糊规则计算对邻居节点的最大请求量;

根据最大请求量向邻居节点分配数据请求;

向邻居节点发送数据请求,并接收数据;

其中,选取节点的状态变量作为模糊变量,并制定模糊变量的模糊化规则,以及模糊化后控制量状态和被控量状态的映射关系,称为模糊规则。

4.根据权利要求3所述的基于模糊控制的P2P流媒体数据调度方法,其特征在于,所述步骤4进一步包含如下子步骤:计算流媒体请求节点上轮调度周期向邻居节点请求的总数据量及本轮向邻居节点请求的总数据量;

计算误差信号e;

根据模糊规则产生该流媒体请求节点对服务器请求的输入量;

流媒体请求节点根据上轮对服务器请求的信息计算本轮对服务器的请求量;

发送数据请求,接收数据;

其中,所述eI计算公式如下:

eI=QRR-QC

其中,QRR为流媒体请求节点上轮调度中的实际请求量;QC为流媒体请求节点上轮调度中的实际接收量,eI为上轮调度中流媒体请求节点向其邻居节点请求的误差信号。

5.一种基于模糊控制的P2P流媒体数据调度系统,其特征在于,节点基于模糊控制策略处理P2P流媒体点播的数据调度,包含:设置有基于模糊控制器生成流媒体请求量的若干节点;和为节点提供数据服务的服务器;

所述节点中的流媒体请求节点用于,调度周期开始时统计流媒体请求节点当前运行模糊变量的值;根据模糊控制策略处理模糊变量值得到模糊决策;利用模糊决策计算该流媒体请求节点向邻居节点请求的数据量,并发送数据请求;

所述服务器用于如果所述邻居节点不能满足流媒体请求节点的需求,则基于模糊决策启动向服务器请求数据量,向服务器发送其需要的流媒体内容的流媒体请求;

其中,所述流媒体请求节点依据自身的缓冲区状态信息和上行带宽状态信息选取模糊变量;

所述模糊变量包含:流媒体请求节点当前的缓冲区中的数据量RB、数据量的增量ΔRB、固有的上行带宽UA,当前上行带宽的利用量UU和节点剩余上行带宽UL;

所述流媒体请求节点向邻居节点请求的数据量采用如下公式计算:QR(n)=QRR(n-1)-ηIfI(·)eI其中,fI(·)为非线性函数,其输出用模糊决策来估计;ηI为控制比例系数,eI为误差信号,QRR(n-1)为流媒体请求节点上轮调度中向邻居节点的实际请求的流媒体信息的数据量;

所述模糊决策步骤为:

用于将模糊变量的值根据语言值模糊子集进行模糊化得到模糊值的步骤;

用于将模糊值进行模糊推理,输出被控量模糊决策的步骤;

用于对被控量决策反模糊化输出本轮调度的模糊决策的步骤。

6.根据权利要求5所述的基于模糊控制的P2P流媒体数据调度系统,其特征在于,所述的流媒体请求节点向服务器请求的数据量采用如下公式计算:QRS(n)=ηEfE(·)eE;

其中,ηE为控制比例系数;fE(·)为非线性函数,其值用模糊决策来估计;eE为上轮调度和本轮调度中流媒体请求节点数据请求与播放需求之差的最大值,并且eE≥0,称为误差信号。

说明书 :

一种基于模糊控制的P2P点播数据调度方法及系统

技术领域

[0001] 本发明涉及计算机网络技术领域,更具体地,本发明涉及一种基于模糊控制的P2P点播数据调度方法及系统。

背景技术

[0002] 近年来,随着宽带通信和多媒体技术的迅猛发展,在线直播,视频点播,文件下载等各种互联网应用也应运而生,对传统的客户端/服务器(C/S)模式的服务系统提出了新的挑战,随着用户规模的增大,传统的客户端/服务器(C/S)模式的服务系统需要消耗更多的软硬件资源,已经不能满足大规模用户的需求,因此基于P2P的服务系统迅速发展并逐渐成为相对成熟的应用。
[0003] 从功能上看,P2P系统一般主要有2类逻辑层构成:1)覆盖网层(Overlay Layer),该层主要是描述P2P服务系统中节点之间如何组织,为进一步选择邻居节点和数据交互打下基础;2)数据调度层(Data Schedule Layer),该层主要负责邻居节点之间如何进行数据调度,满足节点正常服务需求的同时最大化节点服务能力,从而提高系统整体性能。
[0004] 目前,大多数传统的P2P系统中,节点进行数据调度时,仅仅考虑数据调度对于节点本身性能的影响,并没有考虑单个节点的数据调度对于系统整体的影响。然而由于系统中节点状态的异构性,系统中单个节点性能的提高与系统整体性能的提高不存在等价关系。这种仅考虑自身的数据调度系统会使得系统中部分有能力的节点由于没有数据而无法为其它节点提供服务,从而使得节点的上行带宽得不到有效的利用,进而增大了服务器的压力。

发明内容

[0005] 本发明的目的在于,为克服现有技术的节点进行数据调度时,仅仅考虑数据调度对于节点本身性能的影响,并没有考虑单个节点的数据调度对于系统整体的影响,导致系统中部分有能力的节点由于没有数据而无法为其它节点提供服务,从而使得节点的上行带宽得不到有效的利用,进而增大了服务器的压力的问题,从而提供一种基于模糊控制的P2P点播数据调度方法及系统。
[0006] 为了实现上述问题,本发明提供一种基于模糊控制的P2P流媒体数据调度方法,该方法基于模糊控制策略处理P2P流媒体点播的数据调度,所述方法包含:
[0007] 步骤1,调度周期开始,流媒体请求节点统计其当前运行模糊变量的值。
[0008] 步骤2,根据模糊控制策略处理模糊变量值得到模糊决策。
[0009] 步骤3,利用模糊决策计算该媒体请求节点的邻居节点的数据请求量,并发送数据请求。
[0010] 步骤4,如果所述邻居节点不能满足媒体请求节点的需求,则基于模糊决策启动对服务器的数据请求。
[0011] 其中,根据流媒体请求节点依据邻居节点缓冲区中缺少的数据块和提供所述数据块所需的上行带宽选取模糊变量。
[0012] 上述技术方案中,所述模糊变量包含:流媒体请求节点当前的缓冲区中的数据量RB、数据量的增量ΔRB、固有的上行带宽UA,当前上行带宽的利用量UU和节点剩余上行带宽UL。
[0013] 所述模糊决策步骤为:用于将模糊变量的值根据语言值模糊子集进行模糊化得到模糊值的步骤;用于将模糊值进行模糊推理,输出被控量模糊决策的步骤;用于对被控量决策反模糊化输出本轮调度的模糊决策的步骤。
[0014] 步骤3所述数据请求量采用如下公式计算:
[0015] QR(n)=QRR(n-1)-ηIfI(·)eI
[0016] 其中,其中,fI(·)为非线性函数,其输出用模糊决策来估计;ηI为控制比例系数,eI为误差信号,QRR(n-1)为流媒体请求节点上轮调度中向邻居节点的实际请求的流媒体信息的数据量,QR(n)为流媒体请求节点在本轮向邻居节点的最大请求量。
[0017] 步骤4所述的数据请求量采用如下公式计算:
[0018] QRS(n)=ηEfE(·)eE;
[0019] 其中,ηE为控制比例系数;fE(·)为非线性函数,其值用模糊决策来估计;eE为上轮调度和本轮调度中流媒体请求节点数据请求与播放需求之差的最大值,并且eE≥0,称为误差信号;QRS(n)为流媒体请求节点向服务器请求的数据量。
[0020] 上述技术方案中,所述步骤3进一步包含如下子步骤:
[0021] 根据媒体请求节点的数据请求信息与数据接收信息,计算误差信号;
[0022] 根据模糊规则计算对邻居节点的最大请求量。
[0023] 根据最大请求量向邻居节点分配数据请求。
[0024] 向邻居节点发送数据请求,并接收数据。
[0025] 所述步骤4进一步包含如下子步骤:
[0026] 计算流媒体请求节点上轮调度周期向邻居节点请求的总数据量及本轮向邻居节点请求的总数据量。
[0027] 计算误差信号e。
[0028] 根据模糊规则产生该流媒体请求节点对服务器请求的输入量。
[0029] 节点根据上轮对服务器请求的信息计算本轮对服务器的请求量。
[0030] 发送数据请求,接收数据。
[0031] 其中,所述e计算公式如下:
[0032] eI=QRR-QC
[0033] 其中,QRR为流媒体请求节点上轮调度中的实际请求量;QC为流媒体请求节点上轮调度中的实际接收量,eI为上轮调度中流媒体请求节点向其邻居节点请求的误差信号。
[0034] 基于上述方法,本发明还提供一种基于模糊控制的P2P流媒体数据调度系统,其特征在于,所述节点基于模糊控制策略处理P2P流媒体点播的数据调度,包含:
[0035] 设置有基于模糊控制器生成流媒体请求量的若干节点;和设置有基于模糊控制器生成流媒体请求量的服务器。
[0036] 所述节点中的流媒体请求节点用于,调度周期开始时统计其当前运行模糊变量的值;根据模糊控制策略处理模糊变量值得到模糊决策;利用模糊决策计算该媒体请求节点的邻居节点的数据请求量,并发送数据请求。
[0037] 所述服务器用于如果所述节点不能满足媒体请求节点的需求,则基于模糊决策启动对服务器的数据请求,向流媒体请求服务器发送其需求的流媒体内容。
[0038] 本发明的优点在于,着重于描述节点选取何种状态信息进行模糊决策,以及如何将状态信息进行模糊化,并利用模糊规则产生模糊决策以及如何利用模糊决策来计算对邻居节点的数据请求,以跟踪邻居节点的可用上行带宽,从而提高系统中节点整体的上行带宽利用,以及利用模糊决策决定节点当前是否应利用服务器完成数据调度,以降低服务器负载,提高服务器上行带宽利用效率。

附图说明

[0039] 图1为本发明的P2P流媒体数据调度的流程图;
[0040] 图2为本发明的节点对邻居节点数据请求的系统结构图;
[0041] 图3为本发明的节点对邻居节点数据请求流程图;
[0042] 图4为本发明的节点对服务器数据请求的系统结构图;
[0043] 图5为本发明的节点对服务器数据请求流程图。

具体实施方式

[0044] 下面结合附图对本发明的内容做进一步解析。
[0045] 针对以上问题,本发明着重于描述节点选取何种状态信息进行模糊决策,以及如何将状态信息进行模糊化,并利用模糊规则产生模糊决策以及如何利用模糊决策来计算对邻居节点的数据请求,以跟踪邻居节点的可用上行带宽,从而提高系统中节点整体的上行带宽利用,以及利用模糊决策决定节点当前是否应利用服务器完成数据调度,以降低服务器负载,提高服务器上行带宽利用效率。
[0046] 数据调度的流程图参见图1,实现步骤如下:
[0047] 步骤1,选取节点的状态变量作为模糊变量,并制定模糊变量的模糊化规则,以及模糊化后控制量状态和被控量状态的映射关系,称为模糊规则。
[0048] 步骤2,调度周期开始后,节点收集本节点当前的状态信息,并将状态信息模糊化,然后利用模糊规则产生模糊决策。
[0049] 步骤3,根据模糊决策,并利用本节点上轮调度中向邻居节点请求的信息,产生节点本轮调度可以向邻居节点请求的最大数据量,然后依据邻居节点缓冲区中的所拥有的数据向邻居节点分配数据请求。
[0050] 步骤4,根据节点本轮调度中向邻居节点的实际请求量及上轮调度中节点的数据接收量,以及模糊决策,节点产生本轮调度中向服务器请求量的输入量,节点根据上轮调度中对服务器的请求量,产生节点向服务器的请求量。
[0051] 步骤5,节点向邻居节点及服务器请求数据,并收到从邻居节点返回的数据,一轮数据调度完成,产生新的状态信息。
[0052] (1)模糊变量的选取
[0053] 节点数据调度的目标是在保证播放质量的基础上,提高节点的上行带宽利用率,降低服务器负载,因此选取模糊变量是与保证节点的播放质量以及节点的上行带宽利用率的提高相关的变量。节点上行带宽的利用与两个因素有关,邻居节点缓冲区中缺少的数据和提供数据所需要的上行带宽,选取的变量与这两个因素有关。在节点中的数据方面,选取节点当前的缓冲区中的数据量RB以及数据量的增量ΔRB。节点上行带宽方面,选取节点固有的上行带宽UA,当前上行带宽的利用量UU和节点剩余上行带宽UL中任意两个或者三个作为模糊变量。
[0054] (2)模糊规则设计
[0055] 在设计模糊规则前需要将模糊变量进行模糊化。在进行模糊化时,需要确定模糊决策的精度。依据模糊决策的精度以及变量对节点数据调度影响的强度设计模糊化原则,也即输出的精度越高,则模糊化后产生的状态越多;变量对于系统性能的影响越大,则模糊化产生的状态越多。在确定了节点的状态数量之后,需要模糊变量根据各个状态组合实际的对系统的影响设置模糊决策。由于对邻居节点数据请求与对服务器数据请求的目标不同,设计不同的模糊规则表以适应不同的目标。
[0056] (3)模糊决策的产生
[0057] 数据调度中,在一轮调度开始时,节点统计其缓冲区中当前的数据量RB;并计算缓冲区中数据量的增量表示ΔRB;节点的上行带宽总量UA,为固定值;节点当前上行带宽利用量UU可以通过对节点发送的数据进行统计得到;节点剩余上行带宽UL可以通过以上二值相减得到。得到这些信息后依据模糊化规则产生模糊状态,并由模糊状态依据模糊规则得到模糊决策。
[0058] (4)对邻居节点的数据请求
[0059] 对邻居节点进行数据请求的控制系统框图如图2所示,流程图如图3所示。节点首先统计其上轮调度中对邻居节点数据请求QRR的数据接收量QC,并取误差eI=QRR-QC;而在节点能够从邻居节点收到全部的数据请求时,邻居节点尚有剩余的上行带宽为本节点提供服务,但无法准确估计邻居节点尚有多少剩余带宽能为自己服务,采用误差估计步长-C来估计误差信号eI,C≥0。节点在计算本轮调度向邻居节点最大数据请求量时,以上轮调度数据接收量QRR为基础,采用模糊比例控制的方式实现,实现方程为QR(n)=f1(·)=QRR(n-1)-ηIfI(·)eI;其中fI(·)的变量为模糊变量,输出为模糊决策,ηI为控制参数。节点在计算出对邻居节点的最大请求量时,节点在邻居节点最大请求量的范围内对需要请求的数据片在所有邻居节点间进行分配。分配后的节点向此邻居节点请求数据片的数量即为节点对邻居节点的实际请求量QRR。
[0060] (5)对服务器数据请求
[0061] 对服务器进行数据请求的控制系统框图如图4所示,流程图如图5所示。节点在分配完向邻居节点的数据请求后,计算节点是否向服务器请求数据。在依据模糊状态判断节点需要向服务器请求数据时,节点需要判断需要向服务器请求多少数据,由于向服务器请求数据的判断依据是节点上轮接收数据的量 因此,计算应向服务器请求的数据量时,以节点本轮可以从邻居节点中请求的数据量 与上轮实际请求的数据量的最小值为依据。为保证节点缓冲区中的数据量不变,误差信号其中RP为节点单轮调度周期内播放的数
据量;并且在误差信号eE<0时,认为eE=0。采用模糊比例控制的方式计算节点对服务器的请求量的方程为QRS(n)=f3(·)=ηEfE(·)eE。然而由于本轮不向服务器的数据请求可能由于节点上轮向服务器的请求的结果,因此在计算节点本轮向服务器的实际请求量时,在QRS=0时,设置QRRS,保证节点的实际请求量大于等于RP。
[0062] 实例
[0063] 下面通过一个实例来说明本发明提供的方法的具体应用场景:本方法中包含一个请求节点,N个邻居节点以及一个服务器节点。
[0064] 假设此时一个节点P已经找到可以合作的邻居节点,并希望从邻居节点和服务器下载数据,以满足自身的播放需要,并为邻居节点提供服务,下面描述P节点如何确定向邻居节点的数据请求量以及向服务器的数据请求量的步骤:
[0065] (1)、在数据请求之前需要完成准备工作包括选取模糊变量,设置模糊变量的模糊化状态,以及设计相应的模糊规则。这里选取的模糊变量包括节点的缓冲区的数据比率RB,缓冲区中的数据增量ΔRB,节点的上行带宽UA,节点已利用的上行带宽UU。选取控制量RB对应的语言值模糊子集选取为{P,N},其中P表示缓冲区中数据充足,N表示数据不足;并选取P对应的RB状态为0.7≤RB≤1,选取N对应的RB状态为0≤RB<0.7;选取控制量ΔRB对应的语言值模糊子集选取为{P,N},其中P表示缓冲区中数据增长,N表示数据不足;并选取P对应的ΔRB状态为ΔRB≥0,选取N对应的ΔRB状态为ΔRB<0;选取控制量UA对应的语言值模糊子集选取为{P,N},其中P表示节点有充足的上行带宽,N表示节点上行带宽不足;并选取P对应的UA状态为UA≥1.5UP,选取N对应的UA状态为0≤UA<1.5UP,其中UP为请求节点单轮播放的数据量所需要的带宽;选取控制量UU对应的语言值模糊子集选取为{P,N},其中P表示节点上行带宽利用量大,N表示节点上行带宽利用量少;并选取P对应的UU状态为UU≥UP,选取N对应的UU状态为0≤UU<UP。还需要设计被控量模糊决策RF的状态,状态包括对邻居节点请求的模糊决策REI的状态以及对服务器请求的模糊决策的状态。被控量模糊决策RF对应的语言模糊化子集选取为{VL,L,M,S},其中RFI中VL表示节点请求比数据接收量更少的数据,L表示请求等于数据接收量的数据,M和S表示请求较数据接收量多的数据,并确定模糊决策RFI的整数论域为{3,2,1,1};RFE中VL,L表示不向服务器请求数据,M表示向服务器少量请求数据,S表示向服务器大量请求数据,并确定模糊决策RFE整数论域{0,0,1,3}。模糊规则将节点的状态与相应的被控量状态对应,如当RB取P,ΔRB取N,UA取P,UU取P,RFI、RFE取VL;将所有可能的控制量状态组合与被控量状态进行对应。
[0066] 本发明中提供一种可选的具体模糊规则实施方案,模糊规则下表所示:
[0067]
[0068] (2)、在数据调度中,节点P统计自身运行的状态信息,包括节点的缓冲区的数据比率RB,缓冲区中的数据增量ΔRB,节点的上行带宽UA,节点已利用的上行带宽UU,节点上轮向邻居节点i的请求量QRRi,节点上轮从邻居节点i的数据接收量QCi,节点上轮向服务器的数据请求量QRS。
[0069] (3)、节点计算模糊变量RB,ΔRB,UA,UU所处的状态,计算出相应的对邻居节点请求及对服务器请求的模糊决策
[0070] (4)、节点P根据具体实现方法(4)来计算对邻居节点可请求的数据请求量的最大值,并根据节点的缓冲区中状态向邻居节点分配数据请求。
[0071] (5)、节点P根据具体实现方法(5)来计算对服务器节点的数据请求量,并分配向服务器请求的数据量。
[0072] (6)、向邻居节点及服务器发送数据请求。
[0073] 本发明涉及计算机网络技术领域,节点选取当前的缓冲区中的数据量RB、数据量的增量ΔRB、节点固有的上行带宽UA、当前上行带宽的利用量UU和节点剩余上行带宽UL作为模糊变量,并将模糊变量进行模糊化,并利用模糊规则产生模糊决策。节点利用模糊控制的方法来计算节点对邻居节点的最大数据请求量,以跟踪邻居节点的最大上行带宽,并将邻居节点的上行带宽在不同节点间进行调配,从而提高系统中节点整体的上行带宽利用。节点也利用模糊决策决定节点当前是否应利用服务器完成数据调度,以及从服务器请求数据的多寡,以降低服务器负载,提高服务器上行带宽利用效率。
[0074] 最后所应说明的是,以上实施例仅用以说明本发明的技术方案而非限制。尽管参照实施例对本发明进行了详细说明,本领域的普通技术人员应当理解,对本发明的技术方案进行修改或者等同替换,都不脱离本发明技术方案的精神和范围,其均应涵盖在本发明的权利要求范围当中。