CN112188247B - 一种数据传输方法、装置、设备及计算机可读存储介质 - Google Patents

一种数据传输方法、装置、设备及计算机可读存储介质 Download PDF

Info

Publication number
CN112188247B
CN112188247B CN202011049077.XA CN202011049077A CN112188247B CN 112188247 B CN112188247 B CN 112188247B CN 202011049077 A CN202011049077 A CN 202011049077A CN 112188247 B CN112188247 B CN 112188247B
Authority
CN
China
Prior art keywords
data
node
information
video
uploading
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.)
Active
Application number
CN202011049077.XA
Other languages
English (en)
Other versions
CN112188247A (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.)
Tencent Technology Beijing Co Ltd
Original Assignee
Tencent Technology Beijing Co Ltd
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by Tencent Technology Beijing Co Ltd filed Critical Tencent Technology Beijing Co Ltd
Priority to CN202011049077.XA priority Critical patent/CN112188247B/zh
Publication of CN112188247A publication Critical patent/CN112188247A/zh
Application granted granted Critical
Publication of CN112188247B publication Critical patent/CN112188247B/zh
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Images

Classifications

    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N21/00Selective content distribution, e.g. interactive television or video on demand [VOD]
    • H04N21/20Servers specifically adapted for the distribution of content, e.g. VOD servers; Operations thereof
    • H04N21/27Server based end-user applications
    • H04N21/274Storing end-user multimedia data in response to end-user request, e.g. network recorder
    • H04N21/2743Video hosting of uploaded data from client
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L63/00Network architectures or network communication protocols for network security
    • H04L63/12Applying verification of the received information
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L67/00Network arrangements or protocols for supporting network services or applications
    • H04L67/01Protocols
    • H04L67/06Protocols specially adapted for file transfer, e.g. file transfer protocol [FTP]
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L67/00Network arrangements or protocols for supporting network services or applications
    • H04L67/01Protocols
    • H04L67/10Protocols in which an application is distributed across nodes in the network
    • H04L67/104Peer-to-peer [P2P] networks
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L9/00Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols
    • H04L9/32Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols including means for verifying the identity or authority of a user of the system or for message authentication, e.g. authorization, entity authentication, data integrity or data verification, non-repudiation, key authentication or verification of credentials
    • H04L9/3236Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols including means for verifying the identity or authority of a user of the system or for message authentication, e.g. authorization, entity authentication, data integrity or data verification, non-repudiation, key authentication or verification of credentials using cryptographic hash functions
    • H04L9/3239Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols including means for verifying the identity or authority of a user of the system or for message authentication, e.g. authorization, entity authentication, data integrity or data verification, non-repudiation, key authentication or verification of credentials using cryptographic hash functions involving non-keyed hash functions, e.g. modification detection codes [MDCs], MD5, SHA or RIPEMD
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N21/00Selective content distribution, e.g. interactive television or video on demand [VOD]
    • H04N21/60Network structure or processes for video distribution between server and client or between remote clients; Control signalling between clients, server and network components; Transmission of management data between server and client, e.g. sending from server to client commands for recording incoming content stream; Communication details between server and client 
    • H04N21/63Control signaling related to video distribution between client, server and network components; Network processes for video distribution between server and clients or between remote clients, e.g. transmitting basic layer and enhancement layers over different transmission paths, setting up a peer-to-peer communication via Internet between remote STB's; Communication protocols; Addressing
    • H04N21/632Control signaling related to video distribution between client, server and network components; Network processes for video distribution between server and clients or between remote clients, e.g. transmitting basic layer and enhancement layers over different transmission paths, setting up a peer-to-peer communication via Internet between remote STB's; Communication protocols; Addressing using a connection between clients on a wide area network, e.g. setting up a peer-to-peer communication via Internet for retrieving video segments from the hard-disk of other client devices

Landscapes

  • Engineering & Computer Science (AREA)
  • Signal Processing (AREA)
  • Computer Security & Cryptography (AREA)
  • Computer Networks & Wireless Communication (AREA)
  • Multimedia (AREA)
  • Computer Hardware Design (AREA)
  • Computing Systems (AREA)
  • General Engineering & Computer Science (AREA)
  • Information Transfer Between Computers (AREA)

Abstract

本申请提供了一种数据传输方法、装置、设备及计算机可读存储介质;方法包括:当获取到针对目标视频的数据传输指令时,响应于数据传输指令,向信息服务器发送节点获取请求;接收信息服务器针对节点获取请求返回的至少一个节点信息;向至少一个数据上传节点分别发送数据请求;接收至少一个数据上传节点针对数据请求所返回的至少一个视频数据和至少一个校验信息;基于至少一个校验信息,从至少一个数据上传节点中确定出正常节点,并将正常节点的视频数据作为目标视频对应的目标视频数据;目标视频数据表征进行保存的视频数据。通过本申请,能够基于区块链的思想提高数据传输的效率。

Description

