WO2019104725A1 - 报文传输方法、装置及系统 - Google Patents

报文传输方法、装置及系统 Download PDF

Info

Publication number
WO2019104725A1
WO2019104725A1 PCT/CN2017/114298 CN2017114298W WO2019104725A1 WO 2019104725 A1 WO2019104725 A1 WO 2019104725A1 CN 2017114298 W CN2017114298 W CN 2017114298W WO 2019104725 A1 WO2019104725 A1 WO 2019104725A1
Authority
WO
WIPO (PCT)
Prior art keywords
node
ack
proxy
tcp packet
tcp
Prior art date
Application number
PCT/CN2017/114298
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 PCT/CN2017/114298 priority Critical patent/WO2019104725A1/zh
Publication of WO2019104725A1 publication Critical patent/WO2019104725A1/zh

Links

Images

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/19Flow control; Congestion control at layers above the network layer
    • H04L47/193Flow control; Congestion control at layers above the network layer at the transport layer, e.g. TCP related

Definitions

  • the present application relates to the field of communications, and in particular, to a message transmission method, apparatus, and system.
  • the Transmission Control Protocol has an Acknowledgement (ACK) mechanism. After the first node feeds back the ACK to the second node, the second node continues to send subsequent messages to the first node according to the received ACK and the sending window. The larger the send window, the higher the send rate and throughput.
  • the packet transmission method includes: the server sends a TCP packet to the evolved base station (eNode B, eNB), and the eNB forwards the TCP packet to the UE. Before the UE feeds back the ACK of the TCP message to the eNB, the eNB generates an ACK instead of the UE, and sends the ACK to the server in advance. After receiving the ACK, the server increases the transmission window and sends subsequent TCP packets to the eNB.
  • the evolved base station eNode B, eNB
  • the eNB forwards the TCP packet to the UE.
  • the eNB Before the UE feeds back the ACK of the TCP message to the eNB, the eNB generates an ACK instead of the UE, and sends the ACK to the server in advance.
  • the server increases the transmission window and sends subsequent TCP packets to the eNB.
  • the above technique can reduce the impact of the RTT on the transmission rate between the UE and the eNB, but since the RTT between the eNB and the server is a main component of the RTT between the UE and the server, the above-mentioned technology can improve the transmission rate and The throughput rate is limited.
  • the embodiment of the present application provides a packet transmission method, device, and system, which can solve the problem that the related technology cannot reduce the RTT between the eNB and the server.
  • the technical solution is as follows:
  • a message transmission method includes:
  • the proxy node receives the ith ACK sent by the first node, the ith ACK is an ACK corresponding to the ith TCP packet, and the ith ACK is an ACK that has not been sent to the second node, i ⁇ 1 ;
  • the proxy node forwards the ith ACK to the second node
  • n ACKs are ACKs corresponding to at least one TCP packet that is sent by the second node after receiving the ith ACK.
  • the proxy node sends the (i+1)th to the i+nth ACK to the second node according to the i-th ACK and the sending window, including :
  • the proxy node predicts, according to the ith ACK and the sending window, a sequence number of the at least one TCP packet sent by the second node after receiving the ith ACK;
  • the proxy node generates the (i+1)th to the i+thth ACK according to the sequence number
  • the proxy node sends the (i+1)th to the i+1th ACKs to the second node.
  • the proxy node predicts the sequence number of the at least one TCP packet sent by the second node after receiving the ith ACK according to the i-th ACK and the sending window, and further generates the first sequence number of the at least one TCP packet predicted by the proxy node.
  • the i+1 to the i+n ACKs improve the accuracy of the proxy node generating the ACK by predicting the TCP packets of the second node.
  • the proxy node predicts that the second node is received according to the i-th ACK and the sending window
  • the sequence number of the at least one TCP packet sent after the ith ACK includes:
  • an i-th transmission window length according to the length of the i-1th transmission window of the cache; the length of the i-th transmission window is equal to the length of the i-th transmission window plus one;
  • the length of the ith transmission window is the length of the transmission window before the second node receives the ith ACK, and the length of the ith transmission window is that the second node receives the ith The length of the send window after ACK.
  • the length of the i-th transmission window is obtained by the proxy node according to the length of the i-1th transmission window of the cache, and the length of the i-th transmission channel is predicted by the sequence number i and the i-th transmission window length to be sent by the second node after receiving the i-th ACK.
  • the sequence number range of the message improves the accuracy of the proxy node predicting the second node to send TCP packets.
  • the proxy node sends the i+1th to the i+nth ACK to the second node according to the i-th ACK and the sending window, including :
  • the proxy node sequentially sends the (i+1)th to the i+1th ACKs to the second node according to the ith ACK and the sending window according to a predetermined time interval.
  • the second node By sending the i+1th to the i+nth ACKs to the second node in turn, the second node is prevented from receiving the ACK corresponding to the TCP packet before sending a TCP packet, thereby reducing the second node sending.
  • the probability of loss of ACK is not limited to the probability of loss of ACK.
  • the predetermined time interval is less than a round-trip delay between the proxy node and the second node .
  • the round-trip delay between the proxy node and the second node is reduced as much as possible, thereby improving data transmission efficiency.
  • the proxy node sends an i+ to the second node according to the i-th ACK and the sending window After 1 to the i+n ACK, it also includes:
  • the i+kth ACK is discarded.
  • the duplicate ACK By discarding the duplicate ACK received from the first node, the duplicate ACK is that the proxy node has sent to the second node, and receives the same ACK sent by the first node, and the data is generated after the second node receives the duplicate ACK.
  • the problem of repeated transmission reduces the repeated transmission of TCP packets and improves the transmission efficiency of TCP packets.
  • the proxy node sends the i+ to the second node according to the i-th ACK and the sending window After 1 to the i+n ACK, it also includes:
  • the i++th TCP packet is resent to the first node.
  • the ACK corresponding to the last TCP packet of the TCP packet is used to solve the problem that the first node does not receive the TCP packet, and the proxy node sends an ACK corresponding to the TCP packet to the second node in advance to enable the second node to generate the TCP packet.
  • the text is confirmed by misjudgment, which causes data loss and improves the accuracy of message transmission.
  • the proxy node when receiving the at least four xth ACKs continuously sent by the first node, the proxy node is The first node resends the x+1th TCP packet, where x is an integer.
  • the proxy node After receiving the at least 4 xth ACKs continuously sent by the first node, the proxy node resends the x+1th TCP packet to the first node, and solves the problem that the TCP message is lost by waiting for the timer to be lost. Long problems have improved the efficiency of message transmission.
  • the proxy node is provided with a TCP transparent proxy module.
  • the second node is a server
  • the proxy node is an access network device
  • the first node is a user equipment
  • the TCP transparent proxy module is disposed on a PDCP layer of the access network device
  • the second node is a server, the proxy node is a wireless gateway, the first node is a user equipment, and the TCP transparent proxy module is disposed on the wireless gateway;
  • the second node is a server
  • the proxy node is a fixed network gateway
  • the first node is a user equipment
  • the TCP transparent proxy module is disposed on the fixed network gateway.
  • a message transmission apparatus comprising the apparatus comprising the steps of the first aspect and any one of the possible embodiments of the first aspect. Module or means.
  • a proxy node comprising a processor and a memory, wherein the memory is for storing a program, when the program is called by the processor, for A method as described in the first aspect and any one of the possible embodiments of the first aspect.
  • a message transmission system comprising a first node, a proxy node, and a second node;
  • the proxy node includes the message transmission device according to the second aspect
  • the proxy node comprises a proxy node as described in the third aspect.
  • the second node is a server
  • the proxy node is an access network device
  • the first node is a user equipment
  • the TCP transparent proxy module is disposed on the network
  • the second node is a server, the proxy node is a wireless gateway, the first node is a user equipment, and the TCP transparent proxy module is disposed on the wireless gateway;
  • the second node is a server
  • the proxy node is a fixed network gateway
  • the first node is a user equipment
  • the TCP transparent proxy module is disposed on the fixed network gateway.
  • a computer readable storage medium for storing a program, when the program is called by a processor, for performing any one of the possible implementations of the first aspect and the first aspect The method described in the manner.
  • a message transmission device comprising a chip and at least one network interface, the chip comprising programmable logic circuits and/or program instructions when the chip is running
  • a data packet transmission method for implementing the first aspect and any one of the possible embodiments of the first aspect.
  • FIG. 1 is a schematic diagram of a sliding window mechanism provided by an exemplary embodiment of the present application.
  • FIG. 2 is a schematic structural diagram of a message transmission system according to an exemplary embodiment of the present application.
  • FIG. 3 is a structural block diagram of a proxy node provided by an exemplary embodiment of the present application.
  • FIG. 4 is a flowchart of a method for transmitting a message according to an exemplary embodiment of the present application
  • FIG. 5 and FIG. 6 are schematic diagrams of a method for transmitting a message according to an exemplary embodiment of the present application
  • FIG. 7 is a flowchart of a method for transmitting a message according to another exemplary embodiment of the present application.
  • FIG. 8 is a flowchart of a method for transmitting a message according to another exemplary embodiment of the present application.
  • FIG. 9 is a flowchart of a method for transmitting a message according to another exemplary embodiment of the present application.
  • FIG. 10 is a flowchart of a method for transmitting a message according to another exemplary embodiment of the present application.
  • FIG. 11 is a block diagram of a message transmission apparatus provided by an exemplary embodiment of the present application.
  • TCP message A data block that is sent by the sending node in TCP at one time.
  • a TCP message contains the complete data information to be sent, the length and length of which are inconsistent, and the length is not limited and variable.
  • the header file of the TCP packet contains a sequence number (SEQ).
  • ACK It is a reply acknowledgment message of the receiving node after receiving the TCP packet sent by the sending node, and corresponds to the TCP packet one-to-one.
  • the ACK header file contains the ACK number corresponding to the SEQ. For example, after receiving the TCP packet X, the ACK number adds 1 to the SEQ of the TCP packet X to obtain an ACK number of the ACK corresponding to the TCP packet X.
  • TCP slow-start A TCP congestion control mechanism.
  • the sliding window mechanism is first used to control the length of the sending window, and the actual capacity of the network is tested and sent to avoid sending. Excessive data caused blockage.
  • the slow start state each time the sending node receives an ACK of a TCP packet, the length of the sending window is increased by a TCP packet length.
  • Send window is the length of the TCP message sent by the sending node in TCP at one time. It includes the length of the TCP packet that has been sent but not received (located in the sending window) and can be sent but not sent yet. TCP packet length.
  • TCP transparent proxy module refers to the proxy module that optimizes TCP packets and/or ACK.
  • the sending node and the receiving node do not need to know the existence of the TCP transparent proxy module, so it is called a transparent proxy module.
  • Both the TCP message and the ACK of the sending node and the receiving node are stored in the cache of the TCP transparent proxy.
  • Sliding window mechanism It is a measure for the sending node to control the transmission of TCP packets.
  • the sending node controls the length of the sending window by receiving the ACK sent by the node.
  • the slow start phase each time the sending node receives an ACK, it increases the length of the sending window by one TCP packet length.
  • the length of the transmission window is the length of six TCP packets, which covers the range from the fourth TCP packet to the ninth TCP packet, indicating that the receiving node has confirmed receipt of the first TCP packet.
  • the third TCP message is sent to the third TCP message, wherein the fourth TCP message to the sixth TCP message indicated by the bold character indicates that the sending node has sent the ACK, but the ACK of the feedback response of the receiving node is not received, and the seventh TCP
  • the packet to the ninth TCP packet indicates a TCP packet that has not been sent but can be sent.
  • the TCP packet after the tenth TCP packet indicates that the TCP packet has not been sent and cannot be sent until the sending window moves to the right. Text.
  • the sending node calculates the length of the current round transmission window by the received ACK and the length of the previous round transmission window.
  • FIG. 2 is a schematic structural diagram of a message transmission system provided by an exemplary embodiment of the present application.
  • the message transmission system includes: a first node 110, a proxy node 120, and a second node 130.
  • the first node 110 may be a receiving node that receives a TCP packet and sends a corresponding ACK
  • the second node 130 may send a TCP packet.
  • the sending node that receives the corresponding ACK, or the first node 110 may be a sending node that sends a TCP packet and receives a corresponding ACK
  • the second node 130 may be a sending node that receives the TCP packet and sends a corresponding ACK.
  • the proxy node 120 may be an access network device, and the access network device may be a base station, and the base station is usually provided with a Packet Data Convergence Protocol (PDCP) layer and a Radio Link Control (RLC).
  • PDCP Packet Data Convergence Protocol
  • RLC Radio Link Control
  • the specific implementation manner of the access network device 110 in the embodiment of the present invention is not limited, and the protocol stack of the media access control (MAC) layer and the physical layer (Physical, PHY) protocol stack are not limited.
  • the access network device may further include a home base station (Home eNB, HeNB), a relay, a pico base station Pico, and the like.
  • the TCP transparent proxy module is disposed on the PDCP layer of the base station.
  • the proxy node 120 can also be a wireless gateway.
  • the wireless gateway is provided with a TCP transparent proxy module.
  • the proxy node 120 can also be a fixed network gateway.
  • the fixed network gateway is provided with a TCP transparent proxy module.
  • the second node 130 may be a server
  • the first node 110 may be a user equipment (User Equipment, UE).
  • UE User Equipment
  • the proxy node 120 and the second node 130 establish a connection via fiber optic and/or coaxial cable.
  • the proxy node 120 and the first node 110 establish a wireless connection through the wireless air interface.
  • the wireless air interface is a wireless air interface based on a 5G standard, for example, the wireless air interface is a New Radio (NR); or the wireless air interface may also be a wireless technology based on a 5G-based next-generation mobile communication network technology standard.
  • the air interface; or the wireless air interface may also be a wireless air interface based on the 4G standard (LTE system).
  • the second node 130 can be a server and the first node 120 can be a user equipment.
  • the proxy node 120 and the second node 130 establish a connection via fiber optic and/or coaxial cable; the proxy node 120 and the first node 110 establish a connection over the wireless network.
  • the second node 130 can be a server, and the first node 120 can be a user equipment.
  • the proxy node 120 and the second node 130 establish a connection through an optical fiber and/or a coaxial cable; the proxy node 120 and the first node 110 establish a connection between the optical fiber and/or the coaxial cable.
  • the second node 130 sends a TCP packet to the first node through the proxy node 120, and after receiving the TCP packet sent by the second node 130, the proxy node 120 forwards the TCP packet to the first node 110.
  • the node 110 sends the ACK corresponding to the TCP message to the second node 130 through the proxy node 120.
  • the proxy node 120 forwards the ACK to the second node 130. If the second node 130 receives the ACK corresponding to the TCP packet, the second node 130 adds a TCP packet length to the transmission window.
  • FIG. 3 shows a structural block diagram of a proxy node provided by an exemplary embodiment of the present application.
  • the proxy node includes a processor 210, a memory 211, a receiver 212, and a transmitter 213.
  • the processor 210 is connected to the memory 211, the receiver 212, and the transmitter 213 via a bus, respectively.
  • Receiver 212 and transmitter 213 are used to implement communication with the second node and the first node.
  • Processor 210 includes one or more processing cores.
  • the processor 210 is operated by running an operating system or an application module to implement a message transmission method in each of the following method embodiments.
  • the memory 211 can store an operating system, an application module required for at least one function.
  • the application module includes: a receiving module, a sending module, and a processing module.
  • the receiving module is configured to implement steps related to receiving; the sending module is configured to implement steps related to sending; and the processing module is configured to implement steps related to processing.
  • memory 211 can be implemented by any type of volatile or non-volatile storage device, or a combination thereof, such as static random access memory (SRAM), electrically erasable programmable read only memory (EEPROM), erasable In addition to Programmable Read Only Memory (EPROM), Programmable Read Only Memory (PROM), Read Only Memory (ROM), Magnetic Memory, Flash memory, disk or CD.
  • SRAM static random access memory
  • EEPROM electrically erasable programmable read only memory
  • EPROM Programmable Read Only Memory
  • PROM Programmable Read Only Memory
  • ROM Read Only Memory
  • Magnetic Memory Flash memory
  • disk or CD CD
  • FIG. 3 does not constitute a limitation of the above-described proxy nodes, and may include more or fewer components or combinations of components, or different component arrangements.
  • FIG. 4 is a flowchart of a method for transmitting a message according to an exemplary embodiment of the present application, which is applied to a message transmission system as shown in FIG. 2.
  • the method includes:
  • step 401 the first node sends an ith ACK to the proxy node, i ⁇ 1.
  • the first node sends an ith ACK to the proxy node, where the ith ACK is an ACK of the ith TCP packet sent by the second node.
  • the first node After receiving the ith TCP packet of the second node, the first node needs to acknowledge the ith TCP packet and send the ith ACK corresponding to the ith TCP packet.
  • the first TCP message sent by the second node to the first node randomly generates a SEQ to be stored in the header file of the first TCP packet, for example, The SEQ is m.
  • the first node acknowledges the first TCP packet and sends a first ACK.
  • the ACK number is M+1 indicates that the first TCP packet has been received and requests to send the second TCP packet.
  • the proxy node receives the ith ACK sent by the first node.
  • the proxy node receives the ith ACK sent by the first node, and the ith ACK is an ACK that has not been sent to the second node.
  • step 403 the proxy node forwards the ith ACK to the second node.
  • the proxy node forwards the received i-th ACK sent by the first node to the second node.
  • the proxy node transmits the i+1th to the i+nth ACKs to the second node according to the i-th ACK and the transmission window, n ⁇ 1.
  • the proxy node After receiving the i-th ACK, the proxy node predicts the range of the TCP message sequence to be sent after the second node receives the i-th ACK according to the length of the transmission window, and obtains the SEQ of the predicted TCP packet according to the sequence number range, according to the prediction.
  • the SEQ of the TCP message generates the i+1th to the i+nth ACK, and sends the generated i+1th to the i+nth ACK to the second node, where the ith to the i+th
  • the n ACKs are ACKs corresponding to the i+1th to the i+thth TCP packets.
  • the transmission window is expanded by a length. Therefore, when the second node receives the i-th ACK, it indicates that the i-th TCP packet has been received. If it is confirmed, it will continue to send the next TCP packet, that is, the i+1th TCP packet. At the same time, according to the size of the sending window, other TCP packets may be sent.
  • the proxy node After receiving the SEQ of the first TCP packet, the proxy node can calculate the SEQ of each TCP packet of the second node. Therefore, the proxy node predicts that the second node receives the ith according to the ith ACK. After the TCP packet sent after the ACK, the SEQ of the TCP packet to be sent by the second node can be calculated, and then the corresponding i+1th to i+1th ACKs are generated.
  • the proxy node sequentially sends the i+1th to the i+nth ACKs to the second node according to the predetermined time interval.
  • the proxy node can Set a predetermined time interval according to the network condition, and send the generated ACK to the second node in sequence according to the time interval, so as to prevent the second node from receiving the ACK corresponding to the TCP packet before sending a TCP packet, thereby reducing the sending.
  • the probability of loss of ACK is the probability of loss of ACK.
  • the proxy node predicts the i+1th TCP packet to be sent by the second node to the i+nth TCP packet after receiving the i-th ACK.
  • the NTP corresponding to the i+nth TCP packet is generated and sent to the second node in advance, so that the second node sends the ACK corresponding to the i+nth TCP packet in advance.
  • the ACK corresponding to the TCP packet can be received in time, thereby reducing the RTT between the second node and the proxy node, and improving the transmission rate and the throughput rate.
  • the technical solution of the embodiment of the present application is further elaborated by taking the initial transmission window size as the length of one TCP packet as an example.
  • the length of the initial transmission window Swnd 0 is 1 TCP packet length
  • the second node sends the first TCP packet to the proxy node, and the proxy node receives the first TCP packet and then goes to the first The node forwards the first TCP packet.
  • the first node After receiving the first TCP packet, the first node sends the first ACK corresponding to the first TCP packet. If the SEQ carried by the first TCP packet is m, the ACK number carried by the first ACK is incremented by 1 on the basis of m, which is m+1.
  • the proxy node After receiving the first ACK sent by the first node, the proxy node forwards the first ACK to the second node, and after receiving the first ACK, the second node determines that the first TCP packet sent by the second node is received.
  • the first transmission window Swnd 1 is added with a TCP packet length based on Swnd 0 , and is expanded to two TCP packet lengths, and the second node can send a second TCP packet to the proxy node.
  • the third TCP packet The interval between the first node sending the first TCP packet and receiving the first ACK corresponding to the first TCP packet is RTT.
  • the proxy node After receiving the first ACK, the proxy node triggers an ACK generation mechanism to predict the first transmission window Swnd of the second node after receiving the first ACK according to the length 1 of the initial transmission window Swnd 0 carried by the first ACK.
  • the length of 1 is 2 TCP packet lengths, that is, the second node is predicted to send the second TCP packet and the third TCP packet after receiving the first ACK, and the ACK carried according to the first ACK.
  • the number of the second ACK and the third ACK corresponding to the second TCP packet and the third TCP packet are respectively calculated, and the second ACK and the third ACK are generated, and according to the preset time.
  • the interval ⁇ T sequentially transmits the second ACK and the third ACK to the second node.
  • the second node After receiving the third ACK, the second node adds a TCP packet length to the Swnd 2 based on the length Swnd 3 of the third transmission window, and expands Swnd 3 to 4 TCP packet lengths, and sequentially to the proxy node.
  • the confirmation is marked in bold in Figure 5, so the length of the available window of the third transmission window is 2 TCP message lengths.
  • the proxy node receives the second TCP packet, the third TCP packet, the fourth TCP packet, the fifth TCP packet, the sixth TCP packet, and the seventh TCP packet sent by the second node. Then, the second TCP packet is forwarded to the seventh TCP packet in sequence to the first node.
  • the first node after receiving the second TCP packet forwarded by the proxy node, the first node sends a second ACK corresponding to the second TCP packet to the proxy node; the first node receives the forwarding of the proxy node.
  • the third ACK corresponding to the third TCP packet is sent to the proxy node; after receiving the fourth TCP packet forwarded by the proxy node, the first node sends the fourth TCP packet to the proxy node.
  • the fourth ACK corresponding to the text.
  • the first node after receiving the fifth TCP packet, the sixth TCP packet, and the seventh TCP packet forwarded by the proxy node, the first node sends the fifth TCP packet and the sixth TCP packet to the proxy node.
  • the fifth ACK, the sixth ACK, and the seventh ACK (not shown) corresponding to the text and the seventh TCP packet, and so on, are not repeated.
  • the proxy node After the proxy node receives the second ACK, since the proxy node has sent the second ACK to the second node, the proxy node will discard the second ACK sent by the first node; after receiving the third ACK, the proxy node receives the third ACK. Since the proxy node has sent the third ACK to the second node, the proxy node will discard the third ACK sent by the first node.
  • the proxy node After receiving the fourth ACK, the proxy node obtains the length of the third transmission window stored in the buffer to be 4, and predicts that the second node will expand the length of the fourth transmission window to 5 after receiving the fourth ACK.
  • the fifth ACK, the sixth ACK, and the fifth ACK, the sixth TCP packet, the eighth TCP packet, and the ninth TCP packet are respectively generated in the fifth TCP packet, the sixth TCP packet, the seventh TCP packet, and the ninth TCP packet. 7 ACKs, 8th ACKs, and 9th ACKs.
  • the proxy node forwards the 4th ACK sent by the first node to the second node, and generates the generated 5th ACK, 6th ACK, 7th ACK, 8th ACK, and 9th ACK according to a predetermined time.
  • the interval ⁇ T is sent to the second node one by one in order.
  • the proxy node After the proxy node receives the 5th ACK sent by the first node, since the proxy node has sent the 5th ACK to the second node, the proxy node discards the 5th ACK sent by the first node; the proxy node receives the After 6 ACKs, since the proxy node has sent the 6th ACK to the second node, the proxy node will discard the 6th ACK sent by the first node; after the proxy node receives the 7th ACK, since the proxy node has already The 7th ACK is sent to the second node, so the proxy node will discard the 7th ACK sent by the first node (not shown). And so on, no longer repeat them.
  • FIG. 7 is a flowchart of a method for transmitting a message according to another exemplary embodiment of the present application, which is applied to the proxy node 120 shown in FIG.
  • the method is an optional implementation of the step 403 shown in FIG. 4, and the method is applicable to the embodiment shown in FIG. 4, the method includes:
  • the proxy node obtains the i-th transmission window length based on the cached i-th transmission window length.
  • the proxy node can obtain the i-1th transmission window length Swnd i-1 by obtaining the i-th TCP packet through the cache.
  • the i-1th transmission window length Swnd i-1 is the window length of the transmission window after the second node receives the i-1th ACK.
  • the proxy node predicts, according to the sequence number i of the i-th TCP packet and the length of the i-th transmission window, that the sequence number of the TCP packet sent by the second node after receiving the i-th ACK is the sequence number i+ 1 to the serial number i+n.
  • the second node adds a TCP packet length to the sending window every time it receives an ACK corresponding to a TCP packet. Therefore, the proxy node adds 1 according to the i-1th sending window length Swnd i- 1. Obtain the ith transmission window length Swnd i .
  • the proxy node After obtaining the i-th transmission window length Swnd i , the proxy node adds the sequence number of the i-th TCP packet to Swnd i , and obtains the sequence number i+n of the i+nth TCP packet, because the second node is After receiving the ith ACK, the i+1th TCP packet is sent, and the sequence number of the TCP packet sent by the second node after receiving the ith ACK is the sequence number i+1 to the sequence number i+n.
  • the length of the fourth transmission window is increased by the length of the third transmission window, and the length of the TCP packet is increased to obtain the fourth transmission window.
  • the SEQ and TCP protocol of the fourth TCP packet can obtain the SEQ of the ninth TCP packet, and at the same time, it can be predicted that the second node will send the fifth to ninth TCP packet after receiving the fourth ACK.
  • the SEQs of the 5th to 8th TCP messages can be obtained according to the SEQ of the 4th TCP message.
  • the length of the 4th transmission window is 5, because the 5th TCP packet, the 6th TCP packet, and the 7th TCP packet have been sent but not yet
  • the corresponding ACK is received, and the actual available length of the fourth transmission window is 2 TCP packet lengths.
  • the fifth ACK and the sixth ACK corresponding to the fifth TCP packet, the sixth TCP packet, and the seventh TCP packet are not received by the proxy node when receiving the fourth ACK sent by the first node.
  • the proxy node sends the 5th ACK to the 9th ACK to the second node, where the 5th ACK is the i+1th ACK, and the 9th ACK is the i+n ACK .
  • step 404c the proxy node generates the i+1th to the i+nth ACKs according to the sequence number range of the TCP message.
  • the second node After determining that the second node sends the (i+1)th to the i+thth TCP packets after receiving the ith ACK, the second node generates the corresponding i+1th to the first according to the sequence number range of the TCP packet. i+n ACKs.
  • the length of the i-th transmission window is obtained by the proxy node according to the length of the i-1th transmission window that is buffered, and then the second node is predicted to be received by the length of the i and the i-th transmission window.
  • the sequence number range of the TCP packet after the i-th ACK improves the accuracy of the proxy node predicting the second node to send the TCP packet.
  • the embodiment shown in FIG. 8 proposes a message transmission method to solve the technical problem.
  • FIG. 8 is a flowchart of a method for transmitting a message according to another exemplary embodiment of the present application, which is applied to a message transmission system as shown in FIG. 2 .
  • the method may be the method step after step 404 shown in FIG. 4, and the method may be combined for use in the embodiment shown in FIG. 4, the method includes:
  • step 405 the second node sends the i+jth TCP message, 1 ⁇ j ⁇ n.
  • Step 405 is the step after step 404. After receiving the ith ACK, the second node obtains the information that the i-th TCP packet is received, and sends the i+jth TCP packet to the proxy node.
  • the second node sends the eighth TCP packet and the ninth after receiving the fourth ACK.
  • step 406 the proxy node receives the i+jth TCP message.
  • the proxy node receives the i+jth TCP packet.
  • the proxy node sends the i+jth TCP packet to the first node, and sets a timer.
  • the proxy node sends the received i+jth TCP packet to the first node, and sets a timer.
  • the timer's timing is the preset time.
  • the proxy node receives the ninth TCP packet sent by the second node, and sets a timer when forwarding the ninth TCP packet to the first node.
  • the proxy node resends the i+jth TCP packet when the timer expires and the i+jth ACK sent by the first node is not received.
  • the proxy node determines that the i+jth TCP packet is lost. Resending the i+jth TCP packet to the first node. In this process, the second node receives 2 i+j-1 ACKs, indicating that the i+j-1th TCP packet has been acknowledged, but the i+jth TCP packet is lost. The two nodes resend the i+jth TCP packet to the proxy node.
  • the proxy node determines the ninth TCP packet. If the loss occurs, the 8th ACK is sent to the second node. In the process, the second node receives 2 8th ACKs, indicating that the ninth TCP packet is lost, so the second node resends the ninth acknowledgment. TCP packets.
  • the proxy node when receiving the at least four xth ACKs continuously sent by the first node, the proxy node resends the x+1th TCP packet to the first node, where x is an integer.
  • the proxy node When the proxy node receives the 4th xth ACK sent by the first node, it indicates that the first node has received the xth TCP packet, but the x+1th TCP packet is lost, and the first node After receiving the three TCP packets after the x+1th TCP packet, the TCP packet is received in strict accordance with the order. Therefore, after the x+1th TCP packet is lost, the first node is even After receiving the TCP message after the x+1th TCP packet, the xth ACK is still sent to the proxy node, where the first xth ACK indicates that the xth TCP packet is received, and at least 3 repetitions are followed.
  • the xth ACK indicates that the i+1th TCP packet is not received, and packet loss occurs.
  • the proxy node After the proxy node receives the at least four xth ACKs continuously sent by the first node, the first node resends the x+1th TCP packet.
  • the proxy node sends the second to seventh TCP packets to the first node. If the third TCP packet is lost, the first node receives the second TCP packet. Sending a second ACK to the proxy node, sending a second ACK to the proxy node when receiving the fourth TCP packet, and transmitting the third and second WTRUs to the proxy node when receiving the fifth TCP packet ACK, when receiving the sixth TCP packet, sends a fourth second ACK to the proxy node, and after receiving four consecutive second ACKs, the proxy node resends the third TCP packet to the first node. .
  • the proxy node sets a timer when forwarding the TCP packet sent by the second node to the first node, and does not receive the TCP packet sent by the first node when the timer exceeds the predetermined time.
  • the ACK corresponding to the text is sent to the second node
  • the ACK corresponding to the last TCP packet of the TCP packet is re-sent, and the first node does not receive the TCP packet, and the proxy node sends the TCP to the second node in advance.
  • the ACK corresponding to the packet causes the second node to generate a misjudgment that the TCP packet is acknowledged, thereby causing data loss and improving the accuracy of packet transmission.
  • the proxy node after receiving the at least four xth ACKs continuously sent by the first node, the proxy node resends the x+1th TCP packet to the first node, and solves the pass timer.
  • the problem of whether the TCP packet is lost and the waiting time is too long is improved, and the packet transmission efficiency is improved.
  • an ACK sent by the first node to the proxy node may occur, including an ACK that the proxy node has sent to the second node in advance, if the proxy node continues forwarding the ACK to the second node, the second node After receiving the same two ACKs, the next TCP packet of the TCP packet corresponding to the ACK is lost, so the next TCP packet is resent.
  • the embodiment shown in FIG. 9 proposes a message transmission method to solve the technical problem.
  • FIG. 9 is a flowchart of a method for transmitting a message according to another exemplary embodiment of the present application, which is applied to a message transmission system as shown in FIG. 2 .
  • the method may be the method step after step 404 shown in FIG. 4, and the method may be combined for use in the embodiment shown in FIG. 4, the method includes:
  • step 409 the second node sends the i+kth TCP message to the proxy node, 1 ⁇ k ⁇ n.
  • Step 409 is the step after step 404. After receiving the ith ACK, the second node obtains the information that the i-th TCP packet is received, and sends the i+kth TCP packet to the proxy node.
  • the proxy node receives the i+kth TCP message, 1 ⁇ k ⁇ n.
  • the proxy node receives the i+kth TCP packet.
  • the proxy node sends the i+kth TCP packet to the first node.
  • the proxy node After receiving the i+kth TCP packet sent by the second node, the proxy node forwards the i+kth TCP packet to the first node.
  • step 412 the first node receives the i+kth TCP message.
  • the first node receives the i+kth TCP packet forwarded by the proxy node.
  • step 413 the first node sends the i+kth ACK to the proxy node.
  • the first node After receiving the i+kth TCP packet forwarded by the proxy node, the first node sends the i+kth ACK corresponding to the i+kth TCP to the proxy node as the acknowledgement of the i+kth TCP packet.
  • the proxy node receives the i+kth ACK sent by the first node, and the i+kth ACK is an ACK that the proxy node has sent to the second node.
  • the proxy node receives the i+kth ACK sent by the first node, and the i+kth ACK is an ACK that the proxy node has sent to the second node.
  • the proxy node discards the i+kth ACK.
  • the proxy node Since the proxy node receives the i-th ACK, generates an i+1th ACK to an i+n ACK, where the i+k ACK is one of the i+1th ACK to the i+n ACK. ACK, the proxy node has sent to the second node. In order not to repeatedly send the same ACK, the proxy node will receive the i+k ACK sent by the first node after receiving the second i+k ACK. throw away.
  • the proxy node receives the second ACK sent by the first node, and since the proxy node has sent the second ACK to the second node, the second ACK sent by the first node is received. After the second ACK is discarded.
  • the i+1th to the i+1th ACKs are sequentially sent to the second node by the proxy node, and the second node is prevented from receiving the TCP before sending a TCP packet.
  • the ACK corresponding to the message reduces the probability of loss of the ACK sent by the second node.
  • FIG. 10 is a flowchart of a method for transmitting a message according to another exemplary embodiment of the present application, which is applied to a message transmission system as shown in FIG. 2.
  • the method includes:
  • step 1001 the first node sends an ith ACK to the proxy node, i ⁇ 1.
  • the first node sends an ith ACK to the proxy node, where the ith ACK is an ACK of the ith TCP packet sent by the second node.
  • the first node After receiving the ith TCP packet of the second node, the first node needs to acknowledge the ith TCP packet and send the ith ACK corresponding to the ith TCP packet.
  • the first TCP message sent by the second node to the first node randomly generates a SEQ to be stored in the header file of the first TCP packet, for example, The SEQ is m.
  • the first node acknowledges the first TCP packet and sends a first ACK.
  • the ACK number is M+1 indicates that the first TCP packet has been received and requests to send the second TCP packet.
  • step 1002 the proxy node receives the ith ACK sent by the first node.
  • the proxy node receives the ith ACK sent by the first node, and the ith ACK is an ACK that has not been sent to the second node.
  • step 1003 the proxy node forwards the ith ACK to the second node.
  • the proxy node forwards the received i-th ACK sent by the first node to the second node.
  • the proxy node obtains the length of the i-th transmission window according to the length of the i-1th transmission window of the cache.
  • the proxy node can obtain the i-1th transmission window length Swnd i-1 by obtaining the i-th TCP packet through the cache.
  • the i-1th transmission window length Swnd i-1 is the window length of the transmission window after the second node receives the i-1th ACK.
  • the proxy node predicts, according to the sequence number i of the i-th TCP packet and the length of the i-th transmission window, that the sequence number of the TCP packet sent by the second node after receiving the i-th ACK is the sequence number i+ 1 to the serial number i+n, n ⁇ 1.
  • the second node adds a TCP packet length to the sending window every time it receives an ACK corresponding to a TCP packet. Therefore, the proxy node adds 1 according to the i-1th sending window length Swnd i- 1. Obtain the ith transmission window length Swnd i .
  • the proxy node After obtaining the i-th transmission window length Swnd i , the proxy node adds the sequence number of the i-th TCP packet to Swnd i , and obtains the sequence number i+n of the i+nth TCP packet, because the second node is After receiving the ith ACK, the i+1th TCP packet is sent, and the sequence number of the TCP packet sent by the second node after receiving the ith ACK is the sequence number i+1 to the sequence number i+n.
  • the proxy node In step 1006, the proxy node generates the i+1th to the i+1th ACKs according to the sequence number range of the TCP message.
  • the second node After determining that the second node sends the (i+1)th to the i+thth TCP packets after receiving the ith ACK, the second node generates the corresponding i+1th to the first according to the sequence number range of the TCP packet. i+n ACKs.
  • the proxy node sequentially transmits the (i+1)th to the i+1th ACKs according to a predetermined time interval.
  • the proxy node sequentially transmits the i+1th to the i+nth ACKs to the second node at predetermined time intervals. Because the second node sends the next TCP packet after the previous TCP packet is acknowledged, so if the time interval is very After a short case (or at the same time) sending the i+1th to the i+nth ACKs to the second node, a situation may occur in which the second node receives the TCP message before sending the TCP message. The ACK corresponding to the TCP packet, after the second node receives the ACK, the ACK is discarded as an invalid ACK.
  • the proxy node may set a predetermined time interval according to the network condition, and send the generated ACK to the second node in sequence according to the time interval, so as to prevent the second node from receiving the TCP packet before sending a TCP packet.
  • the corresponding ACK reduces the probability of loss of the transmitted ACK.
  • the i+1th to the i+1th ACKs are sent to the second node in turn by the proxy node, and the second node is prevented from receiving the ACK corresponding to the TCP packet before sending a TCP packet, thereby lowering the second node.
  • the probability of loss of the transmitted ACK is not limited to the probability of loss of the transmitted ACK.
  • the predetermined time interval is less than a round trip delay between the proxy node and the second node.
  • the round-trip delay between the proxy node and the second node is reduced as much as possible, thereby improving data transmission efficiency.
  • step 1008 the second node receives the ith ACK.
  • the second node receives the ith ACK sent by the proxy node.
  • step 1009 the second node sends the i+jth TCP message, 1 ⁇ j ⁇ n.
  • the second node After receiving the ith ACK, the second node obtains the information that the i-th TCP packet is received, and sends the i+jth TCP packet to the proxy node.
  • the proxy node receives the i+jth TCP message.
  • the proxy node receives the i+jth TCP packet.
  • the proxy node sends the i+jth TCP packet to the first node, and sets a timer.
  • a timer is set.
  • the timer's timing is the preset time.
  • the proxy node resends the i+jth TCP packet when the timer expires and the i+jth ACK sent by the first node is not received.
  • the proxy node determines that the i+jth TCP packet is lost. The i+thth TCP packet is sent to the first node again.
  • the proxy node when receiving the at least four xth ACKs continuously sent by the first node, the proxy node resends the x+1th TCP packet to the first node, where x is an integer.
  • the proxy node When the proxy node receives the 4th xth ACK sent by the first node, it indicates that the first node has received the xth TCP packet, but the x+1th TCP packet is lost, and the first node After receiving the three TCP packets after the x+1th TCP packet, the TCP packet is received in strict accordance with the order. Therefore, after the x+1th TCP packet is lost, the first node is even After receiving the TCP message after the x+1th TCP packet, the xth ACK is still sent to the proxy node, where the first xth ACK indicates that the xth TCP packet is received, and at least 3 repetitions are followed.
  • the xth ACK indicates that the i+1th TCP packet is not received, and packet loss occurs.
  • the proxy node After the proxy node receives the at least four xth ACKs continuously sent by the first node, the first node resends the x+1th TCP packet.
  • step 1013 the second node sends the i+kth TCP message to the proxy node, 1 ⁇ k ⁇ n.
  • the second node After receiving the i-th ACK, the second node obtains information that the i-th TCP packet is received, and sends the information to the proxy node. Send the i+kth TCP packet.
  • the proxy node receives the i+kth TCP message.
  • the proxy node receives the i+kth TCP packet.
  • the proxy node sends the i+thth TCP packet to the first node.
  • the proxy node After receiving the i+kth TCP packet sent by the second node, the proxy node forwards the i+kth TCP packet to the first node.
  • step 1016 the first node receives the i+kth TCP message.
  • the first node receives the i+kth TCP packet forwarded by the proxy node.
  • step 1017 the first node transmits an i+kth ACK, 1 ⁇ k ⁇ n.
  • the first node After receiving the i+kth TCP packet forwarded by the proxy node, the first node sends the i+kth ACK corresponding to the i+kth TCP to the proxy node as the acknowledgement of the i+kth TCP packet.
  • the proxy node receives the i+kth ACK sent by the first node, and the i+kth ACK is an ACK that the proxy node has sent to the second node.
  • the proxy node receives the i+kth ACK sent by the first node, and the i+kth ACK is an ACK that the proxy node has sent to the second node.
  • the proxy node discards the i+kth ACK.
  • the proxy node Since the proxy node receives the i-th ACK, generates an i+1th ACK to an i+n ACK, where the i+k ACK is one of the i+1th ACK to the i+n ACK. ACK, the proxy node has sent to the second node. In order not to repeatedly send the same ACK, the proxy node will receive the i+k ACK sent by the first node after receiving the second i+k ACK. throw away.
  • the proxy node predicts the i+1th TCP packet to be sent by the second node to the i+nth TCP packet after receiving the i-th ACK.
  • the NTP corresponding to the i+nth TCP packet is generated and sent to the second node in advance, so that the second node sends the ACK corresponding to the i+nth TCP packet in advance.
  • the ACK corresponding to the TCP packet can be received in time, thereby reducing the RTT between the second node and the proxy node, and improving the transmission rate and the throughput rate.
  • the length of the i-th transmission window is obtained by the proxy node according to the length of the i-1th transmission window of the cache, and then the length of the i and the i-th transmission window is predicted to be the second node.
  • the i+nth TCP packet to be sent after i ACKs improves the accuracy of the proxy node predicting the second node to send TCP packets.
  • the proxy node sets a timer when forwarding the TCP packet sent by the second node to the first node, and does not receive the corresponding TCP packet sent by the first node when the timer exceeds the predetermined time. If the ACK is sent, the ACK corresponding to the last TCP packet of the TCP packet is re-sent to the second node, and the first node does not receive the TCP packet, and the proxy node sends the TCP packet to the second node in advance. The corresponding ACK causes the second node to generate a misjudgment that the TCP message is confirmed, thereby causing data loss, and improving the accuracy of message transmission.
  • the proxy node discards the duplicate ACK received from the first node, and the duplicate ACK is that the proxy node has sent to the second node, and receives the same ACK sent by the first node, and the solution is resolved.
  • the second node receives the duplicate ACK, the data transmission is repeated, which reduces the repeated transmission of the TCP packet and improves the transmission efficiency of the TCP packet.
  • the proxy node after receiving the at least four xth ACKs continuously sent by the first node, the proxy node resends the x+1th TCP packet to the first node, and solves the pass timer. Determine the TCP message is The problem of excessive waiting time is lost, and the message transmission efficiency is improved.
  • FIG. 11 shows a block diagram of a message transmission apparatus provided by an exemplary embodiment of the present application, which is applied to the proxy node 120 shown in FIG. 1.
  • the device includes a receiving module 1101, a sending module 1102, and a processing module 1103.
  • the receiving module 1101 is configured to perform step 402, step 406, step 410, step 414, step 1002, step 1010, and step 1014 in implementing the foregoing embodiment of FIG. 4 or the embodiment of FIG. 8 or the embodiment of FIG. 9 or the embodiment of FIG. 10 , step 1018, etc. receiving steps, and other implicit receiving steps.
  • the sending module 1102 is configured to perform step 403, step 404, step 407, step 408, step 411, step 1003, step 1007 in the above embodiment of FIG. 4 or the embodiment of FIG. 8 or the embodiment of FIG. 9 or the embodiment of FIG. 10 , Steps 1011, step 1012, step 1015, etc., and other implicit transmission steps.
  • the processing module 1103 is configured to perform step 404a, step 404b, step 404c, step 407, step 415, and step in the foregoing embodiment of FIG. 4 or the embodiment of FIG. 7 or the embodiment of FIG. 8 or the embodiment of FIG. 9 or the embodiment of FIG. 10 1004, step 1005, step 1006, step 1011, step 1019, and other implicit processing steps.
  • the embodiment of the present application further provides a computer readable storage medium, where the computer readable storage medium stores at least one instruction, and at least one instruction is loaded and executed by a processor to implement the message provided by each of the foregoing method embodiments. Transmission method.
  • a person skilled in the art may understand that all or part of the steps of implementing the above embodiments may be completed by hardware, or may be instructed by a program to execute related hardware, and the program may be stored in a computer readable storage medium.
  • the storage medium mentioned may be a read only memory, a magnetic disk or an optical disk or the like.

