A secondary content distribution network (CDN), a data providing method, and a storage medium

By introducing secondary CDN nodes into the CDN to form a direct connection or mesh structure, the problem of excessive load on CDN edge nodes is solved, achieving load sharing, storage expansion and traffic reduction, and improving network response speed and coverage.

CN114297288BActive Publication Date: 2026-02-06HUAWEI CLOUD COMPUTING TECHNOLOGIES CO LTD
View PDF 1 Cites 0 Cited by

Patent Information

Application Number
CN202011004851.5
Authority / Receiving Office
CN · China
Patent Type
Patents(China)
Current Assignee / Owner
Filing Date
2020-09-22
Publication Date
2026-02-06
Estimated Expiration
2040-09-22

AI Technical Summary

Technical Problem

Existing CDN edge nodes are overloaded when faced with a large number of terminal requests, causing some terminals to be unable to respond for a long time. In addition, their storage and bandwidth capabilities are limited, which can easily lead to bottlenecks in the service capabilities of the middle layer and the top layer, as well as high costs.

Method used

Introducing a secondary CDN involves connecting multiple secondary CDN nodes to CDN edge nodes, forming a direct or mesh structure. This distributes the load on edge nodes, retrieves data through direct links, expands storage capacity, reduces the frequency of data retrieval from the origin, and decreases traffic between the middle and top layers.

Benefits of technology

It alleviates the load pressure on CDN edge nodes, avoids long waiting times for terminals, expands storage capacity, reduces service bottlenecks and costs between the middle and top layers, and improves network coverage.

✦ Generated by Eureka AI based on patent content.

Smart Images

  • Figure CN114297288B_ABST
    Figure CN114297288B_ABST
Patent Text Reader

Abstract

The application provides a secondary content distribution network (CDN), which is connected with a superior CDN, the secondary CDN comprises a plurality of secondary CDN nodes, the superior CDN comprises at least one layer of CDN nodes, wherein CDN edge nodes of the superior CDN are close to the secondary CDN, the plurality of secondary CDN nodes access the superior CDN through the CDN edge nodes; a first secondary CDN node is configured to provide data for a terminal accessing the secondary CDN, the data is stored in the first secondary CDN node or a second secondary CDN node, and a communication link of the first secondary CDN node for obtaining the data from the second secondary CDN node bypasses the CDN edge node. Since the first secondary CDN node can provide data for the terminal, the CDN edge node can not provide data for the terminal, so that the load pressure of the CDN edge node can be relieved, and the terminal accessing the secondary CDN can be avoided from being in a state of waiting for a response for a long time as far as possible. In addition, the application further provides a data providing method and a storage medium.
Need to check novelty before this filing date? Find Prior Art

Description

TECHNICAL FIELD

[0001] The present application relates to the technical field of content distribution network (CDN), and in particular to a secondary CDN, a data providing method and a storage medium. BACKGROUND

[0002] A content delivery network (CDN) is an intelligent virtual network built on the basis of an existing network, which performs load balancing, content distribution, scheduling and other operations on edge servers deployed in various places through a central platform, publishes content to the network "edge" close to users, so that users can obtain the required content nearby, thereby reducing network congestion and improving user access response speed and hit rate.

[0003] However, in actual application, the CDN node deployed at the network "edge" usually has limited storage, bandwidth, computing and other capabilities. When a large number of terminals simultaneously request data from the CDN edge node, it will cause the CDN edge node to have too large a load, so that some terminals may not be able to obtain a response from the CDN edge node for a long time. SUMMARY

[0004] The present application provides a secondary content delivery network (CDN) for relieving the pressure of the CDN edge node. In addition, the present application also provides a data providing method, device, computer readable storage medium and computer program product.

[0005] In a first aspect, the present application provides a secondary CDN, which is connected with a superior CDN and includes a plurality of secondary CDN nodes. The superior CDN can include at least one layer of CDN nodes, for example, it can be a traditional CDN. The CDN edge node close to the secondary CDN in the superior CDN, and the plurality of secondary CDN nodes access the superior CDN through the CDN edge node. Among them, the first secondary CDN node in the plurality of secondary CDN nodes can be used to provide data for the terminal accessing the secondary CDN. The data can be stored in the first secondary CDN node or the second secondary CDN node, and when the first secondary CDN node does not store the data requested by the terminal locally, the first secondary CDN node can obtain the data from the second secondary CDN node, and the communication link between the first secondary CDN node and the second secondary CDN node bypasses the CDN edge node.

[0006] Since the secondary CDN under the CDN edge node, the first secondary CDN node can provide data for the terminal, and the CDN edge node can not provide data for the terminal, that is, the first secondary CDN node can share part of the load of the CDN edge node, so as to relieve the load pressure of the CDN edge node, and avoid the long waiting state of the terminal accessing the secondary CDN as much as possible.

[0007] Meanwhile, since the plurality of secondary CDN nodes are deployed in the secondary CDN, and the total amount of data that can be stored by the CDN edge node and the plurality of secondary CDN nodes deployed is more than the amount of data stored by the CDN edge node, the expansion of the amount of data stored by the CDN edge node is realized. The increase of the amount of data stored in the CDN edge node can reduce the frequency of the CDN edge node pulling data from the upper CDN node through the "back to source" mode, thereby reducing the traffic generated by the intermediate layer and the top layer, so that the service capacity of the intermediate layer and the top layer is not easy to appear bottleneck, and the cost of the intermediate layer and the top layer can be reduced.

[0008] In combination with the first aspect, in a first possible implementation manner of the first aspect, the communication link between the first secondary CDN node and the second secondary CDN node for obtaining the data requested by the terminal is a direct link, or the communication link includes other secondary CDN nodes. In this implementation manner, the secondary CDN nodes can directly communicate with each other, that is, communicate through the direct link, or there can be other intermediate nodes between the two secondary CDN nodes, and the intermediate nodes are other secondary CDN nodes. Since the first secondary CDN node can directly or indirectly communicate with other secondary CDN nodes, when the first secondary CDN node does not store the data requested by the terminal locally, the first secondary CDN node can obtain the data by accessing other secondary CDN nodes, so that the first secondary CDN node can further provide the obtained data to the terminal.

[0009] In combination with the first aspect or the first implementation manner of the first aspect, in a second possible implementation manner of the first aspect, at least one CDN node in the upper CDN is in a tree structure. The tree structure, which can also be referred to as a tree structure, usually includes a root node and a plurality of child nodes, and these nodes can constitute at least two layers of nodes, wherein the top layer (or referred to as the first layer) is a root node, and the next layer (second layer) nodes connected with the root node are child nodes of the root node. In actual application, the second layer of child nodes can further be connected with the third layer of child nodes, and the nodes in the same layer usually do not directly communicate with each other, that is, the communication link between the nodes in the same layer usually includes the nodes in the upper layer. In the CDN, the node in the layer closest to the user (that is, the CDN node in the bottom layer of the tree structure) can be referred to as the CDN edge node.

[0010] In a third possible implementation of the first aspect, in any of the first implementation to the third implementation of the first aspect, the plurality of secondary CDN nodes in the secondary CDN can be in a mesh structure. In the mesh structure, each CDN node in the secondary CDN can be directly connected to other CDN nodes in the secondary CDN. In this way, different CDN nodes in the secondary CDN can communicate with each other and share data through direct connection links or indirect connection links, and the communication links among the plurality of CDN nodes can form a mesh.

[0011] In a fourth possible implementation of the first aspect, in any of the first implementation to the third implementation of the first aspect, a CDN edge node in the superior CDN can be connected to a plurality of secondary CDNs. In this implementation, two or more secondary CDNs can be deployed under one CDN edge node, so that the plurality of secondary CDNs can perform load sharing for the CDN edge node and expand the amount of stored data. Of course, in other possible implementations, only one secondary CDN can be deployed under one CDN edge node, and a plurality of CDN edge nodes can be connected to the same secondary CDN.

[0012] In a fifth possible implementation of the first aspect, in any of the first implementation to the fourth implementation of the first aspect, the secondary CDN nodes can be divided into regions based on the latency of the secondary CDN nodes responding to the terminals. Specifically, the secondary CDN can include at least one latency region, and the secondary CDN nodes in the latency region respond to the average latency of the terminals in the latency region being less than a preset latency threshold. Of course, in other possible implementations, the secondary CDN nodes can be divided into regions based on other factors, such as the geographical location, network location, network environment, and the like of the terminals and the secondary CDN nodes, which are not limited in the present application.

[0013] In a sixth possible implementation of the first aspect, in any of the first implementation to the fifth implementation of the first aspect, the CDN edge node can be configured to provide data for the first secondary CDN node. In this way, the CDN edge node can update the data stored in the first secondary CDN node, such as sending data that is not currently stored in the first secondary CDN node, or when the data requested by the terminal is not stored in the first secondary CDN node or other secondary CDN nodes, the first secondary CDN node can request the data from the CDN edge node, and the CDN edge node provides the data to the first secondary CDN node so that the first secondary CDN node returns the data to the terminal.

[0014] With reference to any one of the first aspect to the sixth implementation of the first aspect, in a seventh possible implementation of the first aspect, the secondary CDN can further comprise a data management device, which can be configured to manage data and metadata of the data provided by the plurality of secondary CDN nodes. The metadata is data used to describe the data, for example, the metadata can be an identifier of the data, a uniform resource locator (URL) describing information of attributes of the data, etc. The data management device can manage the distribution of the data and the metadata stored on the plurality of secondary CDN nodes, and create, delete and modify the metadata corresponding to the data stored on the plurality of secondary CDN nodes, etc.

