解决p2p应用问题的方法

文档序号:7630323阅读:179来源:国知局
专利名称:解决p2p应用问题的方法
技术领域
本发明涉及互联网、P2P、网关设备等领域,尤其涉及解决P2P应用问题的一套方法。
背景技术
P2P是英文Peer to Peer的缩写,是点到点的意思。P2P应用是网络应用的一种,就是在网络上的任意一台计算机同时充当接受服务的客户端和提供服务的服务器端的双重角色。P2P应用相对原来的CS(Client-Server,客户端-服务器)结构主要解决两个问题服务器性能问题和服务器带宽问题。随着客户端的数量的增加,影响客户端效率的瓶颈是服务器的性能和带宽,而不是客户端自己的性能和带宽。使用P2P技术,可以分散服务器的性能和带宽需求,是网络应用不再成为瓶颈。
以P2P下载为例,见附图1,客户端90从索引服务器10处得到信息所需要下载的文件位于客户端20上,于是客户端90从客户端20上下载该文件,并随时通知索引服务器10它的下载进度,这时,如果客户端100又要下载同样的文件,它就会从索引服务器10上得到信息它所希望下载的文件在客户端20和90上都有,这样客户端100就会同时从这两台计算机上下载(当然是不同的部分)。可以想象,当客户端需要下载一个文件时发现网上有多台计算机拥有该文件,将下载任务分到这多台计算机上,这样就同时解决了服务器性能问题和服务器带宽问题,下载速度就会提高。
随着P2P应用的发展,也带来了负面的影响。负面影响是由于一些实际存在的问题导致的。
首先,由于大量的用户存在于网关(使用NAT的路由器、防火墙等)后面,而网关不允许互联网对内部网络的访问,这样外部用户就无法请求这些内部用户提供服务,反过来说,这些内部用户成为P2P应用的不公平者,只接受服务、不提供服务。目前内网计算机可以通过主动发起提供服务请求的方法给互联网上的非内部计算机提供服务,但无法做到内部网计算机给另一个内部网计算机提供服务。
其次,由于这些内部用户无法提供服务,就导致了即使是在同一内网的用户,为了取得相同的数据,也必须单独地从互联网上其他服务提供者处取得数据,这样就无效地占用了这个内网的出口的带宽(同样的数据请求多遍)。同时还导致了互联网上服务提供者负荷的加重。
第三,P2P服务需要数据拥有者开机才能提供服务,如果数据拥有者下载完成后就关机,那么它就无法继续提供服务(只是在它下载的同时提供了已下载部分的服务),这样也降低了P2P的应用效果。
P2P应用的问题导致了对互联网应用的负面影响,进而导致电信运营商、网关管理员对P2P应用产生反感和抵触,经常有宽带社区的管理员封杀P2P应用,甚至曾有传闻电信运营商要封杀P2P应用。这样的态势影响了P2P应用的发展。
解决内部网P2P节点无法对外提供服务的问题,目前有一种方案是使用uPnP协议,这样可以动态地生成服务端口。但这个方案存在若干问题一是大部分网关设备没有提供或没有开启uPnP协议,二是这个方案没有解决带宽无效占用的问题,三是这个方案没有解决内部共享的问题,所有共享要通过网关设备。

