Data transmission method and apparatus, computer device, and storage medium

By screening and determining the appropriate edge node transmission path, the video transmission delay and service quality problems in the prior art are solved, and high-quality video data transmission is achieved.

WO2025050701A1PCT designated stage expired Publication Date: 2025-03-13CHINA TELECOM CORP LTD TECHNOLOGY INNOVATION CENTER +1
View PDF 6 Cites 0 Cited by

Patent Information

Application Number
PCT/CN2024/093644
Authority / Receiving Office
WO · WO
Patent Type
Applications
Current Assignee / Owner
Priority Date
2023-09-06
Filing Date
2024-05-16
Publication Date
2025-03-13

AI Technical Summary

Technical Problem

In the prior art, when transmitting a large number of video streams, the service pressure of the central cloud nodes is too high and it is prone to failure, resulting in increased video transmission delay or service interruption, and the regional settings of edge nodes are unreasonable or users suddenly increase, which will lead to a rapid decline in the quality of video transmission service.

Method used

By filtering multiple edge nodes, determining a more suitable transmission path based on resource status and link status, controlling the target data stream to transmit from the data sending end to the data receiving end, realizing high-quality video data transmission.

Benefits of technology

It effectively reduces the load of central cloud nodes, improves the reliability and service quality of video transmission, and avoids the decline in service quality caused by unreasonable selection of edge nodes.

✦ Generated by Eureka AI based on patent content.

Smart Images

  • Figure CN2024093644_13032025_PF_FP_ABST
    Figure CN2024093644_13032025_PF_FP_ABST
Patent Text Reader

Abstract

The present application relates to the technical field of video transmission and distribution, and relates to a data transmission method and apparatus, a computer device, and a storage medium. The method comprises: selecting at least two first edge nodes from a first edge node list on the basis of address information of a data sending end, selecting at least two second edge nodes from a second edge node list on the basis of address information of a data receiving end, and determining a required first target node and a required second target node on the basis of the resource status of each edge node and the link status of each communication link, so as to transmit a target data stream from the data sending end to the data receiving end. By using the present method, first edge nodes and second edge nodes having different roles can be selected from different node lists, and then more appropriate first and second target nodes are selected therefrom by combining the resource statuses of the edge nodes and the link statuses of communication links, so as to perform data transmission by means of a better transmission path and ensure the quality of data transmission.
Need to check novelty before this filing date? Find Prior Art

Description

Data transmission method, device, computer equipment and storage medium

[0001] This application claims priority to the Chinese patent application filed with the China Patent Office on September 6, 2023, with application number 2023111459833 and application name “Data transmission method, device, computer equipment and storage medium”, all contents of which are incorporated by reference into this application. Technical Field

[0002] The present application relates to the technical field of video transmission and distribution, and in particular to a data transmission method, apparatus, computer equipment and storage medium. Background Art

[0003] With the continuous development of Internet media, more and more users have the need to watch live broadcasts and other video streams. Video streams need to be transmitted from the uploader to each user terminal through the network.

[0004] However, transmitting large numbers of video streams simultaneously over limited network infrastructure is challenging. For example, in the existing cloud-edge-end layered architecture, all video streams are processed by central cloud nodes, exploding the service pressure on these nodes. Failure of these central cloud nodes can increase the latency of video stream transmission and even render them incapable of serving a wide range of users. Furthermore, improperly configured edge node regions or a sudden increase in the number of users in a given area can lead to a sharp decline in the quality of video transmission service.

[0005] Therefore, large-scale video transmission places higher demands on the network's transmission and distribution methods.

[0006] Summary of the Invention

[0007] Based on this, it is necessary to provide a data transmission method, device, computer equipment and storage medium that can transmit large-scale video data with high quality to address the above technical problems.

[0008] In a first aspect, the present application provides a data transmission method, the method comprising:

[0009] In the case of a demand to send a target data stream to a data receiving end, at least two first edge nodes are screened from a first edge node list according to address information of a data sending end corresponding to the target data stream, and at least two second edge nodes are screened from a second edge node list according to address information of the data receiving end;

[0010] Determining a first target node from each of the first edge nodes and a second target node from each of the second edge nodes based on a resource status of each of the first edge nodes and a link status of each of the communication links between the data transmitting end and the data receiving end;

[0011] The first target node and the second target node are controlled to transmit the target data stream from the data sending end to the data receiving end.

[0012] In one embodiment, the method further comprises:

[0013] Obtain the network status and resource status of each edge node within the target time slot;

[0014] Determining the node type of each edge node according to the first utility function, the second utility function, and the network state and resource state of each edge node in the target time slot;

[0015] A first edge node list and a second edge node list are constructed according to the node type of each edge node.

[0016] In one embodiment, the network status includes uplink bandwidth data and downlink bandwidth data, and the resource status includes computing power resource data;

[0017] Determining the node type of each edge node according to the first utility function, the second utility function, and the network state and resource state of each edge node in the target time slot includes:

[0018] Determine the utility value of each edge node as the first edge node based on the first utility function and the uplink bandwidth data and computing resource data of each edge node in the target time slot;

[0019] Determine the utility value of each edge node as a second edge node based on the second utility function and the downlink bandwidth data and computing power resource data of each edge node in the target time slot;

[0020] The node type of each edge node is determined according to the utility value of each edge node as a first edge node and the utility value of each edge node as a second edge node.

[0021] In one embodiment, determining the node type of each edge node based on the utility value of each edge node as a first edge node and the utility value of each edge node as a second edge node includes:

[0022] For each edge node, when the utility value of the edge node as a first edge node is greater than the utility value of the edge node as a second edge node, determining the node type of the edge node as a first edge node;

[0023] When the utility value of the edge node as a first edge node is less than the utility value of the edge node as a second edge node, the node type of the edge node is determined to be a second edge node.

[0024] In one embodiment, the method further comprises:

[0025] updating the utility value of each edge node as a first edge node and the utility value of each edge node as a second edge node according to the number of first nodes included in the first edge node list and the number of second nodes included in the second edge node list;

[0026] The first edge node list and the second edge node list are updated according to the updated relationship between the utility value of each edge node as a first edge node and the utility value of each edge node as a second edge node.

[0027] In one embodiment, updating the first edge node list and the second edge node list according to the updated relationship between the utility value of each edge node as the first edge node and the utility value of each edge node as the second edge node includes:

[0028] For each edge node, when the node type of the edge node before the update is a first edge node, and the utility value of the edge node as a first edge node after the update is less than the utility value as a second edge node, determine a first total utility value of the second edge node list before the edge node is added to the second edge node list, and a second total utility value of the second edge node list after the edge node is added to the second edge node list;

[0029] When the second total utility value is greater than the first total utility value, the edge node is transferred from the first edge node list to the second edge node list.

[0030] In one embodiment, updating the first edge node list and the second edge node list according to the updated relationship between the utility value of each edge node as the first edge node and the utility value of each edge node as the second edge node includes:

[0031] For each edge node, when the node type of the edge node before the update is the second edge node, and the utility value of the edge node as the first edge node after the update is greater than the utility value as the second edge node, determine a third total utility value of the first edge node list before the edge node is added to the first edge node list, and a fourth total utility value of the first edge node list after the edge node is added to the first edge node list;

[0032] When the fourth total utility value is greater than the third total utility value, the edge node is transferred from the second edge node list to the first edge node list.