Landscapes

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

Abstract

本申请公开了一种报文传输方法、装置及系统,涉及通信领域,该方法包括:代理节点接收第一节点发送的第i个确认ACK,第i个ACK是第i个TCP报文对应的ACK,且第i个ACK是尚未发送至第二节点的ACK;向第二节点转发第i个ACK;根据第i个ACK和发送窗口向第二节点发送第i+1个至第i+n个ACK。通过代理节点预测第二节点在接收到该第i个ACK后即将发送的TCP报文,生成并向第二节点提前发送该TCP报文对应的ACK,使得第二节点刚发送TCP报文后,就能够及时收对应的ACK,从而减少了第二节点和代理节点之间的RTT,提升了发送速率和吞吐率。

Description

报文传输方法、装置及系统 技术领域
本申请涉及通信领域,特别涉及一种报文传输方法、装置及系统。
背景技术
传输控制协议(Transmission Control Protocol,TCP)中具有报文到达确认(Acknowledgement,ACK)机制。当第一节点向第二节点反馈ACK后,第二节点会根据收到的ACK以及发送窗口,继续向第一节点发送后续报文。发送窗口越大,发送速率和吞吐率越高。
在刚开始发送报文的慢启动阶段,由于初始的发送窗口较小,如果第二节点和第一节点之间的往返延时(Round-trip Time,RTT)较大,则ACK需要经历较大的延迟才能到达第二节点,导致发送窗口的增长较慢。为了加快发送窗口的增长,相关技术中提供的报文传输方法包括:服务器向演进型基站(eNode B,eNB)发送TCP报文,eNB将TCP报文转发给UE。在UE向eNB反馈该TCP报文的ACK之前,eNB代替UE生成一个ACK,提前发送给服务器。服务器接收到该ACK后,增大发送窗口并向eNB发送后续TCP报文。
上述技术,能够减少UE和eNB之间的RTT对发送速率的影响,但是由于eNB与服务器之间的RTT是UE和服务器之间的RTT的主要组成部分,所以上述技术所能够提升的发送速率和吞吐率有限。
发明内容
本申请实施例提供了一种报文传输方法、装置及系统,可以解决相关技术无法减少eNB与服务器之间的RTT的问题。所述技术方案如下:
根据本发明实施例的第一方面,提供了一种报文传输方法,所述方法包括:
代理节点接收第一节点发送的第i个ACK,所述第i个ACK是第i个TCP报文对应的ACK,且所述第i个ACK是尚未发送至第二节点的ACK,i≥1;
所述代理节点向所述第二节点转发所述第i个ACK;
所述代理节点根据所述第i个ACK和发送窗口,向所述第二节点发送第i+1个至第i+n个ACK,n≥1;所述第i+1个至第i+n个ACK是预测所述第二节点在收到所述第i个ACK后发送的至少一个TCP报文所对应的ACK。
通过代理节点预测第二节点在接收到该第i个ACK后即将发送的至少一个TCP报文报文,在第二节点尚未发送或正在发送该至少一个TCP报文时,就提前向第二节点发送该至少一个TCP报文对应的ACK,使得在第二节点刚发送TCP报文后,就能够及时收到该TCP报文对应的ACK,从而减少了第二节点和代理节点之间的RTT,提升了发送速率和吞吐率。
在第一方面的第一种可能的实施方式中,所述代理节点根据所述第i个ACK和发送窗口,向所述第二节点发送第i+1个至第i+n个ACK,包括:
所述代理节点根据所述第i个ACK和发送窗口,预测所述第二节点在收到所述第i个ACK后发送的至少一个TCP报文的序号;
所述代理节点根据所述序号生成所述第i+1个至第i+n个ACK;
所述代理节点向所述第二节点发送所述第i+1个至第i+n个ACK。
通过代理节点根据第i个ACK和发送窗口,进而预测出第二节点在收到第i个ACK后发送的至少一个TCP报文的序号,进而通过预测出的至少一个TCP报文的序号生成第i+1个至第i+n个ACK,提高了代理节点通过预测第二节点的TCP报文生成ACK的准确度。
结合第一方面的第一种可能的实施方式,在第一方面的第二种可能的实施方式中,所述代理节点根据所述第i个ACK和发送窗口,预测所述第二节点在收到所述第i个ACK后发送的至少一个TCP报文的序号,包括:
根据缓存的第i-1个发送窗口长度得到第i个发送窗口长度;所述第i个发送窗口长度等于所述第i-1个发送窗口长度加1;
根据所述第i个TCP报文的序号i和所述第i个发送窗口长度,预测出所述第二节点在收到所述第i个ACK后发送的TCP报文的序号范围是序号i+1至序号i+n;所述序号i+n等于所述序号i和所述第i个发送窗口长度的和;
其中,所述第i-1个发送窗口长度是所述第二节点接收到第i个ACK之前的发送窗口长度,所述第i个发送窗口长度是所述第二节点接收到所述第i个ACK后的发送窗口长度。
通过代理节点根据缓存的第i-1个发送窗口长度得到第i个发送窗口长度,进而通过序号i和第i个发送窗口长度预测出第二节点在收到第i个ACK后即将发送的TCP报文的序号范围,提高了代理节点预测第二节点发送TCP报文的准确度。
在第一方面的第三种可能的实施方式中,所述代理节点根据所述第i个ACK和发送窗口,向所述第二节点发送第i+1个至第i+n个ACK,包括:
所述代理节点根据所述第i个ACK和发送窗口,按照预定的时间间隔,依次向所述第二节点发送所述第i+1个至第i+n个ACK。
通过依次向第二节点发送第i+1个至第i+n个ACK,尽量避免第二节点在发送一个TCP报文之前先收到该TCP报文对应的ACK,降低了第二节点发送的ACK的损失几率。
结合第一方面的第三种可能的实施方式,在第一方面的第四种可能的实施方式中,所述预定的时间间隔小于所述代理节点和所述第二节点之间的往返时延。
通过将预定时间间隔小于往返时延,尽可能地缩小代理节点和所述第二节点之间的往返时延,提高了数据传输效率。
结合第一方面、第一方面的第一种可能的实施方式、第一方面的第二种可能的实施方式,第一方面的第三种可能的实施方式或者第一方面的第四种可能的实施方式或者第一方面的第三种可能的实施方式,在第五种可能的实施方式中,所述代理节点根据所述第i个ACK和发送窗口,向所述第二节点发送第i+1个至第i+n个ACK之后,还包括:
接收所述第一节点发送的第i+k个ACK,所述第i+k个ACK是所述第i+1个至第i+n个ACK中的一个;
丢弃所述第i+k个ACK。
通过将从第一节点接收的重复ACK丢弃,该重复ACK是代理节点已经发送至第二节点,又接收到第一节点发送的相同的ACK,解决了第二节点接收到重复ACK后发生数据 传输重复的问题,减少了TCP报文的重复传输,提高了TCP报文的传输效率。
结合第一方面、第一方面的第一种可能的实施方式、第一方面的第二种可能的实施方式,第一方面的第三种可能的实施方式或者第一方面的第四种可能的实施方式或者第一方面的第三种可能的实施方式,在第六种可能的实施方式中,所述代理节点根据所述第i个ACK和发送窗口,向所述第二节点发送第i+1个至第i+n个ACK之后,还包括:
接收所述第二节点发送的第i+j个TCP报文,所述第i+j个TCP报文是第i+1个至第i+n个TCP报文中的一个;
向所述第一节点转发所述第i+j个TCP报文,并设置定时器;
在所述定时器超时且未收到所述第一节点发送的第i+j个ACK时,重新向所述第一节点发送所述第i+j个TCP报文。
通过在向第一节点转发第二节点发送的TCP报文时设置定时器,当定时器超过预定时间未收到第一节点发送的该TCP报文对应的ACK时,重新向第二节点发送该TCP报文的上一条TCP报文对应的ACK,解决了第一节点没有收到该TCP报文,代理节点却预先向第二节点发送该TCP报文对应的ACK使第二节点产生该TCP报文被确认的误判,从而造成数据丢失的问题,提高了报文传输的准确性。
结合第一方面、第一方面的第一种可能的实施方式、第一方面的第二种可能的实施方式,第一方面的第三种可能的实施方式或者第一方面的第四种可能的实施方式或者第一方面的第三种可能的实施方式,在第七种可能的实施方式中,在接收到所述第一节点连续发送的至少4个第x个ACK时,所述代理节点向所述第一节点重新发送第x+1个TCP报文,x为整数。
通过代理节点在接收到第一节点连续发送的至少4个第x个ACK后,向第一节点重新发送第x+1个TCP报文,解决了通过定时器判断TCP报文是否丢失等待时间过长的问题,提高了报文传输效率。
结合第一方面、第一方面的第一种可能的实施方式、第一方面的第二种可能的实施方式、第一方面的第三种可能的实施方式或者第一方面的第四种可能的实施方式或者第一方面的第三种可能的实施方式,在第八种可能的实施方式中,所述代理节点上设置有TCP透明代理模块。
结合第一方面的第八种可能的实施方式,在第九种可能的实施方式中,所述第二节点是服务器,所述代理节点是接入网设备,所述第一节点是用户设备,所述接入网设备的PDCP层上设置有所述TCP透明代理模块;
或,
所述第二节点是服务器,所述代理节点是无线网关,所述第一节点是用户设备,所述无线网关上设置有所述TCP透明代理模块;
或,
所述第二节点是服务器,所述代理节点是固定网网关,所述第一节点是用户设备,所述固定网网关上设置有所述TCP透明代理模块。
根据本发明实施例的第二方面,提供了一种报文传输装置,所述装置包括所述装置包括用于执行第一方面以及第一方面任意一种可能的实施方式所述的各个步骤的模块或手段。
根据本发明实施例的第三方面,提供了一种代理节点,所述代理节点包括处理器和存储器,其中所述存储器用于存储程序,当所述程序被所述处理器调用时,用于执行如第一方面以及第一方面任意一种可能的实施方式所述的方法。
根据本发明实施例的第四方面,提供了一种报文传输系统,所述系统包括第一节点、代理节点和第二节点;
所述代理节点包括如第二方面所述的报文传输装置;
或,
所述代理节点包括如第三方面所述的代理节点。
在第四方面的第一种可能的实施方式中,所述第二节点是服务器,所述代理节点是接入网设备,所述第一节点是用户设备,所述接入网设备的PDCP层上设置有所述TCP透明代理模块;
或,
所述第二节点是服务器,所述代理节点是无线网关,所述第一节点是用户设备,所述无线网关上设置有所述TCP透明代理模块;
或,
所述第二节点是服务器,所述代理节点是固定网网关,所述第一节点是用户设备,所述固定网网关上设置有所述TCP透明代理模块。
根据本发明实施例的第五方面,提供了一种计算机可读存储介质,用于存储程序,该程序被处理器调用时,用于执行如第一方面以及第一方面任意一种可能的实施方式所述的方法。
根据本发明实施例的第六方面,提供了一种报文传输设备,所述设备包括芯片和至少一个网络接口,所述芯片包括可编程逻辑电路和/或程序指令,当所述芯片运行时用于实现如第一方面以及第一方面任意一种可能的实施方式所述的数据包传输方法。
附图说明
为了更清楚地说明本申请实施例中的技术方案,下面将对实施例描述中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图仅仅是本申请的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其他的附图。
图1是本申请一个示例性实施例提供的滑动窗口机制示意图;
图2是本申请一个示例性实施例提供的报文传输系统的结构示意图;
图3是本申请一个示例性实施例提供的代理节点的结构框图;
图4是本申请一个示例性实施例提供的报文传输方法的方法流程图;
图5和图6是本申请一个示例性实施例提供的报文传输方法的方法示意图;
图7是本申请另一个示例性实施例提供的报文传输方法的方法流程图;
图8是本申请另一个示例性实施例提供的报文传输方法的方法流程图;
图9是本申请另一个示例性实施例提供的报文传输方法的方法流程图;
图10是本申请另一个示例性实施例提供的报文传输方法的方法流程图;
图11是本申请一个示例性实施例提供的报文传输装置的装置框图。
具体实施方式
为使本申请的目的、技术方案和优点更加清楚,下面将结合附图对本申请实施方式作进一步地详细描述。
为了方便理解,下面对本申请实施例中涉及的名词进行解释。
TCP报文(message):是TCP中的发送节点一次性要发送的数据块。一个TCP报文包含了将要发送的完整的数据信息,其长短不一致,长度不限且可变。TCP报文的头文件中包含有序列号(Sequence Number,SEQ)。
ACK:是接收节点在接收到发送节点发送的TCP报文后的回复确认报文,与TCP报文一一对应。在ACK的头文件中包含有SEQ对应的ACK号。比如,在接收到该TCP报文X后,ACK号将该TCP报文X的SEQ加1,得到该TCP报文X对应的ACK的ACK号。
TCP慢启动(Slow-start):是一种TCP拥塞控制机制。当发送节点开始在一个网络中传输TCP报文,或,发现TCP报文丢失并开始重新发送时,首先会通过滑动窗口机制来控制发送窗口长度,对网络的实际容量进行试探发送,避免由于发送了过量的数据而导致阻塞。在慢启动状态下,发送节点每收到一个TCP报文的ACK,就将发送窗口的长度增加一个TCP报文长度。
发送窗口(Send window,Swnd):是TCP中发送节点一次性发送的TCP报文长度,其包括已发送但未收到确认的TCP报文长度(位于发送窗口之中)和能够发送但尚未发送的TCP报文长度。
TCP透明代理模块:是指对TCP报文和/或ACK进行优化的代理模块,发送节点和接收节点不需要知道该TCP透明代理模块的存在,因此被称为透明代理模块。发送节点和接收节点的TCP报文和ACK都存储在该TCP透明代理的缓存中。
滑动窗口机制:是发送节点对TCP报文传输控制的一种措施,发送节点通过接收节点发送的ACK控制发送窗口的长度。在慢启动阶段,发送节点每收到一个ACK,就将发送窗口长度增加一个TCP报文长度。
如图1所示,发送窗口的长度为6个TCP报文的长度,其覆盖了第4个TCP报文至第9个TCP报文的范围,表示接收节点已经确认接收了第1个TCP报文至第3个TCP报文,其中,粗体字标示的第4个TCP报文至第6个TCP报文表示发送节点已经发送,但未收到接收节点反馈响应的ACK,第7个TCP报文至第9个TCP报文表示尚未发送但可以发送的TCP报文,第10个TCP报文之后的TCP报文表示尚未发送且不能发送,直至发送窗口向右移动后才能发送的TCP报文。其中,发送节点通过接收的ACK和上一轮发送窗口的长度计算本轮发送窗口的长度。
请参考图2,其示出了本申请一个示例性实施例提供的报文传输系统的结构示意图。该报文传输系统包括:第一节点110、代理节点120和第二节点130,其中第一节点110可以是接收TCP报文并发送对应的ACK的接收节点,第二节点130可以是发送TCP报文并接收相应的ACK的发送节点,或,第一节点110可以是发送TCP报文并接收相应的ACK的发送节点,第二节点130可以是接收TCP报文并发送对应的ACK的发送节点。
代理节点120可以是接入网设备,接入网设备可以是基站,该基站通常设置有分组数据汇聚协议(Packet Data Convergence Protocol,PDCP)层、无线链路层控制协议(Radio Link Control,RLC)层、媒体访问控制(Media Access Control,MAC)层的协议栈、物理层(Physical,PHY)协议栈,本发明实施例对接入网设备110的具体实现方式不加以限定。可选地,接入网设备还可以包括家庭基站(Home eNB,HeNB)、中继(Relay)、微微基站Pico等。其中,该基站的PDCP层上设置有TCP透明代理模块。
代理节点120还可以是无线网关,无线网关上设置有TCP透明代理模块;代理节点120还可以是固定网网关,固定网网关上设置有TCP透明代理模块。
当代理节点120是接入网设备时,第二节点130可以是服务器,第一节点110可以是用户设备(User Equipment,UE)。
代理节点120和第二节点130通过光纤和/或同轴电缆建立连接。
代理节点120和第一节点110通过无线空口建立无线连接。可选地,该无线空口是基于5G标准的无线空口,比如该无线空口是新空口(New Radio,NR);或者,该无线空口也可以是基于5G的更下一代移动通信网络技术标准的无线空口;或者,该无线空口也可以是基于4G标准(LTE系统)的无线空口。
当代理节点120是无线网关时,第二节点130可以是服务器,第一节点120可以是用户设备。代理节点120和第二节点130通过光纤和/或同轴电缆建立连接;代理节点120和第一节点110通过无线网络建立连接。
当代理节点120是固定网网关时,第二节点130可以是服务器,第一节点120可以是用户设备。代理节点120和第二节点130通过光纤和/或同轴电缆建立连接;代理节点120和第一节点110之间通过光纤和/或同轴电缆建立连接。
在相关技术中,第二节点130通过代理节点120向第一节点发送TCP报文,代理节点120接收第二节点130发送的TCP报文后,将该TCP报文转发至第一节点110,第一节点110接收到该TCP报文后,通过代理节点120向第二节点130发送该TCP报文对应的ACK,代理节点120接收到该ACK后,向第二节点130转发该ACK。如果是在慢启动阶段,第二节点130接收到该TCP报文对应的ACK后,将发送窗口增加一个TCP报文长度。
请参考图3,其示出了本申请一个示例性实施例提供的代理节点的结构框图。该代理节点包括:处理器210、存储器211、接收器212以及发送器213。
处理器210通过总线分别与存储器211、接收器212以及发送器213相连。
接收器212和发送器213用于与实现与第二节点和第一节点之间的通信。
处理器210包括一个或一个以上处理核心。处理器210通过运行操作系统或应用程序模块运行,以实现以下各个方法实施例中的报文传输方法。
可选的,存储器211可存储操作系统、至少一个功能所需的应用程序模块。可选的,应用程序模块包括:接收模块、发送模块和处理模块。其中,接收模块用于实现有关接收的步骤;发送模块用于实现有关发送的步骤;处理模块用于实现有关处理的步骤。
此外,存储器211可以由任何类型的易失性或非易失性存储设备或者它们的组合实现,如静态随机存取存储器(SRAM),电可擦除可编程只读存储器(EEPROM),可擦除可编程只读存储器(EPROM),可编程只读存储器(PROM),只读存储器(ROM),磁存储器, 快闪存储器,磁盘或光盘。
本领域技术人员可以理解,图3中所示出的结构并不构成上述代理节点的限定,可以包括比图示更多或更少的部件或组合某些部件,或者不同的部件布置。
请参考图4,其示出了本申请一个示例性实施例提供的报文传输方法的方法流程图,该方法应用于如图2所示的报文传输系统中。该方法包括:
在步骤401中,第一节点向代理节点发送第i个ACK,i≥1。
第一节点向代理节点发送第i个ACK,该第i个ACK是对第二节点发送的第i个TCP报文的ACK。在TCP中,第一节点接收到第二节点的第i个TCP报文后,需要对该第i个TCP报文进行确认,发送该第i个TCP报文对应的第i个ACK。
当第二节点和第一节点在建立连接后,第二节点向第一节点发送的第1个TCP报文中,会随机生成一个SEQ保存在第1个TCP报文的头文件中,例如,该SEQ为m,第一节点在接收到第1个TCP报文之后,会对该第1个TCP报文进行确认,发送第1个ACK,在该第1个ACK的头文件中ACK号为m+1,表示第1个TCP报文已经被接收,请求发送第2个TCP报文。
在步骤402中,代理节点接收第一节点发送的第i个ACK。
代理节点接收到第一节点发送的第i个ACK,该第i个ACK是尚未向第二节点发送的ACK。
在步骤403中,代理节点向第二节点转发第i个ACK。
代理节点向第二节点转发接收到的第一节点发送的第i个ACK。
在步骤404中,代理节点根据第i个ACK和发送窗口,向第二节点发送第i+1个至第i+n个ACK,n≥1。
代理节点接收到该第i个ACK后,根据发送窗口长度,预测第二节点接收到第i个ACK后即将发送的TCP报文序号范围,根据序号范围得到预测的TCP报文的SEQ,根据预测的TCP报文的SEQ生成第i+1个至第i+n个ACK,并向第二节点发送生成的第i+1个至第i+n个ACK,其中,第i个至第i+n个ACK为第i+1个至第i+n个TCP报文对应的ACK。
在慢启动阶段,第二节点每收到一个TCP报文对应的ACK,就会将发送窗口扩大一个长度,因此,当第二节点接收到第i个ACK后,表示第i个TCP报文已经被确认,则会继续发送后续的下一个TCP报文,即第i+1个TCP报文,同时,根据发送窗口的大小,还可能会发送之后的其他TCP报文。
代理节点在接收到第1个TCP报文的SEQ后即可计算之后第二节点的每一条TCP报文的SEQ,因此,代理节点根据第i个ACK预测出第二节点接收到该第i个ACK后发送的TCP报文后,即可计算出第二节点即将发送的TCP报文的SEQ,进而生成对应的第i+1个至第i+n个ACK。
可选的,代理节点按照预定的时间间隔,依次向第二节点发送第i+1个至第i+n个ACK。
由于第二节点在上一个TCP报文得到确认后才会发送下一个TCP报文,因此如果在时间间隔很短的情况下(或者同时)将第i+1个至第i+n个ACK发送至第二节点后,可能发生一种情况是,第二节点会在发送一个TCP报文之前先收到该TCP报文对应的ACK,第二节点接收到该ACK后会将该ACK作为无效的ACK丢弃。针对这种情况,代理节点可以 根据网络情况设置一个预定时间间隔,按照时间间隔将生成的ACK依次发送至第二节点,以避免第二节点在发送一个TCP报文之前先收到该TCP报文对应的ACK,降低了发送的ACK的损失几率。
综上所述,本申请实施例中,通过代理节点预测第二节点在接收到该第i个ACK后即将发送的第i+1个TCP报文至第i+n个TCP报文,在第二节点尚未发送或正在发送后续TCP报文时,就提前生成并向第二节点提前发送该第i+1个TCP报文至第i+n个TCP报文对应的ACK,使得在第二节点刚发送TCP报文后,就能够及时收到该TCP报文对应的ACK,从而减少了第二节点和代理节点之间的RTT,提升了发送速率和吞吐率。
以初始发送窗口大小为1个TCP报文长度为例,对本申请实施例的技术方案做进一步的详细阐述。
如图5所示,初始发送窗口Swnd0的长度为1个TCP报文长度,第二节点向代理节点发送第1个TCP报文,代理节点接收到第1个TCP报文后,向第一节点转发该第1个TCP报文。第一节点接收到该第1个TCP报文后,发送该第1个TCP报文对应的第1个ACK。若该第1个TCP报文携带的SEQ为m,则该第1个ACK携带的ACK号在m的基础上加1,为m+1。代理节点在接收到第一节点发送的第1个ACK后,将第1个ACK转发至第二节点,第二节点接收到第1个ACK后,判断其发送的第1个TCP报文被第一节点确认,则将第1个发送窗口Swnd1在Swnd0的基础上增加一个TCP报文长度,扩大为2个TCP报文长度,第二节点可以向代理节点发送第2个TCP报文和第3个TCP报文。其中,第二节点在发送第一TCP报文到接收第1个TCP报文对应的第1个ACK的间隔时间为RTT。
代理节点在接收到第1个ACK之后,触发ACK生成机制,根据第1个ACK携带的初始发送窗口Swnd0的长度1,预测第二节点在接收到第1个ACK后第1个发送窗口Swnd1的长度为2个TCP报文长度,即,预测第二节点在接收到第1个ACK后会发送第2个TCP报文和第3个TCP报文,同时根据第1个ACK携带的ACK号计算得到第2个TCP报文和第3个TCP报文分别所对应的第2个ACK和第3个ACK的ACK号,生成第2个ACK和第3个ACK,并根据预设的时间间隔△T向第二节点依次发送第2个ACK和第3个ACK。
第二节点在收到第2个ACK后,将第2个发送窗口的长度Swnd2在Swnd1的基础上增加一个TCP报文长度,将Swnd2扩大为3个TCP报文长度,依次向代理节点发送的第4个TCP报文和第5个TCP报文,第2个发送窗口的3个TCP报文长度中,由于第3个TCP报文已经发送且还未收到确认(在图5中标为粗体字),因此第2个发送窗口的实际可用窗口的长度为2个TCP报文长度。
第二节点在收到第3个ACK后,将第3个发送窗口的长度Swnd3在Swnd2基础上增加一个TCP报文长度,将Swnd3扩大为4个TCP报文长度,依次向代理节点发送第6个TCP报文和第7个TCP报文,第3个发送窗口的4个TCP报文长度中,由于第4个TCP报文和第5个TCP报文已经发送且还未收到确认,在图5中标为粗体字,因此第3个发送窗口的可用窗口的长度为2个TCP报文长度。
代理节点接收到第二节点发送的第2个TCP报文、第3个TCP报文、第4个TCP报文、第5个TCP报文、第6个TCP报文以及第7个TCP报文后,向第一节点依次转发第2个TCP报文至第7个TCP报文。
如图6所示,第一节点接收到代理节点转发的第2个TCP报文后,向代理节点发送第2个TCP报文对应的第2个ACK;第一节点接收到代理节点转发的第3个TCP报文后,向代理节点发送第3个TCP报文对应的第3个ACK;第一节点接收到代理节点转发的第4个TCP报文后,向代理节点发送第4个TCP报文对应的第4个ACK。同理,第一节点接收到代理节点转发的第5个TCP报文、第6个TCP报文以及第7个TCP报文后,向代理节点发送第5个TCP报文、第6个TCP报文以及第7个TCP报文分别对应的第5个ACK、第6个ACK以及第7个ACK(图中未标示),依次类推,不做赘述。
代理节点接收到第2个ACK后,由于代理节点已经向第二节点发送了第2个ACK,因此代理节点会将第一节点发送的第2个ACK丢弃;代理节点接收到第3个ACK后,由于代理节点已经向第二节点发送了第3个ACK,因此代理节点会将第一节点发送的第3个ACK丢弃。
代理节点接收到第4个ACK后,通过获取缓存中存储的第3个发送窗口的长度为4,预测第二节点在接收第4个ACK后,将会将第4个发送窗口长度扩大至5个TCP报文长度,发送第5个TCP报文、第6个TCP报文、第7个TCP报文、第8个TCP报文和第9个TCP报文,根据第4个ACK的SEQ,依次生成第5个TCP报文、第6个TCP报文、第7个TCP报文、第8个TCP报文和第9个TCP报文分别对应的第5个ACK、第6个ACK、第7个ACK、第8个ACK和第9个ACK。
代理节点将第一节点发送的第4个ACK转发至第二节点,并将生成的第5个ACK、第6个ACK、第7个ACK、第8个ACK和第9个ACK按照预定的时间间隔△T按照顺序一一发送至第二节点。
代理节点接收第一节点发送的第5个ACK后,由于代理节点已经向第二节点发送了第5个ACK,因此代理节点会将第一节点发送的第5个ACK丢弃;代理节点接收到第6个ACK后,由于代理节点已经向第二节点发送了第6个ACK,因此代理节点会将第一节点发送的第6个ACK丢弃;代理节点接收到第7个ACK后,由于代理节点已经向第二节点发送了第7个ACK,因此代理节点会将第一节点发送的第7个ACK丢弃(图中并未标示)。依次类推,不再赘述。
需要说明的是,图5和图6中,标为粗体字的表示第二节点已经发送,但还未收到相应ACK的TCP报文序号。
请参考图7,其示出了本申请另一个示例性实施例提供的报文传输方法的方法流程图,该方法应用于如图3所示的代理节点120中。该方法为图4所示的步骤403的一种可选实施方式,该方法适用于如图4所示的实施例中,该方法包括:
在步骤404a中,代理节点根据缓存的第i-1个发送窗口长度得到第i个发送窗口长度。
代理节点可以通过缓存获取第i个TCP报文获取第i-1个发送窗口长度Swndi-1。第i-1个发送窗口长度Swndi-1是第二节点在接收到第i-1个ACK后,发送窗口的窗口长度。
在步骤404b中,代理节点根据第i个TCP报文的序号i和第i个发送窗口长度,预测出第二节点在收到第i个ACK后发送的TCP报文的序号范围是序号i+1至序号i+n。
根据TCP,第二节点每收到一条TCP报文对应的ACK就会将发送窗口增加一个TCP报文长度,因此,代理节点根据第i-1个发送窗口长度Swndi-1加1,即可获得第i个发送窗 口长度Swndi
例如,如图6所示,第二节点接收到第4个ACK后,在第3个发送窗口的长度Swndi=4的基础上加1,得到第4个发送窗口的长度为5个TCP报文长度。
代理节点获得第i个发送窗口长度Swndi后,将第i个TCP报文的序号与Swndi相加,即可获得第i+n个TCP报文的序号i+n,由于第二节点在接收到第i个ACK会发送第i+1个TCP报文,进而可以确定第二节点在收到第i个ACK后发送的TCP报文的序号范围是序号i+1至序号i+n。
例如,如图6所示,第二节点接收到第4个ACK后,第4个发送窗口长度在第3个发送窗口长度的基础上,增加一个TCP报文的长度,得到第4个发送窗口的长度Swnd4=5,此时,i=4,Swnd4=5,则预测出第二节点发送的最后一个TCP报文是第9个TCP报文,也即i+Swnd4=9,根据第4个TCP报文的SEQ和TCP协议,即可获得第9个TCP报文的SEQ,同时,可预测出第二节点接收到第4个ACK后,将发送第5至第9个TCP报文,同理,可根据第4个TCP报文的SEQ,获得第5个至第8个TCP报文的SEQ。同时,在第二节点接收到第4个ACK时,第4个发送窗口的长度为5,由于第5个TCP报文、第6个TCP报文和第7个TCP报文已经发送但还未收到对应的ACK,第4个发送窗口的实际可用长度为2个TCP报文长度。由于代理节点在接收到第一节点发送的第4个ACK时尚未接收到第5个TCP报文、第6个TCP报文和第7个TCP报文分别对应的第5个ACK、第6个ACK和第7个ACK,因此代理节点向第二节点发送第5个ACK至第9个ACK,其中,第5个ACK为第i+1个ACK,第9个ACK为第i+n个ACK。
在步骤404c中,代理节点根据TCP报文的序号范围生成第i+1个至第i+n个ACK。
在确定了第二节点在接收到第i个ACK后将发送第i+1个至第i+n个TCP报文后,根据TCP报文的序号范围生成其对应的第i+1个至第i+n个ACK。
综上所述,本申请实施例中,通过代理节点根据缓存的第i-1个发送窗口长度得到第i个发送窗口长度,进而通过i和第i个发送窗口长度预测出第二节点在收到第i个ACK后TCP报文的序号范围,提高了代理节点预测第二节点发送TCP报文的准确度。
由于在TCP报文传输中,会出现代理节点和第一节点之间发生TCP报文丢失的情况,由于在代理节点和第一节点之间发生TCP报文丢失,而代理节点已经预先向第二节点发送该丢失的TCP报文对应的ACK,因此在第二节点侧,该丢失的TCP报文已经得到确认,因此不会继续发送该TCP报文,造成数据丢失。针对该技术问题,如图8所示的实施例提出了一种报文传输方法以解决该技术问题。
请参考图8,其示出了本申请另一个示例性实施例提供的报文传输方法的方法流程图,该方法应用于如图2所示的报文传输系统中。该方法可以为图4所示的步骤404之后的方法步骤,该方法可以结合用于如图4所示的实施例中,该方法包括:
在步骤405中,第二节点发送第i+j个TCP报文,1≤j≤n。
步骤405是步骤404之后的步骤,在第二节点在接收到第i个ACK后,获得第i个TCP报文被接收的信息,向代理节点发送第i+j个TCP报文。
例如,如图6所示,第二节点在接收第4个ACK后,发送第8个TCP报文和第9个 TCP报文,其中,i=4,j=4或j=5。
在步骤406中,代理节点接收第i+j个TCP报文。
在不发生数据丢失的情况下,代理节点接收到第i+j个TCP报文。
在步骤407中,代理节点向第一节点发送第i+j个TCP报文,设置定时器。
代理节点向第一节点发送接收到的第i+j个TCP报文,设置定时器。定时器的定时时间是预置时间。
例如,如图6所示,代理节点接收到第二节点发送的第9个TCP报文,在将第9个TCP报文转发至第一节点时,设置定时器。
在步骤408中,代理节点在定时器超时且未收到第一节点发送的第i+j个ACK时,重新发送第i+j个TCP报文。
当定时器超过预置时间,且并未收到第一节点发送的第i+j个TCP报文对应的第i+j个ACK时,代理节点判断第i+j个TCP报文发生丢失,向第一节点重新发送第i+j个TCP报文。在此过程中,第二节点会接收到2个第i+j-1个ACK后表示第i+j-1个TCP报文已经被确认,但是第i+j个TCP报文发生丢失,第二节点重新向代理节点发送第i+j个TCP报文。
例如,如图6所示,当定时器超过预置时间,且并未收到第一节点发送的第9个TCP报文对应的第9个ACK,代理节点则会判断第9个TCP报文发生丢失,向第二节点发送第8个ACK,在此过程中,第二节点会收到2个第8个ACK,表示第9个TCP报文发生丢失,因此第二节点会重新发送第9个TCP报文。
可选的,代理节点在接收到第一节点连续发送的至少4个第x个ACK时,向第一节点重新发送第x+1个TCP报文,x为整数。
当代理节点接收到第一节点连续发送的4个第x个ACK时,说明第一节点已经接收到第x个TCP报文,但是第x+1个TCP报文发生丢失,同时,第一节点又接收到第x+1个TCP报文之后的3个TCP报文,由于TCP报文的接收是严格按照顺序接收的,因此在发生第x+1个TCP报文丢失后,第一节点即便接收到了第x+1个TCP报文之后的TCP报文,依然向代理节点发送第x个ACK,其中,第1个第x个ACK表示第x个TCP报文被接收,后续至少3个重复的第x个ACK表示第i+1个TCP报文没有接收到,发生丢包。在代理节点接收到第一节点连续发送的至少4个第x个ACK后,向第一节点重新发送第x+1个TCP报文。
例如,如图5所示,代理节点向第一节点发送第2个至第7个TCP报文,若第3个TCP报文发生丢失,第一节点在接收到第2个TCP报文时,向代理节点发送第2个ACK,在接收到第4个TCP报文时,向代理节点发送第2个ACK,在接收到第5个TCP报文时,向代理节点发送第3个第2个ACK,在接收到第6个TCP报文时,向代理节点发送第4个第2个ACK,代理节点接收到连续4个第2个ACK后,向第一节点重新发送第3个TCP报文。
综上所述,本申请实施例中,通过代理节点在向第一节点转发第二节点发送的TCP报文时设置定时器,当定时器超过预定时间未收到第一节点发送的该TCP报文对应的ACK时,重新向第二节点发送该TCP报文的上一条TCP报文对应的ACK,解决了第一节点没有收到该TCP报文,代理节点却预先向第二节点发送该TCP报文对应的ACK使第二节点产生该TCP报文被确认的误判,从而造成数据丢失的问题,提高了报文传输的准确性。
进一步的,本申请实施例中,通过代理节点在接收到第一节点连续发送的至少4个第x个ACK后,向第一节点重新发送第x+1个TCP报文,解决了通过定时器判断TCP报文是否丢失等待时间过长的问题,提高了报文传输效率。
由于在TCP报文传输中,会出现第一节点向代理节点发送的ACK中,包括代理节点已经提前发送至第二节点的ACK,如果代理节点将该ACK继续转发至第二节点,第二节点在接收了两个同样的ACK后,会判断该ACK对应的TCP报文的下一条TCP报文发生丢失,因此会重新发送该下一条TCP报文。针对该技术问题,如图9所示的实施例提出了一种报文传输方法以解决该技术问题。
请参考图9,其示出了本申请另一个示例性实施例提供的报文传输方法的方法流程图,该方法应用于如图2所示的报文传输系统中。该方法可以为图4所示的步骤404之后的方法步骤,该方法可以结合用于如图4所示的实施例中,该方法包括:
在步骤409中,第二节点向代理节点发送第i+k个TCP报文,1≤k≤n。
步骤409是步骤404之后的步骤,在第二节点在接收到第i个ACK后,获得第i个TCP报文被接收的信息,向代理节点发送第i+k个TCP报文。
例如,如图6所示,第二节点在接收第4个ACK后,发送第8个TCP报文和第9个TCP报文,其中,i=4,k=4或k=5。
在步骤410中,代理节点接收第i+k个TCP报文,1≤k≤n。
在不发生数据丢失的情况下,代理节点接收到第i+k个TCP报文。
在步骤411中,代理节点向第一节点发送第i+k个TCP报文。
代理节点接收到第二节点发送的第i+k个TCP报文后,将第i+k个TCP报文转发至第一节点。
在步骤412中,第一节点接收第i+k个TCP报文。
第一节点接收代理节点转发的第i+k个TCP报文。
在步骤413中,第一节点向代理节点发送第i+k个ACK。
第一节点在接收代理节点转发的第i+k个TCP报文后,向代理节点发送第i+k个TCP对应的第i+k个ACK作为对第i+k个TCP报文的确认。
在步骤414中,代理节点接收第一节点发送的第i+k个ACK,该第i+k个ACK是代理节点已经向第二节点发送的ACK。
代理节点接收到第一节点发送的第i+k个ACK,该第i+k个ACK是是代理节点已经向第二节点发送的ACK。
在步骤415中,代理节点丢弃第i+k个ACK。
由于代理节点在接收到第i个ACK,生成第i+1个ACK至第i+n个ACK,其中第i+k个ACK是第i+1个ACK至第i+n个ACK中的一个ACK,代理节点已经发送至第二节点,为了不重复发送相同的ACK,代理节点在获得收到第2次第i+k个ACK后,将接收到的第一节点发送的第i+k个ACK丢弃。
例如,如图6所示,代理节点接收到第一节点发送的第2个ACK,由于代理节点已经向第二节点发送了第2个ACK,因此在接收到第一节点发送的第2个ACK后,将第2个 ACK丢弃。
综上所述,本申请实施例中,通过代理节点依次向第二节点发送第i+1个至第i+n个ACK,尽量避免第二节点在发送一个TCP报文之前先收到该TCP报文对应的ACK,降低了第二节点发送的ACK的损失几率。
请参考图10,其示出了本申请另一个示例性实施例提供的报文传输方法的方法流程图,该方法应用于如图2所示的报文传输系统中。该方法包括:
在步骤1001中,第一节点向代理节点发送第i个ACK,i≥1。
第一节点向代理节点发送第i个ACK,该第i个ACK是对第二节点发送的第i个TCP报文的ACK。在TCP中,第一节点接收到第二节点的第i个TCP报文后,需要对该第i个TCP报文进行确认,发送该第i个TCP报文对应的第i个ACK。
当第二节点和第一节点在建立连接后,第二节点向第一节点发送的第1个TCP报文中,会随机生成一个SEQ保存在第1个TCP报文的头文件中,例如,该SEQ为m,第一节点在接收到第1个TCP报文之后,会对该第1个TCP报文进行确认,发送第1个ACK,在该第1个ACK的头文件中ACK号为m+1,表示第1个TCP报文已经被接收,请求发送第2个TCP报文。
在步骤1002中,代理节点接收第一节点发送的第i个ACK。
代理节点接收到第一节点发送的第i个ACK,该第i个ACK是尚未向第二节点发送的ACK。
在步骤1003中,代理节点向第二节点转发第i个ACK。
代理节点向第二节点转发接收到的第一节点发送的第i个ACK。
在步骤1004中,代理节点根据缓存的第i-1个发送窗口长度得到第i个发送窗口长度。
代理节点可以通过缓存获取第i个TCP报文获取第i-1个发送窗口长度Swndi-1。第i-1个发送窗口长度Swndi-1是第二节点在接收到第i-1个ACK后,发送窗口的窗口长度。
在步骤1005中,代理节点根据第i个TCP报文的序号i和第i个发送窗口长度,预测出第二节点在收到第i个ACK后发送的TCP报文的序号范围是序号i+1至序号i+n,n≥1。
根据TCP,第二节点每收到一条TCP报文对应的ACK就会将发送窗口增加一个TCP报文长度,因此,代理节点根据第i-1个发送窗口长度Swndi-1加1,即可获得第i个发送窗口长度Swndi
代理节点获得第i个发送窗口长度Swndi后,将第i个TCP报文的序号与Swndi相加,即可获得第i+n个TCP报文的序号i+n,由于第二节点在接收到第i个ACK会发送第i+1个TCP报文,进而可以确定第二节点在收到第i个ACK后发送的TCP报文的序号范围是序号i+1至序号i+n。
在步骤1006中,代理节点根据TCP报文的序号范围生成第i+1个至第i+n个ACK。
在确定了第二节点在接收到第i个ACK后将发送第i+1个至第i+n个TCP报文后,根据TCP报文的序号范围生成其对应的第i+1个至第i+n个ACK。
在步骤1007中,代理节点按照预定的时间间隔,依次发送所述第i+1个至第i+n个ACK。
代理节点按照预定的时间间隔,依次向第二节点发送第i+1个至第i+n个ACK。由于第二节点在上一个TCP报文得到确认后才会发送下一个TCP报文,因此如果在时间间隔很 短的情况下(或者同时)将第i+1个至第i+n个ACK发送至第二节点后,可能发生一种情况是,第二节点会在发送一个TCP报文之前先收到该TCP报文对应的ACK,第二节点接收到该ACK后会将该ACK作为无效的ACK丢弃。针对这种情况,代理节点可以根据网络情况设置一个预定时间间隔,按照时间间隔将生成的ACK依次发送至第二节点,以避免第二节点在发送一个TCP报文之前先收到该TCP报文对应的ACK,降低了发送的ACK的损失几率。
通过代理节点依次向第二节点发送第i+1个至第i+n个ACK,尽量避免第二节点在发送一个TCP报文之前先收到该TCP报文对应的ACK,降低了第二节点发送的ACK的损失几率。
可选的,预定的时间间隔小于代理节点和第二节点之间的往返时延。
通过将预定时间间隔小于往返时延,尽可能地缩小代理节点和所述第二节点之间的往返时延,提高了数据传输效率。
在步骤1008中,第二节点接收第i个ACK。
第二节点接收到代理节点发送的第i个ACK。
在步骤1009中,第二节点发送第i+j个TCP报文,1≤j≤n。
在第二节点在接收到第i个ACK后,获得第i个TCP报文被接收的信息,向代理节点发送第i+j个TCP报文。
在步骤1010中,代理节点接收第i+j个TCP报文。
在不发生数据丢失的情况下,代理节点接收到第i+j个TCP报文。
在步骤1011中,代理节点向第一节点发送第i+j个TCP报文,设置定时器。
代理节点向第一节点发送接收到的第i+j个TCP报文之后,设置定时器。定时器的定时时间是预置时间。
在步骤1012中,代理节点在定时器超时且未收到第一节点发送的第i+j个ACK时,重新发送第i+j个TCP报文。
当定时器超过预置时间,且并未收到第一节点发送的第i+j个TCP报文对应的第i+j个ACK时,代理节点判断第i+j个TCP报文发生丢失,重新向第一节点发送第i+j个TCP报文。
可选的,代理节点在接收到第一节点连续发送的至少4个第x个ACK时,向第一节点重新发送第x+1个TCP报文,x为整数。
当代理节点接收到第一节点连续发送的4个第x个ACK时,说明第一节点已经接收到第x个TCP报文,但是第x+1个TCP报文发生丢失,同时,第一节点又接收到第x+1个TCP报文之后的3个TCP报文,由于TCP报文的接收是严格按照顺序接收的,因此在发生第x+1个TCP报文丢失后,第一节点即便接收到了第x+1个TCP报文之后的TCP报文,依然向代理节点发送第x个ACK,其中,第1个第x个ACK表示第x个TCP报文被接收,后续至少3个重复的第x个ACK表示第i+1个TCP报文没有接收到,发生丢包。在代理节点接收到第一节点连续发送的至少4个第x个ACK后,向第一节点重新发送第x+1个TCP报文。
在步骤1013中,第二节点向代理节点发送第i+k个TCP报文,1≤k≤n。
在第二节点在接收到第i个ACK后,获得第i个TCP报文被接收的信息,向代理节点 发送第i+k个TCP报文。
在步骤1014中,代理节点接收第i+k个TCP报文。
在不发生数据丢失的情况下,代理节点接收到第i+k个TCP报文。
在步骤1015中,代理节点向第一节点发送第i+k个TCP报文。
代理节点接收到第二节点发送的第i+k个TCP报文后,将第i+k个TCP报文转发至第一节点。
在步骤1016中,第一节点接收第i+k个TCP报文。
第一节点接收代理节点转发的第i+k个TCP报文。
在步骤1017中,第一节点发送第i+k个ACK,1≤k≤n。
第一节点在接收代理节点转发的第i+k个TCP报文后,向代理节点发送第i+k个TCP对应的第i+k个ACK作为对第i+k个TCP报文的确认。
在步骤1018中,代理节点接收第一节点发送的第i+k个ACK,该第i+k个ACK是代理节点已经向第二节点发送过的ACK。
代理节点接收到第一节点发送的第i+k个ACK,该第i+k个ACK是代理节点已经向第二节点发送过的ACK。
在步骤1019中,代理节点丢弃第i+k个ACK。
由于代理节点在接收到第i个ACK,生成第i+1个ACK至第i+n个ACK,其中第i+k个ACK是第i+1个ACK至第i+n个ACK中的一个ACK,代理节点已经发送至第二节点,为了不重复发送相同的ACK,代理节点在获得收到第2次第i+k个ACK后,将接收到的第一节点发送的第i+k个ACK丢弃。
综上所述,本申请实施例中,通过代理节点预测第二节点在接收到该第i个ACK后即将发送的第i+1个TCP报文至第i+n个TCP报文,在第二节点尚未发送或正在发送后续TCP报文时,就提前生成并向第二节点提前发送该第i+1个TCP报文至第i+n个TCP报文对应的ACK,使得在第二节点刚发送TCP报文后,就能够及时收到该TCP报文对应的ACK,从而减少了第二节点和代理节点之间的RTT,提升了发送速率和吞吐率。
进一步的,本申请实施例中,通过代理节点根据缓存的第i-1个发送窗口长度得到第i个发送窗口长度,进而通过i和第i个发送窗口长度预测出第二节点在收到第i个ACK后即将发送的第i+n个TCP报文,提高了代理节点预测第二节点发送TCP报文的准确度。
进一步的,本申请实施例中,通过代理节点在向第一节点转发第二节点发送的TCP报文时设置定时器,当定时器超过预定时间未收到第一节点发送的该TCP报文对应的ACK时,重新向第二节点发送该TCP报文的上一条TCP报文对应的ACK,解决了第一节点没有收到该TCP报文,代理节点却预先向第二节点发送该TCP报文对应的ACK使第二节点产生该TCP报文被确认的误判,从而造成数据丢失的问题,提高了报文传输的准确性。
进一步的,本申请实施例中,代理节点通过将从第一节点接收的重复ACK丢弃,该重复ACK是代理节点已经发送至第二节点,又接收到第一节点发送的相同的ACK,解决了第二节点接收到重复ACK后发生数据传输重复的问题,减少了TCP报文的重复传输,提高了TCP报文的传输效率。
进一步的,本申请实施例中,通过代理节点在接收到第一节点连续发送的至少4个第x个ACK后,向第一节点重新发送第x+1个TCP报文,解决了通过定时器判断TCP报文是 否丢失等待时间过长的问题,提高了报文传输效率。
请参考图11,其示出了本申请一个示例性实施例提供的报文传输装置的装置框图,该装置应用于如图1所示的代理节点120中。该装置包括:接收模块1101、发送模块1102以及处理模块1103。
接收模块1101,用于执行实现上述图4实施例或图8实施例或图9实施例或图10实施例中的步骤402、步骤406、步骤410、步骤414、步骤1002、步骤1010、步骤1014、步骤1018等接收步骤,以及其它隐含的接收步骤。
发送模块1102,用于执行上述图4实施例或图8实施例或图9实施例或图10实施例中的步骤403、步骤404、步骤407、步骤408、步骤411、步骤1003、步骤1007、步骤1011、步骤1012、步骤1015等发送步骤,以及其它隐含的发送步骤。
处理模块1103,用于执行上述图4实施例或图7实施例或图8实施例或图9实施例或图10实施例中的步骤404a、步骤404b、步骤404c、步骤407、步骤415、步骤1004、步骤1005、步骤1006、步骤1011、步骤1019,以及其它隐含的处理步骤。
本申请实施例还提供了一种计算机可读存储介质,所述计算机可读存储介质中存储有至少一条指令,至少一条指令由处理器加载并执行以实现上述各个方法实施例所提供的报文传输方法。
本领域普通技术人员可以理解实现上述实施例的全部或部分步骤可以通过硬件来完成,也可以通过程序来指令相关的硬件完成,所述的程序可以存储于一种计算机可读存储介质中,上述提到的存储介质可以是只读存储器,磁盘或光盘等。
以上所述仅为本申请的可选实施例,并不用以限制本申请,凡在本申请的精神和原则之内,所作的任何修改、等同替换、改进等,均应包含在本申请的保护范围之内。

