CN101500020B - 基于点对点协议对数据块进行传送的方法和装置 - Google Patents

基于点对点协议对数据块进行传送的方法和装置 Download PDF

Info

Publication number
CN101500020B
CN101500020B CN 200810033490 CN200810033490A CN101500020B CN 101500020 B CN101500020 B CN 101500020B CN 200810033490 CN200810033490 CN 200810033490 CN 200810033490 A CN200810033490 A CN 200810033490A CN 101500020 B CN101500020 B CN 101500020B
Authority
CN
China
Prior art keywords
data block
subscriber equipment
information
relevant information
subscriber
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.)
Expired - Fee Related
Application number
CN 200810033490
Other languages
English (en)
Other versions
CN101500020A (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.)
SYNAPTIC COMP SYSTEMS SHANGHAI
Original Assignee
SYNAPTIC COMP SYSTEMS SHANGHAI
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 SYNAPTIC COMP SYSTEMS SHANGHAI filed Critical SYNAPTIC COMP SYSTEMS SHANGHAI
Priority to CN 200810033490 priority Critical patent/CN101500020B/zh
Publication of CN101500020A publication Critical patent/CN101500020A/zh
Application granted granted Critical
Publication of CN101500020B publication Critical patent/CN101500020B/zh
Expired - Fee Related legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Images

Landscapes

  • Information Transfer Between Computers (AREA)

Abstract

本发明旨在提供一种用于基于点对点协议对数据块进行传送的方法。用户设备判断与其相连的其它用户设备是否需要数据块;如果相连的其它用户设备需要该数据块,则向相连的其它用户设备中发送该数据块。通过这种由已有数据块的用户设备主动向相连的其它用户设备发送该数据块的方法,实现在短时间内将同一数据块传送给大量用户设备。

Description

