WO2012129922A1 - 一种报文处理方法、转发设备及*** - Google Patents

一种报文处理方法、转发设备及*** Download PDF

Info

Publication number
WO2012129922A1
WO2012129922A1 PCT/CN2011/083018 CN2011083018W WO2012129922A1 WO 2012129922 A1 WO2012129922 A1 WO 2012129922A1 CN 2011083018 W CN2011083018 W CN 2011083018W WO 2012129922 A1 WO2012129922 A1 WO 2012129922A1
Authority
WO
WIPO (PCT)
Prior art keywords
tcp
packet
client
tcp ack
number field
Prior art date
Application number
PCT/CN2011/083018
Other languages
English (en)
French (fr)
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 EP11862771.0A priority Critical patent/EP2693707B1/en
Publication of WO2012129922A1 publication Critical patent/WO2012129922A1/zh
Priority to US14/039,521 priority patent/US9325628B2/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/27Evaluation or update of window size, e.g. using information derived from acknowledged [ACK] packets
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L1/00Arrangements for detecting or preventing errors in the information received
    • H04L1/12Arrangements for detecting or preventing errors in the information received by using return channel
    • H04L1/16Arrangements for detecting or preventing errors in the information received by using return channel in which the return channel carries supervisory signals, e.g. repetition request signals
    • H04L1/1607Details of the supervisory signal
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L69/00Network arrangements, protocols or services independent of the application payload and not provided for in the other groups of this subclass
    • H04L69/16Implementation or adaptation of Internet protocol [IP], of transmission control protocol [TCP] or of user datagram protocol [UDP]
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L69/00Network arrangements, protocols or services independent of the application payload and not provided for in the other groups of this subclass
    • H04L69/16Implementation or adaptation of Internet protocol [IP], of transmission control protocol [TCP] or of user datagram protocol [UDP]
    • H04L69/161Implementation details of TCP/IP or UDP/IP stack architecture; Specification of modified or new header fields
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L69/00Network arrangements, protocols or services independent of the application payload and not provided for in the other groups of this subclass
    • H04L69/16Implementation or adaptation of Internet protocol [IP], of transmission control protocol [TCP] or of user datagram protocol [UDP]
    • H04L69/163In-band adaptation of TCP data exchange; In-band control procedures

