Data transmission method and equipment
The terminal device obtains link quality information in real time and determines TCP congestion control parameters, optimizes the TCP congestion control process, solves the problem of time extension in the prior art, and improves the data transmission rate and user experience.
Patent Information
- Application Number
- CN202310804490.X
- Authority / Receiving Office
- CN · China
- Patent Type
- Applications(China)
- Current Assignee / Owner
- Filing Date
- 2023-06-30
- Publication Date
- 2024-12-31
Smart Images

Figure CN119233311A_ABST
Abstract
Description
Technical Field
[0001] The present application relates to the field of communications, and more specifically, to a method and device for data transmission. Background Art
[0002] With the unremitting pursuit of user experience, how to reduce the delay of users requesting resources from service servers is an urgent problem to be solved. Generally speaking, service data is stored in service servers in the cloud. When users obtain service data, the service data needs to be transmitted to the terminal device used by the user through the transmission channel based on the transmission control protocol (TCP) between the service server and the wireless access network device (such as the base station), and the transmission channel between the wireless access network and the terminal device. Improving the data transmission speed on the TCP transmission channel between the terminal device and the wireless access network device is an important means to reduce the delay of users requesting resources from the service server, and using the TCP congestion control mechanism is the main solution to improve the data transmission speed on the TCP transmission channel between the terminal device and the wireless access network device. However, the current TCP congestion control mechanism cannot effectively optimize the congestion control process, cannot quickly reach a high and stable data transmission rate, and thus cannot effectively reduce the delay of users requesting resources from the service server, resulting in poor user experience. For example, it takes a long time for users to obtain the requested resources. Summary of the invention
[0003] The present application provides a method and device for data transmission, which can effectively optimize the congestion control process, reduce the data transmission delay, and increase the data transmission rate in the process of data transmission using the TCP protocol, such as reducing the delay of the start-up scenario and improving the user experience.
[0004] In a first aspect, a method for data transmission is provided, the method comprising: a terminal device and a network device establish a network layer transmission channel; the terminal device obtains link quality information between the terminal device and the network device in real time through the network layer transmission channel, the link quality information comprising: at least one of resource utilization and a recommended transmission rate; the terminal device determines a TCP protocol congestion control parameter corresponding to the link quality information; the terminal device uses the TCP protocol congestion control parameter to control the transmission rate of business data between the terminal device and the network device, the business data being business data forwarded (transferred) between the terminal device and a business server through the network device, and the business data being transmitted through the TCP transmission channel between the terminal device and the network device.
[0005] The first aspect provides a method for data transmission. When a terminal device requests resources from a service server through a network device, the terminal device first establishes a network layer channel with the network device, and obtains the link quality information between the terminal device and the network device in real time through the network layer channel. The problem of lag in link quality information is avoided, and the link quality information can reflect the network congestion between the mobile phone and the network device in real time. After the terminal device obtains the link quality information, the TCP protocol congestion control parameters are determined in real time according to the link quality information obtained in real time, ensuring that the TCP protocol congestion control parameters suitable for the current network status can be determined, and the TCP congestion control of the transmission rate is performed using the real-time determination of the TCP protocol congestion control parameters. For data transmission between the terminal device and the network device, a high and stable data transmission rate can be quickly achieved, reducing the delay for the terminal device to obtain resources from the service server.
[0006] Exemplarily, the TCP protocol congestion control parameters may include: a slow start initial value, a slow start threshold value, a fast recovery window value (fast recovery starting point value), etc.
[0007] Exemplarily, the terminal device may continuously (eg, periodically) acquire the link quality information (ie, continuously poll), for example, the terminal device may poll once every 5 ms, that is, acquire the link quality information once every 5 ms.
[0008] In a possible implementation of the first aspect, a first application is installed on the terminal device, and the business data is the business data corresponding to the first application. When the first application is opened, the terminal device and the network device establish the network layer transmission channel. In other words, when the application on the terminal device is started, a network layer transmission channel is established and the link quality information between the terminal device and the network device is obtained in real time through the network layer channel. In this implementation, on the one hand, TCP congestion control of the transmission rate can be realized quickly, and on the other hand, the problem of lag of the link quality information can be avoided. The link quality information can reflect the network congestion between the terminal device and the network device in real time, and is not affected by the user's location or time period, thereby ensuring the effectiveness and accuracy of the subsequent congestion control using the link quality information.
[0009] In a possible implementation of the first aspect, the terminal device determines the TCP protocol congestion control parameters corresponding to the link quality information, including: the terminal device determines a slow start initial value and a first slow start threshold value based on the link quality information obtained for the first time, the slow start initial value is less than or equal to the first slow start threshold value, a first application is installed on the terminal device, and the link quality information obtained for the first time is the link quality information obtained when the first application is opened. In this implementation, the slow start initial value and the first slow start threshold value are determined based on the link quality information obtained for the first time, and a higher data transmission rate can be quickly achieved by using the slow start initial value and the first slow start threshold value.
[0010] Exemplarily, the link quality information acquired by the terminal device for the first time may be understood as the link quality information acquired when the user just opens an application on the terminal device.
[0011] Exemplarily, if the terminal device determines that the network is congested, for example, the resource utilization is less than or equal to a preset first threshold, the slow start initial value is equal to the first slow start threshold; if the terminal device determines that the network may be congested, for example, the resource utilization is greater than the first threshold and less than or equal to the second threshold, the slow start initial value is less than the first slow start threshold. The first threshold is less than the second threshold.
[0012] In a possible implementation of the first aspect, the terminal device uses the TCP protocol congestion control parameter to control the transmission rate of service data between the terminal device and the network device, including: the terminal device uses the slow start initial value and the first slow start threshold value to start TCP congestion control of the transmission rate. In this implementation, using the slow start initial value and the first slow start threshold value to perform TCP congestion control of the transmission rate can quickly achieve a higher data transmission rate.
[0013] For example, if the slow start initial value is the same as the first slow start threshold value (SSthresh), the linear congestion avoidance process is directly entered; if the slow start initial value is less than the first slow start threshold value (SSthresh), the congestion window takes the slow start initial value as the starting point and enters the slow start phase. After the congestion window changes exponentially to the first slow start threshold value (SSthresh), the congestion avoidance process is entered.
[0014] In a possible implementation of the first aspect, a first application is installed on a terminal device, the service data is service data corresponding to the first application, and the terminal device determines the TCP protocol congestion control parameter corresponding to the link quality information, including: the terminal device determines whether the network between the terminal device and the network device is congested according to the link quality information obtained during the operation of the first application; in the case of network congestion, the terminal device determines the fast recovery window value according to the link quality information; in the case of no congestion in the network, the terminal device determines the second slow start threshold value or indication information according to the link quality information, the second slow start threshold value is greater than the first slow start threshold value, and the indication information is used to indicate that the terminal device continues to use the TCP protocol congestion control parameter to perform the TCP congestion control process, and the first slow start threshold value is determined according to the link quality information obtained by the terminal device for the first time. In this implementation, the terminal device continuously determines a new slow start threshold value or a fast recovery window value according to the real-time link quality information, and uses the new slow start threshold value or the fast recovery window value to perform TCP congestion control of the transmission rate, so as to achieve a stable and high-speed transmission rate.
[0015] Exemplarily, the link quality information obtained by the terminal device each time after the first time (first time) can also be understood as the link quality information obtained periodically or continuously during the operation of a certain application.
[0016] In a possible implementation of the first aspect, the terminal device uses the TCP protocol congestion control parameter to control the transmission rate of the service data between the terminal device and the network device, including: when the network is congested, the terminal device uses the fast recovery window value to perform the fast recovery phase of the TCP congestion control of the transmission rate, or, when the network is not congested, the terminal device uses the second slow start threshold value to start the congestion avoidance phase of the TCP congestion control of the transmission rate, or, when the network is not congested, the terminal device continues to perform TCP congestion control of the transmission rate according to the indication information. In this implementation, the terminal device uses the new slow start threshold value or the fast recovery window value to perform TCP congestion control of the transmission rate, so as to achieve a stable and high-speed transmission rate.
[0017] Exemplarily, the fast recovery window value is greater than the first slow start threshold value.
[0018] In a possible implementation of the first aspect, the terminal device includes a decision module and a link quality acquisition module, the link quality acquisition module acquires the link quality information between the network device in real time through the network layer transmission channel; the link quality acquisition module sends the link quality information acquired in real time to the decision module; the decision module determines the TCP protocol congestion control parameter corresponding to the link quality information; the decision module sends the TCP protocol congestion control parameter to the transport layer of the terminal; the transport layer of the terminal device uses the TCP protocol congestion control parameter to control the transmission rate of the service data between the terminal device and the network device. Exemplarily, the decision module can be located in the application layer of the terminal device, and the link quality acquisition module can be located in the network layer of the terminal device. In this implementation, after determining the slow start initial value and the slow start threshold value (SSthresh), the decision module can send the slow start initial value and the slow start threshold value (SSthresh) to the transport layer of the terminal device, that is, cross-layer transmission to the transport layer (sent from the application layer to the transport layer). In this implementation, the decision module obtains link quality information in real time, determines the TCP protocol congestion control parameters suitable for the current network status and transmits them across layers to the transport layer of the terminal device, which can quickly test a higher transmission rate and thus quickly achieve a higher data transmission rate.
[0019] Exemplarily, the terminal device may be integrated with an SDK, which has: a link quality acquisition function, a decision-making function, etc. Alternatively, the SDK includes a decision-making module and a link quality acquisition module.
[0020] In a possible implementation of the first aspect, at least one of the slow start threshold, the first slow start threshold, the fast recovery window value, or the second slow start threshold is determined based on a maximum segment length, a round trip delay, and the recommended transmission rate. In this implementation, the accuracy and effectiveness of the determined slow start threshold, the first slow start threshold, the fast recovery window value, or the second slow start threshold can be guaranteed, thereby optimizing the congestion control process.
[0021] In the second aspect, a data transmission system is provided, which may include: a terminal device, a network device and a service server. In the communication system, the terminal device requests resources from the service server through the middle of the network device. When the application is started, the terminal device will establish a network layer channel with the network device, and obtain the link quality information between the terminal device and the network device in real time or continuously through the network layer channel. The terminal device determines the TCP protocol congestion control parameters (slow start initial value and slow start threshold value, etc.) suitable for the current network state according to the real-time acquired link quality information, and uses the TCP protocol congestion control parameters to perform the TCP congestion control process. On the one hand, the service server does not need to build additional computing power for processing resources (such as compressing and reducing stored resources), and only needs to perform a small amount of calculation on the terminal device, which simplifies the implementation of the service server, the system structure is relatively simple, and the cost of service development and deployment maintenance is low, which is easy to implement. On the other hand, for data transmission between the terminal device and the network device, a high and stable data transmission rate can be quickly achieved, and the delay of the terminal device obtaining resources from the service server can be reduced.
[0022] In a third aspect, a communication device is provided, comprising: a unit for executing each step in any possible implementation of the above first aspect or any aspect of the first aspect.
[0023] For example, the communication device may include a decision module and a link quality acquisition module.
[0024] In a fourth aspect, a communication device is provided, which includes at least one processor and a memory, the processor and the memory are coupled, the memory stores program instructions, and when the program instructions stored in the memory are executed by the processor, the method in the first aspect or any possible implementation of the first aspect is performed.
[0025] In a fifth aspect, a communication device is provided, which includes at least one processor and an interface circuit, and the at least one processor is used to execute: the method in the first aspect or any possible implementation manner of the first aspect.
[0026] In a sixth aspect, a terminal device is provided, the terminal device comprising any communication device provided in the third aspect, the fourth aspect or the fifth aspect.
[0027] Exemplarily, the terminal device may include 1+8+N devices.
[0028] In a seventh aspect, a computer program product is provided, which includes a computer program, and when the computer program is executed by a processor, it is used to execute the method in the first aspect or any possible implementation manner of the first aspect.
[0029] In an eighth aspect, a computer-readable storage medium is provided, in which a computer program is stored. When the computer program is executed, it is used to execute the method in the first aspect or any possible implementation manner of the first aspect.
[0030] In a ninth aspect, a chip is provided, comprising: a processor for calling and running a computer program from a memory, so that a communication device equipped with the chip executes the method in the first aspect or any possible implementation manner of the first aspect. BRIEF DESCRIPTION OF THE DRAWINGS
[0031] Figure 1 This is a schematic diagram of the slow start phase and congestion avoidance phase of TCP's congestion control process.
[0032] Figure 2 This is a schematic diagram of the slow start phase, congestion avoidance phase, fast retransmission phase, and fast recovery phase of the TCP congestion control process.
[0033] Figure 3 This is a schematic diagram of a TCP protocol congestion control method based on reinforcement learning.
[0034] Figure 4 This is a schematic diagram of an example of a communication scenario provided by the present application for use in an embodiment of the present application.
[0035] Figure 5 This is an architecture diagram of a data transmission system provided by this application.
[0036] Figure 6 This is a schematic flowchart of an example of a data transmission method provided in this application.
[0037] Figure 7 This is a flowchart of an example of a method for data transmission in a communication system provided in the present application.
[0038] Figure 8 This is a schematic diagram of the change of congestion window when TCP congestion control is performed using the method provided in an embodiment of the present application and when TCP congestion control is performed using a traditional method, provided in the present application.
[0039] Fig. 9 This is a flowchart of another example of a data transmission method provided by the present application.
[0040] Fig.10 This is another example provided by the present application, and is a flowchart of a method for data transmission in a communication system provided by the present application.
[0041] Fig.11This is a schematic diagram of the change of congestion window when TCP congestion control is performed using the method provided in an embodiment of the present application and when TCP congestion control is performed using a traditional method, provided in the present application.
[0042] Fig.12 This is a schematic diagram of the change of congestion window when TCP congestion control is performed using the method provided in an embodiment of the present application and when TCP congestion control is performed using a traditional method, provided in the present application.
[0043] Fig.13 It is a schematic block diagram of a communication device provided in an embodiment of the present application.
[0044] Fig.14 It is a schematic block diagram of a communication device provided in an embodiment of the present application.
[0045] Fig.15 It is a schematic block diagram of a chip system provided in an embodiment of the present application. DETAILED DESCRIPTION
[0046] The technical solution in this application will be described below in conjunction with the accompanying drawings.
[0047] In the description of the embodiments of the present application, unless otherwise specified, " / " means or, for example, A / B can mean A or B; "and / or" in this article is only a description of the association relationship of associated objects, indicating that there can be three relationships, for example, A and / or B can mean: A exists alone, A and B exist at the same time, and B exists alone. In addition, in the description of the embodiments of the present application, "multiple" means two or more than two.
[0048] In the following, the terms "first" and "second" are used for descriptive purposes only and are not to be understood as indicating or implying relative importance or implicitly indicating the number of the indicated technical features. Thus, a feature defined as "first" or "second" may explicitly or implicitly include one or more of the features. In the description of this embodiment, unless otherwise specified, "plurality" means two or more.
[0049] In addition, various aspects or features of the present application can be implemented as methods, devices or products using standard programming and / or engineering techniques. The term "product" used in this application covers computer programs that can be accessed from any computer-readable device, carrier or medium. For example, computer-readable media may include, but are not limited to: magnetic storage devices (e.g., hard disks, floppy disks or tapes, etc.), optical disks (e.g., compact discs (CDs), digital versatile discs (DVDs), etc.), smart cards and flash memory devices (e.g., erasable programmable read-only memory (EPROM), cards, sticks or key drives, etc.). In addition, the various storage media described herein may represent one or more devices and / or other machine-readable media for storing information. The term "machine-readable medium" may include, but is not limited to, wireless channels and various other media capable of storing, containing and / or carrying instructions and / or data.
[0050] First, some technical terms involved in the embodiments of the present application are briefly explained.
[0051] Start-up scenario: The scenario where a business application triggers the initial network loading. Examples include: loading the homepage interface of an application (APP), loading the video playback interface, jumping to a live broadcast room, and the process from a user clicking on the answer control to actually starting a call. For example, for a user to play a video using a player, when the user clicks on the player to start playing the video, the player must go through a series of processes such as obtaining the video file, parsing the video file, downloading the video according to the parsed video playback information, caching the video, and playing the video. The process from the user starting to order the video to the video playing can be understood as the start-up scenario (or can also be called the start-up process).
[0052] TCP congestion control process: TCP has four congestion control processes, namely slow start (or slow start), congestion avoidance, fast retransmission and fast recovery, or slow start, congestion avoidance, fast retransmission and fast recovery. Congestion control can also be called window-based congestion control. The sender (i.e., the sending device) maintains a state variable called congestion window (CWND). The size of the congestion window depends on the degree of congestion in the network and changes dynamically. The sender makes its sending window equal to the smaller value between the receiver's (i.e., the receiving device) window and the congestion window, that is, the sending window = min (receiver window, congestion window). The principle of the sender controlling the congestion window is: as long as there is no congestion in the network, the congestion window will be increased to send more data. But as long as there is congestion in the network, the congestion window will be reduced to reduce the data injected into the network. When the sender starts to send data, if a large number of data bytes are immediately injected into the network, it may cause network congestion because the sender is not aware of the network load. Therefore, a better method is to detect it first, that is, the sender will gradually increase the sending window from small to large, that is, gradually increase the value of the congestion window from small to large.
[0053] It should be understood that, in the embodiment of the present application, a larger congestion window means a larger sending window, that is, a faster data transmission rate.
[0054] The four processes or algorithms of slow start, congestion avoidance, fast retransmission and fast recovery are described below.
[0055] Slow start (slow start algorithm): The process in which the value of CWND increases exponentially from the slow start initial value to the slow start threshold (SSthresh). The slow start threshold can also be called the slow start threshold, and the slow start initial value can also be understood as the initial value of CWND. In this process, the value of CWND doubles after each transmission round, that is, the value of CWND changes exponentially. The time experienced in a transmission round is the round-trip time (RTT), but the transmission round emphasizes that all the segments allowed by the congestion window are sent continuously, and the receiver receives the confirmation of the last byte sent. For example, assuming that the slow start initial value is 1 (that is, the initial value of CWND) and the slow start threshold is 8, then the values of CWND are 1, 2, 4, and 8 after each transmission round.
[0056] Congestion Avoidance (Congestion Avoidance Algorithm): When the value of CWND is equal to the slow start threshold (or when the value of CWND is greater than the slow start threshold), the slow start process stops and the congestion avoidance process begins. During the congestion avoidance process, the value of the congestion window increases slowly. For each transmission round, the value of the congestion window is incremented by 1, rather than doubling as in the slow start phase. That is, the congestion window increases additively.
[0057] In other words:
[0058] When CWND < SSthresh, enter the above slow start phase (using the slow start algorithm).
[0059] When CWND > SSthresh, stop the slow start process and enter the congestion avoidance phase (stop using the slow start algorithm and start using the congestion avoidance algorithm).
[0060] When CWND = SSthresh, either the slow start algorithm or the congestion avoidance algorithm can be used.
[0061] When network congestion occurs, for example, when the sender does not receive the expected acknowledgement (ACK) packet in a timely manner, it can be determined that network congestion has occurred. In this case, the value of the congestion window at the time of network congestion is decreased multiplicatively. That is, the value obtained by dividing the congestion window value at the time of network congestion by 2 is used as the new slow start threshold, and the new slow start threshold is used to re-enter the slow start process. Then, when the congestion window value is equal to the new slow start threshold, enter the congestion avoidance phase. For example, when network congestion occurs, the congestion window value is set to 1 again, and the new slow start threshold is used to re-enter the above slow start phase and congestion avoidance phase.
[0062] For example: Figure 1 The following is a schematic diagram of an example of the slow start phase and the congestion avoidance phase. As Figure 1 shown, the initial value of the slow start is 1, that is, the initial value of CWND is 1, and the initial slow start threshold is 16. The congestion window value is in the range of 1 to 16 for the slow start phase, and the congestion window value increases exponentially (1, 2, 4, 8, 16). When the congestion window is equal to 16, enter the congestion avoidance phase, and the value of the congestion window increases additively (for each transmission round, the value of the congestion window is incremented by 1). Assume that network congestion occurs when the congestion window is equal to 24. Perform multiplicative decrease, that is, use the value obtained by dividing the congestion window value at the time of network congestion (24) by 2 as the new slow start threshold, which is 12, and then re-enter the slow start phase. The initial value of the slow start is 1, the new slow start threshold is 12, and the congestion window value is in the range of 1 to 12 for the slow start phase, and the congestion window value increases exponentially. When the congestion window is equal to 12, enter the congestion avoidance phase.
[0063] In some cases, individual messages sent by the sender will be lost in the network, but in fact the network is not congested. If the sender is slow to receive confirmation of the message from the receiver, a timeout will occur and the sender will mistakenly believe that the network is congested. In this case, it will re-enter the slow start phase and congestion avoidance phase, thereby reducing transmission efficiency.
[0064] Fast retransmission: The fast retransmission algorithm allows the sender to know as early as possible that individual messages have been lost. The fast retransmission algorithm first requires the receiver not to wait until it sends data to confirm whether it has received the message sent by the sender, but stipulates that the receiver must send confirmation immediately, even if the receiver receives an out-of-order message, it must immediately send a repeated confirmation of the received message. The fast retransmission algorithm stipulates that as long as the sender receives three consecutive repeated confirmations of a message from the receiver, the sender can determine that the receiver has not received a certain message, so the sender can immediately retransmit (i.e., "fast retransmission") the lost message. For example, suppose: the receiver sends confirmations in time after receiving messages M1 and M2. Assume that the receiver does not receive message M3 but receives message M4. However, according to the fast retransmission algorithm, the receiver must immediately send a repeated confirmation of message M2 so that the sender can know as early as possible that the receiver has not received message M3. Therefore, the receiver needs to send a repeated confirmation of message M2 immediately after receiving message M4. The sender then sends messages M5 and M6. After receiving messages M5 and M6, the receiver still needs to send repeated confirmations to M2. In this way, timeout will not occur (if there is no fast retransmission, as long as a timeout occurs (i.e. network congestion), multiplication and reduction will be performed, and then the slow start process will be restarted), and the sender will not mistakenly believe that network congestion has occurred. Using fast retransmission can increase the throughput of the entire network by about 20%.
[0065] Fast recovery: Fast recovery is an algorithm used in conjunction with fast retransmission. When the sender receives three duplicate confirmations, it can be determined that only individual packets are lost. Therefore, the fast recovery algorithm is executed: for example, the value obtained by dividing the congestion window value corresponding to the receipt of three duplicate confirmations by 2 (of course, it can also be the value obtained by dividing the congestion window value corresponding to the receipt of three duplicate confirmations by 2 plus or minus a preset value) can be used as the slow start threshold value (i.e., multiplication reduction), and the initial value of the congestion window is set to the slow start threshold value, that is, the initial value of the congestion window is not set to 1, and the congestion avoidance process begins. That is, it does not restart the slow start phase, but directly enters the congestion avoidance phase.
[0066] For example: Figure 2 The diagram shown is a schematic diagram of a slow start phase, a congestion avoidance phase, a fast retransmission phase, and a fast recovery phase. Figure 2In the process of transmitting round 22 and before Figure 1 For similar expressions, please refer to Figure 1 As shown, I will not repeat it here. Assuming that 3 repeated confirmations of the same message are received when the congestion window is 18, it can be determined that only individual messages are lost. Therefore, the fast recovery algorithm is executed, the slow start threshold is adjusted to 9, and the congestion window value is set to 9 at the same time. The congestion avoidance process begins, and the congestion window value increases additively from 9 (the congestion window value increases by 1 after each transmission round).
[0067] With the unremitting pursuit of user experience, the business has a strong demand for delay optimization of the start-up scenario, and minimizing the start-up delay is the goal of business optimization. Generally speaking, business data is stored in the business server in the cloud. When the user obtains the business data, the business data needs to be transmitted to the terminal device used by the user through the TCP transmission channel between the business server and the wireless access network device (such as the base station), and the transmission channel between the wireless access network and the terminal device. Due to the influence of the characteristics of the wireless network, 80% of the end-to-end link quality degradation occurs on the air interface network between the terminal device and the wireless access network. On the transmission channel based on the TCP protocol between the terminal device and the wireless access network, the transmission speed is mainly positively correlated with the sending window size of the sender, and the sending window size is mainly related to the CWND size. The current TCP congestion control mechanism can only gradually try to achieve the optimal solution of the transmission congestion window, which seriously restricts the optimization of the start-up delay.
[0068] At present, the latency optimization solutions for the start-up scenarios are generally concentrated on the business server side, such as compressing and reducing the resources stored in the business server. There are also optimization methods for the TCP protocol layer. In addition, there is also a TCP protocol congestion control optimization solution based on reinforcement learning.
[0069] For example, Figure 3 The figure shows a schematic diagram of a TCP protocol congestion control method based on reinforcement learning. Figure 3 As shown, a neural network brain server is deployed behind the business server. The neural network brain server constructs an online mapping from network status information (such as throughput, RTT, loss rate, etc.) to slow start initial value and slow start threshold value based on the dimension of the user group (such as subnet, Internet Protocol (IP) address, province) and the goal of higher throughput and lower round-trip delay (RTT). The business server stores the resources and data requested by the user, or the user can also store the data in the business service.
[0070] exist Figure 3In the example shown, in S301, when the terminal device sends a service request to the service server, it will carry the network status information (such as throughput, RTT, loss rate, etc.) collected by the terminal device and the parameters related to TCP congestion control. Since the data transmission between the terminal device and the service server needs to pass through the network provided by the wireless access network device, the network status information is mainly the network status information between the terminal device and the wireless access network device. The parameters related to TCP congestion control include, for example, the initial slow start initial value (i.e., the initial value of CWND), the initial congestion avoidance initial value (i.e., the slow start threshold value), etc. In S302, the service server forwards the network status information carried by the terminal device and the parameters related to TCP congestion control to the neural network brain server. In S303, the neural network brain server parses the user group and network status information based on the received information, and determines the recommended slow start initial value and the recommended slow start threshold value based on this information. In S304, the neural network brain server sends the recommended slow start initial value and the recommended slow start threshold value to the service server. In S305, the service server sends the recommended slow start initial value and the recommended slow start threshold value to the terminal device. In S306, the transport layer of the terminal device uses the recommended slow start initial value and the recommended slow start threshold value to perform congestion control, thereby achieving the purpose of optimizing the congestion control process. In S307, the terminal device sends the network status information after using the recommended slow start initial value and the recommended slow start threshold value to the service server. In S308, the service server forwards the network status information to the neural network brain server. In S309, the neural network brain server performs reinforcement learning on the neural network model based on the received information.
[0071] exist Figure 3 In the example shown, there is a relatively large lag in the terminal device collecting network status information (such as parameters including throughput, RTT, and loss rate), and these parameters can only be calculated after several rounds of TCP requests. Due to the lag in network status information, the recommended values of the neural network brain server obtained by the terminal device are relatively inaccurate, and the optimization of the congestion control startup process is limited. In addition, the neural network brain server recommends slow start initial values and slow start threshold values to the terminal device based on the user group to which it belongs, without taking into account the complex characteristics of the wireless network. Users belonging to the same group may be distributed in different areas, and the network status of different areas may be quite different, and the degree of congestion may be quite different. For example, users at a train station and users at a shopping mall may belong to the same user group, but the wireless network conditions at the train station are significantly worse than those at the gymnasium, and the degree of congestion is relatively greater, which also seriously affects the accuracy of the recommended values. Moreover, Figure 3In the solution shown, the neural network brain server needs to be introduced, resulting in a high system construction cost. The business server needs to interact with the neural network brain server, resulting in high complexity in the business server design and increasing the burden of business development and deployment maintenance.
[0072] Therefore, a technical solution is needed that can effectively optimize the congestion control process in the process of using the TCP protocol for data transmission, reduce the data transmission delay, and increase the data transmission rate, such as reducing the delay of the start-up scene and improving the user experience. And it is also necessary to reduce the implementation cost and complexity.
[0073] In view of this, the present application provides a method, system and device for data transmission, the system comprising: a terminal device, a wireless access network device and a service server. When the terminal device requests resources from the service server through the network provided by the wireless access network device, the terminal device first establishes a network layer channel with the wireless access network device, and obtains the link quality information between the terminal device and the wireless access network device in real time. The problem of hysteresis of link quality information is avoided, and the link quality information can reflect the network congestion between the mobile phone and the base station in real time. After the terminal device obtains the link quality information, the slow start initial value and the slow start threshold value are determined according to the first obtained link quality information, and the TCP congestion control is started using the slow start initial value and the slow start threshold value. For data transmission between the terminal device and the wireless access network device, a higher data transmission rate can be quickly achieved, and the delay of the terminal device obtaining resources from the service server can be reduced. In addition, the terminal device continuously determines a new slow start threshold value or a fast recovery starting value according to the subsequent real-time link quality information, and uses the new slow start threshold value or the fast recovery starting value to perform TCP congestion control, so that a stable and high-speed transmission rate can be achieved.
[0074] It should be understood that in the embodiment of the present application, the larger the congestion window of the terminal device, the faster the data transmission rate between the terminal device and the network. For example, the faster the rate at which the terminal device transmits data to the network device through the TCP transmission channel, the faster the rate at which the network device transmits data to the terminal device through the TCP transmission channel. In other words, increasing the congestion window of the terminal device means that the congestion window of the network device will also increase.
[0075] refer to Figure 4 , Figure 4 The figure shows a schematic diagram of a communication scenario applicable to an embodiment of the present application. Figure 4As shown, the technical solution provided by the present application can be applied in scenarios where mobile phones, tablets, personal computers (PCs), large-screen devices and other devices send data or resources to business servers through communication networks, or business servers send resources to these devices. For example, in the start-up scenario, the terminal device opens a browser application to load the homepage, opens a music player application to load the music player interface, opens a video player application to load the video player interface, and the Changlian call user clicks the "answer" control to actually start the call process, etc. In these scenarios, the application on the terminal device can send a request based on the hypertext transfer protocol (HTTP) or a request based on a network socket (websocket) to the business server, which is used to request resources from the business server. In this process, the technical solution provided by the present application can be used. Exemplarily, resources may include: files, pictures, audio and video, signaling or messages, and other resources corresponding to different business scenarios. In Figure 4 In the example shown, the service server can be located in the cloud, and the communication network can be a network provided by a wireless access network device (such as a base station). In other words, the terminal device and the service server communicate through the wireless access network device, and the data transmission between the terminal device and the service server needs to be transferred through the wireless access network device. The transmission channel between the terminal device and the wireless access network device is a transmission channel based on the TCP protocol. For example, when the terminal device sends data to the service server, the terminal device first transmits the data to the network device (such as a base station) through the TCP transmission channel, and then the network device forwards it to the service server. When the service server sends data to the terminal device, the service server first sends the data to the network device (such as a base station), and then the network device transmits it to the terminal device through the TCP transmission channel.
[0076] It should be understood that Figure 4 The communication scenarios shown are merely exemplary and should not impose any limitation on the communication scenarios to which the embodiments of the present application are applicable. For example, in other embodiments of the present application, the embodiments of the present application may also be applied in other communication scenarios, which are not limited by the embodiments of the present application.
[0077] First, the communication system provided by this application is introduced.
[0078] Figure 5 FIG. 1 is a schematic diagram of a communication system provided in an embodiment of the present application. Figure 5As shown, the communication system includes: terminal devices (such as mobile phones, tablets, large-screen devices, PCs, etc.), wireless access network devices (such as base stations), and service servers. The terminal device communicates with the service server through the network provided by the wireless access network device and obtains resources or data from the service server. The terminal device communicates with the wireless access network device through the cellular network and obtains link quality information in real time.
[0079] exist Figure 5 In the example shown, the wireless access network device provides a high-quality communication channel for the terminal device by coordinating wireless network, bearer network, core network and other devices. For example, the wireless access network device may include an air interface channel for wireless communication with the terminal device, providing basic support for the relevant applications on the terminal device to obtain the network link quality.
[0080] The terminal device is integrated with a software development kit (SDK), which has the following functions: link quality acquisition function, decision-making function, etc. In other words, the terminal device may include (or the SDK may include) a link quality acquisition module and a decision-making module. Various applications on the terminal device (including system applications and third-party applications, etc.) can use the SDK to communicate with the service server and obtain resources provided by the service server.
[0081] It should be understood that in the embodiments of the present application, as a possible implementation method, the SDK can be integrated into the application of the terminal device, or the SDK can be installed on the application of the terminal device, and the application on the terminal device can use the SDK to implement link quality acquisition functions and decision-making functions, etc.; as another possible implementation method, the SDK can be integrated into the system or kernel of the terminal device, etc., instead of being integrated into the application of the terminal device, and the application on the terminal device can call the SDK to implement link quality acquisition functions and decision-making functions, etc.
[0082] When a user opens an application on a terminal device (for example, the first application), the link quality acquisition module can intercept the HTTP request or the websocket-based request (for example, a service request) sent by the first application on the terminal device to the service server, and first establish a network layer channel with the wireless access network device. Through the network layer channel, the terminal device can obtain the link quality information between the terminal device and the wireless access network device in real time (for example, at the millisecond (ms) level). For example, the link quality information may include: resource utilization, the recommended transmission rate (suggest Transport Rate) of the wireless access network device, etc. And continuous polling, that is, the terminal device continuously (for example, periodically) obtains the link quality information through the network layer channel. Exemplarily, the resource utilization may include the resource block usage rate (RB Usage Rate), etc. Optionally, the link quality acquisition module may be located in the network layer of the terminal device.
[0083] After the link quality acquisition module acquires the link quality information, the link quality information may be sent to the decision module. Optionally, the decision module may be located in the application layer of the terminal device.
[0084] Since the link quality acquisition module can continuously (or multiple times) acquire the link quality information between the wireless access network device and the link quality acquisition module, the link quality acquisition module can send the continuously (or multiple times) acquired link quality information to the decision module of the application layer.
[0085] In the embodiment of the present application, the link quality information first acquired by the link quality acquisition module or the decision module can be understood as the link quality information acquired when the user just opens a certain application.
[0086] After the decision module receives the link quality information sent by the link quality acquisition module for the first time (first time), the decision module can determine the network congestion between the terminal device and the wireless access network device based on the link quality information received for the first time (first time), and determine the slow start initial value and the slow start threshold value (SSthresh), which may also be referred to as the first slow start threshold value. Optionally, in an embodiment of the present application, the decision module may be located at the application layer of the terminal device. After determining the slow start initial value and the slow start threshold value, the decision module may send the slow start initial value and the slow start threshold value (SSthresh) to the transport layer of the terminal device, i.e., transmit them across layers to the transport layer (sent from the application layer to the transport layer). In an embodiment of the present application, the transport layer may also be referred to as the TCP transport layer.
[0087] After the transport layer receives the slow start initial value and the slow start threshold value (SSthresh), it uses the slow start initial value and the slow start threshold value (for example, previously determined by the transport layer) before the received parameters are updated (or replaced). The decision module can also send a command to the transport layer of the terminal device to start the TCP congestion control process. After receiving the command, the transport layer uses the slow start initial value and the slow start threshold value (SSthresh) sent by the decision module to perform the TCP congestion control process, and intercepts the HTTP request or the request based on the network socket (websocket) to the service server through the transport layer channel. At this time, the resource request of the service of the first application on the terminal device is officially initiated, and the TCP congestion control process is also officially started (started).
[0088] For example, if the slow start initial value is the same as the slow start threshold value (SSthresh), the linear congestion avoidance process is directly entered; if the slow start initial value is less than the slow start threshold value (SSthresh), the congestion window starts from the slow start initial value and enters the slow start phase. After the congestion window changes exponentially to the slow start threshold value (SSthresh), the congestion avoidance process is entered. This achieves the effect of reducing latency in the start-up scenario and increasing the data transmission rate, such as reducing the latency in the start-up scenario and improving user experience.
[0089] After the above-mentioned TCP congestion control process starts, that is, after the first application is opened or started, during the operation of the first application, the link quality acquisition module can continuously (for example, periodically) obtain link quality information through the network layer channel and send it to the decision module of the application layer.
[0090] In the embodiment of the present application, the link quality information obtained by the decision module each time after the first time (first time) can also be understood as the link quality information obtained periodically or continuously during the operation of a certain application.
[0091] For each time the decision module receives the link quality information sent by the link quality acquisition module after the first time (first time), optionally, as a possible implementation manner, the processing manner of the decision module is as follows:
[0092] The decision module can determine (or judge) whether the network is congested based on the link quality information;
[0093] If the decision module determines that the network is congested, the decision module can determine a fast recovery window value based on the link quality information, and transmit the indication information of the network congestion and the fast recovery window value across layers (i.e., from the application layer to the transport layer) to the transport layer. After the transport layer receives the indication information, it knows that the network is congested, and then uses the fast recovery window value (i.e., the fast recovery starting point) to perform a fast recovery process: that is, the transport layer sets the value of the current congestion window to the fast recovery window value and then starts the congestion avoidance process. Optionally, the fast recovery window value can be greater than the first slow start threshold value.
[0094] If the decision module determines that the network is not congested, one possible implementation is: the decision module sends a notification to the transport layer, instructing the transport layer to continue the TCP congestion control process, that is, to use the previous slow start threshold value (such as the first slow start threshold value) to continue the TCP congestion control process (such as continuing the congestion avoidance process); another possible implementation is: the decision module can determine a new slow start threshold value (such as the second slow start threshold value) based on the acquired link quality information, and transmit the indication information that the network is not congested and the new slow start threshold value to the transport layer. After receiving the indication information, the transport layer knows that the network is not congested, and the transport layer uses the new slow start threshold value to perform the congestion avoidance process. Exemplarily, the new slow start threshold value can be greater than the first slow start threshold value.
[0095] For each time the decision module receives the link quality information sent by the link quality acquisition module after the first time (first time), optionally, as another possible implementation manner, the processing manner of the decision module is as follows:
[0096] If the decision module determines that the network is congested, the decision module can determine a fast recovery window value based on the link quality information and transmit the fast recovery window value to the transport layer. The transport layer can decide whether the network is congested by itself. For example, the transport layer collects network status information by itself, such as throughput, RTT, loss rate, etc. The transport layer decides whether the network is congested based on the network status information collected by itself. If the transport layer determines that the network is congested, the fast recovery window value is used to perform a fast recovery process.
[0097] If the decision module determines that the network is not congested, one possible implementation is: the decision module sends a notification to the transport layer, instructing the transport layer to continue the TCP congestion control process, that is, to use the previous slow start threshold value (such as the first slow start threshold value) to continue the TCP congestion control process (such as continuing the congestion avoidance process); another possible implementation is: the decision module can determine a new slow start threshold value (such as the second slow start threshold value) based on the acquired link quality information, and transmit the new slow start threshold value to the transport layer. The transport layer can decide whether the network is congested by itself. For example, the transport layer will collect network status information by itself, such as throughput, RTT, loss rate, etc. The transport layer decides whether the network is congested based on the network status information collected by itself. If the transport layer determines that the network is not congested, the transport layer uses the new slow start threshold value to perform the congestion avoidance process. Exemplarily, the new slow start threshold value can be greater than the first slow start threshold value.
[0098] It should be understood that the several processing methods of the above-mentioned decision module are merely exemplary. In other implementation methods of the present application, the decision module may also have different processing methods based on the received link quality information, and the embodiments of the present application are not limited here.
[0099] exist Figure 5 In the example shown, the business server stores resources and data requested by users, and the business server provides stable, reliable, and powerful computing and storage capabilities for various applications on terminal devices in the cloud.
[0100] exist Figure 5 In the example shown, the link quality acquisition module on the terminal device can establish a network layer channel with the wireless access network device to obtain link quality data (ie, link quality information) in real time (ms level).
[0101] exist Figure 5 In the example shown, the transport layer channel may include two sections. One section is the transport layer channel established between the transport layer of the terminal device and the wireless access network device. This section of the transport layer channel is established based on the cellular network between the terminal device and the wireless access network device. This section of the transport layer channel is a TCP transport channel. 80% of network congestion problems are caused by this section of the transport channel. The other section is the transport layer channel established between the wireless access network device and the service server. For example, the transport layer channel may be a wired network channel.
[0102] exist Figure 5In the example shown, the application layer of the terminal device can establish an application layer channel with the wireless access network device. For example, the decision module can be located in the application layer of the terminal device, and the decision module can establish an application layer channel with the wireless access network device. The application layer perceives application layer requests such as HTTT or Websocket. The application layer is built on the transport layer. The optimization of the transport layer TCP protocol congestion control in the embodiment of the present application can optimize the transmission startup speed of the application layer.
[0103] In the communication system provided by the embodiment of the present application, the "quality acquisition module" in the terminal device will establish a network layer channel with the wireless access network device when the application is started, and obtain the link quality information between the terminal device and the wireless access network device in real time or continuously through the network layer channel, and send it to the decision module in the terminal device. The decision module determines the TCP protocol congestion control parameters (slow start initial value and slow start threshold value, etc.) suitable for the current network status based on the link quality information and transmits it across the layer to the transport layer of the terminal device. The transport layer receives and uses these parameters to perform the TCP congestion control process. The business server does not need to build additional computing power for processing resources (such as compressing and reducing stored resources, etc.), and only needs to perform a small amount of calculation on the terminal device, which simplifies the implementation of the business server, the system structure is relatively simple, and the cost of business development and deployment maintenance is low, which is easy to implement.
[0104] Exemplarily, in the embodiments of the present application, the terminal devices may include: mobile phones, tablet computers, laptop computers, ultra-mobile personal computers (UMPCs), handheld computers, netbooks, personal digital assistants (PDAs), wearable electronic devices, virtual reality devices, and other IOT (internet of things) devices, 1+8+N devices, etc., and the embodiments of the present application are not limited thereto.
[0105] exist Figure 5In the communication system shown, various devices in the communication system (such as terminal devices and wireless access network devices, wireless access network devices and service servers, etc.) can be interconnected through a communication network. The exemplary communication network can be a wired network or a wireless network. For example, the communication network between the terminal device and the wireless access network device can be a cellular system such as a third generation partnership project (3GPP) related system, such as a Global System of Mobile communication (GSM) system, a Code Division Multiple Access (CDMA) system, a Wideband Code Division Multiple Access (WCDMA) system, a General Packet Radio Service (GPRS), a Long Term Evolution (LTE) system, a LTE Frequency Division Duplex (FDD) system, a LTE Time Division Duplex (TDD), a Universal Mobile Telecommunication System (UMTS), a Worldwide Interoperability for Microwave Access (WiMAX) communication system, a 4G, 5G mobile communication system (including independent networking and non-independent networking), a New Radio (NR), or a future-oriented evolution system (such as a 6G mobile communication system), or an open access network (open RAN, O-RAN or ORAN), cloud radio access network (cloudradio access network, CRAN), or a communication system that integrates two or more of the above systems. The embodiments of the present application are not limited here. The communication network between the wireless access network device and the service server can be a wired network channel, or it can also be the above-mentioned wireless network channel.
[0106] That is to say, each device in the communication system can form a network (ie, networking) according to certain communication protocols and networking strategies, so that each device in the system can communicate with each other.
[0107] In one possible scenario, the wireless access network device may be a base station, an evolved NodeB (eNodeB), an access point (AP), a transmission reception point (TRP), a next generation NodeB (gNB), a next generation base station in a sixth generation (6G) mobile communication system, a base station in a future mobile communication system, etc. The RAN node may be a macro base station, a micro base station or an indoor station, a relay node or a donor node, or a wireless controller in a CRAN scenario. All or part of the functions of the wireless access network device in the present application may also be implemented by software functions running on hardware, or by virtualization functions instantiated on a platform (such as a cloud platform). The wireless access network device in the present application may also be a logical node, a logical module or software that can implement all or part of the functions of the wireless access network device.
[0108] In the embodiment of the present application, the wireless access network device may also be referred to as a network device or other names, etc., and the embodiment of the present application is not limited here.
[0109] It should be understood that Figure 5 The communication system shown is only exemplary and should not impose any limitation on the communication system to which the embodiments of the present application are applicable. For example, in other embodiments of the present application, the communication system may further include more terminal devices, or may further include more service servers, etc. The embodiments of the present application are not limited here.
[0110] The following will illustrate the data transmission method provided by the embodiment of the present application with reference to specific examples. For example, the data transmission method provided by the embodiment of the present application can be applied to Figure 5 Of course, the data transmission method provided in the embodiment of the present application can also be applied in other communication systems, and the embodiment of the present application is not limited here.
[0111] In some possible implementations, in scenarios where a user needs to use a terminal device to request resources from a service server, including requesting resources from a server in a start-up scenario and requesting resources from a service server in other scenarios, the method flow provided in the embodiment of the present application can be triggered. For example, a user can open an application on a terminal device, and the method flow provided in the embodiment of the present application can be triggered to execute during the process of the application displaying the home interface (i.e., the start-up scenario) and after the application displays the home interface.
[0112] In other possible implementations, in scenarios where the user needs to use a terminal device to request some relatively large resources from a business server, for example, when the user requests relatively large video resources, audio resources, or image resources from a business server, the user can click on the corresponding APP on the terminal device. After the user clicks, the method flow provided in the embodiment of the present application can be triggered and executed.
[0113] In other words, the method provided in the embodiment of the present application can be applied in both the start-up scenario and the non-start-up scenario.
[0114] Assumption: Take the scenario where a user opens a browser application on a terminal device (a mobile phone) to load the home page. When the user clicks the icon corresponding to the "browser application", the application is triggered to send an HTTP request or a websocket-based request to the business server to request the home page resource of the browser application from the business server. Assume that the device ID of the mobile phone is "d001", which is the unique identifier of the device, the intranet IP address of the mobile phone is 10.176.256.134, and the extranet (public network) IP address of the mobile phone is 118.167.22.36.
[0115] First, the SDK is integrated on the mobile phone. In the embodiment of the present application, the SDK is cross-operating system, for example, it supports Harmony, Or other operating systems. Exemplarily, the SDK supports at least the following two capabilities, or the SDK includes the following two modules:
[0116] A link quality acquisition function or a link quality acquisition module, and a decision-making function or a decision-making module.
[0117] Among them, the link quality acquisition module can intercept the HTTP request or the websocket-based request sent by the browser application on the mobile phone to the service server, and the link quality acquisition module can establish a network layer channel with the wireless access network device, through which the link quality acquisition module can obtain the link quality information between the wireless access network device in real time (for example, at the millisecond (ms) level). And continuous polling, that is, continuous or periodic acquisition of link quality information. After the link quality acquisition module obtains the link quality information, it can send the link quality information to the decision module. Optionally, the link quality acquisition module can be located in the network layer of the mobile phone, and the decision module can be located in the application layer of the mobile phone.
[0118] The decision module can determine the network congestion between the mobile phone and the wireless access network device based on the link quality information obtained for the first time, and determine the slow start initial value and the slow start threshold value (SSthresh). After determining the slow start initial value and the slow start threshold value (SSthresh), the decision module can send the slow start initial value and the slow start threshold value (SSthresh) to the transport layer of the terminal device, that is, cross-layer transmission to the transport layer (sent from the application layer to the transport layer). The decision module can also issue a command to the transport layer of the mobile phone to start the TCP congestion control process. After receiving the command, the transport layer uses the slow start initial value and the slow start threshold value (SSthresh) sent by the decision module to perform the TCP congestion control process, and intercepts the HTTP request or the request based on the network socket (websocket) to the service server through the transport layer channel. Among them, the transport layer channel can include two sections, one of which is the transport layer channel established between the transport layer of the terminal device and the wireless access network device. The other section is the transport layer channel established between the terminal wireless access network device and the service server.
[0119] Optionally, in an embodiment of the present application, the wireless access network device may provide an interface to the mobile phone or the SDK on the mobile phone, and the mobile phone or the SDK on the mobile phone may establish a network layer channel with the wireless access network device through the interface, and through the network layer channel, the mobile phone may obtain the link quality information between the mobile phone and the wireless access network device in real time (for example, at the millisecond (ms) level). Exemplarily, the input parameters of the interface may be: the intranet IP address and the public network IP address of the mobile phone, and the output parameters of the interface may be: link quality information, for example, including resource usage rate (RB Usage Rate), the transmission rate recommended by the wireless access network device, etc.
[0120] Combine the following Figures 6 to 11 The method for data transmission provided by the embodiment of the present application is described, wherein: Figure 6 What is shown is a schematic flow chart of a data transmission method provided by an embodiment of the present application in the above scenario. Figure 7 and Fig.10 The figure is a flow chart of a method for data transmission in a communication system provided in an embodiment of the present application. Figure 7 The steps in the process mainly include step one to step five. Fig.10 The steps shown mainly include step six and step seven.
[0121] like Figure 6 As shown, the method 600 includes:
[0122] S601, the user clicks the icon corresponding to the "browser" application, triggering the application to send an HTTP request or a websocket-based request to the business server to request the home page resource of the browser application from the business server.
[0123] In some possible implementations, in scenarios where a user needs to use a mobile phone to request resources from a service server, including requesting resources from a server in a start-up scenario and requesting resources from a service server in other scenarios, S601 can be triggered, i.e., the method flow provided in the embodiment of the present application can be triggered. For example, a user can open an application on a mobile phone, and S601 can be triggered during the process of displaying the home page of the application (i.e., the start-up scenario), and after the application displays the home page, i.e., the method flow provided in the embodiment of the present application can be triggered.
[0124] In some other possible implementations, in scenarios where a user needs to use a mobile phone to request some relatively large resources from a business server, for example, a user requests a relatively large video resource, audio resource or image resource from a business server, the user can click on the corresponding APP on the mobile phone. After the user clicks, the method flow provided in the embodiment of the present application can be triggered and executed.
[0125] In other words, the method provided in the embodiment of the present application can be applied in both the start-up scenario and the non-start-up scenario.
[0126] S602, the link quality acquisition module on the mobile phone intercepts the HTTP request or the request based on the network socket, and the link quality acquisition module establishes a network layer channel with the base station. Exemplarily, the link quality acquisition module may be located at the network layer.
[0127] In other words, when the user opens the "browser" application, the link quality acquisition module is triggered to establish a network layer channel with the base station.
[0128] For example, the link quality acquisition module may establish a network layer channel with the base station through an interface provided by the base station.
[0129] S603, the link quality acquisition module on the mobile phone acquires the link quality information between the mobile phone and the base station for the first time through the network layer channel. The link quality information may include at least one of: resource utilization rate (RB Usage Rate), recommended transmission rate (suggest Transport Rate), etc.
[0130] It should be understood that in the embodiment of the present application, the link quality acquisition module can continuously (e.g., periodically) acquire link quality information (i.e., continuously poll) through the network layer channel, for example, it can poll once every 5 ms, that is, acquire link quality information once every 5 ms.
[0131] By establishing a network layer channel between the mobile phone (link quality acquisition module on the mobile phone) and the base station, the link quality information between the mobile phone and the base station can be obtained in real time, which can avoid the problem of lag in the link quality information. The link quality information can reflect the network congestion between the mobile phone and the base station in real time and is not affected by the user's location or time period, thereby ensuring the effectiveness and accuracy of subsequent congestion control using the link quality information.
[0132] The process corresponding to the above S602 and S603 is Figure 7 Step 1 shown in : The browser application establishes a network layer channel with the base station to obtain link quality information in real time.
[0133] S604, the link quality acquisition module on the mobile phone sends the link quality information acquired for the first time to the decision module on the mobile phone.
[0134] Exemplarily, the decision module may be located at the application layer of the mobile phone.
[0135] It should be understood that since the link quality acquisition module acquires the link quality information once at a certain interval, the link quality acquisition module may also send the acquired link quality information to the decision module at a certain interval. In other words, the decision module may receive the link quality information once at a certain interval.
[0136] The process corresponding to the above S604 is Figure 7 Step 2 shown in : passing link quality information to the decision module.
[0137] S605: The decision module determines a slow start initial value and a first slow start threshold value according to the link quality information obtained for the first time.
[0138] In the embodiment of the present application, the link quality information obtained for the first time can be understood as the link quality information obtained when the user just opens the "browser" application.
[0139] In some possible implementations, the decision module may calculate (or decide) the slow start initial value and the first slow start threshold value in the following manner. Optionally, the slow start initial value and the first slow start threshold value may also be referred to as decision data, or in other words, the decision data may include the slow start initial value and the first slow start threshold value.
[0140] In the embodiment of the present application, the link quality information (i.e., link quality information at any time) may include resource utilization rate (RB Usage Rate), recommended transmission rate (suggest Transport Rate), etc. Among them, the resource utilization rate (rbUsageRate) can reflect the congestion of the wireless network between the mobile phone and the base station, and two congestion thresholds can be predefined, such as n1 and n2, and the units of n1 and n2 can be percentages. When n1 is less than n2, when the resource utilization rate (rbUsageRate) is less than or equal to n1, the network is considered to be uncongested; when the resource utilization rate (rbUsageRate) is greater than n1 and less than or equal to n2, the network is considered to be possibly congested; when the resource utilization rate (rbUsageRate) is greater than n1 and less than or equal to n2, the network is considered to be congested; when the resource utilization rate (rbUsageRate) is greater than n2, the network is considered to be congested.
[0141] For example, the value of n1 is 80%, and the value of n2 is 90%. The following will take these two thresholds as examples for description.
[0142] When the resource utilization rate (rbUsageRate) is less than 80%, the network is considered to be uncongested and the network status between the mobile phone and the base station is good. In this case, the slow start initial value and the first slow start threshold value are the same, and the slow start initial value or the first slow start threshold value can be calculated using the following formula:
[0143] The slow start initial value or the first slow start threshold value=(recommended transmission rate×1024×RTT×0.001) / MSS.
[0144] MSS is the maximum segment size (MSS) when the mobile phone transmits data using the TCP protocol. For example, the values of the two parameters, MSS and RTT, can be determined by the mobile phone and the base station in advance, or can be predefined. The unit of MSS is bytes, and the unit of RTT is milliseconds. For example, if the RTT is 1ms, the MSS is 800 bytes, and the recommended transmission rate is 7000KB / s, the slow start initial value and the first slow start threshold value are both 9.
[0145] When the resource utilization rate (rbUsageRate) is greater than 80% and less than or equal to 90%, it is considered that the network between the mobile phone and the base station may be congested. In this case, the slow start initial value is less than the first slow start threshold value. The first slow start threshold value can be calculated using the following formula:
[0146] The first slow start threshold value = (recommended transmission rate × 1024 × RTT × 0.001) / MSS.
[0147] The slow start initial value can be determined as follows:
[0148] Slow start initial value = first slow start threshold value - avoidance value;
[0149] Optionally, the avoidance value may be predefined, or may be determined by agreement in advance between the mobile phone and the base station. For example, the avoidance value may be 3. Of course, in other implementations of the present application, the avoidance value may also be other values, which are not limited in the present application embodiment.
[0150] When the resource utilization rate (rbUsageRate) is greater than 90%, the network between the mobile phone and the base station is considered to be congested. In this case, the decision module may not calculate the slow start initial value and the first slow start threshold value, and the mobile phone will use the TCP default congestion control mechanism for congestion control, that is, use the existing TCP congestion control mechanism for congestion control.
[0151] The process corresponding to the above S604 is Figure 7 Step three shown in: The decision module makes a decision.
[0152] It should be understood that in S605, the slow start initial value and the first slow start threshold value determined by the decision module can be determined based on the first (or first) link quality information sent by the link quality acquisition module. After determining the slow start initial value and the first slow start threshold value, before a complete data transmission is completed, the decision module can also receive multiple link quality information sent by the link quality acquisition module. For each subsequent link quality information, the decision module can determine whether the network is congested, and use the above calculation method to determine a slow start threshold value (for example, it can be called a second slow start threshold value) or a fast recovery window value (the fast recovery window value can also be called a fast recovery starting point), and send the indication information of whether the network is congested, and the calculated second slow start threshold value or fast recovery window value to the transport layer.
[0153] It should be understood that the specific method in which the decision module calculates the slow start initial value and the first slow start threshold value according to the link quality information is merely exemplary, and in other implementations of the present application, the decision module may also determine the slow start initial value and the first slow start threshold value using a method different from the above calculation method. The present application embodiment is not limited thereto.
[0154] By using the link quality information between the base station and the real-time acquisition to determine the slow start initial value and slow start threshold value of the congestion control process, it is ensured that the slow start initial value and the slow start threshold value correspond to the current network status, and the accuracy and effectiveness of the slow start initial value and the slow start threshold value are improved, so that the congestion control process can be optimized, a higher transmission rate can be achieved quickly, the delay of data transmission can be reduced, and the user experience can be improved.
[0155] S606: The decision module sends the determined slow start initial value and the first slow start threshold value to the transport layer.
[0156] Optionally, since the decision module is located at the application layer, the cross-layer transmission of the slow start initial value and the first slow start threshold value (sent from the application layer to the transport layer) can be achieved.
[0157] The process corresponding to the above S606 is Figure 7 Step 4 shown in: The decision data is passed to the transport layer.
[0158] S607: The transport layer starts a TCP congestion control process using a slow start initial value and a first slow start threshold value, and sends an interception HTTP request or a network socket request to a base station.
[0159] The transport layer of the mobile phone receives the slow start initial value and the first slow start threshold value transmitted by the decision module of the application layer, and updates (replaces) the previous slow start initial value and the slow start threshold value with the slow start initial value and the first slow start threshold value.
[0160] After the transport layer updates the slow start initial value and the slow start threshold value, the application layer of the mobile phone can also send a start command to the transport layer to start the TCP congestion window regulation process. Since the transmission channel between the mobile phone and the base station is a TCP transmission channel, the data transmission rate on the channel can be controlled using the TCP congestion control mechanism. The transport layer uses the slow start initial value and the first slow start threshold value sent by the decision module to perform the TCP congestion control process. For example, if the slow start initial value is the same as the first slow start threshold value (SSthresh), the linear congestion avoidance process is directly entered; if the slow start initial value is less than the first slow start threshold value (SSthresh), the congestion window starts from the slow start initial value and enters the slow start phase. After the congestion window changes exponentially to the first slow start threshold value (SSthresh), the congestion avoidance process is entered. Using the above-mentioned TCP congestion control process, the intercepted HTTP request or the request based on the network socket is sent to the base station through the transport layer channel. At this time, the resource request of the browser application on the mobile phone is officially initiated, and the TCP congestion control process also begins. In other words, after S607, the method provided in the embodiment of the present application can be used to perform a TCP congestion control process between the mobile phone and the base station to control the transmission speed of data (ie, messages) between the mobile phone and the base station.
[0161] The process corresponding to the above S607 is Figure 7 Step 5 shown in : The page starts loading and the TCP congestion control process begins.
[0162] S608: The base station forwards the HTTP request or the network socket request to the service server.
[0163] After S608, the transmission process of business data between the mobile phone and the business server officially begins, and the transmission of these business data (from the mobile phone to the business server and from the business server to the mobile phone) needs to be transferred through the base station, that is, it needs to pass through the transmission channel between the mobile phone and the base station (from the mobile phone to the base station and from the base station to the mobile phone).
[0164] For example, Figure 8 What is shown is a schematic diagram of the change of congestion window when TCP congestion control is performed using the method provided in an embodiment of the present application and when TCP congestion control is performed using a traditional (existing) method. Figure 8 The situation shown is that the slow start initial value and the first slow start threshold value are the same, for example, both are 9. When the method provided by the present application is used for TCP congestion control, the congestion window directly enters the congestion avoidance phase from 9. When TCP congestion control is performed in a traditional manner, the congestion window directly enters the slow start phase from 1, and enters the congestion avoidance phase after the congestion window becomes 8 (the slow start threshold value is 8). Compared with TCP congestion control using a traditional method, a larger congestion window can be achieved under the same transmission round. In addition, when TCP congestion control is performed using the method provided in an embodiment of the present application, a larger congestion window can be achieved under a smaller transmission round, that is, a larger start window is obtained, and a higher transmission rate can be quickly achieved, the delay of data transmission is reduced, and the user experience is improved.
[0165] In the data transmission method provided by the embodiment of the present application, when the terminal device requests resources from the service server through the network provided by the wireless access network device, the link quality acquisition module located at the network layer in the terminal device first establishes a network layer channel with the wireless access network device, and obtains the link quality information between the terminal device and the wireless access network device in real time. The problem of hysteresis of link quality information is avoided, and the link quality information can reflect the network congestion between the mobile phone and the base station in real time. The link quality acquisition module can pass the link quality information obtained in real time to the decision module located at the application layer in the terminal device. After the decision module obtains the link quality information, it determines the slow start initial value and slow start threshold value suitable for the current network state according to the link quality information obtained for the first time and transmits them across layers to the transmission layer of the terminal device. The transmission layer uses the slow start initial value and slow start threshold value to start TCP congestion control, and controls the data transmission rate between the terminal device and the base station. For data transmission between the terminal device and the wireless access network device, it can quickly reach a higher data transmission rate and reduce the delay of the terminal device in obtaining resources from the service server.
[0166] Fig. 9What is shown is a schematic flowchart of another example of a data transmission method provided by an embodiment of the present application in the above scenario.
[0167] It should be understood that in the embodiments of the present application, Fig. 9 S609 to S613 shown in the figure can be executed as a separate method, that is, the process of S609 to S613 can be decoupled from S601 to S608. Of course, S609 to S613 can also be combined with S601 to S608 to be executed as an integral method.
[0168] For example, the process shown from S601 to S608 may be steps executed when a user opens an application, and the process shown from S609 to S613 may be steps executed when the application is running.
[0169] It should also be understood that, in a complete data transmission process between the mobile phone and the service server, S609 to S613 as a whole method can be executed multiple times. For example, after the link quality acquisition module obtains the link quality information for the first time (first time) through the network layer channel, S609 to S613 can be executed for each link quality information obtained after the first time (first time).
[0170] In the embodiment of the present application, the link quality information obtained each time after the first time (first time) can also be understood as the link quality information obtained periodically or continuously during the operation of the "browser" application.
[0171] for Fig. 9 For the description of S601 to S608 in the above Figure 6 The description of S601 to S608 in the above will not be repeated here for the sake of brevity. Fig. 9 The description starts from S609 in FIG.
[0172] S609, the link quality acquisition module on the mobile phone acquires the link quality information between the mobile phone and the base station in real time through the network layer channel, and continuously polls.
[0173] For example, polling may be performed every 5 ms, that is, link quality information may be obtained every 5 ms.
[0174] S610, the link quality acquisition module on the mobile phone sends the link quality information acquired multiple times to the decision module on the mobile phone respectively.
[0175] It should be understood that since the link quality acquisition module acquires the link quality information once at a certain interval, the link quality acquisition module may also send the acquired link quality information to the decision module at a certain interval. In other words, the decision module may receive the link quality information once at a certain interval.
[0176] For example, the link quality acquisition module may send the link quality information received each time after the first time to the decision module.
[0177] S611, the decision module determines whether the network is congested according to the link quality information obtained each time.
[0178] It is understandable that the “each time” in S611 can be understood as: each time after the first time (first time).
[0179] For example, the decision module can determine whether the network is congested according to the resource utilization in the link quality information. The process of the decision module determining whether the network is congested can refer to the above S605 process, which will not be repeated here for brevity.
[0180] S612a: If the network is congested, the determined fast recovery window value and indication information of the network congestion are sent to the transport layer.
[0181] For example, if the decision module determines that the network is congested, the decision module can determine a fast recovery window value (the fast recovery window value can also be called a fast recovery starting point) based on the link quality information, and transmit the indication information of the network congestion and the fast recovery window value across layers (i.e., sent from the application layer to the transport layer) to the transport layer. If the decision module determines that the network is congested, the decision module can determine a fast recovery window value based on the link quality information, and transmit the indication information of the network congestion and the fast recovery window value across layers (i.e., sent from the application layer to the transport layer) to the transport layer.
[0182] Exemplarily, the decision module can use the value obtained by dividing the congestion window value corresponding to the network congestion by 2 (of course, the value obtained by dividing the congestion window value corresponding to the network congestion by 2 plus or minus a preset value) as the fast recovery window value. The embodiment of the present application does not limit the method for determining the fast recovery window value.
[0183] Of course, in S612a, as another possible implementation, the decision module may not send the indication information of the network congestion to the transport layer.
[0184] S612b: If the network is not congested, send the determined second slow start threshold and indication information that the network is not congested to the transport layer. Or;
[0185] S612c: If the network is not congested, send indication information to the transport layer to instruct to continue the TCP congestion control process.
[0186] Among them, S612b and S612c are in an either-or relationship, that is, if S612b is executed, S612c is not executed; or if S612c is executed, S612b is not executed.
[0187] For the above-mentioned S612b and S612c, if the decision module determines that the network is not congested, one possible implementation method is: the decision module sends an indication information to the transport layer, instructing the transport layer to continue the TCP congestion control process, that is, to use the previous slow start threshold value (for example, the first slow start threshold value) to continue the TCP congestion control process (for example, continue the congestion avoidance process); another possible implementation method is: the decision module can determine a new slow start threshold value (second slow start threshold value) based on the acquired link quality information, and transmit the indication information that the network is not congested and the new slow start threshold value to the transport layer.
[0188] For example, the decision module may determine the second slow start threshold value according to the recommended transmission rate, RTT, and MSS in the currently acquired link quality information. The specific process of the decision module determining the second slow start threshold value may refer to the process of the decision module determining the first slow start threshold value, except that the recommended transmission rate may be different and the RTT may also be different. For the sake of brevity, it will not be described here.
[0189] Of course, in S612b, as another possible implementation, the decision module may not send the indication information that the network is not congested to the transport layer.
[0190] The process corresponding to the above S609 to S612 (including S612a, S612b, S612c) is Fig.10 Step 6 shown in : The decision module continues to make decisions and passes the decision information to the transport layer.
[0191] S613: The transport layer continues the congestion control process according to the information sent by the decision module.
[0192] In other words, the transport layer can control the data transmission rate between the terminal device and the base station using TCP congestion control parameters based on the information sent by the decision module.
[0193] For example, for S612a, after receiving the indication information, the transport layer determines that the network is congested, and then uses the fast recovery window value to perform a fast recovery process: that is, the transport layer sets the current congestion window value to the fast recovery window value and then starts the congestion avoidance process. Optionally, the fast recovery window value may be greater than the first slow start threshold value.
[0194] For S612a, if the decision module does not send an indication of network congestion to the transport layer, the transport layer can decide whether the network is congested by itself. For example, the transport layer collects network status information by itself, such as throughput, RTT, loss rate, etc. The transport layer decides whether the network is congested based on the network status information collected by itself. If the transport layer determines that the network is congested, the fast recovery window value is used to perform a fast recovery process. If it is determined that the network is not congested, the TCP congestion control process can be continued without using the fast recovery window value for a fast recovery process.
[0195] For another example: for S612b, after receiving the indication information, the transport layer knows that the network is not congested, and the transport layer uses the second slow start threshold to perform a congestion avoidance process. Exemplarily, the second slow start threshold may be greater than the first slow start threshold.
[0196] For S612b, if the decision module does not send the indication information of network congestion to the transport layer, the transport layer can decide whether the network is congested by itself. If the transport layer determines that the network is not congested, the transport layer uses the second slow start threshold to perform congestion avoidance process.
[0197] For another example: for S612c, after receiving the indication information, the transport layer continues the TCP congestion control process, that is, uses the previously obtained slow start threshold value (such as the first slow start threshold value) to continue the TCP congestion control process (such as continuing the congestion avoidance process).
[0198] The process corresponding to the above S613 is Fig.10 Step 7 shown in: Continuous cross-layer protocol decision-making, the transport layer continues the TCP congestion control process.
[0199] For example, Fig.11 What is shown is a schematic diagram of the change of congestion window when TCP congestion control is performed using the method provided in an embodiment of the present application and when TCP congestion control is performed using a traditional method. Fig.11The illustrated case is where the slow start initial value and the first slow start threshold value are the same, for example, both are 9. The method provided in the embodiment of the present application is used to perform TCP congestion control, and the congestion window directly enters the congestion avoidance phase from 9. Using the traditional method for TCP congestion control, the congestion window directly enters the slow start phase from 1, and enters the congestion avoidance phase after the congestion window becomes 8 (the slow start threshold value is 8). Compared with the traditional method for TCP congestion control, a larger congestion window can be achieved under the same transmission round. In the next transmission round (i.e., transmission round 4) after the congestion window reaches 12, the decision module decides that the second slow start threshold value is 16, and the decision module of the transport layer or the application layer determines that the network is not congested, then the second slow start threshold value is directly used for the congestion avoidance process. The congestion window changes from 12 to 16, which means that the sending window will also increase. Compared with the traditional method of TCP congestion control (i.e., the slow linear trial process of the congestion window), the continuous decision-making of the application layer can quickly respond to changes in network conditions, making the congestion window more flexible and fast to change. It can achieve a larger congestion window with a smaller transmission round, that is, a larger send window, which can quickly achieve a higher transmission rate and reduce the delay of data transmission.
[0200] For example, Fig.12 What is shown is another example of a schematic diagram of the change of the congestion window when TCP congestion control is performed using the method provided in an embodiment of the present application and when TCP congestion control is performed using a traditional method. Fig.12The example shown is the case where the slow start initial value and the first slow start threshold value are the same, for example, both are 9. The method provided in the embodiment of the present application is used to perform TCP congestion control. The congestion window directly enters the congestion avoidance stage from 9. After 1-2 transmission rounds, it is found that the network condition is good, and the congestion window continues to increase. Congestion occurs when the transmission round is 3 and the congestion window is 12. After congestion occurs, the decision module can be used to start the trial with the fast recovery window value (for example, 10) determined according to the current (real-time) network state, that is, the congestion window directly enters the congestion avoidance stage from 10. When TCP congestion control is performed in a traditional way, the congestion window enters the slow start stage from 1, and the congestion avoidance stage begins after the congestion window becomes 8 (the slow start threshold value is 8). After multiple transmission rounds, it is found that the network condition is good, and the congestion window continues to increase to 12. Congestion occurs when the congestion window is 12. After congestion occurs, it is necessary to try with a smaller fast recovery window value (i.e., the fast recovery starting point). Compared with the traditional method for TCP congestion control, a larger congestion window can be achieved under the same transmission round. Moreover, when the method provided by the present application is used for TCP congestion control, it only takes 3 transmission rounds for the congestion window to reach 12. When the traditional method is used for TCP congestion control, the congestion window slow start changes from 1 to 8 after 3 transmission rounds, and the congestion window reaches 12 after 7 transmission rounds. When the method provided by the present application is used for TCP congestion control, a higher transmission rate can be quickly achieved, and the delay of data transmission can be reduced.
[0201] In the data transmission method provided by the embodiment of the present application, when the terminal device requests resources from the service server through the network provided by the wireless access network device, the link quality acquisition module located at the network layer in the terminal device first establishes a network layer channel with the wireless access network device, and obtains the link quality information between the terminal device and the wireless access network device in real time. The problem of hysteresis of link quality information is avoided, and the link quality information can reflect the network congestion between the mobile phone and the base station in real time. The link quality acquisition module can pass the link quality information obtained in real time to the decision module located at the application layer in the terminal device. After the decision module obtains the link quality information, it determines the slow start initial value and slow start threshold value suitable for the current network state according to the link quality information and transmits them across layers to the transmission layer of the terminal device. The transmission layer uses the slow start initial value and slow start threshold value to perform TCP congestion control. For data transmission between the terminal device and the wireless access network device, it can quickly reach a higher data transmission rate and reduce the delay of the terminal device in obtaining resources from the service server. In addition, the terminal device continuously (for example, periodically) determines a new slow start threshold value or a fast recovery window value based on real-time link quality information, and uses the new slow start threshold value or the fast recovery window value to continue to perform TCP congestion control, that is, continues to make cross-layer protocol decisions, thereby achieving a stable and high-speed transmission rate.
[0202] It should be understood that the above is only to help those skilled in the art better understand the embodiments of the present application, rather than to limit the scope of the embodiments of the present application. According to the above examples given, those skilled in the art can obviously make various equivalent modifications or changes, for example, some steps in each method of the above method may not be necessary, or some new steps may be added. Or a combination of any two or any multiple embodiments of the above. Such modifications, changes or combined solutions also fall within the scope of the embodiments of the present application.
[0203] It should also be understood that the division of the methods, situations, categories and embodiments in the embodiments of the present application is only for the convenience of description and should not constitute a special limitation. The features of various methods, categories, situations and embodiments can be combined without contradiction.
[0204] It should also be understood that the various numerical numbers involved in the embodiments of the present application are only for the convenience of description and are not used to limit the scope of the embodiments of the present application. The size of the sequence number of the above-mentioned processes does not mean the order of execution. The execution order of each process should be determined by its function and internal logic, and should not constitute any limitation on the implementation process of the embodiments of the present application.
[0205] It should also be understood that the above description of the embodiments of the present application focuses on emphasizing the differences between the various embodiments. The same or similar points that are not mentioned can be referenced to each other. For the sake of brevity, they will not be repeated here.
[0206] The above combination Figure 1-Figure 12 The embodiments of the method and system provided by the embodiments of the present application are described, and the communication device provided by the embodiments of the present application is described below.
[0207] In this embodiment, each device (including the above-mentioned terminal device (such as a mobile phone), network equipment (such as a base station), and a service server) can be divided into functional modules according to the above-mentioned method. For example, each function can be divided into various functional modules, or two or more functions can be integrated into one processing module. The above-mentioned integrated modules can be implemented in the form of hardware. It should be noted that the division of modules in this embodiment is schematic and is only a logical function division. There may be other division methods in actual implementation.
[0208] It should be noted that the relevant contents of each step involved in the above method embodiment can all be referred to the functional description of the corresponding functional module, which will not be repeated here.
[0209] The communication device provided in the embodiment of the present application (including the above-mentioned terminal equipment, network equipment (such as base station), and service server) is used to execute the data transmission method provided in the above-mentioned method embodiment, so that the same effect as the above-mentioned implementation method can be achieved. In the case of adopting an integrated unit, the terminal equipment, network equipment, and service server may include a processing module, a storage module, and a communication module. Among them, the processing module can be used to control and manage the actions of the terminal equipment, network equipment, and service server. For example, it can be used to support the terminal equipment, network equipment, and service server to execute the steps performed by the processing unit. The storage module can be used to support the storage of program codes and data, etc. The communication module can be used to support the communication between the terminal equipment, network equipment (such as base station), service server and other devices.
[0210] Among them, the processing module can be a processor or a controller. It can be a device that implements or executes various exemplary logic boxes, modules and circuits described in conjunction with the disclosure of this application. The processor can also be a combination that implements computing functions, such as a combination of one or more microprocessors, a combination of digital signal processing (DSP) and a microprocessor, etc. The storage module can be a memory. The communication module can specifically be a device that interacts with other terminal devices, such as a radio frequency circuit, a Bluetooth chip, a Wi-Fi chip, etc.
[0211] Exemplarily, the terminal device provided in the present application may include: a link quality acquisition module and a decision module. The functions of the link quality acquisition module and the decision module may refer to the description of the two modules in the above method embodiment, which will not be repeated here.
[0212] In some possible implementations, the link quality acquisition module may be located in the network layer of the mobile phone, and the decision module may be located in the application layer of the mobile phone.
[0213] For example, Fig.13 FIG. 1 shows a hardware structure diagram of an example of a communication device 1300 provided in the present application. The communication device 1300 may be the above-mentioned terminal device, for example, the terminal device may be a smart phone, a tablet computer, a laptop computer, etc. Fig.13 As shown, the communication device 1300 may include a processor 1310, an external memory interface 1320, an internal memory 1321, a universal serial bus (USB) interface 1330, a charging management module 1340, a power management module 1341, a battery 1342, an antenna 1, an antenna 2, a wireless communication module 1350, and the like.
[0214] It is to be understood that the structure illustrated in the embodiment of the present application does not constitute a specific limitation on the communication device 1300. In other embodiments of the present application, the communication device 1300 may include more or fewer components than shown in the figure, or combine certain components, or split certain components, or arrange the components differently. The components shown in the figure may be implemented in hardware, software, or a combination of software and hardware.
[0215] For example, when the communication device 1300 is a mobile phone or a computer, the communication device may further include a display screen.
[0216] The processor 1310 may include one or more processing units. For example, the processor 1310 may include an application processor (AP), a modem processor, a graphics processor (GPU), an image signal processor (ISP), a controller, a video codec, a digital signal processor (DSP), a baseband processor, and / or a neural-network processing unit (NPU). Different processing units may be independent components or integrated into one or more processors. In some embodiments, the communication device 1300 may also include one or more processors 1310. The controller may generate an operation control signal based on the instruction opcode and the timing signal to complete the control of fetching and executing instructions.
[0217] In some embodiments, the processor 1310 may include one or more interfaces. The interface may include an inter-integrated circuit (I2C) interface, an integrated circuit sound (I2S) interface, a pulse code modulation (PCM) interface, a universal asynchronous receiver / transmitter (UART) interface, a mobile industry processor interface (MIPI), a general-purpose input / output (GPIO) interface, a SIM card interface, and / or a USB interface, etc. Among them, the USB interface 1330 is an interface that complies with the USB standard specification, and specifically can be a Mini USB interface, a Micro USB interface, a USB Type C interface, etc. The USB interface 1330 can be used to connect a charger to charge the communication device 1300, and can also be used to transmit data between the communication device 1300 and a peripheral device.
[0218] It is understandable that the interface connection relationship between the modules illustrated in the embodiment of the present application is only a schematic illustration and does not constitute a structural limitation on the communication device 1300. In other embodiments of the present application, the communication device 1300 may also adopt different interface connection methods in the above embodiments, or a combination of multiple interface connection methods.
[0219] The wireless communication function of the communication device 1300 can be implemented through antenna 1, antenna 2 and wireless communication module 1350, etc.
[0220] The wireless communication module 1350 can provide wireless communication solutions including Wi-Fi (including Wi-Fi sensing and Wi-Fi AP), Bluetooth (BT), wireless data transmission module (for example, 433MHz, 868MHz, 10110MHz) applied to the communication device 1300. The wireless communication module 1350 can be one or more devices integrating at least one communication processing module. The wireless communication module 1350 receives electromagnetic waves via antenna 1 or antenna 2 (or, antenna 1 and antenna 2), filters and frequency modulates the electromagnetic wave signal, and sends the processed signal to the processor 1310. The wireless communication module 1350 can also receive the signal to be sent from the processor 1310, frequency modulate it, amplify it, and convert it into electromagnetic waves for radiation through antenna 1 or antenna 2.
[0221] The external memory interface 1320 can be used to connect an external memory card, such as a Micro SD card, to expand the storage capacity of the communication device 1300. The external memory card communicates with the processor 1310 through the external memory interface 1320 to implement a data storage function. For example, files such as music and videos can be stored in the external memory card.
[0222] The internal memory 1321 can be used to store one or more computer programs, which include instructions. The processor 1310 can enable the communication device 1300 to perform the data transmission method provided in some embodiments of the present application, as well as various applications and data processing, etc. by running the above instructions stored in the internal memory 1321. The internal memory 1321 may include a code storage area and a data storage area. Among them, the code storage area can store an operating system. The data storage area can store data created during the use of the communication device 1300, etc. In addition, the internal memory 1321 may include a high-speed random access memory, and may also include a non-volatile memory, such as one or more disk storage components, a flash memory component, a universal flash storage (universal flash storage, UFS), etc. In some embodiments, the processor 1310 can enable the communication device 1300 to perform the data transmission method provided in the embodiment of the present application by running instructions stored in the internal memory 1321, and / or instructions stored in a memory provided in the processor 1310.
[0223] It should be understood that the specific process of the communication device 1300 performing the above corresponding steps can be referred to in conjunction with the above Figure 6 , Figure 7 , Fig. 9 and Fig.10 For the sake of brevity, the relevant description of the steps executed by the mobile phone or terminal device described in the description is not repeated here.
[0224] Fig.14 A schematic block diagram of another example of a communication device 1400 provided in an embodiment of the present application is shown. The communication device 1400 may correspond to the terminal device (e.g., a mobile phone) described in each embodiment of the above method 600, or may be a chip or component applied to the terminal device. In addition, each module or unit in the communication device 1400 is used to execute each action or processing process performed by the terminal device (e.g., a mobile phone) described in each embodiment of the above method 600, such as Fig.14 As shown, the communication device 1400 may include: a processing unit 1410 and a communication unit 1420. Optionally, the communication device 1400 may also include a storage unit 1430.
[0225] It should be understood that the specific process of each unit in the communication device 1400 performing the above corresponding steps can be referred to in conjunction with the above Figure 6 , Figure 7 , Fig. 9 and Fig.10 The relevant descriptions of the steps executed by the terminal device or mobile phone in each embodiment are described in detail here for the sake of brevity.
[0226] Optionally, the communication unit 1420 may include a receiving unit (module) and a sending unit (module), which are used to perform the steps of receiving information and sending information by the terminal device in the aforementioned various method embodiments. The storage unit 1430 is used to store instructions executed by the processing unit 1410 and the communication unit 1420. The processing unit 1410, the communication unit 1420 and the storage unit 1430 are connected in communication, the storage unit 1430 stores instructions, the processing unit 1410 is used to execute the instructions stored in the storage unit, and the communication unit 1420 is used to perform specific signal transmission and reception under the drive of the processing unit 1410.
[0227] It should be understood that the communication unit 1420 may be a transceiver, an input / output interface or an interface circuit, etc., and may be composed of Fig.13 The wireless communication module 1350 in the illustrated embodiment is implemented. The storage unit may be a memory, for example, Fig.13 The external memory interface 1320 and the internal memory 1321 in the illustrated embodiment are implemented. The processing unit 1410 may be composed of Fig.13 The processor 1310 in the illustrated embodiment may be implemented by the processor 1310 , the external memory interface 1320 , and the internal memory 1321 .
[0228] It should also be understood that Fig.14 The communication device 1400 shown may be a terminal device, or the terminal device may include Fig.14 The communication device 1400 is shown.
[0229] The present application also provides a chip system, such as Fig.15As shown, the chip system includes at least one processor 1501 and at least one interface circuit 1502. The processor 1501 and the interface circuit 1502 can be interconnected via lines. For example, the interface circuit 1502 can be used to receive signals from other devices (such as terminal equipment, network equipment, and service servers). For another example, the interface circuit 1502 can be used to send signals to other devices (such as processor 1501). Exemplarily, the interface circuit 1502 can read instructions stored in the memory and send the instructions to the processor 1501. When the instructions are executed by the processor 1501, the chip system can execute the various steps performed by the terminal device (such as a mobile phone), network equipment (such as a base station), and service server in the above example. Of course, the chip system can also include other discrete devices, which is not specifically limited in this application.
[0230] It should also be understood that the division of units in the above device is only a division of logical functions. In actual implementation, they can be fully or partially integrated into one physical entity, or they can be physically separated. And the units in the device can all be implemented in the form of software calling through processing elements; they can also be all implemented in the form of hardware; some units can also be implemented in the form of software calling through processing elements, and some units can be implemented in the form of hardware. For example, each unit can be a separately established processing element, or it can be integrated in a certain chip of the device. In addition, it can also be stored in the memory in the form of a program, and called and executed by a certain processing element of the device. The processing element here can also be called a processor, which can be an integrated circuit with signal processing capabilities. In the implementation process, each step of the above method or each unit above can be implemented by an integrated logic circuit of hardware in the processor element or in the form of software calling through a processing element. In one example, the unit in any of the above devices may be one or more integrated circuits configured to implement the above method, such as one or more application specific integrated circuits (ASIC), or one or more digital signal processors (DSP), or one or more field programmable gate arrays (FPGA), or a combination of at least two of these integrated circuit forms. For another example, when the unit in the device can be implemented in the form of a processing element scheduler, the processing element can be a general-purpose processor, such as a central processing unit (CPU) or other processor that can call a program. For another example, these units can be integrated together and implemented in the form of a system-on-a-chip (SOC).
[0231] The embodiment of the present application also provides a device, which is included in a terminal device, a network device, and a service server, and the device has the function of implementing the terminal device, the network device, and the service server in any method of the above embodiment. The function can be implemented by hardware, or the corresponding software can be implemented by hardware. The hardware or software includes at least one module or unit corresponding to the above function. For example, a display module or unit, a determination module or unit, a calculation module or unit, a sending module or unit, a receiving module or unit, etc.
[0232] The embodiment of the present application also provides a computer-readable storage medium for storing computer program code, the computer program including instructions for executing any one of the data transmission methods provided in the above embodiment of the present application. The readable medium may be a read-only memory (ROM) or a random access memory (RAM), which is not limited in the embodiment of the present application.
[0233] The present application also provides a computer program product, which includes instructions. When the instructions are executed, the terminal and the server perform corresponding operations in the above-mentioned data transmission method.
[0234] The embodiment of the present application also provides a chip located in a communication device, the chip comprising: a processing unit and a communication unit, the processing unit, for example, may be a processor, the communication unit, for example, may be an input / output interface, a pin or a circuit, etc. The processing unit may execute computer instructions to enable the communication device to execute any one of the data transmission methods provided in the embodiment of the present application.
[0235] Optionally, the computer instructions are stored in a storage unit.
[0236] Optionally, the storage unit is a storage unit within the chip, such as a register, a cache, etc. The storage unit can also be a storage unit located outside the chip within the terminal, such as a ROM or other types of static storage devices that can store static information and instructions, random RAM, etc. Among them, the processor mentioned in any of the above can be a CPU, a microprocessor, an ASIC, or one or more integrated circuits for controlling the execution of the program of the above-mentioned feedback information transmission method. The processing unit and the storage unit can be decoupled and respectively set on different physical devices, and connected by wired or wireless means to implement the respective functions of the processing unit and the storage unit to support the system chip to implement the various functions in the above-mentioned embodiments. Alternatively, the processing unit and the memory can also be coupled on the same device.
[0237] Among them, the terminal device, network device, business server, computer-readable storage medium, computer program product or chip provided in this embodiment are all used to execute the corresponding methods provided above. Therefore, the beneficial effects that can be achieved can refer to the beneficial effects in the corresponding methods provided above, and will not be repeated here.
[0238] It is understood that the memory in the embodiment of the present application can be a volatile memory or a non-volatile memory, or can include both volatile and non-volatile memories. Among them, the non-volatile memory can be a ROM, a programmable read-only memory (programmable ROM, PROM), an erasable programmable read-only memory (erasable PROM, EPROM), an electrically erasable programmable read-only memory (electrically EPROM, EEPROM) or a flash memory. The volatile memory can be a RAM, which is used as an external cache. There are many different types of RAM, such as static random access memory (static RAM, SRAM), dynamic random access memory (dynamic RAM, DRAM), synchronous dynamic random access memory (synchronous DRAM, SDRAM), double data rate synchronous dynamic random access memory (double data rate SDRAM, DDR SDRAM), enhanced synchronous dynamic random access memory (enhanced SDRAM, ESDRAM), synchronous connection dynamic random access memory (synch link DRAM, SLDRAM) and direct memory bus random access memory (direct rambus RAM, DRRAM).
[0239] Various objects such as various messages / information / equipment / network elements / systems / devices / actions / operations / processes / concepts that may appear in this application are named. It can be understood that these specific names do not constitute a limitation on the relevant objects. The names assigned may change with factors such as scenarios, contexts or usage habits. The understanding of the technical meaning of the technical terms in this application should be mainly determined from the functions and technical effects embodied / executed in the technical scheme.
[0240] In the various embodiments of the present application, unless otherwise specified or provided for in any logical conflict, the terms and / or descriptions between the different embodiments are consistent and may be referenced to each other, and the technical features in the different embodiments may be combined to form new embodiments according to their inherent logical relationships.
[0241] Those of ordinary skill in the art will appreciate that the units and algorithm steps of each example described in conjunction with the embodiments disclosed herein can be implemented in electronic hardware, or a combination of computer software and electronic hardware. Whether these functions are performed in hardware or software depends on the specific application and design constraints of the technical solution. Professional and technical personnel can use different methods to implement the described functions for each specific application, but such implementation should not be considered to be beyond the scope of this application.
[0242] The method in the embodiment of the present application can be implemented in whole or in part by software, hardware, firmware or any combination thereof. When implemented using software, it can be implemented in whole or in part in the form of a computer program product. The computer program product includes one or more computer programs or instructions. When the computer program or instruction is loaded and executed on a computer, the process or function described in the embodiment of the present application is executed in whole or in part. The computer can be a general-purpose computer, a special-purpose computer, a computer network, or other programmable device. The computer program or instruction can be stored in a computer-readable storage medium or transmitted via the computer-readable storage medium. The computer-readable storage medium can be any available medium that a computer can access or a data storage device such as a server that integrates one or more available media.
[0243] Those skilled in the art can clearly understand that, for the convenience and brevity of description, the specific working processes of the systems, devices and units described above can refer to the corresponding processes in the aforementioned method embodiments and will not be repeated here.
[0244] In the several embodiments provided in the present application, it should be understood that the disclosed systems, devices and methods can be implemented in other ways. For example, the device embodiments described above are only schematic. For example, the division of the units is only a logical function division. There may be other division methods in actual implementation, such as multiple units or components can be combined or integrated into another system, or some features can be ignored or not executed. Another point is that the mutual coupling or direct coupling or communication connection shown or discussed can be through some interfaces, indirect coupling or communication connection of devices or units, which can be electrical, mechanical or other forms.
[0245] The units described as separate components may or may not be physically separated, and the components shown as units may or may not be physical units, that is, they may be located in one place or distributed on multiple network units. Some or all of the units may be selected according to actual needs to achieve the purpose of the solution of this embodiment.
[0246] In addition, each functional unit in each embodiment of the present application may be integrated into one processing unit, or each unit may exist physically separately, or two or more units may be integrated into one unit.
[0247] If the functions are implemented in the form of software functional units and sold or used as independent products, they can be stored in a computer-readable storage medium. Based on this understanding, the technical solution of the present application, or the part that contributes to the prior art or the part of the technical solution, can be embodied in the form of a software product, which is stored in a readable storage medium and includes several instructions for a computer device (which can be a personal computer, a server, or a network device, etc.) to perform all or part of the steps of the methods described in the various embodiments of the present application. The aforementioned readable storage medium includes: various media that can store program codes, such as USB flash drives, mobile hard drives, ROM, RAM, magnetic disks, or optical disks.
[0248] The above is only a specific implementation of the present application, but the protection scope of the present application is not limited thereto. Any person skilled in the art who is familiar with the present technical field can easily think of changes or substitutions within the technical scope disclosed in the present application, which should be included in the protection scope of the present application. Therefore, the protection scope of the present application should be based on the protection scope of the claims.
Claims
1. A method for data transmission, characterized in that: The method comprises: The terminal equipment and the network equipment establish a network layer transmission channel; The terminal device acquires link quality information between the terminal device and the network device in real time through the network layer transmission channel, wherein the link quality information includes: at least one of resource utilization and a recommended transmission rate; The terminal device determines a TCP protocol congestion control parameter corresponding to the link quality information; The terminal device uses the TCP protocol congestion control parameters to control the transmission rate of business data between the terminal device and the network device. The business data is business data forwarded between the terminal device and the business server through the network device. The business data is transmitted through the TCP transmission channel between the terminal device and the network device.
2. The method according to claim 1, characterized in that A first application is installed on the terminal device, and the business data is business data corresponding to the first application. When the first application is opened, the terminal device and the network device establish the network layer transmission channel.
3. The method according to claim 1 or 2, characterized in that: The terminal device determines a TCP protocol congestion control parameter corresponding to the link quality information, including: The terminal device determines a slow start initial value and a first slow start threshold value based on the link quality information obtained for the first time, the slow start initial value is less than or equal to the first slow start threshold value, a first application is installed on the terminal device, and the link quality information obtained for the first time is the link quality information obtained when the first application is opened.
4. The method according to claim 3, characterized in that The terminal device uses the TCP protocol congestion control parameter to control the transmission rate of service data between the terminal device and the network device, including: The terminal device starts TCP congestion control of the transmission rate using the slow start initialization and the first slow start threshold.
5. The method according to any one of claims 1 to 4, characterized in that A first application is installed on the terminal device, the service data is service data corresponding to the first application, and the terminal device determines a TCP protocol congestion control parameter corresponding to the link quality information, including: The terminal device determines whether the network between the terminal device and the network device is congested according to the link quality information obtained during the operation of the first application; In the case of network congestion, the terminal device determines a fast recovery window value according to link quality information; When the network is not congested, the terminal device determines a second slow start threshold value or indication information based on the link quality information, the second slow start threshold value is greater than the first slow start threshold value, the indication information is used to instruct the terminal device to continue to use the TCP protocol congestion control parameters to perform the TCP congestion control process, and the first slow start threshold value is determined by the terminal device based on the link quality information obtained for the first time.
6. The method according to claim 5, characterized in that The terminal device uses the TCP protocol congestion control parameter to control the transmission rate of service data between the terminal device and the network device, including: In the case of network congestion, the terminal device uses the fast recovery window value to perform the fast recovery phase of TCP congestion control of the transmission rate; or, in the case of no network congestion, the terminal device uses the second slow start threshold value to start the congestion avoidance phase of TCP congestion control of the transmission rate; or, in the case of no network congestion, the terminal device continues to perform TCP congestion control of the transmission rate according to the indication information.
7. The method according to claim 5 or 6, characterized in that: The fast recovery window value is greater than the first slow start threshold value.
8. The method according to any one of claims 1 to 7, characterized in that The terminal device includes a decision module and a link quality acquisition module. The link quality acquisition module acquires the link quality information between the network device and the network device in real time through the network layer transmission channel; The link quality acquisition module sends the link quality information acquired in real time to the decision module; The decision module determines a TCP protocol congestion control parameter corresponding to the link quality information; The decision module sends the TCP protocol congestion control parameter to the transport layer of the terminal; The transport layer of the terminal device uses the TCP protocol congestion control parameters to control the transmission rate of business data between the terminal device and the network device.
9. The method according to any one of claims 3 to 7, characterized in that At least one of the slow start threshold, the first slow start threshold, the fast recovery window value, or the second slow start threshold is determined according to a maximum segment length, a round trip delay, and the recommended transmission rate.
10. A communication device, characterized in that: The method comprises means for executing the steps of the method according to any one of claims 1 to 9.
11. A terminal device, characterized in that: include: Processor and memory; The processor is coupled to a memory, wherein the memory stores program instructions. When the program instructions stored in the memory are executed by the processor, the method according to any one of claims 1 to 9 is performed.
12. A computer-readable storage medium, characterized in that: The computer-readable storage medium stores a computer program, wherein the computer program includes program instructions, and when the program instructions are executed by a processor, the processor is caused to perform: the method according to any one of claims 1 to 9.
13. A chip, characterized in that: It comprises: a processor, used to call and run a computer program from a memory, so that a communication device equipped with the chip executes: a method as claimed in any one of claims 1 to 9.
