Data sending method, equipment, device and storage medium
By deploying a TCP proxy module on the base station to provide ACK feedback and control the data packet sending frequency, the bottleneck problem of the PDCP module in poor air interface transmission environments is solved, ensuring communication stability and resource utilization efficiency.
Patent Information
- Authority / Receiving Office
- CN · China
- Patent Type
- Applications(China)
- Current Assignee / Owner
- DATANG MOBILE COMM EQUIP CO LTD
- Filing Date
- 2024-10-15
- Publication Date
- 2026-04-17
AI Technical Summary
In wireless network environments, PDCP modules are prone to windowing issues when the air interface transmission environment is poor, leading to high latency, packet loss, and communication interruptions, which affect the communication transmission process.
Deploying a Transmission Control Protocol (TCP) proxy module on the base station allows the acquisition of data packets to be sent from the PDCP module and the feedback of acknowledgment characters (ACKs). This controls the transmission frequency and sequence number continuity of data packets, ensuring their continuity and timely processing, and preventing the PDCP module window from becoming full or stuck.
This effectively avoids window fullness and window jamming in the PDCP module, ensuring smooth communication transmission and alleviating network resource constraints.
Smart Images

Figure CN121887892A_ABST
Abstract
Description
Technical Field
[0001] This disclosure relates to the field of communication technology, and more specifically, to a data transmission method, device, apparatus, and storage medium. Background Technology
[0002] In wireless network environments, the existing technical architecture, from top to bottom, consists of: DirectDrive (DD), Packet Data Convergence Protocol (PDCP), Radio Link Control (RLC), Medium Access Control (MAC), and Physical Layer (PHY). These layers work together to transmit and process data, ensuring secure data transmission in the wireless environment. However, in poor air interface transmission environments, PDCP may experience prolonged periods of latency. In such cases, the PDCP module cannot process data sent from the server in a timely manner, leading to high latency, packet loss, and communication interruptions at the terminal, thus affecting the communication transmission process. Summary of the Invention
[0003] This disclosure provides at least one data transmission method, device, apparatus, and storage medium to prevent the PDCP module from experiencing window fullness or window jamming, thereby ensuring the smooth operation of the communication transmission process.
[0004] In a first aspect, embodiments of this disclosure provide a data transmission method applied to a Transmission Control Protocol (TCP) proxy module, the TCP proxy module being deployed on a base station, including:
[0005] Obtain the data packets to be sent from the server transmitted by the Packet Data Convergence Protocol (PDCP) module of the base station;
[0006] The system sends an acknowledgment character (ACK) to the PDCP module for the data packet to be sent, which is used to send the data packet to the server; and it also transmits a first data packet sending notification to the PDCP module, which is used to instruct the system to send the data packet to be sent to the user equipment (UE).
[0007] In one optional implementation, before sending the ACK corresponding to the data packet to be sent to the PDCP module, the method further includes: detecting that the sequence numbers (SN) of the data packets to be sent within the current acknowledgment period are consecutive, according to a set sequence number acknowledgment period.
[0008] In an optional implementation, the method further includes: when the SN of the data packet to be sent within the current acknowledgment period is detected to be discontinuous, sending a data request notification corresponding to the missing SN to the PDCP module; the data request notification is used to instruct the server to send the data packet corresponding to the missing SN.
[0009] In one optional implementation, before sending the ACK character corresponding to the data packet to be sent to the PDCP module, the method further includes: determining that the data volume of the acquired data packet to be sent is less than a data volume threshold.
[0010] In an optional implementation, the method further includes: receiving the UE window length transmitted by the UE; and determining a first window length of the transmission window based on the UE window length.
[0011] Transmitting a first data packet transmission notification to the PDCP module includes: determining the current data packet located within a transmission window of a first window length from the data packets to be transmitted; transmitting the first data packet transmission notification corresponding to the current data packet to the PDCP module, wherein the first data packet transmission notification is used to instruct the UE to transmit the current data packet.
[0012] In one optional implementation, the method further includes: receiving an ACK sent by the UE for the current data packet, and deleting the current data packet from the data packets to be sent to obtain an updated data packet to be sent.
[0013] In one optional implementation, determining the first window length of the sending window based on the UE window length includes: determining the first buffer size based on the amount of data packets in the data packets to be sent that have not sent corresponding ACKs to the server; and determining the first window length of the sending window based on the UE window length and the first buffer size.
[0014] In an optional implementation, the method further includes: determining a second window length for the receiving window based on a first window length for the sending window; and sending a window update packet corresponding to the second window length to the PDCP module. The window update packet is used to send to the server to instruct the server to send data packets according to the second window length.
[0015] In one optional implementation, determining the second window length of the receiving window based on the first window length of the sending window includes: determining the second buffer size based on the amount of data in the data packet to be sent that has not been acknowledged by the UE via ACK; and determining the second window length of the receiving window based on the first window length of the sending window and the second buffer size.
[0016] In an optional implementation, the method further includes: determining the count of repeated acknowledgments (DUPACK); when the count of DUPACK exceeds a set number, determining whether the selective acknowledgment (SACK) state is enabled; if so, sending a query request to the UE, the query request being used to query the sequence number (SN) of the data packets already received by the UE; receiving the request response information corresponding to the query request sent by the UE; determining the missing data packets that the UE has not received based on the request response information, and generating a second data packet transmission notification corresponding to the missing data packets, the second data packet transmission notification being used to instruct the UE to send the missing data packets.
[0017] In an optional implementation, the method further includes: if no ACK for the data packet to be sent from the UE is received after the current timeout period, a first data packet sending notification is transmitted to the PDCP module again;
[0018] The current timeout duration is determined by the following steps: obtaining the currently measured round-trip time of the data packet; wherein the round-trip time of the data packet is determined based on the first moment of sending an ACK for the data packet to the server and the second moment of receiving an ACK for the data packet sent by the UE; and determining the current timeout duration based on the round-trip time of the data packet.
[0019] In one optional implementation, determining the current timeout duration based on the round-trip time of data packets includes: obtaining the first smoothing duration after the previous smoothing; determining the second smoothing duration after the current smoothing based on the round-trip time of data packets and the first smoothing duration; determining the second duration deviation for the current smoothing based on the round-trip time of data packets, the second smoothing duration, and the first duration deviation determined in the previous smoothing; and determining the current timeout duration based on the second duration deviation and the second smoothing duration.
[0020] Secondly, embodiments of this disclosure also provide a data transmission method applied to a server, comprising:
[0021] The data packet to be sent is sent to the base station. After arriving at the base station's Packet Data Convergence Layer Protocol (PDCP) module, the data packet is transmitted to the Transmission Control Protocol (TCP) proxy module.
[0022] Receive the ACK character from the TCP proxy module; ACK is used to acknowledge data packets to be sent.
[0023] In one optional implementation, the method further includes: receiving a data request notification corresponding to the missing sequence number (SN) from the TCP proxy module; and sending the data packet corresponding to the missing SN to the TCP proxy module.
[0024] In one optional implementation, the method further includes: receiving a window update packet sent by the TCP proxy module; and sending data packets according to the second window length indicated by the window update packet.
[0025] Thirdly, embodiments of this disclosure also provide a data transmission method applied to a user equipment (UE), comprising:
[0026] Receive data packets to be sent by the Transmission Control Protocol (TCP) proxy module through the Packet Data Convergence Layer (PDCP) module;
[0027] Generate an acknowledgment character (ACK) for the data packet to be sent, and send the ACK for the data packet to be sent to the TCP proxy module.
[0028] In one optional implementation, the method further includes sending the UE window length to the TCP proxy module.
[0029] In one optional implementation, the method further includes: receiving a query request sent by the TCP proxy module; determining the sequence number (SN) of the received data packet based on the query request; generating request response information according to the SN of the received data packet, and sending the request response information to the TCP proxy module; and receiving missing data packets sent by the TCP proxy module through the PDCP module.
[0030] Fourthly, this disclosure also provides a data transmission device deployed on a Transmission Control Protocol (TCP) proxy module. The TCP proxy module is deployed on a base station and includes a memory, a transceiver, and a processor. The memory stores a computer program. The transceiver is used to send and receive data under the control of the processor. The processor reads the computer program from the memory and performs the following operations:
[0031] Obtain the data packets to be sent from the server transmitted by the Packet Data Convergence Protocol (PDCP) module of the base station;
[0032] The system sends an acknowledgment character (ACK) to the PDCP module for the data packet to be sent, which is used to send the data packet to the server; and it also transmits a first data packet sending notification to the PDCP module, which is used to instruct the system to send the data packet to be sent to the user equipment (UE).
[0033] In one possible implementation, before sending the ACK corresponding to the data packet to be sent to the PDCP module, the processor is further configured to: detect that the sequence numbers (SN) of the data packets to be sent within the current acknowledgment period are consecutive, according to the set sequence number acknowledgment period.
[0034] In an optional implementation, the processor is further configured to: when it detects that the serial numbers (SNs) of the data packets to be sent within the current acknowledgment period are discontinuous, send a data request notification to the PDCP module corresponding to the missing SN; the data request notification is used to instruct the server to send the data packets corresponding to the missing SN.
[0035] In one optional implementation, before sending the ACK character corresponding to the data packet to be sent to the PDCP module, the processor is further configured to: determine that the data volume of the acquired data packet to be sent is less than the data volume threshold.
[0036] In one optional implementation, the processor is further configured to: receive the UE window length transmitted by the UE; and determine the first window length of the transmission window based on the UE window length;
[0037] Transmitting a first data packet transmission notification to the PDCP module includes: determining the current data packet located within a transmission window of a first window length from the data packets to be transmitted; transmitting the first data packet transmission notification corresponding to the current data packet to the PDCP module, wherein the first data packet transmission notification is used to instruct the UE to transmit the current data packet.
[0038] In one optional implementation, the processor is further configured to: receive an ACK sent by the UE for the current data packet, and delete the current data packet from the data packets to be sent to obtain an updated data packet to be sent.
[0039] In one optional implementation, determining the first window length of the sending window based on the UE window length includes: determining the first buffer size based on the amount of data packets in the data packets to be sent that have not sent corresponding ACKs to the server; and determining the first window length of the sending window based on the UE window length and the first buffer size.
[0040] In an optional implementation, the processor is further configured to: determine a second window length of the receiving window based on a first window length of the sending window; and send a window update packet corresponding to the second window length to the PDCP module, the window update packet being sent to the server to instruct the server to send data packets according to the second window length.
[0041] In one optional implementation, determining the second window length of the receiving window based on the first window length of the sending window includes: determining the second buffer size based on the amount of data in the data packet to be sent that has not been acknowledged by the UE via ACK; and determining the second window length of the receiving window based on the first window length of the sending window and the second buffer size.
[0042] In an optional implementation, the processor is further configured to: determine the count of repeated acknowledgments (DUPACK); when the count of DUPACK is greater than a set number, determine whether the selective acknowledgment (SACK) state is enabled; if so, send a query request to the UE, the query request being used to query the sequence number (SN) of the data packets already received by the UE; receive the request response information corresponding to the query request sent by the UE; and, based on the request response information, determine the missing data packets that the UE has not received, and generate a second data packet transmission notification corresponding to the missing data packets, the second data packet transmission notification being used to instruct the UE to send the missing data packets.
[0043] In an optional implementation, the processor is further configured to: if no ACK for the data packet to be sent by the UE is received after the current timeout period, transmit the first data packet sending notification to the PDCP module again;
[0044] The current timeout duration is determined by the following steps: obtaining the currently measured round-trip time of the data packet; wherein the round-trip time of the data packet is determined based on the first moment of sending an ACK for the data packet to the server and the second moment of receiving an ACK for the data packet sent by the UE; and determining the current timeout duration based on the round-trip time of the data packet.
[0045] In one optional implementation, determining the current timeout duration based on the round-trip time of data packets includes: obtaining the first smoothing duration after the previous smoothing; determining the second smoothing duration after the current smoothing based on the round-trip time of data packets and the first smoothing duration; determining the second duration deviation for the current smoothing based on the round-trip time of data packets, the second smoothing duration, and the first duration deviation determined in the previous smoothing; and determining the current timeout duration based on the second duration deviation and the second smoothing duration.
[0046] Fifthly, embodiments of this disclosure also provide a data transmission device deployed on a server, including a memory, a transceiver, and a processor; the memory is used to store a computer program; the transceiver is used to send and receive data under the control of the processor; the processor is used to read the computer program in the memory and perform the following operations:
[0047] The data packet to be sent is sent to the base station. After arriving at the base station's Packet Data Convergence Layer Protocol (PDCP) module, the data packet is transmitted to the Transmission Control Protocol (TCP) proxy module.
[0048] Receive the ACK character from the TCP proxy module; ACK is used to acknowledge data packets to be sent.
[0049] In one optional implementation, the processor is further configured to: receive a data request notification corresponding to a missing sequence number (SN) from the TCP proxy module; and send the data packet corresponding to the missing SN to the TCP proxy module.
[0050] In one alternative implementation, the processor is further configured to: receive a window update packet sent by the TCP proxy module; and send data packets according to the second window length indicated by the window update packet.
[0051] In a sixth aspect, embodiments of this disclosure also provide a data transmission device deployed in a user equipment (UE), including a memory, a transceiver, and a processor; the memory is used to store a computer program; the transceiver is used to transmit and receive data under the control of the processor; the processor is used to read the computer program in the memory and perform the following operations:
[0052] Receive data packets to be sent by the Transmission Control Protocol (TCP) proxy module through the Packet Data Convergence Layer (PDCP) module;
[0053] Generate an acknowledgment character (ACK) for the data packet to be sent, and send the ACK for the data packet to be sent to the TCP proxy module.
[0054] In one alternative implementation, the processor is further configured to: send the UE window length to the TCP proxy module.
[0055] In one optional implementation, the processor is further configured to: receive a query request sent by the TCP proxy module; determine the sequence number (SN) of the received data packet based on the query request; generate request response information according to the SN of the received data packet, and send the request response information to the TCP proxy module; and receive missing data packets sent by the TCP proxy module through the PDCP module.
[0056] In a seventh aspect, an optional implementation of this disclosure also provides a data transmission device applied to a Transmission Control Protocol (TCP) proxy module, the TCP proxy module being deployed on a base station, comprising:
[0057] The acquisition module is used to acquire the data packets to be sent from the server transmitted by the Packet Data Convergence Protocol (PDCP) module of the base station;
[0058] The transmission module is used to send an acknowledgment character ACK to the PDCP module for the data packet to be sent, and the ACK is used to send to the server; and to transmit a first data packet sending notification to the PDCP module, which is used to instruct the user equipment (UE) to send the data packet to be sent.
[0059] In one optional implementation, before sending the ACK corresponding to the data packet to be sent to the PDCP module, the transmission module is further configured to: detect that the sequence numbers (SN) of the data packets to be sent within the current acknowledgment period are consecutive according to the set sequence number acknowledgment period.
[0060] In an optional implementation, the transmission module is further configured to: when it detects that the serial numbers (SNs) of the data packets to be sent within the current acknowledgment period are discontinuous, send a data request notification to the PDCP module corresponding to the missing SN; the data request notification is used to instruct the server to send the data packets corresponding to the missing SN.
[0061] In one optional implementation, before sending the ACK character corresponding to the data packet to be sent to the PDCP module, the transmission module is further configured to: determine that the data volume of the acquired data packet to be sent is less than the data volume threshold.
[0062] In an optional implementation, the system further includes: a determining module, configured to receive the UE window length transmitted by the UE; and determine a first window length of the transmitting window based on the UE window length.
[0063] The transmission module is used to: determine the current data packet located within the transmission window of the first window length from the data packets to be transmitted; and transmit the first data packet transmission notification corresponding to the current data packet to the PDCP module, the first data packet transmission notification being used to instruct the UE to send the current data packet.
[0064] In one optional implementation, the transmission module is further configured to: receive an ACK sent by the UE for the current data packet, and delete the current data packet from the data packets to be sent to obtain an updated data packet to be sent.
[0065] In one optional implementation, the determining module is configured to: determine a first buffer size based on the amount of data packets in the data packets to be sent that have not sent corresponding ACKs to the server; and determine a first window length of the sending window based on the UE window length and the first buffer size.
[0066] In an optional implementation, the determining module is further configured to: determine the second window length of the receiving window based on the first window length of the sending window; and feed back a window update packet corresponding to the second window length to the PDCP module. The window update packet is used to send to the server to instruct the server to send data packets according to the second window length.
[0067] In one optional implementation, the determining module is configured to: determine a second buffer size based on the amount of data in the data packet to be sent that has not been acknowledged by the UE with an ACK; and determine a second window size for the receiving window based on a first window size for the sending window and a second buffer size.
[0068] In an optional implementation, the transmission module is further configured to: determine the count of repeated acknowledgments (DUPACK); when the count of DUPACK exceeds a set number, determine whether the selective acknowledgment (SACK) state is enabled; if so, send a query request to the UE, the query request being used to query the sequence number (SN) of the data packets already received by the UE; receive the request response information corresponding to the query request sent by the UE; and, based on the request response information, determine the missing data packets that the UE has not received, and generate a second data packet transmission notification corresponding to the missing data packets, the second data packet transmission notification being used to instruct the UE to send the missing data packets.
[0069] In an optional implementation, the transmission module is further configured to: if no ACK for the data packet to be transmitted is received from the UE after the current timeout period has expired, transmit the first data packet transmission notification to the PDCP module again;
[0070] The current timeout duration is determined by the following steps: obtaining the currently measured round-trip time of the data packet; wherein the round-trip time of the data packet is determined based on the first moment of sending an ACK for the data packet to the server and the second moment of receiving an ACK for the data packet sent by the UE; and determining the current timeout duration based on the round-trip time of the data packet.
[0071] In one optional implementation, the transmission module is further configured to: obtain the first smoothing duration after the previous smoothing; determine the second smoothing duration after the current smoothing based on the round-trip time of the data packet and the first smoothing duration; determine the second duration deviation for the current smoothing based on the round-trip time of the data packet, the second smoothing duration, and the first duration deviation determined in the previous smoothing; and determine the current timeout duration based on the second duration deviation and the second smoothing duration.
[0072] Eighthly, an optional implementation of this disclosure also provides a data transmission apparatus applied to a server, comprising:
[0073] The first sending module is used to send the data packet to be sent to the base station. After the data packet arrives at the Packet Data Convergence Layer Protocol (PDCP) module of the base station, it is transmitted to the Transmission Control Protocol (TCP) proxy module.
[0074] The first receiving module is used to receive the ACK character from the TCP proxy module; ACK is used to acknowledge the data packet to be sent.
[0075] In one optional implementation, the first receiving module is further configured to: receive a data request notification corresponding to the missing sequence number (SN) from the TCP proxy module; and send the data packet corresponding to the missing SN to the TCP proxy module.
[0076] In one optional implementation, the first receiving module is further configured to: receive a window update packet sent by the TCP proxy module; and send data packets according to the second window length indicated by the window update packet.
[0077] Ninthly, an optional implementation of this disclosure also provides a data transmission apparatus, applied to a user equipment (UE), comprising:
[0078] The second receiving module is used to receive data packets to be sent by the Transmission Control Protocol TCP proxy module through the Packet Data Convergence Layer Protocol (PDCP) module;
[0079] The second sending module is used to generate an ACK character for the data packet to be sent and send the ACK for the data packet to be sent to the TCP proxy module.
[0080] In one alternative implementation, the second sending module is further configured to: send the UE window length to the TCP proxy module.
[0081] In one optional implementation, the second receiving module is further configured to: receive a query request sent by the TCP proxy module; determine the sequence number (SN) of the received data packet based on the query request; generate request response information according to the SN of the received data packet, and send the request response information to the TCP proxy module; and receive missing data packets sent by the TCP proxy module through the PDCP module.
[0082] In a tenth aspect, this disclosure provides a processor-readable storage medium storing a computer program that, when executed by a processor, performs the steps of the data transmission method as described in the first aspect or any embodiment described above; or performs the steps of the data transmission method as described in the second aspect or any embodiment described above; or performs the steps of the data transmission method as described in the third aspect or any embodiment described above.
[0083] The data transmission method, device, apparatus, and storage medium provided in this disclosure can be applied to a TCP proxy module deployed on a base station. The TCP proxy module obtains data packets to be transmitted from a server via the Packet Data Convergence Protocol (PDCP) module of the base station, and sends an acknowledgment character (ACK) corresponding to the data packets to the PDCP module. The PDCP module sends the ACK back to the server to notify the server that it has received the data packets to be transmitted, enabling the server to update its window in a timely manner and continue transmitting the data packets. Furthermore, the TCP proxy module can transmit a first data packet transmission notification to the PDCP module. This first data packet transmission notification instructs the PDCP module to send the data packets to be transmitted to the User Equipment (UE), thus enabling the transmission of the data packets. In this disclosure, the PDCP module buffers the received data packets to be transmitted in the TCP proxy module. In poor air interface transmission environments, the PDCP module can process data sent from the server in a timely manner, preventing window fullness and bottlenecks, thus ensuring the smooth operation of communication transmission. Additionally, the first data packet transmission notification can control the transmission frequency of the data packets to be transmitted, alleviating network resource constraints.
[0084] To make the above-mentioned objects, features and advantages of this disclosure more apparent and understandable, preferred embodiments are described below in detail with reference to the accompanying drawings. Attached Figure Description
[0085] To more clearly illustrate the technical solutions of the embodiments of this disclosure, the accompanying drawings used in the embodiments will be briefly described below. These drawings are incorporated in and constitute a part of this specification. They illustrate embodiments conforming to this disclosure and, together with the specification, serve to explain the technical solutions of this disclosure. It should be understood that the following drawings only show some embodiments of this disclosure and should not be considered as limiting the scope. Those skilled in the art can obtain other related drawings based on these drawings without creative effort.
[0086] Figure 1 A schematic diagram of the interlayer structure in the related technology is shown;
[0087] Figure 2 A schematic diagram of the interlayer structure in the related technology proposed in this disclosure is shown;
[0088] Figure 3 A flowchart illustrating a data transmission method provided in some embodiments of this disclosure is shown;
[0089] Figure 4 A flowchart illustrating a data transmission method provided in some other embodiments of this disclosure is shown;
[0090] Figure 5 A flowchart illustrating a data transmission method provided in some other embodiments of this disclosure is shown;
[0091] Figure 6 A flowchart illustrating the first interaction process between the TCP proxy module and the server provided in some embodiments of this disclosure is shown.
[0092] Figure 7 A flowchart illustrating the second interaction process between the TCP proxy module and the UE provided in some embodiments of this disclosure is shown.
[0093] Figure 8 This illustration shows a schematic diagram of the handling process in case of packet loss during the second interaction between the TCP proxy module and the UE provided in some embodiments of this disclosure;
[0094] Figure 9 This illustration shows an interactive diagram of a UE establishing a communication connection with a server, provided in some embodiments of this disclosure.
[0095] Figure 10 The present disclosure shows a schematic diagram of the structure of a data transmission device provided in some embodiments;
[0096] Figure 11 The present disclosure shows a schematic diagram of the structure of a data transmission device provided in some embodiments;
[0097] Figure 12The present disclosure shows a schematic diagram of the structure of a data transmission device provided in some embodiments;
[0098] Figure 13 The diagram shows a schematic representation of the structure of a data transmission apparatus provided in some embodiments of this disclosure;
[0099] Figure 14 The diagram shows a schematic representation of the structure of a data transmission apparatus provided in some embodiments of this disclosure;
[0100] Figure 15 A schematic diagram of the structure of a data transmission apparatus provided in some embodiments of this disclosure is shown. Detailed Implementation
[0101] To make the objectives, technical solutions, and advantages of the embodiments of this disclosure clearer, the technical solutions of the embodiments of this disclosure will be clearly and completely described below with reference to the accompanying drawings. Obviously, the described embodiments are only a part of the embodiments of this disclosure, and not all of them. The components of the embodiments of this disclosure described and shown herein can generally be arranged and designed in various different configurations. Therefore, the following detailed description of the embodiments of this disclosure is not intended to limit the scope of the claimed disclosure, but merely represents selected embodiments of this disclosure. All other embodiments obtained by those skilled in the art based on the embodiments of this disclosure without inventive effort are within the scope of protection of this disclosure.
[0102] The following explanations of some terms used in the embodiments of this disclosure are provided to facilitate understanding by those skilled in the art.
[0103] In this disclosure, the term "multiple" refers to two or more objects, and other quantifiers are similar. In this disclosure, the term "and / or" describes the relationship between related objects, indicating that three relationships can exist. For example, A and / or B can represent: A existing alone, A and B existing simultaneously, or B existing alone. The character " / " generally indicates that the preceding and following related objects have an "or" relationship.
[0104] The terms “first,” “second,” and similar terms used in the embodiments of this disclosure do not indicate any order, quantity, or importance, but are merely used to distinguish different thresholds.
[0105] The technical solutions of the embodiments of this disclosure will be clearly and completely described below with reference to the accompanying drawings. Obviously, the described embodiments are only some embodiments of this disclosure, and not all embodiments. Based on the embodiments of this disclosure, all other embodiments obtained by those of ordinary skill in the art without creative effort are within the scope of protection of this disclosure.
[0106] In a wireless network environment, the existing technical structure, from top to bottom, consists of: DirectDrive (DD), Packet Data Convergence Protocol (PDCP), Radio Link Control (RLC), Medium Access Control (MAC), and Physical Layer (PHY). Each layer works together to transmit and process data, ensuring that data can be transmitted securely in the wireless environment.
[0107] See Figure 1 The diagram shown is a schematic of the interlayer structure in the related technology, combined with Figure 1 The data transmission process in related technologies is illustrated by an example. The server can divide the transmission data into multiple data packets and send these data packets sequentially to the base station. After receiving the data packets, the base station's DD module transmits them sequentially through the base station's PDCP module, RLC module, and MAC module to the base station's PHY module. The base station's PHY module then sends the data packets to the user equipment (UE)'s PHY module. The data packets then pass through the UE's MAC module, RLC module, and PDCP module before being transmitted to the UE's DD module, completing the data packet transmission process.
[0108] Generally, under good air interface transmission conditions, the PDCP module can send data packets received from the server to the RLC module in an orderly manner, thus enabling the UE to maintain a good communication status. However, under poor air interface transmission conditions, due to packet loss, lag, or the RLC module not receiving status reports from the peer for a long time when processing data in Acknowledged Mode (AM), the RLC module cannot update its window in a timely manner. This can lead to the PDCP module's sending window being full. In this case, the PDCP module cannot process the data sent from the server in a timely manner, resulting in high latency, packet loss, and communication lag at the terminal, affecting the communication transmission process.
[0109] Based on this, this disclosure sets up a Transmission Control Protocol (TCP) proxy module on the base station, see [link to relevant documentation]. Figure 2 As shown, for Figure 2 The data transmission process is illustrated by example. Figure 2The DD module receives data packets sent by the server and transmits them to the PDCP module. The PDCP module buffers each data packet in the TCP proxy module. When the time comes to send a data packet to the UE, the TCP proxy module transmits the data packet to be sent to the PDCP module. The data packet is processed by the PDCP module, RLC module, and MAC module of the base station before being transmitted to the PHY module of the base station. After processing, the base station PHY module transmits the data packet to the PHY module of the UE. The data packet then undergoes further processing by the UE's MAC module, RLC module, and PDCP module before being transmitted to the DD module of the UE, completing the data transmission process.
[0110] based on Figure 2 This disclosure provides a data transmission method for a TCP proxy module, based on an interlayer structure. The server sends a data packet to be transmitted to the DD module of the base station. The DD module transmits the data packet to the PDCP module, which in turn transmits it to the TCP proxy module. Upon receiving the data packet, the TCP proxy module sends an acknowledgment character (ACK) to the PDCP module. The PDCP module then sends the ACK to the server via the DD module, confirming receipt of the data packet. This allows the server to update its window promptly and continue transmitting data packets, shielding it from the perception of differences in wireless transmission characteristics and enabling control over the server's data packet transmission process. Furthermore, the TCP proxy module can transmit a first data packet transmission notification to the PDCP module, instructing the transmission of the data packet to the user equipment (UE), thus achieving data packet transmission.
[0111] In this disclosure, the PDCP module buffers received data packets to be sent in the TCP proxy module. Even in poor air interface transmission environments, the PDCP module can process data sent from the server in a timely manner, avoiding window fullness or jamming, thus ensuring the smooth progress of communication. Furthermore, the sending frequency of data packets can be controlled through the first data packet sending notification to alleviate network resource constraints.
[0112] The method and apparatus are based on the same inventive concept. Since the methods and apparatus solve problems in similar ways, the implementation of the apparatus and methods can refer to each other, and the repeated parts will not be described again.
[0113] The technical solutions provided in this disclosure are applicable to various systems equipped with non-terrestrial networks (such as satellite networks). For example, applicable systems may include Long Term Evolution (LTE) systems, LTE Frequency Division Duplex (FDD) systems, LTE Time Division Duplex (TDD) systems, Long Term Evolution Advanced (LTE-A) systems, Universal Mobile Telecommunications System (UMTS), Worldwide Interoperability for Microwave Access (WiMAX) systems, 5G New Radio (NR) systems and their evolved communication systems, and 6G (sixth generation mobile communication technology) systems. These systems may include terminal equipment and network equipment. The systems may also include a core network component, such as the Evolved Packet Core (EPC) and the 5G Core Network (5GC).
[0114] The terminal devices involved in the embodiments of this disclosure can be devices that provide voice and / or data connectivity to users, handheld devices with wireless connectivity, or other processing devices connected to a wireless modem. The names of the terminal devices may differ in different systems; for example, in a 5G system, a terminal device can be called User Equipment (UE). Wireless terminal devices can be USB storage devices, other personal computer memory devices, and dongles. They can also communicate with one or more core networks (CNs) via a Radio Access Network (RAN). Wireless terminal devices can be mobile terminal devices, such as mobile phones (or "cellular" phones) and computers with mobile terminal devices. For example, they can be portable, pocket-sized, handheld, computer-embedded, or vehicle-mounted mobile devices that exchange voice and / or data with the radio access network. Examples of such devices include Personal Communication Service (PCS) phones, cordless phones, Session Initiated Protocol (SIP) phones, Wireless Local Loop (WLL) stations, Personal Digital Assistants (PDAs), personal computers, tablets, and Machine-type Communication (MTC) terminal devices. Wireless terminal devices can also be referred to as systems, subscriber units, subscriber stations, mobile stations, mobile devices, remote stations, access points, remote terminals, access terminals, user terminals, user agents, user devices, and wireless access devices and routers / modems that meet the limitations of this definition, but are not limited to these specific embodiments in this disclosure.
[0115] The network devices involved in this disclosure may include base stations and / or core network devices. The base station may include multiple cells providing services to terminals. Depending on the specific application, the base station may also be called an access point, or a device in the access network that communicates with the wireless terminal device via one or more sectors on the air interface, or other names. The network device can be used to exchange received air frames with Internet Protocol (IP) packets, acting as a router between the wireless terminal device and the rest of the access network, where the rest of the access network may include an Internet Protocol (IP) communication network. The network device can also coordinate the attribute management of the air interface. For example, the network devices involved in this disclosure may be evolved network devices (eNBs or e-NodeBs) in long-term evolution (LTE) systems, 5G base stations (gNBs) in next-generation 5G network architectures, or Home evolved Node Bs (HeNBs), relay nodes, femtos, picos, network testing equipment, etc., and are not limited in this disclosure. In some network architectures, network devices may include centralized unit (CU) nodes and distributed unit (DU) nodes, which may also be geographically separated.
[0116] Core network equipment includes devices within the core network (CN) of mobile communication architectures (such as the 3GPP access architecture of 5G networks). The core network, as the bearer network, provides the interface to the data network, offering user equipment (UE) communication connections, authentication, management, policy control, and data service delivery. The CN can further include: Access and Mobility Management Function (AMF), Session Management Function (SMF), Authentication Server Function (AUSF), Policy Control Function (PCF), User Plane Function (UPF), and other network elements. The AMF manages UE access and mobility, primarily responsible for UE authentication, UE mobility management, and UE paging functions.
[0117] Network devices and terminal devices can each use one or more antennas to perform multiple-input multiple-output (MIMO) transmission. MIMO transmission can be single-user MIMO or multi-user MIMO. Depending on the configuration and number of antenna combinations, MIMO transmission can be 2D-MIMO, 3D-MIMO, FD-MIMO, or massive-MIMO, and can also be diversity transmission, precoding transmission, or beamforming transmission, etc.
[0118] Those skilled in the art will understand that, in the above-described method of the specific implementation, the order in which each step is written does not imply a strict execution order and does not constitute any limitation on the implementation process. The specific execution order of each step should be determined by its function and possible internal logic.
[0119] See Figure 3 The diagram shown is a flowchart illustrating a data transmission method provided in an embodiment of this disclosure. This method is applied to a Transmission Control Protocol (TCP) proxy module, which is deployed on a base station. The method includes:
[0120] S301. Obtain the data packets to be sent from the server transmitted by the Packet Data Convergence Layer Protocol (PDCP) module of the base station.
[0121] For example, after the UE triggers the download task, the server divides the data corresponding to the download task into multiple data packets to be sent, and sends the multiple data packets to be sent to the UE through the base station in sequence.
[0122] In practice, the server can send the data packets to be sent to the DD module of the base station. The DD module then transmits the data packets to the PDCP module of the base station. The PDCP module then sends the received data packets to the TCP proxy module. The TCP proxy module buffers received data packets that have not yet been acknowledged by the UE.
[0123] This disclosure also includes S302, sending an acknowledgment character ACK to the PDCP module for the data packet to be sent, the ACK being sent to the server.
[0124] After acquiring the data packet to be sent, the TCP proxy module generates an ACK corresponding to the data packet. This ACK is used to acknowledge receipt of the data packet to the server. The TCP proxy module then sends the ACK to the PDCP module. The PDCP module then forwards the ACK to the server via the DD module, so that the server, upon receiving the ACK, updates its sending window and proceeds with the next data packet transmission.
[0125] Optionally, before sending the ACK corresponding to the data packet to be sent to the PDCP module, the method further includes: detecting that the sequence numbers (SN) of the data packets to be sent within the current acknowledgment period are consecutive, according to the set sequence number acknowledgment period.
[0126] Because packet loss may occur during data transmission, the serial number (SN) of the data packets received by the PDCP module may be discontinuous. In related technologies, the PDCP module directly sends the discontinuous data packets to the RLC module, which will cause the RLC module to be unable to reassemble a complete data packet. As a result, the RLC module cannot transmit the data packet to the MAC module, and the window of the RLC module cannot be updated in time. In this case, the PDCP will be stuck for a long time, which will affect the data transmission process.
[0127] To alleviate the aforementioned problems, the TCP proxy module in this disclosure, after receiving the data packet to be sent but before sending an ACK, can also check whether the serial numbers (SNs) of the data packets to be sent within the current acknowledgment period are consecutive, according to a set sequence number acknowledgment period. If they are consecutive, it sends an ACK corresponding to the data packet to be sent to the PDCP module. The sequence number acknowledgment period can be set according to the actual scenario; for example, it can be 20 data packets, 50 data packets, etc. Assuming the sequence number acknowledgment period is 20 data packets, when the TCP proxy module determines that the number of currently undetected data packets has reached 20, it identifies these 20 undetected data packets as the data packets to be sent within the current acknowledgment period and determines whether the SNs of these 20 data packets are consecutive.
[0128] Optionally, when the serial numbers (SNs) of the data packets to be sent within the current acknowledgment period are detected to be discontinuous, a data request notification corresponding to the missing SN is sent to the PDCP module; the data request notification is used to instruct the server to send the data packets corresponding to the missing SN.
[0129] If the TCP proxy module detects that the serial numbers (SNs) of the data packets to be sent within the current acknowledgment period are discontinuous, it generates a missing SN data request notification and transmits it to the PDCP module. The PDCP module then sends the SN acknowledgment data request notification to the server via the DD module. After receiving the missing SN data request notification, the server retransmits the data packets corresponding to the missing SN to the base station.
[0130] The above process ensures that the data packets sent by the PDCP module are continuous, mitigating packet loss and RLC module processing delays, and guaranteeing data transmission.
[0131] Considering that the rate at which the base station sends data to the UE is generally less than the rate at which the server sends data to the base station, there may be a data packet backlog at the base station. In order to alleviate the above situation, this disclosure may further include, before sending the ACK character corresponding to the data packet to be sent to the PDCP module, determining that the data volume of the acquired data packet to be sent is less than the data volume threshold.
[0132] If it is determined that the amount of data in the acquired data packet to be sent is less than the data amount threshold, it means that the amount of data in the TCP proxy module's current buffer is less than the data amount threshold, and it can continue to receive data packets to be sent from the server. Then, it can actively send an ACK back to the server so that the server can update the window and continue the data packet sending process.
[0133] Conversely, if the amount of data in the acquired data packets to be sent is greater than or equal to the data volume threshold, it means that the amount of data in the TCP proxy module's current cache has reached the data volume threshold and it cannot continue to receive data packets sent by the server. In this case, the TCP proxy module may not send an ACK to the server, and the server will not be able to update the window or continue the data packet sending process.
[0134] The above process allows control over the server's data packet sending process based on the amount of data packets cached by the TCP proxy module, thus alleviating the data accumulation problem of the TCP proxy module.
[0135] This disclosure also includes S303, transmitting a first data packet transmission notification to the PDCP module, the first data packet transmission notification being used to instruct the user equipment (UE) to send a data packet to be transmitted.
[0136] After acquiring the data packet to be sent, a first data packet transmission notification can be generated. This notification instructs the user equipment (UE) to send the data packet to be sent. The first data packet transmission notification is then transmitted to the PDCP module. The PDCP module determines the data packet to be sent from the TCP proxy module, for example, by determining the data packet within the current transmission window according to a preset window size, and sends the current data packet to be sent to the UE through the base station's RLC module, MAC module, and PHY module.
[0137] Optionally, the method further includes: receiving the UE window length sent by the UE; and determining the first window length of the sending window based on the UE window length.
[0138] Transmitting a first data packet transmission notification to the PDCP module includes: determining the current data packet located within a transmission window of a first window length from the data packets to be transmitted; transmitting the first data packet transmission notification corresponding to the current data packet to the PDCP module, wherein the first data packet transmission notification is used to instruct the UE to transmit the current data packet.
[0139] In practice, the UE can send its window length (i.e., UE window size) to the base station and determine the first window size of the transmission window based on the UE window length. For example, the UE window length can be set as the first window size of the transmission window. Alternatively, a window shrinkage amount can be set, and the UE window length can be subtracted from the window shrinkage amount to determine the first window size of the transmission window.
[0140] Then, after determining the first window length, the TCP proxy module identifies the current data packet within the sending window of the first window length from the data packets to be sent; it transmits the first data packet sending notification corresponding to the current data packet to the PDCP module, and the PDCP module sends the current data packet within the sending window of the first window length to the UE.
[0141] This disclosure determines the first window length of the transmission window based on the UE window length, so that the amount of data packets sent by the base station to the UE meets the UE's needs, thereby improving the efficiency of the base station in transmitting data to the UE while ensuring the UE's processing efficiency.
[0142] Optionally, this disclosure also includes: receiving an ACK sent by the UE for the current data packet, and deleting the current data packet from the data packets to be sent to obtain an updated data packet to be sent.
[0143] After sending the current data packet to the UE, the UE can also send an ACK to the base station's TCP proxy module to confirm that the current data packet has been received. When the TCP proxy module receives the ACK, it determines that the current data packet has been received, and can therefore delete the current data packet from the pending data packets to obtain an updated pending data packet. This allows the PDCP module to select the current data packet from the updated pending data packets when sending data packets to the UE next time.
[0144] Optionally, the first window length of the sending window is determined based on the UE window length, including: determining the first buffer size based on the amount of data packets in the data packets to be sent that have not sent corresponding ACKs to the server; and determining the first window length of the sending window based on the UE window length and the first buffer size.
[0145] Considering that the TCP proxy module has buffered data packets to be sent, and that the TCP proxy module sends an ACK to the server after receiving the data packets to be sent, the ACK sending process requires certain network resources, the first window length of the sending window can be determined based on the first buffer size of the TCP proxy module.
[0146] In practice, the first buffer size can be determined based on the serial numbers (SNs) of the data packets. For example, the SN1 of the most recently received data packet to be sent can be determined, as well as the SN2 of the most recently sent ACK to the server. The difference between SN1 and SN2 is the first number of data packets for which the TCP proxy module has not sent a corresponding ACK to the server. The first buffer size can then be determined based on the first number of such data packets.
[0147] For example, if the UE window length is equal to the number of data packets the UE can receive, the first number of unacknowledged data packets can be directly determined as the first buffer size. When the UE window length is equal to the amount of data the UE can receive, the first buffer size can be determined based on the first number of unacknowledged data packets and the baseline size of a single data packet. For instance, if the SN1 of the most recently received data packet to be sent by the TCP proxy module is 30050, and the SN2 of the most recently sent ACK to the server is 30020, then the first number of data packets for which the TCP proxy module has not sent the corresponding ACK to the server is 30. This 30 can then be directly determined as the first buffer size, or 30 can be multiplied by the baseline size of a single data packet to obtain the first buffer size.
[0148] In one approach, the difference between the UE window length and the first buffer size can be used to determine the first window length of the sending window. In another approach, considering that determining the first window length based on the UE window length might result in an excessively large first window length for the TCP proxy module, leading to excessive data caching overhead, a window shrinkage amount can be set to alleviate this problem. This window shrinkage amount can be determined based on network data when network resources are optimal. Then, the first difference between the UE window length and the first buffer size is determined, and the window shrinkage amount is subtracted from this first difference to obtain the first window length of the sending window.
[0149] The above process can determine the optimal first window length, ensuring that the first window length satisfies the needs of both the UE and the TCP proxy module, thus guaranteeing data transmission efficiency.
[0150] Optionally, this disclosure further includes: determining a second window length for the receiving window based on a first window length for the sending window; and sending a window update packet corresponding to the second window length to the PDCP module. The window update packet is used to send to the server to instruct the server to send data packets according to the second window length.
[0151] To avoid excessive data transmission from the server to the base station, which could lead to excessive data caching overhead in the TCP proxy module, a second window length for the receiving window can be determined based on the first window length of the sending window. A window update packet corresponding to the second window length is then generated. This window update packet is sent to the PDCP module, which in turn forwards it to the server via the DD module. Upon receiving the window update packet, the server updates its window size to ensure that subsequent data packets are sent according to the second window length.
[0152] Optionally, the second window length of the receiving window is determined based on the first window length of the sending window, including: determining the second buffer size based on the amount of data in the data packet to be sent that has not been acknowledged by the UE with an ACK; and determining the second window length of the receiving window based on the first window length of the sending window and the second buffer size.
[0153] In implementation, the second buffer size can be determined based on the serial numbers (SNs) of the data packets. For example, the SN1 of the most recently received data packet to be sent and the SN3 of the most recently received ACK sent by the UE can be determined. The difference between SN1 and SN3 is the second number of data packets in the data packet to be sent that have not been acknowledged by the UE's ACK. The second buffer size can then be determined based on this second number. For example, the second number can be directly used as the second buffer size; or, the second buffer size can be determined based on the second number and the baseline size of a single data packet.
[0154] In one approach, the difference between the first window length and the second buffer size can be used to determine the second window length of the receiving window. In another approach, the second difference between the first window length and the second buffer size can be determined, and the window shrinking amount can be subtracted from this second difference to obtain the second window length of the receiving window.
[0155] The effects of the first and second window lengths determined in this disclosure are illustrated by taking a practical scenario as an example. Assuming that the air interface environment is unobstructed, if the UE's capabilities are insufficient, the UE window length reported by the UE will be small. In this case, the first and second window lengths determined in this disclosure will also be small, which can reduce the size of the data packets received by the TCP proxy module from the server and reduce the size of the data packets sent to the UE, so that the buffer size of the TCP proxy module is adapted to the UE's situation.
[0156] The above process, based on the first window length and the second buffer size, determines an optimal second window length. This second window length is then used to control the rate at which the server sends data, alleviating the data backlog problem in the TCP proxy module. Simultaneously, this disclosure determines the first and second window lengths based on the UE window length, enabling the determination of the size of data packets received from the server and sent to the UE based on air interface quality. This ensures both efficient transmission and efficient utilization of the air interface bandwidth.
[0157] Optionally, this disclosure further includes: determining the count of duplicate acknowledgments (DUPACK); when the count of DUPACK exceeds a set number, determining whether the selective acknowledgment (SACK) state is enabled; if so, sending a query request to the UE, the query request being used to query the sequence number (SN) of the data packets already received by the UE; receiving the request response information corresponding to the query request sent by the UE; based on the request response information, determining the missing data packets that the UE has not received, and generating a second data packet transmission notification corresponding to the missing data packets, the second data packet transmission notification being used to instruct the UE to send the missing data packets.
[0158] The DUPACK count refers to the number of times the UE acknowledges the same data packet multiple times during data transmission. For example, if the UE receives three consecutive ACKs from the UE for a data packet with SN 30040 to be transmitted, the DUPACK count is 3. If the DUPACK count exceeds a set number, the probability of packet loss by the UE is high, so a fast retransmission mechanism can be triggered to resend the data packet to be transmitted.
[0159] When the count of DUPACK exceeds the set number, determine whether the selective acknowledgment SACK state is enabled. If it is not enabled, the TCP proxy module can send all the buffered data packets to be sent to the UE.
[0160] If the SACK state is enabled, the TCP proxy module can send data packets that the UE has not received, without having to resend all data packets. Specifically, when the SACK state is enabled, a query request is sent to the UE. Based on the query request, the UE determines the sequence number (SN) of the received data packets; the UE generates a request response based on the SN and sends it to the TCP proxy module. Based on the request response, the TCP proxy module identifies the missing data packets that the UE has not received and generates a second data packet transmission notification corresponding to the missing data packets. The PDCP module then sends the missing data packets to the UE through the RLC module, MAC module, and PHY module based on the second data packet transmission notification.
[0161] The above process can trigger a fast retransmission mechanism when packet loss occurs in the UE, and resend the missing data packets to the UE to ensure data transmission.
[0162] Optionally, this disclosure also includes: if no ACK for the data packet to be sent from the UE is received after the current timeout period, a first data packet sending notification is transmitted to the PDCP module again.
[0163] The current timeout duration is determined by the following steps: obtaining the currently measured round-trip time of the data packet; wherein the round-trip time of the data packet is determined based on the first moment of sending an ACK for the data packet to the server and the second moment of receiving an ACK for the data packet sent by the UE; and determining the current timeout duration based on the round-trip time of the data packet.
[0164] This disclosure includes a timeout retransmission mechanism, which means that if no ACK for the data packet to be sent from the UE is received after the timeout period, the data packet to be sent is retransmitted to the UE, that is, the first data packet sending notification is transmitted to the PDCP module again, and the PDCP module sends the data packet to be sent to the UE again.
[0165] During implementation, the current timeout duration can be determined based on the round-trip time to alleviate the problem of slow ACK responses caused by network resource constraints and improve the triggering accuracy of the timeout retransmission mechanism.
[0166] During data transmission, the round-trip time (RTT) of the data packets to be transmitted can be measured in real time, and the latest measured RTT can be stored. The RTT is determined based on the first moment of sending an ACK to the server for the data packet and the second moment of receiving an ACK from the UE for the same data packet. The RTT can then be used as the current timeout duration; alternatively, a delay can be set, and the sum of the RTT and the delay can be used as the current timeout duration.
[0167] Optionally, the current timeout duration is determined based on the round-trip time of the data packet, including: obtaining the first smoothing duration after the last smoothing; determining the second smoothing duration after the current smoothing based on the round-trip time of the data packet and the first smoothing duration; determining the second duration deviation for the current smoothing based on the round-trip time of the data packet, the second smoothing duration, and the first duration deviation determined in the last smoothing; and determining the current timeout duration based on the second duration deviation and the second smoothing duration.
[0168] In implementation, the round-trip time of data packets and the first smoothing duration can be weighted and summed to obtain the second smoothing duration after the current smoothing. The absolute value of the difference between the second smoothing duration and the round-trip time of data packets can be determined. This absolute value can then be weighted and summed with the previously determined first duration deviation to obtain the current second duration deviation. Finally, the sum of the second duration deviation and the second smoothing duration can be determined as the current timeout duration.
[0169] For example, the current timeout duration RTOs can be determined according to the following formulas (1) to (3):
[0170] RTTs=a×RTTs' + b×RTTm (1)
[0171] RTTd=c×RTTd'+d×Abs(RTTs-RTTm) (2)
[0172] RTOs=RTTs+RTTd (3)
[0173] Where a, b, c, and d are the set weight parameters, the sum of a and b equals 1, the sum of c and d equals 1, for example a can be 7 / 8, b can be 1 / 8, c can be 3 / 4, and d can be 1 / 4. RTTs' is the first smoothing duration after the last smoothing, RTTm is the round-trip time of the data packet obtained by the current measurement, RTTs is the second smoothing duration after the current smoothing, RTTd' is the first duration deviation determined in the last time, RTTd is the second duration deviation in the current time, and RTOs is the current timeout duration.
[0174] In specific implementation, before sending the data packet to be sent to the UE, this disclosure further includes: receiving a handshake packet carrying the synchronization sequence number SYN sent by the UE, and adjusting the communication state from the closed state to the first connected state; sending the handshake packet carrying SYN to the server; receiving a handshake packet carrying ACK and SYN sent by the server, and adjusting the communication state from the first connected state to the second connected state; and sending the handshake packet carrying ACK and SYN to the UE.
[0175] After triggering a download task, the UE can establish a connection with the server through the TCP proxy module. Specifically, the UE can generate a handshake packet carrying the Synchronize Sequence Number (SYN) and send it to the TCP proxy module. The TCP proxy module receives the SYN handshake packet and adjusts the communication state from the closed state to the first connected state. The TCP proxy module then sends the SYN handshake packet to the server. The server generates a handshake packet carrying both ACK and SYN and sends it to the TCP proxy module. The TCP proxy module receives the ACK and SYN handshake packet and adjusts the communication state from the first connected state to the second connected state. The TCP proxy module then sends the ACK and SYN handshake packet to the UE. Through this process, a communication connection is established between the UE and the server.
[0176] Subsequently, when the TCP proxy module's communication state is in the second connection state, it acquires the data packets to be sent from the server transmitted by the base station's PDCP module. If the TCP proxy module's communication state is not in the second connection state, it neither receives the data packets to be sent from the server nor sends data packets to the UE.
[0177] Based on the same concept, this disclosure also provides a data transmission method, see [link to relevant documentation]. Figure 4The diagram shown is a flowchart of a data transmission method provided in an embodiment of this disclosure. The method is applied to a server and includes the following steps:
[0178] S401. Send the data packet to be sent to the base station. After the data packet arrives at the Packet Data Convergence Layer Protocol (PDCP) module of the base station, it is transmitted to the Transmission Control Protocol (TCP) proxy module.
[0179] S402, Receive the ACK character from the TCP proxy module; ACK is used to acknowledge the data packet to be sent.
[0180] Optionally, it also includes: receiving a data request notification corresponding to the missing sequence number (SN) from the TCP proxy module; and sending the data packet corresponding to the missing SN to the TCP proxy module.
[0181] Optionally, it also includes: receiving window update packets sent by the TCP proxy module; and sending data packets according to the second window length indicated by the window update packets.
[0182] Optionally, it also includes: receiving a handshake packet carrying SYN sent by the TCP proxy module; wherein the handshake packet carrying SYN is generated and sent by the user equipment (UE); generating a handshake packet carrying ACK and SYN, and sending the handshake packet carrying ACK and SYN to the TCP proxy module, wherein the handshake packet carrying ACK and SYN is used by the TCP proxy module to send to the UE, and the handshake packet carrying ACK and SYN is used to establish a communication connection between the UE and the server.
[0183] Based on the same concept, this disclosure also provides a data transmission method, see [link to relevant documentation]. Figure 5 The diagram shows a flowchart of a data transmission method provided in this embodiment of the present disclosure. The method is applied to a user equipment (UE) and includes the following steps:
[0184] S501: Receive the data packet to be sent by the Transmission Control Protocol TCP proxy module through the Packet Data Convergence Layer Protocol (PDCP) module;
[0185] S502. Generate an ACK character for the data packet to be sent and send the ACK for the data packet to be sent to the TCP proxy module.
[0186] Optionally, it also includes sending the UE window length to the TCP proxy module.
[0187] Optionally, it also includes: receiving a query request sent by the TCP proxy module; determining the sequence number (SN) of the received data packet based on the query request; generating request-response information based on the SN of the received data packet, and sending the request-response information to the TCP proxy module; and receiving missing data packets sent by the TCP proxy module through the PDCP module.
[0188] Optionally, it also includes: generating a handshake packet carrying a synchronization sequence number SYN in response to a triggered download task; sending the handshake packet carrying SYN to the base station's transmission control protocol TCP proxy module; the handshake packet carrying SYN being sent by the TCP proxy module to the server; and receiving a handshake packet carrying ACK and SYN sent by the TCP proxy module, wherein the handshake packet carrying ACK and SYN is sent by the server to establish a communication connection between the UE and the server.
[0189] The following description, combining the first interaction process between the base station's TCP proxy module and the server, and the second interaction process between the TCP proxy module and the UE, provides an exemplary illustration of the data transmission method. The interaction processes between the various modules within the base station, and the interaction process between the TCP proxy module and the PDCP module, can be found in the above description. Figure 2 The explanation is not elaborated here. See also Figure 6 As shown, the first interaction process between the TCP proxy module and the server includes:
[0190] S601, The server sends the data packet to be sent within the current window of the second window length to the base station.
[0191] S602. After receiving the data packet to be sent, the TCP proxy module sends an ACK to the server for the data packet to be sent.
[0192] S603. After receiving the ACK, the server updates the data packets to be sent in the current window of the second window length, and continues to send the updated data packets to be sent in the current window to the base station until all data packets to be sent are sent to the base station.
[0193] During data transmission, the TCP proxy module can update the first and second window lengths based on the UE window length reported by the UE. After the second window length is updated, the first interaction process also includes:
[0194] S604, the TCP proxy module sends a window update packet to the server corresponding to the updated second window length.
[0195] S605. The server updates the second window length according to the window update packet and sends data packets to the base station according to the updated second window length.
[0196] During data transmission, data packets sent from the server to the base station may be lost. In this case, the first interaction process also includes:
[0197] S606. When the base station detects that the serial numbers (SNs) of the data packets to be sent within the current confirmation period are discontinuous, it sends a data request notification to the server corresponding to the missing SN.
[0198] S607. The server sends the data packet corresponding to the missing SN to the base station.
[0199] See Figure 7 As shown, the second interaction process between the TCP proxy module and the UE includes:
[0200] S701, the TCP proxy module sends the current data packet within the first window length to the UE.
[0201] S702, The UE receives the current data packet and generates an ACK for the current data packet.
[0202] S703, UE sends the ACK of the current data packet to the TCP proxy module.
[0203] After receiving the ACK for the current data packet, the S704 TCP proxy module deletes the current data packet, updates the current data packet in the first window of the sending window, and continues to send the updated current data packet to the UE until all data packets to be sent are sent to the UE.
[0204] The second interaction process also includes:
[0205] S705, UE sends the UE window length to the TCP proxy module.
[0206] S706 The TCP proxy module determines the updated first window length based on the UE window length, and determines the current data packet located within the sending window based on the updated first window length.
[0207] The TCP proxy module can also determine the second window length based on the first window length.
[0208] During data transmission, data packets sent from the base station to the UE may be lost. In one scenario, a fast retransmission process is triggered; in another, a timeout retransmission process is triggered. See also... Figure 8 As shown, the second interaction process also includes the fast retransmission process from S801 to S806, and the timeout retransmission process in S807:
[0209] S801: When the TCP proxy module determines that the count of DUPACK is greater than the set number and that the selective acknowledgment (SACK) state is enabled, it generates a query request.
[0210] S802, the TCP proxy module sends the query request to the UE.
[0211] S803. The UE determines the sequence number (SN) of the received data packet based on the query request; and generates request response information based on the SN of the received data packet.
[0212] S804, the UE sends the request response information to the TCP proxy module.
[0213] The S805 and TCP proxy modules determine the missing data packets that the UE did not receive based on the request and response information.
[0214] The S806 TCP proxy module sends the missing data packet to the UE.
[0215] S807: If the TCP proxy module does not receive an ACK from the UE for the current data packet after the current timeout period, it will resend the current data packet to the UE.
[0216] A communication connection can be established between the UE and the server before data transmission. See also Figure 9 As shown, the process of establishing a communication connection includes: the UE changing from the CLOSED state to the SYN-SEND state (which has been sent), and the UE (i.e., ...) Figure 9 The terminal in the process generates a handshake packet carrying SYN and sends the handshake packet carrying SYN to the TCP proxy module (i.e., the terminal in the process). Figure 9 (Hereinafter referred to as the proxy). The TCP proxy module's communication state changes from the CLOSED state to the first connection state, which could be, for example, the SYN1 state. The TCP proxy module sends a handshake packet carrying SYN to the server. The server first changes from the CLOSED state to the LISTEN state, and upon receiving a handshake packet carrying SYN, changes from the LISTEN state to the SYN-RCVD state (synchronized received SYN-RCVD), and the server generates a handshake packet carrying ACK and SYN. The server sends this handshake packet carrying ACK and SYN to the TCP proxy module. The TCP proxy module's communication state changes from the first connection state to the second connection state, which could be, for example, the SYN2 state. The TCP proxy module sends a handshake packet carrying ACK and SYN to the UE. The UE's state changes from the SYN-SEND state to the ESTABLISHED state, and the server's state changes from the SYN-RCVD state to the ESTABLISHED state.
[0217] Through the above process, a communication connection is established between the UE and the server. When the TCP proxy module is in the second connection state (i.e., the SYN2 state), the UE can send an ACK to the TCP proxy module after receiving the current data packet, and the TCP proxy module can also send an ACK to the server after receiving the data packet to be sent; in addition, the UE and the TCP proxy module can send data to each other, and the TCP proxy module and the server can also send data to each other.
[0218] Reference Figure 10 The diagram shown is a schematic of a data transmission device provided in an embodiment of this disclosure. A Transmission Control Protocol (TCP) proxy module is deployed on the base station and may include:
[0219] The memory 1010 is used to store computer programs; the transceiver 1020 is used to receive and send data under the control of the processor 1030.
[0220] Among them, Figure 10 In this context, the bus architecture can include any number of interconnected buses and bridges, specifically linking various circuits together, represented by one or more processors (processor 1030) and memory (memory 1010). The bus architecture can also link various other circuits such as peripheral devices, voltage regulators, and power management circuits, which are well known in the art and therefore will not be described further herein. The bus interface provides an interface. The transceiver 1020 can be multiple elements, including transmitters and receivers, providing a unit for communicating with various other devices over transmission media, including wireless channels, wired channels, optical fibers, etc. The processor 1030 is responsible for managing the bus architecture and general processing, and the memory 1010 can store data used by the processor 1030 during operation.
[0221] The processor 1030 can be a central processing unit (CPU), an application-specific integrated circuit (ASIC), a field-programmable gate array (FPGA), or a complex programmable logic device (CPLD). The processor can also adopt a multi-core architecture.
[0222] The processor 1030 invokes a computer program stored in the memory 1010 to execute the steps of any method provided in the embodiments of this disclosure according to the obtained executable instructions, for example:
[0223] Obtain the data packets to be sent from the server transmitted by the Packet Data Convergence Protocol (PDCP) module of the base station;
[0224] The system sends an acknowledgment character (ACK) to the PDCP module for the data packet to be sent, which is used to send the data packet to the server; and it also transmits a first data packet sending notification to the PDCP module, which is used to instruct the system to send the data packet to be sent to the user equipment (UE).
[0225] In one possible implementation, before sending the ACK corresponding to the data packet to be sent to the PDCP module, the processor 1030 is further configured to: detect that the sequence numbers (SN) of the data packets to be sent within the current acknowledgment period are consecutive according to the set sequence number acknowledgment period.
[0226] In an optional implementation, the processor 1030 is further configured to: when it detects that the SN of the data packet to be sent within the current acknowledgment period is discontinuous, send a data request notification to the PDCP module corresponding to the missing SN; the data request notification is used to instruct the server to send the data packet corresponding to the missing SN.
[0227] In one optional implementation, before sending the ACK character corresponding to the data packet to be sent to the PDCP module, the processor 1030 is further configured to: determine that the data volume of the acquired data packet to be sent is less than the data volume threshold.
[0228] In an optional implementation, the processor 1030 is further configured to: receive the UE window length sent by the UE; and determine the first window length of the sending window based on the UE window length;
[0229] Transmitting a first data packet transmission notification to the PDCP module includes: determining the current data packet located within a transmission window of a first window length from the data packets to be transmitted; transmitting the first data packet transmission notification corresponding to the current data packet to the PDCP module, wherein the first data packet transmission notification is used to instruct the UE to transmit the current data packet.
[0230] In an optional implementation, the processor 1030 is further configured to: receive an ACK sent by the UE for the current data packet, and delete the current data packet from the data packets to be sent to obtain an updated data packet to be sent.
[0231] In one optional implementation, determining the first window length of the transmission window based on the UE window length includes:
[0232] The first buffer size is determined based on the amount of data packets in the data packets to be sent that have not yet sent corresponding ACKs to the server;
[0233] The first window length of the transmission window is determined based on the UE window length and the first buffer size.
[0234] In an optional implementation, the processor 1030 is further configured to:
[0235] The second window length of the receiving window is determined based on the first window length of the sending window;
[0236] The PDCP module sends a window update packet corresponding to the second window length. This window update packet is sent to the server to instruct the server to send data packets according to the second window length.
[0237] In one optional implementation, determining the second window length of the receiving window based on the first window length of the sending window includes:
[0238] The second buffer size is determined based on the amount of data in the data packets to be sent that have not been acknowledged by the UE with an ACK.
[0239] The second window length of the receiving window is determined based on the first window length and the second buffer size of the sending window.
[0240] In an optional implementation, the processor 1030 is further configured to:
[0241] Determine the count of duplicate acknowledgments (DUPACKs);
[0242] When the count of DUPACK exceeds the set number, determine whether the selective confirmation SACK state is in the enabled state;
[0243] If so, a query request is sent to the UE. The query request is used to query the sequence number (SN) of the data packets that the UE has received.
[0244] Receive the request response information corresponding to the query request sent by the UE;
[0245] Based on the request response information, the missing data packets that the UE did not receive are determined, and a second data packet sending notification corresponding to the missing data packets is generated. The second data packet sending notification is used to instruct the UE to send the missing data packets.
[0246] In an optional implementation, the processor 1030 is further configured to: transmit the first data packet sending notification to the PDCP module again when no ACK for the data packet to be sent from the UE is received after the current timeout period has expired;
[0247] The current timeout duration is determined according to the following steps:
[0248] Obtain the round-trip time of the data packet obtained from the current measurement; where the round-trip time of the data packet is determined based on the first moment when the ACK for the data packet is sent to the server and the second moment when the ACK for the data packet is received from the UE;
[0249] Determine the current timeout duration based on the round-trip time of the data packets.
[0250] In one optional implementation, determining the current timeout duration based on the round-trip time of the data packets includes:
[0251] Get the duration of the first smoothing after the previous smoothing;
[0252] The second smoothing duration after the current smoothing is determined based on the round-trip time of the data packets and the first smoothing duration;
[0253] The second time deviation is determined based on the round-trip time of the data packet, the second smoothing time, and the first time deviation determined in the previous time.
[0254] The current timeout duration is determined based on the second duration deviation and the second smoothing duration.
[0255] Reference Figure 11 The diagram shown is a schematic representation of a data transmission device according to an embodiment of this disclosure. The device can be deployed with a server and may include: a memory 1110 for storing computer programs; and a transceiver 1120 for receiving and transmitting data under the control of a processor 1130.
[0256] Among them, Figure 11 In this context, the bus architecture can include any number of interconnected buses and bridges, specifically linking various circuits together, represented by one or more processors (processor 1130) and memory (memory 1110). The bus architecture can also link together various other circuits such as peripheral devices, voltage regulators, and power management circuits, which are well known in the art and therefore will not be described further herein. The bus interface provides an interface. The transceiver 1120 can be multiple elements, including transmitters and receivers, providing a unit for communicating with various other devices over transmission media, including wireless channels, wired channels, optical fibers, etc. The processor 1130 is responsible for managing the bus architecture and general processing, and the memory 1110 can store data used by the processor 1130 during operation.
[0257] The processor 1130 can be a central processing unit (CPU), an application-specific integrated circuit (ASIC), a field-programmable gate array (FPGA), or a complex programmable logic device (CPLD). The processor can also adopt a multi-core architecture.
[0258] Processor 1130 invokes a computer program stored in memory 1110 to execute the steps of any method provided in the embodiments of this disclosure according to the obtained executable instructions, for example:
[0259] The data packet to be sent is sent to the base station. After arriving at the base station's Packet Data Convergence Layer Protocol (PDCP) module, the data packet is transmitted to the Transmission Control Protocol (TCP) proxy module.
[0260] Receive the ACK character from the TCP proxy module; ACK is used to acknowledge data packets to be sent.
[0261] In one alternative implementation, the processor 1130 is further configured to:
[0262] Receive data request notifications from the TCP proxy module corresponding to the missing sequence number (SN);
[0263] Send the data packet corresponding to the missing SN to the TCP proxy module.
[0264] In an optional implementation, the processor 1130 is further configured to:
[0265] Receive window update packets sent by the TCP proxy module;
[0266] Data packets are sent according to the second window length indicated by the window update packet.
[0267] Reference Figure 12 The diagram shown is a schematic representation of a data transmission device according to an embodiment of this disclosure. This device can be used to deploy a user equipment (UE) and may include: a memory 1210 for storing computer programs; and a transceiver 1220 for receiving and transmitting data under the control of a processor 1230.
[0268] Among them, Figure 12 In this context, the bus architecture may include any number of interconnected buses and bridges, specifically linking various circuits together, represented by one or more processors (processor 1230) and memory (memory 1210). The bus architecture may also link together various other circuits such as peripheral devices, voltage regulators, and power management circuits, which are well known in the art and therefore will not be described further herein. The bus interface provides an interface. The transceiver 1220 may be multiple elements, including transmitters and receivers, providing a unit for communicating with various other devices over transmission media, including wireless channels, wired channels, optical fibers, etc. The processor 1230 is responsible for managing the bus architecture and general processing, and the memory 1210 may store data used by the processor 1230 during operation.
[0269] The processor 1230 can be a central processing unit (CPU), an application-specific integrated circuit (ASIC), a field-programmable gate array (FPGA), or a complex programmable logic device (CPLD). The processor can also adopt a multi-core architecture.
[0270] The processor 1230 invokes a computer program stored in the memory 1210 to execute the steps of any of the methods provided in the embodiments of this disclosure according to the obtained executable instructions, for example:
[0271] Receive data packets to be sent by the Transmission Control Protocol (TCP) proxy module through the Packet Data Convergence Layer (PDCP) module;
[0272] Generate an acknowledgment character (ACK) for the data packet to be sent, and send the ACK for the data packet to be sent to the TCP proxy module.
[0273] In one alternative implementation, the processor 1230 is further configured to: send the UE window length to the TCP proxy module.
[0274] In an optional implementation, the processor 1230 is further configured to: receive a query request sent by the TCP proxy module; determine the sequence number (SN) of the received data packet based on the query request; generate request response information according to the SN of the received data packet, and send the request response information to the TCP proxy module; and receive missing data packets sent by the TCP proxy module through the PDCP module.
[0275] See Figure 13 The diagram shown is a schematic of a data transmission device provided in an embodiment of this disclosure. This device can be applied to a Transmission Control Protocol (TCP) proxy module, which is deployed on a base station. The device includes:
[0276] The acquisition module 1301 is used to acquire the data packets to be sent from the server transmitted by the Packet Data Convergence Layer Protocol (PDCP) module of the base station;
[0277] The transmission module 1302 is used to send an acknowledgment character ACK to the PDCP module for the data packet to be sent, the ACK being sent to the server; and to transmit a first data packet sending notification to the PDCP module, the first data packet sending notification being used to instruct the user equipment UE to send the data packet to be sent.
[0278] In one optional implementation, before sending the ACK corresponding to the data packet to be sent to the PDCP module, the transmission module 1302 is further configured to: detect that the sequence numbers (SN) of the data packets to be sent within the current acknowledgment period are consecutive according to the set sequence number acknowledgment period.
[0279] In an optional implementation, the transmission module 1302 is further configured to: when the SN of the data packet to be sent within the current acknowledgment period is detected to be discontinuous, send a data request notification to the PDCP module corresponding to the missing SN; the data request notification is used to instruct the server to send the data packet corresponding to the missing SN.
[0280] In one optional implementation, before sending the ACK character corresponding to the data packet to be sent to the PDCP module, the transmission module 1302 is further configured to: determine that the data volume of the acquired data packet to be sent is less than the data volume threshold.
[0281] In an optional implementation, it further includes: a determining module 1303, configured to receive the UE window length sent by the UE; and determine the first window length of the sending window based on the UE window length;
[0282] The transmission module is used to: determine the current data packet located within the transmission window of the first window length from the data packets to be transmitted; and transmit the first data packet transmission notification corresponding to the current data packet to the PDCP module, the first data packet transmission notification being used to instruct the UE to send the current data packet.
[0283] In an optional implementation, the transmission module 1302 is further configured to: receive an ACK sent by the UE for the current data packet, and delete the current data packet from the data packet to be sent to obtain an updated data packet to be sent.
[0284] In one optional implementation, the determining module 1303 is used to:
[0285] The first buffer size is determined based on the amount of data packets in the data packets to be sent that have not yet sent corresponding ACKs to the server;
[0286] The first window length of the transmission window is determined based on the UE window length and the first buffer size.
[0287] In an optional implementation, the determining module 1303 is further configured to:
[0288] The second window length of the receiving window is determined based on the first window length of the sending window;
[0289] The PDCP module sends a window update packet corresponding to the second window length. This window update packet is sent to the server to instruct the server to send data packets according to the second window length.
[0290] In one optional implementation, the determining module 1303 is used to:
[0291] The second buffer size is determined based on the amount of data in the data packets to be sent that have not been acknowledged by the UE with an ACK.
[0292] The second window length of the receiving window is determined based on the first window length and the second buffer size of the sending window.
[0293] In an optional implementation, the transmission module 1302 is further configured to:
[0294] Determine the count of duplicate acknowledgments (DUPACKs);
[0295] When the count of DUPACK exceeds the set number, determine whether the selective confirmation SACK state is in the enabled state;
[0296] If so, a query request is sent to the UE. The query request is used to query the sequence number (SN) of the data packets that the UE has received.
[0297] Receive the request response information corresponding to the query request sent by the UE;
[0298] Based on the request response information, the missing data packets that the UE did not receive are determined, and a second data packet sending notification corresponding to the missing data packets is generated. The second data packet sending notification is used to instruct the UE to send the missing data packets.
[0299] In an optional implementation, the transmission module 1302 is further configured to: transmit the first data packet transmission notification to the PDCP module again when no ACK for the data packet to be transmitted is received from the UE after the current timeout period has expired;
[0300] The current timeout duration is determined according to the following steps:
[0301] Obtain the round-trip time of the data packet obtained from the current measurement; where the round-trip time of the data packet is determined based on the first moment when the ACK for the data packet is sent to the server and the second moment when the ACK for the data packet is received from the UE;
[0302] Determine the current timeout duration based on the round-trip time of the data packets.
[0303] In an optional implementation, the transmission module 1302 is further configured to:
[0304] Get the duration of the first smoothing after the previous smoothing;
[0305] The second smoothing duration after the current smoothing is determined based on the round-trip time of the data packets and the first smoothing duration;
[0306] The second time deviation is determined based on the round-trip time of the data packet, the second smoothing time, and the first time deviation determined in the previous time.
[0307] The current timeout duration is determined based on the second duration deviation and the second smoothing duration.
[0308] See Figure 14 The diagram shown is a schematic representation of a data transmission apparatus provided in an embodiment of this disclosure. This apparatus can be applied to a server and includes:
[0309] The first sending module 1401 is used to send the data packet to be sent to the base station. After the data packet arrives at the Packet Data Convergence Layer Protocol (PDCP) module of the base station, it is transmitted to the Transmission Control Protocol (TCP) proxy module.
[0310] The first receiving module 1402 is used to receive the acknowledgment character ACK from the TCP proxy module; ACK is used to acknowledge the data packet to be sent.
[0311] In one optional embodiment, the first receiving module 1402 is further configured to: receive a data request notification corresponding to the missing sequence number SN from the TCP proxy module; and send the data packet corresponding to the missing SN to the TCP proxy module.
[0312] In an optional implementation, the first receiving module 1402 is further configured to: receive a window update packet sent by the TCP proxy module; and send data packets according to the second window length indicated by the window update packet.
[0313] See Figure 15 The diagram shown is a schematic representation of a data transmission apparatus provided in an embodiment of this disclosure. This apparatus can be applied to a UE and includes:
[0314] The second receiving module 1501 is used to receive data packets to be sent by the Transmission Control Protocol TCP proxy module through the Packet Data Convergence Layer Protocol (PDCP) module;
[0315] The second sending module 1502 is used to generate an acknowledgment character ACK for the data packet to be sent, and send the ACK for the data packet to be sent to the TCP proxy module.
[0316] In one optional implementation, the second sending module 1502 is further configured to: send the UE window length to the TCP proxy module.
[0317] In an optional implementation, the second receiving module 1501 is further configured to: receive a query request sent by the TCP proxy module; determine the sequence number (SN) of the received data packet based on the query request; generate request response information according to the SN of the received data packet, and send the request response information to the TCP proxy module; and receive missing data packets sent by the TCP proxy module through the PDCP module.
[0318] It should be noted that the division of units in the embodiments of this disclosure is illustrative and only represents one logical functional division. In actual implementation, other division methods may be used. Furthermore, the functional units in the various embodiments of this disclosure 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 units described above can be implemented in hardware or as software functional units.
[0319] 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 processor-readable storage medium. Based on this understanding, the technical solution of this disclosure, 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 several instructions to cause a computer device (which may be a personal computer, server, or network device, etc.) or processor to execute all or part of the steps of the methods of the various embodiments of this disclosure. The aforementioned storage medium includes various media capable of storing program code, such as USB flash drives, portable hard drives, read-only memory (ROM), random access memory (RAM), magnetic disks, or optical disks.
[0320] It should be noted that the apparatus provided in this embodiment can implement all the method steps implemented in the above method embodiment and can achieve the same technical effect. Therefore, the parts and beneficial effects that are the same as those in the method embodiment will not be described in detail here.
[0321] On the other hand, embodiments of this disclosure also provide a processor-readable storage medium storing a computer program for causing a computer to execute the data transmission methods provided in the above embodiments.
[0322] It should be noted that the processor-readable storage medium provided in this embodiment can implement all the method steps implemented in the above method embodiments and achieve the same technical effect. Therefore, the parts and beneficial effects that are the same as those in the method embodiments will not be described in detail here.
[0323] Processor-readable storage media can be any available medium or data storage device that a computer can access, including but not limited to magnetic storage (such as floppy disks, hard disks, magnetic tapes, magneto-optical disks (MOs), etc.), optical storage (such as CDs, DVDs, BDs, HVDs, etc.), and semiconductor storage (such as ROMs, EPROMs, EEPROMs, non-volatile memory (NAND flash), solid-state drives (SSDs)).
[0324] This disclosure also provides a computer program product that, when invoked by a computer, causes the computer to execute the steps of the data sending method described above.
[0325] Those skilled in the art will understand that embodiments of this disclosure can be provided as methods, systems, or computer program products. Therefore, this disclosure can take the form of a completely hardware embodiment, a completely software embodiment, or an embodiment combining software and hardware aspects. Furthermore, this disclosure can take the form of a computer program product embodied on one or more computer-usable storage media (including, but not limited to, disk storage and optical storage) containing computer-usable program code.
[0326] This disclosure is described with reference to flowchart illustrations and / or block diagrams of methods, apparatus (systems), and computer program products according to embodiments of this disclosure. It will be understood that each block of the flowchart illustrations and / or block diagrams, and combinations of blocks in the flowchart illustrations and / or block diagrams, can be implemented by computer-executable instructions. These computer-executable instructions can be provided to a processor of a general-purpose computer, special-purpose computer, embedded processor, or other programmable data processing apparatus to produce a machine, such that the instructions, which execute via the processor of the computer or other programmable data processing apparatus, generate instructions for implementing the flowchart illustrations and / or block diagrams. Figure 1 One or more processes and / or boxes Figure 1 A device that provides the functions specified in one or more boxes.
[0327] These processor-executable instructions may also be stored in a processor-readable memory that can direct a computer or other programmable data processing device to operate in a particular manner, such that the instructions stored in the processor-readable memory produce an article of manufacture including instruction means, which are implemented in a process Figure 1 One or more processes and / or boxes Figure 1 The function specified in one or more boxes.
[0328] These processors can execute instructions that can also be loaded onto a computer or other programmable data processing device, causing a series of operational steps to be performed on the computer or other programmable device to produce a computer-implemented process, thereby providing instructions that execute on the computer or other programmable device for implementing the process. Figure 1 One or more processes and / or boxes Figure 1 The steps of the function specified in one or more boxes.
[0329] Obviously, those skilled in the art can make various modifications and variations to this disclosure without departing from its spirit and scope. Therefore, if such modifications and variations fall within the scope of the claims of this disclosure and their equivalents, this disclosure is also intended to include such modifications and variations.
Claims
1. A data transmission method, characterized by, An application to a Transmission Control Protocol (TCP) proxy module, the TCP proxy module being deployed on a base station, comprising: Obtain the data packets to be sent from the server transmitted by the Packet Data Convergence Protocol (PDCP) module of the base station; The PDCP module sends back the acknowledgment character ACK corresponding to the data packet to be sent, and the ACK is used to send to the server. In addition, a first data packet transmission notification is transmitted to the PDCP module, the first data packet transmission notification being used to instruct the user equipment (UE) to send the data packet to be sent.
2. The method of claim 1, wherein, Before sending the ACK corresponding to the data packet to be sent to the PDCP module, the method further includes: According to the set sequence number confirmation period, the sequence numbers (SN) of the data packets to be sent within the current confirmation period are consecutive.
3. The method of claim 2, wherein, The method further includes: When the SN of a data packet to be sent within the current confirmation period is detected to be discontinuous, a data request notification corresponding to the missing SN is sent to the PDCP module; the data request notification is used to instruct the server to send the data packet corresponding to the missing SN.
4. The method of claim 1, wherein, Before sending the ACK character corresponding to the data packet to be sent to the PDCP module, the process also includes: It is determined that the amount of data in the acquired data packet to be sent is less than the data amount threshold.
5. The method of claim 1, wherein, The method further includes: Receive the UE window length sent by the UE; determine the first window length of the sending window based on the UE window length; The step of sending a notification to the PDCP module by transmitting the first data packet includes: Determine the current data packet located within the sending window of the first window length from the data packets to be sent; The first data packet sending notification corresponding to the current data packet is transmitted to the PDCP module. The first data packet sending notification is used to instruct the UE to send the current data packet.
6. The method of claim 5, wherein, Also includes: The system receives an ACK from the UE for the current data packet and deletes the current data packet from the data packets to be sent, thus obtaining an updated data packet to be sent.
7. The method according to claim 5, characterized in that, The step of determining the first window length of the transmission window based on the UE window length includes: The first buffer size is determined based on the amount of data packets in the data packets to be sent that have not sent corresponding ACKs to the server; The first window length of the sending window is determined based on the UE window length and the first buffer size.
8. The method of claim 5, wherein, Also includes: The second window length of the receiving window is determined based on the first window length of the sending window; The PDCP module is fed back a window update packet corresponding to the second window length. The window update packet is sent to the server to instruct the server to send data packets according to the second window length.
9. The method of claim 8, wherein, Determining the second window length of the receiving window based on the first window length of the sending window includes: The second buffer size is determined based on the amount of data in the data packets to be sent that have not been acknowledged by the UE with an ACK. The second window length of the receiving window is determined based on the first window length of the sending window and the second buffer size.
10. The method of claim 1, wherein, Also includes: Determine the count of duplicate acknowledgments (DUPACKs); When the count of DUPACK exceeds a set number, determine whether the selective confirmation SACK state is in the enabled state; If so, a query request is sent to the UE, the query request being used to query the sequence number (SN) of the data packets already received by the UE; Receive the request response information corresponding to the query request sent by the UE; Based on the request response information, the missing data packets that the UE did not receive are determined, and a second data packet sending notification corresponding to the missing data packets is generated. The second data packet sending notification is used to instruct the UE to send the missing data packets.
11. The method according to any of claims 1 to 10, characterized in that Also includes: If no ACK for the data packet to be sent from the UE is received after the current timeout period, the first data packet sending notification is transmitted to the PDCP module again. The current timeout duration is determined according to the following steps: Obtain the round-trip time of the data packet obtained from the current measurement; wherein the round-trip time of the data packet is determined based on the first moment when the ACK for the data packet is sent to the server and the second moment when the ACK for the data packet is received from the UE. The current timeout duration is determined based on the round-trip time of the data packets.
12. The method of claim 11, wherein, The step of determining the current timeout duration based on the round-trip time of the data packet includes: Get the duration of the first smoothing after the previous smoothing; Based on the round-trip time of the data packet and the first smoothing time, determine the second smoothing time after the current smoothing; The second duration deviation for the current time is determined based on the round-trip time of the data packet, the second smoothing duration, and the previously determined first duration deviation. The current timeout duration is determined based on the second duration deviation and the second smoothing duration.
13. A data transmission method characterized by comprising: Applied to servers, including: The data packet to be sent is sent to the base station. After the data packet to be sent arrives at the Packet Data Convergence Layer Protocol (PDCP) module of the base station, it is transmitted to the Transmission Control Protocol (TCP) proxy module. Receive the acknowledgment character ACK from the TCP proxy module; the ACK is used to acknowledge the data packet to be sent.
14. The method of claim 13, wherein, Also includes: Receive a data request notification from the TCP proxy module corresponding to the missing sequence number SN; Send the data packet corresponding to the missing SN to the TCP proxy module.
15. The method according to claim 13 or 14, characterized in that, Also includes: Receive the window update packet sent by the TCP proxy module; Data packets are sent according to the second window length indicated by the window update packet.
16. A data transmission method, characterized by, Applied to User Equipment (UE), including: Receive data packets to be sent by the Transmission Control Protocol (TCP) proxy module through the Packet Data Convergence Layer (PDCP) module; Generate an acknowledgment character (ACK) for the data packet to be sent, and send the ACK for the data packet to be sent to the TCP proxy module.
17. The method of claim 16, wherein, Also includes: Send the UE window length to the TCP proxy module.
18. The method according to claim 16 or 17, characterized in that, Also includes: Receive the query request sent by the TCP proxy module; Based on the query request, determine the sequence number (SN) of the received data packet; Based on the SN of the received data packet, generate request-response information and send the request-response information to the TCP proxy module; Receive missing data packets sent by the TCP proxy module through the PDCP module.
19. A data transmission device, characterized in that, A Transmission Control Protocol (TCP) proxy module is deployed on a base station and includes a memory, transceiver, and processor. The memory is used to store computer programs; the transceiver is used to send and receive data under the control of the processor; the processor is used to read the computer programs in the memory and perform the following operations: Obtain the data packets to be sent from the server transmitted by the Packet Data Convergence Protocol (PDCP) module of the base station; The PDCP module sends back the acknowledgment character ACK corresponding to the data packet to be sent, and the ACK is used to send to the server. In addition, a first data packet transmission notification is transmitted to the PDCP module, the first data packet transmission notification being used to instruct the user equipment (UE) to send the data packet to be sent.
20. A data transmission device, characterized in that, Deployed on servers, including storage, transceivers, and processors; The memory is used to store computer programs; the transceiver is used to send and receive data under the control of the processor; the processor is used to read the computer programs in the memory and perform the following operations: The data packet to be sent is sent to the base station. After the data packet to be sent arrives at the Packet Data Convergence Layer Protocol (PDCP) module of the base station, it is transmitted to the Transmission Control Protocol (TCP) proxy module. Receive the acknowledgment character ACK from the TCP proxy module; the ACK is used to acknowledge the data packet to be sent.
21. A data transmission device, characterized in that, Deployed in user equipment (UE), including memory, transceiver, and processor; The memory is used to store computer programs; the transceiver is used to send and receive data under the control of the processor; the processor is used to read the computer programs in the memory and perform the following operations: Receive data packets to be sent by the Transmission Control Protocol (TCP) proxy module through the Packet Data Convergence Layer (PDCP) module; Generate an acknowledgment character (ACK) for the data packet to be sent, and send the ACK for the data packet to be sent to the TCP proxy module.
22. A data transmission device, characterized in that, An application to a Transmission Control Protocol (TCP) proxy module, the TCP proxy module being deployed on a base station, comprising: The acquisition module is used to acquire the data packets to be sent from the server transmitted by the Packet Data Convergence Layer Protocol (PDCP) module of the base station; The transmission module is configured to send an acknowledgment character ACK corresponding to the data packet to be sent to the PDCP module, the ACK being sent to the server; and to transmit a first data packet transmission notification to the PDCP module, the first data packet transmission notification being used to instruct the user equipment (UE) to send the data packet to be sent.
23. A data transmission device, characterized in that, Applied to servers, including: The first sending module is used to send a data packet to be sent to the base station. After the data packet to be sent arrives at the Packet Data Convergence Layer Protocol (PDCP) module of the base station, it is transmitted to the Transmission Control Protocol (TCP) proxy module. The first receiving module is used to receive the acknowledgment character ACK from the TCP proxy module; the ACK is used to acknowledge the data packet to be sent.
24. A data transmission device, characterized in that, Applied to User Equipment (UE), including: The second receiving module is used to receive data packets to be sent by the Transmission Control Protocol TCP proxy module through the Packet Data Convergence Layer Protocol (PDCP) module; The second sending module is used to generate an ACK character for the data packet to be sent and send the ACK for the data packet to be sent to the TCP proxy module.
25. A processor-readable storage medium, characterized in that, The processor-readable storage medium stores a computer program that, when executed by the processor, performs the steps of the data transmission method as described in any one of claims 1 to 12, or performs the steps of the data transmission method as described in any one of claims 13 to 15, or performs the steps of the data transmission method as described in any one of claims 16 to 18.