Method, device and system for controlling transmission control protocol performance in wireless network

By dynamically adjusting the size of TCP's congested window in the wireless network and actively retransmitting lost packets, the problem of low TCP performance in the wireless communication network is solved, and the effect of improving transmission rate is achieved.

CN119946729APending Publication Date: 2025-05-06DELTA ELECTRONICS INC(CN)
View PDF 0 Cites 0 Cited by

Patent Information

Application Number
CN202311450480.7
Authority / Receiving Office
CN · China
Patent Type
Applications(China)
Current Assignee / Owner
Filing Date
2023-11-02
Publication Date
2025-05-06

AI Technical Summary

Technical Problem

In wireless communication networks, due to the low signal-to-noise ratio and high packet loss rate, the performance of the Transmission Control Agreement (TCP) is affected, resulting in a significant reduction in the transmission rate.

Method used

By receiving and storing packets in the server device, recording packet serial number, and judging the packet loss rate based on the packet confirmation information of the user device, dynamically adjusting the size of the TCP congestion window, and actively retransmitting the lost packets to increase the transmission rate of the TCP connection.

Benefits of technology

It effectively improves the transmission efficiency of TCP in wireless networks, improves the transmission rate, and solves the problem of reducing transmission rate due to high packet loss rate.

✦ Generated by Eureka AI based on patent content.

Smart Images

  • Figure CN119946729A_ABST
    Figure CN119946729A_ABST
Patent Text Reader

Abstract

A method of controlling transmission control protocol performance in a wireless network for a server device, in which the server device communicates with a user equipment based on a transmission control protocol (TCP) connection, includes: receiving a plurality of packets from a TCP layer in the server device; storing the packets in a buffer, recording the packets in a transmission list, and forwarding the packets to the user device, each packet having a packet sequence number; in response to receiving a packet acknowledgement message transmitted from the user device, determining a packet loss rate of the user device according to the packet acknowledgement message; and dynamically adjusting the size of a congestion window of the transmission control protocol connection according to the packet loss rate so as to control the transmission rate of the TCP layer. The disclosure also relates to an apparatus for controlling transmission control protocol performance in a wireless network and a system for controlling transmission control protocol performance in a wireless network.
Need to check novelty before this filing date? Find Prior Art

Description

Technical Field

[0001] The present disclosure relates to wireless network communication technology, and more particularly to a method and device for controlling the performance of a Transmission Control Protocol (TCP) in a wireless network. Background Art

[0002] In the environment of wireless communication networks (e.g., 5G, Wi-Fi, etc.), factors such as obstruction, high-speed movement, and the distance between the device and the base station may cause the signal-to-noise ratio (SNR) to be too low, resulting in packet transmission errors and being discarded.

[0003] The Transmission Control Protocol (TCP) was originally developed for wired networks. Since wired networks have very little packet loss on the link and the main source of loss is buffer overflow due to congestion, TCP's method of inferring congestion from loss works well.

[0004] In contrast, wireless networks are characterized by packet loss on the link. When packets are lost, TCP will consider it network congestion and reduce the speed. In an environment with a packet loss rate of 5%, due to the overreaction of the speed reduction mechanism, the performance of TCP is only about 22% of the original speed.

[0005] Therefore, a new network architecture and mechanism is needed to improve and control the transmission performance of TCP in a wireless communication environment. Summary of the invention

[0006] The following disclosures are exemplary only and are not intended to be limiting in any way. In addition to the illustrative aspects, embodiments, and features, other aspects, embodiments, and features will also be apparent by reference to the accompanying drawings and the following detailed description. That is, the following disclosures are provided to introduce concepts, key points, benefits, and novel and non-obvious technical advantages described herein. Selected, but not all, embodiments will be further described in detail as follows. Therefore, the following disclosures are not intended to be essential features of the claimed subject matter, nor are they intended to be used in determining the scope of the claimed subject matter.

[0007] Therefore, the main purpose of the present disclosure is to provide a method and device for controlling the performance of the TCP in a wireless network, which can actively retransmit lost packets and dynamically control the congestion window size (Cwnd) of TCP to improve the transmission rate of the TCP connection.

[0008] The present disclosure provides a method for controlling transmission control protocol performance in a wireless network, which is used for a server device, wherein the server device communicates with a user device based on a transmission control protocol (TCP) connection, including: receiving a plurality of packets from a TCP layer in the server device; storing the packets in a buffer, recording the packets in a transmission list, and forwarding the packets to the user device, wherein each packet has a packet sequence number; responding to receiving a packet confirmation message sent from the user device, determining a packet loss rate of the user device according to the packet confirmation message; and dynamically adjusting a congestion window size of the transmission control protocol connection according to the packet loss rate to control a transmission rate of the TCP layer.