Definitions

  • the present invention claims to be submitted to the Chinese Patent Office on March 29, 2011, and the application number is 201110078459.
  • X the invention name is "a message processing method, a forwarding device and a system" Priority of Chinese Patent Application, the entire contents of which is incorporated herein by reference.
  • TECHNICAL FIELD The present invention relates to the field of communications technologies, and in particular, to a message processing method, a forwarding device, and a system.
  • BACKGROUND In current networks, network traffic is mainly composed of video traffic. On October 20, 2010, Sandvine released a monitoring report on network traffic. Netflix's video traffic accounted for 20% of the total data volume from 8:00 to 10:00 in the US. And by 2014, video traffic will account for 91% of network traffic.
  • the video data is transmitted in the form of a TCP message in the transmission process through a sliding window mechanism.
  • the specific process is as follows:
  • Step A A TCP connection is established between the client and the server, and the server and the client respectively send their maximum data reception amount to the other party.
  • the amount of data sent by the server before receiving the TCP ACK message from the client (ie, the TCP acknowledgment message, the TCP header ACK flag of the message is set to 1) will not exceed the maximum acceptable amount of the client.
  • the amount of data At the same time, the client will carry its current maximum data reception amount in the TCP ACK packet (that is, it is identified by the window field of the TCP header);
  • the amount of data sent by the server's sending window at one time is not greater than the maximum amount of data that can be received by the client and the amount of data that is less than the value between the cwnd and the congestion window.
  • Step B The server sends the first TCP packet.
  • the server receives the first TCP ACK packet, and sets the congestion window cwnd to the number of two packets, that is, the server can send two TCP packets to the client at one time;
  • the server continuously sends the subsequent two TCP packets, receives the second and third TCP ACK packets, and sets the congestion window cwnd to 4, that is, the server can send four TCP packets to the client at one time;
  • the server increments cwnd by 1 every time it receives a TCP ACK message. This process is called SS (slow start). Phase), until the congestion window cwnd increases to the slow start phase threshold ssthresh, for most TCP implementations, the value of ssthresh is 65536 bytes.
  • Step C After the congestion window cd is increased to the slow start phase threshold, after all the TCP packets sent by the server are successfully received by the client through the TCP ACK, the server congestion window cd is increased by 1, and the process is CA (connection avoidance, Congestion avoidance), until the congestion window cwnd reaches the maximum received data reception of the client.
  • CA connection avoidance, Congestion avoidance
  • Step D The client checks the sequence number of the received TCP packet. When the sequence number in the TCP header of the TCP packet is greater than the TCP header sequence number of the TCP packet received by the client last time and the TCP received last time. When the packet load (excluding the TCP header) is the sum of the number of bytes, it indicates that the TCP packet is lost. The client repeatedly sends a TCP ACK packet to request the server to retransmit the lost TCP packet.
  • an embodiment of the present invention provides a packet processing method, a forwarding device, and a system, to solve the problem that the network congestion caused by the server disables the congestion window C d in the prior art is further intensified, and the network resource utilization is further improved.
  • the reduced technical solution is as follows:
  • a packet processing method including:
  • the TCP packet is requested to be re-transmitted in the storage device.
  • a forwarding device including:
  • An ACK packet receiving module configured to receive a TCP ACK packet currently sent by the client
  • the field value judging module is configured to determine an Acknowledge Number field value in a TCP header of a TCP ACK message currently sent by the client, and an Acknowledge Number in a TCP header of the TCP ACK message sent by the client to the same TCP connection.
  • the TCP packet search module is configured to determine, in the TCP header of the TCP ACK packet sent by the client for the same TCP connection, the value of the Acknowledge Number field in the TCP header of the TCP ACK packet currently sent by the client. When the value of the Acknowledge Number field is the same, the TCP device that searches for the TCP ACK packet is requested to be retransmitted in the storage device;
  • a TCP packet sending module configured to discard the TCP ACK packet, and send the TCP packet to send the TCP ACK packet when the TCP ACK message is requested to be retransmitted in the storage device.
  • a packet processing system including a client, a server, and a forwarding device, and the forwarding device is sent by the forwarding device between the client and the server.
  • the method is configured to receive a TCP ACK packet currently sent by the client, and determine a value of an Acknowledge Number field in a TCP header of a TCP ACK packet currently sent by the client, and a TCP ACK packet sent by the client to the same TCP connection.
  • the TCP packet is requested to be re-transmitted in the storage device, and the TCP packet is requested to be retransmitted when the TCP ACK packet is requested to be retransmitted in the storage device.
  • the TCP ACK packet is discarded, and the TCP packet is sent to the client that sends the TCP ACK packet.
  • the forwarding device determines the value of the Acknowledge Number field in the TCP header of the currently sent TCP ACK packet and the TCP ACK packet sent by the client to the same TCP connection.
  • the TCP packet that is requested to be retransmitted by the TCP ACK packet is searched in the storage device; when the TCP ACK packet is requested to be retransmitted in the storage device, the TCP packet is requested to be retransmitted.
  • the forwarding device sends a TCP packet to the sending client.
  • FIG. 1 is a flowchart of a packet processing method according to an embodiment of the present invention
  • FIG. 2 is another flowchart of a packet processing method according to an embodiment of the present invention
  • FIG. 3 is a schematic structural diagram of a forwarding device according to an embodiment of the present disclosure
  • FIG. 4 is a schematic structural diagram of a field value judging module in a forwarding device
  • FIG. 5 is another schematic structural diagram of a field value judging module in a forwarding device
  • FIG. 6 is a schematic diagram of still another structure of a field value judging module in a forwarding device
  • FIG. 7 is another schematic structural diagram of a forwarding device according to an embodiment of the present disclosure.
  • FIG. 8 is a schematic structural diagram of a window obtaining module in a forwarding device
  • FIG. 9 is another schematic structural diagram of a window obtaining module in a forwarding device.
  • FIG. 10 is another schematic structural diagram of a window acquisition module in a forwarding device. DETAILED DESCRIPTION OF THE INVENTION
  • a TCP packet and a TCP ACK packet are briefly explained.
  • a TCP connection is established between the server and the client through the forwarding device to send a packet.
  • the server sends TCP packets to the client through a TCP connection.
  • the "Sequence Number" field in the TCP header of the TCP packet carries the sequence number of the first data byte in the payload of the message.
  • the client After receiving the TCP packet, the client sends a TCP ACK packet to the server through the TCP connection.
  • the value of the "Acknowledge Number" field in the TCP header of the TCP ACK packet indicates the field value of the "Sequence Number" of the next packet from the server that the client packet expects. It also means that the client has received the server. Sends the data of all "Sequence Number" values before the "Acknowledge Number" of the TCP ACK.
  • the client of 168. 0. 8 sends a message through the forwarding device.
  • the first packet received by the forwarding device is: The TCP packet sent by the server.
  • the value of the Sequence Number field of the TCP header in the TCP packet is 14481, indicating that the sequence number of the first byte in the packet payload is 14481. .
  • the second packet is the TCP packet sent by the server.
  • the value of the Sequence Number field of the TCP header in the TCP packet is 15929, indicating that the number of the first byte sequence of the packet is 15529.
  • the value of the "Sestence Number" field of the TCP header in the second packet is 17377, it indicates that the number of the first byte sequence of the packet is 17377. Due to the "Sequence Number" of the TCP header in the last TCP message The value of the field is 14481, and the number of bytes in the TCP packet is 1448. The value of the Sequence Number field of the TCP header in the second packet should be 15929 instead of 17377. When this is the case, it indicates that the second packet sent by the server (that is, the TCP message with the "Sequence Number" in the TCP header is 15929) is lost.
  • the third packet is: a TCP ACK packet sent by the client.
  • the value of the "Acknowledge Number" field of the TCP header in the TCP ACK packet is 15929, indicating that the next packet from the server is expected by the packet.
  • the Sequence Number field value is 15929.
  • the TCP ACK message sent by the client indicates that the client has successfully received the first message (that is, it has received the message data before the server sends all the "Sequence Number" values 15929). This is the response sent after the first message is received.
  • the value of the "Acknowledge Number" field of the TCP header in the third message is 14481, indicating that the value of the "Sequence Number” field of the next message from the server expected by the message is 14481.
  • the value of the Sequence Number field of the second packet sent by the server is 15929, and the TCP ACK packet sent by the client indicates that the client still needs to receive the first packet, that is, the client does not successfully receive the first packet. A message. When this is the case, it indicates that the first packet sent by the server is lost.
  • TCP packet retransmission is one aspect that leads to increased network congestion and reduced network resource utilization. Specifically, when the network is congested and the TCP packet is lost, the forwarding device sends the received TCP ACK packet to the server, and the server searches for the TCP ACK packet to request the retransmitted TCP packet, and then passes the TCP packet. The forwarding device sends it to the client. In this way, network congestion will be further aggravated and network resource utilization will be reduced.
  • the embodiment of the present invention provides a packet processing method, in which the forwarding device stores the received TCP packet in the storage device-cache, so when the network is congested and the TCP packet is lost, The TCP packet that the forwarding device obtains the TCP ACK packet in the buffer to request the retransmission, if the TCP packet requesting the retransmission is obtained in the cache, the TCP packet requesting the retransmission is directly sent by the forwarding device.
  • the method flow chart can be seen in Figure 1, including:
  • S101 Receive a TCP ACK message sent by the client.
  • the TCP ACK packet is sent by the client to the forwarding device, and then sent to the server by the forwarding device to indicate that the client receives the TCP packet sent by the server.
  • the value of the ACK field in the Control Bits field in the TCP header of the packet received by the forwarding device is set to 1, it indicates that the received packet is a TCP ACK packet.
  • step S102 determining whether the value of the Acknowledge Number field in the TCP header of the currently sent TCP ACK packet is the same as the value of the Acknowledge Number field in the TCP header of the TCP ACK packet sent by the client, and if yes, executing step S103. If no, step S106 is performed. Since one server can establish multiple TCP connections with multiple clients at the same time, that is, the forwarding device receives TCP ACK packets sent by multiple clients at the same time, step S102 should parse the TCP sent by the same client for the same TCP connection. ACK message.
  • the source IP address, the destination IP address, the protocol type, the TCP source port, and the TCP destination port in the TCP header of the packet sent by the server and the client uniquely identify the TCP connection between the server and the client, the source IP address of the different TCP connection, One or more of the field values of the destination IP address, protocol type, TCP source port, and TCP destination port are different. Therefore, by analyzing the source IP address, the destination IP address, the protocol type, the TCP source port, and the TCP destination port field value in the TCP header of the packet, it can be learned whether the TCP ACK packet is the same client for the same TCP connection. send.
  • Step S102 When it is determined whether the Acknowledge Number field value in the TCP header of the currently sent TCP ACK packet is the same as the Acknowledge Number field value in the TCP header of the TCP ACK packet sent by the client, the currently sent TCP ACK may be sent.
  • the value of the Acknowledge Number field in the TCP header of the message is determined from the value of the Acknowledge Number field in the TCP header of the last TCP ACK message sent by the same client.
  • the forwarding device may also store the Acknowledge Number field value in the TCP header of the TCP ACK message sent by the client for the same TCP connection to a list, and determine the TCP header of the currently sent TCP ACK message.
  • the value of the Acknowledge Number field and the stored Acknowledge Number field value are determined to be currently sent when the value of the Acknowledge Number field in the TCP header of the currently sent TCP ACK message is the same as the value of at least one Acknowledge Number field in the stored Acknowledge Number field value.
  • the value of the Acknowledge Number field in the TCP header of the TCP ACK packet is the same as the value of the stored Acknowledge Number field. Otherwise, the Acknowledge Number field value in the TCP header of the currently sent TCP ACK packet is not equal to the stored Acknowledge Number field value. the same.
  • the forwarding device can also store the TCP ACK packet sent by the client each time for the same TCP connection, and separately parse the stored TCP ACK packet and the currently received TCP ACK packet to obtain the respective Acknowledge Number.
  • the field value is determined, and when the value of the Acknowledge Number field in the TCP header of the currently sent TCP ACK message is the same as the value of at least one Acknowledge Number field in the Acknowledge Number field value in the TCP header of the stored TCP ACK message, The value of the Acknowledge Number field in the TCP header of the currently sent TCP ACK packet is the same as the value of the Acknowledge Number field in the TCP header of the stored TCP ACK packet. Otherwise, it is determined in the TCP header of the currently sent TCP ACK packet.
  • the Acknowledge Number field value is not the same as the Acknowledge Number field value in the TCP header of the stored TCP ACK message.
  • step S103 Determine whether a TCP packet that is requested to be retransmitted by the TCP ACK packet is searched in the cache, and if so, In step S104, if no, step S105 is performed.
  • the cache can be embedded in the forwarding device or externally connected to the forwarding device.
  • S104 Drop the TCP ACK packet, and send the TCP packet requesting retransmission, that is, the found TCP packet to the sending client.
  • S105 Send the TCP ACK packet to the server, and the server sends the TCP packet sent by the TCP ACK packet to the sending client.
  • the following is a server with an IP address of 192. 168. 0. 198 and a client whose IP address is 192. 168. 0. 9 sends a packet through the forwarding device, and the number of bytes sent by the server is 1400. invention.
  • the first packet received by the forwarding device is: The TCP packet sent by the server.
  • the value of the "Sequence Number" field of the TCP header in the TCP packet is 14000, indicating that the sequence number of the first byte in the packet payload is 14000. .
  • the second packet is the TCP packet sent by the server.
  • the value of the Sequence Number field of the TCP header in the TCP packet is 15400, indicating that the number of the first byte sequence of the packet is 15400.
  • the third packet is: a TCP ACK packet sent by the client.
  • the value of the "Acknowledge Number" field of the TCP header in the TCP ACK packet is 15400, indicating that the next packet from the server is expected by the packet.
  • the Sequence Number field value is 15400.
  • the TCP ACK message sent by the client indicates that the client has successfully received the first packet. This is the response sent after the first message is received.
  • the fourth packet is: a TCP ACK packet sent by the client.
  • the value of the "Acknowledge Number" field of the TCP header in the TCP ACK packet is 15400, indicating that the next packet from the server is expected by the packet.
  • the value of the Sequence Number field is still 15400, which means that the client did not successfully receive the second message.
  • the forwarding device will set the Acknowledge Number field value in the TCP header of the fourth packet and the third packet.
  • the value of the Acknowledge Number field in the TCP header is compared, and the value of the Acknowledge Number field in the TCP header of the fourth packet and the third packet is determined to be the same, indicating that the client has not successfully received the second packet sent by the server. .
  • the forwarding device obtains a packet with a value of 15400 in the "Sequence Number" field of the fourth packet requesting retransmission in the cache, that is, the second packet. If the forwarding device obtains the second packet from the cache, the forwarding device directly sends the obtained second packet to the client. If the packet is lost when the server sends the second packet to the forwarding device, the forwarding device cannot obtain the second packet from the cache.
  • the forwarding device sends the fourth packet to the server.
  • the message that the message is requested to be retransmitted has a value of 15400, that is, the second packet is sent to the client through the forwarding device.
  • the forwarding device determines the Acknowledge Number field value in the TCP header of the currently sent TCP ACK packet and the TCP header of the TCP ACK packet sent by the client to the same TCP connection.
  • the value of the Acknowledge Number field is the same, looking for it in the storage device.
  • the TCP ACK message requests the retransmitted TCP packet.
  • the forwarding device sends a TCP packet to the sending client.
  • the TCP packet is directly sent from the server to the client through the forwarding device at any time, thereby saving bandwidth between the server and the forwarding device, improving bandwidth utilization, thereby reducing network congestion and improving network resources. Utilization rate. .
  • the existing packet processing method leads to increased network congestion.
  • the network resource utilization is reduced.
  • the server disables the congestion window cwnd.
  • the number of bytes of TCP packets sent is not set according to the receiving window of the client.
  • the inventor has found that when the server disables the congestion window cwnd, the number of bytes of TCP packets sent by the server is reduced according to the receiving window control server.
  • the number of bytes of TCP packets is reduced, which can reduce network congestion. Improve network resource utilization.
  • FIG. 2 Another flowchart of the packet processing method provided by the embodiment of the present invention is shown in FIG. 2, including:
  • S201 Receive a TCP ACK packet sent by the client.
  • the TCP ACK packet is sent by the client to the forwarding device, and then sent to the server by the forwarding device to indicate that the client receives the TCP packet sent by the server.
  • the value of the ACK field in the Control Bits field in the TCP header of the packet received by the forwarding device is set to 1, it indicates that the received packet is a TCP ACK packet.
  • step S202 Determine whether the value of the Acknowledge Number field in the TCP header of the currently sent TCP ACK message is a duplicate field value. If yes, go to step S203. If no, go to step S205.
  • step S202 should parse the TCP sent by the same client for the same TCP connection.
  • ACK message The source IP address, destination IP address, protocol type, TCP source port, and TCP destination port in the TCP header of the packet sent by the server and the client uniquely identify the TCP connection between the server and the client, the source IP address of the different connection, and the destination.
  • One or more of the field values of the IP address, protocol type, TCP source port, and TCP destination port are different.
  • the TCP ACK packet is the same client for the same TCP connection. send.
  • Step S202 When it is determined whether the Acknowledge Number field value in the TCP header of the currently sent TCP ACK packet is the same as the Acknowledge Number field value in the TCP header of the TCP ACK packet sent by the client, the currently sent TCP ACK may be sent.
  • the value of the Acknowledge Number field in the TCP header of the message is the same as the value of the Acknowledge Number field in the TCP header of the last TCP ACK message sent by the same client.
  • the forwarding device may also store the Acknowledge Number field value in the TCP header of the TCP ACK message sent by the client for the same TCP connection to a list, and determine the TCP header of the currently sent TCP ACK message.
  • the value of the Acknowledge Number field and the stored Acknowledge Number field value are determined to be currently sent when the value of the Acknowledge Number field in the TCP header of the currently sent TCP ACK message is the same as the value of at least one Acknowledge Number field in the stored Acknowledge Number field value.
  • the value of the Acknowledge Number field in the TCP header of the TCP ACK packet is the same as the value of the stored Acknowledge Number field. Otherwise, the Acknowledge Number field value in the TCP header of the currently sent TCP ACK packet is not equal to the stored Acknowledge Number field value. the same.
  • the forwarding device can also store the TCP sent by the client each time for the same TCP connection.
  • the ACK packet parses the stored TCP ACK packet and the currently received TCP ACK packet, obtains the respective Acknowledge Number field value, and determines the Acknowledge Number field value in the TCP header of the currently sent TCP ACK packet.
  • the value of at least one Acknowledge Number field in the value of the Acknowledge Number field in the TCP header of the stored TCP ACK message is the same, the value of the Acknowledge Number field in the TCP header of the currently sent TCP ACK message is compared with the stored TCP ACK message. The value of the Acknowledge Number field in the TCP header of the file is the same. Otherwise, it is determined that the Acknowledge Number field value in the TCP header of the currently sent TCP ACK packet is different from the Acknowledge Number field value in the TCP header of the stored TCP ACK packet.
  • step S203 Determine whether a TCP packet that is requested to be retransmitted by the TCP ACK packet can be found in the cache. If yes, go to step S204, if no, go to step S205.
  • the cache can be embedded in the forwarding device or externally connected to the forwarding device.
  • S205 Obtain a current receiving window and a suggestion receiving window of the client. among them:
  • the window field value in the TCP header of the TCP ACK packet is the receiving window. Therefore, after receiving the TCP ACK packet, the TCP ACK packet is parsed; the window field value in the TCP header of the TCP ACK packet is obtained, and the window field value is the current receiving of the client that sends the TCP ACK packet. window.
  • the client's recommended receiving window There are three ways to obtain the client's recommended receiving window. The following three methods are introduced separately. The first one is: Set the recommended receive window according to the preset window threshold. Specifically, the recommended receiving window can be set to 0, or the current receiving window can be lowered. For example, the current receiving window value is multiplied by a preset coefficient smaller than 1, and the product result is used as the recommended receiving window.
  • T is the time from when the TCP packet arrives at the client to when the TCP ACK packet arrives at the server. It can be obtained by querying the t imestamp field in the TCP header of the TCP packet, in ms.
  • TH is the first preset multiplier threshold, which varies depending on the usage scenario. Specifically:
  • BD 2Mbps
  • T 500ms
  • TH 120
  • the upstream bandwidth BD is: uplink bandwidth or uplink session bandwidth or adjusted uplink packet bandwidth.
  • the uplink bandwidth can be the access bandwidth of the client, such as the 2 Mbps bandwidth provided by the operator for the client.
  • the upstream session bandwidth can be video media traffic or a fixed bit rate, such as a fixed bit rate of the video currently viewed by the user.
  • the adjusted uplink packet bandwidth is the bandwidth of the uplink packet obtained by re-adjusting the bandwidth of the multiple uplink packets transmitted in the uplink session according to a certain rule. For example, three uplink packets are transmitted in one uplink session—upstream packet A, bandwidth is 2 Mbps, uplink packet B, bandwidth is 3 Mbps, and uplink packet C, bandwidth is 4 Mbps. The bandwidth of each packet is re-adjusted according to the average bandwidth allocation. The bandwidth of the three uplink packets is 3 Mbps. Then, when calculating the recommended receiving window of the client receiving the uplink message A, the uplink bandwidth BD is 3 Mbps. Of course, the bandwidth of the uplink packet can be increased by a certain value, for example, the bandwidth is increased by 1 Mbps on the original basis.
  • R is in bytes
  • BD is in Mbps
  • T is the time from when the TCP packet arrives at the client to when the TCP ACK packet arrives at the server.
  • Get, in ms. TH is the second preset multiplier threshold, which varies depending on the usage scenario. Specifically:
  • the downlink bandwidth BD is: downlink bandwidth or downlink session bandwidth or adjusted downlink packet bandwidth.
  • the downlink bandwidth can be the access bandwidth of the client, such as the 6 Mbps bandwidth provided by the operator for the client.
  • the downlink session bandwidth may be a video media traffic or a fixed code rate.
  • the adjusted downlink packet bandwidth of the video media that the user is currently watching is the bandwidth of the plurality of downlink packets transmitted in the downlink session.
  • the obtained downlink packet bandwidth is re-adjusted. For example, three downlink packets are transmitted in one downlink session—downlink A, with a bandwidth of 2 Mbps, downlink B, with a bandwidth of 3 Mbps, and downlink C with a bandwidth of 4 Mbps.
  • the bandwidth of each packet is re-adjusted according to the average allocated bandwidth.
  • the bandwidth of the three downlink packets is 3 Mbps.
  • the downlink bandwidth BD is 3 Mbps.
  • S206 Select a receiving window with a small value in the current receiving window and the recommended receiving window as a receiving window of the client, and the receiving window is the maximum number of bytes currently received by the client.
  • S207 Replace the receiving window with the value of the window field in the TCP header of the TCP ACK packet, and send the replaced TCP ACK packet to the server.
  • the server sets the current congestion window cwnd as the receiving window, and controls according to the current congestion window C d . The number of bytes sent by TCP packets.
  • the checksum field value in the TCP ACK packet is the checksum calculated for all the fields in the TCP ACK packet. Therefore, when the value of the windows field is replaced, the checksum needs to be recalculated and replaced. The checksum field value is guaranteed to be valid for transmitting TCP ACK messages.
  • the value of the Acknowledge Number field in the TCP header of the currently sent TCP ACK packet is different from the value of the Acknowledge Number field in the TCP header of the TCP ACK packet sent by the client for the same TCP connection or is stored.
  • the TCP message requesting the retransmission of the TCP ACK message is found in the device, the current receiving window and the recommended receiving window of the client are obtained, and the receiving window with a small value is selected as the receiving window of the client, and the TCP ACK is reported.
  • the value of the window field in the text is replaced by the receiving window, and the replaced TCP ACK message is sent.
  • the server receives the replaced TCP ACK packet, and uses the receiving window in the TCP ACK packet as the maximum number of bytes of the TCP packet sent by the server.
  • the embodiment of the present invention reduces the maximum number of bytes that the server sends TCP packets by reducing the client receiving window, thereby reducing network congestion and improving network resource utilization.
  • the technical solution of the present invention which is essential or contributes to the prior art, may be embodied in the form of a software product stored in a storage medium, including a plurality of instructions for causing a A computer forwarding device (which may be a personal computer, server, or network forwarding device, etc.) performs all or part of the steps of the methods described in various embodiments of the present invention.
  • the foregoing storage medium includes: a read only memory (ROM), a random access memory (RAM), a magnetic disk, or an optical disk, and the like, which can store program codes.
  • the embodiment of the present invention further provides a forwarding device, and the structure diagram is as shown in the figure.
  • the ACK packet receiving module 31 is configured to receive a TCP ACK packet currently sent by the client.
  • the field value judging module 32 is configured to determine an Acknowledge Number field value in a TCP header of a TCP ACK message currently sent by the client, and an Acknowledge in a TCP header of the TCP ACK message sent by the client to the same TCP connection. Number field value.
  • the TCP packet search module 33 is configured to: Acknowledge Number field value in the TCP header of the TCP ACK packet currently sent by the client, and Acknowledge in the TCP header of the TCP ACK packet sent by the client to the same TCP connection.
  • the TCP device searches for the TCP packet requesting retransmission in the storage device.
  • the storage device is a cache.
  • the cache can be embedded in the forwarding device or externally attached to the forwarding device.
  • the TCP packet sending module 34 is configured to discard the TCP ACK packet and send the TCP packet requesting retransmission to the TCP packet when the TCP ACK packet is requested to be retransmitted in the storage device.
  • the client that sent the TCP ACK message is configured to discard the TCP ACK packet and send the TCP packet requesting retransmission to the TCP packet when the TCP ACK packet is requested to be retransmitted in the storage device. The client that sent the TCP ACK message.
  • the field value judging module 32 can determine the value of the Acknowledge Number field in the TCP header of the TCP ACK message sent by the last client. Therefore, the field value judging module 32 includes: a first current field value obtaining unit 321, a last field value obtaining unit 322, and a first judging unit 323, and a structure diagram is shown in FIG. among them:
  • the first current field value obtaining unit 321, is configured to parse the current TCP ACK message, and obtain an Acknowledge Number field value in the TCP header of the TCP ACK message as the current Acknowledge Number field value.
  • the last field value obtaining unit 322 is configured to parse the TCP ACK message sent by the client that sends the current TCP ACK message to the same TCP connection, and obtain the Acknowledge Number field value in the TCP header of the TCP ACK message. Last Acknowledge Number field value.
  • the first determining unit 323 is configured to determine whether the current Acknowledge Number field value and the last Acknowledge Number field value are the same.
  • the field value judging module 32 may also store the Acknowledge Number field value in the TCP header of the TCP ACK message sent by the same client each time, and determine the Acknowledge Number field in the TCP header of the currently sent TCP ACK message. The value and the previously stored Acknowledge Number field value.
  • the schematic diagram of the structure is as shown in FIG. 5, including: a field storage unit 324, a second current field value obtaining unit 325, and a second judgment. Unit 326. among them:
  • the field storage unit 324 is configured to store an Acknowledge Number field value in a TCP header of the TCP ACK message sent by the client for the same TCP connection.
  • the second current field value obtaining unit 325 is configured to parse the current TCP ACK packet, and obtain an Acknowledge Number field value in the TCP header of the TCP ACK packet as the current Acknowledge Number field value.
  • the second determining unit 326 is configured to determine whether the current Acknowledge Number field value and the stored Acknowledge Number field value are the same, when the current Acknowledge Number field value is the same as the stored Acknowledge Number field value, at least one Acknowledge Number field value is the same It is determined that the current Acknowledge Number field value is the same as the stored Acknowledge Number field value. Otherwise, it is determined that the current Acknowledge Number field value is not the same as the stored Acknowledge Number field value.
  • the forwarding device can also store the TCP ACK packet sent by the client each time for the same TCP connection, and separately parse the stored TCP ACK packet and the currently received TCP ACK packet to obtain the respective Acknowledge Number.
  • the field value is judged.
  • the structure of the field value judging module includes: a message storage unit 327, a third current field value obtaining unit 328, a storage field obtaining unit 329, and a third judging unit 330. among them:
  • the message storage unit 327 is configured to store a TCP ACK message sent by the client for the same TCP connection each time.
  • the third current field value obtaining unit 328 is configured to parse the current TCP ACK packet, and obtain an Acknowledge Number field value in the TCP header of the TCP ACK packet as the current Acknowledge Number field value.
  • the storage field obtaining unit 329 is configured to parse the stored TCP ACK packet, and obtain an Acknowledge Number field value in the TCP header of the stored TCP ACK packet as the stored Acknowledge Number field value.
  • the third determining unit 330 is configured to determine whether the current Acknowledge Number field value and the stored Acknowledge Number field value are the same, when the current Acknowledge Number field value is the same as the value of the stored Acknowledge Number field value in the stored Acknowledge Number field value, It is determined that the current Acknowledge Number field value is the same as the stored Acknowledge Number field value. Otherwise, it is determined that the current Acknowledge Number field value is not the same as the stored Acknowledge Number field value.
  • the existing packet processing method leads to increased network congestion.
  • the other aspect of network resource utilization reduction is: The server disables the congestion window cwnd, and the number of bytes of TCP packets sent is not set according to the receiving window of the client.
  • the inventor has found that when the server disables the congestion window cwnd, the number of bytes of TCP packets sent by the server is reduced according to the receiving window control server, which reduces the number of bytes of TCP packets sent during network congestion, which can reduce network congestion. , improve network resource utilization.
  • the forwarding device provided by the embodiment of the present invention further includes: a window obtaining module 35, a window selecting module 36, and a TCP ACK packet sending module 37, as shown in FIG.
  • the window obtaining module 35 is configured to: when determining the Acknowledge Number field value in the TCP header of the currently sent TCP ACK message, and the Acknowledge in the TCP header of the TCP ACK message sent by the client to the same TCP connection.
  • the current receiving window and the recommended receiving window of the client that sends the current TCP ACK packet are obtained when the value of the number field is not the same or the TCP packet that is requested to be retransmitted by the currently received TCP ACK packet is not found in the storage device.
  • the window selection module 36 is configured to select a receiving window with a small value in the current receiving window and the recommended receiving window as a receiving window of a client that sends a current TCP ACK message, where the receiving window is to send a current TCP ACK message.
  • the TCP ACK packet sending module 37 is configured to replace the receiving window with a window field value in a TCP header of the current TCP ACK packet, and send the replaced TCP ACK packet to the server, where the server controls the TCP packet according to the receiving window. The number of bytes sent.
  • the checksum field value in the TCP ACK packet is the checksum calculated for all the fields in the TCP ACK packet. Therefore, when the window field value is replaced, the checksum needs to be recalculated and replaced. The checksum field value is guaranteed to be valid for transmitting TCP ACK messages.
  • the structure of the window obtaining module 35 includes a parsing unit 351 and a window obtaining unit 352. among them:
  • the parsing unit 351 is configured to parse the TCP ACK packet currently sent by the received client.
  • the window obtaining unit 352 is configured to obtain a window field value in the TCP header of the TCP ACK packet, where the window field value is a current receiving window of the client that sends the current TCP ACK packet.
  • the window obtaining module 35 further includes, on the basis of FIG. 9 , a first parameter obtaining unit 353, a first calculating unit 354, and a first acquiring unit, when the direction of the current TCP ACK packet is the downlink direction, in order to obtain the recommended receiving window of the client. 355, as shown in Figure 10. among them:
  • the first parameter obtaining unit 353 is configured to obtain an uplink bandwidth BD and a packet round-trip time T when the direction of the current TCP ACK packet is in a downlink direction, and the uplink bandwidth BD is: an uplink bandwidth or an uplink session bandwidth or an adjusted uplink. Text bandwidth.
  • the first calculating unit 354 is configured to calculate a product of the uplink bandwidth BD and the packet round trip time T to obtain a product result.
  • the window obtaining module 35 further includes, on the basis of FIG. 9 , a second parameter obtaining unit 356, a second calculating unit 357, and a second acquiring unit, when the direction of the current TCP ACK packet is in the uplink direction, in order to obtain the recommended receiving window of the client. 358, as shown in FIG. among them:
  • the second parameter obtaining unit 356 is configured to obtain the downlink bandwidth BD and the packet round-trip time T when the direction of the current TCP ACK packet is in the uplink direction, where: the downlink bandwidth BD is: downlink bandwidth or downlink session bandwidth or adjusted Downstream packet bandwidth.
  • a second calculating unit 357 configured to calculate a product of the downlink bandwidth BD and a packet round trip time T, to obtain a product result
  • the second obtaining unit 358 is configured to obtain a product of the product result and a second preset multiplier threshold, and use a product of the product result and a second preset multiplier threshold as a proposal for sending a client of the current TCP ACK message. Receive window.
  • the embodiment of the present invention further provides a packet processing system, including a client, a server, and a forwarding device, where the client and the server send a message through the forwarding device.
  • the forwarding device is configured to receive a TCP ACK message currently sent by the client, and determine the value of the Acknowledge Number field in the TCP header of the currently sent TCP ACK message and the TCP ACK message sent by the client to the same TCP connection.
  • the TCP packet that is requested to be retransmitted by the TCP ACK packet is obtained, and when the TCP ACK packet is requested to be retransmitted in the storage device, The TCP ACK packet is discarded, and the TCP packet is sent to the client that sends the TCP ACK packet.
  • the forwarding device is further configured to: determine, when the Acknowledge Number field value in the TCP header of the currently sent TCP ACK packet is the Acknowledge Number field value in the TCP header of the TCP ACK packet sent by the client to the same TCP connection.
  • the current receiving window and the recommended receiving window of the client that sends the current TCP ACK packet are obtained, and the current receiving is selected.
  • a receiving window having a small value in the window and the recommended receiving window is used as a receiving window of a client that sends a current TCP ACK packet, where the receiving window is the maximum number of bytes currently received by the client that sends the current TCP ACK packet.
  • the receiving window replaces the value of the window field in the current TCP ACK packet, and sends the replaced TCP ACK packet to the server.
  • the server controls the number of bytes sent by the TCP packet according to the receiving window.
  • the foregoing device embodiment and system embodiment may adopt the packet processing method provided in the foregoing method embodiment, to solve the problem in the prior art, the server disables the congestion window cwnd, which may result in the failure to adjust the number of bytes sent by the server according to network congestion. Further aggravating network congestion and reducing the utilization of network resources.
  • the device embodiment since it basically corresponds to the method embodiment, reference may be made to a part of the description of the method embodiment.
  • the device embodiments described above are merely illustrative, wherein the units described as separate components may or may not be physically separated, and the components displayed as units may or may not be physical units, ie may be located One place, or it can be distributed to multiple network elements. Some or all of the modules may be selected according to actual needs to achieve the objectives of the embodiments of the present invention. Those of ordinary skill in the art can understand and implement without any creative effort.
  • the disclosed apparatus and method may be implemented in other manners without departing from the spirit and scope of the invention.
  • the present embodiments are merely exemplary, and should not be taken as limiting, and the specific content given should not limit the purpose of the application.
  • the division of the unit or subunit is only a logical function division, and the actual implementation may have another division manner, for example, multiple units or multiple subunits are combined.
  • multiple units may or may be combined or integrated into another system, or some features may be omitted or not implemented.