[0033] In one embodiment, updating the utility value of each edge node as a first edge node and the utility value of each edge node as a second edge node based on the number of first nodes included in the first edge node list and the number of second nodes included in the second edge node list includes:

[0034] The sum of the first node number and the second node number is taken as the total node number;

[0035] updating the utility value of each edge node as a first edge node according to a ratio between the number of first nodes and the total number of nodes;

[0036] The utility value of each edge node as a second edge node is updated according to the ratio between the number of second nodes and the total number of nodes.

[0037] In one embodiment, determining a first target node from each first edge node and determining a second target node from each second edge node based on a resource status of each first edge node and a resource status of each second edge node, and a link status of each communication link between a data transmitter and a data receiver, includes:

[0038] For each first edge node, determining, from the second edge nodes, a second desired node that matches the first edge node based on the first preference function, the resource status of the second edge nodes, and the link status of the communication links passing through the first edge node in the communication links;

[0039] For each second edge node, determining, from each first edge node, a first desired node that matches the second edge node based on the second preference function, the resource status of each first edge node, and the link status of each communication link that passes through the second edge node;

[0040] According to each first edge node and the second desired node corresponding to each first edge node, and each second edge node and the first desired node corresponding to each second edge node, a first target node is determined from each first edge node, and a second target node is determined from each second edge node.

[0041] In one embodiment, determining a first target node from each first edge node and determining a second target node from each second edge node based on each first edge node and the second desired node corresponding to each first edge node, and each second edge node and the first desired node corresponding to each second edge node, includes:

[0042] Determining mutually matching edge node pairs based on each first edge node and the second desired node corresponding to each first edge node, and each second edge node and the first desired node corresponding to each second edge node;

[0043] A first edge node in the edge node pair is used as a first target node, and a second edge node in the edge node pair is used as a second target node.

[0044] In one embodiment, controlling the first target node and the second target node to transmit the target data stream from the data transmitting end to the data receiving end includes:

[0045] The first target node and the second target node are controlled to transmit the target data stream from the data sending end to the data receiving end in a unicast manner or a multicast manner.

[0046] In a second aspect, the present application further provides a data transmission device, the device comprising:

[0047] a screening module configured to, when there is a demand to send a target data stream to a data receiving end, screen at least two first edge nodes from a first edge node list based on address information of a data sending end corresponding to the target data stream, and screen at least two second edge nodes from a second edge node list based on address information of the data receiving end;

[0048] a node determination module, configured to determine a first target node from each of the first edge nodes and a second target node from each of the second edge nodes based on a resource status of each of the first edge nodes and a resource status of each of the second edge nodes, and a link status of each of the communication links between the data transmitting end and the data receiving end;

[0049] The transmission module is used to control the first target node and the second target node to transmit the target data stream from the data sending end to the data receiving end.

[0050] In a third aspect, the present application further provides a computer device comprising a memory and a processor, wherein the memory stores a computer program, and the processor implements the steps of the method of the first aspect when executing the computer program.

[0051] In a fourth aspect, the present application further provides a computer-readable storage medium having a computer program stored thereon, which implements the steps of the method of the first aspect when the computer program is executed by a processor.

[0052] In a fifth aspect, the present application also provides a computer program product, comprising a computer program, which implements the steps of the method of the first aspect when executed by a processor.

[0053] The above-mentioned data transmission method, device, computer equipment and storage medium, when there is a demand to send a target data stream to a data receiving end, screen out at least two first edge nodes from the first edge node list according to the address information of the data sending end corresponding to the target data stream, and screen out at least two second edge nodes from the second edge node list according to the address information of the data receiving end, and then determine the first target node from each first edge node and the second target node from each second edge node according to the resource status of each first edge node and the resource status of each second edge node, as well as the link status of each communication link between the data sending end and the data receiving end, control the first target node and the second target node, and transmit the target data stream from the data sending end to the data receiving end. The present application screens out first edge nodes and second edge nodes with different role divisions from different edge node lists, and then selects more suitable first target nodes and second target nodes from them based on the resource status of each edge node and the link status of each communication link, and transmits the target data stream of the data sending end to the data receiving end through the first target node and the second target node, thereby selecting a better transmission path to ensure the quality of data transmission. BRIEF DESCRIPTION OF THE DRAWINGS

[0054] FIG1 is an application scenario diagram of a data transmission method according to an embodiment;

[0055] FIG2 is a schematic flow chart of a data transmission method according to an embodiment;

[0056] FIG3 is a schematic diagram of a process for constructing an edge node list in one embodiment;

[0057] FIG4 is a schematic diagram of a process for determining the node type of an edge node in one embodiment;

[0058] FIG5 is a schematic diagram of a process for updating an edge node list in one embodiment;

[0059] FIG6 is a schematic diagram of a process for determining a target node in one embodiment;

[0060] FIG7 is a schematic flow chart of a data transmission method according to another embodiment;

[0061] FIG8 is a structural block diagram of a data transmission device according to an embodiment;

[0062] FIG9 is a block diagram of a data transmission device according to another embodiment;

[0063] FIG10 is a structural block diagram of a data transmission device in yet another embodiment;

[0064] FIG11 is a block diagram of a data transmission device according to another embodiment;

[0065] FIG12 is a block diagram of a data transmission device according to another embodiment;

[0066] FIG13 is a structural block diagram of a data transmission device in yet another embodiment;

[0067] FIG14 is a structural block diagram of a computer device for implementing a data transmission method according to an embodiment. DETAILED DESCRIPTION

[0068] In order to make the purpose, technical solutions and advantages of this application more clear, the following further describes this application in detail with reference to the accompanying drawings and embodiments. It should be understood that the specific embodiments described herein are only used to explain this application and are not intended to limit this application.

[0069] The data transmission method provided in the embodiment of the present application can be applied to the application environment shown in Figure 1. In the cloud-edge-end layered architecture, there is a central cloud node 101, several edge nodes and several terminal devices, the edge nodes include but are not limited to edge nodes 102 and edge nodes 103, and the terminal devices include but are not limited to terminal devices 104 and terminal devices 105. Generally speaking, the terminal device 104 can send a data stream to the central cloud node 101 so that the central cloud node 101 processes the data stream and then forwards it to the terminal device 105. However, when all terminal devices send the data stream to be transmitted to the central cloud node 101 for processing, the load on the central cloud node 101 is too high, and if the central cloud node 101 fails, it will affect the data transmission service of the edge nodes in the entire architecture. Therefore, the terminal device 104 can send the data stream to be transmitted to the appropriate edge node 102, and the edge node 102 forwards the data stream to the edge node 103, thereby sending the processed data stream to the terminal device 105.

[0070] It is understandable that if the edge nodes are not selected properly, the service quality of data stream transmission will be affected.

[0071] To solve the above technical problem, in one embodiment, as shown in FIG2 , a data transmission method is provided, comprising the following steps:

[0072] S201, when there is a demand to send a target data stream to a data receiving end, at least two first edge nodes are screened out from a first edge node list according to the address information of the data sending end corresponding to the target data stream, and at least two second edge nodes are screened out from a second edge node list according to the address information of the data receiving end.

[0073] The data transmitter is the terminal device in the cloud-edge-end architecture that needs to send the target data stream. Correspondingly, the data receiver is the terminal device in the cloud-edge-end architecture that needs to receive the target data stream. The data transmitter and data receiver can be converted into each other. The target data stream can be multimedia data such as a live video stream. On this basis, the data transmitter can be the terminal device used by the live broadcast user, and the data receiver can be the terminal device used by the user watching the live broadcast.