[0009] In some embodiments, the packet confirmation information includes a latest confirmation sequence number and a lost packet sequence number, and the method further includes: retransmitting the lost packet corresponding to the lost packet sequence number to the user device according to the packet confirmation information; and deleting the packet whose packet sequence number is less than the latest confirmation sequence number and is not the lost packet sequence number in the buffer and the transmission list.

[0010] In some embodiments, the step of dynamically adjusting the congestion window size of the transmission control protocol connection according to the packet loss rate also includes: obtaining an optimal congestion window threshold value according to the packet loss rate; when the congestion window size is greater than the optimal congestion window threshold value, transmitting a first false confirmation message to the TCP layer to instruct the TCP layer to reduce the congestion window size; and when the congestion window size is less than the optimal congestion window threshold value, transmitting a second false confirmation message to the TCP layer to instruct the TCP layer to increase the congestion window size.

[0011] In some embodiments, the first false ACK message is a duplicate ACK (DUP) message.

[0012] In some embodiments, the second false confirmation message is an acknowledgment (ACK) message.

[0013] In some embodiments, the method further includes: receiving a first packet from the TCP layer; checking whether a first packet sequence number of the first packet exists in the transmission list; when the first packet sequence number does not exist in the transmission list, storing the first packet in the buffer, recording the first packet in the transmission list, and forwarding the first packet to the user device; and when the first packet sequence number already exists in the transmission list, discarding the first packet.

[0014] In some embodiments, the packet confirmation information includes a selective acknowledgement (SACK).

[0015] In some embodiments, the packet confirmation information includes an acknowledgment (ACK) message.

[0016] The present disclosure provides a device for controlling the performance of a transmission control protocol in a wireless network, wherein the device communicates with a user device based on a transmission control protocol (TCP) connection, and includes: one or more processors; and one or more computer storage media storing computer-readable instructions, wherein the processor uses the computer storage media to execute: receiving a plurality of packets from a TCP layer in the device; storing the packets in a buffer, recording the packets in a transmission list, and forwarding the packets to the user device, wherein each packet has a packet sequence number; responding to receiving a packet confirmation message sent from the user device, determining a packet loss rate of the user device according to the packet confirmation message; and dynamically adjusting a congestion window size of the transmission control protocol connection according to the packet loss rate to control a transmission rate of the TCP layer.

[0017] The present disclosure provides a system for controlling the performance of a transmission control protocol in a wireless network, comprising: a user device; and a server device, wherein the server device communicates with the user device based on a transmission control protocol (TCP) connection and performs the following steps: receiving a plurality of packets from a TCP layer in the server device; storing the packets in a buffer, recording the packets in a transmission list, and forwarding the packets to the user device, wherein each packet has a packet sequence number; responding to receiving a packet confirmation message sent from the user device, determining a packet loss rate of the user device according to the packet confirmation message; and dynamically adjusting a congestion window size of the transmission control protocol connection according to the packet loss rate to control a transmission rate of the TCP layer. BRIEF DESCRIPTION OF THE DRAWINGS

[0018] Figure 1 is a schematic diagram of a system for controlling transmission control protocol performance in a wireless network according to an embodiment of the present disclosure.

[0019] Figure 2 It is a diagram showing the internal structure of a server device according to an embodiment of the present disclosure.

[0020] Figure 3It is a timing diagram of controlling the performance of the transmission control protocol in a wireless network according to an embodiment of the present disclosure.

[0021] Figure 4 It is a schematic diagram showing a user device replying SACK information according to an embodiment of the present disclosure.

[0022] Figure 5 The invention is a flow chart showing a method for controlling transmission control protocol performance in a wireless network according to an embodiment of the present disclosure.

[0023] Figure 6 FIG. 1 is a diagram showing an exemplary operating environment for implementing an embodiment of the present disclosure.

[0024] Description of reference numerals:

[0025] 100: System

[0026] 110: User device

[0027] 120: Server device

[0028] 130: Network Node

[0029] 140: Wireless Network

[0030] 150: Internet

[0031] 210: Main memory

[0032] 220: Processor

[0033] 230: Storage device

[0034] 240: Application

[0035] 250: TCP layer

[0036] 260: Management Module

[0037] 270: Communication interface

[0038] 280: Bus

[0039] 300: Timing diagram

[0040] S305, S310, S315, S320, S325, S330, S335: Step 400: Time period

[0041] 410: SACK Information

[0042] 500: Methods

[0043] S505, S510, S515, S520: Step 600: Electronic device

[0044] 610: Bus

[0045] 612: Memory

[0046] 614: Processor

[0047] 616: Display components

[0048] 618: I / O port

