Method for determining ACK information feedback strategy, electronic device, storage medium and computer program product
By predicting data packet reception time and dynamically adjusting the ACK information feedback strategy, the network and CPU burden problems caused by the ACK information feedback mechanism in data express service are solved, and efficient and reliable data transmission is achieved.
Patent Information
- Authority / Receiving Office
- CN · China
- Patent Type
- Patents(China)
- Current Assignee / Owner
- Filing Date
- 2024-08-07
- Publication Date
- 2026-03-24
AI Technical Summary
In data express delivery services, the existing ACK information feedback mechanism leads to the transmission of a large number of small data packets, increasing the network and CPU load, and cannot dynamically adjust the ACK information feedback strategy according to network changes, affecting transmission efficiency and reliability.
By predicting the data packet reception time, the system determines whether the reception was successful and dynamically adjusts the ACK information feedback strategy. This includes delaying the feedback of multiple data packets before sending the ACK information or sending the ACK information for each data packet, in order to adapt to network conditions, reduce the number of ACK information messages, or ensure reliable data packet transmission.
It improves network resource utilization efficiency and data transmission reliability, reduces the number of ACK messages, and enhances the transmission efficiency and reliability of data express services.
Smart Images

Figure CN119182501B_ABST
Abstract
Description
TECHNICAL FIELD
[0001] The present application relates to the technical field of communication, and particularly relates to an ACK (ACKnowledge) information feedback strategy determination method, an electronic device, a storage medium and a computer program product. BACKGROUND
[0002] In the related art, in the process of data transmission, after receiving a data packet sent by a sending device, a receiving device can feed back ACK information to the sending device to inform the sending device that the data packet has been successfully received.
[0003] With the development of technology, the demand for data transmission is higher and higher, and a data express service is proposed in the related art to realize fast, reliable and safe transmission of a large amount of data.
[0004] However, in the scenario of the data express service, data needs to be continuously and quickly transmitted, at this time, how to determine an ACK information feedback strategy for guaranteeing efficient transmission has not yet had an effective solution. SUMMARY
[0005] To solve the problems in the related art, the embodiments of the present application provide an ACK information feedback strategy determination method, an electronic device, a storage medium and a computer program product.
[0006] The technical scheme of the embodiments of the present application is implemented as follows:
[0007] The embodiments of the present application provide an ACK information feedback strategy determination method, comprising:
[0008] predicting a receiving time of a data packet;
[0009] judging whether the data packet participating in the prediction is received at the predicted receiving time to obtain a judgment result;
[0010] determining a feedback strategy of ACK information corresponding to the data packet received after the predicted receiving time by using the judgment result.
[0011] In the above scheme, the receiving time of N continuous data packets is predicted; in the case that the judgment result represents that the N continuous data packets are all received at the predicted receiving time, the feedback strategy comprises a first strategy, N is an integer greater than 1, and in the first strategy, one ACK information is fed back every K data packets, K is an integer greater than or equal to 2.
[0012] In the above scheme, the reception time of N consecutive data packets is predicted; if the judgment result indicates that the N consecutive data packets are all received within the predicted reception time, the feedback strategy is updated from the first strategy to the second strategy, where N is an integer greater than 1. In the first strategy, an ACK message is fed back for every K data packets received, where K is an integer greater than or equal to 2. In the second strategy, an ACK message is fed back for every J data packets received, where J is an integer greater than K.
[0013] In the above scheme, if the judgment result indicates that a data packet involved in the prediction was not received at the predicted reception time, the feedback strategy includes a third strategy, in which an ACK message is fed back for each received data packet.
[0014] In the above scheme, the feedback strategy is updated from the first strategy to the third strategy. In the first strategy, an ACK message is fed back for every K data packets received, where K is an integer greater than or equal to 2.
[0015] In the above scheme, if the judgment result indicates that a data packet involved in the prediction was not received at the predicted reception time, the method further includes:
[0016] The first ACK message was sent; among them,
[0017] If no new data packet is received after the second ACK message was previously sent, the first ACK message is the same as the second ACK message previously sent.
[0018] or,
[0019] If a new data packet is received after the previous second ACK message, the first ACK message is associated with the new data packet.
[0020] In the above scheme, if the first ACK information is the same as the second ACK information fed back previously, the header of the first ACK information contains first information, which is used to indicate that the first ACK information is not associated with the data packet.
[0021] In the above scheme, the feedback of the first ACK information includes:
[0022] When the predicted reception time arrives, the first ACK information is fed back;
[0023] or,
[0024] Upon receiving a new data packet, the first ACK message is sent back.
[0025] In the above scheme, the predicted data packet reception time includes:
[0026] The predicted data packet reception time is determined based on one or more of the following: the time of the last received data packet, the size of the last received data packet, and the previously predicted reception time.
[0027] In the above scheme, the predicted data packet reception time includes:
[0028] Based on the average data transmission rate and the average size of the data packets received during the first time period, the data packet reception time is predicted.
[0029] This application also provides an electronic device, including: a processor and a memory for storing a computer program capable of running on the processor.
[0030] When the processor runs the computer program, it executes any of the steps of the above methods.
[0031] This application also provides a storage medium storing a computer program thereon, which, when executed by a processor, implements the steps of any of the above methods.
[0032] This application also provides a computer program product, including a computer program that, when executed by a processor, implements the steps of any of the above methods.
[0033] The ACK information feedback strategy determination method, electronic device, storage medium, and computer program product provided in this application's embodiments predict the data packet reception time; determine whether the data packet involved in the prediction is received within the predicted reception time, and obtain a judgment result; and use the judgment result to determine the feedback strategy for the ACK information corresponding to the data packet received after the predicted reception time. The solution provided in this application's embodiments evaluates the data transmission status in the network by predicting the data packet reception time and determining whether the predicted reception time is successful (i.e., whether the data packet is received within the predicted reception time). Based on the evaluation result, the feedback strategy for the ACK information corresponding to subsequent data packets is dynamically adjusted. For example, if the prediction is successful, indicating stable network transmission, an ACK message can be fed back after receiving multiple data packets, thereby reducing the number of ACK messages and ensuring transmission efficiency (i.e., improving network transmission resource utilization efficiency). Alternatively, if the prediction fails, indicating potential problems with network transmission (such as data packet loss or data packet transmission delay), an ACK message can be fed back for each data packet, thereby promptly identifying unreceived data packets and retransmitting them, thus ensuring transmission reliability and efficiency. This approach is applicable to scenarios requiring continuous and rapid data transmission, such as data express services. Attached Figure Description
[0034] Figure 1 This is a schematic diagram of the network architecture for a data delivery service in related technologies.
[0035] Figure 2 This is a schematic diagram of the network architecture for another data delivery service in related technologies.
[0036] Figure 3 This is a schematic diagram illustrating the feedback process of ACK information in data transmission based on the Transmission Control Protocol (TCP).
[0037] Figure 4 This is a flowchart illustrating the ACK information feedback strategy determination method according to an embodiment of this application;
[0038] Figure 5 This is a schematic diagram of the TCP header structure in an embodiment of this application;
[0039] Figure 6 This is a flowchart illustrating a delayed ACK information feedback method based on the predicted reception time of the receiving device, which serves as an application example of this application.
[0040] Figure 7 This is a flowchart illustrating a delayed ACK information feedback process as an application example of this application;
[0041] Figure 8 This is a schematic diagram illustrating another delayed ACK information feedback process as an application example of this application;
[0042] Figure 9 This is a schematic diagram of the ACK information feedback strategy determination device according to an embodiment of this application;
[0043] Figure 10 This is a schematic diagram of the electronic device structure according to an embodiment of this application. Detailed Implementation
[0044] The present application will now be described in further detail with reference to the accompanying drawings and embodiments.
[0045] With the development of new internet scenarios and technologies such as high-definition video, cloud computing, big data, artificial intelligence, and large-scale models, users may have a need to continuously transmit large amounts of data. However, the environment of a wide area network (WAN) is full of uncertainties, such as micro-burst congestion and transmission problems caused by operator traffic shaping strategies, which may lead to a packet loss rate of up to one in a thousand in long-distance data transmission.
[0046] Based on this, a solution for efficiently transmitting large amounts of data, namely data express service, has been proposed in related technologies. This service supports data transmission from terabyte (TB) to petabyte (PB) levels. Data express service enables fast, reliable, and secure transmission of large amounts of data.
[0047] In practical applications, to reduce the cost of building the network architecture for data delivery services, the network architecture typically does not rely entirely on dedicated lines or private networks for transmission. Instead, it can be carried on existing networks, such as cloud private networks used for cloud service transmission. For example, such as... Figure 1 As shown, the network architecture of a data delivery service can include data sources, data delivery stations, provider network edges (PEs) responsible for cloud and data center access, cloud private network nodes, computing centers (such as general computing centers, supercomputing centers, intelligent computing centers, etc.), and slice packet networks (SPNs) and / or cloud private network controllers that control the network. The SPNs and / or cloud private network controllers can be mounted on an operating platform or deployed independently. Data delivery stations can also be data ports (DHs), such as... Figure 2 As shown, DH can provide stronger data storage capabilities compared to data express stations. DH connects with users through the access network, and DHs connect with each other through the core network. DHs can access the cloud private network. Thus, when providing data express services, users issue data express tasks through the operation platform. SPN and / or cloud private network controllers receive relevant information based on the data express task and automatically allocate resources. Cloud PE receives data transmitted from the data source, or receives aggregated data transmitted from the data express station and / or DH, and transmits the data according to the planned data transmission path, such as to the corresponding computing center.
[0048] In related technologies, data express delivery services can typically meet the following application requirements: First, the data volume transmitted is large (which can also be understood as a large throughput requirement), and there are transmission time limits, such as requiring data to arrive within hours (i.e., to be transmitted within a few hours), on the same day (i.e., to be transmitted within one day), or the next day (i.e., to be transmitted within the second day after transmission begins); Second, the transmission distance is long, and the transmitted data may need to cross WANs, but the requirements for transmission time limits (which can also be understood as the requirements for real-time transmission) are relatively low, for example, some traffic can be scheduled for transmission during periods of lower network load, such as at night.
[0049] In practical applications, data transmission may encounter errors such as packet loss and out-of-order delivery. To ensure the accuracy and reliability of data transmission, network operators can utilize the feedback mechanism of the corresponding ACK information in the transport layer protocol (also known as the ACK mechanism) to enable the sending end (also known as the sending side, the originating end, etc.) to know the data received by the receiving end (also known as the receiving side, the receiving end, etc.) and continue to transmit data or retransmit lost data.
[0050] However, the ACK feedback mechanism typically requires sending a large number of ACK messages. For example, in TCP-based data transmission scenarios, the ACK feedback mechanism involves the receiving end (also known as the receiving side) sending an ACK message to the sending end (also known as the sending side) for each received data packet (or data packet corresponding to each message, or data packet corresponding to each segment). The ACK message carries a data packet identifier (or data packet number) to inform the sending end that all previously sent data packets corresponding to that identifier have been successfully received. This, in turn, drives the sending window configured by the sending end to slide forward, thereby performing flow control through the sliding window mechanism. However, this ACK mechanism results in half of the data packets in the network being small data packets used to transmit ACK messages. A large number of small data packets increases the forwarding pressure on routers and the processing pressure on the sending end's central processing unit (CPU), leading to significant overhead and a high risk of congestion.
[0051] To optimize the ACK feedback mechanism in TCP transmission, a delayed ACK feedback mechanism, known as Delayed-ACK, has been proposed. Figure 3As shown, the Delayed-ACK mechanism can achieve approximately one ACK message every two data packets, thus reducing the number of ACK messages and consequently reducing overhead. Specifically, in implementing the Delayed-ACK mechanism, the receiving end needs to configure (this can be done through the operating system, such as Linux) a clock (also known as a timer). This clock is started by the kernel and begins timing. When the timeout period is reached, the clock is reset, and it is determined whether there is an ACK message that needs to be sent. If so, the ACK message is sent. The timeout period of this clock (e.g., 40ms to 200ms) can be pre-configured. Simultaneously, the receiving end needs to configure a counter to record the number of bytes in the received data packets. When the total number of bytes received exceeds a certain threshold, it is determined that an ACK message needs to be sent, and the ACK message is sent for the received data packets. Thus, by adjusting the threshold and timeout, the receiver can send an ACK message to the sender after receiving approximately two data packets (i.e., the average number of data packets corresponding to the total byte threshold), or after the clock times out.
[0052] In non-TCP data transmission scenarios, such as those involving Quick UDP Internet Connections (QUIC), the ACK feedback mechanism can include: setting a clock within the QUIC program; resetting the clock after a timeout; and determining if an ACK is needed from the receiver. If so, the ACK is sent. The clock timeout (e.g., 25ms) can be pre-configured. Simultaneously, the receiver needs a counter to record the number of received data packets. When the number exceeds a certain threshold (e.g., two), an ACK is sent, and the receiver sends an ACK for each received data packet. By adjusting the threshold and timeout, the receiver can send an ACK after receiving a certain number of data packets or after the clock times out. In other words, with QUIC, approximately one ACK can be sent for every two data packets. Meanwhile, in QUIC technology, the sending end needs to copy the received ACK information to user space via the CPU and perform context switching and other processing. The CPU has low efficiency and high resource consumption, resulting in poor single-machine performance of the sending end.
[0053] However, in practical applications, even with Delayed-ACK or QUIC technology, a large amount of ACK information still needs to be transmitted in the network during data transmission, and ACK information can only be fed back according to a pre-configured fixed strategy. Furthermore, for data express service applications, the number of data express streams transmitted in the network is relatively small, but the bandwidth requirement is large; the rate of a single data stream (also known as a single stream) can reach gigabyte (GB) levels or higher. A large amount of ACK information will significantly reduce transmission efficiency.
[0054] Therefore, for scenarios such as data express services that require continuous and large-scale data transmission, there is an urgent need to propose an ACK information feedback strategy that can be dynamically adjusted according to changes in network conditions. This would allow the receiving end to appropriately reduce the amount of ACK information transmitted when the network is stable, while ensuring reliable transmission, thereby reducing the pressure on the sending end to process ACK information and improving the efficiency of network resource utilization.
[0055] Based on this, in various embodiments of this application, the receiving end can evaluate the data transmission status in the network by predicting the reception time of data packets and determining whether the predicted reception time is successful (i.e., whether data packets are received within the predicted reception time). Based on the evaluation results, the receiving end can dynamically adjust the feedback strategy for ACK information corresponding to subsequent data packets. For example, if the prediction is successful, it indicates that the network transmission is stable, and an ACK message can be fed back after receiving multiple data packets, thereby reducing the number of ACK messages and ensuring transmission efficiency. Alternatively, if the prediction fails, it indicates that there may be problems with network transmission (such as data packet loss or data packet transmission delay), and an ACK message can be fed back for each data packet, thereby promptly identifying data packets that were not successfully received and retransmitting them, thus ensuring transmission reliability and efficiency. This approach is applicable to scenarios requiring continuous and rapid data transmission, such as data express services.
[0056] This application provides an ACK information feedback strategy determination method, applied to electronic devices, such as... Figure 4 As shown, the method includes:
[0057] Step 401: Predict the data packet reception time;
[0058] Step 402: Determine whether the data packets participating in the prediction were received at the predicted reception time, and obtain the determination result;
[0059] Step 403: Using the judgment result, determine the feedback strategy for the ACK information corresponding to the data packet received after the predicted reception time.
[0060] In practical applications, the electronic device may specifically include a device that receives data packets during data transmission. For example, in a data express delivery scenario, the electronic device may specifically include a data express delivery station, DH (Data Delivery Network), server, or other similar devices. This application embodiment does not limit the name of the electronic device, as long as its function is implemented.
[0061] In practical applications, for services such as data express delivery that require continuous and rapid data packet transmission, the electronic device can anticipate continuously receiving a large number of data packets over a period of time. In this case, the electronic device can predict the data packet reception time, that is, predict the time interval between the last data packet received by the electronic device (which can also be understood as the last data packet received) and the next data packet received by the electronic device (which can also be understood as the next data packet received). It can also determine whether the data packets involved in the prediction are received within the predicted time interval, and then determine the network transmission status based on the judgment result, thereby dynamically adjusting the ACK information feedback strategy of subsequent data packets according to the network transmission status.
[0062] In practical applications, in step 401, the electronic device can statistically analyze (or observe or measure) the average data transmission rate of received data packets and the average size of received data packets within a time period, calculate the average interval time of received data packets within that time period, and predict the data packet reception time based on the calculated interval time.
[0063] Based on this, in one embodiment, the specific implementation of step 401 may include:
[0064] Based on the average data transmission rate and the average size of the data packets received during the first time period, the data packet reception time is predicted.
[0065] The first time period can be set according to actual needs, such as a round trip time (RTT), etc., but this application embodiment does not limit it.
[0066] For example, assuming the average data transmission rate during the first time period is 1 Gbit / second (bps), and the average size of the data packets received during the first time period is 1250 bytes, the average time interval for receiving data packets during the first time period can be calculated as: (1250*8) / (1*10^9)=10*10^-6, or 10 microseconds (μs). Here, ^ represents exponentiation. Therefore, considering time redundancy (e.g., 10 μs), the predicted data packet reception time is 20 μs. In other words, it is predicted that the next data packet will be received within 20 μs after the arrival of the last received data packet.
[0067] Of course, in practical applications, the electronic device can also optimize the previously predicted reception time by using parameters such as the reception time of the actual received data packet and the size of the actual received data packet each time it actually receives a data packet, thereby predicting the time when the next data packet will be received.
[0068] To enable the electronic device to know the actual reception time of the data packets and to determine whether the predicted data packets were received within the predicted reception time, the electronic device is equipped with a system clock and a timer (which can also be understood as a timer). The electronic device can use the system clock to determine the actual reception time of the data packets. Specifically, the electronic device can record the clock time of the system clock as the reception time when each data packet is received. At the same time, the electronic device can use the timer to determine whether the predicted reception time is accurate. Specifically, the electronic device can predict the reception time of the next data packet when each data packet is received and use the timer to keep track of the time. If the electronic device receives the next data packet before the timer reaches the predicted reception time, the predicted reception time is considered accurate, and the timer is reset. If the electronic device does not receive the next data packet when the timer reaches the predicted reception time, the predicted reception time is considered inaccurate, and the timer is reset.
[0069] Based on this, in one embodiment, the specific implementation of step 401 may include:
[0070] The predicted data packet reception time is determined based on one or more of the following: the time of the last received data packet, the size of the last received data packet, and the last predicted reception time (one or more of these can also be understood as at least one).
[0071] For example, assuming the last predicted data packet reception time was 20 μs and the actual reception time of the data packet involved in the prediction was 25 μs, the electronic device can appropriately increase the reception time of the predicted data packet, for example, by 10 μs.
[0072] In practical applications, the electronic device can utilize one or more of the following: the time of the last received data packet, the size of the last received data packet, and the last predicted reception time, combined with an adjustment algorithm, to predict the data packet reception time, i.e., optimize the previously predicted reception time. The adjustment algorithm can be set according to actual needs, such as referring to the RTT-related adjustment algorithm in TCP transmission; this application embodiment does not limit this.
[0073] After predicting the data packet reception time, in step 402, the electronic device can determine whether the prediction was successful. Specifically, the electronic device can determine whether the data packet involved in the prediction was received at the predicted reception time based on the actual situation of the data packet received within the predicted reception time, obtain the judgment result, and then determine the network transmission status based on the judgment result.
[0074] Here, if the judgment result indicates that the data packets involved in the prediction were received at the predicted reception time, that is, if the reception time predicted by the electronic device matches the arrival time of the data packets, the electronic device can consider the network state to be stable. In this case, in step 403, the electronic device can delay the feedback of ACK information corresponding to some data packets. That is, the electronic device can, after receiving a preset number of data packets, then feed back an ACK message for all of the received preset number of data packets. This ACK message is used to inform the sending device that all of the preset number of data packets have been successfully received. This reduces the number of ACK messages fed back in the network, ensuring transmission efficiency and reducing the pressure on the sending device to process ACK messages. The above ACK message feedback strategy can also be called the Delayed-ACK feedback strategy, and the preset number can be understood as the number of delay periods corresponding to the Delayed-ACK feedback strategy. The number of delay periods refers to how many data packets the electronic device receives (which can also be understood as one data packet per period, but the time of each period is not necessarily the same) before uniformly feeding back an ACK message.
[0075] In practical applications, the judgment result corresponding to a single data packet may not accurately reflect the network situation. Therefore, the electronic device can predict the reception time of multiple consecutive data packets. Only when the reception time of multiple consecutive data packets is successfully predicted will the Delayed-ACK feedback strategy be adopted, thereby accurately determining the smoothness of network transmission.
[0076] Based on this, in one embodiment, the electronic device predicts the reception time of N consecutive data packets; if the judgment result indicates that the N consecutive data packets are all received within the predicted reception time, the feedback strategy for the ACK information corresponding to the data packets received after the predicted reception time includes a first strategy, that is, the feedback strategy includes a first strategy, where N is an integer greater than 1, and in the first strategy, for every K data packets received, an ACK information is fed back, where K is an integer greater than or equal to 2.
[0077] In practical applications, the values of N and K can be set according to actual needs, and this application embodiment does not limit this.
[0078] In practical applications, when the electronic device has already adopted the Delayed-ACK feedback strategy to provide ACK information feedback, and the judgment result indicates that the network transmission is stable, the electronic device can adjust the number of delay cycles corresponding to the Delayed-ACK feedback strategy. By increasing the number of delay cycles, the number of ACK information feedbacks in the network can be further reduced.
[0079] Based on this, in one embodiment, the reception time of N consecutive data packets is predicted; if the judgment result indicates that the N consecutive data packets are all received within the predicted reception time, the feedback strategy for the ACK information corresponding to the data packets received after the predicted reception time is updated from the first strategy to the second strategy, that is, the feedback strategy is updated from the first strategy to the second strategy, where N is an integer greater than 1, in the first strategy, one ACK information is fed back for every K data packets received, where K is an integer greater than or equal to 2, and in the second strategy, one ACK information is fed back for every J data packets received, where J is an integer greater than K.
[0080] Meanwhile, if the judgment result indicates that the data packet involved in the prediction was not received at the predicted reception time, that is, if the reception time predicted by the electronic device does not match the arrival time of the data packet, the electronic device can consider that there may be a problem with the network transmission (such as data packet loss or data packet transmission delay). At this time, in step 403, the electronic device can send back ACK information for each data packet, thereby ensuring that the sending end can know the reception status of each data packet, promptly detect data packets that were not successfully received, and retransmit them, thereby ensuring transmission reliability and transmission efficiency.
[0081] Based on this, in one embodiment, when the judgment result indicates that a data packet involved in the prediction was not received at the predicted reception time, the feedback strategy for determining the ACK information corresponding to the data packet received after the predicted reception time includes a third strategy. That is, the feedback strategy includes a third strategy, in which an ACK information is fed back for each received data packet.
[0082] In practical applications, if the electronic device has already adopted the Delayed-ACK feedback strategy to provide ACK information, and the judgment result indicates that there may be a problem with network transmission, the electronic device can exit the Delayed-ACK feedback strategy to ensure that the sending device can receive the ACK information corresponding to each data packet in a timely manner and retransmit the data packets that were not successfully received.
[0083] Based on this, in one embodiment, the feedback strategy for determining the ACK information corresponding to the data packet received after the predicted reception time is updated from the first strategy to the third strategy. That is, the feedback strategy is updated from the first strategy to the third strategy. In the first strategy, an ACK message is fed back for every K data packets received, where K is an integer greater than or equal to 2.
[0084] In practical applications, if the judgment result indicates that a data packet involved in the prediction was not received at the predicted reception time, the data packet involved in the prediction may have been lost during transmission (or, as can be understood, missing), or the data packet involved in the prediction may have been received by the electronic device after the predicted reception time. In this case, the electronic device can send ACK information back to the sending device to ensure that the sending device can promptly know the transmission status of the data packet. The function of sending ACK information can be specifically implemented by the CPU or smart network card in the electronic device; this application embodiment does not limit this.
[0085] Based on this, in one embodiment, if the determination result indicates that a data packet involved in the prediction was not received at the predicted reception time, the method may further include:
[0086] First ACK message received.
[0087] The first ACK message indicates that the electronic device has successfully received all previous data packets except those involved in the prediction.
[0088] Specifically, if a new data packet is received after the electronic device has already provided an ACK message, and a first ACK message is required, the electronic device may have a delayed (or suppressed) ACK message. In other words, the ACK message corresponding to the new data packet is not provided. In this case, the electronic device can send the ACK message corresponding to the new data packet back to the sending device, so that the sending device can confirm that the new data packet and all previous data packets have been successfully received.
[0089] Based on this, in one embodiment, if a new data packet is received after the previous feedback of the second ACK information, the first ACK information is associated with the new data packet.
[0090] For example, suppose the sending device sequentially sends data packets 1, 2, ..., 4 to the electronic device. Data packets 1, 2, and 3 are all received within the predicted reception time, while data packet 4 is not received within the predicted reception time. The electronic device's ACK information feedback strategy is to send one ACK message for every two data packets received. The electronic device can delay sending the ACK message corresponding to data packet 1 after receiving data packet 1, and then send the ACK message corresponding to data packet 2 (i.e., the second ACK message) to the sending device after receiving data packet 2, to inform the sending device that data packet 2 and all data packets preceding it (such as data packet 1) have been successfully received. Simultaneously, the electronic device can delay sending the ACK message corresponding to data packet 3 after receiving data packet 3 (i.e., the new data packet), and predict the reception time of data packet 4. Since data packet 4 is not received within the predicted reception time, the electronic device can use the ACK message corresponding to data packet 3 as the first ACK message and send it back to the sending device, to inform the sending device that data packet 3 and all data packets preceding it have been successfully received.
[0091] If no new data packet is received after the electronic device has sent an ACK message, and the first ACK message needs to be sent back, that is, if the electronic device has sent back ACK messages for all the data packets it has received, then the electronic device can copy the previously sent ACK message as the first ACK message and send it back.
[0092] Based on this, in one embodiment, if no new data packet is received after the previous feedback of the second ACK information, the first ACK information is the same as the previous feedback of the second ACK information.
[0093] For example, based on the above example, assume that data packets 1 and 2 are both received within the predicted reception time, while data packet 3 is not received within the predicted reception time. After receiving data packet 2, the electronic device can send an ACK message corresponding to data packet 2 back to the sending device and predict the reception time of data packet 3. Since data packet 3 is not received within the predicted reception time, the electronic device does not receive any new data packets after sending the ACK message corresponding to data packet 2. In this case, the electronic device can use the ACK message corresponding to data packet 2 as the first ACK message and send it back to the sending device.
[0094] In practical applications, the electronic device can send back the first ACK information when it receives the next data packet after the predicted reception time has arrived, that is, when it receives the first data packet after the predicted reception time has arrived.
[0095] Based on this, in one embodiment, the feedback of the first ACK information includes:
[0096] Upon receiving a new data packet, the first ACK message is sent back.
[0097] In practical applications, if the next data packet is not one of the packets involved in the prediction (meaning the predicted data packet may be lost), the electronic device can determine and send back the first ACK information based on the data packet received after sending back the second ACK information. The specific correspondence between the data packet received after sending back the second ACK information and the first ACK information has been detailed above.
[0098] If the next data packet is the data packet participating in the prediction, that is, the data packet participating in the prediction is received by the electronic device after the predicted reception time, the electronic device can use the ACK information corresponding to the data packet participating in the prediction as the first ACK information to inform the sending end that the data packet participating in the prediction and all previous data packets have been successfully received.
[0099] In practical applications, the sending device can be configured to retransmit the next data packet after the first data packet when it continuously receives multiple ACK messages with acknowledgment numbers corresponding to the same data packet. That is, if the sending device continuously receives a preset number of identical ACK messages (which can also be understood as ACK messages corresponding to the same data packet, or ACK messages with the same acknowledgment number (specifically, including TCP acknowledgment numbers), it determines that the next data packet after the data packet corresponding to the ACK message has been lost and retransmits the lost data packet. The preset number can be set according to actual needs. Correspondingly, the electronic device can be configured to, for each data packet received after the predicted reception time, if the data packet is not a data packet participating in the prediction, send back the ACK message corresponding to the last data packet received before the unreceived data packet to the sending device, until it receives the retransmitted data packet participating in the prediction from the sending device. Here, ACK message corresponding to a data packet means that the acknowledgment number (which can be set in the header of the data packet corresponding to the ACK message) corresponds to the data packet; at the same time, at least two identical ACK messages mean that at least two ACK messages have the same acknowledgment number, while other fields of at least two ACK messages (such as option fields, sequence number fields, etc.) may differ.
[0100] To enable the sending device to promptly detect and retransmit unsuccessfully received data packets, thereby improving transmission efficiency, the electronic device can send back the first ACK information when the predicted reception time arrives. In this way, compared to the electronic device only sending back the first ACK information when a new data packet is received, the sending device can retransmit lost data packets more promptly, resulting in higher transmission efficiency.
[0101] Based on this, in one embodiment, the feedback of the first ACK information includes:
[0102] When the predicted reception time arrives, the first ACK message is fed back.
[0103] In practical applications, when the electronic device sends back the first ACK information when the predicted reception time arrives, and the first ACK information is associated with a new data packet received after the previous second ACK information was sent, the first ACK information can be considered to be triggered based on the new data packet received. However, when the electronic device sends back the first ACK information when the predicted reception time arrives, and the first ACK information is the same as the previously sent second ACK information, the first ACK information is not triggered based on the received data packet (or can be understood as not being associated with a data packet), but is triggered because the data involved in the prediction did not arrive within the predicted reception time. Therefore, the first ACK information can also be understood as a Virtual ACK (VACK) information. The electronic device can add indication information to the data packet of the first ACK information, which indicates that the first ACK information includes VACK information. In this way, the electronic device can send VACK information to allow the sending device to more clearly understand the data packet reception status of the electronic device.
[0104] Based on this, in one embodiment, when the first ACK information is the same as the second ACK information previously fed back, the header of the first ACK information contains first information, which is used to indicate that the first ACK information is not associated with the data packet.
[0105] For example, such as Figure 5 As shown, for TCP data packet transmission, one bit (i.e., the first information) can be used in the reserved field of the TCP header (also understood as the TCP header or the header of the TCP data packet) to indicate whether the ACK information corresponding to the data packet is VACK information. For example, when this bit is set to 1, it indicates that the ACK information corresponding to the data packet is VACK information; when this bit is set to 0, it indicates that the ACK information corresponding to the data packet is not VACK information. Alternatively, the bit can be set to 1 to indicate that the ACK information corresponding to the data packet is not VACK information, and set to 0 to indicate that the ACK information corresponding to the data packet is VACK information.
[0106] In practical applications, when the data packet involved in the prediction is the last data packet of this data transmission task (also understood as the tail data packet), and this data packet is lost, the electronic device can send back the first ACK information when the predicted reception time arrives, and send back VACK information corresponding to the first ACK information when twice the predicted reception time arrives, and three times the predicted reception time arrives. This allows the sending end to promptly determine that the data packet was not successfully received by the electronic device and retransmit the data packet. Compared to the sending end device waiting for the retransmission timeout (RTO) to expire before retransmitting the data packet, the transmission efficiency is higher. Here, twice the predicted reception time refers to the time when the clock of the electronic device resets after the predicted reception time has been reached, and then reaches the predicted reception time again; the three times the predicted reception time follows the same pattern.
[0107] In practical applications, when the sending device and the electronic device establish a connection and prepare for data transmission, the sending device and the electronic device can negotiate to determine whether to adopt the ACK information feedback strategy determination method provided in this application embodiment. For example, the sending device can send an acknowledgment request to the electronic device. This acknowledgment request is used to confirm whether the electronic device agrees to use the ACK information feedback strategy determination method provided in this application embodiment for data transmission. The electronic device can provide a acknowledgment request reply based on the actual situation to inform the sending device whether it agrees to use the ACK information feedback strategy determination method provided in this application embodiment for data transmission. The sending device can then use a corresponding method to transmit data based on the received acknowledgment request reply. The specific names of the acknowledgment request and acknowledgment request reply are not limited in this application embodiment.
[0108] The ACK information feedback strategy determination method provided in this application predicts the data packet reception time; determines whether the data packet involved in the prediction is received within the predicted reception time, and obtains a judgment result; and uses the judgment result to determine the feedback strategy for the ACK information corresponding to the data packet received after the predicted reception time. The solution provided in this application evaluates the data transmission status in the network by predicting the data packet reception time and determining whether the predicted reception time is successful (i.e., whether the data packet is received within the predicted reception time). Based on the evaluation result, the feedback strategy for the ACK information corresponding to subsequent data packets is dynamically adjusted. For example, if the prediction is successful, it indicates that the network transmission is stable, and an ACK message can be fed back after receiving multiple data packets, thereby reducing the number of ACK messages and ensuring transmission efficiency. Alternatively, if the prediction fails, it indicates that there may be a problem with the network transmission, and an ACK message can be fed back for each data packet, thereby promptly retransmitting data packets that were not successfully received, ensuring transmission reliability and efficiency. This approach is applicable to scenarios requiring continuous and rapid data transmission, such as data express services.
[0109] The following section provides a more detailed description of this application with reference to application examples.
[0110] This application example provides a data transmission system for a data express service, including a receiving device (i.e., the aforementioned electronic device) and a sending device (i.e., the aforementioned transmitting device). The sending device can perform data transmission with the receiving device using TCP, QUIC, or other similar methods. The sending device continuously and rapidly transmits large amounts of data packets with the receiving device.
[0111] Based on the above system, this application example provides a method for feedback of delayed ACK information based on the predicted reception time of the receiving device, such as... Figure 6 As shown, the method includes the following steps:
[0112] Step 601: Each time the receiving device receives a data packet, it records the reception time, starts the clock, and predicts the arrival time of the next data packet (that is, predicts the reception time of the next data packet).
[0113] In practical applications, the following assumptions apply between the transmitting and receiving devices: Before step 601, the transmitting and receiving devices have already completed a handshake and entered a stable data transmission phase. At this time, the ACK information feedback strategy of the receiving device includes: feeding back an ACK message for every two data packets received. The receiving device is configured with a clock (which can also be understood as a timer) and can use the clock for timing. Specifically, the timing can start when the receiving device receives a data packet, and when the receiving device receives a new data packet, or when the timing reaches the predicted reception time, the clock's timing time is used as the data packet reception time, and the timing restarts (i.e., the clock's timing time is reset).
[0114] In this application example, the feedback strategy for the receiving device to send back an ACK message for every X data packets received is expressed as the Delayed-ACK(X) strategy, where X is an integer greater than or equal to 2.
[0115] In practical applications, the receiving device can predict the arrival time of the next data packet based on information such as communication rate and data packet size.
[0116] Step 602: The receiving device matches the actual arrival time of the data packet with the predicted arrival time to obtain the matching result;
[0117] If the receiving device does not receive the data packet within the predicted arrival time (which can also be understood as the data packet not arriving within the predicted arrival time), the matching result indicates that the prediction has failed; if the receiving device receives the data packet within the predicted arrival time (which can also be understood as the data packet arriving within the predicted arrival time), the matching result indicates that the prediction has succeeded, and the receiving device feeds back the ACK information corresponding to the received data packet according to the Delayed-ACK(2) strategy.
[0118] In practical applications, each data packet sent by the transmitting device contains a sequence number (which can also be understood as a sending sequence number maintained by the transmitting device) in its header. When the receiving device receives a data packet, it determines the acknowledgment number corresponding to the ACK information when ACK information needs to be sent back, based on the sequence number corresponding to the received data packet. This allows the transmitting device to use the acknowledgment number to determine that the receiving device has successfully received the data packet corresponding to the acknowledgment number and all previous data packets when it receives the data packet corresponding to the ACK information.
[0119] Step 603a: If the matching results corresponding to N consecutive data packets all indicate that the prediction is successful, increase the period of the Delayed-ACK strategy to feed back ACK information; where N is an integer greater than or equal to 2.
[0120] Specifically, the receiving device can adjust the ACK information feedback strategy from the Delayed-ACK(2) strategy to the Delayed-ACK(3) strategy. This can also be understood as switching the parameter of the Delayed-ACK(X) strategy from 2 to 3, or as adjusting the number of delay cycles corresponding to the Delayed-ACK(X) strategy from 2 to 3, thereby increasing the ACK information feedback cycle, reducing the number of ACK information feedbacks, and thus reducing the pressure on the sending device to process ACK information.
[0121] Meanwhile, after the receiving device adjusts the ACK information feedback strategy to the Delayed-ACK(3) strategy, if the matching results corresponding to M consecutive data packets all indicate successful prediction, the receiving device can further adjust the ACK information feedback strategy from the Delayed-ACK(3) strategy to the Delayed-ACK(4) strategy, and so on. At the same time, the receiving device can also directly switch the parameter of the Delayed-ACK(X) strategy from 2 to 4, that is, directly adjust from the Delayed-ACK(2) strategy to the Delayed-ACK(4) strategy. Wherein, M is an integer greater than or equal to 2, and the values of N and M can be set according to actual needs; the value range of the parameters of the Delayed-ACK(X) strategy can be set according to actual needs, and after the parameters reach the upper limit of the value range, the ACK information feedback period cannot be increased further.
[0122] Step 603b: If the matching result indicates that the prediction has failed, the receiving device exits the Delayed-ACK(2) strategy and adjusts the ACK information feedback strategy to feed back the ACK information corresponding to each data packet received.
[0123] In practical applications, the receiving device can send ACK information back to the sending device when the predicted arrival time expires, informing the sending device that the corresponding data packet has been received. Specifically, if the receiving device has a delayed ACK information, it can send the delayed ACK information back to the sending device. If the receiving device does not have a delayed ACK information, it can send the VACK information back to the sending device that corresponds to the previously sent ACK information.
[0124] Meanwhile, the receiving device can send ACK information when it receives subsequent data packets. At this time, if the first data packet received by the receiving device after the predicted arrival time is not one of the data packets involved in the prediction, that is, if the data packets involved in the prediction are lost or out of order, the ACK information is associated with the last data packet received by the receiving device before the prediction failed. If the first data packet received by the receiving device after the predicted arrival time is one of the data packets involved in the prediction, that is, if the data packets involved in the prediction arrive late, the ACK information is associated with the data packets involved in the prediction.
[0125] For example, such as Figure 7 As shown, assuming the receiving device uses the Delayed-ACK (3) strategy for ACK information feedback, that is, after the receiving device sends back ACK10221 (which can also be understood as ACK information with acknowledgment number 10221), it receives three data packets before sending back ACK14601. At the same time, after receiving the data packet of the 14521:18980 data segment, the receiving device delays sending back ACK18981 (which can also be understood as ACK information with acknowledgment number 18981) based on the Delayed-ACK (3) strategy. And the receiving device does not receive the data packet of the 18981:20440 data segment within the predicted arrival time. At this time, the receiving device is cut off at the predicted arrival time. When the time is reached, the Delayed-ACK(3) strategy is exited, and the ACK information feedback strategy is changed to feedback ACK information for each received data packet. At the same time, when the predicted arrival time is over, the receiving device forces feedback ACK information. Since the receiving device has a delayed ACK18981 at this time, when forcibly feedback ACK information, it feeds back the delayed ACK18981. After receiving the data packet of the 20441:21900 data segment, it confirms that the data packet of the 18981:20440 data segment is lost or out of order, and feeds back ACK18981 multiple times until the receiving device receives the data packet of the 18981:20440 data segment retransmitted by the sending device (e.g., Figure 7 After (as shown in Chinese 18981:20400(R)), the receiving device sends back ACK information for the received data packets, namely ACK29201 (which can also be understood as ACK information with acknowledgment number 29201). The forced feedback of ACK information (which can also be understood as forced ACK information feedback) means that: when the predicted arrival time expires, if there is a delayed ACK information, the receiving device sends back the delayed ACK information; if there is no delayed ACK information, it constructs a VACK information based on the last fed-back ACK information and sends back the VACK information.
[0126] If the first data packet received by the receiving device after the predicted arrival time is a data packet involved in the prediction, that is, if the data packet involved in the prediction is received after the predicted arrival time, the receiving device can send back ACK information (that is, the ACK information is associated with the data packet involved in the prediction) when it receives the data packet involved in the prediction, and adjust the predicted arrival time for the next data packet accordingly.
[0127] If the receiving device does not receive any other data packets after the predicted arrival time expires (i.e., the predicted data packets are tail packets and have been lost), the receiving device can restart its clock after the predicted arrival time expires. It will then send a VACK message at each subsequent predicted arrival time to inform the sending device that the lost data packets need to be retransmitted. This allows for faster retransmission of lost data packets. Compared to TCP transmission, which does not require waiting for the sending device's timer to time out for the lost data packets' RTO, this method offers higher transmission efficiency.
[0128] For example, such as Figure 7 As shown, assuming that after receiving the data packet of the 37961:39420 data segment, the receiving device feeds back ACK39421 (which can also be understood as ACK information with acknowledgment number 39421) based on the Delayed-ACK(2) strategy, and the receiving device does not receive the data packet of the 39421:40880 data segment within the predicted arrival time, the receiving device exits the Delayed-ACK(2) strategy when the predicted arrival time expires, changes the ACK information feedback strategy to feed back ACK information for each received data packet, and feeds back VACK corresponding to ACK39421. The clock in the receiving device restarts the timing, and feeds back VACK information when the predicted arrival time expires 3 times in the future, so as to inform the sending device that the data packet of the 37961:39420 data segment needs to be retransmitted. After receiving the data packet of the 37961:39420 data segment retransmitted by the sending device, the receiving device feeds back ACK40881 for the data packet.
[0129] Of course, in practical applications, the receiving device may not send VACK information when the predicted arrival time expires. That is, if no data packet involved in the prediction is received within the predicted arrival time, and there is no delayed ACK information in the receiving device, no ACK information is sent. Simultaneously, when subsequent data packets are received, the receiving device sends ACK information, which is associated with the last data packet received by the receiving device before the prediction failed. Furthermore, if the data packet involved in the prediction is a tail packet, and the data packet involved in the prediction is lost, the receiving device may not send ACK information after the predicted arrival time expires, but wait for the timer in the sending device to time out for the lost data packet's RTO, after which the sending device will determine whether to retransmit.
[0130] For example, based on the above example, such as Figure 8 As shown, the receiving device did not receive the data packet of the 18981:20440 data segment within the predicted arrival time. At this time, when the predicted arrival time expires, the receiving device exits the Delayed-ACK(3) strategy and changes the ACK information feedback strategy to feedback ACK information for each received data packet, without forcing ACK information feedback; after receiving the data packet of the 20441:21900 data segment, the receiving device confirms that the data packet of the 18981:20440 data segment is lost or out of order, and feeds back ACK18981. In other words, the receiving device triggers ACK feedback based on the received data packet of the 20441:21900 data segment. Since the sequence number of the data packets that have been successfully received at this time (which can also be understood as the sequence number that has been received) is 18980, and the sequence number of the next data packet to be received is 18981, the feedback ACK information is ACK18981. At the same time, when other data packets are received subsequently, the receiving device also feeds back ACK18981 until it receives the data packet of the 18981:20440 data segment retransmitted by the sending device. Meanwhile, if the receiving device does not receive the data packet for the 39421:40880 data segment within the predicted arrival time, the receiving device does not force an ACK message feedback. Instead, it waits for the sending device's RTO (Redirect Timeout) for the 39421:40880 data segment data packet to expire. The sending device then determines and retransmits the 39421:40880 data segment data packet. After receiving the retransmitted 37961:39420 data segment data packet from the sending device, the receiving device feeds back ACK40881 for this data packet. The phrase "not forcing ACK message feedback" (which can also be understood as not forcing ACK message feedback) means that if a delayed ACK message exists at the predicted arrival time, the receiving device can feed back the delayed ACK message as needed, or not feed back the delayed ACK message; if no delayed ACK message exists, the receiving device does not feed back any ACK message.
[0131] Step 604b: After the receiving device exits the Delayed-ACK(2) strategy, if the matching results corresponding to N consecutive data packets all indicate that the prediction is successful, the feedback strategy of the ACK information is changed back to the Delayed-ACK(2) strategy.
[0132] The solution provided in this application example addresses business scenarios with a large number of data packets and high transmission rates, such as data express delivery. The receiving device can use an internal clock to time and predict the arrival of data packets, thereby assessing the network situation and flexibly adjusting the parameters of the Delayed-ACK(X) strategy based on the network conditions. Specifically, when network transmission is stable, the receiving device can adopt a feedback mechanism that transmits less ACK information, such as increasing the parameters of the Delayed-ACK(X) strategy, thereby reducing the number of data packets used to transmit ACK information and alleviating the pressure on the sending device to process ACK information. Simultaneously, in the event of network anomalies such as data packet loss or out-of-order delivery, the receiving device can exit the Delayed-ACK(X) strategy and adopt a feedback strategy that sends ACK information for each data packet, notifying the sending device to perform appropriate congestion control or retransmission of data packets, thus ensuring complete data transmission.
[0133] Meanwhile, for lost data packets, retransmission is determined based on the predicted arrival time of the data packets. Compared with the retransmission scheme based on the RTO timeout of the sending device in TCP type transmission, data retransmission can be achieved more quickly, thus improving transmission efficiency.
[0134] It should be noted that the solution provided in the application examples of this application can be understood as enhancing the feedback mechanism of ACK information in data transmission of TCP, QUIC, and other types, specifically for data express delivery service scenarios. When using TCP transmission, the ACK feedback mechanism in TCP transmission is related to the number of bytes transmitted. Furthermore, in the data express delivery service scenario, the number of bytes corresponding to each data packet is basically the same. That is, in the data express delivery service scenario, the number of data packets is related to the number of bytes transmitted. Therefore, by adjusting the preset number of data packets corresponding to the ACK feedback information, the number of bytes corresponding to the ACK feedback information in TCP transmission can be adjusted. Thus, the solution provided in the application examples of this application can be applied to TCP transmission. When using QUIC transmission, since the ACK feedback mechanism in QUIC transmission is directly related to the number of data packets, the solution provided in the application examples of this application can be applied to QUIC transmission.
[0135] To implement the method of the embodiments of this application, the embodiments of this application also provide an ACK information feedback strategy determination device, which is installed on an electronic device, such as...Figure 9 As shown, the device includes:
[0136] Prediction unit 901 is used to predict the data packet reception time;
[0137] The determining unit 902 is used to determine whether the data packet participating in the prediction is received at the predicted reception time, and to obtain a determination result; and to use the determination result to determine the feedback strategy for the ACK information corresponding to the data packet received after the predicted reception time.
[0138] In one embodiment, the prediction unit 901 is specifically used for:
[0139] Predict the reception time of N consecutive data packets;
[0140] If the determination result indicates that all N consecutive data packets were received within the predicted reception time, the determining unit 902 is configured to:
[0141] The feedback strategy for determining the ACK information corresponding to the data packet received after the predicted reception time includes a first strategy, where N is an integer greater than 1. In the first strategy, an ACK information is fed back for every K data packets received, where K is an integer greater than or equal to 2.
[0142] In one embodiment, the prediction unit 901 is specifically used for:
[0143] Predict the reception time of N consecutive data packets;
[0144] If the determination result indicates that all N consecutive data packets were received within the predicted reception time, the determining unit 902 is configured to:
[0145] The feedback strategy for ACK information corresponding to data packets received after the predicted reception time is updated from the first strategy to the second strategy, where N is an integer greater than 1. In the first strategy, an ACK message is fed back for every K data packets received, where K is an integer greater than or equal to 2. In the second strategy, an ACK message is fed back for every J data packets received, where J is an integer greater than K.
[0146] In one embodiment, if the determination result indicates that a data packet involved in the prediction was not received at the predicted reception time, the determining unit 902 is configured to:
[0147] The feedback strategy for determining the ACK information corresponding to the data packet received after the predicted reception time includes a third strategy, in which an ACK message is fed back for each received data packet.
[0148] In one embodiment, the determining unit 902 is specifically used for:
[0149] The feedback strategy for determining the ACK information corresponding to the data packet received after the predicted reception time is updated from the first strategy to the third strategy. In the first strategy, an ACK information is fed back for every K data packets received, where K is an integer greater than or equal to 2.
[0150] In one embodiment, when the determination result indicates that a data packet involved in the prediction was not received at the predicted reception time, the ACK information feedback strategy determination device further includes:
[0151] The feedback unit is used to send out the first ACK information; among which,
[0152] If no new data packet is received after the second ACK message was previously sent, the first ACK message is the same as the second ACK message previously sent.
[0153] or,
[0154] If a new data packet is received after the previous second ACK message, the first ACK message is associated with the new data packet.
[0155] In one embodiment, the feedback unit is specifically used for:
[0156] When the predicted reception time arrives, the first ACK information is fed back;
[0157] or,
[0158] Upon receiving a new data packet, the first ACK message is sent back.
[0159] In one embodiment, the prediction unit 901 is specifically used for:
[0160] The predicted data packet reception time is determined based on one or more of the following: the time of the last received data packet, the size of the last received data packet, and the previously predicted reception time.
[0161] In one embodiment, the prediction unit 901 is specifically used for:
[0162] Based on the average data transmission rate and the average size of the data packets received during the first time period, the data packet reception time is predicted.
[0163] In practical applications, the prediction unit 901 and the determination unit 902 can be implemented by the processor in the ACK information feedback strategy determination device, and the feedback unit can be implemented by the processor in the ACK information feedback strategy determination device in combination with the communication interface.
[0164] It should be noted that the ACK information feedback strategy determination device provided in the above embodiments is only illustrated by the division of the above-described program units when determining the ACK information feedback strategy. In practical applications, the above processing can be assigned to different program units as needed, that is, the internal structure of the device can be divided into different program units to complete all or part of the processing described above. In addition, the ACK information feedback strategy determination device and the ACK information feedback strategy determination method embodiments provided in the above embodiments belong to the same concept, and their specific implementation process can be found in the method embodiments, which will not be repeated here.
[0165] Based on the hardware implementation of the above program modules, and in order to implement the method of the embodiments of this application, the embodiments of this application also provide an electronic device, such as... Figure 10 As shown, the electronic device 1000 includes:
[0166] Communication interface 1001 enables information exchange with other devices;
[0167] The processor 1002 is connected to the communication interface 1001 to enable information interaction with other devices and to execute the methods provided by one or more of the above-mentioned technical solutions when running a computer program;
[0168] The computer program is stored in memory 1003.
[0169] Specifically, the processor 1002 is used for:
[0170] Predict the data packet reception time; determine whether the data packet involved in the prediction is received at the predicted reception time, and obtain the determination result; and use the determination result to determine the feedback strategy for the ACK information corresponding to the data packet received after the predicted reception time.
[0171] In one embodiment, the processor 1002 is specifically used for:
[0172] Predict the reception time of N consecutive data packets; if the judgment result indicates that all N consecutive data packets are received within the predicted reception time, determine the feedback strategy for the ACK information corresponding to the data packets received after the predicted reception time, including a first strategy, where N is an integer greater than 1, and in the first strategy, one ACK information is fed back for every K data packets received, where K is an integer greater than or equal to 2.
[0173] In one embodiment, the processor 1002 is specifically used for:
[0174] Predict the reception time of N consecutive data packets; if the judgment result indicates that all N consecutive data packets are received within the predicted reception time, determine that the feedback strategy for the ACK information corresponding to the data packets received after the predicted reception time is updated from the first strategy to the second strategy, where N is an integer greater than 1. In the first strategy, an ACK message is fed back for every K data packets received, where K is an integer greater than or equal to 2. In the second strategy, an ACK message is fed back for every J data packets received, where J is an integer greater than K.
[0175] In one embodiment, if the determination result indicates that a data packet involved in the prediction was not received at the predicted reception time, the processor 1002 is specifically configured to:
[0176] The feedback strategy for determining the ACK information corresponding to the data packet received after the predicted reception time includes a third strategy, in which an ACK message is fed back for each received data packet.
[0177] In one embodiment, the processor 1002 is specifically used for:
[0178] The feedback strategy for determining the ACK information corresponding to the data packet received after the predicted reception time is updated from the first strategy to the third strategy. In the first strategy, an ACK information is fed back for every K data packets received, where K is an integer greater than or equal to 2.
[0179] In one embodiment, if the determination result indicates that a data packet involved in the prediction was not received at the predicted reception time, the processor 1002 is further configured to:
[0180] In conjunction with the communication interface 1001, the first ACK information is fed back; wherein,
[0181] If no new data packet is received after the second ACK message was previously sent, the first ACK message is the same as the second ACK message previously sent.
[0182] or,
[0183] If a new data packet is received after the previous second ACK message, the first ACK message is associated with the new data packet.
[0184] In one embodiment, the processor 1002 is specifically used for:
[0185] In conjunction with the communication interface 1001, the first ACK information is fed back when the predicted reception time arrives;
[0186] or,
[0187] Upon receiving a new data packet, the first ACK message is sent back.
[0188] In one embodiment, the processor 1002 is specifically used for:
[0189] The predicted data packet reception time is determined based on one or more of the following: the time of the last received data packet, the size of the last received data packet, and the previously predicted reception time.
[0190] In one embodiment, the processor 1002 is specifically used for:
[0191] Based on the average data transmission rate and the average size of the data packets received during the first time period, the data packet reception time is predicted.
[0192] It should be noted that the specific processing procedures of the processor 1002 and the communication interface 1001 can be understood by referring to the above method.
[0193] Of course, in practical applications, the various components in electronic device 1000 are coupled together through bus system 1004. It can be understood that bus system 1004 is used to realize the connection and communication between these components. In addition to a data bus, bus system 1004 also includes a power bus, a control bus, and a status signal bus. However, for the sake of clarity, in... Figure 10 The general labeled all buses as Bus System 1004.
[0194] The memory 1003 in this embodiment is used to store various types of data to support the operation of the electronic device 1000. Examples of such data include any computer program used to operate on the electronic device 1000.
[0195] The methods disclosed in the embodiments of this application can be applied to the processor 1002, or implemented by the processor 1002. The processor 1002 may be an integrated circuit chip with signal processing capabilities. In the implementation process, each step of the above method can be completed by the integrated logic circuit of the hardware in the processor 1002 or by instructions in the form of software. The processor 1002 may be a general-purpose processor, a digital signal processor (DSP), or other programmable logic devices, discrete gate or transistor logic devices, discrete hardware components, etc. The processor 1002 can implement or execute the methods, steps, and logic block diagrams disclosed in the embodiments of this application. The general-purpose processor may be a microprocessor or any conventional processor, etc. The steps of the methods disclosed in the embodiments of this application can be directly manifested as being executed by a hardware decoding processor, or being executed by a combination of hardware and software modules in the decoding processor. The software modules may be located in a storage medium, which is located in the memory 1003. The processor 1002 reads the information in the memory 1003 and completes the steps of the aforementioned method in combination with its hardware.
[0196] In an exemplary embodiment, the electronic device 1000 may be implemented by one or more application-specific integrated circuits (ASICs), DSPs, programmable logic devices (PLDs), complex programmable logic devices (CPLDs), field-programmable gate arrays (FPGAs), general-purpose processors, controllers, microcontrollers (MCUs), microprocessors, or other electronic components to perform the aforementioned method.
[0197] It is understood that the memory (memory 1003) in the embodiments of this application can be volatile memory or non-volatile memory, or both. The non-volatile memory can be read-only memory (ROM), programmable read-only memory (PROM), erasable programmable read-only memory (EPROM), electrically erasable programmable read-only memory (EEPROM), ferromagnetic random access memory (FRAM), flash memory, magnetic surface memory, optical disc, or compact disc read-only memory (CD-ROM); the magnetic surface memory can be disk storage or magnetic tape storage. The volatile memory can be random access memory (RAM), which is used as an external cache. By way of example, but not limitation, many forms of RAM are available, such as Static Random Access Memory (SRAM), Synchronous Static Random Access Memory (SSRAM), Dynamic Random Access Memory (DRAM), Synchronous Dynamic Random Access Memory (SDRAM), Double Data Rate Synchronous Dynamic Random Access Memory (DDRSDRAM), Enhanced Synchronous Dynamic Random Access Memory (ESDRAM), SyncLink Dynamic Random Access Memory (SLDRAM), and Direct Rambus Random Access Memory (DRRAM).The memories described in the embodiments of this application are intended to include, but are not limited to, these and any other suitable types of memories.
[0198] In an exemplary embodiment, this application also provides a storage medium, namely a computer storage medium, specifically a computer-readable storage medium, such as a memory 1003 storing a computer program, which can be executed by the processor 1002 of the electronic device 1000 to complete the steps described in the aforementioned method. The computer-readable storage medium may be a memory such as FRAM, ROM, PROM, EPROM, EEPROM, Flash Memory, magnetic surface memory, optical disc, or CD-ROM.
[0199] In an exemplary embodiment, this application also provides a computer program product, including a computer program that can be executed by the processor 1002 of the electronic device 1000 to complete the steps described in the aforementioned method.
[0200] It should be noted that terms such as "first" and "second" are used to distinguish similar objects, and are not necessarily used to describe a specific order or sequence.
[0201] Furthermore, the technical solutions described in the embodiments of this application can be combined arbitrarily without conflict.
[0202] The above description is merely a preferred embodiment of this application and is not intended to limit the scope of protection of this application.
Claims
1. A method for determining an ACK information feedback strategy, characterized in that, include: Predict the data packet reception time; Determine whether the data packets involved in the prediction were received at the predicted reception time, and obtain the determination result; Using the judgment result, a feedback strategy for the ACK information corresponding to the data packet received after the predicted reception time is determined; wherein, Predict the reception time of N consecutive data packets; If the judgment result indicates that the N consecutive data packets are all received within the predicted reception time, the feedback strategy includes a first strategy, where N is an integer greater than 1. In the first strategy, for every K data packets received, an ACK message is fed back, where K is an integer greater than or equal to 2.
2. The method according to claim 1, characterized in that, Predict the reception time of N consecutive data packets; if the judgment result indicates that all N consecutive data packets are received within the predicted reception time, the feedback strategy is updated from the first strategy to the second strategy, where N is an integer greater than 1. In the first strategy, an ACK message is fed back for every K data packets received, where K is an integer greater than or equal to 2. In the second strategy, an ACK message is fed back for every J data packets received, where J is an integer greater than K.
3. The method according to claim 1, characterized in that, If the judgment result indicates that a data packet involved in the prediction was not received at the predicted reception time, the feedback strategy includes a third strategy, in which an ACK message is fed back for each received data packet.
4. The method according to claim 3, characterized in that, The feedback strategy is updated from the first strategy to the third strategy. In the first strategy, an ACK message is fed back for every K data packets received, where K is an integer greater than or equal to 2.
5. The method according to claim 1, characterized in that, If the determination result indicates that a data packet involved in the prediction was not received at the predicted reception time, the method further includes: The first ACK message was sent; among them, If no new data packet is received after the second ACK message was previously sent, the first ACK message is the same as the second ACK message previously sent. or, If a new data packet is received after the previous second ACK message, the first ACK message is associated with the new data packet.
6. The method according to claim 5, characterized in that, If the first ACK message is the same as the second ACK message previously fed back, the header of the first ACK message contains first information, which is used to indicate that the first ACK message is not associated with the data packet.
7. The method according to claim 5, characterized in that, The feedback of the first ACK information includes: When the predicted reception time arrives, the first ACK information is fed back; or, Upon receiving a new data packet, the first ACK message is sent back.
8. The method according to any one of claims 1 to 7, characterized in that, The predicted data packet reception time includes: The predicted data packet reception time is determined based on one or more of the following: the time of the last received data packet, the size of the last received data packet, and the previously predicted reception time.
9. The method according to any one of claims 1 to 7, characterized in that, The predicted data packet reception time includes: Based on the average data transmission rate and the average size of the data packets received during the first time period, the data packet reception time is predicted.
10. An electronic device, characterized in that, include: The processor and the memory used to store computer programs that can run on the processor. When the processor is used to run the computer program, it performs the steps of the method according to any one of claims 1 to 9.
11. A storage medium having a computer program stored thereon, characterized in that, When the computer program is executed by a processor, it implements the steps of the method according to any one of claims 1 to 9.
12. A computer program product, comprising a computer program, characterized in that, When the computer program is executed by a processor, it implements the steps of the method according to any one of claims 1 to 9.
Citation Information
Patent Citations
Data transmission method, device and system, terminal equipment and storage medium
CN112771821A
HARQ-ACK information feedback method, device, equipment and medium
CN117616711A