CN111182036A - 数据分流方法及网络构建方法、装置、设备、存储介质 - Google Patents
数据分流方法及网络构建方法、装置、设备、存储介质 Download PDFInfo
- Publication number
- CN111182036A CN111182036A CN201911270828.8A CN201911270828A CN111182036A CN 111182036 A CN111182036 A CN 111182036A CN 201911270828 A CN201911270828 A CN 201911270828A CN 111182036 A CN111182036 A CN 111182036A
- Authority
- CN
- China
- Prior art keywords
- node group
- data
- nodes
- node
- main
- 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
Classifications
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L67/00—Network arrangements or protocols for supporting network services or applications
- H04L67/01—Protocols
- H04L67/10—Protocols in which an application is distributed across nodes in the network
- H04L67/104—Peer-to-peer [P2P] networks
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L65/00—Network arrangements, protocols or services for supporting real-time applications in data packet communication
- H04L65/60—Network streaming of media packets
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L67/00—Network arrangements or protocols for supporting network services or applications
- H04L67/01—Protocols
- H04L67/10—Protocols in which an application is distributed across nodes in the network
- H04L67/104—Peer-to-peer [P2P] networks
- H04L67/1074—Peer-to-peer [P2P] networks for supporting data block transmission mechanisms
- H04L67/1078—Resource delivery mechanisms
Landscapes
- Engineering & Computer Science (AREA)
- Computer Networks & Wireless Communication (AREA)
- Signal Processing (AREA)
- Multimedia (AREA)
- Computer And Data Communications (AREA)
- Data Exchanges In Wide-Area Networks (AREA)
Abstract
本申请实施例提供一种数据分流方法、数据分流网络构建方法、装置、设备及存储介质,其中,数据分流方法包括:获取节点发送的数据请求,所述数据请求中包括数据标识和所述节点的节点标识;根据所述节点标识,确定所述节点所属的数据分流网络中主节点组的标识;根据所述主节点组的标识,将与所述数据标识对应的待分流数据,发送给所述主节点组中的至少两个主节点,以实现通过所述至少两个主节点,将所述待分流数据分流至与所述主节点组通信连接的子节点组中的至少两个子节点。通过本申请,能够极大的提高数据分享率,且不会造成节点之间数据分享的卡顿,提高了用户体验。
Description
技术领域
本申请实施例涉及互联网技术领域,涉及但不限于一种数据分流方法、数据分流网络构建方法、装置、设备及存储介质。
背景技术
目前,传统流媒体的数据传输网络模式,通常是客户端/服务器(C/S,Client/Server)模式,用户如果要获取视频资源,则需要通过客户端连接对应的服务器,然后从服务器上获取视频数据,即C/S模式是一种“点对点”的视频点播服务,显然,对服务器的依赖较高。
基于C/S模式对服务器依赖性较高的问题,目前人们采用(P2P,Peer to Peer)技术实现对流媒体数据的传输,网络中的每个节点负责流媒体数据中的一部分数据的下载,并将该部分数据分享给其他节点。
但是,目前的技术在P2P分享率的提高上已经达到瓶颈,且如果通过提高分流数来提高分享率的话,整个网络的卡顿率会上升,用户体验较差。
发明内容
本申请实施例提供一种数据分流方法、数据分流网络构建方法、装置、设备及存储介质,能够在不增加分流数的前提下大幅度提升分享率,降低网络的卡顿率,提高用户体验。
本申请实施例的技术方案是这样实现的:
本申请实施例提供一种数据分流方法,包括:
获取节点发送的数据请求,所述数据请求中包括数据标识和所述节点的节点标识;
根据所述节点标识,确定所述节点所属的数据分流网络中主节点组的标识;其中,所述数据分流网络中包括所述主节点组和多个子节点组,所述主节点组与所述多个子节点组中的至少一个子节点组通信连接;
根据所述主节点组的标识,将与所述数据标识对应的待分流数据,发送给所述主节点组中的至少两个主节点,以实现通过所述至少两个主节点,将所述待分流数据分流至与所述主节点组通信连接的子节点组中的至少两个子节点,其中,所述节点是所述主节点组中的一个主节点,或者是任一子节点组中的一个子节点。
本申请实施例提供一种数据分流网络构建方法,包括:
获取至少两个待分组节点的标识;
根据所述待分组节点的标识,对所述至少两个待分组节点进行分组,得到预设数量的节点组;
将每一所述节点组中的所述待分组节点两两互联,形成具有第三网络拓扑结构的节点组;
在具有所述第三网络拓扑结构的节点组中,确定主节点组和子节点组;
将所述主节点组与所述子节点组通信连接,形成所述数据分流网络。
本申请实施例提供一种数据分流装置,包括:
第一获取模块,用于获取节点发送的数据请求,所述数据请求中包括数据标识和所述节点的节点标识;
第一确定模块,用于根据所述节点标识,确定所述节点所属的数据分流网络中主节点组的标识;其中,所述数据分流网络中包括所述主节点组和多个子节点组,所述主节点组与所述多个子节点组中的至少一个子节点组通信连接;
发送模块,用于根据所述主节点组的标识,将与所述数据标识对应的待分流数据,发送给所述主节点组中的至少两个主节点,以实现通过所述至少两个主节点,将所述待分流数据分流至与所述主节点组通信连接的子节点组中的至少两个子节点,其中,所述节点是所述主节点组中的一个主节点,或者是任一子节点组中的一个子节点。
本申请实施例提供一种数据分流网络构建装置,包括:
第二获取模块,用于获取至少两个待分组节点的标识;
分组模块,用于根据所述待分组节点的标识,对所述至少两个待分组节点进行分组,得到预设数量的节点组;
互联模块,用于将每一所述节点组中的所述待分组节点两两互联,形成具有第三网络拓扑结构的节点组;
第二确定模块,用于在具有所述第三网络拓扑结构的节点组中,确定主节点组和子节点组;
通信连接模块,用于将所述主节点组与所述子节点组通信连接,形成所述数据分流网络。
本申请实施例提供一种数据分流设备,包括:
存储器,用于存储可执行指令;处理器,用于执行所述存储器中存储的可执行指令时,实现上述的方法。
本申请实施例提供一种存储介质,存储有可执行指令,用于引起处理器执行时,实现上述的方法。
本申请实施例具有以下有益效果:由于根据主节点组的标识,将待分流数据发送给所述主节点组中的至少两个主节点,以实现通过所述主节点组中的至少两个主节点,将所述待分流数据分流至与所述主节点组通信连接的子节点组中的至少两个子节点,如此,通过主节点组中的主节点将所述待分流数据发送给子节点组中的子节点,子节点组中的子节点无需从服务器下载数据,只需主节点组的主节点从服务器一次性获取待分流数据即可,可以极大的提高数据分享率,且不会造成节点之间数据分享的卡顿,极大的提高了用户体验。
附图说明
图1是本申请实施例提供的数据分流系统的一个可选的架构示意图;
图2A是本申请实施例提供的数据分流系统应用于区块链系统的一个可选的结构示意图;
图2B是本申请实施例提供的区块结构的一个可选的示意图;
图3是本申请实施例提供的服务器的结构示意图;
图4是本申请实施例提供的数据分流方法的一个可选的流程示意图;
图5是本申请实施例提供的数据分流方法的一个可选的流程示意图;
图6是本申请实施例提供的数据分流方法的一个可选的流程示意图;
图7是本申请实施例提供的数据分流方法的一个可选的流程示意图;
图8A是本申请实施例提供的星型结构的数据分流网络的结构示意图;
图8B是本申请实施例提供的树状结构的数据分流网络的结构示意图;
图9是本申请实施例提供的数据分流方法的一个可选的流程示意图;
图10是本申请实施例提供的数据分流网络构建方法的一个可选的流程示意图;
图11A是本申请实施例平均分流模型的结构示意图;
图11B是本申请实施例树状模型的结构示意图;
图12是本申请实施例混合模型的结构示意图;
图13A是本申请实施例使用平均分流模型的实际分享率示意图;
图13B是本申请实施例使用混合模型的实际分享率示意图。
具体实施方式
为了使本申请的目的、技术方案和优点更加清楚,下面将结合附图对本申请作进一步地详细描述,所描述的实施例不应视为对本申请的限制,本领域普通技术人员在没有做出创造性劳动前提下所获得的所有其它实施例,都属于本申请保护的范围。
在以下的描述中,涉及到“一些实施例”,其描述了所有可能实施例的子集,但是可以理解,“一些实施例”可以是所有可能实施例的相同子集或不同子集,并且可以在不冲突的情况下相互结合。除非另有定义,本申请实施例所使用的所有的技术和科学术语与属于本申请实施例的技术领域的技术人员通常理解的含义相同。本申请实施例所使用的术语只是为了描述本申请实施例的目的,不是旨在限制本申请。
为了更好地理解本申请实施例中提供的数据分流方法和数据分流网络构建方法,首先对P2P网络进行解释说明:
P2P网络即对等计算机网络,是一种在对等者(即节点)之间分配任务和工作负载的分布式应用架构,是对等计算模型在应用层形成的一种组网或网络形式。网络中的参与者共享网络中的节点所拥有的一部分硬件资源(处理能力、存储能力、网络连接能力、打印机等),这些共享资源通过网络提供服务和内容,能被其它节点直接访问而无需经过中间实体。在此网络中的参与者既是资源、服务和内容的提供者,又是资源、服务和内容的获取者。在P2P网络中,彼此连接的多个节点之间都处于对等的地位,各节点有相同的功能,无主从之分,任一节点既可作为服务器,设定共享资源供网络中其他节点所使用,又可以作为工作站。网络中的每一台计算机既能充当网络服务的请求者,又对其它计算机的请求做出响应,提供资源、服务和内容。
下面,对相关技术中的数据分流方法进行说明:
相关技术中,P2P分享使用的模型大多都是单一一种模型,在新型P2P(XP2P)网络中使用的是一种平均分流模型,也就是说把从服务器获取到的一份完整的数据均分成若干份(例如N份)数据子流,网络中的每个节点负责一份数据子流的下载并将该份数据子流分享给其他节点,其他节点亦然,进而每个节点都能达到获取到完整数据的效果。那么,在这种情况下,P2P分享率的理论值为(N-1)/N,但在实际的网络情况中,节点状态不是永恒稳定的,因此存在一定的损失,所以无法真正达到理论值。例如,在XP2P产品中目前是按照均分4道流,分享率理论值为75%,而实际分享率为60%左右。
这里,需要解释的是,P2P分享率是指节点从其他节点所获取的(即不从服务器获取)数据量与服务器所提供的数据总量之间的比值。
相关技术在P2P分享率的提高上已经达到瓶颈,哪怕在现有模型的基础上继续优化到极致,也无法突破理论值。虽然提高分流数能够提高分享率,但随之带来的是卡顿率上升,传输控制协议(TCP,Transmission Control Protocol)拥塞等一系列问题。
基于相关技术所存在的P2P分享率的提高上已经达到瓶颈以及卡顿率上升和TCP拥塞的部分问题,本申请实施例提供一种数据分流方法和数据分流网络构建方法,在平均分流模型的基础上增加树状模型,在不增加分流数的前提下也能大幅度提升分享率,对于用户的体验也不会有太大的影响。服务器接收终端发送的数据请求,根据数据请求中终端标识,确定所述终端所属的数据分流网络中主节点组的标识;根据所述主节点组的标识,将与所述数据标识对应的待分流数据,发送给所述主节点组中的至少两个节点,以实现通过所述主节点组中的至少两个节点,将所述待分流数据分流至子节点组中的至少两个节点。如此,通过主节点组将所述待分流数据发送给子节点组中的节点,子节点组中的节点无需从服务器下载数据,只需主节点组的节点从服务器一次性获取待分流数据即可,可以极大的提高数据分享率,且不会造成节点之间数据分享的卡顿,极大的提高了用户体验。另外,本申请实施例提供的方案还涉及人工智能的网络模型构建技术,比如,可以通过人工智能技术实现构建包括所述主节点组和所述子节点组的数据分流网络,将在下文进行说明。
这里,需要说明的是,人工智能是利用数字计算机或者数字计算机控制的机器模拟、延伸和扩展人的智能,感知环境、获取知识并使用知识获得最佳结果的理论、方法、技术及应用系统。换句话说,人工智能是计算机科学的一个综合技术,它企图了解智能的实质,并生产出一种新的能以人类智能相似的方式做出反应的智能机器。人工智能也就是研究各种智能机器的设计原理与实现方法,使机器具有感知、推理与决策的功能。
人工智能技术是一门综合学科,涉及领域广泛,既有硬件层面的技术也有软件层面的技术。人工智能基础技术一般包括如传感器、专用人工智能芯片、云计算、分布式存储、大数据处理技术、操作/交互系统、机电一体化等技术。人工智能软件技术主要包括计算机视觉技术、语音处理技术、自然语言处理技术以及机器学习/深度学习等几大方向。
下面说明本申请实施例提供的数据分流设备和数据分流网络构建设备的示例性应用,本申请实施例提供的数据分流设备和数据分流网络构建设备均可以实施为笔记本电脑,平板电脑,台式计算机,移动设备(例如,移动电话,便携式音乐播放器,个人数字助理,专用消息设备,便携式游戏设备)等各种类型的终端,也可以实施为服务器。下面,将说明数据分流设备和数据分流网络构建设备实施为服务器时的示例性应用。
参见图1,图1是本申请实施例提供的数据分流系统10的一个可选的架构示意图。为实现支撑一个数据分流应用(例如视频播放应用),数据分流系统10包括第一终端组100(即主节点组)和第二终端组110(即子节点组),其中,第一终端组中包括至少两个第一终端(图中示例性的示出了三个第一终端100-1、100-2和100-3),第二终端组中包括至少两个第二终端(图中示例性的示出了三个第二终端110-1、110-2和110-3)。在所述第一终端和所述第二终端上均同时运行有视频播放应用,其中第一终端组中的每一第一终端用于接收服务器发送的数据子流,第二终端组中的第二终端用于接收第一终端组中的第一终端发送的数据子流。
第一终端组中的每一第一终端通过网络200连接服务器300,对于第一终端和第二终端来说,服务器获取第一终端和/或第二终端发送的数据请求,服务器在确定出主节点组的标识后,将所述待分流数据分成若干份数据子流(图中是将待分流数据分流成三个数据子流),并将每一份数据子流分别发送给第一终端100-1、100-2和100-3,第一终端100-1、100-2和100-3在接收到对应的数据子流之后,互相分享各自所接收到的数据子流,并且将各自所接收到的数据子流对应发送给第二终端110-1、110-2和110-3(图1中是第一终端100-1将数据子流发送给第二终端110-1,第一终端100-2将数据子流发送给第二终端110-2,第一终端100-3将数据子流发送给第二终端110-3),从而实现所有终端都可以获取到完整的待分流数据。
本申请实施例中,网络200可以是广域网或者局域网,又或者是二者的组合。每一第一终端均可以在当前页面上显示视频140,每一第二终端也可以在当前页面上显示视频140。
本申请实施例涉及的数据分流系统10也可以是区块链系统的分布式系统101,参见图2A,图2A是本申请实施例提供的数据分流系统10应用于区块链系统的一个可选的结构示意图,其中,所述分布式系统101可以是由多个节点102(接入网络中的任意形式的计算设备,如服务器、用户终端)和客户端103形成的分布式节点,节点之间形成组成的点对点(P2P,Peer To Peer)网络,P2P协议是一个运行在传输控制协议(TCP,TransmissionControl Protocol)协议之上的应用层协议。在分布式系统中,任何机器如服务器、终端都可以加入而成为节点,节点包括硬件层、中间层、操作系统层和应用层。
参见图2A示出的区块链系统中各节点的功能,涉及的功能包括:
1)路由,节点具有的基本功能,用于支持节点之间的通信。
节点除具有路由功能外,还可以具有以下功能:
2)应用,用于部署在区块链中,根据实际业务需求而实现特定业务,记录实现功能相关的数据形成记录数据,在记录数据中携带数字签名以表示任务数据的来源,将记录数据发送到区块链系统中的其他节点,供其他节点在验证记录数据来源以及完整性成功时,将记录数据添加到临时区块中。
例如,应用实现的业务包括:
2.1)钱包,用于提供进行电子货币的交易的功能,包括发起交易(即,将当前交易的交易记录发送给区块链系统中的其他节点,其他节点验证成功后,作为承认交易有效的响应,将交易的记录数据存入区块链的临时区块中;当然,钱包还支持查询电子货币地址中剩余的电子货币。
2.2)共享账本,用于提供账目数据的存储、查询和修改等操作的功能,将对账目数据的操作的记录数据发送到区块链系统中的其他节点,其他节点验证有效后,作为承认账目数据有效的响应,将记录数据存入临时区块中,还可以向发起操作的节点发送确认。
2.3)智能合约,计算机化的协议,可以执行某个合约的条款,通过部署在共享账本上的用于在满足一定条件时而执行的代码实现,根据实际的业务需求代码用于完成自动化的交易,例如查询买家所购买商品的物流状态,在买家签收货物后将买家的电子货币转移到商户的地址;当然,智能合约不仅限于执行用于交易的合约,还可以执行对接收的信息进行处理的合约。
3)区块链,包括一系列按照产生的先后时间顺序相互接续的区块(Block),新区块一旦加入到区块链中就不会再被移除,区块中记录了区块链系统中节点提交的记录数据。
4)共识(Consensus),是区块链网络中的一个过程,用于在涉及的多个节点之间对区块中的交易达成一致,达成一致的区块将被追加到区块链的尾部,实现共识的机制包括工作量证明(PoW,Proof of Work)、权益证明(PoS,Pr oof of Stake)、股份授权证明(DPoS,Delegated Proof-of-Stake)、消逝时间量证明(PoET,Proof of Elapsed Time)等。
参见图2B,图2B是本申请实施例提供的区块结构(Block Structure)的一个可选的示意图,每个区块中包括本区块存储交易记录的哈希值(本区块的哈希值)、以及前一区块的哈希值,各区块通过哈希值连接形成区块链。另外,区块中还可以包括有区块生成时的时间戳等信息。区块链(Blockchain),本质上是一个去中心化的数据库,是一串使用密码学方法相关联产生的数据块,每一个数据块中包含了相关的信息,用于验证其信息的有效性(防伪)和生成下一个区块。
参见图3,图3是本申请实施例提供的服务器300的结构示意图,图3所示的服务器300包括:至少一个处理器310、存储器350、至少一个网络接口320和用户接口330。服务器300中的各个组件通过总线系统340耦合在一起。可理解,总线系统340用于实现这些组件之间的连接通信。总线系统340除包括数据总线之外,还包括电源总线、控制总线和状态信号总线。但是为了清楚说明起见,在图3中将各种总线都标为总线系统340。
处理器310可以是一种集成电路芯片,具有信号的处理能力,例如通用处理器、数字信号处理器(DSP,Digital Signal Processor),或者其他可编程逻辑器件、分立门或者晶体管逻辑器件、分立硬件组件等,其中,通用处理器可以是微处理器或者任何常规的处理器等。
用户接口330包括使得能够呈现媒体内容的一个或多个输出装置331,包括一个或多个扬声器和/或一个或多个视觉显示屏。用户接口330还包括一个或多个输入装置332,包括有助于用户输入的用户接口部件,比如键盘、鼠标、麦克风、触屏显示屏、摄像头、其他输入按钮和控件。
存储器350可以是可移除的,不可移除的或其组合。示例性的硬件设备包括固态存储器,硬盘驱动器,光盘驱动器等。存储器350可选地包括在物理位置上远离处理器310的一个或多个存储设备。存储器350包括易失性存储器或非易失性存储器,也可包括易失性和非易失性存储器两者。非易失性存储器可以是只读存储器(ROM,Read Only Memory),易失性存储器可以是随机存取存储器(RAM,Random Access Memory)。本申请实施例描述的存储器350旨在包括任意适合类型的存储器。在一些实施例中,存储器350能够存储数据以支持各种操作,这些数据的示例包括程序、模块和数据结构或者其子集或超集,下面示例性说明。
操作系统351,包括用于处理各种基本系统服务和执行硬件相关任务的系统程序,例如框架层、核心库层、驱动层等,用于实现各种基础业务以及处理基于硬件的任务;
网络通信模块352,用于经由一个或多个(有线或无线)网络接口320到达其他计算设备,示例性的网络接口320包括:蓝牙、无线相容性认证(WiFi)、和通用串行总线(USB,Universal Serial Bus)等;
输入处理模块353,用于对一个或多个来自一个或多个输入装置332之一的一个或多个用户输入或互动进行检测以及翻译所检测的输入或互动。
在一些实施例中,本申请实施例提供的装置可以采用软件方式实现,图3示出了存储在存储器350中的一种数据分流装置354,该数据分流装置354可以是服务器300中的数据分流装置,其可以是程序和插件等形式的软件,包括以下软件模块:第一获取模块3541、第一确定模块3542和发送模块3543,这些模块是逻辑上的,因此根据所实现的功能可以进行任意的组合或进一步拆分。将在下文中说明各个模块的功能。
在另一些实施例中,本申请实施例提供的数据分流网络构建设备也可以实施为服务器,所述服务器包括图3中所示的各个组件。其中,本申请实施例提供的数据分流网络构建装置也可以采用软件方式实现,该数据分流网络构建装置可以是服务器中的数据分流网络构建装置,其可以是程序和插件等形式的软件,包括以下软件模块(图中未示出):获取模块、分组模块、互联模块、第二确定模块和通信连接模块,这些模块是逻辑上的,因此根据所实现的功能可以进行任意的组合或进一步拆分。
在又一些实施例中,本申请实施例提供的装置可以采用硬件方式实现,作为示例,本申请实施例提供的装置可以是采用硬件译码处理器形式的处理器,其被编程以执行本申请实施例提供的数据分流方法和数据分流网络构建方法,例如,硬件译码处理器形式的处理器可以采用一个或多个应用专用集成电路(A SIC,Application Specific IntegratedCircuit)、DSP、可编程逻辑器件(PLD,Programmable Logic Device)、复杂可编程逻辑器件(CPLD,Complex Progra mmable Logic Device)、现场可编程门阵列(FPGA,Field-Programmable GateArray)或其他电子元件。
下面将结合本申请实施例提供的服务器300的示例性应用和实施,说明本申请实施例提供的数据分流方法。参见图4,图4是本申请实施例提供的数据分流方法的一个可选的流程示意图,将结合图4示出的步骤进行说明。
步骤S401,服务器接收节点发送的数据请求,所述数据请求中包括数据标识和所述节点的节点标识。
这里,所述节点可以是终端,服务器可以接收多个节点发送的数据请求,每一数据请求中包括对应节点的节点标识和所述数据标识,每一数据请求中的数据标识相同,也就是说,多个节点向服务器请求同一数据。
举例来说,所述数据请求可以是视频播放请求,那么,当服务器接收到多个节点发送的数据请求时,则所述多个节点向服务器请求播放同一视频。
在一些实施例中,服务器可以同时接收到多个节点发送的请求同一数据的所述数据请求,这样,由于多个节点同时请求相同的数据,因此,可以采用本申请实施例提供的数据分流方法,对待分流数据进行分流,从而多个节点同时获取到待分流数据。在另一些实施例中,服务器也可以依次接收多个节点发送的请求同一数据的所述数据请求,这样,由于多个节点依次请求相同的数据,因此,可以依次将节点添加到本申请实施例的数据分流网络中,从而实现多个节点均可以获取到待分流数据。
步骤S402,根据所述节点标识,确定所述节点所属的数据分流网络中主节点组的标识。
这里,所述数据分流网络中包括所述主节点组和多个子节点组,所述主节点组与所述多个子节点组中的至少一个子节点组通信连接;所述节点是所述数据分流网络中的主节点组中的一个主节点,或者是所述数据分流网络中的任一子节点组中的一个子节点。所述数据分流网络可以为P2P网络,在所述数据分流网络中,节点之间共享数据。
在获取到请求待分流数据的终端标识之后,确定节点所属的数据分流网络,所述节点所属的数据分流网络中包括所述节点,所述数据分流网络中包括至少两个节点,所述至少两个节点向服务器请求的数据相同,也就是说,在同一数据分流网络中,节点向服务器所请求的数据相同。所述数据分流网络中包括主节点组和至少一个子节点组。
本申请实施例中,在获取到终端标识之后,确定所述终端所属的数据分流网络中主节点组的标识,可以首先根据所述数据标识确定终端所请求的数据,然后在当前的数据分流网络库中,确定与所述数据标识对应的数据分流网络为要添加所述终端的数据分流网络,然后将所述终端添加到确定出的数据分流网络中,并确定所述数据分流网络中的主节点组的标识和子节点组的标识。其中,所述主节点组中包括至少两个节点,每一所述子节点组中包括至少两个节点。
步骤S403,根据所述主节点组的标识,将与所述数据标识对应的待分流数据,发送给所述主节点组中的至少两个主节点,以实现通过所述至少两个主节点,将所述待分流数据分流至与所述主节点组通信连接的子节点组中的至少两个子节点。
这里,在确定出所述数据分流网络中的中节点组的标识之后,确定主节点组中的至少两个主节点,根据所述主节点组中的主节点的数量N,将所述待分流数据分成N份数据子流,其中每一份数据的大小可以相同,也可以不同。
在实现的过程中,服务器是将N份数据子流分别发送给主节点组中的N个主节点,主节点组中的主节点在接收到数据子流之后,可以在主节点组内部共享各个所接收到的数据子流,即将自身接收到的数据子流发送给主节点组中的其他主节点。同时,主节点组中的主节点还将所接收到的服务器所发送的数据子流再发送给与所述主节点组通信连接的子节点组中的子节点,从而实现通过所述主节点组中的至少两个主节点,将所述待分流数据分流至子节点组中的至少两个子节点。
本申请实施例的方法可以应用于以下场景:在观看直播视频时,观看直播视频的终端向服务器所请求的数据相同,因此,可以采用本申请实施例提供的方法,不需要每个终端均从服务器下载视频数据,观看直播视频的多个终端可以形成所述数据分流网络,所述数据分流网络中包括主节点组和子节点组,服务器可以将视频数据均分后分别发送给主节点组中的多个终端,主节点组中的多个终端之间共享视频数据,并且,主节点组中的终端还可以将自身所接收到的视频数据发送给子节点组中的终端,如此在同一时刻大量终端请求观看同一直播视频时,可以避免大量的终端同时从服务器下载数据。
本申请实施例提供的数据分流方法,由于根据主节点组的标识,将待分流数据发送给所述主节点组中的至少两个主节点,以实现通过所述主节点组中的至少两个主节点,将所述待分流数据分流至与所述主节点组通信连接的子节点组中的至少两个子节点,如此,通过主节点组中的主节点将所述待分流数据发送给子节点组中的子节点,子节点组中的子节点无需从服务器下载数据,只需主节点组的主节点从服务器一次性获取待分流数据即可,可以极大的提高数据分享率,且不会造成节点之间数据分享的卡顿,极大的提高了用户体验。
在一些实施例中,所述数据分流网络中包括主节点组和多个子节点组,所述主节点组中包括至少两个主节点(即终端),所述子节点组中包括至少两个子节点。本申请实施例以第一终端为主节点组中的主节点,第二终端为子节点组中的子节点为例进行说明。图5是本申请实施例提供的数据分流方法的一个可选的流程示意图,如图5所示,所述方法包括以下步骤:
步骤S501,服务器接收第一终端发送的第一数据请求,所述第一数据请求中包括数据标识和所述第一终端的终端标识。
步骤S502,服务器接收第二终端发送的第二数据请求,所述第二数据请求中包括数据标识和所述第二终端的终端标识。
这里,所述第一数据请求和所述第二数据请求中所包括的数据标识相同,也就是说,第一终端与第二终端向服务器请求同一待分流数据。由于第一终端和第二终端行服务器请求同一待分流数据,因此,可以将第一终端和第二终端划分至同一数据分流网络中。
步骤S503,服务器根据所述终端标识获取所述第一终端和所述第二终端所属的数据分流网络的网络标识。
这里,所述数据分流网络是所述主节点组和多个子节点组之间采用第一网络拓扑结构形成的,即所述数据分流网络中的主节点组和子节点组之间具有第一网络拓扑结构;所述至少两个主节点之间采用第二网络拓扑结构形成所述主节点组;在每一子节点组中,所述至少两个子节点之间采用所述第二网络拓扑结构形成对应子节点组。其中,所述第一网络拓扑结构可以是任意一种网络结构,例如,树状结构、星型结构和平均分流结构等;所述第二网络拓扑结构也可以是任意一种网络结构,例如,树状结构、星型结构和平均分流结构等。所述第一网络拓扑结构与所述第二网络拓扑结构可以相同,也可以不同。
在一些实施例中,所述数据分流网络还可以是采用第三网络拓扑结构形成的,且所述数据分流网络中包括互相通信的至少两个节点组集合,其中,每一所述节点组集合中包括所述主节点组和所述子节点组。也就是说,所述数据分流网络中可以是由两种结构混合形成的混合结构,也可以是由三种或者三种以上的结构混合形成的混合结构。
步骤S504,服务器根据所述网络标识确定所述数据分流网络中主节点组的标识。
需要说明的是,步骤S504与上述步骤S402相同,本申请实施例不再赘述。
步骤S505,服务器根据所述主节点组的标识,将与所述数据标识对应的待分流数据,发送给所述第一终端。
这里,由于所述第一终端为主节点组中的终端,所述第二终端为子节点组中的终端,因此,在确定出数据分流网络之后,服务器可以将待分流数据发送给主节点组中的第一终端。
在一些实施例中,由于主节点组中的终端为多个,因此,主节点组中的每个终端可以分别接收所述待分流数据中的部分数据,而无需一次性从服务器下载完整的待分流数据。
在实现的过程中,服务器可以将所述待分流数据分成N份,得到N份数据子流,所述第一终端接收服务器发送的一份数据子流,对于所述待分流数据的其他数据子流,第一终端可以从所述主节点组中的其他终端获取。
步骤S506,所述第一终端将所述待分流数据发送给第二终端。
第一终端在接收到服务器发送的待分流数据之后,将自身所接收到的待分流数据发送给子节点组中的第二终端。在实现的过程中,由于所述第一终端接收的是服务器发送的数据子流,因此,第一终端可以将该数据子流发送给第二终端,而无需将完整的待分流数据全部发送给第二终端。
需要说明的是,本申请实施例以及图5只是示例性的,在实现的过程中,第一终端的数量可以为多个,第二终端的数量也可以为多个,服务器将待分流数据发送给多个第一终端,以实现通过这多个第一终端将待分流数据分流给对应的多个第二终端。
本申请实施例提供的数据分流方法,服务器根据主节点组的标识,将待分流数据发送给所述主节点组中的第一终端,第一终端再将所述待分流数据分流至子节点组中的第二终端,如此,通过主节点组中的第一终端将所述待分流数据发送给子节点组中的第二终端,子节点组中的第二终端无需从服务器下载数据,只需主节点组的第一终端从服务器一次性获取待分流数据即可,可以极大的提高数据分享率,且不会造成节点之间数据分享的卡顿,极大的提高了用户体验。
基于图4,图6是本申请实施例提供的数据分流方法的一个可选的流程示意图,如图6所示,所述方法还包括以下构建数据分流网络的步骤:
步骤S601,获取至少两个待分组节点的标识。
这里,所述至少两个待分组节点是向服务器请求相同数据的节点。
步骤S602,根据所述待分组节点的标识,对所述至少两个待分组节点进行分组,得到预设数量的节点组。
这里,可以根据所述待分组节点的数量进行分组,每一节点组中的待分组节点的数量相同;或者,也可以根据所述待分组节点的网络状态对待分组节点进行分组,将具有相同网络状态的待分组节点分为同一节点组,例如,所述网络状态可以是待分组节点的网络属性、网络连接状况、网络带宽和网络协议等;或者,也可以根据所述待分组节点的属性信息对待分组节点进行分组,将具有相同属性信息的待分组节点分为同一节点组,例如,所述属性信息可以是待分组节点的位置信息、待分组节点对待分流数据的请求频率和待分组节点的在线时长等;或者,也可以采用随机分组方式对待分组节点进行分组。
所述预设数量可以根据待分组节点数量的改变而进行调整,当所述待分组节点的数量增加时,所述预设数量可以增大,当所述待分组节点的数量减小时,所述预设数量可以减小。所述预设数量也可以根据所述待分流数据的大小进行调整,当所述待分组节点的数量一定时或者当所述待分组节点的数量稳定在一定的范围内时,如果所述待分流数据的数据量较大,则可以减小所述预设数量,从而使得每一节点组中的待分组节点的数量增加,如果所述待分流数据的数据量较小,则可以增大所述预设数量,从而使得每一节点组中的待分组节点的数量减小。
步骤S603,将每一所述节点组中的所述待分组节点两两互联,形成具有第二网络拓扑结构的节点组。
这里,采用平均分流结构将待分组节点两两互联,形成每一节点组,即所述第二网络拓扑结构为平均分流结构。所述待分组节点之间两两互联是指每两个待分组节点之间通信连接,可以互相分享数据。
步骤S604,在具有所述第二网络拓扑结构的节点组中,确定所述主节点组和所述子节点组。
这里,可以随机选择一个节点组作为所述中节点组,将除了所述主节点组之外的其他节点组确定为所述子节点组;或者,也可以将满足预设条件的节点组确定为所述主节点组,将除了所述主节点组之外的其他节点组确定为所述子节点组,其中,所述预设条件可以是网络状态条件和节点的属性信息条件等任意一种条件。
步骤S605,将所述主节点组与所述子节点组通信连接,形成所述数据分流网络。
在一些实施例中,可以将所述主节点组与所述子节点组通信连接,形成具有所述第一网络拓扑结构的数据分流网络。
需要说明的是,在一些实施例中,本申请实施例的数据分流网络的构建步骤也可以在服务器接收到终端发送的数据请求之后执行。
图7是本申请实施例提供的数据分流方法的一个可选的流程示意图,如图7所示,在一些实施例中,步骤S604还可以通过以下步骤实现:
步骤S701,在所述预设数量的节点组中,随机确定一个节点组为所述主节点组。
步骤S702,将除了所述主节点组之外的其他节点组,确定为所述子节点组。
在一些实施例中,所述第一网络拓扑结构可以为星型结构,即所述数据分流网络具有星型结构,如图8A所示,是本申请实施例提供的星型结构的数据分流网络的结构示意图,其中,主节点组801依次与每一所述子节点组802通信连接,形成具有所述星型结构的所述数据分流网络800。
对应地,步骤S605可以通过以下步骤实现:
步骤S6051,将所述主节点组依次与每一所述子节点组通信连接,形成具有所述星型结构的所述数据分流网络。
在一些实施例中,所述第一网络拓扑结构为树状结构,即所述数据分流网络具有树状结构,如图8B所示,是本申请实施例提供的树状结构的数据分流网络的结构示意图,其中,图8B中示出了树状结构包括三个分流层,其中,在最上层的分流层中包括主节点组811,在除了最上层分流层之外的其他下层分流层中,均包括有至少一个子节点组812,每一层中的节点组与下一层中的节点组之间通信连接,从而形成具有所述树状结构的数据分流网络810。
对应地,步骤S605还可以通过以下步骤实现:
步骤S6052,确定所述数据分流网络的分流层数。
这里,所述分流层数是所述子节点组对应的分流层数,即所述分流层数是将所述子节点组所划分的层数。
步骤S6053,根据所述分流层数,确定每一分流层中的子节点组的标识。
这里,在确定出所述分流层数的同时,还可以确定每一分流层中的子节点组的数量。
步骤S6054,根据第一层分流层中的子节点组的标识,将所述主节点组与所述第一层分流层中的子节点组通信连接。
这里,可以根据第一层分流层中的子节点组的标识和第一层分流层中的子节点组的数量,确定第一层分流层中的子节点组,并将所述主节点组与所述第一层分流层中的子节点组通信连接。
步骤S6055,根据每一分流层中的子节点组的标识,将对应分流层中的子节点组与相邻的分流层中的子节点组通信连接,从而形成具有所述树状结构的所述数据分流网络。
这里,可以根据每一分流层中的子节点组的标识和每一分流层中的子节点组的数量,确定对应分流层中的子节点组,并将对应分流层中的子节点组与相邻的分流层中的子节点组通信连接,从而形成具有所述树状结构的所述数据分流网络。
举例来说,第一层分流层中可以具有2个子节点组,第二层分流层中具有4个子节点组,第三层分流层中具有8个子节点组……那么,第一层中的每个子节点组分别与第二层分流层中的两个子节点组通信连接,第二层中的每个子节点组分别与第三层分流层中的两个子节点组通信连接……以此类推,最终得到具有所述树状结构的所述数据分流网络。
需要说明的是,所述第一网络拓扑结构还可以是除了所述星型结构和所述树状结构之外的其他任意一种结构,本申请实施例不做限定。
基于图4,图9是本申请实施例提供的数据分流方法的一个可选的流程示意图,如图9所示,步骤S403还可以通过以下步骤实现:
步骤S901,确定所述主节点组中的主节点对应的第一数目。
步骤S902,将与所述数据标识对应的待分流数据平均分成所述第一数目的数据子流。
步骤S903,将所述第一数目的数据子流,依次发送给所述主节点组中的所述至少两个主节点,以实现通过所述主节点组中的至少两个主节点,将所述待分流数据分流至与所述主节点组通信连接的子节点组中的至少两个子节点。
这里,所述主节点组中的每两个主节点之间共享数据,所述子节点组中的每两个子节点之间共享数据。所述主节点组中主节点的第一数目与所述子节点组中子节点的第二数目相同,且主节点组中的主节点与所述子节点组中的子节点一一对应。
在一些实施例中,步骤S903还可以通过以下步骤实现:
步骤S9031,将所述第一数目的数据子流,依次发送给所述主节点组中的所述至少两个主节点,以实现所述主节点组中每一主节点将所接收到的数据子流发送给与所述主节点组通信连接的子节点组中的对应子节点。
下面将结合本申请实施例提供的服务器的示例性应用和实施,说明本申请实施例提供的数据分流网络构建方法。图10是本申请实施例提供的数据分流网络构建方法的一个可选的流程示意图,如图10所示,所述方法包括以下步骤:
步骤S1001,服务器获取至少两个待分组节点的标识。
步骤S1002,根据所述待分组节点的标识,对所述至少两个待分组节点进行分组,得到预设数量的节点组。
步骤S1003,将每一所述节点组中的所述待分组节点两两互联,形成具有第三网络拓扑结构的节点组。
步骤S1004,在具有所述第三网络拓扑结构的节点组中,确定主节点组和子节点组。
在一些实施例中,所述第三网络拓扑结构可以是任意一种网络拓扑结构,例如,可以是平均分流结构,本申请实施例不做限定。
步骤S1005,将所述主节点组与所述子节点组通信连接,形成所述数据分流网络。
在一些实施例中,所述数据分流网络具有第四网络拓扑结构,所述第四网络拓扑结构可以是任意一种网络拓扑结构,例如,可以是树状结构,也可以是星型结构,本申请实施例不做限定。
下面,将说明本申请实施例在一个实际的应用场景中的示例性应用。
本申请实施例提供一种数据分流方法和数据分流网络构建方法,在目前X P2P的平均分流模型(即平均分流结构)基础下增加树状模型(即树状结构)形成一种混合模型,从而利用两种模型的优点来提高P2P的分享率。另外,上述所形成的混合模型并不局限于分流模型和树状模型,也可增删其他任意一种或多种模型。使用了本申请实施例的P2P产品,能够极大的提升P2P分享率,更大程度的节省成本,也能大大提升产品的核心竞争力。
本申请实施例在技术侧主要是在平均分流模型下增加树状模型形成一种混合模型,从而提高P2P分享率。下面分别对平均分流模型和树状模型进行说明。
在平均分流模型中,如图11A所示,是本申请实施例平均分流模型的结构示意图,本申请实施例以一个分流组中包括4个节点为例进行说明,当然本申请实施例只是示例性的,每一分流组中可以包括至少两个节点。在每一平均分流模型中,节点1101、节点1102、节点1103和节点1104两两互联。每个节点都需要从内容分发网络(CDN,Content DeliveryNetwork)处下载均分后的一小份数据,这里将这一使用平均分流模型的结合组合称为分流组。
从后台统计数据中可得,在每一分流组中,每个节点的P2P实际分享率为60%。实际上实际网络中不单单只存在一个分流组,而是数量不定的分流组,也就是说每个分流组至少要从CDN处下载回来一份完整的数据,才能提供该分流组中每个节点完整的数据。各个分流组中同编号的节点都要重复的从CDN处下载同一份数据。
在树状模型中,如图11B所示,是本申请实施例树状模型的结构示意图,树状模型由顶层节点1110获取源数据,然后将下载回来的数据分享给其子节点1111,然后一带二,二带四地层层分享给下方的子节点1112……在这种模型下,仅仅需要顶层节点1110下载一份数据即可给下方多个子节点提供完整的数据,分享率将达到一个很高的数值。但缺点也是很明显的,随着层数增加,底层节点与顶层节点之间的时差也随之增加,对于观看直播视频时的数据获取,不利于直播的观看体验,而当某一上层节点离开时,将会影响其下层的所有节点,另外底层节点也无法贡献数据,从而造成了数据的浪费。
上述提到的两种模型各有优缺点,树状模型能够提供很高的分享率,但缺点很明显,平均分流模型虽然能避开树状模型的大多缺点,但分享率存在一定瓶颈,因此本申请实施例提出一种结合这两种模型所形成的混合模型,取两种模型各自的优点,以此来达到更高的P2P分享率。
基于图11A和图11B,图12是本申请实施例混合模型的结构示意图,如图12所示,混合模型有第一层分流组1201、第二层分流组1202和第三层分流组1203,在各个分流组中各节点执行平均分流模型的数据分享操作,不同于传统的平均分流模型的是,原本第一层分流组1201中的1号节点1101仅会把其下载的数据分享给同一分流组中的其他节点,而混合模型中第一层分流组1201中的1号节点1101还会把其下载的数据分享给第二层分流组1202中的1号节点1101。同理,第一层分流组1201中的其他节点也会将其下载的数据分享给第二层分流组1202中的同号节点,因此对于第二层分流组1202来说,其中的所有节点的数据都来自第一层分流组1201,而不再是从CDN处下载,从而实现了第二层分流组1202中零成本获取完整数据的功能(需要说明的是,图12中仅示出了第一层分流组1201与一个第二层分流组1202中的各个节点的连接方式,其他分流组的连接方式请参照图12中的第一层分流组1201与左边的第二层分流组1202的连接方式)。基于同样的数据获取方式,第三层分流组1203中的节点也会从第二层分流组1202中的同号节点中获取数据。最终,整个网络中的分流组都可使用该种方式从上层节点处获取数据而不需要再从CDN获取。
另外,由于使用了混合模型,在分享率的计算上对于不同的分流组,其中的节点分享率也不同。在第一层分流组1201中,由于此组是树状模型的顶级节点,因此对于其中的节点分享率的理论值是75%,而对于第二层分流组1202和第三层分流组1203中的节点,由于此组是树状模型的子节点组,其分组中的节点数据来源上级节点,因此第二层分流组1202和第三层分流组1203中的分享率的理论值均可以达到100%。虽然实际的网络上是会有一定损耗的,实际的分享率不一定能达到100%的理论值,但是也会是相对于相关技术中比较高的一个值。
本申请实施例中使用了混合模型后的P2P分享率,在与使用平均分流模型的同等条件下,分享率突破了4道平均分流模型的实际值60%,达到了80%的分享率。
对于上述的实际分享率的数值的计算,是通过每一分钟采集一次每个节点从其他节点接收到的数据的字节数和有效的完整数据字节数,并发送至日志后台中。在日志后台中会把各个节点的上述两种数据(接收到的数据的字节数和有效的完整数据字节数)分别求和,得到分享数据字节数B和完整数据字节数T,最终通过下述公式(1-1)计算得到整个网络中的实际分享率P:
图13A是本申请实施例使用平均分流模型的实际分享率示意图,如图13A所示,使用平均分流模型(均分4道流的平均分流模型)的实际分享率为60%。图13B是本申请实施例使用混合模型的实际分享率示意图,如图13B所示,使用混合模型的实际分享率为80%。显然,使用混合模型的实际分享率远大于使用平均分流模型的实际分享率。
本申请实施例的上述混合模型仅使用了平均分流模型结合树状模型,从而达到的一种优化效果,在一些实施例中,混合模型可以不仅限于上述两种模型,还可以包括其他任意一种模型,例如星型模型。当然,在数量使用上也不仅仅局限于两种,可以是多种模型的混合使用。
下面继续说明本申请实施例提供的数据分流装置354实施为软件模块的示例性结构,在一些实施例中,如图3所示,存储在存储器350的数据分流装置354中的软件模块可以是服务器300中的数据分流装置,包括:
第一获取模块3541,用于获取节点发送的数据请求,所述数据请求中包括数据标识和所述节点的节点标识;
第一确定模块3542,用于根据所述节点标识,确定所述节点所属的数据分流网络中主节点组的标识;其中,所述数据分流网络中包括所述主节点组和多个子节点组,所述主节点组与所述多个子节点组中的至少一个子节点组通信连接;
发送模块3543,用于根据所述主节点组的标识,将与所述数据标识对应的待分流数据,发送给所述主节点组中的至少两个主节点,以实现通过所述至少两个主节点,将所述待分流数据分流至与所述主节点组通信连接的子节点组中的至少两个子节点,其中,所述节点是所述主节点组中的一个主节点,或者是任一子节点组中的一个子节点。
在一些实施例中,所述第一确定模块还用于:根据所述节点标识获取所述节点所属的数据分流网络的网络标识;根据所述网络标识确定所述数据分流网络中主节点组的标识。
在一些实施例中,所述主节点组和多个子节点组之间采用第一网络拓扑结构,形成所述数据分流网络;所述至少两个主节点之间采用第二网络拓扑结构形成所述主节点组;在每一子节点组中,所述至少两个子节点之间采用所述第二网络拓扑结构形成对应子节点组。
在一些实施例中,所述数据分流网络通过以下方式构建:获取至少两个待分组节点的标识;根据所述待分组节点的标识,对所述至少两个待分组节点进行分组,得到预设数量的节点组;将每一所述节点组中的所述待分组节点两两互联,形成具有第二网络拓扑结构的节点组;在具有所述第二网络拓扑结构的节点组中,确定所述主节点组和所述子节点组;将所述主节点组与所述子节点组通信连接,形成具有所述第一网络拓扑结构的所述数据分流网络。
在一些实施例中,所述数据分流网络还可以通过以下方式构建:在所述预设数量的节点组中,随机确定一个节点组为所述主节点组;将除了所述主节点组之外的其他节点组,确定为所述子节点组。
在一些实施例中,所述数据分流网络具有星型结构;所述数据分流网络还可以通过以下方式构建:将所述主节点组依次与每一所述子节点组通信连接,形成具有所述星型结构的所述数据分流网络。
在一些实施例中,所述数据分流网络具有树状结构;所述数据分流网络还可以通过以下方式构建:确定所述数据分流网络的分流层数;根据所述分流层数,确定每一分流层中的子节点组的标识;根据第一层分流层中的子节点组的标识,将所述主节点组与所述第一层分流层中的子节点组通信连接;根据每一分流层中的子节点组的标识,将对应分流层中的子节点组与相邻的分流层中的子节点组通信连接,从而形成具有所述树状结构的所述数据分流网络。
在一些实施例中,所述发送模块还用于:确定所述主节点组中的主节点对应的第一数目;将与所述数据标识对应的待分流数据平均分成所述第一数目的数据子流;将所述第一数目的数据子流,依次发送给所述主节点组中的所述至少两个主节点,以实现通过所述至少两个主节点,将所述待分流数据分流至与所述主节点组通信连接的子节点组中的至少两个子节点。
在一些实施例中,所述主节点组中主节点的第一数目与所述子节点组中子节点的第二数目相同,且所述主节点组中的主节点与所述子节点组中的子节点一一对应;所述发送模块还用于:将所述第一数目的数据子流,依次发送给所述主节点组中的所述至少两个主节点,以实现所述主节点组中每一主节点将所接收到的数据子流发送给与所述主节点组通信连接的子节点组中的对应子节点。
下面再说明本申请实施例提供的数据分流网络构建装置实施为软件模块的示例性结构,在一些实施例中,存储在存储器的数据分流网络构建装置中的软件模块可以是服务器中的数据分流网络构建装置,包括:
第二获取模块,用于获取至少两个待分组节点的标识;
分组模块,用于根据所述待分组节点的标识,对所述至少两个待分组节点进行分组,得到预设数量的节点组;
互联模块,用于将每一所述节点组中的所述待分组节点两两互联,形成具有第三网络拓扑结构的节点组;
第二确定模块,用于在具有所述第三网络拓扑结构的节点组中,确定主节点组和子节点组;
通信连接模块,用于将所述主节点组与所述子节点组通信连接,形成所述数据分流网络。
在一些实施例中,所述数据分流网络具有树状结构;所述通信连接模块还用于:确定所述数据分流网络的分流层数;根据所述分流层数,确定每一分流层中的子节点组的标识;根据第一层分流层中的子节点组的标识,将所述主节点组与所述第一层分流层中的子节点组通信连接;根据每一分流层中的子节点组的标识,将对应分流层中的子节点组与相邻的分流层中的子节点组通信连接,从而形成具有所述树状结构的所述数据分流网络。
需要说明的是,本申请实施例装置的描述,与上述方法实施例的描述是类似的,具有同方法实施例相似的有益效果,因此不做赘述。对于本装置实施例中未披露的技术细节,请参照本申请方法实施例的描述而理解。
本申请实施例提供一种存储有可执行指令的存储介质,其中存储有可执行指令,当可执行指令被处理器执行时,将引起处理器执行本申请实施例提供的方法,例如,如图4示出的方法。
在一些实施例中,存储介质可以是铁电存储器(FRAM,Ferromagnetic Ra ndomAccess Memory)、只读存储器(ROM,Read Only Memory)、可编程只读存储器(PROM,Programmable Read Only Memory)、可擦除可编程只读存储器(EPROM,ErasableProgrammable Read Only Memory)、带电可擦可编程只读存储器(EEPROM,ElectricallyErasable Programmable Read Only Me mory)、闪存、磁表面存储器、光盘、或光盘只读存储器(CD-ROM,Compact Disk-Read Only Memory)等存储器;也可以是包括上述存储器之一或任意组合的各种设备。
在一些实施例中,可执行指令可以采用程序、软件、软件模块、脚本或代码的形式,按任意形式的编程语言(包括编译或解释语言,或者声明性或过程性语言)来编写,并且其可按任意形式部署,包括被部署为独立的程序或者被部署为模块、组件、子例程或者适合在计算环境中使用的其它单元。
作为示例,可执行指令可以但不一定对应于文件系统中的文件,可以可被存储在保存其它程序或数据的文件的一部分,例如,存储在超文本标记语言(HTML,Hyper TextMarkup Language)文档中的一个或多个脚本中,存储在专用于所讨论的程序的单个文件中,或者,存储在多个协同文件(例如,存储一个或多个模块、子程序或代码部分的文件)中。作为示例,可执行指令可被部署为在一个计算设备上执行,或者在位于一个地点的多个计算设备上执行,又或者,在分布在多个地点且通过通信网络互连的多个计算设备上执行。
以上所述,仅为本申请的实施例而已,并非用于限定本申请的保护范围。凡在本申请的精神和范围之内所作的任何修改、等同替换和改进等,均包含在本申请的保护范围之内。
Claims (15)
1.一种数据分流方法,其特征在于,包括:
获取节点发送的数据请求,所述数据请求中包括数据标识和所述节点的节点标识;
根据所述节点标识,确定所述节点所属的数据分流网络中主节点组的标识;其中,所述数据分流网络中包括所述主节点组和多个子节点组,所述主节点组与所述多个子节点组中的至少一个子节点组通信连接;
根据所述主节点组的标识,将与所述数据标识对应的待分流数据,发送给所述主节点组中的至少两个主节点,以实现通过所述至少两个主节点,将所述待分流数据分流至与所述主节点组通信连接的子节点组中的至少两个子节点,
其中,所述节点是所述主节点组中的一个主节点,或者是任一子节点组中的一个子节点。
2.根据权利要求1所述的方法,其特征在于,所述根据所述节点标识,确定所述节点所属的数据分流网络中主节点组的标识,包括:
根据所述节点标识获取所述节点所属的数据分流网络的网络标识;
根据所述网络标识确定所述数据分流网络中主节点组的标识。
3.根据权利要求2所述的方法,其特征在于,所述主节点组和多个子节点组之间采用第一网络拓扑结构,形成所述数据分流网络;
所述至少两个主节点之间采用第二网络拓扑结构形成所述主节点组;
在每一子节点组中,所述至少两个子节点之间采用所述第二网络拓扑结构形成对应子节点组。
4.根据权利要求1所述的方法,其特征在于,所述数据分流网络通过以下方式构建:
获取至少两个待分组节点的标识;
根据所述待分组节点的标识,对所述至少两个待分组节点进行分组,得到预设数量的节点组;
将每一所述节点组中的所述待分组节点两两互联,形成具有第二网络拓扑结构的节点组;
在具有所述第二网络拓扑结构的节点组中,确定所述主节点组和所述子节点组;
将所述主节点组与所述子节点组通信连接,形成所述数据分流网络。
5.根据权利要求4所述的方法,其特征在于,所述在具有所述第二网络拓扑结构的节点组中,确定所述主节点组和所述子节点组,包括:
在所述预设数量的节点组中,随机确定一个节点组为所述主节点组;
将除了所述主节点组之外的其他节点组,确定为所述子节点组。
6.根据权利要求4所述的方法,其特征在于,所述数据分流网络具有星型结构;
所述将所述主节点组与所述子节点组通信连接,形成所述数据分流网络,包括:
将所述主节点组依次与每一所述子节点组通信连接,形成具有所述星型结构的所述数据分流网络。
7.根据权利要求4所述的方法,其特征在于,所述数据分流网络具有树状结构;所述将所述主节点组与所述子节点组通信连接,形成所述数据分流网络,包括:
确定所述数据分流网络的分流层数;
根据所述分流层数,确定每一分流层中的子节点组的标识;
根据第一层分流层中的子节点组的标识,将所述主节点组与所述第一层分流层中的子节点组通信连接;
根据每一分流层中的子节点组的标识,将对应分流层中的子节点组与相邻的分流层中的子节点组通信连接,从而形成具有所述树状结构的所述数据分流网络。
8.根据权利要求1至7任一项所述的方法,其特征在于,所述将与所述数据标识对应的待分流数据,发送给所述主节点组中的至少两个主节点,以实现通过所述至少两个主节点,将所述待分流数据分流至与所述主节点组通信连接的子节点组中的至少两个子节点,包括:
确定所述主节点组中的主节点对应的第一数目;
将与所述数据标识对应的待分流数据平均分成所述第一数目的数据子流;
将所述第一数目的数据子流,依次发送给所述主节点组中的所述至少两个主节点,以实现通过所述至少两个主节点,将所述待分流数据分流至与所述主节点组通信连接的子节点组中的至少两个子节点。
9.根据权利要求8所述的方法,其特征在于,所述主节点组中主节点的第一数目与所述子节点组中子节点的第二数目相同,且所述主节点组中的主节点与所述子节点组中的子节点一一对应;
所述将所述第一数目的数据子流,依次发送给所述主节点组中的所述至少两个主节点,以实现通过所述至少两个主节点,将所述待分流数据分流至与所述主节点组通信连接的子节点组中的至少两个子节点,包括:
将所述第一数目的数据子流,依次发送给所述主节点组中的所述至少两个主节点,以实现所述主节点组中每一主节点将所接收到的数据子流发送给与所述主节点组通信连接的子节点组中的对应子节点。
10.一种数据分流网络构建方法,其特征在于,包括:
获取至少两个待分组节点的标识;
根据所述待分组节点的标识,对所述至少两个待分组节点进行分组,得到预设数量的节点组;
将每一所述节点组中的所述待分组节点两两互联,形成具有第三网络拓扑结构的节点组;
在具有所述第三网络拓扑结构的节点组中,确定主节点组和子节点组;
将所述主节点组与所述子节点组通信连接,形成所述数据分流网络。
11.根据权利要求10所述的方法,其特征在于,所述数据分流网络具有树状结构;
所述将所述主节点组与所述子节点组通信连接,形成所述数据分流网络,包括:
确定所述数据分流网络的分流层数;
根据所述分流层数,确定每一分流层中的子节点组的标识;
根据第一层分流层中的子节点组的标识,将所述主节点组与所述第一层分流层中的子节点组通信连接;
根据每一分流层中的子节点组的标识,将对应分流层中的子节点组与相邻的分流层中的子节点组通信连接,从而形成具有所述树状结构的所述数据分流网络。
12.一种数据分流装置,其特征在于,包括:
第一获取模块,用于获取节点发送的数据请求,所述数据请求中包括数据标识和所述节点的节点标识;
第一确定模块,用于根据所述节点标识,确定所述节点所属的数据分流网络中主节点组的标识;其中,所述数据分流网络中包括所述主节点组和多个子节点组,所述主节点组与所述多个子节点组中的至少一个子节点组通信连接;
发送模块,用于根据所述主节点组的标识,将与所述数据标识对应的待分流数据,发送给所述主节点组中的至少两个主节点,以实现通过所述至少两个主节点,将所述待分流数据分流至与所述主节点组通信连接的子节点组中的至少两个子节点,其中,所述节点是所述主节点组中的一个主节点,或者是任一子节点组中的一个子节点。
13.一种数据分流网络构建装置,其特征在于,包括:
第二获取模块,用于获取至少两个待分组节点的标识;
分组模块,用于根据所述待分组节点的标识,对所述至少两个待分组节点进行分组,得到预设数量的节点组;
互联模块,用于将每一所述节点组中的所述待分组节点两两互联,形成具有第三网络拓扑结构的节点组;
第二确定模块,用于在具有所述第三网络拓扑结构的节点组中,确定主节点组和子节点组;
通信连接模块,用于将所述主节点组与所述子节点组通信连接,形成所述数据分流网络。
14.一种数据分流设备,其特征在于,包括:
存储器,用于存储可执行指令;处理器,用于执行所述存储器中存储的可执行指令时,实现权利要求1至9任一项所述的方法。
15.一种存储介质,其特征在于,存储有可执行指令,用于引起处理器执行时,实现权利要求1至9任一项所述的方法。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201911270828.8A CN111182036B (zh) | 2019-12-12 | 2019-12-12 | 数据分流方法及网络构建方法、装置、设备、存储介质 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201911270828.8A CN111182036B (zh) | 2019-12-12 | 2019-12-12 | 数据分流方法及网络构建方法、装置、设备、存储介质 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN111182036A true CN111182036A (zh) | 2020-05-19 |
CN111182036B CN111182036B (zh) | 2023-07-25 |
Family
ID=70657130
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201911270828.8A Active CN111182036B (zh) | 2019-12-12 | 2019-12-12 | 数据分流方法及网络构建方法、装置、设备、存储介质 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN111182036B (zh) |
Cited By (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN114793349A (zh) * | 2022-04-21 | 2022-07-26 | 中国联合网络通信集团有限公司 | 数据传输方法、装置、设备及存储介质 |
Citations (7)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US20120221646A1 (en) * | 2009-11-03 | 2012-08-30 | Telecom Italia S.P.A. | Caching of digital contents in p2p networks |
US20120221647A1 (en) * | 2009-11-03 | 2012-08-30 | Telecom Italia S.P.A. | Sharing of digital contents in p2p networks exploiting localization data |
WO2017035789A1 (zh) * | 2015-09-01 | 2017-03-09 | 深圳好视网络科技有限公司 | 一种数据传输方法及系统 |
WO2017181587A1 (zh) * | 2016-04-20 | 2017-10-26 | 乐视控股(北京)有限公司 | Cdn网络中的节点管理方法和电子设备 |
CN109474684A (zh) * | 2018-11-14 | 2019-03-15 | 广州虎牙信息科技有限公司 | 一种获取直播视频流的方法、装置、终端设备及存储介质 |
CN109688417A (zh) * | 2018-12-12 | 2019-04-26 | 广州虎牙信息科技有限公司 | 一种数据分发系统、方法、装置、电视盒子及存储介质 |
CN109889376A (zh) * | 2019-01-28 | 2019-06-14 | 东莞理工学院 | 一种均衡的网络拓扑生成方法 |
-
2019
- 2019-12-12 CN CN201911270828.8A patent/CN111182036B/zh active Active
Patent Citations (7)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US20120221646A1 (en) * | 2009-11-03 | 2012-08-30 | Telecom Italia S.P.A. | Caching of digital contents in p2p networks |
US20120221647A1 (en) * | 2009-11-03 | 2012-08-30 | Telecom Italia S.P.A. | Sharing of digital contents in p2p networks exploiting localization data |
WO2017035789A1 (zh) * | 2015-09-01 | 2017-03-09 | 深圳好视网络科技有限公司 | 一种数据传输方法及系统 |
WO2017181587A1 (zh) * | 2016-04-20 | 2017-10-26 | 乐视控股(北京)有限公司 | Cdn网络中的节点管理方法和电子设备 |
CN109474684A (zh) * | 2018-11-14 | 2019-03-15 | 广州虎牙信息科技有限公司 | 一种获取直播视频流的方法、装置、终端设备及存储介质 |
CN109688417A (zh) * | 2018-12-12 | 2019-04-26 | 广州虎牙信息科技有限公司 | 一种数据分发系统、方法、装置、电视盒子及存储介质 |
CN109889376A (zh) * | 2019-01-28 | 2019-06-14 | 东莞理工学院 | 一种均衡的网络拓扑生成方法 |
Non-Patent Citations (2)
Title |
---|
ARTHUR CALLADO: "Flow count: A CDN dynamic Replica Placement Algorithm for cross traffic optimization", 2013 IFIP/IEEE INTERNATIONAL SYMPOSIUM ON INTEGRATED NETWORK MANAGEMENT * |
何晓庆;: "基于改进型超级节点组的P2P图书馆联合目录检索系统模型研究", 图书馆理论与实践, no. 05 * |
Cited By (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN114793349A (zh) * | 2022-04-21 | 2022-07-26 | 中国联合网络通信集团有限公司 | 数据传输方法、装置、设备及存储介质 |
Also Published As
Publication number | Publication date |
---|---|
CN111182036B (zh) | 2023-07-25 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN102571686B (zh) | 云会议系统的实现方法 | |
US7421708B2 (en) | Peer-to-peer networking system using interconnectivity framework and peer library for interacting with applications | |
US10002141B2 (en) | Distributed database in software driven networks | |
Hu et al. | Toward multiscreen social TV with geolocation-aware social sense | |
US10116740B2 (en) | Peer-to-peer network prioritizing propagation of objects through the network | |
CN101626389B (zh) | 一种网络节点的管理方法 | |
Suciu et al. | Cloud computing as evolution of distributed computing-A case study for SlapOS distributed cloud computing platform | |
WO2008000840A1 (en) | Distributed p2p network system | |
CN111182036A (zh) | 数据分流方法及网络构建方法、装置、设备、存储介质 | |
Wang et al. | Exploring the design space of multichannel peer-to-peer live video streaming systems | |
Kasenides et al. | A systematic mapping study of MMOG backend architectures | |
McKnight et al. | Towards a sharing protocol for wireless grids | |
CN103179191A (zh) | P2p网络管控装置及p2p网络管控架构 | |
Bruno et al. | FreeCycles: efficient data distribution for volunteer computing | |
Ostrowski et al. | Live distributed objects: Enabling the active web | |
Huang et al. | A distributed trust model based on reputation management of peers for P2P VoD services | |
Navarro-Estepa et al. | A P2P replication-aware approach for content distribution in e-learning systems | |
Wu et al. | Research on P2P live streaming system | |
Bradley et al. | Resource discovery and management in computational Grid environments | |
Jayalalithaa et al. | Dynamic Xml Dataset Based On Multi-Channel Bus Architecture for Multimedia Cloud | |
Kotilainen et al. | P2PStudio: monitoring, controlling and visualization tool for peer-to-peer networks research | |
Li | Improving performance of BitTorrent network through incentive mechanism | |
Hérenger et al. | Operating virtual organizations using bipartite service level agreements | |
Eom et al. | On-line game service system using grid technology based on P2P environment | |
Hoong et al. | Red-black tree architecture for P2P media streaming |
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 |