[0049] 620: I / O components

[0050] 622: Power supply DETAILED DESCRIPTION

[0051] Various aspects of the present disclosure will be described more fully below with reference to the accompanying drawings. However, the present disclosure can be embodied in many different forms and should not be construed as being limited to any specific structure or function presented throughout the present disclosure. On the contrary, providing these aspects will make the present disclosure comprehensive and complete, and the present disclosure will fully convey the scope of the present disclosure to those skilled in the art. Based on the content taught herein, those skilled in the art will appreciate that, whether it is implemented alone or in combination with any other aspect of the present disclosure, any aspect disclosed herein is intended to be covered by the scope of the present disclosure. For example, any number of devices or execution methods proposed herein can be used to implement. In addition, in addition to the multiple aspects of the present disclosure proposed herein, the scope of the present disclosure is more intended to cover devices or methods implemented using other structures, functions, or structures and functions. It should be understood that any aspect disclosed herein can be embodied by one or more elements of the claims.

[0052] The word "exemplary" is used herein to mean "serving as an example, instance, or illustration." Any aspect of the disclosure or design described herein as "exemplary" is not necessarily to be construed as preferred or advantageous over other aspects of the disclosure or design. In addition, like numbers refer to like elements throughout the several figures, and the articles "a," "an," and "above" include plural references unless otherwise specified in the description.

[0053] It is understood that when an element is referred to as being "connected" or "coupled" to another element, the element may be directly connected or coupled to the other element or there may be an intermediate element. Conversely, when the element is referred to as being "directly connected" or "directly coupled" to another element, there are no intermediate elements. Other words used to describe the relationship between elements should be interpreted in a similar manner (e.g., "between" versus "directly between," "adjacent" versus "directly adjacent," etc.).

[0054] The disclosed embodiments provide a method and device for controlling the performance of a transmission control protocol in a wireless network, which can actively retransmit lost packets and dynamically control the congestion window size (Cwnd) of TCP to increase the transmission rate of TCP.

[0055] Figure 1 FIG. 1 is a schematic diagram of a system 100 for controlling TCP performance in a wireless network according to an embodiment of the present disclosure. The system 100 includes a user device 110 , a server device 120 , and a network node 130 .

[0056] As shown, the user device 110 transmits data with the server device 120 according to TCP via the network node 130. The user device 110 can be any type of mobile computing device equipped with mobile broadband circuits, such as a laptop, a tablet computer, a handheld computing device, a device with Internet access, a gaming device, a mobile phone, a smart phone, an e-book reader, a personal digital assistant (PDA), etc. The user device 110 can be any device suitable for communicating through a network (e.g., a wireless network 140) according to, for example, one or more third generation partnership project (3GPP) technical specifications.

[0057] According to an embodiment, the user device 110 may be configured to perform inter-system communication across the wireless network 140. The wireless network 140 may include a wireless cellular network, such as a Global System for Mobile Communications (GSM) network, a Universal Mobile Telecommunications System (UTMS), and / or a Code Division Multiple Access (CDMA) network. The wireless cellular network may comply with one or more standards, such as Long Term Evolution (LTE) or Advanced LTE (LTE-A), third generation (3G), fourth generation (4G), fifth generation (5G), Worldwide Interoperability for Microwave Access (WiMAX) (e.g., Mobile WiMAX), or other similar standards.

[0058] For communication over the wireless network 140, the user device 110 may operate on a cell. In some embodiments, the network node 130 may be adapted to provide such a cell, and thus, the network node 130 may be an access node, such as a Node B or an evolved Node B (eNB) (macro eNB, pico eNB, femto eNB), a Wi-Fi access point, a 5Gg NodeB (gNB). In another embodiment, the network node 130 may be a gateway, such as a serving gateway (S-GW), a packet data network gateway (P-GW). In embodiments where the network node 130 is a gateway, the wireless network 140 and the network node 130 may be coupled with a plurality of elements (not shown) associated with coupling the wireless network 140 to a core network providing the network node 130.

[0059] Through network node 130, user device 110 is adapted to communicate with server device 120 across wireless network 140. Thus, server device 120 may be any system adapted to provide resources via Internet 150. To communicate via Internet 150, user device 110 and server device 120 may use TCP (TCP / IP).

[0060] Figure 2 1 is a diagram showing the internal architecture of the server device 120 according to an embodiment of the present disclosure. The server device 120 may be any server that communicates with the user device 110 through the network node 130. The server device 120 may include, but is not limited to, a main memory 210, a processor 220, a storage device 230, and a communication interface 270. These elements may be communicatively coupled via a bus 280. The bus 280 may be any subsystem suitable for transmitting data within the server device 120. The bus 280 may include a plurality of computer buses and other circuits suitable for transmitting data.

