CN109831467A - 数据传输方法、设备及系统 - Google Patents
数据传输方法、设备及系统 Download PDFInfo
- Publication number
- CN109831467A CN109831467A CN201711179802.3A CN201711179802A CN109831467A CN 109831467 A CN109831467 A CN 109831467A CN 201711179802 A CN201711179802 A CN 201711179802A CN 109831467 A CN109831467 A CN 109831467A
- Authority
- CN
- China
- Prior art keywords
- equipment
- data
- target data
- connection
- next stage
- 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
Abstract
本发明公开了一种数据传输方法、设备及系统,属于通信技术领域。所述方法包括:将需要在第一时刻获取目标数据的多个客户端以及目标数据源,均确定为待传输数据的设备,目标数据为目标数据源上的数据;以目标数据源为第一级设备,控制待传输数据的设备建立层级连接,其中,在控制两个设备建立层级连接时,两个设备中的下一级设备为:当前所有未建立层级连接的设备中,与两个设备中的上一级设备的路由距离最近的设备;控制已建立层级连接的设备中的每个上一级设备,在获取到目标数据后向连接的下一级设备发送目标数据。本发明解决了多个客户端同时向服务器请求同一数据时,服务器的数据传输压力较大的问题。本发明用于数据的传输。
Description
技术领域
本发明涉及通信技术领域,特别涉及一种数据传输方法、设备及系统。
背景技术
随着通信技术的发展,基于客户端/服务器(英文:Client/Server;简称:C/S)结构的数据传输系统得到了广泛的应用。示例的,基于C/S结构的数据传输系统包括:多个客户端、服务器以及数据源,多个客户端以及数据源均与服务器相连接。
相关技术中,客户端用于执行如数据展示、数据处理以及向服务器请求数据等前台功能,服务器用于执行如存储数据以及向客户端发送数据等后台功能。示例的,当客户端需要对某一数据进行处理或显示时,客户端可以向服务器发送用于请求该数据的数据请求。当服务器上并未存储有该数据时,服务器可以根据该数据请求,从数据源中获取该数据以将该数据进行存储,并向客户端发送该数据,从而将该数据源中的数据传输至客户端。
基于C/S结构的数据传输系统中的客户端较多,当多个客户端同时向服务器请求同一数据量较大的数据,导致服务器需要将数据量较大的数据发送给多个客户端时,服务器的数据传输压力较大。
发明内容
为了解决相关技术中,当多个客户端同时向服务器请求同一数据量较大的数据时,服务器的数据传输压力较大的问题,本发明提供了一种数据传输方法、设备及系统。所述技术方案如下:
第一方面,提供了一种数据传输方法,用于服务器,所述方法包括:
将需要在第一时刻获取目标数据的多个客户端以及目标数据源,均确定为待传输数据的设备,所述目标数据为目标数据源上的数据;
以所述目标数据源为第一级设备,控制所述待传输数据的设备建立层级连接,其中,在控制两个设备建立层级连接时,所述两个设备中的下一级设备为:当前所有未建立层级连接的设备中,与所述两个设备中的上一级设备的路由距离最近的设备;
控制已建立层级连接的设备中的每个上一级设备,在获取到所述目标数据后向连接的下一级设备发送所述目标数据。
可选的,已建立层级连接的每个设备均具有预设个数阈值,所述每个设备连接的下一级设备的个数均未超过所述每个设备的预设个数阈值。
可选的,所述方法还包括:
确定需要获取所述目标数据的新增客户端;
将已建立层级连接的设备中,与所述新增客户端的路由距离最近的可接入设备确定为第一接入设备,其中,所述可接入设备连接的下一级设备的个数小于所述可接入设备的预设个数阈值;
控制所述第一接入设备与所述新增客户端建立层级连接;
控制所述第一接入设备在获取到所述目标数据后,向所述新增客户端发送所述目标数据。
可选的,所述方法还包括:
确定需要停止获取所述目标数据的中断客户端;
在所述中断客户端连接有下一级设备时,控制其他设备与所述中断客户端连接的下一级设备建立层级连接,其中,所述其他设备为已建立层级连接的可接入设备,且与所述中断客户端不同,所述可接入设备连接的下一级设备的个数小于所述可接入设备的预设个数阈值;
控制所述其他设备在获取到所述目标数据后,向连接的下一级设备发送所述目标数据。
可选的,所述中断客户端连接的上一级设备为第二接入设备,所述控制其他设备与所述中断客户端连接的下一级设备建立层级连接,包括:
断开所述第二接入设备与所述中断客户端的连接;
确定所述第二接入设备还能够连接的下一级设备个数x;
判断所述中断客户端连接的下一级设备的个数是否超过x;
在所述中断客户端连接的下一级设备的个数未超过x时,控制所述第二接入设备与所述中断客户端连接的每个下一级设备建立层级连接,所述其他设备包括所述第二接入设备。
可选的,所述控制其他设备与所述中断客户端连接的下一级设备建立层级连接,还包括:
在所述中断客户端连接的下一级设备的个数超过x时,控制所述第二接入设备与所述中断客户端连接的x个下一级设备建立层级连接;
将所述中断客户端连接的下一级设备中,未与所述第二接入设备建立层级连接的设备确定为剩余设备;
确定每个剩余设备对应的第三接入设备,其中,所述每个剩余设备对应的第三接入设备为:已建立层级连接的设备中,与所述每个剩余设备的路由距离最近的可接入设备;
控制所述每个剩余设备与其对应的第三接入设备建立层级连接,所述其他设备还包括:所述每个剩余设备对应的第三接入设备。
可选的,所述服务器上未存储有所述目标数据,所述方法还包括:
在已建立层级连接的设备中,确定与所述服务器的路由距离最近的设备为第一回传设备;
向所述第一回传设备发送第一回传指令,所述第一回传指令用于指示缓存所述目标数据,并向所述服务器发送所述目标数据;
接收并存储所述第一回传设备根据所述第一回传指令发送的数据。
可选的,所述第一回传设备为所述客户端,所述第一回传设备具有缓存阈值,所述方法还包括:
接收所述第一回传设备发送的支援请求,所述支援请求为所述第一回传设备缓存的数据量超过所述缓存阈值时生成的,所述支援请求用于指示所述目标数据中所述第一回传设备未缓存的剩余数据;
将所述第一回传设备连接的下一级设备确定为第二回传设备;
向所述第二回传设备发送第二回传指令,所述第二回传指令用于指示缓存所述剩余数据,并向所述服务器发送所述剩余数据;
接收并存储所述第二回传设备根据所述第二回传指令发送的数据。
第二方面,提供了一种数据传输设备,用于服务器,所述数据传输设备包括:
第一确定模块,用于将需要在第一时刻获取目标数据的多个客户端以及目标数据源,均确定为待传输数据的设备,所述目标数据为目标数据源上的数据;
第一控制模块,用于以所述目标数据源为第一级设备,控制所述待传输数据的设备建立层级连接,其中,在控制两个设备建立层级连接时,所述两个设备中的下一级设备为:当前所有未建立层级连接的设备中,与所述两个设备中的上一级设备的路由距离最近的设备;
第二控制模块,用于控制已建立层级连接的设备中的每个上一级设备,在获取到所述目标数据后向连接的下一级设备发送所述目标数据。
可选的,已建立层级连接的每个设备均具有预设个数阈值,所述每个设备连接的下一级设备的个数均未超过所述每个设备的预设个数阈值。
可选的,所述数据传输设备还包括:
第二确定模块,用于确定需要获取所述目标数据的新增客户端;
第三确定模块,用于将已建立层级连接的设备中,与所述新增客户端的路由距离最近的可接入设备确定为第一接入设备,其中,所述可接入设备连接的下一级设备的个数小于所述可接入设备的预设个数阈值;
第三控制模块,用于控制所述第一接入设备与所述新增客户端建立层级连接;
第四控制模块,用于控制所述第一接入设备在获取到所述目标数据后,向所述新增客户端发送所述目标数据。
可选的,所述数据传输设备还包括:
第四确定模块,用于确定需要停止获取所述目标数据的中断客户端;
第五控制模块,用于在所述中断客户端连接有下一级设备时,控制其他设备与所述中断客户端连接的下一级设备建立层级连接,其中,所述其他设备为已建立层级连接的可接入设备,且与所述中断客户端不同,所述可接入设备连接的下一级设备的个数小于所述可接入设备的预设个数阈值;
第六控制模块,用于控制所述其他设备在获取到所述目标数据后,向连接的下一级设备发送所述目标数据。
可选的,所述中断客户端连接的上一级设备为第二接入设备,所述第五控制模块,用于:
断开所述第二接入设备与所述中断客户端的连接;
确定所述第二接入设备还能够连接的下一级设备个数x;
判断所述中断客户端连接的下一级设备的个数是否超过x;
在所述中断客户端连接的下一级设备的个数未超过x时,控制所述第二接入设备与所述中断客户端连接的每个下一级设备建立层级连接,所述其他设备包括所述第二接入设备。
可选的,所述第五控制模块,还用于:
在所述中断客户端连接的下一级设备的个数超过x时,控制所述第二接入设备与所述中断客户端连接的x个下一级设备建立层级连接;
将所述中断客户端连接的下一级设备中,未与所述第二接入设备建立层级连接的设备确定为剩余设备;
确定每个剩余设备对应的第三接入设备,其中,所述每个剩余设备对应的第三接入设备为:已建立层级连接的设备中,与所述每个剩余设备的路由距离最近的可接入设备;
控制所述每个剩余设备与其对应的第三接入设备建立层级连接,所述其他设备还包括:所述每个剩余设备对应的第三接入设备。
可选的,所述服务器上未存储有所述目标数据,所述数据传输设备还包括:
第五确定模块,用于在已建立层级连接的设备中,确定与所述服务器的路由距离最近的设备为第一回传设备;
第一发送模块,用于向所述第一回传设备发送第一回传指令,所述第一回传指令用于指示缓存所述目标数据,并向所述服务器发送所述目标数据;
第一接收模块,用于接收并存储所述第一回传设备根据所述第一回传指令发送的数据。
可选的,所述第一回传设备为所述客户端,所述第一回传设备具有缓存阈值,所述数据传输设备还包括:
第二接收模块,用于接收所述第一回传设备发送的支援请求,所述支援请求为所述第一回传设备缓存的数据量超过所述缓存阈值时生成的,所述支援请求用于指示所述目标数据中所述第一回传设备未缓存的剩余数据;
第六确定模块,用于将所述第一回传设备连接的下一级设备确定为第二回传设备;
第二发送模块,用于向所述第二回传设备发送第二回传指令,所述第二回传指令用于指示缓存所述剩余数据,并向所述服务器发送所述剩余数据;
第三接收模块,用于接收并存储所述第二回传设备根据所述第二回传指令发送的数据。
第三方面,提供了一种计算机设备,该计算机设备包括处理器和存储器,
其中,
所述存储器,用于存放计算机程序;
所述处理器,用于执行所述存储器上所存放的程序,实现第一方面所述的数据传输方法。
第四方面,提供了一种计算机可读存储介质,所述计算机可读存储介质内存储有计算机程序,
所述计算机程序被处理器执行时实现第一方面所述的数据传输方法。
第五方面,提供了一种数据传输系统,所述数据传输系统包括服务器,
所述服务器为第二方面所述的数据传输设备,或第三方面所述的计算机设备。
本发明提供的技术方案带来的有益效果是:
当多个客户端同时向服务器请求同一目标数据时,服务器可以根据路由距离控制该多个客户端与该同一数据的数据源的建立层级连接,然后控制已建立的层级连接中的上一级设备向下一级设备发送目标数据。即使多个客户端请求的同一数据的数据量较大时,服务器也不需要发送大量的数据给客户端,因此避免了服务器将数据量较大的数据发送给多个客户端的情况,所以减小了服务器的数据传输压力。
附图说明
为了更清楚地说明本发明实施例中的技术方案,下面将对实施例描述中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图仅仅是本发明的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其他的附图。
图1是本发明实施例提供的一种数据传输方法的应用场景示意图;
图2是本发明实施例提供的一种数据传输方法的方法流程图;
图3是本发明实施例提供的一种设备连接关系示意图;
图4是本发明实施例提供的一种已建立层级连接的设备的示意图;
图5是本发明实施例提供的另一种已建立层级连接的设备的示意图;
图6是本发明实施例提供的又一种已建立层级连接的设备的示意图;
图7是本发明实施例提供的一种客户端向服务器发送数据的方法流程图;
图8是本发明实施例提供的再一种已建立层级连接的设备的示意图;
图9是本发明另一实施例提供的一种已建立层级连接的设备的示意图;
图10是本发明实施例提供的一种数据传输设备的结构示意图;
图11是本发明实施例提供的另一种数据传输设备的结构示意图;
图12是本发明实施例提供的又一种数据传输设备的结构示意图;
图13是本发明实施例提供的再一种数据传输设备的结构示意图;
图14是本发明另一实施例提供的一种数据传输设备的结构示意图;
图15是本发明实施例提供的一种计算机设备的结构示意图。
具体实施方式
为使本发明的目的、技术方案和优点更加清楚,下面将结合附图对本发明实施方式作进一步地详细描述。
图1为本发明实施例提供的一种数据传输方法的应用场景示意图,如图1所示,该数据传输方法应用于基于C/S结构的数据传输系统10。示例的,该数据传输系统10可以包括:多个客户端(如客户端A1、客户端A2和客户端A3)、服务器B以及至少一个数据源(如目标数据源C1和数据源C2)。服务器与每个客户端以及每个数据源相连接。
示例的,客户端可以部署在终端上,终端可以为手机、笔记本电脑、台式电脑、平板电脑、智能电视机等电子设备。服务器B可以为一个服务器,或者服务器B可以为多个服务器组成的服务器集群。
需要说明的是,图1中以数据传输系统10包括三个客户端和两个数据源为例,实际应用中,数据传输系统中客户端的个数可以不为三,数据源的个数也可以不为二,本发明实施例对此不作限定。客户端与服务器之间,以及服务器与数据源之间,均可以通过有线网络或者无线网络连接,其中,有线网络可以包括但不限于:通用串行总线(英文:UniversalSerial Bus;简称:USB),无线网络可以包括但不限于:无线保真(英文:WirelessFidelity;简称:WIFI)、蓝牙、红外、紫蜂(英文:Zigbee)、数据等。
数据源上可以存储多个数据,客户端可以通过服务器从数据源上获取数据,并对获取到的数据进行展示。可选的,数据源上存储的数据可以包括:某一大厦中每层楼的摄像头拍摄到的图像数据,当用户需要在客户端上查看该大厦一楼的图像数据时,用户可以控制客户端通过服务器在该数据源上获取该大厦一楼的摄像头拍摄的图像数据,进而使得客户端根据获取到的图像数据,对大厦一楼的图像进行显示;
可选的,数据源上存储的数据还可以包括:用于指示多条马路的拥堵情况的数据,当用户需要在客户端上查看某条马路的拥堵情况时,用户可以控制客户端通过服务器在数据源上获取用于指示该条马路的拥堵情况的数据,进而使得客户端根据获取到的数据,对该条马路的拥堵情况进行显示;
可选的,数据源上存储的数据还可以包括:多部电视剧的视频数据,当用户需要在客户端上观看某一部电视剧时,用户可以控制客户端通过服务器在该数据源上获取该部电视剧的视频数据,进而使得客户端根据获取到的视频数据播放该部电视剧。
本发明实施例提供了一种数据传输方法,其对客户端如何通过服务器获取数据源上的数据进行解释说明。如图2所示,本发明实施例中以图1所示的数据传输系统中,客户端A1与客户端A2同时向服务器B请求目标数据源C1上的目标数据X,且该目标数据X为电视剧的视频数据为例,该数据传输方法可以包括:
步骤201、服务器B确定并记录其连接的客户端和数据源中,任意两个设备之间的路由距离。
需要说明的是,两个设备之间的路由距离可以为:数据从一个设备到达另一个设备的过程中的路由跳数,也可以理解为数据从一个设备到达另一个设备的过程中经过的设备数量。示例的,如图3所示,设备a、设备b、设备c和设备d依次连接;设备a到设备b的路由上不存在其他设备,则设备a与设备b之间的路由距离为0;设备a与设备c的路由上存在设备b,则设备a与设备c之间的路由距离为1;设备a与设备d的路由上存在设备b和设备c,则设备a与设备d之间的路由距离为2。
在本发明实施例中,当客户端和数据源中的每个设备与服务器建立连接时,服务器均需要确定并记录该设备与服务器已连接的客户端和数据源之间的路由距离。
示例的,若数据传输系统包括服务器B、数据源C1、数据源C2、客户端A1、客户端A2和客户端A3,则服务器B可以确定并记录:客户端A1与目标数据源C1之间的路由距离(假设路由距离为2),客户端A2与目标数据源C1之间的路由距离(假设路由距离为5),客户端A3与目标数据源C1之间的路由距离(假设路由距离为3),客户端A1与数据源C2之间的路由距离(假设路由距离为1),客户端A2与数据源C2之间的路由距离(假设路由距离为4),以及客户端A3与数据源C2之间的路由距离(假设路由距离为2)。服务器B还可以确定并记录客户端A1与客户端A2之间的路由距离(假设路由距离为1),客户端A1与客户端A3之间的路由距离(假设路由距离为0),以及客户端A2与客户端A3之间的路由距离(假设路由距离为1)。
步骤202、服务器B确定并记录与其连接的每个客户端之间的路由距离,以及与其连接的每个数据源之间的路由距离。
本发明实施例中,在客户端和数据源中的每个设备与服务器建立连接时,服务器还需要确定并记录该设备与服务器之间的路由距离。
示例的,若数据传输系统为步骤201中所述的数据传输系统时,则服务器B可以确定并记录:服务器B与客户端A1之间的路由距离(假设路由距离为0),服务器B与客户端A2之间的路由距离(假设路由距离为3),服务器B与客户端A3之间的路由距离(假设路由距离为1),服务器B与目标数据源C1之间的路由距离(假设路由距离为1),以及服务器B与数据源C2之间的路由距离(假设路由距离为0)。
步骤203、客户端A1在第一时刻向服务器B发送数据请求,该数据请求用于请求获取目标数据X。
示例的,目标数据X为目标数据源C1上的数据,目标数据X可以为某一电视剧的实时图像的数据或历史图像的数据。当客户端A1的用户需要在客户端A1上查看该电视剧的实时图像或历史图像时,该用户可以在客户端A1上进行操作,使得客户端A1根据用户的操作,生成用于请求获取目标数据源C1上的目标数据X的数据请求,并向服务器B发送该数据请求。
步骤204、客户端A2在第一时刻向服务器B发送数据请求,该数据请求用于请求获取目标数据X。
示例的,当客户端A2的用户也需要在客户端A2上查看电视剧的实时图像或历史图像时,该用户也可以在客户端A2上进行操作,使得客户端A2根据用户的操作,生成用于请求获取目标数据源C1上的目标数据X(也即电视剧的实时图像的数据或历史图像的数据)的数据请求,并向服务器B发送该数据请求。
需要说明的是,本发明实施例中以客户端A的用户和客户端A2的用户需要同时(第一时刻)在客户端上查看同一图像(实时图像或历史图像),且目标数据位于目标数据源C1上为例。也即,服务器B能够确定需要在同一时刻获取目标数据的多个客户端(如客户端A1和客户端A2)。
步骤205、服务器B将客户端A1、客户端A2以及目标数据源C1确定为待传输数据的设备。
服务器可以将需要在同一时刻获取目标数据的所有客户端以及目标数据所在的目标数据源,均确定为待传输数据的设备。需要说明的是,本发明实施例仅以需要在同一时刻获取目标数据的客户端为两个客户端为例,实际应用中,需要在同一时刻获取目标数据的客户端可以为一个客户端或者多于两个的客户端,本发明实施例对此不作限定。
步骤206、当服务器B上未存储有目标数据X时,服务器B根据其连接的客户端与数据源中任意两个设备之间的路由距离,以目标数据源为第一级设备,控制待传输数据的设备建立层级连接。
需要注意的是,在服务器B在确定需要在第一时刻获取目标数据X的多个客户端时,服务器B还可以判断服务器B上是否已经存储有该目标数据X。
一方面,当服务器B上已经存储有目标数据源C1上的目标数据X时,意味着该目标数据X为历史数据,且需要同时获取同一历史数据的客户端通常较少(例如,在同一时刻需要在客户端上回看电视剧某一集的用户通常较少),此时,服务器B可以直接将目标数据X发送至每个请求目标数据X的客户端,且服务器B的数据传输压力较小。
另一方面,当服务器B上未存储有目标数据X时,意味着该目标数据X为实时数据(需要从目标数据源上获取的数据),且同时需要获取同一实时数据的客户端通常较多(例如,在同一时刻需要在客户端上观看电视剧某一集的直播的用户通常较多),此时,服务器B可以执行步骤206以及步骤206之后的其他步骤,以减轻服务器B的数据传输压力。
在执行步骤206时,服务器B可以从步骤201中记录的路由距离中,提取客户端A1与目标数据源C1之间的路由距离,以及客户端A2与目标数据源C1之间的路由距离,也即是提取当前请求目标数据X的每个客户端与目标数据源C1之间的路由距离。服务器B还可以从步骤201中记录的路由距离中,提取客户端A1与客户端A2之间的路由距离,也即提取当前请求目标数据X的任意两个客户端之间的路由距离。之后,服务器B可以根据提取得到的路由距离,以目标数据源为第一级设备,控制待传输数据的设备建立层级连接。其中,在控制两个设备建立层级连接时,两个设备中的下一级设备为:当前所有未建立层级连接的设备中,与两个设备中的上一级设备的路由距离最近的设备。
需要说明的是,建立层级连接的每个设备均具有预设个数阈值,每个设备最多可以连接的下一级设备的个数为该预设个数阈值。也即是,在建立待传输的设备的层级连接过程中,若与某一上一级设备的路由距离最近的设备为多个设备时,可以依次将该某一上一级设备与该多个设备建立连接。并且在将该多个设备中的每个设备与该上一级设备建立连接后,需要检测该上一级设备当前连接的下一级设备的个数是否超过该上一级设备的预设个数阈值。当该上一级设备连接的下一级设备的个数未超过该上一级设备的预设个数阈值时,继续将该多个设备中的其他设备与该上一级设备建立连接;当该上一级设备连接的下一级设备的个数已经达到该上一级设备的预设个数阈值时,停止为该上一级设备连接其他设备。
示例的,假设数据传输系统中各个设备之间的连接关系如步骤201中所述,且当前的待传输数据的设备包括:客户端A1、客户端A2和目标数据源C1,则如图4所示,服务器B可以首先确定目标数据源C1为第一级设备,然后将当前所有未建立层级连接的设备(也即是客户端A1和客户端A2)中,与目标数据源C1的路由距离最近的客户端A1与目标数据源C1建立层级连接,该客户端A1为目标数据源C1的下一级设备。之后,服务器B可以将客户端A1与客户端A2建立层级连接,客户端A2为客户端A1的下一级设备。
又例如,如图5所示,假设当前的待传输数据的设备包括:客户端A1、客户端A2、客户端D1、客户端D2、客户端D3和目标数据源C1。若当前的待传输数据的设备中,客户端A1、客户端D2以及客户端A2均为与目标数据源C1的路由距离最小的设备,且目标数据源C1的预设个数阈值大于3,则服务器B可以确定目标数据源C1为第一级设备,并将客户端A1、客户端D2以及客户端A2均与目标数据源C1建立层级连接,客户端A1、客户端D2以及客户端A2均为目标数据源C1的下一级设备。之后,服务器B可以在第二级设备(也即目标数据源C1的下一级设备)中任意选择一个客户端(如客户端A1),然后确定当前剩下的客户端(客户端D1和客户端D3)中与客户端A1之间的路由距离最近的客户端D1;服务器B还可以在第二级设备中剩下的客户端(客户端D2和客户端A2)中,再任意选择一个客户端(如客户端A2),并确定当前剩下的客户端(客户端D3)中,与客户端A2之间的路由距离最近的客户端D3。最后,服务器B可以将客户端D1与客户端A1建立层级连接,将客户端D3与客户端A2建立层级连接。此时,客户端D1为与客户端A1的下一级设备,客户端D3为与客户端A2的下一级设备。
可选的,在确定图5中的第三级设备(也即第二级设备的下一级设备)时,服务器B还可以分别确定客户端A1、客户端D2和客户端A2中,与客户端D1之间的路由距离最近的客户端A1,以及与客户端D3之间的路由距离最近的客户端A2。最后,服务器B可以将客户端D1与客户端A1建立层级连接,将客户端D3与客户端A2建立层级连接。
再例如,如图6所示,假设当前的待传输数据的设备包括:客户端A1、客户端A2、客户端D1、客户端D2、客户端D3和目标数据源C1。若客户端A1、客户端A2、客户端D1、客户端D2和客户端D3中,客户端A1、客户端D2以及客户端A2均为与目标数据源C1的路由距离最小的设备,且目标数据源C1的预设个数阈值等于2,则服务器B可以确定目标数据源C1为第一级设备,并将客户端A1、客户端D2以及客户端A2中的两个客户端(如客户端A1和客户端D2)均与目标数据源C1建立层级连接,客户端A1和客户端D2均为目标数据源C1的下一级设备。
之后,服务器B可以在第二级设备中任意选择一个客户端(如客户端A1),然后确定当前剩下的客户端(客户端A2、客户端D1和客户端D3)中与客户端A1之间的路由距离最近的客户端D1,以及在第二级设备中剩下的客户端(客户端D2)中选择一个客户端(如客户端D2),并确定当前剩下的客户端(客户端A2和客户端D3)中,与客户端D2之间的路由距离最近的客户端D3和客户端A2。最后,服务器B可以将客户端D1与客户端A1建立层级连接,将客户端D2分别与客户端A2和客户端D3建立层级连接(假设客户端D2的预设个数阈值大于2)。此时,客户端D1为客户端A1的下一级设备,客户端D3和客户端A2均为客户端D2的下一级设备。
步骤207、服务器B控制已建立层级连接的设备中的每个上一级设备,在获取到目标数据X后向连接的下一级设备发送目标数据X。
示例的,当已建立层级连接的设备如图4所示时,服务器B可以控制目标数据源C1向客户端A1(目标数据源C1的下一级设备)发送目标数据X。在客户端A1获取到目标数据X后,服务器B可以控制客户端A1向客户端A2(客户端A1的下一级设备)发送目标数据X。需要说明的是,假设已建立层级连接的设备中的任意两个连接的设备为第一设备和第二设备,且第一设备为第二设备的上一级设备,步骤207中服务器控制第一设备向第二设备发送数据可以有多种可实现方式,本发明实施例将对其中的两种可实现方式进行说明:
其中,在第一种可实现方式中,服务器B可以向第二设备发送用于指示第二设备从第一设备上获取目标数据X的第一消息;第二设备可以根据该第一消息,向第一设备发送用于请求目标数据X的第二消息,并监控第一设备发送的数据;第一设备在接收到第二消息后,若获取到目标数据X,则第一设备可以向第二设备发送目标数据X。
在第二种可实现方式中,服务器B可以向第二设备发送用于指示第二设备监控第一设备发送的数据的第三消息,以及向第一设备发送用于指示第一设备向第二设备发送目标数据X的第四消息;第二设备在接收到该第三消息后,第二设备会根据该第三消息监控第一设备发送的数据;第一设备在接收到该第四消息后,若获取到目标数据X,则第一设备可以向第二设备发送目标数据X。
步骤208、目标数据源C1根据服务器B的控制,向客户端A1发送目标数据X。
步骤209、客户端A1根据服务器B的控制,向客户端A2发送目标数据X。
在步骤208和步骤209之后,已建立层级连接的设备中,连接有下一级设备的每个设备在获取到目标数据X后,均向连接的下一级设备发送目标数据X,从而使得目标数据X从目标数据源C1上,依次传输至每个客户端,从而实现了将目标数据源C1上的目标数据X分享至每个需要获取目标数据X的客户端。
由于步骤206中服务器B在控制两个设备建立层级连接时,两个设备中的下一级设备为:当前所有未建立层级连接的设备中,与两个设备中的上一级设备的路由距离最近的设备,从而保证了任意两个相连接的设备之间的路由距离均较小,因此,在每个设备向连接的下一级设备发送目标数据X时的数据发送效率较高。
步骤210、服务器B根据与其连接的每个客户端之间的路由距离,以及与其连接的每个数据源之间的路由距离,在已建立层级连接的设备中,确定与服务器的路由距离最近的设备为第一回传设备。
在步骤210中,服务器B可以从步骤202中记录的路由距离中,提取已建立层级连接的设备中每个设备(包括客户端和服务器)与服务器B之间的路由距离。示例的,若已建立层级连接的设备如图4所示,则服务器B可以提取服务器B与客户端A1之间的路由距离(路由距离为0)、服务器B与客户端A2之间的路由距离(路由距离为3)以及服务器B与目标数据源C1之间的路由距离(路由距离为1)。
此时,服务器B可以确定客户端A1、客户端A2以及目标数据源C1中,与服务器B之间的路由距离最短的设备为客户端A1,并将客户端A1确定为第一回传设备。需要说明的是,步骤210中将客户端A1确定为第一回传设备只是举例说明,实际应用中,根据不同的路由距离,服务器B确定出的第一回传设备还可以不为客户端A1。
步骤211、服务器B向客户端A1发送第一回传指令,第一回传指令用于指示客户端A1缓存目标数据X,并向服务器B发送目标数据X。
在服务器B确定第一回传设备(例如客户端A1)后,服务器B可以向该第一回传设备发送用于指示该第一回传设备缓存目标数据X,并向服务器B发送需要回传的数据(目标数据X)的第一回传指令。也即,在目标数据源C1向客户端A1和客户端A2分享目标数据X后,目标数据源C1、客户端A1和客户端A2中的第一回传设备(例如客户端A1)还需要向服务器B分享目标数据X。
步骤212、客户端A1根据接收到的第一回传指令向服务器B发送目标数据X。
示例的,步骤212可以具有多种可实现方式,本发明实施例对其中的两种可实现方式进行举例说明:
在步骤212的第一种可实现方式中,客户端A1在接收到第一回传指令,且获取到目标数据X后,立即向服务器B发送目标数据X。需要说明的是,这种可实现方式可以应用于具有较强处理能力的客户端,且当步骤210中服务器B确定的第一回传设备为目标数据源时,该第一种可实现方式也可以用于目标数据源。
在步骤212的第二种可实现方式中,客户端A1在接收到第一回传指令和目标数据X后,可以根据第一回传指令将目标数据X进行缓存,然后在缓存目标数据X后的回传时刻向服务器B发送目标数据X。也即是,客户端在接收到第一回传指令和目标数据后,无需立即向服务器发送需要回传的数据,从而避免了客户端立即向服务器发送需要回传的数据,而导致客户端崩溃的情况,这种可实现方式可以应用于具有较弱处理能力的客户端。
如图7所示,在步骤212的第二种可实现方式中,步骤212可以包括:
步骤2121、客户端A1在接收到第一回传指令和目标数据X后,对目标数据X进行缓存。
客户端A1接收到第一回传指令后,可以检测是否接收到上一级设备发送的目标数据X,若接收到目标数据X,则直接对接收到的目标数据X进行缓存。
步骤2122、客户端A1确定在缓存目标数据X后的回传时刻。
示例的,步骤2122中客户端A1确定回传时刻可以有多种可实现方式,本发明实施例将对其中的两种可实现方式进行说明。
在步骤2122的第一种可实现方式中,客户端在缓存完毕目标数据X后,可以检测自身是否具有空闲的数据传输资源,当客户端检测到自身具有空闲的数据传输资源时,客户端A1可以将在缓存完毕目标数据X后,客户端A1具有空闲的数据传输资源的时刻确定为回传时刻。需要说明的是,客户端具有空闲的数据传输资源的时刻,也即是客户端能够传输数据的时刻。
在步骤2122的第二种可实现方式中,客户端A1在缓存目标数据X的过程中,还可以检测缓存的数据量是否超过缓存阈值。一方面,当缓存的数据量超过缓存阈值时,客户端A1需要立即停止缓存目标数据X,并在停止缓存目标数据X后,检测客户端A1是否具有空闲的数据传输资源;当客户端A1具有空闲的数据传输资源时,客户端A1可以将此时确定为回传时刻。另一方面,当缓存的数据量小于或等于预设数据量阈值时,客户端A1需要检测是否缓存完毕目标数据X;若客户端A1确定此时并未缓存完毕目标数据X,则继续缓存目标数据X;若客户端A1确定已缓存完毕目标数据X,则需要检测客户端A1是否具有空闲的数据传输资源;当客户端A1具有空闲的数据传输资源时,客户端A1可以确定此时为回传时刻。
示例的,假设该缓存阈值为300兆。一方面,当客户端A1在8点整检测到缓存目标数据X的数据量大于300兆时,客户端A1需要立即停止缓存目标数据X,并在8点之后,检测自身是否具有空闲的数据传输资源;若客户端A1在9点整确定自身具有空闲的数据传输资源,则可以将9点整确定为回传时刻。另一方面,当客户端A1在8点整检测到缓存目标数据X的数据量小于或等于300兆时,客户端A1可以检测是否缓存完毕目标数据X。当在8点20分时客户端A1确定已缓存完毕目标数据X,则客户端A1可以检测自身此时是否具有空闲的数据传输资源,若在9点整的时候客户端A1检测到自身具有空闲的数据传输资源,则客户端可以确定9点整为回传时刻。
步骤2123、客户端A1在回传时刻,根据接收到的第一回传指令向服务器B发送目标数据X中已缓存的数据。
示例的,假设回传时刻为9点整,则客户端A1可以在9点整时,根据接收到的第一回传指令向服务器B发送目标数据X中客户端A1已缓存的数据。
可选的,在步骤2122的第二种可实现方式中,若客户端A1在停止缓存目标数据X后,目标数据X并未在客户端A1上缓存完毕,则客户端A1还可以在停止缓存目标数据X之后,向服务器B发送支援请求。其中,该支援请求用于指示目标数据X中未缓存的剩余数据,以及请求服务器B分配用于缓存剩余数据的第二回传设备。服务器B在接收到客户端A1发送的支援请求后,可以根据支援请求以及已建立层级连接的设备,将客户端A1连接的(任意一个)下一级设备(例如客户端A2)确定为第二回传设备。然后,服务器B可以向客户端A2发送第二回传指令,该第二回传指令用于指示客户端A2缓存目标数据X中未缓存的剩余数据,并向服务器B发送该剩余数据(也即客户端A2需要回传的数据)。
客户端A2在接收到服务器B发送的第二回传指令后,可以根据接收到的第二回传指令缓存该剩余数据,并向服务器B发送该剩余数据。且客户端A2根据接收到的第二回传指令向服务器B发送数据的过程,可以参考步骤212中客户端A1根据接收到的第一回传指令向服务器B发送数据的过程,本发明实施例在此不做赘述。
示例的,假设预设数据量阈值为300兆,目标数据X的数据量共900兆。当客户端A1缓存目标数据X的数据量超过300兆(以301兆进行举例说明)时,客户端A1会停止缓存目标数据X,并在回传时刻向服务器B发送目标数据X中已缓存的数据。进一步的,客户端A1还可以向服务器B发送支援请求,以以指示目标数据X中客户端A1未缓存的剩余数据,并请求服务器B分配用于缓存目标数据X中剩余的599兆数据的第二回传设备。
服务器B在接收到客户端A1发送的支援请求后,服务器B可以根据支援请求以及已建立层级连接的设备,将客户端A1连接的任意一个下一级设备(例如客户端A2)确定为第二回传设备。然后,服务器B可以向客户端A2发送第二回传指令,用来指示该客户端A2缓存目标数据X中剩余的599兆数据,并向服务器B发送该剩余的599兆数据。客户端A2在接收到服务器B发送的第二回传指令后,也可以根据接收到的第二回传指令向服务器B发送数据。
进一步的,在客户端A2缓存目标数据X已经大于300兆(如已缓存301兆)时,客户端A2也可以停止缓存目标数据X,并向服务器B发送支援请求,使得服务器B将客户端A2连接的任意一个下一级设备确定为另一个回传设备,进而指示该另一个回传设备缓存并向服务器回传客户端A1和客户端A2均未缓存的目标数据X中剩余的298兆数据。
步骤213、服务器B对接收到的数据进行存储。
当回传设备仅包括客户端A1时,服务器B可以接收到客户端A1根据第一回传指令发送的数据;当回传设备包括多个客户端(如客户端A1和客户端A2)时,服务器B可以接收到多个客户端根据回传指令发送的数据。且服务器B接收到的数据能够组成该目标数据X,服务器B在接收到数据后,可以对接收到的数据进行存储。
在服务器B对接收到的数据进行存储,且接收到的数据能够组成目标数据X后,若服务器B再次接收到客户端发送的用于请求该目标数据X的数据请求后,服务器B可以向客户端直接发送该目标数据X中服务器B上存储有的数据,以便于客户端在接收到数据后,对接收到的数据进行回放。
需要说明的是,在步骤206之后,若图1所示的数据传输系统中,客户端A3也向服务器B发送用于请求目标数据源C1上的目标数据X的数据请求,则服务器B可以将该客户端A3确定为需要获取目标数据X的新增客户端。然后服务器B可以首先在已建立层级连接的设备(也即是客户端A1、客户端A2以及目标数据源C1)中确定可接入设备,其中,可接入设备连接的下一级设备的个数需要小于该可接入设备的预设个数阈值。之后,服务器可以将与客户端A3的路由距离最近的可接入设备确定为第一可接入设备,并控制该第一接入设备与该新增客户端建立层级连接,以及控制该第一接入设备在获取到目标数据X后,向该新增客户端发送该目标数据X。此时,该新增客户端为该第一可接入设备的下一级设备。
示例的,本发明实施例中假设已建立层级连接的设备如图4所示,若客户端A1为已建立层级连接的设备中与客户端A3的路由距离最近的可接入设备,则如图8所示,服务器B可以将客户端A1确定为第一接入设备,并控制该客户端A1与客户端A3建立层级连接。最后,服务器B可以控制客户端A3连接的上一级设备(也即客户端A1)向客户端A3发送目标数据。从而保证了在有需要获取目标数据X的新增客户端时,服务器B可以控制当前共享目标数据X的多个设备中,距离新增客户端较近的设备向该新增客户端分享目标数据X,提高数据分享的效率。
还需要说明的是,在步骤206之后,若客户端A1和客户端A2中存在某一设备需要停止获取该目标数据,则该某一设备可以向服务器B发送中断请求。服务器B可以将该某一设备确定为目标数据X的中断客户端(也即需要停止获取目标数据的中断客户端),并断开目标数据源C1与该中断客户端的连接。
服务器B还可以判断该中断客户端是否连接有下一级设备,若该中断客户端连接有下一级设备,则服务器B可以控制其他设备与该中断客户端连接的下一级设备建立层级连接。其中,该其他设备可以为已建立层级连接的可接入设备中与该中断客户端不同的设备。接着,服务器B可以控制该其他设备在获取到目标数据X后,向连接的下一级设备发送该目标数据X。
示例的,假设已建立层级连接的设备如图4所示,若客户端A1向服务器B发送了中断请求,则服务器B可以确定客户端A1为中断客户端。进而,如图9所示,服务器B可以断开目标数据源C1与客户端A1的连接,并确定客户端A1连接有下一级设备(客户端A2)。然后,服务器B可以将客户端A1连接的上一级设备(也即是目标数据源C1)确定为第二接入设备,并确定该第二接入设备还能够连接的下一级设备个数x。假设预设个数阈值为3,目标数据源C1当前并未连接有下一级设备(原先连接的客户端A1已经断开连接),则服务器B可以确定目标数据源C1此时还能够连接的下一级设备个数x为3。接着,服务器B可以确定客户端A1连接的下一级设备的个数为1(仅有客户端A2),该个数未超过预设个数阈值。之后,服务器B可以控制该第二接入设备与客户端A2建立层级连接,并且需要控制目标数据源C1向客户端A2发送目标数据。此时,该其他设备包括该第二接入设备。
另外,如果服务器B确定中断客户端连接有4个下一级设备(例如客户端E1、客户端E2、客户端E3和客户端E4),该个数超过预设个数阈值3,则服务器B可以控制第二接入设备与该4个下一级设备中的3个(例如客户端E1、客户端E2和客户端E3)建立层级连接。然后,服务器B可以将该4个下一级设备中未与第二接入设备建立层级连接的设备(客户端E4)确定为剩余设备,并确定该剩余设备对应的第三接入设备,以及控制每个剩余设备与其对应的第三接入设备建立层级连接。其中,每个剩余设备对应的第三接入设备为:已建立层级连接的设备中,与该每个剩余设备的路由距离最近的可接入设备。假设客户端E4与客户端E1的路由距离最近,则服务器B可以将客户端E1确定为客户端E4对应的第三接入设备,并控制客户端E1与客户端E4建立层级连接。最后,服务器B可以控制客户端E1向客户端E4发送该目标数据X。此时,该其他设备包括该第三接入设备。
另外,本发明实施例中以多个客户端同时向服务器B请求目标数据X为例,实际应用中,当只有一个客户端向服务器B请求目标数据X,且服务器B上未存储有该目标数据X时,服务器B可以直接从目标数据源C1上获取该目标数据X,并将该目标数据X进行存储,以及向该客户端发送目标数据X。或者,当只有一个客户端向服务器B请求目标数据X,且服务器B上未存储有目标数据X时,服务器B可以控制该目标数据源C1和该客户端建立层级连接,并指示目标数据源C1向该客户端发送目标数据X。进一步的,服务器B还可以将该目标数据源C1和该客户端中与服务器B之间的路由距离最近的设备确定为回传设备,并指示该回传设备向服务器B发送目标数据X。
需要注意的是,本发明实施例仅以客户端A1和客户端A2同时向服务器B请求目标数据X为例进行解释说明,实际应用中同时请求同一目标数据的客户端也可以与本发明实施例不同。且本发明实施例提供的方法实施例步骤的先后顺序能够进行适当调整,步骤也能够根据情况进行相应增减,任何熟悉本技术领域的技术人员在本公开揭露的技术范围内,可轻易想到变化的方法,都应涵盖在本公开的保护范围之内,因此不再赘述。
综上所述,本发明实施例中提供的数据传输方法中,当多个客户端同时向服务器请求同一目标数据时,服务器可以根据路由距离控制该多个客户端与该同一数据的数据源的建立层级连接,然后控制已建立的层级连接中的上一级设备向下一级设备发送目标数据。即使多个客户端请求的同一数据的数据量较大时,服务器也不需要发送大量的数据给客户端,因此避免了服务器将数据量较大的数据发送给多个客户端的情况,所以减小了服务器的数据传输压力。
图10为本发明实施例提供的一种数据传输设备的结构示意图,该数据传输设备用于图1中的服务器。如图10所示,该数据传输设备100包括:
第一确定模块101,用于将需要在第一时刻获取目标数据的多个客户端以及目标数据源,均确定为待传输数据的设备,目标数据为目标数据源上的数据。
第一控制模块102,用于以目标数据源为第一级设备,控制待传输数据的设备建立层级连接,其中,在控制两个设备建立层级连接时,两个设备中的下一级设备为:当前所有未建立层级连接的设备中,与两个设备中的上一级设备的路由距离最近的设备。
第二控制模块103,用于控制已建立层级连接的设备中的每个上一级设备,在获取到目标数据后向连接的下一级设备发送目标数据。
综上所述,本发明实施例中提供的数据传输设备中,当多个客户端同时向服务器请求同一目标数据时,第一控制模块可以根据路由距离控制该多个客户端与该同一数据的数据源的建立层级连接,然后第二控制模块可以控制已建立的层级连接中的上一级设备向下一级设备发送目标数据。即使多个客户端请求的同一数据的数据量较大时,服务器也不需要发送大量的数据给客户端,因此避免了服务器将数据量较大的数据发送给多个客户端的情况,所以减小了服务器的数据传输压力。
可选的,已建立层级连接的每个设备均具有预设个数阈值,每个设备连接的下一级设备的个数均未超过每个设备的预设个数阈值。
可选的,图11是本发明实施例提供的另一种数据传输设备的结构示意图。如图11所示,在图10的基础上,数据传输设备100还可以包括:
第二确定模块104,用于确定需要获取目标数据的新增客户端。
第三确定模块105,用于将已建立层级连接的设备中,与新增客户端的路由距离最近的可接入设备确定为第一接入设备,其中,可接入设备连接的下一级设备的个数小于可接入设备的预设个数阈值。
第三控制模块106,用于控制第一接入设备与新增客户端建立层级连接。
第四控制模块107,用于控制第一接入设备在获取到目标数据后,向新增客户端发送目标数据。
可选的,图12是本发明实施例提供的又一种数据传输设备的结构示意图。如图12所示,在图10的基础上,该数据传输设备100还包括:
第四确定模块108,用于确定需要停止获取目标数据的中断客户端。
第五控制模块109,用于在中断客户端连接有下一级设备时,控制其他设备与中断客户端连接的下一级设备建立层级连接,其中,其他设备为已建立层级连接的可接入设备,且与中断客户端不同,可接入设备连接的下一级设备的个数小于可接入设备的预设个数阈值。
第六控制模块110,用于控制其他设备在获取到目标数据后,向连接的下一级设备发送目标数据。
可选的,中断客户端连接的上一级设备为第二接入设备,第五控制模块109用于:
确定第二接入设备还能够连接的下一级设备个数x;
判断中断客户端连接的下一级设备的个数是否超过x;
在中断客户端连接的下一级设备的个数未超过x时,控制第二接入设备与中断客户端连接的每个下一级设备建立层级连接,其他设备包括第二接入设备。
可选的,第五控制模块109还用于:
断开第二接入设备与所述中断客户端的连接;
在中断客户端连接的下一级设备的个数超过x时,控制第二接入设备与中断客户端连接的x个下一级设备建立层级连接;
将中断客户端连接的下一级设备中,未与第二接入设备建立层级连接的设备确定为剩余设备。
确定每个剩余设备对应的第三接入设备,其中,每个剩余设备对应的第三接入设备为:已建立层级连接的设备中,与每个剩余设备的路由距离最近的可接入设备。
控制每个剩余设备与其对应的第三接入设备建立层级连接,其他设备还包括:每个剩余设备对应的第三接入设备。
可选的,图13是本发明实施例提供的再一种数据传输设备的结构示意图。如图13所示,在图10的基础上,该数据传输设备100还包括:
第五确定模块111,用于在已建立层级连接的设备中,确定与服务器的路由距离最近的设备为第一回传设备。
第一发送模块112,用于向第一回传设备发送第一回传指令,第一回传指令用于指示缓存目标数据,并向服务器发送目标数据。
第一接收模块113,用于接收并存储第一回传设备根据第一回传指令发送的数据。
可选的,第一回传设备为客户端,第一回传设备具有缓存阈值。图14是本发明另一实施例提供的一种数据传输设备的结构示意图。如图14所示,在图13的基础上,该数据传输设备100还可以包括:
第二接收模块114,用于接收第一回传设备发送的支援请求,支援请求为第一回传设备缓存的数据量超过缓存阈值时生成的,支援请求用于指示目标数据中第一回传设备未缓存的剩余数据。
第六确定模块115,用于将第一回传设备连接的下一级设备确定为第二回传设备。
第二发送模块116,用于向第二回传设备发送第二回传指令,第二回传指令用于指示缓存剩余数据,并向服务器发送剩余数据。
第三接收模块117,用于接收并存储第二回传设备根据第二回传指令发送的数据。
综上所述,本发明实施例中提供的数据传输设备中,当多个客户端同时向服务器请求同一目标数据时,第一控制模块可以根据路由距离控制该多个客户端与该同一数据的数据源的建立层级连接,然后第二控制模块可以控制已建立的层级连接中的上一级设备向下一级设备发送目标数据。即使多个客户端请求的同一数据的数据量较大时,服务器也不需要发送大量的数据给客户端,因此避免了服务器将数据量较大的数据发送给多个客户端的情况,所以减小了服务器的数据传输压力。
图15为本发明实施例提供的一种计算机设备的结构示意图,该计算机设备可以为图1所示的数据传输系统中的服务器,如图15所示,计算机设备01可以包括:处理器011和存储器012。
其中,存储器012,用于存放计算机程序;
处理器011,用于执行存储器012上所存放的程序,实现如图2所示的数据传输方法中的步骤201、步骤202、步骤205、步骤206、步骤207、步骤208、步骤209、步骤212、步骤213、步骤214和步骤216,示例的,该方法可以包括:
将需要在第一时刻获取目标数据的多个客户端以及目标数据源,均确定为待传输数据的设备,所述目标数据为目标数据源上的数据;
以所述目标数据源为第一级设备,控制所述待传输数据的设备建立层级连接,其中,在控制两个设备建立层级连接时,所述两个设备中的下一级设备为:当前所有未建立层级连接的设备中,与所述两个设备中的上一级设备的路由距离最近的设备;
控制已建立层级连接的设备中的每个上一级设备,在获取到所述目标数据后向连接的下一级设备发送所述目标数据。
具体的,处理器011包括一个或者一个以上处理核心。处理器011通过运行存储器012存储的计算机程序,该计算机程序包括软件程序以及单元,从而执行各种功能应用以及数据处理。
存储器012存储的计算机程序包括软件程序以及单元。具体的,存储器012可存储操作系统0121、至少一个功能所需的应用程序单元0122。操作系统0121可以是实时操作系统(英文:Real Time eXecutive;简称:RTX)、LINUX、UNIX、WINDOWS或OSX之类的操作系统。该应用程序单元0122可以包括第一确定单元0122a、第一控制单元0122b和第二控制单元0122c。
第一确定单元0122a,具有与图10所示的数据传输设备中第一确定模块101相同或相似的功能。
第一控制单元0122b,具有与图10所示的数据传输设备中第一控制模块102相同或相似的功能。
第二控制单元0122c,具有与图10所示的数据传输设备中第二控制模块103相同或相似的功能。
本发明实施例提供了一种存储介质,其上存储有计算机程序,当所述存储介质中的程序由处理器执行时,实现如图2所示的数据传输方法中的步骤201、步骤202、步骤205、步骤206、步骤207、步骤210、步骤211和步骤213。
本发明实施例提供了一种数据传输系统,该数据传输系统可以为图1所示的数据传输系统,该数据传输系统可以包括:多个客户端、服务器以及数据源,服务器与多个客户端以及数据源相连接。该服务器可以为图10至图14任一所示的数据传输设备,也可以为图15所示的计算机设备。
需要说明的是:上述实施例提供的数据传输设备在传输数据时,仅以上述各功能模块的划分进行举例说明,实际应用中,可以根据需要而将上述功能分配由不同的功能模块完成,即将设备的内部结构划分成不同的功能模块,以完成以上描述的全部或者部分功能。另外,上述实施例提供的数据传输设备实施例与数据传输方法实施例属于同一构思,其具体实现过程详见方法实施例,这里不再赘述。
本领域普通技术人员可以理解实现上述实施例的全部或部分步骤可以通过硬件来完成,也可以通过程序来指令相关的硬件完成,所述的程序可以存储于一种计算机可读存储介质中,上述提到的存储介质可以是只读存储器,磁盘或光盘等。
以上所述仅为本发明的可选实施例,并不用以限制本发明,凡在本发明的精神和原则之内,所作的任何修改、等同替换、改进等,均应包含在本发明的保护范围之内。
Claims (19)
1.一种数据传输方法,其特征在于,用于服务器,所述方法包括:
将需要在第一时刻获取目标数据的多个客户端以及目标数据源,均确定为待传输数据的设备,所述目标数据为目标数据源上的数据;
以所述目标数据源为第一级设备,控制所述待传输数据的设备建立层级连接,其中,在控制两个设备建立层级连接时,所述两个设备中的下一级设备为:当前所有未建立层级连接的设备中,与所述两个设备中的上一级设备的路由距离最近的设备;
控制已建立层级连接的设备中的每个上一级设备,在获取到所述目标数据后向连接的下一级设备发送所述目标数据。
2.根据权利要求1所述的方法,其特征在于,已建立层级连接的每个设备均具有预设个数阈值,所述每个设备连接的下一级设备的个数均未超过所述每个设备的预设个数阈值。
3.根据权利要求2所述的方法,其特征在于,所述方法还包括:
确定需要获取所述目标数据的新增客户端;
将已建立层级连接的设备中,与所述新增客户端的路由距离最近的可接入设备确定为第一接入设备,其中,所述可接入设备连接的下一级设备的个数小于所述可接入设备的预设个数阈值;
控制所述第一接入设备与所述新增客户端建立层级连接;
控制所述第一接入设备在获取到所述目标数据后,向所述新增客户端发送所述目标数据。
4.根据权利要求2所述的方法,其特征在于,所述方法还包括:
确定需要停止获取所述目标数据的中断客户端;
在所述中断客户端连接有下一级设备时,控制其他设备与所述中断客户端连接的下一级设备建立层级连接,其中,所述其他设备为已建立层级连接的可接入设备,且与所述中断客户端不同,所述可接入设备连接的下一级设备的个数小于所述可接入设备的预设个数阈值;
控制所述其他设备在获取到所述目标数据后,向连接的下一级设备发送所述目标数据。
5.根据权利要求4所述的方法,其特征在于,所述中断客户端连接的上一级设备为第二接入设备,所述控制其他设备与所述中断客户端连接的下一级设备建立层级连接,包括:
断开所述第二接入设备与所述中断客户端的连接;
确定所述第二接入设备还能够连接的下一级设备个数x;
判断所述中断客户端连接的下一级设备的个数是否超过x;
在所述中断客户端连接的下一级设备的个数未超过x时,控制所述第二接入设备与所述中断客户端连接的每个下一级设备建立层级连接,所述其他设备包括所述第二接入设备。
6.根据权利要求5所述的方法,其特征在于,所述控制其他设备与所述中断客户端连接的下一级设备建立层级连接,还包括:
在所述中断客户端连接的下一级设备的个数超过x时,控制所述第二接入设备与所述中断客户端连接的x个下一级设备建立层级连接;
将所述中断客户端连接的下一级设备中,未与所述第二接入设备建立层级连接的设备确定为剩余设备;
确定每个剩余设备对应的第三接入设备,其中,所述每个剩余设备对应的第三接入设备为:已建立层级连接的设备中,与所述每个剩余设备的路由距离最近的可接入设备;
控制所述每个剩余设备与其对应的第三接入设备建立层级连接,所述其他设备还包括:所述每个剩余设备对应的第三接入设备。
7.根据权利要求1所述的方法,其特征在于,所述服务器上未存储有所述目标数据,所述方法还包括:
在已建立层级连接的设备中,确定与所述服务器的路由距离最近的设备为第一回传设备;
向所述第一回传设备发送第一回传指令,所述第一回传指令用于指示缓存所述目标数据,并向所述服务器发送所述目标数据;
接收并存储所述第一回传设备根据所述第一回传指令发送的数据。
8.根据权利要求7所述的方法,其特征在于,所述第一回传设备为所述客户端,所述第一回传设备具有缓存阈值,所述方法还包括:
接收所述第一回传设备发送的支援请求,所述支援请求为所述第一回传设备在缓存的数据量超过所述缓存阈值时生成的,所述支援请求用于指示所述目标数据中所述第一回传设备未缓存的剩余数据;
将所述第一回传设备连接的下一级设备确定为第二回传设备;
向所述第二回传设备发送第二回传指令,所述第二回传指令用于指示缓存所述剩余数据,并向所述服务器发送所述剩余数据;
接收并存储所述第二回传设备根据所述第二回传指令发送的数据。
9.一种数据传输设备,其特征在于,用于服务器,所述数据传输设备包括:
第一确定模块,用于将需要在第一时刻获取目标数据的多个客户端以及目标数据源,均确定为待传输数据的设备,所述目标数据为目标数据源上的数据;
第一控制模块,用于以所述目标数据源为第一级设备,控制所述待传输数据的设备建立层级连接,其中,在控制两个设备建立层级连接时,所述两个设备中的下一级设备为:当前所有未建立层级连接的设备中,与所述两个设备中的上一级设备的路由距离最近的设备;
第二控制模块,用于控制已建立层级连接的设备中的每个上一级设备,在获取到所述目标数据后向连接的下一级设备发送所述目标数据。
10.根据权利要求9所述的数据传输设备,其特征在于,已建立层级连接的每个设备均具有预设个数阈值,所述每个设备连接的下一级设备的个数均未超过所述每个设备的预设个数阈值。
11.根据权利要求10所述的数据传输设备,其特征在于,所述数据传输设备还包括:
第二确定模块,用于确定需要获取所述目标数据的新增客户端;
第三确定模块,用于将已建立层级连接的设备中,与所述新增客户端的路由距离最近的可接入设备确定为第一接入设备,其中,所述可接入设备连接的下一级设备的个数小于所述可接入设备的预设个数阈值;
第三控制模块,用于控制所述第一接入设备与所述新增客户端建立层级连接;
第四控制模块,用于控制所述第一接入设备在获取到所述目标数据后,向所述新增客户端发送所述目标数据。
12.根据权利要求10所述的数据传输设备,其特征在于,所述数据传输设备还包括:
第四确定模块,用于确定需要停止获取所述目标数据的中断客户端;
第五控制模块,用于在所述中断客户端连接有下一级设备时,控制其他设备与所述中断客户端连接的下一级设备建立层级连接,其中,所述其他设备为已建立层级连接的可接入设备,且与所述中断客户端不同,所述可接入设备连接的下一级设备的个数小于所述可接入设备的预设个数阈值;
第六控制模块,用于控制所述其他设备在获取到所述目标数据后,向连接的下一级设备发送所述目标数据。
13.根据权利要求12所述的数据传输设备,其特征在于,所述中断客户端连接的上一级设备为第二接入设备,所述第五控制模块用于:
断开所述第二接入设备与所述中断客户端的连接;
确定所述第二接入设备还能够连接的下一级设备个数x;
判断所述中断客户端连接的下一级设备的个数是否超过x;
在所述中断客户端连接的下一级设备的个数未超过x时,控制所述第二接入设备与所述中断客户端连接的每个下一级设备建立层级连接,所述其他设备包括所述第二接入设备。
14.根据权利要求13所述的数据传输设备,其特征在于,所述第五控制模块,还用于:
在所述中断客户端连接的下一级设备的个数超过x时,控制所述第二接入设备与所述中断客户端连接的x个下一级设备建立层级连接;
将所述中断客户端连接的下一级设备中,未与所述第二接入设备建立层级连接的设备确定为剩余设备;
确定每个剩余设备对应的第三接入设备,其中,所述每个剩余设备对应的第三接入设备为:已建立层级连接的设备中,与所述每个剩余设备的路由距离最近的可接入设备;
控制所述每个剩余设备与其对应的第三接入设备建立层级连接,所述其他设备还包括:所述每个剩余设备对应的第三接入设备。
15.根据权利要求9所述的数据传输设备,其特征在于,所述服务器上未存储有所述目标数据,所述数据传输设备还包括:
第五确定模块,用于在已建立层级连接的设备中,确定与所述服务器的路由距离最近的设备为第一回传设备;
第一发送模块,用于向所述第一回传设备发送第一回传指令,所述第一回传指令用于指示缓存所述目标数据,并向所述服务器发送所述目标数据;
第一接收模块,用于接收并存储所述第一回传设备根据所述第一回传指令发送的数据。
16.根据权利要求15所述的数据传输设备,其特征在于,所述第一回传设备为所述客户端,所述第一回传设备具有缓存阈值,所述数据传输设备还包括:
第二接收模块,用于接收所述第一回传设备发送的支援请求,所述支援请求为所述第一回传设备在缓存的数据量超过所述缓存阈值时生成的,所述支援请求用于指示所述目标数据中所述第一回传设备未缓存的剩余数据;
第六确定模块,用于将所述第一回传设备连接的下一级设备确定为第二回传设备;
第二发送模块,用于向所述第二回传设备发送第二回传指令,所述第二回传指令用于指示缓存所述剩余数据,并向所述服务器发送所述剩余数据;
第三接收模块,用于接收并存储所述第二回传设备根据所述第二回传指令发送的数据。
17.一种计算机设备,其特征在于,包括处理器和存储器,
其中,
所述存储器,用于存放计算机程序;
所述处理器,用于执行所述存储器上所存放的程序,实现权利要求1-8任一所述的数据传输方法。
18.一种计算机可读存储介质,其特征在于,所述计算机可读存储介质内存储有计算机程序,
所述计算机程序被处理器执行时实现权利要求1-8任一所述的数据传输方法。
19.一种数据传输系统,其特征在于,所述数据传输系统包括:服务器,
所述服务器为权利要求9至16任一所述的数据传输设备;
或者,所述服务器为权利要求17所述的计算机设备。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201711179802.3A CN109831467B (zh) | 2017-11-23 | 2017-11-23 | 数据传输方法、设备及系统 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201711179802.3A CN109831467B (zh) | 2017-11-23 | 2017-11-23 | 数据传输方法、设备及系统 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN109831467A true CN109831467A (zh) | 2019-05-31 |
CN109831467B CN109831467B (zh) | 2021-11-23 |
Family
ID=66858354
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201711179802.3A Active CN109831467B (zh) | 2017-11-23 | 2017-11-23 | 数据传输方法、设备及系统 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN109831467B (zh) |
Cited By (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN114041094A (zh) * | 2019-07-05 | 2022-02-11 | 三菱电机株式会社 | 通信装置及数据收集系统 |
CN114116237A (zh) * | 2022-01-28 | 2022-03-01 | 深圳市玩物科技有限公司 | 一种大规模网络设备的分级自治远程管理方法 |
Citations (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN101179485A (zh) * | 2006-11-10 | 2008-05-14 | 中兴通讯股份有限公司 | 新增组播成员的路径选择方法 |
CN101420458A (zh) * | 2008-12-09 | 2009-04-29 | 清华大学 | 基于内容分发网络的多媒体内容监控系统、方法及装置 |
CN101959218A (zh) * | 2009-10-25 | 2011-01-26 | 苏州大学 | 基于伸展树的事件区域检测方法 |
CN105450780A (zh) * | 2015-12-31 | 2016-03-30 | 深圳市网心科技有限公司 | 一种cdn系统及其回源方法 |
CN107094112A (zh) * | 2017-03-31 | 2017-08-25 | 西南交通大学 | 基于果蝇优化算法的带宽约束组播路由优化方法 |
-
2017
- 2017-11-23 CN CN201711179802.3A patent/CN109831467B/zh active Active
Patent Citations (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN101179485A (zh) * | 2006-11-10 | 2008-05-14 | 中兴通讯股份有限公司 | 新增组播成员的路径选择方法 |
CN101420458A (zh) * | 2008-12-09 | 2009-04-29 | 清华大学 | 基于内容分发网络的多媒体内容监控系统、方法及装置 |
CN101959218A (zh) * | 2009-10-25 | 2011-01-26 | 苏州大学 | 基于伸展树的事件区域检测方法 |
CN105450780A (zh) * | 2015-12-31 | 2016-03-30 | 深圳市网心科技有限公司 | 一种cdn系统及其回源方法 |
CN107094112A (zh) * | 2017-03-31 | 2017-08-25 | 西南交通大学 | 基于果蝇优化算法的带宽约束组播路由优化方法 |
Cited By (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN114041094A (zh) * | 2019-07-05 | 2022-02-11 | 三菱电机株式会社 | 通信装置及数据收集系统 |
CN114116237A (zh) * | 2022-01-28 | 2022-03-01 | 深圳市玩物科技有限公司 | 一种大规模网络设备的分级自治远程管理方法 |
Also Published As
Publication number | Publication date |
---|---|
CN109831467B (zh) | 2021-11-23 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN102202050B (zh) | 预期响应预高速缓存 | |
WO2017088384A1 (zh) | 一种直播视频的上传方法、装置及系统 | |
CN105488837A (zh) | 基于云计算的实时离屏渲染方法、装置及系统 | |
CN104539977B (zh) | 直播预览方法及装置 | |
CN109496432A (zh) | 流媒体直播方法及系统 | |
CN108848530B (zh) | 一种获取网络资源的方法、装置及调度服务器 | |
CN103002069A (zh) | 一种域名解析方法、装置及系统 | |
US20160080529A1 (en) | Method and device for sending requests | |
CN102137163A (zh) | 一种多媒体文件共享系统及其共享多媒体文件的方法 | |
CN102547478A (zh) | 基于cdn的流媒体触发式切片点播系统和方法 | |
CN102394822A (zh) | 一种调整网络传输速率的系统和方法 | |
CN108683730B (zh) | 资源调度方法、业务服务器、客户终端、网络系统和介质 | |
KR101686073B1 (ko) | 클라이언트 단말이 제공받고자 하는 서비스 특성에 따라 네트워크 토폴로지를 적응적으로 변형하여 서비스를 제공받도록 지원하는 방법, 관리 서버 및 컴퓨터 판독 가능한 기록매체 | |
CN109348264A (zh) | 视频资源共享方法、装置、存储介质及电子设备 | |
CN102377662B (zh) | 一种视频监控中面向带宽适应的路由缓存协商方法和系统 | |
CN109561054A (zh) | 一种数据传输方法、控制器及接入设备 | |
CN110351569A (zh) | 一种直播内容处理方法、装置、设备及介质 | |
CN109788301A (zh) | 一种流媒体的直播方法、终端设备、直播系统及计算机可读存储介质 | |
CN109831467A (zh) | 数据传输方法、设备及系统 | |
CN105635124A (zh) | 流量控制方法和装置 | |
CN102802041B (zh) | 支持多个实时动态数据源的智能流媒体服务器的实现方法 | |
CN105681266B (zh) | 一种多媒体电话MMTel的通讯集群方法及装置 | |
JPWO2011024930A1 (ja) | コンテンツ配信システム、コンテンツ配信方法及びコンテンツ配信用プログラム | |
CN104750545A (zh) | 一种调度进程的方法及装置 | |
CN110191362B (zh) | 数据传输方法及装置、存储介质及电子设备 |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
PB01 | Publication | ||
PB01 | Publication | ||
SE01 | Entry into force of request for substantive examination | ||
SE01 | Entry into force of request for substantive examination | ||
GR01 | Patent grant | ||
GR01 | Patent grant |