WO2022063125A1 - 一种次级内容分发网络cdn、数据提供方法和存储介质 - Google Patents

一种次级内容分发网络cdn、数据提供方法和存储介质 Download PDF

Info

Publication number
WO2022063125A1
WO2022063125A1 PCT/CN2021/119615 CN2021119615W WO2022063125A1 WO 2022063125 A1 WO2022063125 A1 WO 2022063125A1 CN 2021119615 W CN2021119615 W CN 2021119615W WO 2022063125 A1 WO2022063125 A1 WO 2022063125A1
Authority
WO
WIPO (PCT)
Prior art keywords
cdn
data
terminal
node
nodes
Prior art date
Application number
PCT/CN2021/119615
Other languages
English (en)
French (fr)
Inventor
单卫华
董阳
Original Assignee
华为云计算技术有限公司
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by 华为云计算技术有限公司 filed Critical 华为云计算技术有限公司
Publication of WO2022063125A1 publication Critical patent/WO2022063125A1/zh

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F16/00Information retrieval; Database structures therefor; File system structures therefor
    • G06F16/20Information retrieval; Database structures therefor; File system structures therefor of structured data, e.g. relational data
    • G06F16/22Indexing; Data structures therefor; Storage structures
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F16/00Information retrieval; Database structures therefor; File system structures therefor
    • G06F16/20Information retrieval; Database structures therefor; File system structures therefor of structured data, e.g. relational data
    • G06F16/23Updating
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F16/00Information retrieval; Database structures therefor; File system structures therefor
    • G06F16/20Information retrieval; Database structures therefor; File system structures therefor of structured data, e.g. relational data
    • G06F16/27Replication, distribution or synchronisation of data between databases or within a distributed database system; Distributed database system architectures therefor
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L67/00Network arrangements or protocols for supporting network services or applications
    • H04L67/01Protocols
    • H04L67/10Protocols in which an application is distributed across nodes in the network
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L67/00Network arrangements or protocols for supporting network services or applications
    • H04L67/01Protocols
    • H04L67/10Protocols in which an application is distributed across nodes in the network
    • H04L67/1097Protocols in which an application is distributed across nodes in the network for distributed storage of data in networks, e.g. transport arrangements for network file system [NFS], storage area networks [SAN] or network attached storage [NAS]