[0061] Processor 220 may be any processor suitable for executing instructions, such as instructions from main memory 210. Accordingly, processor 220 may be, for example, a central processing unit (CPU), a microprocessor, or other similar processor. In some embodiments, processor 220 includes multiple processors, such as a special-purpose processor (e.g., a graphics processing unit), a network processor, or any processor suitable for performing the operations of server device 120.

[0062] Coupled to the processor 220 is a main memory 210. The main memory 210 may provide both short-term and long-term storage, and may in fact be divided into several units (including units located in the processor 220). The main memory 210 may also include cache memory, such as a cache located at the processor 220. The main memory 210 may be volatile, such as static random access memory (SRAM) and / or dynamic random access memory (DRAM), and may provide (at least temporarily) storage of computer-readable instructions, data structures, software applications, and other data for the server device 120. Such data may be loaded from a storage device 230, which may be, for example, one or more hard disk drives, solid-state drives, optical disks, and drives, etc.

[0063] In another embodiment, the main memory 210 may include, but is not limited to, instructions related to the application 240 to be executed by the processor 220. The application 240 may be any application associated with providing the user device 110 with resource communications on a network. For example, the application 240 may be a browser application, an IP voice (VoIP) application, a cloud application, a media application, and the like.

[0064] In some embodiments, application 240 may enable communication interface 270 to transmit and receive data with user device 110 through the Internet. Data transmitted to or from application 240 is processed at TCP layer 250 based on communication over the Internet.

[0065] To adjust TCP traffic, the management module 260 may be implemented, for example, between the TCP layer 250 and the communication interface 270. The management module 260 may be hardware, software, firmware, and / or a combination thereof. For example, the management module 260 may be included in an ASIC or other integrated circuit. In many embodiments, instructions associated with the management module 260 are executed by the processor 220, and thus, instructions associated with the management module 260 may be stored (at least temporarily) in the main memory 210. In various embodiments, the management module 260 may be implemented at least in part in circuitry (e.g., processing circuitry, processor circuitry, logic circuitry, etc.) of the server device 120. Thus, for example, the management module circuitry may include circuitry configured to perform the various operations described for the management module 260.

[0066] In various embodiments, management module 260 may be adapted to implement a private protocol between server device 120 and user device 110. The private protocol may allow the TCP layers of the server device and the user device to maintain TCP semantics while regulating TCP traffic between server device 120 and user device 110.

[0067] Regarding communication with the user device 110, the management module 260 may implement temporary storage or may be communicatively coupled to a cache or buffer, such as a cache or buffer at the main memory 210. The management module 260 may temporarily store data packets from the TCP layer 250. This caching mechanism may allow the management module 260 to resend data packets received from the TCP layer 250 to the user device 110 when a TCP ACK is not received from the user device 110, without requiring the TCP layer 250 to resend data packets that are not acknowledged as being received by the user device 110.

[0068] The server device 120 may further include a communication interface 270 . The communication interface 270 may allow the server device 120 to transmit data with the user device 110 via the network node 130 .

[0069] Figure 3 is a timing diagram 300 for controlling transmission control protocol performance in a wireless network according to an embodiment of the present disclosure, and refers to Figure 1 and Figure 2 . Figure 3 It can be shown in Figure 1 The illustrated embodiment of the sequence of data communication in the system 100 is a diagram in which the server device 120 communicates with the client device 110 based on a Transmission Control Protocol (TCP) connection.

[0070] First, in step S305 , the management module 260 of the server device 120 receives a plurality of packets from the TCP layer 250 .

[0071] In step S310 , the management module 260 may copy and store the packets in a buffer, and record the packets in a transmission list, wherein each packet has a packet sequence number.

[0072] In step S315, the management module 260 forwards the packet to the user device. It should be noted that the copied packet is still stored in the buffer.

[0073] In step S320, the management module 260 receives a packet confirmation message sent from the user device 110, wherein the packet confirmation message includes a latest confirmation sequence number and a lost packet sequence number. In one embodiment, the packet confirmation message may include a selective acknowledgment (SACK) or an acknowledgment (ACK) message.

[0074] In step S325, the management module 260 determines a packet loss rate of the user device 110 according to the packet confirmation information. For example, when a packet is lost, the packet confirmation information replied by the user device 110 may include Selective Acknowledgment (SACK) information, wherein the SACK information describes which packets the user device 110 has received and which packets the user device 110 has not received. Figure 4 As shown, the SACK information 410 replied by the user device 110 describes that the packets with sequence numbers 4, 5, and 7 have been received, but the packets with sequence numbers 2, 3, and 6 have not been received. The management module 260 can continuously receive packet confirmation information including SACK information, and count the number of packet losses within a time interval (e.g., time period 400) to calculate the packet loss rate of the user device within this time interval.

