发明内容
本发明的目的在于提供分布式索引服务器架构下的P2P流量优化方法和系统,其能够实现流量优化并提高P2P的下载性能,同时能够解决单索引服务器架构下的性能瓶颈和单点失效问题,具有较好的可扩展性。
为实现本发明的目的而提供的一种分布式索引服务器架构下的P2P流量优化方法,所述方法,包括下列步骤:
步骤100.结合P4P思想,互联网服务提供商将网络划分区域,并部署策略服务器和定位服务器,P2P内容提供商在各所述区域中部署索引服务器;
步骤200.各所述区域中的终端通过所述定位服务器和策略服务器,定位自身所属的区域和本地索引服务器;
步骤300.各所述区域中的终端拥有新资源时将所述新资源的信息上报本地索引服务器,本地索引服务器维护由所述新资源的信息建立的索引信息,并根据所述索引信息借助所述策略服务器获取策略矩阵信息;
步骤400.终端从种子服务器下载种子文件,并根据种子文件中的资源哈希值向本地索引服务器发送请求索引信息,本地索引服务器根据所述策略服务器的策略矩阵,按比例向所述终端返回索引信息;
步骤500.所述终端根据索引服务器返回的索引信息与相应的终端进行连接并进行资源下载。
所述步骤100,包括下列步骤:
步骤110.将P2P网络划分成若干个区域,每个区域对应一个AS号和PID号;
步骤120,P2P内容提供商在各个区域内部署索引服务器,索引服务器之间构成DHT网络,索引服务器对其区域内的终端提供索引信息;
步骤130.互联网服务提供商部署策略服务器,来维护各AS号和PID号与对应区域中的索引服务器间的映射关系,所述策略服务器通过向索引服务器提供策略矩阵来指导索引服务器对终端的索引服务。
所述步骤200,包括下列步骤:
步骤210.终端向所述定位服务器请求获取所述终端对应区域的AS号和PID号;
步骤220.根据所述AS号和PID号,终端向所述策略服务器发送查询请求,查询自身所属的本地索引服务器的IP地址和端口信息;
步骤230.所述终端存储所述AS号和PID号以及所述索引服务器的IP地址和端口信息到本地文件。
所述终端将所属区域和所属索引服务器的信息存储在本地,下次启动可直接获得,除非当前索引服务器不可用,否则不重复获取索引服务器信息。
所述步骤300,包括下列步骤:
步骤S310,终端在向本地索引服务器请求索引信息的同时,定期向本地索引服务器发送新资源的信息,本地索引服务器记录并维护上述新资源的信息;
步骤S320,各个本地索引服务器会定期与策略服务器交互,策略服务器依据从各索引服务器搜集的索引信息,以及互联网服务提供商提供的网络链路信息以及路由策略来计算和更新策略矩阵,并定期将策略矩阵下发到各索引服务器;策略服务器同时维护各AS号PID号与各本地索引服务器间的映射关系。
所述新资源的信息,是指<资源哈希值,本终端信息>,其中本终端信息,包括终端身份ID标识、IP地址、端口号、各个资源文件的下载进度。
所述步骤400,包括下列步骤:
步骤410.终端从种子服务器下载种子文件,其中包含资源哈希值,以及关于资源的其他描述信息;
步骤420.终端根据所述资源哈希值以及终端自身期望返回的终端数目,请求索引服务器,以获得相应的索引信息;
步骤430.本地索引服务器收到请求后,根据期望返回的终端数目和策略矩阵记录的各个区域的AS号和PID号的百分比,计算各个区域内能够返回的终端数目;
步骤440.本地索引服务器通过与其他索引服务器交互,查询并判断各区域内能够返回的终端数目是否满足期望返回的终端数目,若是,则按比例将本地区域和其他区域内的索引信息返回给终端;否则执行步骤450;
步骤450.判断请求次数是否超过预设值,若是,则返回所述能够返回的终端数目;否则返回步骤420。
所述步骤500,包括下列步骤:
步骤510.所述终端根据索引服务器返回的包含终端端口和IP地址的索引信息,与相应的终端进行连接并进行资源下载;
步骤520.当终端与其他终端的连接数不足时,本地终端将再次向本地索引服务器请求索引信息,执行步骤420-460;
步骤530.当索引信息请求失败时,本地终端将定期重试请求,直至达到一个请求次数的上限,则放弃本次资源下载操作。
所述策略矩阵,是由策略服务器依据从各索引服务器搜集的终端分布信息以及互联网服务提供商提供的链路信息以及路由策略信息,计算得到各个不同区域间终端的理想比例关系。
所述索引信息,是指<资源哈希值,终端列表>信息对。
为实现本发明的目的还提供一种分布式索引服务器架构下的P2P流量优化系统,所述系统,包括:定位服务器、多个索引服务器、策略服务器和多个P2P终端,其中:
所述定位服务器由互联网服务提供商部署在经过区域划分的网络中,各所述区域中的终端通过所述定位服务器定位终端所在的区域;
所述索引服务器由P2P内容提供商部署在各区域中,用于维护本地终端上报的由新资源的信息建立的索引信息;并根据本地终端发送的请求索引信息以及策略服务器的策略矩阵信息,按比例向本地终端返回索引信息;
所述策略服务器由互联网服务提供商部署在经过区域划分的网络中,定期与各索引服务器交互,获取所述索引信息,更新策略矩阵信息并定期将策略矩阵下发到各索引服务器;
所述P2P终端根据索引服务器返回的索引信息与相应的终端进行连接并进行资源下载。
所述定位服务器,包括:
定位信息存储模块,用于存储所述P2P终端对应区域的AS号和PID号;
所述索引服务器之间构成DHT网络,所述索引服务器,包括:
索引信息维护模块,用于记录并维护由所述P2P终端定期发送的新资源信息组成的索引信息;
计算模块,用于根据本地终端发送的请求索引信息以及策略服务器的策略矩阵信息,计算各个区域内应该返回的终端数目;
判断模块,用于判断各区域内能够返回的终端数目是否满足期望返回的终端数目,以及判断请求次数是否超过预设值;
索引信息返回模块,用于根据所有其他区域的索引信息,并连同本区域内的索引信息一起返回给P2P终端。
所述策略服务器,包括:
映射关系维护模块,用来维护各AS号和PID号与对应区域中的索引服务器间的映射关系;
策略矩阵存储模块,用于存储指导索引服务器对终端的索引服务的策略矩阵;
策略矩阵计算模块,用于根据所述P2P终端的分布情况、网络链路状况以及路由策略,实时维护和更新策略矩阵。
所述P2P终端,包括:
文件下载模块,用于根据索引服务器返回的包含终端端口和IP地址的索引信息,与相应的终端进行连接并进行资源下载;
索引信息获取模块,用于根据种子文件的哈希值以及P2P终端自身期望返回的终端数目,请求索引服务器,以获得相应的索引信息;
终端判断模块,用于判断与终端连接的其他终端的数目是否足够,以及请求索引信息次数是否达到上限;
定位模块,用于向所述定位服务器请求获取所述终端对应区域的AS号和PID号,再根据所述AS号和PID号,向所述策略服务器发送查询请求,查询自身所属的本地索引服务器的IP地址和端口信息,并存储所述AS号和PID号以及所述索引服务器的IP地址和端口信息到本地文件。
所述新资源的信息,是指<资源哈希值,本终端信息>,其中本终端信息,包括终端身份ID标识、IP地址、端口号、各个资源文件的下载进度。
所述策略矩阵,是由策略服务器依据从各索引服务器搜集的终端分布信息以及互联网服务提供商提供的链路状况以及路由策略信息,计算得到各个不同区域间终端的理想比例关系。
所述索引信息,是指<资源哈希值,终端列表>信息对。
本发明的有益效果在于:
1.本发明借助ISP提供的服务器,更加有效地对流量进行区域化管理,与其他基于测量的技术相比,一方面避免了终端自身测量带来的额外开销,另一方面,由于ISP直接实时提供底层网络链路和路由策略等信息,结果更准确有效;
2.本发明借鉴P4P中的策略服务器思想,按照一定合理比例分配流量,优先从同一AS同一PID内选择Peer,然后再从同一AS不同PID内选择,最后再考虑不同AS内的Peer,这样一定程度上既限制了骨干流量,又避免了本地资源缺乏时服务质量不高的情况,有效地将流量优化和性能进行了有机结合;
3.本发明与现有单索引服务器架构的P2P系统相比,避免了单点失效和避免系统瓶颈,能将索引服务压力分摊到各个本地索引服务器中,有效地提高了系统的可扩展性;
4.本发明通过将P2P流量按比例地合理分布,保证系统弹性,即使在终端上下线频繁的网络环境中,也能保证终端的下载速度和服务质量。
具体实施方式
为了使本发明的目的、技术方案及优点更加清楚明白,以下结合附图及实施例,对本发明的分布式索引服务器架构下的P2P流量优化方法和系统进行进一步详细说明。应当理解,此处所描述的具体实施例仅仅用以解释本发明,并不用于限定本发明。
本发明的分布式索引服务器架构下的P2P流量优化方法和系统,是基于P4P的思想,采用分布式索引服务器的架构,借助ISP的服务器对P2P中Peer选择进行指导,优化了P2P流量分布,减少骨干网流量,实现流量优化并提高P2P的下载性能,同时能够解决单索引服务器架构下的性能瓶颈和单点失效问题,具有较好的可扩展性。
下面结合上述目标详细介绍本发明的分布式索引服务器架构下的P2P流量优化方法,图1是本发明的分布式索引服务器架构下的P2P流量优化方法的步骤流程图,如图1所示,所述方法,包括下列步骤:
步骤100.结合P4P思想,互联网服务提供商(Internet Service Provider,ISP)将网络划分区域,并部署策略服务器和定位服务器,P2P内容提供商在各区域中部署索引服务器;
借助ISP提供的服务器,更加有效地对流量进行区域化管理,与其他基于测量的技术相比,一方面避免了终端自身测量带来的额外开销,另一方面,由于ISP直接实时提供底层拓扑和路由策略等信息,结果更准确有效。
图2是本发明中结合P4P思想划分区域并部署策略服务器、定位服务器和索引服务器的步骤流程图,如图2所示,所述步骤100,包括下列步骤:
步骤110.将P2P网络划分成若干个区域,每个区域对应一个AS号和PID号;
步骤120,P2P内容提供商在各个区域内部署索引服务器,索引服务器之间构成DHT网络,索引服务器对其区域内的终端提供索引信息;
与现有单索引服务器架构的P2P系统相比,分布式多索引服务器架构避免了单点失效和避免系统瓶颈,能将索引服务压力分摊到各个本地索引服务器中,有效地提高了系统的可扩展性。
步骤130.互联网服务提供商(ISP)部署策略服务器,来维护各AS号和PID号与对应区域中的索引服务器间的映射关系,所述策略服务器通过向索引服务器提供策略矩阵来指导索引服务器对终端的索引服务;
其中,所述策略矩阵,是由策略服务器依据从各索引服务器搜集的终端分布信息以及ISP提供的链路信息(终端数目、拥塞情况、远近情况)以及路由策略信息,计算得到各个不同区域(由AS号、PID号决定的区域)间peer的理想比例关系。
假设有AS1、AS2、AS3三个自治域,假设现有域内终端数目为:3∶2∶1,拥塞状况倒数的比例关系是3∶2∶1(越大越不拥塞),并假设根据其他域与AS1域的距离比例关系,得到的针对AS1的选取终端数目的比例为4∶3∶2。此时,计算AS1在策略矩阵中对应行的内容,方法是将上述比例加权相加,为简便起见,假设权重为1,则比例为:(3+3+4)∶(2+2+3)∶(1+1+2),即10∶7∶4。该比例表明,如果AS1内某终端选择peer列表,则为从本域、从AS2以及从AS3选取理想的比例关系为10∶7∶4。
其中终端数目信息可以通过索引服务器搜集,并上报策略服务器获得;拥塞状况、距离信息等可由ISP自身获得,并通知策略服务器。策略服务器收到上述信息后,从而定期重新计算测量矩阵。
图3是本发明中策略矩阵的具体结构图,如图3所示,本发明中的策略矩阵就是各个行列的矩阵,例如图中第一行表示:如果某个向索引服务器请求索引信息的终端在AS1/PID1区域内,则依据策略矩阵信息,索引服务器向它提供的peer的数目应为:从AS1/PID1内提供70%,从AS1/PID2内提供10%,从AS2/PID1内提供20%等等。步骤200.各所述区域中的终端通过所述定位服务器和策略服务器,定位自身所属的区域和本地索引服务器;
图4是本发明中终端定位自身所属的区域和本地索引服务器的步骤流程图,如图4所示,所述步骤200,包括下列步骤:
步骤210.终端向所述定位服务器请求获取所述终端对应区域的AS号和PID号;
步骤220.根据所述AS号和PID号,终端向所述策略服务器发送查询请求,查询自身所属的本地索引服务器的IP地址和端口信息;
步骤230.所述终端存储所述AS号和PID号以及所述索引服务器的IP地址和端口信息到本地文件。
较佳地,所述终端将所属区域和所属索引服务器的信息存储在本地,下次启动可直接获得,除非当前索引服务器不可用,否则不重复获取索引服务器信息。步骤300.各所述区域中的终端拥有新资源时将所述新资源的信息上报本地索引服务器,本地索引服务器维护由所述新资源的信息建立的索引信息,并根据所述索引信息借助所述策略服务器得到策略矩阵信息;
所述新资源的信息具体是指:<资源哈希值,本终端信息(ID号、IP地址、端口、下载进度等)>信息对。本地索引服务器维护由所有终端上报的信息对。
其中,所述索引信息,是指可提供资源下载的Peer列表,所述Peer列表中包含Peer端口和IP地址。
图5是本发明中本地索引服务器获得策略矩阵的步骤流程图,如图5所示,所述步骤300,包括下列步骤:
步骤S310,终端在向本地索引服务器请求索引信息(即<资源哈希值,Peer列表>信息对)的同时,定期向本地索引服务器发送新资源的信息<资源哈希值,本终端信息(ID号、IP地址、端口、下载进度等)>,本地索引服务器记录并维护上述新资源的信息;
所述信息的组织形式与上面是统一的,都是信息对,内容不同。
其中,所述本终端信息包括节点身份ID标识、IP地址、端口号、各个资源文件的下载进度等;索引服务器同时记录并维护上述的信息对。
步骤S320,各个本地索引服务器会定期与策略服务器交互,策略服务器依据从各索引服务器搜集的包含终端分布情况的索引信息,以及ISP提供的网络链路信息(如底层拓扑、链路拥塞、延迟等)以及路由策略来计算和更新策略矩阵,并定期将策略矩阵下发到各索引服务器;策略服务器同时维护各AS号PID号与各本地索引服务器间的映射关系;步骤400.终端从种子服务器下载种子文件,并根据种子文件中的资源哈希值向本地索引服务器请求索引信息,本地索引服务器根据所述策略服务器的策略矩阵,按比例向所述终端返回索引信息;
其中,所述索引信息,是指<资源哈希值,Peer列表>信息对。其中包含Peer的ID号、IP地址、端口等信息。
本发明借鉴P4P中的策略服务器思想,按照一定合理比例分配流量,优先从同一AS同一PID内选择Peer,然后再从同一AS不同PID内选择,最后再考虑不同AS内的Peer,这样一定程度上既限制了骨干流量,又避免了本地资源缺乏时服务质量不高的情况,有效地将流量优化和性能进行了有机结合;
图6是本发明中本地索引服务器根据策略矩阵返回索引信息的步骤流程图,如图6所示,所述步骤400,包括下列步骤:
步骤410.终端从种子服务器(一般为web站点)上下载种子文件,其中包含资源哈希值(可唯一标识资源),以及关于资源的其他一些描述信息;
步骤420.终端根据所述资源哈希值以及终端自身期望返回的终端(Peer)数目N,请求索引服务器,以获得相应的索引信息;
步骤430.本地索引服务器收到请求后,根据期望返回的终端数目N和策略矩阵记录的各个区域的AS号和PID号的百分比,计算各个区域内期望返回的终端数目;
如图3所示,假设N=100(即终端期望得到100个peer供下载资源),则按照策略矩阵的终端Peer1应向AS1/PID1内请求100*70%=70个Peer,同理从AS1/PID2、AS2/PID1内各取10个。如果是本区域AS1/PID1内的Peer则直接从本地获得,对于其他区域(如AS1/PID2)内的Peer,索引服务器借助策略服务器来获得AS1/PID1区域内的索引服务器信息(IP地址、端口),并向其请求数目为10的Peer列表信息。最终将本地以及其他域内全部的Peer列表信息返回给终端,指导其进行资源下载;
步骤440.本地索引服务器通过DHT网络与其他索引服务器交互,查询并判断自身区域以及其他各区域内能够返回的终端数目是否满足期望返回的终端数目,若是,则按比例将本地区域和其他区域内的索引信息返回给终端;否则,执行步骤450;
步骤450.判断请求次数是否超过预设值,若是,则返回所述能够返回的终端数目;否则返回步骤420;
步骤500.所述终端根据本地索引服务器返回的索引信息与相应的终端进行连接并进行资源下载;
图7是本发明中终端根据索引信息与相应的终端进行连接并进行资源下载的步骤流程图,如图7所示,所述步骤500,包括下列步骤:
步骤510.所述终端根据索引服务器返回的包含Peer端口和IP地址的索引信息,与相应的Peer进行连接并进行资源下载;
所述包含Peer端口和IP地址的索引信息将用于本地终端与这些终端连接,并进行其后的数据下载过程;
步骤520.当终端与其他终端的连接数不足时,本地终端将再次向本地索引服务器请求索引信息,执行步骤420-460;
由于有些其他终端当下载完后,可能会退出程序或关闭机器,就可能会造成连接数不足,因此,需要重新获取索引信息。
步骤530.当索引信息请求失败时,本地终端将定期重试请求,直至达到一个请求次数的上限,则放弃本次资源下载操作。
相应于本发明的一种分布式索引服务器架构下的P2P流量优化方法,还提供一种分布式索引服务器架构下的P2P流量优化系统。
图8是本发明的分布式索引服务器架构下的P2P流量优化系统中各装置布局图,图9是本发明的分布式索引服务器架构下的P2P流量优化系统的结构示意图,如图8和图9所示,所述系统,包括:定位服务器1、多个索引服务器2、策略服务器3和多个P2P终端4,其中:
所述定位服务器1由互联网服务提供商部署在经过区域划分的网络中,各所述区域中的P2P终端4通过所述定位服务器1定位P2P终端所在的区域;
所述索引服务器2由P2P内容提供商部署在各区域中,用于维护本地P2P终端上报的由新资源的信息建立的索引信息;并根据本地P2P终端发送的请求索引信息以及策略服务器3的策略矩阵信息,按比例向本地P2P终端返回索引信息;
所述策略服务器3由互联网服务提供商部署在经过区域划分的网络中,定期与各索引服务器2交互,获取所述索引信息,更新策略矩阵信息并定期将策略矩阵下发到各索引服务器2;
所述P2P终端4根据索引服务器2返回的索引信息与相应的P2P终端进行连接并进行资源下载。
所述定位服务器1,包括:
定位信息存储模块11,用于存储所述P2P终端4对应区域的AS号和PID号。
所述索引服务器2之间构成DHT网络,所述索引服务器2,包括:
索引信息维护模块21,用于记录并维护由所述P2P终端定期发送的新资源信息组成的索引信息;
计算模块22,用于根据本地P2P终端发送的请求索引信息以及策略服务器3的策略矩阵信息,计算各个区域内能够返回的P2P终端数目;
判断模块23,用于判断各区域内能够返回的P2P终端数目是否满足期望返回的P2P终端数目,以及判断请求次数是否超过预设值;
索引信息返回模块24,用于根据所有其他区域的索引信息,并连同本区域内的索引信息一起返回给P2P终端。
其中,所述策略服务器3,包括:
映射关系维护模块31,用来维护各AS号和PID号与对应区域中的索引服务器2间的映射关系;
策略矩阵存储模块32,用于存储指导索引服务器2对P2P终端4的索引服务的策略矩阵。
策略矩阵计算模块33,用于根据所述P2P终端4的分布情况、网络链路状况以及路由策略,实时维护和更新策略矩阵。
其具体实施方式可认为由网络运营商来决定,不作为我们讨论的重点。
所述P2P终端4,包括:
文件下载模块41,用于根据索引服务器2返回的包含终端端口和IP地址的索引信息,与相应的P2P终端进行连接并进行资源下载;
索引信息获取模块42,用于根据种子文件的哈希值以及P2P终端自身期望返回的终端数目,请求本地索引服务器2以获得相应的索引信息;
终端判断模块43,用于判断与P2P终端连接的其他P2P终端的数目是否足够,以及请求索引信息次数是否达到上限;
定位模块44,用于向所述定位服务器1请求获取所述终端对应区域的AS号和PID号,再根据所述AS号和PID号,向所述策略服务器3发送查询请求,查询自身所属的本地索引服务器2的IP地址和端口信息,并存储所述AS号和PID号以及所述索引服务器2的IP地址和端口信息到本地文件。
在本发明的一种分布式索引服务器架构下的P2P流量优化系统中,结合P4P思想,互联网服务提供商将网络划分区域,并部署策略服务器和定位服务器,P2P内容提供商在各所述区域中部署索引服务器;各所述区域中的P2P终端的定位模块,通过向所述定位服务器的定位信息存储模块请求获取所述P2P终端对应区域的AS号和PID号,再根据所述AS号和PID号,向所述策略服务器的映射关系维护模块发送查询请求,查询自身所属的本地索引服务器的IP地址和端口信息,并存储所述AS号和PID号以及所述索引服务器的IP地址和端口信息到本地文件;当各所述区域中的P2P终端拥有新资源时将所述新资源的信息上报本地索引服务器,本地索引服务器的索引信息维护模块维护由所述新资源的信息建立的索引信息,并根据所述索引信息借助所述策略服务器的策略矩阵存储模块获取策略矩阵信息;当P2P终端从种子服务器下载种子文件后,根据种子文件中的资源哈希值向本地索引服务器发送请求索引信息,本地索引服务器根据所述策略服务器的策略矩阵存储模块中存储的策略矩阵,有计算模块计算后由索引信息返回模块按比例向所述P2P终端返回索引信息;所述P2P终端根据索引信息返回模块返回的索引信息通过文件下载模块与相应的P2P终端进行连接并进行资源下载。
本发明的有益效果在于:
1.本发明借助ISP提供的服务器,更加有效地对流量进行区域化管理,与其他基于测量的技术相比,一方面避免了终端自身测量带来的额外开销,另一方面,由于ISP直接实时提供底层网络链路和路由策略等信息,结果更准确有效;
2.本发明借鉴P4P中的策略服务器思想,按照一定合理比例分配流量,优先从同一AS同一PID内选择Peer,然后再从同一AS不同PID内选择,最后再考虑不同AS内的Peer,这样一定程度上既限制了骨干流量,又避免了本地资源缺乏时服务质量不高的情况,有效地将流量优化和性能进行了有机结合;
3.本发明与现有单索引服务器架构的P2P系统相比,避免了单点失效和避免系统瓶颈,能将索引服务压力分摊到各个本地索引服务器中,有效地提高了系统的可扩展性;
4.本发明通过将P2P流量按比例地合理分布,保证系统弹性,即使在终端上下线频繁的网络环境中,也能保证终端的下载速度和服务质量。
通过结合附图对本发明具体实施例的描述,本发明的其它方面及特征对本领域的技术人员而言是显而易见的。
以上对本发明的具体实施例进行了描述和说明,这些实施例应被认为其只是示例性的,并不用于对本发明进行限制,本发明应根据所附的权利要求进行解释。