[0074] When there is a need to send a target data stream to a data receiving end, such as when a user at the data receiving end is using a terminal device to watch a live broadcast, the terminal device can upload a message requesting to obtain the target data stream to a nearby edge node, so that the edge node reports the message to the management platform of the cloud-edge-end architecture, and the management platform then decides on the method of transmitting the target data stream.

[0075] In one embodiment, address information of a data transmitter and address information of a data receiver are obtained, and based on the address information of the data transmitter and address information of the data receiver, a plurality of first edge nodes and a plurality of second edge nodes are respectively screened from a preset first edge node list and a preset second edge node list. The first edge node list is used to store producer nodes, i.e., Producer nodes, and the second edge node list is used to store consumer nodes, i.e., Consumer nodes.

[0076] It should be noted that producer nodes and consumer nodes are two types of edge nodes. Producer nodes are used to receive data streams uploaded by terminal devices and distribute the data streams to appropriate consumer nodes. Consumer nodes are used to receive data streams sent by producer nodes and process the data streams, such as transcoding and unicast-to-multicast computing tasks, and then send the processed data streams to the corresponding terminal devices. In this embodiment, based on the capabilities of each edge node, each edge node is pre-classified into two types: producer nodes and consumer nodes through a game competition, and a corresponding first edge node list and second edge node list are generated.

[0077] S202, based on the resource status of each first edge node and the resource status of each second edge node, and the link status of each communication link between the data sending end and the data receiving end, determine the first target node from each first edge node and determine the second target node from each second edge node.

[0078] The quality of data transmission is not only related to the resource status of the edge node responsible for transmission, but also to the link status of the entire communication link. A matching method is used to determine the transmission relationship between each first edge node and each second edge node, and then determine the communication links associated with each first edge node and each second edge node, namely, the communication links between the data transmitter and the data receiver. The resource status of each first edge node and each second edge node, as well as the link status of each communication link, is obtained in real time to determine the most suitable first and second target nodes.

[0079] In one embodiment, based on the resource status of each first edge node and the resource status of each second edge node, as well as the link status of each communication link, a pre-constructed preference function is used to calculate the second edge node preferred by each first edge node, and the first edge node preferred by each second edge node. When the first edge node and the second edge node prefer each other, the mutually preferred first edge node is used as the first target node, and the mutually preferred second edge node is used as the second target node.

[0080] For example, the first edge nodes selected from the first edge node list include node A and node B, and the second edge nodes selected from the second edge node list include node C, node D, and node E. Based on the resource status of the three second edge nodes and the link status of the communication links passing through the three second edge nodes, the preference of node A and node B for the three second edge nodes is calculated respectively. The communication links passing through the three second edge nodes include a communication link that passes through node A and any second edge node at the same time, and a communication link that passes through node B and any second edge node at the same time.

[0081] At the same time, the preference degrees of node C, node D, and node E to the two first edge nodes are calculated respectively according to the resource status of the two first edge nodes and the link status of the communication links passing through the two first edge nodes.

[0082] When the preference degree of any first edge node and any second edge node for each other meets a preset condition, it is determined that the two edge nodes prefer each other and are further determined as the first target node and the second target node respectively.

[0083] In one embodiment, a neural network algorithm is used to predict the resource status of each edge node in the cloud-edge-end architecture at a future moment, as well as the link status of each communication link in the cloud-edge-end architecture at a future moment. Then, before transmitting the target data stream from the data sending end to the data receiving end, a suitable first target node and a second target node are predicted, thereby further reducing the data transmission delay and providing higher service quality.

[0084] S203 , controlling the first target node and the second target node to transmit the target data stream from the data sending end to the data receiving end.

[0085] After the management platform decides on the appropriate first target node and second target node, it can send instructions to the first target node and the second target node to control the first target node to respond to the target data stream uploaded by the data sending end, and distribute the target data stream to the corresponding second target node. The second target node then processes the target data stream and sends it to the corresponding data receiving end, thereby realizing the data transmission process in the cloud-edge-end architecture.

[0086] In one embodiment, the target data stream is transmitted from the data sending end to the data receiving end by controlling the first target node and the second target node in a unicast manner or a multicast manner.

[0087] It is understandable that there may be multiple first target nodes and multiple second target nodes, and the first target nodes and the second target nodes correspond to each other. For example, nodes A and C prefer each other, nodes A and D prefer each other, and nodes B and E also prefer each other. Therefore, when the first target node is node A, the second target node is node C or node D, and when the first target node is node B, the second target node is node E.

[0088] In this embodiment, the target data stream can be uploaded to node A, so that node A transmits the target data stream to nodes C and D by multicast, and then nodes C and D respectively transmit the target data stream to the corresponding data receiving end. In addition, the target data stream can also be uploaded to node B, so that node B transmits the target data stream to node E by unicast, and then node E transmits the target data stream to the corresponding data receiving end. In this way, data transmission through unicast and multicast collaborative transmission can greatly save the required bandwidth and improve the overall resource utilization in the cloud-edge-end architecture.

[0089] The above scheme, when there is a need to send a target data stream to a data receiving end, selects at least two first edge nodes from the first edge node list according to the address information of the data sending end corresponding to the target data stream, and selects at least two second edge nodes from the second edge node list according to the address information of the data receiving end, and then determines the first target node from each first edge node and the second target node from each second edge node according to the resource status of each first edge node and the resource status of each second edge node, as well as the link status of each communication link between the data sending end and the data receiving end, controls the first target node and the second target node, and transmits the target data stream from the data sending end to the data receiving end. This embodiment selects first edge nodes and second edge nodes with different roles from different edge node lists, and then selects more suitable first target nodes and second target nodes based on the resource status of each edge node and the link status of each communication link, and transmits the target data stream of the data sending end to the data receiving end through the first target node and the second target node, thereby selecting a better transmission path and ensuring the quality of data transmission.

[0090] In order to screen out the first edge node and the second edge node with a reasonable division of labor, thereby determining the first target node and the second target node, based on the above embodiment, in one embodiment, each edge node may be classified based on the network status and resource status of each edge node, thereby constructing a first edge node list and a second edge node list. As shown in FIG3 , the above data transmission method may further include:

[0091] S301, obtaining the network status and resource status of each edge node in the target time slot.

[0092] It's understandable that in the communications field, time is divided into discrete intervals, or time slots. A time slot may contain several frames, and frame transmission begins at the start of a certain time slot. The target time slot is a pre-set discrete time slot. The network status and resource status of each edge node in the cloud-edge-device architecture within the target time slot are obtained. The network status includes uplink and downlink bandwidth data, and the resource status includes computing power resource data.

[0093] S302 : Determine the node type of each edge node according to the first utility function, the second utility function, and the network state and resource state of each edge node in the target time slot.

[0094] The data transmission capacity of each edge node is measured based on the network status of each edge node, and the data processing capacity of each edge node is measured based on the resource status of each edge node.

[0095] In one embodiment, a first utility function corresponding to producer nodes and a second utility function corresponding to consumer nodes are introduced to measure each edge node's capabilities as a producer node and a consumer node, respectively. The network status and resource status of each edge node during the target time slot are substituted into the first utility function to obtain a quantified value of each edge node's capability as a producer node. Simultaneously, the network status and resource status of each edge node during the target time slot are substituted into the second utility function to obtain a quantified value of each edge node's capability as a consumer node. The node type of each edge node is determined by comparing the two function values.