Definitions

  • the present application relates to the technical field of content distribution network CDNs, and in particular, to a secondary CDN, a data providing method and a storage medium.
  • CDN Content Delivery Network
  • CDN nodes deployed at the "edge" of the network usually have limited storage, bandwidth, and computing capabilities. When there are a large number of terminals requesting data from CDN edge nodes at the same time, this will lead to CDN edge nodes. The load is too large, so that some terminals may not be able to get a response from the CDN edge node for a long time.
  • the present application provides a secondary content distribution network CDN for relieving pressure on CDN edge nodes.
  • the present application also provides a data providing method, apparatus, computer-readable storage medium, and computer program product.
  • the present application provides a secondary CDN, where the secondary CDN is connected to an upper-level CDN and includes a plurality of secondary CDN nodes.
  • the upper-level CND may include at least one layer of CDN nodes, such as a traditional CND.
  • the upper-level CDN close to the secondary CDN is a CDN edge node, and the multiple secondary CDN nodes access the upper-level CDN through the CDN edge node.
  • the first secondary CDN node in the multiple secondary CDNs may be used to provide data for terminals accessing the secondary CDN, and the data may generally be stored in the first secondary CDN node or the second secondary CDN node, and when the first secondary CDN node does not locally store the data requested by the terminal, the first secondary CDN node can obtain the data from the second secondary CDN node, and the first secondary CDN node and the The communication link between the second secondary CDN nodes bypasses the CDN edge nodes.
  • the first secondary CDN node can provide data for the terminal, and the CDN edge node does not need to provide data for the terminal, that is, the first secondary CDN node can share the load for the CDN edge node. Partial load, in this way, the load pressure of CDN edge nodes can be relieved, and the state of waiting for a response for a long time for terminals accessing the secondary CDN can be avoided as much as possible.
  • the total amount of data that can be stored by the CDN edge nodes and the deployed multiple secondary CDN nodes will be more than the amount of data stored by the CDN edge nodes. It realizes the expansion of the data volume stored by CDN edge nodes.
  • the increase in the amount of data stored in the CDN edge nodes can reduce the frequency of CDN edge nodes pulling data to the upper-layer CDN nodes through the "return-to-source” method, thereby reducing the traffic generated by the middle layer and the top layer, which makes the middle layer and the top layer less.
  • the service capacity of the top layer is not prone to bottlenecks, and the cost of the middle layer and the top layer can also be reduced.
  • the communication link through which the first secondary CDN node obtains the data requested by the terminal from the second secondary CDN node is a direct link, or the The communication link is to include other secondary CDN nodes.
  • the secondary CDN nodes may communicate directly with each other, that is, communicate through a direct link, or between two secondary CDN nodes, there may be other possible intermediate nodes.
  • the nodes are other secondary CDN nodes.
  • the first secondary CDN node can communicate directly or indirectly with other secondary CDN nodes, when the first secondary CDN node does not store the data requested by the terminal locally, it can The data is acquired in the manner, so that the first secondary CDN node can further provide the acquired data to the terminal.
  • At least one layer of CDN nodes in the upper-level CDN is a tree-like structure.
  • a tree structure which can also be called a tree structure, usually includes a root node and several child nodes, and these nodes can form at least two layers of nodes, wherein the topmost layer (or called the first layer) is a root node, the next layer (second layer) node connected to the root node is the child node of the root node.
  • a third layer child node can also be connected under the second layer child node, and the There is usually no direct communication between the nodes, that is, the communication link between the nodes of the same layer usually includes the nodes of the upper layer.
  • the node of the layer closest to the user that is, the lowest CDN node in the tree structure
  • the CND edge node the node of the layer closest to the user
  • the multiple secondary CDN nodes in the secondary CND are meshed structure.
  • the mesh structure means that each CDN node in the secondary CDN can be directly connected to other secondary CDN nodes in the secondary CDN. In this way, different secondary CDN nodes can be connected through direct links or indirect connections.
  • the communication links between multiple secondary CDN nodes can communicate and share data, and the communication links between multiple secondary CDN nodes can form a mesh.
  • a CDN edge node in an upper-level CDN may connect to multiple secondary CDNs .
  • two or more secondary CDNs can be deployed under one CDN edge node, so that multiple secondary CDNs can perform load sharing for the CDN edge node and expand the amount of stored data.
  • only one secondary CDN may be deployed on a CDN edge node, and multiple CDN edge nodes may be connected to the same secondary CDN.
  • the secondary CDN node responds to the delay of the terminal to the secondary
  • the secondary CDN node performs area division.
  • the secondary CDN may include at least one delay area, and the average delay of the secondary CDN nodes in the delay area in response to the terminals in the delay area is less than the preset delay. threshold.
  • the secondary CDN nodes may also be divided into regions based on other factors, such as the geographical location, network location, network environment and other factors of the terminal and the secondary CDN nodes. This application does not address this. Not limited.
  • the CDN edge node may be used to provide the first secondary CDN node with In this way, the CDN edge node can update the data stored in the first secondary CDN node.
  • the CDN edge node can send the data that the first secondary CDN node has not yet stored, or when the terminal requests the data If not stored on the first secondary CDN node and other secondary CDN nodes, the first secondary CDN node can request data from the CND edge node, and the CDN edge node provides the terminal to the first secondary CDN node, so that Then, the first secondary CDN node returns the data to the terminal.
  • the secondary CND may further include a data management device, the data management The device can be used to manage the data provided by the secondary CDN node for multiple times and the metadata of the data.
  • the metadata is data used to describe the data, for example, the metadata may be an identifier of the data, a uniform resource locator (Uniform Resource Locator, URL) to describe the information of the attributes of the data, and the like.
  • the management of data and metadata by the data management device may, for example, be to manage the distribution of data stored on each secondary CDN node, and to create, delete, and modify metadata corresponding to the data stored on the secondary CDN nodes.
  • the data management apparatus may be further configured to receive metadata based on data provided by multiple secondary CDN nodes, and The data identifier of the data requested by the first terminal entering the secondary CDN is provided to the first terminal, and the Internet Protocol (Internet Protocol, IP) address of the first secondary CDN node among the multiple secondary CND nodes is provided to the first terminal.
  • IP Internet Protocol
  • the terminal may request data from the corresponding first secondary CDN node based on the received IP address.
  • the IP address provided by the data management device to the terminal may be the IP address of the first secondary CDN node that stores the data requested by the terminal, so that the terminal can quickly obtain the required data from the first secondary CDN node. data, thereby reducing the delay for the terminal to obtain data.
  • the complete data requested by the terminal may not be stored on the first secondary CDN node, that is, the first secondary CDN node may not store the complete data requested by the terminal. Only the first part of the data is stored on the node.
  • the first secondary CDN node can obtain the second part of the data requested by the first terminal from the second secondary CDN node, for example, it can be sent to the second secondary CDN node.
  • the first terminal obtains the second part of the data from the second secondary CDN node by means of the data identification of the data requested by the first terminal.
  • the first secondary CDN node can use the locally stored first part of the data and the data from the second secondary CDN.
  • the second part of the data obtained on the node is sent to the first terminal.
  • the first part of data and the second part of data may be different data. In this way, the first terminal can obtain the complete data requested by the first secondary CDN node.
  • the data management apparatus When the terminal provides the IP address of the first secondary CDN node, it may specifically be the metadata of the data provided by the second terminal whose IEID can access the secondary CDN node, and according to the data provided by the second terminal.
  • the metadata, and the data identifier of the data requested by the first terminal provide the first terminal with the IP address of the second terminal. In this way, the first terminal can access the second terminal according to the IP address, so that the data required by the first terminal can be obtained from the second terminal, thereby realizing data sharing between the terminals.
  • the CDN edge node is further configured to receive Terminal information of the first terminal, the terminal information can be, for example, the Internet Protocol version identifier of the first terminal (for example, the first terminal is an identifier that communicates based on the VPV4 protocol, or the identifier that communicates based on the IPV6 protocol, or both can support etc. ), any one or more of network protocol identifiers (eg, UPNP communication protocol identifiers, etc.), and access mode identifiers (eg, 4G, 5G, or WIFI access, etc.).
  • the Internet Protocol version identifier of the first terminal for example, the first terminal is an identifier that communicates based on the VPV4 protocol, or the identifier that communicates based on the IPV6 protocol, or both can support etc.
  • any one or more of network protocol identifiers eg, UPNP communication protocol identifiers, etc.
  • access mode identifiers eg, 4G, 5G, or WIFI access, etc
  • the data management device when the data management device provides the IP address to the first terminal, it may specifically be based on the metadata of the data that can be provided by the multiple secondary CDN nodes, the data identifier of the data requested by the first terminal, and the data obtained from the CDN edge node.
  • the acquired terminal information of the first terminal determines the IP address of the first secondary CDN node, and provides the first terminal with the IP address of the first secondary CDN node.
  • the secondary CDN may also Including a domain name parsing device, the domain name parsing device is used to provide the first terminal with the metadata of the data that can be provided by the multiple secondary CDN nodes and the data identifier of the data requested by the first terminal accessing the sub-network.
  • the data requested by the first terminal may be stored on the first secondary CDN node determined by the domain name resolution device.
  • the domain name resolution device can determine, according to data stored on each secondary CDN node, the Provide the IP address of the first secondary CDN node; or, the first secondary CDN node determined by the domain name resolution device may not store the data requested by the first terminal.
  • the domain name resolution device may not store the data requested by each secondary CDN node and the location of the first terminal, provide the first terminal with the IP address of the secondary CDN node closest to the first terminal, and at this time, when the first terminal requests data from the first secondary CDN node, The first secondary CDN node may acquire data from other secondary CDN nodes, and provide the data to the first terminal again.
  • the data management device may also be used 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 the terminal or is likely to be frequently accessed by the terminal. In this way, the data requested by the terminal is usually located in the secondary CDN node with a high probability, and there is no need to obtain data from the CDN edge node, thereby further reducing the load pressure on the CDN edge node and reducing the traffic in the upper CDN.
  • an embodiment of the present application further provides a method for providing data, the method is applied to a secondary content distribution network CDN, the secondary CDN is connected to an upper-level CDN, and the secondary CDN includes multiple secondary CDNs node, the upper-level CDN includes at least one layer of CDN nodes, wherein, in the upper-level CDN, the ones close to the secondary CDN are CDN edge nodes, and the multiple secondary CDN nodes access the upper-level CDN through the CDN edge nodes ;
  • the method includes:
  • the first secondary CDN node is used to provide the first terminal with the data corresponding to the data identifier, the data is stored in the first secondary CDN node or the second secondary CDN node, and the first secondary CDN node
  • the communication link by which the primary CDN node obtains the data from the second secondary CDN node bypasses the CDN edge node.
  • the method further includes:
  • the first secondary CDN node receives data from the CDN edge node.
  • the secondary CND further includes a data management device, and the method further includes:
  • the data management device receives a request from the first terminal, where the request carries the data identifier
  • the data management device provides the first terminal with the IP address of the first secondary CDN node according to the data identifier and the metadata of the data that can be provided by the multiple secondary CDN nodes;
  • the first secondary CDN node receives the data acquisition request sent by the first terminal.
  • the data management apparatus is based on the data identifier and the data provided by the multiple secondary CDN nodes.
  • metadata providing the first terminal with the IP address of the first secondary CDN node, including:
  • terminal information of the first terminal where the terminal information 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 first secondary terminal to the first terminal according to the metadata of the data that can be provided by the multiple secondary CDN nodes, the data identifier, and the terminal information of the first terminal. IP address of the CDN node
  • the method further includes:
  • the data management apparatus When the second terminal accessing the secondary CND stores the data requested by the first terminal, the data management apparatus provides the first terminal with the IP address of the second terminal.
  • the secondary CND further includes a domain name resolution device, and the method Also includes:
  • the domain name resolution device receives a domain name resolution request from the first terminal, where the domain name resolution request carries the data identifier;
  • the domain name resolution device provides the first terminal with the IP address of the first secondary CDN node according to the data identifier and the metadata of the data that the multiple secondary CDN nodes can provide;
  • receiving a data acquisition request from the first terminal accessing the subnet is specifically:
  • the first secondary CDN node receives the data acquisition request sent by the first terminal.
  • the use of the first secondary CDN node to the first secondary CDN node provides data corresponding to the data identifier, including:
  • the first secondary CDN node provides the first terminal with the second partial data and the locally stored first partial data of the data requested by the first terminal, the first partial data and the second partial data different.
  • the method further includes:
  • the data management device identifies hot data
  • the data management apparatus deploys the hot data on secondary CDN nodes in the subnet.
  • the present application provides a data providing apparatus, the data providing apparatus is applied to the above-mentioned first secondary CDN node, and the data providing apparatus includes a method for implementing the second aspect or any possible implementation manner of the second aspect Each module of the data providing method executed by the first secondary CDN node in the .
  • the present application provides a computer-readable storage medium, where instructions are stored in the computer-readable storage medium, when the computer-readable storage medium runs on a plurality of computer devices, the plurality of computer devices are made to execute the above-mentioned second aspect or the first aspect.
  • the first computer device among the plurality of computer devices can execute the instructions in the computer-readable storage medium to implement the method performed by the first secondary CDN node in the second aspect; wherein, the first computer The device includes at least one computer device.
  • the second computer device among the plurality of computer devices, running the instructions in the computer-readable storage medium can implement the method executed by the data management apparatus in the second aspect; wherein, the second computer device includes at least one computer device .
  • the third computer device among the plurality of computer devices, running the instructions in the computer-readable storage medium can implement the method performed by the domain name resolution device in the second aspect; wherein, the third computer device includes at least one computer device .
  • the present application provides a computer program product containing instructions, which, when executed on multiple computer devices, cause the multiple computer devices to execute the second aspect or any one of the implementations of the second aspect.
  • the first computer device among the plurality of computer devices runs the computer program product containing the instructions, and can implement the method executed by the first secondary CDN node in the second aspect above; wherein the first computer device includes At least one computer device.
  • the second computer device in the plurality of computer devices, running the computer program product containing the instructions can implement the method executed by the data management apparatus in the second aspect; wherein the second computer device includes at least one computer device.
  • the third computer device among the plurality of computer devices, running the computer program product containing the instructions can implement the method performed by the domain name resolution device in the second aspect; wherein the third computer device includes at least one computer device.
  • the present application may further combine to provide more implementation manners.
  • FIG. 1 is a schematic diagram of a network architecture of a CDN
  • FIG. 2 is a schematic diagram of a network architecture of a secondary CDN according to an embodiment of the present application
  • FIG. 3 is a schematic diagram of a network architecture of another secondary CDN according to an embodiment of the present application.
  • FIG. 4 is a schematic diagram of a network architecture of another secondary CDN provided by an embodiment of the present application.
  • FIG. 5 is a schematic diagram of a network architecture of still another secondary CDN according to an embodiment of the present application.
  • FIG. 6 is a schematic diagram of a network architecture of still another secondary CDN according to an embodiment of the present application.
  • FIG. 7 is a schematic diagram of a network architecture of still another secondary CDN according to an embodiment of the present application.
  • FIG. 8 is a schematic diagram of a network architecture of still another secondary CDN according to an embodiment of the present application.
  • FIG. 9 is a schematic diagram of a network architecture of still another secondary CDN provided by an embodiment of the present application.
  • FIG. 10 is a schematic structural diagram of a computer device 1000 according to an embodiment of the present application.
  • FIG. 11 is a schematic structural diagram of another computer device 1100 provided by an embodiment of the present application.
  • FIG. 12 is a schematic structural diagram of another computer device 1200 provided by an embodiment of the present application.
  • FIG. 13 is a schematic structural diagram of still another computer device 1300 provided by an embodiment of the present application.
  • the network architecture shown in FIG. 1 can be deployed on the basis of the existing network.
  • the network architecture 100 may include CDN nodes at different levels, such as CDN nodes 110 at the top layer (eg, core network layer), CDN nodes 120 at the middle layer (eg, aggregation layer), CDN edge nodes 130 at the bottom layer, and the like.
  • CDN nodes 110 at the top layer eg, core network layer
  • CDN nodes 120 at the middle layer (eg, aggregation layer)
  • CDN edge nodes 130 at the bottom layer, and the like.
  • the N-layer CDN node that is, the CDN node located at the "edge" of the network
  • the network architecture includes three layers of CDN nodes as an example for illustrative illustration, and the CDN node at the bottom layer is a CDN edge node (ie, the above N is 1).
  • the network structure may include any number of levels of CDN nodes, and the number of CDN nodes at each level may also be any number, which is not limited in this embodiment.
  • Corresponding data may be stored on CDN nodes at different levels, and the data stored in each level of CDN nodes may originate from the CDN nodes in the upper level, and the data stored in the topmost CDN node 110 may originate from Content source 101 .
  • the content source 101 can be, for example, a data center, etc., and CDN nodes at various levels can be implemented by deploying corresponding servers.
  • the CDN edge nodes 130 When deploying the CDN edge nodes 130, the CDN edge nodes 130 can usually be deployed according to regions (such as provinces, cities, etc.), and each CDN edge node 130 can be one or more terminals 140 accessing the CDN edge node 130 provide data.
  • regions such as provinces, cities, etc.
  • the CDN edge node 130 can pull the data from the CDN node 120 of the upper layer to the CDN edge node 130 for local caching; if the CDN 120 does not store the data either If there is data requested by the terminal 140, the CDN 120 pulls the data from the CDN node 110 on the upper layer, and sends it to the CDN node 120, and then the CDN node 120 forwards the data to the CDN edge node 130; if the CDN node If the data requested by the terminal 140 is still not stored in 110, it is obtained from the content source 101 and forwarded layer by layer to the CDN edge node 130 for local caching.
  • the CDN edge node 130 sends the locally cached data obtained in the "back-to-source” manner to the terminal 140 .
  • the data request path may be: terminal 140 -> CDN edge node 130 -> CDN node 120 -> CDN node 110 -> content source 101 .
  • the number of terminals 140 accessing the CDN edge node 130 is relatively large.
  • the terminals 140 accessing the same CDN edge node 130 are all users in the province. terminal.
  • a large number of terminals 140 request data from the CDN edge node 130 at the same time such as downloading software update resource packages, video data, etc.
  • this will cause greater load pressure on the CDN edge node 130, and
  • Some terminals 140 may be in a state of waiting for a response from the CDN edge node 130 for a long time.
  • the amount of data that each CDN edge node 130 can store is limited, so that when the CDN edge node 130 does not store the data requested by the terminal 140, the CDN edge node 130 usually obtains the terminal through a "back-to-source” method.
  • 140 which causes the middle layer and the top layer to easily generate large traffic (for example, there are multiple different CDN edge nodes 130 at the same time pulling data from the middle layer or the top layer by "returning to the source", etc.),
  • an embodiment of the present application provides a secondary CDN, the secondary CDN is connected to an upper-level CDN, the secondary CDN includes a plurality of secondary CDN nodes, and the communication links between different secondary CDN nodes are bypassed.
  • each secondary CDN node can also be called an Inter Planetary Content Delivery Network (IPCDN) node.
  • IPCDN Inter Planetary Content Delivery Network
  • each secondary CDN node can provide data for terminals accessing the secondary CDN.
  • the secondary CDN node may provide data for the terminal, instead of the CDN edge node providing data for the terminal, that is, the secondary CDN node can provide data for the CDN
  • the edge node shares part of the load, so that the load pressure of the CDN edge node can be relieved, and it is also possible to avoid the state of waiting for a response for a long time for some terminals in the CDN edge node as much as possible.
  • the total amount of data that can be stored by the CDN edge nodes and the deployed multiple secondary CDN nodes will be more than the amount of data stored by the CDN edge nodes. It realizes the expansion of the data volume stored by CDN edge nodes.
  • the increase in the amount of data stored in the CDN edge nodes can reduce the frequency of CDN edge nodes pulling data to the upper-layer CDN nodes through the "return-to-source” method, thereby reducing the traffic generated by the middle layer and the top layer, which makes the middle layer and the top layer less.
  • the service capacity of the top layer is not prone to bottlenecks, and the cost of the middle layer and the top layer can also be reduced.
  • the network coverage of multiple secondary CDN nodes may be greater than the network coverage of a single CDN edge node.
  • the total network coverage may be greater than the network coverage of the single CDN edge node; of course, the network coverage of multiple secondary CDN nodes may also be smaller than the network coverage of a single CDN edge node, which is not limited in this embodiment .
  • a secondary CDN can be deployed for CDN edge nodes.
  • the secondary CDN may be connected to the upper-level CDN shown in FIG. 1 , specifically, the upper-level CDN may be connected to the upper-level CDN through a CDN edge node connected to the secondary CDN.
  • each secondary CDN may include multiple secondary CDN nodes.
  • the secondary CDN deployed for the CDN edge node 131 may include 7 secondary CDN nodes, numbered 1 to 7.
  • the seven secondary CDN nodes may be divided into two secondary CDN node clusters, as shown in FIG.
  • each secondary CDN node cluster can form a separate secondary CDN, that is, the CDN edge node 131 can connect two secondary CDNs, one secondary CDN contains 4 secondary CDN nodes, and the other secondary CDN Contains 3 secondary CDN nodes. Moreover, both of the two secondary CDNs can be connected to the upper-level CDN through the CDN edge node 131 .
  • the secondary CDN deployed for the CDN edge node 132 may include 3 secondary CDN nodes, numbered 8 to 10.
  • the secondary CDN deployed for the CDN edge node 133 may include 2 secondary CDN nodes, numbered 11 and 12; the secondary CDN deployed for the CDN edge node 134 may include 3 secondary CDN nodes, Numbered 13 to 15.
  • each secondary CDN node may allow one or more terminals to access (the terminals accessed by some secondary CDN nodes are not shown), for example, there are two terminals accessing the secondary CDN3 node.
  • FIG. 2 takes the example of including 4 CDN edge nodes for illustration.
  • a CDN-based network architecture may include any number of CDN edge nodes, and for the deployment of CDN edge nodes
  • the secondary CDN may include any number of secondary CDN nodes, which is not limited in this embodiment.
  • the secondary CDN node may be deployed as a functional module on the device on which the home network relies, such as home routers, smart TVs and other devices.
  • the bandwidth resources and storage resources of the home network can be reused, which can not only realize the expansion of the storage data volume of the CDN edge node, but also can not occupy the bandwidth of the CDN edge node when the secondary CDN node provides data to the terminal.
  • the secondary CDN node may also be other devices deployed as functional modules within the network coverage of CDN edge nodes, such as Mobile Edge Computing (MEC) devices, fixed network-based Edge computing (Edge Computing, EC) equipment, etc.
  • MEC Mobile Edge Computing
  • Edge Computing EC
  • the secondary CDN node may also be an independently deployed server or the like.
  • the terminal when it requests data, it may request data from a CDN edge node, a secondary CDN node, or a cluster composed of multiple secondary CDN nodes. Taking the terminal requesting data from the first secondary CDN node among the multiple secondary CDN nodes as an example, the terminal may send a data acquisition request to the first secondary CDN node, and the data acquisition request includes the data identifier of the data to be acquired by the terminal. .
  • the first secondary CDN node may locally search for data with the data identification according to the data identification parsed from the data acquisition request, and if found, may send the data to the terminal.
  • the first secondary CDN node may send the data identifier to other secondary CDN nodes in the secondary CDN, such as the second secondary CDN node, to request the second secondary CDN
  • the CDN nodes share the data corresponding to the data identifier. If other CDN nodes store the data corresponding to the data identifier, the data may be sent to the first secondary CDN node, and the first secondary CDN node may provide 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 CND 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, including Other secondary CND nodes, but excluding CDN edge nodes.
  • the first secondary CDN can send a request including the data identifier to the CDN edge node, so that the CDN edge node can find the data with the data from its locally stored data. The data identified by this data. If the CDN edge node stores the data locally, the CDN edge node can send it to the first secondary CDN node for caching, and then the first secondary CDN node forwards the locally cached data to the terminal. However, if the CDN edge node does not store the data locally, the CDN edge node can pull the data from the upper-layer CDN by "returning to the source", and then provide the pulled data to the terminal through the first secondary CDN node.
  • a terminal that is not connected to the secondary CDN, but is located within the network coverage of the CDN edge node, it can directly send a data acquisition request containing the above data identifier to the CDN edge node, so that the CDN edge node provides the terminal with data.
  • a corresponding communication interface may be configured on the CDN edge node, and the terminal may request data from the CDN edge node through the communication interface on the CDN edge node. Text Transfer Protocol, HTTP) interface, etc., or other interfaces.
  • the CDN nodes of each layer can be in a tree-like structure, wherein the tree-like structure, which can also be called a tree-like structure, usually includes a root node and several children Nodes, these nodes may constitute at least two layers of nodes, and may include three layers of nodes as shown in FIG. 2 .
  • the top layer (or called the first layer) is a root node
  • the next layer (second layer) node connected to the root node is the child node of the root node
  • the second layer child nodes can also be connected
  • the multiple secondary CDN nodes in the secondary CDN may be in a mesh structure.
  • the mesh structure means that each CDN node in the secondary CDN can be directly connected to other secondary CDN nodes in the secondary CDN. In this way, different secondary CDN nodes can be connected through direct links or indirect connections.
  • the communication links between multiple secondary CDN nodes can communicate and share data, and the communication links between multiple secondary CDN nodes can form a mesh.
  • the secondary CDN nodes and multiple terminals within the network coverage of the CDN edge node can be further clustered according to the delay of the secondary CDN node responding to the terminal, so as to obtain a set with a lower response delay,
  • the set includes secondary CDN nodes and terminals, and the average delay of the secondary CDN nodes in the set in response to the terminals in the set is less than a preset delay threshold.
  • the CDN edge node can count the delays of each terminal in the CDN edge node being responded by each secondary CDN node, and perform clustering calculation based on the delay of each terminal relative to each secondary CDN node, for example, it can be Taking the secondary CDN node as a benchmark, determine the average value of the delay of the secondary CDN node responding to multiple terminals, and if the average delay of the multiple terminals is less than the preset delay threshold, then connect the secondary CDN node with the Multiple terminals are grouped together.
  • each clustering category may include multiple secondary CDN nodes and one or more terminals.
  • each delay region corresponds to a clustering result
  • the time delay region The average delay of the secondary CDN nodes in the delay area in response to the terminals in the delay area is less than the preset delay threshold.
  • the CDN edge node 131 can be divided into two delay regions.
  • each delay area corresponds to a network range of a secondary CDN
  • the secondary CDN nodes included in the delay area are the secondary CDN nodes that constitute the secondary CDN.
  • the delay regions in multiple CDN edge nodes can also be combined into one delay region, and the average delay of the secondary CDN nodes in the combined delay region responding to the terminals in the delay region is still the same. less than the preset delay threshold.
  • the CDN edge node 133 , secondary CDN nodes and terminals within the network coverage of the CDN edge node 134 may be combined into one delay area.
  • the network coverage of the CDN edge node may also include only one delay area.
  • the secondary CDN nodes and terminals within the network coverage of the CDN edge node 132 may be clustered in a delay area. in the area.
  • data can be shared between different secondary CDN nodes within the same delay area. For example, as shown in FIG. 3 , when a terminal accessing the secondary CDN node 6, when the data requested from the secondary CDN node 6 is not stored in the secondary CDN node 6, the data can be obtained from the secondary CDN in the same time domain area.
  • the data stored in the node 5 and the secondary CDN node 7 is searched (as shown in Figure 3 back to the source from east to west), and if the data requested by the terminal is found from the two secondary CDN nodes, the secondary CDN node
  • the primary CDN node 5 or the secondary CDN node 7 can send the found data to the secondary CDN node 6, and then the secondary CDN node 6 provides the data to the terminal.
  • the secondary CDN node 6 can request data from the CDN edge node 131, and when the CDN edge node 131 still does not store the data requested by the terminal When there is data, the CDN edge node 131 continues to request data from the upper-layer CDN (such as CDN node 120, CDN node 110, etc.) nodes through the "back-to-source” method, until the CDN edge node 131 requests data from the upper-layer CDN node and sends it to the upper-layer CDN node. Provided to the terminal (North-South back-to-source as shown in Figure 3).
  • the upper-layer CDN such as CDN node 120, CDN node 110, etc.
  • 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.
  • the secondary CDN node and the terminal connected to the secondary CDN node are divided into regions according to the delay of the secondary CDN node responding to the terminal.
  • It can also be based on the geographical location, network location, network environment and other factors of the terminal and the secondary CDN node to perform regional division on the secondary CDN node and the terminal, or it can also be based on any of the above factors (including time delay) or
  • each secondary CDN node in the CDN edge node may be configured with a distributed cache and a communication interface.
  • the secondary CDN node 5 is configured with distributed cache 1 and communication interface 1
  • the secondary CDN node 6 is configured with distributed cache 2 and communication interface 2
  • the secondary CDN node 7 is configured with distributed cache 2 and communication interface 2. Buffer 3 and communication interface 3.
  • the distributed cache on each secondary CDN node can be used to cache data.
  • the secondary CDN node 6 can cache the data from the distributed cache 2. Check whether the data requested by the terminal exists in the data.
  • 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 be the secondary CDN node in the same area (such as the above-mentioned delay area) 5 and the data cached by the distributed cache 1 and the distributed cache 3 of the secondary CDN node 7 to find out 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.
  • 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.
  • the secondary CDN node 6 pulls data from the CDN edge node 131 or even the upper CDN by means of "returning to the source".
  • distributed cache 1, distributed cache 2 and distributed cache 3 in the same area can form a distributed cache grid, and data can be shared and transmitted among the distributed cache grids.
  • a distributed mesh network including multiple secondary CDN nodes can be deployed based on CDN edge nodes.
  • a communication interface may be configured on the secondary CDN node, and the communication interface may adopt the same communication protocol as the communication interface on the CDN edge node, or may adopt a different communication protocol with 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 changes to the terminal. Increase the feasibility of the plan in actual implementation.
  • a data management device may also be configured in the CDN edge node, so as to use the data management device to manage the data stored on each secondary CDN node.
  • a data management device 500 can be configured in the CDN edge node 131, and the data management device can be used to manage the data stored on the secondary CDN node 5, the secondary CDN node 6 and the secondary CDN node 7 and the data stored on the secondary CDN node 7.
  • the metadata of the data is managed.
  • one data management device may be deployed for each delay circle.
  • one data management device may be shared by multiple delay circles. For example, only one data management device may be deployed in the entire CDN network. etc., this embodiment does not limit this.
  • the data management apparatus 500 may include a metadata tracking module 501 and a data tracking module 502 .
  • the metadata tracking module 501 can be used to generate and manage metadata corresponding to data in each secondary CDN node.
  • metadata also known as intermediary data, etc.
  • data about data such as property information describing data, used to support such as indicating storage location, resource search, file record and other functions.
  • the metadata may be a "seed" of a file in a certain format, and the "seed" may include the uniform resource of the video data on the secondary CDN node. Locator (Uniform Resource Locator, URL), which can be used to obtain corresponding data according to the "seed".
  • URL Uniform Resource Locator
  • the metadata in this embodiment may specifically include basic information of data cached on the secondary CDN node, such as information such as the name of the data resource, the data size, and the data type.
  • the metadata may also include parity information and/or slice information.
  • the verification information can be, for example, information used to perform integrity verification on the cached data, etc., or can be other verification information;
  • the slice information can be used to describe the slice to which the data belongs, such as a slice of the data. identification, etc.
  • a file can be divided into multiple slice data, and multiple slice data can be stored in different secondary CDN nodes.
  • the secondary CDN nodes that store different slice data of the same file can be in the same latency region.
  • the metadata may also use other data for describing data, which is not limited in this embodiment.
  • the data tracking module 502 can be used to track data and metadata information on each secondary CDN node, and maintain and adjust the data on each secondary CDN node.
  • 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, and when it is determined that new data is cached in one of the secondary CDN nodes, the data tracking module 502 may send a metadata creation request for the new cached data to the metadata tracking module 501 to request the metadata tracking module 501 to create corresponding metadata; then, the data tracking module 502 may store the metadata created by the metadata tracking module 501. Send it to the secondary CDN node for storage. However, when part of the cached data is deleted from the secondary CDN node, the data tracking module 502 may delete the metadata corresponding to the part of the cached data from the maintained metadata information.
  • the data tracking module 502 may also schedule the data buffered on each secondary CDN node within the delay area. For example, the data tracking module 502 can balance the load and stored data of multiple secondary CDN nodes in the same delay area. Specifically, different secondary CDN nodes in the same delay area may store some of the same In this way, when the data is requested by a large number of terminals, multiple secondary CDN nodes can provide data to the terminal at the same time to balance the load of each secondary CDN node. In this way, the delay can be avoided as much as possible A situation where the load on a single secondary CDN node within a region is too high.
  • the data tracking module 502 when the data tracking module 502 schedules and manages data stored on each secondary CDN node, it can push hot data to one or more secondary CDN nodes, where the hot data refers to being accessed more frequently or Data that is more likely to be accessed.
  • the hot data can be a software update package of a certain game, etc.
  • the data tracking module 502 can obtain the software update package from the CDN edge node 131 and push it to a Or multiple secondary CDN nodes, so that when the terminal needs to update the game, it can directly obtain the software update package from the corresponding secondary CDN nodes.
  • the data tracking module 502 can collect the data provided by each secondary CDN node for the terminal, and determine the data with higher frequency requested by the terminal, so that the data tracking module 502 can predict that the data belongs to hot data, and store it as hot data. Copy to one or more secondary CDN nodes, in this way, there can be a larger number of secondary CDN nodes within the network coverage of CDN edge node 131 to store the hot data, and the terminal does not need to store the hot data from a small number of secondary CDN nodes. In this way, it can reduce the probability of excessive load of a single secondary CDN node, reduce the possibility of bottlenecks in a single secondary CDN node, and increase the availability and reliability of the distributed network.
  • the hot data is determined as hot data
  • the hot data can be provided by the CDN edge node or other equipment; or, it can be based on the data provided by the secondary CDN node in the past to predict the hotspot data that the secondary CDN node can provide in the future period of time, such as the future period. Movie data released in time, etc.
  • the specific implementation manner of how the data tracking module 502 determines thermal data is not limited.
  • the data management device 500 may be implemented by software, such as a computer program running on a server, etc.; or, the data management device 500 may also be implemented by hardware, such as using an application-specific integrated circuit (application-specific integrated circuit). , ASIC) implementation, or programmable logic device (programmable logic device, PLD) implementation, the above PLD can be a complex program logic device (complex programmable logical device, CPLD), field-programmable gate array (field-programmable gate array, FPGA) , a general array logic (generic array logic, GAL) or any combination thereof to implement the functions of the above data management device 500.
  • ASIC application-specific integrated circuit
  • PLD programmable logic device
  • the above PLD can be a complex program logic device (complex programmable logical device, CPLD), field-programmable gate array (field-programmable gate array, FPGA) , a general array logic (generic array logic, GAL) or any combination thereof to implement the functions of the above data management device 500.
  • the data management apparatus 500 when the data management apparatus 500 is implemented by hardware, the data management apparatus 500 may be one hardware device; or, may be two hardware devices, in this case, the metadata tracking module 501 and the data tracking module 502 are located in different hardware respectively. equipment.
  • the data management apparatus 500 may be configured on the CDN edge node, or may be configured as an independent device in the CDN, which is not limited in this embodiment.
  • the data management apparatus 500 may provide the terminal with the IP address of the secondary CDN node.
  • the data management apparatus 500 is configured as a plugin (plugin) in the CDN edge node 131 , and may specifically be configured on a server corresponding to the CDN edge node 131 . As shown in FIG. 6, when the terminal 141 requests data:
  • the terminal 141 sends a domain name resolution request to the local domain name server (Local Domain Name Service, LDNS) 150 to request the LDNS 150 to perform domain name resolution.
  • LDNS Local Domain Name Service
  • an LDNS 150 is further configured to provide domain name resolution services to multiple different terminals.
  • the LDNS 150 returns the Internet Protocol (IP) address of the CDN edge node 131 to the terminal 141.
  • IP Internet Protocol
  • the LDNS 150 may return IP addresses of different CDN edge nodes.
  • the terminal 141 sends a data acquisition request to the CDN edge node 131 according to the received IP address, where the data acquisition request includes the data identifier of the resource content to be requested by the terminal 141.
  • the CDN edge node 131 invokes the data management apparatus 500 configured on the CDN edge node 131 as a plug-in.
  • the data management apparatus 500 returns the IP address of the 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.
  • the data tracking module 502 in the data management device 500 can, according to the topology of the secondary CDN nodes (including the secondary CDN node 5, the secondary CDN node 6 and the secondary CDN node 7 for data sharing), each secondary CDN node
  • the metadata corresponding to the cached data on the CDN node and the data identifier of the data requested by the terminal 141 are determined as the secondary CDN node that provides the data for the terminal 141.
  • the determined secondary CDN node is the secondary CDN node 5 .
  • the data tracking module 502 can determine that the metadata existing on the secondary CDN node 5 matches the data identifier by matching the metadata in each secondary CDN node with the data identifier of the data requested by the terminal 141 , so that it can be determined by The secondary CDN node 5 provides data to the terminal.
  • the data tracking module 502 may also combine the load of each secondary CDN node, the network location distance between each secondary CDN node and the terminal 141, and the delay of each secondary CDN node responding to the terminal 141 Any one or more of these factors are considered to determine a secondary CDN node that provides data to the terminal 141 .
  • the terminal 141 may be a single-stack terminal that only supports the Internet Protocol Version 6 (Internet Protocol Version 6, IPV6), and the secondary CDN node 6 may only support the Internet Protocol Version 4 (Internet Protocol Version 4, IPV4) protocol, This makes communication between the secondary CDN node 6 and the terminal possibly impossible.
  • IPV6 Internet Protocol Version 6
  • IPV4 Internet Protocol Version 4, IPV4
  • the data tracking module 502 may first determine the reachability between the terminal 141 currently requesting data and each secondary CDN node, from one or more secondary CDN nodes managed by the data tracking module 502 The secondary CDN nodes that can communicate with the terminal are screened out from the CDN nodes, and then based on the above-mentioned method of determining the secondary CDN nodes, the secondary CDN nodes that provide data for the terminal 141 are determined from the screened secondary CDN nodes.
  • a lightweight client can be configured on the terminal side. As shown in FIG. 6 , the client can be used to obtain terminal information of the terminal 141 and send it to the CDN edge node 131 .
  • the metadata tracking module 502 determines the secondary CDN node that provides data for the terminal 141, it can be based on the secondary CDN node topology, the metadata corresponding to the cached data on each secondary CDN node, and the data of the data requested by the terminal 141.
  • the identifier and the terminal information obtained from the CDN edge node 131 determine the secondary CDN node that provides data for the terminal 141 .
  • the terminal information can be the Internet Protocol version identifier (such as IPV4, IPV6, etc.) supported by the terminal 141, the network protocol identifier (such as the UPNP protocol, that is, the Universal Plug and Play Protocol) and the access method (such as 4G network). , 5G network, WIFI network access, etc.) one or more.
  • IPV4 Internet Protocol version identifier
  • IPV6 IPV6
  • network protocol identifier such as the UPNP protocol, that is, the Universal Plug and Play Protocol
  • the access method such as 4G network.
  • 5G network such as WiFI network access, etc.
  • the CDN edge node 131 returns the IP address of the secondary CDN node 5 to the terminal 141.
  • the terminal 141 sends a data acquisition request to the secondary CDN node 5 based on the received IP address, where the data acquisition request includes a data identifier.
  • the CDN edge node 131 implements redirection scheduling of the data acquisition request sent by the terminal 141 .
  • the secondary CDN node 5 responds to the received data acquisition request, searches the locally stored data for data corresponding to the data identifier, and requests the secondary CDN node 6 and the secondary CDN node 7 to share data.
  • the secondary CDN node 5 may parse the data acquisition request sent by the terminal 141 to obtain a data identifier of the data requested by the terminal 141, for example, the data identifier may be the name of the data resource or other information for uniquely identifying the data. Then, the secondary CDN node 5 can locally look up the data corresponding to the data identifier. In practical applications, since the data resource may be divided into multiple slices, and different slices of the data resource are stored on different secondary CDN nodes, if the secondary CDN node 5 determines that it only stores the data of the terminal 141 locally.
  • the secondary CDN node 6 and the secondary CDN node 7 may request shared data to obtain other slice data cached on other secondary CDN nodes, that is, the second part of the data requested by the terminal 141. part of data.
  • the secondary CDN node 6 and/or the IPCD7 send the second part of the data to the secondary CDN node 5
  • the secondary CDN node 5 can locally cache all the data requested by the terminal, so as to provide the terminal 141 with all the data it needs data.
  • the CDN edge node 131 is required to participate in scheduling, while in other possible embodiments, a client terminal 141 with a certain data processing capability may be configured, so that the secondary CDN node can be used for the terminal 141
  • the CDN edge node 131 may not need to participate in the process of requesting data by the terminal 141 .
  • the process of requesting data by the terminal 141 shown in FIG. 7 refer to the process of requesting data by the terminal 141 shown in FIG. 7 :
  • the client triggers the terminal 141 to send a domain name resolution request to the LDNS 150 to request the LDNS 150 to perform domain name resolution.
  • the LDNS 150 returns the IP address of the data management apparatus 500 to the terminal 141 .
  • a client can be configured on the terminal 141, and the client can send a domain name resolution request for the data management apparatus 500 to the LDNS 150, so that the LDNS 150 returns the IP address of the data management apparatus 500 to the client.
  • the IP address returned by the LDNS 150 is the IP address of the device; when the data management apparatus 500 is configured to implement the server of the CDN edge node , the IP address returned by LDNS150 is the IP address of the server.
  • 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 that can provide the terminal 141 with data node.
  • the data management apparatus 500 returns the IP address of the secondary CDN node 5 for providing data to the terminal 141 to the terminal 141 according to the maintained data and metadata information on each secondary CDN node.
  • the client when triggering the terminal 141 to send a request, the client can first obtain the terminal information on the terminal 141, and send a request containing the terminal information to the data management apparatus 500, so that the data management apparatus 500 can combine the terminal information
  • the secondary CDN node 5 is determined, thereby improving the rationality and accuracy of the determined secondary CDN node.
  • the terminal 141 sends a data acquisition request to the secondary CDN node 5 based on the received IP address, where the data acquisition request includes a data identifier.
  • the secondary CDN node 5 responds to the received data acquisition request, and requests the secondary CDN node 6 and the secondary CDN node 7 to share data when the data corresponding to the data identifier is not stored locally.
  • the secondary CDN node 5 returns data to the terminal 141.
  • 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 shared data from other secondary CDN nodes.
  • step S705 to S707 for the specific implementation manner of steps S705 to S707, reference may be made to the description of the related parts of step S607 and step S609 in the embodiment shown in FIG. 6 , which will not be repeated here.
  • 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 device 500, In other possible embodiments, the terminal 141 may also directly obtain the IP address of the secondary CDN node 5 through a device with domain name resolution capability. Specifically, as shown in FIG. 8 , a domain name resolution device 160 may be configured in the network, and the process of requesting data by the terminal 141 may be as follows:
  • the client triggers the terminal 141 to send a domain name resolution request to the domain name resolution device 160 to request the domain name resolution device to perform domain name resolution.
  • the domain name resolution device 160 returns the IP address of the secondary CDN node 5 to the terminal 141.
  • the domain name resolution request sent by the terminal 141 to the domain name resolution device may include the data identifier of the data to be requested by the terminal 141, and the domain name resolution device 160 may, according to the data identifier and the data stored on each secondary CDN, metadata, determine the secondary CDN node 5 that stores the data corresponding to the data identifier, and send the IP address of the secondary CDN node 5 to the terminal 141 .
  • the domain name resolution device may determine, from a plurality of secondary CDN nodes, according to the location of each secondary CDN node in the network and the network location of the terminal 141 The terminal 141 is the closest secondary CDN node. Assuming that in this embodiment, the secondary CDN node closest to the terminal 141 is the secondary CDN node 5, the domain name resolution device 160 can send the IP address of the secondary CDN node 5 to terminal 141.
  • the terminal 141 sends a data acquisition request to the secondary CDN node 5 based on the received IP address, where the data acquisition request includes a data identifier.
  • the secondary CDN node 5 responds to the received data acquisition request, and requests the secondary CDN node 6 and the secondary CDN node 7 to share data when the data corresponding to the data identifier is not stored locally.
  • the secondary CDN node 5 if it does not store the data requested by the terminal 141, it can broadcast a request for sharing data to other secondary CDN nodes in the delay area, where the request includes the terminal 141 , 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 obtain the data requested by the terminal 141 .
  • metadata indication information may be configured on each secondary CDN node in the delay area, where the metadata indication information is used to indicate the data stored by all secondary CDN nodes in the delay area Metadata, such as can be a list of metadata including data stored by all secondary CDN nodes.
  • Metadata such as can be a list of metadata including data stored by all secondary CDN nodes.
  • the secondary CDN node 5 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 that there is no need to obtain data from other secondary CDN nodes.
  • step S803 to step S805 for the specific implementation manner of step S803 to step S805, reference may be made to the description of the relevant part of the foregoing embodiment, which will not be repeated here.
  • the secondary CDN node can provide data for the terminal 141, but other terminals located within the network coverage of the CDN edge node can also provide data for the terminal 141.
  • each terminal within the network coverage of the CDN edge node can be configured with an intelligent Internet client (human oriented network-client, HON-client), and the HON-client on the terminal can support the connection between terminals share data with each other. See the data request process shown in Figure 9:
  • HON-client2 triggers the terminal 142 to perform node registration with the data management apparatus 500 , and requests to obtain metadata of the data stored by the terminal 142 .
  • the terminal 142 may first register with the data management device 500 before acting as a node providing data, so that the data management device 500 brings the terminal 142 into management.
  • the data management apparatus 500 manages data on each node based on the metadata of the data. Therefore, the terminal 142 also requests the data management apparatus 500 to obtain the metadata of the data stored by the terminal 142 while registering the node.
  • the data tracking module 502 in the data management apparatus 500 may request the metadata management module 501 to generate corresponding metadata according to the data stored in the terminal 142.
  • the metadata management module 501 generates corresponding metadata and returns it to the data tracking module 502.
  • the data tracking module 502 returns the metadata to the terminal 142.
  • HON-clinet1 triggers the terminal 141 to request data from the data management device 500 .
  • step S905 For the specific implementation manner of step S905, reference may be made to the description of the relevant parts in the foregoing embodiments, and details are not described herein.
  • the data management apparatus 500 returns a node list storing the data to the terminal 141, where the node list may include IP addresses of one or more nodes.
  • the IP address in the node list may include the IP address of the secondary CDN node, or may include the IP address of the terminal 142, or may include the IP address of the CDN edge node 131 or the like.
  • HON-clinet1 triggers the 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.
  • the secondary CDN node 5, CDN edge node 131, terminal 141 and data processing apparatus 500 involved in the process of requesting data by the terminal may all be implemented by separate hardware devices, and in other possible implementation manners , it can also be software configured on a computer device, and by running the software on the computer device, the computer device can be made to realize the above-mentioned secondary CDN node 5, CDN edge node 131, terminal 141 and data processing device 500 respectively. has the function.
  • the secondary CDN node 5, the CDN edge node 131, the terminal 141, and the data processing apparatus 500 involved in the process of the terminal requesting data will be introduced in detail.
  • the computer device 1000 shown in FIG. 10 can be specifically used to implement the functions of the secondary CDN node 5 in the embodiments shown in FIGS. 2 to 9
  • the computer device 1100 shown in FIG. 11 can be specifically used to implement the above-mentioned FIGS. 2 to 9 9.
  • the functions of the CDN edge node 131 in the embodiment shown in FIG. 9, the computer device 1200 shown in FIG. 12 can be specifically used to realize the functions of the terminal 141 in the above-mentioned embodiments shown in FIGS. 6 to 9, and the computer device 1300 shown in FIG. 13. Specifically, it can be used to implement the functions of the data management apparatus 500 in the embodiments shown in FIG. 5 to FIG. 7 and FIG. 9 .
  • Computer device 1000 includes bus 1001 , processor 1002 , communication interface 1003 and memory 1004 . Communication between the processor 1002 , the memory 1004 and the communication interface 1003 is through the bus 1001 .
  • the bus 1001 may be a peripheral component interconnect (PCI) bus or an extended industry standard architecture (EISA) bus or the like.
  • PCI peripheral component interconnect
  • EISA extended industry standard architecture
  • the bus can be divided into address bus, data bus, control bus and so on. For ease of presentation, only one thick line is used in FIG. 10, but it does not mean that there is only one bus or one type of bus.
  • the communication interface 1003 is used for external communication, such as receiving a data acquisition request sent by the terminal.
  • the processor 1002 may be a central processing unit (central processing unit, CPU).
  • Memory 1004 may include volatile memory, such as random access memory (RAM).
  • RAM random access memory
  • the memory 1004 may also include non-volatile memory, such as read-only memory (ROM), flash memory, HDD, or SSD.
  • Executable code is stored in the memory 1004, and the processor 1002 executes the executable code to execute the aforementioned method executed by the secondary CDN node 5.
  • FIGS. 2 to 9 when the embodiments shown in FIGS. 2 to 9 are implemented, and the secondary CDN nodes described in the embodiments shown in FIGS. 2 to 9 are implemented by software, the execution of FIGS. 2 to 9 is performed.
  • the software or program code required for the function of the secondary CDN node 5 in the memory 1004 is stored in the memory 1004, the interaction between the secondary CDN node 5 and other devices is realized through the communication interface 1003, and the processor is used to execute the instructions in the memory 1004 to realize the secondary CDN node 5.
  • Computer device 1100 includes bus 1101 , processor 1102 , communication interface 1103 , and memory 1104 .
  • the processor 1102 , the memory 1104 and the communication interface 1103 communicate through the bus 1101 .
  • the computer device 1100 implements the embodiments shown in FIGS. 2 to 9 , and the CDN edge node 131 described in the embodiments of FIGS. 2 to 9 is implemented by software, it is required to realize the functions of the CDN edge node 131
  • the software or program code of the device is stored in 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 configured to execute the instructions in the memory 1104 to implement the method executed by the CDN edge node 131 .
  • Computer device 1200 includes bus 1201 , processor 1202 , communication interface 1203 , and memory 1204 . Communication between the processor 1202 , the memory 1204 and the communication interface 1203 is through the bus 1201 .
  • the computer device 1200 implements the embodiments shown in FIGS. 6 to 9
  • the terminal 141 described in the embodiments of FIGS. 6 to 9 is implemented by software
  • the software or program required to implement the functions of the terminal 141 The code is stored in memory 1204 .
  • the function of the terminal 141 interacting with other devices is implemented through the communication interface 1203 , and the processor 1202 is configured to execute the instructions in the memory 1204 to implement the method executed by the terminal 141 .
  • Computer device 1300 includes bus 1301 , processor 1302 , communication interface 1303 , and memory 1304 .
  • the processor 1302 , the memory 1304 and the communication interface 1303 communicate through the bus 1301 .
  • the execution unit The software or program code required for the functions of the data management module 501 and the data tracking module 502 is stored in the memory 1304 .
  • the function of the data management apparatus 500 interacting with other devices is implemented through the communication interface 1303 , and the processor 1302 is configured to execute the instructions in the memory 1304 to implement the method executed by the data management apparatus 500 .
  • an embodiment of the present application also provides a computer-readable storage medium, where instructions are stored in the computer-readable storage medium, and when the computer-readable storage medium is run on multiple computer devices, the multiple computer devices are made to execute the above-described embodiments.
  • the plurality of computer devices may include a first computer device, and the first computer device executes the instructions in the computer-readable storage medium, and may implement the methods performed by the secondary CDN nodes in the foregoing embodiments.
  • the first computer device includes at least one computer device.
  • the plurality of computer devices may further include a second computer device, and the second computer device executes the instructions in the computer-readable storage medium, so as to realize the execution of the data management apparatus in the foregoing embodiments.
  • the second computer device includes at least one computer device.
  • the plurality of computer devices may further include a third computer device, and the third computer device may execute the instructions in the computer-readable storage medium, so as to realize all the domain name resolution devices in the above-mentioned embodiments.
  • An embodiment of the present application further provides a computer program product, when the computer program product is executed by multiple computers, the multiple computers execute any one of the foregoing data providing methods.
  • the computer program product can be a software installation package, which can be downloaded and executed on a computer if any one of the aforementioned data providing methods needs to be used.
  • the device embodiments described above are only schematic, wherein the units described as separate components may or may not be physically separated, and the components displayed as units may or may not be A physical unit, which can be located in one place or distributed over multiple network units. Some or all of the modules may be selected according to actual needs to achieve the purpose of the solution in this embodiment.
  • the connection relationship between the modules indicates that there is a communication connection between them, which may be specifically implemented as one or more communication buses or signal lines.
  • the computer program product includes one or more computer instructions.
  • the computer may be a general purpose computer, special purpose computer, computer network, or other programmable device.
  • the computer instructions may be stored in or transmitted from one computer-readable storage medium to another computer-readable storage medium, for example, the computer instructions may be retrieved from a website, computer, training device, or data Transmission from the center to another website site, computer, training facility or data center via wired (eg coaxial cable, fiber optic, digital subscriber line (DSL)) or wireless (eg infrared, wireless, microwave, etc.) means.
  • wired eg coaxial cable, fiber optic, digital subscriber line (DSL)
  • wireless eg infrared, wireless, microwave, etc.
  • the computer-readable storage medium may be any available medium that can be stored by a computer, or a data storage device such as a training device, a data center, or the like that includes an integration of one or more available media.
  • the usable media may be magnetic media (eg, floppy disks, hard disks, magnetic tapes), optical media (eg, DVD), or semiconductor media (eg, Solid State Disk (SSD)), and the like.

