Data transmission method and device, electronic equipment and storage medium

By dynamically calculating the target quantity and re-encoding at the current node, the problem of data redundancy in dynamic networks is solved, improving data transmission efficiency and reliability.

CN121664366APending Publication Date: 2026-03-13THE CHINESE UNIV OF HONG KONG (SHENZHEN)
View PDF 0 Cites 0 Cited by

Patent Information

Authority / Receiving Office
CN · China
Patent Type
Applications(China)
Current Assignee / Owner
Filing Date
2025-11-19
Publication Date
2026-03-13

AI Technical Summary

Technical Problem

In a dynamically changing network environment, existing technologies use a preset number of codes for data transmission, which leads to data redundancy and causes the target node to take a long time to complete data reception, thus reducing data transmission efficiency.

Method used

By obtaining the initial rank and transmission rate of the batch data at the current node, the target number is dynamically calculated, valid encoded data packets are determined and re-encoded to generate updated batch data, which is then sent to the next node.

Benefits of technology

Reduce data redundancy, improve network bandwidth utilization efficiency, shorten the decoding waiting time of target nodes, and enhance overall data transmission efficiency and reliability.

✦ Generated by Eureka AI based on patent content.

Smart Images

  • Figure CN121664366A_ABST
    Figure CN121664366A_ABST
Patent Text Reader

Abstract

The embodiment of the invention discloses a data transmission method and device, electronic equipment and a storage medium, and belongs to the technical field of network communication. The method comprises the following steps: determining a current rank of each batch of data at a current node according to an initial rank and a first initial quantity of each batch of data packets; determining a target number according to the ratio of the data packet transmission rate of the current rank and the current node to the effective data packet transmission rate; determining a difference value between the target number and a second initial number from the second initial number of the effective coded data packets in each batch of data, and performing re-coding processing on at least part of the effective coded data packets to obtain re-coded data packets with the number corresponding to the difference value; according to the recoding data packet corresponding to each batch of data and all the effective coding data packets, generating updated batch data corresponding to each batch of data; and sending the updated batch data corresponding to each batch data to the next node. According to the invention, the data transmission efficiency in a dynamically changing network can be improved.
Need to check novelty before this filing date? Find Prior Art

Description

Technical Field

[0001] This application relates to the field of network communication technology, specifically to a data transmission method, apparatus, electronic device, and storage medium. Background Technology

[0002] Network coding is a revolutionary communication technology that allows intermediate nodes in a network to re-encode received data packets instead of simply storing and forwarding them, thereby optimizing network throughput in the presence of packet loss. In related technologies, each intermediate node can re-encode the received data packets according to a preset number of encoding steps and then transmit the re-encoded packets.

[0003] However, network conditions are dynamic. When network conditions change, if related technologies still use a preset number of encodings to re-encode received data packets and then transmit the re-encoded packets, data redundancy will occur. Ultimately, this will cause the target node to require a longer time to achieve complete data reception. In other words, using a preset number of encodings for data transmission in a dynamically changing network leads to low data transmission efficiency. Summary of the Invention

[0004] This application provides a data transmission method, apparatus, electronic device, and storage medium that can improve data transmission efficiency in dynamically changing networks.

[0005] To achieve the above objectives, one embodiment of this application provides a data transmission method, including: At the current node, obtain at least one batch of data sent from the previous node, and the initial rank of each batch of data; Determine the first initial number of encoded data packets contained in each batch of data, and determine the current rank of each batch of data at the current node based on the initial rank and the first initial number; Obtain the current node's data packet transmission rate and effective data packet transmission rate, and determine the target quantity for each batch of data based on the ratio between the current rank, data packet transmission rate, and effective data packet transmission rate. Determine the valid encoded data packets and the second initial number of valid encoded data packets from the encoded data packets contained in each batch of data, determine the difference between the target number and the second initial number, and re-encode at least a portion of the valid encoded data packets to obtain a re-encoded data packet of the corresponding number of differences; Based on the re-encoded data packet corresponding to each batch of data and all valid encoded data packets, generate the updated batch data corresponding to each batch of data. Send the updated batch data corresponding to each batch of data to the next node.

[0006] In some embodiments, after sending the updated batch data corresponding to each batch of data to the next node, the method further includes: When the source node receives a stop signal from the destination node, it determines that the data transmission is complete. Otherwise, update the next node to the current node and return to the step of obtaining at least one batch of data sent from the previous node and the initial rank of each batch of data at the current node until the source node receives a stop signal sent from the destination node, at which point the data transmission is considered complete.

[0007] In some embodiments, determining the current rank of each batch of data at the current node based on the initial rank and the first initial quantity includes: When the initial rank is the preset rank, the current rank of each batch of data in the current node is determined to be the preset rank; When the initial rank is greater than the preset rank and the first initial quantity is less than the preset rank, the current rank of each batch of data in the current node is determined as the first initial quantity; When the initial rank is greater than the preset rank and the first initial quantity is greater than the preset rank, the current rank of each batch of data in the current node is determined as the initial rank.

[0008] In some embodiments, obtaining the effective data packet transmission rate of the current node includes: Get the first batch data transmission rate of the current node; Based on the first batch data transmission rate and the current rank of each batch of data at the current node, determine the sub-effective data packet transmission rate of each batch of data; The effective data packet transmission rate of the current node is obtained by superimposing the sub-effective data packet transmission rates of all batches of data.

[0009] In some embodiments, obtaining the current node's packet transmission rate and effective packet transmission rate includes: Get the initial data packet transmission rate and initial effective data packet transmission rate of the current node, and get the second batch data transmission rate of the next node from the next node; The initial effective data packet transmission rate is updated based on the initial data packet transmission rate and the second batch data transmission rate to obtain the effective data packet transmission rate of the current node. The initial data packet transmission rate is updated based on the initial effective data packet transmission rate and the second batch data transmission rate to obtain the current node's data packet transmission rate.

[0010] In some embodiments, at least a portion of the valid encoded data packets are re-encoded to obtain re-encoded data packets with a difference corresponding to the number of packets, including: When the difference is an integer, at least a portion of the valid encoded data packets are re-encoded to obtain a number of re-encoded data packets corresponding to the difference. When the difference is not an integer, determine the first integer and the first decimal based on the difference, determine the first probability based on the first decimal, and determine the second probability corresponding to the first integer based on the first probability; The second integer is determined based on the first integer; At least a portion of the valid encoded data packets are re-encoded, and a second integer number of re-encoded data packets are obtained with a first probability, and a first integer number of re-encoded data packets are obtained with a second probability.

[0011] In some embodiments, when the difference is an integer, at least a portion of the valid encoded data packets are re-encoded to obtain re-encoded data packets corresponding to the number of differences, including: When the initial rank is a preset rank, at least a portion of the valid encoded data packets are copied to obtain a number of re-encoded data packets with the corresponding difference. When the initial rank is greater than the preset rank, at least a portion of the valid encoded data packets are randomly linearly combined to obtain a number of re-encoded data packets with a difference in value.

[0012] To achieve the above objectives, one embodiment of this application provides a data transmission apparatus, including: The acquisition module is used to acquire at least one batch of data sent from the previous node and the initial rank of each batch of data at the current node. The current rank determination module is used to determine the first initial number of encoded data packets contained in each batch of data, and to determine the current rank of each batch of data at the current node based on the initial rank and the first initial number; The target quantity determination module is used to obtain the data packet transmission rate and effective data packet transmission rate of the current node, and determine the target quantity corresponding to each batch of data based on the ratio between the current rank, data packet transmission rate and effective data packet transmission rate. The re-encoding module is used to determine the valid encoded data packets and the second initial number of valid encoded data packets from the encoded data packets contained in each batch of data, determine the difference between the target number and the second initial number, and re-encode at least a portion of the valid encoded data packets to obtain a re-encoded data packet with the corresponding number of differences. The update batch data determination module is used to generate updated batch data for each batch of data based on the re-encoded data packet corresponding to each batch of data and all valid encoded data packets. The transmission module is used to send the updated batch data corresponding to each batch of data to the next node.