[0015] With reference to the seventh implementation of the first aspect, in an eighth possible implementation of the first aspect, the data management device can be further configured to provide an Internet Protocol (IP) address of a first secondary CDN node of the plurality of secondary CDN nodes to the first terminal according to the metadata of the data provided by the plurality of secondary CDN nodes and a data identifier of the data requested by the first terminal accessing the secondary CDN. In this way, the terminal can request the data from the corresponding first secondary CDN node based on the received IP address. In actual applications, the IP address provided by the data management device to the terminal can be the IP address of the first secondary CDN node storing the data requested by the terminal, so that the terminal can quickly obtain the required data from the first secondary CDN node, thereby reducing the time delay of the terminal in obtaining the data.

[0016] With reference to the eighth implementation of the first aspect, in a ninth possible implementation of the first aspect, the first secondary CDN node can not store the complete data requested by the terminal, i.e., only a first part of the data is stored on the first secondary CDN node, and the first secondary CDN node can obtain a second part of the data requested by the first terminal from a second secondary CDN node, for example, by sending a data identifier of the data requested by the first terminal to the second secondary CDN node to obtain the second part of the data from the second secondary CDN node, etc., and then the first secondary CDN node can send the first part of the data stored locally and the second part of the data obtained from the second secondary CDN node to the first terminal. Generally, the first part of the data and the second part of the data can be different data. In this way, the first terminal can obtain the complete data requested by the first terminal from the first secondary CDN node.

[0017] With reference to the eighth implementation manner of the first aspect or any one of the ninth implementation manner of the first aspect, in a tenth possible implementation manner of the first aspect, when providing the IP address of the first secondary CDN node to the first terminal, the data management apparatus can specifically provide metadata of data that can be provided by a second terminal capable of accessing the secondary CDN node to the first terminal, and provide the IP address of the second terminal to the first terminal according to the metadata of the data that can be provided by the second terminal and the data identifier of the data requested by the first terminal. In this way, the first terminal can access the second terminal according to the IP address, so as to obtain the required data from the second terminal, thereby realizing data sharing between terminals.

[0018] With reference to any one of the eighth implementation manner of the first aspect to the tenth implementation manner of the first aspect, in an eleventh possible implementation manner of the first aspect, the CDN edge node is further configured to receive terminal information of the first terminal, which can be any one or more of an Internet Protocol version identifier (such as an identifier indicating that the first terminal communicates based on the IPV4 protocol, or an identifier indicating that the first terminal communicates based on the IPV6 protocol, or an identifier indicating that the first terminal can support both), a network protocol identifier (such as an identifier of the UPNP communication protocol), and an access mode identifier (such as 4G, 5G or WIFI access). Correspondingly, when providing the IP address to the first terminal, the data management apparatus can specifically determine the IP address of the first secondary CDN node according to the metadata of the data that can be provided by the plurality of secondary CDN nodes, the data identifier of the data requested by the first terminal, and the terminal information of the first terminal obtained from the CDN edge node, and provide the IP address of the first secondary CDN node to the first terminal.

[0019] In a twelfth possible implementation of the first aspect, in any one of the eighth to eleventh possible implementations of the first aspect, the secondary CDN further comprises a domain name resolution device configured to provide an IP address of a first secondary CDN node in the plurality of secondary CDN nodes to the first terminal according to metadata of data that can be provided by the plurality of secondary CDN nodes and the data identifier of the data requested by the first terminal accessing the subnetwork. The first secondary CDN node determined by the domain name resolution device can store the data requested by the first terminal. For example, the domain name resolution device can determine the IP address of the first secondary CDN node to provide to the first terminal according to the data stored in each secondary CDN node. Alternatively, the first secondary CDN node determined by the domain name resolution device can not store the data requested by the first terminal. For example, the domain name resolution device can provide an IP address of a secondary CDN node closest to the first terminal to the first terminal according to the locations of each secondary CDN node and the location of the first terminal. In this case, when the first terminal requests data from the first secondary CDN node, the first secondary CDN node can obtain the data from other secondary CDN nodes and provide the data to the first terminal.

[0020] In a possible implementation, when the secondary CDN further comprises a data management device, the data management device can be further configured to identify hot data and deploy the hot data on the secondary CDN nodes in the secondary CDN. The hot data refers to data that is frequently accessed by terminals or is likely to be frequently accessed by terminals. In this way, the data requested by the terminals is usually located on the secondary CDN nodes with a high probability, and thus the data can be obtained without the need to obtain the data from the CDN edge nodes, thereby further reducing the load pressure of the CDN edge nodes and the traffic in the upper CDN.

[0021] In a second aspect, an embodiment of the present application further provides a data providing method. The method is applied to a secondary content distribution network (CDN), the secondary CDN is connected with an upper CDN, the secondary CDN comprises a plurality of secondary CDN nodes, and the upper CDN comprises at least one layer of CDN nodes. The CDN edge node close to the secondary CDN in the upper CDN is used for connecting the plurality of secondary CDN nodes to the upper CDN.

[0022] The method comprises the following steps.

[0023] receiving a data obtaining request from a first terminal accessing the secondary CDN, the data obtaining request comprising a data identifier;

[0024] The first secondary CDN node provides the first terminal with data corresponding to the data identifier, the data being stored in the first secondary CDN node or a second secondary CDN node, and a communication link of the first secondary CDN node obtaining the data from the second secondary CDN node bypassing the CDN edge node.

[0025] With reference to the second aspect, in a first possible implementation of the second aspect, the method further comprises:

[0026] The first secondary CDN node receives data from the CDN edge node.

[0027] With reference to the second aspect or the first implementation of the second aspect, in a second possible implementation of the second aspect, the secondary CND further comprises a data management device, and the method further comprises:

[0028] The data management device receives a request from the first terminal, the request carrying the data identifier;

[0029] The data management device provides the first terminal with an IP address of the first secondary CDN node according to the data identifier and metadata of data that can be provided by the plurality of secondary CDN nodes;

[0030] The data management device receives a data acquisition request from a first terminal accessing the secondary CND, and specifically:

[0031] The first secondary CDN node receives the data acquisition request sent by the first terminal.

[0032] With reference to the second implementation of the second aspect, in a third possible implementation of the second aspect, the data management device provides the first terminal with an IP address of the first secondary CDN node according to the data identifier and metadata of data that can be provided by the plurality of secondary CDN nodes, and the method comprises:

[0033] The data management device obtains terminal information of the first terminal, the terminal information including one or more of an Internet Protocol version identifier, a network protocol identifier, and an access mode identifier of the first terminal;

[0034] The data management device provides the first terminal with an IP address of the first secondary CDN node according to the metadata of data that can be provided by the plurality of secondary CDN nodes, the data identifier, and the terminal information of the first terminal.

[0035] With reference to the second implementation of the second aspect or the third implementation of the second aspect, in a fourth possible implementation of the second aspect, the method further comprises:

[0036] When a second terminal accessing the secondary CND stores the data requested by the first terminal, the data management device provides an IP address of the second terminal to the first terminal.

[0037] In a fifth possible implementation of the second aspect, in any one of the first to fourth implementations of the second aspect, the secondary CND further comprises a domain name resolution device, and the method further comprises:

[0038] The domain name resolution device receives a domain name resolution request from the first terminal, and the domain name resolution request carries the data identifier;

[0039] The domain name resolution device provides the IP address of the first secondary CDN node to the first terminal according to the data identifier and the metadata of the data provided by the plurality of secondary CDN nodes;

[0040] Then, a data acquisition request is received from a first terminal accessing the subnetwork, and specifically:

[0041] The first secondary CDN node receives the data acquisition request sent by the first terminal.

[0042] In a sixth possible implementation of the second aspect, in any one of the first to fifth implementations of the second aspect, the providing, by the first secondary CDN node, of the data corresponding to the data identifier to the first terminal comprises:

[0043] The first secondary CDN node acquires second part data of the data requested by the first terminal from the second secondary CDN node;

[0044] The first secondary CDN node provides the second part data and first part data of the data requested by the first terminal stored locally to the first terminal, and the first part data is different from the second part data.

[0045] In a seventh possible implementation of the second aspect, in any one of the first to fourth implementations of the second aspect, the method further comprises:

[0046] The data management device identifies hot data;

[0047] The data management device deploys the hot data on a secondary CDN node in the subnetwork.

[0048] In a third aspect, the present application provides a data providing apparatus applied to the first-level CDN node in the second aspect, the data providing apparatus comprising various modules for implementing the data providing method performed by the first-level CDN node in the second aspect or any possible implementation manner of the second aspect.

[0049] In a fourth aspect, the present application provides a computer readable storage medium, wherein instructions are stored in the computer readable storage medium, and when the instructions are run on a plurality of computer devices, the plurality of computer devices perform the method in the second aspect or any implementation manner of the second aspect. Specifically, a first computer device in the plurality of computer devices runs the instructions in the computer readable storage medium, and the first computer device can implement the method performed by the first-level CDN node in the second aspect. The first computer device comprises at least one computer device. A second computer device in the plurality of computer devices runs the instructions in the computer readable storage medium, and the second computer device can implement the method performed by the data management apparatus in the second aspect. The second computer device comprises at least one computer device. A third computer device in the plurality of computer devices runs the instructions in the computer readable storage medium, and the third computer device can implement the method performed by the domain name resolution device in the second aspect. The third computer device comprises at least one computer device.

