WO2013159516A1 - Wireless side tcp data retransmission method and device - Google Patents

Wireless side tcp data retransmission method and device Download PDF

Info

Publication number
WO2013159516A1
WO2013159516A1 PCT/CN2012/085231 CN2012085231W WO2013159516A1 WO 2013159516 A1 WO2013159516 A1 WO 2013159516A1 CN 2012085231 W CN2012085231 W CN 2012085231W WO 2013159516 A1 WO2013159516 A1 WO 2013159516A1
Authority
WO
WIPO (PCT)
Prior art keywords
data packet
terminal device
message
tcp
dup ack
Prior art date
Application number
PCT/CN2012/085231
Other languages
French (fr)
Chinese (zh)
Inventor
柴新旺
Original Assignee
大唐移动通信设备有限公司
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by 大唐移动通信设备有限公司 filed Critical 大唐移动通信设备有限公司
Publication of WO2013159516A1 publication Critical patent/WO2013159516A1/en

Links

Classifications

    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L1/00Arrangements for detecting or preventing errors in the information received
    • H04L1/12Arrangements for detecting or preventing errors in the information received by using return channel
    • H04L1/16Arrangements for detecting or preventing errors in the information received by using return channel in which the return channel carries supervisory signals, e.g. repetition request signals
    • H04L1/18Automatic repetition systems, e.g. Van Duuren systems
    • H04L1/1867Arrangements specially adapted for the transmitter end
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L69/00Network arrangements, protocols or services independent of the application payload and not provided for in the other groups of this subclass
    • H04L69/30Definitions, standards or architectural aspects of layered protocol stacks
    • H04L69/32Architecture of open systems interconnection [OSI] 7-layer type protocol stacks, e.g. the interfaces between the data link level and the physical level
    • H04L69/322Intralayer communication protocols among peer entities or protocol data unit [PDU] definitions
    • H04L69/326Intralayer communication protocols among peer entities or protocol data unit [PDU] definitions in the transport layer [OSI layer 4]

