Data forwarding methods, apparatus and storage media

By combining the PDCP module and TCP proxy function in a forwarding approach, the problem of unreliable data transmission in TCP proxy technology is solved, thereby improving the reliability of data transmission and achieving lossless switching during the handover process.

CN119583644BActive Publication Date: 2025-10-31DATANG MOBILE COMM EQUIP CO LTD
View PDF 2 Cites 0 Cited by

Patent Information

Application Number
CN202311149098.2
Authority / Receiving Office
CN · China
Patent Type
Patents(China)
Current Assignee / Owner
Filing Date
2023-09-06
Publication Date
2025-10-31
Estimated Expiration
2043-09-06

AI Technical Summary

Technical Problem

In existing technologies, TCP proxy technology cannot effectively avoid packet loss on the forwarding link, resulting in unreliable data transmission.

Method used

By employing a combined forwarding approach using the PDCP module and TCP proxy function, data confirmed by the TCP proxy function is forwarded twice: once via the PDCP module and once via the TCP proxy function.

Benefits of technology

It effectively avoids packet loss on the forwarding link, improves data transmission reliability, reduces switching latency, and increases the success rate of lossless switching.

✦ Generated by Eureka AI based on patent content.

Smart Images

  • Figure CN119583644B_ABST
    Figure CN119583644B_ABST
Patent Text Reader

Abstract

This application proposes a data forwarding method, apparatus, and storage medium. The method includes: a first base station, in response to determining that a terminal needs to switch from the first base station to a second base station, determining first data to be forwarded related to the TCP proxy function corresponding to the terminal in the TCP proxy module of the first base station's Transmission Control Protocol (TCP) module, and determining second data to be forwarded in the Packet Data Convergence Protocol (PDCP) module of the first base station; and forwarding both the first and second data to be forwarded to the second base station. Through this application, by employing a combined forwarding method using the PDCP module and the TCP proxy function, data confirmed by the TCP proxy function is forwarded twice: once via buffer transmission through the PDCP module and once via buffer transmission through the TCP proxy function, thereby effectively avoiding packet loss on the forwarding link and improving data transmission reliability.
Need to check novelty before this filing date? Find Prior Art

Description

Technical Field

[0001] This application relates to the field of communication technology, and in particular to a data forwarding method, apparatus and storage medium. Background Technology

[0002] In Transmission Control Protocol (TCP) proxy technology, the core is that the base station sends TCP Acknowledgement (TCP ACK) messages to the server on behalf of the terminal, stores the data in its own buffer, and then forwards it to the terminal. Because the acknowledged data is deleted from the server's transmit buffer, the base station must ensure that the proxied acknowledged data is sent to the terminal "losslessly," otherwise service interruption will occur. Summary of the Invention

[0003] This application aims to at least partially solve one of the technical problems in related technologies that cannot effectively avoid packet loss on the forward link, resulting in unreliable data transmission.

[0004] Therefore, this application proposes a data forwarding method, apparatus, and processor-readable storage medium. By employing a combined forwarding approach using a PDCP module and a TCP proxy function, data confirmed by the TCP proxy function is forwarded twice: once via the PDCP module and once via the TCP proxy function. This effectively avoids packet loss on the forwarding link and improves data transmission reliability.

[0005] The data forwarding method proposed in the first aspect of this application is executed by a first base station, which includes a Transmission Control Protocol (TCP) proxy module and a Packet Data Convergence Protocol (PDCP) module; the method includes: in response to determining that a terminal needs to be switched from the first base station to the second base station, determining a first data to be forwarded in the TCP proxy module that is related to the TCP proxy function corresponding to the terminal; determining a second data to be forwarded in the PDCP module; and forwarding the first data to be forwarded and the second data to be forwarded together to the second base station.

[0006] The data forwarding method proposed in the second aspect of this application is executed by a second base station, including: receiving a first data to be forwarded and a second data to be forwarded sent by a first base station, wherein the first base station includes: a Transmission Control Protocol (TCP) proxy module and a Packet Data Convergence Protocol (PDCP) module, the first data to be forwarded belongs to the TCP proxy function corresponding to the terminal in the TCP proxy module, and the second data to be forwarded belongs to the PDCP module; and sending the first data to be forwarded and the second data to be forwarded to the terminal.

[0007] The data forwarding apparatus proposed in the third aspect of this application includes: a first determining unit, configured to determine, in response to determining that a terminal needs to be switched from a first base station to a second base station, a first data to be forwarded related to the TCP proxy function corresponding to the terminal in the transmission control protocol TCP proxy module of the first base station; a second determining unit, configured to determine a second data to be forwarded in the packet data aggregation protocol PDCP module of the first base station; and a forwarding unit, configured to forward both the first data to be forwarded and the second data to be forwarded to the second base station.

[0008] The data forwarding apparatus proposed in the fourth aspect of this application includes: a receiving unit for receiving first forwarded data and second forwarded data sent by a first base station, wherein the first base station includes: a Transmission Control Protocol (TCP) proxy module and a Packet Data Convergence Protocol (PDCP) module, the first forwarded data belongs to the TCP proxy function corresponding to the terminal in the TCP proxy module, and the second forwarded data belongs to the PDCP module; and a sending unit for sending the first forwarded data and the second forwarded data to the terminal.

[0009] The data forwarding apparatus proposed in the fifth aspect of this application includes: 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: in response to determining that the terminal needs to be switched from the first base station to the second base station, determining first data to be forwarded in the TCP proxy module related to the TCP proxy function corresponding to the terminal; determining second data to be forwarded in the PDCP module; and forwarding the first data to be forwarded and the second data to be forwarded together to the second base station.

[0010] The data forwarding device proposed in the sixth aspect of this application includes: 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: receiving first data to be forwarded and second data to be forwarded sent by a first base station, wherein the first base station includes: a Transmission Control Protocol (TCP) proxy module and a Packet Data Convergence Protocol (PDCP) module, the first data to be forwarded belongs to the TCP proxy function corresponding to the terminal in the TCP proxy module, and the second data to be forwarded belongs to the PDCP module; and sending the first data to be forwarded and the second data to be forwarded to the terminal.

[0011] The seventh aspect of this application provides a processor-readable storage medium storing a computer program for causing the processor to execute either the data forwarding method proposed in the first aspect of this application or the data forwarding method proposed in the second aspect of this application.

[0012] The data forwarding method, apparatus, and processor-readable storage medium provided in this application, in response to determining that a terminal needs to switch from a first base station to a second base station, determine the first data to be forwarded related to the TCP proxy function corresponding to the terminal in the TCP proxy module of the first base station, and determine the second data to be forwarded in the PDCP module of the first base station, and forward the first data to be forwarded and the second data to be forwarded together to the second base station. Since a joint forwarding method of PDCP module and TCP proxy function is adopted, the data confirmed by TCP proxy function is forwarded twice, once through PDCP module buffer transmission and once through TCP proxy function buffer transmission, thereby effectively avoiding packet loss on the forwarding link and improving data transmission reliability.