[0013] To achieve the above objectives, one aspect of this application provides a computer-readable storage medium storing multiple instructions adapted for loading by a processor to execute the steps in the data transmission method provided in this application.

[0014] To achieve the above objectives, one aspect of this application provides a computer device, including a memory, a processor, and a computer program stored in the memory and capable of running on the processor. When the processor executes the computer program, it implements the steps in the data transmission method provided in this application.

[0015] To achieve the above objectives, one aspect of this application provides a computer program product, including a computer program or instructions, which, when executed by a processor, implement the steps in the data transmission method provided in this application.

[0016] The data transmission method, apparatus, electronic device, and storage medium proposed in this application involve: acquiring at least one batch of data sent from the previous node and the initial rank of each batch of data at the current node; determining a first initial number of coded data packets contained in each batch of data, and determining the current rank of each batch of data at the current node based on the initial rank and the first initial number; acquiring the data packet transmission rate and the effective data packet transmission rate of the current node, and determining the target number corresponding to each batch of data based on the ratio between the current rank, the data packet transmission rate, and the effective data packet transmission rate; determining the effective coded data packets and a second initial number of effective coded data packets from the coded data packets contained in each batch of data, determining the difference between the target number and the second initial number, and re-encoding at least a portion of the effective coded data packets to obtain re-coded data packets of a number corresponding to the difference; generating updated batch data corresponding to each batch of data based on the re-coded data packets corresponding to each batch of data and all effective coded data packets; and sending the updated batch data corresponding to each batch of data to the next node.

[0017] This application's embodiments distinguish between the data packet transmission rate and the effective data packet transmission rate corresponding to each node, and combine this with the current rank of the received batch data to calculate the target number of data packets to be sent in real time. Then, based on the difference between the target number and the current number of effective data packets, a corresponding number of recoded data packets are generated as needed. This avoids the problems in related technologies where using a fixed number of recoded packets leads to excessive redundant data in poor network conditions or insufficient recoded data packets in good network conditions, resulting in ineffective network utilization. Therefore, this application can significantly reduce data redundancy, ensure that network bandwidth is efficiently used to transmit effective information, thereby shortening the decoding waiting time of the target node, and ultimately effectively improving the overall data transmission efficiency and reliability in a dynamically changing network environment.

[0018] Other features and advantages of this application will be set forth in the following description and will be apparent in part from the description or may be learned by practicing the application. The objectives and other advantages of this application may be realized and obtained by means of the structures particularly pointed out in the description, claims and drawings. Attached Figure Description

[0019] To more clearly illustrate the technical solutions in the embodiments of this application, the accompanying drawings used in the description of the embodiments will be briefly introduced below. Obviously, the accompanying drawings described below are only some embodiments of this application. For those skilled in the art, other drawings can be obtained based on these drawings without creative effort.

[0020] Figure 1 This is a schematic diagram of the system framework corresponding to the data transmission method provided in the embodiments of this application; Figure 2 This is an example diagram of a data transmission scenario provided in an embodiment of this application; Figure 3 This is a schematic diagram of the internal structure of a node and data flow processing provided in the embodiments of this application; Figure 4 This is a flowchart illustrating the data transmission method provided in an embodiment of this application; Figure 5 This is a schematic diagram of the data flow definition of the communication model provided in the embodiments of this application; Figure 6 This is a schematic diagram of the module structure of the data transmission device provided in an embodiment of this application; Figure 7 This is a schematic diagram of the hardware structure of the electronic device provided in the embodiments of this application. Detailed Implementation

[0021] To enable those skilled in the art to better understand the solutions of this application, the technical solutions of the embodiments of this application will be clearly and completely described below with reference to the accompanying drawings. Obviously, the described embodiments are only some embodiments of this application, and not all embodiments. Based on the embodiments of this application, all other embodiments obtained by those skilled in the art without creative effort are within the scope of protection of this application.

[0022] It should be noted that in each specific embodiment of this application, when it is necessary to obtain batch data from the previous node, permission or consent from the relevant personnel managing the batch data will be obtained first. Furthermore, the collection, use, and processing of this data will comply with relevant laws, regulations, and standards. In addition, when this application embodiment needs to obtain sensitive personal information of relevant personnel, separate permission or consent from the relevant personnel will be obtained through pop-ups or redirection to a confirmation page. Only after obtaining the separate permission or consent of the relevant personnel will the necessary batch data for the normal operation of this application embodiment be obtained. Other data obtained in this application embodiment are all authorized and legal data, and will not be described in detail here.

[0023] 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, programmable consumer computer devices, 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.

[0024] Before providing a further detailed description of the embodiments of this application, the nouns and terms used in the embodiments of this application are explained, and the nouns and terms used in the embodiments of this application shall be interpreted as follows: Network coding is a revolutionary communication technology that allows intermediate nodes in a network to re-encode received data packets instead of simply storing and forwarding them, thereby optimizing network throughput in the presence of packet loss. In related technologies, each intermediate node can re-encode the received data packets according to a preset number of encodings and then transmit the re-encoded data packets.

[0025] In network coding, batched network coding (BNC) is a commonly used technique. BNC employs an outer code-inner code structure: at the source, the outer code is primarily responsible for generating small batches of the original data to be transmitted; at intermediate nodes, new encoded data packets are generated using random linear combinations, and each batch carries its coding coefficient information so that the receiving end can recover the original data using linear algebra methods; at the destination, the outer code decodes according to the received batches, thus ensuring end-to-end reliability. The batch structure limits the coding scope to within each batch, avoiding the high complexity and synchronization overhead of global coding, thereby reducing encoding / decoding complexity and decoding latency.

[0026] Next, the technical problems existing in the related technologies are described: Network conditions are dynamic. When network conditions change, if related technologies still use a preset number of encodings to re-encode received data packets and then transmit these re-encoded packets, data redundancy will occur. Ultimately, this will cause the target node to require a longer time to achieve complete data reception. In other words, using a preset number of encodings for data transmission in a dynamically changing network leads to low data transmission efficiency.

[0027] For example, in video streaming scenarios, when the network abruptly changes from a high-bandwidth state to a high-packet-loss state, generating a large number of redundant packets at the original high coding rate not only fails to effectively improve the reception success rate but also exacerbates the network burden. This forces the target node to receive and process more data to complete decoding, prolonging data recovery time. Ultimately, the target node needs to spend more time accumulating encoded packets of sufficient rank to achieve complete information reconstruction, severely impacting end-to-end transmission efficiency and user experience. In batch network coding scenarios, regardless of network changes, related technologies re-encode received data packets according to a preset coding quantity. This data processing and transmission method prevents the technology from responding promptly to network changes and from optimizing resource utilization, thus limiting its applicability and performance in complex and dynamic network environments.

[0028] The data transmission method, apparatus, electronic device, and storage medium proposed in this application involve: acquiring at least one batch of data sent from the previous node and the initial rank of each batch of data at the current node; determining a first initial number of coded data packets contained in each batch of data, and determining the current rank of each batch of data at the current node based on the initial rank and the first initial number; acquiring the data packet transmission rate and the effective data packet transmission rate of the current node, and determining the target number corresponding to each batch of data based on the ratio between the current rank, the data packet transmission rate, and the effective data packet transmission rate; determining the effective coded data packets and a second initial number of effective coded data packets from the coded data packets contained in each batch of data, determining the difference between the target number and the second initial number, and re-encoding at least a portion of the effective coded data packets to obtain re-coded data packets of a number corresponding to the difference; generating updated batch data corresponding to each batch of data based on the re-coded data packets corresponding to each batch of data and all effective coded data packets; and sending the updated batch data corresponding to each batch of data to the next node.