[0050] In a fifth aspect, the present application provides a computer program product comprising instructions, and when the instructions are run on a plurality of computer devices, the plurality of computer devices perform the method in the second aspect or any implementation manner of the second aspect. Specifically, a first computer device in the plurality of computer devices runs the computer program product comprising instructions, and the first computer device can implement the method performed by the first-level CDN node in the second aspect. The first computer device comprises at least one computer device. A second computer device in the plurality of computer devices runs the computer program product comprising instructions, and the second computer device can implement the method performed by the data management apparatus in the second aspect. The second computer device comprises at least one computer device. A third computer device in the plurality of computer devices runs the computer program product comprising instructions, and the third computer device can implement the method performed by the domain name resolution device in the second aspect. The third computer device comprises at least one computer device.

[0051] On the basis of the implementation manners of the aspects provided in the present application, further combinations can be made to provide more implementation manners. BRIEF DESCRIPTION OF DRAWINGS

[0052] In order to more clearly illustrate the technical solutions in the embodiments of the present application, the drawings needed to be used in the embodiment description will be briefly introduced. Obviously, the drawings in the following description are only some embodiments described in the present application, and other drawings can also be obtained by those skilled in the art based on these drawings.

[0053] Figure 1 A network architecture schematic diagram of a CDN;

[0054] Figure 2 A network architecture schematic diagram of a secondary CDN provided by the embodiments of the present application;

[0055] Figure 3 Another network architecture schematic diagram of a secondary CDN provided by the embodiments of the present application;

[0056] Figure 4 Still another network architecture schematic diagram of a secondary CDN provided by the embodiments of the present application;

[0057] Figure 5 Still another network architecture schematic diagram of a secondary CDN provided by the embodiments of the present application;

[0058] Figure 6 Still another network architecture schematic diagram of a secondary CDN provided by the embodiments of the present application;

[0059] Figure 7 Still another network architecture schematic diagram of a secondary CDN provided by the embodiments of the present application;

[0060] Figure 8 Still another network architecture schematic diagram of a secondary CDN provided by the embodiments of the present application;

[0061] Figure 9 Still another network architecture schematic diagram of a secondary CDN provided by the embodiments of the present application;

[0062] Figure 10 A structure schematic diagram of a computer device 1000 provided by the embodiments of the present application;

[0063] Figure 11 Another structure schematic diagram of a computer device 1100 provided by the embodiments of the present application;

[0064] Figure 12 Still another structure schematic diagram of a computer device 1200 provided by the embodiments of the present application;

[0065] Figure 13 Still another structure schematic diagram of a computer device 1300 provided by the embodiments of the present application. DETAILED DESCRIPTION

[0066] Currently, a network architecture as shown in Figure 1 may be deployed on the existing network infrastructure. The network architecture 100 can include CDN nodes at different levels, such as CDN node 110 at the top level (e.g., core network level), CDN node 120 at the middle level (e.g., aggregation level), CDN edge node 130 at the bottom level, etc. In this embodiment, the CDN node at the Nth level closest to the user (i.e., the CDN node at the "edge" of the network) is referred to as the CDN edge node. Figure 1 The network architecture is exemplarily described by taking an example of three levels of CDN nodes, and the CDN node at the bottom level is the CDN edge node (i.e., N = 1). In actual applications, the network architecture can include any number of levels of CDN nodes, and the number of CDN nodes at each level can also be any number, which is not limited in this embodiment.

[0067] The CDN nodes at different levels can each store corresponding data, and the data stored at each level of CDN nodes can be sourced from the CDN node at the previous level, and the data stored in the CDN node 110 at the top level can be sourced from the content source 101. The content source 101 can be a data center, for example, and each level of CDN nodes can be implemented by deploying corresponding servers.

[0068] When deploying the CDN edge node 130, the CDN edge node 130 can generally be deployed according to a region (e.g., a province, a city, etc.), and each CDN edge node 130 can provide data for one or more terminals 140 accessing the CDN edge node 130. When the CDN edge node 130 does not store the data requested by the terminal 140, the CDN edge node 130 can pull the data from the CDN node 120 at the previous level to the local CDN edge node 130 for caching. When the CDN node 120 also does not store the data requested by the terminal 140, the CDN node 120 pulls the data from the CDN node 110 at the previous level and sends it to the CDN node 120, which then forwards the data to the CDN edge node 130. When the CDN node 110 still does not store the data requested by the terminal 140, the data is obtained from the content source 101 and forwarded to the local CDN edge node 130 layer by layer for caching. The above process is generally referred to as "back to source". Then, the CDN edge node 130 sends the locally cached data obtained by the "back to source" method to the terminal 140. For example, when the data requested by the terminal 140 is only stored in the content source 101, the data request path can be: terminal 140 -> CDN edge node 130 -> CDN node 120 -> CDN node 110 -> content source 101.

[0069] However, in actual application, the number of terminals 140 accessing the CDN edge node 130 is large, for example, when the CDN edge node 130 is deployed in a province, the terminals 140 accessing the same CDN edge node 130 are all the terminals of the users in the province. At this time, if a large number of terminals 140 simultaneously request the CDN edge node 130 to obtain data (such as downloading software update resource package, video data, etc.), it will cause a large load pressure on the CDN edge node 130, and some terminals 140 may be in a state of waiting for the response of the CDN edge node 130 for a long time.

[0070] Meanwhile, the amount of data that each CDN edge node 130 can store is limited, which makes the CDN edge node 130 usually obtain the data requested by the terminal 140 through the "back to source" mode when the data requested by the terminal 140 is not stored in the CDN edge node 130, which causes a large flow between the intermediate layer and the top layer (such as multiple different CDN edge nodes 130 pulling data from the intermediate layer or the top layer through the "back to source" mode at the same time), so that the service capacity bottleneck of the intermediate layer and the top layer may occur, and high cost is paid to cope with the large flow.

[0071] Based on this, the embodiment of the present application provides a secondary CDN, which is connected with a superior CDN, the secondary CDN includes a plurality of secondary CDN nodes, and the communication link between different secondary CDN nodes bypasses the CDN edge node, and each secondary CDN node can also be called an Inter Planetary Content Delivery Network (IPCDN) node. Each secondary CDN node can provide data for a terminal accessing the secondary CDN. In this way, when the terminal accessing the secondary CDN requests to obtain data, the secondary CDN node can provide data for the terminal, and the CDN edge node can not provide data for the terminal, that is, the secondary CDN node can share part of the load of the CDN edge node, so as to alleviate the load pressure of the CDN edge node, and the state of the terminal in the CDN edge node waiting for the response for a long time can be avoided as much as possible.

[0072] Meanwhile, since multiple secondary CDN nodes are deployed in the secondary CDN, the total amount of data that the CDN edge nodes and the deployed secondary CDN nodes can store is greater than the amount of data stored by the CDN edge nodes themselves. This achieves an expansion of the data storage capacity of the CDN edge nodes. The increased data storage capacity in the CDN edge nodes reduces the frequency with which they pull data from upper-layer CDN nodes via "origin pull," thereby reducing traffic generated between the middle and top layers. This makes it less likely for the service capabilities of the middle and top layers to become bottlenecked, and also reduces their costs. Furthermore, the network coverage of multiple secondary CDN nodes can be greater than that of a single CDN edge node. For example, when multiple secondary CDN nodes share data provided to terminals, the sum of their network coverage can be greater than that of a single CDN edge node. Of course, the network coverage of multiple secondary CDN nodes can also be less than that of a single CDN edge node; this embodiment does not limit this.

[0073] The embodiments of this application will now be described with reference to the accompanying drawings.

[0074] The terms "first," "second," etc., used in the specification, claims, and accompanying drawings of this application are used to distinguish similar objects and are not necessarily used to describe a specific order or sequence. It should be understood that such terms can be used interchangeably where appropriate; this is merely a way of distinguishing objects with the same attributes in the embodiments of this application.

[0075] See Figure 2 The diagram shows the network structure of a secondary CDN. Figure 1 Based on the CDN shown, a secondary CDN can be deployed at the CDN edge nodes. This secondary CDN can be integrated with... Figure 1 The illustrated upper-level CDN connection can specifically be a connection to the upper-level CDN via a CDN edge node connected to the secondary CDN. Each secondary CDN can include multiple secondary CDN nodes. For example... Figure 2 As shown, the secondary CDN deployed for CDN edge node 131 can contain 7 secondary CDN nodes, numbered 1 to 7. For example, these 7 secondary CDN nodes can be divided into two secondary CDN node clusters, such as... Figure 2As shown, one cluster includes secondary CDN nodes numbered 1 to 4, and another cluster includes secondary CDN nodes numbered 5 to 7. It is worth noting that each cluster of secondary CDN nodes can constitute a separate secondary CDN, i.e., CDN edge node 131 can connect two secondary CDNs, one of which includes 4 secondary CDN nodes and the other of which includes 3 secondary CDN nodes. Moreover, both of the secondary CDNs can be connected to the upper-level CDN through CDN edge node 131.

