Data packet transmission control method and apparatus, and electronic device and storage medium
By employing erasure coding and non-conservative stream transmission mechanisms in network communication, the data packet transmission rate is dynamically adjusted, solving the problem of low data transmission rate in existing technologies and achieving efficient end-to-end reliability and fair allocation of network resources.
Patent Information
- Authority / Receiving Office
- WO · WO
- Patent Type
- Applications
- Current Assignee / Owner
- THE CHINESE UNIV OF HONG KONG (SHENZHEN)
- Filing Date
- 2025-04-21
- Publication Date
- 2026-05-15
AI Technical Summary
Existing network communication protocols have low data transmission rates while ensuring end-to-end reliability, especially due to significant communication delays caused by packet retransmission verification.
By acquiring the erasure-coded target data packet, identifying the target sending user and storing it in the corresponding user queue, updating the allocation rate based on the end-to-end effective communication rate of each target sending user, adopting a non-conservative stream transmission mechanism, dynamically adjusting the data packet sending rate to avoid congestion, and achieving fair allocation of network resources through a hop-by-hop congestion control mechanism.
While ensuring end-to-end reliability, it improves data transmission rate and achieves fair allocation of network resources among multiple users.
Smart Images

Figure CN2025090174_15052026_PF_FP_ABST
Abstract
Description
Data packet transmission control method and device, electronic equipment and storage medium TECHNICAL FIELD
[0001] The present application relates to the technical field of network communication, and particularly relates to a data packet transmission control method and device, electronic equipment and storage medium. BACKGROUND
[0002] End-to-end reliability refers to complete and accurate transmission of data from a sending end to a receiving end. At present, some network communication protocols exist for realizing end-to-end reliability, but the data transmission rate of these network communication protocols is low. For example, data packet retransmission is usually used to guarantee end-to-end reliability, but the method of data packet retransmission needs to verify each data packet, which causes a very large communication delay and a low data transmission rate.
[0003] Therefore, how to guarantee end-to-end reliability and improve the data transmission rate has become a technical problem to be solved. SUMMARY
[0004] The main purpose of the embodiments of the present application is to provide a data packet transmission control method and device, electronic equipment and storage medium, which aims to guarantee end-to-end reliability and improve the data transmission rate.
[0005] To achieve the above purpose, a first aspect of the embodiments of the present application provides a data packet transmission control method, which is applied to a target forwarding node, and the method comprises the following steps.
[0006] Obtaining a target data packet; wherein the target data packet is a data packet obtained by performing erasure code encoding on original data of a target sending user at a sending end;
[0007] Judging a sending user of the target data packet to obtain the target sending user;
[0008] Sending the target data packet to a user queue corresponding to the target sending user;
[0009] Updating an allocation rate of the user queue according to an end-to-end effective communication rate of each target sending user to obtain a target allocation rate;
[0010] Sending the target data packet from the user queue to a link queue according to the target allocation rate;
[0011] Sending the target data packet in the link queue to a target downstream node corresponding to the link queue, so that the target downstream node sends the target data packet to a receiving end, and the receiving end performs erasure code decoding on each target data packet to obtain original data of the target sending user.
[0012] In some embodiments, the updating of the allocation rate of the user queue according to the corresponding end-to-end effective communication rate of each target sending user to obtain a target allocation rate comprises:
[0013] performing first utility analysis on the end-to-end effective communication rate of each target sending user by a target utility function corresponding to each target sending user to obtain a first utility relationship; wherein the target utility function is an increasing function;
[0014] performing second utility analysis on the allocation rate of each user queue by the target utility function corresponding to each target sending user to obtain a second utility relationship;
[0015] summing the second utility relationship corresponding to each user queue to obtain a first summation sub-relationship;
[0016] performing weighted summation according to the first summation sub-relationship and the first utility relationship to obtain a second summation sub-relationship;
[0017] summing the second summation sub-relationship corresponding to each user queue to obtain an effective communication rate utility relationship;
[0018] maximizing the effective communication rate utility relationship to update the allocation rate of each user queue to obtain the target allocation rate.
[0019] In some embodiments, the maximizing of the effective communication rate utility relationship to update the allocation rate of each user queue to obtain the target allocation rate comprises:
[0020] obtaining a target link cost and a target user cost of each target sending user at the target forwarding node, and obtaining a downstream user cost of each target sending user at the target downstream node;
[0021] performing formula conversion on the effective communication rate utility relationship according to the downstream user cost, the target link cost, and the target user cost to obtain an allocation rate updating distributed formula;
[0022] updating each allocation rate by the allocation rate updating distributed formula to obtain the target allocation rate.
[0023] In some embodiments, the obtaining of the downstream user cost of each target sending user at the target downstream node comprises:
[0024] if the target downstream node is a receiving end, obtaining a data receiving rate and a decoding rate of the receiving end;
[0025] performing third utility analysis on the end-to-end effective communication rate corresponding to each target sending user by the target utility function corresponding to each target sending user, to obtain a third utility relationship;
[0026] performing user cost calculation according to the third utility relationship, the data receiving rate and the decoding rate, to obtain a receiving end user cost of each target sending user, and determining the receiving end user cost as the downstream user cost.
[0027] In some embodiments, the allocation rate updating distributed formula is defined as shown in the following formula:
[0028] wherein, denotes the target allocation rate at t+1 time point; denotes the allocation rate at t time point; and γ denotes an updating step length. denotes the downstream user cost of target sending user i at the target downstream node v; and λ denotes a weight factor; i denotes the derivative of the utility function U i of target sending user i; p e denotes the target link cost corresponding to link e at t time point; denotes the target user cost of target sending user i at the target forwarding node u at t time point;
[0029] wherein, + denotes max{z,0}, and z denotes any relationship in [·] + .
[0030] In some embodiments, the effective communication rate utility relationship is defined as shown in the following formula:
[0031] wherein, denotes the effective communication rate utility relationship; denotes maximizing the effective communication rate utility relationship, f denotes an allocation rate set, and denotes the allocation rate of the data packet of target sending user i on link e; ε = ε i denotes a link set; U i denotes the target utility function of target sending user i; x i denotes the end-to-end effective communication rate of target sending user i; and λ denotes a weight factor.
[0032] In some embodiments, the data entering rate of the user queue is greater than the data leaving rate; and the sending of the target data packet to the user queue corresponding to the target sending user comprises:
[0033] If the storage state of the user queue represents that the queue is full, discarding the head data packet of the user queue;
[0034] Storing the target data packet at the tail of the user queue; wherein the user queue sends the data packet at the tail when sending data.
[0035] To achieve the above object, a second aspect of the embodiments of the present application provides a data packet transmission control device, the device comprising:
[0036] A data packet obtaining module, configured to obtain a target data packet;
[0037] A user judging module, configured to judge the sending user of the target data packet, and obtain a target sending user;
[0038] A sending-to-user-queue module, configured to send the target data packet to a user queue corresponding to the target sending user;
[0039] An allocation rate updating module, configured to update the allocation rate of the user queue according to the end-to-end effective communication rate corresponding to each target sending user, and obtain a target allocation rate;
[0040] A sending-to-link-queue module, configured to send the target data packet from the user queue to a link queue according to the target allocation rate;
[0041] A downstream node sending module, configured to send the target data packet in the link queue to a target downstream node corresponding to the link queue.
[0042] To achieve the above object, a third aspect of the embodiments of the present application provides an electronic device, comprising a memory and a processor, wherein the memory stores a computer program, and the processor implements the method of the first aspect when executing the computer program.
[0043] To achieve the above object, a fourth aspect of the embodiments of the present application provides a computer readable storage medium, which stores a computer program, and the computer program is executed by a processor to implement the method of the first aspect.
[0044] The data packet transmission control method, apparatus, electronic device, and storage medium proposed in this application, after obtaining the target data packet after erasure coding, determine the target sending user corresponding to the target data packet and send the target data packet to the user queue corresponding to the target sending user, thereby storing the data packets of each target sending user in the user queue corresponding to that target sending user. In cases where different users simultaneously send target data packets, causing changes in the network state of the target forwarding node, the allocation rate of the user queue is updated according to the end-to-end effective communication rate corresponding to each target sending user to obtain the target allocation rate. This allows the target forwarding node to dynamically adjust the allocation rate corresponding to each target sending user according to the network state, thereby avoiding congestion, improving data transmission rate, and achieving fair allocation of network resources among multiple users. The target data packet is sent from the user queue to the link queue according to the target allocation rate, and then sent to the target downstream node corresponding to the link queue. The receiving end decodes each target data packet using erasure coding to obtain the original data of the target sending user, thereby ensuring the reliability of the target data packet transmission from the sending end to the receiving end and guaranteeing end-to-end reliability. In summary, this application can improve data transmission rate while ensuring end-to-end reliability, and achieve fair allocation of network resources among multiple users. Attached Figure Description
[0045] Figure 1 is a flowchart of the data packet transmission control method provided in an embodiment of this application;
[0046] Figure 2 is a flowchart of step 103 in Figure 1;
[0047] Figure 3 is a topology diagram of the node network provided in an embodiment of this application;
[0048] Figure 4 is a schematic diagram of the node structure provided in an embodiment of this application;
[0049] Figure 5 is a flowchart of step 104 in Figure 1;
[0050] Figure 6 is a flowchart of step 306 in Figure 5;
[0051] Figure 7 is a schematic diagram of node information transmission in an application example provided in an embodiment of this application;
[0052] Figure 8 is a schematic diagram of the data packet transmission control device provided in an embodiment of this application;
[0053] Figure 9 is a schematic diagram of the hardware structure of the electronic device provided in an embodiment of this application. Detailed Implementation
[0054] To make the objectives, technical solutions, and advantages of this application clearer, the following detailed description is provided in conjunction with the accompanying drawings and embodiments. It should be understood that the specific embodiments described herein are merely illustrative and not intended to limit the scope of this application.
[0055] It should be noted that although functional modules are divided in the device schematic diagram and a logical order is shown in the flowchart, in some cases, the steps shown or described may be performed in a different order than the module division in the device or the order in the flowchart. The terms "first," "second," etc., in the specification, claims, and the aforementioned drawings are used to distinguish similar objects and are not necessarily used to describe a specific order or sequence.
[0056] Unless otherwise defined, all technical and scientific terms used herein have the same meaning as commonly understood by one of ordinary skill in the art to which this application belongs. The terminology used herein is for the purpose of describing embodiments of this application only and is not intended to limit this application.
[0057] First, let's analyze some of the terms used in this application:
[0058] End-to-end reliability refers to the ability of data to arrive intact, without loss, duplication, or out of order during the transmission process from the sender to the receiver.
[0059] Conservative flow transmission refers to a flow where, for a given node, the rate at which data enters that node is less than or equal to the rate at which data leaves that node.
[0060] Non-conservative flow transmission refers to a flow where, for a given node, the rate at which data enters that node can be greater than the rate at which data leaves that node. For example, in a data stream, the rate of data entering a node can be greater than the rate of data leaving that node.
[0061] Hop-by-Hop Congestion Control Mechanism: This is a mechanism in which each router or network node participates in congestion control during network transmission. This mechanism ensures the stability and efficiency of the entire network by independently detecting and adjusting the data transmission rate at each node to adapt to network congestion.
[0062] TCP (Transmission Control Protocol) is a connection-oriented, reliable, byte-stream-based transport layer communication protocol. TCP is designed to adapt to layered protocol hierarchies that support multiple network applications.
[0063] MPTCP (MultiPath TCP) is a TCP-based multipath transmission protocol. MPTCP allows a single TCP connection to transmit data simultaneously across multiple network paths, thereby improving data transmission efficiency.
[0064] RTT (Round-Trip Time) refers to the time required for data to travel from the sender to the receiver once, including transmission delay, propagation delay, queuing delay, and processing delay.
[0065] BDP (Bandwidth-Delay Product) refers to the total number of bits used by a data packet during transmission in a network. It is the product of network bandwidth and round-trip time (RTT). BDP can be used to measure the capacity of a network link and to estimate the amount of data being filled on a network path at any given time.
[0066] A concave function is a function that has a strong concave property. For a concave function, if the line segment connecting any two points in its domain lies above the graph of the function, then the function is called a concave function.
[0067] The data packet transmission control method, apparatus, electronic device, and storage medium provided in this application are specifically described through the following embodiments. First, the data packet transmission control method in this application is described.
[0068] The data packet transmission control method provided in this application can be applied to a terminal, a server, or software running on either a terminal or a server. In some embodiments, the terminal can be a smartphone, tablet, laptop, desktop computer, etc.; the server can be configured as an independent physical server, a server cluster or distributed system composed of multiple physical servers, or a cloud server providing basic cloud computing services such as cloud services, cloud databases, cloud computing, cloud functions, cloud storage, network services, cloud communication, middleware services, domain name services, security services, CDN, and big data and artificial intelligence platforms; the software can be an application implementing the data packet transmission control method, but is not limited to the above forms.
[0069] This application can be used in a wide variety of general-purpose or special-purpose computer system environments or configurations. Examples include: personal computers, server computers, handheld or portable devices, tablet devices, multiprocessor systems, microprocessor-based systems, set-top boxes, programmable consumer electronics, network PCs, minicomputers, mainframe computers, and distributed computing environments including any of the above systems or devices. This application can be described in the general context of computer-executable instructions executed by a computer, such as program modules. Generally, program modules include routines, programs, objects, components, data structures, etc., that perform specific tasks or implement specific abstract data types. This application can also be practiced in distributed computing environments where tasks are performed by remote processing devices connected via a communication network. In distributed computing environments, program modules can reside in local and remote computer storage media, including storage devices.
[0070] It should be noted that in all specific embodiments of this application, when processing data related to user identity or characteristics, such as user information, user behavior data, user historical data, and user location information, user permission or consent is obtained first. Furthermore, the collection, use, and processing of this data comply with relevant laws, regulations, and standards. In addition, when embodiments of this application require access to sensitive personal information of users, separate permission or consent from the user is obtained through pop-ups or redirection to confirmation pages. Only after obtaining the user's separate permission or consent is the necessary user-related data required for the proper functioning of these embodiments acquired.
[0071] Figure 1 is an optional flowchart of a data packet transmission control method provided in an embodiment of this application. The method in Figure 1 is applied to a target forwarding node, and the method may include, but is not limited to, steps 101 to 106.
[0072] Step 101, obtain the target data packet; wherein, the target data packet is the data packet obtained by the sender after erasure coding the original data of the target sending user;
[0073] Step 102: Determine the sender of the target data packet to obtain the target sender;
[0074] Step 103: Send the target data packet to the user queue corresponding to the target sending user;
[0075] Step 104: Update the allocation rate of the user queue according to the end-to-end effective communication rate corresponding to each target sending user to obtain the target allocation rate;
[0076] Step 105: Send the target data packet from the user queue to the link queue according to the target allocation rate;
[0077] Step 106: Send the target data packets in the link queue to the target downstream node corresponding to the link queue, so that the target downstream node sends the target data packets to the receiving end, and the receiving end performs erasure coding decoding on each target data packet to obtain the original data of the target sending user.
[0078] The beneficial effects of this application's embodiments include, but are not limited to: after obtaining the target data packet after erasure coding, determining the target sending user corresponding to the target data packet, and sending the target data packet to the user queue corresponding to the target sending user, thereby storing the data packets of each target sending user specifically in the user queue corresponding to that target sending user. In cases where different users simultaneously send target data packets, causing changes in the network state of the target forwarding node, updating the allocation rate of the user queue according to the end-to-end effective communication rate corresponding to each target sending user, obtaining the target allocation rate, so that the target forwarding node can dynamically adjust the allocation rate corresponding to each target sending user according to the network state, thereby avoiding congestion, improving data transmission rate, and achieving fair allocation of network resources among multiple users; sending the target data packet from the user queue to the link queue according to the target allocation rate, and then sending the target data packet to the target downstream node corresponding to the link queue, the receiving end performs erasure coding decoding on each target data packet to obtain the original data of the target sending user, thereby ensuring the reliability of the target data packet transmission from the sending end to the receiving end, ensuring end-to-end reliability. In summary, this application can improve the data transmission rate while ensuring end-to-end reliability and achieve fair allocation of network resources among multiple users.
[0079] In step 101 of some embodiments, the target sending user is the user corresponding to the target data packet. The original data may be data of the type of text, audio, image, etc., and this application embodiment does not limit this.
[0080] In some embodiments, the sending end segments the original data of the target user to obtain original data packets, and then encodes the original data packets using erasure coding to obtain the target data packets. Specifically, the encoder at the sending end encodes the original data packets using erasure coding, and then sends the encoded data packets (i.e., the target data packets) to an intermediate node between the sending end and the receiving end, so that the intermediate node forwards the target data packets to the receiving end, realizing end-to-end transmission of data packets. It should be noted that the sending end is also called the sending node, and the receiving end is also called the receiving node. There can be multiple intermediate nodes between the sending end and the receiving end, and the above nodes (sender, receiver, and intermediate nodes) constitute at least one node path. The target forwarding node is an intermediate node between the sending end and the receiving end. This target forwarding node is used to forward the target data packets to the next node, that is, the downstream node, so that the target data packets are sent to the receiving end.
[0081] In step 102 of some embodiments, the target sender can be determined by using a packet sorter to identify the user to whom the target data packet belongs. In another embodiment, the sender can be identified by examining the source IP address and source port number of the target data packet, or by using the user tag of the target data packet. Other methods can also be used to obtain the target sender, and are not limited to these.
[0082] In step 103 of some embodiments, at the target forwarding node, after obtaining the target sending user for each target data packet, it checks whether a user queue corresponding to the target sending user exists. If no user queue corresponding to the target sending user exists, a user queue is created, and the target data packet is then sent to the user queue corresponding to the target sending user. In another embodiment, if a user queue corresponding to the target sending user exists, the target data packet is directly stored in the user queue corresponding to the target sending user. It should be noted that the user queue is used to buffer data packets of the target sending user. The user queue can use conservative flow transmission or non-conservative flow transmission; this application embodiment does not limit this.
[0083] Referring to Figure 2, in some embodiments, the data inflow rate of the user queue is greater than the data outflow rate; step 103 may include, but is not limited to, steps 201 to 202:
[0084] Step 201: If the storage status of the user queue indicates that the queue is full, discard the data packet at the head of the user queue.
[0085] Step 202: Store the target data packet at the tail of the user queue; wherein, the user queue sends the data packet at the tail of the queue when sending data.
[0086] The advantage of this embodiment is that the user queue uses non-conservative streaming transmission, allowing the data inflow rate to exceed the data outflow rate. When the data inflow rate to a node exceeds the data outflow rate from that node, congestion may occur at the target forwarding node. For example, if a new target data packet arrives at the user queue, but the user queue's storage state indicates it is full, the user queue may overflow. This embodiment addresses this user queue overflow problem by employing packet loss operations to ensure that newly arriving target data packets are stored in the user queue. Since the target data packet is obtained by erasure coding of the original data, even if some target data packets are lost, the receiving end can still recover the original data from the remaining target data packets. Therefore, data integrity and accuracy can be ensured, thereby guaranteeing end-to-end reliability. Therefore, in this embodiment of the application, while ensuring end-to-end reliability through erasure coding, the data inflow rate of the user queue is set to be greater than the data outflow rate, so as to further improve data transmission efficiency through non-conservative stream transmission. Furthermore, the target data packet is stored at the tail of the user queue, and the data packet at the tail of the user queue is sent to the downstream node of the target when sending data. This means that the user queue is a first-in, last-out queue, thereby ensuring that the latest target data packet arriving in the user queue is sent as soon as possible, reducing the queuing delay of the user queue, and avoiding the problem of large queuing delay that may be caused by the user queue adopting non-conservative stream transmission.
[0087] It's important to note that in related technologies, nodes typically employ conservative flow transmission; and most communication protocols, such as TCP (Transmission Control Protocol) and MPTCP (Multipath Transmission Control Protocol), are based on conservative flow data transmission. Conservative flow transmission means that the rate at which data enters a node is equal to the rate at which data leaves that node. Conservative flow transmission ensures the stability of the node's queue, thus preventing data packets from experiencing high queuing delays at that node. However, conservative flow transmission is relatively slow.
[0088] In this embodiment, to further improve the data transmission rate, the target forwarding node adopts non-conservative flow transmission. Specifically, non-conservative flow transmission in this embodiment means that the rate at which data (such as the target data packet) enters the target forwarding node can be greater than the rate at which data leaves the target forwarding node. Non-conservative flow transmission can improve the utilization efficiency of network resources and increase the data transmission rate in a dynamic network environment. However, non-conservative flow transmission may cause significant queuing delays. Considering the above problems, the structure of the target forwarding node in this embodiment adds a user queue level compared to the structure of a traditional communication intermediate node. Specifically, the user queue adopts non-conservative flow transmission, meaning that the rate at which data packets enter the user queue can be greater than the rate at which data packets leave the user queue. The user queue is a First-In-Last-Out (FILO) queue. Newly arrived data packets are stored at the tail of the user queue, and the user queue sends the tail data packet (i.e., the last data packet to arrive in the user queue) each time. When the user queue overflows, the user queue performs a packet dropping operation, discarding the head data packet (i.e., the first data packet to arrive in the user queue), allowing newly arrived data packets to be added to the user queue. The aforementioned user queue employs a Last-In-First-Out (FILO) flow operation, ensuring that target data packets transmitted to the link queue do not experience significant queuing latency in the user queue. Therefore, the two-level queue structure (user queue and link queue) and FILO flow operation of the target forwarding node guarantee that target data packets successfully transmitted to the receiving end experience low queuing latency at the target forwarding node.
[0089] In step 104 of some embodiments, the target forwarding node has a two-level queue structure, including a user queue and a link queue. Compared with the structure of a traditional communication intermediate node, the target forwarding node in this application adds a user queue level to distinguish data packets sent by different users. In one embodiment, the allocation rate can be updated for each user's data packets, thereby improving the data transmission efficiency of a specific user. In another embodiment, in a multi-user scenario, the mutual influence of the allocation rates of the user queues corresponding to all target sending users can be considered as a whole to update the target allocation rate, so that the target data packets of each target sending user can be transmitted according to a relatively fair target allocation rate, achieving fair allocation of network resources among multiple users.
[0090] It should be noted that the target allocation rate represents the data transmission rate of a target data packet from one user queue to one link queue, that is, the allocation rate of the target user's data packets on the link corresponding to the link queue. Any combination of any user queue and any link queue corresponds to a target allocation rate.
[0091] In some embodiments, the effective end-to-end communication rate can be determined based on the data reception rate and the user decoding rate at the receiving end. It is understood that each target sending user corresponds to a user decoding rate, which represents the rate at which erasure coding is performed on the target data packets of that target sending user.
[0092] In some embodiments, a hop-by-hop congestion control mechanism can be employed. Specifically, this mechanism allows each intermediate node, including the target forwarding node, to independently adjust its data transmission rate to adapt to the current congestion situation. For example, the target forwarding node can autonomously control its transmission rate and packet loss based on network conditions. Specifically, autonomously controlling the transmission rate involves updating the allocation rate between each user queue and each link queue based on the end-to-end effective communication rate corresponding to each target sending user, thus obtaining the target allocation rate. This embodiment of the application, through the hop-by-hop congestion control mechanism, can achieve fair allocation of network resources among multiple users under non-conservative flow transmission conditions.
[0093] In step 105 of some embodiments, it should be noted that the target forwarding node has at least one downstream node, and there is a link between the target forwarding node and each downstream node. Each link queue of the target forwarding node corresponds to one link. It should be noted that the link queue is used to buffer data packets that need to be sent through that link. Data packets located in the user queue are sent to the link queue according to the target allocation rate. The link queue is a First-In-First-Out (FIFO) queue; specifically, data packets arriving at the link queue are stored at the tail of the queue, and data packets at the head of the queue are sent each time.
[0094] In step 106 of some embodiments, if the target downstream node is the receiving end, the target forwarding node directly sends the target data packet to the receiving end. If the target downstream node is an intermediate node between the sending end and the receiving end other than the target forwarding node, the target downstream node continues to forward the target data packet to send the target data packet to the receiving end.
[0095] In some embodiments, the receiving end performs erasure coding decoding on each target data packet. Specifically, the receiving end's decoder performs erasure coding decoding on each target data packet to obtain the original data of the target sending user. The receiving end's decoder (DEC) corresponds to the sending end's encoder (ENC). For example, at any given time, the sending end may have multiple original files to be transmitted. The sending end uses a first-in-first-out queue to store all the original files to be transmitted, and only the original file at the head of the queue is sent to the encoder for processing. The sending end encodes a raw file into multiple encoded data packets using the encoder and sends these encoded data packets to the receiving end. The receiving end continuously receives encoded data packets and decodes them using the decoder to attempt to decode the original file. Once decoding is successful, the receiving end immediately sends a decoding success feedback signal to the sending end. When the sending end receives this feedback signal, the file at the head of the queue in the sending end's queue is removed from the queue, and the sending end moves on to process the next file.
[0096] In some embodiments, the encoder and decoder use the same type of erasure code. For example, the erasure code used by the encoder and decoder may include either Reed-Solomon codes (RS codes) or fountain codes. RS codes guarantee successful decoding of the original file when the number of encoded data packets equals the number of original data packets, but the number of encoded data packets generated is determined by the size of the finite field. Larger finite fields result in higher computational costs. Therefore, RS codes are suitable for communication scenarios with a small number of original data packets (e.g., a few hundred packets). It should be noted that, theoretically, fountain codes can generate an infinite number of encoded data packets; therefore, fountain codes are suitable for communication scenarios with a large number of original data packets. For successful decoding at the receiving end, the number of encoded data packets M' received by the receiving end needs to be slightly higher than the number of original data packets M. Furthermore, fountain codes guarantee that as M approaches infinity, M' approaches M. Therefore, for communication scenarios with a large number of data packets and potential packet loss issues, this embodiment preferably uses fountain codes for encoding and decoding.
[0097] Please refer to Figure 3. In some embodiments, s represents the sender, d represents the receiver, a and b both represent intermediate nodes, and the arrows indicate the direction of data transmission. In the node network shown in Figure 2, there are 3 paths that can transmit data packets, including: (1) Path 1, sender s-> intermediate node a-> receiver d; (2) Path 2, sender s-> intermediate node a-> intermediate node b-> receiver d; (3) Path 3, sender s-> intermediate node b-> receiver d.
[0098] It should be noted that a target forwarding node can have multiple downstream nodes, and the target downstream node refers to the node selected from these multiple downstream nodes. Specifically, the target downstream node can be determined based on the routing table, or it can be selected through other methods, not limited to these. For example, if the target forwarding node is intermediate node a, then the downstream nodes of the target forwarding node include the receiver d and intermediate node b. If path 1 is selected, then the receiver d is the target downstream node.
[0099] Referring to Figure 4, in some embodiments, node u represents a target forwarding node. The target forwarding node u has at least one upstream node, such as a first upstream node v′1 and a second upstream node v′2. The target forwarding node u has at least one downstream node, such as a first downstream node v1 and a second downstream node v2. The target forwarding node u is connected to each downstream node via a link communication, such as a first link e1 corresponding to the first downstream node v1 and a second link e2 corresponding to the second downstream node v2. In the target forwarding node u, U i This represents the user queue corresponding to the target sending user i, such as the first user queue U1, the second user queue U2, and the third user queue U3. Q i This refers to the link queue corresponding to a link, such as the first link queue Q1 corresponding to the first link e1, and the second link queue Q2 corresponding to the second link e2. In some embodiments, the target forwarding node u has multiple upstream nodes, and the target forwarding node u is connected to each upstream node through upstream link communication. For example, data packets may arrive at the target forwarding node u from multiple upstream links. Specifically, in some embodiments, after the target data packet arrives at the target forwarding node u, the packet sorter first needs to determine which user the target data packet belongs to, and then send the target data packet to the user queue of the corresponding user. Data packets located in the user queue are sent to the link queue according to the target allocation rate. Each target allocation rate corresponds to one user queue and one link queue. For example, the target allocation rate... This represents the rate at which data packets are sent from the first user queue U1 to the first link queue Q1, which is also the allocation rate of data packets destined for user 1 on the first link e1; target allocation rate. This indicates the rate at which data packets are sent from the third user queue U3 to the second link queue Q2, which is the allocation rate of data packets destined for user 3 on the second link e2.
[0100] It should be noted that the queues in Figure 4 consist of multiple queue elements, each of which is the same size as the data packet and can be used to store one data packet. For example, the user queue has 3 queue elements, and the link queue has 4 queue elements. Gray queue elements indicate that the queue element already contains a data packet; for example, the first user queue U1 contains one data packet.
[0101] Please refer to Figure 5. In some embodiments, step 104 may include, but is not limited to, steps 301 to 306:
[0102] Step 301: Perform a first utility analysis on the end-to-end effective communication rate corresponding to each target sending user using the target utility function corresponding to each target sending user, and obtain the first utility relationship; wherein, the target utility function is an increasing function;
[0103] Step 302: Perform a second utility analysis on the allocation rate of each user queue using the target utility function corresponding to each target sending user to obtain the second utility relationship;
[0104] Step 303: Summate the second utility relation for each user queue to obtain the first summation sub-relation;
[0105] Step 304: Perform a weighted summation based on the first summation sub-relation and the first utility relation to obtain the second summation sub-relation;
[0106] Step 305: Summate the second summation sub-relationships corresponding to each user queue to obtain the effective communication rate utility relation;
[0107] Step 306: Maximize the effective communication rate utility relationship to update the allocation rate of each user queue and obtain the target allocation rate.
[0108] The advantage of this embodiment is that it constructs an effective communication rate utility relationship by using the effective communication rate of each target sending user, and maximizes the solution of the effective communication rate utility relationship to update the allocation rate of each user queue, thereby obtaining the target allocation rate, which improves the data transmission rate and achieves fair allocation of network resources among multiple users.
[0109] In step 301 of some embodiments, the end-to-end effective communication rate corresponding to each target sending user is specifically input into the target utility function corresponding to that target sending user to obtain a first utility relation. The target utility function is an increasing, strongly concave, and quadratically differentiable function. Different target sending users can have different target utility functions, or they can have or have the same target utility function; this is not limited.
[0110] In step 302 of some embodiments, the allocation rate of each user queue is input into the target utility function of the target sending user corresponding to the user queue to obtain the second utility relation.
[0111] In step 303 of some embodiments, it is understood that since any combination of a user queue and any link queue corresponds to a target allocation rate, the same user queue can send data packets to different link queues according to multiple target allocation rates. Since the second utility relation is constructed based on the allocation rate, different combinations of user queues and link queues will correspond to different second utility relations. The second utility relation corresponding to each user queue is summed. Specifically, the same user queue can be combined with each link queue separately to obtain the second utility relation corresponding to each combination of user queues and link queues. Then, each second utility relation is summed to obtain a first summation sub-relation. The first summation sub-relation represents the sum of the utility values of the rates at which data packets from the same user are sent to each link.
[0112] In step 304 of some embodiments, a weighted summation can be performed based on a weighting factor. In one embodiment, the weighting factor corresponds to a first summation sub-relation. The weighting factor can take a small value, such as 0.001.
[0113] In step 305 of some embodiments, the effective communication rate utility formula is used to represent the sum of the end-to-end effective communication rates of all target sending users on the target forwarding node.
[0114] In step 306 of some embodiments, maximizing the effective communication rate utility relationship is to maximize the sum of the effective communication rates of all users end-to-end, thereby achieving fair allocation of network resources among multiple users.
[0115] In some embodiments, the effective communication rate utility relationship is defined as shown in the following formula:
[0116] In the formula, This represents the effective communication rate utility relationship. Let f represent the utility relationship for maximizing the effective communication rate, and let f represent the set of allocated rates. ε represents the allocation rate of data packets sent by target user i on link e; ε = ε i Represents a set of links; U i (·) represents the target utility function for the target user i; x i λ represents the end-to-end effective communication rate of the target sending user i; λ represents the weighting factor.
[0117] The advantage of this embodiment is that by maximizing the solution of the effective communication rate utility relationship, the sum of the effective communication rates of all users end-to-end is maximized, thereby achieving fair allocation of network resources among multiple users.
[0118] In some embodiments, the end-to-end effective communication rate x i The definition of is:
[0119] in, This represents the total allocated arrival rate of target sending user i at receiving end d; r i This represents the decoding rate at the receiving end d of the data packets sent by the target user i. Specifically, the decoding rate refers to the rate at which erasure codes are decoded.
[0120] In some embodiments, the effective communication rate utility formula also has constraints. These constraints include: link capacity constraints, non-conservative flow transmission constraints, and rate non-negativity constraints. The effective communication rate utility formula and its constraints are defined as follows:
[0121] In the formula, st represents the constraint condition; the first constraint condition is the link capacity constraint, where This indicates the allocation rate of data sent by target user i on link e; c e This indicates the bandwidth of link e;
[0122] The second constraint is a non-conservative flow transport constraint, in which This represents the total allocated departure rate of the target forwarding node u; This represents the total allocated arrival rate of the target forwarding node u; This represents the set of intermediate nodes between the sender and receiver.
[0123] The third constraint is the rate non-negativity constraint, where ε i Represents a set of links.
[0124] In some embodiments, it should be noted that non-conservative streaming may cause queue instability. Queue instability refers to the disruption or loss of data order in the queue during data transmission and processing, leading to system malfunction. To address queue instability, this embodiment of the application uses link capacity constraints for each link queue, requiring that the total allocation rate from all user queues to the link queue is less than the bandwidth of the link corresponding to that link queue. Link capacity constraints prevent data packets from piling up indefinitely in the link queue, ensuring that data packets do not experience significant queuing delays and guaranteeing the stability of the link queue. Specifically, the total allocation rate from all user queues to that link queue can be obtained by summing the target allocation rates corresponding to each link queue.
[0125] Please refer to Figure 6. In some embodiments, step 306 may include, but is not limited to, steps 401 to 403:
[0126] Step 401: Obtain the target link cost and target user cost for each target sending user at the target forwarding node, and obtain the downstream user cost for each target sending user at the target downstream node.
[0127] Step 402: Based on the downstream user cost, the target link cost, and the target user cost, the effective communication rate utility relationship is transformed to obtain the distributed formula for rate allocation update.
[0128] Step 403: Update each allocation rate using the allocation rate update distributed formula to obtain the target allocation rate.
[0129] The advantage of this embodiment is that it transforms the effective communication rate utility relationship based on downstream user cost, target link cost, and target user cost to obtain a more easily calculated distributed allocation rate update formula, thereby improving the convenience of formula calculation. Furthermore, it constructs the distributed allocation rate update formula based on the parameters of the target forwarding node and the target downstream node, which can be applied to distributed scenarios, thus expanding the scope of application of the data packet transmission control method.
[0130] In step 401 of some embodiments, the target link cost is used to characterize the cost of transmitting the target user's data packets on the link corresponding to the link queue. Specifically, this cost can be time cost, bandwidth usage, etc. The target user cost is used to characterize the cost of buffering the target user's data packets in the user queue of the target forwarding node. For example, the target user cost can be the amount of storage space occupied by the target user's data packets. The downstream user cost is used to characterize the cost of buffering the target user's data packets in the user queue of the target downstream node.
[0131] In some embodiments, the distributed formula for allocation rate updates is defined as follows:
[0132] in, This represents the allocation rate at time t+1, which is also the target allocation rate. γ represents the allocation rate at time t; γ represents the update step size. U′ represents the cost to downstream user i at downstream node v; λ represents the weighting factor; i (·) represents the utility function U of the target user i. i The derivative of (·); p e (t) represents the target link cost corresponding to link e at time t; This represents the cost to the target user i at time t at the target forwarding node u.
[0133] Among them, [z] + = max{z, 0}, where z represents [·] + Any relation in it.
[0134] The advantage of this embodiment is that it can update each allocation rate through the allocation rate update distributed formula to obtain the target allocation rate, thereby improving the data transmission rate of data packets on the target forwarding node, and thus improving the rate at which data packets are forwarded from the sending end to the receiving end through intermediate nodes.
[0135] In some embodiments, the distributed algorithm includes a distributed formula for updating allocation rate, a distributed formula for updating link cost, and a distributed formula for updating user cost.
[0136] The definitions of the distributed formula for link cost update and the distributed formula for user cost update are as follows:
[0137] Where, p e (t+1) represents the target link cost corresponding to link e at time t+1; p e (t) represents the target link cost corresponding to link e at time t; i represents the target sending user i, e∈ε. i , ε i Represents the link set; γ represents the update step size; c represents the distribution rate at time t; e This indicates the bandwidth of link e;
[0138] This represents the cost to target user i at target forwarding node u at time t+1. This represents the cost to the target user i at time t at the target forwarding node u. This represents the total allocated departure rate of the target forwarding node u; This represents the total allocated arrival rate of the target forwarding node u;
[0139] Among them, [z] + = max{z, 0}, where z represents [·] + Any relation in it.
[0140] In some embodiments, after obtaining the target link cost and target user cost for each target sending user at the target forwarding node, the method further includes:
[0141] Obtain the actual data transmission rate, total actual departure rate, and total actual arrival rate of each target sending user at the target forwarding node;
[0142] Update the target link cost based on the actual data transmission rate;
[0143] The target user cost is updated based on the total actual departure rate and the total actual arrival rate.
[0144] The advantage of this embodiment is that it uses the actual data transmission rate instead of the allocated data transmission rate to update the target link cost and the target user cost, thereby reducing computational and communication overhead.
[0145] Please refer to Figure 7. In one application example, each intermediate node needs to maintain three types of local variables. Among them, the three types of local variables that the target forwarding node needs to maintain include: target user cost. Target link cost p e and target allocation rate In Figure 7, u represents the target forwarding node; v′ represents the upstream node of the target forwarding node; and v represents the downstream node of the target forwarding node, i.e., the target downstream node. The target forwarding node u and the upstream node v′ are connected via the upstream link e′, and the target forwarding node u and the target downstream node v are connected via the downstream link e. To update the three types of local variables of the target forwarding node, the upstream allocation rate of the upstream node v′ needs to be adjusted. It is passed to the target forwarding node, and the downstream user cost of the target downstream node v is also passed to it. The information is then passed to the target forwarding node. It is evident that updating the three types of local variables in the target forwarding node incurs both communication and computational overhead. Communication overhead includes the communication cost of transmitting the aforementioned information (upstream allocation rate and downstream user cost), while computational overhead includes the computational cost of updating the three types of local variables.
[0146] In some embodiments, to reduce the aforementioned communication and computational overhead, the actual data transmission rate can be used. Instead of the allocated data transmission rate In this case, the definitions of the above distributed formulas for link cost update and user cost update become:
[0147] in, This represents the actual data transmission rate at time t; This represents the total actual departure rate at time t; This represents the total actual arrival rate at time t.
[0148] The advantage of this embodiment is that it uses the actual data transmission rate instead of the allocated data transmission rate. Therefore, in the improved solution of this application embodiment, it is not necessary to estimate the allocated data transmission rate. Instead of relying on the values of the target node's link queue and user queue, the target forwarding node can update the target link cost and target user cost simply by checking the status of the link queue and user queue on the target forwarding node. The status of the link queue and user queue can be directly read, significantly reducing the computational overhead of the target forwarding node. Furthermore, upstream nodes do not need to feed back their allocation rates to the target forwarding node, greatly reducing communication overhead.
[0149] In some embodiments, P e (t) represents the size of the occupied queue of the link queue corresponding to link e at time t. Let represent the size of the free queue of the user queue corresponding to the target forwarding user i at time t. Then:
[0150] Among them, P e (t+1) represents the size of the occupied queue of the link queue corresponding to link e at time t+1; This represents the size of the idle queue of the user queue corresponding to the target forwarding user i at time t+1; T represents the time interval between the two updates. Other parameters in this formula can be found in the parameter explanations above, and will not be repeated here in the embodiments of this application.
[0151] Based on the above distributed update formulas for link cost and user cost, we can obtain:
[0152] Where γ represents the update step size.
[0153] It should be noted that at t=0, and
[0154] Specifically, the size P of the occupied queue e The unit, and the size of the free queue. The units are the same, and can be bits, bytes, etc.
[0155] Referring to Figure 5, in some embodiments, obtaining the downstream user cost for each target sending user at the target downstream node in step 401 may include, but is not limited to, steps 501 to 503:
[0156] Step 501: If the target downstream node is a receiving end, obtain the data receiving rate and decoding rate of the receiving end;
[0157] Step 502: Perform a third utility analysis on the end-to-end effective communication rate corresponding to each target sending user through the target utility function corresponding to each target sending user, and obtain the third utility relation.
[0158] Step 503: Calculate the user cost based on the third utility relation, data reception rate, and decoding rate to obtain the receiving end user cost for each target sending user, and determine the receiving end user cost as the downstream user cost.
[0159] The advantage of this embodiment is that, when the target downstream node is the receiving end, the decoding rate of the erasure code used by the receiving end is also taken into account when updating the target allocation rate according to the downstream user cost. This effectively avoids the situation where the decoding rate becomes a bottleneck, making the update of the target allocation rate more comprehensive and improving the data transmission rate.
[0160] In some embodiments, the cost to the receiving user is defined as shown in the following formula:
[0161] in, U′ represents the cost to the target sending user i at time t at the receiving end d; i (·) represents the utility function U of the target user i. i The derivative of (·); x i (t) represents the end-to-end effective communication rate of the target sending user i at time t; r represents the total allocated arrival rate of the target transmitting user i at the receiving end d at time t; i This represents the decoding rate of the data packets sent by the target user i at the receiving end d.
[0162] In some embodiments, with the development of emerging applications such as virtual reality, augmented reality, smart healthcare, autonomous driving, and large-scale model training, the communication requirements for networks have become more stringent, especially in terms of low latency, high throughput, and high reliability. Traditional network communication protocols (such as TCP and MPTCP) are difficult to meet the communication requirements of these emerging applications. Traditional communication protocols rely on packet retransmission to ensure end-to-end reliability. The packet retransmission mechanism is based on end-to-end feedback and requires verification of each packet, which can cause significant communication latency, especially in networks with large BDP (Latency-Bandwidth Product). Furthermore, in MPTCP (Multipath Protocol), the receiving end needs to transmit data to the upper-layer application sequentially, which makes end-to-end performance susceptible to the properties of the worst-case path (such as latency). To address these issues, embodiments of this application can employ erasure coding to ensure end-to-end reliability. Specifically, the sending end has an erasure coding encoder that sends encoded data packets. The receiving end has an erasure coding decoder corresponding to the encoder; upon receiving enough encoded packets, it can decode the original file, and upon successful decoding, it immediately sends an acknowledgment message to the sending end. As can be seen, the sending end does not need to acknowledge every encoded data packet sent. It only needs to send encoded data packets at the rate acknowledged by the congestion control mechanism, and stop sending after receiving an acknowledgment message confirming successful decoding. Compared to data packet retransmission, erasure coding can significantly reduce communication latency. Furthermore, in multipath transmission, erasure coding can overcome the influence of multiple paths with different characteristics, thereby improving the effective end-to-end throughput.
[0163] In some embodiments, it should be noted that the erasure coding-based communication protocols in related technologies directly embed erasure coding into traditional communication protocols and directly adopt the congestion control mechanisms in traditional communication protocols. However, the design of traditional congestion control mechanisms is not truly suitable for data transmission using erasure coding, because erasure coding introduces new characteristics. For example, erasure coding can tolerate packet loss during data transmission. Traditional congestion control mechanisms are designed to avoid packet loss, thus employing a more conservative strategy (such as conservative flow transmission) to determine the sending rate, which significantly reduces the efficiency of network resource utilization. To fully explore the role of erasure coding in network communication, this application presents an erasure coding-based and non-conservative flow communication protocol, namely the aforementioned data packet transmission control method. This method utilizes the characteristic of erasure coding tolerating packet loss during data transmission and redesigns a non-conservative flow-based congestion control mechanism. Specifically, it updates the allocation rate of the user queue according to the end-to-end effective communication rate corresponding to each target sending user to obtain the target allocation rate. In addition, this method redesigns the structure of intermediate nodes, adopting a two-level queue structure of user queues and link queues to solve problems such as congestion and queue instability that may be introduced by non-conservative flows, which can greatly improve the utilization efficiency of network resources in dynamic network environments.
[0164] It should be noted that the software tools or components not belonging to our company that appear in the embodiments of this application are merely examples and do not represent actual use.
[0165] Referring to Figure 8, this application embodiment also provides a data packet transmission control device that can implement the above-described data packet transmission control method. The device includes:
[0166] The data packet acquisition module 801 is used to acquire target data packets;
[0167] User determination module 802 is used to determine the sender of the target data packet and obtain the target sender;
[0168] The user queue module 803 is used to send the target data packet to the user queue corresponding to the target sending user;
[0169] The allocation rate update module 804 is used to update the allocation rate of the user queue according to the end-to-end effective communication rate corresponding to each target sending user, so as to obtain the target allocation rate.
[0170] The link queue module 805 is used to send target data packets from the user queue to the link queue according to the target allocation rate.
[0171] The downstream node sending module 806 is used to send the target data packet in the link queue to the target downstream node corresponding to the link queue.
[0172] The specific implementation of this data packet transmission control device is basically the same as the specific embodiment of the data packet transmission control method described above, and will not be repeated here.
[0173] This application also provides an electronic device, which includes a memory and a processor. The memory stores a computer program, and the processor executes the computer program to implement the aforementioned data packet transmission control method. This electronic device can include any smart terminal such as a tablet computer or an in-vehicle computer.
[0174] Please refer to Figure 9, which illustrates the hardware structure of an electronic device according to another embodiment. The electronic device includes:
[0175] The processor 901 can be implemented using a general-purpose CPU (Central Processing Unit), microprocessor, application-specific integrated circuit (ASIC), or one or more integrated circuits, and is used to execute relevant programs to implement the technical solutions provided in the embodiments of this application.
[0176] The memory 902 can be implemented as a read-only memory (ROM), static storage device, dynamic storage device, or random access memory (RAM). The memory 902 can store the operating system and other application programs. When the technical solutions provided in the embodiments of this specification are implemented through software or firmware, the relevant program code is stored in the memory 902 and is called and executed by the processor 901 using the data packet transmission control method of the embodiments of this application.
[0177] The input / output interface 903 is used to implement information input and output;
[0178] The communication interface 904 is used to enable communication and interaction between this device and other devices. Communication can be achieved through wired means (such as USB, Ethernet cable, etc.) or wireless means (such as mobile network, WIFI, Bluetooth, etc.).
[0179] Bus 905 transmits information between various components of the device (e.g., processor 901, memory 902, input / output interface 903, and communication interface 904);
[0180] The processor 901, memory 902, input / output interface 903, and communication interface 904 are connected to each other within the device via bus 905.
[0181] This application also provides a computer-readable storage medium storing a computer program that, when executed by a processor, implements the above-described data packet transmission control method.
[0182] Memory, as a non-transitory computer-readable storage medium, can be used to store non-transitory software programs and non-transitory computer-executable programs. Furthermore, memory may include high-speed random access memory, and may also include non-transitory memory, such as at least one disk storage device, flash memory device, or other non-transitory solid-state storage device. In some embodiments, memory may optionally include memory remotely located relative to the processor, and these remote memories can be connected to the processor via a network. Examples of such networks include, but are not limited to, the Internet, intranets, local area networks, mobile communication networks, and combinations thereof.
[0183] The embodiments described in this application are for the purpose of more clearly illustrating the technical solutions of the embodiments of this application, and do not constitute a limitation on the technical solutions provided by the embodiments of this application. As those skilled in the art will know, with the evolution of technology and the emergence of new application scenarios, the technical solutions provided by the embodiments of this application are also applicable to similar technical problems.
[0184] Those skilled in the art will understand that the technical solutions shown in the figures do not constitute a limitation on the embodiments of this application, and may include more or fewer steps than shown, or combine certain steps, or different steps.
[0185] The device embodiments described above are merely illustrative. The units described as separate components may or may not be physically separate; that is, they may be located in one place or distributed across multiple network units. Some or all of the modules can be selected to achieve the purpose of this embodiment according to actual needs.
[0186] Those skilled in the art will understand that all or some of the steps in the methods disclosed above, as well as the functional modules / units in the systems and devices, can be implemented as software, firmware, hardware, or suitable combinations thereof.
[0187] The terms “first,” “second,” “third,” “fourth,” etc. (if present) in the specification and accompanying drawings of this application are used to distinguish similar objects and are not necessarily used to describe a specific order or sequence. It should be understood that such data can be interchanged where appropriate so that the embodiments of this application described herein can be implemented in orders other than those illustrated or described herein. Furthermore, the terms “comprising” and “having,” and any variations thereof, are intended to cover non-exclusive inclusion; for example, a process, method, system, product, or apparatus that comprises a series of steps or units is not necessarily limited to those steps or units explicitly listed, but may include other steps or units not explicitly listed or inherent to such processes, methods, products, or apparatus.
[0188] It should be understood that in this application, "at least one (item)" means one or more, and "more than" means two or more. "And / or" is used to describe the relationship between related objects, indicating that three relationships can exist. For example, "A and / or B" can represent three cases: only A exists, only B exists, and both A and B exist simultaneously, where A and B can be singular or plural. The character " / " generally indicates that the preceding and following related objects are in an "or" relationship. "At least one (item) of the following" or similar expressions refer to any combination of these items, including any combination of single or plural items. For example, at least one (item) of a, b, or c can represent: a, b, c, "a and b", "a and c", "b and c", or "a and b and c", where a, b, and c can be single or multiple.
[0189] In the several embodiments provided in this application, it should be understood that the disclosed apparatus and methods can be implemented in other ways. For example, the apparatus embodiments described above are merely illustrative; for instance, the division of the units described above is only a logical functional division, and in actual implementation, there may be other division methods. For example, multiple units or components may be combined or integrated into another system, or some features may be ignored or not executed. The coupling or direct coupling or communication connection between the shown or discussed units may be through some interfaces, or indirect coupling or communication connection between the apparatus or units, and may be electrical, mechanical, or other forms.
[0190] The units described above as separate components may or may not be physically separate. The components shown as units may or may not be physical units; that is, they may be located in one place or distributed across multiple network units. Some or all of the units can be selected to achieve the purpose of this embodiment according to actual needs.
[0191] Furthermore, the functional units in the various embodiments of this application can be integrated into one processing unit, or each unit can exist physically separately, or two or more units can be integrated into one unit. The integrated unit can be implemented in hardware or as a software functional unit.
[0192] If the integrated unit is implemented as a software functional unit and sold or used as an independent product, it can be stored in a computer-readable storage medium. Based on this understanding, the technical solution of this application, in essence, or the part that contributes to the prior art, or all or part of the technical solution, can be embodied in the form of a software product. This computer software product is stored in a storage medium and includes multiple instructions to cause a computer device (which may be a personal computer, server, or network device, etc.) to execute all or part of the steps of the methods of the various embodiments of this application. The aforementioned storage medium includes various media capable of storing programs, such as USB flash drives, portable hard drives, read-only memory (ROM), random access memory (RAM), magnetic disks, or optical disks.
[0193] The preferred embodiments of the present application have been described above with reference to the accompanying drawings, but this does not limit the scope of the claims of the present application. Any modifications, equivalent substitutions, and improvements made by those skilled in the art without departing from the scope and substance of the embodiments of the present application shall be within the scope of the claims of the present application.
Claims
1. A data packet transmission control method, characterized in that, The method is applied to a target forwarding node, and the method includes: Acquire the target data packet; wherein, the target data packet is the data packet obtained by the sending end after erasure coding the original data of the target sending user; Determine the sender of the target data packet to obtain the target sender; Send the target data packet to the user queue corresponding to the target sending user; The allocation rate of the user queue is updated according to the end-to-end effective communication rate corresponding to each target sending user to obtain the target allocation rate; The target data packet is sent from the user queue to the link queue according to the target allocation rate. The target data packet in the link queue is sent to the target downstream node corresponding to the link queue, so that the target downstream node sends the target data packet to the receiving end, and the receiving end performs erasure coding decoding on each of the target data packets to obtain the original data of the target sending user.
2. The method according to claim 1, characterized in that, The step of updating the allocation rate of the user queue according to the end-to-end effective communication rate corresponding to each of the target sending users to obtain the target allocation rate includes: A first utility analysis is performed on the end-to-end effective communication rate corresponding to each target sending user using the target utility function corresponding to each target sending user, to obtain a first utility relationship; wherein, the target utility function is an increasing function; A second utility analysis is performed on the allocation rate of each user queue using the target utility function corresponding to each target sending user, to obtain a second utility relationship. Summing the second utility relation for each user queue yields a first summation sub-relation. The second summation sub-relation is obtained by performing a weighted summation based on the first summation sub-relation and the first utility relation; Summing the second summation sub-relationships corresponding to each user queue yields the effective communication rate utility relationship. The effective communication rate utility relationship is maximized to update the allocation rate of each user queue, thereby obtaining the target allocation rate.
3. The method according to claim 2, characterized in that, Maximizing the effective communication rate utility relationship to update the allocation rate of each user queue and obtain the target allocation rate includes: Obtain the target link cost and target user cost for each target sending user at the target forwarding node, and obtain the downstream user cost for each target sending user at the target downstream node; The effective communication rate utility relationship is transformed based on the downstream user cost, the target link cost, and the target user cost to obtain the distributed formula for rate update. The target allocation rate is obtained by updating each of the allocation rates using the allocation rate update distributed formula.
4. The method according to claim 3, characterized in that, The step of obtaining the downstream user cost for each target sending user at the target downstream node includes: If the target downstream node is a receiving end, obtain the data receiving rate and decoding rate of the receiving end; A third utility analysis is performed on the end-to-end effective communication rate corresponding to each target sending user using the target utility function corresponding to each target sending user, to obtain the third utility relationship; The user cost is calculated based on the third utility relation, the data receiving rate, and the decoding rate to obtain the receiving end user cost for each target sending user, and the receiving end user cost is determined as the downstream user cost.
5. The method according to claim 3, characterized in that, The distributed formula for updating the allocation rate is defined as follows: in, This represents the allocation rate at time t+1, which is also the target allocation rate. γ represents the allocation rate at time t; γ represents the update step size. U represents the cost of sending data to user i at the downstream node v of the target; λ represents the weighting factor; U i ′(·) denotes the utility function U of the target sending user i. i The derivative of (·); p e (t) represents the target link cost corresponding to link e at time t; The target user cost of target sending user i at time t at the target forwarding node u; Among them, [z] + = max{z, 0}, where z represents [·] + Any relation in it.
6. The method according to claim 2, characterized in that, The effective communication rate utility relationship is defined by the following formula: in, This represents the effective communication rate utility relationship. Let f represent the utility relationship for maximizing the effective communication rate, and let f represent the set of allocated rates. ε represents the allocation rate of data packets sent by target user i on link e; ε = ε i Represents a set of links; U i (·) represents the target utility function for the target user i; x i λ represents the end-to-end effective communication rate of the target sending user i; λ represents the weighting factor.
7. The method according to any one of claims 1 to 6, characterized in that, The data inflow rate of the user queue is greater than the data outflow rate; sending the target data packet to the user queue corresponding to the target sending user includes: If the storage status of the user queue indicates that the queue is full, the data packet at the head of the user queue is discarded. The target data packet is stored at the tail of the user queue; wherein the user queue sends the data packet at the tail of the queue when sending data.
8. A data packet transmission control device, characterized in that, The device includes: The data packet acquisition module is used to acquire target data packets; The user determination module is used to determine the sender of the target data packet and obtain the target sender. The user queue module is used to send the target data packet to the user queue corresponding to the target sending user; The allocation rate update module is used to update the allocation rate of the user queue according to the end-to-end effective communication rate corresponding to each target sending user, so as to obtain the target allocation rate. The link queue module is used to send the target data packet from the user queue to the link queue according to the target allocation rate. The downstream node sending module is used to send the target data packet in the link queue to the target downstream node corresponding to the link queue.
9. An electronic device, characterized in that, The electronic device includes a memory and a processor, the memory storing a computer program, and the processor executing the computer program to implement the data packet transmission control method according to any one of claims 1 to 7.
10. A computer-readable storage medium storing a computer program, characterized in that, When the computer program is executed by the processor, it implements the data packet transmission control method according to any one of claims 1 to 7.