[0029] This application's embodiments distinguish between the data packet transmission rate and the effective data packet transmission rate corresponding to each node, and combine this with the current rank of the received batch data to calculate the target number of data packets to be sent in real time. Then, based on the difference between the target number and the current number of effective data packets, a corresponding number of recoded data packets are generated as needed. This avoids the problems in related technologies where using a fixed number of recoded packets leads to excessive redundant data in poor network conditions or insufficient recoded data packets in good network conditions, resulting in ineffective network utilization. Therefore, this application can significantly reduce data redundancy, ensure that network bandwidth is efficiently used to transmit effective information, thereby shortening the decoding waiting time of the target node, and ultimately effectively improving the overall data transmission efficiency and reliability in a dynamically changing network environment.

[0030] The specific details regarding the data transmission method, apparatus, electronic device, and storage medium provided in the embodiments of this application will be described in detail below.

[0031] Please see Figure 1 , Figure 1 This is a schematic diagram of the system framework corresponding to the data transmission method provided in the embodiments of this application. The data transmission method provided in the embodiments of this application can be applied to this system framework.

[0032] It includes terminal 140, Internet 130, gateway 120, server 110, etc.

[0033] Terminal 140 or server 110 can be a device that performs a data transmission method.

[0034] Terminal 140 includes, but is not limited to, mobile phones, tablets, computers, and intelligent computing centers. Terminal 140 can be a single device or a collection of multiple devices. For example, multiple computers can be interconnected via a local area network, sharing a single monitor to work collaboratively, thus forming a terminal 140. Terminal 140 can communicate with the Internet 130 via wired or wireless means to exchange data.

[0035] Server 110 refers to a computer system that can provide certain services to terminal 140. Compared to ordinary terminal 140, server 110 has higher requirements in terms of stability, security, and performance. Server 110 can be a standalone physical server, a server cluster or distributed system composed of multiple physical servers, or a cloud server that provides 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, content delivery networks (CDN), and big data and artificial intelligence platforms.

[0036] Gateway 120, also known as an internetwork connector or protocol converter, is a computer system or device that acts as a translator, enabling network interconnection at the transport layer. It bridges the gap between two systems using different communication protocols, data formats, languages, or even completely different architectures. Gateways can also provide filtering and security functions. Messages sent from terminal 140 to server 110 are forwarded to the corresponding server 110 via gateway 120. Messages sent from server 110 to terminal 140 are also forwarded to the corresponding terminal 140 via gateway 120.

[0037] The embodiments of this application can be applied to data transmission in various scenarios, such as, but not limited to, multi-hop sensor network data transmission in the Industrial Internet of Things, collaborative communication data transmission in drone swarms, and real-time message broadcast data transmission in the Internet of Vehicles. These are merely illustrative examples and do not imply any limitation on the scenarios in which the data transmission method can be applied.

[0038] Data transmission involves a network with multiple nodes. For any given data to be transmitted, the node sending the data is the source node, and the destination node is the point to which the data needs to be sent. Data can be sent directly from the source node to the destination node, but more often, it needs to be forwarded through multiple intermediate nodes. For example... Figure 2 As shown, Figure 2This is an example diagram of a data transmission scenario provided in an embodiment of this application. Data can be sent to the destination node through two paths: the first path is: source node → intermediate node 1 → destination node; the second path is: source node → intermediate node 2 → intermediate node 3 → destination node. Of course, in actual applications, there may be more than two transmission paths from the source node to the destination node, and each transmission path may contain one or more intermediate nodes. Figure 2 This is merely an illustrative example for the reader's convenience and does not imply any limitation on the data transmission link nodes in this application's embodiments.

[0039] This application's embodiments improve the re-encoding process of intermediate nodes. For ease of understanding, the internal composition of intermediate nodes and data flow processing are described below, such as... Figure 3 As shown, Figure 3 This is a schematic diagram of the internal composition and data flow processing of a node provided in an embodiment of this application. w1 and w2 represent downstream nodes of the current node, u1 and u2 represent upstream nodes of the current node (the current node is not the source node at this time), and node v represents any current node. The current node includes an external code encoder (ENC), a re-encoding component (REC), an input data waiting queue (SQ-2), and an output data waiting queue (OQ). REC further includes re-encoding component 1 (REC1) and re-encoding component 2 (REC2), and OQ further includes OQ-1 and OQ-2. The re-encoding component is also called an internal code encoder. Thus, the BNC can form an external code-internal code structure. If the current node is the source node, the source node transmits files in a first-come, first-served manner. Only one file is transmitted at a time. The source node encodes the file to be transmitted into several batches of data, and re-encodes it using REC1 to obtain re-encoded batch data. The re-encoded batch data is then placed into OQ-1 or OQ-2 and awaits transmission to the downstream node. If the current node is an intermediate node, it receives at least one batch of data from the upstream node, places this batch of data into SQ-2, and re-encodes it using REC2 to obtain re-encoded batch data. The re-encoded batch data is then placed into OQ-1 or OQ-2 and awaits transmission to the downstream node.

[0040] Furthermore, the destination node will decode the received batch of data. When the destination node successfully decodes the data, it will immediately send a decoding success signal to the source node. Upon receiving this signal, the source node will stop sending the current file and start sending the next file. In other words, the current file transfer is complete.

[0041] Having understood the data transmission process in the network, the next step will be to describe it from the perspective of data transmission devices, such as... Figure 4 As shown, Figure 4 This is a flowchart illustrating the data transmission method provided in an embodiment of this application. The data transmission method is applied to a data transmission device, which can be located in an intermediate node. Figure 4 The method may include, but is not limited to, the following steps 210 to 260. When the data transmission device executes the data transmission method, the specific process is as follows. It should be noted first that this embodiment... Figure 4 The order of steps 210 to 260 is not specifically limited. The order of steps can be adjusted or some steps can be reduced or added according to actual needs.

[0042] Step 210: Obtain at least one batch of data sent from the previous node at the current node, and the initial rank of each batch of data; Step 220: Determine the first initial number of encoded data packets contained in each batch of data, and determine the current rank of each batch of data at the current node based on the initial rank and the first initial number; Step 230: Obtain the data packet transmission rate and effective data packet transmission rate of the current node, and determine the target quantity corresponding to each batch of data based on the ratio between the current rank, data packet transmission rate and effective data packet transmission rate. Step 240: Determine the valid encoded data packets and the second initial number of valid encoded data packets from the encoded data packets contained in each batch of data, determine the difference between the target number and the second initial number, and re-encode at least a portion of the valid encoded data packets to obtain a re-encoded data packet with the corresponding number of differences. Step 250: Generate updated batch data corresponding to each batch of data based on the re-encoded data packet corresponding to each batch of data and all valid encoded data packets; Step 260: Send the updated batch data corresponding to each batch of data to the next node.

[0043] Steps 210 to 260 will be described in detail below.

[0044] In step 210, at least one batch of data sent from the previous node and the initial rank of each batch of data are obtained at the current node.

[0045] In this system, the current node can be any intermediate node, and the previous node can be either the source node or an intermediate node. For the data to be transmitted, the source node's external encoder continuously generates batches of data of size M. Each batch contains M raw encoded data packets (i.e., valid encoded data packets). It's important to note that raw encoded data packets refer to the encoded data packets that constitute the data to be transmitted. A batch can contain multiple data packets, which can be obtained by re-encoding raw encoded data packets. For example, if a batch contains 5 encoded data packets but only 2 raw encoded data packets, then M=2 for that batch. The source node sends at least one batch of data to the next node. Due to packet loss, the next node is unlikely to receive all the data packets within that batch.