[0096] S303: Construct a first edge node list and a second edge node list according to the node type of each edge node.

[0097] The edge nodes whose node type is producer nodes are added to the initial first edge node list, and the edge nodes whose node type is consumer nodes are added to the initial second edge node list, so as to construct the first edge node list and the second edge node list.

[0098] The first edge node list and the second edge node list may further store information such as the service scope covered by each edge node, the network status and resource status of each edge node, and the like.

[0099] In this embodiment, the network status and resource status of each edge node in the target time slot are obtained; the node type of each edge node is determined based on the first utility function, the second utility function, and the network status and resource status of each edge node in the target time slot; and a first edge node list and a second edge node list are constructed based on the node type of each edge node. Before data transmission, based on the different capabilities emphasized by each edge node in the cloud-edge-end architecture, different roles are assigned to each edge node, and the edge nodes are divided into two types: producer nodes and consumer nodes. Node lists corresponding to the two types are then constructed, so that appropriate edge nodes are used for data transmission and data processing during subsequent data transmission, while improving the quality of data transmission and data processing.

[0100] To accurately determine the node type of each edge node, based on the above embodiment, in one embodiment, the utility value of each edge node as a first edge node and a second edge node may be determined respectively, and then the node type of each edge node may be determined by comparing the utility values. As shown in FIG4 , the above S302 may include:

[0101] S401 : Determine the utility value of each edge node as a first edge node based on a first utility function and uplink bandwidth data and computing resource data of each edge node in a target time slot.

[0102] The first utility function can be expressed as: K p =α p *r up +β p *d;

[0103] Among them, r up is the uplink bandwidth data, d is the computing power resource data, α p and β p It is the hyperparameter used to balance uplink bandwidth data and computing resource data in the first utility function.

[0104] For each edge node, the uplink bandwidth data and computing power resource data of the edge node in the target time slot are substituted into the above first utility function to calculate the utility value K of the edge node as a producer node, that is, as the first edge node. p .

[0105] In one embodiment, the computing resource data includes computing resource data related to the CPU (Central Processing Unit), memory, and disk capacity. The computing resource data related to the CPU is determined by the number of CPU cores, the CPU clock frequency, and the floating-point operations per cycle.

[0106] S402 : Determine the utility value of each edge node as a second edge node based on the second utility function and the downlink bandwidth data and computing resource data of each edge node in the target time slot.

[0107] The second utility function can be expressed as: K c =α c *r d +β c *d;

[0108] Among them, r d is the downlink bandwidth data, d is the computing power resource data, α c and β c It is the hyperparameter used to balance uplink bandwidth data and computing resource data in the second utility function.

[0109] For each edge node, the downlink bandwidth data and computing power resource data of the edge node in the target time slot are substituted into the above second utility function to calculate the utility value K of the edge node as a consumer node, that is, as the second edge node. c .

[0110] It should be noted that α p , β p , α c and β c The hyperparameters can be determined through a large amount of sample data and can be adjusted based on actual needs.

[0111] S403 : Determine the node type of each edge node according to the utility value of each edge node as a first edge node and the utility value of each edge node as a second edge node.

[0112] Compare the utility value K of each edge node as the first edge node p and the utility value K as the second edge node c , determining a node type of each edge node from the first edge node and the second edge node.

[0113] In one embodiment, for each edge node, when the utility value of the edge node as a first edge node is greater than the utility value as a second edge node, the node type of the edge node is determined to be a first edge node; when the utility value of the edge node as a first edge node is less than the utility value as a second edge node, the node type of the edge node is determined to be a second edge node.

[0114] In this embodiment, the utility value of each edge node as a first edge node is determined based on the first utility function and the uplink bandwidth data and computing power resource data of each edge node in the target time slot; the utility value of each edge node as a second edge node is determined based on the second utility function and the downlink bandwidth data and computing power resource data of each edge node in the target time slot; and the node type of each edge node is determined based on the utility value of each edge node as a first edge node and the utility value of each edge node as a second edge node. By continuously adjusting the first utility function and the second utility function finally obtained, the capacity of each edge node as a first edge node and the second edge node are accurately measured, thereby classifying the edge nodes in the cloud-edge-end architecture, ensuring the objectivity and accuracy of the classification results, avoiding the limitations brought about by manual classification, and on this basis, providing the necessary prerequisites for improving the data transmission quality and data processing quality in the subsequent data transmission process.

[0115] In order to dynamically adjust the type of each edge node and avoid multiple edge nodes selecting the same type, which affects data transmission, based on the above embodiment, in one embodiment, the type of each edge node can be updated in real time through a competition mechanism, as shown in Figure 5, the above data transmission method can also include:

[0116] S501 : Update the utility value of each edge node as a first edge node and the utility value of each edge node as a second edge node according to the number of first nodes included in the first edge node list and the number of second nodes included in the second edge node list.

[0117] According to the number of first nodes included in the first edge node list and the number of second nodes included in the second edge node list, it can be determined whether there are multiple edge nodes that choose the same type. For example, the number of first nodes is 2 and the number of second nodes is 10. Each communication link in the data transmission contains at least one first edge node and one second edge node. A large difference in the number of nodes will obviously affect the service quality of the data transmission. Therefore, it is necessary to update the utility value K of each edge node as the first edge node based on the number of first nodes and the number of second nodes. p and the utility value K as the second edge node c , thereby narrowing the difference in the number of nodes.

[0118] In one embodiment, the sum of the first node number and the second node number is taken as the total node number; based on the ratio between the first node number and the total node number, the utility value of each edge node as a first edge node is updated; based on the ratio between the second node number and the total node number, the utility value of each edge node as a second edge node is updated.

[0119] For example, the utility value of each edge node as the first edge node and the utility value of each edge node as the second edge node are respectively substituted into the preset utility value update function to obtain the updated utility value of each edge node as the first edge node and the utility value of each edge node as the second edge node.

[0120] The utility value update function can be expressed as:

[0121] Where K is the utility value of the edge node as the first edge node p Or as the utility value K of the second edge node c , θ is the hyperparameter used to adjust the competition speed in the utility value update function, count is the number of first nodes or the number of second nodes, and N is the total number of nodes.

[0122] For node A, substitute the utility value of node A as the first edge node, the first node number, and the total node number into the utility value update function to calculate the updated utility value of node A as the first edge node. Similarly, substitute the utility value of node A as the second edge node, the second node number, and the total node number into the utility value update function to calculate the updated utility value of node A as the second edge node.

[0123] S502 : Update the first edge node list and the second edge node list according to the updated relationship between the utility value of each edge node as a first edge node and the utility value of each edge node as a second edge node.

[0124] Compare the utility value K of each edge node as the first edge node again p ′ and the utility value K as the second edge node c ', determining the node type of each edge node from the first edge node and the second edge node, thereby adding each edge node to the corresponding node list, thereby updating the first edge node list and the second edge node list.

[0125] In one embodiment, for each edge node, when the node type of the edge node before updating is a first edge node, and the utility value of the edge node as a first edge node after updating is less than the utility value as a second edge node, a first total utility value of the second edge node list before adding the edge node to the second edge node list and a second total utility value of the second edge node list after adding the edge node to the second edge node list are determined; when the second total utility value is greater than the first total utility value, the edge node is transferred from the first edge node list to the second edge node list.