Definitions

  • the present invention relates to the field of communications technologies, and in particular, to a method and device for wireless side TCP data retransmission. Background technique
  • TCP Transmission Control Protocol
  • connection-oriented connection-oriented
  • reliable byte-based transport layer transport protocol
  • the terminal On the radio side of a RNC (Radio Network Controller) with a TCP proxy function or a 3G (3rd Generation, 3rd Generation, 3rd Generation Mobile Telecommunications) terminal with a TCP entity, due to air packet loss and non-sequential delivery, The terminal receives a large number of out-of-order packets.
  • the TCP entity corresponding to the terminal sends a Dup ACK (repeated acknowledgement) or SACK (selective acknowledgement) after receiving the out-of-order packet, indicating that a certain packet is lost.
  • Dup ACK peerated acknowledgement
  • SACK selective acknowledgement
  • these packets are divided into many small packets for transmission in the air interface. Due to the discarding of a small packet, the entire large packet cannot be delivered to the TCP entity of the terminal. At this time, the TCP entity of the terminal sends a Dup ACK or SACK, requesting the RNC side. The TCP proxy retransmits the packet data. After the packet is lost, it will be retransmitted at the RLC (Radio Link Control) layer. When the retransmitted packet is correctly received by the terminal, the entire packet is handed over to the TCP layer of the terminal.
  • RLC Radio Link Control
  • the RNC's TCP layer retransmits the packet data at this time, it will cause the packet to be repeatedly transmitted in the air interface, resulting in waste of air interface resources and bandwidth.
  • Dup ACK or SACK is the TCP protocol to inform the sender that data loss can be used in two ways:
  • One way is to continuously receive 3 Dup ACKs (a total of 4 ACKs have the same acknowledgment number), indicating that the data packet receiving end of the acknowledgment number is not received; another way is that SACK directly tells the sender which data is received. , which data was not received.
  • TCP proxy For the unreceived data, retransmission processing is required.
  • the TCP proxy has a large processing for retransmission.
  • the retransmission mechanism of TCP protocol or the improvement of TCP retransmission mechanism including: (1) TCP protocol fast retransmission algorithm
  • TCP When TCP sends a segment, it creates a retransmission timer for a specific segment based on RTT (Round-Trip Time). If the acknowledgment of the segment is received before the timer expires, the timer is revoked; if the acknowledgment for the segment is not received before the timer expires, the segment is retransmitted, and Clear the timer.
  • RTT Red-Trip Time
  • This algorithm is an improvement on the fast retransmission algorithm. If 3 Dup ACKs are received before the retransmission timer expires (-a total of 4 ACKs have the same acknowledgment number), the packet is retransmitted immediately and continues to be received later. 3 Dup ACKs, no longer retransmitted, until 8 ACKs are received with the same acknowledgment number, the packet is retransmitted, and subsequent 16 ACKs have the same acknowledgment number before retransmitting the packet... ... thus avoiding unnecessary unnecessary multiple retransmissions.
  • the inventors have found that at least the following problems exist in the prior art:
  • the above three methods, the TCP protocol fast retransmission algorithm and the retransmission timer are part of the TCP protocol, and the power retransmission algorithm is based on fast An improvement in the retransmission algorithm.
  • These methods have great limitations in solving the problem of whether the wireless side needs to retransmit data packets.
  • the specific analysis is as follows:
  • TCP protocol fast retransmission algorithm this is the implementation method specified by the TCP protocol.
  • the drawback of this method is obvious.
  • the data packet sent by the TCP entity is divided into multiple in the RLC. If a small packet is lost, and the process of retransmitting these small packets takes a certain amount of time or the packets are repeatedly discarded in the air interface, the terminal will send a large number of Dup ACKs. If the fast retransmission algorithm is used, the entire data packet Being sent non-stop, wasting bandwidth and air interface resources.
  • the method of retransmission timer has limitations in the wireless environment, mainly because the RTT is a very large value in the air interface, and the prediction according to the previous value is often inaccurate. If the RTT time prediction is short, It will lead to unnecessary retransmission, waste bandwidth and air interface resources; if the RTT time prediction is long, the real-time performance will be poor first, and then the transmission window will be full, which will also cause the air interface to be idle, resulting in unnecessary waste of air interface resources.
  • the power retransmission algorithm is an improvement to the TCP protocol fast retransmission algorithm. Although it can reduce the number of times a TCP entity sends duplicate packets, it cannot be avoided. Moreover, if the data packet is lost again, the data packet is retransmitted again. The real-time performance is poor.
  • the embodiments of the present invention provide a method and a device for retransmitting a TCP data on a wireless side.
  • the wireless side retransmission processing cannot be reasonably solved, and the system resources are wasted. .
  • an embodiment of the present invention provides a method for retransmitting a wireless side TCP data, including at least the following steps: When a TCP entity receives an uplink message sent by a terminal device, the TCP entity determines the uplink.
  • the TCP entity determines whether the RLC layer has sent all the fragment packets of the data packet corresponding to the Dup ACK message to the terminal device, and receives the terminal device The acknowledgment message returned; if the judgment result is yes, the TCP entity counts and accumulates the Dup ACK message; the TCP entity determines whether the current count value of the Dup ACK message reaches 2; The data packet corresponding to the Dup ACK message is transmitted, and the count value of the Dup ACK message is set to zero.
  • the TCP entity determines whether the RLC layer has sent all the fragmented packets of the data packet corresponding to the Dup ACK message to the terminal device, and receives the acknowledgement message returned by the terminal device, including: The TCP entity determines a sequence number of the fragment packet that has been confirmed by the terminal device in each fragment packet of the data packet corresponding to the Dup ACK message; and the TCP entity determines whether the maximum value of the sequence number reaches the Determining the sequence number of the data packet corresponding to the Dup ACK message at the RLC layer; if so, the TCP entity confirms that the RLC layer has already performed the Dup ACK All the fragmented packets of the data packet corresponding to the message are sent to the terminal device, and an acknowledgement message returned by the terminal device is received.
  • the TCP entity determines whether the RLC layer has sent all the fragmented packets of the data packet corresponding to the Dup ACK message to the terminal device, and after receiving the acknowledgement message returned by the terminal device, The method includes: if the judgment result is no, the TCP entity sets the count value of the Dup ACK message to zero.
  • the TCP entity further includes: the TCP entity records a termination sequence number of the data packet that is retransmitted at the RLC layer.
  • the method further includes: the TCP entity determining the uplink Whether the SACK message is included in the message; if yes, the TCP entity selects a corresponding data packet according to the sending sequence of each data packet corresponding to the SACK message; the TCP entity determines whether the RLC layer has already selected the currently selected data. All the fragmented packets of the packet are sent to the terminal device, and an acknowledgement message returned by the terminal device is received; if the determination result is yes, the TCP entity retransmits the currently selected data packet.
  • the TCP entity determines whether the RLC layer has sent all the fragmented packets of the currently selected data packet to the terminal device, and receives the acknowledgement message returned by the terminal device, including: a sequence number of a fragment packet that has been confirmed by the terminal device in each fragment packet of the currently selected data packet; the TCP entity determining whether the maximum value of the sequence number reaches the currently selected data a termination sequence number of the RLC layer; if so, the TCP entity confirms that the RLC layer has sent all the fragment packets of the currently selected data packet to the terminal device, and receives the return from the terminal device Confirm the message.
  • the TCP entity determines whether the RLC layer has sent all the fragmented packets of the currently selected data packet to the terminal device, and after receiving the acknowledgement message returned by the terminal device, the method further includes: If not, the TCP entity confirms that each data packet corresponding to the SACK message after the currently selected data packet is not sent.
  • the TCP entity further includes: the TCP entity records a termination sequence number of the data packet that is retransmitted at the RLC layer.
  • the embodiment of the present invention further provides a network device, as a TCP entity, is applied to a network system that has a TCP connection across a wireless network, and includes: a receiving module, configured to receive an uplink message sent by the terminal device; a determining module, configured to determine whether the uplink message received by the receiving module includes a Dup ACK message, and the second determining module is configured to determine whether the RLC layer is already included when the determining result of the first determining module is included Sending, to the terminal device, all the fragmented packets of the data packet corresponding to the Dup ACK message, and receiving an acknowledgement message returned by the terminal device; and the counting module configured to be determined by the second determining module If yes, the Dup ACK message received by the receiving module is counted and accumulated; the
  • the second determining module is configured to: determine a sequence number of a fragment packet that has been confirmed by the terminal device in each fragment packet of the data packet corresponding to the Dup ACK message; determine the sequence Whether the maximum value of the number reaches the termination sequence number of the data packet corresponding to the Dup ACK message at the RLC layer; if so, it is confirmed that the RLC layer has sent all the fragment packets of the data packet corresponding to the Dup ACK message to the The terminal device is received, and an acknowledgement message returned by the terminal device is received.
  • the counting module is further configured to: when the determination result of the second determining module is negative, set the count value of the Dup ACK message to zero.
  • the processing module is further configured to: when retransmitting the data packet corresponding to the Dup ACK message, record a termination sequence number of the data packet that is retransmitted at the RLC layer.
  • the fourth determining module, the selecting module, and the fifth determining module are configured to: the fourth determining module is configured to determine, in the first determining module, that the uplink message does not include a Dup ACK message, or After the processing module retransmits the data packet corresponding to the Dup ACK message, it is determined whether the uplink message includes a SACK message, and the selecting module is configured to: when the determination result of the fourth determining module is included, The sending sequence of each data packet corresponding to the SACK message selects a corresponding data packet; the fifth determining module is configured to determine whether the RLC layer has been Sending, by the processing module, all the fragmented packets of the data packet currently selected by the selection module to the terminal device, and receiving the confirmation message returned by the terminal device; When the judgment result of the module is YES, the currently selected data packet is retransmitted.
  • the fifth determining module is configured to: determine, in each fragment packet of the data packet currently selected by the selecting module, a sequence number of the fragment packet that has been confirmed by the terminal device; determine the sequence Whether the maximum value of the number reaches the termination sequence number of the currently selected data packet at the RLC layer; if so, confirming that the RLC layer has sent all the fragmented packets of the currently selected data packet to the terminal device, And receiving the confirmation message returned by the terminal device.
  • the processing module is further configured to: when the determination result of the fifth determining module is negative, confirm that each data packet corresponding to the SACK message after the data packet currently selected by the selecting module is Not sent.
  • the processing module is further configured to: when retransmitting the data packet currently selected by the selecting module, record a termination sequence number of the data packet that is retransmitted at the RLC layer.
  • the technical solution proposed by the embodiment of the present invention has the following advantages: In the case that the TCP entity receives the uplink message including the Dup ACK message sent by the terminal device, by applying the technical solution of the embodiment of the present invention, If the TCP entity determines that the RLC layer has sent all the fragmented packets of the data packet corresponding to the Dup ACK message to the terminal device, and receives the acknowledgement message returned by the terminal device, the Dup ACK message is counted and accumulated, and is counted.
  • the data packet corresponding to the Dup ACK message is retransmitted, so that the characteristics of the local buffering and retransmission of the TCP entity data can be flexibly utilized, and the Dup ACK of the terminal device is distinguished according to the characteristics of the reliable transmission of the RLC.
  • To achieve fast retransmission of TCP layer data accurately determine whether the data packet needs TCP layer retransmission on the wireless side of the TCP proxy, improve TCP performance and air interface resource utilization, and avoid unnecessary data retransmission. The system resources are wasted.
  • FIG. 1 is a schematic flowchart of a method for wireless side TCP data retransmission according to an embodiment of the present invention
  • FIG. 2 is a schematic diagram of a method for retransmitting wireless side TCP data according to an embodiment of the present invention. Schematic diagram of a SACK message for performing packet retransmission processing;
  • FIG. 3 is a schematic flowchart of a method for retransmitting wireless side TCP data in a specific scenario according to an embodiment of the present disclosure
  • FIG. 4 is a schematic structural diagram of a network device according to an embodiment of the present invention. detailed description
  • TCP is a reliable transmission protocol researched and developed for the wired network Internet.
  • the transmission characteristics of the wired network are low bit error rate and easy congestion. Therefore, its transmission control algorithm is mainly designed based on the network congestion model.
  • TCP when a TCP connection spans both wired and wireless networks, TCP will not be able to adapt to the high bit error rate, high latency jitter, cell handover, out-of-order, etc. of the wireless transmission channel, causing false slow start and congestion avoidance. And retransmission, when the quality of the air interface is quickly restored, TCP data cannot be transmitted in time, resulting in a decrease in bandwidth resource utilization, a decrease in effective bandwidth, and fluctuations in throughput.
  • a common practice in the prior art is to set a TCP proxy on the RNC side, and enhance the wireless side through mechanisms such as local buffering, sorting, flow control, local retransmission, and suppression of Dup ACK.
  • the performance of the transmission is to set a TCP proxy on the RNC side, and enhance the wireless side through mechanisms such as local buffering, sorting, flow control, local retransmission, and suppression of Dup ACK. The performance of the transmission.
  • the embodiment of the present invention provides a method for wireless side TCP data retransmission, which mainly solves how to determine whether a data packet needs a TCP layer retransmission in a wireless side of a TCP proxy, so as to improve TCP performance and air interface. Resource utilization issues.
  • FIG. 1 it is a schematic flowchart of a method for retransmitting a wireless side TCP data according to an embodiment of the present invention, where the method specifically includes the following steps:
  • Step S101 When the TCP entity receives the uplink message sent by the terminal device, the TCP entity determines whether the uplink message includes a Dup ACK message.
  • step S102 is performed
  • Step S102 The TCP entity determines whether the RLC layer has sent all the fragmented packets of the data packet corresponding to the Dup ACK message to the terminal device, and receives an acknowledgement message returned by the terminal device.
  • step S103 is performed.
  • the TCP entity further performs step S106.
  • processing of this step specifically includes:
  • the TCP entity determines a sequence number of a fragment packet that has been confirmed by the terminal device in each fragment packet of the data packet corresponding to the Dup ACK message.
  • the TCP entity determines whether the maximum value of the sequence number reaches the termination sequence number of the data packet corresponding to the Dup ACK message at the RLC layer.
  • the TCP entity confirms that the RLC layer has sent all the fragmented packets of the data packet corresponding to the Dup ACK message to the terminal device, and receives an acknowledgement message returned by the terminal device.
  • Step S103 The TCP entity counts and accumulates the Dup ACK message.
  • Step S104 The TCP entity determines whether the current count value of the Dup ACK message reaches 2.
  • step S105 If yes, proceed to step S105; If not, it indicates that the TCP entity does not need to perform retransmission processing for the data packet corresponding to the Dup ACK message, and returns to step S101.
  • the ACK message (including the Dup ACK message) and the RLC layer acknowledgment data (including the correct received acknowledgment message sent after the terminal device side receives the fragment packet in the data packet) are often in the same FP (Frame) In the Protocol, frame protocol, for this reason, if the count value of the Dup ACK message is set to 1 to trigger the packet retransmission, a large probability of repeated multiple transmission occurs. However, if the count value of the Dup ACK message is equal to 2, the data packet retransmission is triggered, indicating that the RLC layer has sent the data packet to the terminal device side and receives the terminal device when the Dup ACK message is received last time. Side confirmation.
  • Step S105 The TCP entity retransmits the data packet corresponding to the Dup ACK message, and sets the count value of the Dup ACK message to zero.
  • the TCP entity in the process of performing data packet retransmission, the TCP entity also needs to record the termination sequence number of the data packet that is retransmitted in the RLC layer, so as to use the termination sequence number as a subsequent processing. In the process, it is judged whether or not the data packet is retransmitted.
  • step S106 the retransmission processing of the data packet corresponding to the Dup ACK message is completed. After the execution of this step is completed, the process proceeds to step S106.
  • Step S106 The TCP entity sets the count value of the Dup ACK message to zero.
  • a new counting process can be started for the Dup ACK message to determine to perform a new retransmission process.
  • the TCP entity performs the process of retransmitting the data packet according to the Dup ACK message.
  • the TCP entity may also use other methods according to the preset rule (for example, processing according to the SACK message or other information). The subsequent processing is continued, and the specific processing manner is described in the following description, and details are not described herein again.
  • the process in which the TCP entity processes in other manners according to the preset rule is mentioned.
  • the preset rule corresponds to Processing can include multiple types, where The comprehensiveness and accuracy of the packet retransmission process can be handled in accordance with the SACK message. Specifically, when the TCP entity determines in step S101 that the uplink message does not include Dup
  • the following process includes performing the data packet retransmission process according to the SACK message, and the process flow diagram of the process is shown in FIG. 2. As shown, the following steps are specifically included:
  • Step S201 The TCP entity determines whether the uplink message received by itself is included in the uplink message.
  • step S202 is performed
  • Step S202 The TCP entity selects a corresponding data packet according to a sending sequence of each data packet corresponding to the SACK message.
  • Step S203 The TCP entity determines whether the RLC layer has sent all the fragmented packets of the currently selected data packet to the terminal device, and receives the acknowledgement message returned by the terminal device.
  • step S204 is performed
  • step S205 is performed.
  • the process of determining in this step is specifically as follows: the TCP entity determines, among the fragment packets of the currently selected data packet, the fragment packet that has been confirmed by the terminal device. serial number.
  • the TCP entity determines whether the maximum value of the sequence number reaches the termination sequence number of the currently selected data packet at the RLC layer.
  • the TCP entity confirms that the RLC layer has sent all the fragmented packets of the currently selected data packet to the terminal device, and receives an acknowledgement message returned by the terminal device.
  • Step S204 The TCP entity retransmits the currently selected data packet.
  • the TCP entity in the process of performing data packet retransmission, the TCP entity also needs to record the termination sequence number of the data packet that is retransmitted in the RLC layer, so as to use the termination sequence number as a subsequent processing. In the process, it is judged whether or not the data packet is retransmitted.
  • Step S205 the TCP entity confirms the SACK after the currently selected data packet Each packet corresponding to the message has not been sent.
  • the transmission status of subsequent data packets can be quickly determined, and the system resources and processing time caused by separately determining each data packet corresponding to the SACK message can be avoided, and the corresponding processing efficiency is improved.
  • the foregoing process of processing according to the SACK message may perform more comprehensive processing on the information returned by the terminal device on the basis of the foregoing retransmission process according to the Dup ACK message, thereby determining whether the data is more accurately determined. Retransmit the corresponding data packet.
  • the technical solution proposed by the embodiment of the present invention has the following advantages: In the case that the TCP entity receives the uplink message including the Dup ACK message sent by the terminal device, by applying the technical solution of the embodiment of the present invention, If the TCP entity determines that the RLC layer has sent all the fragmented packets of the data packet corresponding to the Dup ACK message to the terminal device, and receives the acknowledgement message returned by the terminal device, the Dup ACK message is counted and accumulated, and is counted.
  • the data packet corresponding to the Dup ACK message is retransmitted, so that the characteristics of the local buffering and retransmission of the TCP entity data can be flexibly utilized, and the Dup ACK of the terminal device is distinguished according to the characteristics of the reliable transmission of the RLC.
  • To achieve fast retransmission of TCP layer data accurately determine whether the data packet needs TCP layer retransmission on the wireless side of the TCP proxy, improve TCP performance and air interface resource utilization, and avoid unnecessary data retransmission. The system resources are wasted.
  • the technical solution proposed by the embodiment of the present invention is a feature of flexibly utilizing local buffering and retransmission of TCP entity data, and combining the characteristics of reliable transmission of RLC (Radio Link Layer) to perform Dup ACK message sent by the terminal device side. Screening to achieve fast retransmission of TCP layer data.
  • RLC Radio Link Layer
  • FIG. 3 is a schematic flowchart of a method for retransmitting a wireless side TCP data in a specific application scenario according to an embodiment of the present disclosure, where the method specifically includes the following steps:
  • Step S301 The TCP entity performs normal data packet transmission at the RLC layer.
  • the TCP entity records the sequence number of the last fragment packet of each packet at the RLC layer, that is, the aforementioned termination sequence number.
  • the processing of this step is actually:
  • the TCP layer sends the data packet to the RLC layer, and the RLC segments the data packet into a plurality of fragment packets, and records the sequence number (EndSn, that is, the foregoing termination sequence number) of the last fragment packet at the TCP layer.
  • Step S302 The TCP entity receives an ACK message sent by the terminal device, and determines whether it is Dup.
  • step S303 is performed
  • step S308 is performed.
  • Step S303 The TCP entity determines an EndSn of the data packet that needs to be retransmitted corresponding to the Dup ACK message, and a fragment packet sequence number AckSn of the data packet that has been confirmed by the terminal device received by the RLC layer.
  • Step S304 The TCP entity compares the determined maximum AckSn and EndSn.
  • step S305 is performed;
  • AckSn is smaller than the EndSn, it indicates that the TCP entity does not need to perform retransmission processing for the data packet corresponding to the Dup ACK message, and the processing of the Dup ACK message in the received ACK message ends, and the steps may be performed.
  • S308 performs SACK processing or performs other processing, and in Fig. 3, it indicates that other processing is performed.
  • Step S305 The TCP entity adds 1 to the Dup Ack variable corresponding to the Dup Ack message.
  • Step S306 The TCP entity determines whether the Dup Ack variable is equal to 2.
  • step S307 is performed
  • step S308 Processing or other processing is shown in Fig. 3 as performing other processing.
  • Step S307 The TCP entity retransmits the data packet to the RLC layer, and records the Sn of the last fragment packet of the newly transmitted data packet to update the EndSn of the data packet, and simultaneously clears the Dup Ack variable.
  • Step S308 is performed in one step.
  • Step S308 The TCP entity determines whether a SACK message is currently received.
  • step S309 is performed to perform a corresponding SACK processing flow
  • Step S309 The TCP entity selects a corresponding data packet according to the sending sequence of each data packet corresponding to the SACK message.
  • Step S310 The TCP entity determines the EndSn of the data packet, and the fragment packet sequence number AckSn of the data packet that has been confirmed by the terminal device received by the RLC layer.
  • Step S311 The TCP entity compares the determined maximum AckSn with the EndSn of the data packet.
  • step S312 is performed
  • step S314 is performed.
  • Step S312 The TCP entity retransmits the data packet.
  • the TCP entity in the process of performing data packet retransmission, the TCP entity also needs to record the termination sequence number of the data packet that is retransmitted in the RLC layer, so as to use the termination sequence number as a subsequent processing. In the process, it is judged whether or not the data packet is retransmitted.
  • Step S313 The TCP entity determines whether all the data packets that need to be retransmitted corresponding to the SACK message are selected.
  • step S309 If the result of the determination is no, then return to step S309;
  • Step S314 The TCP entity confirms that each data packet corresponding to the SACK message after the currently selected data packet has not been sent.
  • step S302 it continues to wait for the subsequent ACK message, or performs other processing operations according to the preset processing rule, and the change of the specific content of the other processing does not affect the protection scope of the present invention.
  • the technical solution proposed by the embodiment of the present invention has the following advantages: In the case that the TCP entity receives the uplink message including the Dup ACK message sent by the terminal device, by applying the technical solution of the embodiment of the present invention, If the TCP entity determines that the RLC layer has sent all the fragmented packets of the data packet corresponding to the Dup ACK message to the terminal device, and receives the acknowledgement message returned by the terminal device, the Dup ACK message is counted and accumulated, and is counted.
  • the data packet corresponding to the Dup ACK message is retransmitted, so that the characteristics of the local buffering and retransmission of the TCP entity data can be flexibly utilized, and the Dup ACK of the terminal device is distinguished according to the characteristics of the reliable transmission of the RLC.
  • To achieve fast retransmission of TCP layer data accurately determine whether the data packet needs TCP layer retransmission on the wireless side of the TCP proxy, improve TCP performance and air interface resource utilization, and avoid unnecessary data retransmission. The system resources are wasted.
  • the embodiment of the present invention further provides a network device, which is used as a TCP entity in a network system that has a TCP connection across a wireless network, and a schematic structural diagram thereof is shown in FIG. 4, which includes at least :
  • the receiving module 41 is configured to receive an uplink message sent by the terminal device.
  • the first determining module 42 is configured to determine whether the uplink message received by the receiving module 41 includes a Dup ACK message
  • the second judging module 43 is configured to: when the judgment result of the first judging module 42 is included, determine whether the RLC layer has sent all the fragment packets of the data packet corresponding to the Dup ACK message to the terminal device. Receiving an acknowledgement message returned by the terminal device;
  • the counting module 44 is configured to count and accumulate the Dup ACK message received by the receiving module 41 when the determination result of the second determining module 43 is YES;
  • the third determining module 45 is configured to determine whether the current count value of the Dup ACK message counted by the counting module 44 reaches 2;
  • the processing module 46 is configured to retransmit the data packet corresponding to the Dup ACK message when the determination result of the third determining module 45 is reached, and notify the counting module 44 to count the Dup ACK message. Zero.
  • the second determining module 43 is specifically configured as:
  • the RLC layer has sent all the fragment packets of the data packet corresponding to the Dup ACK message to the terminal device, and receives the acknowledgement message returned by the terminal device.
  • the counting module 44 is further configured to set the count value of the Dup ACK message to zero when the determination result of the second determining module 43 is negative.
  • the processing module 46 is further configured to record, in the process of retransmitting the data packet corresponding to the Dup ACK message, the termination sequence number of the data packet that is retransmitted at the RLC layer.
  • the network device further includes a fourth determining module 47, a selecting module 48, and a fifth determining module 49, wherein:
  • the fourth determining module 47 is configured to: after the first determining module 42 determines that the uplink message does not include a Dup ACK message, or the processing module 46 retransmits the data packet corresponding to the Dup ACK message, Determining whether the uplink message includes a SACK message;
  • the selecting module 48 is configured to select a corresponding data packet according to a sending sequence of each data packet corresponding to the SACK message when the determining result of the fourth determining module 47 is included; the fifth determining module 49.
  • the method is configured to determine whether the RLC layer has sent all the fragmented packets of the data packet currently selected by the selecting module 48 to the terminal device, and receives an acknowledgement message returned by the terminal device.
  • the processing module 46 is further configured to retransmit the currently selected data packet when the determination result of the fifth determining module 49 is YES.
  • the fifth determining module 49 is specifically configured as:
  • the RLC layer has sent all the fragmented packets of the currently selected data packet to the terminal device, and receives an acknowledgement message returned by the terminal device.
  • processing module 46 is further configured to: when the determination result of the fifth determining module 49 is negative, confirm each data corresponding to the SACK message after the data packet currently selected by the selecting module 48 None of the packages have been sent.
  • the processing module 46 is further configured to record, in the process of retransmitting the data packet currently selected by the selecting module 48, the termination sequence number of the data packet that is retransmitted in the RLC layer. .
  • the technical solution proposed by the embodiment of the present invention has the following advantages: In the case that the TCP entity receives the uplink message including the Dup ACK message sent by the terminal device, by applying the technical solution of the embodiment of the present invention, If the TCP entity determines that the RLC layer has sent all the fragmented packets of the data packet corresponding to the Dup ACK message to the terminal device, and receives the acknowledgement message returned by the terminal device, the Dup ACK message is counted and accumulated, and is counted.
  • the data packet corresponding to the Dup ACK message is retransmitted, so that the characteristics of the local buffering and retransmission of the TCP entity data can be flexibly utilized, and the Dup ACK of the terminal device is distinguished according to the characteristics of the reliable transmission of the RLC.
  • To achieve fast retransmission of TCP layer data accurately determine whether the data packet needs TCP layer retransmission on the wireless side of the TCP proxy, improve TCP performance and air interface resource utilization, and avoid unnecessary data retransmission. The system resources are wasted.
  • the technical solution of the embodiment of the present invention may be embodied in the form of a software product, which may be stored in a non-volatile storage medium (which may be a CD-ROM, a USB flash drive, a mobile hard disk, etc.). Including a plurality of instructions for causing a computer device (which may be a personal computer, a server, or a network side device, etc.) to perform the various implementation scenarios of the embodiments of the present invention. Methods.
  • modules in the apparatus in the implementation scenario may be distributed in the apparatus for implementing the scenario according to the implementation scenario description, or may be correspondingly changed in one or more devices different from the implementation scenario.
  • the modules of the above implementation scenarios may be combined into one module, or may be further split into multiple sub-modules.