[0046] Furthermore, in addition to receiving at least one batch of data from the previous node, the current node also receives the initial rank corresponding to each batch of data. The rank of a batch of data is defined as the number of linearly independent data packets received by the current node within that batch. Determining whether data packets are linearly dependent only requires checking whether their coefficient vectors are correlated. For example, if a batch of data contained 3 original encoded data packets when sent by the previous node, then the header of that batch of data would contain its corresponding initial rank, which is 3. It should be noted that the initial rank represents the rank when the previous node sent that batch of data, but it does not mean that the rank will remain when the current node receives that batch of data.

[0047] It should be noted that the source node, intermediate node and destination node have the same preset M, but due to packet loss during data transmission, the initial rank of different nodes is different. M is just a preset parameter and not the initial rank. The initial rank of the batch data transmitted by the source node is M, but the initial rank of the intermediate node is ≤ M.

[0048] In step 220, a first initial number of encoded data packets contained in each batch of data is determined, and the current rank of each batch of data at the current node is determined based on the initial rank and the first initial number.

[0049] The first initial quantity refers to the number of encoded data packets contained in the corresponding batch of data. That is, regardless of whether the encoded data packets in the batch of data are linearly related, they will be used as the basis for counting the first initial quantity. For example, if a certain batch of data received by the current node includes 5 encoded data packets, of which 3 are original encoded data packets, then the first initial quantity corresponding to the batch of data is 5.

[0050] Furthermore, since the rank of the batch data received by the current node is not necessarily the same as the rank of the batch data sent by the previous node, it is necessary to determine the current rank of each batch of data at the current node based on the initial rank and the first initial quantity. Where the current rank is less than or equal to the initial rank.

[0051] In some embodiments, determining the current rank of each batch of data at the current node based on the initial rank and the first initial quantity includes: (1.1) When the initial rank is the preset rank, determine the current rank of each batch of data in the current node as the preset rank; (1.2) When the initial rank is greater than the preset rank and the first initial quantity is less than the preset rank, determine the current rank of each batch of data at the current node as the first initial quantity; (1.3) When the initial rank is greater than the preset rank and the first initial quantity is greater than the preset rank, the current rank of each batch of data at the current node is determined as the initial rank.

[0052] The preset rank is 1, i.e., M=1. At this time, as long as the current node receives the corresponding batch of data, it can know that the batch of data contains only one original encoded data packet. Therefore, the current rank of the batch of data at the current node is 1. If the current node does not receive any encoded data packet of the batch of data, then the current node will not know that the batch of data exists at all. If this situation affects the decoding of the destination node, it can simply continue to receive and process the batch of data from the previous node.

[0053] Furthermore, if the preset rank is greater than 1, i.e., M > 1, since intermediate nodes do not have the precise decoding capability of the target node, it is necessary to determine the current rank of each batch of data at the current node based on the relationship between the initial rank and the first initial quantity. In the first case, the initial rank is greater than the preset rank, and the first initial quantity is less than the preset rank. In this case, the current rank is considered to be numerically equal to the first initial quantity. For example, if the preset rank is 1, the initial rank is 5, and the first initial quantity is 3, which is less than the preset rank, then the current rank is 3.

[0054] Furthermore, in the second case, if the initial rank is greater than the preset rank and the first initial quantity is greater than the preset rank, then the received batch data must contain redundant encoded data packets. In this case, the current rank is considered to be equal to the initial rank. For example, if the preset rank is 1, the initial rank is 5, and the first initial quantity is 7, which is greater than the preset rank, it means that at least two encoded data packets are redundant. In this case, the current rank is 5.

[0055] In step 230, the data packet transmission rate and effective data packet transmission rate of the current node are obtained, and the target quantity corresponding to each batch of data is determined based on the ratio between the current rank, the data packet transmission rate and the effective data packet transmission rate.

[0056] The packet transmission rate refers to the number of encoded data packets actually sent by the current node to the next hop node per unit time. It reflects the node's data output capability on the physical link or logical channel. The actual packet transmission rate is constrained by factors such as network bandwidth, queue scheduling strategies, link congestion, and node processing performance. The effective packet transmission rate, on the other hand, refers to the equivalent rate corresponding to the portion of the encoded data packets transmitted by the current node per unit time that can bring new linearly independent information for information recovery. Unlike the packet transmission rate that simply counts the number of packets sent, the effective packet transmission rate focuses on the information value rather than the physical quantity. For example, even if 30 encoded packets are sent, if some packets are linearly dependent and cannot improve the rank at the receiving end, only those packets that actually increase the rank are counted as the effective portion.

