Content distribution method and device, and computer readable storage medium

By utilizing the second user plane network element at the terminal to provide content relay, the problem of high CDN node egress bandwidth is solved, achieving cost savings and improved user experience.

CN121864876APending Publication Date: 2026-04-14HUAWEI TECH CO LTD
View PDF 0 Cites 0 Cited by

Patent Information

Authority / Receiving Office
CN · China
Patent Type
Applications(China)
Current Assignee / Owner
HUAWEI TECH CO LTD
Filing Date
2024-10-12
Publication Date
2026-04-14

AI Technical Summary

Technical Problem

CDN nodes require significant outbound bandwidth when distributing content to multiple devices, leading to high costs and network congestion, which negatively impacts user experience.

Method used

The terminal receives instruction information from the first user plane network element, sends a request message to the address of the content relay service, and uses the second user plane network element to provide content relay for the terminal, reducing the content distribution from CDN nodes to the terminal.

Benefits of technology

This reduces the outbound bandwidth cost of CDN nodes, decreases network congestion, and improves user experience.

✦ Generated by Eureka AI based on patent content.

Smart Images

  • Figure CN121864876A_ABST
    Figure CN121864876A_ABST
Patent Text Reader

Abstract

The embodiment of the invention discloses a content distribution method and device, and a computer readable storage medium, relates to the technical field of communication, and can reduce the content distributed to a terminal by a CDN node, thereby reducing the exit bandwidth of the CDN node, and saving the exit bandwidth cost. The method comprises: receiving first indication information from a first user plane network element, the first indication information being used for indicating a first address for providing content relay for a terminal; sending a first request message to the first address; the first request message is used for requesting to obtain the content required by the terminal. The embodiment of the invention is applied to a content distribution process.
Need to check novelty before this filing date? Find Prior Art

Description

Technical Field

[0001] This application relates to the field of communication technology, and in particular to a content distribution method, apparatus, and computer-readable storage medium. Background Technology

[0002] In a content delivery network (CDN), CDN nodes that cache the content needed by a device can distribute that content to the device. When distributing content, a single CDN node typically copies the content to be sent multiple times and distributes it to multiple devices. Therefore, CDN nodes require significant outbound bandwidth, resulting in high outbound bandwidth costs. Summary of the Invention

[0003] This application provides a content distribution method, apparatus, and computer-readable storage medium that can reduce the amount of content distributed by CDN nodes to terminals, thereby reducing the outbound bandwidth of CDN nodes and saving outbound bandwidth costs.

[0004] To achieve the above objectives, this application provides the following technical solution:

[0005] Firstly, a content distribution method is provided. This method can be executed by a terminal, or by a component of the terminal, such as the terminal's processor, chip, or chip system, or by a logic module or software capable of implementing all or part of the terminal. The following description uses the method executed by a terminal as an example. The content distribution method includes: receiving first indication information from a first user plane network element, wherein the first indication information indicates a first address of a content relay service, and the first address may be an address of a second user plane network element; sending a first request message to the first address; the first request message is used to request the acquisition of content required by the terminal.

[0006] This application provides a content distribution method in which a first user plane network element indicates a first address providing content relay services to a terminal; the terminal then requests the required content from this first address. Thus, when the terminal requests content, a second user plane network element can relay the content for the terminal, allowing the terminal to obtain the required content from the second user plane network element without requiring CDN nodes to distribute content to the terminal. Therefore, the content distribution method provided by this application can reduce the amount of content distributed by CDN nodes to terminals, thereby reducing the egress bandwidth of CDN nodes and saving egress bandwidth costs.

[0007] In one possible implementation, after sending the first request message to the second user plane network element, the method further includes: receiving content required by the terminal sent by the second user plane network element.

[0008] Based on this, the terminal can obtain the content it needs from the second user plane network element, which can reduce the amount of content distributed by the CDN node to the terminal, thereby reducing the egress bandwidth of the CDN node and saving egress bandwidth costs.

[0009] In one possible implementation, sending a first request message to a second user plane network element includes: sending a first request message to a second user plane network element based on first configuration information; wherein the first configuration information includes at least one of the following: the transmission protocol between the terminal and the second user plane network element, the streaming protocol, and the security mechanism.

[0010] Based on this, the terminal can request content from the second user plane network element based on the first configuration information between the terminal and the second user plane network element.

[0011] In one possible implementation, the first configuration information is determined based on at least one of the following methods: the first user plane network element instructs the terminal; the session management network element instructs the terminal; the server instructs the terminal; or the information is determined through pre-negotiation.

[0012] Based on this, embodiments of this application provide multiple implementation methods for a terminal to obtain the transmission configuration between the terminal and the second user plane network element, increasing the applicable scenarios of the content distribution method provided in this application.

[0013] In one possible implementation, the first request message includes the application identifier or first domain name of the content required by the terminal during the content relay process.

[0014] Based on this, the terminal requests the required content from the second user plane network element through the application identifier or the first domain name. The second user plane network element can send the cached content related to the application identifier or the first domain name to the terminal, or the second user plane network element can obtain the content related to the application identifier or the first domain name and send it to the terminal.

[0015] In one possible implementation, before sending the first request message to the second user plane network element, the method further includes: receiving second indication information from the server; the second indication information is used to indicate the application identifier or first domain name of the content required by the terminal in the content relay.

[0016] Based on this, the terminal can obtain the application identifier or first domain name of the required content in the content relay from the server in advance, so that the terminal can request the required content from the second user plane network element according to the application identifier or first domain name.

[0017] In one possible implementation, before receiving the second indication information from the server, the method further includes: sending a third indication information to the server, wherein the third indication information is used to indicate that the content distribution service is provided by the content relay.

[0018] Based on this, before obtaining the application identifier or the first domain name, the terminal instructs the server to provide content distribution services through the content relay, thereby enabling the server to send the application identifier or the first domain name of the content required by the terminal in the content relay.

[0019] In one possible implementation, before receiving the first indication information from the first user plane network element, the method further includes: sending fourth indication information to the first user plane network element; the fourth indication information is used to indicate the application identifier or the first domain name requested by the terminal.

[0020] Based on this, when the terminal sends a request for the application identifier or the first domain name to the first user plane network element, the first user plane network element can determine the second user plane network element that can provide content relay for the terminal based on the application identifier or the first domain name, and then indicate the first address that provides content relay to the terminal.

[0021] In one possible implementation, where the fourth indication information is used to indicate the domain name of the target application, the fourth indication information is carried in the DNS domain name resolution request; the first indication information is carried in the DNS response message.

[0022] Based on this, the terminal and the first user plane network element can interact through DNS domain name resolution requests and DNS response messages to determine the second user plane network element that provides content relay for the terminal.

[0023] In one possible implementation, the first indication information is further used to indicate that the DNS response was successful; or, the first indication information is further used to indicate that the first address is the address of the content relay.

[0024] Based on this, the first indication information can indicate to the terminal that the content can be obtained through content relay by indicating that the DNS response is successful, or by indicating that the first address is the address of the content relay.

[0025] In one possible implementation, after sending the first request message to the first address, the method further includes: receiving content request error information from a second user plane network element; the content request error information is used to indicate that the first request message requested an abnormality in obtaining content.

[0026] Based on this, when the terminal requests abnormal content, the second user plane network element indicates to the terminal that the first request message requesting to obtain content is abnormal, which can enable the terminal to determine the reason why it cannot obtain content and then make corresponding adjustments.

[0027] In one possible implementation, the first request message requesting content retrieval anomaly includes at least one of the following: the second user plane network element cannot provide the content required by the terminal; the application identifier or first domain name in the first request message is inconsistent with the pre-configured application identifier or domain name; the first request message times out; or the content delivery network (CDN) node indicates that the first request message is unavailable.

[0028] Based on this, if the second user plane network element is unable to provide the content required by the terminal, the application identifier or the first domain name is inconsistent with the pre-configured application identifier or domain name, the first request message times out, or the CDN node indicates that the first request message is unavailable, it will indicate to the terminal that the request for content retrieval via the first request message is abnormal.

[0029] In one possible implementation, the first user plane network element and the second user plane network element are the same user plane network element.

[0030] Based on this, in the embodiments of this application, the actions performed by the first user plane network element and the second user plane network element can be performed by the same user plane network element.

[0031] Secondly, a content distribution method is provided. This method can be executed by a first user plane network element, or by a component of the first user plane network element, such as its processor, chip, or chip system. It can also be implemented by a logic module or software capable of implementing all or part of the first user plane network element. The following description uses the execution of this method by a first user plane network element as an example. The content distribution method includes: determining a second user plane network element that provides content relay to a terminal; and sending first indication information to the terminal, wherein the first indication information indicates a first address of the content relay service, and the first address may be the address of the second user plane network element.

[0032] In one possible implementation, before determining the second user plane network element that provides content relay for the terminal, the method further includes: receiving fourth indication information from the terminal; wherein the fourth indication information is used to indicate the target application identifier or first domain name of the terminal.

[0033] In one possible implementation, determining the second user plane network element that provides content relay for the terminal includes: sending a second request message to a session management network element, the second request message being used to request the session management network element to select a network element that provides content relay for the terminal; and receiving fifth indication information from the session management network element, the fifth indication information being used to indicate the second user plane network element that provides content relay for the terminal.

[0034] In one possible implementation, before determining the second user plane network element that provides content relay for the terminal, the method further includes: receiving content relay configuration information from a session management network element, wherein the content relay configuration information is used to configure the application identifier or domain name that needs to provide content relay for the first user plane network element.

[0035] Thirdly, a content distribution method is provided. This method can be executed by a second user plane network element, or by a component of the second user plane network element, such as a processor, chip, or chip system of the second user plane network element, or by a logic module or software capable of implementing all or part of the second user plane network element. The following description uses the execution of this method by a second user plane network element as an example. The content distribution method includes: receiving a first request message from a terminal; wherein the first request message is used to request content required by the terminal; and sending the content to the terminal.

[0036] In one possible implementation, the first request message includes an application identifier or a first domain name, which is used to indicate the application corresponding to the content requested by the terminal. Sending content to the terminal includes: when it is determined that the application identifier or the first domain name in the first request message is the target application identifier or domain name, sending content to the terminal.

[0037] In one possible implementation, the first request message includes the application identifier or first domain name of the content required by the target application in the content relay.

[0038] In one possible implementation, before sending content to the terminal, the method further includes: sending a third request message to a content delivery network (CDN) node; the third request message is used to request content required by the terminal; and receiving the content required by the terminal sent by the CDN node.

[0039] In one possible implementation, before sending the third request message to the content delivery network (CDN) node, the method further includes: sending a fourth request message to the domain name system (DNS); the fourth request message includes an application identifier, a first domain name, or a second domain name; wherein the second domain name is the domain name of the application in the CDN node; and receiving the address information of the CDN node sent by the DNS, wherein the CDN node is a CDN node that caches the content of the domain name of the application in the fourth request message.

[0040] In one possible implementation, after receiving the first request message from the terminal, the method further includes: if the first request message requests abnormal content retrieval, sending a content request error message to the terminal; the content request error message is used to indicate that the first request message requests abnormal content retrieval.

[0041] In one possible implementation, the first request message requesting content retrieval anomaly includes at least one of the following: the second user plane network element cannot provide the content required by the terminal; the application identifier or domain name in the first request message is inconsistent with the pre-configured application identifier or domain name; the first request message times out; or the content delivery network (CDN) node indicates that the first request message is unavailable.

[0042] Fourthly, a content distribution apparatus is provided for implementing the various methods described above. This content distribution apparatus can be a terminal as described in the first aspect, or an apparatus containing the terminal, or an apparatus contained within the terminal, such as a chip. Alternatively, the content distribution apparatus can be a first user plane network element as described in the second aspect, or an apparatus containing the first user plane network element, or an apparatus contained within the first user plane network element, such as a chip. Alternatively, the content distribution apparatus can be a second user plane network element as described in the third aspect, or any implementation of the third aspect, or an apparatus containing the second user plane network element, or an apparatus contained within the second user plane network element, such as a chip. The content distribution apparatus includes modules, units, or means corresponding to the methods described above. These modules, units, or means can be implemented in hardware, software, or by hardware executing corresponding software. The hardware or software includes one or more modules or units corresponding to the functions described above.

