点到点p2p内容共享的方法及系统的制作方法

文档序号:7648281阅读:161来源:国知局
专利名称:点到点p2p内容共享的方法及系统的制作方法
技术领域
本发明属于互联网技术领域,尤其涉及互联网中内容共享的技术。
背景技术
传统的互联网采用客户机/服务器方式,使用网站上集中的服务器,但互连网的发展趋势将由集中式走向分布式,集中的服务器将变成分布式的,如P2P(Peer to Peer点对点)技术。
P2P技术将许多用户结合成一个网络,共享其中的带宽,共同处理其中的信息。与传统的客户机/服务器模式不同,P2P工作方式中,每一个客户终端既是客户机又是服务器。
P2P共享下载是目前比较通用的下载模式,全球每天都有数以千万计的网民用BT(Bit Torrent比特洪流)软件下载整部电影、MP3和大型软件等,其数据流量已占全球因特网总数据流量的70%以上。在共享下载的流程中,下载同一个文件的众多用户中的每一个用户终端只需要下载文件的一个片段,然后互相交换,最终每个用户都得到完整的文件。
目前的P2P共享下载方式中,BT的应用较为广泛。BT的网络模型如图1所示,包括放置后缀为.torrent文件的服务器Webserver(网络服务器),负责用户相互发现的服务器Tracker(追踪者),普通用户(User)。
BT共享下载的实现过程具体包括如下的步骤1、希望将内容共享出去的用户将后缀为.torrent文件发布在普通的Webserver上,该文件包含共享文件的长度、名字、哈希信息以及Tracker的URL(全球统一资源标识符)等;2、希望得到共享内容的用户从普通网站Webserver下载.torrent文件得到Tracker的URL;3、用户(包括希望将内容共享出去的用户和希望得到共享内容的用户)和Tracker进行通信,报告自己在线并从Tracker得到其它peers(指希望将内容共享出去的用户和希望得到共享内容的用户)的列表;4、拥有完整文件的Peer称为种子,希望将文件共享出去的用户将文件分成很多片,以适合分片共享;5、各个Peers相互联系进行文件共享,每个Peer都从其它的Peer申请自己想要的分片,同时也向其它向自己发出申请的Peer分发自己已有的分片;6、当所有的文件内容下载完成后,退出整个共享流程。
从上面的BT共享流程可以看出,用于BT共享的P2P网络是一种典型的“人人为我,我为人人”的网络,充分共享了各个用户的资源。但是在这个网络里,正是由于真正的“人人平等”,没有人愿意“义务”地多做一些额外的工作,使得这种网络具有一定的局限性,主要有以下两点1、当两个用户都在NAT(Network Address Transition网络地址转换)后面的时候,用户的地址是私网地址,用户的私网地址从外部是无法直接访问的,想要直接访问私网中的设备,需要采用STUN(Simple Traversal of UDP ThroughNetwork Address Translators UDP对NAT的简单穿越方式)或者TURN(Traversal Using Relay NAT通过Relay方式穿越NAT)的机制,目前的BT网络中没有相应的单元协调完成这项工作,无法实现P2P的直接访问;2、当网络本身是一种非对称网络的时候,整体的共享访问速率受其中最小的速率的限制,如ADSL(非对称数字用户线)网络中,典型的下行速率8M,上行速率512K,单纯从某一个用户来看,由于可能有其它的多个用户同时为其提供上传服务,所以即使每个用户的上传速率不够快,多个加起来以后也可以满足一个用户的高速下载,但是如果考虑整个网络的情况,在完全P2P的情况下,上传的总速率必然和下载的总速率相等,所以即使下行带宽很宽,由于受上行速率的限制,用户平均的下载速率也只能是网络上传的平均速率。