[0013] Additional aspects and advantages of this application will be set forth in part in the description which follows, and in part will be obvious from the description, or may be learned by practice of this application. Attached Figure Description

[0014] The above and / or additional aspects and advantages of this application will become apparent and readily understood from the following description of the embodiments taken in conjunction with the accompanying drawings, wherein:

[0015] Figure 1 This is a schematic flowchart of a data forwarding method proposed in an embodiment of this application;

[0016] Figure 2 This is a schematic diagram of TCP packet storage in an embodiment of this application;

[0017] Figure 3 This is a flowchart illustrating a data forwarding method proposed in another embodiment of this application;

[0018] Figure 4 This is a schematic diagram of the agent stop process before switching in the embodiments of this application;

[0019] Figure 5 This is a flowchart illustrating a data forwarding method proposed in another embodiment of this application;

[0020] Figure 6 This is a schematic diagram of the TCP proxy data flow before and after terminal switching in an embodiment of this application;

[0021] Figure 7 This is a schematic diagram of the structure of a data forwarding device according to an embodiment of this application;

[0022] Figure 8 This is a schematic diagram of the structure of a data forwarding device according to another embodiment of this application;

[0023] Figure 9 This is a schematic diagram of the structure of a data forwarding device proposed in another embodiment of this application. Detailed Implementation

[0024] The embodiments of this application are described in detail below, examples of which are illustrated in the accompanying drawings, wherein the same or similar reference numerals denote the same or similar elements or elements having the same or similar functions throughout. The embodiments described below with reference to the accompanying drawings are exemplary and are only used to explain this application, and should not be construed as limiting this application. Rather, the embodiments of this application include all variations, modifications, and equivalents falling within the spirit and scope of the appended claims.

[0025] In the embodiments of this application, the term "and / or" describes the relationship between associated objects, indicating that three relationships can exist. For example, A and / or B can represent three cases: A alone, A and B simultaneously, and B alone. The character " / " generally indicates that the preceding and following associated objects have an "or" relationship.

[0026] In the embodiments of this application, the term "multiple" refers to two or more, and other quantifiers are similar.

[0027] The technical solutions of the embodiments of this application will be clearly and completely described below with reference to the accompanying drawings. Obviously, the described embodiments are only a part of the embodiments of this application, and not all of the embodiments. Based on the embodiments of this application, all other embodiments obtained by those of ordinary skill in the art without creative effort are within the scope of protection of this application.

[0028] The technical solutions provided in this application can be applied to various systems, especially 5G systems. For example, applicable systems may include Global System for Mobile Communication (GSM), Code Division Multiple Access (CDMA), Wideband Code Division Multiple Access (WCDMA) General Packet Radio Service (GPRS), Long Term Evolution (LTE), LTE Frequency Division Duplex (FDD), LTE Time Division Duplex (TDD), Long Term Evolution Advanced (LTE-A), Universal Mobile Telecommunication System (UMTS), Worldwide Interoperability for Microwave Access (WiMAX), and 5G New Radio (NR). All of these systems include terminals and network equipment. The systems may also include a core network component, such as Evolved Packet System (EPS) and 5G system (5GS).

[0029] In the application of TCP proxy technology, there are two possible types of data loss: air interface data loss and wired data loss at the terminal. Air interface data loss refers to data loss between the base station and the terminal at the peer layer of the Packet Data Convergence Protocol (PDCP). Wired data loss at the terminal refers to data loss between the wireless module and the wired TCP and / or Internet Protocol (IP) stack. Related technologies include: one method is to use the Stream Control Transmission Protocol (SCTP) stack to forward TCP proxy and confirm data; another is for the destination base station to transmit a custom message through the SCTP stack to confirm the sequence number of the received forwarded data; and yet another is for the destination base station to use a custom message from the General Packet Radio Service (GPRS) tunneling protocol to confirm the sequence number of the received forwarded data. None of these methods can effectively avoid packet loss on the forwarding link, resulting in unreliable data transmission.

[0030] This application provides a data forwarding method to address the technical problem that the above-mentioned solutions cannot effectively avoid packet loss on the forwarding link, resulting in unreliable data transmission. In response to determining that a terminal needs to switch from a first base station to a second base station, the method determines the first data to be forwarded related to the TCP proxy function corresponding to the terminal in the TCP proxy module of the first base station, and determines the second data to be forwarded in the PDCP module of the first base station. The method then forwards both the first and second data to the second base station. By employing a combined forwarding approach using the PDCP module and the TCP proxy function, the data confirmed by the TCP proxy function is forwarded twice: once via the PDCP module and once via the TCP proxy function, thereby effectively avoiding packet loss on the forwarding link and improving data transmission reliability.

[0031] Figure 1 This is a schematic flowchart of a data forwarding method proposed in an embodiment of this application.

[0032] It should be noted that the execution entity of the data forwarding method in this embodiment is a data forwarding device, which can be implemented by software and / or hardware and can be configured in a base station. The base station can be a first base station, which refers to the source base station for terminal handover, i.e., the base station providing services to the terminal before the handover. Correspondingly, the second base station refers to the destination base station for terminal handover, i.e., the base station providing services to the terminal after the handover. In this embodiment, the first base station includes a Transmission Control Protocol (TCP) proxy module and a Packet Data Convergence Protocol (PDCP) module.

[0033] S101: In response to determining that the terminal needs to switch from the first base station to the second base station, determine the first data to be forwarded in the TCP proxy module that is related to the TCP proxy function corresponding to the terminal.

[0034] In some embodiments, the first base station can detect and determine that the terminal needs to be switched from the first base station to the second base station. For example, the high layer (HL) of the first base station can sense the terminal switching.

[0035] In some embodiments, the Radio Resource Management (RRM) module may notify the PDCP module to designate a user (an optional example of a terminal) to prepare for handover. The PDCP module then notifies the TCP proxy module to determine the forwarding data related to the TCP proxy function corresponding to the terminal. This forwarding data may be referred to as the first forwarding data. For example, the PDCP module may call the TCP proxy module's Application Programming Interface (API) to obtain all the first forwarding data of the terminal and trigger the forwarding of the first forwarding data to the destination base station (an optional example of a second base station).

[0036] In some embodiments, the TCP proxy module can manage TCP proxy functions corresponding to multiple terminals respectively. In this embodiment, the first forwarding data related to the TCP proxy function corresponding to the terminal being switched can be determined from the TCP proxy module.

[0037] In some embodiments, in order to accurately and quickly obtain the first forwarding data related to the TCP proxy function of the terminal in the TCP proxy module, the data cached in the TCP proxy module between the minimum TCP transmission sequence number (TSN) and the maximum TSN of the first TCP packet can also be used as the first forwarding data.

[0038] In some embodiments, a TCP packet in the TCP proxy module may be referred to as a first TCP packet. A TCP packet in the PDCP module may be referred to as a second TCP packet.