Claims (16)

  1. 一种报文传输方法,其特征在于,所述方法包括:
    代理节点接收第一节点发送的第i个确认ACK,所述第i个ACK是第i个TCP报文对应的ACK,且所述第i个ACK是尚未发送至第二节点的ACK,i≥1;
    所述代理节点向所述第二节点转发所述第i个ACK;
    所述代理节点根据所述第i个ACK和发送窗口,向所述第二节点发送第i+1个至第i+n个ACK,n≥1;所述第i+1个至第i+n个ACK是预测所述第二节点在收到所述第i个ACK后发送的至少一个TCP报文所对应的ACK。
  2. 根据权利要求1所述的方法,其特征在于,所述代理节点根据所述第i个ACK和发送窗口,向所述第二节点发送第i+1个至第i+n个ACK,包括:
    所述代理节点根据所述第i个ACK和发送窗口,预测所述第二节点在收到所述第i个ACK后发送的至少一个TCP报文的序号;
    所述代理节点根据所述序号生成所述第i+1个至第i+n个ACK;
    所述代理节点向所述第二节点发送所述第i+1个至第i+n个ACK。
  3. 根据权利要求2所述的方法,其特征在于,所述代理节点根据所述第i个ACK和发送窗口,预测所述第二节点在收到所述第i个ACK后发送的至少一个TCP报文的序号,包括:
    根据缓存的第i-1个发送窗口长度得到第i个发送窗口长度;所述第i个发送窗口长度等于所述第i-1个发送窗口长度和1的和;
    根据所述第i个TCP报文的序号i和所述第i个发送窗口长度,预测出所述第二节点在收到所述第i个ACK后发送的TCP报文的序号范围是序号i+1至序号i+n;所述序号i+n等于所述序号i和所述第i个发送窗口长度的和;
    其中,所述第i-1个发送窗口长度是所述第二节点接收到第i个ACK之前的发送窗口长度,所述第i个发送窗口长度是所述第二节点接收到所述第i个ACK后的发送窗口长度。
  4. 根据权利要求1所述的方法,其特征在于,所述代理节点所述代理节点根据所述第i个ACK和发送窗口,向所述第二节点发送第i+1个至第i+n个ACK,包括:
    所述代理节点根据所述第i个ACK和发送窗口,按照预定的时间间隔,依次向所述第二节点发送所述第i+1个至第i+n个ACK。
  5. 根据权利要求3所述的方法,其特征在于,所述预定的时间间隔小于所述代理节点和所述第二节点之间的往返时延。
  6. 根据权利要求1至5任一所述的方法,其特征在于,所述代理节点根据所述第i个ACK和发送窗口,向所述第二节点发送第i+1个至第i+n个ACK之后,还包括:
    接收所述第一节点发送的第i+k个ACK,所述第i+k个ACK是第i+1个至第i+n个ACK 中的一个;
    丢弃所述第i+k个ACK。
  7. 根据权利要求1至5任一所述的方法,其特征在于,所述代理节点根据所述第i个ACK和发送窗口,向所述第二节点发送第i+1个至第i+n个ACK之后,还包括:
    接收所述第二节点发送的第i+j个TCP报文,所述第i+j个TCP报文是第i+1个至第i+n个TCP报文中的一个;
    向所述第一节点转发所述第i+j个TCP报文,并设置定时器;
    在所述定时器超时且未收到所述第一节点发送的第i+j个ACK时,重新向所述第一节点发送所述第i+j个TCP报文。
  8. 根据权利要求1至5任一所述的方法,其特征在于,还包括:
    在接收到所述第一节点连续发送的至少4个第x个ACK时,所述代理节点向所述第一节点重新发送第x+1个TCP报文,x为整数。
  9. 根据权利要求1至5任一所述的方法,其特征在于,所述代理节点上设置有TCP透明代理模块。
  10. 根据权利要求9所述的方法,其特征在于,
    所述第二节点是服务器,所述代理节点是接入网设备,所述第一节点是用户设备,所述接入网设备的PDCP层上设置有所述TCP透明代理模块;
    或,
    所述第二节点是服务器,所述代理节点是无线网关,所述第一节点是用户设备,所述无线网关上设置有所述TCP透明代理模块;
    或,
    所述第二节点是服务器,所述代理节点是固定网网关,所述第一节点是用户设备,所述固定网网关上设置有所述TCP透明代理模块。
  11. 一种报文传输装置,其特征在于,所述装置包括用于执行权利要求1至10任一项所述的各个步骤的模块或手段。
  12. 一种代理节点,其特征在于,所述代理节点包括处理器和存储器,其中所述存储器用于存储程序,当所述程序被所述处理器调用时,用于执行如权利要求1至10任一项所述的方法。
  13. 一种报文传输系统,其特征在于,所述系统包括第一节点、代理节点和第二节点;
    所述代理节点包括如权利要求11任一项所述的报文传输装置;
    或,
    所述代理节点包括如权利要求12所述的代理节点。
  14. 根据权利要求13所述的系统,其特征在于,
    所述第二节点是服务器,所述代理节点是接入网设备,所述第一节点是用户设备,所述接入网设备的PDCP层上设置有所述TCP透明代理模块;
    或,
    所述第二节点是服务器,所述代理节点是无线网关,所述第一节点是用户设备,所述无线网关上设置有所述TCP透明代理模块;
    或,
    所述第二节点是服务器,所述代理节点是固定网网关,所述第一节点是用户设备,所述固定网网关上设置有所述TCP透明代理模块。
  15. 一种计算机可读存储介质,用于存储程序,该程序被处理器调用时,用于执行如权利要求1至10任一项所述的方法。
  16. 一种报文传输设备,其特征在于,所述设备包括芯片和至少一个网络接口,所述芯片包括可编程逻辑电路和/或程序指令,当所述芯片运行时用于实现如权利要求1至10任一所述的数据包传输方法。