[0043] In some possible designs, the content distribution device may include a processing module and a transceiver module. The transceiver module, also referred to as a transceiver unit, is used to implement the sending and / or receiving functions in any of the above aspects and their possible implementations. The transceiver module may consist of transceiver circuits, transceivers, transceivers, or communication interfaces. The processing module can be used to implement the processing functions in any of the above aspects and their possible implementations.

[0044] In some possible designs, the transceiver module includes a sending module and a receiving module, which are used to implement the sending and receiving functions in any of the above aspects and any possible implementation methods.

[0045] Fifthly, a content distribution apparatus is provided, comprising: at least one processor; the processor being configured to execute a computer program or instructions stored in a memory to cause the content distribution apparatus to perform the methods of any of the above aspects. The memory may be coupled to the processor, or may be independent of the processor. The content distribution apparatus may be a terminal as described in the first aspect, or an apparatus containing the terminal, or an apparatus contained within the terminal, such as a chip. Alternatively, the content distribution apparatus may be a first user plane network element as described in the second aspect, or an apparatus containing the first user plane network element, or an apparatus contained within the first user plane network element, such as a chip. Alternatively, the content distribution apparatus may be a second user plane network element as described in the third aspect, or an apparatus containing the second user plane network element, or an apparatus contained within the second user plane network element, such as a chip. In some possible designs, the content distribution apparatus includes a memory for storing necessary program instructions and data.

[0046] In one possible implementation, the processor includes logic circuitry and input and / or output interfaces. The output interfaces are used to perform the sending action in the corresponding method, and the input interfaces are used to perform the receiving action in the corresponding method.

[0047] In one possible implementation, the content distribution device further includes a communication interface and a communication bus, with the processor, memory, and communication interface connected via the communication bus. The communication interface is used to perform sending and receiving actions in the corresponding method. The communication interface can also be called a transceiver. Optionally, the communication interface includes a transmitter and a receiver; in this case, the transmitter performs the sending action in the corresponding method, and the receiver performs the receiving action in the corresponding method.

[0048] In some possible designs, the content delivery device can be a chip or a chip system. When the content delivery device is a chip system, it can be composed of chips or include chips and other discrete components. When the content delivery device is a chip, the aforementioned sending action / function can be understood as an output, and the aforementioned receiving action / function can be understood as an input.

[0049] Sixthly, a chip is provided, the chip including a processor for implementing the functions involved in any of the foregoing aspects or any implementation thereof.

[0050] In some possible designs, the chip includes a memory for storing necessary program instructions and data.

[0051] In a seventh aspect, a computer-readable storage medium is provided, which stores a computer program or instructions that, when executed on a content distribution device, enable the content distribution device to perform the methods of any of the above aspects or any implementation thereof.

[0052] Eighthly, a computer program product containing instructions is provided that, when run on a content distribution device, enables the content distribution device to perform the methods of any of the above aspects or any implementation thereof.

[0053] Ninth aspect, a communication system is provided, the communication system including the terminal of the first aspect, the first user plane network element of the second aspect, and the second user plane network element of the third aspect.

[0054] The technical effects of any of the implementation methods in aspects two through nine can be found in the technical effects of the corresponding implementation method in aspect one, and will not be repeated here.

[0055] It should be noted that any of the possible implementations of any of the above aspects can be combined, provided that the solutions do not contradict each other. Attached Figure Description

[0056] Figure 1 This is a schematic diagram illustrating a process by which a CDN node provides content distribution to a terminal, as provided in an embodiment of this application.

[0057] Figure 2 This is a schematic diagram illustrating a process for a CDN node to distribute content to multiple terminals, as provided in an embodiment of this application.

[0058] Figure 3 This is a schematic diagram illustrating a process by which a UPF copies and distributes content to different users, as provided in an embodiment of this application.

[0059] Figure 4 This application provides a schematic diagram of the architecture of a communication system.

[0060] Figure 5 This application provides a schematic diagram of the architecture of a 5G communication system.

[0061] Figure 6 A schematic diagram of the hardware structure of a content distribution device provided in an embodiment of this application;

[0062] Figure 7 A flowchart illustrating a content distribution method provided in an embodiment of this application;

[0063] Figure 8 A flowchart illustrating yet another content distribution method provided in this application embodiment;

[0064] Figure 9 A flowchart illustrating yet another content distribution method provided in this application embodiment;

[0065] Figure 10 A flowchart illustrating yet another content distribution method provided in this application embodiment;

[0066] Figure 11 A flowchart illustrating yet another content distribution method provided in this application embodiment;

[0067] Figure 12 A flowchart illustrating yet another content distribution method provided in this application embodiment;

[0068] Figure 13 This is a schematic diagram of the hardware structure of a content distribution device provided in an embodiment of this application. Detailed Implementation

[0069] To facilitate understanding of the technical solutions provided in the embodiments of this application, a brief introduction to the relevant technologies of this application is given first. The brief introduction is as follows:

[0070] 1. CDN technology

[0071] CDN technology is a technology that caches content on edge-deployed CDN nodes, which then distribute the content to the terminal. CDN technology provides faster and more stable content distribution to the terminal. The process of CDN nodes distributing content to the terminal is as follows: Figure 1 As shown, steps 101-108 are included:

[0072] Step 101: The terminal sends a DNS resolution request message to the local domain name system (DNS).

[0073] As an example, a user enters the domain name of a website they want to access, such as www.example.com, in an application or terminal. The terminal sends a DNS resolution request message carrying the website domain name www.example.com to the local DNS server. This DNS resolution request message is used to request the local DNS server to resolve the website domain name www.example.com.

[0074] Step 102: The local DNS forwards the DNS resolution request message to the domain authoritative DNS.

[0075] In some implementations, the local DNS checks whether it caches the Internet Protocol (IP) address record for www.example.com. If so, the local DNS directly returns the cached IP address of www.example.com to the terminal, allowing the terminal to request the required content from the CDN node based on that IP address. In this case, steps 103-105 can be skipped. If not, the local DNS forwards the DNS resolution request message to the authoritative DNS, enabling the authoritative DNS to query the IP address related to the domain name; that is, steps 103-105 continue to be executed.

[0076] Step 103: The domain authoritative DNS sends a DNS resolution response message to the local DNS.

[0077] In some implementations, the authoritative DNS resolves the canonical name (CNAME) of the domain name in the DNS resolution request message forwarded by the local DNS. The authoritative DNS then sends the domain name's CNAME to the local DNS via the DNS resolution response message.

[0078] Step 104: The local DNS sends a domain name access request message to the CDN scheduling system.

[0079] In some embodiments, the local DNS will send the canonical name (CNAME) of the domain name obtained in step 103 above to the CDN scheduling system and request access to the CDN node corresponding to the canonical name (CNAME).

[0080] Step 105: The CDN scheduling system sends the IP address of the target CDN node to the local DNS.

[0081] In some embodiments, after receiving a domain name access request message, the CDN scheduling system determines the CDN node with the fastest response speed, selects the CDN node as the target CDN node, and sends the IP address of the target CDN node to the local DNS.

[0082] Step 106: The local DNS sends the IP address of the target CDN node to the terminal.

[0083] In some embodiments, after receiving the IP address of the target CDN node from the CDN scheduling system, the local DNS forwards the IP address of the target CDN node to the terminal.

[0084] Step 107: The terminal sends a content request message to the target CDN node.

[0085] In some embodiments, the terminal sends a content request message to the target CDN node based on the target CDN node's IP address; the content request message is used to request the content required by the terminal.

[0086] Step 108: The target CDN node sends the content requested by the terminal to the terminal.

[0087] In some embodiments, the target CDN node determines the content requested by the terminal. If the target CDN node caches the requested content, it directly sends the requested content to the terminal. If the target CDN node does not cache the requested content, it requests the content from the origin server that stores it, the origin server sends the content to the target CDN node, and the target CDN node then sends the requested content to the terminal.

[0088] It's important to note that when a terminal requests content from a CDN node, it typically uses a Uniform Resource Locator (URL). To prevent URL theft, CDN nodes can protect the content requested by the terminal using anti-hotlinking technologies. For example, a CDN node might periodically change the URL corresponding to the content. This way, when a device uses an expired URL to request content, it will be unable to retrieve the content corresponding to that URL from the CDN node.

[0089] The above is an explanation of the technical terms used in the relevant technologies.

[0090] In a CDN network, CDN nodes that cache the content needed by a terminal can distribute that content to the terminal. When a CDN node distributes content, it typically copies the content to be sent multiple times and distributes it to multiple terminals. As an example, the process of a CDN node distributing content to multiple terminals is as follows: Figure 2 As shown, if three terminals access the same content, the CDN node will copy the content three times and send it to each of the three terminals via the user plane link, which includes the UPF and the access network (RAN). Since a CDN node typically needs to distribute content to multiple terminals, it requires significant egress bandwidth, resulting in high egress bandwidth costs. Furthermore, network congestion during content distribution by the CDN node can prevent many users from accessing the content correctly, degrading their user experience.

[0091] To address the problems existing in the prior art, this application provides a content distribution method. A first user plane network element indicates to a terminal the first address of a second user plane network element that provides content relay for the terminal; the terminal requests the required content from this first address. Thus, when the terminal requests content, the second user plane network element can relay the content for the terminal, eliminating the need for the terminal to request content from a CDN node, and the CDN node also eliminates the need to distribute content to the terminal. Therefore, the content distribution method provided by this application can reduce the amount of content distributed by CDN nodes to terminals, thereby reducing the egress bandwidth of CDN nodes and saving egress bandwidth costs. Furthermore, the content distribution method provided by this application also reduces the impact of network congestion on CDN services and improves user experience. In some embodiments, taking a User Plane Function (UPF) as an example, the process of the UPF replicating and distributing content to different users in the content distribution method provided by this application is as follows: Figure 3 As shown, if three terminals access the same content, the CND node will send the content to the UPF, and the UPF will copy the content three times and send them to the three terminals through the access network equipment respectively.

[0092] The following is a detailed description of the solutions provided in the embodiments of this application. Before introducing the embodiments of this application, the following points should be noted.

[0093] In the description of this application, unless otherwise stated, " / " indicates that the objects before and after are in an "or" relationship. For example, A / B can mean A or B. "And / or" in this application is merely a description of the relationship between the related objects, indicating that there can be three relationships. For example, A and / or B can mean: A exists alone, A and B exist simultaneously, and B exists alone. A and B can be singular or plural.

[0094] In the description of this application, A sending a message to B can be understood as A sending a message to B through one or more network elements.

[0095] In the description of this application, unless otherwise stated, "multiple" means two or more. "At least one of the following" or similar expressions refer to any combination of these items, including any combination of single or multiple items. For example, at least one of a, b and / or c can mean: a, b, c, ab, ac, bc, or abc, where a, b, and c can be single or multiple.

[0096] Furthermore, to facilitate a clear description of the technical solutions in the embodiments of this application, the terms "first" and "second" are used in the embodiments of this application to distinguish identical or similar items with substantially the same function and effect. Those skilled in the art will understand that the terms "first" and "second" do not limit the quantity or execution order, and the terms "first" and "second" are not necessarily different.

[0097] In the embodiments of this application, the terms "exemplary" or "for example" are used to indicate that something is an example, illustration, or description. Any embodiment or design that is described as "exemplary" or "for example" in the embodiments of this application should not be construed as being more preferred or advantageous than other embodiments or design. Specifically, the use of terms such as "exemplary" or "for example" is intended to present the relevant concepts in a specific manner to facilitate understanding.

