CN115134049A - Communication method and device - Google Patents

Communication method and device Download PDF

Info

Publication number
CN115134049A
CN115134049A CN202110315648.8A CN202110315648A CN115134049A CN 115134049 A CN115134049 A CN 115134049A CN 202110315648 A CN202110315648 A CN 202110315648A CN 115134049 A CN115134049 A CN 115134049A
Authority
CN
China
Prior art keywords
window
message
layer
intermediate layer
tcp
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.)
Pending
Application number
CN202110315648.8A
Other languages
Chinese (zh)
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.)
Huawei Technologies Co Ltd
Original Assignee
Huawei Technologies Co 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 Huawei Technologies Co Ltd filed Critical Huawei Technologies Co Ltd
Priority to CN202110315648.8A priority Critical patent/CN115134049A/en
Publication of CN115134049A publication Critical patent/CN115134049A/en
Pending legal-status Critical Current

Links

Images

Classifications

    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L1/00Arrangements for detecting or preventing errors in the information received
    • H04L1/12Arrangements for detecting or preventing errors in the information received by using return channel
    • H04L1/16Arrangements for detecting or preventing errors in the information received by using return channel in which the return channel carries supervisory signals, e.g. repetition request signals
    • H04L1/18Automatic repetition systems, e.g. Van Duuren systems
    • H04L1/1867Arrangements specially adapted for the transmitter end
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • 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

Landscapes

  • Engineering & Computer Science (AREA)
  • Computer Networks & Wireless Communication (AREA)
  • Signal Processing (AREA)
  • Mobile Radio Communication Systems (AREA)
  • Communication Control (AREA)

Abstract

The application provides a communication method and device, which can solve the problem that the message sending rate of a client is reduced and can be applied to a communication system. The communication method is applied to first equipment, the first equipment comprises a TCP layer and an intermediate layer, and the intermediate layer is a lower layer of the TCP layer. The communication method comprises the following steps: the middle layer receives a first message from the second device. Wherein the first message instructs the TCP layer to retransmit the first data. The intermediate layer sends the first data to the second device and discards the first message. Thus, when receiving the indication of retransmitting the lost message, the intermediate layer not only can retransmit the lost message, but also can filter the indication, and the TCP layer is prevented from receiving the indication. Therefore, under the condition that a channel between the client and the server is not congested and a message is lost occasionally, the TCP layer cannot reduce a congestion window and reduce the message sending rate.

Description