Landscapes

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

Abstract

本发明实施例公开了一种报文处理方法、转发设备及***。一种报文处理方法,包括:接收客户端当前发送的TCPACK报文;当前发送的TCPACK报文的TCP头中的AcknowledgeNumber字段值与之前针对同一个TCP连接发送的TCPACK报文的TCP头中的AcknowledgeNumber字段值相同时,在存储设备内查找TCPACK报文请求重传的TCP报文;当查找到请求重传的TCP报文时,丢弃TCPACK报文,发送TCP报文至客户端。与现有技术中,TCP报文任何时刻直接从服务器经由转发设备发送至客户端来说,节省了服务器至转发设备之间的带宽,进而降低了网络拥塞,提高网络资源利用率。

Description

一种报文处理方法、 转发设备及*** 本申请要求于 2011年 3 月 29日提交中国专利局、 申请号为 201110078459. X、 发 明名称为 "一种报文处理方法、 转发设备及***"的中国专利申请的优先权, 其全部内 容通过引用结合在本申请中。 技术领域 本发明涉及通信技术领域,更具体地说,涉及一种报文处理方法、转发设备及***。 背景技术 当前网络中, 网络流量主要构成为视频业务流量。 2010年 10月 20 日, Sandvine 公司发布对网络流量的监控报告, Netfl ix的视频业务流量占全美国晚上 8点到 10点下 行数据量的 20%。 且预计到 2014年, 视频业务流量在网络流量的占比将达到 91%。
视频数据在传输过程中采用 TCP报文的格式, 通过滑动窗口机制传输。 具体过程如 下:
步骤 A: 客户端和服务器之间建立 TCP连接, 服务器和客户端分别将自身最大数据 接收量发送给对方。
需要指出的是: 服务器在接收到来自客户端的 TCP ACK报文(即 TCP确认消息, 该 消息的 TCP头 ACK标志位被设置为 1)之前一次性发送的数据量不会超过客户端的最大可 接收的数据量。 同时, 客户端会在 TCP ACK报文中携带自身当前最大数据接收量(即通 过 TCP头的 window字段标识);
服务器的发送窗口即一次性发送的数据量不大于客户端最大可接收的数据量和拥 塞窗口 cwnd之间数值小的数据量。
步骤 B: 服务器发送第一个 TCP报文;
服务器接收第一个 TCP ACK报文, 并将拥塞窗口 cwnd设为 2个报文数目, 即服务 器可一次性发送两个 TCP报文至客户端;
服务器连续发送后续的两个 TCP报文, 接收第二个和第三个 TCP ACK报文, 并将拥 塞窗口 cwnd设为 4, 即服务器可一次性发送四个 TCP报文至客户端;
后续服务器发送 TCP报文并收到来自客户端针对该 TCP连接的所有 TCP ACK报文后, 服务器每收到一个 TCP ACK报文就将 cwnd增加 1, 此过程称为 SS ( slow start , 慢启 动) 阶段, 直至拥塞窗口 cwnd增加到慢启动阶段阈值 ssthresh, 对于大多数 TCP实现 来说, ssthresh的值是 65536字节。
步骤 C: 当拥塞窗口 c d增加到慢启动阶段阈值后, 在服务器发送的所有 TCP报文 都被客户端通过 TCP ACK确认成功接收后, 服务器拥塞窗口 c d增加 1, 此过程为 CA ( congestion avoidance, 拥塞避免), 直至拥塞窗口 cwnd达到客户端的最大的接收数 据接收量。
步骤 D: 客户端检查收到的 TCP报文的序列号, 当 TCP报文的 TCP头中的序列号大 于客户端上次收到的 TCP报文的 TCP头序列号与上次收到的 TCP报文负荷 (不含 TCP头) 字节数之和时, 表明 TCP报文丢失, 客户端重复发送 TCP ACK报文请求服务器重传丢失 的 TCP报文。
服务器感受到丢包后, 将慢启动阶段阈值设置 ssthresh为当前拥塞窗口 cwnd的一 半, 将拥塞窗口 cwnd重新设置为 1, 重新进入慢启动阶段 (SS)。
从上述 TCP报文处理过程可以看到, 当 TCP报文丢失后, TCP的拥塞窗口 cwnd迅速 降低、 同时花费时间处理重传, 这意味着 TCP的吞吐量迅速下降, 对于那些时延及吞吐 量敏感的实时应用如视频通讯而言, 用户的体验会显著下降。
针对这个问题,服务器禁用了拥塞窗口 C d, 这会导致无法根据网络拥塞情况调节 服务器发送字节数目, 进一步加剧了网络拥塞, 降低了网络资源利用率。 发明内容 为解决上述技术问题, 本发明实施例提供一种报文处理方法、 转发设备及***, 以 解决现有技术中服务器禁用拥塞窗口 C d所导致的网络拥塞进一步加剧, 网络资源利用 率进一步降低的问题, 技术方案如下:
基于本发明实施例的一个方面, 提供一种报文处理方法, 包括:
接收客户端当前发送的 TCP ACK报文;
当判断客户端当前发送的 TCP ACK 报文的 TCP 头中的确认号码 (Acknowledge
Number) 字段值与所述客户端之前针对同一个 TCP连接发送的 TCP ACK报文的 TCP头中 的 Acknowledge Number字段值相同时, 在存储设备内查找所述 TCP ACK报文请求重传 的 TCP报文;
当在存储设备内查找到所述 TCP ACK报文请求重传的 TCP报文时,丢弃所述 TCP ACK 报文, 发送所述 TCP报文至发送该 TCP ACK报文的客户端。 基于本发明实施例的另一方面, 提供一种转发设备, 包括:
ACK报文接收模块, 用于接收客户端当前发送的 TCP ACK报文;
字段值判断模块, 用于判断客户端当前发送的 TCP ACK 报文的 TCP 头中的 Acknowledge Number字段值与所述客户端之前针对同一个 TCP连接发送的 TCP ACK报 文的 TCP头中的 Acknowledge Number字段值;
TCP 报文查找模块, 用于当判断客户端当前发送的 TCP ACK 报文的 TCP 头中的 Acknowledge Number字段值与所述客户端之前针对同一个 TCP连接发送的 TCP ACK报文 的 TCP头中的 Acknowledge Number字段值相同时, 在存储设备内查找所述 TCP ACK报 文请求重传的 TCP报文;
TCP报文发送模块, 用于当在存储设备内查找到所述 TCP ACK报文请求重传的 TCP 报文时, 丢弃所述 TCP ACK报文, 发送所述 TCP报文至发送该 TCP ACK报文的客户端。
基于本发明实施例的另一方面, 提供一种报文处理***, 包括客户端、 服务器和转 发设备, 所述客户端和所述服务器之间通过所述转发设备发送报文, 所述转发设备用于 接收客户端当前发送的 TCP ACK报文, 判断客户端当前发送的 TCP ACK报文的 TCP头中 的 Acknowledge Number字段值与所述客户端针对同一个 TCP连接发送的 TCP ACK报文 的 TCP头中的 Acknowledge Number字段值相同时, 在存储设备内查找所述 TCP ACK报 文请求重传的 TCP报文, 当在存储设备内查找到所述 TCP ACK报文请求重传的 TCP报文 时, 丢弃所述 TCP ACK报文, 发送所述 TCP报文至发送该 TCP ACK报文的客户端。
应用上述技术方案, 转发设备接收到 TCP ACK报文后, 判断当前发送的 TCP ACK报 文的 TCP头中的 Acknowledge Number字段值与所述客户端之前针对同一个 TCP连接发 送的 TCP ACK报文的 TCP头中的 Acknowledge Number字段值相同时, 在存储设备内查 找所述 TCP ACK报文请求重传的 TCP报文; 当在存储设备内查找到所述 TCP ACK报文请 求重传的 TCP报文时, 转发设备发送 TCP报文至发送客户端。 与现有技术中, TCP报文 任何时刻都直接从服务器经由转发设备发送至客户端来说,节省了服务器至转发设备之 间的带宽, 提高带宽利用率, 进而降低了网络拥塞, 提高网络资源利用率。 附图说明 图 1为本发明实施例提供的报文处理方法的一种流程图;
图 2为本发明实施例提供的报文处理方法的另一种流程图; 图 3为本发明实施例提供的转发设备的一种结构示意图;
图 4为转发设备中字段值判断模块的一种结构示意图;
图 5为转发设备中字段值判断模块的另一种结构示意图;
图 6为转发设备中字段值判断模块的再一种结构示意图;
图 7为本发明实施例提供的转发设备的另一种结构示意图;
图 8为转发设备中窗口获取模块的一种结构示意图;
图 9为转发设备中窗口获取模块的另一种结构示意图;
图 10为转发设备中窗口获取模块的再一种结构示意图。 具体实施方式 为了方便本领域技术人员更好的了解本发明,首先简单阐述一下 TCP报文和 TCP ACK 报文。
服务器和客户端之间通过转发设备建立 TCP连接, 以发送报文。 服务器通过 TCP连 接发送 TCP报文至客户端。 TCP 报文的 TCP头中的 "Sequence Number"字段携带报文负 荷中第一个数据字节的序列号。客户端在接收到 TCP报文后,通过 TCP连接发送 TCP ACK 报文至服务器。 TCP ACK报文的 TCP头中的 "Acknowledge Number"字段值, 表明客户端 报文所期待的来自服务器的下一个报文的 "Sequence Number"的字段值,同时也意味着客 户端已经接收到服务器发送所有" Sequence Number"的值在所述 TCP ACK的" Acknowledge Number"之前的数据。
下面通过一个具体实例来说明, IP地址为 192. 168. 0. 199 的服务器和 IP地址为
192. 168. 0. 8的客户端通过转发设备发送报文。 转发设备接收到的第一个报文为: 服务 器发送的 TCP报文, 该 TCP报文中 TCP头的" Sequence Number"字段值为 14481, 表明该 报文负荷中第一字节序列数为 14481。
第二个报文为:服务器发送的 TCP报文,该 TCP报文中的 TCP头的" Sequence Number" 字段值为 15929, 表明该报文负荷第一字节序列数为 15529。该报文 TCP头中的 "Sequence Number"是这样计算的: 以该服务器上次在该 TCP连接上发送的 TCP报文的 "Sequence Number"字段值加上上次 TCP 报文负荷发送的字节数即得到这次报文 TCP 头中的 "Sequence Number" , 14481+1448=15929。
假如: 第二个报文中的 TCP头的" Sequence Number"字段值为 17377, 表明表明该报 文负荷第一字节序列数为 17377。 由于上一次 TCP报文中 TCP头的" Sequence Number" 字段值为 14481, TCP报文负荷字节数为 1448,那么第二个报文中的 TCP头的" Sequence Number"字段值应该为 15929, 而不是 17377。 当存在该情况时, 表明服务器发送的第二 个报文(即 TCP头中的 "Sequence Number"为 15929的 TCP报文)丢失。
第三个报文为: 客户端发送的 TCP ACK 报文, 该 TCP ACK 报文中的 TCP 头的 "Acknowledge Number"字段值为 15929, 表明该报文所期待的来自服务器的下一个报文 的" Sequence Number"字段值为 15929。 客户端发送的该 TCP ACK报文表明客户端已成功 收到第一个报文(即已经接收到服务器发送所有" Sequence Number"的值 15929之前的报 文数据)。 这是在收到第一个报文后发送的应答。
假如: 第三个报文中的 TCP头的" Acknowledge Number"字段值为 14481, 表明该报 文所期待的来自服务器的下一个报文的 "Sequence Number"字段值为 14481。而服务器发 送的第二个报文的" Sequence Number"字段值为 15929, 而客户端发送的该 TCP ACK报文 表明客户端仍要接收第一个报文, 也就是说客户端未成功接收第一个报文。 当存在该情 况时, 表明服务器发送的第一个报文丢失。
一个实施例
发明人经研究发现, TCP报文重传是导致网络拥塞加剧, 网络资源利用率降低的一 方面。 具体来说, 当网络发生拥塞, TCP报文丢失时, 转发设备将接收的 TCP ACK报文 发送给服务器, 由服务器查找该 TCP ACK报文请求重传的 TCP报文, 再将 TCP报文通过 转发设备发送给客户端。 这样, 会进一步加剧网络拥塞, 降低网络资源利用率。
为了解决上述问题, 本发明实施例提供一种报文处理方法, 由于转发设备会在存储 设备——缓存内存储接收到的 TCP报文, 所以, 在网络发生拥塞, TCP报文丢失时, 可 以由转发设备在其缓存内获取 TCP ACK报文请求重传的 TCP报文, 如果在缓存内获取到 请求重传的 TCP报文, 直接由转发设备发送请求重传的 TCP报文。 这样就节省了服务器 至转发设备之间的带宽, 提高带宽利用率, 降低了网络拥塞。 方法流程图可以参阅图 1 所示, 包括:
S 101 : 接收客户端发送的 TCP ACK报文。
TCP ACK报文是由客户端发送给转发设备, 再由转发设备发送给服务器, 以表明客 户端接收到服务器发送的 TCP报文。转发设备接收到的报文的 TCP头中的 Control Bits 字段中的 ACK字段值设置为 1时, 表明接收到的报文为 TCP ACK报文。
S 102 : 判断当前发送的 TCP ACK报文的 TCP头中的 Acknowledge Number字段值与 客户端之前发送的 TCP ACK报文的 TCP头中的 Acknowledge Number字段值是否相同, 如果是, 执行步骤 S 103 , 如果否, 执行步骤 S 106。 由于一个服务器可以同时与多个客户端建立多个 TCP连接, 即转发设备会同时接收 多个客户端发送的 TCP ACK报文,所以步骤 S102应该解析同一个客户端针对同一个 TCP 连接发送的 TCP ACK报文。 服务器和客户端发送的报文的 TCP头中的源 IP地址、 目标 IP地址、 协议类型、 TCP源端口和 TCP目的端口唯一标识服务器和客户端间 TCP连接, 不同的 TCP连接的源 IP地址、 目标 IP地址、 协议类型、 TCP源端口和 TCP目的端口的 字段值中的一个或多个是不同的。 因此, 通过解析报文的 TCP头中的源 IP地址、 目标 IP地址、 协议类型、 TCP源端口和 TCP目的端口字段值, 即可获知 TCP ACK报文是否为 同一个客户端针对同一个 TCP连接发送。
步骤 S102在判断当前发送的 TCP ACK报文的 TCP头中的 Acknowledge Number字段 值与客户端之前发送的 TCP ACK报文的 TCP头中的 Acknowledge Number字段值是否相 同时, 可以将当前发送的 TCP ACK报文的 TCP头中的 Acknowledge Number字段值与上 一次同一个客户端发送的 TCP ACK报文的 TCP头中的 Acknowledge Number字段值进行 判断。
转发设备还可以存储每次接收到的客户端针对同一个 TCP连接发送的 TCP ACK报文 的 TCP头中的 Acknowledge Number字段值至一个列表中, 判断当前发送的 TCP ACK报 文的 TCP头中的 Acknowledge Number字段值和存储的 Acknowledge Number字段值, 在 当前发送的 TCP ACK 报文的 TCP 头中的 Acknowledge Number 字段值与存储的 Acknowledge Number字段值中至少一个 Acknowledge Number字段值相同时, 则判断当 前发送的 TCP ACK报文的 TCP头中的 Acknowledge Number字段值与存储的 Acknowledge Number字段值相同, 否则, 判断当前发送的 TCP ACK报文的 TCP头中的 Acknowledge Number字段值与存储的 Acknowledge Number字段值不相同。
当然, 转发设备还可以将存储每次接收到的客户端针对同一个 TCP连接发送的 TCP ACK报文, 分别解析存储的 TCP ACK报文和当前接收到的 TCP ACK报文, 获取各自的 Acknowledge Number 字段值并进行判断, 在当前发送的 TCP ACK 报文的 TCP 头中的 Acknowledge Number字段值与存储的 TCP ACK报文的 TCP头中的 Acknowledge Number 字段值中至少一个 Acknowledge Number字段值相同时, 则判断当前发送的 TCP ACK报 文的 TCP 头中的 Acknowledge Number 字段值与存储的 TCP ACK 报文的 TCP 头中的 Acknowledge Number字段值相同, 否则, 判断当前发送的 TCP ACK报文的 TCP头中的 Acknowledge Number字段值与存储的 TCP ACK报文的 TCP头中的 Acknowledge Number 字段值不相同。
S103: 判断在缓存内是否能够查找 TCP ACK报文请求重传的 TCP报文, 如果是, 执 行步骤 S104, 如果否, 执行步骤 S105。 其中: 缓存可以内嵌在转发设备, 也可以外挂 在转发设备。
S104: 丢弃 TCP ACK报文, 发送请求重传的 TCP报文, 即查找到的 TCP报文至发送 客户端。
S105: 将 TCP ACK报文发送至服务器, 由服务器经过转发设备发送 TCP ACK报文请 求发送的 TCP报文至发送客户端。
下面以 IP地址为 192. 168. 0. 198的服务器和 IP地址为 192. 168. 0. 9的客户端通过 转发设备发送报文, 服务器发送的报文的字节数为 1400, 来阐述本发明。
转发设备接收到的第一个报文为: 服务器发送的 TCP报文, 该 TCP报文中 TCP头的 "Sequence Number"字段值为 14000, 表明该报文负荷中第一字节序列数为 14000。
第二个报文为:服务器发送的 TCP报文,该 TCP报文中的 TCP头的" Sequence Number" 字段值为 15400, 表明该报文负荷第一字节序列数为 15400。
第三个报文为: 客户端发送的 TCP ACK 报文, 该 TCP ACK 报文中的 TCP 头的 "Acknowledge Number"字段值为 15400, 表明该报文所期待的来自服务器的下一个报文 的" Sequence Number"字段值为 15400。 客户端发送的该 TCP ACK报文表明客户端已成功 收到第一个报文。 这是在收到第一个报文后发送的应答。
第四个报文为: 客户端发送的 TCP ACK 报文, 该 TCP ACK 报文中的 TCP 头的 "Acknowledge Number"字段值为 15400, 表明该报文所期待的来自服务器的下一个报文 的" Sequence Number"字段值仍为 15400, 也就是说客户端未成功接收到第二个报文。
转发设备将第四个报文的 TCP头中的 Acknowledge Number字段值和第三个报文的
TCP头中的 Acknowledge Number字段值进行比较, 判断出第四个报文和第三个报文的 TCP头中的 Acknowledge Number字段值相同,表明客户端未成功接收到服务器发送的第 二个报文。 转发设备在缓存内获取第四个报文请求重传的 "Sequence Number"字段值为 15400的报文, 即第二个报文。 如果转发设备从缓存内获取到第二个报文, 则转发设备 直接将获取到的第二个报文发送给客户端。 如果服务器发送第二个报文至转发设备时, 报文丢失, 则转发设备不能从缓存内获取到第二个报文, 则转发设备将第四个报文发送 到服务器, 由服务器将第四个报文请求重传的 "Sequence Number"字段值为 15400的报 文, 即第二个报文通过转发设备发送给客户端。
应用上述技术方案, 转发设备接收到 TCP ACK报文后, 判断当前发送的 TCP ACK报 文的 TCP头中的 Acknowledge Number字段值与客户端之前针对同一个 TCP连接发送的 TCP ACK报文的 TCP头中的 Acknowledge Number字段值相同, 在存储设备内查找所述 TCP ACK报文请求重传的 TCP报文; 当在存储设备内查找到所述 TCP ACK报文请求重传 的 TCP报文时, 转发设备发送 TCP报文至发送客户端。 与现有技术中, TCP报文任何时 刻都直接从服务器经由转发设备发送至客户端来说,节省了服务器至转发设备之间的带 宽, 提高带宽利用率, 进而降低了网络拥塞, 提高网络资源利用率。。 另一个实施例
现有的报文处理方法导致网络拥塞加剧, 网络资源利用率降低的另一方面为: 服务 器禁用了拥塞窗口 cwnd, 发送的 TCP报文的字节数不是依据客户端的接收窗口设定的。 发明人经过多次实践发现在服务器禁用拥塞窗口 cwnd时, 依据接收窗口控制服务器发 送 TCP报文的字节数的方式, 在网络拥塞时降低发送 TCP报文的字节数, 可以降低网络 拥塞, 提高网络资源利用率。
为了实现上述目的,本发明实施例提供的报文处理方法的另一种流程图请参阅图 2, 包括:
S201 : 接收客户端发送的 TCP ACK报文。
TCP ACK报文是由客户端发送给转发设备, 再由转发设备发送给服务器, 以表明客 户端接收到服务器发送的 TCP报文。转发设备接收到的报文的 TCP头中的 Control Bits 字段中的 ACK字段值设置为 1时, 表明接收到的报文为 TCP ACK报文。
S202 : 判断当前发送的 TCP ACK报文的 TCP头中的 Acknowledge Number字段值是 否为重复字段值, 如果是, 执行步骤 S203 , 如果否, 执行步骤 S205。
由于一个服务器可以同时与多个客户端建立多个 TCP连接, 即转发设备会同时接收 多个客户端发送的 TCP ACK报文,所以步骤 S202应该解析同一个客户端针对同一个 TCP 连接发送的 TCP ACK报文。 服务器和客户端发送的报文的 TCP头中的源 IP地址、 目标 IP地址、 协议类型、 TCP源端口和 TCP目的端口唯一标识服务器和客户端间 TCP连接, 不同的连接的源 IP地址、 目标 IP地址、 协议类型、 TCP源端口和 TCP目的端口的字段 值中的一个或多个是不同的。 因此, 通过解析报文的 TCP头中的源 IP地址、 目标 IP地 址、 协议类型、 TCP源端口和 TCP目的端口字段值, 即可获知 TCP ACK报文是否为同一 个客户端针对同一个 TCP连接发送。
步骤 S202在判断当前发送的 TCP ACK报文的 TCP头中的 Acknowledge Number字段 值与客户端之前发送的 TCP ACK报文的 TCP头中的 Acknowledge Number字段值是否相 同时, 可以将当前发送的 TCP ACK报文的 TCP头中的 Acknowledge Number字段值与上 一次同一个客户端发送的 TCP ACK报文的 TCP头中的 Acknowledge Number字段值进行 判断。
转发设备还可以存储每次接收到的客户端针对同一个 TCP连接发送的 TCP ACK报文 的 TCP头中的 Acknowledge Number字段值至一个列表中, 判断当前发送的 TCP ACK报 文的 TCP头中的 Acknowledge Number字段值和存储的 Acknowledge Number字段值, 在 当前发送的 TCP ACK 报文的 TCP 头中的 Acknowledge Number 字段值与存储的 Acknowledge Number字段值中至少一个 Acknowledge Number字段值相同时, 则判断当 前发送的 TCP ACK报文的 TCP头中的 Acknowledge Number字段值与存储的 Acknowledge Number字段值相同, 否则, 判断当前发送的 TCP ACK报文的 TCP头中的 Acknowledge Number字段值与存储的 Acknowledge Number字段值不相同。
当然, 转发设备还可以将存储每次接收到的客户端针对同一个 TCP连接发送的 TCP
ACK报文, 分别解析存储的 TCP ACK报文和当前接收到的 TCP ACK报文, 获取各自的 Acknowledge Number 字段值并进行判断, 在当前发送的 TCP ACK 报文的 TCP 头中的 Acknowledge Number字段值与存储的 TCP ACK报文的 TCP头中的 Acknowledge Number 字段值中至少一个 Acknowledge Number字段值相同时, 则判断当前发送的 TCP ACK报 文的 TCP 头中的 Acknowledge Number 字段值与存储的 TCP ACK 报文的 TCP 头中的 Acknowledge Number字段值相同, 否则, 判断当前发送的 TCP ACK报文的 TCP头中的 Acknowledge Number字段值与存储的 TCP ACK报文的 TCP头中的 Acknowledge Number 字段值不相同。
S203: 判断在缓存内是否能够查找 TCP ACK报文请求重传的 TCP报文。 如果是, 执 行步骤 S204, 如果否, 执行步骤 S205。 其中: 缓存可以内嵌在转发设备, 也可以外挂 在转发设备。
S204: 丢弃 TCP ACK报文, 发送请求重传的 TCP报文, 即查找到的 TCP报文至客户
S205: 获取客户端的当前接收窗口和建议接收窗口。 其中:
TCP ACK报文的 TCP头中的 window字段值为接收窗口。 因此, 在接收到 TCP ACK 报文后,解析该 TCP ACK报文;获取该 TCP ACK报文 TCP头中的 window字段值,该 window 字段值即为发送所述 TCP ACK报文的客户端的当前接收窗口。
客户端的建议接收窗口的获取可以有三种方式, 下面分别对这三种方式进行介绍。 第一种是: 依据预先设置的窗口阈值设置建议接收窗口。 具体为: 可以将建议接收 窗口设置为 0,或者降低当前的接收窗口,如以小于 1的预设系数乘当前接收窗口数值, 将乘积结果作为建议接收窗口。 第二种是: 当 TCP ACK报文的方向为下行方向, 即报文传输从服务器到客户端时, 获取上行带宽 BD和报文往返时间 T, 依据公式: 接收窗口 R= BD*T*TH, 得出计算结果。 将计算结果作为客户端的建议接收窗口。 其中: R以 byte为单位, BD以 Mbps为单位,
T为从 TCP报文到达客户端到 TCP ACK报文到达服务器之间的时间, 可以通过查询 TCP 报文的 TCP头中的 t imestamp字段来获取, 以 ms为单位。 TH为第一预设乘数阈值, 依 据使用场景的不同而不同。 具体为:
假如: BD为 2Mbps, T为 500ms, TH为 120时, 贝 lj
R = 2*106 *500*10 3 *120/8 = 1.5*107 byte 而上行带宽 BD为: 上行线路带宽或者上行会话带宽或者调整后的上行报文带宽。 其中: 上行线路带宽可以是客户端的接入带宽, 如运营商为客户端提供的 2Mbps带宽。 上行会话带宽可以是视频媒体流量或者是固定码率, 如用户当前所观看视频的固定码 率。
而调整后的上行报文带宽是将上行会话中传输的多个上行报文的带宽按照一定规 则重新调整所获取的上行报文带宽。 如: 一个上行会话中传输了 3个上行报文——上行 报文 A, 带宽为 2Mbps ; 上行报文 B, 带宽为 3Mbps ; 上行报文 C, 带宽为 4Mbps。 按照 平均分配带宽的方式重新调整各个报文的带宽, 则 3个上行报文的带宽为 3Mbps。 那么 在计算接收上行报文 A的客户端的建议接收窗口时, 则上行带宽 BD为 3Mbps。 当然, 还 可以将上行报文的带宽全部增加一定的数值, 如: 将带宽在原有的基础上增加 lMbps。
第三种是: 当 TCP ACK报文的方向为上行方向, 即报文传输从客户端到服务器时, 获取下行带宽 BD和报文往返时间 T, 依据公式: 接收窗口 R= BD*T*TH, 得出计算结果。 将计算结果作为客户端的建议接收窗口。 其中: R以 byte为单位, BD以 Mbps为单位, T为从 TCP报文到达客户端到 TCP ACK报文到达服务器之间的时间, 可以通过查询 TCP 报文的 TCP头中的 t imestamp字段来获取, 以 ms为单位。 TH为第二预设乘数阈值, 依 据使用场景的不同而不同。 具体为:
贝 lj
Figure imgf000011_0001
而下行带宽 BD为: 下行线路带宽或者下行会话带宽或者调整后的下行报文带宽。 其中: 下行线路带宽可以是客户端的接入带宽, 如运营商为客户端提供的 6Mbps带宽。 下行会话带宽可以是视频媒体流量或者是固定码率, 如用户当前所观看视频的视频媒体 而调整后的下行报文带宽是将下行会话中传输的多个下行报文的带宽按照一定规 则重新调整所获取的下行报文带宽。 如: 一个下行会话中传输了 3个下行报文——下行 报文 A, 带宽为 2Mbps ; 下行报文 B, 带宽为 3Mbps ; 下行报文 C, 带宽为 4Mbps。 按照 平均分配带宽的方式重新调整各个报文的带宽, 则 3个下行报文的带宽为 3Mbps。 那么 在计算接收下行报文 A的客户端的建议接收窗口时, 则下行带宽 BD为 3Mbps。 当然, 还 可以将下行报文的带宽全部增加一定的数值, 如: 将带宽在原有的基础下增加 lMbps。
S206: 选取当前接收窗口和建议接收窗口中数值小的接收窗口作为客户端的接收窗 口, 接收窗口为客户端当前最大接收的字节数。
S207: 将接收窗口替换 TCP ACK报文的 TCP头中的 window字段值, 并发送替换后 的 TCP ACK报文至服务器, 服务器将当前的拥塞窗口 cwnd设置为接收窗口, 依据当前 拥塞窗口 C d控制 TCP报文发送的字节数。
需要说明的是: TCP ACK报文中的校验和字段值为针对 TCP ACK报文中所有字段计 算的校验和, 因此, 当 windows字段值被替换后, 需要重新计算校验和并替换原来的校 验和字段值, 以保证传输 TCP ACK报文的有效。
应用上述技术方案, 当前发送的 TCP ACK报文的 TCP头中的 Acknowledge Number 字段值与客户端之前针对同一个 TCP连接发送的 TCP ACK报文的 TCP头中的 Acknowledge Number字段值不相同或在存储设备内查找到所述 TCP ACK报文请求重传的 TCP报文时, 获取客户端的当前接收窗口和建议接收窗口,选取两者中数值小的接收窗口作为客户端 的接收窗口, 并将 TCP ACK报文中的 window字段值替换为接收窗口, 发送替换后的 TCP ACK报文。 服务器接收替换后的 TCP ACK报文, 将 TCP ACK报文中的接收窗口作为服务 器控制发送的 TCP报文的最大字节数。 与现有技术相比, 本发明实施例通过降低客户端 接收窗口来降低服务器发送 TCP报文的最大字节数, 进而降低了网络拥塞, 提高网络资 源利用率。
本说明书中的各个实施例均采用递进的方式描述,各个实施例之间相同相似的部分 互相参见即可, 每个实施例重点说明的都是与其他实施例的不同之处。 通过以上的方法 实施例的描述,所属领域的技术人员可以清楚地了解到本发明可借助软件加必需的通用 硬件平台的方式来实现, 当然也可以通过硬件, 但很多情况下前者是更佳的实施方式。 基于这样的理解,本发明的技术方案本质上或者说对现有技术做出贡献的部分可以以软 件产品的形式体现出来, 该计算机软件产品存储在一个存储介质中, 包括若干指令用以 使得一台计算机转发设备 (可以是个人计算机, 服务器, 或者网络转发设备等)执行本 发明各个实施例所述方法的全部或部分步骤。 而前述的存储介质包括: 只读存储器 ( ROM), 随机存取存储器 (RAM)、 磁碟或者光盘等各种可以存储程序代码的介质。 与上述方法实施例相对应的, 本发明实施例还提供一种转发设备, 结构示意图如图
3所示, 包括: ACK报文接收模块 31、 字段值判断模块 32、 TCP报文获取模块 33和 TCP 报文发送模块 34。 其中:
ACK报文接收模块 31, 用于接收客户端当前发送的 TCP ACK报文。
字段值判断模块 32, 用于判断客户端当前发送的 TCP ACK 报文的 TCP 头中的 Acknowledge Number字段值与所述客户端之前针对同一个 TCP连接发送的 TCP ACK报 文的 TCP头中的 Acknowledge Number字段值。
TCP 报文查找模块 33, 用于客户端当前发送的 TCP ACK 报文的 TCP 头中的 Acknowledge Number字段值与所述客户端之前针对同一个 TCP连接发送的 TCP ACK报文 的 TCP头中的 Acknowledge Number字段值相同时, 在存储设备内查找所述 TCP ACK报 文请求重传的 TCP报文。 该存储设备为缓存。 缓存可以内嵌在转发设备, 也可以外挂在 转发设备。
TCP报文发送模块 34,用于当在存储设备内查找到所述 TCP ACK报文请求重传的 TCP 报文时, 丢弃所述 TCP ACK报文, 发送所述请求重传的 TCP报文至发送该 TCP ACK报文 的客户端。
上述字段值判断模块 32可以通过与上一次客户端发送的 TCP ACK报文的 TCP头中 的 Acknowledge Number字段值进行判断。 因此, 字段值判断模块 32包括: 第一当前字 段值获取单元 321、 上一次字段值获取单元 322和第一判断单元 323, 结构示意图请参 阅图 4所示。 其中:
第一当前字段值获取单元 321, 用于解析当前的 TCP ACK报文, 获取该 TCP ACK报 文的 TCP头中的 Acknowledge Number字段值作为当前 Acknowledge Number字段值。
上一次字段值获取单元 322, 用于解析发送当前 TCP ACK报文的客户端上一次针对 同一个 TCP连接发送的 TCP ACK报文, 获取该 TCP ACK报文的 TCP头中的 Acknowledge Number字段值作为上一次 Acknowledge Number字段值。
第一判断单元 323, 用于判断所述当前 Acknowledge Number 字段值和上一次 Acknowledge Number字段值是否相同。
上述字段值判断模块 32还可以存储每次接收到的同一个客户端发送的 TCP ACK报 文的 TCP头中的 Acknowledge Number字段值, 判断当前发送的 TCP ACK报文的 TCP头 中的 Acknowledge Number字段值和之前存储的 Acknowledge Number字段值。 其结构示 意图如图 5所示, 包括: 字段存储单元 324、 第二当前字段值获取单元 325和第二判断 单元 326。 其中:
字段存储单元 324,用于存储每次接收到客户端针对同一个 TCP连接发送的 TCP ACK 报文的 TCP头中的 Acknowledge Number字段值;
第二当前字段值获取单元 325, 用于解析当前的 TCP ACK报文, 获取该 TCP ACK报 文的 TCP头中的 Acknowledge Number字段值作为当前 Acknowledge Number字段值。
第二判断单元 326, 用于判断所述当前 Acknowledge Number 字段值和存储的 Acknowledge Number 字段值是否相同, 在当前 Acknowledge Number 字段值与存储的 Acknowledge Number字段值中至少一个 Acknowledge Number字段值相同时, 则判断当 前 Acknowledge Number字段值与存储的 Acknowledge Number字段值相同, 否则, 判断 当前发 Acknowledge Number字段值与存储的 Acknowledge Number字段值不相同。
当然, 转发设备还可以将存储每次接收到的客户端针对同一个 TCP连接发送的 TCP ACK报文, 分别解析存储的 TCP ACK报文和当前接收到的 TCP ACK报文, 获取各自的 Acknowledge Number字段值并进行判断。字段值判断模块结构示意图如图 6所示,包括: 报文存储单元 327、 第三当前字段值获取单元 328、 存储字段获取单元 329和第三判断 单元 330。 其中:
报文存储单元 327,用于存储每次接收到客户端针对同一个 TCP连接发送的 TCP ACK 报文。
第三当前字段值获取单元 328, 用于解析当前的 TCP ACK报文, 获取该 TCP ACK报 文的 TCP头中的 Acknowledge Number字段值作为当前 Acknowledge Number字段值。
存储字段获取单元 329, 用于解析存储的 TCP ACK报文, 获取存储的 TCP ACK报文 的 TCP头中的 Acknowledge Number字段值作为存储的 Acknowledge Number字段值。
第三判断单元 330, 用于判断所述当前 Acknowledge Number 字段值和存储的 Acknowledge Number 字段值是否相同, 在当前 Acknowledge Number 字段值与存储的 Acknowledge Number字段值中至少一个 Acknowledge Number字段值相同时, 则判断当 前 Acknowledge Number字段值与存储的 Acknowledge Number字段值相同, 否则, 判断 当前发 Acknowledge Number字段值与存储的 Acknowledge Number字段值不相同。
现有的报文处理方法导致网络拥塞加剧, 网络资源利用率降低的另一方面为: 服务 器禁用了拥塞窗口 cwnd, 发送的 TCP报文的字节数不是依据客户端的接收窗口设定的。 发明人经过多次实践发现在服务器禁用拥塞窗口 cwnd的时候, 依据接收窗口控制服务 器发送 TCP报文的字节数的方式, 在网络拥塞时降低发送 TCP报文的字节数, 可以降低 网络拥塞, 提高网络资源利用率。 为了实现上述目的, 本发明实施例提供的转发设备, 在图 3的基础上, 还包括: 窗 口获取模块 35、 窗口选取模块 36和 TCP ACK报文发送模块 37, 如图 7所示。 其中: 窗口获取模块 35, 用于当判断当前发送的 TCP ACK报文的 TCP头中的 Acknowledge Number字段值与所述客户端之前针对同一个 TCP连接发送的 TCP ACK报文的 TCP头中的 Acknowledge Number字段值不相同或未在存储设备内查找到当前接收到的 TCP ACK报文 请求重传的 TCP报文时, 获取发送当前 TCP ACK报文的客户端的当前接收窗口和建议接 收窗口;
窗口选取模块 36,用于选取所述当前接收窗口和所述建议接收窗口中数值小的接收 窗口作为发送当前 TCP ACK报文的客户端的接收窗口,所述接收窗口为发送当前 TCP ACK 报文的客户端当前最大接收的字节数;
TCP ACK报文发送模块 37, 用于将所述接收窗口替换当前 TCP ACK报文的 TCP头中 的 window字段值, 并发送替换后的 TCP ACK报文至服务器, 服务器依据接收窗口控制 TCP报文的发送字节数。
需要说明的是: TCP ACK报文中的校验和字段值为针对 TCP ACK报文中所有字段计算 的校验和, 因此, 当 window字段值被替换后, 需要重新计算校验和并替换原来的校验和 字段值, 以保证传输 TCP ACK报文的有效。
上述窗口获取模块 35的结构示意图请参阅图 8,包括:解析单元 351和窗口获取单 元 352。 其中:
解析单元 351, 用于解析接收到的客户端当前发送的 TCP ACK报文;
窗口获取单元 352,用于获取该 TCP ACK报文 TCP头中的 window字段值,该 window 字段值即为发送当前 TCP ACK报文的客户端的当前接收窗口。
当前 TCP ACK报文的方向为下行方向时, 为了获取客户端的建议接收窗口, 窗口获 取模块 35在图 9的基础上还包括:第一参数获取单元 353、第一计算单元 354和第一获 取单元 355, 如图 10所示。 其中:
第一参数获取单元 353, 用于当前 TCP ACK报文的方向为下行方向时, 获取上行带 宽 BD和报文往返时间 T; 上行带宽 BD为: 上行线路带宽或者上行会话带宽或者调整后 的上行报文带宽。
第一计算单元 354,用于计算所述上行带宽 BD和报文往返时间 T的乘积,得出乘积 结果。
第一获取单元 355, 用于获取所述乘积结果与第一预设乘数阈值之积, 将所述乘积 结果与第一预设乘数阈值之积作为发送当前 TCP ACK报文的客户端的建议接收窗口。 当前 TCP ACK报文的方向为上行方向时, 为了获取客户端的建议接收窗口, 窗口获 取模块 35在图 9的基础上还包括:第二参数获取单元 356、第二计算单元 357和第二获 取单元 358, 如图 10所示。 其中:
第二参数获取单元 356, 用于当前 TCP ACK报文的方向为上行方向时, 获取下行带 宽 BD和报文往返时间 T; 其中: 下行带宽 BD为: 下行线路带宽或者下行会话带宽或者 调整后的下行报文带宽。
第二计算单元 357,用于计算所述下行带宽 BD和报文往返时间 T的乘积,得出乘积 结果;
第二获取单元 358, 用于获取所述乘积结果与第二预设乘数阈值之积, 将所述乘积 结果与第二预设乘数阈值之积作为发送当前 TCP ACK报文的客户端的建议接收窗口。
与上述装置实施例相对应, 本发明实施例还提供一种报文处理***, 包括客户端、 服务器和转发设备, 所述客户端和所述服务器之间通过所述转发设备发送报文, 所述转 发设备用于接收客户端当前发送的 TCP ACK报文,当判断当前发送的 TCP ACK报文的 TCP 头中的 Acknowledge Number字段值与所述客户端之前针对同一个 TCP连接发送的 TCP ACK报文的 TCP头中的 Acknowledge Number字段值相同时, 获取所述 TCP ACK报文请求 重传的 TCP报文, 当在存储设备内查找到所述 TCP ACK报文请求重传的 TCP报文时, 丢 弃所述 TCP ACK报文, 发送所述 TCP报文至发送该 TCP ACK报文的客户端。
上述转发设备还用于当判断当前发送的 TCP ACK报文的 TCP头中的 Acknowledge Number字段值与所述客户端之前针对同一个 TCP连接发送的 TCP ACK报文的 TCP头中的 Acknowledge Number字段值不相同或未在存储设备内查找到当前接收到的 TCP ACK报文 请求重传的 TCP报文时, 获取发送当前 TCP ACK报文的客户端的当前接收窗口和建议接 收窗口,选取所述当前接收窗口和所述建议接收窗口中数值小的接收窗口作为发送当前 TCP ACK报文的客户端的接收窗口, 所述接收窗口为发送当前 TCP ACK报文的客户端当 前最大接收的字节数, 将所述接收窗口替换当前 TCP ACK报文中的 window字段值, 并 发送替换后的 TCP ACK报文至服务器, 所述服务器依据接收窗口控制 TCP报文的发送字 节数。
上述装置实施例和***实施例可以采用上述方法实施例中提供的报文处理方法, 以 解决现有技术中, 服务器禁用了拥塞窗口 cwnd, 这会导致无法根据网络拥塞情况调节服 务器发送字节数目, 进一步加剧网络拥塞, 降低网络资源利用率的问题。 对于装置实施例而言, 由于其基本相应于方法实施例, 所以相关之处参见方法实施 例的部分说明即可。 以上所描述的装置实施例仅仅是示意性的, 其中所述作为分离部件 说明的单元可以是或者也可以不是物理上分开的, 作为单元显示的部件可以是或者也可 以不是物理单元, 即可以位于一个地方, 或者也可以分布到多个网络单元上。 可以根据 实际的需要选择其中的部分或者全部模块来实现本发明实施例方案的目的。本领域普通 技术人员在不付出创造性劳动的情况下, 即可以理解并实施。
在本发明所提供的几个实施例中, 应该理解到, 所揭露的装置和方法, 在没有超过 本发明的精神和范围内, 可以通过其他的方式实现。 当前的实施例只是一种示范性的例 子, 不应该作为限制, 所给出的具体内容不应该限制本申请的目的。 例如, 所述单元或 子单元的划分, 仅仅为一种逻辑功能划分, 实际实现时可以有另外的划分方式, 例如多 个单元或多个子单元结合一起。 另外, 多个单元可以或组件可以结合或者可以集成到另 一个***, 或一些特征可以忽略, 或不执行。
以上所述仅是本发明的具体实施方式, 应当指出, 对于本技术领域的普通技术人员 来说, 在不脱离本发明原理的前提下, 还可以做出若干改进和润饰, 这些改进和润饰也 应视为本发明的保护范围。