[0075] In step S330 , the management module 260 sends a false confirmation message to the TCP layer 250 according to the packet loss rate to adjust a congestion window size of the TCP connection.

[0076] More specifically, the management module 260 stores a lookup table including the corresponding relationship between the packet loss rate and the congestion window threshold, as shown in Table 1.

[0077] Packet Loss Rate Congestion Window Threshold 0% 550 0.5% 440 1% 330 1.5% 220 2% 110 >2.5% 50

[0078] Table 1

[0079] For example, assume that the congestion window size of the TCP connection is 350. When the management module 260 calculates and obtains a packet loss rate of 1.5% of the user device 110 according to the packet confirmation information, the management module obtains the congestion window threshold value corresponding to the packet loss rate of 1.5% as 220 according to Table 1. Since the congestion window size is greater than the congestion window threshold value, the management module 260 transmits a first false confirmation message to the TCP layer 250 to instruct the TCP layer 250 to reduce the congestion window size, wherein the first false confirmation message is a duplicate confirmation (DUP) message. When the management module 260 calculates and obtains a packet loss rate of 0.5% of the user device 110 according to the packet confirmation information, the management module obtains the congestion window threshold value corresponding to the packet loss rate of 0.5% as 440 according to Table 1. Since the congestion window size is smaller than the congestion window threshold, the management module 260 transmits a second false confirmation message to the TCP layer 250 to instruct the TCP layer 250 to increase the congestion window size, wherein the second false confirmation message is an ACK message. In addition, it is worth noting that although the corresponding relationship between the packet loss rate and the congestion window threshold is shown in Table 1 as an example in this embodiment, the present disclosure should not be limited thereto, and those skilled in the art can make appropriate changes or adjustments based on this embodiment.

[0080] In step S335, the management module 260 may retransmit the lost packet corresponding to the lost packet sequence number to the user device 110 according to the packet confirmation information, and delete the packet whose packet sequence number is less than the latest confirmation sequence number and is not the lost packet sequence number from the buffer and the transmission list.

[0081] In one embodiment, since the management module 260 transmits false confirmation information to the TCP layer 250 in order to dynamically adjust the congestion window size of the above-mentioned transmission control protocol connection, the TCP layer 250 will resend the packet corresponding to the false confirmation information to the management module 260. The management module 260 will further check whether the packet sequence number of the packet retransmitted by the TCP layer 250 is in the above-mentioned transmission list. When the packet sequence number does not exist in the above-mentioned transmission list, the management module copies and stores the above-mentioned packet to the buffer, records the above-mentioned packet in the above-mentioned transmission list, and forwards the above-mentioned packet to the user device 110 (that is, the management device 260 repeats steps S310-S320). When the packet sequence number already exists in the above-mentioned transmission list (that is, this packet has been stored in the buffer), the management device 260 discards the above-mentioned packet.

[0082] In another embodiment, the management device 260 may also set a fixed period to check the transmission list, retransmit the lost packet to the user device 110 according to the lost packet sequence number in the most recent packet confirmation information, and delete the packets whose packet sequence number is less than the latest confirmation sequence number in the most recent packet confirmation information and is not the lost packet sequence number in the buffer and the transmission list.

[0083] Figure 5 FIG. 5 is a flow chart showing a method 500 for controlling transmission control protocol performance in a wireless network according to an embodiment of the present disclosure. The method 500 is used for Figure 1 The server device 120 is shown, and the server device communicates with a client device based on a TCP connection.

[0084] In step S505 , a management module in the server device receives a plurality of packets from a TCP layer in the server device.

[0085] In step S510, the management module stores the packets in a buffer of the server device, records the packets in a transmission list, and forwards the packets to the user device, wherein each packet has a packet sequence number.

[0086] In step S515, the management module responds to receiving a packet confirmation message sent from the user device, and determines a packet loss rate of the user device according to the packet confirmation message, wherein the packet confirmation message includes a latest confirmation sequence number and a lost packet sequence number. In one embodiment, the packet confirmation message may include a selective acknowledgment (SACK) or an acknowledgment (ACK) message.

[0087] In step S520, the management module dynamically adjusts a congestion window size of the transmission control protocol connection according to the packet loss rate to control a transmission rate of the TCP layer. In more detail, the management module can obtain an optimal congestion window threshold value according to the packet loss rate. When the congestion window size is greater than the optimal congestion window threshold value, the management module transmits a first false confirmation message to the TCP layer to instruct the TCP layer to reduce the congestion window size, wherein the first false confirmation message is a duplicate confirmation (DUP) message. When the congestion window size is less than the optimal congestion window threshold value, the management module transmits a second false confirmation message to the TCP layer to instruct the TCP layer to increase the congestion window size, wherein the second false confirmation message is an confirmation (ACK) message.