发明内容
本发明就是要解决上述P2P应用中存在的三个主要问题内网用户无法对外提供服务,占用大量网络带宽,P2P节点关机导致数量不足。本发明的方法包括三部分让网关设备也作为P2P的一个节点,两种P2P应用内部共享的方法。
内部网络的计算机要连接互联网,必然要经过一个网关设备,这个网关设备一般是路由器或防火墙。一般的网关设备是没有硬盘这种大容量存储部件的,我们将在网关设备中增加硬盘,并增加必须的应用程序。内部计算机在请求P2P服务时,网关可以发现它要请求的数据,先行从所有存在该请求数据的计算机上请求该数据,并通知索引服务器,内部计算机的P2P请求被网关设备截收,网关设备冒充索引服务器向内部计算机应答你请求的数据只有我网关设备有。这样内部计算机就只会从网关设备上取得数据。当同一内部网络中,同时又有另一台计算机请求相同的数据时,它也将从网关设备上取得数据(下面要提到,它还将从先前已取得数据的计算机上取得数据)。不管内部有多少台计算机请求数据,出口信道上只有网关设备请求P2P服务这一个请求设备,从而避免了内部计算机重复请求、无效占用带宽的问题。
该网关设备成为P2P一个应用节点后,不仅可以给内部计算机提供数据,也可以给互联网上其他计算机提供数据,也就是说增加了互联网上可提供服务的计算机的数量,分散了性能和带宽要求。
网关设备将同时担任内部索引服务器的角色,当内部第二台计算机请求相同的数据时,将通知该计算机从网关和第一台计算机上取得数据,以降低对网关设备的性能和带宽要求。这是第一种情况的内部共享。
目前的P2P应用中,索引服务器只知道与它连接的P2P节点的IP(可能是网关的IP),不知道该节点的真正IP(内部保留IP),因此我们的解决方法为每个P2P节点应同时提供自己的真正IP和到索引服务器的路由信息,这样索引服务器的数据就包括网络出口IP、网络内部计算机IP和从客户机到索引服务器的整个路由,当一个P2P节点在索引服务器上发现和自己网络出口IP相同的计算机时,就知道是和自己在同一内部网中,可以通过网络内部计算机IP向该机发出P2P请求,这样实现了第二种情况的内部共享。
当一个内部网络没有使用我们改进的网关设备、而里面的计算机使用了第二种情况的内部共享时,也可以大大降低整个网络出口的带宽需求(虽然不如上述网关处理方法降低彻底),因为它直接发现了离它最近、带宽最大(内部网络一般是100M以上的连接)的服务提供者。
由于网关设备是永久开机的,因此避免了一般用户计算机关机的问题,经它下载的数据将一直保存在网关设备的硬盘上,一直对互联网和内部用户提供服务,直到硬盘充满、该数据成为最早的或最长时间无人请求的数据被丢掉为止。
由于上述解决方案会大大降低出口带宽占用,因此网关管理员会很乐意接受,这样就在互联网上增加了许多永久开机的P2P节点,进一步分散了对服务提供者性能和带宽的要求。这样的良性循环可以是P2P应用走出受运营商、网关管理员排斥的境地,走向良性发展的方向。
本发明中不讨论前面提到的已有技术内部节点主动发起服务请求给外部节点共享和使用uPnP协议的解决方案,这两个方案可以局部解决问题,和本发明的方案一起可以全面解决P2P应用中存在的问题。
经过这样改进的P2P应用环境将最大限度地发挥P2P应用的优势而将负面影响降到最低。