[0057] More specifically, data packets are the basic unit of network communication. Since re-encoding introduces redundancy into data packets, the rate of encoding data packets cannot reflect the effective information rate. Therefore, embodiments of this application will provide definitions of data flow and effective information flow: the data packet flow of a session is defined as the rate of transmission of encoded data packets across all available links for that session. Let represent the encoded data packet transmission rate of session i on link e. Then, the data packet flow of session i is represented as follows: (Packet transmission rate), where E i It is the set of links used by session i. This represents the effective information rate (effective data packet transmission rate) transmitted by session i on link e, and is expressed in terms of... The batch rate of rank r received by session i on link e (i.e., the first batch data transmission rate mentioned later) is defined as follows: Q(r|r') represents the proportion of batches of rank r' transmitted on link e that are received as r. Different re-encoding schemes will correspond to different Q(r|r'), and the method for determining Q(r|r') will be explained in detail later. Furthermore, due to packet loss that can occur on network links, for a given link... When a batch of data with rank r sent by the current node u is received by the next node v, the rank of the batch of data may be less than r.

[0058] Based on the above definition, we can know the rate at which the next node receives the total information of session i from link e. Based on the above definition, using Represents a valid information flow for session i, and as follows: Figure 5 As shown, Figure 5This is a schematic diagram of the data flow definition of the communication model provided in this application embodiment. It integrates the data flow and valid information defined in this application embodiment into the communication model, where i represents the i-th session and link represents a link. This represents the batch rate of rank r' received by the current node u from the previous node. This represents the batch rate at which the current node sends data of rank r. This indicates the data packet transmission rate of the current node.

[0059] In addition, the data packet transmission rate and the effective data packet transmission rate need to meet the following two fundamental constraints: , Here, E represents the set of all links. The first constraint states that for each link in the network, the data flow must satisfy the link capacity constraint; the second constraint states that the effective information rate cannot exceed the data flow rate. Furthermore, when session i passes through intermediate node u, the following non-conservative information flow constraints must be satisfied: .in, This represents the set of intermediate nodes used by session i. Additionally, These represent the total batch rate of session i with rank r output at intermediate node u and the total batch rate of session i with rank r incoming at intermediate node u, respectively.

[0060] Furthermore, this embodiment of the application dynamically determines the target quantity of each batch of data by comprehensively considering the ratio of the current rank of the current node, the data packet transmission rate, and the effective data packet transmission rate. The target quantity refers to the number of coded data packets that the current node should include when sending a batch of data to the next node. This batch contains N1 coded data packets, and the current node will determine the target quantity (N2 coded data packets) based on the ratio of the current rank, data packet transmission rate, and effective data packet transmission rate. N1 and N2 can be the same or different.

[0061] Furthermore, this embodiment of the application can dynamically determine the number of encoded data packets that should be included in the corresponding batch of data after recoding based on the target quantity determined by the current rank of the current node, the data packet transmission rate, and the effective data packet transmission rate. In this way, this embodiment of the application can avoid bandwidth waste and network congestion caused by over-encoding when channel conditions are good, and can actively enhance redundancy to improve reliability when transmission efficiency is low or packet loss is severe. In particular, by introducing the effective data packet transmission rate, an indicator reflecting information gain, the device can perceive the actual information transmission efficiency, rather than relying solely on the inherent physical transmission volume, thereby adaptively balancing transmission efficiency and resource overhead in a dynamically changing network environment, significantly improving the success rate of data transmission and overall network performance.

[0062] In some embodiments, obtaining the effective data packet transmission rate of the current node includes: (2.1) Obtain the first batch data transmission rate of the current node; (2.2) Determine the sub-effective data packet transmission rate of each batch of data based on the first batch data transmission rate and the current rank of each batch of data at the current node; (2.3) The effective data packet transmission rate of the current node is obtained by superimposing the sub-effective data packet transmission rates of all batches of data.

[0063] The first batch data transmission rate of the current node is represented as: , Let r represent the batch rate of session i transmitted on link e with rank r; then, based on the first batch data transmission rate, the current rank r of each batch of data at the current node, and the first batch data transmission, determine the sub-effective data packet transmission rate of each batch of data. Next, the effective data packet transmission rates of all batches are summed to obtain the effective data packet transmission rate of the current node, denoted as: .

[0064] In some embodiments, obtaining the current node's packet transmission rate and effective packet transmission rate includes: (3.1) Obtain the initial data packet transmission rate and the initial effective data packet transmission rate of the current node, and obtain the second batch data transmission rate of the next node from the next node; (3.2) Update the initial effective data packet transmission rate based on the initial data packet transmission rate and the second batch data transmission rate to obtain the effective data packet transmission rate of the current node. (3.3) Update the initial data packet transmission rate based on the initial effective data packet transmission rate and the second batch data transmission rate to obtain the data packet transmission rate of the current node.

[0065] In some embodiments, the data network involved in data transmission is typically a distributed network, consisting of multiple geographically or logically dispersed nodes interconnected through communication links to collaboratively generate, forward, and receive data. When using distributed networks for data transmission, related technologies require collecting current network state information and user information whenever the network state changes. This allows for centralized calculation of the user's transmission rate on the link and the amount of recoding at intermediate nodes, which is then distributed to each network node and user. In large-scale networks, this necessitates data transmission only after a centralized network update, which is very slow. Consequently, in dynamically changing networks, related technologies suffer from low data transmission efficiency because they cannot quickly update the initial data packet transmission rate and initial effective data packet transmission rate of the current node.

[0066] To address this issue, in this embodiment, the current node only needs to obtain the batch data transmission rate of the next node. In other words, each node only needs to know the information provided by its neighboring nodes, without needing to update the global network information. Therefore, it can achieve rapid updates of the initial data packet transmission rate and the initial effective data packet transmission rate. Thus, this embodiment constructs a corresponding Network Utility Maximization (NUM) problem and derives a distributed update method. Assume that the source node and destination node of session i are denoted as si and di, respectively. For the intermediate node u used by session i, we have: Wherein, the effective information rate received by the destination node of session i is The following NUM optimization problem is obtained:

[0067] in, It is a very small constant. , There are a total of S sessions.

[0068] Based on the above construction of the NUM problem, the following parameter update methods are determined for distributed networks: In some embodiments, the current node first obtains its initial data packet transmission rate and initial effective data packet transmission rate, and then obtains the second batch data transmission rate of the next node from the next node. The initial data packet transmission rate refers to the number of encoded data packets actually sent by the current node to the next node per unit time before re-encoding; the initial effective data packet transmission rate refers to the equivalent rate of data packets transmitted by the current node per unit time that can bring new linearly independent information for information recovery before re-encoding. In the initialization state, the initial data packet transmission rate and initial effective data packet transmission rate can be preset, and an update interval can be set. After the update interval, the initial data packet transmission rate and initial effective data packet transmission rate are updated to obtain the current node's effective data packet transmission rate and current node's data packet transmission rate. In the next update, the current node's effective data packet transmission rate and current node's data packet transmission rate will be used as the new initial data packet transmission rate and new effective data packet transmission rate, respectively.

[0069] The definition of the second batch data transmission rate is similar to that of the first batch data transmission rate. It should be noted that since the second batch data transmission rate represents the batch rate of rank r received by session i on link e, the second batch data transmission rate can only be obtained from the next node.

[0070] Furthermore, the updated first batch data transmission rate of the current node is obtained using the following formula: .in, This indicates the data transmission rate for the second batch; Other parameters are defined as follows:

[0071] in, This indicates the congestion level of link e at time t; This indicates the congestion level of link e after the update at time t+1, reflecting whether the link is currently overloaded; This represents the capacity of link e, which measures the number of data packets that can be transmitted per unit of time. Indicates the initial data packet transmission rate at time t; Indicates the learning step size.

[0072] in, This indicates the queue backlog level for batches of data of rank k along the path from node u to node v, and it is used to drive adjustments to the encoding strategy. This indicates the queue backlog level for the updated batch of data with rank k; This represents the batch data transmission rate of rank r batch data sent by node u to downstream nodes. This represents the batch data transmission rate of the batch data of rank r received by node u from the upstream.

[0073] in, This represents the difference between the valid information at time t and the actual transmission. This represents the difference between the valid information updated at time t+1 and the actual transmission. This represents the initial effective data packet transmission rate at time t.

[0074] It should be noted that, , , All of these are updates to three Lagrange multipliers, corresponding to updates to the OQ, SQ, and REC parts, respectively.

[0075] Furthermore, the initial effective data packet transmission rate is updated according to the following formula to obtain the effective data packet transmission rate of the current node; .in, Indicates the effective data packet transmission rate of the current node. The updated first batch data transmission rate; r represents the current rank of each batch of data at the current node.

[0076] Furthermore, the initial data packet transmission rate is updated to obtain the current node's data packet transmission rate: The explanations of the same parameters will not be repeated.

[0077] It is understood that the embodiments of this application achieve dual dynamic updates of both the data packet transmission rate and the effective data packet transmission rate by exchanging transmission rate information between the current node and the next node. Specifically, by utilizing the second batch of data transmission rates fed back by the next node, not only can the initial effective data packet transmission rate of the current node be calibrated (reflecting the actual information transmission efficiency), but the estimation accuracy of the initial data packet transmission rate can also be optimized in reverse. This closed-loop feedback mechanism can more accurately perceive changes in link status, the impact of packet loss, and downstream receiving capabilities, thereby improving the rationality of recoding decisions, reducing invalid load while ensuring transmission reliability, and enhancing network resource utilization and end-to-end transmission efficiency. It is particularly suitable for dynamic and unreliable distributed network environments.

[0078] In step 240, valid encoded data packets and a second initial number of valid encoded data packets are determined from the encoded data packets contained in each batch of data. The difference between the target number and the second initial number is determined, and at least a portion of the valid encoded data packets are re-encoded to obtain a re-encoded data packet with a corresponding number of differences.

[0079] Since network coding uses a linear combination method to generate coded packets, the receiving end can only reconstruct the original data by solving a system of linear equations when the coefficient vectors of multiple coded packets are linearly independent. Therefore, a valid coded data packet refers to a data packet belonging to a specific batch of coded packets received by the current node whose coding coefficient vector is linearly independent of other received coded packets from the same batch; that is, a coded packet that can provide additional independent equations for recovering the original information. The number of valid coded data packets is the second initial number.

[0080] It should be noted that when the current node receives batch data, it receives the encoding coefficient vector corresponding to each encoded data packet in the batch to determine which encoded data packets are valid. For example, suppose a batch of data includes three original encoded data packets s1, s2, and s3. The current node receives a batch of data containing four encoded data packets encoded from these three original encoded data packets. The encoding coefficient vectors corresponding to each encoded data packet are [1,0,1], [0,1,1], [1,1,2], and [1,0,1]. Analysis reveals that the coefficient of the third encoded data packet is the sum of the first two, and the fourth packet is exactly the same as the first. Therefore, only the first two encoded packets are linearly independent, and the second initial quantity corresponding to the valid encoded data packets is 2. The remaining two are linearly dependent packets, which do not add new information and are not valid encoded data packets.

[0081] It is understood that the embodiments of this application can identify valid encoded data packets and count their second initial quantity, thereby accurately assessing the amount of valid information currently available and using it as the basis for subsequent re-encoding decisions, avoiding invalid processing of redundant or related packets, thereby improving resource utilization efficiency and transmission reliability.

[0082] In some embodiments, at least a portion of the valid encoded data packets are re-encoded to obtain re-encoded data packets with a difference corresponding to the number of packets, including: (4.1) When the difference is an integer, at least a portion of the valid encoded data packets are re-encoded to obtain a number of re-encoded data packets corresponding to the difference; (4.2) When the difference is not an integer, determine the first integer and the first decimal based on the difference, determine the first probability based on the first decimal, and determine the second probability corresponding to the first integer based on the first probability; (4.3) Determine the second integer based on the first integer; (4.4) Re-encode at least a portion of the valid encoded data packets and obtain a second integer number of re-encoded data packets with a first probability and a first integer number of re-encoded data packets with a second probability.

[0083] In some embodiments, for the sake of simplicity, the subscript e and superscript i are omitted, and z is used to represent the ratio between the packet transmission rate and the effective packet transmission rate. A batch-based packet loss model is adopted: for the link When node u sends a batch of data containing n encoded data packets, node v responds with probability. K encoded data packets were received. The packet-independent loss model is a special case of this batch-based loss model. We have: .in, This represents the independent packet loss rate of the link.

[0084] Furthermore, zr represents the target quantity corresponding to each batch of data. For the current node, it needs to send out the second initial number of valid encoded data packets received, and also send a corresponding number of re-encoded data packets based on the difference from the target quantity.

[0085] Furthermore, if the difference is an integer, it means that the calculated number of encoded data packets that the current node needs to send to the next node is exactly an integer. In this case, at least a portion of the valid encoded data packets are directly re-encoded to obtain re-encoded data packets corresponding to the difference. "At least a portion" can mean either a portion of the valid encoded data packets or all of the valid encoded data packets, which can be selected based on the actual situation. The re-encoded data packets represent the redundant encoded data packets that need to be sent to the next node. In addition to the re-encoded data packets, the current node also needs to send out the original valid encoded data packets. Usually, the valid encoded data packets can be forwarded directly without further processing to avoid unnecessary waste of data processing resources. Alternatively, a second initial number of valid encoded data packets can be re-encoded to obtain a second initial number of updated valid encoded data packets.

[0086] Furthermore, if the difference is not an integer, in reality, the current node cannot send a number of recoded data packets that is not an integer. For example, if the target number is calculated to be 2.4, the current node cannot send 1.4 recoded data packets except for 1 valid encoded data packet. Therefore, the current node will determine a first probability of sending a first integer number of recoded data packets and a second probability of sending a second integer number of recoded data packets, where the second integer is the number corresponding to the first integer plus 1.

[0087] For example, the difference in the required recoded data packets is calculated to be 2.7, meaning that ideally 2.7 recoded data packets should be generated. However, since the number of data packets must be an integer, a fractional number of packets cannot be generated directly. In this case, the difference is decomposed into: the first integer = 2, the first fractional = 0.7. Based on the fractional part, the first probability is determined to be 70%, and the second probability corresponding to the first integer is determined to be 1-70%=30%. Then, the second integer is determined to be 2+1=3. Next, at least some of the valid encoded data packets are recoded, and 3 recoded data packets are obtained with a 70% probability, and 2 recoded data packets are obtained with a 30% probability.

[0088] In some embodiments, when the difference is an integer, at least a portion of the valid encoded data packets are re-encoded to obtain re-encoded data packets corresponding to the number of differences, including: (4.1.1) When the initial rank is a preset rank, at least a portion of the valid encoded data packets are copied to obtain a number of re-encoded data packets with the corresponding difference; (4.1.2) When the initial rank is greater than the preset rank, at least a portion of the valid encoded data packets are randomly linearly combined to obtain a number of re-encoded data packets with the corresponding difference.

[0089] In some embodiments, the re-encoding process for at least a portion of the valid encoded data packets can be further subdivided into two cases: an initial rank that is a preset rank and an initial rank that is greater than a preset rank. When the initial rank is the preset rank, it means that there is only one valid encoded data packet in the current batch of data. In this case, the valid encoded data packet is directly copied. For example, when the difference is 3, the valid encoded data packet is copied 3 times to obtain a re-encoded data packet with a corresponding number of differences. When the initial rank is greater than the preset rank, at least a portion of the valid encoded data packets are randomly linearly combined to obtain a re-encoded data packet with a corresponding number of differences. Random linear combination is an operation that constructs a new vector by weighted superposition to generate a new encoded packet with the statistical characteristics of the original encoded data packet.

[0090] To facilitate understanding, another specific embodiment is shown below: Consider two cases: batch size M=1 and M>1 and bounded. (1) When M=1: If z is an integer, for each incoming batch with rank 1 (at this time the batch contains only one valid encoded data packet), the re-encoding component REC outputs z copies of the encoded data packet. If z is not an integer, let Let z represent the integer part and the fractional part of z, respectively. For the input batch of 1-b, REC outputs a encoded data packets for each batch; for the remaining input batch of b, REC outputs a+1 encoded data packets for each batch. In summary: .

[0091] When the link is an independent packet loss model, the following approximation can be made: .

[0092] (2) When M > 1 and bounded: This case considers random linear recoding. For a batch with rank r, ENC outputs encoded data packets for the portion of the batch, and encoded data packets for the remaining portion of the batch. When the finite field is large enough, we have: For a batch with rank r', if the number of received data packets is greater than or equal to r', then the rank of the received batch is r'; if the number of received data packets is less than r', say r, then the rank of the received batch is r. Therefore, the probability that the rank of a received batch with rank r' remains r' can be approximated as: .

[0093] Where , . The probability that the rank of a received batch with rank r' becomes r (r < r') is [[ID=2८]] .

