CN115567547A - 一种镜像分发方法、系统和设备 - Google Patents
一种镜像分发方法、系统和设备 Download PDFInfo
- Publication number
- CN115567547A CN115567547A CN202210994948.8A CN202210994948A CN115567547A CN 115567547 A CN115567547 A CN 115567547A CN 202210994948 A CN202210994948 A CN 202210994948A CN 115567547 A CN115567547 A CN 115567547A
- Authority
- CN
- China
- Prior art keywords
- peer
- image
- peer node
- ith
- node
- 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.)
- Pending
Links
- 238000000034 method Methods 0.000 title claims abstract description 153
- 239000012634 fragment Substances 0.000 claims abstract description 435
- 230000005540 biological transmission Effects 0.000 claims description 34
- 238000003860 storage Methods 0.000 claims description 25
- 238000012545 processing Methods 0.000 claims description 22
- 238000001514 detection method Methods 0.000 claims description 4
- 238000010586 diagram Methods 0.000 description 32
- 230000006870 function Effects 0.000 description 23
- 238000004891 communication Methods 0.000 description 20
- 238000004422 calculation algorithm Methods 0.000 description 17
- 230000008569 process Effects 0.000 description 17
- 238000005516 engineering process Methods 0.000 description 15
- 238000004364 calculation method Methods 0.000 description 12
- 238000003012 network analysis Methods 0.000 description 6
- 230000003993 interaction Effects 0.000 description 5
- 238000012986 modification Methods 0.000 description 5
- 230000004048 modification Effects 0.000 description 5
- 230000004044 response Effects 0.000 description 4
- 238000005259 measurement Methods 0.000 description 3
- 238000012795 verification Methods 0.000 description 3
- 230000002159 abnormal effect Effects 0.000 description 2
- 238000004590 computer program Methods 0.000 description 2
- 230000006855 networking Effects 0.000 description 2
- 230000003287 optical effect Effects 0.000 description 2
- 230000003068 static effect Effects 0.000 description 2
- 238000013459 approach Methods 0.000 description 1
- 238000013528 artificial neural network Methods 0.000 description 1
- 230000009286 beneficial effect Effects 0.000 description 1
- 230000008859 change Effects 0.000 description 1
- 230000006835 compression Effects 0.000 description 1
- 238000007906 compression Methods 0.000 description 1
- 238000007796 conventional method Methods 0.000 description 1
- 238000011161 development Methods 0.000 description 1
- 230000000694 effects Effects 0.000 description 1
- 238000010801 machine learning Methods 0.000 description 1
- 230000037361 pathway Effects 0.000 description 1
- 238000009877 rendering Methods 0.000 description 1
- 239000000523 sample Substances 0.000 description 1
- 230000001052 transient effect Effects 0.000 description 1
- 238000011144 upstream manufacturing Methods 0.000 description 1
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/1095—Replication or mirroring of data, e.g. scheduling or transport for data synchronisation between network nodes
-
- A—HUMAN NECESSITIES
- A63—SPORTS; GAMES; AMUSEMENTS
- A63F—CARD, BOARD, OR ROULETTE GAMES; INDOOR GAMES USING SMALL MOVING PLAYING BODIES; VIDEO GAMES; GAMES NOT OTHERWISE PROVIDED FOR
- A63F13/00—Video games, i.e. games using an electronically generated display having two or more dimensions
- A63F13/30—Interconnection arrangements between game servers and game devices; Interconnection arrangements between game devices; Interconnection arrangements between game servers
- A63F13/34—Interconnection arrangements between game servers and game devices; Interconnection arrangements between game devices; Interconnection arrangements between game servers using peer-to-peer connections
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F16/00—Information retrieval; Database structures therefor; File system structures therefor
- G06F16/10—File systems; File servers
- G06F16/14—Details of searching files based on file metadata
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F16/00—Information retrieval; Database structures therefor; File system structures therefor
- G06F16/10—File systems; File servers
- G06F16/17—Details of further file system functions
- G06F16/176—Support for shared access to files; File sharing support
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F16/00—Information retrieval; Database structures therefor; File system structures therefor
- G06F16/10—File systems; File servers
- G06F16/18—File system types
- G06F16/182—Distributed file systems
- G06F16/1824—Distributed file systems implemented using Network-attached Storage [NAS] architecture
- G06F16/183—Provision of network file services by network file servers, e.g. by using NFS, CIFS
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L63/00—Network architectures or network communication protocols for network security
- H04L63/12—Applying verification of the received information
- H04L63/123—Applying verification of the received information received data contents, e.g. message integrity
-
- 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/06—Protocols specially adapted for file transfer, e.g. file transfer protocol [FTP]
-
- 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/34—Network arrangements or protocols for supporting network services or applications involving the movement of software or configuration parameters
-
- A—HUMAN NECESSITIES
- A63—SPORTS; GAMES; AMUSEMENTS
- A63F—CARD, BOARD, OR ROULETTE GAMES; INDOOR GAMES USING SMALL MOVING PLAYING BODIES; VIDEO GAMES; GAMES NOT OTHERWISE PROVIDED FOR
- A63F2300/00—Features of games using an electronically generated display having two or more dimensions, e.g. on a television screen, showing representations related to the game
- A63F2300/40—Features of games using an electronically generated display having two or more dimensions, e.g. on a television screen, showing representations related to the game characterised by details of platform network
- A63F2300/408—Peer to peer connection
Landscapes
- Engineering & Computer Science (AREA)
- Theoretical Computer Science (AREA)
- Computer Networks & Wireless Communication (AREA)
- Signal Processing (AREA)
- General Engineering & Computer Science (AREA)
- Databases & Information Systems (AREA)
- Computer Security & Cryptography (AREA)
- General Physics & Mathematics (AREA)
- Physics & Mathematics (AREA)
- Data Mining & Analysis (AREA)
- Multimedia (AREA)
- Computer Hardware Design (AREA)
- Child & Adolescent Psychology (AREA)
- Health & Medical Sciences (AREA)
- Computing Systems (AREA)
- Library & Information Science (AREA)
- Information Transfer Between Computers (AREA)
- Two-Way Televisions, Distribution Of Moving Picture Or The Like (AREA)
Abstract
本申请公开了一种镜像分发方法、系统和设备。该方法包括:第一对等节点接收N个第二对等节点发送的N个第一查询消息;第一对等节点根据N个第一查询消息,确定向N个第二对等节点发送N个第一查询消息所查询的镜像文件包括的N个不同的镜像分片;第一对等节点通过N个网络通道向N个第二对等节点发送N个镜像分片和N个镜像分片对应的N个不同的哈希值,以使第i个第二对等节点与其他第二对等节点进行交互获得镜像文件,第i个网络通道为第一对等节点与第i个第二对等节点传输第i个镜像分片和第i个镜像分片对应的哈希值的网络通道,N为大于等于2的正整数,i=1,2,…,N。该方法可以提高镜像分发的效率。
Description
技术领域
本申请涉及网络技术领域,尤其涉及一种镜像分发方法、系统和设备。
背景技术
随着云技术的发展,越来越多的应用场景中,基于云技术以实现网络内的资源共享。例如,云游戏应用场景下,需要给用户提供多种游戏进行游玩,同时需要满足不同地域的用户的游玩游戏的需求。为满足用户低延迟,高画质的需求,需要在各地部署云游戏系统,其中包括云游戏存储设备。因此需要同时维护多个地方区域的游戏存储,游戏资源的实时更新成为了难题。
传统方案中,主要是使用Qcow2镜像保存游戏数据,上述方法将游戏数据挂载到云游戏系统中,各个区域的Qcow2镜像保持一致。在进行游戏镜像文件共享时,存储有游戏镜像文件的节点将完整的游戏镜像文件先传输给该节点的子节点。在该子节点获得完整的游戏镜像文件后,该子节点再将完整的游戏镜像文件传输给其子节点,直到网络中的所有通信的节点获取到完整的游戏镜像文件后,停止游戏镜像文件共享的流程。上述技术中,存在镜像文件分发效率低的问题。
因此,亟需一种镜像分发方法,通过该方法可以提高镜像分发的效率。
发明内容
本申请提供了一种镜像分发方法、系统和设备,该方法可以提高镜像分发的效率。
本申请实施例第一方面提供了一种镜像分发方法,应用于包括第一对等节点和N个第二对等节点的对等网络,其中,所述第一对等节点存储与应用程序关联的镜像文件,N为大于等于2的正整数,包括:所述第一对等节点接收所述N个第二对等节点发送的N个第一查询消息,所述N个第一查询消息与所述N个第二对等节点一一对应;所述第一对等节点根据所述N个第一查询消息,确定向所述N个第二对等节点发送所述N个第一查询消息所查询的所述镜像文件包括的N个不同的镜像分片;所述第一对等节点通过N个网络通道向所述N个第二对等节点发送所述N个镜像分片和所述N个镜像分片对应的N个不同的哈希值,以使第i个第二对等节点与其他第二对等节点进行交互获得所述镜像文件,其中,第i个网络通道为所述第一对等节点与所述第i个第二对等节点传输所述第i个镜像分片和所述第i个镜像分片对应的哈希值的网络通道,i=1,2,…,N。
本申请实施例第二方面提供了一种镜像分发方法,应用于包括控制节点和所述控制节点管理的第一对等节点和N个第二对等节点的对等网络,其中,所述第一对等节点存储与应用程序关联的镜像文件,N为大于等于2的正整数,包括:第i个第二对等节点根据接收到的所述控制节点发送的下载指令,确定下载所述镜像文件包括的N个镜像分片的下载顺序,所述下载指令用于指示开始下载所述镜像文件,所述N个第二对等节点均接收到所述下载指令,所述N个第二对等节点与N个下载顺序一一对应,且所述N个下载顺序不同,i=1,2,…,N;所述第i个第二对等节点根据所述第i个第二对等节点对应的第i个下载顺序,确定向所述第一对等节点发送第一查询消息,以及向其他第二对等节点发送第二查询消息;所述第一查询消息用于查询所述镜像文件包括的第i个镜像分片,且所述第i个镜像分片为所述第i个下载顺序所指示下载的第一个镜像分片;所述第二查询消息用于查询所述镜像文件包括的除所述第i个镜像分片以外的一个镜像分片,且所述第二查询消息所查询的镜像分片为所述第i个下载顺序所指示下载的第j个镜像分片,j=2,3,…,N;所述第i个第二对等节点向所述第一对等节点发送所述第一查询消息,以及向其他第二对等节点发送所述第二查询消息,以获得所述镜像文件。
本申请实施例第三方面提供了一种镜像分发装置,应用于包括第一对等节点和N个第二对等节点的对等网络,其中,所述第一对等节点存储与应用程序关联的镜像文件,N为大于等于2的正整数,包括:收发单元,用于接收所述N个第二对等节点发送的N个第一查询消息,所述N个第一查询消息与所述N个第二对等节点一一对应;处理单元,用于根据所述N个第一查询消息,确定向所述N个第二对等节点发送所述N个第一查询消息所查询的所述镜像文件包括的N个不同的镜像分片;所述收发单元,还用于通过N个网络通道向所述N个第二对等节点发送所述N个镜像分片和所述N个镜像分片对应的N个不同的哈希值,以使得第i个第二对等节点与其他第二对等节点进行交互获得所述镜像文件,其中,第i个网络通道为所述第一对等节点与所述第i个第二对等节点传输所述第i个镜像分片和所述第i个镜像分片对应的哈希值的网络通道,i=1,2,…,N。
本申请实施例第四方面提供了一种镜像分发装置,应用于包括控制节点和所述控制节点管理的第一对等节点和N个第二对等节点的对等网络,其中,所述第一对等节点存储与应用程序关联的镜像文件,N为大于等于2的正整数,包括:处理单元,用于根据接收到的所述控制节点发送的下载指令,确定下载所述镜像文件包括的N个镜像分片的下载顺序,所述下载指令用于指示开始下载所述镜像文件,所述N个第二对等节点均接收到所述下载指令,所述N个第二对等节点与N个下载顺序一一对应,且所述N个下载顺序不同,i=1,2,…,N;所述处理单元,还用于根据所述第i个第二对等节点对应的第i个下载顺序,确定向所述第一对等节点发送第一查询消息,以及向其他第二对等节点发送第二查询消息;所述第一查询消息用于查询所述镜像文件包括的第i个镜像分片,且所述第i个镜像分片为所述第i个下载顺序所指示下载的第一个镜像分片;所述第二查询消息用于查询所述镜像文件包括的除所述第i个镜像分片以外的一个镜像分片,且所述第二查询消息所查询的镜像分片为所述第i个下载顺序所指示下载的第j个镜像分片,j=2,3,…,N;收发单元,用于向所述第一对等节点发送所述第一查询消息,以及向其他第二对等节点发送所述第二查询消息,以获得所述镜像文件。
本申请实施例第五方面提供了一种镜像分发设备,该镜像分发设备具有实现上述第一方面或第一方面的任意一种可能的实现方式,以及第三方面或第三方面中任意一种可能的实现方式所描述的镜像分发装置的功能。该功能可以基于硬件实现,也可以基于硬件执行相应的软件实现。该硬件或软件包括一个或多个与上述功能相对应的模块。
在一种可能的实现方式中,镜像分发设备的结构中包括处理器,该处理器被配置为支持镜像分发设备执行上述方法中相应的功能。
该镜像分发设备还可以包括存储器,该存储器用于与处理器耦合,其保存镜像分发设备必要的程序指令和数据。
在另一种可能的实现方式中,该镜像分发设备包括:处理器、发送器、接收器、随机存取存储器、只读存储器以及总线。其中,处理器通过总线分别耦接发送器、接收器、随机存取存储器以及只读存储器。其中,当需要运行镜像分发装置时,通过固化在只读存储器中的基本输入/输出系统或者嵌入式系统中的bootloader引导系统进行启动,引导镜像分发设备进入正常运行状态。在镜像分发设备进入正常运行状态后,在随机存取存储器中运行应用程序和操作系统,使得该处理器执行第一方面或第一方面的任意可能的实现方式中的镜像分发方法。
本申请实施例第六方面提供了一种镜像分发设备,该镜像分发设备具有实现上述第二方面或第二方面的任意一种可能的实现方式,以及第四方面或第四方面中任意一种可能的实现方式所描述的镜像分发装置的功能。该功能可以基于硬件实现,也可以基于硬件执行相应的软件实现。该硬件或软件包括一个或多个与上述功能相对应的模块。
在一种可能的实现方式中,镜像分发设备的结构中包括处理器,该处理器被配置为支持镜像分发设备执行上述方法中相应的功能。
该镜像分发设备还可以包括存储器,该存储器用于与处理器耦合,其保存镜像分发设备必要的程序指令和数据。
在另一种可能的实现方式中,该镜像分发设备包括:处理器、发送器、接收器、随机存取存储器、只读存储器以及总线。其中,处理器通过总线分别耦接发送器、接收器、随机存取存储器以及只读存储器。其中,当需要运行镜像分发装置时,通过固化在只读存储器中的基本输入/输出系统或者嵌入式系统中的bootloader引导系统进行启动,引导镜像分发设备进入正常运行状态。在镜像分发设备进入正常运行状态后,在随机存取存储器中运行应用程序和操作系统,使得该处理器执行第二方面或第二方面的任意可能的实现方式中的镜像分发方法。
本申请实施例第七方面还提供了一种计算机可读存储介质,其上存储有一条或多条计算机指令,其特征在于,该指令被处理器执行以实现上述任意一种技术方案所述的方法。
应当理解,本部分所描述的内容并非旨在标识本申请公开的实施例的关键或重要特征,也不用于限制本申请公开的范围。本申请公开的其它特征将通过以下的说明书而变得容易理解。
本申请实施例所提供的镜像分发方法的技术方案,应用于包括第一对等节点和N个第二对等节点的对等网络,其中,第一对等节点存储与应用程序关联的镜像文件,N为大于等于2的正整数,包括:第一对等节点接收N个第二对等节点发送的N个第一查询消息,N个第一查询消息与N个第二对等节点一一对应;第一对等节点根据N个第一查询消息,确定向N个第二对等节点发送N个第一查询消息所查询的镜像文件包括的N个不同的镜像分片;第一对等节点通过N个网络通道向N个第二对等节点发送N个镜像分片和N个镜像分片对应的N个不同的哈希值,以使第i个第二对等节点与其他第二对等节点进行交互获得镜像文件,其中,第i个网络通道为第一对等节点与第i个第二对等节点传输第i个镜像分片和第i个镜像分片对应的哈希值的网络通道,i=1,2,…,N。上述分发镜像文件的过程中,对等网络中存储与应用程序关联的镜像文件的第一对等节点,通过N个不同的网络通道,向对等网络中没有存储该镜像文件的N个第二对等节点发送该镜像文件包括的N个不同的镜像分片,且N个不同的网络通道、N个第二对等节点与N个不同的镜像分片一一对应。此后,对等网络中拥有N个不同的镜像分片的N个第二对等节点之间通过交互以共享彼此存储的镜像分片,该方法可以减轻拥有完整镜像文件的第一对等节点的传输负担,可以提高镜像分发的效率。在N个第二对等节点之间彼此共享对方存储的镜像分片时,未存储镜像文件的第二对等节点在接受到镜像分片后,无需等待接受到完整的镜像文件就能将该镜像分片分发给网络中的其他第二对等节点,可以提高网络带宽利用率,降低在网络中分发镜像文件的总耗时。同时,还有利于提高镜像分发的效率。在实现镜像文件的分发时,是以镜像分片为最小传输粒度的,还可以提高镜像分发的灵活度。
附图说明
为了更清楚地说明本申请实施例的技术方案,下面将对本申请实施例的描述中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图仅仅是本申请的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动性的前提下,还可以根据这些附图获得其他的附图。
图1是适用于本申请实施例提供的镜像分发方法的一种应用场景的示意图。
图2是传统技术提供的一种镜像分发方法的传输过程的示意图。
图3A是适用于本申请实施例的一种网络架构的示意图。
图3B是适用于本申请实施例的另一种网络架构的示意图。
图4是本申请实施例提供的一种控制节点100的结构示意图。
图5是本申请实施例提供的一种对等节点200的结构示意图。
图6是本申请实施例提供的一种镜像分发方法的示意图。
图7是本申请实施例提供的镜像文件和镜像层的关系示意图。
图8是本申请实施例提供的镜像层和镜像分片的关系示意图。
图9A是本申请实施例提供的另一种镜像分发方法的示意图。
图9B是本申请实施例提供的另一种镜像分发方法的示意图。
图10是本申请实施例提供的一种网络带宽调整方法的示意图。
图11是本申请实施例提供的一种镜像分发装置的结构示意图。
图12是本申请实施例提供的一种镜像分发系统的结构示意图。
图13是本申请实施例提供的一种镜像分发设备的结构示意图。
具体实施方式
为了使本领域的技术人员能够更好的理解本申请的技术方案,下面结合本申请实施例中的附图,对本申请进行清楚、完整地描述。但本申请能够以很多不同于上述描述的其他方式进行实施,因此,基于本申请提供的实施例,本领域普通技术人员在不经过创造性劳动的情况下,所获得的所有其他实施例,都应属于本申请保护的范围。
需要说明的是,本申请的权利要求书、说明书及附图中的术语“第一”、“第二”、“第三”等是用于区别类似的对象,并不用于描述特定的顺序或先后次序。这样使用的数据在适当情况下是可以互换的,以便于本文所描述的本申请的实施例,能够以除了在本文图示或描述的内容以外的顺序实施。此外,术语“包括”、“具有”以及他们的变形形式,意图在于覆盖不排他的包含,例如,包含了一系列步骤或单元的过程、方法、系统、产品或设备不必限于清楚地列出的那些步骤或单元,而是可包括没有清楚地列出的或对于这些过程、方法、产品或设备固有的其它步骤或单元。
为了便于理解,首先对本申请实施例中可能涉及的技术术语进行简单介绍。
1,云技术(cloud technology)
云技术,是指在广域网或局域网内将硬件、软件、网络等系列资源统一起来,实现数据的计算、储存、处理和共享的一种托管技术。
2,云游戏(cloud gaming)
云游戏是以云计算为基础的游戏方式,在云游戏的运行模式下,所有游戏都在服务器端运行,并将渲染完毕后的游戏画面压缩后通过网络传送给用户。
3,云电脑(cloud computer)
与云游戏类似,是以云计算为基础的游戏方式。不同的是,该情境下提供给用户一个完全开放的环境,而不限制用户只进行游戏游玩。用户可以通过云电脑进行视频剪辑,机器学习等一系列操作。
4,对等(peer-to-peer,P2P)网络
对等网络,又称为点对点网络或对等计算机网络。对等网络是一种在对等(peer)节点之间分配任务和工作负载的分布式应用架构,是对等计算模型在应用层形成的一种组网或网络形式。具体来说,在对等网络中,网络的参与者共享他们所拥有的一部分硬件资源(例如,计算资源、存储资源、网络连接资源、打印机资源等),这些共享资源通过网络提供服务和内容,能被其它对等节点直接访问而无需经过中间实体。也就是说,对等网络中的参与者既是资源、服务和内容的提供者(server),同时,又是资源、服务和内容的获取者(client)。
5,镜像(mirror)
镜像又称为镜像文件。镜像是一种文件存储形式,镜像可以看作是原始文件的副本。
6,镜像层(mirror layer)
镜像通常以分层的结构方式进行存储,每层对应的镜像结构即为镜像层。
7,镜像分片
镜像分片是对于镜像层而言的逻辑分片。也就是说,可以在逻辑上将一个镜像层划分为多个镜像分片。例如,一个镜像层为40兆字节(Mbyte,MB),可以在逻辑上将该一个镜像层划分为10个镜像分片,且每个镜像分片的大小为4MB。
8,树形网络
树形网络为一种网络拓扑形状,树形网络中所有的节点都被组织在一棵树中,树形网络包括根节点和叶子节点。在树形网络中,数据会沿着树枝单向流动,即,只能从根节点流向叶子节点,而无法从叶子节点流向根节点。
9,网状网络
网状网络为一种网络拓扑形状,这种结构中,所有的节点无规则地互连,没有绝对的父子关系,即节点A可以将资源流向节点B,节点B也可以将资源流向节点A。
10,Qcow2磁盘镜像文件的文件格式
Qcow2是QEMU使用的磁盘镜像文件的文件格式。
下面,结合附图对适用于本申请实施例的镜像分发方法的应用场景、网络架构、镜像分发方法进行详细说明。可以理解的是,本申请提供的各实施例之间不冲突的情况下,下述的实施例及实施例中的特征可以相互组合。另外,下述各方法实施例中的步骤时序仅为一种举例,而非严格限定。
首先,结合附图介绍适用于本申请实施例的镜像分发方法的应用场景。
图1是适用于本申请实施例提供的镜像分发方法的一种应用场景的示意图。示例性的,如图1所示,该应用场景包括网络、多个节点i和多个终端i,i=1,2,3,4。其中,多个节点i中的任意两个节点之间可以通过网络进行通信以实现数据的传输,第i个节点与第i个终端进行通信以实现数据的传输。可选的,该应用场景还可以包括更多(例如,10个等)数目的节点,该更多数目的节点通过网络进行通信以实现数据的传输。可选的,该应用场景中的任意一个节点i还可以与更多(例如,2个或3个等)数目的终端进行通信以实现数据的传输。其中,图1示出的网络可以是有线网络或无线网络,本申请对此不作具体限定。节点i与终端i可以通过有线方式连接,也可以通过无线方式(例如,蓝牙(bluetooth)或无线通信技术(WIFI))连接,本申请对此不作具体限定。
节点i可以是具有存储能力(例如,存储云游戏更新镜像文件)、计算能力的服务器。在图1示出的应用场景中,终端i中安装的应用程序(例如,游戏应用程序)可以运行在节点i中。也就是说,节点i可以执行运行该应用程序的相关计算和处理的操作。节点i运行该应用程序后会将该应用程序生成的数据传输给终端i,以使终端i获得该应用程序关联的数据,这种方式可以有效减少终端i的计算量。例如,在云游戏场景下,终端i中安装的游戏应用程序可以运行在节点i上,节点i运行游戏应用程序后还可以对获取的应用数据进行渲染和压缩,此后节点i可以将经过上述处理后的数据传输给终端i,以满足终端i的需求。节点i还可以通过网络向图1中的其他节点发送节点i中存储的资源(例如,节点i中运行的应用程序生成的镜像文件),或者通过网络从图1中的其他节点获取其他节点中存储的资源。可选的,节点i可以具有存储器和处理器。节点i的处理器可以为中央处理器(centralprocessing unit,CPU)。可选的,节点i还可以有图形处理器(graphics processing unit,GPU)、神经网络处理器(neural network processing unit,NPU)、(field programmablegate array,FPGA)中的一种或多种,节点i的存储器可以为随机存取存储器(randomaccess memory,RAM)或者固态驱动器(solid-state drive,SSD)等其它具有存储能力的设备或者内存实例。固态驱动器也可以称为固态硬盘(solid-state drive,SSD)。对节点i的形式不作具体限定。节点i可以是硬件,也可以是软件。当节点i为硬件时,可以实现成多个服务器组成的分布式服务器集群,也可以实现成单个服务器。当节点i为软件时,可以实现成多个软件或软件模块(例如用来提供分布式服务的软件或软件模块),也可以实现成单个软件或软件模块。本申请实施例对此不作具体限定。
终端i上可以安装和运行应用程序,以及显示应用程序的运行结果。例如,终端i中安装的游戏应用程序可以运行在节点i中,节点i运行该游戏应用程序后可以对生成的游戏数据进行渲染和压缩处理,并将处理后的数据发送给终端i,终端i接收到该数据后可以通过显示界面向用户展示该游戏数据。对终端i的形式不作具体限定。例如,终端i可以但不限于是个人电脑、智能手机、平板电脑、台式计算机、或者可穿戴设备(例如,智能手表)等。
可选的,上述无线网络或有线网络使用标准通信技术和/或协议。网络通常为因特网、但也能够是任何网络,包括但不限于局域网(local area network,LAN)、城域网(metropolitan area network,MAN)、广域网(wide area network,WAN)、移动、有线或者无线网络、专用网络或者虚拟专用网络的任何组合)。在一些实施例中,使用包括超文本标记语言(hyper text mark-up language,HTML)、可扩展标记语言(extensible markuplanguage,XML)等的技术和/或格式来代表通过网络交换的数据。此外还能够使用诸如安全套接字层(secure socket layer,SSL)、传输层安全(transport layer security,TLS)、虚拟专用网络(virtual private network,VPN)、网际协议安全(internet protocolsecurity,IPsec)等常规加密技术来加密所有或者一些链路。在另一些实施例中,还能够使用定制和/或专用数据通信技术取代或者补充上述数据通信技术。
应理解,上述图1示出的应用场景仅为示意,并不对适用于本申请实施例提供的镜像分发方法的应用场景构成任何限定。可选的,上述应用场景还可以包括更多数目的节点或终端。可选的,上述应用场景中的任意一个节点还可以与更多数目的终端进行通信以实现数据的传输。
当图1示出的应用场景为云游戏应用场景时,该云游戏应用场景中的多个节点可以共享一个节点存储或生成的游戏更新镜像文件,以实现游戏更新镜像文件共享的目的。示例性的,节点1中存储有运行游戏应用程序生成的游戏更新镜像文件,节点1与节点2、节点3和节点4通信,通过将节点1中存储的游戏更新镜像文件传输给节点2、节点3和节点4,以实现游戏更新镜像文件的共享。在实际应用中,当网络中未拥有资源的节点数目较多时,拥有资源的节点1向未拥有资源的大量节点传输该游戏更新镜像文件(例如,该游戏更新镜像文件包括2个Qcow2镜像文件),不仅会增加节点1上传文件的开销,而且还会使得节点1将本地存储的该游戏更新镜像文件分别传输至节点2、节点3和节点4时存在较高的传输延迟。在一些情况下,上述由节点1将镜像文件传输至节点2、节点3和节点4的过程中,可能存在该镜像文件被攻击或篡改的现象,这样,导致节点2、节点3和节点4接收到的镜像文件是不完整的。
为了解决上述云游戏应用场景中存在的问题,传统技术提供了一种镜像分发方法。传统技术中主要使用Qcow2镜像保存游戏数据,该方法将游戏数据挂载到云游戏系统中,各个区域的节点中存储的Qcow2镜像保持一致,无法对每个区域的节点中存在的游戏镜像进行单独配置。图2示出了该传统技术提供的镜像分发方法的传输过程的示意图。参见图2,图2示出的网络架构为一种树形结构,该树形结构包括的7个节点可以是图1中示出的应用场景包括的节点。图2中的节点1可以是存储有云游戏更新镜像文件的节点,在需要将该镜像文件共享给图2示出的其他节点的情况下,节点1会先将该镜像文件和该镜像文件对应的哈希值1分别传输给节点2和节点3。节点2或节点3接收到该镜像文件和哈希值1后,先对该镜像文件进行哈希运算获得一个哈希值2,通过比较哈希值1和哈希值2相同,确定节点2或节点3已经成功接收到该镜像文件。此后,节点2或节点3会将该镜像文件和哈希值2发送给各自的子节点,以此类推,直到所有节点均接收到该镜像文件,其中,节点2的子节点为节点4和节点5,节点3的子节点为节点6和节点7。这种实现方式中,若一个节点发现未能接收到完整的镜像文件时,该一个节点需要向上游节点发送重传该镜像文件的请求,以重新获得该镜像文件。通常镜像文件的数据量很大(例如,几十吉字节(吉字节(Gigabyte,GB或G)到几百GB的镜像文件),上述实现方式中,节点对接收到的该镜像文件进行完整性校验时需要很长时间(例如,通常需要几十分钟),使得该镜像文件的传输存在较高的延迟。上述传输镜像文件是以树形网络进行传输的,随着网络中节点数目的增加必然会造成传输该一个镜像文件的总传输时长的增加。基于树形网络传输镜像文件时,是分层串行执行的。也就是说,本层节点必须等待上一层节点传输完该镜像文件后,本层节点才能将该镜像文件传输给其子节点。这样,使得树形网络中的非顶点(除节点1之外的节点)的节点接收到该镜像文件时存在较高的传输延迟。当上述树形网络中的一个节点(例如,节点2)在传输镜像文件的过程中发生故障时,还会导致发生故障的子节点不能成功接收到该镜像文件。
因此,本申请实施例提供了一种镜像分发方法、装置和系统,以解决上述存在的问题。
接下来,结合图3A至图5介绍本申请实施例提供的镜像分发方法适用的网络架构。
图3A是适用于本申请实施例的一种网络架构的示意图。如图3A所示,该网络架构包括控制节点和多个对等节点。示例性的,图3A中以该多个对等节点分别为对等节点1、对等节点2和对等节点3为例示出。其中,该网络架构包括的所有节点(即,控制节点和多个对等节点)中的任意两个节点之间均可以相互通信,以实现数据的交互。该网络架构可以理解为是一个P2P网络架构,该架构中的任意两个节点之间可以基于P2P网络通信协议实现通信和数据交互。例如,该P2P网络通信协议可以是基于TCP/UDP的P2P网络通信协议。可选的,该网络架构中还可以包括更多数目的对等节点,本申请对此不作具体限定。当该网络架构中包括更多数目的对等节点时,该网络架构中的任意两个节点之间均可以通信,以实现数据的交互。示例性的,图3B示出了适用于本申请实施例提供的另一种网络架构,该网络架构包括5个对等节点和1个控制节点,且网络架构中包括的任意两个节点之间可以进行通信,以实现数据的传输。
控制节点,用于管理该网络架构中的多个对等节点。示例性的,图4示出了本申请实施例提供的一种控制节点100的结构示意图。可以理解的是,控制节点100可以为图3A示出的网络架构中的控制节点,即图3A中的控制节点与图4中的控制节点100具有相同或相似的功能。参见图4,控制节点100包括以下功能模块:服务注册与发现210,网络拓扑中心220,网络服务(web server),以及动态调控中心240。其中,服务注册与发现210,用于保证图3A所示的网络架构中的多个对等节点多活。网络拓扑中心220,用于根据从图3A示出的多个对等节点处获取的网络状态,构建包括该多个对等节点的P2P网络。网络服务器230,用于提供网络服务。动态调控中心240,用于根据从图3A示出的对等节点处获取的网络状态信息,调整网络中的网络通道(例如,网络通道1或网络通道2)带宽,以保证P2P网络包括的对等节点处于正常工作状态。
对等节点,用于根据控制节点发送的指令向网络中的其他对等节点发送该对等节点存储的网络资源(例如,镜像文件资源)。对等节点还可以接收网络中其他对等节点发送的网络资源。对等节点还可以向控制节点发送该对等节点获取的网络状态。示例性的,图5示出了本申请实施例提供的一种对等节点200的结构示意图。可以理解的是,对等节点200可以为图3A示出的网络架构中的任意一个对等节点,即图3A中的任意一个对等节点与图5中的对等节点200具有相同或相似的功能。参见图5,对等节点200包括以下功能模块:镜像分片传输器210,网络分析模型220,动态调控客户端230,以及文件存储服务器240。其中,镜像分片传输器210用于将文件存储服务240中存储的镜像分片传输给网络中除该对等节点200意外的其他对等节点。网络分析模块220用于进行节点间测速,以及维护对等节点100与对等节点100通信的其他对等节点的网络情况。例如,网络分析模块220可以基于原始套接字(raw-socket)技术进行节点间测速。动态调控客户端230,用于负责分析对等节点200传输数据的通道流量状态,以及结合网络分析模块220获取的网络情况上报给控制节点100中的动态调控中心140。
本申请中对图3A示出的控制节点和多个对等节点的形态不作具体限定。例如,控制节点和多个对等节点可以是服务器。服务器可以是硬件,也可以是软件。当该服务器为硬件时,可以实现成多个服务器组成的分布式服务器集群,也可以实现成单个服务器。当服务器为软件时,可以实现成多个软件或软件模块(例如用来提供分布式服务的软件或软件模块),也可以实现成单个软件或软件模块。本申请实施例对此不作具体限定。
需说明的是,图3A中示出的控制节点是独立于对等节点1、对等节点2和对等节点3的一个网络节点。可以理解的是,这种实现方式中,适用于本申请实施例的网络架构中最少可以包括4个节点,即控制节点,对等节点1,对等节点2和对等节点3。可选的,在另一些实现方式中,控制节点还可以是对等节点1、对等节点2或对等节点3中的任意一个对等节点,此时该任意一个对等节点还具有图3A中示出的控制节点的功能。可以理解的是,这种实现方式中,适用于本申请实施例的网络架构中最少可以包括3个节点,即对等节点1,对等节点2和对等节点3,且这3个对等节点中的一个对等节点还具有图3A示出的控制节点的功能。
应理解,上述图3A至图5仅为示意,并不对本申请实施例提供的镜像分发方法适用的网络架构构成任何限定。例如,图3A示出的网络架构中还可以包括更多数目的对等节点和更多数目的网络通道。
以下,结合图6至图9介绍本申请实施例提供的镜像分发方法。
图6是本申请实施例提供的一种镜像分发方法的示意图。本申请实施例提供的镜像分发方法可以应用于包括控制节点和控制节点管理的第一对等节点和N个第二对等节点的对等网络,N为大于等于2的正整数。示例性的,图6示出的所述控制节点可以是上述图3示出的控制节点,图6示出的所述第一对等节点和所述N个第二对等节点可以为上述图3示出的多个对等节点。如图6所示,本申请实施例提供的镜像分发方法包括S601至S606。在介绍S601至S606之前,先对本申请实施中涉及的控制节点、第一对等节点和N个第二对等节点进行详细介绍。
本申请实施例中,对等网络中的控制节点用于管理的第一对等节点和N个第二对等节点。例如,控制节点用于管理第一对等节点和N个第二对等节点的网络带宽、第一对等节点和N个第二对等节点之间的网络拓扑等。在一些实施例中,控制节点为以下对等节点中的任意一个节点:第一对等节点、或N个第二对等节点。可以理解的是,当控制节点为第一对等节点或N个第二对等节点中的一个第二对等节点时,该第一对等节点或该一个第二对等节点还具有控制节点的功能。在另一些实施例中,控制节点还可以是独立于第一对等节点和N个第二对等节点之外的节点,此时第一对等节点或N个第二对等节点中的任意一个对等节点可以不具备控制节点的功能。可以理解的是,对等网络中的任意两个节点通过不同网络通道进行数据传输,任意两个节点为以下节点中的任意两个节点:控制节点、第一对等节点和N个第二对等节点。示例性的,以图3A为例进行介绍,当所述控制节点为图3A示出的控制节点,第一对等节点为对等节点1,多个第二对等节点分别为对等节点2和对等节点3时,控制节点与对等节点1之间通过网络通道5相互通信,控制节点与对等节点2之间通过网络通道4相互通信,控制节点与对等节点3之间通过网络通道6相互通信,对等节点1与对等节点3之间通过网络通道3相互通信,对等节点1与对等节点2之间通过网络通道1相互通信,对等节点2与对等节点3之间通过网络通道2相互通信。且上述网络通道1至网络通道6中的任意两个网络通道不相同。
本申请实施例中,第一对等节点存储与应用程序关联的镜像文件。也就是说,第一对等节点是所述对等网络中拥有镜像文件的节点。所述镜像文件包括N个不同的镜像分片,N为大于等于2的正整数。也就是说,所述镜像文件至少包括两个不同的镜像分片。N个不同的镜像分片,即该N个镜像分片的标识不同,但该N个不同的镜像分片携带与应用程序关联的信息可以相同或不同。可以理解的是,一个镜像分片的标识可以用于唯一标识该一个镜像分片。在一些实现方式中,当镜像文件是以镜像分层为结构存储时,该一个镜像文件可以包括至少一个镜像分层,该至少一个镜像分层可以包括所述N个不同的镜像分片。示例性的,图7示出了镜像文件和镜像层的关系的示意图,图7中一个镜像文件可以划分为P个镜像层,P为大于等于1的正整数。图8示出了镜像层与镜像分片的关系示意图,图8中镜像层P可以划分为m个镜像分片,m为大于等于2的正整数。对所述应用程序的类型不作具体限定。在一些实现方式中,所述应用程序为云游戏应用程序,所述与应用程序关联的镜像文件是所述云游戏应用程序生成的更新镜像文件。在另一些实现方式中,所述应用程序还可以为视频应用程序,所述与应用程序关联的镜像文件是所述视频应用程序生成的镜像文件。
本申请实施例中,N个第二对等节点是对等网络中未存储与所述应用程序关联的镜像文件的N个对等节点。也就是说,在未执行本申请提供的镜像分发方法之前,对等网络中包括的每个第二对等节点都未拥有镜像文件包括的至少一个镜像分片。
下面,对S601至S606进行详细介绍。
S601,控制节点向N个第二对等节点发送下载指令,下载指令用于指示开始下载镜像文件,N为大于等于2的正整数。
可选的,下载指令可以携带镜像文件的标识,镜像文件的标识用于唯一标识该镜像文件。控制节点执行上述S601后,N个第二对等节点均接收到下载指令。每个第二对等节点可以根据下载指令所包括的镜像文件的标识确定需要下载的镜像文件。
可选的,在一些实施例中,在上述S601之前,控制节点还可以执行以下步骤:接收用户终端发送的请求,该请求表示对等网络中的N个第二对等节点需要获取镜像文件。可选的,所述N个第二对等节点可以为所述用户终端提供网络服务(例如,所述N个第二对等节点本地存储的数据)。其中,对用户终端的类型不作具体限定。例如,用户终端可以但限于是以下任意一种:智能手机、平板电脑、台式电脑或可穿戴智能设备(例如,智能手表)等。
执行上述S601,即控制节点向N个第二对等节点发送开始下载与应用程序关联的镜像文件的指令。
S602,第i个第二对等节点根据接收到的控制节点发送的下载指令,确定下载镜像文件包括的N个镜像分片的下载顺序,i=1,2,…,N。
执行上述S602,即N个第二对等节点中的每个第二对等节点(即,第i个第二对等节点)均会确定该每个第二对等节点下载镜像文件包括的N个镜像分片的下载顺序,N个第二对等节点与N个下载顺序一一对应,且N个下载顺序不同。
在一些实现方式中,N个下载顺序不同,可以理解为,N个下载顺序中的任意两个下载顺序完全不相同。示例性的,当所述镜像文件包括2个镜像分片(即,镜像分片1和镜像分片2)时,N个第二对等节点包括2个第二对等节点时,其中一个第二对等节点确定的下载顺序可以是先下载镜像分片1,再下载镜像分片2;另一个第二对等节点确定的下载顺序可以是先下载镜像分片2,再下载镜像分片1。这种实现方式中,这两个第二对等节点对应的下载顺序完全不相同。
在另一些实现方式中,N个下载顺序不同,可以理解为,N个下载顺序中的任意两个下载顺序不完全相同。其中,任意两个下载顺序不完全相同,是指任意两个下载顺序所指示的第一个下载的镜像分片不同,且对所述任意两个下载顺序所指示的除所述第一个下载的镜像分片之后的其他镜像分片的下载顺序不作具体限定。示例性的,当所述镜像文件包括3个镜像分片(即,镜像分片1、镜像分片2和镜像分片3)时,N个第二对等节点包括2个第二对等节点时,其中一个第二对等节点确定的下载镜像分片的顺序依次为:镜像分片1、镜像分片2和镜像分片3;另一个第二对等节点确定的下载镜像分片的顺序依次为:镜像分片3、镜像分片2和镜像分片1;或另一个第二对等节点确定的下载镜像分片的顺序依次为:镜像分片2、镜像分片1和镜像分片3。这种实现方式中,这两个第二对等节点对应的下载顺序不完全相同。
S603,第i个第二对等节点根据第i个第二对等节点对应的第i个下载顺序,确定向第一对等节点发送第一查询消息,以及向其他第二对等节点发送第二查询消息。
第一查询消息用于查询镜像文件包括的第i个镜像分片,且第i个镜像分片为第i个下载顺序所指示下载的第一个镜像分片。在一些实现方式中,当N个第二对等节点中的每个第二对等节点对应的下载顺序所指示下载的第一个镜像分片均不相同时,执行上述S603,即每个第二对等节点向第一对等节点发送的查询消息所查询的镜像分片均不相同。
第二查询消息用于查询镜像文件包括的除所述第i个镜像分片以外的一个镜像分片,且第二查询消息所查询的镜像分片为第i个下载顺序所指示下载的第j个镜像分片,j=2,3,…,N。可以理解的是,当N具体为大于等于3的正整数时,若所述第二查询消息为第i个第二对等节点发送的第一个第二查询消息,则j=2;若所述第二查询消息为第i个第二对等节点发送的第二个第二查询消息时,则j=3;以此类推。示例性的,当所述镜像文件包括3个镜像分片(即,镜像分片1、镜像分片2和镜像分片3)时,N个第二对等节点包括2个第二对等节点时,其中一个第二对等节点确定的下载镜像分片的顺序依次为:镜像分片1、镜像分片2和镜像分片3;另一个第二对等节点确定的下载镜像分片的顺序依次为:镜像分片3、镜像分片2和镜像分片1。这种实现方式中,所述一个第二对等节点发送的第一查询消息用于查询镜像分片1。所述另一个第二对等节点发送的第一查询消息用于查询镜像分片2。所述一个第二对等节点发送的第一个第二查询消息用于查询镜像分片2,所述一个第二对等节点发送的第二个第二查询消息用于查询镜像分片3。所述另一个第二对等节点发送的第一个第二查询消息用于查询镜像分片2,所述另一个第二对等节点发送的第二个第二查询消息用于查询镜像分片1。
其他第二对等节点,是指N个第二对等节点中除第i个第二对等节点以外的N-1个第二对等节点。
S604,第i个第二对等节点向第一对等节点发送第一查询消息,以及向其他第二对等节点发送第二查询消息,以获得镜像文件。
在一些实现方式中,第i个第二对等节点向第一对等节点发送第一查询消息,以及向其他第二对等节点发送第二查询消息,以获得镜像文件,包括以下步骤:第i个第二对等节点向第一对等节点发送第一查询消息;第i个第二对等节点接收第一对等节点发送的第i个镜像分片和第i个镜像分片对应的哈希值,且每个镜像分片对应的哈希值不同;在确定收到的第i个镜像分片通过完整性校验的情况下,第i个第二对等节点保存第i个镜像分片,并向其他第二对等节点发送第二查询消息;第i个第二对等节点接收到其他第二对等节点发送的第二查询消息所查询的镜像分片和所查询的镜像分片对应的哈希值,其他第二对等节点发送的镜像分片的数目不超过预设阈值;在确定收到的第二查询消息所查询的镜像分片通过完整性校验的情况下,第i个第二对等节点保存第二查询消息所查询的镜像分片。可以理解的是,执行上述步骤后,第i个第二对等节点可以获得第一对等节点和其他第二对等节点发送的镜像文件包括的所有镜像分片(即,N个镜像分片)。这种实现方式中,对等网络中的拥有N个不同的镜像分片的N个第二对等节点之间可以相互交互,以共享彼此存储的镜像分片,可以减轻拥有完整镜像文件的第一对等节点的传输负担,提高了节点下载的速度与效率。这种实现方式中,每个第二对等节点无需等待接收到所述完整的镜像文件后再向其他未存储所述镜像文件的第二对等节点发送所述镜像文件,可以提高镜像分发的效率。
可选的,在另一些实现方式中,第i个第二对等节点还可以向第一等节点发送第二查询消息。这种实现方式中,可能存在第一对等节点正在上传的镜像分片的数量超过预设阈值,基于第一对等节点即使接收到了第二查询消息且第一对等节点本地存储有第二查询消息所查询的镜像分片的情况下,第一对等节点也不会像第i个第二对等节点发送第二查询消息所查询的镜像分片。也就是说,这种实现方式中,第一对等节点接收到第二查询消息后,向第i个第二对等节点发送的第二查询消息的查询结果为失败,该查询结果不包括第二查询消息所查询的镜像分片。
上述实现方式中,第二查询消息所查询的镜像分片为第i个下载顺序所指示下载的第j个镜像分片,j=2,3,…,N。也就是说,第i个第二对等节点会发送N-1个第二查询消息,以获得N-1个第二查询消息所查询的N-1个不同的镜像分片。可选的,在一些实现方式中,第i个第二对等节点在确定当前接收到的一个镜像分片通过完整性校验后,该第i个第二对等节点可以继续发送新的查询消息。换句话说,当该第i个第二对等节点在确定当前接收到的一个镜像分片未通过完整性校验时,该第i个第二对等节点会发生重传消息,以请求重新获取该完整的一个镜像分片。第i个第二对等节点向其他第二对等节点发送第二查询消息,可以是同时向所述N-1个第二对等节点都发送第二查询消息。基于此,在一些可能的实现方式中,第i个第二对等节点向其他第二对等节点发送第二查询消息,包括:第i个第二对等节点向N个第二对等节点中除去第i个第二对等节点以外的所有第二对等节点发送第1个第二查询消息,第1个第二查询消息所查询的镜像分片为第i个下载顺序所指示下载的第2个镜像分片(j=2);在第i个第二对等节点在确定成功接收到第1个第二查询消息所查询的镜像分片的情况下,第i个第二对等节点向N个第二对等节点中除去第i个第二对等节点以外的所有第二对等节点发送第2个第二查询消息,第2个第二查询消息所查询的镜像分片为第i个下载顺序所指示下载的第3个镜像分片(j=3),……,以此类推,直到第i个第二对等节点获得第N-1个查询消息所查询的镜像分片,第i个第二对等节点停止发送第二查询消息。
可选的,上述实现方式中,接收到镜像分片的每个第二对等节点还可以对接收到的镜像分片进行完整性校验,以确认该每个第二对等节点接收到的镜像分片是否完整或是否被篡改。基于此,本申请实施例提供的镜像分发方法还可以包括以下步骤:第i个第二对等节点对接收到的镜像分片进行完整性校验,第i个第二对等节点接收到的镜像分片包括第i个镜像分片和第二查询消息所查询的镜像分片;若确定接收到的第i个镜像分片未通过完整性校验,第i个第二对等节点向第一对等节点发送第一重传消息,第一重传消息用于指示第一对等节点发送第i个镜像分片;若确定接收到的第二查询消息所查询的镜像分片未通过完整性校验,第i个第二对等节点向其他第二对等节点发送第二重传消息,第二重传消息用于指示其他第二对等节点发送第二查询消息所查询的镜像分片。
可选的,在一些实现方式中,第i个第二对等节点根据接收到的每个镜像分片和每个镜像分片对应的哈希值,对该每个镜像分片进行完整性校验,包括:第i个第二对等节点对接收到的每个镜像分片进行哈希计算,获得哈希计算后的值;第i个第二对等节点通过比较哈希计算后的值和每个镜像分片对应的哈希值,确定该每个镜像分片是否通过完整性校验;其中,若哈希计算后的值和每个镜像分片对应的哈希值相同,则确定该每个镜像分片通过完整性校验;若哈希计算后的值和每个镜像分片对应的哈希值不同,则确定该每个镜像分片未通过完整性校验。对哈希计算所采用的哈希算法的类型不作具体限定。例如,所述哈希算法可以但不限于是散列算法或者消息摘要算法。
可选的,在一些场景中,上述实现方式中的其他第二对等节点本地没有存储第二查询消息所查询的镜像分片,这样,即使该其他第二对等节点接收到第二查询消息后,也无法将第二查询消息所查询的镜像分片和对应的哈希值发送给第i个第二对等节点,这种实现方式中,其他第二对等节点向第i个第二对等节点发送的第二查询消息的查询结果为失败。基于此,即若上述实现方式中的第i个第二对等节点未接收到其他第二对等节点发送的第二查询消息所查询的镜像分片和所查询的镜像分片对应的哈希值,本申请实施例提供的镜像分发方法还可以包括以下步骤:第i个第二对等节点向第一对等节点发送第二查询消息;第i个第二对等节点接收第一对等节点发送的第二查询消息所查询的镜像分片和所查询的镜像分片对应的哈希值。示例性的,当所述镜像文件包括3个镜像分片(即,镜像分片1、镜像分片2和镜像分片3)时,N个第二对等节点包括2个第二对等节点时,其中一个第二对等节点确定的下载镜像分片的顺序依次为:镜像分片1、镜像分片2和镜像分片3;另一个第二对等节点确定的下载镜像分片的顺序依次为:镜像分片3、镜像分片2和镜像分片1。这种场景中,若所述一个第二对等节点和所述另一个第二对等节点同时下载对应的下载顺序所指示的第二个镜像分片(即,镜像分片2)时,所述另一个第二对等节点与所述一个第二对等节点彼此发送查询镜像分片2的查询消息,由于上述两个第二对节点本地都没有存储镜像分片2,故上述两个第二对等节点无法通过彼此交互以获得镜像分片2。此后,所述一个第二对等节点和所述另一个第二对等节点可以向第一对等节点发送查询镜像分片2的查询消息。或者,所述一个第二对等节点可以向第一对等节点发送查询镜像分片2的查询消息,以将获得的镜像分片2保存至本地;所述另一个第二对等节点再向所述一个第二对等节点发送查询镜像分片2的消息,以获得所述镜像分片2。
S605,第一对等节点根据N个第一查询消息,确定向N个第二对等节点发送N个第一查询消息所查询的镜像文件包括的N个不同的镜像分片。
S606,第一对等节点通过N个网络通道向N个第二对等节点发送N个镜像分片和N个镜像分片对应的N个不同的哈希值,以使第i个第二对等节点与其他第二对等节点进行交互获得镜像文件。
对第一对等节点发送镜像分片和与镜像分片对应的哈希值的发送方式不作具体限定。例如,第一对等节点可以将该镜像分片和与该镜像分片对应的哈希值封装在同一个数据包中,并将封装后的该一个数据包发送给对应的第二对等节点。第二对等节点对接收到的该一个数据包进行解析后即可获得该镜像分片和与该镜像分片对应的哈希值。又如,第一对等节点可以将该镜像分片和与该镜像分片对应的哈希值分别封装在两个不同的数据包中,并将封装后的该两个数据包同时发送给对应的第二对等节点。
在本申请实施例中,第i个第二对等节点与其他第二对等节点进行交互获得镜像文件,包括:第i个第二对等节点向第一对等节点发送第一查询消息,以及向其他第二对等节点发送第二查询消息,以获得镜像文件。上述S604中详细描述了这种实现方式的流程,此处未详细赘述的内容可以参见上文S604中的相关描述。
执行上述S606中的“第一对等节点通过N个网络通道向N个第二对等节点发送N个镜像分片和N个镜像分片对应的N个不同的哈希值”之后,对等网络包括的未存储镜像文件的N个第二对等节点中的每个第二对等节点均可以成功获取所述镜像文件包括的一个镜像分片,且每个第二对等节点获取的镜像分片不同。基于此,对等网络中的N个第二对等节点可以通过彼此交互以获得对方存储的镜像分片,可以减轻拥有完整镜像文件1的第一对等节点的传输负担,提高了节点下载的速度与效率。另外,N个第二对等节点之间彼此共享对方拥有的镜像分片时,每个第二对等节点在下载其他第二对等节点存储的镜像分片的同时,也在向其他第二对等节点上传自己存储的镜像分片,可以提高镜像分片的传输效率。
可选的,执行上述S601至S606之后,对等网络中的第i个第二对等节点可以接收到镜像文件包括的N个镜像分片。为验证第i个第二对等节点是否成功接收到完整的镜像文件,还可以进一步对第i个第二对等节点收到的所有镜像分片进行完整性验证,以确定第i个第二对等节点是否成功接收到该镜像文件。在一些实现方式中,可以通过以下方式实现执行上述完整性验证:第i个第二对等节点对收到的所有镜像分片进行哈希处理,获得哈希值#2,并将哈希值#2发送给控制节点;第一对等节点对镜像文件进行哈希处理获得哈希值#3,并将哈希值#3发送给控制节点;控制节点对收到的哈希值#2和哈希值#3进行比较,获得校验信息,校验信息用于指示第i个第二对等节点是否成功接收到完整的镜像文件;其中,若哈希值#2和哈希值#3相同,校验信息用于指示第i个第二对等节点成功接收到完整的镜像文件;或者,若哈希值#2和哈希值#3不相同,校验信息用于指示第i个第二对等节点没有成功接收到完整的镜像文件。在另一些实现方式中,可以通过以下方式实现执行上述完整性验证:第i个第二对等节点对收到的所有镜像分片进行哈希处理,获得哈希值#2;第一对等节点对镜像文件进行哈希处理获得哈希值#3,并将哈希值#3发送给第i个第二对等节点;第i个第二对等节点对哈希值#2和哈希值#3进行比较,获得校验信息,校验信息用于指示第i个第二对等节点是否成功接收到完整的镜像文件;其中,若哈希值#2和哈希值#3相同,校验信息用于指示第i个第二对等节点成功接收到完整的镜像文件;或者,若哈希值#2和哈希值#3不相同,校验信息用于指示第i个第二对等节点没有成功接收到完整的镜像文件。这种实现方式中,第i个第二对等节点还可以发送重传消息以获取未拥有的镜像文件包括的至少一个镜像分片。
可选的,在上述示出的镜像分发方法所描述的过程中,P2P网络中的对等节点还可以与其他对等节点通信,以获取该其他对等节点当前的网络状态。一个对等节点的网络状态可以包括该一个对等节点向其他对等节点上传数据的速度,以及该一个对等节点从其他对等节点下载数据的速度。在P2P网络中,若任意一个对等节点发现该任意一个对等节点向其他对等节点上传数据的速度不满足预设上传速度,或该任意一个对等节点从其他对等节点下载数据的速度不满足预设下载速度,则该任意一个对等节点还可以将获取的网络状态信息发送给控制节点,以使控制节点根据该网络状态信息重新分配P2P网络中的对等节点的网络带宽,从而解决该任意一个对等节点存在的上传速度或下载速度不满足预设速度的问题,有利于保证网络处于稳定工作状态。基于此,本申请实施例提供的镜像分发方法还可以包括以下步骤:第i个第二对等节点向第一对等节点和其他第二对等节点发送N个探测消息,以获取N个网络通道对应的网络质量,N个第二对等节点与N个探测消息一一对应,第i个网络通道对应的网络质量不满足预设要求,第i个网络通道为第i个第二对等节点与第一对等节点进行数据传输的网络通道,或为第i个第二对等节点与其他第二对等节点中的一个第二对等节点进行数据传输的网络通道;第i个第二对等节点向控制节点发送N个网络通道对应的网络质量,以使所述控制节点根据所述N个网络通道对应的网络质量对所述N个网络通道中除所述第i个网络通道以外的网络通道对应的带宽值进行调整。示例性的,下文中的图10是本申请实施例提供的一种网络带宽调整方法,此处未详细赘述的内容可以参见下文中图10中的相关描述。
应理解,上述图6示出的镜像分发方法仅为示意,并不对本申请实施例提供的镜像分发方法构成任何限定。
本申请实施例中,对等网络中存储镜像文件的第一对等节点通过不同网络通道向对等网络中没有存储该镜像文件的第二对等节点发送该镜像文件包括的镜像分片,且每个第二对等节点接收到的镜像分片是不同的。对等网络中没有存储镜像文件的第二对等节点在接收到镜像文件包括的镜像分片后,即可作为对等网络中的资源节点,向对等网络中未存储该镜像分片的其他第二对等节点提供上传功能。上述实现过程中,该未存储镜像文件的第二对等节点在接受到镜像文件包括的镜像分片后,无需等待接受到完整的镜像文件就能将该镜像文件包括的镜像分片分发给网络中的其他第二对等节点,可以提网络带宽利用率,以及降低在网络中分发镜像文件的总耗时,可以实现在网络中快速分发镜像文件的目的。上述镜像分发过程中,通过对对等节点接收到的与镜像文件关联的镜像分片进行完整性校验,以确定网络中未存储镜像文件的第二对等节点是否成功接收到镜像文件。在网络中实现镜像文件的分发时,是以镜像分片为最小传输粒度的,可以提高镜像分发的灵活度。在镜像分片传输失败的场景下,只需要重传异常的镜像分片,避免现有技术中需要重传整个镜像文件的问题,有利于降低重传率。
下面,以上文中图3A示出的网络架构为例,结合图9A和图9B介绍本申请提供的另一种镜像分发方法。为便于描述,下文中将图3A示出的网络架构称为P2P网络。可以理解的是,图9A和图9B所述描述的镜像分发方法为上述图6所描述的镜像分发方法的一个具体示例,图9A和图9B所描述的方法仅为示意,并不对本申请实施例提供的镜像分发方法构成任何限定。具体的,图9A和图9B以上述图6所述的方法中的对等网络包括控制节点、对等节点1、对等节点2和对等节点3,以图6中的应用场景为云游戏场景,以及对等节点1中存储有待共享的游戏更新镜像文件1为例进行介绍。其中,对等节点1可以理解为是上述图6示出的第一对等节点,对等节点2和对等节点3可以理解为是上述图6示出的N个第二对等节点,N=2。
图9A是本申请实施例提供的另一种镜像分发方法的示意图。应理解,图9A的例子仅仅是为了帮助本领域技术人员理解本申请实施例,而非要将申请实施例限制于所示例的具体数值或具体场景。本领域技术人员根据下面所给出的图9A的例子,显然可以进行各种等价的修改或变化,这样的修改和变化也落入本申请实施例的范围内。如图9A所示,该方法包括S901至S911。下面,详细介绍S901至S911。
S901,控制节点获取请求1。
控制节点是对等网络中用于管理对等节点1、对等节点2和对等节点3的节点。本申请实施例中,控制节点可以是独立于对等节点1、对等节点2和对等节点3之外的节点。
请求1用于请求获取运行应用程序1生成的镜像文件1。应用程序1可以是云游戏应用程序,镜像文件1可以是游戏更新镜像文件,对应用程序1的具体类型也不限定。镜像文件1可以包括1个镜像分层,该1个镜像分层包括镜像分片1和镜像分片2,即镜像文件1包括镜像分片1和镜像分片2,且镜像分片1的标识和镜像分片2的标识不同。镜像分片1的标识和镜像分片2的标识不同,是指镜像分片1和镜像分片2是镜像文件1包括的两个不同的镜像分片。示例性的,图7示出了镜像文件和镜像层的关系的示意图,图7中一个镜像文件可以划分为P个镜像层,P为大于等于1的正整数。图8示出了镜像层与镜像分片的关系的示意图,图8中镜像层P可以划分为m个镜像分片,m为大于等于2的正整数,镜像分片1和镜像分片2是镜像N包括的两个不同的镜像分片。对镜像文件中镜像分片的标识的呈现形式不作具体限定。例如,镜像分片m的标识为(T1,T2),T1标识该镜像分片m所在的镜像层P,T2标识镜像分片m位于镜像层P中的具体的位置。
实际应用中,可以是控制节点主动从用户终端获取请求1,也可以是用户终端主动向控制节点发送请求1,本申请对此不作具体限定。
可以理解的是,本申请实施例中镜像文件1包括的所有镜像分片是按照以下顺序存储的:镜像分片1、镜像分片2。
S902,控制节点分别向对等节点2和对等节点3发送指令1,指令1用于指示下载请求1所请求的镜像文件。相应的,对等节点2和对等节点3分别接收到指令1。
上述S901中请求1用于请求获取镜像文件1,基于此,指令1具体用于指示开始下载请求1所请求的镜像文件1。
S903,对等节点2根据指令1,确定需要以第一下载顺序下载请求1所请求的镜像文件包括的所有镜像分片。
第一下载顺序,即下载镜像文件1包括的所有镜像分片的顺序。其中,第一下载顺序是先下载镜像分片1,再下载镜像分片2。
其中,对等节点2根据指令1,确定需要以第一下载顺序下载请求1所请求的镜像文件包括的所有镜像分片,包括:对等节点2根据指令1,确定需要下载镜像文件1包括镜像分片1和镜像分片2;对等节点2对镜像文件1包括的镜像分片的顺序进行随机排序,获得第一下载顺序。
S904,对等节点3根据指令1,确定需要以第二下载顺序下载请求1所请求的镜像文件包括的所有镜像分片。
第二下载顺序,即下载镜像文件1包括的所有镜像分片的顺序了,且第二下载顺序与第一下载顺序不同。其中,第二下载顺序是先下载镜像分片2,再下载镜像分片1。
其中,对等节点3根据指令1,确定需要以第二下载顺序下载请求1所请求的镜像文件包括的所有镜像分片,包括:对等节点3根据指令1,确定需要下载镜像文件1包括镜像分片1和镜像分片2;对等节点3对镜像文件1包括的镜像分片的顺序进行随机排序,获得第二下载顺序。
S905,对等节点2向P2P网络中的节点发送查询消息1,查询镜像分片1。
查询消息1与第一下载顺序关联,查询消息1具体是用于查询第一下载顺序所指示的下载镜像分片的顺序中需要下载的第一个镜像分片,即查询消息1用于查询镜像分片1。
其中,对等节点2向网络中的节点发送查询消息1,包括:对等节点2根据指令1确定对等节点2的本地没有存储镜像文件1包括的所有镜像分片;对等节点2根据第一下载顺序,生成查询消息1。
S906,对等节点3向网络中的节点发送查询消息2,查询镜像分片2。
查询消息2与第二下载顺序关联,查询消息2具体是用于查询第一下载顺序所指示的下载镜像分片的顺序中需要下载的第二个镜像分片,即查询消息2用于查询镜像分片2。
其中,对等节点3向网络中的节点发送查询消息2,包括:对等节点3根据指令1确定对等节点3的本地没有存储镜像文件1包括的所有镜像分片;对等节点3根据第二下载顺序,生成查询消息2。
S907,对等节点1根据查询消息1确定本地存储有镜像分片1;根据查询消息2确定本地存储有镜像分片2。
其中,对等节点1根据查询消息1确定本地存储有镜像分片1,包括:对等节点1根据查询消息1携带的镜像分片1的标识,对本地存储的镜像分片进行查询,确定本地存储有镜像分片1。
其中,对等节点1根据查询消息2确定本地存储有镜像分片2,包括:对等节点1根据查询消息2携带的镜像分片2的标识,对本地存储的镜像分片进行查询,确定本地存储有镜像分片2。
S908,响应于满足条件1,对等节点1通过网络通道1向对等节点2发送镜像分片1和哈希值1。
满足条件1包括:满足对等节点1上传镜像分片的数量不超过预设上传数量。对预设上传数据量不作具体限定,预设上传数量可以根据对等节点1当前的网络状态进行确定。也就是说,当对等节点1当前的网络状态比较好时,该预设上传数量可以较大;当对等节点1当前的网络状态不太好时,该预设上传数量可以较小。例如,预设上传数量可以但不限于等于1或2等。
网络通道1为对等节点1与对等节点2之间进行数据传输的网络通道。
可选的,在上述S908之前,对等节点1还可以对镜像分片1进行哈希计算,获得哈希值1,哈希值1用于实现镜像分片1的完整性校验。对哈希算法的类型不作具体限定。例如,所述哈希算法可以但不限于是散列算法或者消息摘要算法。
对对等节点1通过网络通道1向对等节点2发送镜像分片1和哈希值1的形式不作限定。例如,对等节点1可以将镜像分片1和哈希值1封装在一个数据包中,然后将封装后的该一个数据包发送给对等节点2。又如,对等节点1还可以将镜像分片1和哈希值1分别封装在两个数据包中,然后将封装后的两个数据包一同发送给对等节点2。
S909,响应于满足条件1,对等节点1通过网络通道3向对等节点3发送镜像分片2和哈希值2。
上述S909中的满足条件1,与上述S908中的满足条件1相同。当上述S908中的满足条件1包括:满足对等节点1上传镜像分片的数量不超过1个镜像分片时,对等节点1可以先执行完上述S908之后再执行上述S909,或对等节点1可以先执行上述S909之后再执行上述S908。
网络通道3为对等节点1与对等节点3之间进行数据传输的网络通道,且网络通道3与网络通道1不是同一个网络通道。换句话说,对等节点1通过不同的网络通道传输不同的镜像分片。
可选的,在上述S909之前,对等节点1还可以对镜像分片2进行哈希计算,获得哈希值2。
S910,对等节点2根据镜像分片1和哈希值1对镜像分片1进行完整性校验,确定接收到的镜像分片1是完整的。
其中,对等节点2根据镜像分片1和哈希值1对镜像分片1进行完整性校验,确定接收到的镜像分片1是完整的,包括:对等节点2利用哈希算法对镜像分片1进行处理,获得哈希值#1;通过比较哈希值1和哈希值#1相同,确定接收到的镜像分片1是完整的,即镜像分片1在传输过程中没有被攻击或篡改。可以理解的是,对等节点1根据镜像分片1确定哈希值1的哈希算法,与对等节点2根据镜像分片1确定哈希值#1的哈希算法是相同的。
示例性的,当对等节点1将镜像分片1和哈希值1封装在同一个数据包中,并将封装后的该一个数据包发送给对等节点2时,对等节点2在执行上述S910之前还可以执行以下操作:对该一个数据包进行解析,获取镜像分片1和哈希值1。
S911,对等节点3根据镜像分片2和哈希值2对镜像分片2进行完整性校验,确定接收到的镜像分片2是完整的。
对等节点3执行上述S911的原理,与对等节点2执行上述S910的原理相同,此处未详细赘述的内容可以参见上述对S910的相关描述。
可以理解的是,执行完上述S901至上述S911后,即完成对镜像文件1包括的镜像分片的第一轮分发。在第一轮分发过程中,P2P网络中未拥有镜像文件的对等节点(即,对等节点2和对等节点3),可以从拥有镜像文件的对等节点1处获取镜像文件包括的一个镜像分片。具体的,对等节点2通过网络通道1从对等节点1获取镜像分片1,对等节点3通过网络通道3从对等节点1获取镜像分片2,网络通道1与网络通道3不同,镜像分片1与镜像分片2不同。也就是说,执行完第一轮镜像分片的分发后,P2P网络中的对等节点2和对等节点3分别拥有镜像文件1包括的不同的镜像分片。在此之后,P2P网络中的对等节点2和对等节点3可以通过资源共享的方式,获取彼此拥有的镜像分片。下面,结合图9B示出的S912至S922详细介绍第二轮分发过程。
S912,对等节点2根据指令1和第一下载顺序,生成查询消息3。
在执行完第一轮分发后,对等节点2的本地存储有镜像文件1包括的镜像分片1。基于此,对等节点2根据指令1和第一下载顺序,生成查询消息3,查询消息3具体是用于查询第一下载顺序所指示的下载镜像分片的顺序中需要下载的第二个镜像分片,即查询消息3用于查询镜像分片2。可选的,查询消息3可携带镜像分片2的标识和对等节点2的标识,镜像分片2的标识用于唯一标识镜像分片2,对等节点2的标识用于唯一标识对等节点2。
S913,对等节点3根据指令1和第二下载顺序,生成查询消息4。
在执行完第一轮分发后,对等节点3的本地存储有镜像文件1包括的镜像分片2。基于此,对等节点3根据指令1和第二下载顺序,生成查询消息4,查询消息4具体是用于查询第一下载顺序所指示的下载镜像分片的顺序中需要下载的第二个镜像分片,即查询消息4用于查询镜像分片1。可选的,查询消息4可携带镜像分片1的标识和对等节点3的标识,镜像分片1的标识用于唯一标识镜像分片1,对等节点3的标识用于唯一标识对等节点3。
S914,对等节点2向P2P网络中的节点发送查询消息3,查询镜像分片2。相应的,P2P网络中的节点接收到查询消息3。
其中,对等节点2向P2P网络中的节点发送查询消息3,包括:对等节点2通过网络通道1向对等节点1发送查询消息3、通过网络通道2向对等节点3发送查询消息3、以及通过网络通道4向控制节点发送查询消息3。
S915,对等节点3向P2P网络中的节点发送查询消息4,查询镜像分片1。相应的,P2P网络中的节点接收到查询消息4。
其中,对等节点4向P2P网络中的节点发送查询消息4,包括:对等节点4通过网络通道3向对等节点1发送查询消息4、通过网络通道2向对等节点2发送查询消息4、以及通过网络通道6向控制节点发送查询消息4。
S916,对等节点3根据查询消息3确定本地存储有镜像分片2,且满足条件2。
满足条件2包括:满足对等节点本地未存储镜像文件1包括的所有镜像分片,且对等节点上传镜像分片的数目不超过预设上传数量。也就是说,满足条件2的对等节点不是拥有完整镜像文件1的对等节点,且该对等节点上传的镜像分片的数目不超过预设上传数量。
对预设上传数量不作具体限定,可以根据一个对等节点的网络状态或用户需求进行设置。P2P网络中每个对等节点对应的预设上传数量可以相同或不同。
其中,对等节点3根据查询消息3确定本地存储有镜像分片2,包括:对等节点3根据查询消息3携带的镜像分片2的标识对本地存储的数据进行查询,确定本地存储有镜像分片2的标识对应的镜像分片2。
S917,对等节点2根据查询消息4确定本地存储有镜像分片1,且满足条件2。
上述S917中所描述的满足条件2,与上述S916中所描述的满足条件2相同,此处未详细赘述的内容可以参见上述S916中的相关描述。
其中,对等节点2根据查询消息4确定本地存储有镜像分片1,包括:对等节点2根据查询消息4携带的镜像分片1的标识对本地存储的数据进行查询,确定本地存储有镜像分片1的标识对应的镜像分片1。
S918,对等节点1根据查询消息3确定本地存储有镜像分片2,以及根据查询消息4确定本地存储有镜像分片1,且满足条件3。
满足条件3包括:对等节点本地存储镜像文件1包括的所有镜像分片,且对等节点上传镜像分片的数目超过预设上传数量。可以理解的是,在对等节点1满足条件3的情况下,即使对等节点1本地存储有查询消息3对应的镜像分片2,以及查询消息4对应的镜像分片1,对等节点1也不会向对等节点2发送镜像分片2,也不会向对等节点3发送镜像分片1。
S919,响应于满足条件2,对等节点3通过网络通道2向对等节点2发送镜像分片2和哈希值2。
S920,响应于满足条件2,对等节点2通过网络通道2向对等节点3发送镜像分片1和哈希值1。
可以理解的是,上述S919和S920可以是同时执行的,此时,拥有镜像文件1的部分镜像分片(即,镜像分片1)的对等节点2不仅从对等节点3处下载对等节点3拥有的镜像文件1的部分镜像分片(即,镜像分片2),同时对等节点2也作为资源的提供者,将本地存储的镜像分片1上传给对等节点3,这种方式,可以提高镜像分片的传输效率。
S921,对等节点2根据镜像分片2和哈希值2对镜像分片2进行完整性校验,确定接收到的镜像分片2是完整的。
上述S921中对等节点2进行完整性校验的原理,与上述S910中对等节点2进行完整性校验的原理类似,此处未详细赘述的内容可以参见上述S910中的相关描述。
S922,对等节点3根据镜像分片1和哈希值1对镜像分片1进行完整性校验,确定接收到的镜像分片1是完整的。
上述S922中对等节点3进行完整性校验的原理,与上述S910中对等节点2进行完整性校验的原理类似,此处未详细赘述的内容可以参见上述S910中的相关描述。
需说明的是,当上述S919中对等节点3不满足条件2,上述S917中对等节点2不满足条件2时,在执行上述S917之后,还可以由对等节点1向对等节点2发送镜像分片2和哈希值2,向对等节点3发送镜像分片1和哈希值1。
可以理解的是,执行完上述S912至S922之后,即执行完成第二轮分发过程。在第二轮分发过程中,未存储完整镜像文件1的对等节点2和对等节点3交换彼此拥有的镜像分片,可以减轻拥有完整镜像文件1的对等节点1的传输负担,提高了节点下载的速度与效率。具体的,拥有镜像文件1的部分镜像分片的对等节点(例如,对等节点2或对等节点3)在下载镜像分片的同时也在向其他对等节点上传镜像分片,可以提高镜像分片的传输效率。
在执行上述S922之后,还可以根据对等节点2和/或对等节点3接收到的镜像分片,确定对等节点2和/或对等节点3是否成功接收到了完整的镜像文件1。
在一个示例中,对等节点2或对等节点3可以对接收到的多个镜像分片进行哈希计算,获取哈希值A;对等节点2或对等节点3还可以从对等节点1处获取镜像文件1对应的哈希值B;对等节点2或对等节点3通过比较哈希值A与哈希值B相同,可以确定对等节点2或对等节点3已成功接收到完整的镜像文件1。
在另一个示例中,对等节点2或对等节点3可以对接收到的多个镜像分片进行哈希计算,获取哈希值A,并向控制节点发送消息1,消息1用于指示对等节点2或对等节点3接收到的多个镜像分片的哈希值为哈希值A;控制节点还可以从对等节点1处获取镜像文件1对应的哈希值B;控制节点通过比较哈希值A与哈希值B相同,可以确定对等节点2或对等节点3已成功接收到完整的镜像文件1;控制节点向对等节点2或对等节点3发送消息2,消息2用于指示对等节点2或对等节点3已经成功接收到完整的镜像文件1。
执行上述第一轮分发和第二轮分发过程,以及镜像文件完整性校验后,P2P网络中原来未拥有镜像文件1的对等节点2和对等节点3已经拥有了完整的镜像文件1,至此结束整个镜像分发过程。
应理解的是,上述图9A和上述图9B示出的方法仅为示意,并不对本申请实施例提供的镜像分发方法构成任何限定。例如,上述图9A和上述图9B示出的步骤的执行顺序仅为示意并非限定。例如,在另一些可能的实现方式中,上述镜像文件1还可以包括更多数目的镜像分片,如镜像文件1包括镜像分片1、镜像分片2和镜像分片3。这种实现方式中,第一下载顺序与第二下载顺序不同,第一下载顺序可以是:镜像分片1、镜像分片3和镜像分片2,第二下载顺序可以是镜像分片3、镜像分片1和镜像分片2。例如,当对等节点2执行上述S921确定接收到的镜像分片2是不完整时,对等节点2还可以请求对等节点3重传镜像分片2。
本申请实施例中,P2P网络中所有未存储镜像文件1的多个对等节点(即,对等节点2和对等节点3)根据控制节点发送的下载指令,先从存储完整镜像文件1的对等节点1处获取镜像文件1包括的一个镜像分片,且所述多个对等节点通过多个不同的网络通道(即,网络通道1和网络通道3)获取多个不同的镜像分片(即,镜像分片1和镜像分片2)。后续镜像分片分发过程中,P2P网络中获取到镜像文件1包括的部分镜像分片的对等节点(即,对等节点2和对等节点3)之间可以彼此共享对方拥有的镜像分片,可以减轻拥有完整镜像文件1的对等节点1的传输负担,提高了节点下载的速度与效率。另外,对等节点2和对等节点3之间彼此共享对方拥有的镜像分片时,拥有镜像文件1的部分镜像分片的对等节点(例如,对等节点2或对等节点3)在下载镜像分片的同时也在向其他对等节点上传镜像分片,可以提高镜像分片的传输效率。上述镜像分发过程中,通过对对等节点接收到的与镜像文件1关联的镜像分片进行完整性校验,以确定P2P网络中未存储镜像文件1的对等节点是否成功接收到镜像文件1。在P2P网络中实现镜像文件1的分发时,是以镜像分片为最小传输粒度的,可以提高镜像分发的灵活度。在镜像分发的同时实现了对镜像分片的完整性校验。由于镜像分发和镜像分片的完整性校验时同时进行的,并不会影响分发每个镜像分片的效率。
上述图9A和图9B示出了本申请实施例提供的镜像分发的一种镜像分发方法。可选的,在上述示出的镜像分发方法所描述的过程中,P2P网络中的对等节点还可以与其他对等节点通信,以获取该其他对等节点当前的网络状态。一个对等节点的网络状态可以包括该一个对等节点向其他对等节点上传数据的速度,以及该一个对等节点从其他对等节点下载数据的速度。在P2P网络中,若任意一个对等节点发现该任意一个对等节点向其他对等节点上传数据的速度不满足预设上传速度,或该任意一个对等节点从其他对等节点下载数据的速度不满足预设下载速度,则该任意一个对等节点还可以将获取的网络状态信息发送给控制节点,以使控制节点根据该网络状态信息重新分配P2P网络中的对等节点的网络带宽,从而解决该任意一个对等节点存在的上传速度或下载速度不满足预设速度的问题。下面,将结合图10介绍本申请实施例提供的一种多通道带宽调整方法的示意图。
图10是本申请实施例提供的一种网络带宽调整方法的示意图。应理解,图10的例子仅仅是为了帮助本领域技术人员理解本申请实施例,而非要将申请实施例限制于所示例的具体数值或具体场景。本领域技术人员根据下面所给出的图10的例子,显然可以进行各种等价的修改或变化,这样的修改和变化也落入本申请实施例的范围内。如图10所示,该方法包括S1001至S1004。下面,详细介绍S1001至S1004。
本申请实施例中,以图3A示出的网络架构包括的对等节点为以下状态为例进行描述:具体的,图3A示出的对等节点1向对等节点3上传数据的速度满足预设上传速度(即,对等节点3从对等节点1处下载数据的速度满足预设下载速度),对等节点3向对等节点1上传速度的速度满足预设上传速度(即,对等节点1从对等节点3处下载数据的速度满足预设下载速度),对等节点2向对等节点3上传数据的速度小于预设上传速度(即,对等节点3从对等节点2处下载数据的速度小于预设下载速度)。也就是说。网络通道3的传输质量高于网络通道2的传输质量。
S1001,在预设周期内,对等节点3分别对等节点1和对等节点2进行探测,以获取网络状态信息1。
对预设周期的大小不作具体限定,可以根据实际需求进行设置。例如,预设周期可以是1秒、5秒或20秒等。
网络状态信息1包括网络带宽1和网络带宽2,且网络带宽1满足预设带宽要求,网络带宽2不满足预设带宽要求。其中,网络带宽1表示对等节点1向对等节点3上传数据的速度。网络带宽1满足预设带宽要求,即对等节点1向对等节点3上传数据的速度满足预设上传速度。网络带宽2表示对等节点2向对等节点3上传数据的速度。网络带宽2不满足预设带宽要求,即对等节点2向对等节点3上传数据的速度小于预设上传速度。
执行上述S1001,包括:在预设周期内,对等节点3对对等节点1进行探测,获取网络带宽1;以及对等节点3对对等节点2进行探测,获取网络带宽2。例如,对等节点3可以利用raw-socket技术对对等节点1进行节点间测速以获得网络带宽1。
S1002,对等节点3向控制节点发送网络状态信息1。相应的,控制节点接收到对等节点3发送的网络状态信息1。
对对等节点3向控制节点发送网络状态信息1的触发条件不作具体限定。例如,可以是对等节点3在确定对等节点2向对等节点3上传数据的速度小于预设上传速度的情况下,对等节点3向控制节点发送消息1。又如,可以是对等节点3在确定对等节点2向对等节点3上传数据的速度小于预设上传速度,且等待一小段预设时间(例如,100毫秒)后,仍然发现对等节点2向对等节点3上传数据的速度小于预设上传速度的情况下,对等节点3向控制节点发送网络状态信息1。
S1003,控制节点根据预设网络带宽要求和网络状态信息1,确定需要增大网络带宽3,以获得网络带宽#3。
网络带宽3表示对等节点3向对等节点1上传数据的速度。预设带宽要求表示一个对等节点向另一个对等节点上传数据的预设上传速度。
其中,控制节点根据预设带宽要求和网络状态信息1,确定需要增大网络带宽3,包括:控制节点根据网络带宽2和预设带宽要求,确定预设上传速度减去对等节点2向对等节点3上传数据的上传速度等于第一值;控制节点确定需要将对网络带宽3增大第一值,以获得网络带宽#3。其中,网络带宽#3满足预设带宽要求。也就是说,网络带宽#3所指示的对等节点3向对等节点1上传数据的速度,大于网络带宽3所指示的对等节点3向对等节点1上传数据的速度。同时,网络带宽#3所指示的对等节点3向对等节点1上传数据的速度满足预设上传速度的要求。
上述实现方式中,对等节点2向对等节点3上传数据的速度小于预设上传速度,即网络通道2的网络质量不太好。在对等节点3向对等节点1上传数据的速度满足预设上传速度的情况下(即,网络通道2的网络质量较好),可以通过增大对等节点3向对等节点1上传数据的速度,以应对网络波动的情况。
S1004,控制节点根据带宽更新消息,将对等节点3的网络带宽3更新为网络带宽#3。
可选的,为了保证P2P网络处于正常状态,在执行上述S1001至S1004之后,若对等节点2向对等节点3上传速度的速度满足预设上传速度的情况下,控制节点还可以将对等节点3向对等节点1上传数据的速度重新更新为网络带宽3所指示的上传速度。
需说明的是,上述图10所示的方法可以与上述图9A和图9B所示的方法结合使用。当上述图10所示的方法与上述图9A和图9B所示的方法结合使用时,不限制上述图10所示的方法在述图9A和图9B所示的方法中的执行位置。
应理解的是,上述图10所示的网络带宽调整方法仅为示意,并不对本申请提供的多通道带宽调整方法构成任何限定。
在本申请实施例中,通过增大非故障节点的负载,来达到均衡的效果,实现将网络带宽资源优先分配给网络质量好的网络通道,以应对网络波动的情况,该方法可以有效解决网络异常波动问题。
上文,结合图1至图10详细介绍了本申请提供的镜像分发方法适用的应用场景、网络架构、镜像分发方法、以及网络带宽调整方法。下面,结合图11至图13介绍本申请提供的镜像分发装置、镜像分发系统和镜像分发设备。应理解,上文中镜像分发方法与下文中的镜像分发装置、镜像分发系统和设备相对应。下文中未详细描述的内容可以参见上述方法实施例中的相关描述。
图11是本申请实施例提供的一种镜像分发装置的结构示意图。如图11所示,镜像分发装置包括收发单元1101和处理单元1102。
在一些实现方式中,所示镜像分发装置用于实现上述图6示出的镜像分发方法中的第一对等节点所执行的各个步骤。当上述图6示出的镜像分发方法中的第一对等节点的结构为上述图5示出的对等节点200的结构时,所述图11示出的收发单元1101的功能与上述图5示出的镜像分片传输器210的功能相同;所述图11示出的处理单元1101的功能与上述图5示出的网络分析模块220、动态调控客户端230和文件存储服务240的功能相同。
在另一些实现方式中,所示镜像分发装置用于实现上述图6示出的镜像分发方法中的第i个第二对等节点所执行的各个步骤。当上述图6示出的镜像分发方法中的第i个第二对等节点的结构为上述图5示出的对等节点200的结构时,所述图11示出的收发单元1101的功能与上述图5示出的镜像分片传输器210的功能相同;所述图11示出的处理单元1101的功能与上述图5示出的网络分析模块220、动态调控客户端230和文件存储服务240的功能相同。
在又一些实现方式中,所示镜像分发装置用于实现上述图6示出的镜像分发方法中的控制节点所执行的各个步骤。当上述图6示出的镜像分发方法中的控制节点的结构为上述图4示出的控制节点100的结构时,所述图11示出的处理单元1101的功能与上述图5示出的服务注册与发现110、网络拓扑中心120、网络服务器130、动态调控中心140的功能相同。
图12是本申请实施例提供的一种镜像分发系统的结构示意图。如图12所示,该系统包括控制节点1201、第一对等节点1202、N个第二对等节点1203,N为大于等于2的正整数。
其中,控制节点1201用于执行上文所述的镜像分发方法中的控制节点执行的各个步骤,第一对等节点1202用于执行上文所述的镜像分发方法中的第一对等节点执行的各个步骤,N个第二对等节点1203用于执行上文所述的镜像分发方法中的N个第二对等节点执行的各个步骤,此处未详细赘述的内容可以参见上文中的相关描述。
图13是本申请实施例提供的一种镜像分发设备的结构示意图。如图13所示,包括存储器1301、处理器1302、通信接口1303以及通信总线1304。其中,存储器1301、处理器1302、通信接口1303通过通信总线1304实现彼此之间的通信连接。
存储器1301可以是只读存储器(read only memory,ROM),静态存储设备,动态存储设备或者随机存取存储器(random access memory,RAM)。存储器1301可以存储程序,当存储器1301中存储的程序被处理器1302执行时,处理器1302和通信接口1303用于执行本申请实施例的分组密码算法实现的方法的各个步骤。
处理器1302可以采用通用的中央处理器(central processing unit,CPU),微处理器,应用专用集成电路(application specific integrated circuit,ASIC),图形处理器(graphics processing unit,GPU)或者一个或多个集成电路,用于执行相关程序,以实现本申请实施例的分组密码算法实现的装置中的单元所需执行的功能,或者执行本申请实施例的分组密码算法实现的方法的各个步骤。
处理器1302还可以是一种集成电路芯片,具有信号的处理能力。在实现过程中,本申请提供的分组密码算法实现的方法的各个步骤可以通过处理器1302中的硬件的集成逻辑电路或者软件形式的指令完成。上述的处理器1302还可以是通用处理器、数字信号处理器(digital signal processing,DSP)、专用集成电路(ASIC)、现成可编程门阵列(fieldprogrammable gate array,FPGA)或者其他可编程逻辑器件、分立门或者晶体管逻辑器件、分立硬件组件。可以实现或者执行本申请实施例中的公开的各方法、步骤及逻辑框图。通用处理器可以是微处理器或者该处理器也可以是任何常规的处理器等。结合本申请实施例所公开的方法的步骤可以直接体现为硬件译码处理器执行完成,或者用译码处理器中的硬件及软件模块组合执行完成。软件模块可以位于随机存储器,闪存、只读存储器,可编程只读存储器或者电可擦写可编程存储器、寄存器等本领域成熟的存储介质中。该存储介质位于存储器1301,处理器1302读取存储器1301中的信息,结合其硬件完成本申请实施例的分组密码算法实现的装置中包括的单元所需执行的功能,或者执行本申请方法实施例的分组密码算法实现的方法。
通信接口1303使用例如但不限于收发器一类的收发装置,来实现图13所示的设备与其他设备或通信网络之间的通信。例如,可以通过通信接口1303输出密文数据等。
通信总线1304可包括在图13所示的设备各个部件(例如,存储器1301、处理器1302、通信接口1303)之间传送信息的通路。
本申请实施例提供了一种计算机可读存储介质,计算机可读存储介质包括计算机指令,计算机指令在被处理器执行时用于实现本申请实施例中任意一种镜像分发方法的技术方案。
通过以上的实施方式的描述,本领域的技术人员易于理解,这里描述的示例实施方式可以通过软件实现,也可以通过软件结合必要的硬件的方式来实现。因此,根据本公开实施方式的技术方案可以以软件产品的形式体现出来,该软件产品可以存储在一个计算机可读介质上,包括若干指令以使得一台计算设备(可以是个人计算机、服务器、终端装置、或者网络设备等)执行根据本申请公开实施方式的方法。
在一个典型的配置中,计算设备包括一个或多个处理器(CPU)、输入/输出接口、网络接口和内存。
内存可能包括计算机可读介质中的非永久性存储器,随机存取存储器(RAM)和/或非易失性内存等形式,如只读存储器(ROM)或闪存(flash RAM)。内存是计算机可读介质的示例。
1、计算机可读介质包括永久性和非永久性、可移动和非可移动媒体可以由任何方法或技术来实现信息存储。信息可以是计算机可读指令、数据结构、程序的模块或其他数据。计算机的存储介质的例子包括,但不限于相变内存(PRAM)、静态随机存取存储器(SRAM)、动态随机存取存储器(DRAM)、其他类型的随机存取存储器(RAM)、只读存储器(ROM)、电可擦除可编程只读存储器(EEPROM)、快闪记忆体或其他内存技术、只读光盘只读存储器(CD-ROM)、数字多功能光盘(DVD)或其他光学存储、磁盒式磁带,磁带磁磁盘存储或其他磁性存储介质或任何其他非传输介质,可用于存储可以被计算设备访问的信息。按照本文中的界定,计算机可读介质不包括非暂存电脑可读媒体(transitory media),如调制的数据信号和载波。
2、本领域技术人员应明白,本申请的实施例可提供为方法、系统或计算机程序产品。因此,本申请可采用完全硬件实施例、完全软件实施例或结合软件和硬件方面的实施例的形式。而且,本申请可采用在一个或多个其中包含有计算机可用程序代码的计算机可用存储介质(包括但不限于磁盘存储器、CD-ROM、光学存储器等)上实施的计算机程序产品的形式。
本申请虽然以较佳实施例公开如上,但其并不是用来限定本申请,任何本领域技术人员在不脱离本申请的精神和范围内,都可以做出可能的变动和修改,因此本申请的保护范围应当以本申请权利要求所界定的范围为准。
Claims (17)
1.一种镜像分发方法,其特征在于,应用于包括第一对等节点和N个第二对等节点的对等网络,其中,所述第一对等节点存储与应用程序关联的镜像文件,N为大于等于2的正整数,包括:
所述第一对等节点接收所述N个第二对等节点发送的N个第一查询消息,所述N个第一查询消息与所述N个第二对等节点一一对应;
所述第一对等节点根据所述N个第一查询消息,确定向所述N个第二对等节点发送所述N个第一查询消息所查询的所述镜像文件包括的N个不同的镜像分片;
所述第一对等节点通过N个网络通道向所述N个第二对等节点发送所述N个镜像分片和所述N个镜像分片对应的N个不同的哈希值,以使第i个第二对等节点与其他第二对等节点进行交互获得所述镜像文件,其中,第i个网络通道为所述第一对等节点与所述第i个第二对等节点传输所述第i个镜像分片和所述第i个镜像分片对应的哈希值的网络通道,i=1,2,…,N。
2.如权利要求1所述的镜像分发方法,其特征在于,所述方法还包括:
所述第一对等节点接收所述第i个第二对等节点发送的第一重传消息;
所述第一对等节点根据所述第一重传消息,确定向所述第i个第二对等节点发送所述第i个镜像分片;
所述第一对等节点通过所述第i个网络通道向所述第i个第二对等节点发送所述第i个镜像分片和所述第i个镜像分片对应的哈希值。
3.如权利要求1或2所述的镜像分发方法,其特征在于,所述应用程序为云游戏应用程序,所述与应用程序关联的镜像文件是所述云游戏应用程序生成的更新镜像文件。
4.如权利要求1至3任一项所述的镜像分发方法,其特征在于,所述控制节点为以下对等节点中的任意一个节点:
所述第一对等节点、或所述N个第二对等节点。
5.一种镜像分发方法,其特征在于,应用于包括控制节点和所述控制节点管理的第一对等节点和N个第二对等节点的对等网络,其中,所述第一对等节点存储与应用程序关联的镜像文件,N为大于等于2的正整数,包括:
第i个第二对等节点根据接收到的所述控制节点发送的下载指令,确定下载所述镜像文件包括的N个镜像分片的下载顺序,所述下载指令用于指示开始下载所述镜像文件,所述N个第二对等节点均接收到所述下载指令,所述N个第二对等节点与N个下载顺序一一对应,且所述N个下载顺序不同,i=1,2,…,N;
所述第i个第二对等节点根据所述第i个第二对等节点对应的第i个下载顺序,确定向所述第一对等节点发送第一查询消息,以及向其他第二对等节点发送第二查询消息;所述第一查询消息用于查询所述镜像文件包括的第i个镜像分片,且所述第i个镜像分片为所述第i个下载顺序所指示下载的第一个镜像分片;所述第二查询消息用于查询所述镜像文件包括的除所述第i个镜像分片以外的一个镜像分片,且所述第二查询消息所查询的镜像分片为所述第i个下载顺序所指示下载的第j个镜像分片,j=2,3,…,N;
所述第i个第二对等节点向所述第一对等节点发送所述第一查询消息,以及向其他第二对等节点发送所述第二查询消息,以获得所述镜像文件。
6.如权利要求5所述的镜像分发方法,其特征在于,所述第i个第二对等节点向所述第一对等节点发送所述第一查询消息,以及向其他第二对等节点发送所述第二查询消息,以获得所述镜像文件,包括:
所述第i个第二对等节点向所述第一对等节点发送所述第一查询消息;
所述第i个第二对等节点接收所述第一对等节点发送的所述第i个镜像分片和所述第i个镜像分片对应的哈希值,且每个镜像分片对应的哈希值不同;
在确定收到的第i个镜像分片通过完整性校验的情况下,所述第i个第二对等节点保存所述第i个镜像分片,并向其他第二对等节点发送所述第二查询消息;
所述第i个第二对等节点接收到所述其他第二对等节点发送的所述第二查询消息所查询的镜像分片和所述所查询的镜像分片对应的哈希值,所述其他第二对等节点发送的镜像分片的数目不超过预设阈值;
在确定收到的所述第二查询消息所查询的镜像分片通过完整性校验的情况下,所述第i个第二对等节点保存所述第二查询消息所查询的镜像分片。
7.如权利要求6所述的镜像分发方法,其特征在于,所述方法还包括:
所述第i个第二对等节点对接收到的镜像分片进行完整性校验,所述第i个第二对等节点接收到的镜像分片包括所述第i个镜像分片和所述第二查询消息所查询的镜像分片;
若确定接收到的所述第i个镜像分片未通过所述完整性校验,所述第i个第二对等节点向所述第一对等节点发送第一重传消息,所述第一重传消息用于指示所述第一对等节点发送所述第i个镜像分片;
若确定接收到的所述第二查询消息所查询的镜像分片未通过所述完整性校验,所述第i个第二对等节点向所述其他第二对等节点发送第二重传消息,所述第二重传消息用于指示所述其他第二对等节点发送所述第二查询消息所查询的镜像分片。
8.如权利要求6或7所述的镜像分发方法,其特征在于,所述方法还包括:
若所述第i个第二对等节点未接收到所述其他第二对等节点发送的所述第二查询消息所查询的镜像分片和所述所查询的镜像分片对应的哈希值,所述第i个第二对等节点向所述第一对等节点发送所述第二查询消息;
所述第i个第二对等节点接收所述第一对等节点发送的所述第二查询消息所查询的镜像分片和所述所查询的镜像分片对应的哈希值。
9.如权利要求5至8任一项所述的镜像分发方法,其特征在于,所述方法还包括:
所述第i个第二对等节点向所述第一对等节点和所述其他第二对等节点发送N个探测消息,以获取所述N个网络通道对应的网络质量,所述N个第二对等节点与所述N个探测消息一一对应,所述第i个网络通道对应的网络质量不满足预设要求,所述第i个网络通道为所述第i个第二对等节点与所述第一对等节点进行数据传输的网络通道,或为所述第i个第二对等节点与所述其他第二对等节点中的一个第二对等节点进行数据传输的网络通道;
所述第i个第二对等节点向所述控制节点发送所述N个网络通道对应的网络质量,以使所述控制节点根据所述N个网络通道对应的网络质量对所述N个网络通道中除所述第i个网络通道以外的网络通道对应的带宽值进行调整。
10.如权利要求5至9任一项所述的镜像分发方法,其特征在于,所述应用程序为云游戏应用程序,所述与应用程序关联的镜像文件是所述云游戏应用程序生成的更新镜像文件。
11.如权利要求5至10任一项所述的镜像分发方法,其特征在于,所述控制节点为以下对等节点中的任意一个节点:
所述第一对等节点、或所述N个第二对等节点。
12.一种镜像分发装置,其特征在于,应用于包括第一对等节点和N个第二对等节点的对等网络,其中,所述第一对等节点存储与应用程序关联的镜像文件,N为大于等于2的正整数,包括:
收发单元,用于接收所述N个第二对等节点发送的N个第一查询消息,所述N个第一查询消息与所述N个第二对等节点一一对应;
处理单元,用于根据所述N个第一查询消息,确定向所述N个第二对等节点发送所述N个第一查询消息所查询的所述镜像文件包括的N个不同的镜像分片;
所述收发单元,还用于通过N个网络通道向所述N个第二对等节点发送所述N个镜像分片和所述N个镜像分片对应的N个不同的哈希值,以使得第i个第二对等节点与其他第二对等节点进行交互获得所述镜像文件,其中,第i个网络通道为所述第一对等节点与所述第i个第二对等节点传输所述第i个镜像分片和所述第i个镜像分片对应的哈希值的网络通道,i=1,2,…,N。
13.一种镜像分发装置,其特征在于,应用于包括控制节点和所述控制节点管理的第一对等节点和N个第二对等节点的对等网络,其中,所述第一对等节点存储与应用程序关联的镜像文件,N为大于等于2的正整数,包括:
处理单元,用于根据接收到的所述控制节点发送的下载指令,确定下载所述镜像文件包括的N个镜像分片的下载顺序,所述下载指令用于指示开始下载所述镜像文件,所述N个第二对等节点均接收到所述下载指令,所述N个第二对等节点与N个下载顺序一一对应,且所述N个下载顺序不同,i=1,2,…,N;
所述处理单元,还用于根据所述第i个第二对等节点对应的第i个下载顺序,确定向所述第一对等节点发送第一查询消息,以及向其他第二对等节点发送第二查询消息;所述第一查询消息用于查询所述镜像文件包括的第i个镜像分片,且所述第i个镜像分片为所述第i个下载顺序所指示下载的第一个镜像分片;所述第二查询消息用于查询所述镜像文件包括的除所述第i个镜像分片以外的一个镜像分片,且所述第二查询消息所查询的镜像分片为所述第i个下载顺序所指示下载的第j个镜像分片,j=2,3,…,N;
收发单元,用于向所述第一对等节点发送所述第一查询消息,以及向其他第二对等节点发送所述第二查询消息,以获得所述镜像文件。
14.一种镜像分发设备,其特征在于,包括:存储器和处理器、所述存储器和所述处理器耦合;
所述存储器用于存储一条或多条计算机指令;
所述处理器用于执行所述一条或多条计算机指令,以实现如权利要求1至6任意一项所述的方法。
15.一种镜像分发设备,其特征在于,包括:存储器和处理器、所述存储器和所述处理器耦合;
所述存储器用于存储一条或多条计算机指令;
所述处理器用于执行所述一条或多条计算机指令,以实现如权利要求7至11任意一项所述的方法。
16.一种镜像分发系统,其特征在于,所述系统包括控制节点,所述控制节点管理的第一对等节点和N个第二对等节点的对等网络,其中,所述第一对等节点存储与应用程序关联的镜像文件,N为大于等于2的正整数,包括:
所述控制节点向所述N个第二对等节点发送下载指令,所述下载指令用于指示开始下载所述镜像文件;
其中,所述第一对等节点用于执行如权利要求1至4中任意一项所述的方法,所述N个第二对等节点中的第i个第二对等节点用于执行如权利要求5至11中任意一项所述的方法,i=1,2,…,N。
17.一种计算机可读存储介质,其上存储有一条或多条计算机指令,其特征在于,该指令被处理器执行以实现如权利要求1至11任意一项所述的方法。
Priority Applications (2)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202210994948.8A CN115567547A (zh) | 2022-08-18 | 2022-08-18 | 一种镜像分发方法、系统和设备 |
PCT/CN2023/074444 WO2024036889A1 (zh) | 2022-08-18 | 2023-02-03 | 一种镜像分发方法、系统和设备 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202210994948.8A CN115567547A (zh) | 2022-08-18 | 2022-08-18 | 一种镜像分发方法、系统和设备 |
Publications (1)
Publication Number | Publication Date |
---|---|
CN115567547A true CN115567547A (zh) | 2023-01-03 |
Family
ID=84738608
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202210994948.8A Pending CN115567547A (zh) | 2022-08-18 | 2022-08-18 | 一种镜像分发方法、系统和设备 |
Country Status (2)
Country | Link |
---|---|
CN (1) | CN115567547A (zh) |
WO (1) | WO2024036889A1 (zh) |
Cited By (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
WO2024036889A1 (zh) * | 2022-08-18 | 2024-02-22 | 网易(杭州)网络有限公司 | 一种镜像分发方法、系统和设备 |
Citations (9)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US20030050966A1 (en) * | 2001-09-13 | 2003-03-13 | International Business Machines Corporation | Method and system for redirecting data requests in peer-to-peer data networks |
CN101471919A (zh) * | 2007-12-29 | 2009-07-01 | 突触计算机系统(上海)有限公司 | 基于点对点传输协议的设备中用于下载分片的方法及装置 |
CN109491758A (zh) * | 2018-10-11 | 2019-03-19 | 深圳市网心科技有限公司 | docker镜像分发方法、系统、数据网关及计算机可读存储介质 |
CN110912955A (zh) * | 2018-09-17 | 2020-03-24 | 阿里巴巴集团控股有限公司 | 容器镜像下载、上传方法及装置 |
WO2020125389A1 (zh) * | 2018-12-17 | 2020-06-25 | 深圳壹账通智能科技有限公司 | 镜像文件的获取方法、装置、计算机设备和存储介质 |
CN112883006A (zh) * | 2021-03-12 | 2021-06-01 | 云知声智能科技股份有限公司 | 一种企业级容器镜像加速方法、装置、电子设备和存储介质 |
CN113064696A (zh) * | 2021-03-25 | 2021-07-02 | 网易(杭州)网络有限公司 | 集群的系统扩容方法、设备及介质 |
US20210247905A1 (en) * | 2020-02-12 | 2021-08-12 | Red Hat, Inc. | Scalable storage cluster mirroring |
CN114003556A (zh) * | 2021-10-29 | 2022-02-01 | 北京航空航天大学 | 一种基于延迟加载和p2p分发的容器部署加速方法 |
Family Cites Families (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN100527672C (zh) * | 2005-09-02 | 2009-08-12 | 腾讯科技(深圳)有限公司 | 实现文件下载的网络通信系统及方法 |
US10387072B2 (en) * | 2016-12-29 | 2019-08-20 | Intel Corporation | Systems and method for dynamic address based mirroring |
CN108958742A (zh) * | 2017-05-26 | 2018-12-07 | 华为技术有限公司 | 一种批量安装操作系统的方法、相关设备及系统 |
CN111064785B (zh) * | 2019-12-16 | 2021-12-14 | 腾讯科技(深圳)有限公司 | 资源包下载方法、装置和系统 |
CN115567547A (zh) * | 2022-08-18 | 2023-01-03 | 网易(杭州)网络有限公司 | 一种镜像分发方法、系统和设备 |
-
2022
- 2022-08-18 CN CN202210994948.8A patent/CN115567547A/zh active Pending
-
2023
- 2023-02-03 WO PCT/CN2023/074444 patent/WO2024036889A1/zh unknown
Patent Citations (9)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US20030050966A1 (en) * | 2001-09-13 | 2003-03-13 | International Business Machines Corporation | Method and system for redirecting data requests in peer-to-peer data networks |
CN101471919A (zh) * | 2007-12-29 | 2009-07-01 | 突触计算机系统(上海)有限公司 | 基于点对点传输协议的设备中用于下载分片的方法及装置 |
CN110912955A (zh) * | 2018-09-17 | 2020-03-24 | 阿里巴巴集团控股有限公司 | 容器镜像下载、上传方法及装置 |
CN109491758A (zh) * | 2018-10-11 | 2019-03-19 | 深圳市网心科技有限公司 | docker镜像分发方法、系统、数据网关及计算机可读存储介质 |
WO2020125389A1 (zh) * | 2018-12-17 | 2020-06-25 | 深圳壹账通智能科技有限公司 | 镜像文件的获取方法、装置、计算机设备和存储介质 |
US20210247905A1 (en) * | 2020-02-12 | 2021-08-12 | Red Hat, Inc. | Scalable storage cluster mirroring |
CN112883006A (zh) * | 2021-03-12 | 2021-06-01 | 云知声智能科技股份有限公司 | 一种企业级容器镜像加速方法、装置、电子设备和存储介质 |
CN113064696A (zh) * | 2021-03-25 | 2021-07-02 | 网易(杭州)网络有限公司 | 集群的系统扩容方法、设备及介质 |
CN114003556A (zh) * | 2021-10-29 | 2022-02-01 | 北京航空航天大学 | 一种基于延迟加载和p2p分发的容器部署加速方法 |
Cited By (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
WO2024036889A1 (zh) * | 2022-08-18 | 2024-02-22 | 网易(杭州)网络有限公司 | 一种镜像分发方法、系统和设备 |
Also Published As
Publication number | Publication date |
---|---|
WO2024036889A1 (zh) | 2024-02-22 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
US20200304508A1 (en) | Method and device for providing authentication in network-based media processing (nbmp) system | |
CN108683747B (zh) | 资源获取、分发、下载方法、装置、设备及存储介质 | |
US10491523B2 (en) | Load distribution in data networks | |
WO2021228102A1 (zh) | 一种方法、设备及存储介质 | |
KR102046287B1 (ko) | 사물 인터넷 적응화 서비스들 | |
US20190332522A1 (en) | Microservice platform with messaging system | |
JP2016006671A (ja) | データ送受信システム及びデータ送受信方法 | |
CN115604199B (zh) | 一种云原生平台微服务网关的服务路由方法和系统 | |
US20160381127A1 (en) | Systems and methods for dynamic networked peer-to-peer content distribution | |
US20230137879A1 (en) | In-flight incremental processing | |
WO2024036889A1 (zh) | 一种镜像分发方法、系统和设备 | |
CN116633934A (zh) | 负载均衡方法、装置、节点及存储介质 | |
CN110719526B (zh) | 视频播放方法及装置 | |
CA2952785A1 (en) | Method of reducing bandwidth required for sharing of files on a server | |
US11422864B2 (en) | Advanced resource link binding management | |
US10225339B2 (en) | Peer-to-peer (P2P) network management system and method of operating the P2P network management system | |
CN118283059A (zh) | 镜像数据处理方法、dpu和系统 | |
WO2016180284A1 (zh) | 服务节点分配方法、装置、cdn管理服务器及系统 | |
CN103685497A (zh) | 一种在线存储共享方法和系统 | |
KR101436406B1 (ko) | P2p기반 업데이트 클라이언트, 서버 장치, 시스템 및 방법 | |
CN115242646B (zh) | 一种基于区块链的网络切片应用方法以及相关装置 | |
US12113666B1 (en) | Method and apparatus to coordinate multiple controller devices to serve client requests | |
US20230336360A1 (en) | Server to synchronize a digital avatar with a device based on items of information wrapped together | |
Liu et al. | Cooper: Expedite Batch Data Dissemination in Computer Clusters with Coded Gossips | |
CN112788341B (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 |