[0039] In some embodiments, in order to accurately and quickly determine the second forwarding data in the PDCP module, the data cached in the PDCP module between the minimum TSN of the second TCP packet and the maximum TSN of the second TCP packet can also be used as the second forwarding data, wherein the minimum TSN of the second TCP packet is greater than or equal to the minimum TSN of the first TCP packet, and the maximum TSN of the second TCP packet is equal to the maximum TSN of the first TCP packet.

[0040] Therefore, the minimum TSN (e.g., pdcp_min_tsn) stored in the PDCP module can be identified in the TCP proxy module, and the packet data stored only in the TCP proxy module can be self-replicated to ensure that this part of the data can be sent redundantly.

[0041] For example, during runtime, the PDCP module can store unacknowledged air interface data, while the TCP proxy module can store unacknowledged TCP and / or IP protocol stack data from the terminal. Therefore, the data stored in the PDCP module is a subset of the data stored in the TCP proxy module. Figure 2 As shown, Figure 2 This is a schematic diagram of TCP packet storage in an embodiment of this application. Here, pdcp_min_tsn represents the minimum TSN of TCP packets (an optional example of the second TCP packet) cached in the PDCP module, and proxy_min_tsn represents the minimum TSN of TCP packets (an optional example of the first TCP packet) cached in the TCP proxy module, where pdcp_min_tsn >= proxy_min_tsn. pdcp_max_tsn represents the maximum TSN of TCP packets cached in the PDCP module, and proxy_max_tsn represents the maximum TSN of TCP packets cached in the TCP proxy module. Since the TCP proxy module forwards all packets with consecutive sequence numbers to the PDCP, pdcp_max_tsn = proxy_max_tsn.

[0042] S102: Determine the second data to be forwarded in the PDCP module.

[0043] In some embodiments, the Radio Resource Management (RRM) module may notify the PDCP module that a designated user (an optional example of a terminal) is ready to handover. In this case, forwarding data to be transferred in the PDCP module may also be determined, which can be referred to as second forwarding data. For example, the second forwarding data may be data in the PDCP module's buffer.

[0044] For example, if the HL notifies the PDCP module of the user handover before handover, the PDCP module can be triggered to forward the data in its cache to the destination base station.

[0045] S103: Forward the first data to be forwarded and the second data to be forwarded together to the second base station.

[0046] In some embodiments, after acquiring the first forwarding data related to the TCP proxy function corresponding to the terminal and the second forwarding data in the PDCP module, redundant transmission can be performed, that is, the first and second forwarding data are forwarded together to the second base station. This effectively avoids packet loss on the forwarding link and improves data transmission reliability.

[0047] In some embodiments, in order to achieve redundant transmission and improve the reliability of the entire link transmission to a great extent, a first part of the data to be forwarded can be identified from the first data to be forwarded, wherein the first part of the data to be forwarded does not belong to the second data to be forwarded, and the first part of the data to be forwarded is copied to obtain the second part of the data to be forwarded, and the first data to be forwarded, the second part of the data to be forwarded, and the second data to be forwarded together are forwarded to the second base station.

[0048] In some embodiments, in order to improve data forwarding efficiency, the TCP proxy module can transmit the first data to be forwarded and the second part of the data to be forwarded to the PDCP module, and the PDCP module can forward the first data to be forwarded, the second part of the data to be forwarded and the second data to be forwarded to the second base station together.

[0049] See also the above. Figure 2 The first part of the data to be forwarded can be data stored only by the TCP proxy module. That is to say, the first part of the data to be forwarded is not the data stored in the PDCP module, or the first part of the data to be forwarded does not belong to the second part of the data to be forwarded.