[0094] Furthermore, based on , the data transmission rate of the first batch corresponding to the current node can be calculated through the following formula for sending when needed by the previous node: . Where Q(r|r') represents the proportion of batches with rank r' transmitted on link e that become r when received; in addition, represents the proportion of batches with rank r' on link e that remain r' when received.

[0095] In step 250, updated batch data corresponding to each batch of data is generated based on the recoded data packets corresponding to each batch of data and all valid encoded data packets.

[0096] In some embodiments, after generating the recoded data packets corresponding to each batch of data, the recoded data packets corresponding to each batch of data and all valid encoded data packets are used as the updated batch data after the recoding of that batch of data.

[0097] In step 260, the updated batch data corresponding to each batch of data is sent to the next node. [[ID=८7]]

[0098] In some embodiments, after determining the updated batch data corresponding to each batch of data, the updated batch data corresponding to each batch of data is sent to the next node. It is understood that this embodiment dynamically senses the initial rank, received quantity, data packet transmission rate, and effective data packet rate of the currently received batch data at intermediate nodes, comprehensively evaluates the integrity of the currently received information and the current network state, and adaptively determines the target number of data packets obtained after re-encoding accordingly. This avoids invalid operations on redundant or related packets, significantly improving encoding efficiency and resource utilization. Thus, the generated updated batch data retains existing valid information while supplementing an appropriate amount of new redundancy, increasing the likelihood of successful decoding by downstream nodes. Furthermore, this embodiment achieves intelligent relay forwarding without requiring global decoding capabilities, effectively responding to dynamic network changes, reducing transmission latency and bandwidth waste, and improving the reliability and overall performance of data transmission in multi-hop networks.

[0099] In some embodiments, after sending the updated batch data corresponding to each batch of data to the next node, the method further includes: (5.1) When the source node receives a stop signal from the destination node, it determines that the data transmission is complete; (5.2) Otherwise, update the next node to the current node and return to the step of obtaining at least one batch of data sent from the previous node and the initial rank of each batch of data at the current node until the source node receives a stop signal sent from the destination node, and the data transmission is determined to be complete.

[0100] In some embodiments, steps (5.1) to (5.2) define the termination conditions for the entire data transmission process. Specifically, when the source node receives a stop signal from the destination node, it determines that the data transmission is complete. The destination node represents the original transmitted data corresponding to at least one batch of data. The necessary and sufficient condition for the destination node to successfully decode is that the sum of the ranks of all the batches of data it receives is greater than or equal to the number of original encoded data packets. At this time, the destination node sends a stop signal to the source node, and the source node stops sending encoded data packets for the current session and starts sending data for other sessions or completes the transmission of all sessions.

[0101] Furthermore, if the source node does not receive a stop signal from the destination node, the device will perform a state update, update the next node to the current node, and repeat steps 210 to 260. This iterative process will continue until the source node receives a stop signal from the destination node, at which point it will determine that the current session data transmission is complete.

[0102] Understandably, step (5.1) provides a clear termination condition for the current session data transmission, while step (5.2) defines the standard relay operation when the process is not completed. Through iterative updates of the state and cyclic calls of the processing logic, the data is driven to be transmitted forward in an orderly and step-by-step manner between processing nodes, ensuring that the data transmission will neither terminate unexpectedly in the middle nor fall into an infinite loop. This provides a stable, reliable and predictable control framework for data flow across processing links of arbitrary length, ensuring the integrity and correctness of all session data transmission tasks.

[0103] like Figure 6 As shown, Figure 6 This is a schematic diagram of the module structure of the data transmission device provided in this application embodiment. The data transmission device 300 may include the following modules 310 to 360: The acquisition module 310 is used to acquire at least one batch of data sent from the previous node and the initial rank of each batch of data at the current node; The current rank determination module 320 is used to determine the first initial number of encoded data packets contained in each batch of data, and to determine the current rank of each batch of data in the current node based on the initial rank and the first initial number; The target quantity determination module 330 is used to obtain the data packet transmission rate and effective data packet transmission rate of the current node, and determine the target quantity corresponding to each batch of data based on the ratio between the current rank, the data packet transmission rate and the effective data packet transmission rate. The re-encoding module 340 is used to determine the valid encoded data packets and the second initial number of valid encoded data packets from the encoded data packets contained in each batch of data, determine the difference between the target number and the second initial number, and re-encode at least a portion of the valid encoded data packets to obtain a re-encoded data packet with a number corresponding to the difference. The update batch data determination module 350 is used to generate updated batch data corresponding to each batch of data based on the re-encoded data packet corresponding to each batch of data and all valid encoded data packets. The transmission module 360 ​​is used to send the updated batch data corresponding to each batch of data to the next node.

[0104] In some embodiments, the transmission module 360 ​​is used for: When the source node receives a stop signal from the destination node, it determines that the data transmission is complete. Otherwise, update the next node to the current node and return to the step of obtaining at least one batch of data sent from the previous node and the initial rank of each batch of data at the current node until the source node receives a stop signal sent from the destination node, at which point the data transmission is considered complete.

[0105] In some embodiments, the current rank determination module 320 is used to: When the initial rank is the preset rank, the current rank of each batch of data in the current node is determined to be the preset rank; When the initial rank is greater than the preset rank and the first initial quantity is less than the preset rank, the current rank of each batch of data in the current node is determined as the first initial quantity; When the initial rank is greater than the preset rank and the first initial quantity is greater than the preset rank, the current rank of each batch of data in the current node is determined as the initial rank.

[0106] In some embodiments, the target quantity determination module 330 is used for: Get the first batch data transmission rate of the current node; Based on the first batch data transmission rate and the current rank of each batch of data at the current node, determine the sub-effective data packet transmission rate of each batch of data; The effective data packet transmission rate of the current node is obtained by superimposing the sub-effective data packet transmission rates of all batches of data.

[0107] In some embodiments, the target quantity determination module 330 is further configured to: Get the initial data packet transmission rate and initial effective data packet transmission rate of the current node, and get the second batch data transmission rate of the next node from the next node; The initial effective data packet transmission rate is updated based on the initial data packet transmission rate and the second batch data transmission rate to obtain the effective data packet transmission rate of the current node. The initial data packet transmission rate is updated based on the initial effective data packet transmission rate and the second batch data transmission rate to obtain the current node's data packet transmission rate.

[0108] In some embodiments, the re-encoding module 340 is used for: When the difference is an integer, at least a portion of the valid encoded data packets are re-encoded to obtain a number of re-encoded data packets corresponding to the difference. When the difference is not an integer, determine the first integer and the first decimal based on the difference, determine the first probability based on the first decimal, and determine the second probability corresponding to the first integer based on the first probability; The second integer is determined based on the first integer; At least a portion of the valid encoded data packets are re-encoded, and a second integer number of re-encoded data packets are obtained with a first probability, and a first integer number of re-encoded data packets are obtained with a second probability.

[0109] In some embodiments, the re-encoding module 340 is further configured to: When the initial rank is a preset rank, at least a portion of the valid encoded data packets are copied to obtain a number of re-encoded data packets with the corresponding difference. When the initial rank is greater than the preset rank, at least a portion of the valid encoded data packets are randomly linearly combined to obtain a number of re-encoded data packets with a difference in value.

[0110] The data transmission method, apparatus, electronic device, and storage medium proposed in this application involve: acquiring at least one batch of data sent from the previous node and the initial rank of each batch of data at the current node; determining a first initial number of coded data packets contained in each batch of data, and determining the current rank of each batch of data at the current node based on the initial rank and the first initial number; acquiring the data packet transmission rate and the effective data packet transmission rate of the current node, and determining the target number corresponding to each batch of data based on the ratio between the current rank, the data packet transmission rate, and the effective data packet transmission rate; determining the effective coded data packets and a second initial number of effective coded data packets from the coded data packets contained in each batch of data, determining the difference between the target number and the second initial number, and re-encoding at least a portion of the effective coded data packets to obtain re-coded data packets of a number corresponding to the difference; generating updated batch data corresponding to each batch of data based on the re-coded data packets corresponding to each batch of data and all effective coded data packets; and sending the updated batch data corresponding to each batch of data to the next node.

[0111] This application's embodiments distinguish between the data packet transmission rate and the effective data packet transmission rate corresponding to each node, and combine this with the current rank of the received batch data to calculate the target number of data packets to be sent in real time. Then, based on the difference between the target number and the current number of effective data packets, a corresponding number of recoded data packets are generated as needed. This avoids the problems in related technologies where using a fixed number of recoded packets leads to excessive redundant data in poor network conditions or insufficient recoded data packets in good network conditions, resulting in ineffective network utilization. Therefore, this application can significantly reduce data redundancy, ensure that network bandwidth is efficiently used to transmit effective information, thereby shortening the decoding waiting time of the target node, and ultimately effectively improving the overall data transmission efficiency and reliability in a dynamically changing network environment.

[0112] like Figure 7 As shown, Figure 7 This is a schematic diagram of the hardware structure of an electronic device provided in an embodiment of this application. The electronic device includes: The processor 401 can be implemented using a general-purpose central processing unit (CPU), 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. The memory 402 can be implemented as a read-only memory (ROM), static storage device, dynamic storage device, or random access memory (RAM). The memory 402 can store the operating system and other applications. 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 402 and called by the processor 401 to execute the image analysis method of the embodiments of this application. Input / output interface 403 is used to implement information input and output; The communication interface 404 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.). Bus 405 transmits information between various components of the device (e.g., processor 401, memory 402, input / output interface 403, and communication interface 404); The processor 401, memory 402, input / output interface 403 and communication interface 404 are connected to each other within the device via bus 405.

