Patent Description:
With development of computer technologies and network technologies, more and more intelligent terminals use a wireless technology to access a network. A manner in which the intelligent terminal uses the wireless technology to access the network is as follows: A wireless connection is established between the intelligent terminal and an access control point device (such as a router). Because the access control point device has accessed the network, after the wireless connection is established between the intelligent device and the access control point device, the intelligent device accesses the network, to transmit data to a server on a network side.

After the intelligent terminal accesses the network by using the wireless technology, when a data packet is transmitted between the server (hereinafter referred to as a transmit end) and the intelligent terminal (hereinafter referred to as a receive end), a transmission control protocol (Transmission Control Protocol, TCP) is generally used to transmit data between the transmit end and the receive end, to ensure that the receive end can reliably receive a data packet sent by the transmit end. The TCP is a reliable, connection-oriented, and byte-stream transport layer communications protocol. Before transmitting data by using the TCP, the transmit end and the receive end need to establish a TCP connection by using a three-way handshake. In addition, when data is transmitted by using the TCP, after receiving a data packet, the receive end feeds back an acknowledgement (Acknowledgement, ACK) packet to the transmit end. If the transmit end determines that the receive end does not feed back an ACK packet corresponding to a data packet, the transmit end retransmits the data packet. In this way, the receive end can reliably receive the data packet.

The transmit end only transmits the data packet to the receive end, and receives the ACK packet fed back from the receive end. The transmit end does not know a link state between the receive end and the access control point device. In this way, when the transmit end transmits a data packet to the receive end, the data packet cannot be transmitted based on the link state between the receive end and the access control point device, thereby causing relatively low data packet transmission efficiency.

Publication by <NPL>, relates to TCP/IP control scheme for next-generation mobile IP communication networks.

<CIT> relates to transmission control method, transmission control system, communication device and recording medium of transmission control program.

<CIT> relates to fast signaling procedure for streaming services quality of service management in wireless networks.

To resolve the problem in the prior art, implementations of the present disclosure provide a terminal device and a method performed by the terminal device.

To facilitate understanding of the implementations of the present disclosure, the following first describes a system architecture and concepts of terms used in the implementations of the present disclosure.

The implementations of the present disclosure are applicable to a data transmission system. As shown in <FIG>, the data transmission system includes a terminal, an access control point device, and a server. The terminal may be a device such as a mobile phone or a computer that can access a wireless network. The access control point device may be a wireless router or the like. The server may be any server that transmits a data packet with the terminal. A wireless link is established between the terminal and the access control point device, and a wired link is established between the access control point device and the server. When a data packet is transmitted between the terminal and the server, a TCP connection may be established by using a TCP three-way handshake. The TCP connection may be established between the terminal and one or more servers.

An implementation of the present disclosure provides a data transmission method. The method may be performed by a terminal and a server.

As shown in <FIG>, the terminal may include a receiver <NUM>, a processor <NUM>, and a transmitter <NUM>, where the receiver <NUM> may be configured to receive a data packet sent by a server, the transmitter <NUM> may be configured to send data and a message, and the processor <NUM> performs various functional applications and data processing by running a software program and a module.

The processor <NUM> is a control center of the terminal, is connected to all parts of the entire terminal by using various interfaces and lines, and performs various functional applications and data processing by running a software program and a module, so as to perform overall monitoring on the terminal. Optionally, the processor <NUM> may include one or more processing units, and the processing unit may be a central processing unit (central processing unit, CPU), a network processor (network processor, NP), or the like.

As shown in <FIG>, the server may include a receiver <NUM>, a processor <NUM>, and a transmitter <NUM>, where the receiver <NUM> may be configured to receive data and a message, the transmitter <NUM> may be configured to send data and a message, and the processor <NUM> performs various functional applications and data processing by running a software program and a module.

The processor <NUM> is a control center of the server, is connected to all parts of the entire server by using various interfaces and lines, and performs various functional applications and data processing by running a software program and a module, so as to perform overall monitoring on the server. Optionally, the processor <NUM> may include one or more processing units, and the processing unit may be a central processing unit, a network processor, or the like.

As shown in <FIG>, an implementation of the present disclosure provides a data transmission method. A processing procedure of the method may include the following steps.

Step <NUM>: A terminal determines link state information of a wireless link by using a link layer, and sends the link state information from the link layer to a transport layer.

