CN109995724B - Communication method, client and communication system - Google Patents

Communication method, client and communication system Download PDF

Info

Publication number
CN109995724B
CN109995724B CN201711490113.4A CN201711490113A CN109995724B CN 109995724 B CN109995724 B CN 109995724B CN 201711490113 A CN201711490113 A CN 201711490113A CN 109995724 B CN109995724 B CN 109995724B
Authority
CN
China
Prior art keywords
tfo
syn packet
packet
server
standard
Prior art date
Legal status (The legal status 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 status listed.)
Active
Application number
CN201711490113.4A
Other languages
Chinese (zh)
Other versions
CN109995724A (en
Inventor
刘廷伟
韩瑞
闵庆欢
朱照远
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Alibaba Group Holding Ltd
Original Assignee
Alibaba Group Holding Ltd
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 Alibaba Group Holding Ltd filed Critical Alibaba Group Holding Ltd
Priority to CN201711490113.4A priority Critical patent/CN109995724B/en
Publication of CN109995724A publication Critical patent/CN109995724A/en
Application granted granted Critical
Publication of CN109995724B publication Critical patent/CN109995724B/en
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Images

Classifications

    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L67/00Network arrangements or protocols for supporting network services or applications
    • H04L67/14Session management
    • 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

Abstract

The application discloses a communication method, a client and a communication system; the communication method comprises the following steps: when the client establishes Transmission Control Protocol (TCP) connection with the server, the client sends a SYN packet of the TFO and sends a standard SYN packet after sending the SYN packet of the TFO and before the SYN packet of the TFO times out. Thus, whether the TFO fails or not is found by sending a standard SYN packet in multiple times, thereby ensuring the communication performance in the scene that the TFO is unavailable.

Description

Communication method, client and communication system
Technical Field
The present application relates to, but not limited to, communication technologies, and in particular, to a communication method, a client, and a communication system.
Background
Fig. 1 is a schematic diagram of three-way handshake interaction in a TCP connection establishment procedure specified by a standard Transmission Control Protocol (TCP). As shown in fig. 1, the three-way handshake flow of TCP includes:
first handshake: a Client (Client) SENDs a Synchronization (SYN) packet, wherein the SYN flag bit in the SYN packet is 1, and a sequence number (hereinafter referred to as "seq") can be M, and the Client enters a SYN _ SEND state; wherein the value of M may be determined randomly;
second handshake: after receiving a SYN packet of a client, a Server (Server) can know that the client requests to establish connection according to the SYN flag bit of 1, and feeds back a SYN ACK (synchronous acknowledgement) packet to the client by the Server, so that the request of the client is accepted; in a SYN ACK packet, the server sets the SYN flag bit and the ACK flag bit to be 1, the sequence number seq to be N, and the acknowledgement sequence number (ACK number) to be M +1, namely the acknowledgement sequence number is equal to the sum of the sequence number of the SYN packet sent by the client and 1; the server enters a SYN _ RECV state; wherein, the value of N can also be randomly determined;
third handshake: after receiving a SYN ACK packet returned by the server, the client returns an Acknowledgement (ACK) packet to the server when checking that an ACK flag bit in the SYN ACK packet is 1 and an acknowledgement sequence number is M +1, wherein the ACK flag bit is set to be 1 and the acknowledgement sequence number is set to be N +1 in the ACK packet; after the server receives the ACK packet, when it is checked that the ACK flag bit in the ACK packet is 1 and the acknowledgement sequence number is N +1, it indicates that the TCP connection between the client and the server is successfully ESTABLISHED, and the client and the server enter an ESTABLISHED state.
Through three-way handshake, after the TCP connection is successfully established between the client and the server, data transmission can be carried out between the client and the server based on the established TCP connection.
As can be seen from fig. 1, in the standard TCP, three-way handshake wastes one RTT (Round-Trip Time).
Tfo (TCP Fast open) is an extension to TCP (Transmission Control Protocol) issued by Google. TFO allows data exchange during TCP three-way handshake, saving one RTT time.
Fig. 2 is an interaction flow diagram of TFO. As shown in fig. 2, the interaction flow of TFO includes:
firstly, a client sends a SYN packet with service data (namely, a SYN packet of TFO), and can carry a cookie (namely, foc (Fast Open cookie)) obtained by normal connection before in a Fast Open option;
secondly, after receiving the SYN packet, the server side verifies the cookie carried in the SYN packet; if the cookie is valid, the server returns a SYN ACK packet and transmits the service data carried by the SYN packet to an application layer; if the cookie is invalid, the service end can lose the service data in the SYN packet and simultaneously return a SYN ACK packet to the client end to confirm the sequence number in the SYN packet;
thirdly, when the cookie is valid, the server side can send response data to the client side before the connection is completed;
fourthly, after receiving the SYN ACK packet, the client sends an ACK packet to confirm the SYN ACK packet and the data of the server; if the service data in the SYN packet sent by the client in the first step is not acknowledged by the server, the client may retransmit the corresponding service data in this ACK packet.
The rest of the connection processing of the TFO procedure is similar to the standard TCP connection procedure. It should be noted that once the FOC is obtained, the client may repeat the TFO process until the cookie expires. Before using TFO, the client may acquire the FOC through a normal three-way handshake connection. For example, the client sends a SYN packet with Fast Open option, and carries an empty cookie field to request a cookie; the server generates a cookie, and then returns the cookie to the client through a Fast Open option of a SYN ACK packet; the client caches this cookie for subsequent use when using TFO.
However, in the internet environment, due to the limitation of the routing device and the inter-operator network device on the internet, the TFO is degraded to the standard TCP due to the failure in a partial network environment, and specifically, if the intermediate device does not support the TFO, the TFO is degraded to the standard TCP connection due to the timeout, so that the connection speed as a whole is even lower than the standard TCP connection speed.
Disclosure of Invention
The following is a summary of the subject matter described in detail herein. This summary is not intended to limit the scope of the claims.
The embodiment of the application provides a communication method, a client and a communication system, which can guarantee the communication performance in the scene where TFO is unavailable.
In a first aspect, an embodiment of the present application provides a communication method, including:
when a client establishes a TCP connection with a server, a SYN packet of a TFO is sent, and a standard SYN packet is sent after the SYN packet of the TFO is sent and before the SYN packet of the TFO is overtime.
In an exemplary embodiment, a duration of an interval between the transmission timing of the SYN packet of the TFO and the transmission timing of the standard SYN packet may be greater than or equal to 0 and less than or equal to 20 milliseconds.
In an exemplary embodiment, after the sending the SYN packet of the TFO and the standard SYN packet, the method may further include:
the client receives an ACK packet; and judging whether the TFO fails according to the ACK packet.
In an exemplary embodiment, the determining whether TFO fails according to the ACK packet may include:
when the acknowledgement sequence number carried by the ACK packet is equal to the sum of the sequence number of the SYN packet of the TFO and the data length carried by the SYN packet plus 1, the TFO is acknowledged to be successful;
and when the acknowledgement sequence number carried by the ACK packet is equal to the sequence number of the standard SYN packet plus 1, the TFO is failed to be acknowledged.
In a second aspect, an embodiment of the present application provides a client, including:
and the sending module is suitable for sending a SYN packet of the TFO when the TCP connection is established with the server side, and sending a standard SYN packet after the SYN packet of the TFO is sent and before the SYN packet of the TFO is overtime.
In an exemplary embodiment, a duration of an interval between the transmission timing of the SYN packet of the TFO and the transmission timing of the standard SYN packet may be greater than or equal to 0 and less than or equal to 20 milliseconds.
In an exemplary embodiment, the client may further include:
a receiving module adapted to receive an ACK packet;
and the processing module is suitable for judging whether the TFO fails according to the ACK packet.
In an exemplary embodiment, the processing module may be adapted to determine whether TFO has failed by:
when the acknowledgement sequence number carried by the ACK packet is equal to the sum of the sequence number of the SYN packet of the TFO and the data length carried by the SYN packet plus 1, the TFO is acknowledged to be successful;
and when the acknowledgement sequence number carried by the ACK packet is equal to the sequence number of the standard SYN packet plus 1, the TFO is failed to be acknowledged.
In a third aspect, an embodiment of the present application provides a communication system, including: the system comprises a client, a server and intermediate equipment;
the client is suitable for sending a SYN packet of a TFO when a TCP connection is established with the server through the intermediate equipment, and sending a standard SYN packet after the SYN packet of the TFO is sent and before the SYN packet of the TFO is overtime;
the intermediate device is suitable for sending a SYN packet of the TFO to the server side and discarding the standard SYN packet when the intermediate device supports the TFO; and when the TFO is not supported by the server, sending the standard SYN packet to the server, and discarding the SYN packet of the TFO.
In an exemplary embodiment, when the intermediate device supports TFO, after the server receives the SYN packet of the TFO, an acknowledgement sequence number carried by a returned ACK packet is equal to the sum of the sequence number of the SYN packet of the TFO and the data length carried by the SYN packet plus 1; and when the intermediate equipment does not support TFO, after the server receives the standard SYN packet, the acknowledgement sequence number carried by the returned ACK packet is equal to the sequence number of the standard SYN packet plus 1.
In a fourth aspect, an embodiment of the present application provides a terminal device, including: a memory and a processor; wherein the memory is configured to store a communication program that when read and executed by the processor performs the following operations: when a TCP connection is established with a server, sending a SYN packet of a TFO, and sending a standard SYN packet after sending the SYN packet of the TFO and before the SYN packet of the TFO times out.
Furthermore, an embodiment of the present application further provides a computer-readable medium storing a communication program, where the communication program, when executed by a processor, implements the following operations: when a TCP connection is established with a server, sending a SYN packet of a TFO, and sending a standard SYN packet after sending the SYN packet of the TFO and before the SYN packet of the TFO times out.
In the embodiment of the application, when a client establishes a TCP connection with a server, a client sends a SYN packet of a TFO (transport format indicator), and sends a standard SYN packet after sending the SYN packet of the TFO and before the SYN packet of the TFO times out; thus, whether the TFO fails or not is found by sending a standard SYN packet in multiple times, thereby ensuring the communication performance in the scene that the TFO is unavailable.
Drawings
FIG. 1 is a three-way handshake interaction flow diagram of a standard TCP specified TCP connection establishment procedure;
FIG. 2 is an interaction flow diagram of TFO;
fig. 3 is an interaction flow diagram of a communication system according to an embodiment of the present application;
fig. 4 is another interaction flow diagram of a communication system provided in an embodiment of the present application;
fig. 5 is a flowchart of a communication method provided in an embodiment of the present application;
fig. 6 is a schematic diagram of a client according to an embodiment of the present application.
Detailed Description
The embodiments of the present application will be described in detail below with reference to the accompanying drawings, and it should be understood that the embodiments described below are only for illustrating and explaining the present application and are not intended to limit the present application.
It should be noted that, if not conflicted, the embodiments and the features of the embodiments can be combined with each other and are within the scope of protection of the present application. Additionally, while a logical order is shown in the flow diagrams, in some cases, the steps shown or described may be performed in an order different than here.
In some embodiments, a computing device performing a communication method may include one or more processors (CPUs), input/output interfaces, network interfaces, and memories (memories).
The memory may include forms of volatile memory, Random Access Memory (RAM), and/or non-volatile memory in a computer-readable medium, such as Read Only Memory (ROM) or flash memory (flash RAM). Memory is an example of a computer-readable medium. The memory may include module 1, module 2, … …, and module N (N is an integer greater than 2).
Computer readable media include both permanent and non-permanent, removable and non-removable storage media. A storage medium may implement information storage by any method or technology. The information may be computer readable instructions, data structures, modules of a program, or other data. Examples of computer storage media include, but are not limited to, phase change memory (PRAM), Static Random Access Memory (SRAM), Dynamic Random Access Memory (DRAM), other types of Random Access Memory (RAM), Read Only Memory (ROM), Electrically Erasable Programmable Read Only Memory (EEPROM), flash memory or other memory technology, compact disc read only memory (CD-ROM), Digital Versatile Discs (DVD) or other optical storage, magnetic cassettes, magnetic disk storage or other magnetic storage devices, or any other non-transmission medium that can be used to store information that can be accessed by a computing device. As defined herein, computer readable media does not include non-transitory computer readable media (transient media), such as modulated data signals and carrier waves.
The information carried by the standard Synchronization (SNY) packet and the SYN packet of TFO according to the present application will be described first. Here, only information related to the present application will be described.
The SYN packet of TFO may also carry traffic data (data) and foc (fast Open cookie) compared to the standard SNY packet. Both the standard SNY packet and the SYN packet of the TFO include an SNY flag bit, an Acknowledgement (ACK) flag bit, a sequence number field, and an acknowledgement sequence number field. Wherein, when SYN zone bit is 1, it represents to initiate a new connection; the sequence number field is 32 bits, carries a sequence number and is used for identifying a byte stream transmitted from a TCP source end to a destination end, and the initiator marks the byte stream when transmitting data; the ACK sequence number field takes 32 bits, which carries the ACK sequence number, and is valid only if the ACK flag bit is 1.
Fig. 3 and fig. 4 are interaction flowcharts of a communication system according to an embodiment of the present application. The communication system provided by the embodiment comprises: client, intermediate device and server.
In the internet environment, due to the limitations of the routing devices on the internet and the internetwork devices of the operator (i.e. the intermediate devices between the client and the server), there are cases where these devices do not support TFO, which may result in the performance of TFO being lower than the handshake performance of standard TCP.
In this embodiment, when the client establishes a TCP connection with the server through the intermediate device, the client sends a SYN packet of the TFO, and sends a standard SYN packet after sending the SYN packet of the TFO and before the SYN packet of the TFO times out.
The SYN packet timeout of the TFO indicates that no response to the SYN packet is received within a set time period after the sending of the SYN packet of the TFO.
Wherein, the SYN packet of TFO and the standard SYN packet can be sent at the same time; or, the sending of the SYN packet of the TFO is prioritized, and the interval duration between the sending time of the SYN packet of the TFO and the sending time of the standard SYN packet is less than the set duration. For example, the interval duration between the sending time of the SYN packet of the TFO and the sending time of the standard SYN packet may be less than or equal to 100ms, and the interval duration between the sending times of the two may be greater than or equal to 0 and less than or equal to 20ms, for example. However, this is not limited in this application. In practical application, the interval duration between the sending time of the client and the sending time of the client can be determined according to the network environment of the client.
The intermediate device is suitable for sending a SYN packet of the TFO to a service end and discarding a standard SYN packet when the intermediate device supports the TFO; and when the TFO is not supported by the server, sending the standard SYN packet to the server, and discarding the SYN packet of the TFO.
Illustratively, when the client simultaneously sends a SYN packet of a TFO and a standard SYN packet, if the intermediate device supports the TFO, the intermediate device may forward the SYN packet of the TFO to the server and discard the standard SYN packet, and if the intermediate device does not support the TFO, the intermediate device may forward the standard SYN packet to the server and discard the SYN packet of the TFO.
Exemplarily, when the intermediate device supports TFO, after the server receives the SYN packet of TFO, the acknowledgement sequence number carried by the returned ACK packet is equal to the sum of the sequence number of the SYN packet of TFO and the data length carried by the SYN packet plus 1; when the intermediate device does not support TFO, after the server receives the standard SYN packet, the acknowledgement sequence number carried by the returned ACK packet is equal to the sequence number of the standard SYN packet plus 1.
As shown in fig. 3, when the intermediate device supports TFO, the intermediate device receives the SYN packet of TFO and then forwards the SYN packet to the server, and the server preferentially receives the SYN packet of TFO, thereby completing the establishment of the TCP connection of TFO; the intermediate device will discard the later received standard SYN packet because the connection has already been established. Other descriptions of the TFO-completed TCP connection establishment procedure between the server and the client in fig. 3 may refer to the description shown in fig. 2, and therefore are not described herein again.
As shown in fig. 4, when the intermediate device does not support TFO, the intermediate device will discard the received SYN packet of TFO, and the server will only receive the standard SYN packet, thereby completing normal TCP connection establishment. Other descriptions of the TCP connection establishment process between the server and the client in fig. 4 can refer to the description shown in fig. 1, and therefore are not described herein again.
In this embodiment, since the SYN packet has only 40 bytes (20 bytes IP +20 bytes TCP), even if one more packet of 40 bytes is sent at the time of connection establishment, the network is affected very little, and therefore, it is found whether TFO fails by sending one more standard SYN packet, thereby ensuring communication performance in the situation where TFO is unavailable.
Fig. 5 is a flowchart of a communication method according to an embodiment of the present application. As shown in fig. 5, the communication method provided in this embodiment includes:
s501, when a TCP connection is established between a client and a server, a SYN packet of TFO is sent; wherein, SYN packet of TFO carries service data;
s502, the client sends a standard SYN packet after sending the SYN packet of the TFO and before the SYN packet of the TFO times out.
In an exemplary embodiment, the SYN packet of the TFO and the standard SYN packet may be sent simultaneously; or, the sending of the TFO SYN packet is preferentially carried out, and the interval duration between the sending time of the TFO SYN packet and the sending time of the standard SYN packet is less than the set time duration of the TFO SYN packet overtime. Illustratively, the interval duration may be greater than or equal to 0 and less than or equal to 100ms, such as the interval duration ranging from 0 to 20 ms.
In this embodiment, after S502, the communication method of this embodiment may further include:
s503, the client receives the ACK packet returned by the server and judges whether the TFO fails;
when the acknowledgement sequence number carried by the ACK packet is equal to the sum of the sequence number of the SYN packet of the TFO and the data length carried by the SYN packet plus 1, the TFO is acknowledged to be successful;
when the ACK packet carries an acknowledgement sequence number equal to the sequence number of the standard SYN packet plus 1, the TFO is acknowledged as failed.
In this embodiment, according to the acknowledgement sequence number carried in the ACK packet, it is identified to which SYN packet the ACK packet returned by the server is a response, and it is determined whether the service end has processed the service data carried in the SYN packet of the TFO, so as to determine whether the TFO is successful. When the service end processes the service data carried by the SYN packet of the TFO, the success of the TFO is indicated, otherwise, the failure of the TFO is indicated.
In this embodiment, after the client confirms that the TFO is successful, the client performs data transmission by using a conventional TCP data transmission flow; after the client confirms that the TFO fails and the standard TCP succeeds, the data transmission can also be performed by using the conventional TCP data transmission flow. Compared with the case of successful TFO, the client needs to retransmit the service data carried by the SYN packet of TFO when TFO fails.
Fig. 6 is a schematic diagram of a client according to an embodiment of the present application. As shown in fig. 6, the client provided in this embodiment includes:
a sending module 601, adapted to send a SYN packet of the TFO when establishing a TCP connection with the server, and send a standard SYN packet after sending the SYN packet of the TFO and before the SYN packet of the TFO times out.
Illustratively, the interval duration between the sending of the SYN packet of the TFO and the sending of the standard SYN packet may be less than or equal to 100ms, such as the interval duration ranging from 0 to 20 ms.
The client of this embodiment may further include:
a receiving module 602 adapted to receive an ACK packet;
the processing module 603 is adapted to determine whether TFO fails according to the ACK packet.
The processing module 603 may be adapted to determine whether TFO fails by:
when the acknowledgement sequence number carried by the ACK packet is equal to the sum of the sequence number of the SYN packet of the TFO and the data length carried by the SYN packet plus 1, the TFO is confirmed to be successful; when the ACK packet carries an acknowledgement sequence number equal to the sequence number of the standard SYN packet plus 1, the TFO is acknowledged as failed.
For the related processing description of the ue provided in this embodiment, reference may be made to the description of the communication system and the communication method, and therefore, no further description is given here.
An embodiment of the present application further provides a terminal device, including: the processor is used for storing a communication program on the memory; the communication program, when read and executed by the processor, performs the steps of the communication method provided in this embodiment.
The processor may include, but is not limited to, a processing device such as a Microprocessor (MCU) or a Programmable logic device (FPGA). The memory may be configured to store software programs and modules of application software, such as program instructions or modules corresponding to the communication method in the embodiment, and the processor executes various functional applications and data processing by executing the software programs and modules stored in the memory, so as to implement the communication method described above. The memory may include high speed random access memory, and may also include non-volatile memory, such as one or more magnetic storage devices, flash memory, or other non-volatile solid-state memory. In some examples, the memory may further include memory remotely located from the processor, and the remote memory may be connected to the terminal device through a network. Examples of such networks include, but are not limited to, the internet, intranets, local area networks, mobile communication networks, and combinations thereof.
Wherein, the terminal device may further include: the communication unit may receive or transmit data via a network. In one example, the communication unit may be a Radio Frequency (RF) module, which is used for communicating with the internet in a wireless manner.
In addition, an embodiment of the present application further provides a computer readable medium, which stores a communication program, and the communication program realizes the steps of the communication method when being executed by a processor.
It will be understood by those of ordinary skill in the art that all or some of the steps of the methods, systems, functional modules/units in the devices disclosed above may be implemented as software, firmware, hardware, and suitable combinations thereof. In a hardware implementation, the division between functional modules/units mentioned in the above description does not necessarily correspond to the division of physical components; for example, one physical component may have multiple functions, or one function or step may be performed by several physical components in cooperation. Some or all of the components may be implemented as software executed by a processor, such as a digital signal processor or microprocessor, or as hardware, or as an integrated circuit, such as an application specific integrated circuit. Such software can be distributed on machine-readable media (e.g., computer-readable media), which can include computer storage media (or non-transitory media) and communication media (or transitory media). The term computer storage media includes volatile and nonvolatile, removable and non-removable media implemented in any method or technology for storage of information such as computer readable instructions, data structures, program modules or other data, as is well known to those of ordinary skill in the art. Computer storage media includes, but is not limited to, RAM, ROM, EEPROM, flash memory or other memory technology, CD-ROM, Digital Versatile Disks (DVD) or other optical disk storage, magnetic cassettes, magnetic tape, magnetic disk storage or other magnetic storage devices, or any other medium which can be used to store the desired information and which can accessed by a computer. In addition, communication media typically embodies computer readable instructions, data structures, program modules or other data in a modulated data signal such as a carrier wave or other transport mechanism and includes any information delivery media as known to those skilled in the art.
The foregoing shows and describes the general principles and features of the present application, together with the advantages thereof. The present application is not limited to the above-described embodiments, which are described in the specification and drawings only to illustrate the principles of the application, but also to provide various changes and modifications within the spirit and scope of the application, which are within the scope of the claimed application.

Claims (12)

1. A method of communication, comprising:
when a client establishes Transmission Control Protocol (TCP) connection with a server through intermediate equipment, a Synchronization (SYN) packet of a TFO (transport protocol over Ethernet) is sent, and a standard SYN packet is sent after the SYN packet of the TFO is sent and before the SYN packet of the TFO is overtime;
when the intermediate device supports TFO, the intermediate device is suitable for sending a SYN packet of the TFO to the server side and discarding the standard SYN packet; and when the TFO is not supported by the server, sending the standard SYN packet to the server, and discarding the SYN packet of the TFO.
2. The method of claim 1, wherein a duration of an interval between a transmission time of the SYN packet of the TFO and a transmission time of the standard SYN packet is greater than or equal to 0 and less than or equal to 20 milliseconds.
3. The method of claim 1, wherein after sending the SYN packet for the TFO and the standard SYN packet, the method further comprises:
the client receives an Acknowledgement (ACK) packet;
and judging whether the TFO fails according to the ACK packet.
4. The method of claim 3, wherein the determining whether TFO fails according to the ACK packet comprises:
when the acknowledgement sequence number carried by the ACK packet is equal to the sum of the sequence number of the SYN packet of the TFO and the data length carried by the SYN packet plus 1, the TFO is acknowledged to be successful;
and when the acknowledgement sequence number carried by the ACK packet is equal to the sequence number of the standard SYN packet plus 1, the TFO is failed to be acknowledged.
5. A client, comprising:
a sending module, adapted to send a synchronization SYN packet of a TFO when a transmission control protocol, TCP, connection is established with a server through an intermediate device, and send a standard SYN packet after sending the SYN packet of the TFO and before the SYN packet of the TFO times out;
when the intermediate device supports TFO, the intermediate device is suitable for sending a SYN packet of the TFO to the server side and discarding the standard SYN packet; and when the TFO is not supported by the server, sending the standard SYN packet to the server, and discarding the SYN packet of the TFO.
6. The client of claim 5, wherein a duration of an interval between a transmission time of the SYN packet of the TFO and a transmission time of the standard SYN packet is greater than or equal to 0 and less than or equal to 20 milliseconds.
7. The client of claim 5, further comprising:
a receiving module adapted to receive an acknowledgement, ACK, packet;
and the processing module is suitable for judging whether the TFO fails according to the ACK packet.
8. The client of claim 7, wherein the processing module is adapted to determine whether TFO has failed by:
when the acknowledgement sequence number carried by the ACK packet is equal to the sum of the sequence number of the SYN packet of the TFO and the data length carried by the SYN packet plus 1, the TFO is acknowledged to be successful;
and when the acknowledgement sequence number carried by the ACK packet is equal to the sequence number of the standard SYN packet plus 1, the TFO is failed to be acknowledged.
9. A communication system, comprising: the system comprises a client, a server and intermediate equipment;
the client is suitable for sending a synchronization SYN packet of a TFO when a Transmission Control Protocol (TCP) connection is established with the server through the intermediate equipment, and sending a standard SYN packet after the SYN packet of the TFO is sent and before the SYN packet of the TFO is overtime;
the intermediate device is suitable for sending a SYN packet of the TFO to the server side and discarding the standard SYN packet when the intermediate device supports the TFO; and when the TFO is not supported by the server, sending the standard SYN packet to the server, and discarding the SYN packet of the TFO.
10. The system according to claim 9, wherein when the intermediate device supports TFO, after the server receives the SYN packet of the TFO, the acknowledgement ACK packet returned carries an acknowledgement sequence number equal to the sum of the sequence number of the SYN packet of the TFO and the data length carried by the SYN packet plus 1; and when the intermediate equipment does not support TFO, after the server receives the standard SYN packet, the acknowledgement sequence number carried by the returned ACK packet is equal to the sequence number of the standard SYN packet plus 1.
11. A terminal device, comprising: a memory and a processor; wherein the memory is configured to store a communication program that when read and executed by the processor performs the following operations: when a Transmission Control Protocol (TCP) connection is established with a server through intermediate equipment, sending a synchronous SYN packet of a TFO (transport protocol over Ethernet), and sending a standard SYN packet after the SYN packet of the TFO is sent and before the SYN packet of the TFO is overtime;
when the intermediate device supports TFO, the intermediate device is suitable for sending a SYN packet of the TFO to the server side and discarding the standard SYN packet; and when the TFO is not supported by the server, sending the standard SYN packet to the server, and discarding the SYN packet of the TFO.
12. A computer-readable medium, in which a communication program is stored, which when executed by a processor, performs the operations of: when a Transmission Control Protocol (TCP) connection is established with a server through intermediate equipment, sending a synchronous SYN packet of a TFO (transport protocol over Ethernet), and sending a standard SYN packet after the SYN packet of the TFO is sent and before the SYN packet of the TFO is overtime;
when the intermediate device supports TFO, the intermediate device is suitable for sending a SYN packet of the TFO to the server side and discarding the standard SYN packet; and when the TFO is not supported by the server, sending the standard SYN packet to the server, and discarding the SYN packet of the TFO.
CN201711490113.4A 2017-12-29 2017-12-29 Communication method, client and communication system Active CN109995724B (en)

Priority Applications (1)

Application Number Priority Date Filing Date Title
CN201711490113.4A CN109995724B (en) 2017-12-29 2017-12-29 Communication method, client and communication system

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN201711490113.4A CN109995724B (en) 2017-12-29 2017-12-29 Communication method, client and communication system

Publications (2)

Publication Number Publication Date
CN109995724A CN109995724A (en) 2019-07-09
CN109995724B true CN109995724B (en) 2021-12-17

Family

ID=67111490

Family Applications (1)

Application Number Title Priority Date Filing Date
CN201711490113.4A Active CN109995724B (en) 2017-12-29 2017-12-29 Communication method, client and communication system

Country Status (1)

Country Link
CN (1) CN109995724B (en)

Citations (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN104219215A (en) * 2013-06-05 2014-12-17 深圳市腾讯计算机系统有限公司 Method, device, terminal, server and system for establishment of TCP (transmission control protocol) connection

Family Cites Families (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20150215277A1 (en) * 2014-01-28 2015-07-30 Electronics And Telecommunications Research Institute Network address translation apparatus with cookie proxy function and method for nat supporting cookie proxy function
US11197331B2 (en) * 2016-06-10 2021-12-07 Apple Inc. Zero-round-trip-time connectivity over the wider area network

Patent Citations (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN104219215A (en) * 2013-06-05 2014-12-17 深圳市腾讯计算机系统有限公司 Method, device, terminal, server and system for establishment of TCP (transmission control protocol) connection

Non-Patent Citations (1)

* Cited by examiner, † Cited by third party
Title
"TCP fast open";Google等;《IETF》;20141231;全文 *

Also Published As

Publication number Publication date
CN109995724A (en) 2019-07-09

Similar Documents

Publication Publication Date Title
EP3547580B1 (en) Data sending method and apparatus, and data receiving method and apparatus
US10084699B2 (en) Transferring data
WO2018121294A1 (en) Packet transmission method, terminal, network device, and communication system
CN102685204B (en) Method and equipment for transmitting data resource
US10798199B2 (en) Network traffic accelerator
CN108234087B (en) Data transmission method and sending end
US11677675B2 (en) Method and system for determining a path maximum transmission unit (MTU) between endpoints of a generic routing encapsulation (GRE) tunnel
JP2018528679A (en) Device and method for establishing a connection in a load balancing system
KR101430032B1 (en) Method for improving a tcp data transmission process in case the physical transmission medium is disconnected
CN107995233B (en) Method for establishing connection and corresponding equipment
CN105453645B (en) Data packet sending and data processing device and method
US10484258B2 (en) Out of sequence delivery of an SDU in a radio device
GB2519491A (en) Method and system for increasing data flow transmission
EP2692115B1 (en) Sctp endpoint migration
US20070159985A1 (en) Method and an arrangement for avoiding unnecessary retransmissions
CN105406915B (en) A kind of document transmission method towards satellite-ground link
CN107104919B (en) Firewall equipment and processing method of Stream Control Transmission Protocol (SCTP) message
CN108234089B (en) Method and system for low latency communication
CN109120385B (en) Data transmission method, device and system based on data transmission system
US7168022B2 (en) Transmission control method and system
US8762449B2 (en) Method of downloading large size data to a large number of networked client machines from a single server
CN109428684B (en) Data transmission method, RLC entity and PDCP entity
CN115827549A (en) Network interface card, message sending method and storage device
CN109995724B (en) Communication method, client and communication system
Bedon et al. A DTN system for nanosatellite-based sensor networks using a new ALOHA multiple access with gateway priority

Legal Events

Date Code Title Description
PB01 Publication
PB01 Publication
SE01 Entry into force of request for substantive examination
SE01 Entry into force of request for substantive examination
REG Reference to a national code

Ref country code: HK

Ref legal event code: DE

Ref document number: 40010731

Country of ref document: HK

GR01 Patent grant
GR01 Patent grant