图1是一般P2P的应用示意图。利用现有的P2P技术,两个内部网中的所有P2P节点可以接受外部节点20的服务,同时使用内部网计算机主动发起服务请求的方法,所有内部P2P节点也可以给外部P2P节点提供服务,但内部网P2P节点之间无法提供服务,例如P2P节点50和60之间无法共享数据、P2P节点50和70之间也无法共享数据。这将会导致所有节点都请求P2P节点20的服务时,对节点20的负荷增加、带宽占用都比较大,同时内部网出口带宽也被无效占用。
图2是本发明解决方法的示意图,网关作为P2P的一个节点可向互联网和内部网提供数据,同时内部网间也共享数据。
图3是本发明解决方法的处理步骤流程图,具体流程解释见“处理步骤”。
具体实施例方式
具体实施方式
上,我们将从网关设备、索引服务器、P2P节点软件三处着手改进整个P2P应用环境。
在网关设备上,需要1)增加硬盘用于保存P2P数据2)增加P2P协议截收和代理程序,截收内部计算机的P2P请求,向索引服务器请求P2P服务,从P2P服务提供机上取得数据,冒充索引服务器向内部计算机提供仅包括网关和内部计算机的索引数据,让请求的内部计算机从网关设备和内部其他计算机上取得数据。
在P2P节点软件中,在向索引服务器申请服务时,需要同时提供自己的真实IP和路由跟踪信息。之所以要提供路由跟踪信息,是考虑从内部计算机到互联网存在多次地址转换(NAT)的可能,这时其他计算机可以根据路由跟踪信息判断是否有计算机与自己处于同一内部网或者服务提供方处于自己内部网外面。
在索引服务器上,要记录每台P2P节点计算机的IP地址(可能是网关的IP)、真实IP地址(可能是内部保留IP)甚至从P2P节点计算机到索引服务器的路由跟踪信息,并在其他P2P节点请求服务时提供这些完整的信息,让P2P节点判断网络拓扑结构、向所有能请求的服务提供者请求服务。
参考下面的处理步骤可以看出,实际上本发明的解决方法为P2P节点向索引服务器提供路由跟踪数据和真实IP,使其他计算机能够得到该P2P节点的详细拓扑位置,尽可能利用可利用的P2P节点;网关设备作为一个截收代理设备,在不同内网之间无法共享数据时,充当一个中间人的角色,这样不仅可以实现不同内网间的数据共享,也可以降低网络流量节省带宽。
处理步骤现在分三种情况说明处理步骤。
第一种情况为内部其他计算机和其他内部网都不存在要请求的数据,只有互联网上的P2P节点存在第1步要请求数据的P2P节点50向索引服务器10发出P2P索引请求,实际被网关30截收;第2步网关30以自己的名义向索引服务器10发出P2P索引请求;第3步索引服务器10应答网关30索引数据,告诉它P2P节点20拥有它需要的数据;第4步网关30向P2P节点20发起数据请求;第5步P2P节点20应答网关30它所需要的数据;第6步网关30以修改过的数据应答P2P节点50,告诉它它所需要的数据只有网关30有第7步P2P节点50向网关30发起数据请求;第8步网关30将从P2P节点20处得到并缓存的数据提供给P2P节点50。
第二种情况为如果P2P节点60曾经请求过相同的数据,网关30和P2P节点60可能存在部分P2P节点50需要的数据第1步要请求数据的P2P节点50向索引服务器10发出P2P索引请求,实际被网关30截收;第2步网关30以自己的名义向索引服务器10发出P2P索引请求;第3步索引服务器10应答网关30索引数据,告诉它P2P节点20和网关30都拥有它需要的数据;第4步网关30向P2P节点20发起数据请求;第5步P2P节点20应答网关30它所需要的数据;第6步网关30以修改过的数据应答P2P节点50,告诉它网关30和P2P节点60有它所需要的数据第7步P2P节点50向网关30发起数据请求;第8步网关30将从P2P节点20处得到并缓存的数据提供给P2P节点50。
第9步实际和第7步是同时的,P2P节点50向P2P节点60发起数据请求;第10步实际和第8步是同时的,P2P节点60将自己缓存的数据提供给P2P节点50。
第三种情况为,如果另一个内部网(P2P节点70所在的内部网)有计算机曾经请求过相同的数据,则在网关40上也可能存在部分数据。
第1步要请求数据的P2P节点50向索引服务器10发出P2P索引请求,实际被网关30截收;第2步网关30以自己的名义向索引服务器10发出P2P索引请求;
第3步索引服务器10应答网关30索引数据,告诉它P2P节点20、网关30和网关40都拥有它需要的数据;第4步网关30向P2P节点20发起数据请求;第5步P2P节点20应答网关30它所需要的数据;第6步网关30以修改过的数据应答P2P节点50,告诉它网关30和P2P节点60有它所需要的数据第7步P2P节点50向网关30发起数据请求;第8步网关30将从P2P节点20处得到并缓存的数据提供给P2P节点50。
第9步实际和第7步是同时的,P2P节点50向P2P节点60发起数据请求;第10步实际和第8步是同时的,P2P节点60将自己缓存的数据提供给P2P节点50。
第9步实际和第4步是同时的,网关30向网关40发起数据请求;第10步实际和第5步是同时的,网关40将自己缓存的数据提供给网关30。
当然,以上所述仅是本发明的优选实施方式,应当指出,对于本领域的普通技术人员来说,在不脱离本发明技术原理的前提下,还可以做出若干改进和润饰,这些改进和润饰也应视为本发明的保护范围。
权利要求
1.一种解决P2P应用问题的方法,其特征在于网关设备截收内部计算机发出的P2P索引请求,以网关设备自身的名义向P2P索引服务器发出请求并依据索引服务器应答的数据请求P2P数据,使网关设备自己成为一个P2P节点和对内的索引服务器,可以对互联网和内部计算机提供服务。
2.一种解决P2P应用问题的方法,其特征在于P2P节点软件向索引服务器发送请求和拥有数据的信息时,要提供自己的真实IP和路由跟踪信息,加上索引服务器当时连接的IP地址,形成了整个从P2P节点到索引服务器的路由结构。
3.一种解决P2P应用问题的方法,其特征在于索引服务器保存P2P节点到自己的详细路由信息,并在其他P2P节点请求服务时提供,使请求服务的P2P节点能分析出所有保存有它请求数据、能给自己提供服务的P2P节点。
4.根据权利要求1所述解决P2P应用问题的方法,其特征在于在普通网关设备基础上增加硬盘作为保存数据的介质。
5.根据权利要求1所述解决P2P应用问题的方法,其特征在于在网关设备中增加P2P截收代理软件和索引信息修改软件,网关设备将冒充索引服务器向内部计算机响应索引数据,或修改索引服务器的响应数据,使外部的P2P节点不出现在响应中,只有内部计算机和网关设备才出现在索引数据中。
全文摘要
本发明解决P2P应用问题的方法,主要为了解决P2P应用中存在的三个主要问题(1)P2P应用占用了大量的网络带宽,因此经常被电信运营商和网关管理员禁止;(2)大量的内网用户无法对外共享资源,导致P2P应用的优势无法尽数发挥;(3)许多计算机请求P2P服务完成后会很快关机,导致P2P服务提供者数量降低。本发明使用网关截收代理的方法和两种内网共享的方法解决上述3个问题。将网关设备改进为一个P2P代理节点,由于网关设备一般是永久开机,因此解决了上述第(3)个问题。网关设备作为整个内部网的代理对外提供服务,这样就解决了上述(2)的问题。网关设备向内部网计算机提供服务,实现内部共享,这样就没有冗余数据充塞出口带宽,降低了网络带宽,解决了第(1)个问题。改进了P2P节点的软件和索引服务器的软件间的握手通信数据,取得了内部网间共享数据的可能。
文档编号H04L12/66GK1901540SQ20051020076
公开日2007年1月24日 申请日期2005年12月2日 优先权日2005年12月2日
发明者陈勇 申请人:陈勇
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1