In implementation, a user may enable a wireless fidelity (Wireless Fidelity, WIFI) function of the terminal. The terminal detects an access control point device in an environment, and then the user establishes a wireless link with the access control point device by entering a password for accessing the access control point device. Before transmitting a data packet to the server, the terminal may establish a TCP connection to the server by using a TCP three-way handshake. In a process of transmitting the data packet, the terminal may determine the link state information of the wireless link by using the link layer, and then send the link state information to the transport layer. A schematic diagram of transmission of the link state information at the terminal is shown in <FIG>. The terminal includes a physical layer, a link layer, a network layer, and a transport layer. The terminal transmits the link state information from the network layer to the transport layer through the link layer.

It should be noted that the data packet in this implementation of the present disclosure may be any data packet such as video data, audio data, or text data. This is not limited in this implementation of the present disclosure.

Step <NUM>: The terminal sends, to the server by using the transport layer, a link notification corresponding to the link state information.

In implementation, after receiving, at the transport layer, the link state information sent from the link layer, the terminal may determine the link notification corresponding to the link state information, and then send the link notification to the server by using the transport layer.

Step <NUM>: The server receives, by using the transport layer, the link notification that is corresponding to the link state information and that is sent by the terminal.

Step <NUM>: The server performs data transmission management on a TCP connection based on the link notification.

In implementation, after receiving, by using the transport layer, the link notification that is corresponding to the link state information and that is sent by the terminal, the server may perform, based on the link notification, data transmission management on the TCP connection established between the server and the terminal, for example, adjust a data transmission speed, and retransmit a to-be-retransmitted data packet.

As shown in <FIG>, another implementation of the present disclosure provides a process in which a terminal sends, to a server, a link notification used to notify that a wireless link is reconnected. Corresponding steps are as follows.

Step <NUM>: When detecting, by using a link layer, that the wireless link is reconnected after being disconnected, the terminal sends, to a transport layer, link state information used to indicate that the wireless link is reconnected.

According to the invention, a wireless link is established between the terminal and the access control point device (for a detailed process of establishing the wireless link, refer to step <NUM>). As shown in <FIG>, the access control point device sends a detection packet to the terminal at an interval of a preset period by using a link layer of the access control point device. The terminal receives the detection packet by using the link layer, and then determines, based on a status of receiving the detection packet, whether the wireless link is connected. If duration between a current time point and a time point at which the terminal receives, for the last time, the detection packet sent by the access control point device exceeds a specific value, or the terminal does not receive the detection packet sent by the access control point device in N (N is a preset positive integer) consecutive preset periods, the terminal determines that the wireless link is disconnected. When determining, by using the link layer, that the detection packet is received again, the terminal determines that the wireless link is reconnected after being disconnected, and the terminal sends, to the transport layer, the link state information used to indicate that the wireless link is reconnected.

According to the invention, the detection packet is a beacon (Beacon) frame.

It should be noted that the preset period, for example, <NUM>, may be preset by a person skilled in the art, and stored in the terminal.

According to the invention, the link state information includes a signal level, link quality, and a link bit rate.

In implementation, the access control point device may send the detection packet to the terminal at an interval of the preset period. The terminal may determine, by using the link layer, the link state information based on signal strength of receiving the detection packet. For example, the terminal may prestore a correspondence between a range of signal strength of receiving the detection packet and each of a signal level, link quality, and a link bit rate. The terminal may determine the signal strength of receiving the detection packet, and then determine a signal strength range to which the signal strength belongs, to further determine the signal level, the link quality, and the link bit rate based on the foregoing correspondence. Alternatively, the terminal may determine the signal level, the link quality, and the link bit rate by using a corresponding relational expression based on the signal strength of receiving the detection packet.

In implementation, after the terminal receives, at the transport layer, the link state information sent from the link layer, because the link state information is used to indicate that the wireless link is reconnected, the terminal may determine the link notification corresponding to the link state information as a notification used to notify the server that the wireless link is reconnected, and then send the link notification to the server by using the transport layer.

It should be noted that, in step <NUM>, the link state information further includes one or more types of a signal level, link quality, and a link bit rate. Correspondingly, the link notification sent in step <NUM> also carries corresponding link state information.

Optionally, before sending the link notification to the server by using the transport layer, the terminal further needs to determine whether duration between a current time point and a time point at which the terminal receives, for the last time, a data packet sent by the server exceeds a preset duration threshold. Correspondingly, processing in step <NUM> may be as follows.