Claims

权利要求
1、 一种报文处理方法, 其特征在于, 包括:
接收客户端当前发送的 TCP ACK报文;
当判断客户端当前发送的 TCP ACK报文的 TCP头中的 Acknowledge Number字段值 与所述客户端之前针对同一个 TCP连接发送的 TCP ACK报文的 TCP头中的 Acknowledge Number字段值相同时, 在存储设备内查找所述 TCP ACK报文请求重传的 TCP报文; 当在存储设备内查找到所述 TCP ACK报文请求重传的 TCP报文时,丢弃所述 TCP ACK 报文, 发送所述 TCP报文至发送该 TCP ACK报文的客户端。
2、根据权利要求 1所述的报文处理方法, 其特征在于, 所述客户端当前发送的 TCP ACK报文的 TCP头中的 Acknowledge Number字段值与所述客户端之前针对同一个 TCP 连接发送的 TCP ACK报文的 TCP头中的 Acknowledge Number字段值具体为: 当前发送 的 TCP ACK报文的 TCP头中的 Acknowledge Number字段值与客户端上一次针对同一个 TCP连接发送的 TCP ACK报文的 TCP头中的 Acknowledge Number字段值。
3、根据权利要求 1所述的报文处理方法, 其特征在于, 所述客户端当前发送的 TCP ACK报文的 TCP头中的 Acknowledge Number字段值与所述客户端之前针对同一个 TCP 连接发送的 TCP ACK报文的 TCP头中的 Acknowledge Number字段值具体为: 客户端当 前发送的 TCP ACK报文的 TCP头中的 Acknowledge Number字段值与存储的 Acknowledge Number字段值, 所述存储的 Acknowledge Number字段值是从客户端针对同一个 TCP连 接发送的 TCP ACK报文的 TCP头中获取的。
4、根据权利要求 1所述的报文处理方法, 其特征在于, 所述客户端当前发送的 TCP
ACK报文的 TCP头中的 Acknowledge Number字段值与所述客户端之前针对同一个 TCP 连接发送的 TCP ACK报文的 TCP头中的 Acknowledge Number字段值具体为: 客户端当 前发送的 TCP ACK报文的 TCP头中的 Acknowledge Number字段值与从存储的客户端针 对同一个 TCP 连接发送的 TCP ACK 报文中获取到的 TCP ACK 报文的 TCP 头中的 Acknowledge Number字段值。
5、 根据权利要求 1-4任意一项所述的报文处理方法, 其特征在于, 当判断当前发 送的 TCP ACK报文的 TCP头中的 Acknowledge Number字段值与所述客户端之前针对同 一个 TCP连接发送的 TCP ACK报文的 TCP头中的 Acknowledge Number字段值不相同或 未在存储设备内查找到当前接收到的 TCP ACK报文请求重传的 TCP报文时, 获取发送当 前 TCP ACK报文的客户端的当前接收窗口和建议接收窗口;
选取所述当前接收窗口和所述建议接收窗口中数值小的接收窗口作为发送当前 TCP ACK报文的客户端的接收窗口, 所述接收窗口为发送当前 TCP ACK报文的客户端当前最 大接收的字节数;
将所述接收窗口替换当前 TCP ACK报文中的 window字段值,并发送替换后的 TCP ACK 报文至服务器, 所述服务器依据接收窗口控制 TCP报文的发送字节数。
6、 根据权利要求 5所述的报文处理方法, 其特征在于, 所述获取发送当前 TCP ACK 报文的客户端的当前接收窗口具体为: 解析接收到的客户端当前发送的 TCP ACK报文; 获取该 TCP ACK报文 TCP头中的 window字段值,该 window字段值即为发送所述 TCP ACK报文的客户端的当前接收窗口。
7、 根据权利要求 5所述的报文处理方法, 其特征在于, 所述获取发送当前 TCP ACK 报文的客户端的建议接收窗口具体为: 依据预先设置的窗口阈值设置建议接收窗口。
8、 根据权利要求 5所述的报文处理方法, 其特征在于, 所述获取发送当前 TCP ACK 报文的客户端的建议接收窗口具体为: 当该 TCP ACK报文的方向为下行方向时, 获取上 行带宽 BD和报文往返时间 T, 计算所述上行带宽 BD和报文往返时间 Τ的乘积, 得出乘 积结果;
获取所述乘积结果与第一预设乘数阈值之积,将所述乘积结果与第一预设乘数阈值 之积作为发送当前 TCP ACK报文的客户端的建议接收窗口。
9、 根据权利要求 5所述的报文处理方法, 其特征在于, 所述获取发送当前 TCP ACK 报文的客户端的建议接收窗口具体为: 当该 TCP ACK报文的方向为上行方向时, 获取下 行带宽 BD和报文往返时间 T, 计算所述下行带宽 BD和报文往返时间 Τ的乘积, 得出乘 积结果;
获取所述乘积结果与第二预设乘数阈值之积,将所述乘积结果与第二预设乘数阈值 之积作为发送当前 TCP ACK报文的客户端的建议接收窗口。
10、 一种转发设备, 其特征在于, 包括:
ACK报文接收模块, 用于接收客户端当前发送的 TCP ACK报文;
字段值判断模块, 用于判断客户端当前发送的 TCP ACK 报文的 TCP 头中的
Acknowledge Number字段值与所述客户端之前针对同一个 TCP连接发送的 TCP ACK报 文的 TCP头中的 Acknowledge Number字段值;
TCP 报文查找模块, 用于当判断客户端当前发送的 TCP ACK 报文的 TCP 头中的 Acknowledge Number字段值与所述客户端之前针对同一个 TCP连接发送的 TCP ACK报文 的 TCP头中的 Acknowledge Number字段值相同时, 在存储设备内查找所述 TCP ACK报 文请求重传的 TCP报文; TCP报文发送模块, 用于当在存储设备内查找到所述 TCP ACK报文请求重传的 TCP 报文时, 丢弃所述 TCP ACK报文, 发送所述 TCP报文至发送该 TCP ACK报文的客户端。
11、 根据权利要求 10所述的转发设备, 其特征在于, 所述字段值判断模块包括: 第一当前字段值获取单元, 用于解析当前的 TCP ACK报文, 获取该 TCP ACK报文的 TCP头中的 Acknowledge Number字段值作为当前 Acknowledge Number字段值;
上一次字段值获取单元, 用于解析发送当前 TCP ACK报文的客户端上一次针对同一 个 TCP连接发送的 TCP ACK报文,获取该 TCP ACK报文的 TCP头中的 Acknowledge Number 字段值作为上一次 Acknowledge Number字段值;
第一判断单元, 用于判断所述当前 Acknowledge Number 字段值和上一次 Acknowledge Number字段值是否相同。
12、 根据权利要求 10所述的转发设备, 其特征在于, 所述字段值判断模块包括: 字段存储单元, 用于存储每次接收到客户端针对同一个 TCP连接发送的 TCP ACK报 文的 TCP头中的 Acknowledge Number字段值;
第二当前字段值获取单元, 用于解析当前的 TCP ACK报文, 获取该 TCP ACK报文的 TCP头中的 Acknowledge Number字段值作为当前 Acknowledge Number字段值;
第二判断单元, 用于判断所述当前 Acknowledge Number 字段值和存储的 Acknowledge Number 字段值是否相同, 在当前 Acknowledge Number 字段值与存储的 Acknowledge Number字段值中至少一个 Acknowledge Number字段值相同时, 则判断当 前 Acknowledge Number字段值与存储的 Acknowledge Number字段值相同, 否则, 判断 当前发 Acknowledge Number字段值与存储的 Acknowledge Number字段值不相同。
13、 根据权利要求 10所述的转发设备, 其特征在于, 所述字段值判断模块包括: 报文存储单元, 用于存储每次接收到客户端针对同一个 TCP连接发送的 TCP ACK报 文;
第三当前字段值获取单元, 用于解析当前的 TCP ACK报文, 获取该 TCP ACK报文的 TCP头中的 Acknowledge Number字段值作为当前 Acknowledge Number字段值;
存储字段获取单元,用于解析存储的 TCP ACK报文,获取存储的 TCP ACK报文的 TCP 头中的 Acknowledge Number字段值作为存储的 Acknowledge Number字段值;
第三判断单元, 用于判断所述当前 Acknowledge Number 字段值和存储的 Acknowledge Number 字段值是否相同, 在当前 Acknowledge Number 字段值与存储的 Acknowledge Number字段值中至少一个 Acknowledge Number字段值相同时, 则判断当 前 Acknowledge Number字段值与存储的 Acknowledge Number字段值相同, 否则, 判断 当前发 Acknowledge Number字段值与存储的 Acknowledge Number字段值不相同。
14、 根据权利要求 10-13任意一项所述的转发设备, 其特征在于, 还包括: 窗口获取模块, 用于当判断当前发送的 TCP ACK报文的 TCP头中的 Acknowledge Number字段值与所述客户端之前针对同一个 TCP连接发送的 TCP ACK报文的 TCP头中的 Acknowledge Number字段值不相同或未在存储设备内查找到当前接收到的 TCP ACK报文 请求重传的 TCP报文时, 获取发送当前 TCP ACK报文的客户端的当前接收窗口和建议接 收窗口;
窗口选取模块,用于选取所述当前接收窗口和所述建议接收窗口中数值小的接收窗 口作为发送当前 TCP ACK报文的客户端的接收窗口, 所述接收窗口为发送当前 TCP ACK 报文的客户端当前最大接收的字节数;
TCP ACK报文发送模块, 用于将所述接收窗口替换当前 TCP ACK报文中的 window 字段值, 并发送替换后的 TCP ACK报文。
15、 根据权利要求 14所述的转发设备, 其特征在于, 所述窗口获取模块包括: 解析单元, 用于解析接收到的客户端当前发送的 TCP ACK报文;
窗口获取单元, 用于获取该 TCP ACK报文 TCP头中的 window字段值, 该 window字 段值即为发送当前 TCP ACK报文的客户端的当前接收窗口。
16、 根据权利要求 14所述的转发设备, 其特征在于, 所述窗口获取模块还包括: 第一参数获取单元, 用于当前 TCP ACK报文的方向为下行方向时, 获取上行带宽 BD 和报文往返时间 T;
第一计算单元, 用于计算所述上行带宽 BD和报文往返时间 T的乘积, 得出乘积结 果;
第一获取单元, 用于获取所述乘积结果与第一预设乘数阈值之积, 将所述乘积结果 与第一预设乘数阈值之积作为发送当前 TCP ACK报文的客户端的建议接收窗口。
17、 根据权利要求 14所述的转发设备, 其特征在于, 所述窗口获取模块还包括: 第二参数获取单元, 用于当前 TCP ACK报文的方向为上行方向时, 获取下行带宽 BD 和报文往返时间 T;
第二计算单元, 用于计算所述下行带宽 BD和报文往返时间 T的乘积, 得出乘积结 果;
第二获取单元, 用于获取所述乘积结果与第二预设乘数阈值之积, 将所述乘积结果 与第二预设乘数阈值之积作为发送当前 TCP ACK报文的客户端的建议接收窗口。
18、 一种报文处理***, 包括客户端、 服务器和转发设备, 所述客户端和所述服务 器之间通过所述转发设备发送报文, 其特征在于, 所述转发设备用于接收客户端当前发 送的 TCP ACK报文, 判断客户端当前发送的 TCP ACK报文的 TCP头中的 Acknowledge
Number字段值与所述客户端针对同一个 TCP连接发送的 TCP ACK报文的 TCP 头中的
Acknowledge Number字段值相同时, 在存储设备内查找所述 TCP ACK报文请求重传的 TCP报文, 当在存储设备内查找到所述 TCP ACK报文请求重传的 TCP报文时, 丢弃所述
TCP ACK报文, 发送所述 TCP报文至发送该 TCP ACK报文的客户端。
19、 根据权利要求 18所述的报文处理***, 其特征在于, 所述转发设备还用于当判 断当前发送的 TCP ACK报文的 TCP头中的 Acknowledge Number字段值与所述客户端针对同 一个 TCP连接发送的 TCP ACK报文的 TCP头中的 Acknowledge Number字段值不相同或未在 存储设备内查找到当前接收到的 TCP ACK报文请求重传的 TCP报文时, 获取发送当前 TCP ACK报文的客户端的当前接收窗口和建议接收窗口, 选取当前接收窗口和所述建议接收 窗口中数值小的接收窗口作为发送当前 TCP ACK报文的客户端的接收窗口, 所述接收窗 口为发送当前 TCP ACK报文的客户端当前最大接收的字节数, 将所述接收窗口替换当前 TCP ACK报文中的 window字段值, 并发送替换后的 TCP ACK报文至服务器, 所述服务器依 据接收窗口控制 TCP报文的发送字节数。
PCT/CN2011/083018 2011-03-29 2011-11-28 一种报文处理方法、转发设备及*** WO2012129922A1 (zh)