[0126] For example, for node B, when constructing the initial first edge node list and the second edge node list, the node type of node B is the first edge node and is classified into the first edge node list. After the utility value of node B is updated based on the number of first nodes and the number of second nodes, the utility value K of node B as the first edge node is p ' is less than the utility value K as the second edge node c ', it is necessary to consider whether to update the node type of node B. Further, obtain the utility value K of each edge node as the second edge node in the current second edge node list c The sum of the first total utility value, and the utility value K of each edge node as the second edge node when node B is added to the second edge node list c The sum of the first and second total utility values ​​is the second total utility value. Only when the second total utility value is greater than the first total utility value can node B be transferred from the first edge node list to the second edge node list.

[0127] In one embodiment, for each edge node, when the node type of the edge node before updating is a second edge node, and the utility value of the edge node as a first edge node after updating is greater than the utility value as a second edge node, a third total utility value of the first edge node list before adding the edge node to the first edge node list and a fourth total utility value of the first edge node list after adding the edge node to the first edge node list are determined; when the fourth total utility value is greater than the third total utility value, the edge node is transferred from the second edge node list to the first edge node list.

[0128] For example, for node D, when constructing the initial first edge node list and the second edge node list, the node type of node D is the second edge node and is classified into the second edge node list. After the utility value of node D is updated based on the number of first nodes and the number of second nodes, the utility value K of node D as the first edge node is p ' is greater than the utility value K as the second edge node c ', it is necessary to consider whether to update the node type of node D. Further, obtain the utility value K of each edge node as the first edge node in the current first edge node list p The sum of the three total utility values ​​is the third total utility value, and the utility value K of each edge node as the first edge node is added to the first edge node list. p The sum of the fourth total utility value is the fourth total utility value. Only when the fourth total utility value is greater than the third total utility value can the node D be transferred from the second edge node list to the first edge node list.

[0129] It is understandable that when an edge node is transferred from one node list to another node list, the utility value of the original edge node in the other node list will be affected. Therefore, the edge node can only be transferred to another edge node list when the sum of the utility value increase and the utility value decrease of the other node list is greater than zero.

[0130] In one embodiment, the above updating steps are repeated until no edge node needs to update its node type, thus achieving social welfare maximization. The first edge node list and the second edge node list at this time are used as the final candidate edge node list.

[0131] In this embodiment, the utility value of each edge node as a first edge node and the utility value of each edge node as a second edge node are updated according to the number of first nodes included in the first edge node list and the number of second nodes included in the second edge node list; the first edge node list and the second edge node list are updated according to the relationship between the utility value of each edge node as a first edge node and the utility value of each edge node as a second edge node after the update; the node type of each edge node is flexibly selected through a game competition mechanism to avoid the edge node being assigned a fixed node type that deviates from the dynamically changing network situation, which can further improve the objectivity and accuracy of the edge node classification results.

[0132] In order to determine more suitable first and second target nodes from the first and second edge nodes, based on the above embodiment, in one embodiment, the desired nodes of each first edge node and each second edge node may be first determined, and then the first and second target nodes may be selected therefrom. As shown in FIG6 , the above S202 may include:

[0133] S601, for each first edge node, based on the first preference function, the resource status of each second edge node, and the link status of the communication link passing through the first edge node in each communication link, determine a second desired node that matches the first edge node from each second edge node.

[0134] The quality of data transmission is not only related to the resource status of the edge node responsible for transmission, but also to the link status of the entire communication link. For each first edge node, the resource status of each second edge node and the link status of each communication link passing through the first edge node are substituted into the first preference function to obtain the first edge node's preference for each second edge node, thereby determining the second desired node that matches the first edge node.

[0135] For example, the first preference function U p (c) represents the preference of the producer node Producer for the consumer node Consuemr, that is, the preference of the first edge node for the second edge node. For the first edge node A, the degree of preference of the node for the second edge node C is determined by the resource status of node C and the link status of the communication link passing through nodes A and C. By calculating and comparing the degree of preference of node A for all screened second edge nodes, the second edge node preferred by node A is determined from the screened second edge nodes, that is, the second desired node that matches node A.

[0136] S602, for each second edge node, based on the second preference function, the resource status of each first edge node, and the link status of the communication link passing through the second edge node in each communication link, determine the first expected node that matches the second edge node from each first edge node.

[0137] For each second edge node, the resource status of each first edge node and the link status of the communication link passing through the second edge node in each communication link are substituted into the second preference function to obtain the preference degree of the second edge node for each first edge node, thereby determining the first expected node that matches the second edge node.

[0138] For example, the second preference function U c(p) represents the consumer node Consumer's preference for the producer node Producer, that is, the second edge node's preference for the first edge node. For second edge node E, its preference for first edge node B is determined by node B's resource status and the link status of the communication link passing through both nodes B and E. By calculating and comparing node E's preference for all selected first edge nodes, the first edge node preferred by node E is determined from among the selected first edge nodes, i.e., the first desired node that matches node E.

[0139] S603: Determine a first target node from each first edge node and a second target node from each second edge node based on each first edge node and the second desired node corresponding to each first edge node, and each second edge node and the first desired node corresponding to each second edge node.

[0140] When the preference degree of any first edge node and any second edge node for each other meets a preset condition, it is determined that the two edge nodes prefer each other and are further determined as the first target node and the second target node respectively.

[0141] For example, the second expected node matching the first edge node A includes the second edge node C, and the first expected node matching the second edge node C also includes the first edge node A. Then, it is determined that node A and node C prefer each other, and node A can be used as the first target node and node C as the corresponding second target node.

[0142] In one embodiment, based on each first edge node and the second desired node corresponding to each first edge node, and each second edge node and the first desired node corresponding to each second edge node, mutually matching edge node pairs are determined; the first edge node in the edge node pair is used as the first target node, and the second edge node in the edge node pair is used as the second target node.

[0143] In other words, node A and node C are a pair of mutually matching edge node pairs, and node B and node E are also a pair of mutually matching edge node pairs. Node A is used as the first target node, node C is used as the second target node corresponding to node A, and node B is also used as the first target node, and node E is used as the second target node corresponding to node B.

[0144] In one embodiment, if a first destination node has only one corresponding second destination node, data transmission can be performed via unicast. If a first destination node has multiple corresponding second destination nodes, data transmission can be performed via multicast. After receiving a data stream transmitted via multicast, the second destination node needs to convert the data stream to unicast based on a multicast-to-unicast protocol and transmit the data stream to the data receiving end, thereby avoiding the problem of multicast suppression preventing normal data transmission in some scenarios.

[0145] In this embodiment, for each first edge node, based on the first preference function, the resource status of each second edge node, and the link status of the communication link in each communication link passing through the first edge node, a second expected node matching the first edge node is determined from each second edge node. Based on each first edge node and the second expected node corresponding to each first edge node, and each second edge node and the first expected node corresponding to each second edge node, a first target node is determined from each first edge node, and a second target node is determined from each second edge node. In combination with the resource status of the edge node and the link status of the communication link, only when the first edge node and the second edge node match each other can they be used as the first target node and the second target node, respectively, to complete the data stream transmission from the data sending end to the data receiving end based on the first target node and the second target node, thereby ensuring the efficiency of data transmission from multiple dimensions, achieving optimal path matching, and reducing the required bandwidth resources.