Landscapes

  • Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • Databases & Information Systems (AREA)
  • Data Mining & Analysis (AREA)
  • Physics & Mathematics (AREA)
  • General Engineering & Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • Computer Networks & Wireless Communication (AREA)
  • Signal Processing (AREA)
  • Computing Systems (AREA)
  • Software Systems (AREA)
  • Information Transfer Between Computers (AREA)

Abstract

本申请提供了一种次级内容分发网络CDN,该次级CDN与上级CDN连接,次级CDN包括多个次级CDN节点,上级CDN包括至少一层CDN节点,其中,上级CDN中靠近次级CDN的为CDN边缘节点,多个次级CDN节点通过CDN边缘节点接入上级CDN;第一次级CDN节点,用于为接入次级CDN的终端提供数据,数据存储于第一次级CDN节点或第二次级CDN节点,并且,第一次级CDN节点从第二次级CDN节点获取数据的通信链路绕过CDN边缘节点。由于第一次级CDN节点可以为该终端提供数据,而可以不用由CDN边缘节点为终端提供数据,如此可以缓解CDN边缘节点的负载压力,也就可以尽可能避免接入该次级CDN的终端出现长时间等待响应的状态。此外,本申请还提供了一种数据提供方法和存储介质。

Description

一种次级内容分发网络CDN、数据提供方法和存储介质 技术领域
本申请涉及内容分发网络CDN技术领域,尤其涉及一种次级CDN、数据提供方法和存储介质。
背景技术
内容分发网络(Content Delivery Network,CDN),是构建在现有网络基础之上的智能虚拟网络,通过中心平台对部署在各地的边缘服务器进行负载均衡、内容分发、调度等操作,将内容发布至接近用户的网络“边缘”,以使得用户能够就近获取所需内容,从而降低网络拥塞,提高用户访问响应速度和命中率。
但是,实际应用中,部署在网络“边缘”的CDN节点,其存储、带宽、计算等能力通常有限,当存在较多数量的终端同时向CDN边缘节点请求数据时,这会导致CDN边缘节点的负载过大,从而使得部分终端可能长时间无法得到该CDN边缘节点的响应。
发明内容
本申请提供了一种次级内容分发网络CDN,用于缓解CDN边缘节点的压力。此外,本申请还提供了一种数据提供方法、装置、计算机可读存储介质以及计算机程序产品。
第一方面,本申请提供了一种次级CDN,该次级CDN与上级CDN连接,并且包括多个次级CDN节点。上级CND可以包括至少一层CDN节点,例如可以是传统的CND,该上级CDN中靠近次级CDN的为CDN边缘节点,并且,该多个次级CDN节点通过该CDN边缘节点接入上级CDN。其中,多个次级CDN中的第一次级CDN节点,可以用于为接入该次级CDN的终端提供数据,该数据通常可以是存储于第一次级CDN节点或者第二次级CDN节点,并且,当第一次级CDN节点本地未存储有终端所请求的数据时,该第一次级CDN节点可以从第二次级CDN节点获取该数据,并且,第一次级CDN节点与第二次级CDN节点之间的通信链路绕过CDN边缘节点。
由于CDN边缘节点下的次级CDN中,可以由第一次级CDN节点为该终端提供数据,而可以不用由CDN边缘节点为终端提供数据,即第一次级CDN节点能够为CDN边缘节点分担部分负载,如此可以缓解CDN边缘节点的负载压力,也就可以尽可能避免接入该次级CDN的终端出现长时间等待响应的状态。
同时,由于在次级CDN中部署了多个次级CDN节点,而CDN边缘节点以及部署的多个次级CDN节点所能存储的数据总量会多于CDN边缘节点存储的数据量,这就实现了对CDN边缘节点存储的数据量的扩容。而CDN边缘节点中存储的数据量增加,可以降低CDN边缘节点通过“回源”方式向上层CDN节点拉取数据的频率,从 而可以减少中间层与顶层所产生的流量,这就使得中间层与顶层的服务能力不容易出现瓶颈,并且中间层与顶层的成本也可以得到降低。
结合第一方面,在第一方面的第一种可能的实施方式中,第一次级CDN节点从第二次级CDN节点获取终端所请求数据的通信链路为直连链路,或者,该通信链路为包括其它次级CDN节点。在该实施方式中,次级CDN节点之间,可以相互直接进行通信,即通过直连链路进行通信,也可以是在两个次级CDN节点之间,存在其它可能的中间节点,该中间节点为其它次级CDN节点。由于第一次级CDN节点可以与其它次级CDN节点之间进行直接或者间接通信,这使得第一次级CDN节点在本地未存储终端所请求的数据时,可以通过访问其它次级CDN节点的方式获取数据,从而第一次级CDN节点可以进一步将获取的数据再提供给终端。
结合第一方面或第一方面的第一种实施方式,在第一方面的第二种可能的实施方式中,上级CDN内的至少一层CDN节点为树状结构。其中,树状结构,也可以被称为树形结构,通常包括一个根节点和若干个子节点,这些节点可以构成至少两层节点,其中,最顶层(或者称之为第一层)为一个根节点,与该根节点连接的下一层(第二层)节点为该根节点的子节点,实际应用中,第二层子节点下还可以连接有第三层子节点,并且,同一层的节点之间通常不进行直接通信,即同一层的节点之间的通信链路中通常包括上一层节点。其中,在CDN中,距离用户最近的一层节点(也即该树状结构中最底层的CDN节点)可以称之为CND边缘节点。
结合第一方面至第一方面的第二种实施方式中的任意一种实施方式,在第一方面的第三种可能的实施方式中,次级CND内的多个次级CDN节点为网状结构。其中,网状结构,是指次级CDN中的各个CDN节点可以与该次级CND中的其它次级CDN节点直接相连,如此,不同次级CDN节点之间可以通过直连链路或者间接连接的通信链路进行通信并共享数据,而多个次级CDN节点之间的通信链路可以构成网状。
结合第一方面至第一方面的第三种实施方式中的任意一种实施方式,在第一方面的第四种可能的实施方式中,上级CDN内的CDN边缘节点可以连接多个次级CDN。在该实施方式中,可以在一个CDN边缘节点下部署两个或者两个以上的次级CDN,从而可以由多个次级CDN为该CDN边缘节点进行负载分担,扩大存储的数据量。当然,在其它可能的实施方式中,在一个CDN边缘节点也可以是仅部署一个次级CDN,并且,多个CDN边缘节点可以连接同一个次级CDN。
结合第一方面至第一方面的第四种实施方式中的任意一种实施方式,在第一方面的第五种可能的实施方式中,可以是通过次级CDN节点响应终端的时延对次级CDN节点进行区域划分,具体的,次级CDN中可以包括至少一个时延区域,并且,该时延区域中的次级CDN节点响应该时延区域中终端的平均时延小于预设时延阈值。当然,在其它可能的实施方式中,也可以是基于其它因素对次级CDN节点进行区域划分,比如,终端与次级CDN节点的地理位置、网络位置、网络环境等因素,本申请对此并不进行限定。
结合第一方面至第一方面的第五种实施方式中的任意一种实施方式,在第一方面的第六种可能的实施方式中,CDN边缘节点可以用于为第一次级CDN节点提供数据,这样,CDN边缘节点可以对第一次级CDN节点中存储的数据进行更新,比如,CDN 边缘节点可以发送第一次级CDN节点当前尚未存储的数据等,或者,当终端所请求的数据在第一次级CDN节点以及其它次级CDN节点上均未存储,则第一次级CDN节点可以向CND边缘节点请求数据,而CDN边缘节点将该终端提供给第一次级CDN节点,以便再由第一次级CDN节点将数据返回给终端。
结合第一方面至第一方面的第六种实施方式中的任意一种实施方式,在第一方面的第七种可能的实施方式中,次级CND中还可以包括数据管理装置,该数据管理装置可以用于对多次次级CDN节点所能提供的数据以及该数据的元数据进行管理。其中,元数据是用于描述数据的数据,如元数据可以是数据的标识、统一资源定位符(Uniform Resource Locator,URL)描述数据属性的信息等。数据管理装置对于数据以及元数据的管理,例如可以是对管理各个次级CDN节点上存储的数据的分布,并且为次级CDN节点上存储的数据对应的元数据进行创建、删除和修改等。
结合第一方面的第七种实施方式,在第一方面的第八种可能的实施方式中,数据管理装置还可以用于根据多个次级CDN节点所能提供的数据的元数据,以及接入该次级CDN的第一终端所请求数据的数据标识,向第一终端提供多个次级CND节点中第一次级CDN节点的网际协议(Internet Protocol,IP)地址。如此,终端可以基于所接收到的IP地址,向相应的第一次级CDN节点请求数据。实际应用中,数据管理装置向终端提供的IP地址,可以是存储有终端所请求数据的第一次级CDN节点的IP地址,这样,终端可以从该第一次级CDN节点上快速获取所需数据,从而可以降低终端获取数据的时延。
结合第一方面的第八种实施方式,在第一方面的第九种可能的实施方式中,第一次级CDN节点上可能未存储有终端所请求的完整数据,即在第一次级CDN节点上仅存储有第一部分数据,此时,第一次级CDN节点可以从第二次级CDN节点获取第一终端所请求数据的第二部分数据,如可以是向第二次级CDN节点发送第一终端所请求数据的数据标识的方式,从第二次级CDN节点上获取第二部分数据等,然后,第一次级CDN节点可以将本地存储的第一部分数据以及从第二次级CDN节点上获取的第二部分数据发送给第一终端。通常情况下,第一部分数据与第二部分数据可以是不同的数据。如此,第一终端可以第一次级CDN节点上获取其请求的完整数据。
结合第一方面的第八种实施方式或第一方面的第九种实施方式中的任意一种实施方式,在第一方面的第十种可能的实施方式中,数据管理装置,在向第一终端提供第一次级CDN节点的IP地址时,具体可以是去IEID能够接入次级CDN节点的第二终端所能提供的数据的元数据,并根据该第二终端所能提供的数据的元数据,以及该第一终端所请求数据的数据标识,向第一终端提供该第二终端的IP地址。如此,第一终端可以根据该IP地址访问第二终端,从而可以从第二终端上获取其所需的数据,以此可以实现终端之间的数据共享。
结合第一方面的第八种实施方式至第一方面的第十种实施方式中的任意一种实施方式,在第一方面的第十一种可能的实施方式中,CDN边缘节点还用于接收第一终端的终端信息,该终端信息例如可以是第一终端的网际协议版本标识(如第一终端是基于VPV4协议进行通信的标识,或者是基于IPV6协议进行通信标识,或者是均可以支持等)、网络协议标识(如UPNP通信协议的标识等)以及接入方式标识(如4G、5G 或WIFI接入等)中的任意一种或者多种。相应的,数据管理装置,在向第一终端提供IP地址时,具体可以是根据多个次级CDN节点所能提供的数据的元数据、第一终端所请求数据的数据标识以及从CDN边缘节点获取的第一终端的终端信息,确定第一次级CDN节点的IP地址,并向该第一终端提供该第一次级CDN节点的IP地址。
结合第一方面的第八种实施方式至第一方面的第十一种实施方式中的任意一种实施方式,在第一方面的第十二种可能的实施方式中,次级CDN中还可以包括有域名解析设备,该域名解析设备用于根据多个次级CDN节点所能提供的数据的元数据,以及接入该子网的第一终端所请求数据的数据标识,向第一终端提供多个次级CDN节点中的第一次级CDN节点的IP地址。其中,域名解析设备所确定的第一次级CDN节点上,可能存储有第一终端所请求的数据,比如,域名解析设备能够根据各个次级CDN节点上所存储的数据来确定向第一终端提供第一次级CDN节点的IP地址;或者,域名解析设备所确定的第一次级CDN节点上,可能未存储有第一终端所请求的数据,比如,域名解析设备根据各个次级CDN节点的位置以及第一终端的位置,向所述第一终端提供距离所述第一终端最近的次级CDN节点的IP地址,此时,在第一终端向第一次级CDN节点请求数据时,第一次级CDN节点可以从其它次级CDN节点中获取数据,并将数据再提供给第一终端。
在一种可能的实施方式中,当次级CDN中还包括数据管理装置时,该数据管理装置还可以用于识别热数据,并在该次级CND中的次级CDN节点上部署热数据。其中,热数据是指被终端频繁访问或者很有可能被终端频繁访问的数据。如此,终端所请求的数据通常大概率位于次级CDN节点,而可以无需从CDN边缘节点获取数据,从而可以进一步降低CDN边缘节点的负载压力,降低上层CDN中的流量。
第二方面,本申请实施例还提供了一种数据提供方法,所述方法应用于次级内容分发网络CDN,所述次级CDN与上级CDN连接,所述次级CDN包括多个次级CDN节点,所述上级CDN包括至少一层CDN节点,其中,所述上级CDN中靠近次级CDN的为CDN边缘节点,所述多个次级CDN节点通过所述CDN边缘节点接入所述上级CDN;
所述方法包括:
接收来自接入所述次级CDN的第一终端的数据获取请求,所述数据获取请求包括数据标识;
利用第一次级CDN节点向所述第一终端提供所述数据标识对应的数据,所述数据存储于所述第一次级CDN节点或第二次级CDN节点,并且,所述第一次级CDN节点从所述第二次级CDN节点获取所述数据的通信链路绕过所述CDN边缘节点。
结合第二方面,在第二方面的第一种可能的实施方式中,所述方法还包括:
所述第一次级CDN节点接收来自所述CDN边缘节点的数据。
结合第二方面或者第二方面的第一种实施方式,在第二方面的第二种可能的实施方式中,所述次级CND还包括数据管理装置,所述方法还包括:
所述数据管理装置接收来自所述第一终端的请求,所述请求中携带有所述数据标识;
所述数据管理装置根据所述数据标识以及所述多个次级CDN节点所能提供的数 据的元数据,向所述第一终端提供所述第一次级CDN节点的IP地址;
则,接收来自接入所述次级CND的第一终端的数据获取请求,具体为:
所述第一次级CDN节点接收所述第一终端发送的所述数据获取请求。
结合第二方面的第二种实施方式,在第二方面的第三种可能的实施方式中,所述数据管理装置根据所述数据标识以及所述多个次级CDN节点所能提供的数据的元数据,向所述第一终端提供所述第一次级CDN节点的IP地址,包括:
所述数据管理装置获取所述第一终端的终端信息,所述终端信息包括所述第一终端的网际协议版本标识、网络协议标识、接入方式标识中的一种或多种;
所述数据管理装置根据所述多个次级CDN节点所能提供的数据的元数据、所述数据标识、所述第一终端的终端信息,向所述第一终端提供所述第一次级CDN节点的IP地址
结合第二方面的第二种实施方式或者第二方面的第三种实施方式,在第二方面的第四种可能的实施方式中,所述方法还包括:
当接入所述次级CND的第二终端存储有所述第一终端所请求的数据时,所述数据管理装置向所述第一终端提供所述第二终端的IP地址。
结合第二方面至第二方面的第四种实施方式中的任意一种实施方式,在第二方面的第五种可能的实施方式中,所述次级CND还包括域名解析设备,所述方法还包括:
所述域名解析设备接收来自所述第一终端的域名解析请求,所述域名解析请求中携带有所述数据标识;
所述域名解析设备根据所述数据标识以及所述多个次级CDN节点所能提供的数据的元数据,向所述第一终端提供所述第一次级CDN节点的IP地址;
则,接收来自接入所述子网的第一终端的数据获取请求,具体为:
所述第一次级CDN节点接收所述第一终端发送的所述数据获取请求。
结合第二方面至第二方面的第五种实施方式中的任意一种实施方式,在第二方面的第六种可能的实施方式中,所述利用第一次级CDN节点向所述第一终端提供所述数据标识对应的数据,包括:
所述第一次级CDN节点从所述第二次级CDN节点获取所述第一终端所请求数据的第二部分数据;
所述第一次级CDN节点向所述第一终端提供所述第二部分数据以及本地存储的所述第一终端所请求数据的第一部分数据,所述第一部分数据与所述第二部分数据不同。
结合第二方面的第二种实施方式至第二方面的第四种实施方式中的任意一种实施方式,在第二方面的第七种可能的实施方式中,所述方法还包括:
所述数据管理装置识别热数据;
所述数据管理装置将所述热数据部署在所述子网中的次级CDN节点上。
第三方面,本申请提供一种数据提供装置,所述数据提供装置应用于上述第一次级CDN节点,所述数据提供装置包括用于实现第二方面或第二方面任一种可能实现方式中第一次级CDN节点执行的数据提供方法的各个模块。
第四方面,本申请提供一种计算机可读存储介质,所述计算机可读存储介质中存 储有指令,当其在多个计算机设备上运行时,使得多个计算机设备执行上述第二方面或第二方面的任一种实现方式所述的方法。具体的,所述多个计算机设备中的第一计算机设备,运行计算机可读存储介质中的指令,可以实现上述第二方面中第一次级CDN节点所执行的方法;其中,该第一计算机设备包括至少一个计算机设备。所述多个计算机设备中的第二计算机设备,运行计算机可读存储介质中的指令,可以实现上述第二方面中数据管理装置所执行的方法;其中,该第二计算机设备包括至少一个计算机设备。所述多个计算机设备中的第三计算机设备,运行计算机可读存储介质中的指令,可以实现上述第二方面中域名解析设备所执行的方法;其中,该第三计算机设备包括至少一个计算机设备。
第五方面,本申请提供了一种包含指令的计算机程序产品,当其在多个计算机设备上运行时,使得多个计算机设备执行上述第二方面或第二方面的任一种实现方式所述的方法。具体的,所述多个计算机设备中的第一计算机设备,运行包含指令的计算机程序产品,可以实现上述第二方面中第一次级CDN节点所执行的方法;其中,该第一计算机设备包括至少一个计算机设备。所述多个计算机设备中的第二计算机设备,运行包含指令的计算机程序产品,可以实现上述第二方面中数据管理装置所执行的方法;其中,该第二计算机设备包括至少一个计算机设备。所述多个计算机设备中的第三计算机设备,运行包含指令的计算机程序产品,可以实现上述第二方面中域名解析设备所执行的方法;其中,该第三计算机设备包括至少一个计算机设备。
本申请在上述各方面提供的实现方式的基础上,还可以进行进一步组合以提供更多实现方式。
附图说明
为了更清楚地说明本申请实施例中的技术方案,下面将对实施例描述中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图仅仅是本申请中记载的一些实施例,对于本领域普通技术人员来讲,还可以根据这些附图获得其它的附图。
图1为一种CDN的网络架构示意图;
图2为本申请实施例提供的一种次级CDN的网络架构示意图;
图3为本申请实施例提供的另一种次级CDN的网络架构示意图;
图4为本申请实施例提供的又一种次级CDN的网络架构示意图;
图5为本申请实施例提供的再一种次级CDN的网络架构示意图;
图6为本申请实施例提供的再一种次级CDN的网络架构示意图;
图7为本申请实施例提供的再一种次级CDN的网络架构示意图;
图8为本申请实施例提供的再一种次级CDN的网络架构示意图;
图9为本申请实施例提供的再一种次级CDN的网络架构示意图;
图10为本申请实施例提供的一种计算机设备1000的结构示意图;
图11为本申请实施例提供的另一种计算机设备1100的结构示意图;
图12为本申请实施例提供的又一种计算机设备1200的结构示意图;
图13为本申请实施例提供的再一种计算机设备1300的结构示意图。
具体实施方式
目前,在现有的网络基础上可以部署如图1所示的网络架构。该网络架构100可以包括不同层级的CDN节点,如位于顶层(如核心网层)的CDN节点110、位于中间层(如汇聚层)的CDN节点120、位于底层的CDN边缘节点130等。本实施例中,对于距离用户最近的N层CDN节点(也即位于网络“边缘”的CDN节点),称之为CDN边缘节点。图1中是以网络架构包括三层CDN节点为例进行示例性说明,并且,最底层的CDN节点为CDN边缘节点(即上述N为1)。实际应用中,网络结构可以包括任意数量层级的CDN节点,并且每一层级的CDN节点的数量也可以为任意数量,本实施例对此并不进行限定。
其中,不同层级的CDN节点上均可以存储有相应的数据,并且每一层CDN节点所存储的数据可以来源于上一层的CDN节点,而最顶层的CDN节点110中存储的数据可以来源于内容源101。该内容源101例如可以是数据中心等,而各个层级的CDN节点可以通过部署相应的服务器实现。
在部署CDN边缘节点130时,通常可以是根据地域(如省、市等)部署CDN边缘节点130,并且,每个CDN边缘节点130能够为一个或者多个接入该CDN边缘节点130的终端140提供数据。当CDN边缘节点130中未存储有终端140所请求的数据,则CDN边缘节点130可以从上一层的CDN节点120中拉取数据到CDN边缘节点130本地中进行缓存;若CDN120中也未存储有终端140所请求的数据,则CDN120从上一层的CDN节点110中拉取数据,并将其发送给CDN节点120,再由CDN节点120将该数据转发给CDN边缘节点130;若CDN节点110中仍然未存储有终端140所请求的数据,则从内容源101中获取,并将其逐层转发给CDN边缘节点130本地进行缓存。上述过程通常被称之为“回源”。然后,CDN边缘节点130再将本地缓存的、通过“回源”方式获取的数据发送给终端140。如当终端140所请求的数据仅存储于内容源101时,数据请求路径可以是:终端140->CDN边缘节点130->CDN节点120->CDN节点110->内容源101。
但是,实际应用中,接入CDN边缘节点130的终端140数量较多,比如,当以省单位部署CDN边缘节点130时,接入同一CDN边缘节点130的终端140为该省内的所有用户的终端。此时,若同时存在较多数量的终端140向该CDN边缘节点130请求获取数据(如下载软件更新资源包、影视数据等),这就会对CDN边缘节点130造成较大的负载压力,而部分终端140可能会长时间处于等待CDN边缘节点130响应的状态。
同时,每个CDN边缘节点130所能存储的数据量有限,这使得当该CDN边缘节点130中未存储有终端140所请求的数据,CDN边缘节点130通常是通过“回源”的方式获取终端140所请求的数据,这就造成中间层与顶层容易产生较大的流量(如同一时刻存在多个不同的CDN边缘节点130通过“回源”的方式从中间层或者顶层拉取数据等),从而可能会出现中间层与顶层的服务能力瓶颈,以及为应对该较大流量而付出高昂的成本。
基于此,本申请实施例提供了一种次级CDN,该次级CDN与上级CDN连接,该次级CDN中包括多个次级CDN节点,并且不同次级CDN节点之间的通信链路绕过CDN边缘节点,每个次级CDN节点也可被称之为星际内容分发网络(Inter Planetary Content Delivery Network,IPCDN)节点。其中,每个次级CDN节点可以为接入次级CDN的终端提供数据。这样,接入次级CDN的终端,在其请求获取数据时,可以是由次级CDN节点为该终端提供数据,而可以不用由CDN边缘节点为终端提供数据,即次级CDN节点能够 为CDN边缘节点分担部分负载,从而可以缓解CDN边缘节点的负载压力,也就可以尽可能避免该CDN边缘节点内的部分终端出现长时间等待响应的状态。
同时,由于在次级CDN中部署了多个次级CDN节点,而CDN边缘节点以及部署的多个次级CDN节点所能存储的数据总量会多于CDN边缘节点存储的数据量,这就实现了对CDN边缘节点存储的数据量的扩容。而CDN边缘节点中存储的数据量增加,可以降低CDN边缘节点通过“回源”方式向上层CDN节点拉取数据的频率,从而可以减少中间层与顶层所产生的流量,这就使得中间层与顶层的服务能力不容易出现瓶颈,并且中间层与顶层的成本也可以得到降低。同时,多个次级CDN节点的网络覆盖范围可以大于单个CDN边缘节点的网络覆盖范围,比如当多个次级CDN节点相互之间共享为终端提供的数据时,该多个次级CDN节点的网络覆盖范围总和可以大于该单个CDN边缘节点的网络覆盖范围;当然,多个次级CDN节点的网络覆盖范围也可以是小于单个CDN边缘节点的网络覆盖范围,本实施例对此并不进行限定。
下面结合附图,对本申请的实施例进行描述。
本申请的说明书和权利要求书及上述附图中的术语“第一”、“第二”等是用于区别类似的对象,而不必用于描述特定的顺序或先后次序。应该理解这样使用的术语在适当情况下可以互换,这仅仅是描述本申请的实施例中对相同属性的对象在描述时所采用的区分方式。
参见图2所示的次级CDN的网络结构示意图。在图1所示的CDN的基础上,可以针对CDN边缘节点部署次级CDN。该次级CDN可以与图1所示的上级CDN连接,具体可以是通过该次级CDN所连接的CDN边缘节点连接上级CDN。其中,每个次级CDN中可以包括多个次级CDN节点。如图2所示,针对于CDN边缘节点131部署的次级CDN中可以包含有7个次级CDN节点,编号为1至7。示例性的,该7个次级CDN节点可以划分为两个次级CDN节点集群,如图2所示,一个集群中包括编号1至4的次级CDN节点,另一个集群中包括编号5至7的次级CDN节点。值得注意的是,各个次级CDN节点集群可以构成单独的次级CDN,即CDN边缘节点131可以连接两个次级CDN,一个次级CDN包含有4个次级CDN节点,另一个次级CDN包含有3个次级CDN节点。并且,这两个次级CDN均可以通过CDN边缘节点131连接上级CDN。
类似的,针对于CDN边缘节点132部署的次级CDN中可以包含有3个次级CDN节点,编号为8至10。针对于CDN边缘节点133部署的次级CDN中可以包含有2个次级CDN节点,编号为11与12;针对于CDN边缘节点134部署的次级CDN中可以包含有3个次级CDN节点,编号为13至15。其中,每个次级CDN节点可以允许一个或者多个终端接入(部分次级CDN节点接入的终端未示出),如存在两个终端接入次级CDN3节点等。当然,也可以存在部分次级CDN节点未接入终端,但是这部分次级CDN节点可以为其它次级CDN节点共享数据。
为便于描述,图2中以包括4个CDN边缘节点为例进行示例性说明,实际应用中,基于CDN的网络架构中可以包括任意数量的CDN边缘节点,并且,针对于CDN边缘节点所部署的次级CDN中可以包含任意数量的次级CDN节点,本实施例对此并不进行限定。
实际应用的一些实施方式中,次级CDN节点可以是作为功能模块部署于家庭网络所 依托的设备上,如家庭路由器、智能电视等设备。这样,可以复用家庭网络的带宽资源以及存储资源,不仅可以实现对CDN边缘节点存储数据量的扩容,而且,次级CDN节点向终端提供数据时,可以不占用CDN边缘节点的带宽。而在其它可能的实施方式中,次级CDN节点也可以是作为功能模块部署于CDN边缘节点的网络覆盖范围内的其它设备,如移动边缘计算(Mobile Edge Computing,MEC)设备、基于固网的边缘计算(Edge Computing,EC)设备等。或者,次级CDN节点也可以是独立部署的服务器等。
作为一种示例,终端在请求数据时,可以是向CDN边缘节点、次级CDN节点或者由多个次级CDN节点构成的集群请求数据。以终端向多个次级CDN节点中的第一次级CDN节点请求数据为例,终端可以向该第一次级CDN节点发送数据获取请求,该数据获取请求中包括终端所要获取数据的数据标识。第一次级CDN节点根据从数据获取请求中解析出的数据标识,可以从本地查找具有该数据标识的数据,若查找到,则可以将该数据发送给终端。而若未查找到具有该数据标识的数据,则第一次级CDN节点可以向次级CDN中的其它次级CDN节点,如第二次级CDN节点发送该数据标识,以请求第二次级CDN节点共享该数据标识对应的数据。若其它CDN节点存储有该数据标识对应的数据,则可以将该数据发送给第一次级CDN节点,并由该第一次级CDN节点将该数据提供给终端。其中,次级CDN中的第一次级CND节点与第二次级CDN节点的通信链路绕过CDN边缘节点,即第一次级CDN节点与第二次级CND节点之间的通信链路,可以是直连链路,即该通信链路上不存在其它次级CDN节点或者CDN边缘节点,或者,该第一次级CDN节点与第二次级CDN节点之间的通信链路,包括其它次级CND节点,但是不包括CDN边缘节点。
而若次级CDN中的其它CDN节点也没有存储有该数据,则第一次级CDN可以向CDN边缘节点发送包含该数据标识的请求,以便CDN边缘节点从其本地存储的数据中查找出具有该数据标识的数据。若CDN边缘节点本地存储有该数据,则CDN边缘节点可以将其发送给第一次级CDN节点中进行缓存,然后,由第一次级CDN节点将本地缓存的数据转发给终端。而若CDN边缘节点本地也未存储该数据,则CDN边缘节点可以通过“回源”的方式向上一层CDN拉取数据,再将拉取到的数据通过第一次级CDN节点提供给终端。
当然,对于未接入次级CDN,但是位于CDN边缘节点的网络覆盖范围内的终端,其可以是直接向CDN边缘节点发送包含上述数据标识的数据获取请求,以便由CDN边缘节点向该终端提供数据。具体实现时,CDN边缘节点上可以配置有相应的通信接口,而终端可以通过CDN边缘节点上的通信接口向CDN边缘节点请求数据,示例性的,该通信接口例如可以是超文本传输协议(Hyper Text Transfer Protocol,HTTP)接口等,或者可以是其它接口。
如图2所示,与次级CDN连接的上层CDN内,各层CDN节点可以是为树状结构,其中,树状结构,也可以被称为树形结构,通常包括一个根节点和若干个子节点,这些节点可以构成至少两层节点,如图2中可以包括三层节点。其中,最顶层(或者称之为第一层)为一个根节点,与该根节点连接的下一层(第二层)节点为该根节点的子节点,第二层子节点下还可以连接有第三层子节点。通常情况下,同一层的节点之间通常不进行直接通信,即同一层的节点之间的通信链路中通常包括上一层节点。
而次级CDN内的多个次级CDN节点可以呈网状结构。其中,网状结构,是指次级 CDN中的各个CDN节点可以与该次级CND中的其它次级CDN节点直接相连,如此,不同次级CDN节点之间可以通过直连链路或者间接连接的通信链路进行通信并共享数据,而多个次级CDN节点之间的通信链路可以构成网状。
本实施例中,可以进一步根据次级CDN节点响应终端的时延,对CDN边缘节点的网络覆盖范围内的次级CDN节点以及多个终端进行聚类,从而得到响应时延较低的集合,该集合中包括次级CDN节点以及终端,并且,该集合中的次级CDN节点响应该集合中的终端的时延平均值小于预设时延阈值。
示例性的,CDN边缘节点可以统计该CDN边缘节点中的各个终端被各个次级CDN节点响应的时延,并基于各个终端相对于各个次级CDN节点的时延进行聚类计算,例如可以是以次级CDN节点为基准,确定该次级CDN节点响应多个终端的时延的平均值,若该多个终端的时延平均值小于预设时延阈值,则将该次级CDN节点与该多个终端聚为一类。其中,次级CDN节点响应终端的时延,可以是该次级CDN节点响应与该次级CDN节点连接的终端的时延,也可以是该次级CDN节点响应与其它次级CDN节点连接的终端的时延(例如可以是两个次级CDN节点之间的通信时延与其它次级CDN节点响应终端的时延之和等)。因此,每个聚类类别中可以是包括多个次级CDN节点以及一个或者多个终端。
然后,基于次级CDN节点与终端的聚类结果,可以在CDN边缘节点的网络覆盖范围内划分得到一个或者多个时延区域,每个时延区域对应于一个聚类结果,并且,该时延区域中的次级CDN节点响应该时延区域中的终端的平均时延小于预设时延阈值。如图2所示,在CDN边缘节点131中可以划分为两个时延区域。在一些可能的实施方式中,每个时延区域对应于一个次级CDN的网络范围,该时延区域内所包含的次级CDN节点,也即为构成次级CDN的次级CDN节点。
实际应用中,多个CDN边缘节点中的时延区域也可以合并为一个时延区域,并且,该合并后的时延区域中次级CDN节点响应该时延区域中的终端的平均时延仍然小于预设时延阈值。如图2所示,CDN边缘节点133、CDN边缘节点134的网络覆盖范围内的次级CDN节点以及终端可以合并为一个时延区域。当然,CDN边缘节点的网络覆盖范围内也可以是只包含一个时延区域,如图2所示,CDN边缘节点132的网络覆盖范围内的次级CDN节点与终端可以被聚类在一个时延区域中。
进一步的,对于同一时延区域内的不同次级CDN节点之间,可以共享数据。比如,如图3所示,当接入次级CDN节点6的终端,向次级CDN节点6请求的数据未存储于次级CDN节点6中时,可以从同一时域区域内的次级CDN节点5以及次级CDN节点7存储的数据中进行查找(如图3中所示的东西向回源),并且,若从这两个次级CDN节点中查找到终端所请求的数据,则次级CDN节点5或者次级CDN节点7可以将查找到的数据发送给次级CDN节点6,再由次级CDN节点6将该数据提供给终端。而若从这两个次级CDN节点中未查找到终端所请求的数据时,次级CDN节点6可以向CDN边缘节点131请求数据,并且当CDN边缘节点131中仍然没有存储有终端所请求的数据时,再由CDN边缘节点131继续通过“回源”方式向上层CDN(如CDN节点120、CDN节点110等)节点请求数据,直至CDN边缘节点131从上层CDN节点中请求到数据并将其提供给终端(如图3中所示的南北向回源)。假设终端所请求的数据位于内容源101中,则数据请求 的路径为:终端->次级CDN节点6->次级CDN节点5、次级CDN节点7->CDN边缘节点131->CDN节点120->CDN节点110->内容源101。
值得注意的是,上述实施方式中,是以根据次级CDN节点响应终端的时延,对次级CDN节点以及与该次级CDN节点连接的终端进行区域划分,在其它可能的实施方式中,也可以是根据终端与次级CDN节点的地理位置、网络位置、网络环境等因素对次级CDN节点以及终端进行区域划分,或者也可以是基于上述因素(包括时延)中的任意一种或者多种进行区域划分等,并且,所采用的区域划分方式也并不局限于聚类,也可以是采用其它方式,本实施例对此并不进行限定。为方便描述,以下均以根据时延划分区域为例进行说明。
在一种示例性的具体实施方式中,CDN边缘节点中的每个次级CDN节点,均可以配置有分布式缓存以及通信接口。如图4所示,次级CDN节点5上配置有分布式缓存1以及通信接口1、次级CDN节点6上配置有分布式缓存2以及通信接口2、次级CDN节点7上配置有分布式缓存3以及通信接口3。其中,每个次级CDN节点上的分布式缓存,均可以用于缓存数据,相应的,当终端向次级CDN节点6请求数据时,次级CDN节点6可以从分布式缓存2所缓存的数据中查找是否存在终端所请求的数据。若存在,则次级CDN节点6可以将该分布式缓存2中的数据发送给终端;若不存在,则次级CDN节点6可以在同一区域(如上述时延区域)内的次级CDN节点5以及次级CDN节点7的分布式缓存1以及分布式缓存3所缓存的数据中查找是否存在终端所请求的数据。若存在,则,次级CDN节点5或次级CDN节点7将分布式缓存中的数据发送给次级CDN节点6,并由该次级CDN节点6将其提供给终端,若次级CDN节点5以及次级CDN节点7的分布式缓存中仍然不存在终端所存储的数据,则次级CDN节点6再通过“回源”的方式,向CDN边缘节点131甚至是上层CDN中拉取数据。
其中,同一区域内的分布式缓存1、分布式缓存2以及分布式缓存3可以组成分布式缓存网格,并且,数据可以在分布式缓存网格间共享和传输。如此,可以基于CDN边缘节点部署包括多个次级CDN节点的分布式网状网络。
同时,次级CDN节点上可以配置有通信接口,该通信接口可以与CDN边缘节点上的通信接口采用相同的通信协议,也可以是与CDN边缘节点上的通信接口采用不同的通信协议。特别的,当次级CDN节点上的通信接口与CDN边缘节点上的通信接口采用相同的通信协议时,终端可以通过访问CDN边缘节点的方式访问次级CDN节点,如此可以减少对于终端的改动,增加方案在实际实施时的可行性。
进一步的,在一些可能的实施方式中,还可以在CDN边缘节点中配置数据管理装置,以便利用该数据管理装置对各个次级CDN节点上存储的数据进行管理。
如图5所示,可以在CDN边缘节点131中配置数据管理装置500,该数据管理装置可以用于对次级CDN节点5、次级CDN节点6以及次级CDN节点7上存储的数据以及该数据的元数据进行管理。示例性的,实际应用中可以针对于每个时延圈部署一个数据管理装置,当然,也可以是多个时延圈共用一个数据管理装置,如在整个CDN网络中可以仅部署一个数据管理装置等,本实施例对此并不进行限制。
其中,数据管理装置500可以包括元数据跟踪模块501以及数据跟踪模块502。
元数据跟踪模块501,可以用于对各个次级CDN节点中数据对应的元数据进行生成和 管理。其中,元数据,也可以被称中介数据等,是用于描述数据的数据(data about data),例如是描述数据的属性(property)信息,用来支持如指示存储位置、资源查找、文件记录等功能。示例性的,当次级CDN节点上存储的数据为影视数据时,元数据可以是具有某种格式文件的“种子”,该“种子”可以包括该影视数据在次级CDN节点上的统一资源定位符(Uniform Resource Locator,URL),可以用于根据该“种子”获取相应的数据。
示例性的,本实施例中的元数据,具体可以是包括次级CDN节点上所缓存数据的基础信息,比如,数据资源的名称、数据大小、数据类型等信息。进一步的,该元数据还可以包括校验信息和/或切片信息。其中,校验信息,例如可以是用于对缓存数据进行完整性校验的信息等,或者可以是其它校验信息;切片信息,可以是用于描述数据所属的切片,例如可以是数据的切片标识等。例如,一份文件可以被切分成多个切片数据,而多个切片数据可以被放置于不同的次级CDN节点中进行存储,实际应用中,存储同一文件的不同切片数据的次级CDN节点,可以位于同一时延区域中。当然,元数据也可以采用其它用于描述数据的数据,本实施例,本实施例对此并不限定。
数据跟踪模块502,可以用于跟踪各个次级CDN节点上数据以及元数据信息,并对各个次级CDN节点上的数据进行维护和调整。
例如,数据跟踪模块502对次级CDN节点5、次级CDN节点6以及次级CDN节点7中缓存的数据进行跟踪,当确定其中一个次级CDN节点中缓存了新数据时,则数据跟踪模块502可以向元数据跟踪模块501发送针对于新缓存数据的元数据创建请求,以请求元数据跟踪模块501创建相应的元数据;然后,数据跟踪模块502可以将元数据跟踪模块501创建的元数据发送至次级CDN节点中进行保存。而当次级CDN节点中删除了部分缓存数据时,数据跟踪模块502可以将维护的元数据信息中删除该部分缓存数据所对应的元数据。
另外,数据跟踪模块502还可以对时延区域内缓存在各个次级CDN节点上的数据进行调度。比如,数据跟踪模块502可以均衡同一时延区域内的多个次级CDN节点的负载以及存储的数据等,具体的,同一时延区域内的不同次级CDN节点上,可以存储有部分相同的数据,这样,当该数据被较多数量的终端所请求时,可以由多个次级CDN节点同时为终端提供数据,以均衡各个次级CDN节点的负载,如此,可以尽可能避免该时延区域内的单个次级CDN节点的负载过大的情况。
示例性的,数据跟踪模块502在对各个次级CDN节点上存储的数据进行调度和管理时,可以向一个或者多个次级CDN节点推送热数据,该热数据是指被访问频次较多或者被访问的可能性较大的数据。比如,该热数据,可以是某款游戏的软件更新包等,当该款游戏需要进行统一更新时,数据跟踪模块502可以从CDN边缘节点131中获取该软件更新包,并将其推送至一个或者多个次级CDN节点中,从而当终端在需要更新该款游戏时,可以直接从相应的次级CDN节点中获取到软件更新包。
具体实现时,数据跟踪模块502可以收集各个次级CDN节点为终端提供数据的情况,并从中确定出终端请求频次较高的数据,从而数据跟踪模块502可以预测该数据属于热数据,并将其拷贝至一个或者多个次级CDN节点上,这样,CDN边缘节点131的网络覆盖范围内可以存在更多数量的次级CDN节点存储有该热数据,而终端无需全部从少量的次级CDN节点中请求数据,如此可以降低单个次级CDN节点的负载过高的概率,减少单次级CDN节点出现瓶颈的可能性,增加分布式网络的可用性和可靠性。
除了可以由数据跟踪模块502通过分析和预测的方式确定出热数据以外,也可以是在确定CDN边缘节点131中存在部分数据具有热数据的标识时,将该数据确定为热数据,该热数据的标识,可以是由CDN边缘节点提供或者其它设备提供;或者,可以是根据过去次级CDN节点所提供的数据,预测在未来一段时间段内次级CDN节点可以提供的热点数据,比如未来一段时间内上映的影视数据等。本实施例中,对于数据跟踪模块502如何确定热数据的具体实现方式并不进行限定。
实际应用中,数据管理装置500可以是由软件实现,例如可以是运行在服务器上的计算机程序等;或者,数据管理装置500也可以是由硬件实现,如利用专用集成电路(application-specific integrated circuit,ASIC)实现,或可编程逻辑器件(programmable logic device,PLD)实现,上述PLD可以是复杂程序逻辑器件(complex programmable logical device,CPLD),现场可编程门阵列(field-programmable gate array,FPGA),通用阵列逻辑(generic array logic,GAL)或其任意组合实现上述数据管理装置500的功能。并且,当数据管理装置500由硬件实现时,该数据管理装置500可以是一个硬件设备;或者,可以是两个硬件设备,此时,元数据跟踪模块501与数据跟踪模块502分别位于不同的硬件设备。另外,数据管理装置500可以被配置于CDN边缘节点上,也可以是作为独立的设备配置在CDN中,本实施例对此并不进行限定。
本实施例中,终端在请求数据时,可以是由数据管理装置500为终端提供次级CDN节点的IP地址。
具体的,作为一种示例性实施方式,数据管理装置500作为插件(plugin)被配置在CDN边缘节点131中,具体可以是被配置在CDN边缘节点131对应的服务器上。如图6所示,终端141在请求数据时:
S601:终端141向本地域名服务器(Local Domain Name Service,LDNS)150发送域名解析请求,以请求LDNS150进行域名解析。
本实施例中,在图1所示的网络架构的基础上,还配置有LDNS150,以用于对多个不同终端提供域名解析服务。
S602:LDNS150向终端141返回CDN边缘节点131的网际协议(Internet Protocol,IP)地址。
实际应用中,针对于不同终端发送的域名解析请求,LDNS150可以返回不同CDN边缘节点的IP地址。
S603:终端141根据接收到的IP地址,向CDN边缘节点131发送数据获取请求,该数据获取请求中包括有终端141所要请求的资源内容的数据标识。
S604:CDN边缘节点131响应该数据获取请求,调用作为插件配置在CDN边缘节点131上的数据管理装置500。
S605:数据管理装置500根据维护的各个次级CDN节点上的数据以及元数据信息,向CDN边缘节点131返回用于为终端141提供数据的次级CDN节点5的IP地址。
具体实现时,数据管理装置500中的数据跟踪模块502,可以根据次级CDN节点拓扑(包括数据共享的次级CDN节点5、次级CDN节点6以及次级CDN节点7)、每个次级CDN节点上缓存数据对应的元数据以及终端141所请求数据的数据标识,确定为终端141 提供数据的次级CDN节点,本实施例中,假设所确定的次级CDN节点为次级CDN节点5。比如,数据跟踪模块502可以通过匹配各个次级CDN节点中的元数据与终端141所请求数据的数据标识,确定存在次级CDN节点5上的元数据与该数据标识相匹配,从而可以确定由次级CDN节点5为终端提供数据。在其它可能的实施方式中,数据跟踪模块502还可以结合各个次级CDN节点的负载、各个次级CDN节点与终端141之间的网络位置距离、以及各个次级CDN节点响应终端141的时延中的任意一种或者多种因素进行考虑,以确定出为终端141提供数据的次级CDN节点。
实际应用中,可能存在部分次级CDN节点与终端141通信难度较大或者无法进行通信的问题。比如,终端141可能为仅支持网际协议第6版(Internet Protocol Version 6,IPV6)的单栈终端,而次级CDN节点6可能仅支持网际协议第4版(Internet Protocol Version 4,IPV4)协议,这就使得该次级CDN节点6与该终端之间可能无法进行通信。
因此,在进一步可能的实施方式中,数据跟踪模块502可以先判断当前请求数据的终端141与各个次级CDN节点之间的可达性,从数据跟踪模块502所管理的一个或者多个次级CDN节点中筛选出与终端可以进行通信的次级CDN节点,从而再基于上述确定次级CDN节点的方式,从筛选出的次级CDN节点中确定出为终端141提供数据的次级CDN节点。
实际应用时,可以在终端侧配置轻量级的客户端,如图6所示,该客户端可以用于获取终端141的终端信息,并将其发送给CDN边缘节点131。这样,元数据跟踪模块502在确定为终端141提供数据的次级CDN节点时,可以根据次级CDN节点拓扑、每个次级CDN节点上缓存数据对应的元数据、终端141所请求数据的数据标识以及从CDN边缘节点131获取的终端信息,确定出为终端141提供数据的次级CDN节点。其中,终端信息,例如可以是该终端141所支持的网际协议版本标识(如IPV4、IPV6等)、网络协议标识(如UPNP协议,即通用即插即用协议)以及接入方式(如4G网络、5G网络、WIFI网络接入等)中的一种或多种。
S606:CDN边缘节点131将次级CDN节点5的IP地址返回给终端141。
S607:终端141基于接收到的IP地址向次级CDN节点5发送数据获取请求,该数据获取请求中包括数据标识。
如此,CDN边缘节点131实现对终端141发送的数据获取请求的重定向调度。
S608:次级CDN节点5响应接收到的数据获取请求,并在本地存储的数据中查找该数据标识对应的数据,并向次级CDN节点6以及次级CDN节点7请求共享数据。
次级CDN节点5可以对终端141发送的数据获取请求进行解析,得到终端141所请求数据的数据标识,该数据标识例如可以是数据资源的名称或者其它用于唯一标识数据的信息。然后,次级CDN节点5可以从本地查找该数据标识所对应的数据。实际应用中,由于该数据资源可能会被切分成多个切片,并且不同次级CDN节点上存储该数据资源的不同切片,因此,次级CDN节点5若确定其在本地只存储有终端141所请求数据的第一部分数据,则可以向次级CDN节点6以及次级CDN节点7请求共享数据,以获取其它次级CDN节点上缓存的其它切片数据,也即为终端141所请求数据的第二部分数据。在次级CDN节点6和/或IPCD7向次级CDN节点5发送第二部分数据后,次级CDN节点5在本地可以缓存终端所请求的所有数据,从而可以为终端141提供其所需的所有数据。
S609:次级CDN节点5向终端141返回数据。
图6所示实施例中,需要CDN边缘节点131参与调度,而在其它可能的实施例中,可以在终端141配置具有一定数据处理能力的客户端,以使得在次级CDN节点能够为终端141提供数据的前提下,终端141请求数据的过程中可以无需CDN边缘节点131参与。具体的,参见图7所示的终端141请求数据的过程:
S701:客户端触发终端141向LDNS150发送域名解析请求,以请求LDNS150进行域名解析。
S702:LDNS150向终端141返回数据管理装置500的IP地址。
本实施例中,在终端141上可以配置客户端,该客户端可以向LDNS150发送针对于数据管理装置500的域名解析请求,以使得LDNS150向客户端返回数据管理装置500的IP地址。
示例性的,当数据管理装置500为CDN边缘节点131中独立设置的设备时,LDNS150所返回的IP地址即为该设备的IP地址;当数据管理装置500被配置于实现CDN边缘节点的服务器时,LDNS150所返回的IP地址为该服务器的IP地址。
S703:客户端触发终端141根据LDNS150返回的IP地址,向数据管理装置500发送获取次级CDN节点的IP地址的请求,所请求的次级CDN节点即为能够为终端141提供数据的次级CDN节点。
S704:数据管理装置500根据维护的各个次级CDN节点上的数据以及元数据信息,向终端141返回用于为终端141提供数据的次级CDN节点5的IP地址。
其中,数据管理装置500确定次级CDN节点5的具体实现方式,可以参见图6所示实施例中确定次级CDN节点5过程的相关之处描述,在此不做赘述。
值得注意的是,客户端在触发终端141发送请求时,可以先获取该终端141上的终端信息,并向数据管理装置500发送包含该终端信息的请求,以便数据管理装置500可以结合该终端信息确定次级CDN节点5,从而提高所确定的次级CDN节点的合理性以及准确性。
S705:终端141基于接收到的IP地址向次级CDN节点5发送数据获取请求,该数据获取请求中包括数据标识。
S706:次级CDN节点5响应接收到的数据获取请求,并在本地未存储该数据标识对应的数据时,向次级CDN节点6以及次级CDN节点7请求共享数据。
S707:次级CDN节点5向终端141返回数据。
当然,若次级CDN节点5本地存储有该数据标识对应的数据,则可以直接将本地存储的数据发送给终端141,从而无需向其它次级CDN节点请求共享数据。
本实施例中,步骤S705至步骤S707的具体实现方式,可以参见图6所示实施例中步骤S607与步骤S609的相关之处描述,在此不做赘述。
图6以及图7所述实施例中,终端141是通过LDNS150与CDN边缘节点131确定次级CDN节点5的IP地址,或者是通过LDNS150与数据管理装置500确定次级CDN节点5的IP地址,而在其它可能的实施例中,终端141也可以是通过具有域名解析能力的设备 直接获得次级CDN节点5的IP地址。具体的,如图8所示,可以在网络中配置有域名解析设备160,则终端141请求数据的流程可以为:
S801:客户端触发终端141向域名解析设备160发送域名解析请求,以请求域名解析设备进行域名解析。
S802:域名解析设备160向终端141返回次级CDN节点5的IP地址。
本实施例中,终端141向域名解析设备发送的域名解析请求中,可以包含终端141所要请求数据的数据标识,而该域名解析设备160可以根据该数据标识以及各个次级CDN上存储的数据的元数据,确定出存储有该数据标识对应的数据的次级CDN节点5,并将该次级CDN节点5的IP地址发送给终端141。
或者,在其它可能的实施方式中,域名解析设备在进行域名解析时,可以根据各个次级CDN节点在网络中的位置以及终端141的网络位置,从多个次级CDN节点中确定出与该终端141距离最近的次级CDN节点,假设本实施例中,距离该终端141最近的次级CDN节点为次级CDN节点5,则域名解析设备160可以将该次级CDN节点5的IP地址发送给终端141。
S803:终端141基于接收到的IP地址向次级CDN节点5发送数据获取请求,该数据获取请求中包括数据标识。
S804:次级CDN节点5响应接收到的数据获取请求,并在本地未存储该数据标识对应的数据时,向次级CDN节点6以及次级CDN节点7请求共享数据。
在一种示例性的实施方式中,若次级CDN节点5未存储有终端141所请求的数据,则可以向时延区域内的其它次级CDN节点广播共享数据的请求,该请求中包含终端141所请求数据的数据标识,从而可以由存储有该数据的次级CDN节点向次级CDN节点5反馈该数据,以使得次级CDN节点5能够获取终端141所请求的数据。
或者,在其它可能的实施方式中,时延区域内的各个次级CDN节点上可以配置有元数据指示信息,该元数据指示信息用于指示该时延区域内所有次级CDN节点所存储数据的元数据,如可以是包括所有次级CDN节点所存储数据的元数据的列表。这样,当次级CDN节点5本地未存储有终端141所请求的数据时,可以根据本地存储的元数据指示信息,确定存储有终端141所请求数据的次级CDN节点,从而可以从该次级CDN节点处获取数据,以便将所获取的数据反馈给终端141。
S805:次级CDN节点5向终端141返回数据。
当然,当次级CDN节点5存储有终端141所请求的数据时,次级CDN节点5可以直接将该数据提供该终端141,从而无需从其它次级CDN节点处获取数据。
本实施例中,步骤S803至步骤S805的具体实现方式,可以参见前述实施例的相关之处描述,在此不做赘述。
在进一步可能的实施例中,不仅次级CDN节点可以为终端141提供数据,位于CDN边缘节点的网络覆盖范围内的其它终端,也可以为该终端141提供数据。具体的,如图9所示,CDN边缘节点的网络覆盖范围内的各个终端可以配置有智能互联网客户端(human oriented network-client,HON-client),终端上的HON-client可以支持终端之间互相共享数据。参见图9所示的数据请求流程:
S901:HON-client2触发终端142向数据管理装置500进行节点注册,并请求获取终端142所存储数据的元数据。
由于CDN边缘节点131的网络覆盖范围内提供数据的节点通常是由数据管理装置500进行管理,因此,终端142在作为提供数据的节点之前,可以先向数据管理装置500进行注册,以便数据管理装置500将该终端142纳入管理。
同时,数据管理装置500是基于数据的元数据对各个节点上的数据进行管理,因此,终端142在进行节点注册的同时,也向数据管理装置500请求获取终端142所存储数据的元数据。
S902:数据管理装置500中的数据跟踪模块502可以根据终端142存储的数据,向元数据管理模块501请求生成相应的元数据。
S903:元数据管理模块501生成相应的元数据并将其返回给数据跟踪模块502。
S904:数据跟踪模块502将元数据返回给终端142。
S905:HON-clinet1触发终端141向数据管理装置500请求数据。
其中,步骤S905的具体实现方式,可以参见前述实施例中的相关之处描述,在此不做赘述。
S906:数据管理装置500向终端141返回存储有该数据的节点列表,该节点列表中可以包括一个或者多个节点的IP地址。
其中,对于数据管理装置500如何确定向终端141提供数据的节点的具体实现方式,可以参见前述实施例的相关之处描述,在此不做赘述。
节点列表中的IP地址,可以包括次级CDN节点的IP地址,或者可以包括终端142的IP地址,或者可以包括CDN边缘节点131的IP地址等。
S907:HON-clinet1触发终端141根据节点列表中的IP地址,向相应的次级CDN节点、终端142或者CDN边缘节点131请求数据。
上述各实施例中,终端请求数据的过程所涉及到的次级CDN节点5、CDN边缘节点131、终端141以及数据处理装置500均可以以单独的硬件设备实现,而在其它可能的实现方式中,其也可以是配置于计算机设备上的软件,并且,通过在计算机设备上运行该软件,可以使得计算机设备分别实现上述次级CDN节点5、CDN边缘节点131、终端141及数据处理装置500所具有的功能。下面,对终端请求数据的过程中所涉及的次级CDN节点5、CDN边缘节点131、终端141以及数据处理装置500分别进行详细介绍。
图10至图13提供了一种计算机设备。图10所示的计算机设备1000具体可以用于实现上述图2至图9所示实施例中次级CDN节点5的功能,图11所示的计算机设备1100具体可以用于实现上述图2至图9所示实施例中CDN边缘节点131的功能,图12所示的计算机设备1200具体可以用于实现上述图6至图9所示实施例中终端141的功能,图13所示的计算机设备1300具体可以用于实现上述图5至图7以及图9所示实施例中数据管理装置500的功能。
计算机设备1000包括总线1001、处理器1002、通信接口1003和存储器1004。处理器1002、存储器1004和通信接口1003之间通过总线1001通信。总线1001可以是外设部件互连标准(peripheral component interconnect,PCI)总线或扩展工业标准结构(extended  industry standard architecture,EISA)总线等。总线可以分为地址总线、数据总线、控制总线等。为便于表示,图10中仅用一条粗线表示,但并不表示仅有一根总线或一种类型的总线。通信接口1003用于与外部通信,例如接收终端发送的数据获取请求等。
其中,处理器1002可以为中央处理器(central processing unit,CPU)。存储器1004可以包括易失性存储器(volatile memory),例如随机存取存储器(random access memory,RAM)。存储器1004还可以包括非易失性存储器(non-volatile memory),例如只读存储器(read-only memory,ROM),快闪存储器,HDD或SSD。
存储器1004中存储有可执行代码,处理器1002执行该可执行代码以执行前述次级CDN节点5所执行的方法。
具体地,在实现图2至图9所示实施例的情况下,且图2至图9所示实施例中所描述的次级CDN节点为通过软件实现的情况下,执行图2至图9中的次级CDN节点5的功能所需的软件或程序代码存储在存储器1004中,次级CDN节点5与其它设备的交互通过通信接口1003实现,处理器用于执行存储器1004中的指令,实现次级CDN节点5所执行的方法。
计算机设备1100包括总线1101、处理器1102、通信接口1103和存储器1104。处理器1102、存储器1104和通信接口1103之间通过总线1101通信。计算机设备1100在实现图2至图9所示实施例的情况下,且图2至图9实施例中所描述的CDN边缘节点131为通过软件实现的情况下,实现CDN边缘节点131功能所需的软件或程序代码存储在存储器1104中。CDN边缘节点131与其他设备进行交互的功能通过通信接口1103实现,处理器1102用于执行存储器1104中的指令,实现CDN边缘节点131所执行的方法。
计算机设备1200包括总线1201、处理器1202、通信接口1203和存储器1204。处理器1202、存储器1204和通信接口1203之间通过总线1201通信。计算机设备1200在实现图6至图9所示实施例的情况下,且图6至图9实施例中所描述的终端141为通过软件实现的情况下,实现终端141功能所需的软件或程序代码存储在存储器1204中。终端141与其他设备进行交互的功能通过通信接口1203实现,处理器1202用于执行存储器1204中的指令,实现终端141所执行的方法。
计算机设备1300包括总线1301、处理器1302、通信接口1303和存储器1304。处理器1302、存储器1304和通信接口1303之间通过总线1301通信。计算机设备1300在实现图5至图7以及图9所示实施例的情况下,且图5至图7以及图9实施例中所描述的数据管理装置500为通过软件实现的情况下,执行元数据管理模块501以及数据跟踪模块502功能所需的软件或程序代码存储在存储器1304中。数据管理装置500与其他设备进行交互的功能通过通信接口1303实现,处理器1302用于执行存储器1304中的指令,实现数据管理装置500所执行的方法。
此外,本申请实施例还提供了一种计算机可读存储介质,该计算机可读存储介质中存储有指令,当其在多个计算机设备上运行时,使得多个计算机设备执行上述实施例所述的方法。具体的,该多个计算机设备中可以包括有第一计算机设备,该第一计算机设备运行计算机可读存储介质中的指令,可以实现上述各实施例中次级CDN节点所执行的方法。其中,该第一计算机设备包括至少一个计算机设备。
在一些实施方式中,该多个计算机设备中还可以包括有第二计算机设备,并且,该第 二计算机设备运行计算机可读存储介质中的指令,可以实现上述各实施例中数据管理装置所执行的方法。其中,该第二计算机设备包括至少一个计算机设备。
在进一步可能的实施方式中,该多个计算机设备中还可以包括有第三计算机设备,并且,该第三计算机设备运行计算机可读存储介质中的指令,可以实现上述实施例中域名解析设备所执行的方法;其中,该第三计算机设备包括至少一个计算机设备。
本申请实施例还提供了一种计算机程序产品,所述计算机程序产品被多个计算机执行时,所述多个计算机执行前述数据提供方法的任一方法。该计算机程序产品可以为一个软件安装包,在需要使用前述数据提供方法的任一方法的情况下,可以下载该计算机程序产品并在计算机上执行该计算机程序产品。
另外需说明的是,以上所描述的装置实施例仅仅是示意性的,其中所述作为分离部件说明的单元可以是或者也可以不是物理上分开的,作为单元显示的部件可以是或者也可以不是物理单元,即可以位于一个地方,或者也可以分布到多个网络单元上。可以根据实际的需要选择其中的部分或者全部模块来实现本实施例方案的目的。另外,本申请提供的装置实施例附图中,模块之间的连接关系表示它们之间具有通信连接,具体可以实现为一条或多条通信总线或信号线。
通过以上的实施方式的描述,所属领域的技术人员可以清楚地了解到本申请可借助软件加必需的通用硬件的方式来实现,当然也可以通过专用硬件包括专用集成电路、专用CPU、专用存储器、专用元器件等来实现。一般情况下,凡由计算机程序完成的功能都可以很容易地用相应的硬件来实现,而且,用来实现同一功能的具体硬件结构也可以是多种多样的,例如模拟电路、数字电路或专用电路等。但是,对本申请而言更多情况下软件程序实现是更佳的实施方式。基于这样的理解,本申请的技术方案本质上或者说对现有技术做出贡献的部分可以以软件产品的形式体现出来,该计算机软件产品存储在可读取的存储介质中,如计算机的软盘、U盘、移动硬盘、ROM、RAM、磁碟或者光盘等,包括若干指令用以使得一台计算机设备(可以是个人计算机,训练设备,或者网络设备等)执行本申请各个实施例所述的方法。
在上述实施例中,可以全部或部分地通过软件、硬件、固件或者其任意组合来实现。当使用软件实现时,可以全部或部分地以计算机程序产品的形式实现。
所述计算机程序产品包括一个或多个计算机指令。在计算机上加载和执行所述计算机程序指令时,全部或部分地产生按照本申请实施例所述的流程或功能。所述计算机可以是通用计算机、专用计算机、计算机网络、或者其他可编程装置。所述计算机指令可以存储在计算机可读存储介质中,或者从一个计算机可读存储介质向另一计算机可读存储介质传输,例如,所述计算机指令可以从一个网站站点、计算机、训练设备或数据中心通过有线(例如同轴电缆、光纤、数字用户线(DSL))或无线(例如红外、无线、微波等)方式向另一个网站站点、计算机、训练设备或数据中心进行传输。所述计算机可读存储介质可以是计算机能够存储的任何可用介质或者是包含一个或多个可用介质集成的训练设备、数据中心等数据存储设备。所述可用介质可以是磁性介质,(例如,软盘、硬盘、磁带)、光介质(例如,DVD)、或者半导体介质(例如固态硬盘(Solid State Disk,SSD))等。