[0098] It is understood that the term "embodiment" used throughout the specification means that a specific feature, structure, or characteristic related to an embodiment is included in at least one embodiment of this application. Therefore, various embodiments throughout the specification do not necessarily refer to the same embodiment. Furthermore, these specific features, structures, or characteristics can be combined in any suitable manner in one or more embodiments. It is understood that in the various embodiments of this application, the sequence number of each process does not imply the order of execution; the execution order of each process should be determined by its function and internal logic, and should not constitute any limitation on the implementation process of the embodiments of this application.

[0099] It is understood that in this application, "...when" and "if" both refer to the corresponding processing that will be carried out under certain objective circumstances, and are not limited to a specific time, nor do they require a judgment action to be performed during implementation, nor do they imply any other limitations.

[0100] It is understood that some optional features in the embodiments of this application can be implemented independently in certain scenarios without relying on other features, such as the current solution on which they are based, to solve the corresponding technical problems and achieve the corresponding effects. Alternatively, they can be combined with other features as needed in certain scenarios. Correspondingly, the apparatus given in the embodiments of this application can also implement these features or functions, which will not be elaborated here.

[0101] In this application, unless otherwise specified, the same or similar parts between the various embodiments can be referred to each other. In the various embodiments of this application, and in the various implementation methods / methods / implementations within each embodiment, unless otherwise specified or logically conflicting, the terminology and / or descriptions between different embodiments and between the various implementation methods / methods / implementations within each embodiment are consistent and can be mutually referenced. The technical features in different embodiments and the various implementation methods / methods / implementations within each embodiment can be combined according to their inherent logical relationships to form new embodiments, implementation methods, methods, or implementation approaches. The embodiments described below do not constitute a limitation on the scope of protection of this application.

[0102] The content distribution method provided in this application can be applied to the process of a terminal requesting and obtaining required content in a CDN network. For example... Figure 4 The diagram shown is a system architecture diagram of a communication system 40 provided in an embodiment of this application; as shown Figure 4 As shown, the communication system 40 includes: a terminal 401, a first user plane network element 402, a second user plane network element 403, and a CDN node 404. Optionally, the first user plane network element 402 can be a session anchor user plane network element of the terminal 401, and the second user plane network element 403 can be a user plane network element that provides content relay for the terminal 401. The number of user plane network elements, CDN nodes, and terminals can be one or more, and this embodiment does not limit this.

[0103] The first user plane network element 402 is used to determine the method by which the terminal 401 obtains content based on the content request from the terminal 401. The methods by which the terminal 401 obtains content include, but are not limited to, obtaining content from a CDN and obtaining content via content relay. It should be noted that, in this embodiment, content relay can be understood as content relay provided to the terminal by network elements in the core network. During content relay, core network elements can cache content to be distributed to the terminal, or have the function of requesting the content required by the terminal from CDN nodes. Thus, when the terminal requests content, the core network elements (such as user plane network elements) can distribute the content to the terminal.