Communication method and device
Technical Field
The present application relates to the field of communications, and in particular, to a communication method and apparatus.
Background
The Transmission Control Protocol (TCP) is a connection-oriented, reliable transport layer communication protocol based on a byte stream. The reliability of TCP is mainly achieved by a retransmission mechanism, and in particular, when a message sent by a client (e.g., a mobile phone) to a server (e.g., a server) is lost, the server can instruct the client to retransmit the lost message.
At present, if a message is lost, a client not only retransmits the lost message, but also greatly reduces a congestion window, so that the sending window of the client is reduced, and the message sending rate is reduced. That is, packet loss may cause the packet sending rate of the client to decrease.
Disclosure of Invention
The embodiment of the application provides a communication method and device, which can solve the problem that the message sending rate of a client is reduced.
In order to achieve the purpose, the following technical scheme is adopted in the application:
in a first aspect, a method of communication is provided. The communication method is applied to first equipment, the first equipment comprises a TCP layer and an intermediate layer, and the intermediate layer is a lower layer of the TCP layer. The communication method comprises the following steps: the middle layer receives a first message from the second device. Wherein the first message instructs the TCP layer to retransmit the first data. The intermediate layer sends the first data to the second device and discards the first message.
Based on the communication method described in the first aspect, when receiving the indication of retransmitting the lost packet, the intermediate layer may not only retransmit the lost packet, but also filter the indication, so as to prevent the TCP layer from receiving the indication. Therefore, under the condition that a channel between the client and the server is not congested and a message is lost occasionally, the TCP layer cannot reduce a congestion window and reduce the message sending rate.
In a possible design, before the middle layer receives the first packet from the second device, the communication method according to the first aspect may further include: the intermediate layer buffers messages from the TCP layer, and/or the second device. Therefore, an implementation mode that the middle layer reads the lost message from the cache (also called a buffer) and retransmits the lost message can be provided, and the efficiency of retransmitting the message by the middle layer can be improved.
In a possible design, the receiving, by the middle layer, the first packet from the second device may include: the intermediate layer determines a plurality of acknowledgement messages with the same acknowledgement number in all the messages from the second equipment. The intermediate layer determines that the nth acknowledgement message in the plurality of acknowledgement messages is the first message, where n may be an integer greater than or equal to 2. In other words, when the number of the same acknowledgment messages received from the second device reaches n, the intermediate layer acknowledges receiving the indication of the retransmission lost message. Therefore, the message which is still transmitted in the network and can be received by the service terminal can be prevented from being retransmitted too fast, and the retransmission times are reduced.
Alternatively, n may be 2. Therefore, compared with the method that the lost message is retransmitted only after more than 3 retransmission instructions are received, when the retransmission instructions are received for the first time, the intermediate layer can immediately find the lost message in the cache and retransmit the lost message, so that the lost message can be retransmitted more quickly, and the data retransmission efficiency is improved.
In a possible design, the communication method according to the first aspect may further include: the middle layer receives a second message, wherein the second message comprises first window indication information, and the first window indication information indicates the length of the first window. And the middle layer sends a third message, wherein the third message comprises second window indication information, the second window indication information indicates the length of a second window, and the length of the second window is greater than or equal to that of the first window. In other words, when the TCP layer sends the message carrying the window indication information to the second device, and/or the second device sends the message carrying the window indication information to the TCP layer, the intermediate layer may amplify the length of the window in the message carrying the window indication information, and forward the modified message. Therefore, the TCP layer and/or the second device can be enabled to consider that the receiving buffer of the data receiving party is sufficient, so that the TCP layer and/or the second device can send data to the data receiving party with a larger sending window and a higher sending rate, and the transmission rate can be improved.
Optionally, the first window indication information may include a first window scaling factor field and a first window size field, and the second window indication information may include a second window scaling factor field and a second window size field. The length of the second window is greater than or equal to the length of the first window, and may include one or more of: the value of the second window scale factor field is greater than or equal to the value of the first window scale factor field, or the value of the second window size field is greater than or equal to the value of the first window size field.
Optionally, the second window may be a receiving window of the second device. The receiving, by the intermediate layer, the second packet may include: the middle layer receives a second message from the second device. The sending of the third packet by the middle layer may include: and the intermediate layer sends a third message to the TCP layer, and the second window indication information is used for determining a sending window of the first equipment. In other words, the intermediate layer may intercept a second packet sent by the second device to the TCP layer, modify a first window in the second packet into a second window, and send the modified second packet to the TCP layer as a third packet. Because the length of the second window in the third message is greater than or equal to the length of the first window, the TCP layer considers that the receiving buffer of the second device is sufficient, so as to send data to the second device with a larger sending window and a higher sending rate, thereby being capable of improving the transmission rate. The first window in the second message may be understood as a receiving window of the second device that is not modified, and the second window in the third message may be understood as a receiving window of the second device that is modified.
Further, the communication method according to the first aspect may further include: and the intermediate layer sends the data message to the second equipment according to the length of the first window indicated by the first window indication information. For example, when receiving data packets from the TCP layer, the intermediate layer may store the data packets in the cache, and the intermediate layer may further send the data packets to the second device according to the length of the first window indicated by the first window indication information. Because the length of the first window is the unmodified receiving window of the second device, the receiving window overload error of the second device caused by excessive data can be avoided.
Optionally, the second window may be a receiving window of the first device. The receiving, by the intermediate layer, the second packet may include: the intermediate layer receives a second message from the TCP layer. The sending of the third packet by the middle layer may include: and the middle layer sends a third message to the second equipment, and the second window indication information is used for determining a sending window of the second equipment. In other words, the intermediate layer may intercept the second packet sent by the TCP layer to the second device, modify the first window in the second packet into the second window, and send the modified second packet to the second device as the third packet. Because the length of the second window in the third message is greater than or equal to the length of the first window, the second device considers that the receiving buffer of the TCP layer is sufficient, so as to send data to the TCP layer with a larger sending window and a higher sending rate, and further improve the transmission rate. The first window in the second message may be understood as a receiving window that is not modified by the TCP layer, and the second window in the third message may be understood as a receiving window that is modified by the TCP layer.
Further, the communication method according to the first aspect may further include: and the intermediate layer sends the data message to the TCP layer according to the length of the first window indicated by the first window indication information. For example, when receiving data packets from the second device, the intermediate layer may store the data packets in the cache, and may further send the data packets to the TCP layer at the length of the first window indicated by the first window indication information. Because the length of the first window is the unmodified receiving window of the TCP layer, the receiving window overload error of the TCP layer caused by excessive data can be avoided.
Optionally, the second window indication information may be determined by a service corresponding to the second packet. For example, after receiving the second message, the intermediate layer determines five-tuple information in the second message. Wherein the quintuple information corresponds to lengths of the service and the window, respectively. And the middle layer determines a third message according to the length of the window corresponding to the quintuple information. In this way, the intermediate layer may modify the length of the uplink window or the downlink window corresponding to the service according to the window indication information in the service modification message, for example, the uplink window or the downlink window corresponding to the service with high throughput may be increased, and the uplink window or the downlink window corresponding to the service with low throughput may be decreased. Therefore, the data transmission rates and the transmission time delays of different services can be more reasonable.
In a possible design, the communication method according to the first aspect may further include: the middle layer receives a fourth message from the second device. The fourth message may be an acknowledgement message. And the intermediate layer judges whether the fifth message exists in all the confirmation messages received by the intermediate layer. And the confirmation number of the fifth message is the same as the confirmation number of the fourth message. And if the fifth message does not exist in all the confirmation messages received by the intermediate layer, the intermediate layer sends a fourth message to the TCP layer. In this way, the TCP layer may send the next data packet to the second device according to the acknowledgment number in the acknowledgment packet.
In one possible design, the intermediate layer is located between a TCP layer and an Internet Protocol (IP) layer. Referring to fig. 7, when the intermediate layer is located between the TCP layer and the IP layer in the network layer, the message received by the intermediate layer is a TCP message, and the intermediate layer may analyze the TCP message; when the middle layer is the lower layer of the IP layer, the message received by the middle layer is an IP message, and the middle layer needs to parse the header of the IP message, extract the TCP message from the IP message, and then parse the TCP message. In other words, the intermediate layer is located between the TCP layer and the IP layer, which can reduce the overhead of message parsing by the intermediate layer, thereby improving the processing efficiency.
In a possible design, the communication method according to the first aspect may further include: and in the first time period, when the number of the received first messages with different acknowledgement numbers exceeds a congestion threshold value and/or the packet loss rate reaches a packet loss threshold value, the intermediate layer sends a first message to the TCP layer. Wherein the first message is used for instructing the TCP layer to reduce the sending rate. Therefore, when the channel between the client and the server is congested, the intermediate layer can feed back an indication of retransmitting a lost message to the TCP layer, so that the TCP layer reduces a congestion window, reduces the message sending rate, avoids further congestion of the channel between the client and the server, and improves the channel quality.
In one possible design, the first packet carries a select acknowledge SACK option, and the SACK option is used to instruct retransmission of the first data. The SACK option may indicate which data packets are not received and which data packets are received. For example, assume that the SACK option is used to indicate: if the data messages with the sequence numbers of 100, 300 and 400 are not received and the data messages with the sequence numbers of 200 and 500 are received, the intermediate layer can determine that the data messages with the sequence numbers of 100, 300 and 400 are possibly lost when receiving the first message carrying the SACK option, so that the multiple data messages can be retransmitted at one time instead of being retransmitted one by one, the phenomenon that the connection is overtime due to long waiting time of the server is avoided, and the retransmission efficiency of the client is improved.
In a second aspect, a communication device is provided. The communication device includes: a processing module and a transceiver module. The processing module comprises a Transmission Control Protocol (TCP) layer and an intermediate layer of the communication device, wherein the intermediate layer is a lower layer of the TCP layer. The intermediate layer of the communication device is configured to receive a first packet from the second device by using the transceiver module, where the first packet instructs the TCP layer to retransmit the first data. The middle layer of the communication device is further configured to discard the first packet and send the first data to the second device by using the transceiver module.
In one possible embodiment, the intermediate layer of the communication device is further configured to buffer messages from the TCP layer and/or the second device.
In a possible embodiment, the intermediate layer of the communication device is further configured to determine a plurality of acknowledgement messages with the same acknowledgement number in all the messages from the second device. The intermediate layer of the communication device is further configured to determine that an nth acknowledgement message in the multiple acknowledgement messages is a first message, where n may be an integer greater than or equal to 2.
Alternatively, n may be 2.
In a possible embodiment, the intermediate layer of the communication device is further configured to receive the second message by using the transceiver module. The second packet may include first window indication information, where the first window indication information indicates a length of the first window. The middle layer of the communication device is also used for sending a third message by using the receiving and sending module. The third packet may include second window indication information, where the second window indication information indicates a length of a second window, and the length of the second window is greater than or equal to the length of the first window.
Optionally, the first window indication information may include a first window scaling factor field and a first window size field, and the second window indication information may include a second window scaling factor field and a second window size field. The length of the second window is greater than or equal to the length of the first window, and may include one or more of: the value of the second window scale factor field is greater than or equal to the value of the first window scale factor field, or the value of the second window size field is greater than or equal to the value of the first window size field.
Optionally, the second window may be a receiving window of the second device. The middle layer of the communication device is further configured to receive a second message from the second device by using the transceiver module. The intermediate layer of the communication device is further configured to send a third packet to the TCP layer by using the transceiver module, and the second window indication information is used to determine a sending window of the communication device.
Further, the middle layer of the communication device is further configured to send, by using the transceiver module, the data packet to the second device according to the length of the first window indicated by the first window indication information.
Optionally, the second window may be a receiving window of the communication device. The intermediate layer of the communication device is also used for receiving a second message from the TCP layer by using the transceiving module. The middle layer of the communication device is further configured to send a third packet to the second device by using the transceiver module, and the second window indication information is used to determine a sending window of the second device.
Further, the intermediate layer of the communication device is further configured to send the data packet to the TCP layer by using the transceiver module according to the indicated length of the first window.
Optionally, the second window indication information may be determined by a service corresponding to the second packet.
In a possible embodiment, the middle layer of the communication apparatus is further configured to receive, by using the transceiver module, a fourth message from the second device. Wherein, the fourth message is a confirmation message. The intermediate layer of the communication device is further configured to determine whether a fifth message exists in all the acknowledgement messages received by the intermediate layer. And the confirmation number of the fifth message is the same as the confirmation number of the fourth message. The intermediate layer of the communication device is further configured to send a fourth message to the TCP layer by using the transceiver module if the fifth message does not exist in all the acknowledgment messages received by the intermediate layer.
In one possible embodiment, the intermediate layer is located between the TCP layer and the IP layer.
In a possible design, the intermediate layer of the communication device is further configured to send the first message to the TCP layer by using the transceiver module when the number of the first messages with different acknowledgment numbers received in the first time period exceeds a congestion threshold and/or the packet loss rate reaches a packet loss threshold. Wherein the first message is used to instruct the TCP layer to reduce the transmission rate.
In one possible design, the first packet carries a select acknowledge SACK option, and the SACK option is used to instruct retransmission of the first data.
Optionally, the transceiver module may include a receiving module and a transmitting module. The sending module is used for realizing the sending function of the communication device, and the receiving module is used for realizing the receiving function of the communication device.
Optionally, the communication device according to the second aspect may further include a storage module, which stores the program or the instructions. The program or instructions, when executed by the processing module, cause the communication device to perform the communication method of the first aspect.
It should be noted that the communication apparatus according to the second aspect may be a first device (e.g., a mobile phone, a server, etc.), may also be a chip (system) or other component or assembly that can be disposed on the first device, and may also be an apparatus that includes the first device, which is not limited in this application.
In addition, for technical effects of the communication apparatus according to the second aspect, reference may be made to technical effects of the communication method according to the first aspect, and details are not repeated here.
In a third aspect, a communications apparatus is provided. The communication device includes: a processor coupled to a memory, the memory for storing a computer program; the processor is adapted to execute the computer program stored in the memory to cause the communication apparatus to perform the communication method as described in the possible implementation manner in the first aspect.
In one possible design, the communication device of the third aspect may further include a transceiver. The transceiver may be a transceiver circuit or an input/output interface. The transceiver may be used for the communication device to communicate with other communication devices.
In this application, the communication apparatus according to the third aspect may be a first device (e.g., a mobile phone, a server, etc.), or a chip system disposed inside the first device.
The technical effects of the communication apparatus according to the third aspect may refer to the technical effects of the communication method according to the implementation manner in the first aspect, and are not described herein again.
In a fourth aspect, a processor is provided. Wherein the processor is configured to execute the communication method according to a possible implementation manner in the first aspect.
In a fifth aspect, a communication system is provided. The communication system includes a first device and a second device. The first device comprises a TCP layer and an intermediate layer, wherein the intermediate layer is a lower layer of the TCP layer.
In a sixth aspect, a computer-readable storage medium is provided. The computer readable storage medium includes a computer program or instructions; the computer program or instructions, when executed on a computer, cause the computer to perform the communication method as described in the possible implementation manner of the first aspect.
In a seventh aspect, a computer program product is provided, which comprises a computer program or instructions that, when run on a computer, cause the computer to perform the communication method according to possible implementations of the first aspect.
Drawings
FIG. 1 is a schematic diagram of a TCP/IP architecture provided in an embodiment of the present application;
fig. 2 is a schematic diagram of a connection establishment process and a data transmission process of a TCP according to an embodiment of the present application;
fig. 3 is a schematic diagram of a congestion window provided in an embodiment of the present application;
fig. 4 is a first schematic architecture diagram of a communication system according to an embodiment of the present application;
fig. 5 is a schematic structural diagram of a communication system according to an embodiment of the present application;
fig. 6 is a first schematic structural diagram of an electronic device according to an embodiment of the present disclosure;
fig. 7 is a schematic structural diagram of a communication protocol in an electronic device according to an embodiment of the present disclosure;
fig. 8 is a first flowchart illustrating a communication method according to an embodiment of the present application;
fig. 9 is a second flowchart illustrating a communication method according to an embodiment of the present application;
fig. 10 is a schematic application scenario diagram of a communication method according to an embodiment of the present application;
fig. 11 is a first schematic structural diagram of a communication device according to an embodiment of the present application;
fig. 12 is a schematic structural diagram of a communication device according to an embodiment of the present application.
Detailed Description
First, in order to facilitate understanding, related terms and concepts to which embodiments of the present application may relate are described below.
1、TCP
TCP is one of transmission control protocol/internet protocol (TCP/IP). Specifically, taking a TCP/IP four-layer reference model as an example, as shown in fig. 1, the TCP/IP four-layer reference model sequentially includes, from top to bottom: an application layer, a transport layer, a network layer, and a network interface layer. Among them, TCP is a protocol in the transport layer, and may also be referred to as TCP layer.
2. TCP message
The TCP message may be generated by the TCP layer. For example, when a mobile phone sends data to a server, various application programs (such as WeChat, jittering and the like) in the mobile phone can generate data to be sent, send the data to be sent to an application layer, and send the data to be sent to a TCP layer after the data to be sent is processed by the application layer. The TCP layer may then further encapsulate the data to be transmitted, thereby generating a TCP packet.
Correspondingly, when the mobile phone receives a TCP message from another device (such as a server), the TCP layer in the mobile phone may also analyze the TCP message to obtain data carried in the TCP message, and send the analyzed data to the corresponding application program through the application layer.
The TCP message includes a TCP header (TCP header) and data. The TCP header includes the following partial fields: sequence number (Seq), acknowledgement number (Ack), acknowledgement number control bit (Ack), synchronization sequence number control bit (SYN), window size (winsize), options, and padding. The options include a window scaling factor (WSOPT).
The sequence numbers are used to indicate: the TCP message carries the sequence number of the first byte of data. For example, a TCP message carries 200 bytes of data, and assuming that the sequence number of the 200 bytes of data is 200 and 399 (each byte corresponds to a sequence number), the sequence number of the TCP message is 200, and so on, the sequence number of the next TCP message is 400.
The confirmation number is used to indicate: the sequence number of the next received TCP message is expected. For example, if the server (server) has received the data with sequence number 200 and sequence number 399 and expects that the sequence number of the next TCP packet sent by the client is 400, the server may set the acknowledgment number in the TCP packet to be 400 when feeding back the TCP packet to the client.
The acknowledgment number control bit is used to indicate: whether the confirmation number in the TCP message is valid or not. For example, the acknowledgment number control bit indicates that the acknowledgment number is valid when it is 1, and indicates that the acknowledgment number is invalid when it is 0. The TCP message with the acknowledgment number control bit of 1 may be referred to as an ACK message or an acknowledgment message, where the acknowledgment message indicates that the server has received the last TCP message sent by the client and indicates the serial number of the data carried in the next TCP message sent by the client.
The synchronization sequence number control bit is applied to a connection establishment process of the TCP (also referred to as a TCP three-way handshake), a TCP message with a synchronization sequence number control bit of 1 may be referred to as a synchronization sequence number (SYN) message, and the SYN message is generally applied to the first two times of the TCP three-way handshake.
The window size and the window scaling factor are used for indicating the size of the receiving buffer of the server, so as to control the data sending rate of the client, thereby achieving the purpose of flow control. Assuming that the window size is N and the window scaling factor is s, the size of the receiving buffer of the server is N × 2^ s. For example, if the window size of a TCP message sent by the mobile phone to the server is 2048 and the window scaling factor is 3, the size of the receiving buffer of the mobile phone is 2048 ^ 2^3 ^ 16384 bytes, and when the server sends data to the mobile phone, the server needs to determine the rate of sending data to the mobile phone according to the size of the receiving buffer of the mobile phone.
It should be noted that, the fields not introduced in the TCP header may refer to the prior art specification, and are not described herein again.
3. TCP connection establishment procedure and data transmission procedure
Referring to fig. 2, the connection establishment procedure of TCP may include the following steps 1 to 3:
step 1, a client sends a first handshake message to a server, and the server receives the first handshake message from the client.
The synchronization sequence number control bit in the first handshake message is 1, and the sequence number is ISN (c), where c in ISN (c) refers to the client, and ISN (c) may be randomly generated, or may also be referred to as an Initial Sequence Number (ISN). In addition, the first handshake message may also carry a window size and a window scaling factor to determine the size of the receiving cache of the client.
And 2, the server sends a second handshake message to the client, and the client receives the second handshake message from the server.
The synchronization sequence number control bit in the second handshake message is 1, the acknowledgement number control bit is 1, and the acknowledgement number is isn (c) +1, which indicates that the first handshake message has been received, and the sequence number is isn(s), where s in isn(s) is a service end, and isn(s) may also be randomly generated. In addition, the second handshake message may also carry a window size and a window scaling factor to indicate the size of the receiving buffer of the server.
And 3, the client sends a third handshake message to the server, and the server receives the third handshake message from the client.
The acknowledgment number control bit in the third handshake message is 1, the acknowledgment number is isn (s)) +1, which indicates that the second handshake message has been received, and the sequence number is isn (c)) + 1.
After the TCP three-way handshake is completed, both the client and the server are in an ESTABLISHED connection (ESTABLISHED) state, and data transmission can be performed. The TCP protocol is duplex, that is, the client may send data to the server, and the server may also send data to the client, where a party sending data may be referred to as a data sending party, and a party receiving data may be referred to as a data receiving party. In addition, for the client, when the client receives a data message from the server, the TCP message received by the client may be referred to as a downlink message; when a client sends a data packet to a server, a TCP packet sent by the client may be referred to as an uplink packet.
Continuing to use the example of sending a data message from the client to the server, referring to fig. 2 again, the data transmission process may include the following steps 4 and 5:
and 4, the client sends the data message to the server, and the server receives the data message from the client.
And 5, the server side sends a confirmation message to the client side, and the client side receives the confirmation message from the server side.
For example, assuming that a data message sent by a client to a server carries 100 bytes of data, and a sequence number in the data message is 100, the server may send an acknowledgement message to the client when receiving the data message, and an acknowledgement number control bit in the acknowledgement message is 1, and an acknowledgement number is 200. The acknowledgement message is used to indicate that the client has received the data message to indicate that the client has sent the next data, and the sequence number of the first data is 200. In other words, in the data transmission process, each time the server receives a TCP packet from the client, an acknowledgement packet needs to be fed back to the client to inform the client that the data has been received and the data needs to be transmitted next.
4. TCP retransmission mechanism
In the above steps 4 and 5, the data message or the confirmation message may be lost, which results in that the server cannot normally receive complete data. Therefore, in order to achieve reliability of transmission, there are also retransmission mechanisms in TCP, such as a timeout retransmission mechanism and a fast retransmission mechanism.
For example, with a fast retransmission mechanism, when a data packet is lost, the server repeatedly feeds back an acknowledgement packet carrying the same acknowledgement number to the client to indicate retransmission of the lost data. When the received acknowledgement messages carrying the same acknowledgement number reach a retransmission threshold (e.g., 3), the client retransmits the data indicated by the acknowledgement message to the server. The above acknowledgement messages carrying the same acknowledgement number may also be referred to as retransmission messages.
In the same period of time, the client can continuously send a plurality of data messages to the server, and the server feeds back a corresponding confirmation message every time the server receives one data message. However, if there is a packet loss in the consecutive multiple data packets, the client repeatedly feeds back the acknowledgement packet to indicate retransmission of the lost packet. For example, suppose that the client sends 4 data packets to the server, each data packet carries 100 bytes of data, and the sequence numbers are 100, 200, 300, and 400, respectively. If the data message with the sequence number of 200 is lost, the server will repeatedly feed back the acknowledgement message with the sequence number of 200.
In addition, in the above fast retransmission mechanism, the server may send an acknowledgement message carrying a SACK (selective acknowledgement) option to the client, so as to indicate which data packets are not received and which data packets are received. For example, if the client sends 10 data packets to the server, each data packet carries 100 bytes of data, and the sequence numbers are 100, 200, …, and 1000, and only the data packets with the sequence numbers of 200, 500, and 600 in the 10 data packets are lost, and other data packets are correctly received by the server, the server will also carry a SACK option in the feedback confirmation packet when feeding back the confirmation packet. Wherein the SACK option is used for indicating: data messages with sequence numbers of 200, 500 and 600 are not received, and data messages with sequence numbers of 100, 300, 400, 700, 800, 900 and 1000 are received. Thus, when the client receives the confirmation message carrying the SACK option, the client can determine that the data messages with the sequence numbers of 200, 500 and 600 are possibly lost, so that the multiple data messages can be retransmitted at one time instead of one by one, connection timeout (timeout) of the server due to long waiting time is avoided, and retransmission efficiency of the client is improved.
In this embodiment of the present application, the message loss includes situations such as loss and error of the message in the wired link or the wireless link, which are not limited in this embodiment of the present application.
5. Sliding window and congestion window
In the TCP protocol, the sliding window includes a send window and a receive window, the send window is maintained by the data sender, and the receive window is maintained by the data receiver. The transmission window refers to data that can be transmitted in the data to be transmitted, and the reception window refers to data that can be received in the data to be received. The length of the receive window corresponds to the size of the receive buffer of the data receiver, for example, the size of the receive buffer of the data receiver may be greater than or equal to the length of the receive window of the data receiver. The data sender also maintains a congestion window, where the length of the sending window is min (the length of the receiving window, the length of the congestion window), for example, if the length of the receiving window of the data receiver is 70 bytes, and the length of the congestion window is 50 bytes, then the length of the sending window of the data sender is min (70 bytes, 50 bytes) or 50 bytes. In the uplink direction (i.e., when the client transmits data to the server), the transmission window maintained by the client may also be referred to as an uplink transmission window, and the reception window maintained by the server may also be referred to as an uplink reception window. In the downlink direction (i.e., the client receives data from the server), the receiving window maintained by the client may also be referred to as a downlink receiving window, and the sending window maintained by the server may also be referred to as a downlink sending window.
At present, as shown in fig. 3, after a client establishes a connection with a server, in the process of data interaction, the length of a congestion window of the client gradually increases to a peak value of the congestion window with time. However, in this process, when a packet is lost, the TCP layer of the client retransmits the lost packet and greatly reduces the length of the congestion window (e.g., adjusts the congestion window to the minimum value), thereby reducing the sending window of the client and further reducing the sending rate of the client. Also, it may not be necessary for the TCP layer of the client to adjust the congestion window to the minimum value whenever a lost packet is retransmitted. For example, in the case of a good channel between the client and the server, the lost packet is usually caused by noise and other accidental factors, the channel state is not degraded, and when the packet is occasionally lost (for example, the packet loss rate is lower than 1%), the client does not need to reduce the congestion window. For another example, when a channel between the client and the server fluctuates but is not congested and a packet is lost, the client does not need to adjust the congestion window to the minimum value.
The technical solution in the present application will be described below with reference to the accompanying drawings.
The communication method provided by the embodiment of the application can be applied to various communication systems, such as a wired communication system or a wireless communication system. The wireless communication system may include: a wireless fidelity (WiFi) system, a vehicle-to-any (V2X) communication system, a device-to-device (D2D) communication system, a car networking communication system, a 4th generation (4G) mobile communication system, such as a Long Term Evolution (LTE) system, a Worldwide Interoperability for Microwave Access (WiMAX) communication system, a fifth generation (5 generation, 5G) mobile communication system, such as a New Radio (NR) system, and a future communication system, such as a sixth generation (6G) mobile communication system.
Fig. 4 is a schematic diagram of a first architecture of a communication system according to an embodiment of the present application. The communication system to which the communication method provided in the embodiment of the present application is applied may include: the first device comprises a TCP layer and an intermediate layer, and the intermediate layer is a lower layer of the TCP layer. When the first device and the second device interact based on the TCP protocol, the first device may be a client and the second device is a server, or the first device may be a server and the second device is a client, which is not limited in this embodiment of the present application.
The first device and the second device may specifically be: a mobile phone, a server, a television (also referred to as a smart screen, a large screen device, etc.), a tablet computer (Pad), a Personal Computer (PC), a notebook computer, a desktop computer, a vehicle-mounted device, a wearable device (such as a bluetooth headset, a smart watch, etc.), a sound, a Virtual Reality (VR) terminal device, an Augmented Reality (AR) terminal device, an ultra-mobile personal computer (UMPC), a netbook, a personal digital assistant (personal digital assistant, PDA), a wireless terminal in industrial control (industrial control), a wireless terminal in unmanned driving (driving), a wireless terminal in remote medical (remote medical), a wireless terminal in smart grid (smart grid), a wireless terminal in transportation security (transportation security), a wireless terminal in smart grid, a wireless terminal in city (city), a wireless terminal in home (city), Artificial intelligence (artificial intelligence) equipment, etc., which is not limited in any way in the embodiments of the present application.
Illustratively, referring to fig. 5, a communication system includes a mobile phone, a television, a notebook computer and a server for example. The first device and the second device may be any one of a mobile phone, a television, a notebook computer, and a server.
In the embodiment of the application, the first device and the second device can be connected through a wired or wireless connection to realize data interaction. For example, the communication network shown in fig. 5 includes a network device 1 (e.g., a base station) and a network device 2 (e.g., a router), and if the first device is a mobile phone and the second device is a server, the mobile phone may access the network device 1 of the network, and the server may access the network device 2 of the network, so as to perform interaction. For another example, if the first device is a mobile phone and the second device is a laptop, the mobile phone and the laptop may be located in the same WiFi network, and interact with each other through the WiFi network. For another example, the mobile phone and the notebook computer may interact with each other through a server corresponding to the account by logging in the same account (e.g., hua is the account). The server may be the server shown in fig. 5 or another server.
In the embodiment of the present application, please refer to fig. 5, which illustrates an example in which the first device is a mobile phone and the second device is a server. The mobile phone is provided with a TCP layer and an intermediate layer, wherein the intermediate layer is a lower layer of the TCP layer. The intermediate layer may receive a TCP message from the server and then send the TCP message to the TCP layer. When the intermediate layer receives a first message from the server and the first message is used for indicating the TCP layer to retransmit the first data, the intermediate layer sends the first data to the server and discards (or filters or deletes) the first message. Therefore, the intermediate layer can not only finish retransmission of lost data, but also filter retransmission messages sent to the TCP layer, and therefore the TCP layer of the mobile phone is prevented from reducing the sending rate of the messages due to the fact that the retransmission messages are received.
The communication system provided by the embodiment of the present application is explained above with reference to fig. 4 and 5, and the following describes in detail an implementation of the embodiment of the present application with reference to the drawings.
Illustratively, still take a mobile phone as an example of the first device in the communication system, please refer to fig. 6, and fig. 6 shows a schematic structural diagram of a mobile phone 600.
The handset 600 may include a processor 610, an external memory interface 620, an internal memory 621, a Universal Serial Bus (USB) interface 630, an antenna 1, an antenna 2, a mobile communication module 650, a wireless communication module 660, an audio module 670, a speaker 670A, a receiver 670B, a microphone 670C, an earphone interface 670D, a sensor module 680, and the like.
It is to be understood that the illustrated structure of the embodiment of the present invention does not specifically limit the mobile phone 600. In other embodiments of the present application, handset 600 may include more or fewer components than shown, or some components may be combined, some components may be split, or a different arrangement of components. The illustrated components may be implemented in hardware, software, or a combination of software and hardware.
Processor 610 may include one or more processing units, such as: the processor 610 may include an Application Processor (AP), a modem processor, a Graphics Processor (GPU), an Image Signal Processor (ISP), a controller, a memory, a video codec, a Digital Signal Processor (DSP), a baseband processor, and/or a neural-Network Processing Unit (NPU), among others. The different processing units may be separate devices or may be integrated into one or more processors.
A memory may also be provided in the processor 610 for storing instructions and data. In some embodiments, the memory in the processor 610 is a cache memory. The memory may hold instructions or data that have just been used or recycled by the processor 610. If the processor 610 needs to use the instruction or data again, it can be called directly from the memory. Avoiding repeated accesses reduces the latency of the processor 610, thereby increasing the efficiency of the system.
The wireless communication function of the mobile phone 600 can be realized by the antenna 1, the antenna 2, the mobile communication module 650, the wireless communication module 660, the modem processor, the baseband processor, and the like.
The antennas 1 and 2 are used for transmitting and receiving electromagnetic wave signals. Each antenna in the handset 600 may be used to cover a single or multiple communication bands. Different antennas can also be multiplexed to improve the utilization of the antennas. For example: the antenna 1 may be multiplexed as a diversity antenna of a wireless local area network. In other embodiments, the antenna may be used in conjunction with a tuning switch.
The mobile communication module 650 may provide a solution including 2G/3G/4G/5G wireless communication applied to the handset 600. The mobile communication module 650 may include at least one filter, a switch, a power amplifier, a Low Noise Amplifier (LNA), and the like. The mobile communication module 650 may receive the electromagnetic wave from the antenna 1, filter, amplify, etc. the received electromagnetic wave, and transmit the filtered electromagnetic wave to the modem processor for demodulation. The mobile communication module 650 may also amplify the signal modulated by the modem processor, and convert the signal into electromagnetic wave through the antenna 1 to radiate the electromagnetic wave. In some embodiments, at least some of the functional modules of the mobile communication module 650 may be disposed in the processor 610. In some embodiments, at least some of the functional blocks of the mobile communication module 650 may be provided in the same device as at least some of the blocks of the processor 610.
The wireless communication module 660 may provide a solution for wireless communication applied to the mobile phone 600, including Wireless Local Area Networks (WLANs) (e.g., wireless fidelity (Wi-Fi) networks), Bluetooth (BT), Global Navigation Satellite System (GNSS), Frequency Modulation (FM), Near Field Communication (NFC), Infrared (IR), and the like. The wireless communication module 660 may be one or more devices integrating at least one communication processing module. The wireless communication module 660 receives electromagnetic waves via the antenna 2, performs frequency modulation and filtering on electromagnetic wave signals, and transmits the processed signals to the processor 610. The wireless communication module 660 may also receive a signal to be transmitted from the processor 610, perform frequency modulation and amplification on the signal, and convert the signal into electromagnetic waves through the antenna 2 to radiate the electromagnetic waves.
In some embodiments, antenna 1 of handset 600 is coupled to mobile communication module 650 and antenna 2 is coupled to wireless communication module 660 such that handset 600 can communicate with networks and other devices via wireless communication techniques. The wireless communication technology may include global system for mobile communications (GSM), General Packet Radio Service (GPRS), code division multiple access (code division multiple access, CDMA), Wideband Code Division Multiple Access (WCDMA), time-division code division multiple access (time-division code division multiple access, TD-SCDMA), Long Term Evolution (LTE), LTE, BT, GNSS, WLAN, NFC, FM, and/or IR technologies, etc. The GNSS may include a Global Positioning System (GPS), a global navigation satellite system (GLONASS), a beidou navigation satellite system (BDS), a quasi-zenith satellite system (QZSS), and/or a Satellite Based Augmentation System (SBAS).
The mobile phone 600 implements the display function through the GPU, the display screen 694, and the application processor. The GPU is a microprocessor for image processing, connected to the display screen 694 and an application processor. The GPU is used to perform mathematical and geometric calculations for graphics rendering. The processor 610 may include one or more GPUs that execute program instructions to generate or change display information.
The display screen 694 is used to display images, video, and the like. The display 694 includes a display panel. The display panel may adopt a Liquid Crystal Display (LCD), an organic light-emitting diode (OLED), an active-matrix organic light-emitting diode (active-matrix organic light-emitting diode, AMOLED), a flexible light-emitting diode (FLED), a miniature, a Micro-oeld, a quantum dot light-emitting diode (QLED), and the like. In some embodiments, the cell phone 600 may include 1 or N display screens 694, N being a positive integer greater than 1.
The mobile phone 600 may implement a shooting function through the ISP, the camera 693, the video codec, the GPU, the display 694, and the application processor.
The ISP is used to process data fed back by the camera 693. For example, when a user takes a picture, the shutter is opened, light is transmitted to the camera photosensitive element through the lens, an optical signal is converted into an electric signal, and the camera photosensitive element transmits the electric signal to the ISP for processing and converting into an image visible to the naked eye. The ISP can also carry out algorithm optimization on the noise, brightness and skin color of the image. The ISP can also optimize parameters such as exposure, color temperature and the like of a shooting scene. In some embodiments, the ISP may be provided in camera 693.
The camera 693 is used to capture still images or video. The object generates an optical image through the lens and projects the optical image to the photosensitive element. The photosensitive element may be a Charge Coupled Device (CCD) or a complementary metal-oxide-semiconductor (CMOS) phototransistor. The light sensing element converts the optical signal into an electrical signal, which is then passed to the ISP where it is converted into a digital image signal. And the ISP outputs the digital image signal to the DSP for processing. The DSP converts the digital image signal into an image signal in a standard RGB, YUV and other formats. In some embodiments, cell phone 600 may include 1 or N cameras 693, N being a positive integer greater than 1.
The digital signal processor is used for processing digital signals, and can process digital image signals and other digital signals. For example, when the handset 600 is in frequency bin selection, the digital signal processor is used to perform fourier transform or the like on the frequency bin energy.
Video codecs are used to compress or decompress digital video. Handset 600 may support one or more video codecs. Thus, the handset 600 can play or record video in a variety of encoding formats, such as: moving Picture Experts Group (MPEG) 1, MPEG2, MPEG3, MPEG4, and the like.
The external memory interface 620 may be used to connect an external memory card, such as a Micro SD card, to extend the storage capability of the mobile phone 600. The external memory card communicates with the processor 610 through the external memory interface 620 to implement a data storage function. For example, files such as music, video, etc. are saved in an external memory card.
Internal memory 621 may be used to store computer-executable program code, including instructions. The processor 610 executes various functional applications and data processing of the cellular phone 600 by executing instructions stored in the internal memory 621. The internal memory 621 may include a program storage area and a data storage area. The storage program area may store an operating system, an application program (such as a sound playing function, an image playing function, a TCP acceleration function, and the like) required by at least one function, and the like. The data storage area can store data (such as audio data, phone book, TCP message, etc.) created during the use of the mobile phone 600. In addition, the internal memory 621 may include a high-speed random access memory, and may also include a non-volatile memory, such as at least one magnetic disk storage device, a flash memory device, a Universal Flash Storage (UFS), and the like.
The handset 600 may implement audio functions via the audio module 670, speaker 670A, receiver 670B, microphone 670C, headset interface 670D, and application processor, etc. Such as music playing, recording, etc.
The audio module 670 is used to convert digital audio information into an analog audio signal output and also used to convert an analog audio input into a digital audio signal. The audio module 670 may also be used to encode and decode audio signals. In some embodiments, the audio module 670 may be disposed in the processor 610, or some functional modules of the audio module 670 may be disposed in the processor 610.
The speaker 670A, also called a "horn", is used to convert electrical audio signals into sound signals. The cellular phone 600 can listen to music through the speaker 670A or listen to a hands-free call.
The receiver 670B, also called "earpiece", is used to convert the electrical audio signal into a sound signal. When the handset 600 receives a call or voice message, the receiver 670B can be close to the ear to receive voice.
The microphone 670C, also known as a "microphone," is used to convert acoustic signals into electrical signals. When making a call or transmitting voice information, the user can input a voice signal into the microphone 670C by making a sound by approaching the microphone 670C with the mouth of the user. Handset 600 may be provided with at least one microphone 670C. In other embodiments, the handset 600 may be provided with two microphones 670C to achieve noise reduction functions in addition to collecting sound signals. In other embodiments, the mobile phone 600 may further include three, four, or more microphones 670C to collect sound signals, reduce noise, identify sound sources, and implement directional recording functions.
The earphone interface 670D is used to connect a wired earphone. The headset interface 670D may be the USB interface 630, or may be an open mobile electronic device platform (OMTP) standard interface of 3.5mm, a cellular telecommunications industry association (cellular telecommunications industry association of the USA, CTIA) standard interface.
Pressure sensors, gyroscope sensors, air pressure sensors, magnetic sensors, acceleration sensors, distance sensors, proximity light sensors, fingerprint sensors, temperature sensors, touch sensors, ambient light sensors, bone conduction sensors, etc. may be included in sensor module 680.
Certainly, the mobile phone 600 may further include a charging management module, a power management module, a battery, a key, an indicator, and 1 or more SIM card interfaces, which is not limited in this embodiment of the present application.
Fig. 6 illustrates the structure of the first device in the communication system by taking the mobile phone 600 as an example, and the following continues to illustrate a communication protocol architecture that can be adopted by the first device by taking the mobile phone 600 as an example.
The mobile phone 600 may include: an application layer, a transport layer, a network interface layer, and an intermediate layer.
The application layer may include a File Transfer Protocol (FTP), a Simple Mail Transfer Protocol (SMTP), and other protocols, the transport layer may include a TCP, a User Datagram Protocol (UDP), and other protocols, the network layer may include an Internet Protocol (IP), a control message protocol (ICMP), and other protocols, the network interface layer generally includes a data link layer and a physical layer, and the data link layer further includes a Media Access Control (MAC) layer. In practical applications, the network interface layer may be implemented by using one or more of the following protocols: near Field Communication (NFC), Radio Frequency Identification (RFID), bluetooth (bluetooth), 2G, 3G, 4G, 5G, Wi-Fi, ZigBee (ZigBee), long range radio (LORA), USB, RS485, and the like. The intermediate layer is an independent protocol layer introduced in the embodiment of the present application, and may be located between the MAC layer and the TCP layer.
Illustratively, as shown in fig. 7 (a), the intermediate layer may be located at the network interface layer and be an upper layer of the MAC layer. Or as shown in fig. 7 (b), the intermediate layer may be located at the network layer. As also shown in fig. 7 (c), the intermediate layer may be located at the transport layer and be a lower layer of the TCP layer. As further shown in fig. 7 (d), the intermediate layer may be located between the network layer and the network interface layer. As further shown in fig. 7 (e), an intermediate layer may be located between the transport layer and the network layer.
In this embodiment, the intermediate layer may forward a packet from the lower layer to the upper layer (i.e., a downlink packet), or may forward a packet from the upper layer to the lower layer (i.e., an uplink packet). The intermediate layer also comprises a buffer area, and when the intermediate layer forwards the downlink message or the uplink message, the intermediate layer can also store the message which is the same as the downlink message or the uplink message in the buffer area.
In this embodiment of the present application, when the intermediate layer receives a message (including an uplink message and a downlink message), the intermediate layer may further analyze the message to analyze a TCP message carried in the message. As can be seen from fig. 7, when the intermediate layer is located between the TCP layer and the IP layer in the network layer, the message received by the intermediate layer is a TCP message, and the intermediate layer can analyze the TCP message; when the middle layer is the lower layer of the IP layer, the message received by the middle layer is an IP message, and the middle layer needs to parse the header of the IP message, extract the TCP message from the IP message, and then parse the TCP message. In other words, the intermediate layer is located between the TCP layer and the IP layer, which can reduce the overhead of message parsing by the intermediate layer, thereby improving the processing efficiency.
Wherein other protocol layers below the middle layer may be referred to as other layers. For example, when the middle layer is located at the network interface layer, the other layers include a MAC layer and a physical layer. For another example, when the intermediate layer is located between the transport layer and the network layer, the other layers include a network layer (e.g., an IP layer), a MAC layer, and a physical layer.
Fig. 7 illustrates a communication protocol architecture that can be adopted by the first device by taking the mobile phone 600 as an example, and a communication method provided by the embodiment of the present application will be described in detail below with reference to the accompanying drawings.
The communication method provided in the embodiment of the present application may be applied to a first device in the communication system shown in fig. 4, where the first device is a mobile phone, the second device is a server, the mobile phone is a client, and the server is a server, for example, please refer to fig. 8, and the communication method may include the following steps:
s801, the TCP layer sends a first data message to the middle layer, and the middle layer receives the first data message from the TCP layer.
The first data message carries first data. For example, the first data packet may come from an application layer of the mobile phone and carry data generated by various application programs (such as WeChat, jitter, and the like) in the mobile phone.
It should be appreciated that the intermediate layer buffers the first data packet from the TCP layer for retransmission. For a specific embodiment, reference may be made to the following description in S805, which is not described herein again.
As shown in (c) of fig. 7, taking an example that the intermediate layer is located in the transport layer and is a lower layer of the TCP layer, the TCP layer sends the first data packet to the intermediate layer, which may include the following embodiments: the TCP layer sends a first data message to the intermediate layer. When receiving the first data message, the intermediate layer copies the first data message and stores the copied message into a buffer area.
In addition, the TCP layer, the intermediate layer and other layers in the mobile phone may refer to the above description, and are not described herein again.
S802, the middle layer sends the first data message to other layers, and the other layers receive the first data message from the middle layer.
As shown in fig. 7 (c), taking the example that the intermediate layer is located in the transport layer and is a lower layer of the TCP layer as an example, the intermediate layer sends the first data packet to the other layers, which may include the following embodiments: the intermediate layer sends the first data message to the network layers in other layers. When receiving the first data packet, the network layer processes the first data packet, for example, an IP layer in the network layer encapsulates the first data packet into an IP packet.
And S803, the other layer sends the first data message to the server, and the server receives the first data message from the other layer.
As shown in fig. 7 (c), taking the example that the middle layer is located at the transport layer and is the lower layer of the TCP layer as an example, the other layers send the first data packet to the server, which may include the following embodiments: the network layer in the other layer sends a message (such as the above IP message) carrying the first data message to the MAC layer. The MAC layer encapsulates the packets from the network layer into data frames (carrying the first data packets), and sends these data frames to the server through the physical layer.
Since the wired link or the wireless link of the network is unstable, the first data packet may be lost during the network transmission process, and therefore, the server may or may not receive the first data packet. Wherein, the message loss comprises: for example, when the error code exists in the message, the server cannot correctly analyze the data carried in the message even if receiving the message, so that it can be confirmed that the message is lost.
The method for the server to determine whether the first data packet is lost may include: and when the server does not receive the first data message from the mobile phone after the receiving time threshold is exceeded, the server determines that the first data message is lost.
In this embodiment, when the first data packet is not lost, the server may execute step 5 above, and notify the mobile phone that the first data packet has been received by feeding back an acknowledgement packet to the mobile phone. When the first data packet is lost, the communication method shown in fig. 8 may include the following steps:
s804, the server sends the first confirmation message to other layers, and the other layers receive the first confirmation message from the server.
The first acknowledgement message is used for indicating the TCP layer to retransmit the first data. In other words, the first acknowledgment packet is a retransmission packet.
Referring to the above retransmission mechanism of TCP, when determining that the first data packet is lost, the server may repeatedly feed back an acknowledgment packet carrying the same acknowledgment number to the mobile phone. For example, assuming that the sequence number of the first data packet is 100, the server may repeatedly feed back the first acknowledgment packet with an acknowledgment number of 100 to the mobile phone. That is, the other layers and the middle layer may repeatedly receive the first acknowledgement message from the server. In addition, when the server repeatedly feeds back the acknowledgement message carrying the same acknowledgement number to the mobile phone, the server may also carry a SACK option in the acknowledgement message to indicate which data messages are not received and which data messages are received. For example, if the mobile phone continuously sends 5 data packets to the server, each data packet carries 100 bytes of data, the sequence numbers are 100, 200, 300, 400, and 500, respectively, the data packets with the sequence numbers of 100, 300, and 400 are lost, and the data packets with the sequence numbers of 200 and 500 are received by the server, the server may repeatedly feed back the first acknowledgment packet carrying the SACK option to the mobile phone. Wherein the SACK option is used for indicating: data messages with sequence numbers 100, 300 and 400 are not received, and data messages with sequence numbers 200 and 500 are received. Therefore, when the mobile phone receives the confirmation message carrying the SACK option, the data messages with the sequence numbers of 100, 300 and 400 can be determined to be lost, so that the multiple data messages can be retransmitted at one time instead of one by one, connection overtime caused by long waiting time of the server is avoided, and the retransmission efficiency of the client is improved.
S805, the other layers send first confirmation messages to the middle layer, and the middle layer receives the first confirmation messages from the other layers.
Similar to the above S802 and S803, the above other layer receives the first acknowledgement message from the server and sends the first acknowledgement message to the middle layer, which may include the following embodiments: and the physical layer in other layers receives the data carrying the first confirmation message from the server, analyzes the data and sends the analyzed data to the MAC layer. When receiving data from the physical layer, the MAC layer is configured to parse a packet (carrying a first acknowledgement packet) in the data, and send the first acknowledgement packet to the intermediate layer through the network layer.
When data is actually transmitted, other layers not only send the first acknowledgement message to the middle layer, but also send other messages to the middle layer. In order to determine the first acknowledgement message, the intermediate layer may determine a plurality of acknowledgement messages with the same acknowledgement number in all the messages from the server, and determine an nth acknowledgement message in the plurality of acknowledgement messages as the first message, where n may be an integer greater than or equal to 2. Specifically, the following first determination process may be referred to.
The first determination process may include: and the intermediate layer analyzes the TCP message in each data from other layers, and when a plurality of acknowledgement messages with the same acknowledgement number exist in the analyzed TCP message, the nth acknowledgement message is determined to be the first acknowledgement message. In other words, when receiving the retransmission messages from the server and reaching the first threshold, the intermediate layer determines the retransmission messages as the first acknowledgement messages. The first threshold is an integer greater than or equal to 2, and optionally, the size of the first threshold is the same as the size of the retransmission threshold in the TCP retransmission mechanism.
Illustratively, referring to table 1 below, table 1 shows 5 TCP packets that the intermediate layer parses when parsing TCP packets in each data from other layers. The TCP messages 1-5 are analyzed according to the receiving time sequence, the analyzed time of the TCP message 1 is the earliest, the analyzed time of the TCP message 5 is the latest, and the TCP messages 1-5 are all confirmation messages. The acknowledgment number of TCP message 1 is 100, the acknowledgment number of TCP message 2 is 200, the acknowledgment number of TCP message 3 is 300, the acknowledgment number of TCP message 4 is 300, and the acknowledgment number of TCP message 5 is 300. In other words, there are 3 acknowledgment messages with the same acknowledgment number in the parsed TCP message, which are TCP message 3, TCP message 4, and TCP message 5, respectively, so that, of these 5 TCP messages, TCP message 4 and TCP message 5 are the first acknowledgment message.
TABLE 1
Confirmation number Acknowledgment number control bit
TCP message 1 100 1
TCP message 2 200 1
TCP message 3 300 1
TCP message 4 300 1
TCP message 5 300 1
Since the intermediate layer may repeatedly receive the acknowledgement message from the server, optionally, when 2 acknowledgement messages with the same acknowledgement number exist in the parsed TCP message, the intermediate layer determines the 2 nd acknowledgement message in the 2 acknowledgement messages with the same acknowledgement number as the first acknowledgement message. That is, n is 2.
Continuing with the example of table 1 above, when the intermediate layer parses out the TCP message 4, since the TCP message 4 is the same as the TCP message 3 and is the 2 nd acknowledgment message in the TCP message 4 and the TCP message 3, the TCP message 4 is the first acknowledgment message. Compared with the method that the lost message is retransmitted after the retransmission message exceeding the retransmission threshold value is received, in the embodiment of the application, when the retransmission message is received for the first time, the intermediate layer can immediately find the lost message in the cache and retransmit the lost message, so that the lost message can be retransmitted more quickly, and the data transmission efficiency of the TCP is improved.
In one possible embodiment, the middle layer may receive a fourth message from the server. For example, when parsing a TCP packet in each data from other layers, the intermediate layer determines the parsed acknowledgement packet as a fourth packet. Then, the intermediate layer may determine whether a fifth packet exists in all the received acknowledgement packets, where an acknowledgement number of the fifth packet is the same as an acknowledgement number of the fourth packet. If the fifth message does not exist in all the acknowledgement messages received by the intermediate layer, the intermediate layer can send a fourth message to the TCP layer; if the fifth message exists in all the acknowledgement messages received by the intermediate layer, the intermediate layer may not send the fourth message to the TCP layer. In this way, the TCP layer may send the next data packet to the server according to the acknowledgement number in the fourth packet.
In this embodiment of the application, when receiving the first acknowledgment packet from the other layer, the intermediate layer further generates a second data packet carrying the first data according to the first acknowledgment packet, and discards (or may filter or delete) the first acknowledgment packet. For example, assuming that the acknowledgment number of the first acknowledgment packet is 200, the intermediate layer may look up a data packet with a sequence number of 200 in the buffer and determine the data packet as the second data packet. Thus, the intermediate layer can achieve the purpose of finding the lost data in the buffer and retransmitting the data.
S806, the middle layer sends the second data message to other layers, and the other layers receive the second data message from the middle layer.
Similarly, the process of sending the second data packet from the middle layer to the other layers may refer to the above S802, which is not described herein again.
And S807, the other layers send second data messages to the server, and the server receives the second data messages from the other layers.
Similarly, the process of sending the second data packet to the server by the other layer may refer to the above S803, and is not described herein again.
It can be understood that, based on the foregoing S801-S807, when receiving the indication of retransmitting the lost packet, the intermediate layer may not only retransmit the lost packet, but also filter the indication, so as to prevent the TCP layer from receiving the indication. Therefore, under the condition that a channel between the client and the server is not congested and messages are occasionally lost, the TCP layer cannot reduce a congestion window and reduce the message sending rate.
In this embodiment of the application, if a channel between the client and the server is congested and a large-scale packet loss occurs, the step S805 may further include: and in the first time period, when the number of the first acknowledgement messages with different acknowledgement numbers exceeds a congestion threshold and/or the packet loss rate reaches a packet loss threshold, the intermediate layer sends a first message to the TCP layer. The first message is used to instruct the TCP layer to reduce the sending rate, for example, the first message includes a plurality of first acknowledgement messages with the same acknowledgement number. Therefore, when the channel between the client and the server is congested, the intermediate layer can feed back an indication of retransmitting a lost message to the TCP layer, so that the TCP layer reduces a congestion window, reduces the message sending rate, avoids further congestion of the channel between the client and the server, and improves the channel quality.
In order to increase the data transmission rate between the mobile phone and the server, optionally, taking the mobile phone as the sending end and the server as the receiving end as an example, please refer to fig. 9, in the process of establishing the connection between the mobile phone and the server, the communication method includes the following steps:
s901, the TCP layer sends a first handshake message to the middle layer, and the middle layer receives the first handshake message from the TCP layer.
Wherein the first handshake message includes a window size and a window scaling factor, the window size being N 1 Window scaling factor of S 1 . In conjunction with the above description of the window size and window scaling factor, the length of the receiving window of the handset is N 1 *2^S 1 . In addition, for the mobile phone, the first handshake message is equivalent to carry a downlink window.
When data is actually transmitted, the TCP layer not only sends the first handshake message to the intermediate layer, but also sends other TCP messages to the intermediate layer, so that the intermediate layer can determine the first handshake message from the TCP messages of the TCP layer through the following second determination process. Wherein the second determination process may include: the intermediate layer judges whether the TCP message from the TCP layer is a SYN message, and when the TCP message from the TCP layer is the SYN message, the SYN message is determined to be a first handshake message.
In this embodiment of the application, when the intermediate layer receives the first handshake packet from the TCP layer, the S901 may further include: and the middle layer generates a second handshake message according to the first handshake message. The second handshake message is different from the first handshake message in window size and window scaling factor, and the window size in the second handshake message is N 2 Window scaling factor of S 2 And, N 2 *2^S 2 Has a value of greater thanOr equal to N 1 *2^S 1 The value of (c). In other words, the length of the receiving window of the mobile phone indicated by the second handshake message is greater than or equal to the length of the receiving window of the mobile phone indicated by the first handshake message.
Illustratively, when receiving the first handshake message from the TCP layer, the intermediate layer may modify the window size and the window scaling factor in the first handshake message to change the window size N 1 Modified to N 2 Window scaling factor S 1 Is modified to S 2 And determining the modified first handshake message as a second handshake message. Wherein N is 2 Greater than or equal to N 1 And/or, S 2 Greater than or equal to S 1
S902, the middle layer sends the second handshake message to other layers, and the other layers receive the second handshake message from the middle layer.
And S903, the other layer sends a second handshake message to the server, and the server receives the second handshake message from the other layer.
In this embodiment of the application, when receiving the second handshake message from another layer, the server may generate a third handshake message. Wherein the third handshake message includes a window size and a window scaling factor, the window size being N 3 Window scaling factor of S 3 . As can be seen from the above description of window size and window scaling factor, the receiving window of the server has a length N 3 *2^S 3 . In addition, for the mobile phone, the third handshake message is equivalent to carry the uplink window.
S904, the server sends a third handshake message to other layers, and the other layers receive the third handshake message from the server.
And S905, the other layers send third handshake messages to the middle layer, and the middle layer receives the third handshake messages from the other layers.
When data is actually transmitted, the other layers not only send the third handshake message to the intermediate layer, but also send other TCP messages to the intermediate layer, so that the intermediate layer can determine the third handshake message from the TCP messages of the TCP layer through the following third determination process. Wherein, the third judging process may include: the intermediate layer judges whether the TCP messages from other layers are SYN messages, and when the TCP messages from other layers are SYN messages, the SYN messages are determined to be third handshake messages.
Similar to the S901, when receiving a third handshake packet from another layer, the S905 may further include: and the middle layer generates a fourth handshake message according to the third handshake message. The fourth handshake message is different from the third handshake message in window size and window scaling factor, and the window size in the fourth handshake message is N 4 Window scaling factor of S 4 And N is 4 *2^S 4 Is greater than or equal to N 3 *2^S 3 The value of (c). In other words, the length of the receiving window of the server indicated by the fourth handshake message is greater than or equal to the length of the receiving window of the server indicated by the third handshake message.
For example, when receiving a third handshake message from another layer, the middle layer may modify the window size and the window scaling factor in the third handshake message to change the window size N 3 Modified to N 4 Window scaling factor S 3 Is modified to S 4 And determining the modified third handshake message as a fourth handshake message. Wherein N is 4 Greater than or equal to N 3 And/or, S 4 Greater than or equal to S 3
S906, the middle layer sends a fourth handshake message to the TCP layer, and the TCP layer receives the fourth handshake message from the middle layer.
S907, the TCP sends a fifth handshake message to the middle layer, and the middle layer receives the fifth handshake message from the TCP layer.
The fifth handshake message is used to indicate that the fourth handshake message from the server has been received, and the implementation of the fifth handshake message may refer to step 3 above, which is not described herein again.
And S908, the middle layer sends the fifth handshake message to other layers, and the middle layer sends the fifth handshake message to other layers.
And S909, the other layer sends the fifth handshake message to the server, and the server receives the fifth handshake message from the other layer.
The above-mentioned S907-S909 are similar to the steps 1-3, and after the S907-S909 are executed, the mobile phone and the server complete TCP three-way handshake, and both the mobile phone and the server are in an establishment (ESTABLISHED) state, so that data interaction can be performed.
Optionally, continuing to use the mobile phone as the sending end and the server as the receiving end as an example, in the data transmission process between the mobile phone and the server, the communication method shown in fig. 9 further includes the following steps:
s910, the TCP layer sends a third data message to the middle layer, and the middle layer receives the third data message from the TCP layer.
Wherein the third data packet includes a window size, the window size being N 5 . In conjunction with the above description of the window size and the window scaling factor, the length of the receiving window of the mobile phone is N 5 *2^S 5 . Wherein S is 5 May be the window scaling factor determined during the connection set-up. In addition, for the mobile phone, the third data packet is equivalent to carry a downlink window.
When data is actually transmitted, the TCP layer not only sends the third data packet to the intermediate layer, but also sends other TCP packets to the intermediate layer, so the intermediate layer can determine the third data packet in the TCP packets from the TCP layer through the following fourth determination process. Wherein, the fourth judging process may include: the intermediate layer judges whether the TCP message from the TCP layer is a data message, and when the TCP message from the TCP layer is the data message, the intermediate layer determines that the data message is a third data message.
In this embodiment of the application, when receiving the third data packet from the TCP layer, the step S910 may further include: and the middle layer generates a fourth data message according to the third data message. The fourth data packet differs from the third data packet in that the window size is different, and the window size in the fourth data packet is N 6 And N is 6 Is greater than or equal to N 5 The value of (c). In other words, the length of the receiving window of the mobile phone indicated by the fourth data message is greater than or equal to the length of the receiving window of the mobile phone indicated by the third data message.
Exemplary embodiments of the inventionWhen receiving the third data packet from the TCP layer, the intermediate layer may modify the window size in the third data packet to change the window size N 5 Modified to be N 6 (N 6 ≥N 5 ) And determining the modified third data message as a fourth data message.
And S911, the middle layer sends fourth data messages to other layers, and the other layers receive the fourth data messages from the middle layer.
S912, the other layers send fourth data messages to the server, and the server receives the fourth data messages from the other layers.
In this embodiment, when receiving the fourth data packet from another layer, the server may generate a second acknowledgement packet. Wherein the second acknowledgement message includes a window size, the window size being N 7 . As can be seen from the above description of window size and window scaling factor, the receiving window of the server has a length N 7 *2^S 5 . In addition, for the mobile phone, the second acknowledgment packet is equivalent to carry an uplink window.
S913, the server sends the second confirmation message to the other layer, and the other layer receives the second confirmation message from the server.
S914, the other layer sends a second confirmation message to the middle layer, and the middle layer receives the second confirmation message from the other layer.
When data is actually transmitted, the other layers not only send the second acknowledgement message to the intermediate layer, but also send other TCP messages to the intermediate layer, and therefore, the intermediate layer can determine the second acknowledgement message from the TCP messages of the TCP layer through the following fourth determination process. Wherein, the fourth judging process may include: the intermediate layer judges whether the TCP message from other layers is an acknowledgement message, and when the TCP message from other layers is the acknowledgement message, the acknowledgement message is determined to be a second acknowledgement message.
When receiving the second acknowledgement message from other layers, S914 may further include: and the middle layer generates a third confirmation message according to the second confirmation message. Wherein the third acknowledgement message is different from the second acknowledgement message in window size, and the third acknowledgement message is different from the second acknowledgement message in window sizeRecognizing a window size in a message as N 8 And N is 8 Greater than or equal to N 7 . In other words, the length of the receive window of the server indicated by the third acknowledgement message is greater than or equal to the length of the receive window of the server indicated by the second acknowledgement message.
For example, when receiving a second acknowledgement message from another layer, the middle layer may modify the window size in the second acknowledgement message to obtain the window size N 7 Modified to be N 8 (N 8 ≥N 7 ) And determining the modified second confirmation message as a third confirmation message.
S915, the intermediate layer sends a third confirmation message to the TCP layer, and the TCP layer receives the third confirmation message from the intermediate layer.
In S901-S915 shown in fig. 9, for data interaction between the TCP layer and the middle layer, for example, data interaction between the TCP layer and the middle layer, such as interaction between the TCP layer and the middle layer, of the first handshake message, the fourth handshake message, the fifth handshake message, the third data message, and the third acknowledgment message, reference may be made to S801 described above. For data interaction between the middle layer and other layers, for example, interaction between the middle layer and other layers for the second handshake message, the third handshake message, the fifth handshake message, the fourth handshake message, and the second confirmation message may refer to S802 and S807 described above. For data exchange between other layers and the server, for example, interaction between the other layers and the server for the second handshake message, the third handshake message, the fifth handshake message, the fourth handshake message, and the second confirmation message may refer to S803 and S803 described above. Therefore, the data interaction process of S901-S915 is not described herein.
The above-mentioned S901-S909 and S910-S915 may be implemented in combination, or may be implemented separately, which is not limited in this embodiment of the present application.
Based on the foregoing S901-S903 and S910-S912, the intermediate layer may intercept the SYN message or the data message sent by the mobile phone to the server, amplify the window size in the SYN message or the data message, and/or the window scaling factor, and send the amplified window size and/or the window scaling factor to the server. Therefore, the server can think that the receiving cache of the mobile phone is sufficient, so that the server can send data to the mobile phone at a higher speed, and the transmission speed of the TCP is improved.
Similarly, based on the above S904-S906 and S913-S915, the middle layer may intercept the SYN message or the data message sent by the server to the mobile phone, and amplify the window size in the SYN message or the data message, and/or the window scaling factor, and send the amplified window size to the mobile phone, and/or the window scaling factor. Therefore, the TCP layer of the mobile phone can think that the receiving cache of the server is sufficient, so that the mobile phone can send data to the server at a higher speed, and the TCP transmission speed is improved.
In addition, for the sake of unified description, the length of the receiving window of the mobile phone indicated by the first handshake message and the third handshake message may be referred to as the length of the receiving window of the mobile phone before modification, and the length of the receiving window of the server indicated by the third handshake message and the second acknowledgement message may be referred to as the length of the receiving window of the server before modification.
Optionally, when the mobile phone and the server perform data interaction, and receive data packets from the server through other layers in a downlink direction (that is, the mobile phone receives data packets from the server), the intermediate layer may temporarily store the data packets in the buffer, and the intermediate layer may further send the data packets from the server to the TCP layer according to the length of the receiving window of the mobile phone before the modification. In this way, errors caused by overload of the receiving window of the TCP layer due to excessive data can be avoided.
For example, in the downlink direction, it is assumed that the server reduces the length of the transmission window to 100 bytes and the length of the reception window of the TCP layer of the handset is 500 bytes due to burst channel congestion or packet loss. In this case, in order to increase the transmission rate of the server, the intermediate layer may transmit the length of the enlarged receiving window (e.g., 1200 bytes) of the TCP layer to the server by performing the above-described S901-S903 or S910-S912, so that the server increases the length of the transmitting window, e.g., the length of the transmitting window of the server is increased to 1000 bytes. The server then sends the message with a window length of 1000 bytes. The middle layer receives the message from the server with the window length of 1000 bytes, and sends the message from the server to the TCP layer with the length (500 bytes) of the receiving window of the mobile phone TCP layer before modification. Therefore, the data sending rate of the server can be improved, and errors caused by overload of a receiving window of a TCP layer due to excessive data can be avoided.
Correspondingly, in the uplink direction (that is, the mobile phone sends the data message to the server), when receiving the data message from the TCP layer, the intermediate layer may temporarily store the data message in the buffer, and the intermediate layer may also send the data message from the TCP layer to the server according to the length of the receiving window of the server before the modification. In this way, errors caused by overload of the receiving window of the server due to excessive data can be avoided.
For example, in the uplink direction, it is assumed that the TCP layer of the handset reduces the length of the transmission window to 100 bytes and the reception window of the server is 500 bytes due to sudden channel congestion or packet loss. In this case, in order to increase the transmission rate of the TCP layer, the intermediate layer may transmit the length of the enlarged receiving window of the server (e.g., 1200 bytes) to the TCP layer by performing the above-described S904-S906 or S913-S915, so that the TCP layer increases the length of the transmitting window, e.g., the length of the transmitting window of the TCP layer is increased to 1000 bytes. The TCP layer then sends the message with a window length of 1000 bytes. The middle layer receives the message from the TCP layer with a window length of 1000 bytes and sends the message from the TCP layer to the server with the length of the server receive window before modification (500 bytes). Therefore, the sending rate of the TCP layer can be improved, and errors caused by overload of a receiving window of the server due to excessive data can be avoided.
For the sake of unified description, the window size and the window scaling factor may be referred to as window indication information, the first handshake packet, the third data packet, and the second acknowledgement packet may be referred to as a second packet, and the second handshake packet, the fourth data packet, and the third acknowledgement packet may be referred to as a third packet. The receive window maintained by the client may be referred to as a downlink window, and the receive window maintained by the server may be referred to as an uplink window.
Different services have different requirements on data transmission rate and transmission delay, for example, game services have high requirements on data transmission rate and transmission delay, and voice services have relatively low requirements on data transmission rate and transmission delay. Optionally, the intermediate layer modifies the window indication information in the second message according to the service corresponding to the second message, so as to make the data transmission rate and the transmission delay of different services more reasonable. In other words, the window indication information in the second message is determined by the service corresponding to the second message.
Illustratively, please refer to fig. 10, which continues to use the first device as a mobile phone for example. The mobile phone comprises a user mode and a kernel mode, the middle layer runs in the kernel mode, and the service runs in the user mode. The service may include: game service, voice service, video service, and other services, and the services may be various Applications (APPs) installed in the mobile phone.
The user mode of the mobile phone can further comprise a processing application program, the service can send the ID and the quintuple information of the service to the processing application program, and the processing application program can receive the ID and the quintuple information from the service. Wherein, the quintuple information may include: source IP (internet protocol) address, source port, destination IP address, destination port, and transport layer protocol type.
When receiving the ID and the quintuple information from the service, the processing application may determine the length of the window corresponding to the service according to the ID and the quintuple information of the service. The length of the window corresponding to the service may include the length of the uplink window and/or the length of the downlink window.
Taking the game service as an example, the processing application program may include: a first correspondence of an ID of a game service to a requirement of quality of service (QoS), and a second correspondence of a requirement of QoS to a length of a window. When the ID and quintuple information from the game service are received, the processing application program may determine the QoS requirement of the game service according to the first correspondence and the ID of the game service, and then determine the length of the uplink window of the game service and/or the length of the downlink window according to the second correspondence and the QoS requirement of the game service.
Alternatively, the Qos may include throughput, and in the second corresponding relationship, the throughput is proportional to the length of the window. That is, the greater the throughput, the greater the length of the window.
When the length of the window corresponding to the service is determined, the processing application program can also send the length of the window corresponding to the service and quintuple information to the middle layer, and the middle layer receives and stores the length of the window corresponding to the service from the processing application program and the quintuple information in the cache. The length of the window corresponding to the service and the quintuple information may be carried in the window modification message.
When receiving the second message, the intermediate layer may determine quintuple information corresponding to the second message, then determine a length of a window corresponding to the second message according to the quintuple information corresponding to the second message, further modify window indication information in the second message according to the length of the window corresponding to the second message, and finally determine the modified second message as a third message.
For example, in conjunction with fig. 9 and table 2 below, table 2 shows the length of the window corresponding to part of the services stored in the middle layer and the quintuple information. For example, when the middle layer receives the first handshake message (carrying the downlink window), the middle layer analyzes quintuple information of the first handshake message, and assuming that the quintuple information of the first handshake message is quintuple 2, the middle layer may determine the length of the downlink window corresponding to the quintuple 2 as the length of the window corresponding to the first handshake message, and may further modify the window size in the first handshake message to N 12 Window scaling factor is modified to S 12 And finally, determining the modified first handshake message as a second handshake message. Or, for example, when the intermediate layer receives the third handshake message (carrying the uplink window), the intermediate layer first analyzes quintuple information of the third handshake message, and assuming that the quintuple information of the third handshake message is quintuple 3, the intermediate layer may determine the length of the uplink window corresponding to the quintuple 3 as the length of the window corresponding to the third handshake message, and further determine the length of the uplink window corresponding to the quintuple 3 as the length of the window corresponding to the third handshake messageThe window size in the third handshake message may be modified to N 13 Window scaling factor is modified to S 13 And finally, determining the modified third handshake message as a fourth handshake message.
TABLE 2
Figure BDA0002991067640000191
For another example, the above fig. 9 and table 2 are combined. For example, when the intermediate layer receives the third data packet (carrying the downlink window), the intermediate layer first analyzes quintuple information of the third data packet, and assuming that the quintuple information of the third data packet is quintuple 3, the intermediate layer may determine the length of the downlink window corresponding to the quintuple 3 as the length of the window corresponding to the third data packet, and may further modify the window size in the third data packet to N 14 And finally, determining the modified third data message as a fourth data message. Or, for example, by taking the case that the intermediate layer receives the second acknowledgement packet (carrying the uplink window), the intermediate layer analyzes the quintuple information of the second acknowledgement packet first, and assuming that the quintuple information of the second acknowledgement packet is quintuple 4, the intermediate layer may determine the length of the uplink window corresponding to the quintuple 4 as the length of the window corresponding to the second acknowledgement packet, and may further modify the window size in the second acknowledgement packet to N 15 And finally, determining the modified second confirmation message as a third confirmation message.
Based on fig. 10 and the corresponding description, the intermediate layer may modify the uplink window or the downlink window corresponding to the service according to the window indication information in the service modification message, for example, may increase the uplink window or the downlink window corresponding to the service with high throughput, and decrease the uplink window or the downlink window corresponding to the service with low throughput. Therefore, the data transmission rates and the transmission time delays of different services can be more reasonable.
The communication method provided by the embodiment of the present application is described in detail above with reference to fig. 8 to 10. A communication apparatus for executing the communication method according to the embodiment of the present application is described in detail below with reference to fig. 11 and 12.
Fig. 11 is a first schematic structural diagram of a communication device according to an embodiment of the present disclosure. As shown in fig. 11, the communication apparatus 1100 includes: a processing module 1101 and a transceiver module 1102. The processing module 1101 includes a TCP layer and an intermediate layer of the communication device 1100, the intermediate layer being a lower layer of the TCP layer. For convenience of explanation, fig. 11 shows only the main components of the communication apparatus.
In some embodiments, the communications apparatus 1100 may be adapted to the communications system described above with respect to fig. 4, and perform the functions of the first device in the communications system.
The intermediate layer of the communication apparatus 1100 is configured to receive, by using the transceiver module 1102, a first packet from the second device, where the first packet indicates the TCP layer to retransmit the first data. The middle layer of the communication apparatus 1100 is further configured to discard the first packet, and send the first data to the second device by using the transceiver module 1102.
In one possible embodiment, the intermediate layer of the communications apparatus 1100 is further configured to buffer messages from the TCP layer and/or the second device.
In one possible design, the intermediate layer of the communication apparatus 1100 is further configured to determine a plurality of acknowledgement messages with the same acknowledgement number in all the messages from the second device. The middle layer of the communication apparatus 1100 is further configured to determine that an nth acknowledgement message in the plurality of acknowledgement messages is a first message, where n may be an integer greater than or equal to 2.
Alternatively, n may be 2.
In one possible design, the first packet carries a select acknowledge SACK option, and the SACK option is used to instruct the TCP layer to retransmit the first data.
In a possible design, the middle layer of the communication device 1100 is further configured to send the first message to the TCP layer by using the transceiver module 1102 when the number of the first messages with different acknowledgment numbers received in the first time period exceeds a congestion threshold and/or the packet loss rate reaches a packet loss threshold. Wherein the first message is used for instructing the TCP layer to reduce the sending rate.
In one possible design, the middle layer of the communication device 1100 is further configured to receive the second message using the transceiver module 1102. The second packet may include first window indication information, where the first window indication information indicates a length of the first window. The middle layer of the communication apparatus 1100 is further configured to send a third packet by using the transceiver module 1102. The third packet may include second window indication information, where the second window indication information indicates a length of a second window, and the length of the second window is greater than or equal to the length of the first window.
Optionally, the first window indication information may include a first window scaling factor field and a first window size field, and the second window indication information may include a second window scaling factor field and a second window size field. The length of the second window is greater than or equal to the length of the first window, and may include one or more of: the value of the second window scale factor field is greater than or equal to the value of the first window scale factor field, or the value of the second window size field is greater than or equal to the value of the first window size field.
Optionally, the second window may be a receiving window of the second device. The middle layer of the communication apparatus 1100 is further configured to receive a second packet from the second device by using the transceiver module 1102. The middle layer of the communication apparatus 1100 is further configured to send a third packet to the TCP layer by using the transceiver module 1102, and the second window indication information is used to determine a sending window of the communication apparatus 1100.
Further, the middle layer of the communication apparatus 1100 is further configured to send, by using the transceiver module 1102, a data packet to the second device according to the length of the first window indicated by the first window indication information.
Alternatively, the second window may be a receiving window of the communication device 1100. The middle layer of the communication device 1100 is further configured to receive the second packet from the TCP layer by using the transceiver module 1102. The middle layer of the communication apparatus 1100 is further configured to send a third packet to the second device by using the transceiver module 1102, where the second window indication information is used to determine a sending window of the second device.
Further, the middle layer of the communication device 1100 is further configured to send the data packet to the TCP layer by using the transceiver module 1102 according to the indicated length of the first window.
Optionally, the second window indication information may be determined by a service corresponding to the second packet.
In one possible design, the middle layer of the communication apparatus 1100 is further configured to receive a fourth message from the second device by using the transceiver module 1102. Wherein, the fourth message is a confirmation message. The middle layer of the communication apparatus 1100 is further configured to determine whether a fifth message exists in all the acknowledgement messages received by the middle layer. And the confirmation number of the fifth message is the same as the confirmation number of the fourth message. The intermediate layer of the communication device 1100 is further configured to send a fourth packet to the TCP layer by using the transceiver module 1102 if the fifth packet does not exist in all the acknowledgement packets received by the intermediate layer.
In one possible embodiment, the intermediate layer is located between the TCP layer and the IP layer.
Optionally, the transceiver module 1102 may include a receiving module and a transmitting module (not shown in fig. 11). The transmitting module is used for implementing a transmitting function of the communication apparatus 1100, and the receiving module is used for implementing a receiving function of the communication apparatus 1100.
Optionally, the communication device 1100 may also include a memory module (not shown in fig. 11) that stores programs or instructions. The program or instructions, when executed by the processing module 1101, enable the communications apparatus 1100 to perform the functions of the first device.
It is to be understood that the processing module 1101 involved in the communication device 1100 may be implemented by a processor or processor-related circuit component, which may be a processor or a processing unit; the transceiver module 1102 may be implemented by a transceiver or transceiver-related circuit component, and may be a transceiver or transceiver unit. The processing module 1101 may be referred to as a processing unit 1101, and the transceiver module 1102 may be referred to as a transceiver unit 1102.
The communication apparatus 1100 may be a first device, a chip (system) or other component or assembly provided in the first device, or an apparatus including the first device, which is not limited in the present application.
In addition, for technical effects of the communication apparatus 1100, reference may be made to the technical effects of the communication methods described in the foregoing method embodiments, and details are not repeated here.
Fig. 12 is a schematic structural diagram of a communication device according to an embodiment of the present application. The communication device may be the first device, or may be a chip (system) or other component or assembly provided in the first device. As shown in fig. 12, the communication device 1200 may include a processor 1201. Optionally, the communication device 1200 may also include a memory 1202 and/or a transceiver 1203. The processor 1201 is coupled to the memory 1202 and the transceiver 1203, such as by a communication bus.
The following describes each component of the communication apparatus 1200 in detail with reference to fig. 12:
the processor 1201 is a control center of the communication apparatus 1200, and may be a single processor or a collective term for multiple processing elements. For example, the processor 1201 is one or more Central Processing Units (CPUs), or may be an Application Specific Integrated Circuit (ASIC), or one or more integrated circuits configured to implement the embodiments of the present application, such as: one or more microprocessors (digital signal processors, DSPs), or one or more Field Programmable Gate Arrays (FPGAs).
Alternatively, the processor 1201 may perform various functions of the communication device 1200 by running or executing software programs stored in the memory 1202 and calling data stored in the memory 1202.
In particular implementations, processor 1201 may include one or more CPUs such as CPU0 and CPU1 shown in fig. 12 for one embodiment.
In a specific implementation, the communication device 1200 may also include a plurality of processors, such as the processor 1201 and the processor 1204 shown in fig. 12, as an example. Each of these processors may be a single-core processor (single-CPU) or a multi-core processor (multi-CPU). A processor herein may refer to one or more devices, circuits, and/or processing cores that process data (e.g., computer program instructions).
The memory 1202 is configured to store a software program for executing the scheme of the present application, and the processor 1201 controls the execution of the software program, and specific implementation manners may refer to the above method embodiments, which are not described herein again.
Alternatively, memory 1202 may be a read-only memory (ROM) or other type of static storage device that can store static information and instructions, a Random Access Memory (RAM) or other type of dynamic storage device that can store information and instructions, an electrically erasable programmable read-only memory (EEPROM), a compact disc read-only memory (CD-ROM) or other optical disc storage, optical disc storage (including compact disc, laser disc, optical disc, digital versatile disc, Blu-ray disc, etc.), but is not limited to, magnetic disk storage media or other magnetic storage devices, or any other medium that can be used to carry or store desired program code in the form of instructions or data structures and that can be accessed by a computer. The memory 1202 may be integrated with the processor 1201, or may be independent and coupled to the processor 1201 through an interface circuit (not shown in fig. 12) of the communication apparatus 1200, which is not specifically limited in this embodiment.
A transceiver 1203 for communication with other communication devices. For example, the communication device 1200 is a client and the transceiver 1203 may be used to communicate with a server.
Optionally, the transceiver 1203 may include a receiver and a transmitter (not separately shown in fig. 12). Wherein the receiver is configured to implement a receive function and the transmitter is configured to implement a transmit function.
Optionally, the transceiver 1203 may be integrated with the processor 1201, or may exist independently, and is coupled to the processor 1201 through an interface circuit (not shown in fig. 12) of the communication apparatus 1200, which is not specifically limited in this embodiment of the present application.
It should be noted that the structure of the communication apparatus 1200 shown in fig. 12 does not constitute a limitation of the communication apparatus, and an actual communication apparatus may include more or less components than those shown, or combine some components, or arrange different components.
In addition, for technical effects of the communication apparatus 1200, reference may be made to the technical effects of the communication method described in the foregoing method embodiment, and details are not repeated here.
The embodiment also provides a communication system. The communication system includes one or more first devices and one or more second devices. The first device comprises a TCP layer and an intermediate layer, wherein the intermediate layer is a lower layer of the TCP layer.
In the description of the present application, "at least one" means one or more, "a plurality" means two or more than two, unless otherwise specified. In addition, in order to facilitate clear description of technical solutions of the embodiments of the present application, in the embodiments of the present application, terms such as "first" and "second" are used to distinguish the same items or similar items having substantially the same functions and actions. Those skilled in the art will appreciate that the terms "first," "second," etc. do not denote any order or quantity, nor do the terms "first," "second," etc. denote any order or importance.
In addition, in the embodiments of the present application, words such as "exemplarily", "for example", etc. are used for indicating as examples, illustrations or explanations. Any embodiment or design described herein as "exemplary" is not necessarily to be construed as preferred or advantageous over other embodiments or designs. Rather, the word using examples is intended to present concepts in a concrete fashion.
In the examples of the present application, the subscripts are sometimes as W 1 It may be mistaken for a non-subscripted form such as W1, whose intended meaning is consistent when the distinction is de-emphasized.
It should be understood that the processor in the embodiments of the present application may be a Central Processing Unit (CPU), and the processor may also be other general purpose processors, Digital Signal Processors (DSPs), Application Specific Integrated Circuits (ASICs), Field Programmable Gate Arrays (FPGAs) or other programmable logic devices, discrete gate or transistor logic devices, discrete hardware components, etc. A general purpose processor may be a microprocessor or the processor may be any conventional processor or the like.
It will also be appreciated that the memory in the embodiments of the subject application can be either volatile memory or nonvolatile memory, or can include both volatile and nonvolatile memory. The non-volatile memory may be a read-only memory (ROM), a Programmable ROM (PROM), an Erasable PROM (EPROM), an electrically Erasable EPROM (EEPROM), or a flash memory. Volatile memory can be Random Access Memory (RAM), which acts as external cache memory. By way of example, and not limitation, many forms of Random Access Memory (RAM) are available, such as Static RAM (SRAM), Dynamic RAM (DRAM), Synchronous DRAM (SDRAM), double data rate SDRAM (DDR SDRAM), Enhanced SDRAM (ESDRAM), Synchronous Link DRAM (SLDRAM), and direct bus RAM (DR RAM).
The above embodiments may be implemented in whole or in part by software, hardware (e.g., circuitry), firmware, or any combination thereof. When implemented in software, the above-described embodiments may be implemented in whole or in part in the form of a computer program product. The computer program product includes one or more computer instructions or computer programs. The procedures or functions according to the embodiments of the present application are wholly or partially generated when the computer instructions or the computer program are loaded or executed on a computer. The computer may be a general purpose computer, a special purpose computer, a network of computers, or other programmable device. The computer instructions may be stored on a computer readable storage medium or transmitted from one computer readable storage medium to another computer readable storage medium, for example, the computer instructions may be transmitted from one website, computer, server, or data center to another website, computer, server, or data center by wire (e.g., infrared, wireless, microwave, etc.). The computer-readable storage medium can be any available medium that can be accessed by a computer or a data storage device, such as a server, data center, etc., that contains one or more collections of available media. The usable medium may be a magnetic medium (e.g., floppy disk, hard disk, magnetic tape), an optical medium (e.g., DVD), or a semiconductor medium. The semiconductor medium may be a solid state disk.
It should be understood that the term "and/or" herein is merely one type of association relationship that describes an associated object, meaning that three relationships may exist, e.g., a and/or B may mean: a exists singly, A and B exist simultaneously, and B exists singly, wherein A and B can be singular or plural. In addition, the "/" in this document generally indicates that the former and latter associated objects are in an "or" relationship, but may also indicate an "and/or" relationship, and may be understood with particular reference to the former and latter contexts.
In the present application, "at least one" means one or more, "a plurality" means two or more. "at least one of the following" or similar expressions refer to any combination of these items, including any combination of the singular or plural items. For example, at least one (one) of a, b, or c, may represent: a, b, c, a-b, a-c, b-c, or a-b-c, wherein a, b, c may be single or multiple.
It should be understood that, in the various embodiments of the present application, the sequence numbers of the above-mentioned processes do not mean the execution sequence, and the execution sequence of each process should be determined by its function and inherent logic, and should not constitute any limitation to the implementation process of the embodiments of the present application.
Those of ordinary skill in the art will appreciate that the various illustrative elements and algorithm steps described in connection with the embodiments disclosed herein may be implemented as electronic hardware or combinations of computer software and electronic hardware. Whether such functionality is implemented as hardware or software depends upon the particular application and design constraints imposed on the technical solution. Skilled artisans may implement the described functionality in varying ways for each particular application, but such implementation decisions should not be interpreted as causing a departure from the scope of the present application.
It is clear to those skilled in the art that, for convenience and brevity of description, the specific working processes of the above-described systems, apparatuses and units may refer to the corresponding processes in the foregoing method embodiments, and are not described herein again.
In the several embodiments provided in the present application, it should be understood that the disclosed system, apparatus and method may be implemented in other ways. For example, the above-described apparatus embodiments are merely illustrative, and for example, the division of the units is only one logical division, and other divisions may be realized in practice, for example, a plurality of units or components may be combined or integrated into another system, or some features may be omitted, or not executed. In addition, the shown or discussed mutual coupling or direct coupling or communication connection may be an indirect coupling or communication connection through some interfaces, devices or units, and may be in an electrical, mechanical or other form.
The units described as separate parts may or may not be physically separate, and parts displayed as units may or may not be physical units, may be located in one place, or may be distributed on a plurality of network units. Some or all of the units can be selected according to actual needs to achieve the purpose of the solution of the embodiment.
In addition, functional units in the embodiments of the present application may be integrated into one processing unit, or each unit may exist alone physically, or two or more units are integrated into one unit.
The functions, if implemented in the form of software functional units and sold or used as a stand-alone product, may be stored in a computer readable storage medium. Based on such understanding, the technical solution of the present application or portions thereof that substantially contribute to the prior art may be embodied in the form of a software product stored in a storage medium and including instructions for causing a computer device (which may be a personal computer, a server, or a network device) to execute all or part of the steps of the method according to the embodiments of the present application. And the aforementioned storage medium includes: a U-disk, a portable hard disk, a read-only memory (ROM), a Random Access Memory (RAM), a magnetic disk, an optical disk, or other various media capable of storing program codes.
The above description is only for the specific embodiments of the present application, but the scope of the present application is not limited thereto, and any person skilled in the art can easily think of the changes or substitutions within the technical scope of the present application, and shall be covered by the scope of the present application. Therefore, the protection scope of the present application shall be subject to the protection scope of the claims.