If the duration between the current time point and the time point at which the terminal receives, for the last time by using the transport layer, the data packet sent by the server exceeds the preset duration threshold, the terminal sends, to the server by using the transport layer, the link notification corresponding to the link state information.

The preset duration threshold, for example, <NUM>, may be preset by a person skilled in the art, and stored in the terminal. The preset duration threshold may be generally equal to duration in which the server determines that a data packet fails to be transmitted. For example, when the server does not receive, within <NUM> after transmitting a data packet to the terminal, an ACK packet fed back from the terminal, the server determines that the data fails to be transmitted, and the preset duration threshold may be <NUM>. Transmitting a data packet herein is transmitting the data packet for the first time instead of retransmitting the data packet.

In implementation, after receiving, at the transport layer, the link state information sent from the link layer, the terminal may determine the time point at which the terminal receives, for the last time by using the transport layer, the data packet sent by the server, and then calculate duration between the time point and the current time point. If the duration between the time point and the current time point exceeds the preset duration threshold, the terminal may determine the link notification corresponding to the link state information, and then send the link notification to the server by using the transport layer, where the link notification is used to notify the server that the wireless link is reconnected. For example, the preset duration threshold is <NUM>, the time point at which the terminal receives, for the last time, the data packet sent by the server is <NUM>:<NUM>:<NUM>, and the current time point is <NUM>:<NUM>:<NUM>. In this case, the duration between the current time point and the time point at which the terminal receives, for the last time, the data packet sent by the server is <NUM>, which is greater than the preset duration threshold, and the terminal may send, to the server by using the transport layer, the link notification corresponding to the link state information.

Optionally, there are a plurality of methods for sending, by the terminal to the server by using the link layer, the link notification corresponding to the link state information. The following provides three feasible manners, where Manner <NUM> is according to the invention:
Manner <NUM>: The link notification is an ACK packet.

An acknowledgement number of the ACK packet is a sequence number of a data packet that the terminal expects to receive from the server. It may be understood in two cases herein: If sequence numbers of data packets received by the terminal from the server are consecutive, the sequence number of the data packet that the terminal expects to receive from the server is a sequence number of a data packet following the data packet finally received by the terminal from the server; or if sequence numbers of data packets received by the terminal from the server are inconsecutive, the sequence number of the data packet that the terminal expects to receive from the server is the missing sequence number. For example, in the foregoing two cases, the first case is: sequence numbers of data packets received by the terminal is <NUM>, <NUM>, and <NUM>, the terminal has received a data packet having a sequence number of <NUM>, and expects to receive a data packet having a sequence number of <NUM>, so that the acknowledgement number of the ACK packet is <NUM>; in the second case, sequence numbers of data packets received by the terminal is <NUM>, <NUM>, <NUM>, <NUM>, and <NUM>, the terminal does not receive the data packet having a sequence number of <NUM>, and expects to receive a data packet having a sequence number of <NUM>, so that the acknowledgement number of the ACK packet is <NUM>.

In implementation, in the prior art, after receiving a data packet sent by the server, the terminal feeds back an ACK packet to the server, and an acknowledgement number of the ACK packet is a sequence number of a data packet that the terminal expects to receive. After receiving the ACK packet sent by the terminal, the server sends, to the terminal, a data packet having a sequence number equal to the acknowledgement number of the ACK packet. For example, the terminal receives a data packet that has a sequence number of <NUM> and that is sent by the server, and sends, to the server, an ACK packet having an acknowledgement number of <NUM>, and the server sends a data packet having a sequence number of <NUM> to the terminal.

Herein, link notification is the ACK packet, and the acknowledgement number of the ACK packet is a sequence number of a data packet that the terminal expects to receive from the server. In this way, after failing to transmit a data packet, the server receives the ACK packet. The server determines that a link between the terminal and the access control point device is reconnected, and may send, to the terminal, a data packet having a sequence number equal to the acknowledgement number of the ACK packet.

It should be noted that, generally, the terminal sends the ACK packet to the server after receiving the data packet. In this implementation of the present disclosure, after the wireless link is reconnected after being disconnected, the terminal sends the ACK packet to the server, so that the server retransmits the to-be-retransmitted data packet.