[0076] Similarly, the secondary CDN deployed in relation to CDN edge node 132 can include 3 secondary CDN nodes, numbered 8 to 10. The secondary CDN deployed in relation to CDN edge node 133 can include 2 secondary CDN nodes, numbered 11 and 12; and the secondary CDN deployed in relation to CDN edge node 134 can include 3 secondary CDN nodes, numbered 13 to 15. Each secondary CDN node can allow one or more terminals to access (terminals accessing some secondary CDN nodes are not shown), e.g., there are two terminals accessing secondary CDN 3 node, etc. Of course, there can also be some secondary CDN nodes that do not access terminals, but these secondary CDN nodes can share data for other secondary CDN nodes.

[0077] For ease of description, Figure 2 In the example shown, 4 CDN edge nodes are included. In actual applications, the CDN-based network architecture can include any number of CDN edge nodes, and the secondary CDN deployed in relation to a CDN edge node can include any number of secondary CDN nodes, which are not limited by the present embodiment.

[0078] In some embodiments, the secondary CDN nodes can be deployed as functional modules on devices relied on by the home network, such as home routers, smart TVs, and the like. In this way, the bandwidth resources and storage resources of the home network can be reused, not only achieving expansion of the storage capacity of the CDN edge node, but also allowing the secondary CDN nodes to provide data to terminals without occupying the bandwidth of the CDN edge node. In other possible embodiments, the secondary CDN nodes can also be other devices deployed as functional modules within the network coverage of the CDN edge node, such as Mobile Edge Computing (MEC) devices, Edge Computing (EC) devices based on fixed networks, and the like. Alternatively, the secondary CDN nodes can also be independently deployed servers, etc.

[0079] As an example, when the terminal requests data, the terminal can request data from a CDN edge node, a secondary CDN node, or a cluster composed of multiple secondary CDN nodes. Taking the case that the terminal requests data from a first secondary CDN node in multiple secondary CDN nodes as an example, the terminal can send a data acquisition request to the first secondary CDN node, and the data acquisition request includes a data identifier of data to be acquired by the terminal. The first secondary CDN node can locally search for data with the data identifier according to the data identifier parsed from the data acquisition request. If the data is found, the first secondary CDN node can send the data to the terminal. If the data with the data identifier is not found, the first secondary CDN node can send the data identifier to other secondary CDN nodes in the secondary CDN, such as a second secondary CDN node, to request the second secondary CDN node to share data corresponding to the data identifier. If the other CDN nodes store the data corresponding to the data identifier, the data can be sent to the first secondary CDN node, and the first secondary CDN node provides the data to the terminal. The communication link between the first secondary CDN node and the second secondary CDN node in the secondary CDN bypasses the CDN edge node, that is, the communication link between the first secondary CDN node and the second secondary CDN node can be a direct link, that is, there is no other secondary CDN node or CDN edge node on the communication link, or the communication link between the first secondary CDN node and the second secondary CDN node includes other secondary CDN nodes but does not include the CDN edge node.

[0080] If the other CDN nodes in the secondary CDN also do not store the data, the first secondary CDN can send a request including the data identifier to the CDN edge node, so that the CDN edge node searches for data with the data identifier from data stored locally. If the CDN edge node locally stores the data, the CDN edge node can send the data to the first secondary CDN node for caching, and then the first secondary CDN node forwards the locally cached data to the terminal. If the CDN edge node also does not store the data locally, the CDN edge node can pull data from the upper layer CDN through the "back to source" mode, and then provide the pulled data to the terminal through the first secondary CDN node.

[0081] Of course, for the terminal not accessing the secondary CDN but located in the network coverage range of the CDN edge node, it can send a data acquisition request containing the above data identifier to the CDN edge node directly, so as to provide data to the terminal by the CDN edge node. In specific implementation, the CDN edge node can be configured with a corresponding communication interface, and the terminal can request data from the CDN edge node through the communication interface on the CDN edge node. For example, the communication interface can be a Hyper Text Transfer Protocol (HTTP) interface or the like, or can be other interfaces.

[0082] As shown in Figure 2 , in the upper-layer CDN connected with the secondary CDN, each CDN node in the upper-layer CDN can be a tree structure. The tree structure, which can also be referred to as a tree structure, generally includes a root node and a plurality of child nodes, which can constitute at least two layers of nodes, as shown in Figure 2 . The top layer (or referred to as the first layer) is a root node, the next layer (second layer) nodes connected with the root node are child nodes of the root node, and the second layer child nodes can further be connected with third layer child nodes. Generally, nodes in the same layer do not communicate directly, that is, the communication link between nodes in the same layer generally includes a node in the previous layer.

[0083] The plurality of secondary CDN nodes in the secondary CDN can be in a mesh structure. The mesh structure means that each CDN node in the secondary CDN can be directly connected with other CDN nodes in the secondary CDN. In this way, different secondary CDN nodes can communicate and share data through direct connection links or indirect connection communication links, and the communication links between the plurality of secondary CDN nodes can form a mesh.

[0084] In this embodiment, the secondary CDN nodes and the plurality of terminals in the network coverage range of the CDN edge node can be clustered according to the time delay of the secondary CDN nodes responding to the terminals, so as to obtain a set with lower response time delay. The set includes secondary CDN nodes and terminals, and the average time delay of the secondary CDN nodes in the set responding to the terminals in the set is less than a preset time delay threshold.

[0085] For example, the CDN edge node can count the time delay of each terminal in the CDN edge node responding to each secondary CDN node, and perform clustering calculation based on the time delay of each terminal relative to each secondary CDN node. For example, the average value of the time delay of multiple terminals responding to a secondary CDN node can be determined, and if the average value of the time delay of the multiple terminals is less than a preset time delay threshold, the secondary CDN node and the multiple terminals are clustered into one class. The time delay of the secondary CDN node responding to the terminal can be the time delay of the secondary CDN node responding to the terminal connected to the secondary CDN node, or the time delay of the secondary CDN node responding to the terminal connected to other secondary CDN nodes (for example, the sum of the communication time delay between two secondary CDN nodes and the time delay of other secondary CDN nodes responding to the terminal, etc.). Therefore, each cluster category can include multiple secondary CDN nodes and one or more terminals.

[0086] Then, based on the clustering result of the secondary CDN node and the terminal, one or more time delay regions can be divided in the network coverage of the CDN edge node, each time delay region corresponds to one clustering result, and the average time delay of the secondary CDN node in the time delay region responding to the terminal in the time delay region is less than the preset time delay threshold. As shown in Figure 2 In some possible implementation, each time delay region corresponds to the network range of one secondary CDN, and the secondary CDN nodes contained in the time delay region are the secondary CDN nodes constituting the secondary CDN.

[0087] In actual application, the time delay regions in multiple CDN edge nodes can also be merged into one time delay region, and the average time delay of the secondary CDN node in the merged time delay region responding to the terminal in the time delay region is still less than the preset time delay threshold. As shown in Figure 2 The secondary CDN nodes and terminals in the network coverage of the CDN edge node 133 and the CDN edge node 134 can be merged into one time delay region. Of course, the network coverage of the CDN edge node can also only contain one time delay region, as shown in Figure 3 The secondary CDN nodes and terminals in the network coverage of the CDN edge node 132 can be clustered in one time delay region.

[0088] Further, the data can be shared between different secondary CDN nodes in the same time delay region. For example, as shown in Figure 3As shown, when a terminal accesses the secondary CDN node 6 and requests data from the secondary CDN node 6, if the data is not stored in the secondary CDN node 6, the data can be searched from the data stored in the secondary CDN node 5 and the secondary CDN node 7 in the same time domain region (as shown in Figure 3 the east-west back source), and if the data requested by the terminal is found in the two secondary CDN nodes, the secondary CDN node 5 or the secondary CDN node 7 can send the found data to the secondary CDN node 6, and the secondary CDN node 6 provides the data to the terminal. If the data requested by the terminal is not found in the two secondary CDN nodes, the secondary CDN node 6 can request the data from the CDN edge node 131, and when the data requested by the terminal is still not stored in the CDN edge node 131, the CDN edge node 131 continues to request the data from the upper CDN (such as the CDN node 120, the CDN node 110, etc.) node in a back source manner, until the CDN edge node 131 requests and provides the data from the upper CDN node to the terminal (as shown in Figure 4 the north-south back source). Assuming that the data requested by the terminal is located in the content source 101, the path of the data request is: terminal -> secondary CDN node 6 -> secondary CDN node 5, secondary CDN node 7 -> CDN edge node 131 -> CDN node 120 -> CDN node 110 -> content source 101.

[0089] It is worth noting that in the above embodiment, the secondary CDN nodes and the terminals connected to the secondary CDN nodes are divided into regions according to the time delay of the secondary CDN nodes responding to the terminals. In other possible embodiments, the secondary CDN nodes and the terminals can be divided into regions according to the geographical location, network location, network environment, etc. of the terminals and the secondary CDN nodes, or can be divided into regions based on any one or more of the above factors (including time delay), etc. The region division method used is not limited to clustering, and other methods can also be used. This embodiment is not limited in this regard. For convenience of description, the region division according to time delay is taken as an example in the following description.