Priority Applications (2)

Application Number Priority Date Filing Date Title
EP11862771.0A EP2693707B1 (en) 2011-03-29 2011-11-28 Packet handling method, forwarding device and system
US14/039,521 US9325628B2 (en) 2011-03-29 2013-09-27 Packet handling method, forwarding device and system

Applications Claiming Priority (2)

Application Number Priority Date Filing Date Title
CN201110078459XA CN102143078B (zh) 2011-03-29 2011-03-29 一种报文处理方法、转发设备及***
CN201110078459.X 2011-03-29

Related Child Applications (1)

Application Number Title Priority Date Filing Date
US14/039,521 Continuation US9325628B2 (en) 2011-03-29 2013-09-27 Packet handling method, forwarding device and system

Publications (1)

Publication Number Publication Date
WO2012129922A1 true WO2012129922A1 (zh) 2012-10-04

Family

ID=44410313

Family Applications (1)

Application Number Title Priority Date Filing Date
PCT/CN2011/083018 WO2012129922A1 (zh) 2011-03-29 2011-11-28 一种报文处理方法、转发设备及***

Country Status (5)

Country Link
US (1) US9325628B2 (zh)
EP (2) EP2903192B1 (zh)
CN (1) CN102143078B (zh)
ES (1) ES2589566T3 (zh)
WO (1) WO2012129922A1 (zh)

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN103595511A (zh) * 2013-10-17 2014-02-19 广东电网公司茂名供电局 一种电力***内部网络i区至iii区数据传输的方法