Manner <NUM>: The terminal sends, to the server by using the transport layer, the link notification that is corresponding to the link state information and that is carried in an extension field of an ACK packet.

In implementation, an extension field is set in the ACK packet, and the link notification corresponding to the link state information is carried in the extension field. In other words, the terminal may send, to the server by using the transport layer, the link notification that is corresponding to the link state information and that is carried in the extension field of the ACK packet.

For example, the extension field of the ACK packet is "other options", the link notification is Resumed, and a carrying manner may be as follows:
TCP Options:. // other options
Link State: Resumed.

Manner <NUM>: The terminal sends, to the server by using the transport layer, the link notification that is corresponding to the link state information and that is carried in an out-of-band message.

The out-of-band message may be an SMS message, a message transmitted in a connection other than a TCP connection, a message transmitted in another network, or the like.

In implementation, after determining the link notification, the terminal may further send, to the server by using the transport layer, the link notification that is corresponding to the link state information and that is carried in the out-of-band message.

Step <NUM>: The server obtains a to-be-retransmitted data packet corresponding to the terminal, and sends the to-be-retransmitted data packet to the terminal.

In implementation, after the server receives the link notification that is sent by the terminal and that is corresponding to the link state information, if the link notification is used to notify the server that the wireless link is reconnected, the server may obtain a data packet that fails to be transmitted, namely, the to-be-retransmitted data packet, and then send the to-be-retransmitted data packet to the terminal.

According to the invention, the link notification carries one or more types of the signal level, the link quality, and the link bit rate, and after the server receives the link notification, the server obtains through parsing, the signal level, the link quality, or the link bit rate that are carried in the link notification. A first weighted value corresponding to the signal level, a second weighted value corresponding to the link quality, and a third weighted value corresponding to the link bit rate may be prestored in the server. The server multiplies the signal level obtained through parsing by the first weighted value, to obtain a first product, multiplies the link quality obtained through parsing by the second weighted value, to obtain a second product, multiplies the link bit rate obtained through parsing by the third weighted value, to obtain a third product, and then sums up the first product, the second product, and the third product, to determine a weighted value range to which calculated weighted values belong, and then determines a transmission rate based on a prestored correspondence between a weighted value range and a transmission rate. If the determined transmission rate is reduced, a data amount corresponding to each transmitted data packet may be reduced; or if the determined transmission rate is increased, a data amount corresponding to each transmitted data packet may be increased.

It should be noted that the first weighted value, the second weighted value, and the third weighted value may be preset by a person skilled in the art, and stored in the server. A sum of the first weighted value, the second weighted value, and the third weighted value is <NUM>. For example, the first weighted value is <NUM>, the second weighted value is <NUM>, and the third weighted value is <NUM>.

In the prior art, if the server does not receive, within duration of <NUM>nT after sending a data packet to the terminal, an ACK packet corresponding to the data packet (n is a quantity of retransmission times, and is greater than or equal to <NUM>, and <NUM>nT is retransmission waiting time), the server may retransmit the data packet to the terminal, and the server does not send the data packet to the terminal until the server receives the ACK packet that is corresponding to the data packet and that is sent by the terminal or a maximum quantity of retransmission times is reached. Because there is a wireless link between the terminal and the access control point device, the link between the terminal and the access control point device is easily interfered by a signal of an interference source (such as a microwave oven), and transient link disconnection occurs. In the foregoing retransmission manner, when the wireless link between the terminal and the access control point device is quickly reconnected after being disconnected, if the retransmission waiting time is not reached, the server needs to wait for a period of time before retransmission, thereby causing relatively low data transmission efficiency. In this implementation of the present disclosure, when the terminal detects that the wireless link is reconnected after being disconnected, the terminal sends a link notification to the server in a timely manner, to notify the server that the data packet can be retransmitted instead of waiting until the retransmission waiting time is reached, so that the data packet can be transmitted in a timely manner, thereby improving data transmission efficiency.