[0050] For example, it can be used for such Figure 2 The second data to be forwarded between [pdcp_min_tsn, pdcp_max_tsn] in the PDCP module is forwarded. The first data to be forwarded in the TCP proxy module is forwarded independently. For example, the first data to be forwarded between [proxy_min_tsn, proxy_max_tsn] can be submitted to the PDCP module for forwarding. In addition, considering the possibility of packet loss between the interrupted wireless module and the IP protocol stack (such as due to the TCP proxy module's buffer being full), the TCP proxy module can copy the first part of the data to be forwarded between [proxy_min_tsn, pdcp_min_tsn] and submit it to the PDCP module. Therefore, the first part of the data to be forwarded between [proxy_min_tsn, pdcp_min_tsn] will also be forwarded twice.

[0051] In some embodiments, the first data to be forwarded in the TCP proxy module can be forwarded to the destination base station without a PDCP sequence number (PDCP SN). In some embodiments, non-contiguous data packets cached in the TCP proxy module may not be forwarded since they have not been acknowledged. In some embodiments, for Figure 2 The pdcp_min_tsn shown can be updated by the TCP proxy module after the PDCP module receives the forwarding preparation, receives the terminal confirmation to clear the packet data, and receives the interface notification to call the TCP proxy module.

[0052] In some embodiments, the second base station can send all forwarded message data to the terminal, thereby achieving redundant transmission between the air interface, the terminal wireless protocol stack, and the TCP and / or IP protocol stack, ensuring the transmission reliability of the entire link.

[0053] In this embodiment, in response to determining that the terminal needs to switch from the first base station to the second base station, the system determines the first data to be forwarded related to the TCP proxy function corresponding to the terminal in the TCP proxy module of the first base station, and determines the second data to be forwarded in the PDCP module of the first base station. The system then forwards both the first and second data to be forwarded to the second base station. By using a combined forwarding method of the PDCP module and the TCP proxy function, the data confirmed by the TCP proxy function is forwarded twice: once through the PDCP module and once through the TCP proxy function. This effectively avoids packet loss on the forwarding link and improves the reliability of data transmission.

[0054] Figure 3 This is a schematic flowchart of a data forwarding method proposed in another embodiment of this application.

[0055] It should be noted that the execution entity of the data forwarding method in this embodiment is a data forwarding device, which can be implemented by software and / or hardware, and can be configured in a base station. The base station can be a first base station.

[0056] S301: In response to determining that the terminal needs to switch from the first base station to the second base station, determine the first data to be forwarded in the TCP proxy module that is related to the TCP proxy function corresponding to the terminal.

[0057] S302: Determine the second data to be forwarded in the PDCP module.

[0058] For a detailed description of S301-S302, please refer to the above embodiments, which will not be repeated here.

[0059] S303: Determine at least one TCP proxy thread in the TCP proxy module that corresponds to the TCP proxy function of the terminal.

[0060] In this embodiment, when the higher layers of the first base station sense that the terminal is about to switch, they can notify the TCP proxy module to stop proxying in advance to close the buffer of the TCP proxy module. This allows the data to be sent to the terminal via the air interface as much as possible before the higher layers notify the terminal to forward the data, thereby effectively reducing the amount of data that needs to be reliably forwarded.

[0061] S304: Set each TCP proxy thread to the first state, where the first state indicates a delayed shutdown of the corresponding TCP proxy thread.

[0062] In some embodiments, a TCP proxy interface can be pre-configured for each terminal. The TCP proxy module can then iterate through all TCP proxy threads of the terminal within the TCP proxy interface of the closed terminal, and sequentially set each TCP proxy thread to a delayed shutdown state before entering the Round Trip Time (RTT) smoothing phase. The delayed shutdown state is an optional example of the first state. For a detailed description of the RTT smoothing phase, please refer to the following embodiments.

[0063] S305: Determine the start time of the first state corresponding to each TCP proxy thread.

[0064] The first state start time refers to the time when the corresponding TCP proxy thread is set to the first state. For example, the first state start time could be the time when the corresponding TCP proxy thread begins to be in the first state. In some embodiments, the first state start time can be used to determine when to shut down the corresponding TCP proxy thread.

[0065] S306: If the duration between the start time of the first state and the current time reaches a first duration threshold, the corresponding TCP proxy thread is changed from being in the first state to being in the second state, wherein the second state is used to shut down the corresponding TCP proxy thread.

[0066] In some embodiments, if each TCP proxy thread is set to a first state, it can be continuously determined whether the duration between the start time of the first state and the current time reaches a first duration threshold. If the first duration threshold is reached, the corresponding TCP proxy thread is changed from the first state to the second state. That is, if the duration between the start time of the first state and the current time reaches the first duration threshold, the corresponding TCP proxy thread can be shut down.

[0067] like Figure 4 As shown, Figure 4This is a schematic diagram of the pre-switching proxy shutdown process in an embodiment of this application. The Radio Resource Management (RRM) module can notify the PDCP to prepare for a handover for a specified user. The PDCP module can call an API to disable the specified user's TCP proxy; triggering the TCP proxy module to disable the specified user's TCP proxy switch; the PDCP notifies the TCP proxy module when clearing its cache; and triggers the update of the corresponding pdcp_min_tsn; the RRM module notifies the PDCP to switch over data; the PDCP calls an API to obtain the TCP proxy data to be switched over; the TCP proxy obtains all thread data for the specified user; and the PDCP switches the obtained TCP proxy data to the peer end.

[0068] For example, a half-frame number and time slot number timing mechanism can be maintained within the base station (e.g., the first base station) to achieve RTT smoothing. Specifically: After the TCP proxy is closed, the context of the TCP proxy thread is set to the TCP proxy delayed-closed state (an optional example of the first state), and a start time is set (which can be measured by half-frame number and time slot number), with a fixed delay duration of 100ms. The TCP proxy timer module can periodically scan all links in the delayed-closed state, comparing the start time (an optional example of the first state start time) with the current time to obtain the elapsed delay duration. If it exceeds the fixed delay duration (an optional example of the first duration threshold, which can be, for example, 100ms), then the state of the TCP proxy thread is set to the TCP proxy closed state (an optional example of the second state).

[0069] S307: Forward the first data to be forwarded and the second data to be forwarded together to the second base station.

[0070] For a detailed description of S307, please refer to the above embodiments, which will not be repeated here.

[0071] In this embodiment, in response to the determination that the terminal needs to switch from the first base station to the second base station, the system determines the first data to be forwarded related to the TCP proxy function corresponding to the terminal in the TCP proxy module of the first base station, and the second data to be forwarded in the PDCP module of the first base station. The first and second data to be forwarded are then forwarded together to the second base station. Because a joint forwarding method using the PDCP module and TCP proxy function is employed, the data confirmed by the TCP proxy function is forwarded twice: once via the PDCP module and once via the TCP proxy function. This effectively avoids packet loss on the forwarding link and improves data transmission reliability. Before the terminal switchover, it effectively supports reducing the amount of TCP proxy data that needs to be forwarded. This allows the first base station to promptly notify the TCP proxy module to stop proxying, significantly reducing the number of TCP proxy confirmation messages that need to be forwarded, effectively improving the success rate of lossless switchover, and reducing switchover latency.

[0072] In this embodiment of the application, an RTT smoothing mechanism can be implemented to effectively avoid server timeout retransmission. Optionally, the first base station can also receive first downlink data related to the TCP proxy thread sent by the server, wherein the first downlink data is the currently received downlink data, and delay sending a first response message related to the first downlink data to the server.

[0073] The TCP proxy thread mentioned here refers to the TCP proxy thread that has been configured to be in the first state. In some embodiments, the downlink data currently received by the first base station from the server can be referred to as the first downlink data. The response message to be sent back to the server based on the first downlink data can be referred to as the first response message.

[0074] In this embodiment, the first base station may delay sending a first response message related to the first downlink data to the server to avoid server timeout retransmission. In some embodiments, the first base station may determine the transmission time corresponding to the second response message, wherein the second downlink data related to the second response message is downlink unacknowledged data received before the first downlink data, and the duration between the reception time of the second downlink data and the current time reaches a second duration threshold. If the duration between the current time and the transmission time does not reach a third duration threshold, the first response message related to the first downlink data is not sent to the server; if the duration between the current time and the transmission time reaches the third duration threshold, the first response message related to the first downlink data is sent to the server.

[0075] In this embodiment of the application, a third duration threshold is determined based on the initial loopback time (RTT). The initial RTT is the time interval between the time the server sends the first downlink data to the first base station and the time the server receives the first response message related to the first downlink data sent by the first base station. The third duration threshold is an integer multiple of the initial RTT.

[0076] In this embodiment, the third duration threshold is incremented step by step with the initial RTT until the corresponding TCP proxy thread is set to the second state.

[0077] For example, when the TCP proxy thread is in the TCP proxy delay-off state, the ACK response can be delayed. For instance, the time point of each ACK response can be recorded (using half-frame number and slot number as metrics). Each time a downlink DATA (e.g., data, an optional example of the first downlink data) is received, a determination of the interval between the current time point and the previous ACK response time point can be triggered. If the interval exceeds RTT*N, an ACK response is immediately initiated, ensuring that the ACK response denoted by RTT*N is greater than or equal to RTT*N, and only one packet is acknowledged at a time; otherwise, no acknowledgment is given. Here, N is an integer, and RTT is the RTT value measured based on the first packet (an optional example of the first downlink data) and the second packet (an optional example of the first response message) used in TCP connection establishment. In some embodiments, the range of values ​​for N can be analyzed as follows:

[0078] Using RTT_LAST as the existing RTT value and RTT_NEW as the newly measured RTT value, RTT_LAST can be updated using RTT_NEW. The calculation method is as follows:

[0079] 3 / 4 * RTT_LAST + 1 / 4 * RTT_NEW, if the RTT doubles, a retransmission is triggered, corresponding to the following equation:

[0080] 3 / 4*RTT_LAST+1 / 4*RTT_NEW=2*RTT_LAST, we get: RTT_NEW=5*RTT_LAST.

[0081] As can be seen, when the step size increases to 5 RTT, the RTT doubles, triggering a timeout retransmission. Considering the smoothing rate and time, the step size increase is taken as RTT, and N is set to 1. Therefore, if 10 ACK responses are received, the RTT can be increased to 7.2 times that before smoothing, which can effectively avoid timeout retransmissions.

[0082] Figure 5 This is a schematic flowchart of a data forwarding method proposed in another embodiment of this application.

[0083] It should be noted that the data forwarding method in this embodiment is executed by a data forwarding device, which can be implemented in software and / or hardware and can be configured in a base station. The base station can be a second base station. The second base station refers to the destination base station for terminal handover, that is, the base station that provides services to the terminal after the handover.

[0084] S501: Receive the first forwarding data and the second forwarding data sent by the first base station, wherein the first base station includes: a Transmission Control Protocol (TCP) proxy module and a Packet Data Convergence Protocol (PDCP) module, the first forwarding data belongs to the TCP proxy function corresponding to the terminal in the TCP proxy module, and the second forwarding data belongs to the PDCP module.

[0085] S502: Send the first data to be forwarded and the second data to be forwarded to the terminal.

[0086] In this embodiment, the second base station can receive first and second forwarding data sent by the first base station. The first base station includes a Transmission Control Protocol (TCP) proxy module and a Packet Data Convergence Protocol (PDCP) module. The first forwarding data belongs to the TCP proxy function corresponding to the terminal within the TCP proxy module, and the second forwarding data belongs to the PDCP module. The second base station then sends both the first and second forwarding data to the terminal. This effectively avoids packet loss on the forwarding link and improves data transmission reliability.

[0087] In the above embodiments of this application, the protocol consistency can be maintained without affecting the network compatibility of base station equipment from different vendors.

[0088] like Figure 6 As shown, Figure 6 This is a schematic diagram of the TCP proxy data flow before and after terminal handover in an embodiment of this application. If a terminal handover occurs, for example, the base station providing services to the terminal switches from the source base station to the destination base station, the source base station can forward the data to the destination base station. The destination base station performs radio protocol stack processing, in sequence: PDCP, RadioLink Control (RLC), Media Access Control (MAC), and Physical Layer (PHY), and sends it to the terminal's radio protocol stack via the air interface. Then, the terminal's radio protocol stack delivers it to its TCP and / or IP protocol stack.

[0089] Figure 7 This is a schematic diagram of the structure of a data forwarding device proposed in an embodiment of this application.

[0090] like Figure 7 As shown, the data forwarding device 70 includes:

[0091] The first determining unit 701 is used to determine, in response to determining that the terminal needs to switch from the first base station to the second base station, the first forwarding data related to the TCP proxy function corresponding to the terminal in the TCP proxy module of the transmission control protocol of the first base station.

[0092] The second determining unit 702 is used to determine the second data to be forwarded in the Packet Data Convergence Protocol (PDCP) module of the first base station.

[0093] Forwarding unit 703 is used to forward the first data to be forwarded and the second data to be forwarded to the second base station.

[0094] In this embodiment, in response to determining that the terminal needs to switch from the first base station to the second base station, the system determines the first data to be forwarded related to the TCP proxy function corresponding to the terminal in the TCP proxy module of the first base station, and determines the second data to be forwarded in the PDCP module of the first base station. The system then forwards both the first and second data to be forwarded to the second base station. By using a combined forwarding method of the PDCP module and the TCP proxy function, the data confirmed by the TCP proxy function is forwarded twice: once through the PDCP module and once through the TCP proxy function. This effectively avoids packet loss on the forwarding link and improves the reliability of data transmission.

[0095] Figure 8 This is a schematic diagram of the structure of a data forwarding device proposed in another embodiment of this application.

[0096] like Figure 8 As shown, the data forwarding device 80 includes:

[0097] The receiving unit 801 is used to receive the first forwarding data and the second forwarding data sent by the first base station. The first base station includes a transmission control protocol TCP proxy module and a packet data aggregation protocol PDCP module. The first forwarding data belongs to the TCP proxy function corresponding to the terminal in the TCP proxy module, and the second forwarding data belongs to the PDCP module.

[0098] The sending unit 802 is used to send the first data to be forwarded and the second data to be forwarded to the terminal.

[0099] In this embodiment, the second base station can receive first and second forwarding data sent by the first base station. The first base station includes a Transmission Control Protocol (TCP) proxy module and a Packet Data Convergence Protocol (PDCP) module. The first forwarding data belongs to the TCP proxy function corresponding to the terminal within the TCP proxy module, and the second forwarding data belongs to the PDCP module. The second base station then sends both the first and second forwarding data to the terminal. This effectively avoids packet loss on the forwarding link and improves data transmission reliability.

[0100] It should be noted that the division of units in the embodiments of this application 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 application can be integrated into one processing unit, or each unit can exist physically separately, or two or more units can be integrated into one unit. The integrated units described above can be implemented in hardware or as software functional units.

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

[0102] Based on this understanding, the technical solution of this application, in essence, or the part that contributes to the prior art, or all or part of the technical solution, can be embodied in the form of a software product. This computer software product is stored in a storage medium and includes 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 in the various embodiments of this application. The aforementioned storage medium includes various media capable of storing program code, such as a USB flash drive, a portable hard drive, a read-only memory (ROM), a random access memory (RAM), a magnetic disk, or an optical disk.

[0103] It should be noted that the apparatus provided in this application embodiment can implement all the method steps implemented in the above method embodiment and can achieve the same technical effect. Here, the parts that are the same as those in the method embodiment and the beneficial effects will not be described in detail.

[0104] Figure 9 This is a schematic diagram of the structure of a data forwarding device proposed in another embodiment of this application.

[0105] See Figure 9 The data forwarding device 90 includes a memory 901, a transceiver 902, a processor 903, and a user interface 904: the memory 901 is used to store computer programs; the transceiver 902 is used to send and receive data under the control of the processor 903; the processor 903 is used to read the computer program in the memory 901 and perform the following operations:

[0106] In response to the determination that the terminal needs to switch from the first base station to the second base station, the first data to be forwarded in the TCP proxy module related to the TCP proxy function corresponding to the terminal is determined;

[0107] Determine the second data to be forwarded in the PDCP module; and

[0108] The first and second data to be forwarded are forwarded together to the second base station.

[0109] Alternatively, processor 903 is used to read the computer program in memory 901 and perform the following operations:

[0110] The system receives first forwarding data and second forwarding data sent by the first base station. The first base station includes a Transmission Control Protocol (TCP) proxy module and a Packet Data Convergence Protocol (PDCP) module. The first forwarding data belongs to the TCP proxy function corresponding to the terminal in the TCP proxy module, and the second forwarding data belongs to the PDCP module.

[0111] Send the first and second data to be forwarded to the terminal.

[0112] In some embodiments of this application, the processor 903 is also used for:

[0113] The data cached in the TCP proxy module between the minimum TCP sequence number (TSN) and the maximum TSN of the first TCP packet is used as the first data to be forwarded.

[0114] The determination of the second data to be forwarded in the PDCP module includes:

[0115] The data cached in the PDCP module between the minimum TSN of the second TCP packet and the maximum TSN of the second TCP packet is used as the second forwarding data, wherein the minimum TSN of the second TCP packet is greater than or equal to the minimum TSN of the first TCP packet, and the maximum TSN of the second TCP packet is equal to the maximum TSN of the first TCP packet.

[0116] In some embodiments of this application, the processor 903 is also used for:

[0117] Identify the first part of the data to be forwarded from the first data to be forwarded, wherein the first part of the data to be forwarded does not belong to the second data to be forwarded;

[0118] Copy the first part of the data to be forwarded to obtain the second part of the data to be forwarded.

[0119] The first set of data to be forwarded, the second set of data to be forwarded, and the second set of data to be forwarded are forwarded together to the second base station.

[0120] In some embodiments of this application, the processor 903 is also used for:

[0121] The TCP proxy module forwards the first part of the data to be forwarded and the second part of the data to be forwarded to the PDCP module.

[0122] The PDCP module forwards the first set of data to be forwarded, the second set of data to be forwarded, and the second set of data to be forwarded to the second base station.

[0123] In some embodiments of this application, the processor 903 is also used for:

[0124] Before forwarding the first and second data to be forwarded together to the second base station, at least one TCP proxy thread in the TCP proxy module corresponding to the TCP proxy function of the terminal is determined.

[0125] Set each TCP proxy thread to the first state, where the first state indicates a delayed shutdown of the corresponding TCP proxy thread.

[0126] In some embodiments of this application, the processor 903 is also used for:

[0127] Determine the start time of the first state for each TCP proxy thread;

[0128] If the duration between the start time of the first state and the current time reaches a first duration threshold, the corresponding TCP proxy thread will be changed from the first state to the second state, where the second state is used to shut down the corresponding TCP proxy thread.

[0129] In some embodiments of this application, the processor 903 is also used for:

[0130] Receive the first downlink data related to the TCP proxy thread sent by the server, wherein the first downlink data is the currently received downlink data;

[0131] The first response message related to the first downlink data is delayed and sent to the server.

[0132] In some embodiments of this application, the processor 903 is also used for:

[0133] Determine the sending time corresponding to the second response message, wherein the second downlink data related to the second response message is downlink unacknowledged data received before the first downlink data, and the duration between the receiving time of the second downlink data and the current time reaches a second duration threshold.

[0134] If the duration between the current time and the sending time does not reach the third duration threshold, then the first response message related to the first downlink data will not be sent to the server.

[0135] If the duration between the current time and the sending time reaches the third duration threshold, a first response message related to the first downlink data is sent to the server.

[0136] In some embodiments of this application, the processor 903 is also used for:

[0137] Based on the initial loopback time (RTT), a third duration threshold is determined, where the initial RTT is the time interval between the server sending the first downlink data to the first base station and receiving the first response message related to the first downlink data sent by the first base station, and the third duration threshold is an integer multiple of the initial RTT.

[0138] In some embodiments of this application, the third duration threshold is incremented step by step with the initial RTT until the corresponding TCP proxy thread is set to the second state.

[0139] Among them, Figure 9 In this context, the bus architecture can include any number of interconnected buses and bridges, specifically linking various circuits of one or more processors represented by processor 903 and memory represented by memory 901 together. 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. Transceiver 902 can be multiple elements, including transmitters and receivers, providing a unit for communicating with various other devices over a transmission medium, including wireless channels, wired channels, optical fibers, etc. For different user equipment, the user interface 904 can also be an interface capable of connecting external or internal devices, including but not limited to keypads, displays, speakers, microphones, joysticks, etc.

[0140] The processor 903 is responsible for managing the bus architecture and general processing, while the memory 901 can store the data used by the processor 903 during operation.

[0141] Optionally, the processor 903 can be a CPU (Central Processing Unit), ASIC (Application Specific Integrated Circuit), FPGA (Field-Programmable Gate Array), or CPLD (Complex Programmable Logic Device), and the processor can also adopt a multi-core architecture.

[0142] The processor executes any of the methods provided in the embodiments of this application by calling a computer program stored in memory, according to the obtained executable instructions. The processor and memory may also be physically separated.

[0143] It should be noted that the apparatus provided in this application embodiment can implement all the method steps implemented in the above method embodiment and can achieve the same technical effect. Here, the parts that are the same as those in the method embodiment and the beneficial effects will not be described in detail.

[0144] To implement the above embodiments, this application proposes a processor-readable storage medium storing a computer program for causing the processor to execute a data forwarding method.

[0145] Those skilled in the art will understand that embodiments of this application can be provided as methods, systems, or computer program products. Therefore, this application can take the form of a completely hardware embodiment, a completely software embodiment, or an embodiment combining software and hardware aspects. Furthermore, this application can take the form of a computer program product implemented on one or more computer-usable storage media (including, but not limited to, disk storage and optical storage) containing computer-usable program code.

[0146] This application is described with reference to flowchart illustrations and / or block diagrams of methods, apparatus (systems), and computer program products according to embodiments of this application. 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... Figure 1 One or more processes and / or boxes Figure 1 A device that provides the functions specified in one or more boxes.

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

[0148] 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 1The steps of the function specified in one or more boxes.

[0149] Obviously, those skilled in the art can make various modifications and variations to this application without departing from the spirit and scope of this application. Therefore, if such modifications and variations fall within the scope of the claims of this application and their equivalents, this application also intends to include such modifications and variations.

[0150] It should be noted that in the description of this application, the terms "first," "second," etc., are used for descriptive purposes only and should not be construed as indicating or implying relative importance. Furthermore, in the description of this application, unless otherwise stated, "a plurality of" means two or more.

[0151] Any process or method described in the flowchart or otherwise herein can be understood as representing a module, segment, or portion of code comprising one or more executable instructions for implementing a particular logical function or process, and the scope of the preferred embodiments of this application includes additional implementations in which functions may be performed not in the order shown or discussed, including substantially simultaneously or in reverse order depending on the function involved, as will be understood by those skilled in the art to which embodiments of this application pertain.

[0152] It should be understood that various parts of this application can be implemented using hardware, software, firmware, or a combination thereof. In the above embodiments, multiple steps or methods can be implemented using software or firmware stored in memory and executed by a suitable instruction execution system. For example, if implemented in hardware, as in another embodiment, it can be implemented using any one or a combination of the following techniques known in the art: discrete logic circuits having logic gates for implementing logical functions on data signals, application-specific integrated circuits (ASICs) having suitable combinational logic gates, programmable gate arrays (PGAs), field-programmable gate arrays (FPGAs), etc.

[0153] Those skilled in the art will understand that all or part of the steps of the methods in the above embodiments can be implemented by a program instructing related hardware. The program can be stored in a computer-readable storage medium, and when executed, the program includes one or a combination of the steps of the method embodiments.

[0154] Furthermore, the functional units in the various embodiments of this application can be integrated into a processing module, or each unit can exist physically separately, or two or more units can be integrated into a module. The integrated module can be implemented in hardware or as a software functional module. If the integrated module is implemented as a software functional module and sold or used as an independent product, it can also be stored in a computer-readable storage medium.

[0155] The storage media mentioned above can be read-only memory, disk, or optical disk, etc.

[0156] In the description of this specification, the references to terms such as "one embodiment," "some embodiments," "example," "specific example," or "some examples," etc., indicate that a specific feature, structure, material, or characteristic described in connection with that embodiment or example is included in at least one embodiment or example of this application. In this specification, the illustrative expressions of the above terms do not necessarily refer to the same embodiment or example. Furthermore, the specific features, structures, materials, or characteristics described may be combined in any suitable manner in one or more embodiments or examples.

[0157] Although embodiments of this application have been shown and described above, it is understood that the above embodiments are exemplary and should not be construed as limiting this application. Those skilled in the art can make changes, modifications, substitutions and variations to the above embodiments within the scope of this application.

[0158] It should be noted that in the description of this application, the terms "first," "second," etc., are used for descriptive purposes only and should not be construed as indicating or implying relative importance. Furthermore, in the description of this application, unless otherwise stated, "a plurality of" means two or more.

[0159] Any process or method described in the flowchart or otherwise herein can be understood as representing a module, segment, or portion of code comprising one or more executable instructions for implementing a particular logical function or process, and the scope of the preferred embodiments of this application includes additional implementations in which functions may be performed not in the order shown or discussed, including substantially simultaneously or in reverse order depending on the function involved, as will be understood by those skilled in the art to which embodiments of this application pertain.

[0160] It should be understood that various parts of this application can be implemented using hardware, software, firmware, or a combination thereof. In the above embodiments, multiple steps or methods can be implemented using software or firmware stored in memory and executed by a suitable instruction execution system. For example, if implemented in hardware, as in another embodiment, it can be implemented using any one or a combination of the following techniques known in the art: discrete logic circuits having logic gates for implementing logical functions on data signals, application-specific integrated circuits (ASICs) having suitable combinational logic gates, programmable gate arrays (PGAs), field-programmable gate arrays (FPGAs), etc.

[0161] Those skilled in the art will understand that all or part of the steps of the methods in the above embodiments can be implemented by a program instructing related hardware. The program can be stored in a computer-readable storage medium, and when executed, the program includes one or a combination of the steps of the method embodiments.

[0162] Furthermore, the functional units in the various embodiments of this application can be integrated into a processing module, or each unit can exist physically separately, or two or more units can be integrated into a module. The integrated module can be implemented in hardware or as a software functional module. If the integrated module is implemented as a software functional module and sold or used as an independent product, it can also be stored in a computer-readable storage medium.

[0163] The storage media mentioned above can be read-only memory, disk, or optical disk, etc.

[0164] In the description of this specification, the references to terms such as "one embodiment," "some embodiments," "example," "specific example," or "some examples," etc., indicate that a specific feature, structure, material, or characteristic described in connection with that embodiment or example is included in at least one embodiment or example of this application. In this specification, the illustrative expressions of the above terms do not necessarily refer to the same embodiment or example. Furthermore, the specific features, structures, materials, or characteristics described may be combined in any suitable manner in one or more embodiments or examples.

[0165] Although embodiments of this application have been shown and described above, it is understood that the above embodiments are exemplary and should not be construed as limiting this application. Those skilled in the art can make changes, modifications, substitutions and variations to the above embodiments within the scope of this application.

Claims

1. A data forwarding method, characterized in that, The method is executed by a first base station, which includes a Transmission Control Protocol (TCP) proxy module and a Packet Data Convergence Protocol (PDCP) module; the method includes: In response to determining that the terminal needs to be switched from the first base station to the second base station, the first data to be forwarded in the TCP proxy module related to the TCP proxy function corresponding to the terminal is determined; Determine the second data to be forwarded in the PDCP module; and The first data to be forwarded and the second data to be forwarded are forwarded together to the second base station.

2. The method as described in claim 1, characterized in that, in, The step of determining the first data to be forwarded in the TCP proxy module related to the TCP proxy function corresponding to the terminal includes: The data cached in the TCP proxy module between the minimum TCP sequence number (TSN) and the maximum TSN of the first TCP packet is used as the first forwarding data. The step of determining the second data to be forwarded in the PDCP module includes: The data cached in the PDCP module between the minimum TSN of the second TCP packet and the maximum TSN of the second TCP packet is used as the second forwarding data, wherein the minimum TSN of the second TCP packet is greater than or equal to the minimum TSN of the first TCP packet, and the maximum TSN of the second TCP packet is equal to the maximum TSN of the first TCP packet.

3. The method as described in claim 1, characterized in that, The step of forwarding the first data to be forwarded and the second data to be forwarded together to the second base station includes: Identify a first portion of data to be forwarded from the first data to be forwarded, wherein the first portion of data to be forwarded does not belong to the second data to be forwarded; The first part of the data to be forwarded is copied to obtain the second part of the data to be forwarded. The first data to be forwarded, the second part of the data to be forwarded, and the second data to be forwarded are forwarded together to the second base station.

4. The method as described in claim 3, characterized in that, The step of forwarding the first data to be forwarded, the second portion of the data to be forwarded, and the second data to be forwarded together to the second base station includes: The TCP proxy module transmits the first data to be forwarded and the second part of the data to be forwarded to the PDCP module. The PDCP module forwards the first data to be forwarded, the second part of the data to be forwarded, and the second data to be forwarded together to the second base station.

5. The method as described in claim 1, characterized in that, Before forwarding the first data to be forwarded and the second data to be forwarded together to the second base station, the method further includes: Identify at least one TCP proxy thread in the TCP proxy module that corresponds to the TCP proxy function of the terminal; Each of the TCP proxy threads is set to a first state, wherein the first state indicates a delayed shutdown of the corresponding TCP proxy thread.

6. The method as described in claim 5, characterized in that, The method further includes: Determine the start time of the first state corresponding to each of the TCP proxy threads; If the duration between the start time of the first state and the current time reaches a first duration threshold, the corresponding TCP proxy thread is changed from being in the first state to being in the second state, wherein the second state is used to shut down the corresponding TCP proxy thread.

7. The method as described in claim 6, characterized in that, The method further includes: The server receives first downlink data related to the TCP proxy thread, wherein the first downlink data is the currently received downlink data; The first response message related to the first downlink data is delayed in being sent to the server.

8. The method as described in claim 7, characterized in that, The delay in sending a first response message related to the first downlink data to the server includes: Determine the sending time corresponding to the second response message, wherein the second downlink data related to the second response message is downlink unacknowledged data received before the first downlink data, and the duration between the receiving time of the second downlink data and the current time reaches a second duration threshold. If the duration between the current time and the sending time does not reach the third duration threshold, then the first response message related to the first downlink data will not be sent to the server. If the duration between the current time and the sending time reaches the third duration threshold, a first response message related to the first downlink data is sent to the server.

9. The method as described in claim 8, characterized in that, The method further includes: The third duration threshold is determined based on the initial loopback time (RTT), wherein the initial RTT is the time interval between the time the server sends the first downlink data to the first base station and the time it receives the first response message related to the first downlink data sent by the first base station, and the third duration threshold is an integer multiple of the initial RTT.

10. The method as described in claim 9, characterized in that, The third duration threshold is incremented step by step with the initial RTT until the corresponding TCP proxy thread is set to the second state.

11. A data forwarding method, characterized in that, The method, executed by a second base station, includes: The system receives first forwarding data and second forwarding data sent by a first base station. The first base station includes a Transmission Control Protocol (TCP) proxy module and a Packet Data Convergence Protocol (PDCP) module. The first forwarding data belongs to the TCP proxy function corresponding to the terminal in the TCP proxy module, and the second forwarding data belongs to the PDCP module. The first data to be forwarded and the second data to be forwarded are sent to the terminal.

12. A data forwarding device, characterized in that, The device includes: The first determining unit is configured to, in response to determining that the terminal needs to be switched from the first base station to the second base station, determine the first forwarding data related to the TCP proxy function corresponding to the terminal in the TCP proxy module of the transmission control protocol of the first base station; The second determining unit is used to determine the second data to be forwarded in the Packet Data Convergence Protocol (PDCP) module of the first base station; and The forwarding unit is used to forward the first data to be forwarded and the second data to be forwarded to the second base station.

13. A data forwarding device, characterized in that, The device includes: The receiving unit is used to receive first forwarding data and second forwarding data sent by the first base station. The first base station includes a transmission control protocol TCP proxy module and a packet data convergence protocol PDCP module. The first forwarding data belongs to the TCP proxy function corresponding to the terminal in the TCP proxy module, and the second forwarding data belongs to the PDCP module. The sending unit is used to send the first data to be forwarded and the second data to be forwarded to the terminal.

14. A data forwarding device, characterized in that, Includes memory, transceiver, and processor: 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 program in the memory and perform the following operations: In response to determining that the terminal needs to be switched from the first base station to the second base station, the first data to be forwarded in the TCP proxy module related to the TCP proxy function corresponding to the terminal is determined; Determine the second data to be forwarded in the PDCP module; as well as The first data to be forwarded and the second data to be forwarded are forwarded together to the second base station.

15. The apparatus as claimed in claim 14, characterized in that, The processor is also used for: The data cached in the TCP proxy module between the minimum TCP sequence number (TSN) and the maximum TSN of the first TCP packet is used as the first forwarding data. The step of determining the second data to be forwarded in the PDCP module includes: The data cached in the PDCP module between the minimum TSN of the second TCP packet and the maximum TSN of the second TCP packet is used as the second forwarding data, wherein the minimum TSN of the second TCP packet is greater than or equal to the minimum TSN of the first TCP packet, and the maximum TSN of the second TCP packet is equal to the maximum TSN of the first TCP packet.

16. The apparatus as claimed in claim 14, characterized in that, The processor is also used for: Identify a first portion of data to be forwarded from the first data to be forwarded, wherein the first portion of data to be forwarded does not belong to the second data to be forwarded; The first part of the data to be forwarded is copied to obtain the second part of the data to be forwarded. The first data to be forwarded, the second part of the data to be forwarded, and the second data to be forwarded are forwarded together to the second base station.

17. The apparatus as claimed in claim 16, characterized in that, The processor is also used for: The TCP proxy module transmits the first data to be forwarded and the second part of the data to be forwarded to the PDCP module. The PDCP module forwards the first data to be forwarded, the second part of the data to be forwarded, and the second data to be forwarded together to the second base station.

18. The apparatus as claimed in claim 14, characterized in that, The processor is also used for: Before forwarding the first data to be forwarded and the second data to be forwarded to the second base station together, at least one TCP proxy thread in the TCP proxy module corresponding to the TCP proxy function of the terminal is determined. Each of the TCP proxy threads is set to a first state, wherein the first state indicates a delayed shutdown of the corresponding TCP proxy thread.

19. The apparatus as claimed in claim 18, characterized in that, The processor is also used for: Determine the start time of the first state corresponding to each of the TCP proxy threads; If the duration between the start time of the first state and the current time reaches a first duration threshold, the corresponding TCP proxy thread is changed from being in the first state to being in the second state, wherein the second state is used to shut down the corresponding TCP proxy thread.

20. The apparatus as claimed in claim 19, characterized in that, The processor is also used for: The server receives first downlink data related to the TCP proxy thread, wherein the first downlink data is the currently received downlink data; The first response message related to the first downlink data is delayed in being sent to the server.

21. The apparatus as claimed in claim 20, characterized in that, The processor is also used for: Determine the sending time corresponding to the second response message, wherein the second downlink data related to the second response message is downlink unacknowledged data received before the first downlink data, and the duration between the receiving time of the second downlink data and the current time reaches a second duration threshold. If the duration between the current time and the sending time does not reach the third duration threshold, then the first response message related to the first downlink data will not be sent to the server. If the duration between the current time and the sending time reaches the third duration threshold, a first response message related to the first downlink data is sent to the server.

22. The apparatus as claimed in claim 21, characterized in that, The processor is also used for: The third duration threshold is determined based on the initial loopback time (RTT), wherein the initial RTT is the time interval between the time the server sends the first downlink data to the first base station and the time it receives the first response message related to the first downlink data sent by the first base station, and the third duration threshold is an integer multiple of the initial RTT.

23. The apparatus as claimed in claim 22, characterized in that, The third duration threshold is incremented step by step with the initial RTT until the corresponding TCP proxy thread is set to the second state.

24. A data forwarding device, characterized in that, Includes memory, transceiver, and processor: memory is used to store computer programs; Transceiver, used to send and receive data under the control of the processor; Processor, configured to read the computer program in the memory and perform the following operations: The system receives first forwarding data and second forwarding data sent by a first base station. The first base station includes a Transmission Control Protocol (TCP) proxy module and a Packet Data Convergence Protocol (PDCP) module. The first forwarding data belongs to the TCP proxy function corresponding to the terminal in the TCP proxy module, and the second forwarding data belongs to the PDCP module. The first data to be forwarded and the second data to be forwarded are sent to the terminal.

25. A processor-readable storage medium, characterized in that, The processor-readable storage medium stores a computer program for causing the processor to perform the data forwarding method according to any one of claims 1 to 11.

Citation Information

Patent Citations

  • Proxy data processing method and device

    CN111225422A

  • Transmission optimization method and system, electronic equipment and storage medium

    CN115567977A