发明内容
本发明实施例的目的在于提供一种点到点P2P内容共享的方法及系统,旨在解决现有技术中存在的私网用户不能实现P2P共享以及P2P共享访问速率受上行或者下行速率中较小速率限制的问题。
为实现上述目的,本发明实施例采用如下的技术方案一种点到点P2P内容共享的方法,所述的方法包括如下步骤a、超级节点接收到普通用户节点申请分片的请求后,检查自身是否存储有所述的普通用户申请的分片,如果有,则将存储的分片上传,供所述的普通用户节点共享,否则向其它超级节点或者普通用户节点申请所述普通用户请求的分片,然后将获取的所述分片上传,供所述的普通用户节点共享。
本发明实施例还提供了一种P2P内容共享的系统,所述的系统包括Tracker和用户节点,所述的系统还包括超级节点,所述的超级节点在自身没有下载需求时根据普通用户节点申请分片的请求将自身存储的所述分片或者从其它超级节点或者普通用户节点获取的所述分片上传,供所述的普通用户节点共享。
本发明实施例还提供了另一种点到点P2P内容共享的方法,所述的方法包括如下步骤a、私网用户通过超级节点分配的公网IP地址和端口号或者以超级节点为代理,将自身拥有的分片上传供其它用户节点共享或者从其它用户节点下载分片。
本发明实施例还提供了一种P2P内容共享的系统,所述的系统包括Tracker和用户节点,所述的系统还包括超级节点,所述的超级节点用来协助私网用户穿越NAT,实现P2P传输。
本发明实施例克服现有技术的不足,采用将具备一定条件的用户作为超级节点,由这些超级节点为私网用户穿越NAT起到协调中转的作用,此外,超级节点在自身没有下载需求时,义务的提供上传服务,通过超级节点提供的上传服务弥补上传速率过小的不足,使上传速率达到下载的速率要求的技术方案,可以协助在NAT后面的私网用户穿越NAT,实现P2P传输;同时,解决了在上下行速率不对称网络中整体的共享速率受最小速率限制的问题,使得带宽要求较高的实时P2P商业应用成为可能。