[0090] In an exemplary specific embodiment, each secondary CDN node in the CDN edge node can be configured with a distributed cache and a communication interface. As shown in Figure 5As shown, the secondary CDN node 5 is configured with a distributed cache 1 and a communication interface 1, the secondary CDN node 6 is configured with a distributed cache 2 and a communication interface 2, and the secondary CDN node 7 is configured with a distributed cache 3 and a communication interface 3. Among them, the distributed cache on each secondary CDN node can be used to cache data, and accordingly, when the terminal requests data from the secondary CDN node 6, the secondary CDN node 6 can search the data cached by the distributed cache 2 to find whether the data requested by the terminal exists. If it exists, the secondary CDN node 6 can send the data in the distributed cache 2 to the terminal; if it does not exist, the secondary CDN node 6 can search the data cached by the distributed cache 1 and the distributed cache 3 of the secondary CDN node 5 and the secondary CDN node 7 in the same region (such as the delay region described above) to find whether the data requested by the terminal exists. If it exists, the secondary CDN node 5 or the secondary CDN node 7 sends the data in the distributed cache to the secondary CDN node 6, and the secondary CDN node 6 provides it to the terminal, and if the data stored by the terminal still does not exist in the distributed cache of the secondary CDN node 5 and the secondary CDN node 7, the secondary CDN node 6 pulls the data from the CDN edge node 131 or even the upper CDN through the "back to source" mode.

[0091] Among them, the distributed cache 1, the distributed cache 2 and the distributed cache 3 in the same region can form a distributed cache grid, and the data can be shared and transmitted between the distributed cache grids. In this way, a distributed mesh network including multiple secondary CDN nodes can be deployed based on the CDN edge node.

[0092] Meanwhile, the secondary CDN node can be configured with a communication interface, which can use the same communication protocol as the communication interface on the CDN edge node, or use a different communication protocol from the communication interface on the CDN edge node. In particular, when the communication interface on the secondary CDN node uses the same communication protocol as the communication interface on the CDN edge node, the terminal can access the secondary CDN node by accessing the CDN edge node, which can reduce the modification to the terminal and increase the feasibility of the scheme in actual implementation.

[0093] Further, in some possible implementation manners, a data management device can also be configured in the CDN edge node to manage the data stored on each secondary CDN node by using the data management device.

[0094] As Figure 6As shown, the data management apparatus 500 can be configured in the CDN edge node 131, and can be used to manage the data and metadata of the data stored in the secondary CDN node 5, the secondary CDN node 6 and the secondary CDN node 7. For example, in actual application, one data management apparatus can be deployed for each latency ring, or one data management apparatus can be shared by multiple latency rings, or only one data management apparatus can be deployed in the entire CDN network, and the embodiment is not limited in this regard.

[0095] The data management apparatus 500 can include a metadata tracking module 501 and a data tracking module 502.

[0096] The metadata tracking module 501 can be used to generate and manage the metadata corresponding to the data in each secondary CDN node. The metadata, which can also be referred to as intermediate data, is data about data, for example, property information of the data, which is used to support functions such as indicating a storage location, resource searching, file recording, etc. For example, when the data stored in the secondary CDN node is video data, the metadata can be a "seed" file in a certain format, which can include a uniform resource locator (URL) of the video data in the secondary CDN node, and can be used to obtain the corresponding data according to the "seed".

[0097] For example, the metadata in the embodiment can include basic information of the cached data in the secondary CDN node, such as the name of the data resource, the size of the data, the type of the data, etc. Further, the metadata can also include check information and / or slice information. The check information can be information used to check the integrity of the cached data, or other check information, and the slice information can be used to describe the slice to which the data belongs, for example, a slice identifier of the data. For example, a file can be divided into multiple slice data, and the multiple slice data can be stored in different secondary CDN nodes. In actual application, the secondary CDN nodes storing different slice data of the same file can be located in the same latency area. Of course, the metadata can also use other data to describe the data, and the embodiment is not limited in this regard.

[0098] The data tracking module 502 can be used to track the data and metadata information in each secondary CDN node, and to maintain and adjust the data in each secondary CDN node.

[0099] For example, the data tracking module 502 tracks the data cached in the secondary CDN node 5, the secondary CDN node 6 and the secondary CDN node 7, when it is determined that one of the secondary CDN nodes caches new data, the data tracking module 502 can send a metadata creation request for the newly cached data to the metadata tracking module 501 to request the metadata tracking module 501 to create corresponding metadata, and then the data tracking module 502 can send the metadata created by the metadata tracking module 501 to the secondary CDN node for storage. When part of the cached data is deleted in the secondary CDN node, the data tracking module 502 can delete the metadata corresponding to the part of the cached data in the maintained metadata information.

[0100] In addition, the data tracking module 502 can also schedule the data cached in each secondary CDN node in the latency area. For example, the data tracking module 502 can balance the load and stored data of the plurality of secondary CDN nodes in the same latency area. Specifically, different secondary CDN nodes in the same latency area can store part of the same data, so that when the data is requested by a large number of terminals, the plurality of secondary CDN nodes can provide data for the terminals at the same time to balance the load of each secondary CDN node. In this way, it can be possible to avoid the situation that the load of a single secondary CDN node in the latency area is too large.

[0101] For example, the data tracking module 502 can push hot data to one or more secondary CDN nodes when scheduling and managing the data stored in each secondary CDN node. The hot data refers to data that is accessed more frequently or has a greater possibility of being accessed. For example, the hot data can be a software update package of a certain game, and when the game needs to be updated uniformly, the data tracking module 502 can obtain the software update package from the CDN edge node 131 and push it to one or more secondary CDN nodes, so that when the terminal needs to update the game, the terminal can directly obtain the software update package from the corresponding secondary CDN node.

[0102] For example, the data tracking module 502 can collect the data provided by each secondary CDN node for the terminal, and determine the data with high request frequency from the collected data, so that the data tracking module 502 can predict that the data belongs to hot data and copy it to one or more secondary CDN nodes. In this way, there can be a larger number of secondary CDN nodes in the network coverage range of the CDN edge node 131 to store the hot data, and the terminal does not need to request data from a small number of secondary CDN nodes. In this way, it can reduce the probability that the load of a single secondary CDN node is too high, reduce the possibility that a single secondary CDN node appears bottleneck, and increase the availability and reliability of the distributed network.

[0103] In addition to the hot data determined by the data tracking module 502 through analysis and prediction, the data can be determined as hot data when it is determined that part of the data in the CDN edge node 131 has the identification of hot data. The identification of the hot data can be provided by the CDN edge node or other devices, or can be predicted according to the data provided by the secondary CDN node in the past, such as the hot data provided by the secondary CDN node in the future, such as the movie data to be released in the future. In the embodiment, the specific implementation of how the data tracking module 502 determines the hot data is not limited.

[0104] In actual application, the data management apparatus 500 can be implemented by software, for example, can be a computer program running on a server, etc. Alternatively, the data management apparatus 500 can also be implemented by hardware, such as an application-specific integrated circuit (ASIC) or a programmable logic device (PLD). The PLD can be a complex programmable logical device (CPLD), a field-programmable gate array (FPGA), a generic array logic (GAL) or any combination thereof to implement the function of the data management apparatus 500. When the data management apparatus 500 is implemented by hardware, the data management apparatus 500 can be a hardware device, or can be two hardware devices, in which the metadata tracking module 501 and the data tracking module 502 are located in different hardware devices. In addition, the data management apparatus 500 can be configured on the CDN edge node, or can be configured as an independent device in the CDN, and the embodiment is not limited thereto.

[0105] In the embodiment, when the terminal requests data, the data management apparatus 500 can provide the IP address of the secondary CDN node for the terminal.

[0106] Specifically, as an exemplary embodiment, the data management apparatus 500 is configured as a plug-in in the CDN edge node 131, and can be configured on the server corresponding to the CDN edge node 131. As shown in FIG. 4, when the terminal 141 requests data, the data management apparatus 500 can provide the IP address of the secondary CDN node for the terminal 141. Figure 1

[0107] ​S601: The terminal 141 sends a domain name resolution request to a local domain name server (LDNS) 150 to request the LDNS 150 to perform domain name resolution.

[0108] In this embodiment, on the basis of the network architecture shown in Figure 6 The LDNS 150 is further configured to provide domain name resolution services for a plurality of different terminals.

[0109] S602: The LDNS 150 returns an Internet Protocol (IP) address of the CDN edge node 131 to the terminal 141.

[0110] In actual applications, the LDNS 150 can return IP addresses of different CDN edge nodes for domain name resolution requests sent by different terminals.

[0111] S603: The terminal 141 sends a data acquisition request to the CDN edge node 131 according to the received IP address, the data acquisition request including a data identifier of resource content requested by the terminal 141.

[0112] S604: The CDN edge node 131 responds to the data acquisition request and invokes the data management apparatus 500 configured as a plug-in on the CDN edge node 131.

[0113] S605: The data management apparatus 500 returns an IP address of a secondary CDN node 5 for providing data for the terminal 141 to the CDN edge node 131 according to the maintained data and metadata information on each secondary CDN node.

[0114] In a specific implementation, the data tracking module 502 in the data management apparatus 500 can determine the secondary CDN node providing data for the terminal 141 according to the secondary CDN node topology (including the secondary CDN node 5, the secondary CDN node 6 and the secondary CDN node 7 sharing data), the metadata corresponding to the cached data on each secondary CDN node and the data identifier of the data requested by the terminal 141. In this embodiment, it is assumed that the determined secondary CDN node is the secondary CDN node 5. For example, the data tracking module 502 can determine that the metadata on the secondary CDN node 5 matches the data identifier of the data requested by the terminal 141 by matching the metadata in each secondary CDN node with the data identifier of the data requested by the terminal 141, and thus determine that the secondary CDN node 5 provides data for the terminal. In other possible implementations, the data tracking module 502 can also consider any one or more of the load of each secondary CDN node, the network location distance between each secondary CDN node and the terminal 141, and the time delay of each secondary CDN node in response to the terminal 141 to determine the secondary CDN node providing data for the terminal 141.