[0146] In one embodiment, an example of a data transmission method is provided, as shown in FIG7 , and the specific process is as follows:

[0147] S701, obtaining uplink bandwidth data, downlink bandwidth data, and computing resource data of each edge node in a target time slot.

[0148] S702 : Determine the utility value of each edge node as a first edge node based on the first utility function and the uplink bandwidth data and computing resource data of each edge node in the target time slot.

[0149] S703 : Determine the utility value of each edge node as a second edge node based on the second utility function and the downlink bandwidth data and computing resource data of each edge node in the target time slot.

[0150] S704: Determine the node type of each edge node according to the utility value of each edge node as a first edge node and the utility value of each edge node as a second edge node.

[0151] Specifically, for each edge node, if the utility value of the edge node as a first edge node is greater than the utility value as a second edge node, the node type of the edge node is determined to be a first edge node; if the utility value of the edge node as a first edge node is less than the utility value as a second edge node, the node type of the edge node is determined to be a second edge node.

[0152] S705 : Construct a first edge node list and a second edge node list according to the node type of each edge node.

[0153] S706: Taking the sum of the first node quantity and the second node quantity as the total node quantity.

[0154] S707 : Update the utility value of each edge node as a first edge node according to the ratio between the first node quantity and the total node quantity.

[0155] S708 : Update the utility value of each edge node as a second edge node according to the ratio between the number of second nodes and the total number of nodes.

[0156] S709 : Update the first edge node list and the second edge node list according to the updated relationship between the utility value of each edge node as a first edge node and the utility value of each edge node as a second edge node.

[0157] Specifically, for each edge node, if the node type of the edge node before the update is a first edge node, and the utility value of the edge node as a first edge node after the update is less than the utility value as a second edge node, then determine the first total utility value of the second edge node list before adding the edge node to the second edge node list, and the second total utility value of the second edge node list after adding the edge node to the second edge node list; if the second total utility value is greater than the first total utility value, then transfer the edge node from the first edge node list to the second edge node list.

[0158] For each edge node, if the node type of the edge node before the update is the second edge node, and the utility value of the edge node as a first edge node after the update is greater than the utility value as a second edge node, then determine the third total utility value of the first edge node list before adding the edge node to the first edge node list, and the fourth total utility value of the first edge node list after adding the edge node to the first edge node list; if the fourth total utility value is greater than the third total utility value, then transfer the edge node from the second edge node list to the first edge node list.

[0159] S710, in the case of a demand to send a target data stream to a data receiving end, at least two first edge nodes are filtered out from a first edge node list according to the address information of the data sending end corresponding to the target data stream, and at least two second edge nodes are filtered out from a second edge node list according to the address information of the data receiving end.

[0160] S711, for each first edge node, determine a second desired node that matches the first edge node from each second edge node based on the first preference function, the resource status of each second edge node, and the link status of the communication link in each communication link passing through the first edge node.

[0161] S712, for each second edge node, based on the second preference function, the resource status of each first edge node, and the link status of the communication link passing through the second edge node in each communication link, determine the first expected node that matches the second edge node from each first edge node.

[0162] S713 : Determine a pair of edge nodes that match each other based on each first edge node and the second desired node corresponding to each first edge node, and each second edge node and the first desired node corresponding to each second edge node.

[0163] S714: Use the first edge node in the edge node pair as the first target node, and use the second edge node in the edge node pair as the second target node.

[0164] S715 , controlling the first target node and the second target node to transmit the target data stream from the data sending end to the data receiving end in a unicast manner or a multicast manner.

[0165] The specific process of the above steps can be found in the description of the above method embodiment. The implementation principles and technical effects are similar and will not be repeated here.

[0166] It should be understood that, although the various steps in the flowcharts involved in the various embodiments described above are displayed in sequence according to the instructions of the arrows, these steps are not necessarily executed in sequence in the order indicated by the arrows. Unless otherwise specified herein, there is no strict order restriction on the execution of these steps, and these steps can be executed in other orders. Moreover, at least a portion of the steps in the flowcharts involved in the various embodiments described above can include multiple steps or multiple stages, and these steps or stages are not necessarily executed and completed at the same time, but can be executed at different times, and the execution order of these steps or stages is not necessarily to be carried out in sequence, but can be executed in turn or alternately with other steps or at least a portion of steps or stages in other steps.

[0167] Based on the same inventive concept, embodiments of the present application further provide a data transmission device for implementing the aforementioned data transmission method. The implementation solution provided by this device is similar to the implementation solution described in the aforementioned method. Therefore, the specific limitations of one or more data transmission device embodiments provided below can be found in the above-mentioned limitations of the data transmission method and will not be further elaborated here.

[0168] In one embodiment, as shown in FIG8 , a data transmission device 1 is provided, comprising: a screening module 10 , a node determination module 20 , and a transmission module 30 , wherein:

[0169] The screening module 10 is used to screen out at least two first edge nodes from the first edge node list according to the address information of the data sending end corresponding to the target data stream, and to screen out at least two second edge nodes from the second edge node list according to the address information of the data receiving end, when there is a demand to send a target data stream to the data receiving end.

[0170] The node determination module 20 is used to determine the first target node from each first edge node and the second target node from each second edge node based on the resource status of each first edge node and the resource status of each second edge node, as well as the link status of each communication link between the data sending end and the data receiving end.

[0171] The transmission module 30 is used to control the first target node and the second target node to transmit the target data stream from the data sending end to the data receiving end.

[0172] In one embodiment, based on FIG8 , as shown in FIG9 , the data transmission device 1 may further include:

[0173] The acquisition module 40 is used to acquire the network status and resource status of each edge node in the target time slot.

[0174] The type determination module 50 is configured to determine the node type of each edge node according to the first utility function, the second utility function, and the network status and resource status of each edge node in the target time slot.

[0175] The construction module 60 is configured to construct a first edge node list and a second edge node list according to the node type of each edge node.

[0176] In one embodiment, the network status includes uplink bandwidth data and downlink bandwidth data, and the resource status includes computing resource data. Based on FIG9 , as shown in FIG10 , the type determination module 50 may include:

[0177] The first utility value determining unit 51 is configured to determine the utility value of each edge node as a first edge node according to the first utility function and the uplink bandwidth data and computing resource data of each edge node in the target time slot.

[0178] The second utility value determining unit 52 is configured to determine the utility value of each edge node as a second edge node according to the second utility function and the downlink bandwidth data and computing resource data of each edge node in the target time slot.

[0179] The type determination unit 53 is configured to determine the node type of each edge node according to the utility value of each edge node as a first edge node and the utility value of each edge node as a second edge node.

[0180] In one embodiment, the above-mentioned type determination unit 53 is specifically used to determine that the node type of any edge node is a first edge node when the utility value of any edge node as a first edge node is greater than the utility value as a second edge node, and to determine that the node type of any edge node is a second edge node when the utility value of any edge node as a first edge node is less than the utility value as a second edge node.

[0181] In one embodiment, based on FIG10 , as shown in FIG11 , the data transmission device 1 may further include:

[0182] The utility value updating module 70 is configured to update the utility value of each edge node as a first edge node and the utility value of each edge node as a second edge node according to the number of first nodes included in the first edge node list and the number of second nodes included in the second edge node list.

