1. 引言
P2P网络和传统C/S结构不同,P2P网络不需要中间的服务器,网络提供节点间实时的数据传输,每个节点的地位是相等的。在P2P结构中,每个节点都同时具有信息消费者,信息提供者等方面的功能,同时相比于传统模式中单服务器故障或者使用率偏高导致的系统瘫痪问题,P2P网络更加可靠。随着P2P网络的广泛使用,其能耗问题成为了热点问题,因此本文对改善P2P网络的性能,降低其能耗方面进行了研究。Qin等 [1] 提出了一种移动边缘辅助计算,以提高移动P2P通信中未压缩数据的吞吐量,定义了能耗和延迟时间之间的费用函数,通过最小化实际约束条件下的费用函数得到了一个闭式解。张修如等 [2] 设计了基于P2P网络和C/S的混合流媒体系统三层结构,给出了一个具有最小缓冲延迟的动态数据分配算法。Hales [3] 提出了一种基于测量的分布式方法来降低非结构化P2P网络中的搭便车行为,提出的方案要求每个对等点监控其相邻对等点,或采取明确的激励机制抑制节点的自私行为。Guo [4] 针对P2P网络中的虚假服务和搭便车问题,围绕社会网络的信任模型提出了一个基于矢量空间的分布式信任模型。模型使用了时间敏感因素来检测节点行为的敏感性,并基于向量空间模型的推荐信任来防止节点之间串通和恶意诽谤。
在排队论中休假排队系统是一个重要的研究热点,各种休假策略的引入使得排队模型的应用更加方便。Jain等 [5] 考虑了多服务台机器修复问题的异步休假策略,该问题包括服务台故障和两种类型的备件。采用矩阵几何解方法得到队列大小分布,确定了各种性能指标,如空闲服务台、繁忙服务台和休假服务台的预期数量。Wang等 [6] 针对完全可观察、几乎可观察、几乎不可观察、完全不可观察的排队,加入了异步休假和同步休假策略。从社会福利的角度分析了顾客的均衡策略,得出了交通密度低时,异步休假的均衡社会福利要高于同步休假均衡社会福利的结论。
批量服务排队在现实中有着广泛的实际意义,为了分析这一复杂的排队问题,在经典排队模型的基础上引入了批量服务策略。张宏波等 [7] 对一类批量服务工作休假排队进行了分析,讨论了批量服务的M/M/1多重或单重工作休假排队,对该排队模型用GI/M/1型Markov过程建模,通过求解该过程的联合平稳分布,得到了排队系统服务台平稳状态的详细刻画以及平稳队长分布的随机分解结果。Lee [8] 讨论了服务可变的离散时间批量到达、批量服务的排队模型,利用补充变量法和生成函数,获得了服务完成时的队列分布。Banerjee等 [9] 对具有一般批量服务的单服务器的排队模型进行了分析,根据嵌入式马尔可夫链的方法研究了模型的稳态分布,获得了排队顾客数、服务数和到达过程的联合分布,并通过数值例子对所研究的排队模型进行了定性分析。Germs等 [10] 提出了一个统一的方法来研究一类有限缓冲区且状态相关的批量排队系统的性能,推导出了计算队长极限概率分布的数值平稳步骤,提出了评价批量服务性能的度量指标。
为了更好的研究P2P网络的性能,已有部分研究者将排队论理论应用到P2P网络。Ghimire等 [11] 基于不同结构化的P2P覆盖网络,提供了一个分析模型。将系统建立为排队模型,获得了会话设置延迟和容量的封闭表达式,并通过数值仿真验证了分析方法的可靠性,找到了最小会话设置的最佳超级节点数。Ferragut等 [12] 从排队论的角度分析了P2P网络文件交换群的动态,将P2P网络抽象为M/G/1和M/G/∞的排队模型,得到了下载配置文件的中心极限定理的结果,最后将固定种子数扩展到了种子数量缓慢变化的情况。Gray等 [13] 将排队论的基本理论知识与P2P网络模型相结合,得到了固定队长的期望值和忙周期分布的表达式,确定了等待时间平稳分布的显式表达式。
据了解没有文献通过建立多服务台批量服务、异步休假的排队模型对P2P网络系统能耗问题进行分析。本文将服务器进行更新、维修、保养等不进行资源传输过程或多路复用程序不进行此特定资源输出,转为对其它数据进行处理等情况看作休假机制。将混合P2P网络一个簇中请求节点到达过程抽象成顾客到达,服务节点的资源信息传输过程抽象成服务过程,节点结束文件下载抽象成顾客服务完成,建立两类服务台、异步单重休假、批量服务策略下的M/Md/
(
)排队系统,利用矩阵几何解方法和GI/M/1型结构矩阵研究系统的稳态分布并分析混合P2P网络中的排队问题,得到系统的重要性能指标。通过数值分析研究系统能耗随系统参数的变化趋势,并寻找系统的最优参数。
2. 混合P2P网络与建模
混合P2P网络由不同的簇组成,每个簇相当于一个对等点,每个簇中包含一个超级节点和多个普通节点,构成一个星型结构。P2P网络中节点既可以作为“消费者”向其它节点提出资源传输请求,也可以作为“服务者”为其它节点提供服务。将混合P2P系统一个簇建模为两类服务台批量服务和异步单重休假的排队模型,将资源请求的节点看作需要接受服务的顾客,将簇中原有的c个普通节点看作c个I类服务台,将服务结束返回簇为其他节点提供服务的请求节点看作II类服务台。请求节点的到达间隔、两类服务节点的服务时间、II类节点的休假时间分别是独立的指数分布随机变量,假设等待空间是无穷大的。假定该模型为等待制排队,请求节点进入系统后排队等待,服务节点以先到先服务的规则进行服务。P2P网络运行机制如图1。
Figure 1. P2P network operation mechanism diagram
图1. P2P网络运行机制图
1) 假设请求节点的到达间隔服从参数为
的指数分布,两类服务节点均可批量服务,I类服务节点的服务时间服从参数为
的指数分布,II类服务节点的服务时间服从参数为
的指数分布。I类服务节点可进行休假,II类服务节点不休假。当d (d是大于1的固定常数)个请求节点进入系统接受服务时,如果系统中既有空闲的I类服务节点又有空闲的II类服务节点,I类服务节点优先为请求节点服务。
2) 本模型主要是以数量触发的批量服务,即排队等待的请求节点数中至少达到d个才可进行服务,一个服务节点可一次服务d个请求节点,其中d个请求节点同时接受服务,同时被服务完毕。当等待的请求节点达到d个时,簇中原有的I类服务节点为d个请求节点服务。服务结束后,每个请求节点以概率
返回簇,作为II类服务节点为其他请求节点服务,或以概率
离开系统,一个簇中最多可容纳d个请求节点返回系统作为II类服务节点。
3) 每个I类服务台可单独的开始和结束休假状态,且只能进行一次休假,最大限度的利用空闲服务台提高经济效益,即异步单重休假策略。当d个请求节点服务结束后,如果是I类服务节点提供的服务,若排队等待的节点数大于等于d,则该节点继续为队首的d个请求节点服务,若排队等待的请求节点数小于d时,则该服务节点进入随机长度为V休假期,休假长度服从参数为
的指数分布。I类服务节点休假结束后,若排队等待的请求节点数大于等于d,该I类服务节点立即为队首的d个请求节点服务,若排队等待的节点数小于d,则该服务节点进入空闲期,直到等待的请求节点数达到d个,该服务节点结束闲期进入工作期立即为这d个请求节点服务,重复上面的过程。因此每个I类服务节点在一个忙循环内可处工作、空闲和休假三种状态之一。
3. 模型分析
3.1. 状态转移率矩阵
假设
表示时刻 t 系统中请求节点的数量,
表示时刻 t 系统中处于工作期和闲期的I类服务节点数,
表示时刻 t系统中II类服务节点数。则
是以
为状态空间的三维Markov过程,其中状态空间
为
其中,
,表示水平i,
。同时,每个状态所表示的含义如下:
表示有0个I类服务节点处于工作期或闲期,即所有的I类服务节点都处于休假期。
(
)表示有j个I类服务节点处于工作期或闲期,即
个I类服务节点处于休假期。
当
,
,
时,状态
表示系统中请求节点的个数为i,I类服务节点全部处于休假期,接受完服务返回系统成为II类服务节点的个数为h。
当
,
,
时,状态
表示系统中请求节点的个数为i,有
(其中
符号表示取整)个I类服务节点处于工作期,
个I类服务节点处于闲期,
个I类服务节点
处于休假期,接受完服务返回系统成为II类服务节点的个数为h。
当
,
,
时,状态
表示系统中请求节点数为i,j个I类服务节点处于工作期,0个I类服务节点处于闲期,
个I类服务节点处于休假期,接受完服务返回系统成为II
类服务节点的个数为h。
将状态按字典序进行排列,系统的状态转移率矩阵表示如下
其中,
,
,
分别表示水平间的状态转移率矩阵,且均为
维方阵。定义
,
,
为
维单位矩阵,矩阵
的分块矩阵具体表示如下
(1)
,
,
其中
a)
,
,
(i) 当
,
,
,
,
,
(ii) 当
时,
,
b)
,
,
(i) 当
时,
,
(ii)当
时,
,
,
,
,
其中
,
,
.
,
.
(2)
,
,
,
其中
,
,
(i) 当
时,
,
,
,
.
(ii) 当
时,
,
其中
,
.
,
.
(3)
.
3.2. 系统稳态分析
由矩阵
的结构可知,Markov过程
是一个GI/M/1型排队系统,当Markov过程
正常返,其稳态分布定义为
,
,
,
,
.
Markov过程
正常返的充分必要条件是
次矩阵方程
存在一个最小非负解
,且谱半径
,
维随机矩阵
存在左零向量。Markov过程
正常返时,稳态分布满足如下方程组
其中,
是
维且所有元素均为1的列向量,
为
维单位矩阵。
上述结论的证明主要利用矩阵几何解方法。由于矩阵方程
中的系数矩阵维数比较大且非常复杂,很难求得
的显式表达式,因此利用Gauss-Seidel迭代方法来解决这个问题,迭代算法的步骤如表1所示。
Table 1. Iterative algorithm of rate matrix R
表1. 率阵
的迭代算法
3.3. 系统性能指标
根据排队模型的稳态分布,推导出混合P2P网络性能指标表达式,进而研究系统性能指标随参数变化的情况。假设I类服务节点在休假期的平均能耗为
,闲期内的平均能耗为
,工作期的平均能耗为
,且
。
1) 请求节点的平均队长
为
.
2) 请求节点的平均等待时间
为
.
3) 系统休假期的平均能耗
为
.
4) 系统闲期的平均能耗
为
.
5) 系统工作期的平均能耗
为
.
6) 系统的总能耗 G为
.
4. 数值实验
系统中大量的节点发出资源请求,排队等待的节点数过多容易使系统负载过大造成系统瘫痪,为更好的选取合适的参数降低系统的能耗,本文利用软件编程进行数值分析,得到系统能耗随参数变化的图像,进而分析参数变化对不同时期能耗的影响选取合适的参数。分析所涉及到的系统参数表示含义见表2。
Table 2. Meaning of system parameters
表2. 系统参数的含义
4.1. 参数变化对P2P网络系统能耗的影响
根据实际情况设定I类服务节点在休假期的平均能耗
,闲期的平均能耗
,工作期的平均能耗
。
图2表示当
,
,
,
时,系统休假期的能耗
随参数
,
和
变化的情况。在
和
固定的情况下,随着
的增大,
呈下降趋势。
下降的主要原因是当休假参数增大,I类服务节点的平均休假时间减少,越多的I类服务节点转为闲期或者工作期,因此系统休假期的能耗降低;在
和
固定的情况下,随着
的增大,
呈上升趋势。主要是因为当I类服务节点的服务率增大,服务的效率变高,排队等待的请求节点越快地进入系统接受服务然后离开系统,从而使得等待的节点数减少,越多的处于工作期的I类服务节点从工作期转为休假期,从而休假期的能耗变大;在
和
固定的情况下,随着
的增大,
也有上升趋势。当请求节点到达的数量越多,意味着越容易满足批量服务的启动数量d进入系统,节点资源传输结束后离开系统,排队等待的请求节点数逐渐减少到小于d,I类服务节点从工作期转为休假期,休假期的能耗增加。
Figure 2. Effect of
,
and
on the energy consumption
during the vacation period
图2.
、
和
对休假期能耗
的影响
图3反映了当
,
,
,
,
时,系统闲期能耗
和工作期能耗
随参数
和
的变化情况。当
固定不变时,随着
的增大,
呈下降趋势,
呈上升趋势。主要是因为随着到达率的增大,资源请求的节点增多,容易满足批量服务条件,同时为提供服务部分I类服务节点从闲期转换为工作期,因此闲期能耗降低,工作期能耗增加;当
固定不变时,随着
的增大,
呈上升趋势,
呈下降趋势。主要是因为当I类服务节点的服务率增加,节点的服务效率增大,越多的请求节点完成服务离开系统,系统中的请求节点数减少,部分I类服务节点从工作期进入闲期,所以闲期的能耗增加,工作期的能耗降低。由此可知,为了降低闲期不必要的能耗,可以增加请求节点的到达率,适当减少I类服务节点的服务率,使得更多的I类服务节点能处于工作期。
Figure 3. Effect of
,
on the energy consumption G2 during the idle period and G3 during the working period
图3.
和
对闲期能耗G2和工作期能耗G3的影响
图4表示当
,
,
时,系统总能耗G随参数
,
,
和
的变化。当
,
和
固定不变时,随着
的增大,G呈上升趋势。主要是因为当请求节点数增多,需要更多的节点提供服务,使得处于工作期的I类服务节点数增多,又根据假设条件
设定工作期的能耗最大,因此总能耗增加;当
,
和
固定不变时,随着
的增大,G也呈上升趋势。主要因为当I类服务节点的休假参数变大,其休假时间减少,越多的节点从休假期转为工作期或闲期,工作期和闲期的能耗要大于休假期,因此总能耗增大;当
,
和
固定不变时,随着
的增大,G呈下降趋势。I类服务节点的服务率增大,服务效率变高,更多的请求节点被服务完毕,系统中排队等待的请求节点数减少,因此处于工作期的I类服务节点数减少,总能耗降低;当
,
和
固定不变时,随着
的增大,G呈下降趋势。当服务结束的请求节点返回系统的概率增大,相当于II类服务节点的数量增多,可提供服务的节点变多,完成服务离开系统的请求节点数增多,处于工作期的I类服务节点减少影响总能耗降低。
Figure 4. Effect of
,
,
and
on the total system energy consumption G
图4.
、
、
和
对总能耗G的影响
4.2. 纳什均衡策略
现实生活中,大部分是不可观察排队,请求节点在进入系统前不知道系统中的节点数量,请求节点往往追求自身利益最大化而做出自己的行为选择,会对系统的运行产生很大的影响,同时他们的策略选择也会受到其他请求节点或服务节点的影响,在长期多方合作的非博弈过程中,就会形成纳什均衡。我们通常假设节点是风险中立的,节点获得服务后会得到回报,而在等待中需要支付费用,并假设其既不能在排队中中途退出,也不能止步后重新到达。
由于顾客的追求自身利益最大化行为往往背离整个社会的整体利益偏好,因此,本文针对P2P网络的优化问题,为了抑制节点的自私行为建立一种收费方案,使得顾客的行为和社会最优决策行为尽量保持一致,提出如下假设:
(1) 请求节点接受完一次资源传输,可获得的回报为r;
(2) 请求节点进入系统,开始资源传输的激活费用为
;
(3) 请求节点在系统中逗留等待的成本为
。
单个请求节点的净收益为
.
图5反映了当
,
,
,
,
,
,
时,请求节点的个人净收益U随着参数
,
和
的变化情况。由图可知,当
和
固定不变时,随着
的增大,U先呈上升趋势然后有下降趋势。主要是因为随着请求节点的到达率增大,请求节点容易达到批量服务数量进入系统接受服务,队列中的请求节点等待时间减小,当没有空闲的服务节点时,随着到达的请求节点数增多,请求节点的等待时间增加,而个人效益和请求节点的平均等待时间成反比,所以个人效益先增大后减小;当
和
固定不变时,随着
的增加,U呈上升趋势。主要是因为当I类服务节点的服务率增加,越多的请求节点接受完服务离开系统,请求节点等待的时间减少等待的费用减少,从而个人效益增加;当
和
固定不变时,随着
的增加,U呈上升趋势。随着请求节点返回系统提供服务的概率增加,可提供服务的节点增加,等待的请求节点减少,影响个人效益增加。由图5可看出,随着到达率的增加,个人净收益存在负值和正值,中间存在个人净收益等于0的点,即纳什均衡点,此时的到达率为纳什均衡到达率。
Figure 5. Effect of
,
and
on the net benefit U of individual requesting nodes
图5.
、
和
对个人收益U的影响
4.3. 社会最优策略
针对P2P网络社会最优策略分析,考虑每个时刻系统中节点的平均净收益,社会最优的目的是为了最大化全部节点的总收益。
假设平均社会净收益函数
.
图6反映了当
,
,
,
,
,
,
,
时,平均社会净收益
随参数
和
的变化情况。当
固定不变时,随着
的增大,
呈上升趋势。主要是因为随着I类服务节点的服务率增加,服务效率变快,平均社会收益与单个节点的个人净收益成正比,个人净收益增加,从而平均社会收益增加;当
固定不变时,随着
的增大,
也呈上升趋势。因为当请求节点的到达率增大,越多的请求节点进入系统接受服务,平均社会收益越大。该条件下最大平均社会净收益为
,此时的最优到达率为
,最优服务率为
。
Figure 6. Effect of
and
on the average social net benefit
图6.
和
对平均社会净收益
的影响
5. 结论
本文针对混合P2P网络,利用排队论的知识对系统进行建模分析,在经典排队模型的基础上引入异步单重休假、批量服务且接受完服务的请求节点可返回系统提供服务等策略,建立两类服务台且服务台数变化的M/Md/
,(
)排队模型。利用矩阵几何解方法和GI/M/1型结构矩阵,分析系统的稳态分布,进一步得到了系统各项性能指标的表达式,并结合混合P2P网络主要研究了系统不同时期的能耗随参数的变化情况。最后为了更好的研究如何提升P2P网络的性能,分析了请求节点到达率和收益之间的纳什均衡以及社会收益最优策略。通过数据分析结果可知,适当增加请求节点的到达率,提高I类节点的休假参数可以有效减少休假期以及闲期的不必要能耗,增加I类服务节点的服务率可以同时提高个人收益和社会收益。