[0115] In actual applications, there can be a problem that some secondary CDN nodes have a large difficulty in communication with the terminal 141 or cannot communicate with the terminal 141. For example, the terminal 141 can be a single-stack terminal supporting only the Internet Protocol Version 6 (IPV6), and the secondary CDN node 6 can support only the Internet Protocol Version 4 (IPV4) protocol, which makes it impossible for the secondary CDN node 6 to communicate with the terminal.

[0116] Therefore, in a further possible implementation, the data tracking module 502 can first determine the reachability between the terminal 141 requesting data and each secondary CDN node, filter the secondary CDN nodes that can communicate with the terminal from one or more secondary CDN nodes managed by the data tracking module 502, and then determine the secondary CDN node providing data for the terminal 141 from the filtered secondary CDN nodes based on the above method of determining the secondary CDN node.

[0117] In actual applications, a lightweight client can be configured on the terminal side, such as Figure 6As shown, the client can be used to obtain terminal information of the terminal 141 and send it to the CDN edge node 131. In this way, when determining the secondary CDN node to provide data for the terminal 141, the metadata tracking module 502 can determine the secondary CDN node to provide data for the terminal 141 according to the secondary CDN node topology, the metadata corresponding to the cached data on each secondary CDN node, the data identifier of the data requested by the terminal 141, and the terminal information obtained from the CDN edge node 131. The terminal information may, for example, be one or more of the Internet Protocol version identifier (such as IPV4, IPV6, etc.) supported by the terminal 141, the network protocol identifier (such as the UPNP protocol, i.e. Universal Plug and Play protocol), and the access method (such as 4G network, 5G network, WIFI network access, etc.).

[0118] S606: The CDN edge node 131 returns the IP address of the secondary CDN node 5 to the terminal 141.

[0119] S607: The terminal 141 sends a data acquisition request to the secondary CDN node 5 based on the received IP address, the data acquisition request including a data identifier.

[0120] In this way, the CDN edge node 131 implements redirection scheduling of the data acquisition request sent by the terminal 141.

[0121] S608: The secondary CDN node 5 responds to the received data acquisition request, searches for the data corresponding to the data identifier in the locally stored data, and requests shared data from the secondary CDN node 6 and the secondary CDN node 7.

[0122] The secondary CDN node 5 can parse the data acquisition request sent by the terminal 141 to obtain the data identifier of the data requested by the terminal 141, which may, for example, be the name of the data resource or other information used to uniquely identify the data. Then, the secondary CDN node 5 can search for the data corresponding to the data identifier locally. In actual applications, since the data resource may be divided into multiple slices, and different secondary CDN nodes store different slices of the data resource, if the secondary CDN node 5 determines that it only stores the first part of the data requested by the terminal 141 locally, it can request shared data from the secondary CDN node 6 and the secondary CDN node 7 to obtain the other slice data cached on the other secondary CDN nodes, i.e. the second part of the data requested by the terminal 141. After the secondary CDN node 6 and / or the IP CD 7 sends the second part of the data to the secondary CDN node 5, the secondary CDN node 5 can cache all the data requested by the terminal locally, thereby providing all the data required by the terminal 141 for the terminal 141.

[0123] S609: The secondary CDN node 5 returns the data to the terminal 141.

[0124] Figure 7 In the embodiment shown, the CDN edge node 131 is required to participate in the scheduling, while in other possible embodiments, a client with certain data processing capability can be configured on the terminal 141, so that the terminal 141 can request data without the participation of the CDN edge node 131 in the process of requesting data on the premise that the secondary CDN node can provide data for the terminal 141. Specifically, see Figure 6 The process of the terminal 141 requesting data shown:

[0125] S701: The client triggers the terminal 141 to send a domain name resolution request to the LDNS 150, so as to request the LDNS 150 to perform domain name resolution.

[0126] S702: The LDNS 150 returns the IP address of the data management device 500 to the terminal 141.

[0127] In this embodiment, a client can be configured on the terminal 141, which can send a domain name resolution request for the data management device 500 to the LDNS 150, so that the LDNS 150 returns the IP address of the data management device 500 to the client.

[0128] For example, when the data management device 500 is a device independently arranged in the CDN edge node 131, the IP address returned by the LDNS 150 is the IP address of the device; when the data management device 500 is configured on a server implementing the CDN edge node, the IP address returned by the LDNS 150 is the IP address of the server.

[0129] S703: The client triggers the terminal 141 to send a request for obtaining the IP address of the secondary CDN node to the data management device 500 according to the IP address returned by the LDNS 150, and the requested secondary CDN node is the secondary CDN node capable of providing data for the terminal 141.

[0130] S704: The data management device 500 returns the IP address of the secondary CDN node 5 capable of providing data for the terminal 141 to the terminal 141 according to the data and metadata information maintained on each secondary CDN node.

[0131] The specific implementation of the data management device 500 to determine the secondary CDN node 5 can be referred to Figure 6 The relevant descriptions of the process of determining the secondary CDN node 5 in the embodiment shown are not repeated here.

[0132] It is worth noting that when the client triggers the terminal 141 to send the request, the terminal information on the terminal 141 can be obtained first, and the request containing the terminal information is sent to the data management apparatus 500, so that the data management apparatus 500 can determine the secondary CDN node 5 in combination with the terminal information, thereby improving the rationality and accuracy of the determined secondary CDN node.

[0133] S705: The terminal 141 sends a data acquisition request to the secondary CDN node 5 based on the received IP address, and the data acquisition request includes the data identifier.

[0134] S706: The secondary CDN node 5 responds to the received data acquisition request, and when the data corresponding to the data identifier is not stored locally, requests the secondary CDN node 6 and the secondary CDN node 7 for shared data.

[0135] S707: The secondary CDN node 5 returns the data to the terminal 141.

[0136] Of course, if the secondary CDN node 5 locally stores the data corresponding to the data identifier, the locally stored data can be directly sent to the terminal 141, so that there is no need to request the other secondary CDN nodes for shared data.

[0137] In this embodiment, the specific implementation of steps S705 to S707 can be referred to the description of the related steps S607 and S609 in the embodiment shown in Figure 6 The description of the related steps S607 and S609 in the embodiment shown in

[0138] Figure 7 and Figure 8 In the embodiment, the terminal 141 determines the IP address of the secondary CDN node 5 through the LDNS 150 and the CDN edge node 131, or determines the IP address of the secondary CDN node 5 through the LDNS 150 and the data management apparatus 500, and in other possible embodiments, the terminal 141 can also directly obtain the IP address of the secondary CDN node 5 through a device with domain name resolution capability. Specifically, as shown in Figure 9 The domain name resolution device 160 can be configured in the network, and the process of the terminal 141 requesting data can be as follows:

[0139] S801: The client triggers the terminal 141 to send a domain name resolution request to the domain name resolution device 160, so as to request the domain name resolution device to perform domain name resolution.

[0140] S802: The domain name resolution device 160 returns the IP address of the secondary CDN node 5 to the terminal 141.

[0141] In this embodiment, the domain name resolution request sent by the terminal 141 to the domain name resolution device can include a data identifier of the data requested by the terminal 141, and the domain name resolution device 160 can determine the secondary CDN node 5 storing the data corresponding to the data identifier according to the data identifier and the metadata of the data stored in each secondary CDN, and send the IP address of the secondary CDN node 5 to the terminal 141.

[0142] Alternatively, in other possible implementation, when performing domain name resolution, the domain name resolution device can determine the secondary CDN node closest to the terminal 141 from the plurality of secondary CDN nodes according to the positions of the secondary CDN nodes in the network and the network position of the terminal 141. Assuming that the secondary CDN node closest to the terminal 141 in this embodiment is the secondary CDN node 5, the domain name resolution device 160 can send the IP address of the secondary CDN node 5 to the terminal 141.

[0143] S803: The terminal 141 sends a data acquisition request to the secondary CDN node 5 based on the received IP address, and the data acquisition request includes the data identifier.

[0144] S804: The secondary CDN node 5 responds to the received data acquisition request, and when the data corresponding to the data identifier is not stored locally, requests the secondary CDN node 6 and the secondary CDN node 7 for shared data.

[0145] In an exemplary implementation, if the secondary CDN node 5 does not store the data requested by the terminal 141, a request for sharing data including the data identifier of the data requested by the terminal 141 can be broadcast to other secondary CDN nodes in the latency area, so that the secondary CDN node storing the data can feed back the data to the secondary CDN node 5, so that the secondary CDN node 5 can acquire the data requested by the terminal 141.

[0146] Alternatively, in other possible implementation, each secondary CDN node in the latency area can be configured with metadata indication information for indicating the metadata of the data stored by all secondary CDN nodes in the latency area, such as a list including the metadata of the data stored by all secondary CDN nodes. In this way, when the secondary CDN node 5 does not store the data requested by the terminal 141 locally, the secondary CDN node storing the data requested by the terminal 141 can be determined according to the locally stored metadata indication information, so that the data can be acquired from the secondary CDN node to feed back to the terminal 141.