一种数据传输方法、装置、设备及计算机可读存储介质
技术领域
本申请涉及信息传输技术,尤其涉及一种数据传输方法、装置、设备及计算机可读存储介质。
背景技术
大数据时代的来临,使得互联网上充斥着大量视频数据,例如普通用户录制的短视频,专业的制作团队制作的长视频等。用户可以在互联网上,选择下载自己所喜欢的视频来进行观看。在实际应用中,用户可以通过点对点(Peer to Peer,P2P)技术来下载视频数据。
相关技术中,在利用P2P技术下载视频数据时,需要利用后台生成的校验信息进行校验才能实现。然而,当存在大量的新生成的视频数据时,后台逐个为这些新生成的视频数据生成校验信息势必会需要较多的时间,从而使得这些新生成的视频数据在较长时间之后才能开始进行传播,最终导致数据传输的实时性降低。
发明内容
本申请实施例提供一种数据传输方法、装置、设备及计算机可读存储介质,能够提高数据传输的实时性。
本申请实施例的技术方案是这样实现的:
本申请实施例提供一种数据传输方法,包括:
当获取到针对目标视频的数据传输指令时,响应于所述数据传输指令,向信息服务器发送节点获取请求;
接收所述信息服务器针对所述节点获取请求返回的至少一个节点信息;所述至少一个节点信息指明了提供所述目标视频对应的视频数据的至少一个数据上传节点;
向所述至少一个数据上传节点分别发送数据请求;
接收所述至少一个数据上传节点针对所述数据请求所返回的至少一个视频数据和至少一个校验信息;
基于所述至少一个校验信息,从所述至少一个数据上传节点中确定出正常节点,并将所述正常节点的视频数据作为所述目标视频对应的目标视频数据;所述目标视频数据表征进行保存的视频数据。
在本申请的一些实施例中,在所述将所述正常节点的视频数据作为所述目标视频对应的目标视频数据之后,所述方法还包括:
向所述信息服务器发送节点转变请求,以从数据下载节点转变为新的数据上传节点;所述节点转变请求用于向所述信息服务器上报具有所述目标视频的资源。
本申请实施例提供一种数据传输方法,包括:
接收数据下载节点针对目标视频发送的数据请求;
响应于所述数据请求,从已经上报资源的视频中,获取所述目标视频对应的视频数据,并针对所述目标视频对应的视频数据,生成校验信息;
将所述视频数据和所述校验信息发送给所述数据下载节点,以使所述数据下载节点基于所述校验信息确定所述视频数据是否为所述目标视频对应的目标视频数据。
本申请实施例提供一种数据传输方法,包括:
接收数据下载节点针对目标视频发送的节点获取请求;
响应于所述节点获取请求,从上报过拥有视频的资源的各个数据节点中,确定出用于提供所述目标视频对应的视频数据的至少一个数据上传节点;
将所述至少一个数据上传节点所对应的至少一个节点信息,返回给所述数据下载节点,以使所述数据下载节点从所述至少一个数据上传节点下载至少一个视频数据和至少一个校验信息,并基于所述至少一个校验信息,从所述至少一个数据上传节点中选择出正常节点,将所述正常节点的视频数据作为所述目标视频对应的目标视频数据。
在本申请的一些实施例中,在所述将所述至少一个数据上传节点所对应的至少一个节点信息,返回给所述数据下载节点之后,所述方法还包括:
接收所述至少一个数据上传节点中的任意一个数据上传节点发送的退出上传节点通知;所述退出上传节点通知是所述任意一个数据上传节点在异常次数超过预设好的次数阈值时发送的;
响应于所述退出上传节点通知,从所述至少一个节点信息中将所述退出上传节点通知对应的数据上传节点的节点信息剔除,得到修正后的至少一个节点信息。
本申请实施例提供一种数据下载装置,包括:
第一发送模块,用于当获取到针对目标视频的数据传输指令时,响应于所述数据传输指令,向信息服务器发送节点获取请求;向所述至少一个数据上传节点分别发送数据请求;
第一接收模块,用于接收所述信息服务器针对所述节点获取请求返回的至少一个节点信息;所述至少一个节点信息指明了提供所述目标视频对应的视频数据的至少一个数据上传节点;接收所述至少一个数据上传节点针对所述数据请求所返回的至少一个视频数据和至少一个校验信息;
数据确定模块,用于基于所述至少一个校验信息,从所述至少一个数据上传节点中确定出正常节点,并将所述正常节点的视频数据作为所述目标视频对应的目标视频数据;所述目标视频数据表征进行保存的视频数据。
在本申请的一些实施例中,所述第一发送模块,还用于向所述至少一个数据上传节点中除所述正常节点之外的其他数据上传节点发送异常通知信息;所述异常通知信息用于通知所述其他数据下载节点的视频数据是异常的。
在本申请的一些实施例中,所述数据确定模块,还用于依据所述至少一个校验信息各自的信息内容,将所述至少一个校验信息划分为一个或多个校验信息集合;其中,处于同一个校验信息集合中的校验信息的信息内容相同;对所述一个或多个校验信息集合中的每个校验信息集合所包含的校验信息的个数进行统计,得到所述每个校验信息集合所对应的统计结果;利用所述统计结果和所述至少一个校验信息中的校验信息的总数量,计算出所述每个校验信息集合对应的校验信息占比,并从所述每个校验信息集合对应的校验信息占比中,挑选出超过预设占比阈值的目标占比;从所述一个或多个校验信息集合中,挑选出所述目标占比所对应的目标校验信息集合,并从所述至少一个数据上传节点中,筛选出与所述目标校验信息集合中的各个校验信息相对应的所述正常节点。
在本申请的一些实施例中,所述第一发送模块,还用于向所述信息服务器发送节点转变请求,以从数据下载节点转变为新的数据上传节点;所述节点转变请求用于向所述信息服务器上报具有所述目标视频的资源。
在本申请的一些实施例中,所述第一接收模块,还用于接收所述信息服务器针对所述节点获取请求所返回的空节点信息;所述空节点信息表征不存在所述至少一个数据上传节点;接收所述资源服务器针对所述下载请求所发送的所述目标视频数据;
所述第一发送模块,还用于响应于所述空节点信息,向资源服务器发送针对所述目标视频的下载请求;向所述信息服务器发送节点转变请求,以从数据下载节点转变为新的数据上传节点。
本申请实施例提供一种数据上传装置,包括:
第二接收模块,用于接收数据下载节点针对目标视频发送的数据请求;
信息生成模块,用于响应于所述数据请求,从已经上报资源的视频中,获取所述目标视频对应的视频数据,并针对所述目标视频对应的视频数据,生成校验信息;
第二发送模块,用于将所述视频数据和所述校验信息发送给所述数据下载节点,以使所述数据下载节点基于所述校验信息确定所述视频数据是否为所述目标视频对应的目标视频数据。
在本申请的一些实施例中,所述数据上传装置还包括:次数统计模块;
所述第二接收模块,还用于接收所述数据下载节点发送的异常通知信息;所述异常通知信息是所述数据下载节点确定出所述视频数据存在异常时发出的;
所述次数统计模块,还用于响应于异常通知信息,从历史通知信息中获取历史异常通知信息;所述历史异常通知信息是在历史时间段内接收到的异常通知;利用所述异常通知信息和所述历史异常通知信息,统计出异常次数;
所述第二发送模块,还用于当所述异常次数超过预设好的次数阈值时,向信息服务器发送退出上传节点通知;所述退出上传节点通知用于表明不再提供所述目标视频的视频数据。
本申请实施例提供一种节点信息提供装置,包括:
第三接收模块,用于接收数据下载节点针对目标视频发送的节点获取请求;
节点确定模块,用于响应于所述节点获取请求,从上报过拥有视频的资源的各个数据节点中,确定出用于提供所述目标视频对应的视频数据的至少一个数据上传节点;
第三发送模块,用于将所述至少一个数据上传节点所对应的至少一个节点信息,返回给所述数据下载节点,以使所述数据下载节点从所述至少一个数据上传节点下载至少一个视频数据和至少一个校验信息,并基于所述至少一个校验信息,从所述至少一个数据上传节点中选择出正常节点,将所述正常节点的视频数据作为所述目标视频对应的目标视频数据。
在本申请的一些实施例中,所述节点信息提供装置还包括:节点剔除装置;
所述第三接收模块,还用于接收所述至少一个数据上传节点中的任意一个数据上传节点发送的退出上传节点通知;所述退出上传节点通知是所述任意一个数据上传节点在异常次数超过预设好的次数阈值时发送的;
所述节点剔除装置,用于响应于所述退出上传节点通知,从所述至少一个节点信息中将所述退出上传节点通知对应的数据上传节点的节点信息剔除,得到修正后的至少一个节点信息。
本申请实施例提供一种数据下载节点,包括:
第一存储器,用于存储可执行数据传输指令;
第一处理器,用于执行所述第一存储器中存储的可执行数据传输指令时,实现本申请实施例数据下载节点侧提供的数据传输方法。
本申请实施例提供一种数据上传节点,包括:
第二存储器,用于存储可执行数据传输指令;
第二处理器,用于执行所述第二存储器中存储的可执行数据传输指令时,实现本申请实施例数据上传节点侧提供的数据传输方法。
本申请实施例提供一种信息服务器,包括:
第三存储器,用于存储可执行数据传输指令;
第三处理器,用于执行所述第三存储器中存储的可执行数据传输指令时,实现本申请实施例信息服务器侧提供的数据传输方法。
本申请实施例提供一种计算机可读存储介质,存储有可执行数据传输指令,用于引起第一处理器执行时,实现本申请实施例数据下载节点侧提供的数据传输方法;或者用于引起第二处理器执行时,实现本申请实施例数据上传节点侧提供的数据传输方法;用于引起第三处理器执行时,实现本申请实施例信息服务器侧提供的数据传输方法。
本申请实施例具有以下有益效果:数据下载节点能够从信息服务器请求到至少一个节点信息,并向至少一个节点信息所指明的至少一个数据上传节点分别发送数据请求,然后接收至少一个数据上传节点所返回的至少一个视频数据,以及至少一个数据上传节点所生成的至少一个校验信息,如此,校验信息由具有资源的数据上传节点生成并返回,而不再由后台生成,降低了对后台生成校验信息的依赖,并且每个数据上传节点只是针对其所拥有的视频数据生成校验信息,即只需要单独一个视频数据的校验信息,势必会减少数据下载节点获取到校验信息所需要的时间,从而可以使得视频数据能够在生成后的较短时间内就传播出去,提高了数据传输的实时性。
附图说明
图1示出了相关技术中利用P2P技术下载视频时的过程示例图;
图2是本申请实施例提供的数据传输系统100的一个可选的架构示意图;
图3是本申请实施例提供的图2中的数据下载节点的结构示意图;
图4是本申请实施例提供的图2中的数据上传节点的结构示意图;
图5是本申请实施例提供的图2中的信息服务器的结构示意图;
图6是本申请实施例提供的数据传输方法的一个可选的流程示意图一;
图7是本申请实施例提供的数据传输方法的一个可选的流程示意图二;
图8是本申请实施例提供的数据传输方法的一个可选的流程示意图三;
图9是本申请实施例提供的在P2P网络中下载短视频的过程示例图;
图10是本申请实施例提供的剔除P2P网络中的恶意节点的示例图。
具体实施方式
为了使本申请的目的、技术方案和优点更加清楚,下面将结合附图对本申请作进一步地详细描述,所描述的实施例不应视为对本申请的限制,本领域普通技术人员在没有做出创造性劳动前提下所获得的所有其它实施例,都属于本申请保护的范围。
在以下的描述中,涉及到“一些实施例”,其描述了所有可能实施例的子集,但是可以理解,“一些实施例”可以是所有可能实施例的相同子集或不同子集,并且可以在不冲突的情况下相互结合。
在以下的描述中,所涉及的术语“第一\第二\第三”仅仅是是区别类似的对象,不代表针对对象的特定排序,可以理解地,“第一\第二\第三”在允许的情况下可以互换特定的顺序或先后次序,以使这里描述的本申请实施例能够以除了在这里图示或描述的以外的顺序实施。
除非另有定义,本文所使用的所有的技术和科学术语与属于本申请的技术领域的技术人员通常理解的含义相同。本文中所使用的术语只是为了描述本申请实施例的目的,不是旨在限制本申请。
对本申请实施例进行进一步详细说明之前,对本申请实施例中涉及的名词和术语进行说明,本申请实施例中涉及的名词和术语适用于如下的解释。
1)内容分发网络(Content Delivery Network,CDN)是依靠部署在各地的边缘服务器,通过中心平台的负载均衡、内容分发、调度等功能模块,使用户就近获取其所需的内容,解决网络拥挤的状况,提高用户访问网站的响应速度。
2)点对点传输(Peer to Peer,P2P)技术中,每个客户端都是一个节点,从而使得一个客户端可以直接从另外一个客户端中下载数据,从而节省了带宽成本,并优化了下载体验。P2P技术广泛应用于流媒体行业中。
3)校验信息,是用于对下载的数据、文件进行校验的信息,通过校验信息,能够发现下载的数据、文件是否被损坏或者是被篡改等。校验信息中通常包括文件大小、数据块的信息摘要等,例如,包括数据库的MD5(信息-摘要算法5, Message Digest Algorithm 5)值等。
4)种子(Peer)节点是P2P网络中的基本组成部分,任意一个向服务器上报了资源的客户端,都可以看作是种子节点。
5)用户原创内容(User Generated Content,UGC),是指用户将自己原创的内容通过互联网平台进行展示或者是分享给其他用户。在视频领域中,UGC 通常是指用户所上传的视频。
6)专业生成内容(Professional Generated Content,PGC),即由专业的制作团队所制作的内容。在视频领域中,PGC通常是指专业的视频制作团队所制作的视频,例如专业的视频网站所制作的视频等。
7)区块链(Blockchain),是分布式数据存储、点对点传输、共识机制、加密算法等计算机技术的新型应用模式。区块链本质上是一个去中心化的数据库,是一串使用密码学方法相关联产生的数据库,每一个数据库中包含了一批次网络交易的信息,用于验证其信息的有效性和生成下一个区块。
8)云技术(Cloud Technology)是指在广域网或局域网内将硬件、软件、网络等系列资源统一起来,实现数据的计算、存储、处理和共享的一种托管技术。
随着大数据时代的来临,互联网上会充斥着各种各样的视频数据,例如,普通用户将自己所录制的短视频上传至互联网,或者是专业的制作团队将制作出的长视频上传至互联网。用户在互联网上,可以选择自己喜欢的视频进行下载,从而可以随时观看其喜欢的视频。下载视频的方式多种多样,而P2P因为其优秀的性能,成为了实际中经常被使用的下载方式,也即,用户可以在实际应用中,通过P2P技术来下载自己喜欢的视频。
图1示出了相关技术中利用P2P技术下载视频时的过程示例图。从图1可以看出,在下载视频时,首先需要有大量用户节点向查种后台1-A上报本地资源1-1,成为P2P网络中的上传节点。当P2P网络有新的客户端1-B接入时,首先会向校验后台1-C发送校验信息请求1-2,查询校验后台1-C是否具有校验信息。若是校验后台1-C已经将用户节点做种,具有对应的校验信息时,会将校验信息返回1-3给新的客户端1-B,此时,客户端1-B会继续通过P2P技术下载视频。具体的,当客户端1-B接收到校验后台1-C发送的校验信息之后,就会向查种后台1-A发送视频查种请求1-4,查询是否有可以上传视频的种子节点(也可以理解为查询哪些种子节点具有可以下载的视频),查种后台1-A根据之前上报的资源查询到可连接的种子节点,并返回种子节点的信息1-5给客户端1-B。客户端1-B与可连接的种子节点建立连接并进行数据请求1-6,可连接的种子节点将对应的数据返回1-7给客户端1-B,客户端1-B根据之前所接收到的校验信息,来进行数据校验。若是校验后台1-C还没有对用户节点做种,则校验后台1-C会向客户端1-B返回空信息,此时,客户端1-B只能跳过P2P 流程,向CDN发送HTTP请求1-8,请求CND进行数据下载。CDN将视频对应的数据返回1-9给客户端1-B,从而实现视频的下载。
在利用P2P技术进行视频下载时,关键路径有用户节点上报本地资源到查种后台,新的客户端从校验后台下载校验信息,客户端连接有资源的种子节点,客户端从种子节点处下载数据并进行校验。其中,无论是下载长视频还是短视频时,新的客户端从校验后台下载校验信息这一关键路径,是依赖于校验后台提供的校验信息才能实现的,只有当新的客户端拿到校验信息才能开始P2P下载流程,判断从用户节点获取到的数据是否是正常的,否则可能会出现花屏设置无法播放的情况。在利用P2P下载的过程中,校验信息的生成是类似于集中式架构,也即当存在大量的新生成的视频数据时,校验后台需要消耗较多时间来生成校验信息,从而使得P2P节点无法及时得到校验信息,也就无法对新生成的视频数据及时通过P2P技术分享。而对于短视频而言,其大部分是由用户实时上传的,需要能够以较快的速度就分享出去,因此,短视频在此类结构中的分享的实时性就会下降,从而使得利用P2P技术下载视频数据的实时性较低,进而导致数据传输的实时性较低。
同时,P2P的下载效率在每条关键路径上都会有损耗,因此非必要路径越多,P2P的下载效率的损耗就会越大,这样,也会导致数据传输实时性的降低。
另外,在P2P网络中,很有可能存在一些对数据进行恶意篡改,并将错误数据进行恶意传播的异常节点,利用集中式结构生成的校验信息,很难分辨出 P2P网络中的异常节点,也就无法避免恶意传播。
区块链是指通过去中心化和去信任的方式集体维护一个可靠数据库的技术方案,是一种不依赖第三方,通过自身分布式节点进行网络数据的存储、验证、传递和交流的一种技术方案。基于此思想,本申请可以利用区块链去中心化和去信任的方式,来解除对校验后台的依赖,即无需依赖校验后台生成校验信息,直接依据各个用户节点来生成校验信息,从而根据不同的用户节点之间的校验信息的投票表决来确定出哪些用户节点的数据是没有问题的,如此以减少P2P 下载时的关键路径,同时还能够发现并剔除P2P网络中的异常节点。
本申请实施例提供一种数据传输方法、装置、设备及计算机可读存储介质,能够提高数据传输的效率。下面说明本申请实施例提供的区块链网络的示例性应用,参见图2,图2是本申请实施例提供的数据传输系统100的一个可选的架构示意图,为实现支撑一个数据传输应用,数据下载节点200通过网络300 连接至少一个数据上传节点400和信息服务器500,网络300可以是广域网或局域网,又或者是二者的组合。其中,信息服务器500可以是独立的物理服务器,也可以是多个物理服务器构成的服务器集群或者分布式系统,还可以是提供云服务、云数据库、云计算、云函数、网络服务、云通信、中间件服务、域名服务、安全服务、CDN,以及大数据和人工智能平台等基础云计算服务的云服务器。数据下载节点200可以是智能手机、平板电脑、笔记本电脑、台式计算机、智能音箱、智能手表等,但并不局限于此。每个数据上传节点400可以是智能手机、平板电脑、笔记本电脑、台式计算机、智能音箱、智能手表等,但并不局限于此。
当数据下载节点200接收到针对目标视频的数据传输指令时,响应于数据传输指令,通过网络300向信息服务器500发送节点获取请求。信息服务器50 0在接收到数据下载节点200针对目标视频发送的节点获取请求之后,会响应于节点获取请求,确定出用于提供目标视频对应的视频数据的至少一个数据上传节点400,并将至少一个数据上传节点400所对应的至少一个节点信息,通过网络300返回给数据下载节点200,其中,至少一个节点信息指明了提供目标视频对应的视频数据的至少一个数据上传节点。数据下载节点200接收到信息服务器500针对节点获取请求返回的至少一个节点信息之后,会向至少一个数据上传节点400分别发送数据请求。至少一个数据上传节点400中的每个数据上传节点400在接收到数据下载节点200针对目标视频发送的数据请求之后,会响应于数据请求,从已经上报资源的视频中,获取目标视频对应的视频数据,并针对目标视频对应视频数据,生成校验信息。之后,每个数据上传节点400 会将视频数据和校验信息发送给数据下载节点200。数据下载节点200在接收到至少一个数据上传节点400针对数据请求所返回的至少一个视频数据和至少一个校验信息之后,会基于至少一个校验信息,从至少一个数据上传节点400 中确定出正常节点,并将正常节点的视频数据作为目标视频对的目标视频数据。其中,至少一个校验信息用于校验至少一个视频数据是否出现错误,目标视频数据表征进行保存的视频数据。
参见图3,图3是本申请实施例提供的图2中的数据下载节点的结构示意图,图3所示的数据下载节点200包括:至少一个第一处理器210、第一存储器250、至少一个第一网络接口220和第一用户接口230。数据下载节点200 中的各个组件通过第一总线系统240耦合在一起。可理解,第一总线系统240 用于实现这些组件之间的连接通信。第一总线系统240除包括数据总线之外,还包括电源总线、控制总线和状态信号总线。但是为了清楚说明起见,在图3 中将各种总线都标为第一总线系统240。
第一处理器210可以是一种集成电路芯片,具有信号的处理能力,例如通用处理器、数字信号处理器(DSP,Digital Signal Processor),或者其他可编程逻辑器件、分立门或者晶体管逻辑器件、分立硬件组件等,其中,通用处理器可以是微处理器或者任何常规的处理器等。
第一用户接口230包括使得能够呈现媒体内容的一个或多个第一输出装置 231,包括一个或多个扬声器和/或一个或多个视觉显示屏。第一用户接口230 还包括一个或多个第一输入装置232,包括有助于用户输入的用户接口部件,比如键盘、鼠标、麦克风、触屏显示屏、摄像头、其他输入按钮和控件。
第一存储器250可以是可移除的,不可移除的或其组合。示例性的硬件设备包括固态存储器,硬盘驱动器,光盘驱动器等。第一存储器250可选地包括在物理位置上远离第一处理器210的一个或多个存储设备。
第一存储器250包括易失性存储器或非易失性存储器,也可包括易失性和非易失性存储器两者。非易失性存储器可以是只读存储器(ROM,Read Only Memory),易失性存储器可以是随机存取存储器(RAM,Random Access Me mory)。本申请实施例描述的第一存储器250旨在包括任意适合类型的存储器。
在一些实施例中,第一存储器250能够存储数据以支持各种操作,这些数据的示例包括程序、模块和数据结构或者其子集或超集,下面示例性说明。
第一操作系统251,包括用于处理各种基本系统服务和执行硬件相关任务的系统程序,例如框架层、核心库层、驱动层等,用于实现各种基础业务以及处理基于硬件的任务;
第一网络通信模块252,用于经由一个或多个(有线或无线)第一网络接口220到达其他计算设备,示例性的第一网络接口220包括:蓝牙、无线相容性认证(Wi-Fi)、和通用串行总线(USB,Universal Serial Bus)等;
第一呈现模块253,用于经由一个或多个与第一用户接口230相关联的第一输出装置231(例如,显示屏、扬声器等)使得能够呈现信息(例如,用于操作外围设备和显示内容和信息的用户接口);
第一输入处理模块254,用于对一个或多个来自一个或多个第一输入装置2 32之一的一个或多个用户输入或互动进行检测以及翻译所检测的输入或互动。
在一些实施例中,本申请实施例提供的数据下载装置可以采用软件方式实现,图3示出了存储在第一存储器250中的数据下载装置255,其可以是程序和插件等形式的软件,包括以下软件模块:第一发送模块2551、第一接收模块 2552和数据确定模块2553,这些模块是逻辑上的,因此根据所实现的功能可以进行任意的组合或进一步拆分。
将在下文中说明各个模块的功能。
在另一些实施例中,本申请实施例提供的数据下载装置可以采用硬件方式实现,作为示例,本申请实施例提供的数据下载装置可以是采用硬件译码处理器形式的处理器,其被编程以执行本申请实施例提供的数据传输方法,例如,硬件译码处理器形式的处理器可以采用一个或多个应用专用集成电路(ASIC, Application Specific IntegratedCircuit)、DSP、可编程逻辑器件(PLD,Progra mmable Logic Device)、复杂可编程逻辑器件(CPLD,Complex Programmabl e Logic Device)、现场可编程门阵列(FPGA,Field-Programmable Gate Array) 或其他电子元件。
示例性的,本申请实施例提供一种数据下载节点,包括:
第一存储器,用于存储可执行数据传输指令;
第一处理器,用于执行所述第一存储器中存储的可执行数据传输指令时,实现本申请实施例数据下载节点侧提供的数据传输方法。
参见图4,图4是本申请实施例提供的图2中的数据上传节点的结构示意图,图4所示的数据上传节点400包括:至少一个第二处理器410、第二存储器450、至少一个第二网络接口420和第二用户接口430。数据上传节点400 中的各个组件通过第二总线系统440耦合在一起。可理解,第二总线系统440 用于实现这些组件之间的连接通信。第二总线系统440除包括数据总线之外,还包括电源总线、控制总线和状态信号总线。但是为了清楚说明起见,在图4 中将各种总线都标为第二总线系统440。
第二处理器410可以是一种集成电路芯片,具有信号的处理能力,例如通用处理器、数字信号处理器(DSP,Digital Signal Processor),或者其他可编程逻辑器件、分立门或者晶体管逻辑器件、分立硬件组件等,其中,通用处理器可以是微处理器或者任何常规的处理器等。
第二用户接口430包括使得能够呈现媒体内容的一个或多个第二输出装置 431,包括一个或多个扬声器和/或一个或多个视觉显示屏。第二用户接口430 还包括一个或多个第二输入装置432,包括有助于用户输入的用户接口部件,比如键盘、鼠标、麦克风、触屏显示屏、摄像头、其他输入按钮和控件。
第二存储器450可以是可移除的,不可移除的或其组合。示例性的硬件设备包括固态存储器,硬盘驱动器,光盘驱动器等。第二存储器450可选地包括在物理位置上远离第二处理器410的一个或多个存储设备。
第二存储器450包括易失性存储器或非易失性存储器,也可包括易失性和非易失性存储器两者。非易失性存储器可以是只读存储器(ROM,Read Only Memory),易失性存储器可以是随机存取存储器(RAM,Random Access Me mory)。本申请实施例描述的第二存储器450旨在包括任意适合类型的存储器。
在一些实施例中,第二存储器450能够存储数据以支持各种操作,这些数据的示例包括程序、模块和数据结构或者其子集或超集,下面示例性说明。
第二操作系统451,包括用于处理各种基本系统服务和执行硬件相关任务的系统程序,例如框架层、核心库层、驱动层等,用于实现各种基础业务以及处理基于硬件的任务;
第二网络通信模块452,用于经由一个或多个(有线或无线)第二网络接口420到达其他计算设备,示例性的第二网络接口420包括:蓝牙、无线相容性认证(Wi-Fi)、和通用串行总线(USB,Universal Serial Bus)等;
第二呈现模块453,用于经由一个或多个与第二用户接口430相关联的第二输出装置431(例如,显示屏、扬声器等)使得能够呈现信息(例如,用于操作外围设备和显示内容和信息的用户接口);
第二输入处理模块454,用于对一个或多个来自一个或多个第二输入装置4 32之一的一个或多个用户输入或互动进行检测以及翻译所检测的输入或互动。
在一些实施例中,本申请实施例提供的数据上传装置可以采用软件方式实现,图4示出了存储在第二存储器450中的数据上传装置455,其可以是程序和插件等形式的软件,包括以下软件模块:第二接收模块4551、信息生成模块 4552、第二发送模块4553和次数统计模块4554,这些模块是逻辑上的,因此根据所实现的功能可以进行任意的组合或进一步拆分。
将在下文中说明各个模块的功能。
在另一些实施例中,本申请实施例提供的数据上传装置可以采用硬件方式实现,作为示例,本申请实施例提供的数据上传装置可以是采用硬件译码处理器形式的处理器,其被编程以执行本申请实施例提供的数据传输方法,例如,硬件译码处理器形式的处理器可以采用一个或多个应用专用集成电路(ASIC, Application Specific IntegratedCircuit)、DSP、可编程逻辑器件(PLD,Progra mmable Logic Device)、复杂可编程逻辑器件(CPLD,Complex Programmabl e Logic Device)、现场可编程门阵列(FPGA,Field-Programmable Gate Array) 或其他电子元件。
示例性的,本申请实施例提供一种数据上传节点,包括:
第二存储器,用于存储可执行数据传输指令;
第二处理器,用于执行所述第二存储器中存储的可执行数据传输指令时,实现本申请实施例数据上传节点侧提供的数据传输方法。
参见图5,图5是本申请实施例提供的图2中的信息服务器的结构示意图,图5所示的信息服务器500包括:至少一个第三处理器510、第三存储器550、至少一个第三网络接口520和第三用户接口530。信息服务器500中的各个组件通过第三总线系统540耦合在一起。可理解,第三总线系统540用于实现这些组件之间的连接通信。第三总线系统540除包括数据总线之外,还包括电源总线、控制总线和状态信号总线。但是为了清楚说明起见,在图5中将各种总线都标为第三总线系统540。
第三处理器510可以是一种集成电路芯片,具有信号的处理能力,例如通用处理器、数字信号处理器(DSP,Digital Signal Processor),或者其他可编程逻辑器件、分立门或者晶体管逻辑器件、分立硬件组件等,其中,通用处理器可以是微处理器或者任何常规的处理器等。
第三用户接口530包括使得能够呈现媒体内容的一个或多个第三输出装置 531,包括一个或多个扬声器和/或一个或多个视觉显示屏。第三用户接口530 还包括一个或多个第三输入装置532,包括有助于用户输入的用户接口部件,比如键盘、鼠标、麦克风、触屏显示屏、摄像头、其他输入按钮和控件。
第三存储器550可以是可移除的,不可移除的或其组合。示例性的硬件设备包括固态存储器,硬盘驱动器,光盘驱动器等。第三存储器550可选地包括在物理位置上远离第三处理器510的一个或多个存储设备。
第三存储器550包括易失性存储器或非易失性存储器,也可包括易失性和非易失性存储器两者。非易失性存储器可以是只读存储器(ROM,Read Only Memory),易失性存储器可以是随机存取存储器(RAM,Random Access Me mory)。本申请实施例描述的第三存储器550旨在包括任意适合类型的存储器。
在一些实施例中,第三存储器550能够存储数据以支持各种操作,这些数据的示例包括程序、模块和数据结构或者其子集或超集,下面示例性说明。
第三操作系统551,包括用于处理各种基本系统服务和执行硬件相关任务的系统程序,例如框架层、核心库层、驱动层等,用于实现各种基础业务以及处理基于硬件的任务;
第三网络通信模块552,用于经由一个或多个(有线或无线)第三网络接口520到达其他计算设备,示例性的第三网络接口520包括:蓝牙、无线相容性认证(Wi-Fi)、和通用串行总线(USB,Universal Serial Bus)等;
第三呈现模块553,用于经由一个或多个与第三用户接口530相关联的第一输出装置531(例如,显示屏、扬声器等)使得能够呈现信息(例如,用于操作外围设备和显示内容和信息的用户接口);
第三输入处理模块554,用于对一个或多个来自一个或多个第三输入装置5 32之一的一个或多个用户输入或互动进行检测以及翻译所检测的输入或互动。
在一些实施例中,本申请实施例提供的节点信息提供装置可以采用软件方式实现,图5示出了存储在第三存储器550中的节点信息提供装置555,其可以是程序和插件等形式的软件,包括以下软件模块:第三接收模块5551、节点确定模块5552、第三发送模块5553节点剔除模块5554,这些模块是逻辑上的,因此根据所实现的功能可以进行任意的组合或进一步拆分。
将在下文中说明各个模块的功能。
在另一些实施例中,本申请实施例提供的节点信息提供装置可以采用硬件方式实现,作为示例,本申请实施例提供的节点信息提供装置可以是采用硬件译码处理器形式的处理器,其被编程以执行本申请实施例提供的数据传输方法,例如,硬件译码处理器形式的处理器可以采用一个或多个应用专用集成电路(A SIC,Application SpecificIntegrated Circuit)、DSP、可编程逻辑器件(PLD, Programmable Logic Device)、复杂可编程逻辑器件(CPLD,Complex Progra mmable Logic Device)、现场可编程门阵列(FPGA,Field-Programmable Gate Array)或其他电子元件。
本申请实施例提供一种信息服务器,包括:
第三存储器,用于存储可执行数据传输指令;
第三处理器,用于执行所述第三存储器中存储的可执行数据传输指令时,实现本申请实施例信息服务器侧提供的数据传输方法。
下面,将结合本申请实施例提供的数据下载节点、数据上传节点和信息服务器的示例性应用和实施,说明本申请实施例提供的数据传输方法。需要说明的是,本申请中的各个实施例,均可以借助云技术来实现。
参见图6,图6是本申请实施例提供的数据传输方法的一个可选的流程示意图一,将结合图6示出的步骤进行说明。
S101、当数据下载节点获取到针对目标视频的数据传输指令时,响应于数据传输指令,向信息服务器发送节点获取请求。
本申请实施例是在用户从互联网上下载视频的场景下实现的,更具体的,是在通过P2P技术下载视频的场景下实现的,例如,通过P2P技术下载用户制作的短视频,或者是通过P2P技术下载电影时实现的。具有视频下载需求的终端,即为数据下载节点,也即,用户用来下载视频的终端,就是数据下载节点。数据下载节点是通过用户所触发的数据传输指令,来判断用户是否要开始数据下载的,此时,数据下载节点会实时监控用户是否针对某个视频触发了数据传输指令。当用户想要下载目标视频时,可以在数据下载节点上触发了数据传输指令,数据下载节点获取到针对目标视频的数据传输指令之后,就会明确用户想要下载的视频是哪个。然后,数据下载节点会响应于用户所触发的数据传输指令,生成节点获取请求,并将生成的节点获取请求发送给信息服务器,以请求信息服务器表明能够提供目标视频所对应的视频数据的数据上传节点有哪些。也就是说,数据下载节点会通过节点获取请求,来请求信息服务器告知哪些数据上传节点具有目标视频所对应的资源。信息服务器接收数据下载节点针对目标视频发送的节点获取请求,从而明确数据下载节点要开始视频下载流程。
可以理解的是,本申请实施例中,数据传输指令中可以包括目标视频的标识信息,该标识信息可以为目标视频的视频编号、目标视频的名称等,从而使得数据下载节点能够明确用户想要下载的是哪个视频。基于此,数据下载节点在生成节点获取请求时,可以将目标视频的标识信息一同打包至节点获取请求中,从而使信息服务器可以明确用户想要下载的是哪个视频。
在本申请的一些实施例中,数据传输指令可以是由用户在数据下载节点的显示界面上进行的操作事件触发的,例如,用户在数据下载节点的显示界面的搜索区域中输入目标视频的名称,并在显示界面上弹出的目标视频的信息展示区域中点击目标视频的下载链接时,就会触发数据传输指令。数据传输指令还可以是由用户通过语音触发的,例如,用户说出“下载最火的小视频”的语音语句时,数据下载节点对用户的语音语句进行解析,查询出热度最大的某个小视频时,就会触发数据传输指令。
可以理解的是,目标视频可以是电视剧集、电影、综艺视频、纪录片等长视频,也可以是歌曲MV、其他用户录制的小视频等短视频,还可以是其他类型的视频,本申请在此不作具体限制。
S102、信息服务器响应于节点获取请求,从上报过拥有视频的资源的各个数据节点中,确定出用于提供目标视频对应的视频数据的至少一个数据上传节点。
信息服务器在接收到针对目标视频的节点获取请求之后,就会响应于该节点获取请求,从所有向其自身上报过拥有视频的资源的各个数据节点中,筛选出上报过拥有目标视频所对应的资源的数据节点,被筛选出的数据节点,即为数据上传节点。也即是说,信息服务器将能够提供目标视频所对应的视频数据的数据节点,作为数据上传节点。由于在实际中,很有可能上报其目标视频的视频数据的数据节点不只一个,因此,信息服务器能够从拥有视频的资源的各个数据节点中,确定出拥有目标视频对应资源,即能够用于为数据下载节点提供目标视频所对应的视频数据的至少一个数据上传节点。
需要说明的是,在本申请的一些实施例中,信息服务器响应于节点获取请求,还有可能确定出的是空节点信息,即从上报过拥有视频的资源的各个数据节点中,确定不出至少一个数据上传节点。这是由于,数据节点在任意时间段都可以向信息服务器上报其拥有视频资源,不同的数据节点所用于的视频的资源可能是不同的,也可能是相同的,从而,在各个数据节点中,有可能具有拥有目标视频的资源的数据节点,也有可能没有拥有目标视频的资源的数据节点。当在各个数据节点中具有拥有目标视频的资源的数据节点时,信息服务器就能够确定出至少一个数据上传节点;当在各个数据节点中不具有拥有目标视频的资源的数据节点时,信息服务器所确定出的就是空节点信息;当用户在开始视频下载流程之前,还没有数据节点向信息服务器上报过其拥有视频的资源时,信息服务器响应于节点获取请求,所确定出的也会是空节点信息。
可以理解的是,数据上传节点是用来提供目标视频的资源的终端,该终端可以是智能手机、个人电脑、平板电脑等设备。换句话说,数据下载节点是从数据上传节点下载目标视频所对应的视频数据的。
S103、信息服务器将至少一个数据上传节点所对应的至少一个节点信息,返回给数据下载节点。
信息服务器在筛选出至少一个数据上传节点之后,然后会获取这些数据上传节点所对应的节点信息,从而得到至少一个节点信息,至少一个节点信息指明了提供目标视频对应的视频数据的至少一个数据上传节点。接着,信息服务器会将至少一个节点信息通过网络发送给数据下载节点,以向数据下载节点指明可以从哪些数据节点下载到目标视频对应的视频数据,以使得数据下载节点从至少一个数据上传节点下载至少一个视频数据和至少一个校验信息,并基于至少一个校验信息,从至少一个数据上传节点中选择出正常节点,将正常节点的视频数据作为目标视频对应的目标视频数据。对于数据下载节点而言,至少一个节点信息是其发送了节点获取请求之后才返回的,因此,数据下载节点接收信息服务器针对节点获取请求返回的至少一个节点信息,至少一个节点信息指明了提供目标视频对应的视频数据的至少一个数据上传节点。
可以理解的是,节点信息为用于数据上传节点的唯一性标识,通过该唯一性标识,能够将不同的数据上传节点区分开。在本申请的一些实施例中,节点信息可以为数据上传节点本身固有的硬件标识,例如,数据上传节点的唯一标识码、数据上传节点的硬件指纹等;在本申请的另一些实施例中,节点信息还可以为信息服务器为数据上传节点所分配的标识,例如,信息服务器为数据上传节点分配的ID等。当然,节点信息还可以是其他形式的,本申请在此不作限定。
S104、数据下载节点向至少一个数据上传节点分别发送数据请求。
数据下载节点在得到至少一个节点信息之后,就会生成数据请求,并向至少一个节点信息所指明的至少一个数据上传节点中每个数据上传节点,分别发送生成的数据请求,通过数据请求来告知每个数据上传节点想要下载目标视频所对应的视频数据。数据上传节点接收数据下载节点针对目标视频发送的数据请求,从而明确数据下载节点当前需要下载目标视频所对应的视频数据。
可以理解的是,数据下载节点在生成数据请求时,会将其自身的标识信息,以及目标视频的标识信息一并打包,从而告知各个数据下载节点想要下载视频的数据节点是谁,以及想要下载的视频是哪个。当然,数据节点中还可以包括时间戳等信息,在本申请在此不作限定。
S105、数据上传节点响应于数据请求,从已经上报资源的视频中,获取目标视频对应的视频数据,并针对目标视频对应的视频数据,生成校验信息。
数据上传节点得到了数据请求,可以从数据请求中解析出目标视频的标识信息,从而明确数据下载节点想要下载的视频是哪个。之后,数据上传节点会先提取出其已经上报了资源的各个视频,查找目标视频所对应的视频数据,当查找到目标视频对应的视频数据时,对该视频数据进行提取。之后,数据上传节点会针对查找到的视频数据来生成校验信息,从而便于数据下载节点来利用校验信息校验视频数据是否有问题。如此,可以直接由数据上传节点生成校验信息,直接进行视频下载的下一步动作,而不用再等到校验后台为目标视频的视频数据生成校验信息之后才能进行视频下载的下一步动作,减少了P2P下载时的关键路径,从而加快了数据下载节点得到校验信息的效率,能够便于数据下载节点尽快开始P2P下载,也即提高了数据传输的实时性。同时,由于校验信息不再是由信息服务器,即后台生成,而是直接由数据上传节点生成,从而即使信息服务器,即后台未能及时对视频数据制作校验信息,也能顺利开始P2 P下载流程。
需要说明的是,数据上传节点可以是对视频数据进行哈希运算,从而将视频数据的哈希值作为校验信息。数据上传节点也可以是利用循环冗余校验(Cy clic RedundancyCheck,CRC)算法来为视频数据生成校验码,还可以是利用 MD5算法来为视频数据生成校验码。在本申请的一些实施例中,校验信息中还可以包括视频数据的大小,针对某些特定数据块所生成的校验位,还可以包括其他信息,本申请在此不作限定。
S106、数据上传节点将视频数据和校验信息发送给数据下载节点。
数据上传节点将获取到的视频数据,以及针对视频数据所生成的校验信息通过网络发送给数据下载节点,以使数据下载节点基于校验信息确定视频数据是否为目标视频对应的目标视频数据。对于数据下载节点而言,由于其是向至少一个数据上传节点分别发送了数据请求,每个数据上传节点均按照上述过程提取出视频数据,并计算出校验信息,从而每个数据上传节点都将视频数据和校验信息返回给了数据下载节点,也即,数据下载节点是能够接收到至少一个视频数据和至少一个校验信息的,这些视频数据和校验信息都是针对数据请求返回的,因此,数据下载节点接收至少一个数据上传节点针对数据请求所返回的至少一个视频数据和至少一个校验信息。
需要说明的是,在本申请实施例中,至少一个校验信息用于校验至少一个视频数据在传输过程中是否出现错误,这种错误可能是由视频数据传输过程中网络不稳定,或者是数据下载节点的数据接收功能模块,又或是数据上传节点的数据发送功能模块损坏造成的。也即,若某个数据上传节点的视频数据本身就具有错误时,利用该视频数据所对应的校验信息,很有可能发现不了该视频数据的错误,这时,就需要借助于其他的数据上传节点所发送的校验信息,来发送这个数据上传节点的视频数据的错误了。
S107、数据下载节点基于至少一个校验信息,从至少一个数据上传节点中确定出正常节点,并将正常节点的视频数据作为目标视频对应的目标视频数据。
在实际中,存在于数据上传节点中的目标视频的资源有可能是存在异常的,例如,某个数据上传节点中的目标视频的视频数据被恶意软件更改,或者是被人为恶意更改,又或是目标视频的视频数据已经损坏等,这就会造成数据下载节点所接收到的至少一个视频数据中,有可能具有存在异常的视频数据,而这种存在异常的视频数据,是利用与其所对应的校验信息所校验不出来的。为了解决该问题,数据下载节点会对至少一个校验信息进行投票,即将至少一个校验信息按照信息内容进行分类,在每个类别内部,校验信息都是相同的,也即在每个类别内部中,不同数据上传节点所对应的视频数据也都是相同的。又由于不同的数据上传节点中的视频数据同时存在异常的概率是很小的,数据下载节点可以对至少一个校验信息中的各个校验信息相互进行比较,确定出哪些校验信息是不同于至少一个校验信息中的大多数校验信息的,从而区分出至少一个数据上传节点中哪些是正常节点,哪些是异常节点,最后将正常节点所对应的视频数据,作为目标视频数据。
可以理解的是,目标视频数据表征进行保存的视频数据,也就是说,数据下载节点在确定出正常节点之后,就会将正常节点所对应的视频数据进行保存,从而完成视频传输过程。
本申请实施例中,数据下载节点能够从信息服务器请求到至少一个节点信息,并向至少一个节点信息所指明的至少一个数据上传节点分别发送数据请求,然后接收至少一个数据上传节点所返回的至少一个视频数据,以及至少一个数据上传节点所生成的至少一个校验信息,如此,校验信息由具有资源的数据上传节点生成并返回,而不再由后台生成,降低了对后台生成校验信息的依赖,并且每个数据上传节点只是针对其所拥有的视频数据生成校验信息,即只需要单独一个视频数据的校验信息,势必会减少数据下载节点获取到校验信息所需要的时间,从而可以使得视频数据能够在生成后的较短时间内就传播出去,提高了数据传输的实时性。
基于图6,参见图7,图7是本申请实施例提供的数据传输方法的一个可选的流程示意图二。在本申请的一些实施例中,在数据上传节点基于至少一个校验信息,从至少一个数据上传节点中确定出正常节点,并从正常节点所对应的视频数据作为目标视频数据之后,即在S107之后,该方法还可以包括:S108- S112,如下:
S108、数据下载节点向至少一个数据上传节点中除正常节点之外的其他数据上传节点发送异常通知信息。
其中,异常通知信息用于通知其他数据上传节点其的视频数据是异常的。
数据下载节点在确定出正常节点,并将正常节点的视频数据作为目标视频数据进行保存之后,还会将至少一个数据上传节点中,除了正常节点之外的数据上传节点提取出来,这些数据上传节点的视频数据没有被数据下载节点认可,数据下载节点认为这些数据上传节点中的视频数据都是存在异常的,即认为这些数据上传节点是异常的。之后,数据下载节点会生成异常通知信息,并将异常通知信息发送给所确定出的其他数据上传节点,从而通过异常通知信息,来告知其他数据上传节点数据下载节点认为其所对应的视频数据是异常的。对于这些数据上传节点而言,其在将视频数据和校验信息发送给数据下载节点之后,还有可能存在被数据下载节点通知其是异常节点的情况,此时,数据上传节点接收数据下载节点发送的异常通知信息,异常通知信息是数据下载节点确定出视频数据存在异常时发出的。
可以理解的是,数据下载节点向其所认定的异常的数据上传节点发送异常通知信息,就相当于是给这些其他数据上传节点中投异常票的行为。当然,一个数据下载节点是有可能针对某个数据上传节点误投了异常票的,但是,从宏观上来看,当有较多的数据下载节点都对某个数据上传节点投了异常票时,也即该数据上传节点的“票数”超过了一定程度时,说明该数据上传节点很有可能就是恶意的节点,因而,从宏观上,通过这种方式是必然能够找出P2P网络中的恶意的节点的。
可以理解的是,异常通知信息中可以包括数据下载节点自身的标识,也可以包括目标视频的标识信息,还可以包括其他的信息,本申请在此不作限定。
S109、数据上传节点响应于异常通知信息,从历史通知信息中获取历史异常通知信息。
需要说明的是,历史异常通知信息是在历史时间段内接收到的异常通知。数据上传节点在接收到异常通知信息之后,就会立即从自身的存储空间中,查找在历史时间段内所接收到的所有通知,并从这些接收到的通知中将异常通知提取出来,作为历史异常通知信息。
可以理解的是,数据上传节点历史时间所接收到的异常通知,可以是由历史时间段内,从该数据上传节点下载过针对目标视频的视频数据的任意一个历史数据下载节点所发送的,并且,这些异常信息也是历史数据下载节点确定出数据上传节点所拥有的目标视频的视频数据存在异常时发出的。
需要说明的是,本申请实施例中,历史异常通知信息中的异常通知可能并不只一个,也快有可能只有一个异常通知,还有可能没有异常通知(此时异常通知信息的内容为空)。
S110、数据上传节点利用异常通知信息和历史异常通知信息,统计出异常次数。
由于数据下载节点认为数据上传节点所拥有的目标视频的视频数据存在异常,并不能代表数据上传节点所拥有的目标视频的视频数据真的存在异常,因此,数据上传节点还需要进一步根据异常通知的接收情况,判断其所拥有的目标视频的视频数据是否真实存在异常。此时,数据上传节点在获取到历史异常通知信息之后,就会将历史异常通知信息中的异常通知的个数统计出来,然后再将统计的个数与异常通知信息的个数进行累加,从而得到数据上传节点接收到异常通知的次数,得到异常次数,以便于后续数据上传节点依据异常次数判断出其所拥有的目标视频的视频数据是否真的是存在异常。
S111、当异常次数超过预设好的次数阈值时,数据上传节点向信息服务器发送退出上传节点通知。
其中,退出上传节点通知用于表明不再提供目标视频的视频数据。
数据上传节点将统计出的异常次数和预设好的次数阈值进行比较,判断出异常次数和预设好的次数阈值之间的大小关系。当异常次数大于预设好的次数阈值时,数据上传节点会生成退出上传节点通知,然后将退出上传节点通知发送给信息服务器,从而向信息服务器表明其不再继续为后续的新的数据下载节点提供目标视频所对应的视频数据。信息服务器接收至少一个数据上传节点中的任意一个数据上传节点发送的退出上传节点通知,其中,对于信息服务器而言,退出上传节点通知是该任意一个数据上传节点在异常次数超过预设好的次数阈值时发送的。
可以理解的是,预设好的次数阈值是可以根据实际情况进行设定的,例如,将预设好的次数阈值设置为3,或者是将预设好的次数阈值设置为5等,本申请实施例在此不作限定。
S112、信息服务器响应于退出上传节点通知,从至少一个节点信息中将退出上传节点通知对应的数据上传节点的节点信息剔除,得到修正后的至少一个节点信息。
信息服务器在接收到任意一个数据上传节点发送的退出上传节点通知之后,就会响应于该退出上传节点通知,将退出上传节点通知对应的数据上传节点的节点信息,从至少一个节点信息中剔除掉,从而将资源存在问题的种子删除,得到修正后的至少一个节点信息。如此,信息服务器就在P2P网络中将恶意节点寻找出来,并删除掉恶意节点所对应节点信息,从而使得新的数据下载节点无法再获取恶意节点的节点信息,避免了恶意节点恶意传播错误数据时所带来的数据污染。
本申请实施例中,数据下载节点会给其认为存在异常的其他数据上传节点发送异常通知信息,一旦数据上传节点接收到异常通知信息,就会开始统计其受到异常通知的异常次数,然后基于异常次数判断出其所拥有的目标视频的视频数据是否真正存在问题,当其拥有的目标视频的视频数据真正存在问题,也即其为异常的节点时,会向信息服务器发送退出上传节点通知,信息服务器将发送了退出上传节点通知的数据上传节点从至少一个数据上传节点中删除,从而实现了定位并删除恶意节点的过程,阻止了恶意节点继续恶意传播错误的数据。
在本申请的另一些实施例中,当至少一个数据上传节点中只包括了一个数据上传节点时,数据下载节点必然会判定该数据上传节点的目标视频的视频数据是正确的,也即,数据下载节点无法分辨出在此情况下其所下载到的视频数据是不是准确无误的。这时,可以在生成目标视频的视频数据时,同时也为目标视频的视频数据生成不可篡改的标识信息,例如视频数据的哈希值、视频数据的文件指纹等,然后生成的不可篡改的标识信息和视频数据,一同在各个数据节点中传播(即任意一个数据节点下载到视频数据的同时,还会下载到这个不可篡改的标识信息),从而数据下载节点可以依据该不可篡改的标识信息,来验证视频数据是否准确无误。
在本申请的一些实施例中,在数据下载节点向至少一个数据上传节点中除正常节点之外的其他数据上传节点发送异常通知信息之后,即在S108之后,该方法还可以包括:
S113、数据下载节点断开与其他数据上传节点的连接,并删除其他数据上传节点所对应的视频数据。
数据下载节点在向异常节点发送了异常通知信息之后,就会立即断开会异常节点的连接,从而与异常节点不再进行数据交互。并且,数据下载节点为了保证自身存储空间中的视频数据的准确性,还会将异常节点所对应的视频数据删除,从而使得自身存储空间中只具有正常节点的视频数据。进一步的,在另一些实施例中,当数据下载节点确定出的其他数据上传节点超过限定阈值,即存在异常的校验信息的数量超过限定阈值时,数据下载节点会将从至少一个数据上传节点所下载到的至少一个视频数据全部删除,并不再从至少一个数据上传节点下载任何目标视频的视频数据,而是向信息服务器发送下载请求,以从信息服务器下载目标视频对应的视频数据,得到目标视频数据,并向信息服务器上报资源,作为新的数据上传节点。
本申请实施例中,数据下载节点将其他数据上传节点对应的视频数据删除,从而保证只存储了其认为准确无误的视频数据。
参见图8,图8是本申请实施例提供的数据传输方法的一个可选的流程示意图三。在本申请的一些实施例中,数据下载节点基于至少一个校验信息,从至少一个数据上传节点中确定出正常节点,即S107的具体实现过程,可以包括: S1071-S1074,如下:
S1071、数据下载节点依据至少一个校验信息各自的信息内容,将至少一个校验信息划分为一个或多个校验信息集合。
其中,处于同一个校验信息集合中的校验信息的信息内容相同。
数据下载节点在基于至少一个校验信息,从至少一个数据上传节点中确定出正常节点时,是先对至少一个校验信息中的每个校验信息的信息内容进行读取,然后将具有相同的信息内容的校验信息划分到同一个校验信息集合中。由于在至少一个校验信息中,可能会有一个或多个不同的信息内容,因而,数据下载节点可以得到一个或多个校验信息集合。
S1072、数据下载节点对一个或多个校验信息集合中的每个校验信息集合所包含的校验信息的个数进行统计,得到每个校验信息集合所对应的统计结果。
S1073、数据下载节点利用统计结果和至少一个校验信息中的校验信息的总数量,计算出每个校验信息集合对应的校验信息占比,并从每个校验信息集合对应的校验信息占比中,挑选出超过预设占比阈值的目标占比。
数据下载节点在划分出一个或多个校验信息集合之后,就会对每个校验信息集合中的校验信息的个数进行统计,从而明确每个校验信息集合中有多少个信息内容相同的校验信息,得到每个校验信息集合对应的统计结果。之后,数据下载节点会将每个校验信息集合的统计结果,也即每个校验信息集合中所包含的校验信息的个数,分别与至少一个校验信息的校验信息总数量相比,计算出每个校验信息集合对应的统计结果,占据至少一个校验信息的信息总数量的比例,这时,也就得到了每个校验信息集合所对应的校验信息占比。数据下载节点还会对每个校验信息集合所对应的校验信息占比进行排序,并从中挑选出最大的校验信息占比。之后,数据下载节点获取预设占比阈值,最大的校验信息占比与预设占比阈值进行比较,当最大的校验信息占比大于预设占比阈值时,就将该最大的校验信息占比作为目标占比。
S1074、数据下载节点从一个或多个校验信息集合中,挑选出目标占比所对应的目标校验信息集合,并从至少一个数据上传节点中,筛选出与目标校验信息集合中的各个校验信息相对应的正常节点。
数据下载节点在挑选出目标占比之后,就会依据校验信息占比和校验信息集合之间的对应关系,从一个或多个校验信息集合中,挑选出与目标占比相对应的校验信息集合,并将该校验信息集合记为目标校验信息集合。然后,数据下载节点会从至少一个数据上传节点所对应的至少一个校验信息中,寻找出被划分到目标校验信息集合的校验信息,将这些属于目标校验信息集合的校验信息所对应的数据上传节点,作为正常节点。如此,数据下载节点就确定出了正常节点。
本申请实施例中,数据下载节点能够依据每个校验信息的信息内容是否相同,将至少一个校验信息划分到不同的校验信息集合中去,然后根据每个校验信息集合中的校验信息的数量,占比至少一个校验信息的校验信息总数量的比例,以及预设占比阈值,来确定出目标占比,进而确定出目标校验信息集合,接着将目标校验信息集合中的各个校验信息所对应的数据上传节点,作为正常节点。如此,数据下载节点就能够基于至少一个校验信息,分辨出哪些数据上传节点是正常节点了。
在本申请的一些实施例中,在数据下载节点将正常节点的视频数据作为目标视频对应的目标视频数据之后,即在S107之后,该方法还可以包括:S110,如下:
S110、数据下载节点向信息服务器发送节点转变请求,以从数据下载节点转变为新的数据上传节点;节点转变请求用于向信息服务器上报具有目标视频的资源。
数据下载节点在得到正确的目标视频数据之后,还可以转变为种子,为其他的数据节点提供目标视频的资源。此时,数据下载节点会先生成节点转变请求,并将节点转变请求通过发送给信息服务器,从而通过节点转变请求告知信息服务器器具有目标视频对应的资源。信息服务器接收数据下载节点发送的节点转变请求,并将数据下载节点登记为新的数据上传节点,从而在其他新的数据下载节点具有下载目标视频的需求时,可以将新的数据上传节点的节点信息返回给新的数据下载节点,以使得新的数据下载节点能够从新的数据上传节点下载到目标视频所对应的视频数据。
本申请实施例中,数据下载节点还可以向信息服务器上报其拥有目标视频的资源,从而成为新的数据上传节点,使得数据上传节点的数量增多,从而增加了P2P网络中拥有资源的节点的数量。
在本申请的一些实施例中,在数据下载节点向信息服务器发送节点获取请求之后,即在S101之后,该方法还可以包括:S201-S204,如下:
S201、数据下载节点接收信息服务器针对节点获取请求所返回的空节点信息;空节点信息表征不存在至少一个数据上传节点。
当用户在开始视频下载流程之前,还没有数据节点向信息服务器上报过其拥有视频的资源时,信息服务器响应于节点获取请求,是确定不出拥有目标视频的资源的至少一个数据上传节点的,也即在P2P网络中不存在任何数据上传节点。当信息服务器确定不出拥有目标视频的视频数据的数据上传节点时,信息服务器会生成空节点信息,并将空节点信息发送给数据下载节点。
S202、数据下载节点响应于空节点信息,向资源服务器发送针对目标视频的下载请求。
数据下载节点接收到空节点信息之后,就会针对目标视频生成下载请求,并将下载请求发送给资源服务器,以从资源服务器中直接下载目标视频所对应的视频数据。资源服务器接收数据下载节点发送的针对目标视频的下载请求。
S203、数据下载节点接收资源服务器针对下载请求所发送的目标视频数据。
资源服务器响应于下载请求,获取到存储于资源服务器的数据库中的目标视频的视频数据,并将该视频数据返回给数据下载节点。由于在资源服务器中存储的视频数据是准确的,因此,数据下载节点会直接将资源服务器所返回的数据视频作为需要进行存储的目标视频数据。
S204、数据下载节点向信息服务器发送节点转变请求,以从数据下载节点转变为新的数据上传节点。
数据下载节点在将目标视频数据保存之后,会继续生成节点转变请求,并向信息服务器发送生成的节点转变请求,以向信息服务器表明其可以作为目标视频的种子,向其他的数据节点提供目标视频的资源,作为新的数据上传节点。信息服务器接收节点转变请求,并响应于节点转变请求,将数据下载节点作为新的数据上传节点。
本申请实施例中,当没有数据节点向信息服务器上报过其拥有视频的资源时,数据下载节点可以直接从信息服务器中下载目标视频数据,然后向信息服务器上报其可以作为目标视频的资源种子,从而便于后续新的数据下载节点可以从其下载到目标视频对应的视频数据。
进一步的,在本申请的一些实施例中,若同时具有多个数据下载节点都从信息服务器获得了空节点信息,而资源服务器在向这些不同的数据下载节点发送目标视频对应的视频数据时,可以是采用利用CDN就近发送,也即不同的数据下载节点可能从不同的CDN服务节点中获取到视频数据,而这些数据下载节点在后续都会变为新的数据上传节点。当某个新的数据下载节点从这些新的数据上传节点中下载到视频数据以及校验信息时,对这些校验信息进行相互比较,实际上就是将不同的CDN服务节点中的视频数据进行比较,从而能够确定出哪些CDN服务节点中的目标视频的视频数据是存在异常的,进而可以用其他服务节点正常的视频数据,来将异常的视频数据覆盖,从而实现出主动发现数据不一致的问题CDN服务节点并调整。
下面,将说明本申请实施例在一个实际的应用场景中的示例性应用。
本申请实施例是在用户从P2P网络下载短视频的场景下实现的。图9是本申请实施例提供的在P2P网络中下载短视频的过程示例图,参见图9,P2P网络首先得有大量用户向查种后台9-A(信息服务器)上报本地资源9-1(目标视频的资源),作为P2P网络中的上传节点(数据上传节点)。当新用户的客户端 (数据下载节点)请求视频种子查询9-2。当已经做种时,查种后台9-A(信息服务器)根据资源将查询到的可连接的资源种子(至少一个数据上传节点的) 进行下发,并返回种子信息9-3给客户端,继续P2P流程;当查种后台9-A还未做种时,返回空(空节点信息),客户端跳过P2P流程,使用HTTP请求9-4 (下载请求)从CDN9-B(资源服务器)数据下载,即CDN9-B返回HTTP数据9-5。
具体的,在后台返回种子信息9-3给客户端之后,客户端连接资源种子(至少一个数据上传种子,图9中为种子9-C和种子9-D),并进行数据请求9-6。资源种子返回短视频(目标视频)对应的数据(视频数据)和校验信息(校验信息中可包括文件大小、数据块校验信息)9-7给客户端。客户端对资源种子,即种子9-C和种子9-D返回的校验信息进行投票表决9-8,将占有超过一定比例(预设占比阈值)的校验信息选出来,得到正确校验信息(目标占比)9-9,同时通知校验信息不一致的节点9-10(除正常节点之外的其他数据上传节点),并断开连接9-11;校验信息一致时,继续进行数据请求9-12。
在此过程中,对于下载侧,也就是客户端,当校验信息出错时超过限定阈值时,不再使用P2P下载(即不从至少一个数据上传节点中下载任何目标视频的视频数据),防止数据重复下载并删除(删除下载的视频数据),并增加P2P 网络中从CDN下载的有效节点(作为新的数据上传节点)。
对于上传侧,当通知超过限定阈值,则通知(发送退出上传节点通知)后台删除该上传方拥有的资源信息(删除退出上传节点通知对应的数据上传节点的节点信息),从而实现了错误数据的收敛,正常数据能够不断扩散的效果。
图10是本申请实施例提供的剔除P2P网络中的恶意节点的示例图。参见图 10,新用户的客户端可以连接上四个种子,P1为恶意错误数据传播节点,P2、 P3、P4为正常数据节点,新用户的客户端P0接入P2P网络时,分为两种情况:
(1)当P0是从P1下载到数据和校验信息,以及从P2或P3或P4中下载到数据和校验信息时,也即P0只能从两个节点下载到数据和校验信息时,P0 在发现从P1所拿到的校验信息,和从P2/P3/P4拿到的校验信息不一致,通知P 1、P2/P3/P4校验信息不一致并清理本地数据。当限定次数为1时,则P0不再使用P2P网络下载。
(2)当P0是从P1下载到数据和校验信息,以及从P2、P3和P4中的多个节点下载到数据和校验信息时,对校验信息进行比较,发现P1的校验信息与其他节点的不同,则会通知P1校验信息不一致,并断开P1,保留从P2、P3和 P4中的多个节点下载到的数据,并向P2P网络新增节点P0(发送节点转变请求给信息服务器)。
在P1、P2、P3、P4中两两可以互连的情况下,对于P2P网络整体而言,P 1不信任为3票,P2、P3、P4的不信任票各为1票,且P1超过限定值1,因此, P1主动退出P2P网络,P0加入,从而实现了恶意节点的收敛,正常节点的扩散。
此外,在投票表决算法中,对于P2P网络只有一个节点的情形,可以选择强校验逻辑,强校验罗是是作为投票表决算法的补充,当P2P网络中只存在一个节点时,投票表决算法只能信赖该节点。对此,可以在上传侧做些保障,在不影响P2P效率的前提下,进一步保障P2P网络中恶意节点的收敛性。例如,通过请求视频信息时拿到视频的MD5值,或者拿到校验信息文件。
通过上述方式,能够解决后台没有及时补种导致无法进行P2P下载的问题,提高了P2P下载的效率,也即增加了数据传输的效率;同时能够主动剔除并收敛恶意节点,强化P2P网络节点健壮性,使得下载到错误数据的概率降低,增加了数据传输的效率。并且在视频数据的扩散传播过程中主动发现有数据不一致问题的边缘CDN节点并调整。
下面继续说明本申请实施例提供的数据下载装置255的实施为软件模块的示例性结构,在一些实施例中,如图3所示,存储在第一存储器250的数据下载装置255中的软件模块可以包括:
第一发送模块2551,用于当获取到针对目标视频的数据传输指令时,响应于所述数据传输指令,向信息服务器发送节点获取请求;向所述至少一个数据上传节点分别发送数据请求;
第一接收模块2552,用于接收所述信息服务器针对所述节点获取请求返回的至少一个节点信息;所述至少一个节点信息指明了提供所述目标视频对应的视频数据的至少一个数据上传节点;接收所述至少一个数据上传节点针对所述数据请求所返回的至少一个视频数据和至少一个校验信息;
数据确定模块2553,用于基于所述至少一个校验信息,从所述至少一个数据上传节点中确定出正常节点,并将所述正常节点的视频数据作为所述目标视频对应的目标视频数据;所述目标视频数据表征进行保存的视频数据。
在本申请的一些实施例中,所述第一发送模块2551,还用于向所述至少一个数据上传节点中除所述正常节点之外的其他数据上传节点发送异常通知信息;所述异常通知信息用于通知所述其他数据上传节点的视频数据是异常的。
在本申请的一些实施例中,所述数据确定模块2553,还用于依据所述至少一个校验信息各自的信息内容,将所述至少一个校验信息划分为一个或多个校验信息集合;其中,处于同一个校验信息集合中的校验信息的信息内容相同;对所述一个或多个校验信息集合中的每个校验信息集合所包含的校验信息的个数进行统计,得到所述每个校验信息集合所对应的统计结果;利用所述统计结果和所述至少一个校验信息中的校验信息的总数量,计算出所述每个校验信息集合对应的校验信息占比,并从所述每个校验信息集合对应的校验信息占比中,挑选出超过预设占比阈值的目标占比;从所述一个或多个校验信息集合中,挑选出所述目标占比所对应的目标校验信息集合,并从所述至少一个数据上传节点中,筛选出与所述目标校验信息集合中的各个校验信息相对应的所述正常节点。
在本申请的一些实施例中,所述第一发送模块2551,还用于向所述信息服务器发送节点转变请求,以从数据下载节点转变为新的数据上传节点;所述节点转变请求用于向所述信息服务器上报具有所述目标视频的资源。
在本申请的一些实施例中,所述第一接收模块2552,还用于接收所述信息服务器针对所述节点获取请求所返回的空节点信息;所述空节点信息表征不存在所述至少一个数据上传节点;接收所述资源服务器针对所述下载请求所发送的所述目标视频数据;
所述第一发送模块2551,还用于响应于所述空节点信息,向资源服务器发送针对所述目标视频的下载请求;向所述信息服务器发送节点转变请求,以从数据下载节点转变为新的数据上传节点。
下面继续说明本申请实施例提供的数据上传装置455的实施为软件模块的示例性结构,在一些实施例中,如图4所示,存储在第二存储器450的数据上传装置455中的软件模块可以包括:
第二接收模块4551,用于接收数据下载节点针对目标视频发送的数据请求;
信息生成模块4552,用于响应于所述数据请求,从已经上报资源的视频中,获取所述目标视频对应的视频数据,并针对所述目标视频对应的视频数据,生成校验信息;
第二发送模块4553,用于将所述视频数据和所述校验信息发送给所述数据下载节点,以使所述数据下载节点基于所述校验信息确定所述视频数据是否为所述目标视频对应的目标视频数据。
在本申请的一些实施例中,所述数据上传装置455还包括:次数统计模块 4554;
所述第二接收模块4551,还用于接收所述数据下载节点发送的异常通知信息;所述异常通知信息是所述数据下载节点确定出所述视频数据存在异常时发出的;
所述次数统计模块4554,还用于响应于异常通知信息,从历史通知信息中获取历史异常通知信息;所述历史异常通知信息为是在历史时间段内接收到的异常通知;利用所述异常通知信息和所述历史异常通知信息,统计出异常次数;
所述第二发送模块4553,还用于当所述异常次数超过预设好的次数阈值时,向信息服务器发送退出下载节点通知;所述退出下载节点通知用于表明不再提供所述目标视频的视频数据。
下面继续说明本申请实施例提供的节点信息提供装置555的实施为软件模块的示例性结构,在一些实施例中,如图5所示,存储在第三存储器550的节点信息提供装置555中的软件模块可以包括:
第三接收模块5551,用于接收数据下载节点针对目标视频发送的节点获取请求;
节点确定模块5552,用于响应于所述节点获取请求,从上报过拥有视频的资源的各个数据节点中,确定出用于提供所述目标视频对应的视频数据的至少一个数据上传节点;
第三发送模块5553,用于将所述至少一个数据上传节点所对应的至少一个节点信息,返回给所述数据下载节点,以使所述数据下载节点从所述至少一个数据上传节点下载至少一个视频数据和至少一个校验信息,并基于所述至少一个校验信息,从所述至少一个数据上传节点中选择出正常节点,将所述正常节点的视频数据作为所述目标视频对应的目标视频数据。
在本申请的一些实施例中,所述节点信息提供装置555还包括:节点剔除装置5554;
所述第三接收模块5551,还用于接收所述至少一个数据上传节点中的任意一个数据上传节点发送的退出上传节点通知;所述退出上传节点通知是所述任意一个数据上传节点在异常次数超过预设好的次数阈值时发送的;
所述节点剔除装置5554,用于响应于所述退出上传节点通知,从所述至少一个节点信息中将所述退出上传节点通知对应的数据上传节点的节点信息剔除,得到修正后的至少一个节点信息。
本申请实施例提供一种存储有可执行指令的存储介质,其中存储有可执行数据传输指令,当可执行数据传输指令被第一处理器执行时,将引起第一处理器执行本申请实施例数据下载节点侧提供的数据传输方法;当可执行数据传输指令被第二处理器执行时,将引起第二处理器执行本申请实施例数据上传节点侧提供的数据传输方法;当可执行数据传输指令被第三处理器执行时,将引起第三处理器执行本申请实施例信息服务器侧提供的数据传输方法。
在一些实施例中,存储介质可以是FRAM、ROM、PROM、EPROM、EE PROM、闪存、磁表面存储器、光盘、或CD-ROM等存储器;也可以是包括上述存储器之一或任意组合的各种设备。
在一些实施例中,可执行数据传输指令可以采用程序、软件、软件模块、脚本或代码的形式,按任意形式的编程语言(包括编译或解释语言,或者声明性或过程性语言)来编写,并且其可按任意形式部署,包括被部署为独立的程序或者被部署为模块、组件、子例程或者适合在计算环境中使用的其它单元。
作为示例,可执行数据传输指令可以但不一定对应于文件系统中的文件,可以可被存储在保存其它程序或数据的文件的一部分,例如,存储在超文本标记语言(HTML,HyperText Markup Language)文档中的一个或多个脚本中,存储在专用于所讨论的程序的单个文件中,或者,存储在多个协同文件(例如,存储一个或多个模块、子程序或代码部分的文件)中。
作为示例,可执行数据传输指令可被部署为在一个计算设备上执行,或者在位于一个地点的多个计算设备上执行,又或者,在分布在多个地点且通过通信网络互连的多个计算设备上执行。
以上所述,仅为本申请的实施例而已,并非用于限定本申请的保护范围。凡在本申请的精神和范围之内所作的任何修改、等同替换和改进等,均包含在本申请的保护范围之内。