For example, as shown in <FIG>, T is <NUM>. After the terminal receives the data packet that has a sequence number of <NUM> and that is sent by the server, the terminal sends an ACK packet having an acknowledgement number of <NUM> to the server. Subsequently, the wireless link between the terminal and the access control point device is disconnected, and the data packet that has a sequence number of <NUM> and that is sent by the server to the terminal is lost. The server sends the data packet having a sequence number of <NUM> to the terminal at a time point <NUM>. When the server does not receive the ACK packet that has a sequence number of <NUM> and that is sent by the terminal at a time point <NUM>, the server may retransmit the data packet having a sequence number of <NUM> to the terminal. When the server does not receive the ACK packet that has an acknowledgement number of <NUM> and that is sent by the terminal at a time point <NUM>, the server may retransmit the data packet having a sequence number of <NUM> to the terminal. The terminal determines, before a time point <NUM>, that the wireless link is restored. Although the link between the terminal and the access control point device is reconnected, the server may retransmit the data packet having a sequence number of <NUM> to the terminal only when not receiving, at a time point <NUM>, the ACK packet that has an acknowledgement number of <NUM> and that is sent by the terminal. It can be learned that in the prior art, the data packet having a sequence number of <NUM> can be retransmitted to the terminal only at the time point <NUM>. In the manner of this implementation of the present disclosure, when determining, before the time point <NUM>, that the wireless link is restored, the terminal may send a link notification to the server. After receiving the link notification, the server determines that the wireless link between the terminal and the access control point device is reconnected, and may retransmit the data packet having a sequence number of <NUM> to the terminal. In this way, at the time point <NUM>, the server may retransmit the data packet having a sequence number of <NUM> to the terminal. After receiving the data packet having a sequence number of <NUM>, the terminal sends, to the server, an ACK packet having an acknowledgement number of <NUM>. Compared with that in the prior art, the to-be-retransmitted data packet can be transmitted to the terminal as early as possible, thereby improving data transmission efficiency.

As shown in <FIG>, another implementation of the present disclosure provides a method for carrying link state information in a link notification. Corresponding steps may be as follows.

Step <NUM>: A terminal receives a detection packet periodically sent by an access control point device; and the terminal determines, by using a link layer, the link state information based on signal strength of receiving the detection packet, and sends the link state information from the link layer to a transport layer.

The link state information includes one or more types of a signal level, link quality, and a link bit rate. The detection packet may be a Beacon frame or another packet. This is not limited in this implementation of the present disclosure. A period for sending the detection packet by the access control point device may be a preset period, for example, <NUM>, and may be preset by a person skilled in the art, and stored in the terminal.

In implementation, a wireless link is established between the terminal and the access control point device (for a detailed process of establishing the wireless link, refer to step <NUM>). As shown in <FIG>, the access control point device may send a detection packet to the terminal at an interval of a preset period by using the link layer. The terminal may receive the detection packet by using the link layer, and determine the link state information of the wireless link by using the link layer based on the signal strength of receiving the detection packet. For example, the terminal may prestore a correspondence between a range of signal strength of receiving the detection packet and each of a signal level, link quality, and a link bit rate, and the terminal may determine the signal strength of receiving the detection packet, and then determine a signal strength range to which the signal strength belongs, and further determine the signal level, the link quality, and the link bit rate based on the foregoing correspondence. Alternatively, the terminal may determine the signal level, the link quality, and the link bit rate by using a corresponding relational expression based on the signal strength of receiving the detection packet.

It should be noted that the foregoing relates to only two manners for determining link state information. Any method for determining link state information based on signal strength of receiving a packet may be applied to this implementation of the present disclosure. This is not limited in this implementation of the present disclosure.

Step <NUM>: The terminal sends, to a server based on a preset period by using the transport layer, a link notification corresponding to the link state information.

The preset period may be the same as or different from the period mentioned in step <NUM>. This is not limited in this implementation of the present disclosure.

In implementation, after receiving, at the transport layer, the link state information sent from the link layer, the terminal may send, to the server based on the preset period by using the transport layer, the link notification corresponding to the link state information.

Optionally, there are a plurality of methods for sending, by the terminal to the server by using the link layer, the link notification corresponding to the link state information. The following provides two feasible manners:.

Manner <NUM>: The terminal sends, to the server based on the preset period by using the transport layer, the link notification that is corresponding to the link state information and that is carried in an extension field of an ACK packet.

For example, the extension field of the ACK packet is "other options", a signal level in the link notification is -<NUM>, link quality is <NUM>%, and a link bit rate is <NUM> Mbps. A manner of carrying the link notification in the extension field of the ACK packet is as follows:.

Manner <NUM>: The terminal sends, to the server based on the preset period by using the transport layer, the link notification that is corresponding to the link state information and that is carried in an out-of-band message.