图1是现有技术中BT网络架构图;图2是本发明实施例BT网络架构图;图3是本发明实施例所述的超级节点提供上传服务的流程图;图4是本发明实施例所述的超级节点帮助私网用户穿越NAT的流程图。
具体实施例方式
本发明实施例提供的技术方案是在现有的BT网络架构中,将具备一定条件的用户作为超级节点,由这些超级节点充当STUN Server(STUN服务器)或者TURN Server(TURN服务器)的角色,为私网用户穿越NAT起到协调中转的作用,此外,超级节点在自身没有下载需求时,义务的提供上传服务,通过超级节点提供的上传服务弥补上传速率过小的不足,使上传速率达到下载的速率要求。
为了使本发明实施例的目的、技术方案及优点更加清楚明白,以下结合附图及实施例,对本发明进行进一步详细说明。应当理解,此处所描述的具体实施例仅仅用以解释本发明,并不用于限定本发明。
本发明实施例的网络架构图如图2所示,在现有的BT网络架构中引入了超级节点(Super Node),Super Node可以由满足如下条件的普通用户节点兼任具有公网IP地址,可以被其它用户直接访问;具有足够的处理能力;具有足够的存储空间,用来存储共享的内容;具有足够的带宽。
超级节点除了遵循普通用户节点的所有流程以外,当它向Tracker进行注册的时候要注明自己是超级节点,这样Tracker和其它的用户节点进行信息交互的时候就可以通知哪些节点是超级节点。
因为超级节点没有下载需求,不关心下载的文件具体是什么,不会主动到webserver上去下载.torrent文件,所以Tracker的发现机制需要做相应的修改,不再是从.torrent文件得到,而是在每个用户中事先预置Tracker的IP地址或域名。普通用户节点向Tracker注册成为超级节点的具体流程如下1、用户通过预置的Tracker IP地址或域名找到Tracker;2、用户从Tracker获取超级节点列表;3、超级节点中集成了STUN Server的功能,普通用户中集成STUN Client(STUN客户端)的功能,STUN Client与STUN Server通信,确定用户节点自己是公网IP地址还是私网IP地址,具体来说,STUN CLIENT会首先向STUNSERVER发送探测报文,报文净荷(除IP报头以外)中会包含有自己的IP地址,当报文经过NAT时,报头的IP地址被换成了NAT的公网地址,但净荷中的IP没有改变,所以当STUN SERVER收到探测报文时比较报文头的源IP和净荷中的IP是否相同就知道STUN CLIENT是否经过了NAT,然后发回给STUN CLIENT响应报文,报文净荷中带有其公网地址,STUN CLIENT通过比较响应报文的报头目的IP和净荷IP也就知道自己是否经过了NAT了。
如果STUN CLIENT在NAT后面,STUN SERVER就会通知其它用户该STUN CLIENT经过NAT变换以后的IP和端口号,其它用户就可以访问该STUN CLIENT了。
4、如果用户发现自己是公网IP地址,检查自己的处理能力、存储空间、带宽等,看是否满足超级节点的条件,如果满足则向Tracker注册自己为超级节点。
当符合条件的普通用户完成超级节点的注册后,超级节点在BT网络架构中完成两项功能一是在自身不下载文件时提供上传服务,二是帮助私网地址的用户穿越NAT。
其中,超级节点在自身不下载文件时提供上传服务的流程如图3所示
1、超级节点接收到普通用户的索要分片的请求;2、超级节点分析普通用户来的索要分片的要求,检查自己是否拥有这些分片,如果自己不拥有这些分片,转步骤3,否则转步骤5;3、超级节点随机选取普通用户索要的分片中的一些分片向其它节点(超级节点或者普通用户节点)申请;4、超级节点从其它节点获取分片,将获取的分片暂存在自己的存储空间;5、超级节点将存储的分片上传,共享给向自己申请这些分片的用户节点。
在上述的流程中,最重要的一点是超级节点并不是下载所有的分片,而是随机选择下载部分分片,这样做是为了避免超级节点和其它用户节点争抢带宽。超级节点虽然拥有的只是部分分片,如果超级节点的数量足够多,则所有超级节点加起来将拥有所有的分片,每个超级节点反复地上传共享自己拥有的部分,这样就有效弥补了网络中上传带宽不足的问题。
超级节点帮助只具有私网地址的用户穿越NAT的具体流程如图4所示,具体包括如下步骤1、当普通用户节点发现自己是私网地址时,通过和超级节点的STUNServer交互信息;2、普通用户节点通过交互的信息确定自己的NAT类型是锥形NAT还是对称NAT,如果是锥形NAT,则转步骤3,如果是对称NAT,转步骤4;3、如果是锥形NAT,普通用户节点从超级节点的STUN Server获取自己的公网地址及端口号,并以公网的IP地址及端口号向Tracker进行注册,这样其它的用户节点就可以通过该用户公布的公网IP地址及端口号访问到该节点,并直接进行P2P传输;3、如果是对称NAT,用户节点选择一个或多个超级节点,并向其注册,请求所选择的超级节点作为代理向Tracker去注册,超级节点注册时用的是自己的公网地址,后续普通用户节点无论是上传和下载都通过超级节点代理转发,超级节点作为NAT穿越的TURN Server。
如上所述,本发明实施例采用将具备一定条件的用户作为超级节点,由这些超级节点充当STUN Server(STUN服务器)或者TURN Server(TURN服务器)的角色,为私网用户穿越NAT起到协调中转的作用,此外,超级节点在自身没有下载需求时,义务的提供上传服务,通过超级节点提供的上传服务弥补上传速率过小的不足,使上传速率达到下载的速率要求的技术方案,可以协助在NAT后面的私网用户穿越NAT,实现P2P传输;同时,解决了在上下行速率不对称网络中整体的共享速率受最小速率限制的问题,使得带宽要求较高的实时P2P商业应用成为可能。
以上所述仅为本发明的较佳实施例而已,并不用以限制本发明,凡在本发明的精神和原则之内所作的任何修改、等同替换和改进等,均应包含在本发明的保护范围之内。
权利要求
1.一种点到点P2P内容共享的方法,其特征在于,所述的方法包括如下步骤a、超级节点接收到普通用户节点申请分片的请求后,检查自身是否存储有所述的普通用户申请的分片,如果有,则将存储的分片上传,供所述的普通用户节点共享,否则向其它超级节点或者普通用户节点申请所述普通用户请求的分片,然后将获取的所述分片上传,供所述的普通用户节点共享。
2.根据权利要求1所述的方法,其特征在于,其中步骤a之前还包括a0、具有公网IP地址的用户节点向Tracker注册为所述超级节点。
3.根据权利要求1所述的方法,其特征在于,其中步骤a具体包括a1、所述的普通用户节点从Tracker获取超级节点列表,向所述的超级节点发送申请所述分片的请求,超级节点接收到普通用户节点申请所述分片的请求后,检查自身是否存储有所述的普通用户申请的分片,如果有,则将存储的分片上传,供所述的普通用户节点共享,否则随机选取所述的普通用户申请分片中的一部分向其它超级节点或者普通用户节点申请,然后将获取的所述的一部分分片暂存后上传,供所述的普通用户节点共享。
4.一种P2P内容共享的系统,所述的系统包括Tracker和用户节点,其特征在于,所述的系统还包括超级节点,所述的超级节点在自身没有下载需求时根据普通用户节点申请分片的请求将自身存储的所述分片或者从其它超级节点或者普通用户节点获取的所述分片上传,供所述的普通用户节点共享。
5.根据权利要求4所述的系统,其特征在于,所述的超级节点具有公网IP地址的用户节点。
6.一种点到点P2P内容共享的方法,其特征在于,所述的方法包括如下步骤a、私网用户通过超级节点分配的公网IP地址和端口号或者以超级节点为代理,将自身拥有的分片上传供其它用户节点共享或者从其它用户节点下载分片。
7.根据权利要求6所述的方法,其特征在于,其中步骤a之前还包括a0、具有公网IP地址的用户节点向Tracker注册为所述超级节点,所述的私网用户与所述的超级节点交互,确定其为锥形网络地址转换NAT,从所述的超级节点获取所述公网IP地址和端口号,然后以所述的公网IP地址和端口号向所述的Tracker注册。
8.根据权利要求7所述的方法,其特征在于,其中步骤a具体包括a1、所述的私网用户通过所述从所述超级节点获取的所述公网IP地址和端口号,将自身拥有的分片上传供其它用户节点共享或者从其它用户节点下载分片。
9.根据权利要求6所述的方法,其特征在于,其中步骤a之前还包括a0、具有公网IP地址的用户节点向Tracker注册为所述超级节点,所述的私网用户与所述的超级节点交互,确定其为对称NAT,所述的私网用户请求所述的超级节点作为代理向所述的Tracker注册,所述的超级节点以自身的公网IP地址所述的Tracker注册。
10.根据权利要求9所述的方法,其特征在于,其中步骤a具体包括a1、所述的私网用户通过所述超级节点代理转发,将自身拥有的分片上传供其它用户节点共享或者从其它用户节点下载分片。
11.一种P2P内容共享的系统,所述的系统包括Tracker和用户节点,其特征在于,所述的系统还包括超级节点,所述的超级节点用来协助私网用户穿越NAT,实现P2P传输。
12.根据权利要求11所述的系统,其特征在于,所述的超级节点还包括UDP对NAT的简单穿越方式服务器STUN server功能模块,用来向锥形NAT私网用户分配公网IP地址和端口号,所述的私网用户以所述的公网IP地址和端口号向Tracker注册。
13.根据权利要求11所述的系统,其特征在于,所述的超级节点还包括通过Relay方式穿越NAT服务器TURN server功能模块,用来作为所述私网用户的代理向Tracker注册。
全文摘要
本发明提供了一种点到点P2P内容共享的方法,所述的方法包括如下步骤超级节点接收到普通用户节点申请分片的请求后,检查自身是否存储有所述的普通用户申请的分片,如果有,则将存储的分片上传,供所述的普通用户节点共享,否则向其它超级节点或者普通用户节点申请所述普通用户请求的分片,然后将获取的所述分片上传,供所述的普通用户节点共享。本发明提供的技术方案可以协助在NAT后面的私网用户穿越NAT,实现P2P传输;同时,解决了在上下行速率不对称网络中整体的共享速率受最小速率限制的问题,使得带宽要求较高的实时P2P商业应用成为可能。
文档编号H04L29/12GK101026543SQ20071007373
公开日2007年8月29日 申请日期2007年3月28日 优先权日2007年3月28日
发明者胡峻岭, 涂永峰 申请人:华为技术有限公司
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1