WO2012126424A2 - Method and device for forwarding data packet - Google Patents

Method and device for forwarding data packet Download PDF

Info

Publication number
WO2012126424A2
WO2012126424A2 PCT/CN2012/075715 CN2012075715W WO2012126424A2 WO 2012126424 A2 WO2012126424 A2 WO 2012126424A2 CN 2012075715 W CN2012075715 W CN 2012075715W WO 2012126424 A2 WO2012126424 A2 WO 2012126424A2
Authority
WO
WIPO (PCT)
Prior art keywords
data packet
sequence number
link
packet
receiving end
Prior art date
Application number
PCT/CN2012/075715
Other languages
French (fr)
Chinese (zh)
Other versions
WO2012126424A3 (en
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 华为技术有限公司
Priority to CN2012800007457A priority Critical patent/CN102823207A/en
Priority to PCT/CN2012/075715 priority patent/WO2012126424A2/en
Publication of WO2012126424A2 publication Critical patent/WO2012126424A2/en
Publication of WO2012126424A3 publication Critical patent/WO2012126424A3/en

Links

Classifications

    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L47/00Traffic control in data switching networks
    • H04L47/10Flow control; Congestion control
    • H04L47/34Flow control; Congestion control ensuring sequence integrity, e.g. using sequence numbers

Definitions

  • the present invention relates to the field of communications technologies, and in particular, to a data packet forwarding method and device. Background technique
  • TCP Transmission Control Protocol
  • the transmission reliability of TCP packets is mainly reflected in two aspects. First, the data cannot be damaged. Second, the order of the data must be consistent with the originating and receiving ends. When the above two situations are abnormal, the sender of the TCP packet will actively reduce the sending traffic.
  • the networking of commercial network systems is very complicated. For example, the transmission from the core network to the base station is usually transmitted by the public network, and the public network is combined by a large number of switching devices in a mesh structure. Due to the complexity of the networking, it is easy to cause the delay of the data packets to arrive at the receiving end after being transmitted on the transmission path, which results in the disorder of the data packets received by the receiving end.
  • the sender sends the packets according to the sequence number of the TCP packets. For example, the sender sends the TCP packets with sequence numbers 1 to 9 to the receiver. Since the TCP packets of the above 1 ⁇ 9 have different delays on the transmission path, the TCP packets received by the receiving end may have an out-of-order problem. For example, the serial number of the received TCP packet is 1, 2, 3, 5, 6, 7, 4, 8, 9, and the delay of the packet of sequence number 4 is longer, resulting in the TCP received by the receiver. Packets are out of order.
  • the receiving device cannot distinguish the out-of-order and loss of TCP packets. Therefore, the way in which the receiving end handles the problem of TCP packet out-of-order is: When the receiving end finds the sequence number of the received TCP packet, the sequence is out of order. Sending an Acknowledgement (ACK) request to the sender of the TCP data, and requesting the sender of the TCP packet to send the TCP packet of the next sequence number of the last sequence number currently correctly received.
  • ACK Acknowledgement
  • the receiving end will send 3 repeated ACK requests after receiving the data packet with the sequence number of 123567489, which will cause the sending end to repeatedly send the TCP packet with sequence number 4.
  • the embodiments of the present invention provide a data packet forwarding method and device, which are used to reduce the out-of-order rate of data packets, thereby improving network throughput.
  • a method for forwarding data packets including:
  • the packet forwarding device receives the data packet, and the data packet is a data packet encapsulated by the communication protocol that requires the data packet to arrive at the receiving end without loss;
  • the data packet forwarding device determines whether the data packet arrives at the data packet forwarding device in order, and if not, stores the data packet in a cache queue corresponding to the link to which the data packet belongs;
  • the data packet forwarding device sends the data packets in the buffer queue to the receiving end in sequence according to the sequence number of the data packet.
  • a packet forwarding device includes:
  • a receiving unit configured to receive a data packet, where the data packet is a data packet encapsulated by a communication protocol that requires the data packet to arrive at the receiving end without loss;
  • a determining unit configured to determine whether the data packet arrives at the data packet forwarding device in sequence; and a storage control unit, configured to store the data packet and the data packet if the determining unit determines that the result is negative The cache queue corresponding to the link;
  • a sending unit configured to send the data packet in the cache queue to the receiving end in sequence according to the sequence number of the data packet.
  • the above technical solution has the following beneficial effects: By adjusting the order of the data packets before the data packets are sent to the receiving end, the order of sending the data packets is closer to the original order of the data packets, and the out-of-order rate of the data packets can be reduced.
  • FIG. 1 is a schematic flowchart of a method according to an embodiment of the present invention.
  • FIG. 2A is a schematic diagram of a network structure of an application scenario of a solution according to an embodiment of the present invention
  • 2B is a schematic diagram showing an example of sorting by using an embodiment of the present invention.
  • FIG. 3 is a schematic flow chart of another method according to an embodiment of the present invention.
  • FIG. 4 is a schematic structural diagram of a forwarding device according to an embodiment of the present invention.
  • FIG. 5 is a schematic structural diagram of another forwarding device according to an embodiment of the present invention.
  • FIG. 6 is a schematic structural diagram of another forwarding device according to an embodiment of the present invention.
  • FIG. 7 is a schematic structural diagram of another forwarding device according to an embodiment of the present invention.
  • the technical solutions in the embodiments of the present invention are clearly and completely described in the following with reference to the accompanying drawings in the embodiments of the present invention. It is obvious that the described embodiments are only a part of the embodiments of the present invention, and not all of the embodiments. example. All other embodiments obtained by a person of ordinary skill in the art based on the embodiments of the present invention without creative work are within the scope of the present invention.
  • An embodiment of the present invention provides a method for forwarding a data packet of a transmission control protocol, as shown in FIG. 1 , including:
  • the data packet forwarding device receives the data packet, where the data packet is a data packet encapsulated by a communication protocol that requires the data packet to arrive at the receiving end without loss;
  • the foregoing data packet may be a TCP data packet in a Long Term Evolution (LTE) network, or may be a data packet encapsulated by a communication protocol that requires the data packet to arrive at the receiving end in sequence, and the present invention.
  • LTE Long Term Evolution
  • the embodiment does not limit this.
  • the foregoing packet forwarding device determines whether the data packet arrives in the foregoing packet forwarding in order. And the device, if not, storing the data packet in a cache queue corresponding to the link to which the data packet belongs; determining whether the data packet arrives at the data packet forwarding device in sequence, and an implementation manner may include: acquiring the data packet Link identification information and the serial number of the data packet; determining, by the link identification information, the link to which the data packet belongs; determining whether the serial number of the data packet is greater than a next serial number of the serial number of the largest serial number in the data packet to which the data packet belongs If yes, it is determined that the foregoing data packet does not arrive at the foregoing packet forwarding device in order.
  • the above link identification information may be: a source internet protocol IP address, a destination IP address, a source port number, and a destination port number of the above data packet. Taking TCP packets as an example, this information can be obtained by reading the corresponding fields in the TCP header. It should be noted that the purpose of obtaining the link identification information is to determine the link to which the data packet belongs.
  • the specific content of the specific optional information is not limited to the above four examples, and thus the above examples are not to be construed as limiting the embodiments of the present invention.
  • the cache queue may be pre-established, or may be established when it is determined that the data packet needs to be reordered and sent, and may also be determined after the data packet is not sequentially arrived at the data packet forwarding device.
  • a cache queue corresponding to the link to which the above data packet belongs is established.
  • the method may further include: if the sequence number of the data packet is less than or equal to the next sequence number of the sequence number with the largest serial number in the data packet that the link to which the data packet belongs Determining whether the cache queue corresponding to the link to which the data packet belongs is empty. If it is empty, sending the data packet to the receiving end. If not, storing the data packet in a cache corresponding to the link to which the data packet belongs. queue.
  • the embodiment is based on the establishment of a cache queue after determining that the data packet does not arrive in sequence with the data packet forwarding device, and the next sequence number with the largest serial number in the data packet that has been sent than the link to which the data packet belongs is Packets with a small serial number may not be delayed by the time delay caused by the delay. These packets can be sent directly to the receiver.
  • the storing, by the foregoing 102, the data packet in the cache queue corresponding to the link to which the data packet belongs includes: storing the data packet in a cache queue corresponding to the link to which the data packet belongs, and the cache queue is sorted according to the serial number from small to large. .
  • the sequence numbers of the data packets stored in the buffer queue are sorted from small to large and can be compatible with the transmission scheme of the original data packet of the protocol.
  • the ordering in this step is a preferred embodiment and should not be construed as limiting the embodiments of the present invention.
  • the foregoing packet forwarding device sends the data packet in the cache queue to the receiving end in sequence according to the sequence number of the data packet.
  • the sending, in the foregoing 103, the data packet in the buffer queue to the receiving end according to the sequence number of the data packet is: when the timer timing reaches a predetermined value or when the data packet in the buffer queue reaches a predetermined number And sending the data packet in the cache queue to the receiving end according to the sequence number of the data packet in the cache queue.
  • the foregoing examples of the timers and the data packets reaching a predetermined number are all the conditions for the triggering forwarding device to send the data packets.
  • the triggering conditions may be many, and are not limited to the foregoing two types. This is not limited.
  • the above predetermined value can be set to 2 milliseconds (ms).
  • the order of the data packet is adjusted, so that the sending order of the data packet is closer to the original order of the data packet, and the out-of-order rate of the data packet can be reduced. Reduce the problem that the receiving end repeatedly sends ACK requests and retransmits the bandwidth occupied by the data packets, thereby improving the network throughput.
  • the sender of the TCP packet confirms that the network has a reliability abnormality, and will actively take the initiative after confirming the reliability abnormality at the transmitting end.
  • the packet transmission rate is reduced by half. Therefore, for TCP packet transmission, the out-of-order TCP packet causes the sender to actively reduce the transmission rate, thereby reducing the network throughput.
  • the out-of-order rate of the data packet can be reduced, thereby reducing the situation that the transmitting end actively reduces the transmission rate by receiving the ACK request, thereby improving the network throughput rate.
  • the forwarding entity of the above embodiment may be any forwarding device, such as a base station, between the sending end and the receiving end of the TCP data packet.
  • a forwarding device such as a base station
  • the transmitting end of the TCP packet is in the core network, and the core network sends a TCP packet to the base station, and the base station sends the TCP packet to the receiving end.
  • the receiving end shown in FIG. 2A is a mobile phone, and the forwarding device is a base station. It can be understood that the receiving end can have more than four types, which may be terminal devices or other network side devices, and the forwarding devices may also have many types. This embodiment of the present invention does not limit this.
  • a TCP processing module may be added to a network element of a Long Term Evolution (LTE) system, such as an evolved base station (eNodeB), to perform the method provided by the embodiment of the present invention.
  • the TCP processing module may perform downlink data.
  • the package is processed.
  • the TCP processing module detects whether each downlink TCP packet arrives at the eNodeB in order. If it is detected that the sequence numbers of the two TCP packets are not consecutive, it can be determined that the TCP packet does not arrive at the eNodeB in order, then the The eNodeB caches out-of-order packets and buffers and sorts the packets arriving at the eNodeB for a period of time.
  • FIG. 2B when the packet arrives at the eNodeB when the out-of-order occurs, the following is the case where the data packet arrives at the receiving end after being processed by the method of the embodiment of the present invention, where the receiving end is the destination end of the TCP packet.
  • An example is a mobile phone in FIG. 2A.
  • time is the arrival time of the TCP packet
  • tcp_seq is the serial number of the TCP packet
  • info is other information (shown in Figure 2 as the length of the file transfer protocol data). It can be seen from the upper part of Fig.
  • the method of the embodiment of the present invention can reduce the out-of-order rate.
  • the test object is a TCP packet transmitted by the core network to reach the base station, and the base station performs the solution of the embodiment of the present invention as a packet forwarding device. Forward the TCP packet to the phone.
  • the solution of the embodiment of the present invention can improve the average throughput rate of the LTE network.
  • the specific gain effect is related to the out-of-order rate, out-of-order range, out-of-order delay, and Round-Trip Time (RTT) of the wired transmission side (core network to base station). The greater the out-of-order rate, the larger the RTT is, the more obvious the gain is.
  • the data packet encapsulated by the communication protocol that requires the data packet to arrive at the receiving end without loss can be applied to many types of networks.
  • the example of the LTE network should not be construed as limiting the embodiment of the present invention.
  • the inventor measured the effect of the above embodiment, and the test scenario is: the bandwidth of the cell where the mobile phone is located is 20 MHz, the peak rate of the LTE network is 148 Mbps, the manufacturing disorder rate is 1/10000, the out-of-order average distribution, and the out-of-order range are 2 ⁇ 5 data stream, the mobile phone uses the File Transfer Protocol (FTP) to download 5 times 1G files from the core network.
  • FTP File Transfer Protocol
  • the test results are as follows:
  • the average throughput of the LTE network that does not use the method of the embodiment of the present invention is 40.367 Mbps, and the average throughput of the LTE network is 126.912 Mbps and the maximum is 137.568 Mbps.
  • the method gain of the embodiment of the invention is 214.3% to 241.3%. Therefore, the experiment proves that the scheme of the embodiment of the present invention can effectively improve the LTE network throughput rate.
  • the forwarding of the TCP packet is described as an example. Specifically, as shown in FIG. 3, the following steps are included:
  • the packet forwarding device receives the data packet, and checks whether it is a TCP data packet. If not, enter 302, if it is a TCP data packet, enter 303; 302: directly transparently transmit the foregoing TCP packet, and then return to 301;
  • 303 Obtain link identification information of the TCP packet and determine a link to which the TCP packet belongs (ie, a TCP link), and check whether the TCP link to which it belongs has sort information;
  • the above sorting information includes: source, destination IP address, source, destination port number, and may also include: a timer timing value, and a currently transmitted maximum sequence number CurrSeq. If there is sorting information, go to 305, if there is no sorting information, go to 304;
  • the pre-processing may include: initializing CurrSeq to the sequence number of the first TCP packet received; it should be noted that if CurrSeq itself has an initial value (ie, has been initialized), then the initialization of CurrSeq is not performed, and directly enters 306. ;
  • 301 ⁇ 305 above adopts that the first TCP packet is received, and the sorting information is directly established; if the sorting information is established after determining that the TCP packet is out of order, the CurrSeq initialization in this step is performed. The serial number of the current TCP packet to establish the sorting information. It can be understood that if the TCP packet does not appear out of order, the TCP packet will be sent directly.
  • 306 Calculate the sequence number NxtSn of the next TCP packet sent in sequence; parse the sequence number of the TCP packet, and compare the sequence number obtained by the analysis with NxtSn: If the sequence number of the TCP packet is less than or equal to NxtSn, enter 307; The sequence number of the above TCP packet is greater than NxtSn, and enters 308;
  • 307 Check whether the cache queue corresponding to the link to which the TCP packet belongs is empty. If the cache queue is empty, enter 302, and update CurrSeq to the maximum sequence number of the currently forwarded TCP data, and calculate and update NxtSn as a new CurrSeq. The sequence number of the next TCP packet; if the cache queue is not empty, enter 308;
  • the check cache queue is empty in the above 307: one is that there is no cache queue corresponding to the link to which the above TCP packet belongs, and the other is that there is a cache queue corresponding to the link to which the above TCP packet belongs, and There are no packets in this cache queue.
  • the reason for the above "there is no cache queue corresponding to the link to which the above TCP packet belongs" is as follows: If the scheme established after determining that the TCP packet is out of order is used before step 306, then in the case where no disorder occurs The cache queue corresponding to the link to which the TCP packet belongs does not exist; that is, when the check cache queue is empty in the above 307, there is no cache queue corresponding to the link to which the TCP packet belongs.
  • the TCP packet is directly stored in the buffer queue. It should be noted that, in this step, the TCP in the cache queue is preferably sorted according to the sequence number of the TCP packet from small to large. data pack.
  • the principle of setting the timer duration The longer the timer duration, the higher the out-of-order ratio that can be corrected, the better the sorting effect, but the RTT delay of the data will increase, and the peak value may be reduced for the packet loss scenario.
  • the rate may also increase the delay of the hypertext transport protocol (http) service; the shorter the timer duration, the lower the out-of-order ratio that can be corrected, the worse the sorting effect, but the smaller the impact on the RTT delay of the data.
  • the packet loss scenario has a small impact on the peak rate and has little impact on the http service delay.
  • the default time of the timer sets different timer values according to the scenario to cope with different out-of-order delays.
  • the specific time is not limited in the embodiment of the present invention. In this step, the timer can be set to 2ms.
  • step 3 if it is determined that the linked data service is completed, the process will end.
  • the cache queue can be emptied after all TCP packets in the cache queue are sent.
  • An embodiment of the present invention provides an example of the implementation of the corresponding embodiment in FIG. 3, and the following is assumed: the maximum length of the TCP packet: 100;
  • the TCP packet numbers are: 3012, 3112, 3212, 3312, 3362, 3462, 3562, 3662, 3762, 3862, 3962;
  • the order in which the packet forwarding device receives the TCP data packet is: 3012, 3112, 3212, 3312, 3362, 3562, 3662, 3762, 3862, 3462, 3962;
  • the packet that caused the out-of-order is a packet with the sequence number 3462.
  • the packet 3012 arrives at the packet forwarding device in step 301 and determines it as a TCP packet, and then The ordering information is established in step 304, and CurrSeq is initialized to 3012 in step 305.
  • NxtSn current CurrSeq + 100 is calculated. Since the current buffer queue is empty and the received 3112, then the comparison in step 306 is performed to determine that 3112 is equal to NxtSn, so it can be determined that the TCP packet is sent directly to the receiving end, updating the CurrSeq and NxtSn.
  • CurrSeq is updated to 3312, and NxtSn is calculated to be 3312.
  • the server Since sometimes the server does not send packets according to the maximum packet length, for example, the packet of 3312, the next packet sequence number is 3362. Since the packet length of 3312 is only 50 bytes, when the packet is received, the buffer queue is still empty. At this time, CurrSeq ⁇ 3362 ⁇ 3412, will not be considered as out of order, 3362 will still be forwarded, and update CurrSeq to 3362, and calculate NxtSn to get 3462.
  • a 3562 packet When a 3562 packet is received, it is considered out of order because it is greater than NxtSn, the packet will be stored in the buffer queue, and the sort timer will be started. For packets with the following sequence numbers: 3662, 3762, 3862, 3462, if they arrive before the timer expires, they will be stored in the cache queue and reordered in the cache queue. The timer will be issued after the timer expires and updated. CurrSeq is 3862. If the packet timer with the sequence number 3462 is received after receiving the data packet with the sequence number 3762, the 3624, 3662, and 3762 in the buffer queue are issued in order, and the CurrSeq is updated to 3762 (currently sent.
  • the sorting information is established after determining that the TCP packets are out of order, then the preceding serial numbers are 3012, 3112, 3212, 3312, 3362. These packets are not out of order, so they are directly forwarded, and the data with the serial number is 3362.
  • the CurrSeq is 3362 and the NxtSn is 3462.
  • the sorting information is established; when the data packets with the sequence numbers 3562, 3662, 3762, and 3862 arrive, the sequence number is larger than NxtSn, and the data is larger.
  • the packet will be stored in the cache queue; the sequence number of the packet with the sequence number 3462 is equal to NxtSn. Since the buffer queue is not empty at this time, the packet with the sequence number 3462 will still be cached and sorted. If the timer expires before receiving 3462, the packets in the buffer queue will be all forwarded in order, and the CurrSeq will be updated to 3862, and the value calculated by NxtSn is 3962.
  • the embodiment of the present invention further provides a data packet forwarding device.
  • the method includes: a receiving unit 401, configured to receive a data packet, where the data packet is a data packet encapsulated in a communication protocol that requires the data packet to arrive at the receiving end without loss. package;
  • the foregoing data packet may be a TCP data packet in the LTE network, or may be a data packet encapsulated by the communication protocol that requires the data packet to arrive at the receiving end in sequence, which is not limited in this embodiment of the present invention.
  • the determining unit 402 is configured to determine whether the data packet arrives at the data packet forwarding device in sequence; and the storage control unit 403 is configured to: if the determining unit 402 determines that the result is negative, store the data packet in the link with the data packet Corresponding cache queue;
  • the sending unit 404 is configured to send the data packet in the cache queue to the receiving end in sequence according to the sequence number of the data packet.
  • the sending unit 404 is configured to send the data packet in the buffer queue to the receiving end according to the sequence number of the data packet, and the method includes: configured to: when the timer timing reaches a predetermined value or in the cache queue When the data packet reaches a predetermined number, the data packets in the cache queue are sent to the receiving end in sequence according to the sequence number of the data packet in the cache queue.
  • the foregoing examples of the timer and the data packet reaching a predetermined number are all the conditions for the triggering forwarding device to send the data packet.
  • the triggering condition may be many, and is not limited to the foregoing two types. This is not limited.
  • the above predetermined value can be set to 2 milliseconds (ms).
  • the order of the data packet is adjusted, so that the sending order of the data packet is closer to the original order of the data packet, and the out-of-order rate of the data packet can be reduced. Reduce the problem that the receiving end repeatedly sends ACK requests and retransmits the bandwidth occupied by the data packets, thereby improving the network throughput.
  • the sender of the TCP packet confirms that the network has a reliability abnormality, and will actively take the initiative after confirming the reliability abnormality at the transmitting end.
  • the packet transmission rate is reduced by half. Therefore, for TCP packet transmission, the out-of-order TCP packet causes the sender to actively reduce the transmission rate, thereby reducing the network throughput.
  • the out-of-order rate of the data packet can be reduced, thereby reducing the situation that the transmitting end actively reduces the transmission rate by receiving the ACK request, thereby improving the network throughput rate.
  • the determining unit 402 includes: an obtaining subunit 501, a link determining subunit 502, and a determining subunit 503;
  • the obtaining subunit 501 is configured to obtain link identification information of the data packet and a sequence number of the data packet.
  • the link determining subunit 502 is configured to determine the data packet by using the link identification information Dependent link
  • the determining subunit 503 is configured to determine whether the serial number of the data packet is greater than a next serial number of the serial number of the data packet that has been sent by the link to which the data packet belongs, and if yes, determining that the data packet does not arrive in the data sequentially Packet forwarding device.
  • the above link identification information may be: a source internet protocol IP address, a destination IP address, a source port number, and a destination port number of the above data packet. Taking TCP packets as an example, this information can be obtained by reading the corresponding fields in the TCP header. It should be noted that the purpose of obtaining the link identification information is to determine the link to which the data packet belongs.
  • the specific content of the specific optional information is not limited to the above four examples, and thus the above examples are not to be construed as limiting the embodiments of the present invention.
  • the foregoing apparatus further includes:
  • the queue control unit 601 is configured to establish, after the determining subunit 503, that the data packet does not arrive in sequence with the data packet forwarding device, to establish a cache queue corresponding to the link to which the data packet belongs.
  • establishing a cache queue can prevent unnecessary cache queues from occupying storage resources.
  • the foregoing apparatus further includes:
  • the cache information obtaining unit 701 is configured to determine, if the sequence number of the data packet is less than or equal to the next sequence number of the sequence number with the largest sequence number in the data packet to which the link to which the data packet belongs, determine whether the cache queue corresponding to the link to which the data packet belongs Is empty;
  • the sending unit 404 is further configured to: if the cache information acquiring unit 701 determines that the cache queue corresponding to the link to which the data packet belongs is empty, send the data packet to the receiving end;
  • the storage control unit 403 is further configured to: if the cache information obtaining unit 701 determines that the cache queue corresponding to the link to which the data packet belongs is not empty, store the data packet in a cache queue corresponding to the link to which the data packet belongs.
  • the embodiment is based on the establishment of a cache queue after determining that the data packet does not arrive in sequence with the data packet forwarding device, and the next sequence number with the largest serial number in the data packet that has been sent than the link to which the data packet belongs is Packets with a small serial number may not be delayed by the time delay caused by the delay, and such packets may be sent directly to the receiving end.
  • the sending unit 404 is specifically configured to receive, according to the sequence number of the data packet in the cache queue, the sequence number of the data packet in the cache queue from the small to the large when the timer reaches a predetermined value or when the data packet in the buffer queue reaches a predetermined number.
  • the terminal sends the data packet in the above cache queue.
  • the storage control unit 403 is specifically configured to store the data packet in a cache queue corresponding to the link to which the data packet belongs, and the cache queue is sorted according to the sequence number from small to large.
  • the sending unit 404 when the sending unit 404 sends a data packet, it can be sent according to the sequence number from small to large to implement the technical purpose of the embodiment of the present invention. Therefore, in the embodiment, the scheme for sorting before sending may be the original protocol. Some packets are sent in a compatible scheme.
  • the use of the storage control unit 403 to sort the data packets in the buffer queue in the present embodiment is a preferred embodiment and should not be construed as limiting the embodiments of the present invention.
  • the above packet forwarding device may be any forwarding device, such as a base station, between the sender and the receiver of the TCP packet.
  • the transmitting end of the TCP packet is in the core network, and the core network sends a TCP packet to the base station, and the base station sends the TCP packet to the receiving end.
  • the receiving end shown in FIG. 2A is a mobile phone, and the forwarding device is a base station. It can be understood that the receiving end can have more than four types, which may be terminal devices or other network side devices, and the forwarding devices may also have many types. This embodiment of the present invention does not limit this.
  • a TCP processing module may be added to a network element of the LTE system, such as an eNodeB, to implement the functions of each component in the data packet forwarding device, and the TCP processing module may process the downlink data packet.
  • the TCP processing module detects whether each downlink TCP packet arrives at the eNodeB in order. If it is detected that the sequence numbers of the two TCP packets are not consecutive, it can be determined that the TCP packet does not arrive at the eNodeB in order, and then the cache can be cached on the eNodeB. Out-of-order packets, and buffers and sorts packets arriving at the eNodeB over a period of time.
  • FIG. 2B when the packet arrives at the eNodeB when the out-of-order occurs, the following is the case where the data packet arrives at the receiving end after being processed by the apparatus of the embodiment of the present invention, where the receiving end is the destination end of the TCP packet.
  • An example is a mobile phone in FIG. 2A.
  • time is the arrival time of the TCP packet
  • tcp_seq is the serial number of the TCP packet
  • info is other information (shown as the length of the file transfer protocol data in FIG. 2). It can be seen from the upper part of Fig.
  • each unit included is only divided according to functional logic, but is not limited to the foregoing division, as long as the corresponding function can be implemented;
  • the names are also for convenience of distinction from each other and are not intended to limit the scope of protection of the present invention.
  • the functions of each functional unit can be implemented by components such as a receiver, a memory, a processor, and a transmitter.

Landscapes

  • Engineering & Computer Science (AREA)
  • Computer Security & Cryptography (AREA)
  • Computer Networks & Wireless Communication (AREA)
  • Signal Processing (AREA)
  • Data Exchanges In Wide-Area Networks (AREA)
  • Communication Control (AREA)

Abstract

Provided are a method and device for forwarding a data packet. The implementation of the method comprises: a data packet forwarding device receives a data packet, with the data packet being a data packet encapsulated by a communication protocol which requires undamaged and ordered arrival of data packets at the receiving end; the data packet forwarding device judges whether or not the data packet arrives at the data packet forwarding device in accordance with the correct order; if it does not, then the data packet will be stored in a cache queue corresponding to the link to which the data packet belongs; and the data packet forwarding device sends the data packets in the cache queue to the receiving end according to the serial number of the data packet from small to big successively. By way of adjusting the sequence of the data packets before the data packets are sent to the receiving end in the above method, the sending sequence of the data packets is closer to the original sequence thereof, which can lower the disordered sequence rate of the data packets and reduce the problem of bandwidth occupation by the repeated sending of the ACK request and the retransmission of the data packets by the receiving end, thus improving the throughput rate of the network.

Description

一种数据包的转发方法和设备 技术领域  Data packet forwarding method and device
本发明涉及通信技术领域, 特别涉及一种数据包的转发方法和设备。 背景技术  The present invention relates to the field of communications technologies, and in particular, to a data packet forwarding method and device. Background technique
目前网络通信协议种类艮多,其中一些网络通信协议提供了可靠的数据传 输服务, 可靠的数据传输服务要求数据包无损按序到达接收端, TCP ( Transmission Control Protocol )是其中使用最广泛的一种, 其提供了一种面 向连接的、可靠的字节流服务。 TCP数据包的传输可靠性主要体现在两个方面, 一是数据不能损坏,二是数据的顺序必须保持发端和收端一致。在发生上述两 方面情况异常时, TCP数据包的发送方会主动降低发送流量。  At present, there are many types of network communication protocols, some of which provide reliable data transmission services. Reliable data transmission services require data packets to arrive at the receiving end without loss. TCP ( Transmission Control Protocol) is the most widely used one. , which provides a connection-oriented, reliable byte stream service. The transmission reliability of TCP packets is mainly reflected in two aspects. First, the data cannot be damaged. Second, the order of the data must be consistent with the originating and receiving ends. When the above two situations are abnormal, the sender of the TCP packet will actively reduce the sending traffic.
商用网络系统的组网是十分复杂的, 比如: 核心网到基站的传输通常采用 公共网络传输, 而公共网络由数量庞大的交换设备以网状结构组合在一起。 由 于组网复杂,容易造成数据包在传输路径上传输以后到达接收端时的时延不唯 一, 从而导致接收端接收到的数据包的乱序。  The networking of commercial network systems is very complicated. For example, the transmission from the core network to the base station is usually transmitted by the public network, and the public network is combined by a large number of switching devices in a mesh structure. Due to the complexity of the networking, it is easy to cause the delay of the data packets to arrive at the receiving end after being transmitted on the transmission path, which results in the disorder of the data packets received by the receiving end.
按照 TCP规定, 发送端按照 TCP数据包的序号依次发送, 例如: 发送端 向接收端依次发送序号为 1~9的 TCP数据包。 由于上述 1~9的各 TCP数据包 在传输路径上时延不相同, 接收端收到的 TCP数据包, 可能存在乱序的问题。 例如, 收到的 TCP数据包的序号依次为 1、 2、 3、 5、 6、 7、 4、 8、 9, 其中序 号 4的数据包延时的时间较长, 导致接收端收到的 TCP数据包乱序。  According to the TCP regulations, the sender sends the packets according to the sequence number of the TCP packets. For example, the sender sends the TCP packets with sequence numbers 1 to 9 to the receiver. Since the TCP packets of the above 1~9 have different delays on the transmission path, the TCP packets received by the receiving end may have an out-of-order problem. For example, the serial number of the received TCP packet is 1, 2, 3, 5, 6, 7, 4, 8, 9, and the delay of the packet of sequence number 4 is longer, resulting in the TCP received by the receiver. Packets are out of order.
依据 TCP的规定, 目前接收端设备不能区分 TCP数据包乱序和丟失, 因 此目前接收端处理 TCP数据包乱序的问题的方式是: 接收端在发现接收到的 TCP数据包的序号乱序时,向 TCP数据的发送端发送确认( Acknowledgement, ACK )请求, 用于请求 TCP数据包的发送端发送当前正确接收的最后一个序 号的下一个序号的 TCP数据包。 以前述收到的 TCP 数据包的序号依次为 123567489为例, 在接收到序号为 3的 TCP数据包时确定下一个 TCP数据包 的序号为 4并发送 ACK请求 4, 但是实际收到的是 5, 因此再发送一次 ACK 请求并继续判断下一个接收的 TCP数据包是否为序号为 4的 TCP数据包, 发 现仍然不是序号为 4的 TCP数据包再发一次 ACK请求并继续判断下一个接收 的 TCP数据包是否为序号为 4的 TCP数据包, 依此类推, 上例中接收端接收 到序号依次为 123567489的数据包后会发送 3次重复 ACK请求, 会导致发送 端重复发送序号为 4的 TCP数据包。 According to the provisions of TCP, at present, the receiving device cannot distinguish the out-of-order and loss of TCP packets. Therefore, the way in which the receiving end handles the problem of TCP packet out-of-order is: When the receiving end finds the sequence number of the received TCP packet, the sequence is out of order. Sending an Acknowledgement (ACK) request to the sender of the TCP data, and requesting the sender of the TCP packet to send the TCP packet of the next sequence number of the last sequence number currently correctly received. Taking the serial number of the received TCP packet as 123567489 as an example, when receiving the TCP packet with sequence number 3, it is determined that the sequence number of the next TCP packet is 4 and the ACK request 4 is sent, but the actual received is 5 , so send another ACK Requesting and continuing to determine whether the next received TCP packet is a TCP packet with sequence number 4, and finds that the TCP packet with sequence number 4 is still sent an ACK request and continues to determine whether the next received TCP packet is a sequence number. The TCP packet of 4, and so on, in the above example, the receiving end will send 3 repeated ACK requests after receiving the data packet with the sequence number of 123567489, which will cause the sending end to repeatedly send the TCP packet with sequence number 4.
发明人在实现本发明实施例的过程中发现: 按照 TCP的规定接收端接收 到的 TCP数据包出现乱序后会重复发送 ACK请求, 导致 TCP数据包重传次 数过多, 占用带宽, 因此网络吞吐率较低。 发明内容 本发明实施例提供一种数据包的转发方法和设备,用于降低数据包的乱序 率, 从而提升网络吞吐率。  In the process of implementing the embodiments of the present invention, the inventor finds that: according to the provisions of the TCP, the TCP packets received by the receiving end are repeatedly sent ACK request, resulting in too many TCP packet retransmissions and occupying bandwidth, so the network The throughput rate is low. SUMMARY OF THE INVENTION The embodiments of the present invention provide a data packet forwarding method and device, which are used to reduce the out-of-order rate of data packets, thereby improving network throughput.
一种传数据包的转发方法, 包括:  A method for forwarding data packets, including:
数据包转发设备接收数据包,所述数据包为要求数据包无损按序到达接收 端的通信协议封装的数据包;  The packet forwarding device receives the data packet, and the data packet is a data packet encapsulated by the communication protocol that requires the data packet to arrive at the receiving end without loss;
所述数据包转发设备判断所述数据包是否按序到达所述数据包转发设备, 若否, 则将所述数据包存入与所述数据包所属链接对应的緩存队列;  The data packet forwarding device determines whether the data packet arrives at the data packet forwarding device in order, and if not, stores the data packet in a cache queue corresponding to the link to which the data packet belongs;
所述数据包转发设备按照数据包的序号从小到大依次向接收端发送所述 緩存队列中的数据包。  The data packet forwarding device sends the data packets in the buffer queue to the receiving end in sequence according to the sequence number of the data packet.
一种数据包转发设备, 包括:  A packet forwarding device includes:
接收单元, 用于接收数据包, 所述数据包为要求数据包无损按序到达接收 端的通信协议封装的数据包;  a receiving unit, configured to receive a data packet, where the data packet is a data packet encapsulated by a communication protocol that requires the data packet to arrive at the receiving end without loss;
判断单元, 用于判断所述数据包是否按序到达所述数据包转发设备; 存储控制单元, 用于若所述判断单元判断结果为否, 则将所述数据包存入 与所述数据包所属链接对应的緩存队列;  a determining unit, configured to determine whether the data packet arrives at the data packet forwarding device in sequence; and a storage control unit, configured to store the data packet and the data packet if the determining unit determines that the result is negative The cache queue corresponding to the link;
发送单元,用于按照数据包的序号从小到大依次向接收端发送所述緩存队 列中的数据包。  And a sending unit, configured to send the data packet in the cache queue to the receiving end in sequence according to the sequence number of the data packet.
上述技术方案具有如下有益效果: 通过在数据包发送至接收端之前,对数 据包的顺序进行调整,使数据包的发送顺序更接近于数据包原有的顺序, 可以 降低数据包的乱序率, 减少接收端重复发送 ACK请求以及重传数据包占用带 宽的问题, 从而提升网络吞吐率 附图说明 为了更清楚地说明本发明实施例的技术方案,下面将对实施例描述中所需 要使用的附图作筒单地介绍, 显而易见地, 下面描述中的附图仅仅是本发明的 一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动性的前提下, 还可以根据这些附图获得其他的附图。 The above technical solution has the following beneficial effects: By adjusting the order of the data packets before the data packets are sent to the receiving end, the order of sending the data packets is closer to the original order of the data packets, and the out-of-order rate of the data packets can be reduced. , reducing the receiving end repeatedly sending ACK request and retransmitting the packet occupation band </ RTI></RTI></RTI></RTI></RTI></RTI></RTI></RTI></RTI></RTI></RTI></RTI></RTI></RTI><RTIgt; The drawings are only some of the embodiments of the present invention, and those skilled in the art can obtain other drawings based on these drawings without any inventive labor.
图 1为本发明实施例方法流程示意图;  1 is a schematic flowchart of a method according to an embodiment of the present invention;
图 2A为本发明实施例方案应用场景的网络结构示意图;  2A is a schematic diagram of a network structure of an application scenario of a solution according to an embodiment of the present invention;
图 2B为采用本发明实施例进行排序的实例示意图;  2B is a schematic diagram showing an example of sorting by using an embodiment of the present invention;
图 3为本发明实施例另一方法流程示意图;  3 is a schematic flow chart of another method according to an embodiment of the present invention;
图 4为本发明实施例转发设备结构示意图;  4 is a schematic structural diagram of a forwarding device according to an embodiment of the present invention;
图 5为本发明实施例另一转发设备结构示意图;  FIG. 5 is a schematic structural diagram of another forwarding device according to an embodiment of the present invention;
图 6为本发明实施例另一转发设备结构示意图;  6 is a schematic structural diagram of another forwarding device according to an embodiment of the present invention;
图 7为本发明实施例另一转发设备结构示意图。 具体实施方式 下面将结合本发明实施例中的附图,对本发明实施例中的技术方案进行清 楚、 完整地描述, 显然, 所描述的实施例仅仅是本发明一部分实施例, 而不是 全部的实施例。基于本发明中的实施例, 本领域普通技术人员在没有作出创造 性劳动前提下所获得的所有其他实施例, 都属于本发明保护的范围。  FIG. 7 is a schematic structural diagram of another forwarding device according to an embodiment of the present invention. The technical solutions in the embodiments of the present invention are clearly and completely described in the following with reference to the accompanying drawings in the embodiments of the present invention. It is obvious that the described embodiments are only a part of the embodiments of the present invention, and not all of the embodiments. example. All other embodiments obtained by a person of ordinary skill in the art based on the embodiments of the present invention without creative work are within the scope of the present invention.
本发明实施例提供了一种传输控制协议数据包的转发方法, 如图 1所示, 包括:  An embodiment of the present invention provides a method for forwarding a data packet of a transmission control protocol, as shown in FIG. 1 , including:
101: 数据包转发设备接收数据包, 上述数据包为要求数据包无损按序到 达接收端的通信协议封装的数据包;  101: The data packet forwarding device receives the data packet, where the data packet is a data packet encapsulated by a communication protocol that requires the data packet to arrive at the receiving end without loss;
需要说明的是上述数据包可以为长期演进( Long Term Evolution, LTE ) 的网络中的 TCP数据包, 也可以是 TCP以外的其他要求数据包按序到达接收 端的通信协议封装的数据包, 本发明实施例对此不予限定。  It should be noted that the foregoing data packet may be a TCP data packet in a Long Term Evolution (LTE) network, or may be a data packet encapsulated by a communication protocol that requires the data packet to arrive at the receiving end in sequence, and the present invention. The embodiment does not limit this.
102: 上述数据包转发设备判断上述数据包是否按序到达上述数据包转发 设备, 若否, 则将上述数据包存入与上述数据包所属链接对应的緩存队列; 上述判断上述数据包是否按序到达上述数据包转发设备,一种实现方式可 以包括: 获取上述数据包的链接识别信息以及上述数据包的序号; 通过上述链 接识别信息确定上述数据包所属链接;判断上述数据包的序号是否大于上述上 述数据包所属链接已经发送的数据包中序号最大的序号的下一个序号, 若是, 则确定上述数据包没有按序到达上述数据包转发设备。 102: The foregoing packet forwarding device determines whether the data packet arrives in the foregoing packet forwarding in order. And the device, if not, storing the data packet in a cache queue corresponding to the link to which the data packet belongs; determining whether the data packet arrives at the data packet forwarding device in sequence, and an implementation manner may include: acquiring the data packet Link identification information and the serial number of the data packet; determining, by the link identification information, the link to which the data packet belongs; determining whether the serial number of the data packet is greater than a next serial number of the serial number of the largest serial number in the data packet to which the data packet belongs If yes, it is determined that the foregoing data packet does not arrive at the foregoing packet forwarding device in order.
上述链接识别信息可以是: 上述数据包的源互联网协议 IP地址、 目的 IP 地址、 源端口号以及目的端口号。 以 TCP数据包为例, 这些信息可以通过读 取 TCP头中的相应字段来获取。 需要说明的是, 获取链接识别信息的目的在 于能够确定数据包所属的链接,具体可选的信息的具体内容并不仅限于以上四 个举例, 因此以上举例不应理解为对本发明实施例的限定。  The above link identification information may be: a source internet protocol IP address, a destination IP address, a source port number, and a destination port number of the above data packet. Taking TCP packets as an example, this information can be obtained by reading the corresponding fields in the TCP header. It should be noted that the purpose of obtaining the link identification information is to determine the link to which the data packet belongs. The specific content of the specific optional information is not limited to the above four examples, and thus the above examples are not to be construed as limiting the embodiments of the present invention.
可选地, 关于緩存队列, 可以预先建立, 也可以在确定需要对数据包进行 重新排序并发送时才建立该緩存队列,还可以在确定上述数据包没有按序到达 上述数据包转发设备之后, 建立与上述数据包所属链路对应的緩存队列。采用 在确定上述数据包没有按序到达上述数据包转发设备之后建立緩存队列的方 式, 可以防止不必要的緩存队列占用存储资源。  Optionally, the cache queue may be pre-established, or may be established when it is determined that the data packet needs to be reordered and sent, and may also be determined after the data packet is not sequentially arrived at the data packet forwarding device. A cache queue corresponding to the link to which the above data packet belongs is established. By establishing a cache queue after determining that the data packet does not arrive at the packet forwarding device in sequence, unnecessary cache queues can be prevented from occupying storage resources.
进一步地, 在将上述数据包存入其所属链接的緩存队列之前还可以包括: 若上述数据包的序号小于或等于上述数据包所属链接已经发送的数据包中序 号最大的序号的下一个序号,则确定上述数据包所属链路对应的緩存队列是否 为空, 若为空, 则向接收端发送上述数据包, 若不为空, 则将上述数据包存入 与上述数据包所属链接对应的緩存队列。本实施例是基于在确定上述数据包没 有按序到达上述数据包转发设备之后, 建立緩存队列的基础上提出的,对于比 上述数据包所属链接已经发送的数据包中序号最大的序号的下一个序号小的 数据包, 可能并不是因时延导致到达的时间滞后, 可以将这类数据包直接发送 给接收端。  Further, before the data packet is stored in the cache queue of the link to which the link belongs, the method may further include: if the sequence number of the data packet is less than or equal to the next sequence number of the sequence number with the largest serial number in the data packet that the link to which the data packet belongs Determining whether the cache queue corresponding to the link to which the data packet belongs is empty. If it is empty, sending the data packet to the receiving end. If not, storing the data packet in a cache corresponding to the link to which the data packet belongs. queue. The embodiment is based on the establishment of a cache queue after determining that the data packet does not arrive in sequence with the data packet forwarding device, and the next sequence number with the largest serial number in the data packet that has been sent than the link to which the data packet belongs is Packets with a small serial number may not be delayed by the time delay caused by the delay. These packets can be sent directly to the receiver.
优选地,上述 102中将上述数据包存入与上述数据包所属链接对应的緩存 队列包括: 将上述数据包存入与上述数据包所属链接对应的緩存队列,且緩存 队列按照序号从小到大排序。在本步骤中緩存队列中存储的数据包的序号按照 从小到大排序可以与协议原有的数据包的发送方案兼容。在本步骤进行排序作 为一个优选方案, 不应理解为对本发明实施例的限定。 103: 上述数据包转发设备按照数据包的序号从小到大依次向接收端发送 上述緩存队列中的数据包。 Preferably, the storing, by the foregoing 102, the data packet in the cache queue corresponding to the link to which the data packet belongs includes: storing the data packet in a cache queue corresponding to the link to which the data packet belongs, and the cache queue is sorted according to the serial number from small to large. . In this step, the sequence numbers of the data packets stored in the buffer queue are sorted from small to large and can be compatible with the transmission scheme of the original data packet of the protocol. The ordering in this step is a preferred embodiment and should not be construed as limiting the embodiments of the present invention. 103: The foregoing packet forwarding device sends the data packet in the cache queue to the receiving end in sequence according to the sequence number of the data packet.
可选地,上述 103中按照数据包的序号从小到大依次向接收端发送上述緩 存队列中的数据包包括:在定时器计时达到预定值时或者上述緩存队列中的数 据包达到预定个数时,按照上述緩存队列中的数据包的序号从小到大依次向接 收端发送上述緩存队列中的数据包。 需要说明的是, 以上关于定时器以及数据 包达到预定个数的的举例, 均属于触发转发设备发送数据包的条件, 这个触发 条件可以有很多,并不仅限于以上两种,本发明实施例对此不予限定。具体的, 上述预定值可以设置为 2毫秒( ms )。  Optionally, the sending, in the foregoing 103, the data packet in the buffer queue to the receiving end according to the sequence number of the data packet is: when the timer timing reaches a predetermined value or when the data packet in the buffer queue reaches a predetermined number And sending the data packet in the cache queue to the receiving end according to the sequence number of the data packet in the cache queue. It should be noted that the foregoing examples of the timers and the data packets reaching a predetermined number are all the conditions for the triggering forwarding device to send the data packets. The triggering conditions may be many, and are not limited to the foregoing two types. This is not limited. Specifically, the above predetermined value can be set to 2 milliseconds (ms).
采用本发明实施例方案,通过在数据包发送至接收端之前,对数据包的顺 序进行调整,使数据包的发送顺序更接近于数据包原有的顺序, 可以降低数据 包的乱序率,减少接收端重复发送 ACK请求以及重传数据包占用带宽的问题, 从而提升网络吞吐率。  According to the solution of the embodiment of the present invention, before the data packet is sent to the receiving end, the order of the data packet is adjusted, so that the sending order of the data packet is closer to the original order of the data packet, and the out-of-order rate of the data packet can be reduced. Reduce the problem that the receiving end repeatedly sends ACK requests and retransmits the bandwidth occupied by the data packets, thereby improving the network throughput.
另外, 按照 TCP的协议规定, 收到同一个 TCP数据包的三次 ACK请求 则会被 TCP数据包的发送端确认为网络出现了可靠性异常的状况, 在发送端 确认可靠性异常以后会主动将数据包的发送速率降低一半, 因此对于 TCP数 据包传输而言, TCP数据包乱序会导致发送端主动降低发送速率,进而降低网 络吞吐率。 而采用本发明实施例, 可以降低数据包的乱序率, 从而减少发送端 因收到 ACK请求主动降低发送速率的状况, 因此可以提升网络吞吐率。  In addition, according to the TCP protocol, when the three ACK requests of the same TCP packet are received, the sender of the TCP packet confirms that the network has a reliability abnormality, and will actively take the initiative after confirming the reliability abnormality at the transmitting end. The packet transmission rate is reduced by half. Therefore, for TCP packet transmission, the out-of-order TCP packet causes the sender to actively reduce the transmission rate, thereby reducing the network throughput. With the embodiment of the present invention, the out-of-order rate of the data packet can be reduced, thereby reducing the situation that the transmitting end actively reduces the transmission rate by receiving the ACK request, thereby improving the network throughput rate.
以转发 TCP数据包为例, 以上实施例的执行主体可以是 TCP数据包的发 送端到接收端之间的任意转发设备, 比如基站。如图 2A所示,在下行方向上, 上述 TCP数据包的发送端在核心网, 核心网发送 TCP数据包到达基站, 基站 将 TCP数据包发送给接收端。在图 2A中所示的接收端为手机,转发设备为基 站, 可以理解的是接收端可以有 4艮多种类, 可能是终端设备也可能是其他网络 侧设备, 转发设备也可以有很多种类, 本发明实施例对此不予限定。  For example, the forwarding entity of the above embodiment may be any forwarding device, such as a base station, between the sending end and the receiving end of the TCP data packet. As shown in FIG. 2A, in the downlink direction, the transmitting end of the TCP packet is in the core network, and the core network sends a TCP packet to the base station, and the base station sends the TCP packet to the receiving end. The receiving end shown in FIG. 2A is a mobile phone, and the forwarding device is a base station. It can be understood that the receiving end can have more than four types, which may be terminal devices or other network side devices, and the forwarding devices may also have many types. This embodiment of the present invention does not limit this.
比如, 可以在长期演进(Long Term Evolution, LTE ) 系统的网元如演进 型基站 (eNodeB ) 中添加一个 TCP处理模块, 以执行本发明实施例提供的方 法, 该 TCP处理模块可以对下行的数据包进行处理。 该 TCP处理模块检测每 个下行的 TCP数据包是否按序到达 eNodeB, 如果检测到前后两个 TCP数据 包的序号不连续, 则可以确定 TCP数据包没有按序到达 eNodeB, 那么可以在 eNodeB上緩存乱序的数据包, 并緩存随后一段时间内到达 eNodeB的数据包 并对其进行排序。 For example, a TCP processing module may be added to a network element of a Long Term Evolution (LTE) system, such as an evolved base station (eNodeB), to perform the method provided by the embodiment of the present invention. The TCP processing module may perform downlink data. The package is processed. The TCP processing module detects whether each downlink TCP packet arrives at the eNodeB in order. If it is detected that the sequence numbers of the two TCP packets are not consecutive, it can be determined that the TCP packet does not arrive at the eNodeB in order, then the The eNodeB caches out-of-order packets and buffers and sorts the packets arriving at the eNodeB for a period of time.
举例说明: 在图 2B中上方为发生乱序时数据包到达 eNodeB的情况, 下 方是经过本发明实施例方法处理后数据包到达接收端的情况,此处的接收端是 TCP数据包的目的端, 在图 2A中举例为手机。 在图 2B中, time为 TCP数据 包的到达时间, tcp_seq为 TCP数据包的序号, info为其它信息 (图 2中显示 为文件传送协议数据的长度)。从图 2上部可以看到序号为 3284316717的数据 包到达 eNodeB时本应该出现在序号为 3284325257和 3284318177的数据包之 间, 由于乱序而出现在 3284321097后面, 经过本方案的处理后, 该数据包回 到了正确的位置。 因此, 采用本发明实施例方法可以降低乱序率。  For example, in FIG. 2B, when the packet arrives at the eNodeB when the out-of-order occurs, the following is the case where the data packet arrives at the receiving end after being processed by the method of the embodiment of the present invention, where the receiving end is the destination end of the TCP packet. An example is a mobile phone in FIG. 2A. In Fig. 2B, time is the arrival time of the TCP packet, tcp_seq is the serial number of the TCP packet, and info is other information (shown in Figure 2 as the length of the file transfer protocol data). It can be seen from the upper part of Fig. 2 that the data packet with the serial number 3284316717 should appear between the data packets with the serial numbers 3284325257 and 3284318177 when it arrives at the eNodeB. It appears behind the 3284132097 due to the out-of-order. After the processing of this scheme, the data packet Going back to the right place. Therefore, the method of the embodiment of the present invention can reduce the out-of-order rate.
发明人对本发明是实施例的效果进行了实测,测试场景如图 2A所示: LTE 网络, 测试对象为核心网传输的 TCP数据包达到基站, 基站作为数据包转发 设备执行本发明实施例方案, 并将 TCP数据包转发给手机。 该场景下本发明 实施例方案能够提高 LTE 网络的平均吞吐率。 具体的增益效果与有线传输侧 (核心网到基站) 的乱序率、 乱序范围、 乱序时延以及传输往返时延 ( Round-Trip Time, RTT )等有关。 乱序率越大、 RTT越大则增益越明显。 需 要说明的是:要求数据包无损按序到达接收端的通信协议封装的数据包可以应 用于很多种类的网络, LTE网络的举例不应理解为对本发明实施例的限定。发 明人对以上实施例的效果进行实测, 测试的场景为: 手机所在小区带宽 20MHz, LTE网络的无乱序峰值速率 148Mbps, 制造乱序率为 1/10000、 乱序 平均分布、 乱序范围为 2~5的数据流, 手机从核心网采用文件传输协议(File Transfer Protocol, FTP )单线程下载 5次 1G大小的文件。 测试结果为: 统计得 到不采用本发明实施例方法的 LTE网络平均吞吐率为 40.367Mbps, 采用本发 明实施例方法后 LTE网络平均吞吐率最小 126.912Mbps,最大为 137.568Mbps, 相比于不采用本发明实施例方法增益为 214.3%~241.3%。因此实验证明采用本 发明实施例方案可以有效提升 LTE网络吞吐率。  The inventor has measured the effect of the embodiment of the present invention, and the test scenario is as shown in FIG. 2A: In the LTE network, the test object is a TCP packet transmitted by the core network to reach the base station, and the base station performs the solution of the embodiment of the present invention as a packet forwarding device. Forward the TCP packet to the phone. In this scenario, the solution of the embodiment of the present invention can improve the average throughput rate of the LTE network. The specific gain effect is related to the out-of-order rate, out-of-order range, out-of-order delay, and Round-Trip Time (RTT) of the wired transmission side (core network to base station). The greater the out-of-order rate, the larger the RTT is, the more obvious the gain is. It should be noted that the data packet encapsulated by the communication protocol that requires the data packet to arrive at the receiving end without loss can be applied to many types of networks. The example of the LTE network should not be construed as limiting the embodiment of the present invention. The inventor measured the effect of the above embodiment, and the test scenario is: the bandwidth of the cell where the mobile phone is located is 20 MHz, the peak rate of the LTE network is 148 Mbps, the manufacturing disorder rate is 1/10000, the out-of-order average distribution, and the out-of-order range are 2~5 data stream, the mobile phone uses the File Transfer Protocol (FTP) to download 5 times 1G files from the core network. The test results are as follows: The average throughput of the LTE network that does not use the method of the embodiment of the present invention is 40.367 Mbps, and the average throughput of the LTE network is 126.912 Mbps and the maximum is 137.568 Mbps. The method gain of the embodiment of the invention is 214.3% to 241.3%. Therefore, the experiment proves that the scheme of the embodiment of the present invention can effectively improve the LTE network throughput rate.
TCP数据包的转发为例进行说明, 具体如图 3所示, 包括如下步骤: The forwarding of the TCP packet is described as an example. Specifically, as shown in FIG. 3, the following steps are included:
301: 数据包转发设备接收数据包, 并检查其是否为 TCP数据包, 若否, 进入 302, 若是 TCP数据包, 则进入 303; 302: 直接透传上述 TCP数据包, 然后返回 301; 301: The packet forwarding device receives the data packet, and checks whether it is a TCP data packet. If not, enter 302, if it is a TCP data packet, enter 303; 302: directly transparently transmit the foregoing TCP packet, and then return to 301;
303: 获取 TCP数据包的链接识别信息并依此确定其所属的链接 (即 TCP 链接 ), 检查其所属的 TCP链接是否已存在排序信息;  303: Obtain link identification information of the TCP packet and determine a link to which the TCP packet belongs (ie, a TCP link), and check whether the TCP link to which it belongs has sort information;
上述排序信息包括的信息有: 源、 目的 IP地址, 源、 目的端口号, 还可 包括: 定时器计时的值、 当前已发送的最大序号 CurrSeq。 如果存在排序信息, 则进入 305, 如果不存在排序信息, 则进入 304;  The above sorting information includes: source, destination IP address, source, destination port number, and may also include: a timer timing value, and a currently transmitted maximum sequence number CurrSeq. If there is sorting information, go to 305, if there is no sorting information, go to 304;
304: 为上述数据包建立排序信息, 然后进入 305;  304: Establish sorting information for the above data packet, and then enter 305;
305: 将 TCP数据包进行排序预处理;  305: Perform preprocessing of TCP packets;
预处理可以包括: 将 CurrSeq初始化为收到的第一个 TCP数据包的序号; 需要说明的是, 如果 CurrSeq本身存在初值(即曾经被初始化过)则不用执行 对 CurrSeq的初始化, 直接进入 306;  The pre-processing may include: initializing CurrSeq to the sequence number of the first TCP packet received; it should be noted that if CurrSeq itself has an initial value (ie, has been initialized), then the initialization of CurrSeq is not performed, and directly enters 306. ;
需要说明的是: 上述 301~305采用的是接收到第一个 TCP数据包就直接 建立了排序信息; 若排序信息在确定 TCP数据包出现了乱序后才建立, 那么 本步骤中的 CurrSeq初始化为建立排序信息当前的 TCP数据包的序号。 可以 理解的是, 如果 TCP数据包没有出现乱序的状况, TCP数据包会被直接发送。  It should be noted that: 301~305 above adopts that the first TCP packet is received, and the sorting information is directly established; if the sorting information is established after determining that the TCP packet is out of order, the CurrSeq initialization in this step is performed. The serial number of the current TCP packet to establish the sorting information. It can be understood that if the TCP packet does not appear out of order, the TCP packet will be sent directly.
306:计算按序发送的下一个 TCP数据包的序号 NxtSn;解析得到上述 TCP 数据包的序号, 将解析得到的序号与 NxtSn做比较: 若上述 TCP数据包的序 号小于等于 NxtSn,进入 307;若上述 TCP数据包的序号大于 NxtSn,进入 308;  306: Calculate the sequence number NxtSn of the next TCP packet sent in sequence; parse the sequence number of the TCP packet, and compare the sequence number obtained by the analysis with NxtSn: If the sequence number of the TCP packet is less than or equal to NxtSn, enter 307; The sequence number of the above TCP packet is greater than NxtSn, and enters 308;
307: 检查与上述 TCP数据包所属链接对应的緩存队列是否为空, 若緩存 队列为空,进入 302 ,并将 CurrSeq更新为当前已转发的 TCP数据的最大序号, 计算并更新 NxtSn为新的 CurrSeq的下一个 TCP数据包的序号; 若緩存队列 不为空, 进入 308;  307: Check whether the cache queue corresponding to the link to which the TCP packet belongs is empty. If the cache queue is empty, enter 302, and update CurrSeq to the maximum sequence number of the currently forwarded TCP data, and calculate and update NxtSn as a new CurrSeq. The sequence number of the next TCP packet; if the cache queue is not empty, enter 308;
在上述 307中检查緩存队列为空的情况有两种:一种是不存在与上述 TCP 数据包所属链接对应的緩存队列, 另一种是存在与上述 TCP数据包所属链接 对应的緩存队列, 并且该緩存队列中没有存数据包。 上述 "不存在与上述 TCP 数据包所属链接对应的緩存队列"的原因如下: 若在步骤 306之前采用在确定 TCP数据包出现了乱序后才建立的方案,那么在没有出现乱序的情况下,上述 TCP数据包所属链接对应的緩存队列是不存在的;也即: 上述 307中在检查緩 存队列是否为空时, 并不存在与上述 TCP数据包所属链接对应的緩存队列。  There are two cases in which the check cache queue is empty in the above 307: one is that there is no cache queue corresponding to the link to which the above TCP packet belongs, and the other is that there is a cache queue corresponding to the link to which the above TCP packet belongs, and There are no packets in this cache queue. The reason for the above "there is no cache queue corresponding to the link to which the above TCP packet belongs" is as follows: If the scheme established after determining that the TCP packet is out of order is used before step 306, then in the case where no disorder occurs The cache queue corresponding to the link to which the TCP packet belongs does not exist; that is, when the check cache queue is empty in the above 307, there is no cache queue corresponding to the link to which the TCP packet belongs.
308: 检查定时器是否启动, 若定时器未启动, 则启动定时器, 并将上述 TCP数据包存入緩存队列; 308: Check if the timer is started, if the timer is not started, start the timer, and the above TCP packets are stored in the cache queue;
本步骤中, 若定时器已启动, 则直接将该 TCP数据包存入緩存队列; 需 要说明的是, 在本步骤中优选地进行按照 TCP数据包的序号从小到大依次排 序緩存队列中的 TCP数据包。  In this step, if the timer is started, the TCP packet is directly stored in the buffer queue. It should be noted that, in this step, the TCP in the cache queue is preferably sorted according to the sequence number of the TCP packet from small to large. data pack.
309: 定时器超时后, 无论是否收到导致乱序的数据包, 都将緩存队列中 的 TCP数据包全部按序 (即: 按 TCP数据包的序号从小到大)依次发送给接 收端, 并将 CurrSeq更新为当前已转发的 TCP数据的最大序号, 计算并更新 NxtSn为新的 CurrSeq的下一个 TCP数据包的序号, 然后进入 301。 在本步骤 中, 将緩存队列中的 TCP数据包发送给接收端后, 可以将已经发送的 TCP数 据包从緩存队列中删除。  309: After the timer expires, all the TCP packets in the buffer queue are sequentially sent (that is, according to the serial number of the TCP packet from small to large) to the receiving end, regardless of whether the packet causing the out-of-order is received. The CurrSeq is updated to the maximum sequence number of the currently forwarded TCP data, and the sequence number of the next TCP packet whose NxtSn is the new CurrSeq is calculated and updated, and then proceeds to 301. In this step, after the TCP packet in the buffer queue is sent to the receiving end, the already sent TCP packet can be deleted from the buffer queue.
需要说明的是: 设置定时器时长的原则: 定时器时长越长, 能纠正的乱序 比例越高, 排序效果越好, 但会增加数据的 RTT时延, 对于丟包场景, 可能 会降低峰值速率, 还可能增加超文本传送协议(hypertext transport protocol, http )业务的时延; 定时器时长越短, 能纠正的乱序比例越低, 排序效果越差, 但对数据的 RTT时延影响小, 在丟包场景对峰值速率影响小并且对 http业务 时延影响小。定时器的默认时间根据场景设置不同的定时器取值来应对不同的 乱序时延。 具体的时间本发明实施例不予限定。 在本步骤中, 定时器可以设置 为 2ms。  It should be noted that: The principle of setting the timer duration: The longer the timer duration, the higher the out-of-order ratio that can be corrected, the better the sorting effect, but the RTT delay of the data will increase, and the peak value may be reduced for the packet loss scenario. The rate may also increase the delay of the hypertext transport protocol (http) service; the shorter the timer duration, the lower the out-of-order ratio that can be corrected, the worse the sorting effect, but the smaller the impact on the RTT delay of the data. The packet loss scenario has a small impact on the peak rate and has little impact on the http service delay. The default time of the timer sets different timer values according to the scenario to cope with different out-of-order delays. The specific time is not limited in the embodiment of the present invention. In this step, the timer can be set to 2ms.
另外需要说明的是,在上面图 3步骤的任意一个步骤执行过程中, 若确定 了链接的数据业务完毕, 那么该流程将结束。 另外, 可以理解的是在緩存队列 中的 TCP数据包全部发送后緩存队列可以清空。  In addition, it should be noted that, in the execution of any step of the above step 3, if it is determined that the linked data service is completed, the process will end. In addition, it can be understood that the cache queue can be emptied after all TCP packets in the cache queue are sent.
本发明实施例给出了以上图 3对应实施例执行的一个举例, 假设如下: TCP数据包最大长度: 100;  An embodiment of the present invention provides an example of the implementation of the corresponding embodiment in FIG. 3, and the following is assumed: the maximum length of the TCP packet: 100;
TCP数据包序号为: 3012、 3112、 3212、 3312、 3362、 3462、 3562、 3662、 3762、 3862、 3962;  The TCP packet numbers are: 3012, 3112, 3212, 3312, 3362, 3462, 3562, 3662, 3762, 3862, 3962;
数据包转发设备接收到 TCP数据包的顺序为: 3012、 3112、 3212、 3312、 3362、 3562、 3662、 3762、 3862、 3462、 3962;  The order in which the packet forwarding device receives the TCP data packet is: 3012, 3112, 3212, 3312, 3362, 3562, 3662, 3762, 3862, 3462, 3962;
观察可以发现: 导致乱序的数据包为序号为 3462的数据包。  Observations can be found: The packet that caused the out-of-order is a packet with the sequence number 3462.
那么执行图 3的方案, 具体为:  Then implement the scheme of Figure 3, specifically:
数据包 3012在步骤 301到达数据包转发设备并确定为 TCP数据包, 然后 在步骤 304建立排序信息, CurrSeq在步骤 305被初始化为 3012。 在步骤 306 会计算得到 NxtSn=当前 CurrSeq + 100。 由于当前緩存队列为空并且收到的是 3112, 那么在执行步骤 306中的比较时会确定 3112等于 NxtSn, 因此可以确 定不乱序, 该 TCP数据包会被直接发送给接收端, 更新 CurrSeq和 NxtSn。 同 理,对于数据包 3212, CurrSeq更新后为为 3312,并计算 NxtSn得到的是 3312。 The packet 3012 arrives at the packet forwarding device in step 301 and determines it as a TCP packet, and then The ordering information is established in step 304, and CurrSeq is initialized to 3012 in step 305. At step 306, NxtSn = current CurrSeq + 100 is calculated. Since the current buffer queue is empty and the received 3112, then the comparison in step 306 is performed to determine that 3112 is equal to NxtSn, so it can be determined that the TCP packet is sent directly to the receiving end, updating the CurrSeq and NxtSn. Similarly, for packet 3212, CurrSeq is updated to 3312, and NxtSn is calculated to be 3312.
由于有时会出现服务器不按最大包长来发包的情况, 例如 3312这个包, 下一个包序号是 3362,由于 3312这个数据包长度只有 50字节,收到 3362时, 此时緩存队列仍然为空, 此时 CurrSeq<3362<3412, 不会被认为是乱序, 3362 依然会被转发, 并更新 CurrSeq为 3362, 计算 NxtSn得到 3462。  Since sometimes the server does not send packets according to the maximum packet length, for example, the packet of 3312, the next packet sequence number is 3362. Since the packet length of 3312 is only 50 bytes, when the packet is received, the buffer queue is still empty. At this time, CurrSeq<3362<3412, will not be considered as out of order, 3362 will still be forwarded, and update CurrSeq to 3362, and calculate NxtSn to get 3462.
在收到 3562数据包时, 由于其大于 NxtSn, 会被认为乱序, 该数据包将 会被存入緩存队列,并且启动排序定时器。对于后面序号为: 3662、 3762、 3862, 3462 的数据包, 如果在定时器超时之前到达, 将会被存入緩存队列并在緩存 队列中被重新排序, 定时器超时后按序发出, 并更新 CurrSeq为 3862。假如收 到序号为 3762的数据包后, 未收到序号为 3462的数据包定时器就超时了, 则 将緩存队列中的 3562、 3662、 3762按序发出, 并更新 CurrSeq为 3762 (当前 发送的数据包的最大序号); 后续收到 3862, 判断不乱序, 直接转发, 更新 CurrSeq; 再收到 3462, 小于当前 CurrSeq, 直接转发。 收到序号为 3962的数 据包时, 会确定其等于 NxtSn, 直接转发, 并更新 CurrSeq和 NxtSn。  When a 3562 packet is received, it is considered out of order because it is greater than NxtSn, the packet will be stored in the buffer queue, and the sort timer will be started. For packets with the following sequence numbers: 3662, 3762, 3862, 3462, if they arrive before the timer expires, they will be stored in the cache queue and reordered in the cache queue. The timer will be issued after the timer expires and updated. CurrSeq is 3862. If the packet timer with the sequence number 3462 is received after receiving the data packet with the sequence number 3762, the 3624, 3662, and 3762 in the buffer queue are issued in order, and the CurrSeq is updated to 3762 (currently sent. The maximum sequence number of the data packet); subsequent reception of 3862, judging not to be out of order, direct forwarding, updating CurrSeq; receiving 3462, less than the current CurrSeq, direct forwarding. When a packet with sequence number 3962 is received, it is determined to be equal to NxtSn, forwarded directly, and CurrSeq and NxtSn are updated.
如果排序信息在确定 TCP数据包出现了乱序后才建立, 那么前面的序号 为 3012、 3112、 3212、 3312、 3362这些数据包没有出现乱序, 因此会被直接 转发, 在序号为 3362的数据包发出后, CurrSeq为 3362, NxtSn为 3462。 在 序号为 3562的数据包到达的时候由于比 NxtSn大, 所以确定乱序了, 此时会 建立排序信息;序号为 3562、 3662、 3762、 3862的数据包到达时,序号比 NxtSn 大, 这些数据包会被存入緩存队列; 序号为 3462的数据包的序号等于 NxtSn, 由于此时緩存队列不为空, 序号为 3462的数据包仍然会被緩存, 并被排序。 如果收到 3462后收到 3962之前,定时器超时那么緩存队列中的数据包将会全 部被按序转发, 并更新 CurrSeq为 3862, NxtSn计算得到的值是 3962。  If the sorting information is established after determining that the TCP packets are out of order, then the preceding serial numbers are 3012, 3112, 3212, 3312, 3362. These packets are not out of order, so they are directly forwarded, and the data with the serial number is 3362. After the packet is sent, the CurrSeq is 3362 and the NxtSn is 3462. When the data packet with the sequence number 3562 arrives, it is larger than NxtSn, so the out-of-order is determined. At this time, the sorting information is established; when the data packets with the sequence numbers 3562, 3662, 3762, and 3862 arrive, the sequence number is larger than NxtSn, and the data is larger. The packet will be stored in the cache queue; the sequence number of the packet with the sequence number 3462 is equal to NxtSn. Since the buffer queue is not empty at this time, the packet with the sequence number 3462 will still be cached and sorted. If the timer expires before receiving 3462, the packets in the buffer queue will be all forwarded in order, and the CurrSeq will be updated to 3862, and the value calculated by NxtSn is 3962.
本发明实施例还提供了一种数据包转发设备, 如图 4所示, 包括: 接收单元 401 , 用于接收数据包, 上述数据包为要求数据包无损按序到达 接收端的通信协议封装的数据包; 需要说明的是上述数据包可以为 LTE网络中的 TCP数据包,也可以是 TCP 以外的其他要求数据包按序到达接收端的通信协议封装的数据包,本发明实施 例对此不予限定。 The embodiment of the present invention further provides a data packet forwarding device. As shown in FIG. 4, the method includes: a receiving unit 401, configured to receive a data packet, where the data packet is a data packet encapsulated in a communication protocol that requires the data packet to arrive at the receiving end without loss. package; It should be noted that the foregoing data packet may be a TCP data packet in the LTE network, or may be a data packet encapsulated by the communication protocol that requires the data packet to arrive at the receiving end in sequence, which is not limited in this embodiment of the present invention.
判断单元 402, 用于判断上述数据包是否按序到达上述数据包转发设备; 存储控制单元 403 , 用于若上述判断单元 402判断结果为否, 则将上述数 据包存入与上述数据包所属链接对应的緩存队列;  The determining unit 402 is configured to determine whether the data packet arrives at the data packet forwarding device in sequence; and the storage control unit 403 is configured to: if the determining unit 402 determines that the result is negative, store the data packet in the link with the data packet Corresponding cache queue;
发送单元 404, 用于按照数据包的序号从小到大依次向接收端发送上述緩 存队列中的数据包。  The sending unit 404 is configured to send the data packet in the cache queue to the receiving end in sequence according to the sequence number of the data packet.
可选地, 上述发送单元 404, 用于按照数据包的序号从小到大依次向接收 端发送上述緩存队列中的数据包, 包括: 用于在定时器计时达到预定值时或者 上述緩存队列中的数据包达到预定个数时,按照上述緩存队列中的数据包的序 号从小到大依次向接收端发送上述緩存队列中的数据包。 需要说明的是, 以上 关于定时器以及数据包达到预定个数的的举例,均属于触发转发设备发送数据 包的条件, 这个触发条件可以有很多, 并不仅限于以上两种, 本发明实施例对 此不予限定。 具体的, 上述预定值可以设置为 2毫秒(ms )。  Optionally, the sending unit 404 is configured to send the data packet in the buffer queue to the receiving end according to the sequence number of the data packet, and the method includes: configured to: when the timer timing reaches a predetermined value or in the cache queue When the data packet reaches a predetermined number, the data packets in the cache queue are sent to the receiving end in sequence according to the sequence number of the data packet in the cache queue. It should be noted that, the foregoing examples of the timer and the data packet reaching a predetermined number are all the conditions for the triggering forwarding device to send the data packet. The triggering condition may be many, and is not limited to the foregoing two types. This is not limited. Specifically, the above predetermined value can be set to 2 milliseconds (ms).
采用本发明实施例方案,通过在数据包发送至接收端之前,对数据包的顺 序进行调整,使数据包的发送顺序更接近于数据包原有的顺序, 可以降低数据 包的乱序率,减少接收端重复发送 ACK请求以及重传数据包占用带宽的问题, 从而提升网络吞吐率。  According to the solution of the embodiment of the present invention, before the data packet is sent to the receiving end, the order of the data packet is adjusted, so that the sending order of the data packet is closer to the original order of the data packet, and the out-of-order rate of the data packet can be reduced. Reduce the problem that the receiving end repeatedly sends ACK requests and retransmits the bandwidth occupied by the data packets, thereby improving the network throughput.
另外, 按照 TCP的协议规定, 收到同一个 TCP数据包的三次 ACK请求 则会被 TCP数据包的发送端确认为网络出现了可靠性异常的状况, 在发送端 确认可靠性异常以后会主动将数据包的发送速率降低一半, 因此对于 TCP数 据包传输而言, TCP数据包乱序会导致发送端主动降低发送速率,进而降低网 络吞吐率。 而采用本发明实施例, 可以降低数据包的乱序率, 从而减少发送端 因收到 ACK请求主动降低发送速率的状况, 因此可以提升网络吞吐率。  In addition, according to the TCP protocol, when the three ACK requests of the same TCP packet are received, the sender of the TCP packet confirms that the network has a reliability abnormality, and will actively take the initiative after confirming the reliability abnormality at the transmitting end. The packet transmission rate is reduced by half. Therefore, for TCP packet transmission, the out-of-order TCP packet causes the sender to actively reduce the transmission rate, thereby reducing the network throughput. With the embodiment of the present invention, the out-of-order rate of the data packet can be reduced, thereby reducing the situation that the transmitting end actively reduces the transmission rate by receiving the ACK request, thereby improving the network throughput rate.
可选的, 如图 5所示, 上述判断单元 402, 包括: 获取子单元 501、 链接 确定子单元 502以及判断子单元 503;  Optionally, as shown in FIG. 5, the determining unit 402 includes: an obtaining subunit 501, a link determining subunit 502, and a determining subunit 503;
上述获取子单元 501 , 用于获取上述数据包的链接识别信息以及上述数据 包的序号;  The obtaining subunit 501 is configured to obtain link identification information of the data packet and a sequence number of the data packet.
上述链接确定子单元 502, 用于通过上述链接识别信息确定上述数据包所 属链接; The link determining subunit 502 is configured to determine the data packet by using the link identification information Dependent link
上述判断子单元 503, 用于判断上述数据包的序号是否大于上述上述数据 包所属链接已经发送的数据包中序号最大的序号的下一个序号, 若是, 则确定 上述数据包没有按序到达上述数据包转发设备。  The determining subunit 503 is configured to determine whether the serial number of the data packet is greater than a next serial number of the serial number of the data packet that has been sent by the link to which the data packet belongs, and if yes, determining that the data packet does not arrive in the data sequentially Packet forwarding device.
上述链接识别信息可以是: 上述数据包的源互联网协议 IP地址、 目的 IP 地址、 源端口号以及目的端口号。 以 TCP数据包为例, 这些信息可以通过读 取 TCP头中的相应字段来获取。 需要说明的是, 获取链接识别信息的目的在 于能够确定数据包所属的链接,具体可选的信息的具体内容并不仅限于以上四 个举例, 因此以上举例不应理解为对本发明实施例的限定。  The above link identification information may be: a source internet protocol IP address, a destination IP address, a source port number, and a destination port number of the above data packet. Taking TCP packets as an example, this information can be obtained by reading the corresponding fields in the TCP header. It should be noted that the purpose of obtaining the link identification information is to determine the link to which the data packet belongs. The specific content of the specific optional information is not limited to the above four examples, and thus the above examples are not to be construed as limiting the embodiments of the present invention.
进一步可选的, 如图 6所示上述设备, 还包括:  Further, as shown in FIG. 6, the foregoing apparatus further includes:
队列控制单元 601 , 用于在上述判断子单元 503确定上述数据包没有按序 到达上述数据包转发设备之后, 建立与上述数据包所属链路对应的緩存队列。  The queue control unit 601 is configured to establish, after the determining subunit 503, that the data packet does not arrive in sequence with the data packet forwarding device, to establish a cache queue corresponding to the link to which the data packet belongs.
采用在确定上述数据包没有按序到达上述数据包转发设备之后,建立緩存 队列可以防止不必要的緩存队列占用存储资源。  After determining that the above data packet does not arrive in sequence with the above packet forwarding device, establishing a cache queue can prevent unnecessary cache queues from occupying storage resources.
进一步地, 如图 7所示上述设备, 还包括:  Further, as shown in FIG. 7, the foregoing apparatus further includes:
緩存信息获取单元 701 , 用于若上述数据包的序号小于或等于上述数据包 所属链接已经发送的数据包中序号最大的序号的下一个序号,则确定上述数据 包所属链路对应的緩存队列是否为空;  The cache information obtaining unit 701 is configured to determine, if the sequence number of the data packet is less than or equal to the next sequence number of the sequence number with the largest sequence number in the data packet to which the link to which the data packet belongs, determine whether the cache queue corresponding to the link to which the data packet belongs Is empty;
上述发送单元 404, 还用于若上述緩存信息获取单元 701确定上述数据包 所属链路对应的緩存队列为空, 则向接收端发送上述数据包;  The sending unit 404 is further configured to: if the cache information acquiring unit 701 determines that the cache queue corresponding to the link to which the data packet belongs is empty, send the data packet to the receiving end;
上述存储控制单元 403 , 还用于若緩存信息获取单元 701确定上述数据包 所属链路对应的緩存队列不为空,则将上述数据包存入与上述数据包所属链接 对应的緩存队列。  The storage control unit 403 is further configured to: if the cache information obtaining unit 701 determines that the cache queue corresponding to the link to which the data packet belongs is not empty, store the data packet in a cache queue corresponding to the link to which the data packet belongs.
本实施例是基于在确定上述数据包没有按序到达上述数据包转发设备之 后, 建立緩存队列的基础上提出的,对于比上述数据包所属链接已经发送的数 据包中序号最大的序号的下一个序号小的数据包,可能并不是因时延导致到达 的时间滞后, 可以将这类数据包直接发送给接收端。  The embodiment is based on the establishment of a cache queue after determining that the data packet does not arrive in sequence with the data packet forwarding device, and the next sequence number with the largest serial number in the data packet that has been sent than the link to which the data packet belongs is Packets with a small serial number may not be delayed by the time delay caused by the delay, and such packets may be sent directly to the receiving end.
更具体地, 上述发送单元 404, 具体用于在定时器计时达到预定值时或者 上述緩存队列中的数据包达到预定个数时,按照上述緩存队列中的数据包的序 号从小到大依次向接收端发送上述緩存队列中的数据包。 需要说明的是, 以上关于定时器以及数据包达到预定个数的的举例, 均属 于触发转发设备发送数据包的条件, 这个触发条件可以有很多, 并不仅限于以 上两种, 本发明实施例对此不予限定。 More specifically, the sending unit 404 is specifically configured to receive, according to the sequence number of the data packet in the cache queue, the sequence number of the data packet in the cache queue from the small to the large when the timer reaches a predetermined value or when the data packet in the buffer queue reaches a predetermined number. The terminal sends the data packet in the above cache queue. It should be noted that the foregoing examples of the timers and the data packets reaching a predetermined number are all the conditions for the triggering forwarding device to send the data packets. The triggering conditions may be many, and are not limited to the foregoing two types. This is not limited.
更具体地, 上述存储控制单元 403, 具体用于将上述数据包存入与上述数 据包所属链接对应的緩存队列, 且緩存队列按照序号从小到大排序。  More specifically, the storage control unit 403 is specifically configured to store the data packet in a cache queue corresponding to the link to which the data packet belongs, and the cache queue is sorted according to the sequence number from small to large.
需要说明的是,在发送单元 404发送数据包时可以按照序号的从小到大发 送, 以实现本发明实施例的技术目的, 因此在实施例中, 在发送之前就进行排 序的方案可以与协议原有的数据包的发送方案兼容。在本实施例中采用存储控 制单元 403对緩存队列中的数据包进行排序作为一个优选方案,不应理解为对 本发明实施例的限定。  It should be noted that, when the sending unit 404 sends a data packet, it can be sent according to the sequence number from small to large to implement the technical purpose of the embodiment of the present invention. Therefore, in the embodiment, the scheme for sorting before sending may be the original protocol. Some packets are sent in a compatible scheme. The use of the storage control unit 403 to sort the data packets in the buffer queue in the present embodiment is a preferred embodiment and should not be construed as limiting the embodiments of the present invention.
以转发 TCP数据包为例, 以上数据包转发设备可以是 TCP数据包的发送 端到接收端之间的任意转发设备, 比如基站。 如图 2A所示, 在下行方向上, 上述 TCP数据包的发送端在核心网, 核心网发送 TCP数据包到达基站, 基站 将 TCP数据包发送给接收端。在图 2A中所示的接收端为手机,转发设备为基 站, 可以理解的是接收端可以有 4艮多种类, 可能是终端设备也可能是其他网络 侧设备, 转发设备也可以有很多种类, 本发明实施例对此不予限定。  For example, in the case of forwarding a TCP packet, the above packet forwarding device may be any forwarding device, such as a base station, between the sender and the receiver of the TCP packet. As shown in FIG. 2A, in the downlink direction, the transmitting end of the TCP packet is in the core network, and the core network sends a TCP packet to the base station, and the base station sends the TCP packet to the receiving end. The receiving end shown in FIG. 2A is a mobile phone, and the forwarding device is a base station. It can be understood that the receiving end can have more than four types, which may be terminal devices or other network side devices, and the forwarding devices may also have many types. This embodiment of the present invention does not limit this.
比如, 可以在 LTE系统的网元如 eNodeB中添加一个 TCP处理模块, 来 实现上述数据包转发设备中各组成单元的功能, 该 TCP处理模块可以对下行 的数据包进行处理。 该 TCP处理模块检测每个下行的 TCP数据包是否按序到 达 eNodeB, 如果检测到前后两个 TCP数据包的序号不连续, 则可以确定 TCP 数据包没有按序到达 eNodeB, 那么可以在 eNodeB上緩存乱序的数据包, 并 緩存随后一段时间内到达 eNodeB的数据包并对其进行排序。  For example, a TCP processing module may be added to a network element of the LTE system, such as an eNodeB, to implement the functions of each component in the data packet forwarding device, and the TCP processing module may process the downlink data packet. The TCP processing module detects whether each downlink TCP packet arrives at the eNodeB in order. If it is detected that the sequence numbers of the two TCP packets are not consecutive, it can be determined that the TCP packet does not arrive at the eNodeB in order, and then the cache can be cached on the eNodeB. Out-of-order packets, and buffers and sorts packets arriving at the eNodeB over a period of time.
举例说明: 在图 2B中上方为发生乱序时数据包到达 eNodeB的情况, 下 方是经过本发明实施例装置处理后数据包到达接收端的情况,此处的接收端是 TCP数据包的目的端, 在图 2A中举例为手机。 在图 2B中, time为 TCP数据 包的到达时间, tcp_seq为 TCP数据包的序号, info为其它信息 (图 2中显示 为文件传送协议数据的长度)。从图 2上部可以看到序号为 3284316717的数据 包到达 eNodeB时本应该出现在序号为 3284325257和 3284318177的数据包之 间, 由于乱序而出现在 3284321097后面, 经过本方案的处理后, 该数据包回 到了正确的位置。 因此, 采用本发明实施例设备可以降低乱序率。 值得注意的是, 上述设备的实施例中, 所包括的各个单元只是按照功能逻 辑进行划分的, 但并不局限于上述的划分, 只要能够实现相应的功能即可; 另 外,各功能单元的具体名称也只是为了便于相互区分, 并不用于限制本发明的 保护范围。 各功能单元的功能可以由接收机、 存储器、 处理器和发射机等元器 件实现。 For example, in FIG. 2B, when the packet arrives at the eNodeB when the out-of-order occurs, the following is the case where the data packet arrives at the receiving end after being processed by the apparatus of the embodiment of the present invention, where the receiving end is the destination end of the TCP packet. An example is a mobile phone in FIG. 2A. In FIG. 2B, time is the arrival time of the TCP packet, tcp_seq is the serial number of the TCP packet, and info is other information (shown as the length of the file transfer protocol data in FIG. 2). It can be seen from the upper part of Fig. 2 that the data packet with the serial number 3284316717 should appear between the data packets with the serial numbers 3284325257 and 3284318177 when it arrives at the eNodeB. It appears behind the 3284132097 due to the out-of-order. After the processing of this scheme, the data packet Going back to the right place. Therefore, the apparatus of the embodiment of the present invention can reduce the out-of-order rate. It should be noted that, in the embodiment of the foregoing device, each unit included is only divided according to functional logic, but is not limited to the foregoing division, as long as the corresponding function can be implemented; The names are also for convenience of distinction from each other and are not intended to limit the scope of protection of the present invention. The functions of each functional unit can be implemented by components such as a receiver, a memory, a processor, and a transmitter.
本领域普通技术人员可以理解实现上述实施例方法中的全部或部分步骤 是可以通过程序来指令相关的硬件完成,上述的程序可以存储于一种计算机可 读存储介质中, 上述提到的存储介质可以是只读存储器, 磁盘或光盘等。 例的说明只是用于帮助理解本发明的方法及其核心思想; 同时,对于本领域的 一般技术人员,依据本发明的思想,在具体实施方式及应用范围上均会有改变 之处, 综上, 本说明书内容不应理解为对本发明的限制。  A person skilled in the art can understand that all or part of the steps of implementing the above embodiments can be completed by a program to instruct related hardware, and the above program can be stored in a computer readable storage medium, the above mentioned storage medium. It can be a read-only memory, a disk or a disc, and the like. The description of the examples is only for helping to understand the method of the present invention and its core ideas; at the same time, for those of ordinary skill in the art, according to the idea of the present invention, there will be changes in the specific embodiments and application scopes. The contents of this specification are not to be construed as limiting the invention.

Claims

权 利 要 求 Rights request
1、 一种数据包的转发方法, 其特征在于, 包括:  A method for forwarding a data packet, comprising:
数据包转发设备接收数据包,所述数据包为要求数据包无损按序到达接收 端的通信协议封装的数据包;  The packet forwarding device receives the data packet, and the data packet is a data packet encapsulated by the communication protocol that requires the data packet to arrive at the receiving end without loss;
所述数据包转发设备判断所述数据包是否按序到达所述数据包转发设备, 若否, 则将所述数据包存入与所述数据包所属链接对应的緩存队列;  The data packet forwarding device determines whether the data packet arrives at the data packet forwarding device in order, and if not, stores the data packet in a cache queue corresponding to the link to which the data packet belongs;
所述数据包转发设备按照数据包的序号从小到大依次向接收端发送所述 緩存队列中的数据包。  The data packet forwarding device sends the data packets in the buffer queue to the receiving end in sequence according to the sequence number of the data packet.
2、 根据权利要求 1所述方法, 其特征在于, 所述判断所述数据包是否按 序到达所述数据包转发设备, 包括:  The method according to claim 1, wherein the determining whether the data packet arrives at the data packet forwarding device in an order comprises:
获取所述数据包的链接识别信息以及所述数据包的序号;  Obtaining link identification information of the data packet and a sequence number of the data packet;
通过所述链接识别信息确定所述数据包所属链接;  Determining, by the link identification information, a link to which the data packet belongs;
判断所述数据包的序号是否大于所述所述数据包所属链接已经发送的数 据包中序号最大的序号的下一个序号, 若是, 则确定所述数据包没有按序到达 所述数据包转发设备。  Determining whether the sequence number of the data packet is greater than a next sequence number of a sequence number having the largest sequence number in the data packet to which the data packet belongs, and if yes, determining that the data packet does not arrive at the data packet forwarding device in order .
3、 根据权利要求 2所述方法, 其特征在于, 在确定所述数据包没有按序 到达所述数据包转发设备之后, 建立与所述数据包所属链路对应的緩存队列。  3. The method according to claim 2, wherein after determining that the data packet does not arrive in sequence with the data packet forwarding device, a cache queue corresponding to the link to which the data packet belongs is established.
4、 根据权利要求 3所述方法, 其特征在于, 还包括:  4. The method according to claim 3, further comprising:
若所述数据包的序号小于或等于所述数据包所属链接已经发送的数据包 中序号最大的序号的下一个序号,则确定所述数据包所属链路对应的緩存队列 是否为空, 若为空, 则向接收端发送所述数据包, 若不为空, 则将所述数据包 存入与所述数据包所属链接对应的緩存队列。  If the sequence number of the data packet is less than or equal to the next sequence number of the sequence number with the largest sequence number in the data packet to which the data packet belongs, determine whether the cache queue corresponding to the link to which the data packet belongs is empty, if If it is empty, the data packet is sent to the receiving end. If it is not empty, the data packet is stored in a buffer queue corresponding to the link to which the data packet belongs.
5、 根据权利要求 1至 4任意一项所述方法, 其特征在于, 所述按照数据 包的序号从小到大依次向接收端发送所述緩存队列中的数据包包括:  The method according to any one of claims 1 to 4, wherein the transmitting the data packet in the buffer queue to the receiving end according to the sequence number of the data packet from small to large comprises:
在定时器计时达到预定值时或者所述緩存队列中的数据包达到预定个数 时,按照所述緩存队列中的数据包的序号从小到大依次向接收端发送所述緩存 队列中的数据包。  When the timer reaches a predetermined value or the data packet in the buffer queue reaches a predetermined number, the data packet in the buffer queue is sent to the receiving end according to the sequence number of the data packet in the buffer queue. .
6、 根据权利要求 1至 4任意一项所述方法, 其特征在于, 所述将所述数 据包存入与所述数据包所属链接对应的緩存队列包括: 将所述数据包存入与所述数据包所属链接对应的緩存队列,且緩存队列按 照序号从小到大排序。 The method according to any one of claims 1 to 4, wherein the storing the data packet in a cache queue corresponding to the link to which the data packet belongs includes: The data packet is stored in a cache queue corresponding to the link to which the data packet belongs, and the cache queue is sorted according to the sequence number from small to large.
7、 根据权利要求 1至 4任意一项所述方法, 其特征在于, 所述数据包为 长期演进 LTE的网络中的传输控制协议 TCP数据包。  The method according to any one of claims 1 to 4, wherein the data packet is a Transmission Control Protocol TCP data packet in a Long Term Evolution LTE network.
8、 一种数据包转发设备, 其特征在于, 包括:  8. A packet forwarding device, comprising:
接收单元, 用于接收数据包, 所述数据包为要求数据包无损按序到达接收 端的通信协议封装的数据包;  a receiving unit, configured to receive a data packet, where the data packet is a data packet encapsulated by a communication protocol that requires the data packet to arrive at the receiving end without loss;
判断单元, 用于判断所述数据包是否按序到达所述数据包转发设备; 存储控制单元, 用于若所述判断单元判断结果为否, 则将所述数据包存入 与所述数据包所属链接对应的緩存队列;  a determining unit, configured to determine whether the data packet arrives at the data packet forwarding device in sequence; and a storage control unit, configured to store the data packet and the data packet if the determining unit determines that the result is negative The cache queue corresponding to the link;
发送单元,用于按照数据包的序号从小到大依次向接收端发送所述緩存队 列中的数据包。  And a sending unit, configured to send the data packet in the cache queue to the receiving end in sequence according to the sequence number of the data packet.
9、 根据权利要求 8所述设备, 其特征在于,  9. Apparatus according to claim 8 wherein:
所述判断单元, 包括: 获取子单元、 链接确定子单元以及判断子单元; 所述获取子单元,用于获取所述数据包的链接识别信息以及所述数据包的 序号;  The determining unit includes: an obtaining subunit, a link determining subunit, and a determining subunit; the obtaining subunit, configured to acquire link identification information of the data packet and a sequence number of the data packet;
所述链接确定子单元,用于通过所述链接识别信息确定所述数据包所属链 接;  The link determining subunit, configured to determine, by the link identification information, the link to which the data packet belongs;
所述判断子单元,用于判断所述数据包的序号是否大于所述所述数据包所 属链接已经发送的数据包中序号最大的序号的下一个序号, 若是, 则确定所述 数据包没有按序到达所述数据包转发设备。  The determining subunit is configured to determine whether the sequence number of the data packet is greater than a next sequence number of a sequence number having the largest serial number in the data packet that the link to which the data packet belongs, and if yes, determining that the data packet is not pressed The sequence arrives at the packet forwarding device.
10、 根据权利要求 9所述设备, 其特征在于, 还包括:  10. The device according to claim 9, further comprising:
队列控制单元,用于在所述判断子单元确定所述数据包没有按序到达所述 数据包转发设备之后, 建立与所述数据包所属链路对应的緩存队列。  And a queue control unit, configured to: after the determining subunit determines that the data packet does not arrive at the packet forwarding device in order, establish a cache queue corresponding to the link to which the data packet belongs.
11、 根据权利要求 10所述设备, 其特征在于, 还包括:  11. The device according to claim 10, further comprising:
緩存信息获取单元,用于若所述数据包的序号小于或等于所述数据包所属 链接已经发送的数据包中序号最大的序号的下一个序号,则确定所述数据包所 属链路对应的緩存队列是否为空;  a cache information obtaining unit, configured to determine a cache corresponding to the link to which the data packet belongs if the sequence number of the data packet is less than or equal to a next sequence number of a sequence number having the largest sequence number in the data packet to which the link to which the data packet belongs Whether the queue is empty;
所述发送单元,还用于若所述緩存信息获取单元确定所述数据包所属链路 对应的緩存队列为空, 则向接收端发送所述数据包; 所述存储控制单元,还用于若緩存信息获取单元确定所述数据包所属链路 对应的緩存队列不为空,则将所述数据包存入与所述数据包所属链接对应的緩 存队列。 The sending unit is further configured to: if the cache information obtaining unit determines that the cache queue corresponding to the link to which the data packet belongs is empty, send the data packet to the receiving end; The storage control unit is further configured to: if the cache information obtaining unit determines that the cache queue corresponding to the link to which the data packet belongs is not empty, store the data packet in a cache queue corresponding to the link to which the data packet belongs.
12、 根据权利要求 8至 11所述设备, 其特征在于,  12. Apparatus according to any of claims 8 to 11, characterized in that
所述发送单元,具体用于在定时器计时达到预定值时或者所述緩存队列中 的数据包达到预定个数时,按照所述緩存队列中的数据包的序号从小到大依次 向接收端发送所述緩存队列中的数据包。  The sending unit is specifically configured to send, according to the sequence number of the data packet in the buffer queue, the sequence number of the data packet in the buffer queue to the receiving end when the timer reaches a predetermined value or when the data packet in the buffer queue reaches a predetermined number. The data packet in the cache queue.
13、 根据权利要求 8至 11所述设备, 其特征在于,  13. Apparatus according to any of claims 8 to 11 wherein:
所述存储控制单元,具体用于将所述数据包存入与所述数据包所属链接对 应的緩存队列, 且緩存队列按照序号从小到大排序。  The storage control unit is configured to store the data packet in a cache queue corresponding to a link to which the data packet belongs, and the cache queue is sorted according to a sequence number from small to large.
PCT/CN2012/075715 2012-05-18 2012-05-18 Method and device for forwarding data packet WO2012126424A2 (en)

Priority Applications (2)

Application Number Priority Date Filing Date Title
CN2012800007457A CN102823207A (en) 2012-05-18 2012-05-18 Method and device for forwarding data packet
PCT/CN2012/075715 WO2012126424A2 (en) 2012-05-18 2012-05-18 Method and device for forwarding data packet

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
PCT/CN2012/075715 WO2012126424A2 (en) 2012-05-18 2012-05-18 Method and device for forwarding data packet

Publications (2)

Publication Number Publication Date
WO2012126424A2 true WO2012126424A2 (en) 2012-09-27
WO2012126424A3 WO2012126424A3 (en) 2013-04-11

Family

ID=46879800

Family Applications (1)

Application Number Title Priority Date Filing Date
PCT/CN2012/075715 WO2012126424A2 (en) 2012-05-18 2012-05-18 Method and device for forwarding data packet

Country Status (2)

Country Link
CN (1) CN102823207A (en)
WO (1) WO2012126424A2 (en)

Families Citing this family (13)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN103944691B (en) 2013-01-17 2019-01-15 中兴通讯股份有限公司 Data repeating method in a kind of transmission of cooperation service and connect network gateway
DE102015211668B4 (en) 2015-06-24 2019-03-28 Volkswagen Ag Method and device for increasing the safety of a remote release, motor vehicle
CN105871747B (en) * 2016-03-24 2019-07-30 京信通信系统(中国)有限公司 Communication system downlink data transmission method and system
CN107454276B (en) * 2016-06-01 2021-07-27 中兴通讯股份有限公司 User terminal equipment, data forwarding method thereof and communication system
CN106161110B (en) * 2016-08-31 2019-05-17 东软集团股份有限公司 Data processing method and system in a kind of network equipment
EP3531631A4 (en) * 2016-11-11 2019-08-28 Huawei Technologies Co., Ltd. Data transmission method and apparatus
CN106888173B (en) * 2017-02-21 2019-11-29 武汉虹旭信息技术有限责任公司 Universal efficient message communication system and its method
CN108494676B (en) * 2018-03-21 2022-01-11 广州多益网络股份有限公司 Data transmission method, data transmission device, data transceiving equipment, data transceiving system and storage medium
CN111385069A (en) * 2018-12-27 2020-07-07 广州市百果园信息技术有限公司 Data transmission method and computer equipment
CN111669431B (en) * 2020-05-07 2021-11-19 深圳华锐金融技术股份有限公司 Message transmission method and device, computer equipment and storage medium
CN111880943A (en) * 2020-05-11 2020-11-03 紫光云技术有限公司 Method for processing equipment message queue of cloud network controller under cluster
CN112491871B (en) * 2020-11-25 2023-07-28 北京宝兰德软件股份有限公司 TCP reorganization method, TCP reorganization device, electronic equipment and storage medium
CN114915382B (en) * 2022-05-16 2024-03-22 南京航空航天大学 AGV wireless communication offline retransmission and data packet sticking processing method

Citations (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN1764275A (en) * 2005-09-23 2006-04-26 杨国宇 Multi-point transmitting method for forming composite peer-to-peer network, balancing digital contents
US20060181734A1 (en) * 2005-02-17 2006-08-17 Nec Corporation Method and apparatus for transmitting data to network and method and apparatus for receiving data from network
CN101123580A (en) * 2007-09-11 2008-02-13 华为技术有限公司 Packet transmission method and base station device
CN101247352A (en) * 2008-03-20 2008-08-20 华为技术有限公司 Gateway equipment and method for caching and forwarding data package

Family Cites Families (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN101325539B (en) * 2007-06-15 2012-01-11 中兴通讯股份有限公司 Dependable communication method for LAN
CN102457986A (en) * 2010-10-29 2012-05-16 联芯科技有限公司 Method for transmitting uplink data of terminal, and terminal

Patent Citations (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20060181734A1 (en) * 2005-02-17 2006-08-17 Nec Corporation Method and apparatus for transmitting data to network and method and apparatus for receiving data from network
CN1764275A (en) * 2005-09-23 2006-04-26 杨国宇 Multi-point transmitting method for forming composite peer-to-peer network, balancing digital contents
CN101123580A (en) * 2007-09-11 2008-02-13 华为技术有限公司 Packet transmission method and base station device
CN101247352A (en) * 2008-03-20 2008-08-20 华为技术有限公司 Gateway equipment and method for caching and forwarding data package

Also Published As

Publication number Publication date
WO2012126424A3 (en) 2013-04-11
CN102823207A (en) 2012-12-12

Similar Documents

Publication Publication Date Title
WO2012126424A2 (en) Method and device for forwarding data packet
US10237153B2 (en) Packet retransmission method and apparatus
US6757248B1 (en) Performance enhancement of transmission control protocol (TCP) for wireless network applications
WO2018121294A1 (en) Packet transmission method, terminal, network device, and communication system
US7477675B2 (en) Data communication apparatus
CN109639340B (en) TCP acceleration method suitable for satellite link
US8958411B2 (en) Method of transmitting RLC data
CN102006283B (en) Data transmission method and device
WO2017050216A1 (en) Packet transmission method and user equipment
US20040052234A1 (en) Method and system for dispatching multiple TCP packets from communication systems
EP1344359B1 (en) Method of enhancing the efficiency of data flow in communication systems
WO2013053304A1 (en) Method and device for implementing tcp transmission
US10111130B2 (en) Supporting delivery of data packets using transmission control protocol in a wireless communication network
JP2003521155A (en) Wireless network system and method
CN101119183A (en) Retransmission control method and transmission equipment
WO2011100911A2 (en) Detection processing method, data transmitter, data receiver and communication system
JP4328794B2 (en) COMMUNICATION SYSTEM, COMMUNICATION DEVICE, AND TRANSMISSION CONTROL METHOD
WO2012083762A1 (en) Data transmission method, apparatus, and system
CN111314961A (en) TCP transmission method, device and system
WO2020010511A1 (en) Data transmission method and base station
CN113424578B (en) Acceleration method and device for transmission control protocol
CA2372023A1 (en) Overload control method for a packet-switched network
WO2013097611A1 (en) Data processing method, device and system
KR100913897B1 (en) Method for controlling congestion of TCP for reducing the number of retransmission timeout
CN116405414A (en) TCP speed measurement performance improving method and device

Legal Events

Date Code Title Description
WWE Wipo information: entry into national phase

Ref document number: 201280000745.7

Country of ref document: CN

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

Ref document number: 12760443

Country of ref document: EP

Kind code of ref document: A2

NENP Non-entry into the national phase in:

Ref country code: DE

122 Ep: pct application non-entry in european phase

Ref document number: 12760443

Country of ref document: EP

Kind code of ref document: A2