CN103281382A - 一种基于p2p的文件传输方法和节点 - Google Patents

一种基于p2p的文件传输方法和节点 Download PDF

Info

Publication number
CN103281382A
CN103281382A CN2013102131544A CN201310213154A CN103281382A CN 103281382 A CN103281382 A CN 103281382A CN 2013102131544 A CN2013102131544 A CN 2013102131544A CN 201310213154 A CN201310213154 A CN 201310213154A CN 103281382 A CN103281382 A CN 103281382A
Authority
CN
China
Prior art keywords
file
information
data
node
bitmap information
Prior art date
Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
Granted
Application number
CN2013102131544A
Other languages
English (en)
Other versions
CN103281382B (zh
Inventor
熊菲
张士波
王峰
杨敬宇
阙宏宇
姚键
潘柏宇
卢述奇
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Alibaba China Co Ltd
Original Assignee
1Verge Internet Technology Beijing Co Ltd
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by 1Verge Internet Technology Beijing Co Ltd filed Critical 1Verge Internet Technology Beijing Co Ltd
Priority to CN201310213154.4A priority Critical patent/CN103281382B/zh
Publication of CN103281382A publication Critical patent/CN103281382A/zh
Application granted granted Critical
Publication of CN103281382B publication Critical patent/CN103281382B/zh
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Images

Landscapes

  • Information Transfer Between Computers (AREA)

Abstract

本发明公开了基于p2p的文件传输方法和节点,包括:请求节点向登陆服务器请求文件可用节点信息;接收服务器返回的文件基本信息和能提供下载服务的可用节点信息;根据所述文件数据分片chunk1和文件大小构建与文件传输数据块chunk2相对应的第二Bitmap信息;根据所述第二Bitmap信息与相应的邻居种子节点进行数据传输;所述第一Bitmap信息和第二Bitmap信息是基于二进制bit位来标示文件中基于chunk1和chunk2的拥有分布状态而形成的Bitmap信息。本发明具有peer之间交换数据量小的优点。

Description

一种基于p2p的文件传输方法和节点
技术领域
本发明属于互联网数据传输领域,涉及一种基于p2p的文件传输方法和节点。 
背景技术
近年来,互联网飞速发展,人们对网络服务的要求不断提高,其中文件传输共享\流媒体服务等得到广泛的应用,原本单一C/S模式,使得CDN服务器在文件传输共享等方面存在宽传输压力大、负载过重并且浪费太多优质资源的情况。但是随着pc终端运算、存储能力不断加强,网络带宽不断提高,使得pc具备了较高性能,不但能够充当客户端获取服务,同时也能充当服务器提供服务。这样既可以减少CDN服务器下载压力降低整个***的运营成本,也使网络空闲带宽资源得到充分利用使得整个互联网能够负载均衡。 
常见p2p文件传输,一般采用xml等较为复杂的格式来标识文件分布状态,这导致peer之间交换数据过大,带来流量浪费。同时还存在文件传输控制信息比重较大,导致文件数据传输效率低。 
发明内容
本发明所要解决的技术问题是提供一种降低在p2p文件传输中,基于xml标识文件分布状态而导致peer之间交换数据过大,带来流量浪费的缺点,为此,提供了一种减少流量浪费,提高传输效率的文件传输方法,此外,还公开了一种基于上述文件传输方法的节点。 
本发明解决上述技术问题所采取的技术方案如下: 
一种基于p2p的文件传输方法,包括: 
请求节点向登陆服务器请求文件可用节点信息,该请求信息携带待传输文件的文件ID信息; 
接收服务器返回的文件基本信息和能提供下载服务的可用节点信息, 
所述文件基本信息包括文件大小,文件数据分片chunk1大小,所述可用节点信息包括邻居种子节点peer id、peer地址信息、该种子节点基于文件数据分片chunk1的第一位图Bitmap信息; 
根据所述文件数据分片chunk1和文件大小构建与文件传输数据块chunk2相对应的第二Bitmap信息; 
根据所述第二Bitmap信息与相应的邻居种子节点进行数据传输; 
其中,所述第一Bitmap信息和第二Bitmap信息是基于二进制bit位来标示文件中基于chunk1和chunk2的拥有分布状态而形成的Bitmap信息。 
进一步地,优选的方法是,根据所述第二Bitmap信息与相应的邻居种子节点进行数据传输,包括: 
与邻居种子节点进行通信并请求邻居种子节点基于文件传输数据块chunk2的第三Bitmap信息; 
接收返回的第三Bitmap信息,根据第三Bitmap信息向邻居种子节点请求基于文件传输数据块的文件传输,在成功后更新第二Bitmap信息。 
进一步地,优选的方法是,所述第三Bitmap信息是基于二进制bit位来标示文件中基于chunk2的拥有分布状态并形成的Bitmap信息。 
进一步地,优选的方法是,所述文件数据分片的大小为文件传输数据块的整数倍。 
进一步地,优选的方法是,根据第三Bitmap信息向邻居种子节点请求基于文件传输数据块的文件传输,包括: 
请求节点在请求中携带请求要下载的文件传输数据块在文件中的文件起始地址,文件终止地址、文件传输数据块chunk2的大小; 
接收邻居种子节点返回的连续推送的推送数据块的起始地址、终止地址以及数据块内容;接受到推送数据块内容后,根据相应的文件起始地址、终止地址和数据块内容组合文件。 
进一步地,优选的方法是,基于数据能否正常传输和速度对提供下载的邻居种子节点的提供服务能力进行评估打分; 
并在p2p视频实时播放时,向评分较高的邻居种子节点或者直接从内容分发网络服务器CDN上请求相应的空白数据块数据。 
一种基于p2p的文件传输节点,包括: 
信息收发单元,用于向登陆服务器请求文件可用节点信息, 
该请求信息携带待传输文件的文件ID信息; 
接收服务器返回的文件基本信息和可用节点信息, 
所述文件基本信息包括文件大小,文件数据分片chunk1大小,所述可用节点信息包括邻居种子节点peer id、peer地址信息、该种子节点基于文件数据分片chunk1的第一位图Bitmap信息; 
数据块变更单元,用于根据所述文件数据分片chunk1和文件大小构建与文件传输数据块chunk2相对应的第二Bitmap信息; 
数据传输单元,用于根据所述第二Bitmap信息与相应的邻居种子节点进行数据传输; 
其中,所述第一Bitmap信息和第二Bitmap信息是基于二进制bit位来标示文件中基于chunk1和chunk2的拥有分布状态而形成的Bitmap信息。 
进一步地,优选的结构是,所述数据传输单元,用于根据所述第二Bitmap信息与相应的邻居种子节点进行数据传输,包括: 
与邻居种子节点进行通信并请求邻居种子节点基于文件传输数据块chunk2的第三Bitmap信息, 
接收返回的第三Bitmap信息,根据第三Bitmap信息向邻居种子节点请求基于文件传输数据块的文件传输,在成功后更新第二Bitmap信息。 
进一步地,优选的结构是,所述第三Bitmap信息是基于二进制bit位来标示文件中基于chunk2的拥有分布状态并形成的Bitmap信息。 
进一步地,优选的结构是,所述文件数据分片的大小为文件传输数据块的整数倍。 
进一步地,优选的结构是,所述数据传输单元,用于根据第三Bitmap信息向邻居种子节点请求基于文件传输数据块的文件传输,包括: 
请求节点在请求中携带请求要下载的文件传输数据块在文件中的文件起始地址,文件终止地址、文件传输数据块chunk2的大小; 
接收邻居种子节点返回的连续推送的推送数据块的起始地址、终止地址以及数据块内容; 
接受到推送数据块内容后,根据相应的文件起始地址、终止地址和数据块内容组合文件。 
进一步地,优选的结构是,还包括: 
数据评估单元,用于基于数据能否正常传输和速度对提供下载的邻居种子节点的提供服务能力进行评估打分; 
并在p2p视频实时播放时,向评分较高的邻居种子节点或者直接从内容分发网络服务器CDN上请求相应的空白数据块数据。 
一种基于p2p的文件传输节点,包括: 
信息接收单元,用于接收请求节点的请求下发基于文件传输数据块chunk2的第三Bitmap信息的请求; 
信息发送单元,用于向请求节点返回第三Bitmap信息; 
其中,所述第三Bitmap信息是基于二进制bit位来标示文件中基于chunk2的拥有分布状态并形成的Bitmap信息。 
进一步地,优选的结构是,还包括数据收发单元,其中, 
所述信息接收单元,进一步用于接收请求节点的下载文件请求, 
该请求中携带请求要下载的文件传输数据块在文件中的文件起始地址,文件终止地址、文件传输数据块chunk2的大小; 
所述数据收发单元,用于向请求节点连续推送相应的推送数据块的起始地址、终止地址以及数据块内容。 
本发明采取了上述方案以后,由于基于二进制bit位的Bitmap信息来标示文件中文件数据分片chunk1和文件传输数据块chunk2的拥有分布状态,由此,在传输过程中,peer之间交换数据大大降低,提高传输效率。 
本发明的其它特征和优点将在随后的说明书中阐述,并且,部分地从说明书中变得显而易见,或者通过实施本发明而了解。本发明的目的和其他优点可通过在所写的说明书、权利要求书、以及附图中所特别指出的结构来实现和获得。 
附图说明
下面结合附图对本发明进行详细的描述,以使得本发明的上述优点更加 明确。其中, 
图1是本发明基于p2p的文件传输方法中的流程示意图; 
图2是本发明实施例的数据格式示意图; 
图3是本发明实施例进行数据块分块的数据格式示意图; 
图4是本发明实施例用bit位表示数据块拥有状况的示意图; 
图5是本发明基于p2p的文件传输方法中的实例的流程示意图; 
图6是本发明基于p2p的文件传输节点的结构示意图。 
具体实施方式
以下将结合附图及实施例来详细说明本发明的实施方式,借此对本发明如何应用技术手段来解决技术问题,并达成技术效果的实现过程能充分理解并据以实施。需要说明的是,只要不构成冲突,本发明中的各个实施例以及各实施例中的各个特征可以相互结合,所形成的技术方案均在本发明的保护范围之内。 
另外,在附图的流程图示出的步骤可以在诸如一组计算机可执行指令的计算机***中执行,并且,虽然在流程图中示出了逻辑顺序,但是在某些情况下,可以以不同于此处的顺序执行所示出或描述的步骤。 
本发明说明书中的英文缩写的具体含义如下: 
Chunk:数据块,文件被分割成大小相等的chunk,但在不同场景下chunk大小会不同; 
Bitmap:位图,文件中chunk的有效情况标识图; 
Peer:种子,节点; 
Pc:personal compute,面向个人使用计算机; 
C/S:Client/Server,客户端/服务器; 
p2p:peer-to-peer,对等互联或者点对点技术; 
MTU:Maximum Transmission Unit,指一种通信协议的某一层上面所能通过的最大数据包字节数; 
CDN:Content Delivery Network,内容分发网络。 
为了克服现有技术中,由于采用xml等较为复杂的格式来标识文件分布状态,这导致peer之间交换数据过大,带来流量浪费的缺点。 
为此,本发明实施例提供了一种对提供服务节点(peer)依赖性较低的文件传输方法,其能够在传输过程中通过较少的控制信息交互,并能够实现高效文件传输。 
如图1所示,该方法主要包括以下的步骤: 
步骤S101:请求节点向登陆服务器请求文件可用节点信息,该请求中携带待传输文件的文件ID信息; 
具体来说,请求节点和登陆服务器Tracker进行交互,以通知登陆服务器其欲下载的具体文件; 
步骤S102:接收服务器返回的文件可用节点信息,所述文件基本信息包括文件大小,文件数据分片chunk1大小,所述可用节点信息包括邻居种子节点peer id、peer地址信息、该种子节点基于文件数据分片chunk1的第一位图Bitmap信息。所述可用节点信息实际上是一个列表,具体包括邻居种子节点peer id、peer地址信息、该种子节点可供下载的文件数据分片chunk1的第一位图Bitmap信息。其中,本领域技术人员知晓,在基本信息中还可以包括请求节点基于chunk1的Bitmap信息,即请求节点自身的拥有状态。 
具体来说,登陆服务器获取到请求节点发来的请求文件后,会搜索其内部存储的相关信息,并最终向请求节点返回查询的信息,例如,文件的大小、文件数据分片chunk的大小;可用的邻居种子节点的信息,以及中基于文件数据分片chunk的Bitmap信息,该Bitmap信息是用于表示节点中对chunk的拥有状态而形成的信息; 
步骤S103:请求节点根据所述文件大小和文件数据分片chunk1构建与文件传输数据块chunk2相对应的第二Bitmap信息; 
其中,需要对chunk1和Bitmap1的传输大小合理设置,一般地,在优选实施例中,将chunk1设置成chunk2的整数倍,以减少chunk1投射到chunk2上的成本,并由此生成相应的第二Bitmap信息,如将对应的请求节点的Bitmap信息转换为第二Bitmap信息; 
步骤S104:请求节点根据所述第二Bitmap信息与相应的邻居种子节点进 行数据传输。 
其中,所述第一Bitmap信息和第二Bitmap信息是基于二进制bit位来标示文件中基于chunk1和chunk2的拥有分布状态而形成的Bitmap信息。 
具体来说,步骤S104中,详细包括: 
根据所述第二Bitmap信息与相应的邻居种子节点进行数据传输,包括: 
与邻居种子节点进行通信并请求邻居种子节点基于文件传输数据块chunk2的第三Bitmap信息; 
接收返回的第三Bitmap信息,根据第三Bitmap信息向邻居种子节点请求基于文件传输数据块的文件传输,在成功后更新第二Bitmap信息。 
其中,所述第三Bitmap信息是基于二进制bit位来标示文件中基于chunk2的拥有分布状态并形成的Bitmap信息。 
也就是说,本发明基于二进制bit位来标示文件中各数据块chunk(chunk1、chunk2)的状态并形成的Bitmap信息进行各个peer节点之间进行文件信息交换,克服了现有技术中由于采取XML格式的Bitmap信息表达而带来的peer之间交换数据过大,带来流量浪费的缺点。 
具体来说,结合具体的数据信息格式对上述实施例的各个chunk和之间的Bitmap信息进行说明。 
如图2,3,4所示,本发明主要是将一个待传输文件分割成m个大小相等的chunk,如果文件小于m*chunk就对其进行整化处理,以保证每个chunk大小一致。并且,通过bit为来表示chunk状态;0表示该chunk数据可用,1表示该chunk数据不可用。 
具体来说,chunk1主要是由服务器预先根据一定的规则而切割,并预先传递给请求节点。 
其中,chunk1用表示各个peer对整个文件的拥有情况,chunk大小粒度可以比较大,对于文件比较小的可以设定chunk大小等于文件大小,那么可以提供下载服务peer需要拥有整个文件; 
如果文件较大,那么则需要对chunk1和Bitmap1的传输大小合理设置,一般地,在优选实施例中,将chunk1设置成chunk2的整数倍,以减少chunk1投射到chunk2上的成本。 
其中,在进一步的实施例中,为了节省在传输过程中的流量提高效率,需要将该信息序列化成二进制。 
如chunk n-1到chunk n+1共计4个chunk在表示为0,1,1,0我们可以序列化为0×1+1×2+1×4+0×8=6,用一个数值6来表示即可,如图4所示,经过这样处理的话,其数据信息较小。 
也就是说,本发明需要根据文件数据分片chunk1、文件传输数据分片chunk2的大小对文件进行相应的分片,并用bit表示分片的拥有状态,并最终将其信息序列成二进制,用一个简单的数值来表示,进而形成了本发明意义上的bit Bitmap信息。 
这样的话,其表示的信息非常简单,即peer之间交互的Bitmap信息非常小,仅需要在相应的请求节点、邻居种子节点、服务器之间进行相应的编码解码,即可以还原其真实的Bitmap信息,从而降低了无谓的Bitmap信息之间的交互数据量,提高了传输效率。 
此外,由于采取了二进制bit位来标示文件中各数据块chunk的状态,为此,步骤S104:根据第三Bitmap信息向邻居种子节点请求基于文件传输数据块的文件传输,具体包括: 
请求节点在请求中携带请求要下载的文件传输数据块在文件中的文件起始地址,文件终止地址、文件传输数据块chunk2的大小; 
接收邻居种子节点返回的连续推送的推送数据块的起始地址、终止地址以及数据块内容; 
接受到推送数据块内容后,根据相应的文件起始地址、终止地址和数据块内容组合文件。 
也就是说,本发明中的请求节点与邻居种子节点之间进行数据交换是基于文件地址快速进行读写,其速度比现有的寻址速度快,显然相对于现有技术,其具有快速的文件组合效果。 
此外,在该实施例中,请求节点在数据传输成功后或者不成功后,基于数据能否正常传输和速度对提供下载的邻居种子节点的提供能力进行打分; 
并在p2p视频实时播放时,向评分较高的邻居种子节点或者直接从CDN上请求相应的空白数据块数据,由此实现数据可靠地进行传递。 
如图5所示,本发明一个具体实施例的基于p2p的文件传输方法,在此,peerA表示请求节点,peerB表示一个邻居种子节点,为此,该方法主要包括下面的主要步骤如下: 
步骤S51:peerA向登陆服务器(Tracker)请求下载文件的文件信息,包括文件大小、文件数据分片(chunk1)的大小; 
并请求登陆服务器返回可用的peer列表,其中,服务器向请求节点peerA返回可以提供下载服务的peer信息包括peer id,peer地址信息,基于chunk1的第一Bitmap信息,用Bitmap1来表示; 
步骤S52:peerA基于文件大小、chunk1、Bitmap2的和chunk2大小的大小构建Bitmap2文件(第二Bitmap文件),并基于Bitmap1分布情况,将chunk2分配到可以提供对应下载服务邻居种子节点peerB上。 
其中,chunk2主要用于传输包,在网络传输过程中如果数据包过大会将数据包进行分包重组导致丢包机率增加,其大小可以根据目前互联网主流的MTU值而设定,在优选的实施例中,其大小设置为1024B。 
在实施例中,为了提高下载效率可将相邻的chunk2分配到同一个peerB,以减少下载chunk控制信息,由此,传输效率更高。 
步骤S53:peerA与peerB进行通信,确定peer状态如其是否在线、网络是否可用,其文件拥有的最新状态等,在数据请求上可以提供请求数据的文件起始地址,请求数据的文件终止地址,传输数据的chunk2大小,并由此进行数据传输,具体来说,该步骤主要步骤: 
peerB返回去其能够提供下载文件数据起始地址和终止地址间及该区间内基于chunk2的Bitmap3(第三Bitmap文件)。 
peerA向能够提供下载服务的peerB请求chunk数据,请求内容为请求文件数据的起始地址和请求文件数据的终止地址; 
提供下载服务的peerB以将请求文件起始地址与终止地址投射到文件上确定需要传输的chunk2信息,然后将chunk2内容以数据包的形式连续推送给peerA,其内容为该chunk2对于文件的起始地址、终止地址、chunk2的具体数据块内容; 
peerA接受到推送数据后,根据数据包内文件起始地址和数据内容,组合 文件,更新自身Bitmap2信息,同时根据需要采用定时等方式统计chunk2数据接收情况,包括chunk数据是否正常接受,传输速度等并对提供数据下载的peerB进行评分。 
其中,上述步骤S53中的具体步骤有可能会多次进行,至少需要完成对对文件所有的chunk2完成一次下载请求。 
其中,在完成一次请求后由于提供下载的peer不稳定或者网络丢包等情况,会在文件上形成chunk2空洞,此时,对于在有播放需求等较为紧急的情况之下,需要重新分配下载服务节点,例如,对于chunk2空洞向评分较高的peer或者直接从CDN上请求chunk数据。 
步骤54:向登陆服务器汇报提供下载服务peerB的工作性能、状态,peerA完成下载后的状态如下载文件在peerA分布状态,是否可以为其它peer提供下载等,以便服务器进行优化,使其下发数据更有针对性,更加合理。 
该实施例在具体实施细节相对于实施例1更加具体,且针对具体的数据传输技术特征更加明确,且由于各个peer节点之间进行数据交换、数据组装,其速度相对于现有技术更加快速,由此,其数据传输效率更高。 
与上述方法实施例相对应,本发明还提供了一种节点,用于实施上述文件传输方法,如请求节点。如图6所示,该节点主要包括: 
信息收发单元,用于向登陆服务器请求文件可用节点信息, 
该请求信息携带待传输文件的文件ID信息; 
接收服务器返回的文件基本信息和可用节点信息, 
所述文件基本信息包括文件大小,文件数据分片chunk1大小,所述可用节点信息包括邻居种子节点peer id、peer地址信息、该种子节点可供下载的文件数据分片chunk1的第一Bitmap信息; 
数据块变更单元,用于根据所述文件数据分片chunk1和文件大小构建与文件传输数据块chunk2相对应的第二Bitmap信息; 
数据传输单元,用于根据所述第二Bitmap信息与相应的邻居种子节点进行数据传输; 
其中,所述第一Bitmap信息和第二Bitmap信息是基于二进制bit位来标示文件中基于chunk1和chunk2的拥有分布状态而形成的Bitmap信息。 
进一步地,优选的结构是,所述数据传输单元,用于根据所述第二Bitmap信息与相应的邻居种子节点进行数据传输,包括: 
与邻居种子节点进行通信并请求邻居种子节点基于文件传输数据块chunk2的第三Bitmap信息, 
接收返回的第三Bitmap信息,根据第三Bitmap信息向邻居种子节点请求基于文件传输数据块的文件传输,在成功后更新第二Bitmap信息。 
进一步地,优选的结构是,所述第三Bitmap信息是基于二进制bit位来标示文件中基于chunk2的拥有分布状态并形成的Bitmap信息。 
进一步地,优选的结构是,所述文件数据分片的大小为文件传输数据块的整数倍。 
进一步地,优选的结构是,所述数据传输单元,用于根据第三Bitmap信息向邻居种子节点请求基于文件传输数据块的文件传输,包括: 
请求节点在请求中携带请求要下载的文件传输数据块在文件中的文件起始地址,文件终止地址、文件传输数据块chunk2的大小; 
接收邻居种子节点返回的连续推送的推送数据块的起始地址、终止地址以及数据块内容; 
接受到推送数据块内容后,根据相应的文件起始地址、终止地址和数据块内容组合文件。 
进一步地,优选的结构是,还包括: 
数据评估单元,用于基于数据能否正常传输和速度对提供下载的邻居种子节点的提供服务能力进行评估打分; 
并在p2p视频实时播放时,向评分较高的邻居种子节点或者直接从内容分发网络服务器CDN上请求相应的空白数据块数据。 
本发明节点与方法实施例具有相同的优点,也就是说,由于基于二进制bit位的Bitmap信息来标示文件中基于chunk1和chunk2的拥有分布状态,由此,在传输过程中,peer之间交换数据大大降低,提高传输效率。 
此外,为了与上述请求节点相配合,该***中的邻居种子节点,包括:信息接收单元,用于接收请求节点的请求下发基于文件传输数据块chunk2的第三Bitmap信息的请求; 
信息发送单元,用于向请求节点返回第三Bitmap信息; 
其中,所述第三Bitmap信息是基于二进制bit位来标示文件中基于chunk2的拥有分布状态并形成的Bitmap信息。 
此外,还包括数据收发单元,其中, 
所述信息接收单元,进一步用于接收请求节点的下载文件请求, 
该请求中携带请求要下载的文件传输数据块在文件中的文件起始地址,文件终止地址、文件传输数据块chunk2的大小; 
所述数据收发单元,用于向请求节点连续推送相应的推送数据块的起始地址、终止地址以及数据块内容。 
需要说明的是,对于上述方法实施例而言,为了简单描述,故将其都表述为一系列的动作组合,但是本领域技术人员应该知悉,本申请并不受所描述的动作顺序的限制,因为依据本申请,某些步骤可以采用其他顺序或者同时进行。其次,本领域技术人员也应该知悉,说明书中所描述的实施例均属于优选实施例,所涉及的动作和模块并不一定是本申请所必须的。 
本领域内的技术人员应明白,本申请的实施例可提供为方法、***、或计算机程序产品。因此,本申请可采用完全硬件实施例、完全软件实施例、或结合软件和硬件方面的实施例的形式。 
而且,本申请可采用在一个或多个其中包含有计算机可用程序代码的计算机可用存储介质(包括但不限于磁盘存储器、CD-ROM、光学存储器等)上实施的计算机程序产品的形式。 
最后应说明的是:以上所述仅为本发明的优选实施例而已,并不用于限制本发明,尽管参照前述实施例对本发明进行了详细的说明,对于本领域的技术人员来说,其依然可以对前述各实施例所记载的技术方案进行修改,或者对其中部分技术特征进行等同替换。凡在本发明的精神和原则之内,所作的任何修改、等同替换、改进等,均应包含在本发明的保护范围之内。 

Claims (12)

1.一种基于p2p的文件传输方法,其特征在于,包括:
请求节点向登陆服务器请求文件可用节点信息,该请求信息携带待传输文件的文件ID信息;
接收服务器返回的文件基本信息和能提供下载服务的可用节点信息,
所述文件基本信息包括文件大小、文件数据分片chunk1大小,所述可用节点信息包括邻居种子节点peer id、peer地址信息、该种子节点基于文件数据分片chunk1的第一位图Bitmap信息;
根据所述文件数据分片chunk1和文件大小构建与文件传输数据块chunk2相对应的第二Bitmap信息;
根据所述第二Bitmap信息与相应的邻居种子节点进行数据传输;
其中,所述第一Bitmap信息和第二Bitmap信息是基于二进制bit位来标示文件基于chunk1和chunk2的拥有分布状态而形成的Bitmap信息。
2.根据权利要求1所述的基于p2p的文件传输方法,其特征在于,根据所述第二Bitmap信息与相应的邻居种子节点进行数据传输,包括:
与邻居种子节点进行通信并请求邻居种子节点基于文件传输数据块chunk2的第三Bitmap信息;
接收返回的第三Bitmap信息,根据第三Bitmap信息向邻居种子节点请求基于文件传输数据块的文件传输,在成功后更新第二Bitmap信息。
3.根据权利要求2所述的基于p2p的文件传输方法,其特征在于,所述第三Bitmap信息是基于二进制bit位来标示文件中基于chunk2的拥有分布状态并形成的Bitmap信息。
4.根据权利要求1所述的基于p2p的文件传输方法,其特征在于,所述文件数据分片的大小为文件传输数据块的整数倍。
5.根据权利要求1所述的基于p2p的文件传输方法,其特征在于,根据第三Bitmap信息向邻居种子节点请求基于文件传输数据块的文件传输,包括:
请求节点在请求中携带请求要下载的文件传输数据块在文件中的文件起始地址,文件终止地址、文件传输数据块chunk2的大小;
接收邻居种子节点返回的连续推送的推送数据块的起始地址、终止地址以及数据块内容;接受到推送数据块内容后,根据相应的文件起始地址、终止地址和数据块内容组合文件。
6.根据权利要求1所述的基于p2p的文件传输方法,其特征在于,基于数据能否正常传输和速度对提供下载的邻居种子节点的提供服务能力进行评估打分;
并在p2p视频实时播放时,向评分较高的邻居种子节点或者直接从内容分发网络服务器CDN上请求相应的空白数据块数据。
7.一种基于p2p的文件传输节点,其特征在于,包括:
信息收发单元,用于向登陆服务器请求文件可用节点信息,
该请求信息携带待传输文件的文件ID信息;
接收服务器返回的文件基本信息和可用节点信息,
所述文件基本信息包括文件大小,文件数据分片chunk1大小,所述可用节点信息包括邻居种子节点peer id、peer地址信息、该种子节点基于文件数据分片chunk1的第一位图Bitmap信息;
数据块变更单元,用于根据所述文件数据分片chunk1和文件大小构建与文件传输数据块chunk2相对应的第二Bitmap信息;
数据传输单元,用于根据所述第二Bitmap信息与相应的邻居种子节点进行数据传输;
其中,所述第一Bitmap信息和第二Bitmap信息是基于二进制bit位来标示文件中基于chunk1和chunk2的拥有分布状态而形成的Bitmap信息。
8.根据权利要求7所述的基于p2p的文件传输节点,其特征在于,所述数据传输单元,用于根据所述第二Bitmap信息与相应的邻居种子节点进行数据传输,包括:
与邻居种子节点进行通信并请求邻居种子节点基于文件传输数据块chunk2的第三Bitmap信息,
接收返回的第三Bitmap信息,根据第三Bitmap信息向邻居种子节点请求基于文件传输数据块的文件传输,在成功后更新第二Bitmap信息。
9.根据权利要求8所述的基于p2p的文件传输节点,其特征在于,所述第三Bitmap信息是基于二进制bit位来标示文件中基于chunk2的拥有分布状态并形成的Bitmap信息。
10.根据权利要求7所述的基于p2p的文件传输节点,其特征在于,所述文件数据分片的大小为文件传输数据块的整数倍。
11.根据权利要求7所述的基于p2p的文件传输节点,其特征在于,所述数据传输单元,用于根据第三Bitmap信息向邻居种子节点请求基于文件传输数据块的文件传输,包括:
请求节点在请求中携带请求要下载的文件传输数据块在文件中的文件起始地址,文件终止地址、文件传输数据块chunk2的大小;
接收邻居种子节点返回的连续推送的推送数据块的起始地址、终止地址以及数据块内容;
接受到推送数据块内容后,根据相应的文件起始地址、终止地址和数据块内容组合文件。
12.根据权利要求7所述的基于p2p的文件传输节点,其特征在于,还包括:数据评估单元,用于基于数据能否正常传输和速度对提供下载的邻居种子节点的提供服务能力进行评估打分;
并在p2p视频实时播放时,向评分较高的邻居种子节点或者直接从内容分发网络服务器CDN上请求相应的空白数据块数据。
CN201310213154.4A 2013-05-31 2013-05-31 一种基于p2p的文件传输方法和节点 Active CN103281382B (zh)

Priority Applications (1)

Application Number Priority Date Filing Date Title
CN201310213154.4A CN103281382B (zh) 2013-05-31 2013-05-31 一种基于p2p的文件传输方法和节点

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN201310213154.4A CN103281382B (zh) 2013-05-31 2013-05-31 一种基于p2p的文件传输方法和节点

Publications (2)

Publication Number Publication Date
CN103281382A true CN103281382A (zh) 2013-09-04
CN103281382B CN103281382B (zh) 2016-04-20

Family

ID=49063827

Family Applications (1)

Application Number Title Priority Date Filing Date
CN201310213154.4A Active CN103281382B (zh) 2013-05-31 2013-05-31 一种基于p2p的文件传输方法和节点

Country Status (1)

Country Link
CN (1) CN103281382B (zh)

Cited By (8)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN104506424A (zh) * 2014-12-31 2015-04-08 深圳中兴网信科技有限公司 即时通讯中联系人状态的通知方法及通知装置
CN104660518A (zh) * 2013-11-22 2015-05-27 乐视网信息技术(北京)股份有限公司 一种控制数据传输的方法及装置
CN106161549A (zh) * 2015-04-15 2016-11-23 阿里巴巴集团控股有限公司 一种数据传输的方法、***、控制服务器及客户端
CN106487931A (zh) * 2016-12-13 2017-03-08 中国人民解放军国防科学技术大学 一种基于相似文件协同的BitTorrent数据分发***及方法
CN108234638A (zh) * 2017-12-29 2018-06-29 北京奇虎科技有限公司 一种基于内容分发网络cdn的数据处理方法和装置
CN111372100A (zh) * 2020-04-21 2020-07-03 白杨 一种基于分布式选举的端到端内容分发网络***和分发方法
CN112073535A (zh) * 2020-09-21 2020-12-11 烟台云朵软件有限公司 一种基于位图的数据包分片传输方法
CN116095092A (zh) * 2023-04-11 2023-05-09 湖南快乐阳光互动娱乐传媒有限公司 一种对等节点选择方法及装置

Citations (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN101436946A (zh) * 2008-12-15 2009-05-20 香港应用科技研究院有限公司 在对等共享网络内进行数据请求调度的方法
CN101562635A (zh) * 2009-05-15 2009-10-21 中兴通讯股份有限公司 一种移动流媒体的点播方法和播放器
CN101764831A (zh) * 2008-12-24 2010-06-30 ***通信集团公司 一种流媒体数据共享方法、共享***和流媒体节点
US20120257541A1 (en) * 2009-12-16 2012-10-11 Nan Li Method and device for fragmenting, transmitting and receiving network topology information

Patent Citations (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN101436946A (zh) * 2008-12-15 2009-05-20 香港应用科技研究院有限公司 在对等共享网络内进行数据请求调度的方法
CN101764831A (zh) * 2008-12-24 2010-06-30 ***通信集团公司 一种流媒体数据共享方法、共享***和流媒体节点
CN101562635A (zh) * 2009-05-15 2009-10-21 中兴通讯股份有限公司 一种移动流媒体的点播方法和播放器
US20120257541A1 (en) * 2009-12-16 2012-10-11 Nan Li Method and device for fragmenting, transmitting and receiving network topology information

Cited By (10)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN104660518A (zh) * 2013-11-22 2015-05-27 乐视网信息技术(北京)股份有限公司 一种控制数据传输的方法及装置
CN104506424A (zh) * 2014-12-31 2015-04-08 深圳中兴网信科技有限公司 即时通讯中联系人状态的通知方法及通知装置
CN104506424B (zh) * 2014-12-31 2018-07-13 深圳中兴网信科技有限公司 即时通讯中联系人状态的通知方法及通知装置
CN106161549A (zh) * 2015-04-15 2016-11-23 阿里巴巴集团控股有限公司 一种数据传输的方法、***、控制服务器及客户端
CN106487931A (zh) * 2016-12-13 2017-03-08 中国人民解放军国防科学技术大学 一种基于相似文件协同的BitTorrent数据分发***及方法
CN106487931B (zh) * 2016-12-13 2019-05-24 中国人民解放军国防科学技术大学 一种基于相似文件协同的BitTorrent数据分发***及方法
CN108234638A (zh) * 2017-12-29 2018-06-29 北京奇虎科技有限公司 一种基于内容分发网络cdn的数据处理方法和装置
CN111372100A (zh) * 2020-04-21 2020-07-03 白杨 一种基于分布式选举的端到端内容分发网络***和分发方法
CN112073535A (zh) * 2020-09-21 2020-12-11 烟台云朵软件有限公司 一种基于位图的数据包分片传输方法
CN116095092A (zh) * 2023-04-11 2023-05-09 湖南快乐阳光互动娱乐传媒有限公司 一种对等节点选择方法及装置

Also Published As

Publication number Publication date
CN103281382B (zh) 2016-04-20

Similar Documents

Publication Publication Date Title
CN103281382A (zh) 一种基于p2p的文件传输方法和节点
CN101677325B (zh) 发布媒体描述信息和获取媒体的方法、装置、***
CN101764831B (zh) 一种流媒体数据共享方法、共享***和流媒体节点
EP1612982A2 (en) Content distribution using network coding
CN101296152B (zh) 对等连接网络的数据调度方法和***
CN102129434B (zh) 读写分离数据库的方法及***
CN101272404B (zh) 一种p2p视频直播***数据调度中的链路选择方法
WO2012142844A1 (zh) 一种基于p2p的文件分发***及分片方法
CN101626389B (zh) 一种网络节点的管理方法
CN102694831A (zh) 移动终端流媒体数据补偿方法与***、内容分发网络
CN105872856A (zh) 一种流媒体文件分发方法及***
CN102394899A (zh) 提高文件下载速度的点播***及方法
CN101515945B (zh) 一种p2p资源文件的在线应用方法和***
CN103037015A (zh) 一种p2p数据主动分发方法及节点客户端
CN112817602A (zh) 一种json格式数据发送、接收方法、设备及介质
CN101697553B (zh) P2p环境下的数据传输方法
CN103825916A (zh) 一种资源下载方法及***
CN103179045B (zh) 支持p2p流量优化的资源节点选择方法
CN102571942A (zh) 一种在p2p网络中推送资源信息并提供服务的方法与设备
US20110113099A1 (en) Method for transmitting buffer map and network thereof
CN201766618U (zh) 网络点播***
CN103220260B (zh) 更新数据的方法、服务器、客户端及***
CN109474696B (zh) 一种网络服务方法、装置、电子设备及可读存储介质
CN111800491A (zh) 一种数据传输方法、***、计算设备及存储介质
CN106487931A (zh) 一种基于相似文件协同的BitTorrent数据分发***及方法

Legal Events

Date Code Title Description
C06 Publication
PB01 Publication
C10 Entry into substantive examination
SE01 Entry into force of request for substantive examination
C14 Grant of patent or utility model
GR01 Patent grant
TR01 Transfer of patent right

Effective date of registration: 20200424

Address after: 310000 room 508, floor 5, building 4, No. 699, Wangshang Road, Changhe street, Binjiang District, Hangzhou City, Zhejiang Province

Patentee after: Alibaba (China) Co.,Ltd.

Address before: 100080 Beijing Haidian District city Haidian street A Sinosteel International Plaza No. 8 block 5 layer A, C

Patentee before: Youku Internet Technology (Beijing) Co.,Ltd.

TR01 Transfer of patent right