[0147] S805: The secondary CDN node 5 returns the data to the terminal 141.

[0148] Of course, when the secondary CDN node 5 stores the data requested by the terminal 141, the secondary CDN node 5 can directly provide the data to the terminal 141, so as not to acquire the data from other secondary CDN nodes.

[0149] In the embodiment, the specific implementation of steps S803 to S805 can refer to the description of the related part of the foregoing embodiment, and will not be described here.

[0150] In a further possible embodiment, not only the secondary CDN node can provide data for the terminal 141, but also other terminals located in the network coverage range of the CDN edge node can provide data for the terminal 141. Specifically, as shown in Figure 9 Each terminal in the network coverage range of the CDN edge node can be configured with a human-oriented network-client (HON-client), and the HON-client on the terminal can support data sharing between terminals. Referring to Figure 10 to Figure 13 the data request process shown in

[0151] S901: The HON-client 2 triggers the terminal 142 to register the node to the data management apparatus 500 and requests to acquire the metadata of the data stored by the terminal 142.

[0152] Since the nodes providing data in the network coverage range of the CDN edge node 131 are usually managed by the data management apparatus 500, the terminal 142 can register with the data management apparatus 500 before serving as a node providing data, so as to be managed by the data management apparatus 500.

[0153] Meanwhile, the data management apparatus 500 manages the data on each node based on the metadata of the data, so the terminal 142 requests the data management apparatus 500 to acquire the metadata of the data stored by the terminal 142 when registering the node.

[0154] S902: The data tracking module 502 in the data management apparatus 500 can request the metadata management module 501 to generate corresponding metadata according to the data stored by the terminal 142.

[0155] S903: The metadata management module 501 generates corresponding metadata and returns it to the data tracking module 502.

[0156] S904: The data tracking module 502 returns the metadata to the terminal 142.

[0157] S905: HON-clinetl triggers terminal 141 to request data from data management apparatus 500.

[0158] The specific implementation of step S905 can be understood from the related descriptions in the foregoing embodiments, which will not be repeated here.

[0159] S906: Data management apparatus 500 returns a node list in which the data is stored to terminal 141, and the node list can include one or more IP addresses of nodes.

[0160] The specific implementation of how data management apparatus 500 determines the nodes to provide data to terminal 141 can be understood from the related descriptions in the foregoing embodiments, which will not be repeated here.

[0161] The IP addresses in the node list can include IP addresses of secondary CDN nodes, or can include an IP address of terminal 142, or can include an IP address of CDN edge node 131, etc.

[0162] S907: HON-clinetl triggers terminal 141 to request data from the corresponding secondary CDN node, terminal 142 or CDN edge node 131 according to the IP address in the node list.

[0163] In the foregoing embodiments, the secondary CDN node 5, the CDN edge node 131, the terminal 141 and the data processing apparatus 500 involved in the process of requesting data by the terminal can be implemented in the form of a separate hardware device, and in other possible implementation manners, the secondary CDN node 5, the CDN edge node 131, the terminal 141 and the data processing apparatus 500 can also be software configured on a computer device, and by running the software on the computer device, the computer device can realize the functions of the secondary CDN node 5, the CDN edge node 131, the terminal 141 and the data processing apparatus 500 respectively. Next, the secondary CDN node 5, the CDN edge node 131, the terminal 141 and the data processing apparatus 500 involved in the process of requesting data by the terminal are described in detail.

[0164] Figure 10 A computer device is provided. Figure 2 to Figure 9 The computer device 1000 shown can be specifically configured to realize the functions of the secondary CDN node 5 in the foregoing embodiments. Figure 11 The computer device 1100 shown can be specifically configured to realize the functions of the CDN edge node 131 in the foregoing embodiments. Figure 2 to Figure 9 The computer device 1100 shown can be specifically configured to realize the functions of the CDN edge node 131 in the foregoing embodiments. Figure 12 The computer device 1200 shown can be specifically configured to realize the functions of the terminal 141 in the foregoing embodiments. Figure 6 to Figure 9 The computer device 1200 shown can be specifically configured to realize the functions of the terminal 141 in the foregoing embodiments. Figure 13 The computer device 1200 shown can be specifically configured to realize the functions of the terminal 141 in the foregoing embodiments. Figure 5 to Figure 7The computer device 1300 shown can be specifically used to implement the above-mentioned Figure 9 and Figure 10 the functions of the data management apparatus 500 in the embodiments shown.

[0165] The computer device 1000 includes a bus 1001, a processor 1002, a communication interface 1003, and a memory 1004. The processor 1002, the memory 1004, and the communication interface 1003 communicate through the bus 1001. The bus 1001 can be a peripheral component interconnect (PCI) bus or an extended industry standard architecture (EISA) bus, etc. The bus can be divided into an address bus, a data bus, a control bus, etc. For ease of representation, Figure 2 to Figure 9 Only one thick line is used in the figure, but it does not mean that there is only one bus or one type of bus. The communication interface 1003 is used for communication with the outside, such as receiving a data acquisition request sent by a terminal, etc.

[0166] The processor 1002 can be a central processing unit (CPU). The memory 1004 can include a volatile memory such as a random access memory (RAM). The memory 1004 can also include a non-volatile memory such as a read-only memory (ROM), a flash memory, an HDD, or an SSD.

[0167] The memory 1004 stores executable code, and the processor 1002 executes the executable code to perform the method performed by the secondary CDN node 5.

[0168] Specifically, in the case of implementing Figure 2 to Figure 9 the secondary CDN node described in the embodiments shown, and Figure 2 to Figure 9 in the case of implementing the secondary CDN node by software, the software or program code required to perform the functions of the secondary CDN node 5 in Figure 2 to Figure 9 is stored in the memory 1004, the interaction of the secondary CDN node 5 with other devices is implemented through the communication interface 1003, and the processor is used to execute the instructions in the memory 1004 to implement the method performed by the secondary CDN node 5.

[0169] Computer device 1100 includes a bus 1101, a processor 1102, a communication interface 1103, and a memory 1104. The processor 1102, memory 1104, and communication interface 1103 communicate via the bus 1101. Computer device 1100 implements... Figure 2 to Figure 9 In the case of the illustrated embodiment, and Figure 6 to Figure 9 In the embodiment where the CDN edge node 131 is implemented in software, the software or program code required to implement the functions of the CDN edge node 131 is stored in the memory 1104. The function of the CDN edge node 131 interacting with other devices is implemented through the communication interface 1103, and the processor 1102 is used to execute the instructions in the memory 1104 to implement the methods performed by the CDN edge node 131.

[0170] Computer device 1200 includes a bus 1201, a processor 1202, a communication interface 1203, and a memory 1204. The processor 1202, memory 1204, and communication interface 1203 communicate via the bus 1201. Computer device 1200 implements... Figure 6 to Figure 9 In the case of the illustrated embodiment, and Figure 5 to Figure 7 In the embodiment where the terminal 141 is implemented in software, the software or program code required to implement the functions of the terminal 141 is stored in the memory 1204. The function of the terminal 141 to interact with other devices is implemented through the communication interface 1203, and the processor 1202 is used to execute the instructions in the memory 1204 to implement the methods performed by the terminal 141.

[0171] Computer device 1300 includes a bus 1301, a processor 1302, a communication interface 1303, and a memory 1304. The processor 1302, memory 1304, and communication interface 1303 communicate via the bus 1301. Computer device 1300 implements... Figure 9 as well as Figure 5 to Figure 7 In the case of the illustrated embodiment, and Figure 9 as well as ​ In the embodiment where the data management device 500 is implemented in software, the software or program code required to execute the functions of the metadata management module 501 and the data tracking module 502 is stored in the memory 1304. The data management device 500 interacts with other devices through the communication interface 1303, and the processor 1302 executes the instructions in the memory 1304 to implement the methods performed by the data management device 500.

[0172] Further, the embodiments of the present application further provide a computer readable storage medium, which stores instructions, and when the instructions are run on a plurality of computer devices, the plurality of computer devices execute the method described in the above embodiments. Specifically, the plurality of computer devices can include a first computer device, and the first computer device runs the instructions in the computer readable storage medium, and can implement the method executed by the secondary CDN node in the above embodiments. The first computer device includes at least one computer device.

[0173] In some embodiments, the plurality of computer devices can further include a second computer device, and the second computer device runs the instructions in the computer readable storage medium, and can implement the method executed by the data management apparatus in the above embodiments. The second computer device includes at least one computer device.

[0174] In further possible embodiments, the plurality of computer devices can further include a third computer device, and the third computer device runs the instructions in the computer readable storage medium, and can implement the method executed by the domain name resolution device in the above embodiments. The third computer device includes at least one computer device.

[0175] The embodiments of the present application further provide a computer program product, and when the computer program product is executed by a plurality of computers, the plurality of computers execute any of the above data providing methods. The computer program product can be a software installation package, and when any of the above data providing methods is needed, the computer program product can be downloaded and executed on the computer.

[0176] In addition, it should be noted that the apparatus embodiments described above are merely illustrative, and the units described as separate components can or can not be physically separated, and the components displayed as units can or can not be physical units, i.e., they can be located in one place, or distributed on multiple network units. Part or all of the modules can be selected according to actual needs to achieve the purpose of the embodiments. In addition, the apparatus embodiments provided by the present application in the drawings represent that there is a communication connection between the modules, which can be implemented as one or more communication buses or signal lines.