Families Citing this family (15)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN102143078B (zh) 2011-03-29 2013-10-02 华为技术有限公司 一种报文处理方法、转发设备及***
CN105991359A (zh) * 2015-02-06 2016-10-05 中兴通讯股份有限公司 一种检测重复仿真报文的方法及装置
CN104780028A (zh) * 2015-04-02 2015-07-15 京信通信技术(广州)有限公司 一种实现tcp数据报文重传的方法及设备
CN105245528B (zh) * 2015-10-20 2019-02-12 北京小鸟听听科技有限公司 一种基于用户数据报协议(udp)的控制命令传输方法、发送端和接收端
EP3422669B1 (en) * 2016-02-22 2020-07-08 Fujitsu Limited Communication device, relay device, and communication system
CN106332145A (zh) * 2016-10-04 2017-01-11 陕西尚品信息科技有限公司 一种移动Ad‑hoc网络中TCP连接性能的优化方法
CN106657078B (zh) * 2016-12-27 2020-05-05 京信通信***(中国)有限公司 Tcp传输方法及装置
CN109842564B (zh) 2017-11-28 2022-11-11 华为技术有限公司 一种业务报文发送的方法、网络设备和***
CN110213167A (zh) * 2018-02-28 2019-09-06 吴瑞 一种传输控制协议在网络拥塞时的处理方法和装置
CN112119621A (zh) * 2018-05-14 2020-12-22 富士通株式会社 基站装置、终端装置以及通信方法
CN109639340B (zh) * 2018-12-11 2021-05-28 成都天奥信息科技有限公司 一种适用于卫星链路的tcp加速方法
US11438272B2 (en) * 2019-12-31 2022-09-06 Opanga Networks, Inc. System and method for mobility tracking
CN113726671B (zh) * 2020-05-26 2023-06-30 华为技术有限公司 一种网络拥塞控制方法及相关产品
US11924678B2 (en) * 2021-11-17 2024-03-05 Charter Communications Operating, Llc Adapting TCP in SAS-controlled CBRS networks
CN114157727B (zh) * 2021-12-10 2024-05-14 北京华环电子股份有限公司 Tcp加速在osu中的应用方法及设备