Claims (31)

1. A communication method is applied to a first device, the first device comprises a Transmission Control Protocol (TCP) layer and an intermediate layer, the intermediate layer is a lower layer of the TCP layer, and the method comprises the following steps:
the middle layer receives a first message from second equipment; the first message instructs the TCP layer to retransmit first data;
and the intermediate layer sends the first data to the second equipment and discards the first message.
2. The method of claim 1, wherein before the middle layer receives the first packet from the second device, the method further comprises:
the intermediate layer buffers messages from the TCP layer, and/or the second device.
3. The method according to claim 1 or 2, wherein the middle layer receives a first message from a second device, comprising:
the intermediate layer determines a plurality of confirmation messages with the same confirmation numbers in all the messages from the second equipment;
and the intermediate layer determines that the nth acknowledgement message in the plurality of acknowledgement messages is the first message, wherein n is an integer greater than or equal to 2.
4. The method according to any one of claims 1-3, further comprising:
the intermediate layer receives a second message, wherein the second message comprises first window indication information, and the first window indication information indicates the length of a first window;
and the middle layer sends a third message, wherein the third message comprises second window indication information, the second window indication information indicates the length of a second window, and the length of the second window is greater than or equal to that of the first window.
5. The method of claim 4, wherein the first window indication information comprises a first window scaling factor field and a first window size field; the second window indication information comprises a second window scaling factor field and a second window size field;
the length of the second window is greater than or equal to the length of the first window, including one or more of:
the value of the second window scaling factor field is greater than or equal to the value of the first window scaling factor field;
the value of the second window size field is greater than or equal to the value of the first window size field.
6. The method of claim 4 or 5, wherein the second window is a receive window of the second device;
the intermediate layer receives a second message, including:
the middle layer receives the second message from the second device;
the intermediate layer sends a third message, including:
and the intermediate layer sends the third message to the TCP layer, and the second window indication information is used for determining a sending window of the first equipment.
7. The method of claim 6, further comprising:
and the intermediate layer sends a data message to the second device according to the length of the first window indicated by the first window indication information.
8. The method of claim 4 or 5, wherein the second window is a receive window of the first device;
the middle layer receives a second message, which comprises:
the intermediate layer receives the second message from the TCP layer;
the intermediate layer sends a third message, including:
and the intermediate layer sends the third message to the second device, and the second window indication information is used for determining a sending window of the second device.
9. The method of claim 8, further comprising:
and the intermediate layer sends a data message to the TCP layer according to the length of the first window indicated by the first window indication information.
10. The method according to any of claims 4-9, wherein the second window indication information is determined by a service corresponding to the second packet.
11. The method according to any one of claims 1-10, further comprising:
the middle layer receives a fourth message from the second equipment; the fourth message is a confirmation message;
the intermediate layer judges whether fifth messages exist in all the confirmation messages received by the intermediate layer; the acknowledgement number of the fifth message is the same as the acknowledgement number of the fourth message;
and if the fifth message does not exist in all the acknowledgement messages received by the intermediate layer, the intermediate layer sends the fourth message to the TCP layer.
12. The method according to any of claims 1-11, wherein said intermediate layer is located between said TCP layer and an internet protocol, IP, layer.
13. The method according to any one of claims 1-12, further comprising:
in a first time period, when the quantity of the received first messages with different acknowledgement numbers exceeds a congestion threshold value and/or the packet loss rate reaches a packet loss threshold value, the intermediate layer sends a first message to the TCP layer; the first message is used to instruct the TCP layer to reduce a transmission rate.
14. The method of any of claims 1-13, wherein the first packet carries a Selective Acknowledgement (SACK) option, wherein the SACK option is used to indicate retransmission of the first data.
15. A communication device, characterized by a processing module and a transceiver module; the processing module comprises a Transmission Control Protocol (TCP) layer and an intermediate layer of the communication device, wherein the intermediate layer is a lower layer of the TCP layer; wherein, the first and the second end of the pipe are connected with each other,
the middle layer of the communication device is used for receiving a first message from second equipment by using the transceiving module; the first message instructs the TCP layer to retransmit first data;
the intermediate layer of the communication device is further configured to discard the first packet and send the first data to the second device by using the transceiver module.
16. The apparatus according to claim 15, wherein the intermediate layer of the communication apparatus is further configured to buffer the packet from the TCP layer and/or the second device.
17. The apparatus according to claim 15 or 16, wherein the middle layer of the communication apparatus is further configured to determine a plurality of acknowledgement messages with the same acknowledgement number in all the messages from the second device;
the intermediate layer of the communication device is further configured to determine that an nth acknowledgement packet in the multiple acknowledgement packets is the first packet, where n is an integer greater than or equal to 2.
18. The apparatus according to any of claims 15-17, wherein the intermediate layer of the communication apparatus is further configured to receive a second packet by using the transceiving module, the second packet comprising a first window indication information, the first window indication information indicating a length of a first window;
the middle layer of the communication device is further configured to send a third packet by using the transceiver module, where the third packet includes second window indication information, the second window indication information indicates a length of a second window, and the length of the second window is greater than or equal to the length of the first window.
19. The apparatus of claim 18, wherein the first window indication information comprises a first window scaling factor and a first window size; the second window indication information comprises a second window scaling factor and a second window size;
the length of the second window is greater than or equal to the length of the first window, including one or more of:
the second window scaling factor is greater than or equal to the first window scaling factor;
the second window size is greater than or equal to the first window size.
20. The apparatus of claim 18 or 19, wherein the second window is a receive window of the second device;
the intermediate layer of the communication device is further configured to receive the second packet from the second device by using the transceiver module;
the intermediate layer of the communication device is further configured to send the third packet to the TCP layer by using the transceiver module, and the second window indication information is used to determine a sending window of the communication device.
21. The apparatus according to claim 20, wherein the middle layer of the communication apparatus is further configured to send a data packet to the second device according to the length of the first window indicated by the first window indication information.
22. The apparatus of claim 18 or 19, wherein the second window is a receive window of the communication apparatus;
the intermediate layer of the communication device is further configured to receive the second packet from the TCP layer by using the transceiver module;
the middle layer of the communication apparatus is further configured to send the third packet to the second device by using the transceiver module, and the second window indication information is used to determine a sending window of the second device.
23. The apparatus according to claim 22, wherein the intermediate layer of the communication apparatus is further configured to send a datagram to the TCP layer according to the length of the first window indicated by the first window indication information.
24. The apparatus according to any of claims 18-23, wherein the second window indication information is determined by a service corresponding to the second packet.
25. The apparatus according to any of claims 15-24, wherein the middle layer of the communication apparatus is further configured to receive a fourth packet from the second device by using the transceiver module; the fourth message is a confirmation message;
the intermediate layer of the communication device is further configured to determine whether a fifth message exists in all the acknowledgement messages received by the intermediate layer; the acknowledgement number of the fifth message is the same as the acknowledgement number of the fourth message;
the intermediate layer of the communication device is further configured to send the fourth packet to the TCP layer by using the transceiver module if the fifth packet does not exist in all the acknowledgement packets received by the intermediate layer.
26. The apparatus according to any of claims 15-25, wherein said intermediate layer is located between said TCP layer and an internet protocol, IP, layer.
27. The apparatus according to any of claims 15-26, wherein the intermediate layer of the communication apparatus is further configured to send a first message to the TCP layer by using the transceiver module when the number of first messages with different acknowledgement numbers received in a first time period exceeds a congestion threshold and/or a packet loss rate reaches a packet loss threshold; the first message is used for instructing the TCP layer to reduce the sending rate.
28. The apparatus of any of claims 15-27, wherein the first packet carries a Selective Acknowledgement (SACK) option, and wherein the SACK option is used to indicate retransmission of the first data.
29. A communications apparatus, comprising: a processor coupled with a memory;
the processor configured to execute the computer program stored in the memory to cause the communication apparatus to perform the communication method according to any one of claims 1 to 14.
30. A computer-readable storage medium, characterized in that it comprises a computer program or instructions which, when run on a computer, cause the computer to carry out the communication method according to any one of claims 1-14.
31. A computer program product, the computer program product comprising: computer program or instructions which, when run on a computer, cause the computer to perform the communication method of any one of claims 1-14.
CN202110315648.8A 2021-03-24 2021-03-24 Communication method and device Pending CN115134049A (en)