基于点对点协议对数据块进行传送的方法和装置
技术领域
本发明涉及互联网,尤其涉及基于点对点协议的数据块传送。
背景技术
随着Internet的迅猛发展和普及,流媒体技术广泛应用于在线直播、视频点播、远程教育、视频会议、数字图书馆等领域。但流媒体的传输对带宽、延迟和包的丢失率等服务质量相关参数都有十分严格的要求,但是随着用户人数的增多,传统的客户机/中央服务器(Client/Server,简称C/S)的模式使中央服务器负载过重,使得服务质量难以保障。
而基于点对点协议(P2P,即Peer-to-Peer)的系统具有负载均衡、自适应、自组织和容错力强等优点。在基于点对点协议的网络拓扑结构中,所有用户设备(例如,个人电脑)的角色、行为、责任和义务都是完全平等的。这种网络拓扑结构的用户设备,可以跳过中央服务器直接在用户设备和用户设备之间交换数据。每个用户设备既是服务器又是客户端,在向一个其它用户设备下载数据的同时也可以向另一个其它用户设备传输数据。因此,网络中的用户设备越多,数据传输的速度就越快,网络的带宽效率和可靠性都得到了大幅的提升。
现有技术的基于点对点协议的对数据块进行传送的方法主要有以下两种。传送方法A主要包括以下步骤:(1)当用户设备需要得到数据块时,该用户设备向相连的其他用户设备发送请求;(2)相连的其他用户设备接收请求后发送相应响应消息,并将该数据块传送给该用户设备。该方法A主要适用于传送普通优先级的数据块。传送方法B:当用户设备得到数据块后,直接向相连的其它用户设备发送,而不查询相连的其它用户设备是否已有该数据块。该传送方法B可以适用于在短时间内向网络内所有用户设备传送较小的数据块的情形,但是由于发送数据前并不查询相连的其它用户设备是否已有该数据块文件,采用该传送方法可能造成重复传输,从而占用大量带宽。而传送方法A由于要求用户设备在每次接收数据前都发送请求命令,并不适用于大量用户在短时间需要得到同一数据文件的情形。
基于以上分析不难看出,对于如何快速地在短时间内向网络内的所有用户设备传送数据块(例如,在网络电视平台中向所有用户设备传送广告文件)而不重复占用带宽,目前尚无成熟的可行方案。
发明内容
为了解决现有技术存在的上述问题,实现快速地在短时间内向网络内的多个用户设备传送数据块,特提出本发明。
根据本发明的第一方面,提供了一种在用户设备中用于基于点对点协议对数据块进行传送的方法,其特征在于,包括以下步骤:判断与本用户设备相连的一个或多个其它用户设备是否需要所述数据块;如果所述一个或多个其它用户设备中的一个或多个需要所述数据块,则向所述一个或多个其它用户设备中的一个或多个发送所述数据块。
根据本发明的第二方面,提供了一种在用户设备中用于基于点对点协议获取数据块的方法,其特征在于,包括以下步骤:接收来自与本用户设备相连的另一用户设备的查询消息,所述查询消息用于查询本用户设备是否需要所述数据块;根据所述查询消息判断本用户设备是否需要获取所述数据块;如果本用户设备需要获取所述数据块,则发送响应消息至所述另一用户设备;从所述另一用户设备获取所述数据块。
根据本发明的第三方面,提供了一种在用户设备中用于基于点对点协议对数据块进行传送的数据块传送装置,其特征在于,包括:判断装置,用于判断与本用户设备相连的一个或多个其它用户设备是否需要所述数据块;第一发送装置,用于如果所述一个或多个其它用户设备中的一个或多个需要所述数据块,向所述一个或多个其它用户设备中的一个或多个发送所述数据块。
根据本发明的第四方面,提供了一种在用户设备中用于基于点对点协议获取数据块的数据块获取装置,其特征在于,包括:查询接收装置,用于接收来自与本用户设备相连的另一用户设备的查询消息,所述查询消息用于查询本用户设备是否需要所述数据块;查询判断装置,用于根据所述查询消息判断本用户设备是否需要获取所述数据块;查询响应装置,用于当本用户设备需要获取所述数据块,则发送响应消息至所述另一用户设备;第三获取装置,用于从所述另一用户设备获取所述数据块。
采用本发明提供的技术方案向网络内的多个用户设备传送数据块,可以将对带宽的占用降低到现有技术的三十分之一,速度提高至十倍以上,同时可以解决现有技术中由于网络拥堵而造成的部分用户设备无法获取该数据块的问题,确保在短时间内所有目标用户设备都能够获取该数据块。优选地,在网络电视的广告传送中使用本发明的技术方案,可以将广告的点击率提高两倍以上。
附图说明
通过阅读参照以下附图所作的对非限制性实施例所作的详细描述,本发明的其它特征、目的和优点将会变得更明显:
图1为根据本发明的一个具体实施方式的基于点对点(P2P)协议的网络结构示意图;
图2为根据本发明的一个具体实施方式的基于点对点协议对数据块进行传送的方法流程图;
图3为根据本发明的一个具体实施方式的判断相连的其他用户设备是否需要数据块的方法流程图;
图4(a)为根据本发明一个具体实施方式的信息列表的格式示意图;
图4(b)为根据本发明一个具体实施方式的块状态相关信息的格式示意图;
图4(c)为根据本发明一个具体实施方式的待更新的块状态相关信息的格式示意图;
图5为与本发明的一个变化例相对应的判断相连的其它用户设备是否需要数据块的方法流程图;
图6为与本发明的一个变化例相对应的判断相连的其它用户设备是否没有数据块的方法流程图;
图7为根据本发明的一个具体实施方式的用户设备从应用服务器获取数据块的方法流程图;
图8为根据本发明的一个具体实施方式的在用户设备中用于基于点对点协议对数据块进行传送的数据块传送装置框图;
图9为根据本发明一个具体实施方式的用于判断相连的其他用户设备是否需要数据块的判断装置框图;
图10为根据本发明一个优选例的基于块状态信息判断相连的其它用户设备是否没有数据块的状态判断装置框图;
图11为根据本发明的一个具体实施方式的从应用服务器获取数据块的数据块传送装置框图;
图12为根据本发明第四方面在用户设备中用于基于点对点协议获取数据块的数据块获取装置框图。
具体实施方式
下面结合附图对本发明作进一步详细描述。为方便理解,首先解释与本发明中所用的术语。
-信息列表:包含应用服务器上一个或者多个数据块的相关信息,该相关信息可以包括每个数据块的名称和优先级信息等。信息列表由应用服务器生成,之后传送到网络中的每个用户设备。
-块状态相关信息:由用户设备根据信息列表生成,用于指示信息列表中每个数据块在用户设备中的状态:已存在、没有或者正在下载中。块状态相关信息中还包括信息列表的版本信息。
-数据块:本说明书中提及的数据块,可以包括文件或文件分片,数据块可以为广告文件或广告文件的分片。优选的,考虑到对系统带宽的占用,数据块所占用的存储空间不超过1M。本领域技术人员可以理解,本发明的技术方案可以适用于任何大小的数据块,上述提及的对数据块的大小的示例不对本发明的保护范围构成限定。
-用户设备:本说明书中,将基于点对点(P2P)协议的网络中的客户主机统称为用户设备,用户设备有可能直接从应用服务器获取数据块,也可能从其它用户设备获取数据块。图1所示的根据本发明的一个具体实施方式的基于点对点(P2P)协议的网络拓扑结构示意图中包括多个用户设备和一个应用服务器,为简明起见,图中仅列出7个用户设备。应用服务器保存需要传送的数据块,可以生成最新的信息列表。用户设备在无法从其它用户设备获取所需数据块时,可以从该服务器获取所需数据块。
-相连的其它用户设备:即与当前用户设备之间由有效的通信链路连接可以互通信息的用户设备。
-第一层用户设备:本说明书中,将从服务器获取数据块的用户设备统称为第一层用户设备。例如,如图1所示,如果用户设备1、用户设备2和用户设备3从服务器直接获取目标数据块,则用户设备1、用户设备2和用户设备3被统称为第一层用户设备。第一层用户设备在得到该数据块后,可以主动将该数据块传送给相连的其它用户设备,例如,用户设备1可以将该数据块传送给用户设备4和用户设备5。本领域技术人员可以理解,这里的“第一层用户设备”是针对具体的数据块而言,只是为了表述方便。实际上“第一层用户设备”与网络中所有用户设备具有的功能完全相同。例如,在获取某些数据块时,图1中所示的用户设备5也有可能成为“第一层用户设备”,即每个用户设备既可能从相连的其它用户设备获取数据块,也可能从应用服务器获取数据块。
以下结合图2至5对本发明的具体实施例进行描述。
以下结合本发明的第一方面和第二方面的实施例,从系统的角度对本发明的技术方案进行详细描述。
图2为根据本发明的一个实施例的在用户设备中用于基于点对点协议对数据块进行传送的方法流程图。以下参照图2并结合图1对用户设备1中用于基于点对点协议对数据块进行传送的方法进行详细地说明。
图1中的用户设备1已有需要传送的数据块,需要将其传送给相连的其它用户设备。
首先,在步骤S10中,用户设备1判断与其相连的用户设备2、用户设备4、用户设备5和用户设备6中的每一个是否需要获取该数据块。以下对用户设备1判断用户设备2是否需该数据块的判断过程进行详细说明。
当然,在步骤S10中的判断前,用户设备1和用户设备2都已进入网络,并且相互之间已经建立连接。现有技术对此已有成熟的支持方案,例如,如果在利用Kademlia的P2P网络中,用户设备1和用户设备2可以通过分别将对方加入自己的k-buckets实现相互连接(具体参见http://www.cnblogs.com/neoragex2002/default.html?page=4)。
具体地,步骤S 10又可以细分为如图3所示的两个子步骤S1011和S1012。图3为根据本发明的一个具体实施方式的判断相连的其它用户设备是否需要数据块的方法流程图。
首先,在步骤S1011中,用户设备1先向用户设备2发送查询消息,该查询消息用于查询用户设备2是否需要该数据块。如果网络协议为TCP/IP协议,该查询信息中可以包括源用户设备(即用户设备1)和目标用户设备(即用户设备2)的端口和ip地址信息,需要传输的数据块的标识信息等各种信息。其中,至少包括需要传输的数据块的标识信息和目标用户设备(即用户设备2)的地址信息。用户设备2在接收到该查询消息后查看本机中该数据块的状态。如果用户设备2不需要从用户设备1得到该数据块(例如,用户设备2中已有该数据块,或者用户设备2正从用户设备3或者应用服务器下载该数据块),则向用户设备1发送响应消息告知用户设备2不需要该数据块;否则,向用户设备1发送响应消息告知用户设备2需要该数据块。
以下对用户设备2在接收到来自用户设备1的查询消息后,如何判断其是否需要用户设备1所查询的数据块的过程进行详细地说明。以用户设备1向用户设备2查询是否需要数据块《绿色奥运》为例进行说明。
首先,对用户设备2中的信息列表和块状态相关信息作进一步描述。
图4(a)为信息列表的格式示意图。信息列表中包括当前用户设备可以从服务器上得到(但非必须从服务器得到)的一个或多个数据块的相关信息。如图4(a)所示,信息列表中包含每个数据块的数据块名、优先级,以及该信息列表自身的版本信息。其中,数据块的优先级信息指示了该数据块在网络中的传送方式。本领域技术人员可以理解,在一个网络系统中,不同优先级的文件可能采用不同的传送方式。对于高优先级的文件,如果目标用户设备需要,可以采用不计带宽的方法在最短时间内将其传送到目标用户设备。对于低优先级的文件,在不影响高优先级文件传送的前提下才进行传送。可以预设何种优先级对应何种传送方法。
图4(b)为块状态相关信息的格式示意图。图4(b)中所示的结构包括:信息列表的版本信息、对应信息列表中每个数据块在当前用户设备中的状态。该版本信息用来确定对应的信息列表,信息列表中的文件与块状态相关信息中的文件一一对应。本领域技术人员可以理解,此处提及的版本信息并不仅限于信息列表的版本信息,可以是包含信息列表的版本信息在内的其它信息,例如,该信息列表的MD5校验码(关于MD5校验的详细信息,可参考,本发明这里不再赘述)。假设用户设备2中存在如图4(a)中所示的信息列表和图4(b)所示的块状态相关信息。由于该信息列表与该块状态相关信息中的信息列表版本信息相同,可以认为该块状态相关信息对应该信息列表。从块状态信息中可以看出,用户设备2中已有数据块《股市及时看》、没有数据块《绿色奥运》、数据块《机器猫》正在下载过程中。
首先,用户设备2获取含有数据块《绿色奥运》的相关信息的如图4(a)中所示的信息列表,该信息列表中包含数据块《股市及时看》、《绿色奥运》和《机器猫》的数据块名、数据块优先级和数据块地址等其他相关信息。在具体实践中,信息列表中的相关信息还可以包括数据块大小、数据块生成时间、数据块传送限速、数据块数字签名等。
接着,用户设备2根据该信息列表生成或更新本用户设备中的块状态相关信息。
假设,用户设备2中原本没有块状态相关信息,则用户设备2得到图4(a)中所示的信息列表后,查看本用户设备中是否有数据块《股市及时看》、数据块《绿色奥运》和数据块《机器猫》。假设,用户设备中已有数据块《股市及时看》、没有数据块《绿色奥运》、数据块《机器猫》正在下载过程中,则用户设备2更新本用户设备中的块状态信息,将块状态相关信息中数据块《股市及时看》的状态标记为“已有”,数据块《绿色奥运》的状态标记为“没有”,数据块《机器猫》的状态标记为“正在下载中”。并且,更新块状态相关信息中信息列表的版本信息,生成如图4(b)所示的块状态相关信息。
假设,用户设备2中原有如图4(c)所示的块状态相关信息。图4(c)为根据本发明一个具体实施方式的待更新的块状态相关信息的格式示意图。则用户设备2得到图4(a)中所示的信息列表后,对比信息列表中和原块状态相关信息中的所包含的数据块,得知信息列表中新增加了数据块《绿色奥运》的相关信息,则将数据块《绿色奥运》的状态信息加入块状态相关信息,并且更新块状态相关信息中信息列表的版本信息,生成如图4(b)所示的块状态相关信息。
用户设备2收到来自用户设备1的查询用户设备2是否需要数据块《绿色奥运》的查询消息后,根据该查询消息、用户设备2中的信息列表和块状态相关信息,判断是否需要获取数据块《绿色奥运》。例如,信息列表中包含数据块《绿色奥运》的相关信息,且该相关信息指示用户设备2应有该数据块。并且,块状态相关信息指示用户设备2中没有数据块《绿色奥运》。基于以上信息,判断用户设备2需要从用户设备1接收该数据块,则向用户设备1发送用于指示需要从用户设备1接收该数据块的响应消息。
优选的,用户设备2可以通过查询消息、信息列表中数据块《绿色奥运》的优先级和块状态相关信息判断是否需要从用户设备1得到数据块《绿色奥运》。信息列表中的优先级直接用于指示数据块在网络中的传送方式。假设,约定优先级为1的数据块应该采用本发明的技术方案进行传送。则用户设备1得到优先级为1的数据块《绿色奥运》则主动将其传送给相连的其它用户设备;而用户设备2如果没有优先级为1的数据块《绿色奥运》,则认为其需要从其他用户设备,例如用户设备1处接收。
以上对用户设备2在接收到来自用户设备1的查询消息后,如何判断其是否需要用户设备1所查询的数据块的过程进行详细说明。本领域技术人员可以理解,用户设备2除通过信息列表、块状态相关信息和查询信息,判断是否需要获取该数据块之外,还可以通过其它方法(例如,将在同一文件中保存本用户设备中每个数据块的名称和状态)进行判断,因此上述优选例不对本发明的技术方案构成限制。
然后,在步骤S1012中,用户设备1接收来自用户设备2的响应消息,根据响应消息判断用户设备2是否需要该数据块。
然后,在步骤S11中,用户设备1根据步骤S10中生成的判断信息得知用户设备2是否需要该数据块,如果需要,则用户设备1向用户设备2发送该数据块。至此完成对用户设备2传输数据块的过程。
在以上优选例中,用户设备2在接收到数据块后,基于接收到的数据块更新块状态相关信息,以免造成重复传输。例如,在接收到数据块《绿色奥运》时,将《绿色奥运》对应的状态信息由“无”修改为“正在下载中”;在接收完毕后,将《绿色奥运》对应的状态信息由“正在下载中”修改为“已有”。
为了实现使某个数据块能够快速地在网络中传送的目标,网络中每一个已有该数据块的用户设备都需要对与其相连的其它用户设备执行步骤S10和步骤S11,以使所有与其相连的其它用户设备能够及时地获取该数据块。获取到数据块的其它用户设备再对相连的用户设备执行步骤S10和步骤S11,以此类推。这样,该数据块被由点及面的在整个网络的用户设备中扩散开,以实现短时间内快速传送给大量用户设备。需要注意的是,对于每个用户设备来说,在对其相连的其它用户设备执行步骤S10和步骤S11时,不再对将数据块传送给它的用户设备进行重复查询。即,如果用户设备1向用户设备2传送数据块,则用户设备2在收到数据块后不再向用户设备1发出是否需要该数据块的查询请求。
下面结合图1举例说明,假设网络电视系统内有《绿色奥运》公益广告的文件,需要在短时间内将其传送给所有用户设备,以备在需要时不需要下载即可立即播放。用户设备1从应用服务器得到《绿色奥运》的文件后,立即发送查询请求给用户设备2、用户设备4、用户设备5和用户设备6中的每一个。假设用户设备2、用户设备4、用户设备5没有该公益短片,而用户设备6已有该文件。该四个用户设备分别针对该查询请求向用户设备1发送响应消息。通过响应消息,用户设备1得知用户设备2、用户设备4、用户设备5需要从用户设备1得到该公益短片,而用户设备6不需要从用户设备1得到该公益短片。因此,用户设备1向用户设备2、用户设备4、用户设备5分别传送《绿色奥运》的公益短片。在用户设备2、用户设备4、用户设备5得到该公益短片后,则分别开始查询与其相连的用户设备是否需要《绿色奥运》的公益短片。以用户设备2为例,其相连的用户设备为用户设备1、用户设备3和用户设备7。用户设备2向用户设备3和用户设备7发送查询请求,以及步骤S10和步骤S11中包含的其他操作。但用户设备2无需向用户设备1发送查询请求,因为用户设备1为用户设备2的下载源,认为用户设备1已有该公益短片,无需传送。
作为上述实施例的一个变化例,用户设备1在步骤S10中判断与之相连的一个或多个其他用户设备是否需要数据块的过程,还可以通过如图5所示的两个子步骤来完成。图5为该变化例相对应的判断相连的其它用户设备是否需要数据块的方法流程图。
首先,在步骤S1021中,用户设备1获取与其相连的一个或者多个用户设备中的与需要传送的数据块相关的块状态相关信息。
具体地,获取相连用户设备中的信息已是一项较为成熟的现有技术。例如可以采用以下步骤:用户设备1向用户设备2发出需要获取与数据块相关的块状态相关信息的请求;用户设备1和用户设备2相互校验实现根据安全协议约定好的密码记其长度,如果校验正确则建立安全通道。在安全通道建立后,用户设备1即可得到与其相连的一个或多个其它用户设备的块状态相关信息。
然后,在步骤S1022中,用户设备1基于已获取的块状态相关信息判断与其相连的一个或多个其它用户设备中的一个或多个是否需要所述数据块。由于每个用户设备的块状态相关信息中包括了其可以得到的数据块的状态(已有、无、正在下载中),用户设备1可以容易地基于块状态相关信息判断与其相连的一个或者多个用户设备中是否需要所述数据块。如图1所示的网络拓扑结构,用户设备2中数据块《绿色奥运》的状态为“无”,则用户设备1认为用户设备2需要数据块《绿色奥运》。
优选的,用户设备1获取的来自与之相连的用户设备的块状态相关信息中还可以包括该相连用户设备中的信息列表的版本信息。图4所示的步骤S 1022又可细分为如图6所示的三个子步骤。图6为与本发明的一个变化例相对应的判断相连的其它用户设备是否没有数据块的方法流程图;这里仍以图1中所示的用户设备1判断用户设备2是否需要数据块《绿色奥运》为例。
首先,在步骤S10221中,用户设备1基于在步骤S1021中获取到的用户设备2的块状态相关信息判断用户设备1和用户设备2中的信息列表版本是否相同。用户设备1可以从本用户设备的文件列表或者块状态相关信息中得到用户设备1的文件列表版本信息,将该文件列表版本信息和用户设备2的块状态相关信息中的用户设备2的文件列表版本信息进行比较。如果该两个文件列表版本信息不同,则认为用户设备1和用户设备2中的文件列表不同,无法根据用户设备2的块状态相关信息判断用户设备2是否已有《绿色奥运》的数据块,用户设备1不对用户设备2传送《绿色奥运》的数据块。如果该两个文件列表版本信息相同,则认为用户设备1和用户设备2中的文件列表相同,继续步骤S10222的操作。
在步骤S10222中,用户设备1根据用户设备2的块状态相关信息判断用户设备2是否没有《绿色奥运》的数据块。由于用户设备1中的文件列表和用户设备2中的文件列表相同,可以通过用户设备2的块状态相关信息得到用户设备2中没有《绿色奥运》的数据块。
在步骤S10223中,根据步骤S10222中的判断结果,确定用户设备2是否需要《绿色奥运》的数据块。如用户设备2已有或正在下载《绿色奥运》,则用户设备2不需要从用户设备1获取该数据块。如用户设备2中没有《绿色奥运》的数据块,则用户设备2需要《绿色奥运》的数据块,本例即为此种情形。
本实施例描述了用户设备在已有需传送的数据块的情形下,将该数据块传送给相连的其它用户设备的过程。对于整个网络而言,要实现所有用户设备都得到某一数据块,必须先由一些用户设备从服务器获取该数据块。本说明书中将这些节点称为第一层用户设备。第一层用户设备可以通过上文中描述的方法,将所获取的数据块传送给与其相连的其它用户设备(第二层用户设备)。第二层用户设备再将其向其它用户设备传送,以此类推。可以理解,每一个向其它用户设备传送数据块的用户设备都必须先获取该数据块。获取该数据块有两种途径:从服务器获取或从其它用户设备获取。下面对根据本发明的另一个实施例对用户设备1从应用服务器获取数据块的情形进行具体描述。
图7为根据本发明的一个实施例的用户设备从应用服务器获取数据块的方法流程图。以图1所示的网络拓扑结构为例,对用户设备1从应用服务器获取数据块的方法流程图的过程进行详细说明。为例参照图6并结合图1和图4进行描述。本实施例中,信息列表和块状态相关信息的定义与上文中的定义相同,此处不再赘述。
假设,在应用服务器新增公益短片《绿色奥运》的数据块,且需要在短时间内将该数据块传送到网络内的所有用户设备。应用服务器在得到该数据块后生成如图4(a)所示的包含该数据块相关信息的信息列表。可预先约定,每个用户设备都应有所有优先级为1的数据块,且在得到该数据块后,可以采用上文所述的方法将该数据块传送给相连的其它用户设备。本领域技术人员可以理解,数据块的传送方式可以根据优先级确定,也可以根据约定通过文件名、文件位置或其它数据块相关信息进行确定。本实施例中通过优先级确数据块传送方式的示例为一优选例,并不构成对本发明保护范围的限定。
首先,在步骤S20中,用户设备1获取包含数据块信息的信息列表。用户设备可以从应用服务器直接获取或者通过请求从其它用户设备下载该信息列表。在本实施例中,用户设备1获取的信息列表如图4(a)所示,该信息列表中包含新增数据块《绿色奥运》的相关信息。
其次,在步骤S21中,用户设备1基于在步骤S20中获取的信息列表,判断本用户设备是否需要获取新的数据块。首先,根据信息列表中的相关信息(例如,优先级、文件名、文件位置)和事先约定好的协议判断本用户设备需要得到哪些数据块。接着,逐一查看这些数据块在本用户设备中的状态,如果状态为没有,则认为本用户设备需要获取该数据块。如果,本用户设备已有或者正在下载该数据块,则不再进行其它操作。假设,用户设备1应有所有优先级为1的数据块,则用户设备1通过读取信息列表中的信息得到:用户设备1应有数据块《绿色奥运》。接着,用户设备1查看数据块《绿色奥运》在本用户设备中的状态,得知用户设备1中没有数据块《绿色奥运》,认为本用户设备需要得到该数据块。
然后,在步骤S22中,用户设备1向应用服务器发送下载该数据块的请求。
通常,为了减少服务器的负荷,应该优先从相连的其它用户设备获取数据块。因此,具体实践中,用户设备1可以先等待其它用户设备传送该数据块给本用户设备,如果一定时间(例如60s)内没有收到,再向应用服务器发送下载请求。
优选的,在用户设备1向应用服务器发送下载请求前,可以先向相连的其它用户设备发送查询消息,查看相连的一个或多个其它用户设备中该数据块的状态。如果一个或多个其它用户设备中有一个或多个已有该数据块,或正在下载该数据块,则不向应用服务器发送下载请求,等待其它用户设备传送数据块给本用户设备。
优选的,也可以约定一个限额,应用服务器只对不超过该限额数量的用户设备发送数据块。如果一个用户设备向服务器发送请求时,服务器已经对该限额数量的用户设备发送了数据块,则不再向该用户设备发送。该用户设备等待相连的其它用户设备向其传送该数据块。举例来说,在限额为50的情况下,用户设备1向应用服务器发送下载数据块《绿色奥运》的请求,如果应用服务器已经向50个用户设备发送了《绿色奥运》,则用户设备1不能再从服务器下载该数据块,必须等待相连的其它用户设备传送。采用这一优选例,能够很好的控制服务器的带宽负荷。
最后,在步骤S23中,用户设备1从所述应用服务器上下载数据块《绿色奥运》。
需要注意的是,用户设备中的块状态相关信息是基于该用户设备中的文件列表和数据块的状态得到的。因此,在用户设备1得到新的文件列表或者得到/删除数据块之后,需要更新本用户设备的块状态相关信息。在用户设备1获得数据块《绿色奥运》后,将块状态相关信息中的对应位更新为“已有”。在步骤S20中获得信息列表后,用户设备1也应从块状态相关信息中删除或增加相应的信息。
优选的,用户设备1在获取信息列表后更新本用户设备中的块状态相关信息,更新后的块状态相关信息如图4(b)所示。在步骤S21中,用户设备通过信息列表判断本用户设备应有应有哪些数据块。假设,信息列表指示用户设备1应有数据块《绿色奥运》。接着,读取块状态相关信息,从中获取该数据块的状态,最后基于上述信息判断是否需要从应用服务器获取该数据块。假设,块状态相关信息指示用户设备1中没有数据块《绿色奥运》,则认为需要从应用服务器获取该数据块。
在本实施例中,对用户设备从服务器获取数据块的过程进行了详细的描述。用户设备也可以采用从相连的其它用户设备获取数据块的方法获取数据块。例如,本发明第一个实施例中的用户设备2从用户设备1获取数据块。
图8示出了根据本发明的第三方面在用户设备中用于基于点对点协议对数据块进行传送的数据块传送装置1的结构框图,该数据块传送装置1包括判断装置10和第一发送装置11。
以下以图1所示的网络拓扑结构为例,对位于用户设备1中的数据块传送装置1用于基于点对点协议对数据块进行传送的过程进行详细说明。
图1中的用户设备1已有需要传送的数据块,需要将其传送给相连的其它用户设备。
首先,判断装置10判断与用户设备1相连的用户设备2、用户设备4、用户设备5和用户设备6中的每一个是否需要获取该数据块。用户设备1从而知晓与其相连的其它用户设备中的每一个是否需要获取该数据块。以下对判断装置10判断用户设备2是否需要该数据块的判断过程进行详细的说明。
当然,在判断装置10进行判断前,用户设备1和用户设备2都已经进入网络,并且相互之间已建立连接。现有技术对此已有成熟的支持方案,例如,在利用Kademlia的P2P网络中,用户设备1和用户设备2可以通过分别将对方加入自己的k-buckets实现相互连接(具体参见http://www.cnblogs.com/neoragex2002/default.html?page=4)。
具体的,判断装置10中又可以包括如图6所示的两个子装置:查询装置100和接收判断装置101。
查询装置100用于从用户设备1向用户设备2发送查询消息,该查询消息用于查询用户设备2是否需要该数据块。如果网络协议为TCP/IP协议,该查询信息中可以包括源用户设备(即用户设备1)和目标用户设备(即用户设备2)的端口和ip地址信息,需要传输的数据块的标识信息等各种信息。其中,至少包括需要传输的数据块的标识信息和目标用户设备(即用户设备2)的地址信息。用户设备2在接收到该查询消息后查看本机中该数据块的状态。如果用户设备2不需要从用户设备1得到该数据块(例如,用户设备2中已有该数据块,或者用户设备2正从用户设备3或者应用服务器下载该数据块),则向用户设备1发送响应消息告知用户设备2不需要该数据块;否则,向用户设备1发送响应消息告知用户设备2需要该数据块。
然后,接收判断装置101接收来自用户设备2的响应消息,根据响应消息生成用户设备2是否需要该数据块的判断信息,并将该判断信息传递给第一发送装置。
然后,第一发送装置11根据判断装置10生成的判断信息得知用户设备2是否需要该数据块,如果需要,则用户设备1向用户设备2发送该数据块。至此完成对用户设备2传输数据块的过程。
为了实现使某个数据块能够快速地在网络中传送的目标,网络中每一个已有该数据块的用户设备都需要通过本用户设备中的数据块传送装置1对与其相连的其它用户设备执行上文所述的传送步骤,以使所有与其相连的其它用户设备能够及时地获取该数据块。获取到数据块的其它用户设备再通过本用户设备中的数据块传送装置1对与其相连的其它用户设备执行该传送步骤,以此类推。这样,该数据块被由点及面的在整个网络的用户设备中扩散开,以实现短时间内快速传送给大量用户设备。需要注意的是,对于每个用户设备来说,在本用户设备中的数据块传送装置1对与其相连的其它用户设备分别执行传送步骤时,不再对将该数据块传送给它的用户设备进行重复判断。即,如果用户设备1向用户设备2传送数据块,则用户设备2不再判断用户设备1是否需要该数据块。下面结合图1举例说明,假设网络电视系统内有《绿色奥运》公益广告的文件,需要在短时间内将其传送给所有用户设备,以备在需要时不需要下载即可立即播放。用户设备1从应用服务器得到《绿色奥运》的文件后,用户设备1的数据块传送装置1立即发送查询请求给用户设备2、用户设备4、用户设备5和用户设备6中的每一个。假设用户设备2、用户设备4、用户设备5没有该公益短片,而用户设备6已有该文件。该四个用户设备分别针对该查询请求向用户设备1的接收判断装置101发送响应消息。通过响应消息,用户设备1的数据块传送装置1得知用户设备2、用户设备4、用户设备5需要从用户设备1得到该公益短片,而用户设备6不需要从用户设备1得到该公益短片,并将此判断消息传递给第一发送装置11。因此,用户设备1的第一发送装置11向用户设备2、用户设备4、用户设备5分别传送《绿色奥运》的公益短片。在得到该公益短片后,用户设备2、用户设备4、用户设备5分别通过本用户设备1的判断装置10判断与其相连的用户设备是否需要《绿色奥运》的公益短片。以用户设备2为例,其相连的用户设备为用户设备1、用户设备3和用户设备7。用户设备2通过判断装置分别判断用户设备3和用户设备7是否需要该公益短片,如果需要则向其分别发送。但用户设备2的数据块传送装置1无需判断用户设备1是否需要该公益短片,因为用户设备1为用户设备2的下载源,直接认为用户设备1已有该公益短片,无需传送。
作为上述实施例的一个变化例,判断装置10还可以包括如图9所示的两个子装置:状态获取装置102和状态判断装置103。图9示出了根据本发明一个具体实施方式的用于判断相连的其他用户设备是否需要数据块的判断装置框图。
状态获取装置102用于获取与其相连的一个或者多个用户设备中的与需要传送的数据块相关的块状态相关信息,并将所获取的块状态信息传递给状态判断装置103。
具体地,获取相连用户设备中的信息已是一项较为成熟的现有技术。例如可以采用以下方法:用户设备1的状态获取装置102向用户设备2发出需要获取与数据块相关的块状态相关信息的请求;用户设备1和用户设备2相互校验实现根据安全协议约定好的密码记其长度,如果校验正确则建立安全通道。在安全通道建立后,用户设备1的状态获取装置102即可得到与其相连的一个或多个其它用户设备的块状态相关信息,并将所获取的块状态信息传递给状态判断装置103。
状态判断装置103用于基于已获取的块状态相关信息判断与其相连的一个或多个其它用户设备中的一个或多个是否需要所述数据块。由于每个用户设备的块状态相关信息中包括了其可以得到的数据块的状态(已有、无、正在下载中),用户设备1的状态判断装置103可以容易地基于状态获取装置102所获取的相连的其它用户设备的块状态相关信息判断与其相连的一个或者多个用户设备中是否需要所述数据块。如图1所示的网络拓扑结构,用户设备2的块状态信息中数据块《绿色奥运》的状态为“无”,则用户设备1的状态判断装置102认为用户设备2需要数据块《绿色奥运》。至此,完成对用户设备2是否需要该数据块的判断,并将所生成的判断信息传递给第一发送装置。
优选的,用户设备1的状态获取装置102获取的来自与之相连的用户设备的块状态相关信息中还可以包括该相连用户设备中的信息列表的版本信息。状态判断装置103又可细分为如图10所示的三个子装置:版本判断装置1030、条件状态判断装置1031和确定装置1032。这里仍以图1中所示的位于用户设备1中的数据块状送装置1中的状态判断装置103判断用户设备2是否需要数据块《绿色奥运》为例。
版本判断装置1030根据状态获取装置102获取到的用户设备2的块状态相关信息判断用户设备1和用户设备2中的信息列表版本是否相同。版本判断装置1030从本用户设备的文件列表或者块状态相关信息中得到用户设备1的文件列表版本信息,将该文件列表版本信息和用户设备2的块状态相关信息中的用户设备2的文件列表版本信息进行比较。如果该两个文件列表版本信息不同,则认为用户设备1和用户设备2中的文件列表不同,无法根据用户设备2的块状态相关信息判断用户设备2是否已有《绿色奥运》的数据块,用户设备1不对用户设备2传送《绿色奥运》的数据块。如果该两个文件列表版本信息相同,则认为用户设备1和用户设备2中的文件列表相同。版本判断装置1030生成用户设备1和用户设备2中的文件列表的版本相同的第一判断信息。
如果版本判断装置1030生成的第一判断信息指示用户设备2的信息列表和用户设备1的信息列表的版本相同,则条件状态判断装置1031根据用户设备2的块状态相关信息判断用户设备2是否没有《绿色奥运》的数据块。由于用户设备1中的文件列表和用户设备2中的文件列表相同,可以通过用户设备2的块状态相关信息得到用户设备2中没有《绿色奥运》的数据块。条件状态判断装置1031生成用户设备2是否没有该数据块的第二判断信息。
如果条件状态判断装置1031生成的第二判断信息指示用户设备2没有该数据块,则确定装置1032生成用户设备2需要该数据块的确定信息。如用户设备2已有或正在下载《绿色奥运》,则用户设备2不需要从用户设备1获取该数据块。确定装置1032生成该确定信息,并将其传递给第一发送装置11。
本实施例描述了数据块传送装置1在用户设备已有需传送的数据块的情形下,将该数据块传送给相连的其它用户设备的过程。对于整个网络而言,要实现所有用户设备都得到某一数据块,必须先由一些用户设备从服务器获取该数据块。本说明书中将这些节点称为第一层用户设备。第一层用户设备可以通过上文中描述的方法,将所获取的数据块传送给与其相连的其它用户设备(第二层用户设备)。第二层用户设备再将其向其它用户设备传送,以此类推。可以理解,每一个向其它用户设备传送数据块的用户设备都必须先获取该数据块。下面对根据本发明的另一个实施例对用户设备1获取数据块的情形进行具体描述。
图11为根据本发明的另一个实施例的可用于获取数据块的数据块传送装置1的结构框图。如图11所示,数据块传送装置1还包括第一获取装置12。第一获取装置12用于获取需要传送的数据块。用户设备1可以通过第一获取装置12从与本用户设备相连的其它用户设备中的一个得到该数据块。第一获取装置12也可以包括第二获取装置123。第二获取装置123,用于从应用服务器获取该数据块。
以下以图1所示的网络拓扑结构为例,结合图11位于用户设备1中的数据块传送装置1’中的第一获取装置12从应用服务器获取数据块的过程进行详细说明。第一获取装置12还包括:第一列表获取装置120、列表判断装置121、第二发送装置122和第一状态更新装置124。本实施例中,信息列表和块状态相关信息的定义与上文中的定义相同,此处不再赘述。
假设,在应用服务器新增公益短片《绿色奥运》的数据块,且需要在短时间内将该数据块传送到网络内的所有用户设备。应用服务器在得到该数据块后生成如图4(a)所示的包含该数据块相关信息的信息列表。可预先约定,每个用户设备都应有所有优先级为1的数据块,且在得到该数据块后,可以采用上文所述的方法将该数据块传送给相连的其它用户设备。本领域技术人员可以理解,数据块的传送方式可以根据优先级确定,也可以根据约定通过文件名、文件位置或其它数据块相关信息进行确定。本实施例中通过优先级确数据块传送方式的示例为一优选例,并不构成对本发明保护范围的限定。
首先,第一列表获取装置120获取包含数据块信息的信息列表。第一列表获取装置120可以从应用服务器直接获取或者通过请求从其它用户设备下载该信息列表。在本实施例中,在本实施例中,第一列表获取装置120获取的信息列表如图4(a)所示,该信息列表中包含新增数据块《绿色奥运》的相关信息。第一列表获取装置120将所获取的信息列表传递给列表判断装置121。
接着,列表判断装置121根据第一列表获取装置120获取的信息列表,判断本用户设备是否需要获取新的数据块。首先,列表判断装置121根据信息列表中的相关信息(例如,优先级、文件名、文件位置)和事先约定好的协议判断本用户设备需要得到哪些数据块。接着,逐一查看这些数据块在本用户设备中的状态,如果数据块的状态为没有,则认为本用户设备需要获取该数据块。如果,本用户设备已有或者正在下载该数据块,则不再进行其它操作。假设,用户设备1应有所有优先级为1的数据块,则用户设备1通过读取信息列表中的信息得到数据块《绿色奥运》的优先局为1,则用户设备1应有数据块《绿色奥运》。接着,用户设备1查看数据块《绿色奥运》在本用户设备中的状态,得知用户设备1中没有数据块《绿色奥运》,认为本用户设备需要得到该数据块。列表判断装置121生成判断本用户设备是否需要获取该数据块的信息,并将其传递给第二发送装置122。
如果列表判断装置121生成本用户设备需要获取该数据块的信息,则第二发送装置122向应用服务器发送下载该数据块的请求。
为了减少服务器的负荷,应该优先从相连的其它用户设备获取数据块。因此,具体实践中,第二发送装置122可以先等待其它用户设备传送该数据块给本用户设备,如果一定时间(例如60s)内没有收到,再向应用服务器发送下载请求。
优选的,在第二发送装置122向应用服务器发送下载请求前,可以先向相连的其它用户设备发送查询消息,查看相连的一个或多个其它用户设备中该数据块的状态。如果一个或多个其它用户设备中有一个或多个已有该数据块,或正在下载该数据块,则不向应用服务器发送下载请求,等待其它用户设备传送数据块给本用户设备。
优选的,也可以约定一个限额,应用服务器只对不超过该限额数量的用户设备发送数据块。如果第二发送装置122向服务器发送请求时,服务器已经对该限额数量的用户设备发送了数据块,则不再向该用户设备发送。该用户设备等待相连的其它用户设备向其传送该数据块。举例来说,在限额为50的情况下,用户设备1的第二发送装置122向应用服务器发送下载数据块《绿色奥运》的请求,如果应用服务器已经向50个用户设备发送了《绿色奥运》,则用户设备1不能再从服务器下载该数据块,必须等待相连的其它用户设备传送。采用这一优选例,能够很好的控制服务器的带宽负荷。
最后,第二获取装置123在收到第二发送装置122发送的请求消息的响应消息后,从所述应用服务器上下载数据块《绿色奥运》。
需要注意的是,用户设备中的块状态相关信息是基于该用户设备中的文件列表和数据块的状态得到的。因此,在用户设备1得到新的文件列表或者得到/删除数据块之后,需要更新本用户设备的块状态相关信息。第一状态更新装置124在用户设备1获得数据块《绿色奥运》后,将块状态相关信息中的对应该数据块的状态更新为“已有”。
优选的,第一状态更新装置124在获取信息列表后更新本用户设备中的块状态相关信息,更新后的块状态相关信息如图4(b)所示。列表判断装置121首先通过信息列表判断本用户设备应有哪些数据块。假设,信息列表指示用户设备1应有数据块《绿色奥运》。接着,列表判断装置121读取块状态相关信息,从中获取该数据块的状态,最后基于上述信息判断是否需要从应用服务器获取该数据块。假设,块状态相关信息指示用户设备1中没有数据块《绿色奥运》,则认为需要从应用服务器获取该数据块。
在本实施例中,对用户设备从服务器获取数据块的过程进行了详细的描述。用户设备也可以采用从相连的其它用户设备获取数据块的方法获取数据块。
图12示出了根据本发明第四方面在用户设备中用于基于点对点协议获取数据块的数据块获取装置2。该数据块获取装置2包括:查询接收装置21、查询判断装置22、查询响应装置23和第三获取装置24。
以下以图1所示的网络拓扑结构为例,对位于用户设备2中的数据块获取装置2用于基于点对点协议获取数据块的过程进行详细说明。图1中的用户设备1已有需要传送的数据块,并需要将该数据块传送给相连的其他用户设备。用户设备1向用户设备2发送查询消息,该查询消息用于查询用户设备2是否需要该数据块《绿色奥运》。
首先,查询接收设备21接收来自用户设备1的查询消息,该查询消息用于查询用户设备2是否需要数据块《绿色奥运》。查询接收设备21将该关于数据块《绿色奥运》的查询消息传递给查询判断装置22。
接着,查询判断装置22根据查询接收设备21接收的查询消息判断用户设备2是否需要获取该数据块。如果用户设备2中已有数据块《绿色奥运》或正在下载该数据块,则用户设备2不需要从用户设备1得到该数据块。如果用户设备2中没有该数据块,则用户设备2需要从用户设备1得到该数据块。查询判断装置22生成用户设备2是否需要获取该数据块的判断信息,并将其传递至查询响应装置23。
如果查询判断装置22生成的判断信息指示用户设备2需要获取该数据块,则向用户设备1发送响应消息告知用户设备2不需要该数据块;否则,向用户设备1发送响应消息告知用户设备2需要该数据块。
用户设备1在接收到用户设备2需要该数据块的响应后,即向用户设备传送该数据块《绿色奥运》。用户设备1中的第三获取装置从用户设备1获取该数据块。至此,数据块获取装置2完成从用户设备1获取数据块的过程。
优选的,数据块获取装置2还包括以下子装置:第二列表获取装置20和第三状态更新装置25。
为帮助理解,先对信息列表和块状态信息的概念作进一步的说明。
图4(a)为信息列表的格式示意图。信息列表中包括当前用户设备可以从服务器上得到(但非必须从服务器得到)的一个或多个数据块的相关信息。如图4(a)所示,信息列表中包含每个数据块的数据块名、优先级,以及该信息列表自身的版本信息。其中,数据块的优先级信息指示了该数据块在网络中的传送方式。本领域技术人员可以理解,在一个网络系统中,不同优先级的文件可能采用不同的传送方式。对于高优先级的文件,如果目标用户设备需要,可以采用不计带宽的方法在最短时间内将其传送到目标用户设备。对于低优先级的文件,在不影响高优先级文件传送的前提下才进行传送。可以预设何种优先级对应何种传送方法。
图4(b)为块状态相关信息的格式示意图。图4(b)中所示的结构包括:信息列表的版本信息、对应信息列表中每个数据块在当前用户设备中的状态。该版本信息用来确定对应的信息列表,信息列表中的文件与块状态相关信息中的文件一一对应。本领域技术人员可以理解,此处提及的版本信息并不仅限于信息列表的版本信息,可以是包含信息列表的版本信息在内的其它信息,例如,该信息列表的MD5校验码(关于MD5校验的详细信息,可参考,本发明这里不再赘述)。假设用户设备2中存在如图4(a)中所示的信息列表和图4(b)所示的块状态相关信息。由于该信息列表与该块状态相关信息中的信息列表版本信息相同,可以认为该块状态相关信息对应该信息列表。由此可知,用户设备2中已有数据块《股市及时看》、没有数据块《绿色奥运》、数据块《机器猫》正在下载过程中。
首先,第二列表获取装置20获取含有数据块《绿色奥运》的相关信息的如图4(a)中所示的信息列表,该信息列表中包含数据块《股市及时看》、《绿色奥运》和《机器猫》的数据块名、数据块优先级和数据块地址等其他相关信息。在具体实践中,信息列表中的相关信息还可以包括数据块大小、数据块生成时间、数据块传送限速、数据块数字签名等。第二列表获取装置20将获取的信息列表传递给第三状态更新装置25。
接着,第三状态更新装置25根据第二列表获取装置20获取的信息列表生成或更新本用户设备中的块状态相关信息。
假设,用户设备2中原本没有块状态相关信息,则第三状态更新装置25得到图4(a)中所示的信息列表后,查看本用户设备中是否有数据块《股市及时看》、数据块《绿色奥运》和数据块《机器猫》。假设,用户设备中已有数据块《股市及时看》、没有数据块《绿色奥运》、数据块《机器猫》正在下载过程中,则第三状态更新装置25更新本用户设备中的块状态信息,将块状态相关信息中数据块《股市及时看》的状态标记为“已有”,数据块《绿色奥运》的状态标记为“没有”,数据块《机器猫》的状态标记为“正在下载中”。并且,更新块状态相关信息中信息列表的版本信息,生成如图4(b)所示的块状态相关信息。
假设,用户设备2中原有如图4(c)所示的块状态相关信息。图4(c)为根据本发明一个具体实施方式的待更新的块状态相关信息的格式示意图。则第三状态更新装置25得到图4(a)中所示的信息列表后,对比信息列表中和原块状态相关信息中的所包含的数据块,得知信息列表中新增加了数据块《绿色奥运》的相关信息,则将数据块《绿色奥运》的状态信息加入块状态相关信息,并且更新块状态相关信息中信息列表的版本信息,生成如图4(b)所示的块状态相关信息。
第三状态更新装置25将生成的块状态相关信息转递至查询判断装置22。
查询判断装置22根据查询接收装置21接收的查询消息、第二列表获取装置20获取的信息列表和第三状态更新装置25生成的块状态相关信息判断用户设备2是否需要获取数据块《绿色奥运》。例如,信息列表中包含数据块《绿色奥运》的相关信息,且该相关信息指示用户设备2应有该数据块。并且,块状态相关信息指示用户设备2中没有数据块《绿色奥运》。基于以上信息,查询判断装置22判断用户设备2需要该数据块。
优选的,查询判断装置22可以根据查询接收装置21接收的查询消息、第二列表获取装置20获取的信息列表中数据块《绿色奥运》的优先级信息和第三状态更新装置25生成的块状态相关信息判断用户设备2是否需要获取该数据块。信息列表中的优先级直接用于指示数据块在网络中的传送方式。假设,约定每个用户设备应有所有优先级为1的数据块。如果,用户设备2没有优先级为1的数据块《绿色奥运》,则认为其需要从其他用户设备,例如用户设备1处接收。查询判断装置22将本用户设备需要该数据块的信息传递给查询响应装置23。
优选的,数据块获取装置2还包括图12中未示出的第四状态更新装置。第四状态更新装置用于根据第三获取装置24获取的数据块和第二列表获取装置20获取的信息列表更新用户设备2的块状态相关信息。第四状态更新装置将已获取的数据块在块状态相关信息中的状态更新为“已有”。假设,用户设备2在获取数据块《绿色奥运》前的块状态相关信息如图4(b)所示,第四状态更新装置则在用户设备2获取该数据块后,将块状态相关信息中数据块《绿色奥运》对应的状态更新为“已有”。
以上对本发明的具体实施例进行了描述。需要理解的是,本发明并不局限于上述特定实施方式,本领域技术人员可以在所附权利要求的范围内做出各种变形或修改。

Claims (32)

1.一种在用户设备中用于基于点对点协议对数据块进行传送的方法,其特征在于,该方法包括以下步骤:
c.判断与本用户设备相连的一个或多个其它用户设备是否需要所述数据块;
d.如果所述一个或多个其它用户设备中的一个或多个需要所述数据块,则向所述一个或多个其它用户设备中的一个或多个发送所述数据块;
其中,所述步骤c包括以下步骤:
C1.获取与本用户设备相连的一个或多个其它用户设备中的与所述数据块相关的块状态相关信息,所述块状态相关信息包括一个或多个数据块的状态信息;
C2.基于所述块状态相关信息判断与本用户设备相连的一个或多个其它用户设备中的一个或多个是否需要所述数据块;
其中,每个用户设备中还包含一个与之相连的应用服务器上一个或多个数据块的相关信息的信息列表,其中,所述块状态相关信息还包括所述信息列表的版本信息,所述步骤C2包括以下步骤:
C21.基于所述块状态相关信息判断本用户设备与所述一个或多个其它用户设备中的一个或多个中的信息列表的版本是否相同;
C22.如果本用户设备与所述一个或多个其它用户设备中的一个或多个的版本相同,则根据所述块状态相关信息来判断所述一个或多个其它用户设备中的一个或多个是否没有所述数据块;
C23.如果所述一个或多个其它用户设备中的一个或多个没有所述数据块,则确定所述一个或多个其它用户设备中的一个或多个需要所述数据块。
2.根据权利要求1所述的方法,其特征在于,在所述步骤c之前还包括以下步骤:
a.获取所述数据块。
3.根据权利要求2所述的方法,其特征在于,所述步骤a包括以下步骤:
-从与本用户设备相连的一个或多个其他用户设备中的一个得到所述数据块。
4.根据权利要求2所述的方法,其特征在于,所述步骤a还包括以下步骤:
a4.从所述应用服务器获取所述数据块。
5.根据权利要求4所述的方法,其特征在于,在所述步骤a4之前还包括以下步骤:
a1.获取包含所述数据块的相关信息的信息列表;
a2.基于所述信息列表,判断本用户设备是否需要获取所述数据块;
a3.如本用户设备需要获取所述数据块,则向所述应用服务器发送下载所述数据块的请求消息;
其中,还包括以下步骤:
-根据所获取的信息列表来更新本用户设备的所述块状态相关信息。
6.根据权利要求5所述的方法,其特征在于,所述信息列表中包括所述数据块的优先级信息,其特征在于,所述步骤a2还包括:
-根据所述优先级信息和本用户设备的所述块状态相关信息,判断是否需要获取所述数据块。
7.根据权利要求1所述的方法,其特征在于,在所述步骤c之前还包括以下步骤:
b.基于已获取的所述数据块更新本用户设备的所述块状态相关信息。
8.根据权利要求1所述的方法,其特征在于,所述块状态相关信息用于指示所述信息列表中每个数据块在用户设备中的状态:已存在、没有或者正在下载中。
9.根据权利要求1所述的方法,其特征在于,所述数据块包括文件或文件分片。
10.根据权利要求1所述的方法,其特征在于,所述数据块包括广告文件或广告文件的分片。
11.一种在用户设备中用于基于点对点协议获取数据块的方法,其特征在于,该方法包括以下步骤:
i.获取包含所述数据块的相关信息的信息列表,所述步骤i之后还包括以下步骤:根据所述信息列表来生成或更新块状态相关信息;
ii.接收来自与本用户设备相连的另一用户设备的查询消息,所述查询消息用于查询本用户设备是否需要所述数据块;
iii.根据所述查询消息判断本用户设备是否需要获取所述数据块,所述步骤iii包括以下步骤:根据所述信息列表、所述块状态相关信息和所述查询消息,判断本用户设备是否需要获取所述数据块;
iv.如果本用户设备需要获取所述数据块,则发送响应消息至所述另一用户设备;
v.从所述另一用户设备获取所述数据块。
12.根据权利要求11所述的方法,其特征在于,所述信息列表中包括所述数据块的优先级信息,其特征在于,所述步骤iii还包括以下步骤:
-根据所述优先级信息、所述块状态相关信息和所述查询消息,判断是否需要获取所述数据块。
13.根据权利要求11或12中所述的方法,其特征在于,在所述步骤v之后还包括以下步骤:
vi.根据已获取的所述数据块和所述信息列表,更新本用户设备的所述块状态相关信息。
14.根据权利要求11至12中任一项所述的方法,其特征在于,所述块状态相关信息用于指示所述信息列表中每个数据块在用户设备中的状态:已存在、没有或者正在下载中。
15.根据权利要求11至12中任一项所述的方法,其特征在于,所述数据块包括文件或文件分片。
16.根据权利要求11至12中任一项所述的方法,其特征在于,所述数据块包括广告文件或广告文件分片。
17.一种在用户设备中用于基于点对点协议对数据块进行传送的数据块传送装置,其特征在于,包括:
判断装置,用于判断与本用户设备相连的一个或多个其它用户设备是否需要所述数据块;
第一发送装置,用于如果所述一个或多个其它用户设备中的一个或多个需要所述数据块,向所述一个或多个其它用户设备中的一个或多个发送所述数据块;
其中,所述判断装置包括:
状态获取装置,用于获取与本用户设备相连的一个或多个其它用户设备中的与所述数据块相关的块状态相关信息,所述块状态相关信息包括一个或多个数据块的状态信息;
状态判断装置,用于基于所述块状态相关信息判断与本用户设备相连的一个或多个其它用户设备中的一个或多个是否需要所述数据块;
其中,每个用户设备中还包含一个与之相连的应用服务器上一个或多个数据块的相关信息的信息列表,其中,所述块状态相关信息还包括所述信息列表的版本信息,所述状态判断装置还包括:
版本判断装置,用于基于所述块状态相关信息判断本用户设备与所述一个或多个其它用户设备中的一个或多个中的信息列表的版本是否相同;
条件状态判断装置,用于如本用户设备与所述一个或多个其它用户设备中的一个或多个的版本相同,则根据所述块状态相关信息来判断所述一个或多个其它用户设备中的一个或多个是否没有所述数据块;
确定装置,用于如果所述一个或多个其它用户设备中的一个或多个没有所述数据块,确定所述一个或多个其它用户设备中的一个或多个需要所述数据块。
18.根据权利要求17所述的数据块传送装置,其特征在于,还包括:
第一获取装置,用于获取所述数据块。
19.根据权利要求18所述的数据块传送装置,其特征在于,所述第一获取装置还用于:
-从与本用户设备相连的一个或多个其他用户设备中的一个得到所述数据块。
20.根据权利要求18所述的数据块传送装置,其特征在于,所述第一获取装置还包括:
第二获取装置,用于从所述应用服务器获取所述数据块。
21.根据权利要求20所述的数据块传送装置,其特征在于,在所述第一获取装置还包括:
第一列表获取装置,用于获取包含所述数据块的相关信息的信息列表;
列表判断装置,用于基于所述信息列表,判断本用户设备是否需要获取所述数据块;
第二发送装置,用于当本用户设备需要获取所述数据块,则向所述应用服务器发送下载所述数据块的请求消息;
第一状态更新装置,用于根据所获取的信息列表来更新本用户设备的所述块状态相关信息。
22.根据权利要求21所述的数据块传送装置,其特征在于,所述信息列表中包括所述数据块的优先级信息,其特征在于,所述列表判断装置还用于:
-根据所述优先级信息和本用户设备的所述块状态相关信息,判断是否需要获取所述数据块。
23.根据权利要求17所述的数据块传送装置,其特征在于,还包括:
第二状态更新装置,用于基于已获取的所述数据块更新本用户设备的所述块状态相关信息。
24.根据权利要求17所述的数据块传送装置,其特征在于,所述块状态相关信息用于指示所述信息列表中每个数据块在用户设备中的状态:已存在、没有或者正在下载中。
25.根据权利要求17所述的数据块传送装置,其特征在于,所述数据块包括文件或文件分片。
26.根据权利要求17所述的数据块传送装置,其特征在于,所述数据块包括广告文件或广告文件的分片。
27.一种在用户设备中用于基于点对点协议获取数据块的数据块获取装置,其特征在于,包括:
查询接收装置,用于接收来自与本用户设备相连的另一用户设备的查询消息,所述查询消息用于查询本用户设备是否需要所述数据块;
查询判断装置,用于根据所述查询消息判断本用户设备是否需要获取所述数据块;
查询响应装置,用于当本用户设备需要获取所述数据块,则发送响应消息至所述另一用户设备;
第三获取装置,用于从所述另一用户设备获取所述数据块;
还包括:
第二列表获取装置,用于获取包含所述数据块的相关信息的信息列表;
第三状态更新装置,用于根据所述信息列表来生成或更新块状态相关信息;
所述查询判断装置还用于:
-根据所述信息列表、所述块状态相关信息和所述查询消息,判断本用户设备是否需要获取所述数据块。
28.根据权利要求27所述的数据块获取装置,其特征在于,所述信息列表中包括所述数据块的优先级信息,其特征在于,所述查询判断装置还用于:
-根据所述优先级信息、所述块状态相关信息和所述查询消息,判断是否需要获取所述数据块。
29.根据权利要求27或28中所述的数据块获取装置,其特征在于,还包括:
第四状态更新装置,用于根据已获取的所述数据块和所述信息列表,更新本用户设备的所述块状态相关信息。
30.根据权利要求27至28中任一项所述的数据块获取装置,其特征在于,所述块状态相关信息用于指示所述信息列表中每个数据块在用户设备中的状态:已存在、没有或者正在下载中。
31.根据权利要求27至28中任一项所述的数据块获取装置,其特征在于,所述数据块包括文件或文件分片。
32.根据权利要求27至28中任一项所述的数据块获取装置,其特征在于,所述数据块包括广告文件或广告文件分片。
CN 200810033490 2008-02-03 2008-02-03 基于点对点协议对数据块进行传送的方法和装置 Expired - Fee Related CN101500020B (zh)

Priority Applications (1)

Application Number Priority Date Filing Date Title
CN 200810033490 CN101500020B (zh) 2008-02-03 2008-02-03 基于点对点协议对数据块进行传送的方法和装置

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN 200810033490 CN101500020B (zh) 2008-02-03 2008-02-03 基于点对点协议对数据块进行传送的方法和装置

Publications (2)

Publication Number Publication Date
CN101500020A CN101500020A (zh) 2009-08-05
CN101500020B true CN101500020B (zh) 2013-05-29

Family

ID=40946899

Family Applications (1)

Application Number Title Priority Date Filing Date
CN 200810033490 Expired - Fee Related CN101500020B (zh) 2008-02-03 2008-02-03 基于点对点协议对数据块进行传送的方法和装置

Country Status (1)

Country Link
CN (1) CN101500020B (zh)

Families Citing this family (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN101969459B (zh) * 2009-09-30 2013-07-10 突触计算机系统(上海)有限公司 数据块分布控制方法及其装置
CN102404387B (zh) * 2011-10-25 2015-12-16 上海聚力传媒技术有限公司 一种用于与其他节点进行信息同步的方法、装置和设备
CN102946565B (zh) * 2012-11-29 2015-06-24 乐视致新电子科技(天津)有限公司 缓冲视频广告自动更新的系统及方法
CN106357728B (zh) * 2016-08-25 2019-11-08 广州朗国电子科技有限公司 信息处理方法、系统及终端

Citations (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN1852105A (zh) * 2005-09-15 2006-10-25 华为技术有限公司 一种实现端到端文件共享的系统及方法

Patent Citations (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN1852105A (zh) * 2005-09-15 2006-10-25 华为技术有限公司 一种实现端到端文件共享的系统及方法

Also Published As

Publication number Publication date
CN101500020A (zh) 2009-08-05

Similar Documents

Publication Publication Date Title
CN101039309B (zh) 链路共享服务装置以及通信方法
CN102571930B (zh) 利用动态清单的分布式流畅的流发送
JP5640649B2 (ja) データ通信方法及び情報処理装置
CA2365253C (en) System and method for providing internet broadcasting data based on hierarchical structure
US9304836B2 (en) Bridging data distribution services domains based on discovery data
US20140059158A1 (en) Method, device and system for processing content
EP2840539A1 (en) Communications device utilizing a central discovery mechanism, and respective method
CN102308549A (zh) 了解网络的对等
CN101202709A (zh) 中继服务器以及中继通信系统
CN103493086A (zh) 用于在联网环境中进行高速缓存的方法和装置
CN101621548A (zh) 基于对等连接系统的终端资源共享的实现方法及系统
CN101500020B (zh) 基于点对点协议对数据块进行传送的方法和装置
KR20070057544A (ko) 디알엠 호환성 제공 방법 및 이를 이용한 애드혹 네트워크장치
US20230119540A1 (en) Content delivery system special network device and special local area network connection, content discovery, data transfer, and control methods
CN109982152A (zh) P2p cdn业务处理方法、智能网关以及cdn平台
US20150127837A1 (en) Relay apparatus and data transfer method
CN101551888A (zh) 一种广告信息发布系统及相应的发布广告的控制方法
CN101888403B (zh) 存储和分发电子内容的方法和系统
KR20150099944A (ko) 피투피 기반 파일 전송 제어 방법 및 이를 위한 피투피 통신 제어 장치
CN102170456A (zh) 对等网络中获取内容的方法、装置和系统
CN102387201A (zh) 业务数据处理的方法、装置和系统
CN102916907A (zh) 基于家庭网关的下载方法和系统以及家庭网关
CN102439946B (zh) 数据传输方法和设备
EP1776643A2 (en) Object schemas and packet chain protocols for managing digital content routing and distribution in peer-to-peer dynamic connection structures
CN109788075B (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
CF01 Termination of patent right due to non-payment of annual fee
CF01 Termination of patent right due to non-payment of annual fee

Granted publication date: 20130529

Termination date: 20220203