In implementation, after determining the link notification, the terminal may further send, to the server based on the preset period by using the transport layer, the link notification that is corresponding to the link state information and that is carried in the out-of-band message.

In addition, the terminal may further send, to the server by using the transport layer at an interval of M ACK packets, the link notification that is corresponding to the link state information and that is carried in the out-of-band message.

M, for example, <NUM>, may be preset by a person skilled in the art, and stored in the terminal.

In implementation, each time the terminal receives a data packet sent by the server, the terminal sends an ACK packet to the server, to notify the server that the data packet is successfully sent. The terminal may send the link notification to the server in the foregoing manner <NUM> or manner <NUM> at an interval of <NUM> ACK packets.

Step <NUM>: The server adjusts, based on the link notification, a transmission rate for transmitting data to the terminal.

In implementation, after receiving the link notification, the server may further obtain, through parsing, the signal level, the link quality, and the link bit rate that are carried in the link notification. The server may prestore a first weighted value corresponding to the signal level, a second weighted value corresponding to the link quality, and a third weighted value corresponding to the link bit rate. The server may multiply the signal level obtained through parsing by the first weighted value, to obtain a first product, multiply the link quality obtained through parsing by the second weighted value, to obtain a second product, multiply the link bit rate obtained through parsing by the third weighted value, to obtain a third product, and then sum up the first product, the second product, and the third product, to determine a weighted value range to which calculated weighted values belong, and then determine a transmission rate based on a prestored correspondence between a weighted value range and a transmission rate.

If the determined transmission rate is reduced, a data amount corresponding to each transmitted data packet may be reduced; or if the determined transmission rate is increased, a data amount corresponding to each transmitted data packet may be increased.

In this implementation of the present disclosure, the terminal determines the link state information of the wireless link by using the link layer, and sends the link state information from the link layer to the transport layer. The terminal sends, to the server by using the transport layer, the link notification corresponding to the link state information. The server may perform data transmission management on the TCP connection based on the link notification. In this way, because the terminal sends, to the server, the link notification corresponding to the link state information, the server may obtain the link state information of the wireless link between the terminal and the access control point device, so that data transmission management can be performed on the TCP connection in a timely manner, thereby improving data transmission efficiency.

<FIG> is a structural diagram of a terminal according to an implementation of the present disclosure. The terminal may be implemented as a part or all of the terminal by using software, hardware, or a combination thereof. The terminal provided in this implementation of the present disclosure may implement the procedures in <FIG>, <FIG>, and <FIG> of the implementations of the present disclosure. The terminal includes a determining module <NUM>, a sending module <NUM>, and a receiving module <NUM>.

The determining module <NUM> is configured to determine link state information of a wireless link by using a link layer.

The sending module <NUM> is configured to send the link state information from the link layer to a transport layer.

The sending module <NUM> is further configured to send, to the server by using the transport layer, a link notification corresponding to the link state information.

The sending module <NUM> is configured to:
when detecting, by using the link layer, that the wireless link is reconnected after being disconnected, send, to the transport layer, link state information used to indicate that the wireless link is reconnected.

Optionally, the sending module <NUM> is configured to:
if duration between a current time point and a time point at which a data packet sent by the server is received for the last time by using the transport layer exceeds a preset duration threshold, send, to the server by using the transport layer, the link notification corresponding to the link state information.

Optionally, the link notification is an ACK packet, and an acknowledgement number of the ACK packet is a sequence number of a data packet that the terminal expects to receive from the server.

The sending module <NUM> is further configured to:
send, to the server based on a preset period by using the transport layer, the link notification corresponding to the link state information.

The link state information includes one or more types of a signal level, link quality, and a link bit rate.

Optionally, as shown in <FIG>, the terminal further includes:.

The sending module <NUM> is further configured to:
send, to the server by using the transport layer, the link notification that is corresponding to the link state information and that is carried in an extension field of an ACK packet.

Optionally, the sending module <NUM> is further configured to:
send, to the server by using the transport layer, the link notification that is corresponding to the link state information and that is carried in an out-of-band message.

It should be noted that the determining module <NUM>, the sending module <NUM>, and the receiving module <NUM> may be implemented by the processor <NUM>, or may be implemented when the processor <NUM> cooperates with the transmitter <NUM> and the receiver <NUM>.