[0088] In one embodiment, the management module retransmits the lost packet corresponding to the lost packet sequence number to the user device according to the packet confirmation information, and deletes the packet whose packet sequence number is less than the latest confirmation sequence number and is not the lost packet sequence number from the buffer and the transmission list.

[0089] As described above, the method and device for controlling the performance of the transmission control protocol in a wireless network disclosed in the present invention can intercept the packet confirmation information returned by the user device, and send false confirmation information to the TCP layer according to the packet loss rate, so as to control the congestion window size within an ideal range, and further achieve the purpose of controlling the transmission rate of the TCP layer.

[0090] The embodiments described herein, including systems, methods / processes and / or devices, may be implemented using a known server / computer (such as Figure 6 For example, the user device 110 and the server device 120 may be implemented using one or more electronic devices 600. For illustrative purposes, the computing device 600 is described as follows.

[0091] Specific reference Figure 6 , Figure 6 600. The electronic device 600 is merely an example of a suitable computing environment and is not intended to suggest any limitation on the scope of use or functionality of the invention. The electronic device 600 should not be interpreted as having any dependency or requirement relating to any one or combination of the illustrated elements.

[0092] The present invention may be implemented in computer program code or machine-usable instructions, which may be computer executable instructions in the form of program modules, which are executed by a computer or other machine, such as a personal digital assistant or other portable device. In general, program modules include routines, programs, objects, components, data structures, etc., and program modules refer to program codes that perform specific tasks or implement specific abstract data types. The present invention may be implemented in a variety of system configurations, including portable devices, consumer electronics, general-purpose computers, more specialized computing devices, etc. The present invention may also be implemented in a distributed computing environment, processing devices connected by a communication network.

[0093] refer to Figure 6 Electronic device 600 includes bus 610 that directly or indirectly couples the following devices, memory 612, one or more processors 614, one or more display elements 616, input / output (I / O) ports 618, input / output (I / O) elements 620, and an illustrative power supply 622. Bus 610 represents an element that can be one or more buses (e.g., an address bus, a data bus, or a combination thereof). Although Figure 6For simplicity, the blocks are shown with lines. Actually, the boundaries of the components are not specific. For example, the presentation components of the display device may be regarded as I / O components; the processor may have a memory.

[0094] The electronic device 600 generally includes various computer-readable media. Computer-readable media can be any available media that can be accessed by the electronic device 600, including both volatile and non-volatile media, removable and non-removable media. By way of example and not limitation, computer-readable media can include computer storage media and communication media. Computer-readable media can include both volatile and non-volatile media, removable and non-removable media implemented in any method or technology for storing information such as computer-readable instructions, data structures, program modules, or other data. Computer storage media include, but are not limited to, random access memory (RAM), read-only memory (ROM), electrically erasable programmable read-only memory (EEPROM), flash memory or other memory technology, compact disc read-only memory (CD-ROM), digital versatile disc (DVD) or other optical disk storage devices, magnetic disks, magnetic disks, magnetic disk storage devices or other magnetic storage devices, or any other media that can be used to store the desired information and can be accessed by the electronic device 600. Computer storage media itself does not include signals.

[0095] Communication media generally contain computer readable instructions, data structures, program modules or other data in the form of modular data signals such as carrier waves or other transmission mechanisms, and include any information delivery media. The term "modular data signal" refers to a signal that has one or more characteristics set or changed in a manner that encodes information in the signal. By way of example and not limitation, communication media include wired media such as a wired network or direct wired connection and wireless media such as audio, radio frequency, infrared and other wireless media. Combinations of the above media are included within the scope of computer readable media.

[0096] Memory 612 includes computer storage media in the form of volatile and non-volatile memory. Memory can be removable, non-removable, or a combination of the two. Exemplary hardware devices include solid-state memory, hard disk drives, optical disk drives, etc. Electronic device 600 includes one or more processors that read data from entities such as memory 612 or I / O components 620. Display component 616 displays data indications to a user or other device. Exemplary display components include display devices, speakers, printing components, vibration components, etc.

[0097] I / O port 618 allows electronic device 600 to be logically connected to other devices including I / O element 620, some of which are built-in devices. Exemplary elements include microphones, rockers, game consoles, satellite dish signal receivers, scanners, printers, wireless devices, etc. I / O element 620 can provide a natural user interface for processing gestures, sounds or other physiological inputs generated by the user. In some examples, these inputs can be transmitted to a suitable network element for further processing. Electronic device 600 can be equipped with a depth camera, such as a stereo camera system, an infrared camera system, an RGB camera system and a combination of these systems to detect and identify objects. In addition, electronic device 600 can be equipped with a sensor (e.g., radar, lidar) to periodically sense the surrounding environment within a sensing range, and generate sensor information indicating that it is associated with the surrounding environment. Furthermore, electronic device 600 can be equipped with an accelerometer or gyroscope that detects motion. The output of the accelerometer or gyroscope can be provided to the electronic device 600 for display.

[0098] In addition, the processor 614 in the electronic device 600 may also execute the programs and instructions in the memory 612 to present the actions and steps described in the above embodiments, or other descriptions of the contents in the specification.

[0099] Any specific order or hierarchy of steps in the procedures disclosed herein is purely by way of example. Based on design preferences, it should be understood that any specific order or hierarchy of steps in the procedures may be rearranged within the scope of this document. The accompanying method claims present elements of the various steps in an exemplary order and, therefore, should not be limited to the specific order or hierarchy shown.

[0100] The use of ordinal numbers such as "first", "second", "third", etc. in the claims to modify elements does not itself imply any priority, precedence, sequence between elements, or order of steps performed by the method, but is only used as an identifier to distinguish different elements with the same name (with different ordinal numbers).

[0101] Although the present disclosure has been disclosed as above by way of implementation examples, they are not intended to limit the present disclosure. Anyone familiar with the art may make some changes and modifications without departing from the concept and scope of the present disclosure. Therefore, the protection scope of the present disclosure shall be determined by the definition of the claims.

Claims

1. A method for controlling transmission control protocol performance in a wireless network, for a server device, wherein the server device communicates with a user device based on a transmission control protocol connection, comprising: receiving a plurality of packets from a TCP layer in the server device; storing the packets in a buffer, recording the packets in a transmission list, and forwarding the packets to the user device, wherein each packet has a packet sequence number; In response to receiving a packet confirmation message transmitted from the user device, determining a packet loss rate of the user device according to the packet confirmation message; and A congestion window size of the transmission control protocol connection is dynamically adjusted according to the packet loss rate to control a transmission rate of the TCP layer.

2. The method for controlling transmission control protocol performance in a wireless network as claimed in claim 1, wherein the packet confirmation information includes a latest confirmation sequence number and a lost packet sequence number, and the method further comprises: retransmitting the lost packet corresponding to the lost packet sequence number to the user device according to the packet confirmation information; as well as The packets whose packet sequence numbers are smaller than the latest confirmation sequence numbers and are not the lost packet sequence numbers are deleted from the buffer and the transmission list.

3. The method for controlling TCP performance in a wireless network as claimed in claim 1, wherein the step of dynamically adjusting the congestion window size of the TCP connection according to the packet loss rate further comprises: Obtaining an optimal congestion window threshold value according to the packet loss rate; When the congestion window size is greater than the optimal congestion window threshold, sending a first false confirmation message to the TCP layer to instruct the TCP layer to reduce the congestion window size; and When the congestion window size is smaller than the optimal congestion window threshold, a second false confirmation message is sent to the TCP layer to instruct the TCP layer to increase the congestion window size.

4. The method for controlling TCP performance in a wireless network as claimed in claim 3, wherein the first false confirmation message is a duplicate confirmation message.

5. The method for controlling TCP performance in a wireless network as claimed in claim 3, wherein the second false confirmation message is a confirmation message.

6. The method for controlling transmission control protocol performance in a wireless network as claimed in claim 1, further comprising: Receive a first packet from the TCP layer; Checking whether a first packet sequence number of the first packet is in the transmission list; When the first packet sequence number does not exist in the transmission list, storing the first packet in the buffer, recording the first packet in the transmission list, and forwarding the first packet to the user device; as well as When the first packet sequence number already exists in the transmission list, the first packet is discarded.

7. The method for controlling TCP performance in a wireless network as claimed in claim 1, wherein the packet acknowledgment information comprises a selective acknowledgment.

8. The method for controlling transmission control protocol performance in a wireless network as claimed in claim 1, wherein the packet confirmation information comprises a confirmation message.

9. A device for controlling transmission control protocol performance in a wireless network, wherein the device communicates with a user device based on a transmission control protocol connection, comprising: one or more processors; as well as One or more computer storage media storing computer readable instructions, wherein the processor uses the computer storage media to perform: receiving a plurality of packets from a TCP layer in the device; storing the packets in a buffer, recording the packets in a transmission list, and forwarding the packets to the user device, wherein each packet has a packet sequence number; In response to receiving a packet confirmation message transmitted from the user device, determining a packet loss rate of the user device according to the packet confirmation message; and A congestion window size of the transmission control protocol connection is dynamically adjusted according to the packet loss rate to control a transmission rate of the TCP layer.

10. The apparatus for controlling transmission control protocol performance in a wireless network as claimed in claim 9, wherein the packet confirmation information includes a latest confirmation sequence number and a lost packet sequence number, and the processor further executes: retransmitting the lost packet corresponding to the lost packet sequence number to the user device according to the packet confirmation information; and The packets whose packet sequence numbers are smaller than the latest confirmation sequence numbers and are not the lost packet sequence numbers are deleted from the buffer and the transmission list.

11. The apparatus for controlling TCP performance in a wireless network as claimed in claim 9, wherein the step of dynamically adjusting the congestion window size of the TCP connection according to the packet loss rate further comprises: Obtaining an optimal congestion window threshold value according to the packet loss rate; When the congestion window size is greater than the optimal congestion window threshold, sending a first false confirmation message to the TCP layer to instruct the TCP layer to reduce the congestion window size; and When the congestion window size is smaller than the optimal congestion window threshold, a second false confirmation message is sent to the TCP layer to instruct the TCP layer to increase the congestion window size.

12. The apparatus for controlling TCP performance in a wireless network as claimed in claim 11, wherein the first false confirmation message is a duplicate confirmation message.

13. The apparatus for controlling TCP performance in a wireless network as claimed in claim 11, wherein the second false confirmation message is a confirmation message.

14. The apparatus for controlling transmission control protocol performance in a wireless network as claimed in claim 9, wherein the processor further executes: Receive a first packet from the TCP layer; Checking whether a first packet sequence number of the first packet is in the transmission list; When the first packet sequence number does not exist in the transmission list, storing the first packet in the buffer, recording the first packet in the transmission list, and forwarding the first packet to the user device; and When the first packet sequence number already exists in the transmission list, the first packet is discarded.

15. The apparatus for controlling transmission control protocol performance in a wireless network as claimed in claim 9, wherein the packet acknowledgment information comprises a selective acknowledgment.

16. The apparatus for controlling transmission control protocol performance in a wireless network as claimed in claim 9, wherein the packet confirmation information comprises a confirmation message.

17. A system for controlling transmission control protocol performance in a wireless network, comprising: a user device; as well as A server device, wherein the server device communicates with the user device based on a transmission control protocol connection and performs the following steps; receiving a plurality of packets from a TCP layer in the server device; storing the packets in a buffer, recording the packets in a transmission list, and forwarding the packets to the user device, wherein each packet has a packet sequence number; In response to receiving a packet confirmation message transmitted from the user device, determining a packet loss rate of the user device according to the packet confirmation message; and A congestion window size of the transmission control protocol connection is dynamically adjusted according to the packet loss rate to control a transmission rate of the TCP layer.

18. The system for controlling transmission control protocol performance in a wireless network as claimed in claim 17, wherein the packet confirmation information includes a latest confirmation sequence number and a lost packet sequence number, and the server device further executes: retransmitting the lost packet corresponding to the lost packet sequence number to the user device according to the packet confirmation information; and The packets whose packet sequence numbers are smaller than the latest confirmation sequence numbers and are not the lost packet sequence numbers are deleted from the buffer and the transmission list.

19. The system for controlling TCP performance in a wireless network as claimed in claim 17, wherein the step of dynamically adjusting the congestion window size of the TCP connection according to the packet loss rate further comprises: Obtaining an optimal congestion window threshold value according to the packet loss rate; When the congestion window size is greater than the optimal congestion window threshold, sending a first false confirmation message to the TCP layer to instruct the TCP layer to reduce the congestion window size; and When the congestion window size is smaller than the optimal congestion window threshold, a second false confirmation message is sent to the TCP layer to instruct the TCP layer to increase the congestion window size.

20. The system for controlling TCP performance in a wireless network as claimed in claim 19, wherein the first false ACK message is a duplicate ACK message.

21. The system for controlling TCP performance in a wireless network as claimed in claim 19, wherein the second false confirmation message is a confirmation message.

22. The system for controlling TCP performance in a wireless network as claimed in claim 17, wherein the server device further executes: Receive a first packet from the TCP layer; Checking whether a first packet sequence number of the first packet is in the transmission list; When the first packet sequence number does not exist in the transmission list, storing the first packet in the buffer, recording the first packet in the transmission list, and forwarding the first packet to the user device; and When the first packet sequence number already exists in the transmission list, the first packet is discarded.

23. The system for controlling TCP performance in a wireless network as claimed in claim 17, wherein the packet acknowledgment information comprises a selective acknowledgment.

24. The system for controlling TCP performance in a wireless network as claimed in claim 17, wherein the packet confirmation information comprises a confirmation message.