Claims (10)

1.一种数据传输方法,其特征在于,所述方法应用于数据下载节点,包括:
当获取到针对目标视频的数据传输指令时,响应于所述数据传输指令,向信息服务器发送节点获取请求;
接收所述信息服务器针对所述节点获取请求返回的至少一个节点信息;所述至少一个节点信息指明了提供所述目标视频对应的视频数据的至少一个数据上传节点;
向所述至少一个数据上传节点分别发送数据请求;
接收所述至少一个数据上传节点针对所述数据请求所返回的至少一个视频数据和至少一个校验信息;所述至少一个校验信息是所述至少一个数据上传节点针对所述至少一个视频数据所生成的;
从所述至少一个校验信息中筛选出占比超过预设占比阈值的正确校验信息,将所述至少一个数据上传节点中,与所述正确校验信息相对应的数据上传节点确定为正常节点,并将所述正常节点的视频数据作为所述目标视频对应的目标视频数据;所述目标视频数据表征进行保存的视频数据。
2.根据权利要求1所述的方法,其特征在于,在所述从所述至少一个校验信息中筛选出占比超过预设占比阈值的正确校验信息,将所述至少一个数据上传节点中,与所述正确校验信息相对应的数据上传节点确定为正常节点,并将所述正常节点的视频数据作为所述目标视频对应的目标视频数据之后,所述方法还包括:
向所述至少一个数据上传节点中除所述正常节点之外的其他数据上传节点发送异常通知信息;所述异常通知信息用于通知所述其他数据上传节点的视频数据是异常的。
3.根据权利要求1或2所述的方法,其特征在于,所述方法还包括:
依据所述至少一个校验信息各自的信息内容,将所述至少一个校验信息划分为一个或多个校验信息集合;其中,处于同一个校验信息集合中的校验信息的信息内容相同;
对所述一个或多个校验信息集合中的每个校验信息集合所包含的校验信息的个数进行统计,得到所述每个校验信息集合所对应的统计结果;
利用所述统计结果和所述至少一个校验信息中的校验信息的总数量,计算出所述每个校验信息集合对应的校验信息占比,并从所述每个校验信息集合对应的校验信息占比中,挑选出超过所述预设占比阈值的目标占比;
从所述一个或多个校验信息集合中,挑选出所述目标占比所对应的目标校验信息集合,并从所述至少一个数据上传节点中,筛选出与所述目标校验信息集合中的各个校验信息相对应的所述正常节点。
4.根据权利要求1或2所述的方法,其特征在于,在所述向信息服务器发送节点获取请求之后,所述方法还包括:
接收所述信息服务器针对所述节点获取请求所返回的空节点信息;所述空节点信息表征不存在所述至少一个数据上传节点;
响应于所述空节点信息,向资源服务器发送针对所述目标视频的下载请求;
接收所述资源服务器针对所述下载请求所发送的所述目标视频数据;
向所述信息服务器发送节点转变请求,以从数据下载节点转变为新的数据上传节点。
5.一种数据传输方法,其特征在于,所述方法应用于数据上传节点,包括:
接收数据下载节点针对目标视频发送的数据请求;
响应于所述数据请求,从已经上报资源的视频中,获取所述目标视频对应的视频数据,并针对所述目标视频对应的视频数据,生成校验信息;
将所述视频数据和所述校验信息发送给所述数据下载节点,以使所述数据下载节点接收到至少一个校验信息之后,从所述至少一个校验信息筛选出占比超过预设占比阈值的正确校验信息,将至少一个数据上传节点中,与所述正确校验信息相对应的数据上传节点确定为正常节点,并将所述正常节点的视频数据作为所述目标视频对应的目标视频数据。
6.根据权利要求5所述的方法,其特征在于,在所述将所述视频数据和所述校验信息发送给所述数据下载节点之后,所述方法还包括:
接收所述数据下载节点发送的异常通知信息;所述异常通知信息是所述数据下载节点确定出所述视频数据存在异常时发出的;
响应于异常通知信息,从历史通知信息中获取历史异常通知信息;所述历史异常通知信息是在历史时间段内接收到的异常通知;
利用所述异常通知信息和所述历史异常通知信息,统计出异常次数;
当所述异常次数超过预设好的次数阈值时,向信息服务器发送退出上传节点通知;所述退出上传节点通知用于表明不再提供所述目标视频的视频数据。
7.一种数据下载装置,其特征在于,包括:
第一发送模块,用于当获取到针对目标视频的数据传输指令时,响应于所述数据传输指令,向信息服务器发送节点获取请求;向至少一个数据上传节点分别发送数据请求;
第一接收模块,用于接收所述信息服务器针对所述节点获取请求返回的至少一个节点信息;所述至少一个节点信息指明了提供所述目标视频对应的视频数据的至少一个数据上传节点;接收所述至少一个数据上传节点针对所述数据请求所返回的至少一个视频数据和至少一个校验信息;所述至少一个校验信息是所述至少一个数据上传节点针对所述至少一个视频数据所生成的;
数据确定模块,用于从所述至少一个校验信息中筛选出占比超过预设占比阈值的正确校验信息,将所述至少一个数据上传节点中,与所述正确校验信息相对应的数据上传节点确定为正常节点,并将所述正常节点的视频数据作为所述目标视频对应的目标视频数据;所述目标视频数据表征进行保存的视频数据。
8.一种数据下载节点,包括:
第一存储器,用于存储可执行数据传输指令;
第一处理器,用于执行所述第一存储器中存储的可执行数据传输指令时,实现权利要求1至4任一项所述的方法。
9.一种数据上传节点,包括:
第二存储器,用于存储可执行数据传输指令;
第二处理器,用于执行所述第二存储器中存储的可执行数据传输指令时,实现权利要求5或6所述的方法。
10.一种计算机可读存储介质,其特征在于,存储有可执行数据传输指令,用于引起第一处理器执行时,实现权利要求1至4任一项所述的方法;或者用于引起第二处理器执行时,实现权利要求5或6所述的方法。
CN202011049077.XA 2020-09-29 2020-09-29 一种数据传输方法、装置、设备及计算机可读存储介质 Active CN112188247B (zh)