Claims (21)

  1. 一种次级内容分发网络CDN,其特征在于,所述次级CDN与上级CDN连接,所述次级CDN包括多个次级CDN节点,所述上级CDN包括至少一层CDN节点,其中,所述上级CDN中靠近所述次级CDN的为CDN边缘节点,所述多个次级CDN节点通过所述CDN边缘节点接入所述上级CDN;
    第一次级CDN节点,用于为接入所述次级CDN的终端提供数据,所述数据存储于所述第一次级CDN节点或第二次级CDN节点;
    所述第一次级CDN节点从所述第二次级CDN节点获取所述数据的通信链路绕过所述CDN边缘节点。
  2. 根据权利要求1所述的次级CDN,其特征在于,所述第一次级CDN节点从所述第二次级CDN节点获取所述数据的通信链路为直连链路或所述通信链路包括其它次级CDN节点。
  3. 根据权利要求1或2所述的次级CDN,其特征在于,所述上级CDN内的所述至少一层CDN节点为树状结构。
  4. 根据权利要求1至3任一项所述的次级CDN,其特征在于,所述次级CDN内的所述多个次级CDN节点为网状结构。
  5. 根据权利要求1至4任一项所述的次级CDN,其特征在于,所述上级CDN内的所述CDN边缘节点连接多个所述次级CDN。
  6. 根据权利要求1至5任一项所述的次级CDN,其特征在于,所述次级CDN中包括至少一个时延区域,所述时延区域中的次级CDN节点响应所述时延区域中的终端的平均时延小于预设时延阈值。
  7. 根据权利要求1至6任一项所述的次级CDN,其特征在于,所述CDN边缘节点,用于为所述第一次级CDN节点提供数据。
  8. 根据权利要求1至7任一项所述的次级CDN,其特征在于,所述次级CDN还包括数据管理装置;
    所述数据管理装置,用于管理所述多个次级CDN节点所能提供的数据以及所述数据的元数据。
  9. 根据权利要求8所述的次级CDN,其特征在于,所述数据管理装置,还用于根据所述多个次级CDN节点所能提供的数据的元数据,以及接入所述次级CDN的第一终端所请求数据的数据标识,向所述第一终端提供所述多个次级CDN节点中的第一次级CDN节点的网际协议IP地址。
  10. 根据权利要求9所述的次级CDN,其特征在于,所述第一次级CDN节点向所述第一终端提供所述第一终端所请求数据的第一部分数据,所述第一次级CDN节点从所述第二次级CDN节点获取所述第一终端所请求数据的第二部分数据,并向所述第一终端提供所述第二部分数据,所述第一部分数据与所述第二部分数据不同。
  11. 根据权利要求9或10所述的次级CDN,其特征在于,所述数据管理装置,具体用于确定接入所述次级CDN的第二终端所能提供的数据的元数据,并根据所述第二终端所能提供的数据的元数据,以及所述第一终端所请求数据的数据标识,向所述第一终端提供所述第二终端的网际协议IP地址。
  12. 根据权利要求9至11任一项所述的次级CDN,其特征在于,所述CDN边缘节点还用于接收所述第一终端的终端信息,所述终端信息包括所述第一终端的网际协议版本标识、网络协议标识、接入方式标识中的一种或多种;
    所述数据管理装置,具体于根据所述多个次级CDN节点所能提供的数据的元数据、所述第一终端所请求数据的数据标识、从所述CDN边缘节点获取的所述第一终端的终端信息,向所述第一终端提供所述第一次级CDN节点的IP地址。
  13. 根据权利要求1至12任一项所述的方法,其特征在于,所述次级CDN还包括域名解析设备,所述域名解析设备用于根据所述多个次级CDN节点所能提供的数据的元数据,以及接入所述子网的第一终端所请求数据的数据标识,向所述第一终端提供所述多个次级CDN节点中的第一次级CDN节点的网际协议IP地址。
  14. 一种数据提供方法,其特征在于,所述方法应用于次级内容分发网络CDN,所述次级CDN与上级CDN连接,所述次级CDN包括多个次级CDN节点,所述上级CDN包括至少一层CDN节点,其中,所述上级CDN中靠近次级CDN的为CDN边缘节点,所述多个次级CDN节点通过所述CDN边缘节点接入所述上级CDN,所述方法包括:
    接收来自接入所述次级CDN的第一终端的数据获取请求,所述数据获取请求包括数据标识;
    利用第一次级CDN节点向所述第一终端提供所述数据标识对应的数据,所述数据存储于所述第一次级CDN节点或第二次级CDN节点,并且,所述第一次级CDN节点从所述第二次级CDN节点获取所述数据的通信链路绕过所述CDN边缘节点。
  15. 根据权利要求14所述的方法,其特征在于,所述方法还包括:
    所述第一次级CDN节点接收来自所述CDN边缘节点的数据。
  16. 根据权利要求14或15所述的方法,其特征在于,所述次级CND还包括数据管理装置,所述方法还包括:
    所述数据管理装置接收来自所述第一终端的请求,所述请求中携带有所述数据标识;
    所述数据管理装置根据所述数据标识以及所述多个次级CDN节点所能提供的数据的元数据,向所述第一终端提供所述第一次级CDN节点的IP地址;
    则,接收来自接入所述次级CND的第一终端的数据获取请求,具体为:
    所述第一次级CDN节点接收所述第一终端发送的所述数据获取请求。
  17. 根据权利要求16所述的方法,其特征在于,所述数据管理装置根据所述数据标识以及所述多个次级CDN节点所能提供的数据的元数据,向所述第一终端提供所述第一次级CDN节点的IP地址,包括:
    所述数据管理装置获取所述第一终端的终端信息,所述终端信息包括所述第一终端的网际协议版本标识、网络协议标识、接入方式标识中的一种或多种;
    所述数据管理装置根据所述多个次级CDN节点所能提供的数据的元数据、所述数据标识、所述第一终端的终端信息,向所述第一终端提供所述第一次级CDN节点的IP地址
  18. 根据权利要求16或17所述的方法,其特征在于,所述方法还包括:
    当接入所述次级CND的第二终端存储有所述第一终端所请求的数据时,所述数据管理装置向所述第一终端提供所述第二终端的IP地址。
  19. 根据权利要求14至18任一项所述的方法,其特征在于,所述次级CND还包括域名解析设备,所述方法还包括:
    所述域名解析设备接收来自所述第一终端的域名解析请求,所述域名解析请求中携带有所述数据标识;
    所述域名解析设备根据所述数据标识以及所述多个次级CDN节点所能提供的数据的元数据,向所述第一终端提供所述第一次级CDN节点的IP地址;
    则,接收来自接入所述子网的第一终端的数据获取请求,具体为:
    所述第一次级CDN节点接收所述第一终端发送的所述数据获取请求。
  20. 根据权利要求14至19任一项所述的方法,其特征在于,所述利用第一次级CDN节点向所述第一终端提供所述数据标识对应的数据,包括:
    所述第一次级CDN节点从所述第二次级CDN节点获取所述第一终端所请求数据的第二部分数据;
    所述第一次级CDN节点向所述第一终端提供所述第二部分数据以及本地存储的所述第一终端所请求数据的第一部分数据,所述第一部分数据与所述第二部分数据不同。
  21. 一种计算机可读存储介质,其特征在于,所述计算机可读存储介质中存储有指令,当其在多个计算设备上运行时,使得所述多个计算设备执行如权利要求14至权利要求20任一项所述的方法。
