Upload speed test method and upload speed test device
Patent Information
- Application Number
- TW113137590
- Authority / Receiving Office
- TW · TW
- Patent Type
- Patents
- Current Assignee / Owner
- Priority Date
- 2024-08-29
- Filing Date
- 2024-10-01
- Publication Date
- 2026-07-11
- Estimated Expiration
- 2044-09-30
Smart Images

Figure IMG-2_DRAW_113137590-A0305-14-0001-1 
Figure IMG-2_DRAW_113137590-A0305-14-0002-2 
Figure IMG-2_DRAW_113137590-A0305-14-0003-3
Abstract
Description
Technical Field
[0001] This invention relates to network speed measurement, and more particularly to an uplink speed measurement method based on dynamic rate adjustment and an uplink speed measurement device using this uplink speed measurement method. Prior Technology
[0002] The Transmission Control Protocol (TCP) is a transport layer protocol, specifically an end-to-end protocol, also known as a host-to-host or process-to-process protocol. In other words, TCP allows the computers at both ends to communicate with each other to ensure data integrity and control transmission rates. These actions are solely between the two ends and are independent of any intermediate nodes such as routers or switches. TCP uses acknowledgment and retransmission mechanisms to ensure the integrity and reliability of TCP packets transmitted over the network. Therefore, while less efficient overall, it guarantees the correct delivery of TCP packets from one sender to one receiver. However, for some applications, this characteristic can actually have negative effects. For example, in network speed testing, an HTTP client can run on the Optical Network Unit (ONU) to access an HTTP server on the Internet for speed testing. Since HTTP is an application layer, the subsequent data delivery to the destination is handled by TCP in the transport layer. When the receiving end detects packet loss, it will send three duplicate ACK packets to request the sending end to retransmit the TCP packet. In addition, the greater the latency on the network, that is, the greater the time difference between the sending end sending a TCP packet and receiving the ACK packet from the receiving end (also known as the round-trip time, RTT), the higher the proportion of TCP packet loss will be, and the lower the efficiency of packet exchange between the sending and receiving ends.
[0003] Since the transmission of TCP packets at the transmitting end is driven by the acknowledgment packets returned by the receiving end, when the performance of uplink speed measurement is affected by packet loss and latency, the maximum bandwidth of the network cannot be measured. How to reduce the impact of latency and packet loss on uplink speed measurement so that uplink speed measurement can more accurately measure the maximum bandwidth of the network has become an urgent problem to be solved. Summary of the Invention
[0004] One of the objectives of this invention is to propose an uplink speed measurement method based on dynamic rate adjustment and an uplink speed measurement device using this method.
[0005] In one embodiment of the present invention, an uplink speed measurement method is disclosed. The uplink speed measurement method includes: during the uplink speed measurement process, continuously and repeatedly checking whether at least one transmission rate adjustment condition is met; and whenever it is determined that the at least one transmission rate adjustment condition is met, adjusting a current transmission rate to set an adjusted transmission rate, and using the adjusted transmission rate to send packets to a server.
[0006] In another embodiment of the present invention, an uplink speed measurement device is disclosed. The uplink speed measurement device includes a network interface circuit, a storage device, and a processor. The network interface circuit is used to send packets to a server for uplink speed measurement. The storage device is used to store code. The processor is used to load and execute the code to perform the following operations: during the uplink speed measurement process, repeatedly checking whether at least one transmission rate adjustment condition is met; and whenever it is determined that the at least one transmission rate adjustment condition is met, adjusting a current transmission rate to set an adjusted transmission rate, and instructing the network interface circuit to use the adjusted transmission rate to send packets to the server.
[0007] The uplink speed measurement method of this invention continuously sends packets at a constant rate. When network connectivity is anticipated, the sending rate is increased to reduce the impact of latency on uplink speed measurement performance. Furthermore, if packet loss occurs, the method does not immediately retransmit the lost packet. Instead, it continues sending packets at the current rate for a period of time, then performs batch retransmission to improve packet retransmission efficiency and reduce the impact of packet loss on uplink speed measurement performance. Additionally, during the uplink speed measurement process, this method does not require sampling the sending rate. Instead, it dynamically adjusts the sending rate to gradually converge to the maximum rate under no-packet-loss conditions, ensuring that the final uplink speed measurement result is closer to the network's maximum bandwidth. Simple Explanation of the Diagram
[0008] Figure 1 is a schematic diagram of a network system according to an embodiment of the present invention. Figure 2 is a flowchart of an uplink speed measurement method according to an embodiment of the present invention. Figure 3 is a flowchart of a method for processing acknowledgment packets returned by a computer device (e.g., an HTTP server) according to an embodiment of the present invention. Figure 4 is a schematic diagram of packet transmission between a computer device (e.g., ONU) and another computer device (e.g., HTTP server) according to an embodiment of the present invention, which is affected by network latency. Figure 5 is a flowchart of a transmission rate adjustment method according to an embodiment of the present invention. Implementation
[0009] Certain terms are used in this specification and the claims to refer to specific components. Those skilled in the art will understand that hardware manufacturers may use different names to refer to the same component. This specification and the claims do not distinguish components by name differences, but by functional differences. The terms "comprising" and "including" used throughout this specification and the claims are open-ended and should be interpreted as "comprising but not limited to." Furthermore, the terms "coupled" or "coupled" herein include any direct and indirect electrical connection means. Therefore, if a first device is described as coupled to a second device, it means that the first device can be directly electrically connected to the second device, or indirectly electrically connected to the second device through other devices and connection means.
[0010] Figure 1 is a schematic diagram of a network system according to an embodiment of the present invention. The network system 100 includes a plurality of network devices (e.g., computer device 102 and computer device 104). Computer device 102 and computer device 104 can exchange data via the Internet 103. For example, computer device 102 can act as a client device, and computer device 104 can act as a server. In this embodiment, computer device 102 can be an optical network unit (ONU) and includes a storage device 112, a processor 114, and a network interface circuit 116. Note that Figure 1 only illustrates elements relevant to the present invention; in reality, computer device 102 may include other elements to implement other functions. The storage device 112 can be memory or any element with data storage capabilities, used to store a program code PROG_1. For example, the program code PROG_1 may include the operating system (OS) code and the application program (e.g., network speed test software (client)) code. Processor 114 loads and executes program code PROG_1 to control the operation of computer device 102. For example, operations related to computer device 102 in the uplink speed measurement method of the present invention can be implemented by processor 114 executing program code PROG_1. Network interface circuit 116 includes hardware for transmitting and receiving circuits and can access the Internet 103. For example, computer device 102 can connect to the Internet 103 through a network provided by a network operator. When the uplink speed measurement method of the present invention is running, computer device (e.g., ONU) 102 acts as an uplink speed measurement device. Therefore, processor 114 instructs network interface circuit 116 to send TCP packets (hereinafter referred to as packets) to computer device (e.g., HTTP server) 104 for uplink speed measurement.
[0011] Computer device 104 includes storage device 122, processor 124, and network interface circuitry 126. Note that Figure 1 only illustrates elements relevant to this invention; in practice, computer device 104 may include other elements to achieve other functions. Storage device 122 can be memory or any element with data storage capabilities, used to store code PROG_2. For example, PROG_2 may contain operating system code and application code (e.g., network speed test software (server)). Processor 124 is used to load and execute PROG_2 to control the operation of computer device 104. Network interface circuitry 126 includes hardware for transmitting and receiving circuits, and can access the Internet 103. For example, computer device 104 can connect to the Internet 103 through a network provided by a network operator. When a computer device (e.g., an HTTP server) 104 detects packet loss, the processor 124 instructs the network interface circuitry 126 to send three consecutive duplicate acknowledgment packets to the computer device (e.g., an ONU) 102 to request packet retransmission.
[0012] The uplink speed measurement method of this invention utilizes the acknowledgment packets of the TCP protocol and the retransmission mechanism based on duplicate acknowledgment packets to dynamically adjust the sending rate to evaluate the maximum uplink rate of the network. Therefore, during the uplink speed measurement process, the sending rate will experience acceleration when no packet loss is encountered and deceleration when packet loss is encountered, eventually converging to the maximum sending rate under no packet loss conditions (i.e., the uplink speed measurement result). The operational details of the uplink speed measurement method of this invention will be described in detail below with reference to the accompanying drawings.
[0013] Figure 2 is a flowchart of an uplink speed measurement method according to an embodiment of the present invention. The uplink speed measurement method can be implemented by the processor 114 of the computer device (e.g., an ONU with uplink speed measurement function) 102 shown in Figure 1, which loads and executes the program code PROG_1. Note that if substantially the same result can be obtained, the steps do not necessarily have to be executed in the exact order of Figure 2. In step S202, the processor 114 initializes the transmission rate V (V=V0), calculates the number of packets len to be sent in the timing period of the timer send_timer (e.g., 1 millisecond, ms) based on the current transmission rate V (V=V0), and instructs the network interface circuit 116 to send multiple packets of number len starting from the sequence number seq_next of the next sent packet (e.g., the initial value of seq_next is the sequence number of the first packet of the uplink speed measurement). In step S204, processor 114 starts timer send_timer. In this embodiment, the timing period of timer send_timer (e.g., 1 ms) determines when it is necessary to determine whether the current sending rate V needs to be adjusted (speeded up or slowed down).
[0014] Furthermore, during the process of network interface circuit 116 sending multiple packets of length len starting from the sequence number seq_next of the next sent packet, network interface circuit 116 receives acknowledgment packets from computer device 104. If no packet loss occurs between computer device (e.g., ONU) 102 and computer device (e.g., HTTP server) 104, processor 114 updates the sequence number seq_next of the next sent packet based on the acknowledgment packet. That is, the acknowledgment number (ACK number) carried in the acknowledgment packet is the sequence number of the next packet that computer device (e.g., HTTP server) 104 expects to receive. Therefore, the sequence number seq_next of the next sent packet is updated based on the acknowledgment number carried in the acknowledgment packet. However, if packet loss occurs between computer device (e.g., ONU) 102 and computer device (e.g., HTTP server) 104, computer device 104 will send three consecutive duplicate acknowledgment packets to request packet retransmission.
[0015] Figure 3 is a flowchart of a method for processing an acknowledgment packet returned by a computer device (e.g., an HTTP server) 104 according to an embodiment of the present invention. Note that if substantially the same result can be obtained, the steps do not necessarily need to be performed in the exact order shown in Figure 3. In step S302, the processor 114 receives the acknowledgment packet returned by the computer device 104 (carrying an acknowledgment number to indicate the sequence number of the next packet) through the network interface circuit 116. In step S304, the processor 114 determines whether the acknowledgment number ack_num of the current acknowledgment packet is the same as the acknowledgment number last_ack_num of the previous acknowledgment packet. If the acknowledgment number ack_num of the current acknowledgment packet is different from the acknowledgment number last_ack_num of the previous acknowledgment packet (i.e., ...), This indicates that computer device 104 has not detected any packet loss. Therefore, in step S306, processor 114 will reset the number of duplicate acknowledgment packets, dup_ack_num, to 1 (that is, ...). =1), and in step S308, the processor 114 will update the acknowledgment number last_ack_num of the previous acknowledgment packet to the acknowledgment number ack_num of the current acknowledgment packet (that is, The process will then return to step S302.
[0016] If processor 114 determines in step S304 that the acknowledgment number ack_num of the currently acknowledged packet is the same as the acknowledgment number last_ack_num of the previous acknowledged packet (that is, ...), In step S310, processor 114 will increment the number of duplicate acknowledgment packets, dup_ack_num, by 1 (that is, ...). = +1). In step S312, the processor 114 determines whether the computer device 104 has sent three consecutive duplicate acknowledgment packets to request packet retransmission. If the number of duplicate acknowledgment packets dup_ack_num is not less than 3, then the processor 114 sets the sequence number drop_seq of the lost packet to the acknowledgment number ack_num of the currently acknowledged packet in step S314 (that is, ...). If the processor 114 determines in step S312 that the number of duplicate acknowledgment packets dup_ack_num is still less than 3, the process will return to step S302.
[0017] As mentioned earlier, the timing period of the timer send_timer (e.g., 1 ms) determines when it is necessary to determine whether the current transmission rate V needs to be adjusted (increased or decreased). In step S206, the processor 114 determines whether the timer send_timer has timed out (i.e., whether the timer send_timer has completed the timing period). If the timer send_timer has timed out, the processor 114 will execute subsequent steps to determine whether the current transmission rate V needs to be adjusted (increased or decreased).
[0018] In step S208, the processor 114 determines whether packet loss has been detected. For example, the processor 114 can determine whether packet loss has occurred through step 312 shown in Figure 3. If the processor 114 determines in step S208 that no packet loss has been detected, the processor 114 will further determine whether the current transmission rate V needs to be increased. For example, in each timing cycle of the timer send_timer, the processor 114 of the computer device 102 instructs the network interface circuit 116 to send multiple packets to the computer device 104 at the current transmission rate V, and records the number of packets sent at the current transmission rate V in real time, send_ri_len. Therefore, if no packet loss has been detected, the processor 114 can compare the sequence number seq_next of the next sent packet with the acknowledgment number ack_num of the currently acknowledged packet to determine the number of packets that the computer device 104 has not yet acknowledged (i.e., seq_next - ack_num). As shown in Figure 4, computer device 102 starts transmitting multiple packets PKT at the current transmission rate V from time point t0. Time point t0 is also the start time of the timer send_timer. Assume that during the period from t0 to t1, the current transmission rate V is not adjusted due to meeting any transmission rate adjustment conditions; in other words, the most recent adjustment to the transmission rate occurred at time point t0 and has remained fixed thereafter. When the timer send_timer times out at time point t1, the sequence number of the most recently transmitted packet is X-1, and the sequence number of the next packet to be transmitted is X (i.e., seq_next = X). Furthermore, the number of packets already transmitted at the current transmission rate V is send_ri_len. When computer device 104 receives a packet PKT, it will return an acknowledgment packet ACK to computer device 102. For example, when computer device 104 receives a packet PKT carrying sequence number SEQ=Y-1, it will return an acknowledgment packet ACK carrying acknowledgment number ACK_SEQ=Y. Assuming that due to network latency, the acknowledgment number carried by the most recently received acknowledgment packet ACK is Y (that is, ack_num=Y), as shown in Figure 4, the number of packets that computer device 104 has not yet acknowledged is (X-1)-(Y-1)=XY=seq_next-ack_num. Therefore, the number of packets that computer device 104 has not yet acknowledged can be easily determined by calculating seq_next-ack_num.
[0019] If the proportion of the number of unacknowledged packets (i.e., seq_next-ack_num) of computer device 104 to the number of packets sent_ri_len at the current sending rate V is less than a predetermined threshold TH1, then processor 114 can predict that the network at the current sending rate V is unobstructed. Since the unacknowledged packets of computer device 104 are mainly caused by transmission delay, processor 114 can further probe the maximum carrying capacity of the network by increasing the sending rate. Therefore, in step S214, processor 114 checks whether the speed-up condition is met. For example, processor 114 determines whether the proportion of the number of unacknowledged packets (i.e., seq_next-ack_num) of computer device 104 to the number of packets sent_ri_len at the current sending rate V is less than the predetermined threshold TH1 (i.e., the speed-up condition is...). If the current packet transmission status meets the speed-up conditions (i.e., the ratio is lower than the predetermined threshold TH1), then the processor 114 will update the current transmission rate V to a larger value (step S216).
[0020] If the processor 114 determines in step S208 that packet loss has been detected, it will further determine whether the current transmission rate V needs to be reduced. For example, when the processor 114 receives three consecutive duplicate acknowledgment packets from the computer device 104 through the network interface circuit 116, the processor 114 can then determine that packet loss has occurred during the uplink speed measurement process and will record the sequence number of the lost packets, drop_seq (steps S312, S314). However, the uplink speed measurement method of the present invention does not immediately retransmit packets when packet loss is detected (i.e., when three consecutive duplicate acknowledgment packets are received), but only retransmits packets after determining that the deceleration condition has been met. This is because when the computer device 104 detects packet loss, its own buffer... There will still be available storage space. Therefore, the uplink speed measurement method of the present invention will continue to send packets at the current sending rate V for a period of time after detecting packet loss (that is, receiving three consecutive duplicate acknowledgment packets). If there is still packet loss during this period (e.g., some packets are successfully received by the receiver, while other packets are not successfully received by the receiver), the uplink speed measurement method of the present invention can then effectively reduce the impact of packet retransmission on uplink speed measurement by batch packet retransmission.
[0021] The uplink speed measurement method of this invention checks whether the cumulative time for packet transmission at the current transmission rate V has reached a predetermined threshold V2 (e.g., V2 = 2 * RTT). Assuming the most recent rate adjustment time is rate_adjust_tick, the computer device 102 starts transmitting packets at the current transmission rate V from the time point rate_adjust_tick. Therefore, in step S210, the processor 114 calculates the cumulative time time_cur - rate_adjust_tick for packet transmission at the current transmission rate V based on the current time time_cur and the rate adjustment time rate_adjust_tick, and determines whether the cumulative time time_cur - rate_adjust_tick has reached the predetermined threshold V2 (i.e., the deceleration condition is...). If the cumulative time for packet transmission at the current transmission rate V has reached the predetermined threshold V2, the processor 114 can reduce (or avoid) packet loss in subsequent packet transmissions by lowering the transmission rate. Therefore, in step S212, the processor 114 updates the current transmission rate V to a smaller value and updates the sequence number seq_next of the next transmitted packet to the sequence number drop_seq of the lost packet recorded in step S314 (that is, seq_next=drop_seq). Therefore, subsequent packet transmissions will start from the sequence number drop_seq of the lost packet. If multiple packets are lost within the previous cumulative time (time_cur-rate_adjust_tick), subsequent packet transmissions will perform batch packet retransmission to improve retransmission efficiency. Furthermore, if the last lost packet within the previous cumulative time (time_cur-rate_adjust_tick) is not the last sent packet (i.e., one or more packets are successfully received by the receiving end after the last lost packet), after computer device 104 successfully receives the last lost packet within the previous cumulative time (time_cur-rate_adjust_tick), it can set an acknowledgment number based on the last successfully received packet within the previous cumulative time (time_cur-rate_adjust_tick) and return an acknowledgment packet to computer device 102. In this way, the uplink speed measurement method disclosed in this invention can significantly reduce the impact of packet loss on speed measurement performance.
[0022] In step S218, processor 114 calculates the number of packets len to be sent within the timing period (e.g., 1 ms) of timer send_timer based on the current transmission rate V (which can be maintained unchanged (not meeting the speed-up or speed-down conditions), reduced (meeting the speed-down condition), or increased (meeting the speed-up condition)). It then instructs network interface circuit 116 to send multiple packets of number len starting from the sequence number seq_next of the next sent packet. In step S220, processor 114 updates the number of packets sent at the current transmission rate (send_ri_len) and the sequence number seq_next of the next sent packet based on the packet number len. In step S222, since the number of packets to be sent during the uplink speed measurement process has not yet reached the predetermined number, processor 114 restarts timer send_timer to determine when it is necessary to adjust the current transmission rate V (speed up or speed down) next. The send_timer will keep restarting until the number of packets to be sent during the uplink speed test has not reached the predetermined number.
[0023] As described above, in each timing cycle of the send_timer, the processor 114 of the computer device (e.g., ONU) 102 instructs the network interface circuit 116 to continuously send multiple packets of number len to the computer device (e.g., HTTP server) 104 using a fixed sending rate (i.e., the current sending rate V). In addition, whenever the send_timer completes one timing cycle (e.g., 1 ms), the processor 114 will perform a judgment on whether the current sending rate V needs to be adjusted. Through dynamic adjustment of the sending rate, the sending rate can be increased or decreased in a step-like manner, eventually converging to the maximum sending rate without causing packet loss. The final sending rate can then be used as the uplink speed measurement result. In other words, the uplink speed measurement method of the present invention does not need to sample the sending rate during the uplink speed measurement process, but rather uses dynamic adjustment of the sending rate to gradually converge the sending rate to the maximum rate under no packet loss conditions, so that the uplink speed measurement result can be closer to the maximum bandwidth of the network.
[0024] To allow the transmission rate to gradually converge to the maximum transmission rate without causing packet loss, the uplink speed measurement method of this invention gradually reduces the rate adjustment amount based on the number of packet retransmissions during the uplink speed measurement process. Figure 5 is a flowchart of the transmission rate adjustment method according to an embodiment of this invention. If roughly the same result can be obtained, the steps do not necessarily have to be executed in the exact order shown in Figure 5. In step S502, the processor 114 determines whether the current transmission rate V needs to be increased or decreased. If the speed-up condition is met and the current transmission rate V needs to be increased (step S214), the processor 114 executes step S504 to implement the transmission rate adjustment operation (speed-up) in step S216. In step S504, the processor 114 adjusts the predetermined rate increase step Va based on the number of packet retransmissions retrans_num to determine the rate adjustment amount. and use rate adjustment amount To increase the current transmission rate V, in order to set the adjusted transmission rate (i.e., If the deceleration condition is met and it is necessary to reduce the current transmission rate V (step S210), then the processor 114 will execute step S506 to implement the transmission rate adjustment operation (deceleration) in step S212. In step S506, the processor 114 will adjust the predetermined rate reduction step size Vd according to the packet retransmission count retrans_num to determine the rate adjustment amount. and use rate adjustment amount To reduce the current transmission rate V, in order to set the adjusted transmission rate (i.e., Furthermore, since packet retransmission occurs after the deceleration condition is met, in step S508, processor 114 updates the current packet retransmission count retrans_num. Additionally, since processor 114 adjusts the transmission rate (i.e., the current transmission rate V is different from the previously used transmission rate), in step S510, processor 114 resets the number of packets sent at the current transmission rate V (i.e., send_ri_len = 0), and in step S512 sets the current time as the rate adjustment time rate_adjust_tick.
[0025] In summary, the uplink speed measurement method of this invention continuously sends packets at a constant rate. When network connectivity is anticipated, the sending rate is increased to reduce the impact of latency on uplink speed measurement performance. Furthermore, if packet loss occurs, the method does not immediately retransmit the lost packet. Instead, it continues sending packets at the current rate for a period of time, then performs batch retransmission to improve packet retransmission efficiency and reduce the impact of packet loss on uplink speed measurement performance. Additionally, during the uplink speed measurement process, the method does not require sampling the sending rate. Instead, it dynamically adjusts the sending rate to gradually converge to the maximum rate under no-packet-loss conditions, ensuring that the final uplink speed measurement result is closer to the maximum network bandwidth. The above description is only a preferred embodiment of the present invention. All equivalent changes and modifications made in accordance with the claims of the present invention shall be covered by the present invention.
[0026] 100: Network System 102, 104: Computer devices 103: Internet 112, 122: Storage devices 114, 124: Processors 116, 126: Network Interface Circuits PROG_1, PROG_2: Code S202, S204, S206, S208, S210, S212, S214, S216, S218, S220, S222: Steps S302, S304, S306, S308, S310, S312, S314: Steps S502, S504, S506, S508, S510, S512: Steps PKT: Packet ACK: Confirmation packet send_ri_len: The number of packets sent at the current sending rate. SEQ: Serial Number ACK_SEQ: Confirmation number t0, t1: Time points
Claims
1. An uplink speed measurement method, comprising: repeatedly checking whether at least one transmission rate adjustment condition is met during the uplink speed measurement process; and each time it is determined that the at least one transmission rate adjustment condition is met, adjusting a current transmission rate to set an adjusted transmission rate, and using the adjusted transmission rate to send packets to a server; wherein the at least one transmission rate adjustment condition includes a speed-up condition, and the step of repeatedly checking whether the at least one transmission rate adjustment condition is met comprises: determining whether packet loss has been detected; and when no packet loss has been detected, checking whether the speed-up condition is met.
2. The uplink speed measurement method as described in claim 1, wherein the step of repeatedly checking whether the at least one transmission rate adjustment condition is satisfied comprises: checking whether a timer has timed out; and each time it is determined that the timer has timed out, checking whether the at least one transmission rate adjustment condition is satisfied.
3. The uplink rate measurement method as described in request item 2, wherein in each timing cycle of the timer, the uplink rate measurement method uses a fixed transmission rate to send packets to the server.
4. The uplink speed measurement method as described in Request 1, wherein the step of checking whether the speed-up condition is met includes: determining whether the proportion of the number of packets that the server has not yet acknowledged to the number of packets that have been sent at the current sending rate is lower than a predetermined threshold; and when the proportion is lower than the predetermined threshold, determining that the speed-up condition has been met.
5. The uplink rate measurement method as described in claim 1, wherein the step of adjusting the current transmission rate to set the adjusted transmission rate comprises: adjusting a predetermined rate increment step based on the number of packet retransmissions to determine a rate adjustment amount; and using the rate adjustment amount to increase the current transmission rate to set the adjusted transmission rate.
6. An uplink speed measurement method, comprising: repeatedly checking whether at least one transmission rate adjustment condition is met during the uplink speed measurement process; and each time it is determined that the at least one transmission rate adjustment condition is met, adjusting a current transmission rate to set an adjusted transmission rate, and using the adjusted transmission rate to send packets to a server; wherein the at least one transmission rate adjustment condition includes a deceleration condition, and the step of repeatedly checking whether the at least one transmission rate adjustment condition is met comprises: determining whether packet loss has been detected; and when packet loss has been detected, checking whether the deceleration condition is met.
7. The uplink speed measurement method as described in claim 6, wherein the step of checking whether the deceleration condition is met includes: determining whether a cumulative time for packet transmission at the current transmission rate has reached a predetermined threshold; and when the cumulative time has reached the predetermined threshold, determining that the deceleration condition has been met.
8. The uplink rate measurement method as described in claim 6, wherein the step of adjusting the current transmission rate to set the adjusted transmission rate comprises: adjusting a predetermined rate reduction step size based on the number of packet retransmissions to determine a rate adjustment amount; and using the rate adjustment amount to reduce the current transmission rate to set the adjusted transmission rate.
9. The uplink speed measurement method as described in request item 6, wherein the uplink speed measurement method does not immediately retransmit packets when packet loss is detected, but only retransmits packets after determining that the deceleration condition has been met.
10. An uplink speed measurement device, comprising: a network interface circuit for sending packets to a server for uplink speed measurement; a storage device for storing code; and a processor for loading and executing the code to perform the following operations: during the uplink speed measurement process, repeatedly checking whether at least one transmission rate adjustment condition is met; and whenever it is determined that the at least one transmission rate adjustment condition is met, adjusting a current transmission rate to set an adjusted transmission rate, and instructing the network interface circuit to use the adjusted transmission rate to send packets to the server; wherein the at least one transmission rate adjustment condition includes a speed-up condition, and the step of repeatedly checking whether the at least one transmission rate adjustment condition is met includes: determining whether packet loss has been detected; and when no packet loss has been detected, checking whether the speed-up condition is met.
11. The uplink speed measurement device as described in claim 10, wherein the step of repeatedly checking whether the at least one transmission rate adjustment condition is satisfied comprises: checking whether a timer has timed out; and checking whether the at least one transmission rate adjustment condition is satisfied whenever it is determined that the timer has timed out.
12. The uplink speed measurement device as described in claim 11, wherein in each timing cycle of the timer, the network interface circuitry sends packets to the server at a fixed transmission rate.
13. The uplink speed measurement device as described in claim 11, wherein the step of checking whether the speed-up condition is met includes: determining whether the proportion of the number of packets that the server has not yet acknowledged to the number of packets that have been sent at the current sending rate is lower than a predetermined threshold; and when the proportion is lower than the predetermined threshold, determining that the speed-up condition has been met.
14. The uplink speed measurement device as described in claim 11, wherein the step of adjusting the current transmission rate to set the adjusted transmission rate comprises: adjusting a predetermined rate increment step based on the number of packet retransmissions to determine a rate adjustment amount; and using the rate adjustment amount to increase the current transmission rate to set the adjusted transmission rate.
15. An uplink speed measurement device, comprising: a network interface circuit for sending packets to a server for uplink speed measurement; a storage device for storing code; and a processor for loading and executing the code to perform the following operations: during the uplink speed measurement process, repeatedly checking whether at least one transmission rate adjustment condition is met; and whenever it is determined that the at least one transmission rate adjustment condition is met, adjusting a current transmission rate to set an adjusted transmission rate, and instructing the network interface circuit to use the adjusted transmission rate to send packets to the server; wherein the at least one transmission rate adjustment condition includes a deceleration condition, and the step of repeatedly checking whether the at least one transmission rate adjustment condition is met includes: determining whether packet loss has been detected; and when packet loss has been detected, checking whether the deceleration condition is met.
16. The uplink speed measurement device as described in claim 15, wherein the step of checking whether the deceleration condition is met comprises: determining whether a cumulative time for packet transmission at the current transmission rate has reached a predetermined threshold; and determining that the deceleration condition is met when the cumulative time has reached the predetermined threshold.
17. The uplink speed measurement device as described in claim 15, wherein the step of adjusting the current transmission rate to set the adjusted transmission rate comprises: adjusting a predetermined rate reduction step size based on the number of packet retransmissions to determine a rate adjustment amount; and using the rate adjustment amount to reduce the current transmission rate to set the adjusted transmission rate.
18. The uplink speed measurement device as described in claim 15, wherein the uplink speed measurement method does not immediately retransmit packets upon detecting packet loss, but only retransmits packets after determining that the deceleration condition has been met.