发明内容
本发明实施例提出一种对等连接网络的数据调度方法,提高下载性能。
本发明实施例还提出一种对等连接网络的数据调度系统,提高下载性能。
本发明实施例的技术方案如下:
一种对等连接(P2P)网络的数据调度方法,该方法包括:
本地节点向各服务节点发送初始数据请求,各服务节点向该本地节点返回初始数据;
针对每个服务节点,所述本地节点记录所述初始数据请求的发送时间T
s、服务节点向该本地节点返回的第一个初始数据包到达该本地节点的时间T
R 1、服务节点向该本地节点返回的最后一个初始数据包到达该本地节点的时间R
R 2 和所述初始数据请求的请求数据量P;
针对每个服务节点,分别计算该服务节点的D和B,其中D=T
R 1-T
s,
计算出每个服务节点的Tag,其中第i个服务节点的Tag
i为:
其中α、β分别为预先设置的权重,α+β=1;B
i为第i个服务节点的B,D
i为第i个服务节点的D;
N为服务节点的数量;
根据各服务节点Tag的大小对各服务节点进行排序,并根据排序结果再次向服务节点请求数据。
一种P2P网络的数据调度系统,该系统包括本地节点和至少两个服务节点,其中:
本地节点,用于针对每个服务节点记录所述初始数据请求的发送时间T
s、服务节点向该本地节点返回的第一个初始数据包到达该本地节点的时间T
R 1、服务节点向该本地节点返回的最后一个初始数据包到达该本地节点的时间T
R 2和所述初始数据请求的请求数据量P;针对每个服务节点,分别计算该服务节点的D和B,其中
再计算出每个服务节点的Tag,其中第i个服务节点的Tag
i为:
其中α、β分别为预先设置的权重,α+β=1;B
i为第i个服务节点的B,D
i为第i个服务节点的D,
N为服务节点的数量;然后再根据各服务节点Tag的大小对各服务节点进行排序,并根据排序结果再次向服务节点请求数据;
服务节点,用于向本地节点提供数据。
从上述技术方案中可以看出,在本发明实施例中,本地节点向各服务节点发送初始数据请求,各服务节点向该本地节点返回初始数据,本地节点再根据各服务节点传送初始数据的性能指标分别计算各服务节点的性能参数,然后再按照计算出的性能参数对各服务节点进行排序,并根据排序结果再次向服务节点请求数据。由此可见,应用本发明实施例以后,可以根据各服务节点性能的不同有针对性的发送数据请求,从性能好的服务节点下载更多的数据,减少对性能低的服务节点的数据请求,对服务节点进行了更合理的应用,从而可以提高下载能力。
而且,本地节点实现了对各个服务节点性能的实时监测,并且利用监测的情况来控制当前的下载调度行为,保证了充分有效地利用当前服务节点,并且能够自适应网络状况的变化。
具体实施方式
为使本发明的目的、技术方案和优点表达得更加清楚明白,下面结合附图及具体实施例对本发明再作进一步详细的说明。
首先,由于不同的服务节点从属于不同的网络拓扑,因此每个服务节点与本地节点之间的网络链接也是不同的,并且会体现出不同的服务性能。因此,高效的数据下载调度技术中应该能够适应当前服务节点的服务状况,根据各服务节点性能的不同有针对性的发送数据请求,从性能好的服务节点下载更多的数据,减少对性能低的服务节点的数据请求,以最终提高整体下载能力。
网络流量是实时变化的,每个服务节点的服务性能也随着网络流量的变化而变化。数据下载调度方法还应该具有自适应性,能够根据当前网络流量的变化监测到服务节点性能的变化,从而对数据下载调度进行相应的调整。
在各种应用中,当有多个服务节点存在时,本地节点需要有一个好的方法来实现数据下载调度。
本发明实施例提供了一种基于实时网络流量监测的数据调度方法。该方法能够实时监测各服务节点的服务能力,并根据各服务节点的性能进行数据请求调度。
图1为根据本发明实施例的P2P网络的数据调度方法流程示意图。
如图1所示,该方法包括:
步骤101:本地节点向各服务节点发送初始数据请求,各服务节点向该本地节点返回初始数据。
步骤102:本地节点根据各服务节点传送所述初始数据的性能指标分别计算各服务节点的性能参数,按照计算出的性能参数对各服务节点进行排序,并根据排序结果再次向服务节点请求数据。
其中,针对每个服务节点,本地节点可以记录初始数据请求的发送时间Ts和服务节点向该本地节点返回的第一个初始数据包到达该本地节点的时间TR 1;然后本地节点针对每个服务节点,计算D=TR 1-Ts;然后再根据各服务节点D的大小对各服务节点进行排序。
可选地,针对每个服务节点,本地节点可以记录初始数据请求的发送时间Ts、服务节点向该本地节点返回的最后一个初始数据包到达该本地节点的时间TR 2和初始数据请求的请求数据量P;然后本地节点针对每个服务节点,计算 再根据各服务节点B的大小对各服务节点进行排序。
优选地,可以将上述两种排序方法进行结合。具体包括:
针对每个服务节点,本地节点记录所述初始数据请求的发送时间TS、服务节点向该本地节点返回的第一个初始数据包到达该本地节点的时间TR 1、服务节点向该本地节点返回的最后一个初始数据包到达该本地节点的时间TR 2和所述初始数据请求的请求数据量P;
针对每个服务节点,分别计算该服务节点的D和B,其中D=TR 1-Ts,
计算出每个服务节点的Tag,其中第i个服务节点的Tagi为:
其中α、β分别为预先设置的权重,α+β=1;Bi为第i个服务节点的B,Di为第i个服务节点的D; N为服务节点的数量;
然后,再根据各服务节点Tag的大小对各服务节点进行排序。
本地节点向性能参数较好(即排序靠前)的服务节点请求较多的数据,向性能参数较差(即排序靠后)的服务节点请求较少的数据或者不请求数据。
下面详细描述本发明的一个示范性实例:
在该实例中,本地节点向服务节点发送初始数据请求时,首先记录初始数据请求发送的时间、初始数据请求的请求数据量,在接收数据时记录第一个数据包到达本地节点的时间和最后一个数据包到达本地节点的时间。
然后,以第一个数据包到达本地节点的时间减去初始数据请求发送的时间作为参数一;并用本次请求的数据量除以最后一个数据包到达本地节点的时间与初始数据请求发送的时间的差作为参数二;最后将参数一和参数二通过一定的权值分配整合起来,作为该服务节点当前的服务性能参数。这样,在一个请求周期之后,每个服务节点都将获得实时的服务性能参数。本地节点可以根据每个服务节点的实时性能参数来进行数据下载调度。
该实施例具体包括:
首先:本地节点在初次从节点服务器查询到种子(Peer)之后,并不知道这些种子性能的差异。因此,本地节点根据采用平均分配的原则发送初始数据请求。比如,假如现在有6个请求,并且有6个种子,则向每个种子发送一个数据请求,并且平均分配下载数据。
每个服务节点会有一个性能参数。图2为根据本发明实施例的P2P网络的数据调度示意图。如图2所示,该性能参数的计算过程如下:本地节点在向服务节点发送一次初始数据请求时,记录当前的请求数据量P(KB),记 录初始数据请求的发送时间Ts(s),各个服务结点在接收到初始数据请求之后会立刻将相应数据发送回来。本地节点在接收到所请求数据的第一个数据包时,记录接收时间TR 1(s),本地节点在接收到最后一个数据包时记录接收时间TR 2(s)。再根据公式(1)和公式(2)计算参数B和参数D的值,参数B放映了两个节点之间的数据传输的流量状况,参数D反映了两个节点之间数据传输的延迟状况。
D=TR 1-Ts (2)
假设本地节点当前有N个服务节点可用,则记录这N个服务节点的参数B和参数D为两个集合:{Bi|i=1,...,N}和{Di|i=1,...,N}。
记
定义每个服务节点当前的性能参数为Tag,该参数根据公式(3)可计算得出,其中α+β=1,α和β分别为预先设定的权重:
在完成计算各个服务节点的Tag之后,本地节点根据当前的下载情况,判断数据是否已经全部下载完成,如果没有新的数据需要下载,则结束本流程,如果还有新的数据需要进行下载,本地节点根据计算得到的各个服务节点的Tag对各个服务节点进行排序。并且利用Tag的值来确定向各个服务节点请求下载的量。
假设在这一轮新的下载请求中,总的请求数据量是P,则对于第i个服务节点,记本地节点向其发送的下载请求数据量Pi,Pi根据公式(4)可计算得出。
Pi=P*Tagi (4)
至此,本地节点实现了对各个服务节点性能的实时监测,并且利用监测的情况来控制当前的下载调度行为,从而保证了充分有效地利用当前服务节点,并且能够自适应网络状况的变化。
基于上述分析,本发明实施例还提出了一种P2P网络的数据调度系统。
图2为根据本发明实施例的P2P网络的数据调度系统结构示意图。
如图2所示,该系统包括本地节点301和至少两个服务节点302,其中:
本地节点301,用于向各服务节点302发送初始数据请求,并根据各服务节点302传送所述初始数据的性能指标分别计算各服务节点302的性能参数,按照计算出的性能参数对各服务节点302进行排序,并根据排序结果再次向服务节点302请求数据;
服务节点302,用于向本地节点301提供数据。
其中,在具体执行中,本地节点301可以针对每个服务节点记录所述初始数据请求的发送时间Ts和服务节点向该本地节点返回的第一个初始数据包到达该本地节点的时间TR 1。本地节点301并针对每个服务节点,计算D=TR 1-Ts,然后再并根据各服务节点D的大小对各服务节点进行排序。
可选地,本地节点301可以针对每个服务节点记录所述初始数据请求的发送时间Ts、服务节点向该本地节点返回的最后一个初始数据包到达该本地节点的时间TR 2和所述初始数据请求的请求数据量P。本地节点301再针对每个服务节点,计算 根据各服务节点B的大小对各服务节点进行排序。
优选地,本地节点301可以针对每个服务节点记录所述初始数据请求的发送时间Ts、服务节点向该本地节点返回的第一个初始数据包到达该本地节点的时间TR 1、服务节点向该本地节点返回的最后一个初始数据包到达该本地节点的时间TR 2和所述初始数据请求的请求数据量P。本地节点301再针对每个服务节点,分别计算该服务节点的D和B,其中D=TR 1-Ts, 本地节点301再计算出每个服务节点的Tag,其中第i个服务节点的Tagi为:
其中α、β分别为预先设置的权重,α+β=1;Bi为第i个服务节点的B,Di为第i个服务节点的D, N为服务节点的数量。
然后本地节点301再根据各服务节点Tag的大小对各服务节点302进行排序。
该系统优选进一步包括种子服务器303。
种子服务器303,用于向本地节点301提供服务节点名单;
本地节点301,用于向种子服务器303发送种子请求,并向种子服务器303所提供的服务节点名单中的各服务节点302发送请求相同初始数据请求数据量的初始数据请求。
从上述技术方案中可以看出,在本发明实施例中,本地节点向各服务节点发送初始数据请求,各服务节点向该本地节点返回初始数据,本地节点再根据各服务节点传送所述初始数据的性能指标分别计算各服务节点的性能参数,按照计算出的性能参数对各服务节点进行排序,并根据排序结果再次向服务节点请求数据。由此可见,应用本发明实施例以后,可以根据各服务节点性能的不同有针对性的发送数据请求,从性能好的服务节点下载更多的数据,减少对性能低的服务节点的数据请求,对服务节点进行了更合理的应用,从而可以提高下载能力。
而且,本地节点实现了对各个服务节点性能的实时监测,并且利用监测的情况来控制当前的下载调度行为,从而保证了充分有效地利用当前服务节点,并且能够自适应网络状况的变化。
以上所述,仅为本发明的较佳实施例而已,并非用于限定本发明的保护范围。凡在本发明的精神和原则之内,所作的任何修改、等同替换、改进等,均应包含在本发明的保护范围之内。