[0113] This application also provides a computer-readable storage medium storing a computer program that, when executed by a processor, implements the above-described image analysis method.

[0114] 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.

[0115] The data transmission method, apparatus, electronic device, and storage medium proposed in this application involve: acquiring at least one batch of data sent from the previous node and the initial rank of each batch of data at the current node; determining a first initial number of coded data packets contained in each batch of data, and determining the current rank of each batch of data at the current node based on the initial rank and the first initial number; acquiring the data packet transmission rate and the effective data packet transmission rate of the current node, and determining the target number corresponding to each batch of data based on the ratio between the current rank, the data packet transmission rate, and the effective data packet transmission rate; determining the effective coded data packets and a second initial number of effective coded data packets from the coded data packets contained in each batch of data, determining the difference between the target number and the second initial number, and re-encoding at least a portion of the effective coded data packets to obtain re-coded data packets of a number corresponding to the difference; generating updated batch data corresponding to each batch of data based on the re-coded data packets corresponding to each batch of data and all effective coded data packets; and sending the updated batch data corresponding to each batch of data to the next node.

[0116] This application's embodiments distinguish between the data packet transmission rate and the effective data packet transmission rate corresponding to each node, and combine this with the current rank of the received batch data to calculate the target number of data packets to be sent in real time. Then, based on the difference between the target number and the current number of effective data packets, a corresponding number of recoded data packets are generated as needed. This avoids the problems in related technologies where using a fixed number of recoded packets leads to excessive redundant data in poor network conditions or insufficient recoded data packets in good network conditions, resulting in ineffective network utilization. Therefore, this application can significantly reduce data redundancy, ensure that network bandwidth is efficiently used to transmit effective information, thereby shortening the decoding waiting time of the target node, and ultimately effectively improving the overall data transmission efficiency and reliability in a dynamically changing network environment.

