CN103281395A - 一种基于客户端数量的数据片均分选择系统及方法 - Google Patents
一种基于客户端数量的数据片均分选择系统及方法 Download PDFInfo
- Publication number
- CN103281395A CN103281395A CN2013102290945A CN201310229094A CN103281395A CN 103281395 A CN103281395 A CN 103281395A CN 2013102290945 A CN2013102290945 A CN 2013102290945A CN 201310229094 A CN201310229094 A CN 201310229094A CN 103281395 A CN103281395 A CN 103281395A
- Authority
- CN
- China
- Prior art keywords
- client
- data
- piece
- server
- data slice
- 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
Links
Images
Abstract
本发明公开一种基于客户端数量的数据片均分选择系统及方法,属于信息技术处理领域。系统包括服务器端、Tracker服务器和客户端。方法包括以下步骤:服务器端对数据进行编码形成种子文件,并解析种子文件连接到Tracker服务器;服务器端把种子文件和数据片选择顺序的参数发送给客户端;客户端收到种子文件和数据片选择顺序的参数后,解析种子文件,根据种子文件的数据片数量和数据片选择顺序的参数进行数据片选择和数据下载。本发明解决了数据片随机选择策略中BitTorrent系统中数据片分布不均的问题。
Description
技术领域
本发明涉及一种基于客户端数量的数据片均分选择系统及方法,属于信息技术处理领域。
背景技术
在BitTorrent(BT)系统中,BitTorrent协议最主要的一个特点是将文件分成粒度更小的数据分片,这种模式释放了大量处于下载过程中节点的服务能力,数据分片设计的片段选择算法是BitTorrent协议成功的关键。片段选择算法由每个节点在是在其本地执行的调度策略,BitTorrent系统中的每个节点通过bitfield消息和have消息,保存有它们的邻居节点的共享资源片段分布情况。节点利用这些信息和片段选择算法来决定下载哪个片段,试图尽可能保持系统的稳定性,防止某些节点离开系统之后某些片段永远下载不到。片段选择是P2P文件共享过程的基础操作之一,好的片段选择算法可以将不同片段快速、高效地分配到P2P网络中的各个节点上,进而保证Seed的离开不会影响整个网络的下载。因此片段选择算法会在很大程度上影响下载节点获得文件的完整性。
目前,数据片选择策略比较多,根据数据下载的开始、中间、结束等不同阶段采用不同的策略,但有一个策略是所有BT都必须采取的策略,即随机选择piece策略,在初始状态所有Peer之间片段选择如果都相同,则peer之间就无法进行数据交换,随机选择策略就是克服这种不足,在随机选择策略下一般所有Peer请求的piece就会有所不同,这样Peer之间就可以进行数据下载,从而提高整体下载速度。但是这种随机策略只是一种基于概率的优化策略,在实际中仍有可能会出现不同Peer请求同一个piece的情况,仍然不能保证Peer 进行数据交换。
发明内容
发明目的:本发明针对随机选择策略的不足,提出了基于客户端数量的数据片均分选择系统及方法,实现了整个BT系统的piece均匀分布和数据的高效分发。
技术方案:一种基于客户端数量的数据片均分选择系统,包括服务器端、客户端(Peer)和Tracker服务器,下面分别介绍每个部分。
服务器端:把新数据根据BT编码制作为种子文件;解析种子文件,把实体数据作为超级种子连接到Tracker服务器;负责所有客户端的登录验证;把种子文件和数据片选择顺序的参数发送给客户端。
客户端(Peer):接收种子文件和数据片选择顺序的参数;解析种子文件,根据种子文件中的数据片数量和数据选择顺序的参数进行数据片选择下载;完成与服务器端和其他Peer的所有通信和数据交换。
Tracker服务器:控制有多少客户端同时在下载或上传同一个文件,协调所有peer节点之间的信息交流。
基于客户端数量的数据片均分选择系统及方法,包括如下步骤:
步骤1,服务器端对数据进行编码形成种子文件,并解析种子文件连接到Tracker服务器,具体过程如下:
步骤1-1,根据BT编码规范,对所述数据进行编码,生成扩展名为.torrent的种子文件,该文件大小一般只有几十K,包含了BT下载所必须的信息,主要有:资源名称,如果资源是目录形式,则还包括目录树中每个文件的路径信息和文件名;如果资源是单个文件,则包括这个文件的大小信息;如果是以目录形式,则包括目录树中每个文件的大小;对资源实际文件按照固定大小分块后,每块进行SHA1 hash运算得到的若干特征值的集合;.torrent文件的创建时间、制作者填写的注释及制作者的信息等;至少一个announce地址,对应于Internet上部署的一个Tracker服务器,该Tracker服务器主要用于追踪到底有多少客户端同时下载或上传同一个文件。
步骤1-2,把该数据作为超级种子,连接到Tracker服务器,为客户端下载数据提供服务;
步骤2,把种子文件和数据片选择顺序的参数发送给客户端,具体处理过程如下:
步骤2-1,把种子文件发送给所有登录到服务器的客户端;
步骤2-2,根据客户端的登录顺序,把数据片选择顺序的参数即客户端的总量clientNum和该客户端在整个客户端的排列顺序order(order=1,2,……, clientNum)发送给客户端;
步骤3,客户端收到种子文件和数据片选择顺序的参数后,处理过程如下:
步骤3-1,解析.torrent文件,得到announce地址即Tracker服务器的地址和数据的分片数量pieceNum;
步骤3-2,连接Tracker服务器,得到实体数据的下载地址和正在下载或上传的用户信息列表(包括IP地址、端口、客户端ID等信息),同时客户端把自己的信息上传到Tracker服务器。
步骤4,客户端根据步骤2-2得到的参数clientNum、order和步骤3-1得到的参数pieceNum,进行数据片请求和数据下载,具体过程如下:
步骤4-1,求得每个客户平均分配的数据片数量average = pieceNum/clientNum;如果pieceNum不能整除clientNum,则average++;然后求得首先请求的数据片的区间下线minPiece = (order-1)*average;如果order的值正好等于clientNum,则说明是最后一个客户端,则首先请求的数据片的区间上限maxPiece = pieceNum-1,否则maxPiece = order*average-1;
步骤4-2,把区间[minPiece, maxPiece]的需要下载的piece放入firstWantedPieces数组列表中,把剩余的需要的下载的piece放入wantedPieces数组列表中,把wantedPieces数组列表中的数据打乱,随机排序。
步骤4-3,当客户端从服务器端或者其他客户端进行握手连接后,如果firstWantedPieces不为空并且对方的IP地址是服务器,则首先从firstWantedPieces中查找是否有需要下载并且对方拥有的piece,如果有则把这个piece从firstWantedPieces中删除,然后向服务器请求这个piece;如果对方不是服务器或者firstWantedPieces中所有的piece都已经请求完毕,则从wantedPieces查找需要下载并且对方拥有的piece。
步骤4-4,客户端与服务器端之间、客户端与客户端之间按照BT系统的数据交换规则进行数据交换,完成数据的下载。
本发明采用上述技术方案,具有以下有益效果:面对随机分发可能会出现客户端不能进行数据交换的问题,由于本发明采用了基于客户端数量的均分方法,从而保证了每个客户端在开始请求数据时肯定是完全不同的数据片,保证了数据片分发过程中所有客户端之间都能够进行数据交换,加快了数据分发速度。
附图说明
图1为数据片均分选择系统原理图;
图2为数据下载流程图;
图3为piece均分选择算法数据下载流程图;
图4为本发明方法流程图。
具体实施方式
下面结合具体实施例,进一步阐明本发明,应理解这些实施例仅用于说明本发明而不用于限制本发明的范围,在阅读了本发明之后,本领域技术人员对本发明的各种等价形式的修改均落于本申请所附权利要求所限定的范围。
图1所示,基于客户端数量的数据片均分选择系统,包括服务器端,客户端A、B、C,以及Tracker服务器,下面分别介绍每个部分。
服务器端:把新数据根据BT编码制作为种子文件;解析种子文件,把实体数据作为超级种子连接到Tracker服务器;负责所有客户端的登录验证;把种子文件和数据片选择顺序的参数发送给客户端A、B、C。
客户端:接收种子文件和数据片选择顺序的参数;解析种子文件,根据种子文件中的数据片数量和数据选择顺序的参数进行数据片选择下载;完成与服务器端和其他Peer的所有通信和数据交换。
Tracker服务器:控制有多少客户端同时在下载或上传同一个文件,协调所有peer节点之间的信息交流。
为了说明的更清楚,下面以具体的数据为例,假设需要分发的数据片数量为9,数据片编号为0,1,……,8,客户端的数量为3,分别为客户端A、B、C,按照如图1所示的系统原理图,说明本发明的方法流程,并解释本发明是通过何种方式解决随机分发的中数据片分布不均匀问题的。
如图2、4所示,该方法流程如下:
步骤1,客户端A,B,C都登录到服务器。
步骤2,服务器端对数据进行编码形成种子文件,并解析种子文件连接到Tracker服务器,具体过程如下:
步骤2-1,根据BT编码规范,对该数据进行编码,生成扩展名为.torrent的种子文件,该文件大小一般只有几十K,包含了BT下载所必须的信息,主要有:资源名称,如果资源是目录形式,则还包括目录树中每个文件的路径信息和文件名;如果资源是单个文件,则包括这个文件的大小信息;如果是以目录形式,则包括目录树中每个文件的大小信息;对资源实际文件按照固定大小分块后,每块进行SHA1 hash运算得到的若干特征值的集合;.torrent文件的创建时间、制作者填写的注释及制作者的信息等;至少一个announce地址,对应于Internet上部署的一个Tracker服务器,该服务器主要用于追踪到底有多少人同时下载或上传同一个文件。
步骤2-2,把该数据作为超级种子,连接到Tracker服务器,为客户端下载数据提供服务;
步骤3,把种子文件和数据片选择顺序的参数发送给客户端,具体处理过程如下:
步骤3-1,把种子文件发送给所有登录到服务器的客户端A,B,C;
步骤3-2,根据客户端的登录顺序,把数据片选择顺序的参数即客户端的总量clientNum为3和客户端在整个客户端的排列顺序order的值分别为1,2,3;
步骤4,客户端收到种子文件和数据片选择顺序的参数后,以客户端A为例,处理过程如下(客户端B,C的处理过程与A类似):
步骤4-1,解析.torrent文件,得到announce地址即Tracker服务器的地址和数据的分片数量pieceNum的值为9;
步骤4-2,连接Tracker服务器,得到实体数据的下载地址和正在下载或上传的用户信息列表(包括IP地址、端口、客户端ID等信息),同时把自己的信息上传到Tracker服务器。
步骤5,客户端根据步骤2-2得到的参数clientNum的值为3、order为1和步骤3-1得到的参数pieceNum为9,进行数据片请求和数据下载,具体过程如下:
步骤5-1,求得每个客户平均分配的数据片数量average = pieceNum/clientNum,所以average的值为3;因为pieceNum能整除clientNum,所以average的最终值是3;然后求得首先请求的数据片的区间下限minPiece = (order-1)*average,所以minPiece的值为0;因为order的值不等于clientNum,所以首先请求的数据片的区间上限maxPiece = order*average-1,maxPiece的值为2。同理可以求得客户端B的区间下限的值为3,区间上限的值为5;客户端C的区间下限的值为6,区间上限的值为8;
步骤5-2,把区间[0, 2]的需要下载的piece放入firstWantedPieces数组列表中,把剩余的需要的下载的属于区间[3,8]的piece放入wantedPieces数组列表中,把wantedPieces数组列表中的数据打乱,随机排序。同理可以得到客户端B的firstWantedPieces数组列表中存放的是区间[3,5]的piece,wantedPieces数组列表中存放的是区间[0,2]和区间[6,8]的piece;客户端C的firstWantedPieces数组列表中存放的是区间[6,8]的piece,wantedPieces数组列表中存放的是区间[0,5]的piece;
步骤5-3,当客户端从服务器端或者其他客户端进行握手连接后,如果firstWantedPieces不为空并且对方的IP地址是服务器,则首先从firstWantedPieces中查找是否有需要下载并且对方拥有的piece,如果有则把这个piece从firstWantedPieces中删除,然后向服务器请求这个piece;如果对方不是服务器或者firstWantedPieces中所有的piece都已经请求完毕,则从wanted Pieces查找需要下载并且对方拥有的piece。以客户端A为例,首先从服务器下载的是属于firstWantedPieces中的块号为0的piece;同理客户端B,C分别是块号为3,6的piece。
步骤5-4,客户端与服务器端之间、客户端与客户端之间按照BT系统的数据交换规则进行数据交换,完成数据的下载。为了比较清晰的描述数据交换的过程,假设每一秒下载一个piece,根据步骤5-2对三个客户端的数据片请求的划分,客户端A首先要下载的piece号为[0,1,2],客户端B为[3,4,5],客户端B为[6,7,8]。如图3所示,在第一秒,客户端A从服务器端得到piece_0,客户端B得到piece_3,客户端C得到piece_6,然后他们向其他peer发送have消息,让其他peer下载自己拥有的数据。在第二秒,客户端A从服务器端得到piece_1,从客户端B得到piece_3,从客户端C得到piece_6,同理客户端B得到piece_4,piece_0, piece_6,客户端C得到piece_7,piece_0, piece_3。在第三秒,客户端A从服务器端得到piece_3,从客户端B得到piece_4,从客户端C得到piece_7,同理客户端B得到piece_5,piece_1, piece_7,客户端C得到piece_8,piece_1, piece_4,这时三个piece已经完成了分配的piece请求任务,开始进入随机选择模式。在第四秒,三个客户端随机客户端或者piece进行下载,完成最后两个piece。如果选择随机算法,最坏的情况是每次三个peer都向服务器请求同一个piece,这样peer之间就不能进行数据交换了,因为他们拥有的piece是其他peer已经拥有的piece,最坏情况下,完成数据下载要9秒,现在只需要4秒就完成了数据下载。
Claims (2)
1. 一种基于客户端数量的数据片均分选择系统,其特征在于:包括服务器端、客户端和Tracker服务器端;
所述服务器端把新数据根据BT编码制作为种子文件;解析种子文件,把实体数据的作为超级种子连接到Tracker服务器;负责所有客户端的登录验证;把种子文件和数据片选择顺序的参数发送给客户端;
所述客户端接收服务器端发送来的种子文件和数据片选择顺序的参数;解析种子文件,根据种子文件中的数据片数量和数据选择顺序的参数进行数据片选择下载;完成与服务器端和其他Peer的所有通信和数据交换;
所述Tracker服务器端控制有多少客户端同时在下载或上传同一个文件,协调所有peer节点之间的信息交流。
2. 一种基于客户端数量的数据片均分选择方法,其特征在于包括如下步骤:
步骤1,服务器端对数据进行编码形成扩展名为.torrent的种子文件,并解析种子文件连接到Tracker服务器;
步骤2,服务器端把种子文件和数据片选择顺序的参数即客户端的总量clientNum和该客户端在整个客户端的排列顺序order发送给客户端,其中order=1,2,……, clientNum;
步骤3,客户端收到种子文件和数据片选择顺序的参数后,解析.torrent文件,得到announce地址即Tracker服务器的地址和数据的分片数量pieceNum;通过announce地址连接到Tracker服务器;
步骤4,客户端根据步骤2得到的参数clientNum、order和步骤3得到的参数pieceNum,进行数据片请求和数据下载,具体过程如下:
步骤4-1,求得每个客户平均分配的数据片数量average = pieceNum/clientNum;如果pieceNum不能整除clientNum,则average++;然后求得首先请求的数据片的区间下线minPiece = (order-1)*average;如果order的值正好等于clientNum则说明是最后一个客户端,则首先请求的数据片的区间上限maxPiece = pieceNum-1,否则 maxPiece = order*average-1;
步骤4-2,把区间[minPiece, maxPiece]的需要下载的piece放入firstWantedPieces数组列表中,把剩余的需要的下载的piece放入wantedPieces数组列表中,把wantedPieces列表中的数据打乱,随机排序;
步骤4-3,当客户端从服务器端或者其他客户端进行握手连接后,如果first WantedPieces不为空并且对方的IP地址是服务器,则首先从firstWantedPieces中查找是否有需要下载并且对方拥有的piece,如果有则把这个piece从firstWa ntedPieces中删除,然后向服务器请求这个piece;如果对方不是服务器或者firstWantedPieces中所有的piece都已经请求完毕,则从wantedPieces查找需要下载并且对方拥有的piece;
步骤4-4,客户端与服务器端之间、客户端与客户端之间按照BT系统的数据交换规则进行数据交换,完成数据的下载。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201310229094.5A CN103281395B (zh) | 2013-06-08 | 2013-06-08 | 一种基于客户端数量的数据片均分选择系统及方法 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201310229094.5A CN103281395B (zh) | 2013-06-08 | 2013-06-08 | 一种基于客户端数量的数据片均分选择系统及方法 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN103281395A true CN103281395A (zh) | 2013-09-04 |
CN103281395B CN103281395B (zh) | 2016-04-06 |
Family
ID=49063840
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201310229094.5A Active CN103281395B (zh) | 2013-06-08 | 2013-06-08 | 一种基于客户端数量的数据片均分选择系统及方法 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN103281395B (zh) |
Cited By (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN105187558A (zh) * | 2015-09-29 | 2015-12-23 | 青岛海信传媒网络技术有限公司 | 一种数据获取方法及节点设备 |
CN105871990A (zh) * | 2015-12-14 | 2016-08-17 | 乐视云计算有限公司 | 下载数据的调度方法及装置 |
CN107172024A (zh) * | 2017-05-02 | 2017-09-15 | 江苏科技大学 | 针对BitTorrent文件共享过程中基于Have消息编码的隐蔽通信检测方法 |
Citations (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN101577695A (zh) * | 2008-05-09 | 2009-11-11 | 上海未来宽带技术及应用工程研究中心有限公司 | 基于p2p技术的数据下载方法 |
CN102196008A (zh) * | 2010-03-08 | 2011-09-21 | 株式会社日立制作所 | 点对点下载方法、视频设备和内容发送方法 |
US20110276449A1 (en) * | 2010-05-07 | 2011-11-10 | Thomas Ducan Funderburk | System and Method for Determining Copyright Infringement and Collecting Royalties |
-
2013
- 2013-06-08 CN CN201310229094.5A patent/CN103281395B/zh active Active
Patent Citations (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN101577695A (zh) * | 2008-05-09 | 2009-11-11 | 上海未来宽带技术及应用工程研究中心有限公司 | 基于p2p技术的数据下载方法 |
CN102196008A (zh) * | 2010-03-08 | 2011-09-21 | 株式会社日立制作所 | 点对点下载方法、视频设备和内容发送方法 |
US20110276449A1 (en) * | 2010-05-07 | 2011-11-10 | Thomas Ducan Funderburk | System and Method for Determining Copyright Infringement and Collecting Royalties |
Cited By (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN105187558A (zh) * | 2015-09-29 | 2015-12-23 | 青岛海信传媒网络技术有限公司 | 一种数据获取方法及节点设备 |
CN105871990A (zh) * | 2015-12-14 | 2016-08-17 | 乐视云计算有限公司 | 下载数据的调度方法及装置 |
CN107172024A (zh) * | 2017-05-02 | 2017-09-15 | 江苏科技大学 | 针对BitTorrent文件共享过程中基于Have消息编码的隐蔽通信检测方法 |
CN107172024B (zh) * | 2017-05-02 | 2019-07-16 | 江苏科技大学 | 针对BitTorrent文件共享过程中基于Have消息编码的隐蔽通信检测方法 |
Also Published As
Publication number | Publication date |
---|---|
CN103281395B (zh) | 2016-04-06 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
Sherwood et al. | Slurpie: A cooperative bulk data transfer protocol | |
CN108173774B (zh) | 一种客户端的升级方法及系统 | |
EP3439239B1 (en) | Data transmission method and system based on peer-to-peer network | |
CN101626389B (zh) | 一种网络节点的管理方法 | |
CN102223411A (zh) | 采用p2p技术下载文件的方法和系统、客户端 | |
CN104734962B (zh) | 一种非结构化p2p网络的资源搜索方法 | |
CN101588287B (zh) | 对等网络数据调度和下载的方法、装置和系统 | |
CN103220308B (zh) | 一种文件下载方法、装置及系统 | |
US20160381127A1 (en) | Systems and methods for dynamic networked peer-to-peer content distribution | |
CN102404387A (zh) | 一种用于与其他节点进行信息同步的方法、装置和设备 | |
CN101883079A (zh) | 在互联网中用于加速点播多媒体内容的方法与装置 | |
CN110990448B (zh) | 一种支持容错的分布式查询方法及装置 | |
CN110149221B (zh) | 一种基于联盟链的自适应网络的构建方法及装置 | |
CN103281395A (zh) | 一种基于客户端数量的数据片均分选择系统及方法 | |
CN109962947A (zh) | 一种对等网络中的任务分配方法及装置 | |
Amoretti et al. | Service migration within the cloud: Code mobility in SP2A | |
CN109257448B (zh) | 一种会话信息同步的方法及装置、电子设备、存储介质 | |
JP2007272540A (ja) | データ配信方法及びデータ配信システム | |
CN105516343A (zh) | 一种网络动态自组织的文件共享系统及实现方法 | |
CN103179191A (zh) | P2p网络管控装置及p2p网络管控架构 | |
Zhang et al. | A high-bandwidth live streaming model in mesh-based peer-to-peer networks | |
CN112711465B (zh) | 基于云平台的数据处理方法、装置、电子设备及存储介质 | |
CN112751890B (zh) | 数据传输的控制方法和装置 | |
Jiang et al. | A replica placement algorithm for hybrid CDN-P2P architecture | |
CN111404936B (zh) | 文件转发系统及方法 |
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 |