[0183] The list updating module 80 is configured to update the first edge node list and the second edge node list according to the updated relationship between the utility value of each edge node as a first edge node and the utility value of each edge node as a second edge node.

[0184] In one embodiment, the above-mentioned list update module 80 can be specifically used to determine the first total utility value of the second edge node list before the edge node is added to the second edge node list, and the second total utility value of the second edge node list after the edge node is added to the second edge node list, when the node type of any edge node before the update is a first edge node, and the utility value of the edge node as a first edge node after the update is less than the utility value as a second edge node. In addition, when the second total utility value is greater than the first total utility value, the edge node is transferred from the first edge node list to the second edge node list.

[0185] In one embodiment, the above-mentioned list update module 80 can be specifically used to determine the third total utility value of the first edge node list before adding the edge node to the first edge node list, and the fourth total utility value of the first edge node list after adding the edge node to the first edge node list when the node type of any edge node before the update is the second edge node and the utility value of the edge node as the first edge node after the update is greater than the utility value as the second edge node; and when the fourth total utility value is greater than the third total utility value, transfer the edge node from the second edge node list to the first edge node list.

[0186] In one embodiment, based on FIG11 , as shown in FIG12 , the utility value updating module 70 may include:

[0187] The node quantity determining unit 71 is configured to take the sum of the first node quantity and the second node quantity as the total node quantity.

[0188] The first utility value updating unit 72 is configured to update the utility value of each edge node as a first edge node according to the ratio between the first node quantity and the total node quantity.

[0189] The second utility value updating unit 73 is configured to update the utility value of each edge node as a second edge node according to the ratio between the second node quantity and the total node quantity.

[0190] In one embodiment, based on FIG8 , as shown in FIG13 , the node determination module 20 may include:

[0191] The first node determination unit 21 is used to determine a second desired node that matches the first edge node from each second edge node based on the first preference function, the resource status of each second edge node, and the link status of the communication link passing through the first edge node in each communication link.

[0192] The second node determination unit 22 is used to determine a first desired node that matches the second edge node from each first edge node based on the second preference function, the resource status of each first edge node, and the link status of the communication link passing through the second edge node in each communication link.

[0193] The third node determination unit 23 is used to determine the first target node from each first edge node and the second target node from each second edge node based on each first edge node and the second desired node corresponding to each first edge node, and each second edge node and the first desired node corresponding to each second edge node.

[0194] In one embodiment, the third node determination unit 23 may include:

[0195] The node pair determination subunit is configured to determine mutually matching edge node pairs based on each first edge node and the second desired node corresponding to each first edge node, and each second edge node and the first desired node corresponding to each second edge node.

[0196] The third node determination subunit is configured to use the first edge node in the edge node pair as the first target node, and use the second edge node in the edge node pair as the second target node.

[0197] In one embodiment, the transmission module 30 is specifically configured to control the first target node and the second target node to transmit the target data stream from the data transmitting end to the data receiving end in a unicast manner or a multicast manner.

[0198] Each module in the above-mentioned data transmission device can be implemented in whole or in part through software, hardware, or a combination thereof. Each module can be embedded in or independent of the processor in the computer device in the form of hardware, or can be stored in the memory of the computer device in the form of software, so that the processor can call and execute the corresponding operations of each module.

[0199] In one embodiment, a computer device is provided, which may be a server, and its internal structure diagram may be as shown in FIG14 . The computer device includes a processor, a memory, and a network interface connected via a system bus. The processor of the computer device is used to provide computing and control capabilities. The memory of the computer device includes a non-volatile storage medium and an internal memory. The non-volatile storage medium stores an operating system, a computer program, and a database. The internal memory provides an environment for the operation of the operating system and the computer program in the non-volatile storage medium. The database of the computer device is used to store data such as the resource status of the edge node and the link status of the communication link. The network interface of the computer device is used to communicate with an external terminal via a network connection. When the computer program is executed by the processor, a data transmission method is implemented.

[0200] Those skilled in the art will understand that the structure shown in FIG14 is merely a block diagram of a portion of the structure related to the solution of the present application, and does not constitute a limitation on the computer device to which the solution of the present application is applied. The specific computer device may include more or fewer components than shown in the figure, or combine certain components, or have a different arrangement of components.

[0201] In one embodiment, a computer device is provided, including a memory and a processor. The memory stores a computer program, and the processor implements the steps of the above-mentioned data transmission method when executing the computer program.

[0202] In one embodiment, a computer-readable storage medium is provided, on which a computer program is stored. When the computer program is executed by a processor, the steps of the above-mentioned data transmission method are implemented.

[0203] In one embodiment, a computer program product is provided, comprising a computer program, which implements the steps of the above-mentioned data transmission method when executed by a processor.

[0204] Those skilled in the art will appreciate that all or part of the processes in the above-mentioned embodiment methods can be implemented by instructing the relevant hardware through a computer program, and the computer program can be stored in a non-volatile computer-readable storage medium. When the computer program is executed, it can include the processes of the embodiments of the above-mentioned methods. Among them, any reference to memory, database or other media used in the embodiments provided in this application may include at least one of non-volatile and volatile memory. Non-volatile memory may include read-only memory (ROM), magnetic tape, floppy disk, flash memory, optical memory, high-density embedded non-volatile memory, resistive random access memory (ReRAM), magnetic random access memory (MRAM), ferroelectric random access memory (FRAM), phase change memory (PCM), graphene memory, etc. Volatile memory may include random access memory (RAM) or external cache memory, etc. By way of illustration and not limitation, RAM can be in various forms, such as static random access memory (SRAM) or dynamic random access memory (DRAM). The database involved in the various embodiments provided herein may include at least one of a relational database and a non-relational database. Non-relational databases may include, but are not limited to, distributed databases based on blockchains. The processor involved in the various embodiments provided herein may be, but are not limited to, a general-purpose processor, a central processing unit, a graphics processing unit, a digital signal processor, a programmable logic unit, a data processing logic unit based on quantum computing, and the like.

[0205] The technical features of the above embodiments can be combined arbitrarily. To make the description concise, not all possible combinations of the technical features in the above embodiments are described. However, as long as there is no contradiction in the combination of these technical features, they should be considered to be within the scope of this specification.

[0206] The above-described embodiments merely represent several implementation methods of the present application. While the descriptions are relatively specific and detailed, they should not be construed as limiting the scope of the present application. It should be noted that a person of ordinary skill in the art may make various modifications and improvements without departing from the spirit of the present application, and these modifications and improvements fall within the scope of protection of the present application. Therefore, the scope of protection of the present application shall be determined by the appended claims.

Claims

1. A data transmission method, comprising: In the case of a demand for sending a target data stream to a data receiving end, at least two first edge nodes are screened out from a first edge node list according to address information of a data sending end corresponding to the target data stream, and at least two second edge nodes are screened out from a second edge node list according to address information of the data receiving end; Determine a first target node from each first edge node and a second target node from each second edge node according to a resource state of each first edge node and a resource state of each second edge node, and a link state of each communication link between the data transmitting end and the data receiving end; The first target node and the second target node are controlled to transmit the target data stream from the data sending end to the data receiving end.

2. The method according to claim 1, further comprising: Obtain the network status and resource status of each edge node in the target time slot; Determine the node type of each edge node according to the first utility function, the second utility function, and the network state and resource state of each edge node in the target time slot; According to the node type of each edge node, a first edge node list and a second edge node list are constructed.