Abstract

Disclosed in an embodiment of the present invention are a wireless side TCP data retransmission method and device, comprising: by applying the technical solution in the embodiment of the present invention, when a TCP entity receives an uplink message transmitted by a terminal device and containing a Dup ACK message, and if the TCP entity determines that an RLC layer has transmitted to the terminal device all the fragment packets of a data packet corresponding to the Dup ACK message and has received an ACK message returned by the terminal device, then counting and accumulating the Dup ACK messages; and when the count value reaches 2, retransmitting the data packet corresponding to the Dup ACK message, so as to screen the Dup ACK of the terminal device by flexibly utilizing the local data buffering and retransmission characteristics of the TCP entity and in combination with the reliable transmission characteristic of the RLC, and quickly retransmit the TCP layer data, so that the wireless side as an agency on the TCP can accurately determine whether the data packet requires the retransmission of the TCP layer, thus improving TCP performance and air interface resource utilization rate, and avoiding wasting system resources caused by unnecessary data retransmission.

Description

无线侧 TCP数据重传的方法和设备 技术领域  Method and device for wireless side TCP data retransmission
本发明涉及通信技术领域, 特别涉及一种无线侧 TCP数据重传的方法和 设备。 背景技术  The present invention relates to the field of communications technologies, and in particular, to a method and device for wireless side TCP data retransmission. Background technique
TCP ( Transmission Control Protocol,传输控制协议 )是一种面向连接 (连 接导向) 的、 可靠的、 基于字节流的运输层( Transport Layer )通信协议。  TCP (Transmission Control Protocol) is a connection-oriented (connection-oriented), reliable, byte-based transport layer transport protocol.
在具有 TCP代理功能的 RNC ( Radio Network Controller, 无线网络控制 器)或者有 TCP实体的 3G ( 3rd Generation, 第三代移动通信技术)终端的无 线侧, 由于空口丟包和非按序递交, 会导致终端收到大量的乱序包, 终端对 应的 TCP实体在收到乱序包后会发送 Dup ACK (重复确认 )或者 SACK (选 择性确认) , 表示丟失某个数据包。  On the radio side of a RNC (Radio Network Controller) with a TCP proxy function or a 3G (3rd Generation, 3rd Generation, 3rd Generation Mobile Telecommunications) terminal with a TCP entity, due to air packet loss and non-sequential delivery, The terminal receives a large number of out-of-order packets. The TCP entity corresponding to the terminal sends a Dup ACK (repeated acknowledgement) or SACK (selective acknowledgement) after receiving the out-of-order packet, indicating that a certain packet is lost.
其实, 这些包在空口被分成很多小包进行传输, 由于某个小包的丟弃, 导致整个大包不能递交给终端的 TCP实体,这时候终端的 TCP实体就会发送 Dup ACK或者 SACK, 要求 RNC侧的 TCP代理重传这包数据。 而小包丟失 后会在 RLC ( Radio Link Control, 无线链路控制 )层重传, 当重传的小包被 终端正确接收后, 整个大包就交给终端的 TCP层。  In fact, these packets are divided into many small packets for transmission in the air interface. Due to the discarding of a small packet, the entire large packet cannot be delivered to the TCP entity of the terminal. At this time, the TCP entity of the terminal sends a Dup ACK or SACK, requesting the RNC side. The TCP proxy retransmits the packet data. After the packet is lost, it will be retransmitted at the RLC (Radio Link Control) layer. When the retransmitted packet is correctly received by the terminal, the entire packet is handed over to the TCP layer of the terminal.
但是,如果这时候 RNC的 TCP层也重传了这包数据,就会导致这包在空 口中重复传输, 导致空口资源和带宽的浪费。  However, if the RNC's TCP layer retransmits the packet data at this time, it will cause the packet to be repeatedly transmitted in the air interface, resulting in waste of air interface resources and bandwidth.
上述过程中, 通过 Dup ACK或者 SACK是 TCP协议告知发送端数据丟 失可以使用两种方式:  In the above process, Dup ACK or SACK is the TCP protocol to inform the sender that data loss can be used in two ways:
一种方式是连续收到 3个 Dup ACK(一共 4个 ACK具有相同的确认号), 表示确认号开始的数据包接收端没有收到; 另一种方式是 SACK直接告诉发 送端哪些数据收到了, 哪些数据没有收到。  One way is to continuously receive 3 Dup ACKs (a total of 4 ACKs have the same acknowledgment number), indicating that the data packet receiving end of the acknowledgment number is not received; another way is that SACK directly tells the sender which data is received. , which data was not received.
对于未接收到的数据需要进行重传处理, 目前 TCP代理对重传的处理大 多是按照 TCP协议的重传机制或者对 TCP协议重传机制的改进, 包括: ( 1 ) TCP协议快速重传算法 For the unreceived data, retransmission processing is required. Currently, the TCP proxy has a large processing for retransmission. Mostly, according to the retransmission mechanism of TCP protocol or the improvement of TCP retransmission mechanism, including: (1) TCP protocol fast retransmission algorithm
如果发送方在重传计时器超时之前连续收到 3个 Dup ACK (一共 4个 ACK具有相同的确认号) , 则说明极有可能某一包数据已经丟失, 此时立即 启动快速重传算法, 也就是立即重传这一包数据。  If the sender continuously receives 3 Dup ACKs (a total of 4 ACKs have the same acknowledgment number) before the retransmission timer expires, it is highly probable that a certain packet of data has been lost, and the fast retransmission algorithm is started immediately. That is, the packet data is immediately retransmitted.
( 2 )重传定时器  (2) Retransmission timer
当 TCP发送一个报文段时, 会根据 RTT ( Round-Trip Time, 往返时间) 创建一个针对特定报文段的重传计时器。 如果在计时器截止时间之前收到对 这个报文段的确认, 则撤销这个定时器; 如果在计时器截止时间之前没有收 到对这个报文段的确认, 则重传这个报文段, 并清除定时器。  When TCP sends a segment, it creates a retransmission timer for a specific segment based on RTT (Round-Trip Time). If the acknowledgment of the segment is received before the timer expires, the timer is revoked; if the acknowledgment for the segment is not received before the timer expires, the segment is retransmitted, and Clear the timer.
( 3 )次冪重传算法  (3) Power retransmission algorithm
这个算法是在快速重传算法上的改进, 如果重传计时器超时之前收到 3 个 Dup ACK (—共 4个 ACK具有相同的确认号) , 则立即重传这一包, 后 续继续收到 3个 Dup ACK, 不再重传, 直到收到 8个 ACK具有相同的确认 号,才重传这一包,后续收到 16个 ACK具有相同的确认号,才重传这一包 ... ... 从而, 避免后续不必要的多次重传。  This algorithm is an improvement on the fast retransmission algorithm. If 3 Dup ACKs are received before the retransmission timer expires (-a total of 4 ACKs have the same acknowledgment number), the packet is retransmitted immediately and continues to be received later. 3 Dup ACKs, no longer retransmitted, until 8 ACKs are received with the same acknowledgment number, the packet is retransmitted, and subsequent 16 ACKs have the same acknowledgment number before retransmitting the packet... ... thus avoiding unnecessary unnecessary multiple retransmissions.
在实现本发明的过程中, 发明人发现现有技术中至少存在以下问题: 以上三种方法, TCP协议快速重传算法和重传定时器是 TCP协议的一部 分, 次冪重传算法是基于快速重传算法的一种改进。 这些方法在解决无线侧 是否需要重传数据包的问题上有很大的局限性, 具体分析如下:  In the process of implementing the present invention, the inventors have found that at least the following problems exist in the prior art: The above three methods, the TCP protocol fast retransmission algorithm and the retransmission timer are part of the TCP protocol, and the power retransmission algorithm is based on fast An improvement in the retransmission algorithm. These methods have great limitations in solving the problem of whether the wireless side needs to retransmit data packets. The specific analysis is as follows:
( 1 ) TCP协议快速重传算法, 这个是 TCP协议规定的实现方式, 这种 方式的弊端^ ί艮明显,在无线环境较差的情况下, TCP实体发送的数据包在 RLC 被分割成多个小包, 如果丟失其中的部分小包, 而重传这些小包的过程需要 一定的时间或者这些小包在空口反复的丟弃, 都会导致终端发送大量的 Dup ACK, 如果按照快速重传算法, 整个数据包被不停的发送, 浪费带宽和空口 的资源。  (1) TCP protocol fast retransmission algorithm, this is the implementation method specified by the TCP protocol. The drawback of this method is obvious. In the case of poor wireless environment, the data packet sent by the TCP entity is divided into multiple in the RLC. If a small packet is lost, and the process of retransmitting these small packets takes a certain amount of time or the packets are repeatedly discarded in the air interface, the terminal will send a large number of Dup ACKs. If the fast retransmission algorithm is used, the entire data packet Being sent non-stop, wasting bandwidth and air interface resources.
( 2 )重传定时器的方法在无线环境中具有局限性,主要是 RTT在空口是 一个变化很大的值, 根据以前的值预测往往不准。 如果 RTT时间预测短了, 会导致没必要的重传, 浪费带宽和空口资源; 如果 RTT时间预测长了, 首先 实时性较差, 其次发送窗满, 也会导致空口空闲, 导致空口资源不必要的浪 费。 (2) The method of retransmission timer has limitations in the wireless environment, mainly because the RTT is a very large value in the air interface, and the prediction according to the previous value is often inaccurate. If the RTT time prediction is short, It will lead to unnecessary retransmission, waste bandwidth and air interface resources; if the RTT time prediction is long, the real-time performance will be poor first, and then the transmission window will be full, which will also cause the air interface to be idle, resulting in unnecessary waste of air interface resources.
( 3 ) 次冪重传算法是对 TCP协议快速重传算法的改进, 虽然可以减少 TCP 实体发送重复数据包的次数, 但是不能避免, 而且, 如果数据包再次丟 失了, 再次重传数据包的实时性较差。  (3) The power retransmission algorithm is an improvement to the TCP protocol fast retransmission algorithm. Although it can reduce the number of times a TCP entity sends duplicate packets, it cannot be avoided. Moreover, if the data packet is lost again, the data packet is retransmitted again. The real-time performance is poor.
综上所述, 这些方法都不可避免的带来空口带宽资源浪费的问题, 而且 还有可能引入实时性差等其他问题。 发明内容  In summary, these methods inevitably bring about the waste of air interface bandwidth resources, and may also introduce other problems such as poor real-time performance. Summary of the invention
本发明实施例提供一种无线侧 TCP数据重传的方法和设备, 解决现有的 技术方案中在存在跨无线网络 TCP连接的系统中, 无法合理解决无线侧重传 处理, 造成系统资源浪费的问题。  The embodiments of the present invention provide a method and a device for retransmitting a TCP data on a wireless side. In the prior art solution, in a system in which a TCP connection is established across a wireless network, the wireless side retransmission processing cannot be reasonably solved, and the system resources are wasted. .
为达到上述目的, 本发明实施例一方面提供了一种无线侧 TCP数据重传 的方法, 至少包括以下步骤: 当 TCP实体接收到终端设备发送的上行消息时, 所述 TCP实体判断所述上行消息中是否包含 Dup ACK消息;如果包含,所述 TCP实体判断 RLC层是否已经将所述 Dup ACK消息所对应的数据包的所有 分片包发送给所述终端设备, 并接收到了所述终端设备返回的确认消息; 如 果判断结果为是, 所述 TCP实体对所述 Dup ACK消息进行计数累加; 所述 TCP实体判断所述 Dup ACK消息当前的计数值是否达到 2; 如果达到, 所述 TCP实体重传所述 Dup ACK消息所对应的数据包, 并将所述 Dup ACK消息 的计数值置零。  To achieve the above objective, an embodiment of the present invention provides a method for retransmitting a wireless side TCP data, including at least the following steps: When a TCP entity receives an uplink message sent by a terminal device, the TCP entity determines the uplink. Whether the Dup ACK message is included in the message; if yes, the TCP entity determines whether the RLC layer has sent all the fragment packets of the data packet corresponding to the Dup ACK message to the terminal device, and receives the terminal device The acknowledgment message returned; if the judgment result is yes, the TCP entity counts and accumulates the Dup ACK message; the TCP entity determines whether the current count value of the Dup ACK message reaches 2; The data packet corresponding to the Dup ACK message is transmitted, and the count value of the Dup ACK message is set to zero.
优选地, 所述 TCP实体判断 RLC层是否已经将所述 Dup ACK消息所对 应的数据包的所有分片包发送给所述终端设备, 并接收到了所述终端设备返 回的确认消息包括:所述 TCP实体确定所述 Dup ACK消息所对应的数据包的 各分片包中, 已经由所述终端设备确认的分片包的序列号; 所述 TCP实体判 断所述序列号的最大值是否达到所述 Dup ACK消息所对应的数据包在 RLC 层的终止序列号;如果达到,所述 TCP实体确认 RLC层已经将所述 Dup ACK 消息所对应的数据包的所有分片包发送给所述终端设备, 并接收到了所述终 端设备返回的确认消息。 Preferably, the TCP entity determines whether the RLC layer has sent all the fragmented packets of the data packet corresponding to the Dup ACK message to the terminal device, and receives the acknowledgement message returned by the terminal device, including: The TCP entity determines a sequence number of the fragment packet that has been confirmed by the terminal device in each fragment packet of the data packet corresponding to the Dup ACK message; and the TCP entity determines whether the maximum value of the sequence number reaches the Determining the sequence number of the data packet corresponding to the Dup ACK message at the RLC layer; if so, the TCP entity confirms that the RLC layer has already performed the Dup ACK All the fragmented packets of the data packet corresponding to the message are sent to the terminal device, and an acknowledgement message returned by the terminal device is received.
优选地, 在所述 TCP实体判断 RLC层是否已经将所述 Dup ACK消息所 对应的数据包的所有分片包发送给所述终端设备, 并接收到了所述终端设备 返回的确认消息之后,还包括:如果判断结果为否,所述 TCP实体将所述 Dup ACK消息的计数值置零。  Preferably, after the TCP entity determines whether the RLC layer has sent all the fragmented packets of the data packet corresponding to the Dup ACK message to the terminal device, and after receiving the acknowledgement message returned by the terminal device, The method includes: if the judgment result is no, the TCP entity sets the count value of the Dup ACK message to zero.
优选地,所述 TCP实体重传所述 Dup ACK消息所对应的数据包的过程中, 还包括: 所述 TCP实体记录进行重传的所述数据包在 RLC层的终止序列号。  Preferably, in the process of retransmitting the data packet corresponding to the Dup ACK message, the TCP entity further includes: the TCP entity records a termination sequence number of the data packet that is retransmitted at the RLC layer.
优选地, 当所述 TCP实体判断所述上行消息中不包含 Dup ACK消息,或 所述 TCP实体重传所述 Dup ACK消息所对应的数据包之后, 还包括: 所述 TCP实体判断所述上行消息中是否包含 SACK消息; 如果包含, 所述 TCP实 体按照所述 SACK消息所对应的各数据包的发送顺序, 选择相应的数据包; 所述 TCP实体判断 RLC层是否已经将当前所选择的数据包的所有分片包发送 给所述终端设备, 并接收到了所述终端设备返回的确认消息; 如果判断结果 为是, 所述 TCP实体重传所述当前所选择的数据包。  Preferably, after the TCP entity determines that the uplink message does not include a Dup ACK message, or the TCP entity retransmits the data packet corresponding to the Dup ACK message, the method further includes: the TCP entity determining the uplink Whether the SACK message is included in the message; if yes, the TCP entity selects a corresponding data packet according to the sending sequence of each data packet corresponding to the SACK message; the TCP entity determines whether the RLC layer has already selected the currently selected data. All the fragmented packets of the packet are sent to the terminal device, and an acknowledgement message returned by the terminal device is received; if the determination result is yes, the TCP entity retransmits the currently selected data packet.
优选地,所述 TCP实体判断 RLC层是否已经将当前所选择的数据包的所 有分片包发送给所述终端设备, 并接收到了所述终端设备返回的确认消息包 括: 所述 TCP实体确定所述当前所选择的数据包的各分片包中, 已经由所述 终端设备确认的分片包的序列号; 所述 TCP实体判断所述序列号的最大值是 否达到所述当前所选择的数据包在 RLC层的终止序列号;如果达到,所述 TCP 实体确认 RLC层已经将所述当前所选择的数据包的所有分片包发送给所述终 端设备, 并接收到了所述终端设备返回的确认消息。  Preferably, the TCP entity determines whether the RLC layer has sent all the fragmented packets of the currently selected data packet to the terminal device, and receives the acknowledgement message returned by the terminal device, including: a sequence number of a fragment packet that has been confirmed by the terminal device in each fragment packet of the currently selected data packet; the TCP entity determining whether the maximum value of the sequence number reaches the currently selected data a termination sequence number of the RLC layer; if so, the TCP entity confirms that the RLC layer has sent all the fragment packets of the currently selected data packet to the terminal device, and receives the return from the terminal device Confirm the message.
优选地,所述 TCP实体判断 RLC层是否已经将当前所选择的数据包的所 有分片包发送给所述终端设备, 并接收到了所述终端设备返回的确认消息之 后, 还包括: 如果判断结果为否, 所述 TCP实体确认当前所选择的数据包之 后的所述 SACK消息所对应的各数据包均没有发送完毕。  Preferably, the TCP entity determines whether the RLC layer has sent all the fragmented packets of the currently selected data packet to the terminal device, and after receiving the acknowledgement message returned by the terminal device, the method further includes: If not, the TCP entity confirms that each data packet corresponding to the SACK message after the currently selected data packet is not sent.
优选地,所述 TCP实体重传所述当前所选择的数据包的过程中,还包括: 所述 TCP实体记录进行重传的所述数据包在 RLC层的终止序列号。 另一方面, 本发明实施例还提供了一种网络设备, 作为 TCP实体应用于 存在跨无线网络的 TCP连接的网络系统中, 至少包括: 接收模块, 配置为接 收终端设备发送的上行消息; 第一判断模块, 配置为判断所述接收模块所接 收到的上行消息中是否包含 Dup ACK消息; 第二判断模块, 配置为在所述第 一判断模块的判断结果为包含时, 判断 RLC层是否已经将所述 Dup ACK消 息所对应的数据包的所有分片包发送给所述终端设备, 并接收到了所述终端 设备返回的确认消息; 计数模块, 配置为在所述第二判断模块的判断结果为 是时, 对所述接收模块所接收到的 Dup ACK消息进行计数累加; 第三判断模 块, 配置为判断所述计数模块所计数的 Dup ACK消息当前的计数值是否达到 2; 处理模块, 配置为在所述第三判断模块的判断结果为达到时, 重传所述 Dup ACK消息所对应的数据包,并通知所述计数模块将所述 Dup ACK消息的 计数值置零。 Preferably, in the process of retransmitting the currently selected data packet, the TCP entity further includes: the TCP entity records a termination sequence number of the data packet that is retransmitted at the RLC layer. On the other hand, the embodiment of the present invention further provides a network device, as a TCP entity, is applied to a network system that has a TCP connection across a wireless network, and includes: a receiving module, configured to receive an uplink message sent by the terminal device; a determining module, configured to determine whether the uplink message received by the receiving module includes a Dup ACK message, and the second determining module is configured to determine whether the RLC layer is already included when the determining result of the first determining module is included Sending, to the terminal device, all the fragmented packets of the data packet corresponding to the Dup ACK message, and receiving an acknowledgement message returned by the terminal device; and the counting module configured to be determined by the second determining module If yes, the Dup ACK message received by the receiving module is counted and accumulated; the third determining module is configured to determine whether the current count value of the Dup ACK message counted by the counting module reaches 2; processing module, configuration Retransmitting the data corresponding to the Dup ACK message when the judgment result of the third determining module is reached. , And notifies the module counts the count value to zero Dup ACK message.
优选地, 所述第二判断模块, 配置为: 确定所述 Dup ACK消息所对应的 数据包的各分片包中, 已经由所述终端设备确认的分片包的序列号; 判断所 述序列号的最大值是否达到所述 Dup ACK消息所对应的数据包在 RLC层的 终止序列号; 如果达到, 确认 RLC层已经将所述 Dup ACK消息所对应的数 据包的所有分片包发送给所述终端设备, 并接收到了所述终端设备返回的确 认消息。  Preferably, the second determining module is configured to: determine a sequence number of a fragment packet that has been confirmed by the terminal device in each fragment packet of the data packet corresponding to the Dup ACK message; determine the sequence Whether the maximum value of the number reaches the termination sequence number of the data packet corresponding to the Dup ACK message at the RLC layer; if so, it is confirmed that the RLC layer has sent all the fragment packets of the data packet corresponding to the Dup ACK message to the The terminal device is received, and an acknowledgement message returned by the terminal device is received.
优选地, 所述计数模块, 还配置为在所述第二判断模块的判断结果为否 时, 将所述 Dup ACK消息的计数值置零。  Preferably, the counting module is further configured to: when the determination result of the second determining module is negative, set the count value of the Dup ACK message to zero.
优选地, 所述处理模块, 还配置为: 在重传所述 Dup ACK消息所对应的 数据包的过程中, 记录进行重传的所述数据包在 RLC层的终止序列号。  Preferably, the processing module is further configured to: when retransmitting the data packet corresponding to the Dup ACK message, record a termination sequence number of the data packet that is retransmitted at the RLC layer.
优选地, 还包括第四判断模块、 选择模块和第五判断模块; 其中, 所述 第四判断模块, 配置为在所述第一判断模块判断所述上行消息中不包含 Dup ACK消息,或所述处理模块重传所述 Dup ACK消息所对应的数据包之后,判 断所述上行消息中是否包含 SACK消息; 所述选择模块, 配置为在所述第四 判断模块的判断结果为包含时, 按照所述 SACK消息所对应的各数据包的发 送顺序, 选择相应的数据包; 所述第五判断模块, 配置为判断 RLC层是否已 经将所述选择模块当前所选择的数据包的所有分片包发送给所述终端设备, 并接收到了所述终端设备返回的确认消息; 所述处理模块, 还配置为在所述 第五判断模块的判断结果为是时, 重传所述当前所选择的数据包。 Preferably, the fourth determining module, the selecting module, and the fifth determining module are configured to: the fourth determining module is configured to determine, in the first determining module, that the uplink message does not include a Dup ACK message, or After the processing module retransmits the data packet corresponding to the Dup ACK message, it is determined whether the uplink message includes a SACK message, and the selecting module is configured to: when the determination result of the fourth determining module is included, The sending sequence of each data packet corresponding to the SACK message selects a corresponding data packet; the fifth determining module is configured to determine whether the RLC layer has been Sending, by the processing module, all the fragmented packets of the data packet currently selected by the selection module to the terminal device, and receiving the confirmation message returned by the terminal device; When the judgment result of the module is YES, the currently selected data packet is retransmitted.
优选地, 所述第五判断模块, 配置为: 确定所述选择模块当前所选择的 数据包的各分片包中, 已经由所述终端设备确认的分片包的序列号; 判断所 述序列号的最大值是否达到所述当前所选择的数据包在 RLC 层的终止序列 号; 如果达到, 确认 RLC层已经将所述当前所选择的数据包的所有分片包发 送给所述终端设备, 并接收到了所述终端设备返回的确认消息。  Preferably, the fifth determining module is configured to: determine, in each fragment packet of the data packet currently selected by the selecting module, a sequence number of the fragment packet that has been confirmed by the terminal device; determine the sequence Whether the maximum value of the number reaches the termination sequence number of the currently selected data packet at the RLC layer; if so, confirming that the RLC layer has sent all the fragmented packets of the currently selected data packet to the terminal device, And receiving the confirmation message returned by the terminal device.
优选地, 所述处理模块, 还配置为: 在所述第五判断模块的判断结果为 否时, 确认所述选择模块当前所选择的数据包之后的所述 SACK消息所对应 的各数据包均没有发送完毕。  Preferably, the processing module is further configured to: when the determination result of the fifth determining module is negative, confirm that each data packet corresponding to the SACK message after the data packet currently selected by the selecting module is Not sent.
优选地, 所述处理模块, 还配置为: 在重传所述选择模块当前所选择的 数据包的过程中, 记录进行重传的所述数据包在 RLC层的终止序列号。  Preferably, the processing module is further configured to: when retransmitting the data packet currently selected by the selecting module, record a termination sequence number of the data packet that is retransmitted at the RLC layer.
与现有技术相比, 本发明实施例所提出的技术方案具有以下优点: 通过应用本发明实施例的技术方案, 在 TCP实体接收到终端设备发送的 包含 Dup ACK消息的上行消息的情况下, 如果 TCP实体判断 RLC层已经将 该 Dup ACK消息所对应的数据包的所有分片包发送给终端设备, 并接收到了 终端设备返回的确认消息, 则对该 Dup ACK消息进行计数累加, 并在计数值 达到 2时, 重传该 Dup ACK消息所对应的数据包, 从而, 可以灵活运用 TCP 实体数据本地緩冲及重传的特点, 并结合 RLC可靠传输的特性, 对终端设备 的 Dup ACK进行甄别, 实现 TCP层数据的快速重传, 在 TCP代理的无线侧 准确确定数据包是否需要 TCP层的重传,提高了 TCP的性能和空口资源利用 率, 避免了非必要的数据重传所带来的系统资源浪费。 附图说明  Compared with the prior art, the technical solution proposed by the embodiment of the present invention has the following advantages: In the case that the TCP entity receives the uplink message including the Dup ACK message sent by the terminal device, by applying the technical solution of the embodiment of the present invention, If the TCP entity determines that the RLC layer has sent all the fragmented packets of the data packet corresponding to the Dup ACK message to the terminal device, and receives the acknowledgement message returned by the terminal device, the Dup ACK message is counted and accumulated, and is counted. When the value reaches 2, the data packet corresponding to the Dup ACK message is retransmitted, so that the characteristics of the local buffering and retransmission of the TCP entity data can be flexibly utilized, and the Dup ACK of the terminal device is distinguished according to the characteristics of the reliable transmission of the RLC. To achieve fast retransmission of TCP layer data, accurately determine whether the data packet needs TCP layer retransmission on the wireless side of the TCP proxy, improve TCP performance and air interface resource utilization, and avoid unnecessary data retransmission. The system resources are wasted. DRAWINGS
图 1为本发明实施例所提出的一种无线侧 TCP数据重传的方法的流程示 意图;  FIG. 1 is a schematic flowchart of a method for wireless side TCP data retransmission according to an embodiment of the present invention;
图 2为本发明实施例所提出的一种无线侧 TCP数据重传的方法中的根据 SACK消息进行数据包重传处理的流程示意图; FIG. 2 is a schematic diagram of a method for retransmitting wireless side TCP data according to an embodiment of the present invention; Schematic diagram of a SACK message for performing packet retransmission processing;
图 3为本发明实施例所提出的一种具体场景中的无线侧 TCP数据重传的 方法的流程示意图;  FIG. 3 is a schematic flowchart of a method for retransmitting wireless side TCP data in a specific scenario according to an embodiment of the present disclosure;
图 4为本发明实施例提出的一种网络设备的结构示意图。 具体实施方式  FIG. 4 is a schematic structural diagram of a network device according to an embodiment of the present invention. detailed description
如背景技术所述, TCP是为有线网络 Internet而研究、 开发出来的可靠的 传输协议。 有线网络的传输特性是低误码率、 易拥塞性, 因此, 它的传输控 制算法主要是基于网络的拥塞模型而设计的。  As described in the background art, TCP is a reliable transmission protocol researched and developed for the wired network Internet. The transmission characteristics of the wired network are low bit error rate and easy congestion. Therefore, its transmission control algorithm is mainly designed based on the network congestion model.
但是, 当一个 TCP连接跨越了有线和无线两个网络时, TCP将不能适应无 线传输信道的高误码率、 高时延抖动、 小区切换、 乱序等特性, 引起错误的 慢启动、拥塞避免和重传, 当空口质量迅速恢复的时候, TCP数据不能及时传 输, 造成带宽资源利用率降低、 有效带宽下降和吞吐波动等现象。  However, when a TCP connection spans both wired and wireless networks, TCP will not be able to adapt to the high bit error rate, high latency jitter, cell handover, out-of-order, etc. of the wireless transmission channel, causing false slow start and congestion avoidance. And retransmission, when the quality of the air interface is quickly restored, TCP data cannot be transmitted in time, resulting in a decrease in bandwidth resource utilization, a decrease in effective bandwidth, and fluctuations in throughput.
为了提升上述跨越无线网络 TCP连接的传输性能,现有技术中比较通用的 做法是在 RNC侧设置 TCP代理, 通过本地緩存、 排序、 流量控制、 本地重传、 抑制 Dup ACK等机制来增强无线侧传输的性能。  In order to improve the transmission performance of the TCP connection across the wireless network, a common practice in the prior art is to set a TCP proxy on the RNC side, and enhance the wireless side through mechanisms such as local buffering, sorting, flow control, local retransmission, and suppression of Dup ACK. The performance of the transmission.
但是, 在无线环境中, 由于空口环境变化大, 会导致很多的乱序包, 这 些包的重传可以在 RLC解决,如果在 TCP层重传, 会导致空口资源不必要的浪 费。  However, in a wireless environment, due to large changes in the air interface environment, many out-of-order packets are caused. The retransmission of these packets can be solved in the RLC. If retransmitted at the TCP layer, it will cause unnecessary waste of air interface resources.
为了克服这样的缺陷, 本发明实施例提出了一种无线侧 TCP数据重传的 方法,主要解决在 TCP代理的无线侧如何确定数据包是否需要 TCP层的重传, 以提高 TCP的性能和空口资源利用率的问题。  In order to overcome such a defect, the embodiment of the present invention provides a method for wireless side TCP data retransmission, which mainly solves how to determine whether a data packet needs a TCP layer retransmission in a wireless side of a TCP proxy, so as to improve TCP performance and air interface. Resource utilization issues.
如图 1所示, 为本发明实施例所提出的一种无线侧 TCP数据重传的方法 的流程示意图, 该方法具体包括以下步骤:  As shown in FIG. 1 , it is a schematic flowchart of a method for retransmitting a wireless side TCP data according to an embodiment of the present invention, where the method specifically includes the following steps:
步骤 S101、 当 TCP 实体接收到终端设备发送的上行消息时, 所述 TCP 实体判断所述上行消息中是否包含 Dup ACK消息。  Step S101: When the TCP entity receives the uplink message sent by the terminal device, the TCP entity determines whether the uplink message includes a Dup ACK message.
如果包含, 则执行步骤 S102;  If yes, step S102 is performed;
如果不包含, 则按照预设规则釆用其它方式(例如, 根据 SACK消息或 者其他信息进行处理)进行相应的处理, 具体的处理方式在后续说明中进行 描述, 在此不再赘述。 If not, use other methods according to the preset rules (for example, according to SACK message or The other information is processed and processed accordingly. The specific processing manner is described in the following description, and details are not described herein again.
步骤 S102、所述 TCP实体判断 RLC层是否已经将所述 Dup ACK消息所 对应的数据包的所有分片包发送给所述终端设备, 并接收到了所述终端设备 返回的确认消息。  Step S102: The TCP entity determines whether the RLC layer has sent all the fragmented packets of the data packet corresponding to the Dup ACK message to the terminal device, and receives an acknowledgement message returned by the terminal device.
如果判断结果为是, 则表示相应的数据包已经在 RLC层发送完毕, 但是 终端设备侧并没有正确接收, 可能需要进行相应的重传处理, 需要通过后续 过程进行判断, 因此, 执行步骤 S 103;  If the result of the determination is yes, it indicates that the corresponding data packet has been sent in the RLC layer, but the terminal device side does not receive the data correctly. The corresponding retransmission processing may be performed, and the subsequent process needs to be determined. Therefore, step S103 is performed. ;
如果判断结果为否, 则表示相应的数据包在 RLC层中还没有发送完毕, 或者, 虽然 RLC已经发送, 但是暂时还没有收到终端设备侧返回的正确接收 的确认消息, 相应的 Dup ACK消息所提出的重传请求有可能随着数据包完成 发送并接收到终端设备的确认而解决, 因此, 可以暂时进行相应的重传处理, 在本实施例中, TCP实体进一步执行步骤 S106。  If the judgment result is no, it indicates that the corresponding data packet has not been sent yet in the RLC layer, or, although the RLC has been sent, but has not received the correct reception confirmation message returned by the terminal device side, the corresponding Dup ACK message. The proposed retransmission request may be resolved as the data packet is sent and received by the terminal device. Therefore, the corresponding retransmission process may be temporarily performed. In this embodiment, the TCP entity further performs step S106.
在实际的应用场景中, 本步骤的处理具体包括:  In the actual application scenario, the processing of this step specifically includes:
( 1 )所述 TCP实体确定所述 Dup ACK消息所对应的数据包的各分片包 中, 已经由所述终端设备确认的分片包的序列号。  (1) The TCP entity determines a sequence number of a fragment packet that has been confirmed by the terminal device in each fragment packet of the data packet corresponding to the Dup ACK message.
( 2 )所述 TCP实体判断所述序列号的最大值是否达到所述 Dup ACK消 息所对应的数据包在 RLC层的终止序列号。  (2) The TCP entity determines whether the maximum value of the sequence number reaches the termination sequence number of the data packet corresponding to the Dup ACK message at the RLC layer.
如果达到, 所述 TCP实体确认 RLC层已经将所述 Dup ACK消息所对应 的数据包的所有分片包发送给所述终端设备, 并接收到了所述终端设备返回 的确认消息。  If yes, the TCP entity confirms that the RLC layer has sent all the fragmented packets of the data packet corresponding to the Dup ACK message to the terminal device, and receives an acknowledgement message returned by the terminal device.
相反,如果没有达到,则表示相应的数据包在 RLC层中还没有发送完毕, 或者, 虽然 RLC已经发送, 但是暂时还没有收到终端设备侧返回的正确接收 的确认消息。  Conversely, if it is not reached, it means that the corresponding data packet has not been sent yet in the RLC layer, or, although the RLC has already sent, it has not received the confirmation message of correct reception returned by the terminal device side.
步骤 S103、 所述 TCP实体对所述 Dup ACK消息进行计数累加。  Step S103: The TCP entity counts and accumulates the Dup ACK message.
步骤 S 104、 所述 TCP实体判断所述 Dup ACK消息当前的计数值是否达 到 2。  Step S104: The TCP entity determines whether the current count value of the Dup ACK message reaches 2.
如果达到, 则执行步骤 S105; 如果没有达到,则表示 TCP实体对于该 Dup ACK消息所对应的数据包暂 时不需要进行重传处理, 返回步骤 S101。 If yes, proceed to step S105; If not, it indicates that the TCP entity does not need to perform retransmission processing for the data packet corresponding to the Dup ACK message, and returns to step S101.
需要说明的是, 在本实施例中, 釆用 Dup ACK消息的计数值等于 2的依 据作为数据包重传的触发条件的思想在于:  It should be noted that, in this embodiment, the idea that the count value of the Dup ACK message is equal to 2 is used as a trigger condition for data packet retransmission is:
在上行数据中, ACK消息(包括 Dup ACK消息)和 RLC层确认数据 (包 括终端设备侧接收到数据包中的分片包后所发送的正确接收的确认消息) 经 常会在同一个 FP ( Frame Protocol, 帧协议)帧中, 基于这样的原因, 如果设 置 Dup ACK消息的计数值等于 1即触发数据包重传, 则会出现很大概率的重 复多发。 但是, 如果 Dup ACK消息的计数值等于 2才触发数据包重传, 则说 明在上次收到到 Dup ACK消息时, RLC层已经将该数据包全部发送给终端设 备侧, 并收到终端设备侧的确认。  In the uplink data, the ACK message (including the Dup ACK message) and the RLC layer acknowledgment data (including the correct received acknowledgment message sent after the terminal device side receives the fragment packet in the data packet) are often in the same FP (Frame) In the Protocol, frame protocol, for this reason, if the count value of the Dup ACK message is set to 1 to trigger the packet retransmission, a large probability of repeated multiple transmission occurs. However, if the count value of the Dup ACK message is equal to 2, the data packet retransmission is triggered, indicating that the RLC layer has sent the data packet to the terminal device side and receives the terminal device when the Dup ACK message is received last time. Side confirmation.
步骤 S105、 所述 TCP实体重传所述 Dup ACK消息所对应的数据包, 并 将所述 Dup ACK消息的计数值置零。  Step S105: The TCP entity retransmits the data packet corresponding to the Dup ACK message, and sets the count value of the Dup ACK message to zero.
在实际的应用场景中, 所述 TCP实体在进行数据包重传的过程中, 还需 要记录进行重传的所述数据包在 RLC层的终止序列号, 以便将该终止序列号 作为在后续处理过程中判断是否对该数据包是否进行重传处理的依据。  In an actual application scenario, in the process of performing data packet retransmission, the TCP entity also needs to record the termination sequence number of the data packet that is retransmitted in the RLC layer, so as to use the termination sequence number as a subsequent processing. In the process, it is judged whether or not the data packet is retransmitted.
通过这样的处理,完成了对该 Dup ACK消息所对应的数据包的重传处理 , 本步骤执行完成后, 继续执行步骤 S106。  Through such processing, the retransmission processing of the data packet corresponding to the Dup ACK message is completed. After the execution of this step is completed, the process proceeds to step S106.
步骤 S106、 所述 TCP实体将所述 Dup ACK消息的计数值置零。  Step S106: The TCP entity sets the count value of the Dup ACK message to zero.
将 Dup ACK消息的计数值置零后, 可以对该 Dup ACK消息开始新的计 数过程, 以便确定执行新的重传处理过程。  After the count value of the Dup ACK message is set to zero, a new counting process can be started for the Dup ACK message to determine to perform a new retransmission process.
需要进一步说明的是, TCP实体完成根据 Dup ACK消息进行数据包重传 的处理过程, 在此基础上, TCP 实体还可以按照预设规则釆用其它方式(例 如, 根据 SACK消息或者其他信息进行处理)继续进行后续的处理, 具体的 处理方式在后续说明中进行描述, 在此不再赘述。  It should be further noted that the TCP entity performs the process of retransmitting the data packet according to the Dup ACK message. On this basis, the TCP entity may also use other methods according to the preset rule (for example, processing according to the SACK message or other information). The subsequent processing is continued, and the specific processing manner is described in the following description, and details are not described herein again.
需要说明的是, 在步骤 S101判断结果为否, 以及步骤 S106完成之后, 均提到了 TCP实体按照预设规则釆用其它方式进行处理的过程, 在实际应用 中, 这样的预设规则所对应的处理过程可以包括多种类型, 其中, 为了提高 数据包重传过程的全面性和准确性, 可以根据 SACK消息进行这样的处理。 具体地,当所述 TCP实体在步骤 S101中判断所述上行消息中不包含 DupIt should be noted that, in the step S101, the result of the determination is no, and after the step S106 is completed, the process in which the TCP entity processes in other manners according to the preset rule is mentioned. In the actual application, the preset rule corresponds to Processing can include multiple types, where The comprehensiveness and accuracy of the packet retransmission process can be handled in accordance with the SACK message. Specifically, when the TCP entity determines in step S101 that the uplink message does not include Dup
ACK消息,或所述 TCP实体在步骤 S105中重传所述 Dup ACK消息所对应的 数据包之后, 还包括以下的根据 SACK消息进行数据包重传处理的过程, 该 过程的流程示意图如图 2所示, 具体包括以下步骤: After the ACK message, or the TCP entity retransmits the data packet corresponding to the Dup ACK message in step S105, the following process includes performing the data packet retransmission process according to the SACK message, and the process flow diagram of the process is shown in FIG. 2. As shown, the following steps are specifically included:
步骤 S201、 所述 TCP 实体判断自身所接收到的上行消息中是否包含 Step S201: The TCP entity determines whether the uplink message received by itself is included in the uplink message.
SACK消息。 SACK message.
如果包含, 则执行步骤 S202;  If yes, step S202 is performed;
如果不包含, 则进行其他处理或者直接停止当前的数据包重传处理。 步骤 S202、所述 TCP实体按照所述 SACK消息所对应的各数据包的发送 顺序, 选择相应的数据包。  If not, perform other processing or directly stop the current packet retransmission process. Step S202: The TCP entity selects a corresponding data packet according to a sending sequence of each data packet corresponding to the SACK message.
步骤 S203、 所述 TCP实体判断 RLC层是否已经将当前所选择的数据包 的所有分片包发送给所述终端设备, 并接收到了所述终端设备返回的确认消 息。  Step S203: The TCP entity determines whether the RLC layer has sent all the fragmented packets of the currently selected data packet to the terminal device, and receives the acknowledgement message returned by the terminal device.
如果判断结果为是, 则执行步骤 S204;  If the result of the determination is yes, step S204 is performed;
如果判断结果为否, 则执行步骤 S205。  If the result of the determination is no, step S205 is performed.
与前述的步骤 S102相类似, 本步骤中进行判断的过程具体如下: 所述 TCP实体确定所述当前所选择的数据包的各分片包中, 已经由所述 终端设备确认的分片包的序列号。  Similar to the foregoing step S102, the process of determining in this step is specifically as follows: the TCP entity determines, among the fragment packets of the currently selected data packet, the fragment packet that has been confirmed by the terminal device. serial number.
所述 TCP实体判断所述序列号的最大值是否达到所述当前所选择的数据 包在 RLC层的终止序列号。  The TCP entity determines whether the maximum value of the sequence number reaches the termination sequence number of the currently selected data packet at the RLC layer.
如果达到,所述 TCP实体确认 RLC层已经将所述当前所选择的数据包的 所有分片包发送给所述终端设备, 并接收到了所述终端设备返回的确认消息。  If so, the TCP entity confirms that the RLC layer has sent all the fragmented packets of the currently selected data packet to the terminal device, and receives an acknowledgement message returned by the terminal device.
步骤 S204、 所述 TCP实体重传所述当前所选择的数据包。  Step S204: The TCP entity retransmits the currently selected data packet.
在实际的应用场景中, 所述 TCP实体在进行数据包重传的过程中, 还需 要记录进行重传的所述数据包在 RLC层的终止序列号, 以便将该终止序列号 作为在后续处理过程中判断是否对该数据包是否进行重传处理的依据。  In an actual application scenario, in the process of performing data packet retransmission, the TCP entity also needs to record the termination sequence number of the data packet that is retransmitted in the RLC layer, so as to use the termination sequence number as a subsequent processing. In the process, it is judged whether or not the data packet is retransmitted.
步骤 S205、所述 TCP实体确认当前所选择的数据包之后的所述 SACK消 息所对应的各数据包均没有发送完毕。 Step S205, the TCP entity confirms the SACK after the currently selected data packet Each packet corresponding to the message has not been sent.
通过本步骤,可以快速的确定后续数据包的发送状态,避免分别对 SACK 消息所对应的每个数据包进行分别判断所带来的系统资源和处理时间的消 耗, 提高相应的处理效率。  Through this step, the transmission status of subsequent data packets can be quickly determined, and the system resources and processing time caused by separately determining each data packet corresponding to the SACK message can be avoided, and the corresponding processing efficiency is improved.
需要说明的是, 上述的根据 SACK消息进行处理的过程可以在前述的根 据 Dup ACK消息进行重传处理的基础上, 对终端设备侧返回的信息进行更加 全面的处理, 从而, 更加准确的确定是否对相应的数据包进行重传处理。  It should be noted that the foregoing process of processing according to the SACK message may perform more comprehensive processing on the information returned by the terminal device on the basis of the foregoing retransmission process according to the Dup ACK message, thereby determining whether the data is more accurately determined. Retransmit the corresponding data packet.
与现有技术相比, 本发明实施例所提出的技术方案具有以下优点: 通过应用本发明实施例的技术方案, 在 TCP实体接收到终端设备发送的 包含 Dup ACK消息的上行消息的情况下, 如果 TCP实体判断 RLC层已经将 该 Dup ACK消息所对应的数据包的所有分片包发送给终端设备, 并接收到了 终端设备返回的确认消息, 则对该 Dup ACK消息进行计数累加, 并在计数值 达到 2时, 重传该 Dup ACK消息所对应的数据包, 从而, 可以灵活运用 TCP 实体数据本地緩冲及重传的特点, 并结合 RLC可靠传输的特性, 对终端设备 的 Dup ACK进行甄别, 实现 TCP层数据的快速重传, 在 TCP代理的无线侧 准确确定数据包是否需要 TCP层的重传,提高了 TCP的性能和空口资源利用 率, 避免了非必要的数据重传所带来的系统资源浪费。 下面, 结合具体的应用场景, 对本发明实施例所提出的技术方案进行说 明。  Compared with the prior art, the technical solution proposed by the embodiment of the present invention has the following advantages: In the case that the TCP entity receives the uplink message including the Dup ACK message sent by the terminal device, by applying the technical solution of the embodiment of the present invention, If the TCP entity determines that the RLC layer has sent all the fragmented packets of the data packet corresponding to the Dup ACK message to the terminal device, and receives the acknowledgement message returned by the terminal device, the Dup ACK message is counted and accumulated, and is counted. When the value reaches 2, the data packet corresponding to the Dup ACK message is retransmitted, so that the characteristics of the local buffering and retransmission of the TCP entity data can be flexibly utilized, and the Dup ACK of the terminal device is distinguished according to the characteristics of the reliable transmission of the RLC. To achieve fast retransmission of TCP layer data, accurately determine whether the data packet needs TCP layer retransmission on the wireless side of the TCP proxy, improve TCP performance and air interface resource utilization, and avoid unnecessary data retransmission. The system resources are wasted. The technical solutions proposed by the embodiments of the present invention are described below in conjunction with specific application scenarios.
本发明实施例所提出的技术方案是一种灵活运用 TCP实体数据本地緩冲 及重传的特点, 并结合 RLC (无线链路层)可靠传输的特性, 对终端设备侧 发送的 Dup ACK消息进行甄别, 以实现快速重传 TCP层数据的方法。  The technical solution proposed by the embodiment of the present invention is a feature of flexibly utilizing local buffering and retransmission of TCP entity data, and combining the characteristics of reliable transmission of RLC (Radio Link Layer) to perform Dup ACK message sent by the terminal device side. Screening to achieve fast retransmission of TCP layer data.
如图 3所示,为本发明实施例所提出的一种具体应用场景下的无线侧 TCP 数据重传的方法的流程示意图, 该方法具体包括以下步骤:  FIG. 3 is a schematic flowchart of a method for retransmitting a wireless side TCP data in a specific application scenario according to an embodiment of the present disclosure, where the method specifically includes the following steps:
步骤 S301、 TCP实体在 RLC层进行正常的数据包发送。  Step S301: The TCP entity performs normal data packet transmission at the RLC layer.
在此过程中, TCP实体记录下每个数据包在 RLC层最后一个分片包的序 列号, 即前述的终止序列号。 在实际的应用场景中, 本步骤的处理过程实际为: In this process, the TCP entity records the sequence number of the last fragment packet of each packet at the RLC layer, that is, the aforementioned termination sequence number. In the actual application scenario, the processing of this step is actually:
TCP层将数据包发送给 RLC层, RLC将数据包分段形成多个分片包, 并 将最后一个分片包的序列号 (EndSn, 即前述的终止序列号)在 TCP层记录 下来。  The TCP layer sends the data packet to the RLC layer, and the RLC segments the data packet into a plurality of fragment packets, and records the sequence number (EndSn, that is, the foregoing termination sequence number) of the last fragment packet at the TCP layer.
步骤 S302、 TCP实体接收到终端设备发送的 ACK消息,判断是否是 Dup Step S302: The TCP entity receives an ACK message sent by the terminal device, and determines whether it is Dup.
ACK消息。 ACK message.
如果判断结果为是, 则执行步骤 S303;  If the result of the determination is yes, step S303 is performed;
如果判断结果为否, 则执行步骤 S308。  If the result of the determination is no, step S308 is performed.
步骤 S303、 TCP实体确定该 Dup ACK消息所对应的需要重传的数据包 的 EndSn, 以及 RLC层收到的终端设备已经确认的该数据包的分片包序列号 AckSn。  Step S303: The TCP entity determines an EndSn of the data packet that needs to be retransmitted corresponding to the Dup ACK message, and a fragment packet sequence number AckSn of the data packet that has been confirmed by the terminal device received by the RLC layer.
步骤 S304、 TCP实体将所确定的最大的 AckSn和 EndSn进行比较。  Step S304: The TCP entity compares the determined maximum AckSn and EndSn.
如果该 AckSn大于等于 EndSn, 则执行步骤 S305;  If the AckSn is greater than or equal to EndSn, step S305 is performed;
如果该 AckSn小于 EndSn, 则表示 TCP实体对于该 Dup ACK消息所对 应的数据包暂时不需要进行重传处理,对本次所接收到的 ACK消息中的 Dup ACK消息的处理过程结束, 可以执行步骤 S308进行 SACK处理, 或者进行 其他处理, 在图 3中, 表示为进行其他处理。  If the AckSn is smaller than the EndSn, it indicates that the TCP entity does not need to perform retransmission processing for the data packet corresponding to the Dup ACK message, and the processing of the Dup ACK message in the received ACK message ends, and the steps may be performed. S308 performs SACK processing or performs other processing, and in Fig. 3, it indicates that other processing is performed.
步骤 S305、 TCP实体将该 Dup Ack消息所对应的 Dup Ack变量加 1。 步骤 S306、 TCP实体判断该 Dup Ack变量是否等于 2。  Step S305: The TCP entity adds 1 to the Dup Ack variable corresponding to the Dup Ack message. Step S306: The TCP entity determines whether the Dup Ack variable is equal to 2.
如果是, 则执行步骤 S307;  If yes, step S307 is performed;
如果否,则表示 TCP实体对于该 Dup ACK消息所对应的数据包暂时不需 要进行重传处理, 对本次所接收到的 ACK消息中的 Dup ACK消息的处理过 程结束,可以执行步骤 S308进行 SACK处理,或者进行其他处理,在图 3中, 表示为进行其他处理。  If not, it indicates that the TCP entity does not need to perform retransmission processing for the data packet corresponding to the Dup ACK message, and the processing of the Dup ACK message in the received ACK message ends, and the SACK may be performed in step S308. Processing or other processing is shown in Fig. 3 as performing other processing.
步骤 S307、 TCP实体重发该数据包给 RLC层, 并记录新发送数据包的最 后一个分片包的 Sn, 以更新该数据包的 EndSn, 同时, 将该 Dup Ack变量清 令。  Step S307: The TCP entity retransmits the data packet to the RLC layer, and records the Sn of the last fragment packet of the newly transmitted data packet to update the EndSn of the data packet, and simultaneously clears the Dup Ack variable.
本步骤执行完成后, 为了实现更加准确和全面的数据重传处理, 可以进 一步执行步骤 S308。 After the completion of this step, in order to achieve more accurate and comprehensive data retransmission processing, you can enter Step S308 is performed in one step.
步骤 S308、 TCP实体判断当前是否接收到 SACK消息。  Step S308: The TCP entity determines whether a SACK message is currently received.
如果有, 则执行步骤 S309, 进行相应的转 SACK处理流程;  If yes, step S309 is performed to perform a corresponding SACK processing flow;
如果没有, 则表示 TCP实体不需要根据 SACK消息对相应的数据包进行 重传处理, 在实际的应用场景中, 此种情况下, 可以进行其他处理。  If not, it indicates that the TCP entity does not need to retransmit the corresponding data packet according to the SACK message. In the actual application scenario, other processing may be performed in this case.
步骤 S309、 TCP实体按照所述 SACK消息所对应的各数据包的发送顺序, 选择相应的数据包。  Step S309: The TCP entity selects a corresponding data packet according to the sending sequence of each data packet corresponding to the SACK message.
步骤 S310、 TCP实体确定该数据包的 EndSn, 以及 RLC层收到的终端设 备已经确认的该数据包的分片包序列号 AckSn。  Step S310: The TCP entity determines the EndSn of the data packet, and the fragment packet sequence number AckSn of the data packet that has been confirmed by the terminal device received by the RLC layer.
步骤 S311、 TCP实体将所确定的最大的 AckSn和该数据包的 EndSn进行 比较。  Step S311: The TCP entity compares the determined maximum AckSn with the EndSn of the data packet.
如果该 AckSn大于等于 EndSn, 则执行步骤 S312;  If the AckSn is greater than or equal to EndSn, step S312 is performed;
如果该 AckSn小于 EndSn, 则执行步骤 S314。  If the AckSn is smaller than EndSn, step S314 is performed.
步骤 S312、 TCP实体重传该数据包。  Step S312: The TCP entity retransmits the data packet.
在实际的应用场景中, 所述 TCP实体在进行数据包重传的过程中, 还需 要记录进行重传的所述数据包在 RLC层的终止序列号, 以便将该终止序列号 作为在后续处理过程中判断是否对该数据包是否进行重传处理的依据。  In an actual application scenario, in the process of performing data packet retransmission, the TCP entity also needs to record the termination sequence number of the data packet that is retransmitted in the RLC layer, so as to use the termination sequence number as a subsequent processing. In the process, it is judged whether or not the data packet is retransmitted.
本步骤执行完成后, 继续执行步骤 S313。  After the execution of this step is completed, the process proceeds to step S313.
步骤 S313、 TCP实体判断 SACK消息对应的需要重传的数据包是否全部 选择完毕。  Step S313: The TCP entity determines whether all the data packets that need to be retransmitted corresponding to the SACK message are selected.
如果判断结果为否, 则返回步骤 S309;  If the result of the determination is no, then return to step S309;
如果判断结果为是, 则执行其他处理。  If the result of the determination is yes, then other processing is performed.
步骤 S314、 TCP实体确认当前所选择的数据包之后的 SACK消息所对应 的各数据包均没有发送完毕。  Step S314: The TCP entity confirms that each data packet corresponding to the SACK message after the currently selected data packet has not been sent.
本步骤完成后, 直接执行其他处理。  After this step is completed, other processing is directly performed.
通过本步骤,可以快速的确定后续数据包的发送状态,避免分别对 SACK 消息所对应的每个数据包进行分别判断所带来的系统资源和处理时间的消 耗, 提高相应的处理效率。 需要说明的是, 在实际的应用场景中, 上述的各步骤中所提及的其他处 理, 可以包括: Through this step, the sending status of the subsequent data packet can be quickly determined, and the system resource and processing time consumption caused by separately determining each data packet corresponding to the SACK message can be avoided, and the corresponding processing efficiency is improved. It should be noted that, in an actual application scenario, other processes mentioned in the foregoing steps may include:
返回步骤 S302继续等待后续的 ACK消息, 或者按照预设的处理规则进 行其他处理操作, 该其他处理具体内容的变化并不会影响本发明的保护范围。  Returning to step S302, it continues to wait for the subsequent ACK message, or performs other processing operations according to the preset processing rule, and the change of the specific content of the other processing does not affect the protection scope of the present invention.
与现有技术相比, 本发明实施例所提出的技术方案具有以下优点: 通过应用本发明实施例的技术方案, 在 TCP实体接收到终端设备发送的 包含 Dup ACK消息的上行消息的情况下, 如果 TCP实体判断 RLC层已经将 该 Dup ACK消息所对应的数据包的所有分片包发送给终端设备, 并接收到了 终端设备返回的确认消息, 则对该 Dup ACK消息进行计数累加, 并在计数值 达到 2时, 重传该 Dup ACK消息所对应的数据包, 从而, 可以灵活运用 TCP 实体数据本地緩冲及重传的特点, 并结合 RLC可靠传输的特性, 对终端设备 的 Dup ACK进行甄别, 实现 TCP层数据的快速重传, 在 TCP代理的无线侧 准确确定数据包是否需要 TCP层的重传,提高了 TCP的性能和空口资源利用 率, 避免了非必要的数据重传所带来的系统资源浪费。 为了实现本发明实施例的技术方案, 本发明实施例还提供了一种网络设 备, 作为 TCP实体应用于存在跨无线网络的 TCP连接的网络系统中, 其结构 示意图如图 4所示, 至少包括:  Compared with the prior art, the technical solution proposed by the embodiment of the present invention has the following advantages: In the case that the TCP entity receives the uplink message including the Dup ACK message sent by the terminal device, by applying the technical solution of the embodiment of the present invention, If the TCP entity determines that the RLC layer has sent all the fragmented packets of the data packet corresponding to the Dup ACK message to the terminal device, and receives the acknowledgement message returned by the terminal device, the Dup ACK message is counted and accumulated, and is counted. When the value reaches 2, the data packet corresponding to the Dup ACK message is retransmitted, so that the characteristics of the local buffering and retransmission of the TCP entity data can be flexibly utilized, and the Dup ACK of the terminal device is distinguished according to the characteristics of the reliable transmission of the RLC. To achieve fast retransmission of TCP layer data, accurately determine whether the data packet needs TCP layer retransmission on the wireless side of the TCP proxy, improve TCP performance and air interface resource utilization, and avoid unnecessary data retransmission. The system resources are wasted. In order to implement the technical solution of the embodiment of the present invention, the embodiment of the present invention further provides a network device, which is used as a TCP entity in a network system that has a TCP connection across a wireless network, and a schematic structural diagram thereof is shown in FIG. 4, which includes at least :
接收模块 41 , 配置为接收终端设备发送的上行消息;  The receiving module 41 is configured to receive an uplink message sent by the terminal device.
第一判断模块 42,配置为判断所述接收模块 41所接收到的上行消息中是 否包含 Dup ACK消息;  The first determining module 42 is configured to determine whether the uplink message received by the receiving module 41 includes a Dup ACK message;
第二判断模块 43 , 配置为在所述第一判断模块 42的判断结果为包含时, 判断 RLC层是否已经将所述 Dup ACK消息所对应的数据包的所有分片包发 送给所述终端设备, 并接收到了所述终端设备返回的确认消息;  The second judging module 43 is configured to: when the judgment result of the first judging module 42 is included, determine whether the RLC layer has sent all the fragment packets of the data packet corresponding to the Dup ACK message to the terminal device. Receiving an acknowledgement message returned by the terminal device;
计数模块 44, 配置为在所述第二判断模块 43的判断结果为是时, 对所述 接收模块 41所接收到的 Dup ACK消息进行计数累加;  The counting module 44 is configured to count and accumulate the Dup ACK message received by the receiving module 41 when the determination result of the second determining module 43 is YES;
第三判断模块 45, 配置为判断所述计数模块 44所计数的 Dup ACK消息 当前的计数值是否达到 2; 处理模块 46, 配置为在所述第三判断模块 45的判断结果为达到时, 重传 所述 Dup ACK消息所对应的数据包,并通知所述计数模块 44将所述 Dup ACK 消息的计数值置零。 The third determining module 45 is configured to determine whether the current count value of the Dup ACK message counted by the counting module 44 reaches 2; The processing module 46 is configured to retransmit the data packet corresponding to the Dup ACK message when the determination result of the third determining module 45 is reached, and notify the counting module 44 to count the Dup ACK message. Zero.
其中, 所述第二判断模块 43 , 具体配置为:  The second determining module 43 is specifically configured as:
确定所述 Dup ACK消息所对应的数据包的各分片包中, 已经由所述终端 设备确认的分片包的序列号;  Determining, in each fragment packet of the data packet corresponding to the Dup ACK message, a sequence number of the fragment packet that has been confirmed by the terminal device;
判断所述序列号的最大值是否达到所述 Dup ACK消息所对应的数据包在 RLC层的终止序列号;  Determining whether the maximum value of the sequence number reaches the termination sequence number of the data packet corresponding to the Dup ACK message at the RLC layer;
如果达到, 确认 RLC层已经将所述 Dup ACK消息所对应的数据包的所 有分片包发送给所述终端设备, 并接收到了所述终端设备返回的确认消息。  If yes, it is confirmed that the RLC layer has sent all the fragment packets of the data packet corresponding to the Dup ACK message to the terminal device, and receives the acknowledgement message returned by the terminal device.
进一步地, 所述计数模块 44, 还配置为在所述第二判断模块 43的判断结 果为否时, 将所述 Dup ACK消息的计数值置零。  Further, the counting module 44 is further configured to set the count value of the Dup ACK message to zero when the determination result of the second determining module 43 is negative.
需要说明的是, 所述处理模块 46,还配置为在重传所述 Dup ACK消息所 对应的数据包的过程中,记录进行重传的所述数据包在 RLC层的终止序列号。  It should be noted that, the processing module 46 is further configured to record, in the process of retransmitting the data packet corresponding to the Dup ACK message, the termination sequence number of the data packet that is retransmitted at the RLC layer.
另一方面, 该网络设备还包括第四判断模块 47、选择模块 48和第五判断 模块 49, 其中:  In another aspect, the network device further includes a fourth determining module 47, a selecting module 48, and a fifth determining module 49, wherein:
所述第四判断模块 47,配置为在所述第一判断模块 42判断所述上行消息 中不包含 Dup ACK消息, 或所述处理模块 46重传所述 Dup ACK消息所对应 的数据包之后, 判断所述上行消息中是否包含 SACK消息;  The fourth determining module 47 is configured to: after the first determining module 42 determines that the uplink message does not include a Dup ACK message, or the processing module 46 retransmits the data packet corresponding to the Dup ACK message, Determining whether the uplink message includes a SACK message;
所述选择模块 48, 配置为在所述第四判断模块 47的判断结果为包含时, 按照所述 SACK消息所对应的各数据包的发送顺序, 选择相应的数据包; 所述第五判断模块 49, 配置为判断 RLC层是否已经将所述选择模块 48 当前所选择的数据包的所有分片包发送给所述终端设备, 并接收到了所述终 端设备返回的确认消息;  The selecting module 48 is configured to select a corresponding data packet according to a sending sequence of each data packet corresponding to the SACK message when the determining result of the fourth determining module 47 is included; the fifth determining module 49. The method is configured to determine whether the RLC layer has sent all the fragmented packets of the data packet currently selected by the selecting module 48 to the terminal device, and receives an acknowledgement message returned by the terminal device.
所述处理模块 46, 还配置为在所述第五判断模块 49的判断结果为是时, 重传所述当前所选择的数据包。  The processing module 46 is further configured to retransmit the currently selected data packet when the determination result of the fifth determining module 49 is YES.
其中, 所述第五判断模块 49, 具体配置为:  The fifth determining module 49 is specifically configured as:
确定所述选择模块 48当前所选择的数据包的各分片包中, 已经由所述终 端设备确认的分片包的序列号; Determining, in each fragment packet of the currently selected data packet of the selection module 48, The serial number of the fragment packet confirmed by the end device;
判断所述序列号的最大值是否达到所述当前所选择的数据包在 RLC层的 终止序列号;  Determining whether the maximum value of the serial number reaches the termination sequence number of the currently selected data packet at the RLC layer;
如果达到, 确认 RLC层已经将所述当前所选择的数据包的所有分片包发 送给所述终端设备, 并接收到了所述终端设备返回的确认消息。  If so, it is confirmed that the RLC layer has sent all the fragmented packets of the currently selected data packet to the terminal device, and receives an acknowledgement message returned by the terminal device.
进一步地, 所述处理模块 46, 还配置为在所述第五判断模块 49的判断结 果为否时,确认所述选择模块 48当前所选择的数据包之后的所述 SACK消息 所对应的各数据包均没有发送完毕。  Further, the processing module 46 is further configured to: when the determination result of the fifth determining module 49 is negative, confirm each data corresponding to the SACK message after the data packet currently selected by the selecting module 48 None of the packages have been sent.
在实际的应用场景中, 所述处理模块 46, 还配置为在重传所述选择模块 48当前所选择的数据包的过程中,记录进行重传的所述数据包在 RLC层的终 止序列号。  In an actual application scenario, the processing module 46 is further configured to record, in the process of retransmitting the data packet currently selected by the selecting module 48, the termination sequence number of the data packet that is retransmitted in the RLC layer. .
与现有技术相比, 本发明实施例所提出的技术方案具有以下优点: 通过应用本发明实施例的技术方案, 在 TCP实体接收到终端设备发送的 包含 Dup ACK消息的上行消息的情况下, 如果 TCP实体判断 RLC层已经将 该 Dup ACK消息所对应的数据包的所有分片包发送给终端设备, 并接收到了 终端设备返回的确认消息, 则对该 Dup ACK消息进行计数累加, 并在计数值 达到 2时, 重传该 Dup ACK消息所对应的数据包, 从而, 可以灵活运用 TCP 实体数据本地緩冲及重传的特点, 并结合 RLC可靠传输的特性, 对终端设备 的 Dup ACK进行甄别, 实现 TCP层数据的快速重传, 在 TCP代理的无线侧 准确确定数据包是否需要 TCP层的重传,提高了 TCP的性能和空口资源利用 率, 避免了非必要的数据重传所带来的系统资源浪费。 通过以上的实施方式的描述, 本领域的技术人员可以清楚地了解到本发 明实施例可以通过硬件实现, 也可以借助软件加必要的通用硬件平台的方式 来实现。 基于这样的理解, 本发明实施例的技术方案可以以软件产品的形式 体现出来, 该软件产品可以存储在一个非易失性存储介质(可以是 CD-ROM, U盘, 移动硬盘等) 中, 包括若干指令用以使得一台计算机设备(可以是个 人计算机, 服务器, 或网络侧设备等)执行本发明实施例各个实施场景所述 的方法。 Compared with the prior art, the technical solution proposed by the embodiment of the present invention has the following advantages: In the case that the TCP entity receives the uplink message including the Dup ACK message sent by the terminal device, by applying the technical solution of the embodiment of the present invention, If the TCP entity determines that the RLC layer has sent all the fragmented packets of the data packet corresponding to the Dup ACK message to the terminal device, and receives the acknowledgement message returned by the terminal device, the Dup ACK message is counted and accumulated, and is counted. When the value reaches 2, the data packet corresponding to the Dup ACK message is retransmitted, so that the characteristics of the local buffering and retransmission of the TCP entity data can be flexibly utilized, and the Dup ACK of the terminal device is distinguished according to the characteristics of the reliable transmission of the RLC. To achieve fast retransmission of TCP layer data, accurately determine whether the data packet needs TCP layer retransmission on the wireless side of the TCP proxy, improve TCP performance and air interface resource utilization, and avoid unnecessary data retransmission. The system resources are wasted. Through the description of the above embodiments, those skilled in the art can clearly understand that the embodiments of the present invention may be implemented by hardware, or may be implemented by means of software plus a necessary general hardware platform. Based on the understanding, the technical solution of the embodiment of the present invention may be embodied in the form of a software product, which may be stored in a non-volatile storage medium (which may be a CD-ROM, a USB flash drive, a mobile hard disk, etc.). Including a plurality of instructions for causing a computer device (which may be a personal computer, a server, or a network side device, etc.) to perform the various implementation scenarios of the embodiments of the present invention. Methods.
本领域技术人员可以理解附图只是一个优选实施场景的示意图, 附图中 的模块或流程并不一定是实施本发明实施例所必须的。  A person skilled in the art can understand that the drawings are only a schematic diagram of a preferred implementation scenario, and the modules or processes in the drawings are not necessarily required to implement the embodiments of the present invention.
本领域技术人员可以理解实施场景中的装置中的模块可以按照实施场景 描述进行分布于实施场景的装置中, 也可以进行相应变化位于不同于本实施 场景的一个或多个装置中。 上述实施场景的模块可以合并为一个模块, 也可 以进一步拆分成多个子模块。  Those skilled in the art can understand that the modules in the apparatus in the implementation scenario may be distributed in the apparatus for implementing the scenario according to the implementation scenario description, or may be correspondingly changed in one or more devices different from the implementation scenario. The modules of the above implementation scenarios may be combined into one module, or may be further split into multiple sub-modules.
上述本发明实施例序号仅仅为了描述, 不代表实施场景的优劣。 例并非局限于此, 任何本领域的技术人员能思之的变化都应落入本发明实施 例的业务限制范围。  The serial numbers of the foregoing embodiments of the present invention are merely for description, and do not represent the advantages and disadvantages of the implementation scenarios. The examples are not limited thereto, and any changes that can be made by those skilled in the art should fall within the scope of the business restrictions of the embodiments of the present invention.

Claims

权 利 要 求 书 Claim
1.一种无线侧 TCP数据重传的方法, 包括以下步骤: A method for wireless side TCP data retransmission, comprising the following steps:
当 TCP实体接收到终端设备发送的上行消息时,所述 TCP实体判断所述上行消息中是 否包含 Dup ACK消息;  When the TCP entity receives the uplink message sent by the terminal device, the TCP entity determines whether the uplink message includes a Dup ACK message;
如果包含, 所述 TCP实体判断 RLC层是否已经将所述 Dup ACK消息所对应的数据包的 所有分片包发送给所述终端设备, 并接收到了所述终端设备返回的确认消息;  If yes, the TCP entity determines whether the RLC layer has sent all the fragmented packets of the data packet corresponding to the Dup ACK message to the terminal device, and receives an acknowledgement message returned by the terminal device;
如果判断结果为是, 所述 TCP实体对所述 Dup ACK消息进行计数累加;  If the judgment result is yes, the TCP entity counts and accumulates the Dup ACK message;
所述 TCP实体判断所述 Dup ACK消息当前的计数值是否达到 2;  The TCP entity determines whether the current count value of the Dup ACK message reaches 2;
如果达到, 所述 TCP实体重传所述 Dup ACK消息所对应的数据包, 并将所述 Dup ACK 消息的计数值置零。  If so, the TCP entity retransmits the data packet corresponding to the Dup ACK message, and sets the count value of the Dup ACK message to zero.
2.如权利要求 1所述的方法,其中,所述 TCP实体判断 RLC层是否已经将所述 Dup ACK 消息所对应的数据包的所有分片包发送给所述终端设备, 并接收到了所述终端设备返回的 确认消息包括:  The method of claim 1, wherein the TCP entity determines whether the RLC layer has sent all the fragment packets of the data packet corresponding to the Dup ACK message to the terminal device, and receives the The confirmation message returned by the terminal device includes:
所述 TCP实体确定所述 Dup ACK消息所对应的数据包的各分片包中, 已经由所述终端 设备确认的分片包的序列号;  Determining, by the TCP entity, a sequence number of a fragment packet that has been confirmed by the terminal device in each fragment packet of the data packet corresponding to the Dup ACK message;
所述 TCP实体判断所述序列号的最大值是否达到所述 Dup ACK消息所对应的数据包在 Determining, by the TCP entity, whether the maximum value of the sequence number reaches a data packet corresponding to the Dup ACK message.
RLC层的终止序列号; The termination sequence number of the RLC layer;
如果达到, 所述 TCP实体确认 RLC层已经将所述 Dup ACK消息所对应的数据包的所有 分片包发送给所述终端设备, 并接收到了所述终端设备返回的确认消息。  If yes, the TCP entity confirms that the RLC layer has sent all the fragmented packets of the data packet corresponding to the Dup ACK message to the terminal device, and receives an acknowledgement message returned by the terminal device.
3.如权利要求 1所述的方法,其中,在所述 TCP实体判断 RLC层是否已经将所述 Dup ACK 消息所对应的数据包的所有分片包发送给所述终端设备, 并接收到了所述终端设备返回的 确认消息之后, 还包括:  The method of claim 1, wherein the TCP entity determines whether the RLC layer has sent all the fragmented packets of the data packet corresponding to the Dup ACK message to the terminal device, and receives the After the confirmation message returned by the terminal device, the method further includes:
如果判断结果为否, 所述 TCP实体将所述 Dup ACK消息的计数值置零。  If the result of the determination is no, the TCP entity sets the count value of the Dup ACK message to zero.
4.如权利要求 1所述的方法, 其中, 所述 TCP实体重传所述 Dup ACK消息所对应的数 据包的过程中, 还包括:  The method of claim 1, wherein the process of retransmitting the data packet corresponding to the Dup ACK message by the TCP entity further includes:
所述 TCP实体记录进行重传的所述数据包在 RLC层的终止序列号。  The TCP entity records the termination sequence number of the data packet for retransmission at the RLC layer.
5.如权利要求 1所述的方法, 其中, 当所述 TCP实体判断所述上行消息中不包含 Dup ACK消息, 或所述 TCP实体重传所述 Dup ACK消息所对应的数据包之后, 还包括:  The method according to claim 1, wherein, after the TCP entity determines that the uplink message does not include a Dup ACK message, or the TCP entity retransmits the data packet corresponding to the Dup ACK message, Includes:
所述 TCP实体判断所述上行消息中是否包含 SACK消息; 如果包含, 所述 TCP实体按照所述 SACK消息所对应的各数据包的发送顺序, 选择相 应的数据包; Determining, by the TCP entity, whether the uplink message includes a SACK message; If yes, the TCP entity selects a corresponding data packet according to a sending sequence of each data packet corresponding to the SACK message;
所述 TCP实体判断 RLC层是否已经将当前所选择的数据包的所有分片包发送给所述终 端设备, 并接收到了所述终端设备返回的确认消息;  Determining, by the TCP entity, whether the RLC layer has sent all the fragmented packets of the currently selected data packet to the terminal device, and receiving an acknowledgement message returned by the terminal device;
如果判断结果为是, 所述 TCP实体重传所述当前所选择的数据包。  If the result of the determination is yes, the TCP entity retransmits the currently selected data packet.
6.如权利要求 5所述的方法, 其中, 所述 TCP实体判断 RLC层是否已经将当前所选择 的数据包的所有分片包发送给所述终端设备,并接收到了所述终端设备返回的确认消息包 括:  The method according to claim 5, wherein the TCP entity determines whether the RLC layer has sent all the fragmented packets of the currently selected data packet to the terminal device, and receives the returned by the terminal device. The confirmation message includes:
所述 TCP实体确定所述当前所选择的数据包的各分片包中, 已经由所述终端设备确认 的分片包的序列号;  Determining, by the TCP entity, a sequence number of a fragment packet that has been confirmed by the terminal device in each fragment packet of the currently selected data packet;
所述 TCP实体判断所述序列号的最大值是否达到所述当前所选择的数据包在 RLC层的 终止序列号;  Determining, by the TCP entity, whether a maximum value of the sequence number reaches a termination sequence number of the currently selected data packet at an RLC layer;
如果达到,所述 TCP实体确认 RLC层已经将所述当前所选择的数据包的所有分片包发 送给所述终端设备, 并接收到了所述终端设备返回的确认消息。  If so, the TCP entity confirms that the RLC layer has sent all the fragmented packets of the currently selected data packet to the terminal device, and receives an acknowledgement message returned by the terminal device.
7.如权利要求 5所述的方法, 其中, 所述 TCP实体判断 RLC层是否已经将当前所选择 的数据包的所有分片包发送给所述终端设备,并接收到了所述终端设备返回的确认消息之 后, 还包括:  The method according to claim 5, wherein the TCP entity determines whether the RLC layer has sent all the fragmented packets of the currently selected data packet to the terminal device, and receives the returned by the terminal device. After confirming the message, it also includes:
如果判断结果为否, 所述 TCP实体确认当前所选择的数据包之后的所述 SACK消息所 对应的各数据包均没有发送完毕。  If the judgment result is no, the TCP entity confirms that each data packet corresponding to the SACK message after the currently selected data packet has not been transmitted.
8.如权利要求 5所述的方法, 其中, 所述 TCP实体重传所述当前所选择的数据包的过 程中, 还包括:  The method of claim 5, wherein the process of retransmitting the currently selected data packet by the TCP entity further includes:
所述 TCP实体记录进行重传的所述数据包在 RLC层的终止序列号。  The TCP entity records the termination sequence number of the data packet for retransmission at the RLC layer.
9.一种网络设备, 作为 TCP实体应用于存在跨无线网络的 TCP连接的网络系统中, 其 中, 所述网络设备包括: A network device, as a TCP entity, is applied to a network system that has a TCP connection across a wireless network, where the network device includes:
接收模块, 配置为接收终端设备发送的上行消息;  a receiving module, configured to receive an uplink message sent by the terminal device;
第一判断模块, 配置为判断所述接收模块所接收到的上行消息中是否包含 Dup ACK消 息; 第二判断模块, 配置为在所述第一判断模块的判断结果为包含时, 判断 RLC层是否已 经将所述 Dup ACK消息所对应的数据包的所有分片包发送给所述终端设备, 并接收到了所 述终端设备返回的确认消息; The first determining module is configured to determine whether the uplink message received by the receiving module includes a Dup ACK message; The second judging module is configured to: when the judgment result of the first judging module is included, determine whether the RLC layer has sent all the fragment packets of the data packet corresponding to the Dup ACK message to the terminal device, and Receiving an acknowledgement message returned by the terminal device;
计数模块, 配置为在所述第二判断模块的判断结果为是时, 对所述接收模块所接收到 的 Dup ACK消息进行计数累加;  a counting module configured to count and accumulate Dup ACK messages received by the receiving module when the determining result of the second determining module is YES;
第三判断模块, 配置为判断所述计数模块所计数的 Dup ACK消息当前的计数值是否达 到 2;  a third determining module, configured to determine whether the current count value of the Dup ACK message counted by the counting module reaches 2;
处理模块, 配置为在所述第三判断模块的判断结果为达到时, 重传所述 Dup ACK消息 所对应的数据包, 并通知所述计数模块将所述 Dup ACK消息的计数值置零。  The processing module is configured to retransmit the data packet corresponding to the Dup ACK message when the determination result of the third determining module is reached, and notify the counting module to set the count value of the Dup ACK message to zero.
10.如权利要求 9所述的网络设备, 其中, 所述第二判断模块, 配置为:  The network device according to claim 9, wherein the second determining module is configured to:
确定所述 Dup ACK消息所对应的数据包的各分片包中, 已经由所述终端设备确认的分 片包的序列号;  Determining, in each fragment packet of the data packet corresponding to the Dup ACK message, a sequence number of the fragment packet that has been confirmed by the terminal device;
判断所述序列号的最大值是否达到所述 Dup ACK消息所对应的数据包在 RLC层的终止 序列号;  Determining whether the maximum value of the sequence number reaches the termination sequence number of the data packet corresponding to the Dup ACK message at the RLC layer;
如果达到, 确认 RLC层已经将所述 Dup ACK消息所对应的数据包的所有分片包发送给 所述终端设备, 并接收到了所述终端设备返回的确认消息。  If yes, it is confirmed that the RLC layer has sent all the fragmented packets of the data packet corresponding to the Dup ACK message to the terminal device, and receives an acknowledgement message returned by the terminal device.
11.如权利要求 9所述的网络设备, 其中, 所述计数模块, 还配置为在所述第二判断 模块的判断结果为否时, 将所述 Dup ACK消息的计数值置零。  The network device according to claim 9, wherein the counting module is further configured to: when the determination result of the second determining module is negative, set the count value of the Dup ACK message to zero.
12.如权利要求 9所述的网络设备, 其中, 所述处理模块, 还配置为:  The network device according to claim 9, wherein the processing module is further configured to:
在重传所述 Dup ACK消息所对应的数据包的过程中,记录进行重传的所述数据包在 RLC 层的终止序列号。  In the process of retransmitting the data packet corresponding to the Dup ACK message, the termination sequence number of the data packet to be retransmitted at the RLC layer is recorded.
13.如权利要求 9所述的网络设备, 其中, 还包括第四判断模块、 选择模块和第五判 断模块;  The network device according to claim 9, further comprising a fourth determining module, a selecting module, and a fifth determining module;
其中,  among them,
所述第四判断模块, 配置为在所述第一判断模块判断所述上行消息中不包含 Dup ACK 消息, 或所述处理模块重传所述 Dup ACK消息所对应的数据包之后, 判断所述上行消息中 是否包含 SACK消息;  The fourth determining module is configured to determine, after the first determining module determines that the uplink message does not include a Dup ACK message, or after the processing module retransmits the data packet corresponding to the Dup ACK message, Whether the SACK message is included in the uplink message;
所述选择模块, 配置为在所述第四判断模块的判断结果为包含时, 按照所述 SACK消 息所对应的各数据包的发送顺序, 选择相应的数据包; The selecting module is configured to: when the determination result of the fourth determining module is included, according to the SACK Select the corresponding data packet in the order in which the packets correspond to each other;
所述第五判断模块,配置为判断 RLC层是否已经将所述选择模块当前所选择的数据包 的所有分片包发送给所述终端设备, 并接收到了所述终端设备返回的确认消息;  The fifth determining module is configured to determine whether the RLC layer has sent all the fragmented packets of the data packet currently selected by the selecting module to the terminal device, and receives an acknowledgement message returned by the terminal device;
所述处理模块, 还配置为在所述第五判断模块的判断结果为是时, 重传所述当前所选 择的数据包。  The processing module is further configured to retransmit the currently selected data packet when the determination result of the fifth determining module is YES.
14.如权利要求 13所述的网络设备, 其中, 所述第五判断模块, 配置为:  The network device according to claim 13, wherein the fifth determining module is configured to:
确定所述选择模块当前所选择的数据包的各分片包中, 已经由所述终端设备确认的分 片包的序列号;  Determining, in each fragment packet of the data packet currently selected by the selection module, a sequence number of the fragment packet that has been confirmed by the terminal device;
判断所述序列号的最大值是否达到所述当前所选择的数据包在 RLC层的终止序列号; 如果达到,确认 RLC层已经将所述当前所选择的数据包的所有分片包发送给所述终端 设备, 并接收到了所述终端设备返回的确认消息。  Determining whether the maximum value of the sequence number reaches the termination sequence number of the currently selected data packet at the RLC layer; if so, confirming that the RLC layer has sent all the fragment packets of the currently selected data packet to the The terminal device is received, and an acknowledgement message returned by the terminal device is received.
15.如权利要求 13所述的网络设备, 其中, 所述处理模块, 还配置为:  The network device according to claim 13, wherein the processing module is further configured to:
在所述第五判断模块的判断结果为否时,确认所述选择模块当前所选择的数据包之后 的所述 SACK消息所对应的各数据包均没有发送完毕。  When the determination result of the fifth determining module is negative, it is confirmed that each data packet corresponding to the SACK message after the data packet currently selected by the selecting module is not transmitted.
16.如权利要求 13所述的网络设备, 其中, 所述处理模块, 还配置为:  The network device according to claim 13, wherein the processing module is further configured to:
在重传所述选择模块当前所选择的数据包的过程中, 记录进行重传的所述数据包在 RLC层的终止序列号。  In the process of retransmitting the data packet currently selected by the selection module, the termination sequence number of the data packet to be retransmitted at the RLC layer is recorded.
PCT/CN2012/085231 2012-04-28 2012-11-26 Wireless side tcp data retransmission method and device WO2013159516A1 (en)

Applications Claiming Priority (2)

Application Number Priority Date Filing Date Title
CN201210129854.0 2012-04-28
CN201210129854.0A CN102664718B (en) 2012-04-28 2012-04-28 The method and apparatus that wireless side tcp data retransmits

Publications (1)

Publication Number Publication Date
WO2013159516A1 true WO2013159516A1 (en) 2013-10-31

Family

ID=46774141

Family Applications (1)

Application Number Title Priority Date Filing Date
PCT/CN2012/085231 WO2013159516A1 (en) 2012-04-28 2012-11-26 Wireless side tcp data retransmission method and device

Country Status (2)

Country Link
CN (1) CN102664718B (en)
WO (1) WO2013159516A1 (en)

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
WO2018137449A1 (en) * 2017-01-30 2018-08-02 Huawei Technologies Co., Ltd. Controlling tcp data transmission

Families Citing this family (11)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN102664718B (en) * 2012-04-28 2015-09-09 大唐移动通信设备有限公司 The method and apparatus that wireless side tcp data retransmits
US9584384B2 (en) 2012-09-19 2017-02-28 Intel Corporation Methods for retransmitting reverse link data and apparatuses using the same
CN104137507B (en) * 2013-01-31 2018-11-16 华为技术有限公司 Feed back the message treatment method and device of packet loss
CN108432287A (en) * 2015-12-24 2018-08-21 华为技术有限公司 A kind of data transmission method and network side equipment
CN107040343A (en) * 2016-02-03 2017-08-11 中国移动通信集团公司 A kind of retransfer scheduling method and device
CN107454626B (en) * 2016-05-31 2020-06-05 中国移动通信有限公司研究院 Information sending method, wireless network equipment and terminal
EP3506540A4 (en) * 2016-09-28 2019-09-18 Huawei Technologies Co., Ltd. Data transmission method, network device and terminal device
CN108234087B (en) * 2016-12-22 2021-08-03 华为技术有限公司 Data transmission method and sending end
RU2728803C1 (en) * 2017-01-24 2020-07-31 Хуавей Текнолоджиз Ко., Лтд. Data transmission device and method and equipment located at client
CN109905209B (en) * 2017-12-07 2020-12-29 网宿科技股份有限公司 Method and device for setting network disorder value
CN114710446A (en) * 2022-03-23 2022-07-05 维沃移动通信有限公司 Data transmission method and device, electronic equipment and storage medium

Citations (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN101141405A (en) * 2007-10-17 2008-03-12 华为技术有限公司 Wireless network data transmission method and wireless network controller
CN101547192A (en) * 2008-03-24 2009-09-30 大唐移动通信设备有限公司 Method and device for allocating and transmitting TCP data pockets
CN101631065A (en) * 2008-07-16 2010-01-20 华为技术有限公司 Method and device for controlling congestion of wireless multi-hop network
CN102355462A (en) * 2011-10-09 2012-02-15 大唐移动通信设备有限公司 Method and device for realizing TCP (Transmission Control Protocol) transmission
CN102664718A (en) * 2012-04-28 2012-09-12 大唐移动通信设备有限公司 Wireless side TCP (Transmission Control Protocol) data retransmission method and equipment

Family Cites Families (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US7593338B2 (en) * 2003-06-27 2009-09-22 Samsung Electronics Co., Ltd. Congestion control method and system for reducing a retransmission timeout count in a transmission control protocol
CN101119183A (en) * 2007-09-06 2008-02-06 上海华为技术有限公司 Retransmission control method and transmission equipment
CN102098150B (en) * 2009-12-10 2014-10-22 中兴通讯股份有限公司 Reception acknowledgement processing method and base station

Patent Citations (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN101141405A (en) * 2007-10-17 2008-03-12 华为技术有限公司 Wireless network data transmission method and wireless network controller
CN101547192A (en) * 2008-03-24 2009-09-30 大唐移动通信设备有限公司 Method and device for allocating and transmitting TCP data pockets
CN101631065A (en) * 2008-07-16 2010-01-20 华为技术有限公司 Method and device for controlling congestion of wireless multi-hop network
CN102355462A (en) * 2011-10-09 2012-02-15 大唐移动通信设备有限公司 Method and device for realizing TCP (Transmission Control Protocol) transmission
CN102664718A (en) * 2012-04-28 2012-09-12 大唐移动通信设备有限公司 Wireless side TCP (Transmission Control Protocol) data retransmission method and equipment

Cited By (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
WO2018137449A1 (en) * 2017-01-30 2018-08-02 Huawei Technologies Co., Ltd. Controlling tcp data transmission
US10462711B2 (en) 2017-01-30 2019-10-29 Futurewei Technologies, Inc. Controlling TCP data transmission

Also Published As

Publication number Publication date
CN102664718A (en) 2012-09-12
CN102664718B (en) 2015-09-09

Similar Documents

Publication Publication Date Title
WO2013159516A1 (en) Wireless side tcp data retransmission method and device
KR102249741B1 (en) Method and apparatus for data transmission
US9860915B2 (en) Apparatus and method for moving a receive window in a radio access network
JP5523350B2 (en) Method and apparatus for TCP flow control
EP2759164B1 (en) Dynamic subflow control for a multipath transport connection in a wireless communication network
US9577791B2 (en) Notification by network element of packet drops
WO2017050216A1 (en) Packet transmission method and user equipment
US20080022180A1 (en) Method and apparatus for handling transmission errors in a wireless communications system
WO2014092779A1 (en) Notification by network element of packet drops
KR101470637B1 (en) Method for enhancing radio resource and informing status report in mobile telecommunications system and receiver of mobile telecommunications
EP2109954A1 (en) Efficient tcp ack prioritization in wireless networks
WO2016201904A1 (en) Tcp-based data transmission method and device
WO2012129922A1 (en) Packet handling method, forwarding device and system
WO2015066836A1 (en) Video service data transmission method, data receiving device and data transmitting device
WO2020147453A1 (en) Data transmission method and related apparatus
KR101024461B1 (en) Optimised packet data transmission protocol in a communication system employing a transmission window
CN102769520A (en) Wireless network congestion control method based on stream control transmission protocol (SCTP)
JP4384676B2 (en) Method for controlling data communication apparatus
CN111092907B (en) UDP (user Datagram protocol) -based data stream fast transmission method, system and medium
JP2014192811A (en) Relay device and communication method
JP2006101339A (en) Data communication apparatus
WO2020010511A1 (en) Data transmission method and base station
US20150071273A1 (en) Efficient transfer of tcp traffic over wlan
US11502986B2 (en) Reducing transmission delay of transmitting data in Wi-Fi
Schüler et al. Performance improvements for TCP in mobile networks with high packet delay variations

Legal Events

Date Code Title Description
121 Ep: the epo has been informed by wipo that ep was designated in this application

Ref document number: 12875643

Country of ref document: EP

Kind code of ref document: A1

NENP Non-entry into the national phase

Ref country code: DE

122 Ep: pct application non-entry in european phase

Ref document number: 12875643

Country of ref document: EP

Kind code of ref document: A1