PCT/CN2021/119615 2020-09-22 2021-09-22 一种次级内容分发网络cdn、数据提供方法和存储介质 WO2022063125A1 (zh)

Applications Claiming Priority (2)

Application Number Priority Date Filing Date Title
CN202011004851.5A CN114297288A (zh) 2020-09-22 2020-09-22 一种次级内容分发网络cdn、数据提供方法和存储介质
CN202011004851.5 2020-09-22

Publications (1)

Publication Number Publication Date
WO2022063125A1 true WO2022063125A1 (zh) 2022-03-31

Family

ID=80846221

Family Applications (1)

Application Number Title Priority Date Filing Date
PCT/CN2021/119615 WO2022063125A1 (zh) 2020-09-22 2021-09-22 一种次级内容分发网络cdn、数据提供方法和存储介质

Country Status (2)

Country Link
CN (1) CN114297288A (zh)
WO (1) WO2022063125A1 (zh)

Citations (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN103581245A (zh) * 2012-07-30 2014-02-12 腾讯科技(深圳)有限公司 一种内容分发网络内容分发的方法及系统
CN103634692A (zh) * 2013-12-06 2014-03-12 南京理工大学连云港研究院 基于cdn和p2p的混合流媒体视频点播系统
CN107483614A (zh) * 2017-08-31 2017-12-15 京东方科技集团股份有限公司 基于cdn与p2p网络的内容调度方法及通信网络
US20180309845A1 (en) * 2013-08-20 2018-10-25 Alibaba Group Holding Limited Method and system of dispatching requests in a content delivery network

Patent Citations (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN103581245A (zh) * 2012-07-30 2014-02-12 腾讯科技(深圳)有限公司 一种内容分发网络内容分发的方法及系统
US20180309845A1 (en) * 2013-08-20 2018-10-25 Alibaba Group Holding Limited Method and system of dispatching requests in a content delivery network
CN103634692A (zh) * 2013-12-06 2014-03-12 南京理工大学连云港研究院 基于cdn和p2p的混合流媒体视频点播系统
CN107483614A (zh) * 2017-08-31 2017-12-15 京东方科技集团股份有限公司 基于cdn与p2p网络的内容调度方法及通信网络

Also Published As

Publication number Publication date
CN114297288A (zh) 2022-04-08

Similar Documents

Publication Publication Date Title
US10805418B2 (en) Data management in an information-centric network
US10015243B2 (en) Optimized content distribution based on metrics derived from the end user
EP2901308B1 (en) Load distribution in data networks
US9172632B2 (en) Optimized content distribution based on metrics derived from the end user
JP5970541B2 (ja) 情報処理システム、管理サーバ群、および、サーバ管理プログラム
US20140188801A1 (en) Method and system for intelligent load balancing
US11483690B2 (en) Mobile application accelerator
WO2022041205A1 (zh) 通信方法及多接入边缘计算服务器
KR102260781B1 (ko) 사물 인터넷을 위한 명명 데이터 네트워킹 기반 에지 클라우드 컴퓨팅 통합 시스템
US8886603B2 (en) Probe system for replication monitoring
US20180248772A1 (en) Managing intelligent microservices in a data streaming ecosystem
WO2020242521A1 (en) State management and object storage in a distributed cloud computing network
US11212329B2 (en) Method, apparatus, device and storage medium for pushing video stream
CN113301079B (zh) 一种数据的获取方法、系统、计算设备及存储介质
CN114650281B (zh) 基于复杂网络的文件下载方法、装置、设备及存储介质
CN107347100B (zh) 一种内容分发网络的透明代理转发方法
US20140317272A1 (en) Method of collecting information, content network management system, and node apparatus using management interface in content network based on information-centric networking
WO2022063125A1 (zh) 一种次级内容分发网络cdn、数据提供方法和存储介质
WO2012029248A1 (ja) データ転送システム
CN115665262A (zh) 一种请求处理方法、装置、电子设备及存储介质
CN112491601B (zh) 流量拓扑生成方法、装置、存储介质及电子设备
WO2021087865A1 (zh) 寻址方法、寻址系统以及寻址装置
TWI481227B (zh) 物件傳遞系統與方法
US9467525B2 (en) Shared client caching
KR20150095098A (ko) 정보 중심 네트워크를 이용한 데이터 질의 처리 방법

Legal Events

Date Code Title Description
121 Ep: the epo has been informed by wipo that ep was designated in this application

Ref document number: 21871495

Country of ref document: EP

Kind code of ref document: A1

NENP Non-entry into the national phase

Ref country code: DE

122 Ep: pct application non-entry in european phase

Ref document number: 21871495

Country of ref document: EP

Kind code of ref document: A1