一种基于p2p的自适应资源下载方法

文档序号:9691100阅读:667来源:国知局
一种基于p2p的自适应资源下载方法
【技术领域】
[0001]本发明涉及资源下载的技术领域,具体涉及一种基于P2P的自适应资源下载方法。
【背景技术】
[0002]近年来,P2P在互联网上得到了大量应用,同时聚集了大规模的用户群体,其能够充分利用网络边缘资源协同完成工作,使得用户能够更加快捷高效的获取所需要的应用资源。P2P资源下载的工作方式简述如下:首先资源请求者要去P2P网络中请求资源,一旦完成资源定位,即从资源节点中分段下载所需资源。需要说明的是:当资源定位后,请求节点会去各个资源节点上进行资源的分片下载,被请求者根据请求者的需求提供相应的资源。即使被请求者当前网络状况非常差,也必须提供传输,这样将会降低整体数据通信质量。
[0003]申请号为200810126223.7的中国专利申请公开了一种对等连接网络的数据调度方法和系统,其中公开了一种P2P网络下的数据调度方法,可以实现请求端根据服务端的性能进行排序并从最优的服务端请求数据,而请求端每个周期会根据服务端的性能进行排序。该专利并未给出当周期内服务端的性能出现问题时的解决方案,此外,该专利方案将下载数据分为不同的周期,每个周期结束都会向所有的服务端发起初始请求,获取各个服务端的性能数据再进行排序,这一过程会使得下载一个文件会被分成多个周期,每个周期结束后会重新建立连接,这会极大降低用户体验。

【发明内容】

[0004]为了解决上述技术问题,本发明提供了一种基于P2P的自适应资源下载方法,能够支持P2P网络环境下节点自适应选择代价优的节点进行数据通信可以充分利用资源被请求者的网络状况来主动为请求者提供下载建议,保证请求者能够得到更好的资源下载体验。
[0005]为了达到上述目的,本发明的技术方案是:一种基于P2P的自适应资源下载方法,其步骤如下:
步骤1:P2P客户端向P2P服务端请求资源;
步骤2: P2P服务端响应相应的P2P客户端,建立通信连接;
步骤3: P2P服务端利用网络状况监测模块实时监测本地的网络通信质量;
步骤4: P2P服务端周期性同其他P2P服务端进行消息交互,告知其他服务端本地的网络状况;
步骤5: P2P服务端根据自身的网络状况对P2P客户端给出通信建议,P2P客户端根据建议进行数据通信。
[0006]所述P2P客户端向P2P服务端请求资源的方法是:P2P服务端与P2P客户端通过标准P2P协议中的Socket建立数据会话,开始传送数据。
[0007]所述P2P服务端设有网络状况监测模块和信令管理模块,网络状况监测统计模块和信令管理模块以LKM的形式动态加载在P2P服务端操作系统内核态下,会伴随操作系统自启动。
[0008]所述网络状况监测模块用于P2P服务端监测本地网络状况,并进行统计维护;网络状况监测模块包括网络监测单元,网络监测单元用于P2P服务端监测本地网络状况;所述信令管理模块信令管理模块用于P2P服务端周期性的交互各自的网络状况,实现各个服务端交互本地的网络通信代价,并根据本地网络代价对请求者发送建议消息;信令管理模块包括信令管理单元,信令管理单元用于P2P服务端通信过程中的消息维护。
[0009]所述网络状况监测模块通过统计本地的网络带宽、丢包率、抖动、延迟、负载监测本地的网络通信质量,统计结果以本地文件的形式进行存放。
[0010]所述信令管理模块利用标准的P2P协议进行周期性的信息交互实现P2P服务端各自网络状况的交互。
[0011]所述步骤5中,当P2P服务端监测本地通信性能没有出现问题时,继续与P2P客户端进行数据通信;当P2P服务端监测本地通信性能出现性能问题时,通过P2P协议的消息将重新连接的P2P服务端的信息,发送给请求资源的P2P客户端。
[0012]所述P2P服务端的信息包括服务端的节点ID和IP地址的信息,所述服务端的节点ID和IP地址填充在OPT1N选项字段中。
[0013]本发明通过对各个服务端进行性能监测,且各个P2P服务端会周期性的交互各自的通信代价,当一个正在工作的P2P服务端出现问题时,会自适应的向P2P请求端推荐代价更优的P2P服务端进行重连,如果原始的P2P服务端工作状态一直平稳,整个的数据过程也不会出现重新连接的情况,且可以保证请求端一直与代价最优的P2P服务端进行通信连接。本发明能够支持P2P网络环境下节点自适应选择代价优的节点进行数据通信可以充分利用资源被请求者的网络状况来主动为请求者提供下载建议,保证请求者能够得到更好的资源下载体验。
【附图说明】
[0014]图1为本发明的流程图。
[0015]图2为基于P2P的自适应资源下载方法的示意图。
【具体实施方式】
[0016]为了使本发明所要解决的技术问题、技术方案及有益效果更加清楚明白,以下结合实施例,对本发明进行详细的说明。应当说明的是,此处所描述的具体实施例仅用以解释本发明,并不用于限定本发明。
[0017]一种基于P2P的自适应资源下载方法,其步骤如下:
步骤1:P2P客户端向P2P服务端请求资源。
[0018]P2P客户端根据标准的P2P协议,将请求的资源ID发给P2P服务端。
[0019]步骤2:P2P服务端响应相应的P2P客户端,建立通信连接。
[0020]P2P服务端收到P2P客户端的资源请求消息后,根据请求的资源ID判断本地是否存储有该资源,如果有,则接受客户端的资源请求,并建立通信连接;否则,发出响应消息建议客户端去其他的P2P服务端上下载资源。P2P服务端与P2P客户端通过标准的P2P协议中的Socket建立数据会话,开始传送数据。
[0021]步骤3:P2P服务端利用网络状况监测模块实时监测本地的网络通信质量。
[0022]P2P服务端内均设有网络状况监测模块,网络状况监测模块用于P2P服务端监测本地网络状况,并进行统计维护。网络状况监测模块通过统计本地的网络带宽、丢包率、抖动、延迟、负载,统计结果可以以本地文件的形式进行存放,由于全部是文本类信息,所以不会过多占用服务端的存储空间。网络状况监测模块包括网络监测单元,网络监测单元用于P2P服务端监测本地网络状况。网络状况监测统计模块以LKM(Loadable Kernel Modu 1 e)的形式动态加载在P2P服务端操作系统内核态下,会伴随操作系统自启动,但是不需要改动原始的服务器操作系统。网络状况监测统计模块一旦被加载后,就处于一直工作的状态,实时的对经过P2P服务端的数据包进行监测统计,从而监测本地的网络通信质量。
[0023]每个P2P服务端通过网络状况监测块进行加载,由于P2P服务端操作系统本身可以获取带宽、丢包率、抖动等性能指标,网络状况监测块通过调用P2P服务端操作系统提供的API接口可直接获取上述参数。需要说明的是,可以设定周期进行获取,比如1秒获取一次,获取后在本地
当前第1页1 2 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1