[0177] Those skilled in the art can clearly understand that the application can be implemented by means of software plus necessary universal hardware, and of course can also be implemented by means of dedicated hardware including special integrated circuit, special CPU, special memory, special component, etc. Generally, any function completed by computer program can be easily implemented by corresponding hardware, and the specific hardware structure for implementing the same function can also be various, such as analog circuit, digital circuit or special circuit, etc. However, for the application, software program implementation is a better embodiment. Based on such understanding, the technical solution of the application or the part of the application which makes contribution to the prior art can be embodied in the form of software product, which is stored in readable storage medium, such as computer floppy disk, U disk, mobile hard disk, ROM, RAM, magnetic disk or optical disk, etc., and includes a plurality of instructions for making a computer device (which can be personal computer, training device or network device, etc.) execute the method described in various embodiments of the application.

[0178] In the above embodiments, the implementation can be achieved by software, hardware, firmware or any combination thereof, entirely or partially. When implemented by software, the implementation can be achieved in the form of a computer program product, entirely or partially.

[0179] The computer program product includes one or more computer instructions. When the computer program instructions are loaded and executed on a computer, the flow or function described in the embodiments of the application is generated entirely or partially. The computer can be a general-purpose computer, a special-purpose computer, a computer network or other programmable device. The computer instructions can be stored in a computer-readable storage medium or transmitted from one computer-readable storage medium to another, for example, the computer instructions can be transmitted from one website, computer, training device or data center to another website, computer, training device or data center through wired (such as coaxial cable, optical fiber, digital subscriber line (DSL)) or wireless (such as infrared, wireless, microwave, etc.) mode. The computer-readable storage medium can be any available medium that can be stored by the computer or a data storage device such as training device, data center, etc. integrated with one or more available media sets. The available medium can be magnetic medium (such as floppy disk, hard disk, magnetic tape), optical medium (such as DVD) or semiconductor medium (such as solid state disk (SSD)) etc.

Claims

1. A secondary content distribution network (CDN), characterized by, The secondary content distribution network CDN is connected with a superior CDN, the secondary content distribution network CDN includes a plurality of secondary content distribution network CDN nodes, the superior CDN includes a CDN edge node close to the secondary content distribution network CDN and a superior CDN node of the CDN edge node, the CDN edge node is used for pulling data from the superior CDN node to the CDN edge node, the plurality of secondary content distribution network CDN nodes in the secondary content distribution network CDN access the superior CDN through the CDN edge node, the plurality of secondary content distribution network CDN nodes in the secondary content distribution network CDN are in a mesh structure, and different secondary content distribution network CDN nodes in the secondary content distribution network CDN communicate through direct connection links or indirect connection communication links. A first secondary CDN node is used for providing data for a terminal accessing the secondary content distribution network CDN, and the data is stored in the first secondary CDN node or a second secondary CDN node. The communication link of the first secondary CDN node obtaining the data from the second secondary CDN node bypasses the CDN edge node.

2. The secondary content distribution network (CDN) of claim 1, wherein, The communication link of the first secondary CDN node obtaining the data from the second secondary CDN node is a direct connection link or includes other secondary content distribution network CDN nodes.

3. The secondary content distribution network (CDN) of claim 1, wherein, At least one layer of CDN nodes in the superior CDN is in a tree structure.

4. The secondary content distribution network (CDN) of claim 1, wherein, The CDN edge node in the superior CDN is connected with a plurality of secondary content distribution network CDNs.

5. The secondary content distribution network (CDN) of claim 1, wherein, The secondary content distribution network CDN includes at least one latency area, and the average latency of a secondary content distribution network CDN node in the latency area responding to a terminal in the latency area is less than a preset latency threshold.

6. The secondary content distribution network (CDN) of claim 1, wherein, The CDN edge node is used for providing data for the first secondary CDN node.

7. The secondary content distribution network (CDN) of claim 1, wherein, The secondary content distribution network CDN further includes a data management device. The data management device is used for managing data that can be provided by the plurality of secondary content distribution network CDN nodes and metadata of the data.

8. The secondary content distribution network (CDN) of claim 7, wherein, The data management device is further used for providing an Internet protocol IP address of a first secondary CDN node in the plurality of secondary content distribution network CDN nodes to a first terminal accessing the secondary content distribution network CDN according to metadata of data that can be provided by the plurality of secondary content distribution network CDN nodes and data identification of data requested by the first terminal.

9. The secondary content distribution network (CDN) of claim 8, wherein, The first secondary CDN node provides first part data of the data requested by the first terminal to the first terminal, obtains second part data of the data requested by the first terminal from the second secondary CDN node, and provides the second part data to the first terminal, wherein the first part data is different from the second part data.

10. The secondary content distribution network (CDN) of claim 8, wherein, The data management apparatus is specifically configured to determine metadata of data that can be provided by a second terminal accessing the secondary content distribution network (CDN), and provide an Internet Protocol (IP) address of the second terminal to the first terminal according to the metadata of data that can be provided by the second terminal and data identification of data requested by the first terminal.

11. The secondary content distribution network (CDN) of claim 8, wherein, The CDN edge node is further configured to receive terminal information of the first terminal, the terminal information including one or more of an Internet Protocol version identification, a network protocol identification, and an access mode identification of the first terminal. The data management apparatus is specifically configured to provide the IP address of the first secondary CDN node to the first terminal according to the metadata of data that can be provided by the plurality of secondary CDN nodes, the data identification of data requested by the first terminal, and the terminal information of the first terminal obtained from the CDN edge node.

12. The secondary content distribution network (CDN) according to any one of claims 1 to 11, characterized in that, The secondary content distribution network (CDN) further includes a domain name resolution device configured to provide an Internet Protocol (IP) address of a first secondary CDN node in the plurality of secondary CDN nodes to a first terminal accessing a subnetwork according to metadata of data that can be provided by the plurality of secondary CDN nodes and data identification of data requested by the first terminal.

13. A data providing method characterized by comprising: The method is applied to a secondary content distribution network (CDN) connected to a superior CDN, the secondary CDN including a plurality of secondary CDN nodes and the superior CDN including a CDN edge node close to the secondary CDN and a superior CDN node of the CDN edge node, the CDN edge node being configured to pull data from the superior CDN node to the CDN edge node, the plurality of secondary CDN nodes accessing the superior CDN through the CDN edge node, the plurality of secondary CDN nodes in the secondary CDN being in a mesh structure, different secondary CDN nodes in the secondary CDN communicating through direct links or indirect communication links, and the method including: receiving a data acquisition request from a first terminal accessing the secondary CDN, the data acquisition request including data identification; providing data corresponding to the data identification to the first terminal by a first secondary CDN node, the data being stored in the first secondary CDN node or a second secondary CDN node, and a communication link between the first secondary CDN node and the second secondary CDN node bypassing the CDN edge node.

14. The method of claim 13, wherein, The method further includes: The first secondary CDN node receiving data from the CDN edge node.

15. The method of claim 13, wherein, The secondary CDN further includes a data management apparatus, and the method further includes: The data management apparatus receiving a request from the first terminal, the request carrying the data identification; The data management apparatus receiving a request from the first terminal, the request carrying the data identification; The data management device provides the IP address of the first secondary CDN node to the first terminal according to the data identifier and metadata of data that can be provided by the plurality of secondary content distribution network CDN nodes; Then, a data acquisition request from a first terminal accessing the secondary CDN is received, specifically: The first secondary CDN node receives the data acquisition request sent by the first terminal.

16. The method of claim 15, wherein, The data management device provides the IP address of the first secondary CDN node to the first terminal according to the data identifier and metadata of data that can be provided by the plurality of secondary content distribution network CDN nodes, and includes: The data management device acquires terminal information of the first terminal, which includes one or more of an Internet Protocol version identifier, a network protocol identifier, and an access mode identifier of the first terminal. The data management device provides the IP address of the first secondary CDN node to the first terminal according to the data identifier and metadata of data that can be provided by the plurality of secondary content distribution network CDN nodes, and includes:

17. The method of claim 15, wherein, The method further includes: When a second terminal accessing the secondary CDN stores the data requested by the first terminal, the data management device provides the IP address of the second terminal to the first terminal.

18. The method of claim 13, wherein, The secondary CDN further includes a domain name resolution device, and the method further includes: The domain name resolution device receives a domain name resolution request from the first terminal, and the domain name resolution request carries the data identifier; The domain name resolution device provides the IP address of the first secondary CDN node to the first terminal according to the data identifier and metadata of data that can be provided by the plurality of secondary content distribution network CDN nodes; Then, a data acquisition request from a first terminal accessing the secondary CDN is received, specifically: The first secondary CDN node receives the data acquisition request sent by the first terminal.

19. The method according to any one of claims 13 to 18, characterized in that, The first secondary CDN node provides the data corresponding to the data identifier to the first terminal, including: The first secondary CDN node acquires a second part of data requested by the first terminal from the second secondary CDN node; The first secondary CDN node provides the second part of data and a first part of data requested by the first terminal stored locally to the first terminal, and the first part of data is different from the second part of data.

20. A computer-readable storage medium, characterized in that, The computer readable storage medium stores instructions, which, when executed on a plurality of computing devices, cause the plurality of computing devices to perform the method of any one of claims 13 to 19.

Citation Information

Patent Citations

  • Data distribution method and distribution server

    CN109842567A