[0104] Once the first user plane network element 402 determines that the terminal 401 obtains content from the CDN, the subsequent implementation process can refer to the process in the existing technology (e.g., Figure 1 The process shown is implemented as described in this application, which will not be elaborated upon here.

[0105] When the first user plane network element 402 determines that the terminal 401 obtains content via content relay, the first user plane network element 402 instructs the terminal 401 to provide a first address for content relay. Optionally, the first address is the address of the second user plane network element 403. After receiving the first address from the second user plane network element 403, the terminal 401 requests to obtain the required content based on the first address. After receiving the request from the terminal 401, the second user plane network element 403 sends its cached content to the terminal 401 based on the request. Optionally, if the second user plane network element 403 does not cache the content requested by the terminal 401, the second user plane network element 403 may request the content from the CDN node 404 and, after obtaining the content from the CDN node 404, send the content requested by the terminal 401 to the terminal 401. After obtaining the content from CDN node 404, the second user plane network element 403 can also cache the content. When the terminal requests the content again, the second user plane network element 403 can directly distribute the content to the terminal based on its own cached content.

[0106] In some embodiments, before the second user plane network element 403 sends content to the terminal 401, it can pre-determine whether the request from the terminal 401 is correct. If it is correct, the content is sent to the terminal 401; if it is incorrect, an indication message indicating that the request is incorrect is sent to the terminal.

[0107] Optionally, the terminal request error may occur in at least one of the following situations: the second user plane network element is unable to provide the content required by the terminal; the application identifier or first domain name in the first request message is inconsistent with the pre-configured application identifier or domain name; the first request message times out; or the content delivery network (CDN) indicates that the first request message is unavailable.

[0108] In other words, if the second user plane network element 403 determines that it cannot provide the required content to the terminal 401 (e.g., the content requested by the terminal 401 is not related to an application that can provide relay services), it sends a request error indication message to the terminal. Alternatively, if the Uniform Resource Locator (URL) in the terminal 401 request message is not a pre-configured URL that can provide relay services, the second user plane network element 403 sends a request error indication message to the terminal. Or, if the URL in the terminal 401 request message has timed out, the second user plane network element 403 sends a request error indication message to the terminal. Alternatively, the second user plane network element 403 verifies with the CDN whether the URL (or other information, such as authentication information) in the terminal 401 request message is available; if it is unavailable, it sends a request error indication message to the terminal.

[0109] The technical solutions provided in this application can be used in various communication systems, including 3GPP (3rd Generation Partnership Project) communication systems, such as 4G (4G) Long Term Evolution (LTE) systems, 5G New Radio (NR) systems, future communication network systems, vehicle-to-everything (V2X) systems, LTE and NR hybrid networking systems, device-to-device (D2D) systems, machine-to-machine (M2M) communication systems, Internet of Things (IoT) systems, and other future communication systems. Alternatively, the communication system can also be a non-3GPP communication system, and this application does not limit this.

[0110] Taking the content distribution method provided in this application embodiment applied to a 5G communication system as an example, Figure 5An exemplary network architecture diagram of a 5G communication system is shown. In this diagram, the 5G system may include: Network Slice Selection Function (NSSF), Network Exposure Function (NEF) network elements, Network Data Repository Function (NRF) network elements, Policy Control Function (PCF) network elements, Unified Data Management (UDM) network elements, Application Function (AF) network elements, Authentication Server Function (AUSF) network elements, Access and Mobility Management Function (AMF) network elements, Session Management Function (SMF) network elements, terminals, (radio)access network ((R)AN) network elements, UPF network elements, and a data network (DN). For ease of description, in the following text, (R)AN network elements, AMF network elements, SMF network elements, UDM network elements, UPF network elements, PCF network elements, etc. will be referred to as RAN, AMF, SMF, UDM, UPF, PCF, etc., respectively.

[0111] A 5G communication system consists of two parts: the access network and the core network. The access network implements functions related to radio access and mainly includes the RAN (Radio Access Registry). The core network is used for network service control and data transmission, and it comprises multiple network elements, mainly including: AMF (Area Functions), SMF (Small Format Functions), UPF (Upper Format Functions), PCF (Positioning Functions), and UDM (Uniform Module Functions). The following sections will discuss... Figure 5 A brief explanation of the functions of the network element:

[0112] Among them, NSSF is responsible for selecting the network slice used by user services.

[0113] NRF is responsible for the registration, discovery, and selection of network functions.

[0114] NEF is used to provide a framework, authentication and interface related to network capability openness, and to pass information between 5G system network functions and other network functions, such as opening up 5G network capabilities to external systems.

[0115] PCF is used to generate and manage user, session, and QoS processing policies; it also provides policies such as QoS policies and slice selection policies to AMF and SMF.

[0116] UDM is used to store and manage subscription information. For example, it is used to process 3rd Generation Partnership Project (3GPP) authentication and key agreement (AKA) credentials, user identification processing, access authorization, registration / mobility management, subscription management, SMS management, etc.

[0117] An Application Element (AF) is a functional network element used to provide various service operations. It can interact with the core network through Network Capability Opening (NEF) and with the policy management framework for policy management. An AF can be an application server, belonging to the operator or a third party. It primarily supports interaction with the 3GPP core network to provide services, such as influencing data routing decisions, policy control functions, or providing third-party services to the network side.

[0118] AUSF is responsible for authenticating users' 3GPP and non-3GPP access.

[0119] AMF is mainly used for access management functions and is responsible for signaling processing, such as terminal registration management, terminal connection management, terminal reachability management, terminal access authorization and authentication, terminal security functions, terminal mobility management (such as terminal location update, terminal network registration, terminal handover, etc.), network slice selection, SMF selection, and terminal registration or deregistration.

[0120] SMF (Service Flow Framework) is used to create and delete user PDU sessions, and maintain PDU session context and user plane forwarding pipeline information. It can also be used to implement control plane functions for terminal session management, including UPF selection, control, and redirection; Internet Protocol (IP) address allocation and management; session QoS management; obtaining policy and charging control (PCC) policies from the PCF; and establishing, modifying, and releasing bearers or sessions.

[0121] The User-Defined Processing (UPP) is primarily responsible for packet forwarding, QoS control, and billing information statistics. When serving as the anchor point for a PDU session connection, it handles terminal data packet filtering, data transmission / forwarding, rate control, billing information generation, user plane QoS processing, uplink authentication, transmission class verification, downlink packet buffering, and downlink data notification triggering. The UPF can also serve as a branch point for multi-homed PDU sessions. The transmission resources and scheduling functions providing services to the terminal within the UPF are managed and controlled by the Service-Defined Processing (SMF).

[0122] A Radio Access Network (RAN) is a network composed of one or more access network devices (also known as RAN nodes or network devices). It implements radio physical layer functions, resource scheduling and radio resource management, radio access control and mobility management, quality of service management, data compression and encryption, and other functions. Access network devices are connected to the User Plane Interface (N3) and the User Platform Function (UPF) for transmitting terminal data. Access network devices establish control plane signaling connections with the Access Provider Interface (AMF) through the Control Plane Interface (N2) for implementing radio access bearer control and other functions.

[0123] DN refers to a network entity used to provide data services.

[0124] As an example, the connection relationships of the above network element functional entities are as follows: The UE is connected to the AMF via the N1 interface. The (R)AN is connected to the AMF via the N2 interface. The (R)AN is connected to the UPF via the N3 interface. The UPF is connected to the SMF via the N4 interface. The UPF is connected to the DN via the N6 interface.

[0125] The service-oriented architecture employs an IT-based bus: AMF connects to the bus via the service-based interface Namf. AUSF connects to the bus via the service-based interface Nausf. SMF connects to the bus via the service-based interface Nsmf. NSSF connects to the bus via the service-based interface Nnssf. NEF connects to the bus via the service-based interface Nnef. NRF connects to the bus via the service-based interface Nnrf. PCF connects to the bus via the service-based interface Npcf. UDM connects to the bus via the service-based interface Nudm. AF connects to the bus via the service-based interface Naf.

[0126] As another example, the functions of the N1, N2, N3, and N4 interfaces are as follows: The N1 interface is the interface between the UE (User Equipment) and the core network control plane, used for transmitting NAS signaling. The N2 interface is the communication interface between the access network element (AN) and the core network control plane. The N3 interface is the communication interface between the access network element (AN) and the core network user plane element (UPF), used for transmitting user data. The N4 interface is the communication interface between the control plane session management element (SMF) and the user plane element (UPF), used for policy configuration of the UPF, etc.

[0127] Optionally, the access network equipment involved in this application can be a base station, a wireless fidelity (WiFi) access point (AP), a worldwide interoperability for microwave access (WiMAX) site, etc. Base stations can include various forms of base stations, such as macro base stations, micro base stations (also known as small stations), relay stations, access points, etc. Specifically, it can be: an access point (AP) in a wireless local area network (WLAN), a base station (BTS) in a global system for mobile communications (GSM) or code division multiple access (CDMA), a base station (NodeB, NB) in a wideband code division multiple access (WCDMA), an evolved base station (eNB or eNodeB) in LTE, a relay station or access point, or a vehicle-mounted device, wearable device, or a next-generation node B (gNB) in a future 5G system, or a base station in a future evolved public land mobile network (PLMN), etc.

[0128] Optionally, the terminal involved in this application can be user equipment (UE), access terminal, terminal unit, user station, terminal station, mobile station, mobile station, remote station, remote terminal, user terminal equipment (TE) in a network (such as a 5G network or a public land mobile network (PLMN) evolved after 5G), mobile device, wireless communication device, terminal agent, tablet computer, handheld device with wireless communication function, computing device or other processing device connected to a wireless modem, vehicle-mounted device, vehicle-mounted transceiver unit, wearable device, or terminal device. The access terminal can be a cellular phone, cordless phone, session initiation protocol (SIP) phone, wireless local loop (WLL) station, personal digital assistant (PDA), handheld device with wireless communication function, computing device or other processing device connected to a wireless modem, vehicle-mounted device, drone, robot, point of sale (POS) machine, customer-premises equipment (CPE), or wearable device, virtual reality (VR) device. Wireless terminals can be categorized into various types, including VR (Augmented Reality) terminal devices, AR terminal devices, wireless terminals in industrial control, self-driving, remote medical, smart grid, transportation safety, smart city, and smart home terminals. Alternatively, terminals can be communication-enabled devices within the Internet of Things (IoT), such as V2X terminals (e.g., vehicle-to-everything devices), D2D communication terminals, or M2M communication terminals. Terminals can be mobile or fixed.

[0129] The embodiments of this application do not limit the form of the terminal. The device used to implement the functions of the terminal can be the terminal itself; it can also be a device that supports the terminal in implementing the functions, such as a chip system. The device can be installed in the terminal or used in conjunction with the terminal. In the embodiments of this application, the chip system can be composed of chips, or it can include chips and other discrete devices.

[0130] In one possible implementation, the user plane network element, CDN node, and terminal in the embodiments of this application can also be referred to as a content distribution device, which can be a general-purpose device or a special-purpose device. The embodiments of this application do not specifically limit this.

[0131] In one possible implementation, the user plane network elements, CDN nodes, and terminal functions in the embodiments of this application can be implemented by one device, multiple devices working together, or one or more functional modules within a single device. This application does not specifically limit these implementations. It is understood that the aforementioned functions can be network elements in hardware devices, software functions running on dedicated hardware, a combination of hardware and software, or virtualization functions instantiated on a platform (e.g., a cloud platform).

[0132] In practical implementation, Figure 4 The user plane network elements, CDN nodes, and terminals shown can all be adopted. Figure 6 The shown composition structure, or including Figure 6 The components shown. Figure 6 This is a schematic diagram of the hardware structure of a content distribution device 600 provided in an embodiment of this application. The content distribution device 600 includes a processor 601, a communication line 602, a memory 603, and at least one communication interface. Figure 6 (The following is merely an example illustrating the concept of communication interface 604.)

[0133] The processor 601 may be a general-purpose central processing unit (CPU), a microprocessor, an application-specific integrated circuit (ASIC), or one or more integrated circuits used to control the execution of the program of the present application.

[0134] Communication line 602 may include a path for transmitting information between the aforementioned components.

[0135] Communication interface 604 uses any transceiver-like device for communicating with other devices or communication networks, such as Ethernet, RAN, wireless local area networks (WLAN), etc.

[0136] The memory 603 may be a read-only memory (ROM) or other type of static storage device capable of storing static information and instructions, random access memory (RAM) or other type of dynamic storage device capable of storing information and instructions, or electrically erasable programmable read-only memory (EEPROM), compact disc read-only memory (CD-ROM) or other optical disc storage, optical disc storage (including compressed optical discs, laser discs, optical discs, digital versatile optical discs, Blu-ray discs, etc.), magnetic disk storage media or other magnetic storage devices, or any other medium capable of carrying or storing desired program code in the form of instructions or data structures and accessible by a computer, but not limited thereto. The memory may exist independently and be connected to the processor via communication line 602. The memory may also be integrated with the processor.

[0137] The memory 603 stores computer execution instructions for implementing the scheme of this application, and its execution is controlled by the processor 601. The processor 601 executes the computer execution instructions stored in the memory 603, thereby implementing the content distribution method provided in the following embodiments of this application.

[0138] Optionally, the computer execution instructions in the embodiments of this application may also be referred to as application code, and the embodiments of this application do not specifically limit this.

[0139] In a specific implementation, as one embodiment, the processor 601 may include one or more CPUs, for example... Figure 6 CPU0 and CPU1 in the CPU.

[0140] In a specific implementation, as one example, the content distribution device 600 may include multiple processors, such as... Figure 6 Processors 601 and 607 are described herein. Each of these processors may be a single-core (single-CPU) processor or a multi-core (multi-CPU) processor. A processor here may refer to one or more devices, circuits, and / or processing cores used to process data (e.g., computer program instructions).

[0141] In a specific implementation, as one embodiment, the content distribution device 600 may further include an output device 605 and an input device 606. The output device 605 communicates with the processor 601 and can display information in various ways. For example, the output device 605 may be a liquid crystal display (LCD), a light-emitting diode (LED) display device, a cathode ray tube (CRT) display device, or a projector, etc. The input device 606 communicates with the processor 601 and can receive user input in various ways. For example, the input device 606 may be a mouse, keyboard, touchscreen device, or sensing device, etc.

[0142] The content distribution device 600 described above can be a general-purpose device or a dedicated device. In specific implementations, the content distribution device 600 can be a desktop computer, a laptop computer, a network server, a handheld digital assistant (PDA), a mobile phone, a tablet computer, a wireless terminal, an embedded device, or something similar. Figure 6 Devices with similar structures. This application does not limit the type of content distribution device 600 to any particular embodiment.

[0143] also, Figure 6 The structural composition shown herein does not constitute a limitation on the content distribution device, except... Figure 6 In addition to the components shown, the content distribution device may include more or fewer components than illustrated, or combine certain components, or have different component arrangements.

[0144] In this embodiment of the application, the chip system may be composed of chips or may include chips and other discrete devices.

[0145] Furthermore, the actions, terms, etc., involved in the various embodiments of this application can be referenced interchangeably without limitation. The message names or parameter names in the messages exchanged between the various devices in the embodiments of this application are merely examples, and other names may be used in specific implementations without limitation.

[0146] The following is combined Figures 1 to 6 This application describes the content distribution method provided in the embodiments of the present application, as well as the functions and actions performed by each device in the communication system.

[0147] It should be noted that in the following embodiments of this application, the message names between network elements, the names of each parameter, or the names of each piece of information are just examples. Other names may also be used in other embodiments. The content distribution method provided in this application does not specifically limit these names.

[0148] Furthermore, in the embodiments of this application, each network element can execute some or all of the steps in the embodiments of this application. These steps or operations are merely examples, and the embodiments of this application can also perform other operations or variations of various operations. In addition, the steps can be executed in different orders as presented in the embodiments of this application, and it is not necessary to execute all the operations in the embodiments of this application.

[0149] Figure 7 This is a flowchart illustrating a content distribution method provided in an embodiment of this application. In this embodiment, a first user plane network element indicates a first address for providing content relay to the terminal. Optionally, the first address is the address of a second user plane network element. The terminal sends a first request message to the first address, requesting to obtain the content required by the terminal. After receiving the first request message, the second user plane network element sends the content to the terminal. In this way, the content requested by the terminal is relayed by the second user plane network element, eliminating the need for all content distribution to the terminal by CDN nodes. This significantly reduces the amount of content distributed by CDN nodes, thereby reducing the outbound bandwidth of CDN nodes. The following describes the functions and actions of each device in the communication system provided in this embodiment, in conjunction with the above communication process. Figure 7 As shown, this content distribution method includes the following steps:

[0150] Step 701: The first user plane network element is determined to be the second user plane network element that provides content relay for the terminal.

[0151] In some embodiments, the first user plane network element is pre-configured with application information for applications requiring content distribution via content relay (denoted as the first application). Optionally, the application information is used to indicate the application; for example, the application information includes, but is not limited to, an application identifier or domain name. After the first user plane network element obtains the application information for the content required by the terminal, it determines the application related to the content required by the terminal. The first user plane network element determines whether the application related to the content required by the terminal is the aforementioned first application requiring content distribution via content relay. If so, it determines a second user plane network element capable of providing content relay for the terminal and instructs the terminal to obtain the required content via content relay. If not, it determines a CDN node that provides content relay for the terminal and instructs the terminal to obtain the content via the CDN node. The method by which the terminal obtains content via the CDN node can refer to related technologies, which will not be elaborated here.

[0152] In some embodiments, the first user plane network element is a Protocol Data Unit Session Anchor (PSA) UPF. It should be noted that in this embodiment, the first user plane network element and the second user plane network element can be the same user plane network element. For example, the first user plane network element and the second user plane network element can be deployed together. In this case, in this embodiment, the actions performed by the first user plane network element and the second user plane network element are actions performed by the same user plane network element, and related processes can be merged and executed.

[0153] In the embodiments of this application, the user plane network element can be a UPF, or other network elements with user plane functions, or other types of network elements, such as network elements used for address discovery, etc. This application does not limit this.

[0154] Step 702: The first user plane network element sends first indication information to the terminal. Correspondingly, the terminal receives the first indication information from the first user plane network element.

[0155] The first indication information is used to indicate the first address of the content relay service. Optionally, the first address may be the address of a second user plane network element.

[0156] In some embodiments, after the first user plane network element determines the second user plane network element that provides content relay for the terminal, it indicates the relevant address of the second user plane network element to the terminal so that the terminal can request content relay service to that address.

[0157] It should be noted that the aforementioned first address can be the address of the second user plane network element, or it can be any other address that can point to the second user plane network element. For example, the first address can be a general address of a load balancing device. After the terminal sends a message to the first address, the load balancing device can forward the terminal's request to the second user plane network element based on the load balancing strategy. Furthermore, in the embodiments of this application, the first address can also be any other address that can point to the second user plane network element, and this application does not limit this.

[0158] It should be noted that when the first address is not the second user plane address, the first address does not need to correspond to a specific UPF. For example, when the first user plane network element receives a message with the first address as the destination address, it sends the message to a different second user plane network element corresponding to the session according to the user session information.

[0159] Step 703: The terminal sends a first request message to the first address.

[0160] The first request message is used to request the content needed by the terminal. As an example, the first request information is carried in a Hypertext Transfer Protocol (HTTP) GET request, which includes the address of the content, such as the first URL of the content: http: / / www.example.com / video1.flv.

[0161] In some embodiments, step 703 can specifically be implemented as follows: the terminal sends a first request message to a first address based on first configuration information. The first configuration information includes at least one of the following: the transmission protocol, streaming protocol, and security mechanism between the terminal and the second user plane network element. Optionally, the first configuration information is determined based on at least one of the following methods: the first user plane network element instructs the terminal; the session management network element instructs the terminal; the server instructs the terminal; or pre-negotiated. In other words, the first user plane network element instructs the terminal on the first configuration information; or the session management network element instructs the terminal on the first configuration information; or the server instructs the terminal on the first configuration information; or the terminal determines the first configuration information through pre-negotiation.

[0162] As an example, the aforementioned pre-negotiation method for determining the first configuration information can be based on the first configuration information being pre-defined through a protocol.

[0163] In the embodiments of this application, the session management network element can be an SMF or other network elements with session management functions, and this application does not limit it.

[0164] Step 704: The second user plane network element receives the first request message.

[0165] In some embodiments, steps 703 and 704 can be the same step. For example, if the first address is the IP address of the second user plane network element, sending the first request message from the terminal to the first address is equivalent to directly sending the first request message to the second user plane network element. Accordingly, the second user plane network element receives the first request message from the terminal.

[0166] In some other embodiments, steps 703 and 704 can be different steps. For example, the first address is the general IP address of the load balancer. After the terminal sends a first request message to the first address, the load balancer forwards the terminal's first request message to the second user plane network element based on the current load balancing policy. The second user plane network element receives the first request message from the load balancer.

[0167] Step 705: The second user plane network element sends content to the terminal. Correspondingly, the terminal receives content from the second user plane network element.

[0168] In some embodiments, the second user plane network element determines whether the content required by the terminal exists in the cached content of the second user plane network element based on the terminal's first request message. If it exists, the second user plane network element directly sends the required content to the terminal. If it does not exist, the second user plane network element requests the required content from the CDN node and sends the required content to the terminal after obtaining it.

[0169] It should be noted that after the second user plane network element obtains the content required by the terminal from the CDN node, the second user plane network element caches the content. When the terminal requests the content again, the second user plane network element can directly send the content required by the terminal to the terminal based on its own cache, without having to obtain it from the CDN node again.

[0170] This application provides a content distribution method in which a first user plane network element indicates to a terminal the first address of a second user plane network element that provides content relay for the terminal; the terminal then requests the required content from this first address. In this way, when the terminal requests content, the second user plane network element can relay the content for the terminal, eliminating the need for the terminal to request content from a CDN node, and the CDN node also eliminates the need to distribute content to the terminal. Therefore, the content distribution method provided by this application can reduce the amount of content distributed by CDN nodes to terminals, thereby reducing the egress bandwidth of CDN nodes and saving egress bandwidth costs. Furthermore, the content distribution method provided by this application also reduces the impact of network congestion on CDN services and improves user experience.

[0171] In some embodiments, when a terminal requests required content from a second user plane network element, it can request the required content from the second user plane network element through the application identifier or domain name of that content. In other words, the first request message sent by the terminal to the second user plane network element includes the application identifier or domain name of the content required by the terminal in the content relay. In this case, the terminal can obtain the application identifier or domain name in the content relay from the server. Combined with... Figure 7 ,like Figure 8 The following describes the process by which a terminal obtains the application identifier or domain name from the content relay from the server, and the process of obtaining content based on the application identifier or domain name:

[0172] Step 801: The terminal sends third instruction information to the server. Correspondingly, the server receives the third instruction information from the terminal.

[0173] The third instruction information is used to instruct that the content distribution service is provided by the content relay.

[0174] In some implementations, when a terminal determines that a content relay is providing the content distribution service, the terminal requests a list of content from the server and instructs the content relay to provide the content distribution service.

[0175] Optionally, the terminal determines that the content distribution service is provided by the content relay in a manner including but not limited to at least one of the following: the terminal determines that the content distribution service is provided by the content relay based on the aforementioned first indication information; the terminal determines that the content distribution service is provided by the content relay based on historical records.

[0176] As an example, a method for a terminal to determine that content distribution services are provided by a content relay based on historical records includes: before requesting the required content, the terminal requested domain name resolution for domain name 1 from the user plane network element, and received a DNS response for domain name 1 indicating that the domain name is a domain name for which content relay provides content distribution services. Then, when the terminal subsequently requests content related to domain name 1, if the DNS has not been updated, the local IP address has not changed, or the network access method has not changed, the terminal determines that content distribution services are still provided by the content relay based on the historical request records of domain name 1.

[0177] It should be noted that, in the embodiments of this application, the terminal may send the third instruction information to the server when requesting a dynamic page after the user session is created. Alternatively, the terminal may send the third instruction information to the server after receiving the first instruction information from the first user plane network element. Alternatively, the terminal may send the third instruction information to the server after determining, based on other means, that the content distribution service is provided by the content relay, and this application does not limit this.

[0178] Step 802: The server sends a second instruction to the terminal. Correspondingly, the terminal receives the second instruction from the server.

[0179] The second indication information is used to indicate the application identifier or first domain name of the content required by the terminal in the content relay.

[0180] In some embodiments, after receiving the third instruction information, the server determines that a content relay will provide content distribution services to the terminal. At this time, the server determines the content required by the terminal and sends the address of that content in the content relay, such as a first URL, to the terminal. In some embodiments, the server may also instruct the terminal on transmission configuration information such as the transmission protocol, streaming protocol, and authentication method. The aforementioned transmission configuration information, such as the transmission protocol, streaming protocol, and authentication method, may be carried in the second instruction information or may be sent to the terminal by the server through other messages; this application does not limit this.

[0181] As an example, if a terminal sends a third instruction to the server when requesting a dynamic page after a user session is created, the server can return a first URL for the content to the terminal, which is the URL the terminal uses to access the content when retrieving it via content relay (e.g., http: / / www.example.com / video1.flv). Since the first URL includes the first domain name, the terminal can resolve the first domain name based on the first URL sent by the server. Furthermore, the server can also return a second URL for the content to the terminal, which is the URL for accessing the content on the public internet (e.g., a CDN node). The terminal can also resolve the second domain name from the second URL. This application will not elaborate on this further.

[0182] As another example, if the terminal sends a third instruction to the server after receiving a first instruction from a first user plane network element, or after determining, through other means, that the content relay provides the content distribution service, then the server may simply return the first URL of the content to the terminal. Furthermore, when the terminal requests a dynamic page after a user session has been created, the server may return the first domain name of the content (e.g., www.example.com) to the terminal. In other words, when the terminal requests a dynamic page, the server first returns the first domain name of the content to the terminal; subsequently, after the terminal determines that the content relay provides the content distribution service, it sends a third instruction to the server, and the server returns the first URL to the terminal.

[0183] Steps 801 and 802 above describe the process by which the terminal obtains the application identifier or domain name from the content relay from the server.

[0184] Step 803: The terminal sends the fourth indication information to the first user plane network element. Correspondingly, the first user plane network element receives the fourth indication information from the terminal.

[0185] The fourth indication information is used to indicate the application identifier or first domain name requested by the terminal. The application identifier or first domain name requested by the terminal can be used to represent the content required by the terminal. In other words, the content required by the terminal is the content pointed to by the application identifier or first domain name.

[0186] In some embodiments, if a terminal sends a third instruction to the server when requesting a dynamic page after a user session is created, and the server returns a first URL of the content to the terminal, the terminal can resolve the first domain name from the first URL. Afterward, the terminal generates a fourth instruction based on the first domain name and sends the fourth instruction to the first user plane network element.

[0187] In some other embodiments, the terminal may obtain the first domain name sent by the server when requesting a dynamic page after a user session has been created. Furthermore, after receiving a first instruction from a first user plane network element, or after determining, based on other means, that content distribution services are provided by a content relay, the terminal sends a third instruction to the server, and the server returns the first URL of the content to the terminal.

[0188] As an example, in the case where the fourth indication information is used to indicate the first domain name, the fourth indication information is carried in the DNS domain name resolution request; the first indication information is carried in the DNS response message.

[0189] It should be noted that the identifiers or domain names involved in the embodiments of this application can be application identifiers or domain names, or identifiers or domain names corresponding to the content. For example, when a terminal requests content through a webpage in a browser, the identifier or domain name in the request message is not the identifier or domain name of the browser application, but the identifier or domain name of the requested content (such as the content of a short video application). This application does not limit this.

[0190] The first domain name can also be a domain name that identifies the provider of content relay services. For example, the first domain name is indicated in the fourth instruction information. When the first user plane network element receives the fourth instruction information, it determines the terminal's request for content relay services based on the first domain name in the fourth instruction information.

[0191] After step 803, the first user plane network element, the second user plane network element, the terminal, and the CDN node execute steps 701-705 above to complete the process of the terminal pulling the required content from the second user plane network element.

[0192] During the process of a terminal requesting content, if the CDN node uses anti-hotlinking technology, the terminal is not allowed to use the URL before the update after the CDN node updates the content URL. However, if the second user plane is unaware that the CDN node has updated the content URL, the second user plane network element may send the corresponding content to the terminal when the terminal requests content using the URL before the update, causing the CDN node's anti-hotlinking technology to malfunction.

[0193] To address the aforementioned issues, before sending content to the terminal based on the terminal's first request message, the second user plane network element can pre-verify the first request message. If the verification passes, the second user plane network element sends the content to the terminal; if the verification fails, the second user plane network element sends a content request error message to the terminal, indicating that the terminal cannot obtain content based on the first request message. Figure 8 As shown, this process can be implemented through the following steps:

[0194] Step 804: If the first request message encounters an error requesting content, the second user plane network element sends a content request error message to the terminal. Correspondingly, the terminal receives the content request error message from the second user plane network element.

[0195] Among them, the content request error message is used to indicate that the first request message requesting to obtain content is abnormal.

[0196] As one implementation, an anomaly in the first request message's request for content includes at least one of the following: the second user plane network element cannot provide the content required by the terminal; the application identifier or first domain name in the first request message is inconsistent with the pre-configured application identifier or domain name; the first request message times out; or the content delivery network (CDN) node indicates that the first request message is unavailable. Optionally, the aforementioned pre-configured application identifier or domain name may be an application identifier or domain name pre-configured by the session management network element for the second user plane network element, or it may be an application identifier or domain name configured for the second user plane network element based on other methods. This application embodiment does not limit this.

[0197] In other words, if the second user plane network element determines that it cannot provide the required content to the terminal (e.g., the content requested by the terminal should not be related to an application that can provide relay services), it sends an error message to the terminal.

[0198] Alternatively, if the domain name in the URL of the terminal request message is not the domain name corresponding to the application that provides relay services or the first domain name, the second user plane network element sends a request error indication message to the terminal.

[0199] Alternatively, if the URL in the terminal's request message has expired, the second user plane network can send an error message to the terminal indicating a request failure. In this way, the second user plane network element can reuse the security mechanisms of the CDN node. By sending a content request error message to the terminal when the URL has expired, the second user plane network element can avoid sending the corresponding content to the terminal when the terminal requests content using an older URL, thus preventing the CDN node's anti-leeching technology from functioning properly.

[0200] Alternatively, the second user plane network element verifies with the CDN whether the URL (or other information, such as authentication information) in the terminal request message is available. If it is found to be unavailable, it sends an indication message indicating that the request is incorrect to the terminal.

[0201] It should be noted that, in the embodiments of this application, the first user plane network element and the second user plane network element can be the same user plane network element or different user plane network elements, and this application does not limit this. In the embodiments of this application, the first user plane network element and / or the second user plane network element can be a UPF, or other network elements with user plane functions, or other types of network elements, such as functional network elements used for address discovery, etc., and this application does not limit this.

[0202] The following section provides a detailed explanation of the process by which a terminal obtains content based on content relay, using specific scenarios as examples. Figure 9 As shown, when a terminal obtains content based on content relay, the interaction process between various network elements is as follows:

[0203] Step 901: The server sends the first content relay application indication information to the session management network element. Correspondingly, the session management network element receives the first content relay application indication information from the server.

[0204] The first content relay application indication information is used to indicate the application information of the application that needs to provide content relay, such as the application identifier or the first domain name (e.g., www.example.com).

[0205] Optionally, the first content relay application indication information is also used to indicate transmission configuration information such as the transmission protocol, streaming protocol, and authentication method during content distribution in the content relay process. This facilitates the session management network element in configuring relevant transmission configuration information to the terminal and / or user plane network element, thereby enabling the terminal and / or user plane network element to transmit content based on these transmission configurations.

[0206] It should be noted that the aforementioned transmission configuration information, such as transmission protocol, streaming protocol, and authentication method, may be indicated by the server to the session management network element or may be pre-agreed upon; this application does not limit this.

[0207] It should be noted that when the server sends the first content relay application indication information to the session management network element, the server can send it directly to the session management network element, or send it through the network open function network element, or send it through other network elements. This application embodiment does not limit this.

[0208] Step 902: The session management network element sends the second content relay application indication information to the first user plane network element. Correspondingly, the first user plane network element receives the second content relay application indication information from the session management network element.

[0209] The second content relay application indication information is used to indicate the application information of the application that needs to provide content relay, such as the application identifier or the first domain name.

[0210] Optionally, the second content relay application indication information is also used to indicate transmission configuration information such as transmission protocol, streaming protocol, and authentication method when distributing content during the content relay process.

[0211] Step 903: The session management network element sends a third content relay application indication message to the second user plane network element. Correspondingly, the second user plane network element receives the third content relay application indication message from the session management network element.

[0212] The second content relay application indication information is used to indicate the application information of the application that needs to provide content relay, such as the application identifier or the first domain name, and / or the corresponding second domain name, etc.

[0213] Optionally, the second content relay application indication information is also used to indicate transmission configuration information such as transmission protocol, streaming protocol, and authentication method when distributing content during the content relay process.

[0214] Step 904: The terminal obtains a list of media content from the server.

[0215] In some embodiments, after a terminal establishes a session, it sends a media content list request message to the server. The server then sends a media content list to the terminal based on the media content list request message. As an example, the server sends the media content list to the terminal in an application layer message.

[0216] Optionally, the media content list may include a first content address when the terminal obtains the required content via a content relay, such as a first HTTP URL: www.example.com / video1.flv. Additionally, the media content list may also include a second content address when the terminal obtains the required content via a non-content relay method, such as the address (second HTTP URL) when the terminal requests the required content from a CDN.

[0217] It should be noted that the first content address may or may not include the first domain name information. In other words, the server may provide the terminal with the first domain name information and the first content address information separately, or the server may include the first domain name information in the provided first content address. This application does not limit this.

[0218] Optionally, the server in this application embodiment can be a server, or other servers capable of providing a list of media content to the terminal.

[0219] Step 905: The terminal sends a first DNS domain name resolution request to the first user plane network element. Correspondingly, the first user plane network element receives the first DNS domain name resolution request from the terminal.

[0220] The first DNS domain name resolution request includes the aforementioned first domain name; the first DNS domain name resolution request is used to request the first user plane network element to resolve the first domain name.

[0221] It should be noted that the first DNS domain name resolution request is the fourth indication information mentioned above. The understanding of the first DNS domain name resolution request can be referred to the description of the fourth indication information above, and this application will not repeat it here.

[0222] Step 906: The first user plane network element sends a first DNS domain name resolution response message to the terminal. Correspondingly, the terminal receives the first DNS domain name resolution response message from the first user plane network element.

[0223] In some implementations, after receiving a first DNS domain name resolution request from the terminal, the first user plane network element determines that content relay needs to be provided to the terminal based on the first domain name in the first DNS domain name resolution request. At this time, the first user plane network element determines a second user plane network element that can provide content relay to the terminal, and indicates the first address of the content relay service to the terminal through a first DNS domain name resolution response message. The first address can be the address of the second user plane network element.

[0224] It should be noted that the DNS domain name resolution response message is the aforementioned first indication information. The relevant understanding of the DNS domain name resolution response message can be referred to the description of the first indication information above, and this application will not repeat it here.

[0225] As one implementation, the first user plane network element can select the second user plane network element on its own; or the first user plane network element can determine the second user plane network element through the session management network element. Wherein, if the first user plane network element determines the second user plane network element through the session management network element, step 906 can be implemented through the following steps:

[0226] Step 9061: The first user plane network element sends a second DNS domain name resolution request to the session management network element. Correspondingly, the session management network element receives the second DNS domain name resolution request from the first user plane network element.

[0227] The second DNS domain name resolution request includes the aforementioned first domain name; the second DNS domain name resolution request is used to request the session management network element to resolve the first domain name.

[0228] Step 9062: Select the second user plane network element for session management.

[0229] In some embodiments, the session management network element selects a user plane network element that can provide content relay for the first domain name as the second user plane network element based on the first domain name of the second DNS domain name resolution request.

[0230] As an example, after the session management network element selects the second user plane network element, it inserts the second user plane network element into the user session, such as as an uplink classifier (ULCL) user plane network element or a local PDU session anchor (L-PSA) in the user session.

[0231] Optionally, the session management network element can also instruct the second user plane network element on transmission configuration information such as the transmission protocol, streaming protocol, and authentication method when distributing content during the content relay process.

[0232] Step 9063: The session management network element instructs the second user plane network element to the first user plane network element.

[0233] As an example, the session management network element sends the IP address of the second user plane network element or the address of the content relay service to the first user plane network element.

[0234] Step 907: The terminal sends a first request message to the second user plane network element. Correspondingly, the second user plane network element receives the first request message from the terminal.

[0235] The specific implementation process of this process can be referred to step 703 above, and will not be repeated here.

[0236] In some embodiments, after receiving a first DNS domain name resolution response message from a first user plane network element, the terminal determines the method for obtaining the content.

[0237] As an example, suppose the first domain is a domain used for content relay (e.g., the first domain is only valid for content relay). Since the first domain is a domain used for content relay, when the terminal receives a DNS response message for the first domain, it means that the first user plane network element has successfully resolved it, and the first user plane network element has determined that it can provide content relay. In this case, the terminal receiving a DNS response message for the first domain means that the terminal can obtain content related to the first domain through content relay. If the first user plane network element fails to resolve it, the first DNS domain name resolution request will be sent to the DNS server. Since the first domain is used for content relay and is unavailable in other situations, the DNS server will not be able to resolve the first DNS domain name resolution request normally. The terminal will not receive a DNS response message for the first domain. In this case, the terminal not receiving a DNS response message for the first domain means that the terminal cannot obtain content related to the first domain through content relay. In other words, when the first domain is only valid for content relay, if the terminal receives a DNS response message for the first domain, it means that the terminal can obtain content related to the first domain through content relay. If the terminal does not receive a DNS response message for the first domain, it means that the terminal cannot obtain content related to the first domain through content relay.

[0238] As another example, when the first domain name is used both for content relay and for retrieving content from CDN nodes, after the terminal receives the DNS response message for the first domain name, it needs to resolve the identifier in the DNS response message. If the identifier in the DNS response message indicates that the terminal retrieves content via content relay, the terminal sends a first request message to the second user plane network element. If the identifier in the DNS response message indicates that the terminal retrieves content via a non-content relay method, the terminal can request content from the CDN node based on the aforementioned second HTTP URL.

[0239] As another example, the DNS response message may carry CNAME information, which is used to identify that the service is provided by the content relay. For example, the CNAME is a domain name unique to the content relay, or it contains identification information that identifies the content relay as providing the service.

[0240] In some embodiments, before sending the first request message to the second user plane network element, the terminal prepares to obtain content from the second user plane network element based on pre-configuration or transmission configuration information such as the aforementioned transmission protocol, streaming protocol, and authentication method. For example, a TCP connection with the first address is established based on pre-configuration or transmission configuration information such as the aforementioned transmission protocol, streaming protocol, and authentication method.

[0241] It should be noted that when the second user plane network element does not cache the content requested by the terminal, the second user plane network element obtains the content from the CDN node and sends the content to the terminal.

[0242] Step 908: The second user plane network element sends content to the terminal. Correspondingly, the terminal receives the content from the second user plane network element.

[0243] The specific implementation method of step 908 can be referred to the implementation method described in step 705 above, and will not be repeated here.

[0244] exist Figure 9 When a terminal requests a dynamic page, the server simultaneously instructs the terminal on the first domain name and the URL, as an example for illustration. Furthermore, as another example, such as... Figure 10 As shown, the server can send the first domain name and URL to the terminal in different processes. The following combines... Figure 10 Please provide a detailed explanation.

[0245] Step 1001: The server sends the first content relay application indication information to the session management network element. Correspondingly, the session management network element receives the first content relay application indication information from the server.

[0246] The specific implementation method of step 1001 can be referred to the implementation method described in step 901 above, and will not be repeated here.

[0247] Step 1002: The session management network element sends the second content relay application indication information to the first user plane network element. Correspondingly, the first user plane network element receives the second content relay application indication information from the session management network element.

[0248] The specific implementation method of step 1002 can be referred to the implementation method described in step 902 above, and will not be repeated here.

[0249] Step 1003: The session management network element sends a third content relay application indication message to the second user plane network element. Correspondingly, the second user plane network element receives the third content relay application indication message from the session management network element.

[0250] The specific implementation method of step 1003 can be referred to the implementation method described in step 903 above, and will not be repeated here.

[0251] Step 1004: The terminal obtains a list of media content from the server.

[0252] In some embodiments, unlike Figure 9 In step 904, in step 1004, the server may send only the first domain name of the required content to the terminal. The remaining implementation methods are similar to step 904, and will not be described in detail here.

[0253] Step 1005: The terminal sends a first DNS domain name resolution request to the first user plane network element. Correspondingly, the first user plane network element receives the first DNS domain name resolution request from the terminal.

[0254] The specific implementation method of step 1005 can be referred to the implementation method described in step 905 above, and will not be repeated here.

[0255] Step 1006: The first user plane network element sends a first DNS domain name resolution response message to the terminal. Correspondingly, the terminal receives the first DNS domain name resolution response message from the first user plane network element.

[0256] The specific implementation method of step 1006 can be referred to the implementation method described in step 906 above, and will not be repeated here.

[0257] Step 1007: The terminal instructs the server to perform content relay.

[0258] In some implementations, when a terminal determines that a content relay is providing the content distribution service, the terminal requests a list of content from the server and instructs the content relay to provide the content distribution service.

[0259] Optionally, the terminal determines that the content distribution service is provided by the content relay in ways including but not limited to at least one of the following: the terminal determines that the content distribution service is provided by the content relay based on the aforementioned first indication information; the terminal determines that the content distribution service is provided by the content relay based on historical records. As an example, the method by which the terminal determines that the content distribution service is provided by the content relay based on historical records includes: if the terminal has previously requested domain name resolution for domain name 1 and received a DNS response for domain name 1 indicating that the domain name is a domain name for which the content relay provides content distribution services, then when the terminal subsequently requests content related to domain name 1, if the DNS has not been updated, or the local IP address has not changed, or the network access method has not changed, the terminal determines that the content distribution service is still provided by the content relay.

[0260] Step 1008: The server sends content relay parameters to the terminal.

[0261] The content relay parameters include, but are not limited to, at least one of the following: the first URL, and transmission configuration information such as the transmission protocol, streaming protocol, and authentication method used for content distribution.

[0262] In some embodiments, when the server determines that a content relay provides content distribution services to the terminal, the server determines the content required by the terminal and sends the address of the content in the content relay, a first URL (e.g., http: / / www.example.com / video1.flv), to the terminal.

[0263] Step 1009: The terminal sends a first request message to the second user plane network element. Correspondingly, the second user plane network element receives the first request message from the terminal.

[0264] The specific implementation method of step 1009 can be referred to the implementation method described in step 907 above, and will not be repeated here.

[0265] Step 1010: The second user plane network element sends content to the terminal. Correspondingly, the terminal receives content from the second user plane network element.

[0266] The specific implementation method of step 1010 can be referred to the implementation method described in step 908 above, and will not be repeated here.

[0267] The above, in conjunction with specific scenarios, provides a detailed explanation of the process by which a terminal obtains content based on content relay in the content distribution method provided in this application embodiment.

[0268] The following, in conjunction with specific scenarios, provides a detailed explanation of the process by which the second user plane network element verifies the first request information in the content distribution method provided in this application embodiment. For example... Figure 11 As shown, the process specifically includes:

[0269] Step 1101: The session management network element sends the URL validity period to the second user plane network element. Correspondingly, the second user plane network element receives the URL validity period from the session management network element.

[0270] In some embodiments, CDN nodes provide security protection for content based on URL hotlinking prevention mechanisms. In this case, in order to ensure that the results of the second user plane network element and the CDN node in determining whether the URL is available are consistent, the session management network element can indicate the URL validity period to the second user plane network element based on the URL validity period determined by the CDN node (for example, the second user plane network element can reuse the security mechanism of the CDN node).

[0271] As an example, the URL validity period sent by the session management network element to the second user plane network element includes the URL address aging time T corresponding to the first domain name, and / or the URL address verification time t. Here, T is the URL address aging adjustment time configured by the CDN node (i.e., the URL address update time corresponding to anti-leeching), and t is the time interval during which the content relay (e.g., the second user plane network element) needs to verify the URL address's availability with the upstream node (e.g., the CDN node). The aforementioned URL validity period can be provided to the session management network element by the server or configured locally by the session management network element. Furthermore, the aforementioned URL validity period for the second user plane network element can be configured by the second user plane network element or configured locally by the second user plane network element; this application does not limit this.

[0272] Optionally, the session management network element may send the URL validity period to the second user plane network element, which can be carried in the third content relay application indication information in step 903 above.

[0273] Step 1102: After the second user plane network element receives the first request message from the terminal, it determines whether it can provide the required content to the terminal.

[0274] In one specific implementation, the first request message includes a first URL for the content. The second user plane network element verifies whether the first URL is a pre-configured URL that can relay content. If not, the second user plane network element performs step 1106, sending a content request error message to the terminal. If yes, the second user plane network element can directly send the content to the terminal, or it can perform step 1103 to further verify whether the first request message is within its validity period.

[0275] Step 1103: The second user plane network element determines whether the first request message is within its validity period.

[0276] In some implementations, the second user plane network element verifies whether the first URL in the first request message is currently valid based on the URL validity period configured for the second user plane network element by the session management network element in step 1101 above. If it is valid, the terminal can send content to the terminal. If it is not valid, the second user plane network element can perform the following step 1106 to send a content request error message to the terminal. Alternatively, the second user plane network element can also perform the following step 1104 to verify whether the first URL is available to the CDN node.

[0277] As an example, the second user plane network element determines whether the time it takes to receive the first URL exceeds the aging time T of the first URL. If it exceeds time T, it determines that the first URL has expired. In this case, the second user plane network element can directly send a content request error message to the terminal, or it can further request the CDN to verify whether the URL is valid. If it does not exceed time T, it determines that the first URL is within its validity period.

[0278] As another example, the second user plane network element can determine whether the first URL is valid based on whether the time interval between the current verification and the previous verification of the first URL is greater than the verification time t. If the time interval is less than the verification time t, the first URL is determined to be valid. If the time interval is greater than t, the first URL is determined to have expired. In this case, the second user plane network element can directly send a content request error message to the terminal, or it can further request the CDN to verify whether the URL is valid. Optionally, if the aging time T of the URL address corresponding to the first domain name is configured only for the second user plane network element in step 1101, the second user plane network element can determine the verification time t based on the aging time T of the URL address corresponding to the first domain name.

[0279] Step 1104: The second user plane network element sends a URL verification message to the CDN node. Correspondingly, the CDN node receives the URL verification message from the second user plane network element.

[0280] The URL verification message is used to verify whether a URL is valid.

[0281] In some embodiments, the second user plane network element determines the domain name in the first URL and further determines the CDN node corresponding to the domain name in the first URL. The second user plane network element sends a URL verification message to the CDN node corresponding to the domain name in the first URL. Optionally, whether the URL is available can be carried in the HTTP header message.

[0282] Step 1105: The CDN node sends the URL verification result to the second user plane network element. Correspondingly, the second user plane network element receives the URL verification result from the CDN node.

[0283] The URL verification result is used to indicate the verification result of the CDN node to determine whether the URL is available.

[0284] If the URL verification result indicates that the URL is available, the second user plane network element sends content to the terminal. If the URL verification result indicates that the URL is unavailable, the second user plane network element executes step 1106 and sends content request error information to the terminal.

[0285] Step 1106: The second user plane network element sends a content request error message to the terminal. Correspondingly, the terminal receives the content request error message from the second user plane network element.

[0286] It should be noted that the above Figure 11 The second user plane network element may choose one of the following verification methods to determine whether the terminal can provide the required content, to determine whether the first request message is within its validity period, and to request the CDN node to verify whether the verification URL is available: the verification method for determining whether the terminal can provide the required content, the verification method for determining whether the first request message is within its validity period, and the verification method for requesting the CDN node to verify whether the URL is available. This application does not limit the choice of verification method.

[0287] As an example, combined Figure 12 Taking the first user plane network element and the second user plane network element as the same network element as an example, the content distribution method provided in this application embodiment can also be as follows:

[0288] Step 1201: The terminal sends the domain name of Application (APP)1 to the user plane network element through a DNS request.

[0289] Step 1202: The user plane network element sends a DNS response message to the terminal. The DNS response message includes the address of the content relay and instructs the terminal to obtain the required content based on the content relay.

[0290] Step 1203: The terminal sends a content request message to the address of the content relay to request content from APP1 or APP2.

[0291] Among them, APP1 is a normal application, and APP2 is a malicious application.

[0292] Step 1204: Verify the content address in the content request message of the user plane network element verification terminal.

[0293] Step 1205: The user plane network element obtains the content of APP1 from the CDN node of APP1.

[0294] It should be noted that if the content of APP1 is already cached in the user plane network element, the user plane network element does not need to execute step 1205, that is, the user plane network element does not need to obtain the content of APP1 from the CDN node of APP1.

[0295] Step 1206: The user plane network element sends the content of APP1 to the terminal.

[0296] The above mainly describes the solutions provided by the embodiments of this application from the perspective of interaction between network elements. Correspondingly, the embodiments of this application also provide a content distribution device for implementing the various methods described above. This content distribution device can be a terminal in the above method embodiments, or a device containing the terminal, or a component usable in a terminal; or, the content distribution device can be a first user plane network element in the above method embodiments, or a device containing the first user plane network element, or a component usable in a first user plane network element; or, the content distribution device can be a second user plane network element in the above method embodiments, or a device containing the second user plane network element, or a component usable in a second user plane network element. It is understood that, in order to achieve the above functions, the content distribution device includes hardware structures and / or software modules corresponding to the execution of each function. Those skilled in the art should readily recognize that, in conjunction with the units and algorithm steps of the various examples described in the embodiments disclosed herein, this application can be implemented in hardware or a combination of hardware and computer software. Whether a function is executed in hardware or by computer software driving hardware depends on the specific application and design constraints of the technical solution. Skilled professionals may use different methods to implement the described functions for each specific application, but such implementation should not be considered beyond the scope of this application.

[0297] This application embodiment can divide the content distribution device into functional modules according to the above method embodiment. For example, each function can be divided into its own functional module, or two or more functions can be integrated into one processing module. The integrated module can be implemented in hardware or as a software functional module. It should be understood that the module division in this application embodiment is illustrative and only represents one logical functional division. In actual implementation, there may be other division methods.

[0298] For example, Figure 13 A schematic diagram of a content distribution device 130 is shown, including a processing module 1301 and a communication module 1302. Optionally, a storage module 1303 is also included. The storage module 1303 is used to store the program code and data of the content distribution device 130.

[0299] Taking the content distribution device 130 as an example, which can be the terminal in the above method embodiment, or a device containing the terminal, or a component that can be used in the terminal, then: the communication module 1302 is used to receive first indication information from the first user plane network element, wherein the first indication information is used to indicate the first address of the content relay service; the communication module 1302 is also used to send a first request message to the first address; the first request message is used to request to obtain the content required by the terminal. Optionally, the first address is the address of the second user plane network element.

[0300] In one possible implementation, the communication module 1302 is also used to receive content required by the terminal sent by the second user plane network element.

[0301] In one possible implementation, the processing module 1301 is further configured to instruct the communication module 1302 to send a first request message to the second user plane network element based on the first configuration information; wherein the first configuration information includes at least one of the following: the transmission protocol between the terminal and the second user plane network element, the streaming protocol, and the security mechanism.

[0302] In one possible implementation, the first configuration information is determined based on at least one of the following methods: the first user plane network element instructs the terminal; the session management network element instructs the terminal; the server instructs the terminal; or the information is determined through pre-negotiation.

[0303] In one possible implementation, the first request message includes the application identifier or first domain name of the content required by the terminal in the content relay.

[0304] In one possible implementation, the communication module 1302 is further configured to receive second indication information from the server; the second indication information is used to indicate the application identifier or first domain name of the content required by the terminal in the content relay.

[0305] In one possible implementation, the communication module 1302 is further configured to send third indication information to the server, wherein the third indication information is used to indicate that the content distribution service is provided by the content relay.

[0306] In one possible implementation, the communication module 1302 is further configured to send fourth indication information to the first user plane network element; the fourth indication information is used to indicate the application identifier or the first domain name requested by the terminal.

[0307] In one possible implementation, when the fourth indication information is used to indicate the first domain name, the fourth indication information is carried in the DNS domain name resolution request; the first indication information is carried in the DNS response message.

[0308] In one possible implementation, the first indication information is further used to indicate that the DNS response was successful; or, the first indication information is further used to indicate that the first address is the address of the content relay.

[0309] In one possible implementation, the communication module 1302 is further configured to receive content request error information from the second user plane network element; the content request error information is used to indicate that the first request message requesting content retrieval is abnormal.

[0310] In one possible implementation, the first request message requesting content retrieval anomaly includes at least one of the following: the second user plane network element cannot provide the content required by the terminal; the application identifier or first domain name in the first request message is inconsistent with the pre-configured application identifier or domain name; the first request message times out; or the content delivery network (CDN) node indicates that the first request message is unavailable.

[0311] In one possible implementation, the first user plane network element and the second user plane network element are the same user plane network element.

[0312] All relevant content of each step involved in the above method embodiments can be referenced from the functional description of the corresponding functional module, and will not be repeated here.

[0313] Taking the content distribution device 130 as an example, which can be the first user plane network element in the above method embodiment, or a device containing the first user plane network element, or a component that can be used for the first user plane network element, then: the processing module 1301 is used to determine the second user plane network element that provides content relay to the terminal; the communication module 1302 is used to send first indication information to the terminal, the first indication information being used to indicate the first address of the content relay service. Optionally, the first address is the address of the second user plane network element.

[0314] In one possible implementation, the communication module 1302 is further configured to receive fourth indication information from the terminal; wherein the fourth indication information is used to indicate the application identifier or first domain name requested by the terminal.

[0315] In one possible implementation, the communication module 1302 is further configured to send a second request message to the session management network element, the second request message being used to request the session management network element to select a network element that provides content relay for the terminal; and to receive fifth indication information from the session management network element, the fifth indication information being used to indicate a second user plane network element that provides content relay for the terminal.

[0316] In one possible implementation, the communication module 1302 is further configured to receive content relay configuration information from the session management network element. The content relay configuration information is used to configure the application identifier or domain name that needs to provide content relay for the first user plane network element.

[0317] All relevant content of each step involved in the above method embodiments can be referenced from the functional description of the corresponding functional module, and will not be repeated here.

[0318] Taking the content distribution device 130 as an example, it can be the second user plane network element in the above method embodiment, or a device containing the second user plane network element, or a component that can be used for the second user plane network element. Then: the communication module 1302 is used to receive a first request message from the terminal; wherein the first request message is used to request content required by the terminal; and to send content to the terminal.

[0319] In one possible implementation, the first request message includes an application identifier or a first domain name, which is used to indicate the application corresponding to the content requested by the terminal. The processing module 1301 is also used to instruct the communication module 1302 to send content to the terminal when it determines that the application identifier or the first domain name in the first request message is the target application identifier or domain name.

[0320] In one possible implementation, the first request message includes the application identifier or first domain name of the content required by the target application in the content relay.

[0321] In one possible implementation, the communication module 1302 is further configured to send a third request message to a content delivery network (CDN) node; the third request message is used to request content required by the terminal; and to receive the content required by the terminal sent by the CDN node.

[0322] In one possible implementation, the communication module 1302 is further configured to send a fourth request message to the Domain Name System (DNS); the fourth request message includes an application identifier, a first domain name, or a second domain name; wherein the second domain name is the domain name of the application in the CDN node; and receive the address information of the CDN node sent by the DNS, wherein the CDN node is a CDN node that caches the content of the domain name of the application in the fourth request message.

[0323] In one possible implementation, the processing module 1301 is further configured to instruct the communication module 1302 to send a content request error message to the terminal if the first request message requests an abnormality in obtaining content; the content request error message is used to indicate that the first request message requests an abnormality in obtaining content.

[0324] In one possible implementation, the first request message requesting content retrieval anomaly includes at least one of the following: the second user plane network element cannot provide the content required by the terminal; the application identifier or domain name in the first request message is inconsistent with the pre-configured application identifier or domain name; the first request message times out; or the content delivery network (CDN) node indicates that the first request message is unavailable.

[0325] All relevant content of each step involved in the above method embodiments can be referred to in the functional description of the corresponding functional module, and will not be repeated here. Optionally, the content distribution device 130 may further include a storage module 1303, which can be used to store instructions and / or data, and the processing module 1301 can read the instructions and / or data in the storage module 1303.

[0326] In this embodiment, the content distribution device 130 is presented in an integrated manner, divided into various functional modules. Here, "module" can refer to an application-specific integrated circuit (ASIC), a circuit, a processor and memory executing one or more software or firmware programs, integrated logic circuits, and / or other devices that can provide the aforementioned functions. In a simplified embodiment, those skilled in the art will recognize that the content distribution device can employ... Figure 6 The content distribution device 600 shown is in the form of the content distribution device.

[0327] Specifically, Figure 13 The functions / implementation process of the communication module 1302 and the processing module 1301 can be obtained through Figure 6 The processor 601 in the content distribution device 600 shown calls computer execution instructions stored in memory 603 to implement this. Alternatively, Figure 13 The function / implementation process of the processing module 1301 can be achieved through... Figure 6 The processor 601 in the content distribution device 600 shown calls computer execution instructions stored in the memory 603 to implement this. Figure 13 The function / implementation process of the communication module 1302 can be obtained through Figure 6 This is achieved through the communication interface 604 in the content distribution device 600 shown.

[0328] Since the content distribution device provided in this application embodiment can execute the above-described content distribution method, the technical effects it can achieve can be referred to the above-described method embodiment, and will not be repeated here.

[0329] It should be understood that one or more of the above modules or units can be implemented by software, hardware, or a combination of both. When any of the above modules or units are implemented by software, the software exists as computer program instructions and is stored in memory. The processor can be used to execute the program instructions and implement the above method flow. The processor can be built into a SoC (System-on-a-Chip) or ASIC, or it can be a separate semiconductor chip. In addition to the core that executes software instructions for computation or processing, the processor may further include necessary hardware accelerators, such as field-programmable gate arrays (FPGAs), programmable logic devices (PLDs), or logic circuits that implement dedicated logic operations.

[0330] When the above modules or units are implemented in hardware, the hardware can be any one or any combination of a central processing unit (CPU), microprocessor, digital signal processing (DSP) chip, microcontroller unit (MCU), artificial intelligence processor, ASIC, SoC, FPGA, PLD, application-specific digital circuit, hardware accelerator, or non-integrated discrete device, which can run the necessary software or perform the above method flow independently of software.

[0331] Optionally, embodiments of this application also provide a content distribution device (e.g., the content distribution device may be a chip or a chip system), which includes a processor for implementing the methods in any of the above method embodiments. In one possible design, the content distribution device further includes a memory. The memory is used to store necessary program instructions and data, and the processor can call the program code stored in the memory to instruct the content distribution device to execute the methods in any of the above method embodiments. Of course, the memory may not be included in the content distribution device. When the content distribution device is a chip system, it may be composed of chips or may include chips and other discrete devices; embodiments of this application do not specifically limit this.

[0332] Optionally, embodiments of this application also provide a computer-readable storage medium storing a computer program or instructions that, when run on a content distribution device, enable the content distribution device to execute the methods described in any of the above method embodiments or any implementation thereof.

[0333] Optionally, embodiments of this application also provide a communication system, which includes the terminal, first user plane network element, second user plane network element and CDN node described in the above method embodiments.

[0334] In the above embodiments, implementation can be achieved, in whole or in part, through software, hardware, firmware, or any combination thereof. When implemented using software programs, implementation can be, in whole or in part, in the form of a computer program product. This computer program product includes one or more computer instructions. When the computer program instructions are loaded and executed on a computer, all or part of the flow or function according to the embodiments of this application is generated. The computer can be a general-purpose computer, a special-purpose computer, a computer network, or other programmable device. The computer instructions can be stored in a computer-readable storage medium or transmitted from one computer-readable storage medium to another. For example, computer instructions can be transmitted from one website, computer, server, or data center to another via wired (e.g., coaxial cable, fiber optic, digital subscriber line (DSL)) or wireless (e.g., infrared, wireless, microwave, etc.) means. The computer-readable storage medium can be any available medium accessible to a computer or a data storage device containing one or more servers, data centers, etc., that can be integrated with the medium. The available media can be magnetic media (e.g., floppy disks, hard disks, magnetic tapes), optical media (e.g., DVDs), or semiconductor media (e.g., solid-state disks, SSDs).

[0335] Although this application has been described herein in conjunction with various embodiments, those skilled in the art, by reviewing the accompanying drawings, the disclosure, and the appended claims, will understand and implement other variations of the disclosed embodiments in carrying out the claimed application. In the claims, the word "comprising" does not exclude other components or steps, and "a" or "an" does not exclude multiple instances. A single processor or other unit can implement several functions listed in the claims. While different dependent claims may recite certain measures, this does not mean that these measures cannot be combined to produce good results.

[0336] Although this application has been described in conjunction with specific features and embodiments, it is obvious that various modifications and combinations can be made thereto without departing from the scope of this application. Accordingly, this specification and drawings are merely exemplary illustrations of the application as defined by the appended claims, and are considered to cover any and all modifications, variations, combinations, or equivalents within the scope of this application. Clearly, those skilled in the art can make various alterations and modifications to this application without departing from its scope. Thus, if such modifications and modifications fall within the scope of the claims and their equivalents, this application is also intended to include such modifications and modifications.

Claims

1. A content distribution method, characterized in that, Applied to a terminal, the method includes: Receive first indication information from a first user plane network element, wherein the first indication information is used to indicate the first address of the content relay; A first request message is sent to the first address; the first request message is used to request the content required by the terminal.

2. The method according to claim 1, characterized in that, The first address is the address of the second user plane network element. After sending the first request message to the first address, the method further includes: Receive the content required by the terminal sent by the second user plane network element.

3. The method according to claim 1 or 2, characterized in that, Sending the first request message to the second user plane network element includes: Based on the first configuration information, the first request message is sent to the second user plane network element; wherein, the first configuration information includes at least one of the following: the transmission protocol, streaming protocol, and security mechanism between the terminal and the second user plane network element.

4. The method according to claim 3, characterized in that, The first configuration information is determined based on at least one of the following methods: The first user plane network element instructs the terminal; The session management network element instructs the terminal; The server instructs the terminal; Determined through prior consultation.

5. The method according to claim 4, characterized in that, The first request message includes the application identifier or first domain name of the content required by the terminal in the content relay.

6. The method according to claim 5, characterized in that, Before sending the first request message to the second user plane network element, the method further includes: Receive a second instruction from the server; the second instruction is used to indicate the application identifier or first domain name of the content required by the terminal in the content relay.

7. The method according to claim 6, characterized in that, Before receiving the second instruction information from the server, the method further includes: Send a third indication message to the server, wherein the third indication message is used to indicate that the content distribution service is provided by the content relay.

8. The method according to any one of claims 1-7, characterized in that, Before receiving the first indication information from the first user plane network element, the method further includes: Send a fourth indication message to the first user plane network element; the fourth indication message is used to indicate the application identifier or the first domain name requested by the terminal.

9. The method according to claim 8, characterized in that, When the fourth indication information is used to indicate the first domain name, the fourth indication information is carried in the DNS domain name resolution request; The first indication information is carried in the DNS response message.

10. The method according to claim 9, characterized in that, The first indication information is also used to indicate that the DNS response was successful; or, the first indication information is also used to indicate that the first address is a content relay address.

11. The method according to any one of claims 1-10, characterized in that, After sending the first request message to the first address, the method further includes: Receive content request error information from the second user plane network element; the content request error information is used to indicate that the first request message requested an abnormal content retrieval.

12. The method according to claim 11, characterized in that, The first request message requesting content retrieval anomaly includes at least one of the following: The second user plane network element is unable to provide the content required by the terminal; The application identifier or first domain name in the first request message is inconsistent with the pre-configured application identifier or domain name; The first request message timed out; The Content Delivery Network (CDN) node indicates that the first request message is unavailable.

13. The method according to any one of claims 2-12, characterized in that, The first user plane network element and the second user plane network element are the same user plane network element.

14. A content distribution method, characterized in that, Applied to a first user plane network element, the method includes: The second user plane network element is identified as providing content relay for the terminal; The first indication information is sent to the terminal, and the first indication information is used to indicate the first address of the content relay service.

15. The method according to claim 14, characterized in that, Before determining the second user plane network element that provides content relay for the terminal, the method further includes: Receive fourth indication information from the terminal; wherein the fourth indication information is used to indicate the application identifier or first domain name requested by the terminal.

16. The method according to claim 14 or 15, characterized in that, The second user plane network element determined to provide content relay for the terminal includes: Send a second request message to the session management network element, the second request message being used to request the session management network element to select a network element that provides content relay for the terminal; The system receives a fifth indication from the session management network element, the fifth indication being used to indicate the second user plane network element that provides content relay for the terminal.

17. The method according to any one of claims 14-16, characterized in that, Before determining the second user plane network element that provides content relay for the terminal, the method further includes: The system receives content relay configuration information from the session management network element. The content relay configuration information is used to configure the application identifier or domain name that needs to provide content relay for the first user plane network element.

18. A content distribution method, characterized in that, Applied to a second user plane network element, the method includes: Receive a first request message from a terminal; wherein the first request message is used to request content required by the terminal; The content is sent to the terminal.

19. The method according to claim 18, characterized in that, The first request message includes an application identifier or a first domain name, which is used to indicate the application corresponding to the content requested by the terminal. Sending the content to the terminal includes: When the application identifier or first domain name in the first request message is determined to be the target application identifier or domain name, the content is sent to the terminal.

20. The method according to claim 18 or 19, characterized in that, The first request message includes the application identifier or first domain name in the content relay for the content required by the target application.

21. The method according to claim 20, characterized in that, Before sending the content to the terminal, the method further includes: A third request message is sent to the content delivery network (CDN) node; the third request message is used to request the content required by the terminal. Receive the content required by the terminal sent by the CDN node.

22. The method according to claim 21, characterized in that, Before sending a third request message to the content delivery network (CDN) node, the method further includes: A fourth request message is sent to the Domain Name System (DNS); the fourth request message includes an application identifier, the first domain name, or the second domain name; wherein the second domain name is the domain name of the application in the CDN node; The address information of the CDN node sent by the DNS is received, wherein the CDN node is a CDN node that caches the content of the application's domain name in the fourth request message.

23. The method according to claim 22, characterized in that, After receiving the first request message from the terminal, the method further includes: If the first request message requests content but fails to retrieve it, a content request error message is sent to the terminal; the content request error message is used to indicate that the first request message requests content but fails to retrieve it.

24. The method according to claim 23, characterized in that, The first request message requesting content retrieval anomaly includes at least one of the following: The second user plane network element is unable to provide the content required by the terminal; The application identifier or domain name in the first request message is inconsistent with the pre-configured application identifier or domain name; the first request message times out. The Content Delivery Network (CDN) node indicates that the first request message is unavailable.

25. A content distribution device, characterized in that, include: A functional unit for performing the method as described in any one of claims 1-24; wherein the action performed by the functional unit is implemented by hardware or by hardware executing corresponding software.

26. A content distribution device, characterized in that, include: processor; The processor is connected to a memory for storing computer execution instructions, and the processor executes the computer execution instructions stored in the memory to enable the content distribution device to implement the method as described in any one of claims 1-24.

27. A computer-readable storage medium, characterized in that, Includes instructions that, when executed on a computer, cause the computer to perform the method as described in any one of claims 1-24.

28. A chip, characterized in that, The chip includes a processor; the processor is connected to a memory for storing computer execution instructions, and the processor executes the computer execution instructions stored in the memory to enable the content distribution device to implement the method as described in any one of claims 1-24.

29. A computer program product containing instructions, characterized in that, When it is run on a content distribution device, it causes the content distribution device to implement the method as described in any one of claims 1-24.