[0117] 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.

[0118] 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.

[0119] 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.

[0120] 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.

[0121] 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.

[0122] 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.

[0123] 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. Furthermore, the coupling or direct coupling or communication connection shown or discussed may be through some interfaces; the indirect coupling or communication connection between apparatuses or units may be electrical, mechanical, or other forms.

[0124] 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.

[0125] 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.

[0126] 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.

[0127] 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 transmission method, characterized in that, include: At the current node, obtain at least one batch of data sent from the previous node, and the initial rank of each batch of data; Determine a first initial number of encoded data packets contained in each batch of data, and determine the current rank of each batch of data at the current node based on the initial rank and the first initial number; Obtain the data packet transmission rate and effective data packet transmission rate of the current node, and determine the target quantity corresponding to each batch of data based on the current rank, the ratio between the data packet transmission rate and the effective data packet transmission rate; From the coded data packets contained in each batch of data, determine the valid coded data packets and the second initial number of the valid coded data packets, determine the difference between the target number and the second initial number, and re-encode at least a portion of the valid coded data packets to obtain the re-coded data packets corresponding to the difference; Based on the re-encoded data packet corresponding to each batch of data and all the valid encoded data packets, generate updated batch data corresponding to each batch of data; Send the updated batch data corresponding to each batch of data to the next node.

2. The data transmission method according to claim 1, characterized in that, After sending the updated batch data corresponding to each batch of data to the next node, the method further includes: When the source node receives a stop signal from the destination node, it determines that the data transmission is complete. Otherwise, the next node is updated to the current node, and the process returns to the step of obtaining at least one batch of data sent from the previous node and the initial rank of each batch of data at the current node, until the source node receives the stop signal sent from the destination node, at which point the data transmission is determined to be complete.

3. The data transmission method according to claim 1, characterized in that, Determining the current rank of each batch of data at the current node based on the initial rank and the first initial quantity includes: When the initial rank is a preset rank, the current rank of each batch of data at the current node is determined to be the preset rank; When the initial rank is greater than the preset rank and the first initial quantity is less than the preset rank, the current rank of each batch of data at the current node is determined to be the first initial quantity; When the initial rank is greater than the preset rank and the first initial quantity is greater than the preset rank, the current rank of each batch of data at the current node is determined to be the initial rank.

4. The data transmission method according to claim 1, characterized in that, The step of obtaining the effective data packet transmission rate of the current node includes: Obtain the first batch data transmission rate of the current node; Based on the first batch data transmission rate and the current rank of each batch of data at the current node, determine the sub-effective data packet transmission rate of each batch of data; The effective data packet transmission rate of the current node is obtained by superimposing the sub-effective data packet transmission rates of all the batches of data.

5. The data transmission method according to claim 1, characterized in that, The process of obtaining the current node's data packet transmission rate and effective data packet transmission rate includes: Obtain the initial data packet transmission rate and the initial effective data packet transmission rate of the current node, and obtain the second batch data transmission rate of the next node from the next node; The initial effective data packet transmission rate is updated based on the initial data packet transmission rate and the second batch data transmission rate to obtain the effective data packet transmission rate of the current node; The initial data packet transmission rate is updated based on the initial effective data packet transmission rate and the second batch data transmission rate to obtain the data packet transmission rate of the current node.

6. The data transmission method according to claim 1, characterized in that, The step of re-encoding at least a portion of the valid encoded data packets to obtain a number of re-encoded data packets corresponding to the difference includes: When the difference is an integer, at least a portion of the valid encoded data packets are re-encoded to obtain a number of re-encoded data packets corresponding to the difference. When the difference is not an integer, a first integer and a first decimal are determined based on the difference, a first probability is determined based on the first decimal, and a second probability corresponding to the first integer is determined based on the first probability. The second integer is determined based on the first integer; At least a portion of the valid encoded data packets are re-encoded, and a second integer corresponding number of re-encoded data packets are obtained with the first probability, and a first integer corresponding number of re-encoded data packets are obtained with the second probability.

7. The data transmission method according to claim 6, characterized in that, When the difference is an integer, re-encoding at least a portion of the valid encoded data packets to obtain a number of re-encoded data packets corresponding to the difference includes: When the initial rank is a preset rank, at least a portion of the valid encoded data packets are copied to obtain a number of re-encoded data packets corresponding to the difference. When the initial rank is greater than the preset rank, at least a portion of the valid encoded data packets are randomly linearly combined to obtain a number of re-encoded data packets corresponding to the difference.

8. A data transmission device, characterized in that, include: The acquisition module is used to acquire at least one batch of data sent from the previous node and the initial rank of each batch of data at the current node; The current rank determination module is used to determine a first initial number of encoded data packets contained in each batch of data, and to determine the current rank of each batch of data at the current node based on the initial rank and the first initial number; The target quantity determination module is used to obtain the data packet transmission rate and the effective data packet transmission rate of the current node, and determine the target quantity corresponding to each batch of data based on the current rank, the ratio between the data packet transmission rate and the effective data packet transmission rate; The re-encoding module is configured to determine, from the encoded data packets contained in each batch of data, the valid encoded data packets and the second initial number of the valid encoded data packets, determine the difference between the target number and the second initial number, and re-encode at least a portion of the valid encoded data packets to obtain a re-encoded data packet of the corresponding number of the difference; The update batch data determination module is used to generate updated batch data corresponding to each batch data based on the re-encoded data packet corresponding to each batch data and all the valid encoded data packets; The transmission module is used to send the updated batch data corresponding to each batch of data to the next node.

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 transmission 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 a processor, it implements the data transmission method according to any one of claims 1 to 7.