In this implementation of the present disclosure, the terminal determines the link state information of the wireless link by using the link layer, and sends the link state information from the link layer to the transport layer. The terminal sends, to the server by using the transport layer, the link notification corresponding to the link state information. The server may perform data transmission management on a TCP connection based on the link notification. In this way, because the terminal sends, to the server, the link notification corresponding to the link state information, the server may obtain the link state information of the wireless link between the terminal and the access control point device, so that data transmission management can be performed on the TCP connection in a timely manner, thereby improving data transmission efficiency.

<FIG> is a structural diagram of a server according to an implementation of the present disclosure. The server may be implemented as a part or all of the server by using software, hardware, or a combination thereof. The server provided in this implementation of the present disclosure may implement the procedures in <FIG>, <FIG>, and <FIG> of the implementations of the present disclosure. The server includes a receiving module <NUM> and a management module <NUM>.

The receiving module <NUM> is configured to receive, by using a transport layer, a link notification that is corresponding to link state information and that is sent by a terminal.

The management module <NUM> is configured to perform data transmission management on a TCP connection based on the link notification.

Optionally, the link notification is used to notify the server that the wireless link is reconnected.

As shown in <FIG>, the management module <NUM> includes an obtaining submodule <NUM> and a sending submodule <NUM>.

The obtaining submodule <NUM> is configured to obtain a to-be-retransmitted data packet corresponding to the terminal.

The sending submodule <NUM> is configured to send the to-be-retransmitted data packet to the terminal.

The management module <NUM> is configured to:
adjust, based on the link notification, a transmission rate for transmitting data to the terminal.

It should be noted that the receiving module <NUM> and the management module <NUM> may be implemented by the processor <NUM>, or may be implemented when the processor <NUM> cooperates with the transmitter <NUM> and the receiver <NUM>.

Some of the foregoing implementations may be implemented by using software, hardware, firmware, or any combination thereof. When the software is used for implementation, the foregoing implementations may be implemented completely or partially in a form of a computer program product. The computer program product includes one or more computer instructions, and when the computer program instructions are loaded and executed on a server or a terminal, the procedures or functions according to the implementations of the present disclosure are all or partially generated. The computer instructions may be stored in a computer-readable storage medium or may be transmitted from a computer-readable storage medium to another computer-readable storage medium. For example, the computer instructions may be transmitted from a website, computer, server, or data center to another website, computer, server, or data center in a wired (for example, through a coaxial optical cable, an optical fiber, or a digital subscriber line) or wireless (for example, through infrared, radio, or microwave) manner. The computer-readable storage medium may be any usable medium accessible by a server or a terminal, or a data storage device, such as a server or a data center, including one or more usable media. The usable medium may be a magnetic medium (for example, a floppy disk, a hard disk, or a magnetic tape), an optical medium (for example, a digital video disk (Digital Video Disk, DVD), or a semiconductor medium (for example, a solid-state drive).

Claim 1:
A data transmission method, the method comprising:
establishing a wireless link between a terminal and an access control point device, wherein the access control point device is configured to periodically transmit beacon frames to the terminal via the wireless link in accordance with a preset period;
determining, by a link layer of the terminal, link state information of the wireless link, wherein the determining the link state information of the wireless link comprises:
receiving periodically, by the terminal by using the link layer, at least one beacon frame transmitted by the access control point device in accordance with the preset period,
determining, by the terminal device, based on a status of receiving the at least one beacon frame whether the wireless link is connected,
determining that the wireless link is subsequently disconnected responsive to: determining that a duration between a current time and a previous time that the terminal device received the most recent beacon frame sent by the access control point exceeds a preset duration threshold, or determining that the terminal has not received a beacon frame sent by the access control point in N consecutive preset periods, where N is a positive integer,
determining (<NUM>) that the wireless link is subsequently reconnected after being disconnected responsive to receiving a subsequent beacon frame sent by the access control point, and
determining, responsive to determining that the wireless link is subsequently reconnected, the link state information based on a signal strength of a signal used for receiving the beacon frame;
sending, responsive to determining that the wireless link is subsequently reconnected, the link state information from the link layer to a transport layer; and
sending (<NUM>), by the terminal to a server using the transport layer, a link notification corresponding to the link state information, wherein the link notification is carried in an extension field of an acknowledgement, ACK, packet, and wherein the extension field comprises a TCP Option included in a TCP header of the ACK packet;
wherein the link state information comprises a signal level, a link quality, and a link bit rate.