Priority Applications (1)

Application Number Priority Date Filing Date Title
CN202110315648.8A CN115134049A (en) 2021-03-24 2021-03-24 Communication method and device

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN202110315648.8A CN115134049A (en) 2021-03-24 2021-03-24 Communication method and device

Publications (1)

Publication Number Publication Date
CN115134049A true CN115134049A (en) 2022-09-30

Family

ID=83373922

Family Applications (1)

Application Number Title Priority Date Filing Date
CN202110315648.8A Pending CN115134049A (en) 2021-03-24 2021-03-24 Communication method and device

Country Status (1)

Country Link
CN (1) CN115134049A (en)

Similar Documents

Publication Publication Date Title
WO2021018187A1 (en) Screen projection method and device
US20230069398A1 (en) Method for Implementing Wi-Fi Peer-To-Peer Service and Related Device
US20220321455A1 (en) Multipath transmission method and device
CN115334138B (en) QUIC data transmission method and device, client and server
WO2023011380A1 (en) Multi-frame fusion transmission method in beidou communication system, and related apparatus
WO2023011362A1 (en) Control method and system for outbound transport in beidou communication system, and related apparatus
CN114979839A (en) Transmission control protocol proxy method and communication device
WO2021012131A1 (en) Resource allocation method and apparatus, message frame processing method and apparatus, and storage medium
EP4355024A1 (en) Inbound transmission control method and system in beidou communication system, and related apparatus
US20220263607A1 (en) Method and device for data storage
WO2022228015A1 (en) Data transmission method, and device
CN115134049A (en) Communication method and device
US20230371027A1 (en) Pucch resource determination method and apparatus
EP4354917A1 (en) Data processing method and electronic device
WO2021244160A1 (en) Communication method and apparatus
WO2024027674A1 (en) Communication method and device, and storage medium
CN115695583B (en) Data transmission method and electronic equipment
WO2022188813A1 (en) Bluetooth communication method and system, and electronic device
WO2023065782A1 (en) Data transmission method and electronic device
CN115694596B (en) Inbound transmission control method, system and related device in Beidou communication system
WO2023011329A1 (en) Data transmission control method and system in beidou communication system, and related apparatus
US20230116736A1 (en) Electronic device for providing audio service and operating method thereof
WO2024088173A1 (en) Multicast communication method and related apparatus
WO2023011377A1 (en) Method, system and apparatus for application layer receipt transmission in beidou communication system
WO2022156497A1 (en) Uplink control channel sending method and apparatus, and terminal device

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