Citations (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20040264370A1 (en) * 2003-06-27 2004-12-30 Sang-Jun Moon Congestion control method and system for reducing a retransmission timeout count in a transmission control protocol
CN101854738A (zh) * 2010-05-21 2010-10-06 南京邮电大学 一种用于卫星网络的传输控制协议方法
CN101924625A (zh) * 2010-08-23 2010-12-22 华为技术有限公司 数据包重传控制的方法和网络侧设备
CN102143078A (zh) * 2011-03-29 2011-08-03 华为技术有限公司 一种报文处理方法、转发设备及***

Family Cites Families (10)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US6118765A (en) * 1998-01-13 2000-09-12 Qualcomm Inc. System method and computer program product for eliminating unnecessary retransmissions
US6215769B1 (en) * 1998-10-07 2001-04-10 Nokia Telecommunications, Inc. Enhanced acknowledgment pacing device and method for TCP connections
US6934257B2 (en) * 2001-04-04 2005-08-23 Intel Corporation Transferring transmission control protocol packets
US7089312B2 (en) * 2001-09-20 2006-08-08 Intel Corporation System and method for reducing retransmissions due to tunneled TCP-in-TCP communication in a network
EP1300991A1 (en) * 2001-10-02 2003-04-09 Lucent Technologies Inc. A method for filtering redundant data packets
AU2003245047A1 (en) * 2002-02-15 2003-09-04 Koninklijke Philips Electronics N.V. Modifications to TCP/IP for broadcast or wireless networks
US20040213278A1 (en) * 2003-04-24 2004-10-28 Broadcom Corporation System, method, and computer program product for in-place, lightweight Ack promotion in a cable modem environment
CN101114999B (zh) * 2007-08-26 2010-08-04 上海华为技术有限公司 数据发送控制方法及数据传输设备
JP2009152953A (ja) * 2007-12-21 2009-07-09 Nec Corp ゲートウェイ装置およびパケット転送方法
US8717900B2 (en) * 2011-02-07 2014-05-06 LivQoS Inc. Mechanisms to improve the transmission control protocol performance in wireless networks

Patent Citations (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20040264370A1 (en) * 2003-06-27 2004-12-30 Sang-Jun Moon Congestion control method and system for reducing a retransmission timeout count in a transmission control protocol
CN101854738A (zh) * 2010-05-21 2010-10-06 南京邮电大学 一种用于卫星网络的传输控制协议方法
CN101924625A (zh) * 2010-08-23 2010-12-22 华为技术有限公司 数据包重传控制的方法和网络侧设备
CN102143078A (zh) * 2011-03-29 2011-08-03 华为技术有限公司 一种报文处理方法、转发设备及***

Non-Patent Citations (1)

* Cited by examiner, † Cited by third party
Title
See also references of EP2693707A4 *

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN103595511A (zh) * 2013-10-17 2014-02-19 广东电网公司茂名供电局 一种电力***内部网络i区至iii区数据传输的方法

Also Published As

Publication number Publication date
EP2693707A1 (en) 2014-02-05
EP2903192A1 (en) 2015-08-05
ES2589566T3 (es) 2016-11-15
US20140029620A1 (en) 2014-01-30
US9325628B2 (en) 2016-04-26
EP2903192B1 (en) 2016-06-15
CN102143078A (zh) 2011-08-03
EP2693707B1 (en) 2015-04-15
EP2693707A4 (en) 2014-02-05
CN102143078B (zh) 2013-10-02

Similar Documents

Publication Publication Date Title
WO2012129922A1 (zh) 一种报文处理方法、转发设备及***
US10237153B2 (en) Packet retransmission method and apparatus
US9325764B2 (en) Apparatus and method for transparent communication architecture in remote communication
EP3075110B1 (en) Controlling a transmission control protocol window size
US8122140B2 (en) Apparatus and method for accelerating streams through use of transparent proxy architecture
US11012367B2 (en) Technologies for managing TCP/IP packet delivery
EP2302827B1 (en) A method and device for transmitting data
Kumar et al. Survey on transport layer protocols: TCP & UDP
US20190312938A1 (en) Data Transmission Method And Apparatus
EP2632102A1 (en) Method and device for data transmission
JP2024509728A (ja) データ再送処理方法、装置、コンピュータ機器及びコンピュータプログラム
WO2011144141A1 (zh) 拥塞控制方法和***以及网络设备
EP3742746A1 (en) Method and device for realizing video service, and communication system and computer-readable storage medium
US20150163149A1 (en) Sctp bundling
WO2017097201A1 (zh) 一种数据传输方法、发送装置及接收装置
CN110072254B (zh) 一种数据的传输方法及其相关设备
CN114390054A (zh) 一种核心网网络加速方法、电子设备及计算机存储介质
CN111092907B (zh) 基于udp协议的数据流快速传输方法、***及介质
CN113424578B (zh) 一种传输控制协议加速方法和装置
WO2014100973A1 (zh) 视频处理方法、设备及***
EP3809748A1 (en) Data transmitting method and device, and data receiving method and device
Bhat et al. MPTCP combining congestion window adaptation and packet scheduling for multi-homed device

Legal Events

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

Ref document number: 11862771

Country of ref document: EP

Kind code of ref document: A1

NENP Non-entry into the national phase

Ref country code: DE