PCT/CN2017/114298 2017-12-01 2017-12-01 报文传输方法、装置及系统 WO2019104725A1 (zh)

Priority Applications (1)

Application Number Priority Date Filing Date Title
PCT/CN2017/114298 WO2019104725A1 (zh) 2017-12-01 2017-12-01 报文传输方法、装置及系统

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
PCT/CN2017/114298 WO2019104725A1 (zh) 2017-12-01 2017-12-01 报文传输方法、装置及系统

Publications (1)

Publication Number Publication Date
WO2019104725A1 true WO2019104725A1 (zh) 2019-06-06

Family

ID=66665389

Family Applications (1)

Application Number Title Priority Date Filing Date
PCT/CN2017/114298 WO2019104725A1 (zh) 2017-12-01 2017-12-01 报文传输方法、装置及系统

Country Status (1)

Country Link
WO (1) WO2019104725A1 (zh)

Citations (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN101114999A (zh) * 2007-08-26 2008-01-30 上海华为技术有限公司 数据发送控制方法及数据传输设备
CN101369877A (zh) * 2007-12-27 2009-02-18 华为技术有限公司 无线传输控制协议处理方法和设备
CN102195941A (zh) * 2010-03-11 2011-09-21 鼎桥通信技术有限公司 一种改进的传输控制协议代理实现方法及装置
US9210238B2 (en) * 2010-08-27 2015-12-08 Sandvine Incorporated Ulc Method and system for network data flow management

Patent Citations (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN101114999A (zh) * 2007-08-26 2008-01-30 上海华为技术有限公司 数据发送控制方法及数据传输设备
CN101369877A (zh) * 2007-12-27 2009-02-18 华为技术有限公司 无线传输控制协议处理方法和设备
CN102195941A (zh) * 2010-03-11 2011-09-21 鼎桥通信技术有限公司 一种改进的传输控制协议代理实现方法及装置
US9210238B2 (en) * 2010-08-27 2015-12-08 Sandvine Incorporated Ulc Method and system for network data flow management

Similar Documents

Publication Publication Date Title
JP4708978B2 (ja) 高スループットを実現する通信システム、通信端末、セッション中継装置、及び通信プロトコル
KR100998546B1 (ko) Mac 층 리셋 후 노드-b 에서 버퍼링된 데이터의효과적인 복구를 위한 시스템
KR100597425B1 (ko) 무선 네트워크 환경에서 전송 지연으로 인한 불필요한 재전송을 감소시키기 위한 방법 및 이를 이용한 통신 장치
US7277390B2 (en) TCP processing apparatus of base transceiver subsystem in wired/wireless integrated network and method thereof
US8014287B2 (en) Communications apparatus
EP1940089A1 (en) Data transmission method and device using controlled transmission profile
WO2013053304A1 (zh) 一种实现tcp传输的方法及装置
WO2019019825A1 (zh) 一种拥塞控制方法及相关设备
CN107104902B (zh) 一种rdma数据传输的方法、相关装置与系统
JP2012095190A (ja) 通信装置、通信システム、プログラム及び通信方法
CN105453645B (zh) 一种数据包发送、数据处理装置及方法
JP2020507963A (ja) データ送信方法および装置、ならびに顧客宅内機器
JP2008053888A (ja) 通信装置、プログラム、情報記憶媒体および通信制御方法
US11316620B2 (en) Enhanced HARQ algorithm for large round trip delay links
US7609639B2 (en) Negative acknowledgment (NAK) suppression
KR100947530B1 (ko) 무선통신시스템에서 데이터 전송상태를 폴링하는 방법 및장치
WO2019104725A1 (zh) 报文传输方法、装置及系统
US20200275481A1 (en) Reinstating poll retransmission timer
Jung et al. Novel fastest retransmission and rate control schemes for improving TCP performance in wireless ad hoc networks
Rani et al. A cross layer approach for improving TCP performance using channel access information
CN115242353B (zh) 用于更新无线网格网络中重传次数的方法和设备
JP2009273094A (ja) データ通信システム、データ通信端末、データ通信方法、およびプログラム
JP6145190B1 (ja) 中継装置、中継方法及び中継プログラム
KR20140081500A (ko) 무선망 전송 품질 향상을 위한 tcp 패킷 전송 최적화 시스템 및 방법
Preveze A novel method for performance improvement of slow start congestion control method in packet switched networks

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: 17933328

Country of ref document: EP

Kind code of ref document: A1

NENP Non-entry into the national phase

Ref country code: DE

122 Ep: pct application non-entry in european phase

Ref document number: 17933328

Country of ref document: EP

Kind code of ref document: A1