Priority Applications (1)

Application Number Priority Date Filing Date Title
CN202011049077.XA CN112188247B (zh) 2020-09-29 2020-09-29 一种数据传输方法、装置、设备及计算机可读存储介质

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN202011049077.XA CN112188247B (zh) 2020-09-29 2020-09-29 一种数据传输方法、装置、设备及计算机可读存储介质

Publications (2)

Publication Number Publication Date
CN112188247A CN112188247A (zh) 2021-01-05
CN112188247B true CN112188247B (zh) 2022-05-27

Family

ID=73946935

Family Applications (1)

Application Number Title Priority Date Filing Date
CN202011049077.XA Active CN112188247B (zh) 2020-09-29 2020-09-29 一种数据传输方法、装置、设备及计算机可读存储介质

Country Status (1)

Country Link
CN (1) CN112188247B (zh)

Families Citing this family (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN115440269B (zh) * 2021-06-01 2024-05-14 长鑫存储技术有限公司 数据传输电路、数据处理电路和存储器
CN113630445B (zh) * 2021-07-19 2022-10-14 山东区块链研究院 一种基于区块链网络的数据存储方法及装置
CN115174286B (zh) * 2022-05-12 2023-11-14 芜湖美的厨卫电器制造有限公司 预防链路重复执行的方法及装置、计算机存储介质及设备

Citations (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN101247526A (zh) * 2008-03-18 2008-08-20 天津大学 基于数字电视码流的音量均衡调整及其应用方法

Family Cites Families (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN103152647A (zh) * 2013-03-01 2013-06-12 北京暴风科技股份有限公司 一种基于p2p网络传输的数据校验方法
CN104902000A (zh) * 2015-04-03 2015-09-09 易云捷讯科技(北京)有限公司 一种利用p2p技术快速传输虚机模板的方法
US11057446B2 (en) * 2015-05-14 2021-07-06 Bright Data Ltd. System and method for streaming content from multiple servers
CN109995866B (zh) * 2019-04-03 2022-04-29 深圳市网心科技有限公司 分布式文件校验方法、装置、计算机装置及存储介质
CN111311414B (zh) * 2020-02-27 2023-12-08 杭州云象网络技术有限公司 一种基于一致性哈希算法的区块链多方共识方法

Patent Citations (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN101247526A (zh) * 2008-03-18 2008-08-20 天津大学 基于数字电视码流的音量均衡调整及其应用方法

Also Published As

Publication number Publication date
CN112188247A (zh) 2021-01-05

Similar Documents

Publication Publication Date Title
CN112188247B (zh) 一种数据传输方法、装置、设备及计算机可读存储介质
US20220239508A1 (en) Blockchain message processing method and apparatus, computer, and readable storage medium
CN106100902B (zh) 云端指标监控方法和装置
US8706756B2 (en) Method, system and apparatus of hybrid federated search
EP2773080A1 (en) Sharing control system and method for network resources download information
CN104199863B (zh) 存储设备上的文件的查找方法、装置及路由器
US20140207940A1 (en) Method and system for using a recursive event listener on a node in hierarchical data structure
CN110266872B (zh) 通讯录数据的管控方法、装置及云通讯录系统、计算机设备、计算机可读存储介质
WO2014063550A1 (zh) 一种微博资源分享的方法及系统
US20210158353A1 (en) Methods, systems, apparatuses, and devices for processing request in consortium blockchain
CN109391673A (zh) 一种管理更新文件的方法、系统及终端设备
WO2022237497A1 (zh) 一种基于区块链网络的数据存储方法及装置
KR20100101170A (ko) 콘텐츠 분류 방법 및 시스템
WO2023035065A1 (en) Methods and systems for fast consensus within distributed ledgers
CN112732756A (zh) 数据查询方法、装置、设备及存储介质
CN111447265A (zh) 文件存储方法、文件下载方法和文件处理方法及相关组件
CN113162971B (zh) 区块链节点管理方法、装置、计算机以及可读存储介质
US10839090B2 (en) Digital data processing system for efficiently storing, moving, and/or processing data across a plurality of computing clusters
CN113243093B (zh) 用于使用区块链的消息传输和检索的系统和方法
WO2023279770A1 (zh) 数据存储方法、装置、系统、存储介质及程序产品
CN111400327B (zh) 一种数据同步方法、装置、电子设备及存储介质
CN113612811A (zh) 一种在多通道中客户端挂载的方法、系统、设备及介质
US11537559B2 (en) Client generated aggregated indices
US11863617B1 (en) Dynamic decentralized hierarchical Holon network system
CN114629892B (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
REG Reference to a national code

Ref country code: HK

Ref legal event code: DE

Ref document number: 40038130

Country of ref document: HK

GR01 Patent grant
GR01 Patent grant