3. The method according to claim 2, wherein: The network status includes uplink bandwidth data and downlink bandwidth data, and the resource status includes computing power resource data; Determining the node type of each edge node according to the first utility function, the second utility function, and the network state and resource state of each edge node in the target time slot includes: Determine the utility value of each edge node as a first edge node according to the first utility function and the uplink bandwidth data and computing resource data of each edge node in the target time slot; Determine the utility value of each edge node as a second edge node according to the second utility function and the downlink bandwidth data and computing power resource data of each edge node in the target time slot; The node type of each edge node is determined according to the utility value of each edge node as a first edge node and the utility value of each edge node as a second edge node.

4. The method according to claim 3, wherein: The determining the node type of each edge node according to the utility value of each edge node as a first edge node and the utility value of each edge node as a second edge node includes: For each edge node, when the utility value of the edge node as a first edge node is greater than the utility value of the edge node as a second edge node, determining the node type of the edge node as a first edge node; When the utility value of the edge node as a first edge node is less than the utility value of the edge node as a second edge node, the node type of the edge node is determined to be a second edge node.

5. The method according to claim 3, further comprising: According to the number of first nodes included in the first edge node list and the number of second nodes included in the second edge node list, updating the utility value of each edge node as a first edge node and the utility value of each edge node as a second edge node; The first edge node list and the second edge node list are updated according to the updated relationship between the utility value of each edge node as a first edge node and the utility value of each edge node as a second edge node.

6. The method according to claim 5, wherein: The updating of the first edge node list and the second edge node list according to the updated relationship between the utility value of each edge node as a first edge node and the utility value of each edge node as a second edge node includes: For each edge node, when the node type of the edge node before updating is a first edge node, and the utility value of the edge node as a first edge node after updating is less than the utility value as a second edge node, determine the first total utility value of the second edge node list before adding the edge node to the second edge node list, and determine the first total utility value of the second edge node list before adding the edge node to the second edge node list. a second total utility value of the second edge node list after the point list; When the second total utility value is greater than the first total utility value, the edge node is transferred from the first edge node list to the second edge node list.

7. The method according to claim 5, wherein: The updating of the first edge node list and the second edge node list according to the updated relationship between the utility value of each edge node as a first edge node and the utility value of each edge node as a second edge node includes: For each edge node, when the node type of the edge node before updating is a second edge node, and the utility value of the edge node as a first edge node after updating is greater than the utility value as a second edge node, determine a third total utility value of the first edge node list before adding the edge node to the first edge node list, and a fourth total utility value of the first edge node list after adding the edge node to the first edge node list; When the fourth total utility value is greater than the third total utility value, the edge node is transferred from the second edge node list to the first edge node list.

8. The method according to claim 5, wherein: The updating of the utility value of each edge node as a first edge node and the utility value of each edge node as a second edge node according to the number of first nodes included in the first edge node list and the number of second nodes included in the second edge node list includes: Taking the sum of the first node quantity and the second node quantity as the total node quantity; updating the utility value of each edge node as a first edge node according to the ratio between the first number of nodes and the total number of nodes; The utility value of each edge node as a second edge node is updated according to the ratio between the second node quantity and the total node quantity.

9. The method according to claim 1, wherein: The determining of the first target node from each first edge node and the determining of the second target node from each second edge node according to the resource status of each first edge node and the resource status of each second edge node, and the link status of each communication link between the data transmitting end and the data receiving end, comprises: For each first edge node, according to the first preference function, the resource status of each second edge node, and the link status of the communication link passing through the first edge node in each communication link, determine a second desired node matching the first edge node from each second edge node; For each second edge node, according to the second preference function, the resource status of each first edge node, and the link status of the communication link passing through the second edge node in each communication link, determine a first desired node matching the second edge node from each first edge node; According to each first edge node and the second desired node corresponding to each first edge node, and each second edge node and the first desired node corresponding to each second edge node, a first target node is determined from each first edge node, and a second target node is determined from each second edge node.

10. The method according to claim 9, wherein: The method of determining the first target node from each first edge node and the second target node corresponding to each first edge node, and the method of determining the second target node from each second edge node according to each first edge node and the second desired node corresponding to each second edge node, comprises: Determine a pair of edge nodes that match each other according to each first edge node and the second desired node corresponding to each first edge node, and each second edge node and the first desired node corresponding to each second edge node; A first edge node in the edge node pair is used as a first target node, and a second edge node in the edge node pair is used as a second target node.

11. The method according to claim 1, wherein: The controlling the first target node and the second target node to transmit the target data stream from the data sending end to the data receiving end includes: The first target node and the second target node are controlled by unicast or multicast to transmit the target data stream Transmitted from the data sending end to the data receiving end.

12. The method according to claim 1, further comprising: Each edge node is divided into a producer node and a consumer node by means of game competition, and a corresponding first edge node list and a second edge node list are generated.

13. The method according to claim 1, wherein: The determining of the first target node from each first edge node and the determining of the second target node from each second edge node according to the resource status of each first edge node and the resource status of each second edge node, and the link status of each communication link between the data transmitting end and the data receiving end, comprises: According to the resource status of each first edge node and the resource status of each second edge node, and the link status of each communication link, the second edge node preferred by each first edge node is calculated through a pre-constructed preference function, and the first edge node preferred by each second edge node is calculated; In the case where the first edge node and the second edge node prefer each other, the mutually preferred first edge node is used as the first target node, and the mutually preferred second edge node is used as the second target node.

14. The method according to claim 1, wherein: The determining of the first target node from each first edge node and the determining of the second target node from each second edge node according to the resource status of each first edge node and the resource status of each second edge node, and the link status of each communication link between the data transmitting end and the data receiving end, comprises: Predicting the resource status of each first edge node and each second edge node at a predetermined time, and predicting the link status of each communication link at a predetermined time by a neural network; The first target node and the second target node are predicted by the neural network according to the predicted resource status and the predicted link status.

15. A data transmission device, comprising: A screening module, configured to, when there is a demand to send a target data stream to a data receiving end, screen out at least two first edge nodes from a first edge node list according to address information of a data sending end corresponding to the target data stream, and screen out at least two second edge nodes from a second edge node list according to address information of the data receiving end; A node determination module, configured to determine a first target node from each first edge node and a second target node from each second edge node according to a resource state of each first edge node and a resource state of each second edge node, and a link state of each communication link between the data transmitting end and the data receiving end; A transmission module is used to control the first target node and the second target node to transmit the target data stream from the data sending end to the data receiving end.

16. A computer device comprising a memory and a processor, wherein the memory stores a computer program, wherein: When the processor executes the computer program, the steps of the method according to any one of claims 1 to 14 are implemented.

17. A computer-readable storage medium having a computer program stored thereon, wherein: When the computer program is executed by a processor, the steps of the method according to any one of claims 1 to 14 are implemented.

18. A computer program product comprising a computer program, wherein: When the computer program is executed by a processor, the steps of the method according to any one of claims 1 to 14 are implemented.

Citation Information

Patent Citations

  • Large-scale real-time multimedia communications

    CN110858840A

  • Resource on-demand scheduling method and device, computing equipment and storage medium

    CN115914759A

  • Service scheduling method and device, electronic equipment and computer readable storage medium

    CN115934264A

  • Data transmission method and device, computer equipment and storage medium

    CN117294870A

  • Path control method, communication system, and communication apparatus

    US20110142041A1