File transmission concurrency adjusting method and device
By using utility functions and online gradient descent algorithm under the QUIC protocol, the concurrency amount of file transfer is dynamically adjusted, which solves the challenge of adjusting concurrency amount at the downstream level of the QUIC protocol, and achieves efficient and fast file transfer.
Patent Information
- Application Number
- CN202411949100.9
- Authority / Receiving Office
- CN · China
- Patent Type
- Applications(China)
- Current Assignee / Owner
- Filing Date
- 2024-12-27
- Publication Date
- 2025-04-11
AI Technical Summary
The multiplexing characteristics of the QUIC protocol bring the challenge of stream-level concurrency adjustment. How to effectively adjust stream concurrency and connection concurrency under the QUIC protocol has become a key technical problem that needs to be solved urgently.
The performance of concurrency is evaluated through utility functions, and dynamically adapted to the network environment with the online gradient descent algorithm to adjust the concurrency. The specific method includes obtaining the basic parameters of file transfer, determining the first utility value and the second utility value of the concurrency amount, calculating the gradient and step size, adjusting the learning rate and the concurrency amount until the optimal configuration is reached.
It quickly adjusts the concurrency amount during file transfer, improves the efficiency of file transfer, and can adjust the concurrency amount to the optimal value of the network environment within 10 seconds, solves the problem of transmission concurrency amount setting, and improves the efficiency and fairness of file transfer.
Smart Images

Figure CN119814768A_ABST
Abstract
Description
Technical Field
[0001] The present invention relates to the technical field of network information transmission, and in particular to a method and device for adjusting the concurrent volume of file transmission. Background Art
[0002] With the development of network technology, a new protocol, Quick UDP Internet Connections (QUIC), has been introduced based on the User Datagram Protocol (UDP). The QUIC protocol has brought significant performance improvements to file transfers, but it has also brought new challenges to file transfers. In the past, the simplest and most effective way to improve file transfer performance was to adjust the concurrency of the application layer, that is, to create multiple TCP connections at the same time and transmit multiple files concurrently to reduce the impact of TCP congestion control and head-of-line blocking problems. The multiplexing feature of the QUIC protocol makes it possible to adjust stream-level concurrency. How to adjust stream concurrency and connection concurrency has become a key technical issue that needs to be solved urgently. Summary of the invention
[0003] In order to solve the problems existing in the prior art, the embodiments of the present application provide a method, device, computing equipment, computer storage medium and product including a computer program for adjusting the concurrency of file transfer, which can quickly adjust the concurrency during file transfer and improve the efficiency of file transfer.
[0004] In the first aspect, an embodiment of the present application provides a method for adjusting the concurrency of file transfer, including: obtaining the number of files that need to be transmitted simultaneously, as well as the concurrency and the learning rate; determining a first utility value and a second utility value of the file transfer, wherein the first utility value is the transmission utility when the concurrency number is reduced by one, and the second utility value is the transmission utility when the concurrency number is increased by one; determining the step size that needs to be adjusted under the concurrency based on the first utility value and the second utility value; adjusting the learning rate based on the step size; updating the concurrency based on the step size and the adjusted learning rate; and repeating the process of updating the concurrency multiple times until the updated concurrency minus one is the same as the number of files.
[0005] In some possible implementations, the first utility value and the second utility value are calculated according to the following formula:
[0006] U(n,t,L)=((nt) 0.999 -ntL×10)t 0.7
[0007] In the formula, U represents the utility function, n represents the concurrency, t represents the average bandwidth, and L represents the packet loss rate;
[0008] Then the first utility value u 1 =((n-1)·t 1 ) 0.999 -(n-1)·t 1 ·L 1 ×10)t 1 0.7 , the second utility value u 2 =((n+1)·t 2 ) 0.999 -(n+1)·t 2 ·L 2 ×10)t 2 0.7 .
[0009] In some possible implementations, determining the step size that needs to be adjusted under the concurrency includes: obtaining the gradient of the utility function U when the concurrency is n based on the first utility value and the second utility value, and normalizing the gradient.
[0010] In some possible implementations, the gradient is calculated according to the following formula:
[0011]
[0012] In the formula, λ represents the gradient, u 1 Characterizes the first utility value, u 2 Characterizes the second utility value.
[0013] In some possible implementations, the step size is calculated according to the following formula:
[0014]
[0015] In the formula, δ represents the step size.
[0016] In some possible implementations, the updating of the concurrency is calculated according to the following formula:
[0017] n new =n+θ·δ
[0018] Where n new represents the updated concurrency, n represents the concurrency, θ represents the learning rate, and δ represents the step size.
[0019] In some possible implementations, adjusting the learning rate according to the step size includes: adjusting the learning rate θ according to whether the step size of the previous concurrent optimization and the step size of the current optimization have the same sign.
[0020] In some possible implementations, adjusting the learning rate according to the step size specifically includes: when the step size of the previous concurrent optimization and the step size of this optimization have the same sign, performing a learning rate θ+1 operation; when the step size of the previous concurrent optimization and the step size of this optimization have different signs, performing a learning rate θ / 2 operation.
[0021] In some possible implementations, the initial value of the concurrency is 2.
[0022] In the second aspect, an embodiment of the present application provides a file transfer concurrency adjustment device, including: an acquisition module, used to obtain the number of files that need to be transmitted simultaneously, as well as the concurrency and learning rate; a processing module, used to determine a first utility value and a second utility value of the file transfer, wherein the first utility value is the transmission utility when the concurrency number is reduced by one, and the second utility value is the transmission utility when the concurrency number is increased by one; the processing module is also used to determine the step size that needs to be adjusted under the concurrency based on the first utility value and the second utility value; the processing module is also used to adjust the learning rate based on the step size; the processing module is also used to update the concurrency based on the step size and the adjusted learning rate; the processing module is also used to repeat the process of updating the concurrency multiple times until the updated concurrency minus one is the same as the number of files.
[0023] In a third aspect, an embodiment of the present application provides a computer-readable storage medium, comprising computer-readable instructions. When a computer reads and executes the computer-readable instructions, the computer executes the method described in any one of the first aspects.
[0024] In a fourth aspect, an embodiment of the present application provides a computing device, comprising a processor and a memory, wherein the memory stores computer program instructions, and when the computer program instructions are executed by the processor, the method described in any one of the first aspects is executed.
[0025] In a fifth aspect, an embodiment of the present application provides a product comprising a computer program. When the computer program product runs on a processor, the processor executes the method as described in any one of the first aspects. BRIEF DESCRIPTION OF THE DRAWINGS
[0026] In order to more clearly illustrate the technical solutions of the embodiments of the present invention, the accompanying drawings required for use in the description of the embodiments will be briefly introduced below. Obviously, the accompanying drawings described below are only some embodiments of the present invention. For ordinary technicians in this field, other accompanying drawings can be obtained based on these accompanying drawings without paying creative work.
[0027] Figure 1It is a flowchart of a method for adjusting the concurrent amount of file transfer provided in an embodiment of the present application;
[0028] Figure 2 It is a structural schematic diagram of a file transfer concurrency adjustment device provided in an embodiment of the present application;
[0029] Figure 3 It is a structural diagram of a computing device provided in an embodiment of the present application. DETAILED DESCRIPTION
[0030] In order to make the purpose, technical solution and advantages of the embodiments of the present invention clearer, the technical solution in the embodiments of the present invention will be clearly and completely described below in conjunction with the drawings in the embodiments of the present invention. Obviously, the described embodiments are part of the embodiments of the present invention, not all of the embodiments. Based on the embodiments of the present invention, all other embodiments obtained by ordinary technicians in this field without creative work are within the scope of protection of the present invention.
[0031] The term "and / or" in this article is a description of the association relationship of associated objects, indicating that there can be three relationships. For example, A and / or B can represent: A exists alone, A and B exist at the same time, and B exists alone. The symbol " / " in this article indicates that the associated objects are in an or relationship, for example, A / B means A or B.
[0032] The terms "first" and "second" in the specification and claims herein are used to distinguish different objects rather than to describe a specific order of the objects. For example, a first response message and a second response message are used to distinguish different response messages rather than to describe a specific order of the response messages.
[0033] In the embodiments of the present application, words such as "exemplary" or "for example" are used to indicate examples, illustrations or descriptions. Any embodiment or design described as "exemplary" or "for example" in the embodiments of the present application should not be interpreted as being more preferred or more advantageous than other embodiments or designs. Specifically, the use of words such as "exemplary" or "for example" is intended to present related concepts in a specific way.
[0034] In the description of the embodiments of the present application, unless otherwise specified, "multiple" means two or more than two. For example, multiple processing units refer to two or more processing units, etc.; multiple elements refer to two or more elements, etc.
[0035] To facilitate the understanding of the embodiments of the present application, the following will further explain and illustrate specific embodiments in conjunction with the accompanying drawings. The embodiments do not constitute a limitation on the embodiments of the present invention.
[0036] QUIC runs on top of the UDP protocol, and as a connectionless protocol, UDP takes much less time to establish a connection than TCP because of its fewer handshakes and flexible packet processing features. At the same time, QUIC integrates encryption and security functions internally, and its security is based on TLS1.3, which means that it provides a complete encryption protocol itself, unlike TCP, which needs to rely on additional security layers (such as TLS / SSL). In addition, QUIC provides an error correction mechanism that allows fast recovery of lost data packets. Therefore, it can handle packet loss and confirmation for each data stream separately, instead of uniformly like TCP. This feature can retransmit lost data packets faster when the network is unstable without blocking other data streams. Finally, QUIC uses a pluggable congestion control algorithm, which can switch the congestion control algorithm used at any time to avoid the congestion control algorithm limitations of traditional TCP. Therefore, the QUIC protocol has many advantages for file transfer. First, QUIC allows zero RTT (round trip time) or at most one RTT connection establishment by optimizing the handshake process, which is much faster than traditional TCP connections and has a shorter handshake time. Secondly, QUIC's multiplexing capabilities mean that the delay of a single stream will not affect other streams, thus avoiding head-of-line blocking. Thirdly, QUIC supports seamless connection migration, so the connection remains stable even if the client changes its network connection during transmission (such as switching from a Wi-Fi network to a mobile data network). Thirdly, QUIC also has an excellent congestion control algorithm, which enables it to smoothly adapt to network fluctuations instead of suddenly reducing network speeds when loss events occur. Finally, QUIC can quickly recover lost data packets without having to wait for data retransmission, thereby significantly reducing latency. However, QUIC has the multiplexing feature, which makes it possible to adjust stream-level concurrency.
[0037] In view of this, the embodiment of the present application provides a method for adjusting the concurrency of file transmission, which uses a utility function to evaluate the performance of the concurrency, and combines an online gradient descent algorithm to dynamically adapt to the network environment and adjust the concurrency in a timely manner. This method can quickly find the optimal concurrency level, thereby reducing system overhead and improving fairness, while obtaining near-optimal transmission performance, and can quickly adjust to the appropriate concurrency under the influence of other traffic.
[0038] For example, Figure 1 A schematic diagram of a method for adjusting the concurrency of file transfer provided in an embodiment of the present application is shown. The method is suitable for applications with high concurrency file transfer.
[0039] like Figure 1 As shown, the method for adjusting the file transfer concurrency may include the following steps:
[0040] S11: Obtain the number of files that need to be transferred simultaneously, as well as the concurrency and learning rate.
[0041] In this embodiment, when a task requires concurrent file transmission, basic parameters of file transmission are determined, including the number of files to be transmitted simultaneously, the concurrency, and the learning rate. The concurrency is denoted as n, and the learning rate is denoted as θ.
[0042] In some possible embodiments, the initial value of the concurrency may be 2.
[0043] S12: Determine a first utility value and a second utility value of file transmission, wherein the first utility value is the transmission utility when the number of concurrent connections is reduced by one, and the second utility value is the transmission utility when the number of concurrent connections is increased by one.
[0044] In this embodiment, the utility of file transfer under different concurrency levels is evaluated to determine the optimal concurrency level. File transfer is performed when the concurrency level is reduced by one and increased by one. HTTP3 transfer requests for n-1 different files are sent to the transfer server, key performance indicators (such as throughput, latency, and packet loss rate) during the transfer are recorded, and the corresponding first utility value is calculated. Next, HTTP3 transfer requests for n+1 different files are sent to the transfer server, key performance indicators during the transfer are recorded, and the corresponding second utility value is calculated.
[0045] Specifically, according to the concurrency, the file transfer with concurrency - 1 can be performed first. After a certain period of file transfer, the amount of data transferred, the total number of data packets transferred, and the number of data packets lost during this period are obtained, and the average bandwidth t of a single concurrency is calculated. 1 And the packet loss rate L under the concurrency condition 1 Based on the acquired data, the first utility value of the file transfer is determined and recorded as u 1 For example, after a file transfer has a round-trip delay of 6, the data received by n-1 file transfers is added together through QUIC's own transmission statistics. The average bandwidth t can be obtained by dividing the data received by the total transmission delay and then by the concurrency n-1. 1 Add the number of lost packets and the total number of sent packets, and divide them to get the packet loss rate L 1 Then, perform file transfer with concurrency + 1. After a certain period of file transfer, obtain the amount of data transferred, the total number of data packets transferred, and the number of data packets lost during this period, and calculate the average bandwidth t of a single concurrency. 2 And the packet loss rate L under the concurrency condition 2 Based on the acquired data, the second utility value of the file transfer is determined and recorded as u 2For example, if HTTP3 transmission requests for n+1 different files are sent to the transmission server, after 6 round-trip delays in the file transmission, the data received by n+1 file transmissions is added together through QUIC's own transmission statistics. The average bandwidth t can be obtained by dividing the data received by the total transmission delay and then by the concurrency n+1. 2 , add the number of lost packets and the total number of sent packets, and divide them to get the packet loss rate L 2 .
[0046] In some possible embodiments, the utility value is calculated according to the following formula:
[0047] U(n,t,L)=((nt) 0.999 -ntL×10)t 0.7
[0048] In the formula, U represents the utility function, n represents the concurrency, t represents the average bandwidth, and L represents the packet loss rate.
[0049] Then we can get u 1 =((n-1)·t 1 ) 0.999 -(n-1)·t 1 ·L 1 ×10)t 1 0.7 ,u 2 =((n+1)·t 2 ) 0.999 -(n+1)·t 2 ·L 2 ×10)t 2 0.7 .
[0050] S13: Determine the step size that needs to be adjusted in the case of concurrency according to the first utility value and the second utility value.
[0051] In this embodiment, after the first utility value and the second utility value are obtained, the gradient of the utility function U when the concurrency is n is obtained according to the first utility value and the second utility value, and normalized to obtain the step length.
[0052] In some possible embodiments, the gradient may be calculated according to the following formula:
[0053]
[0054] In the formula, λ represents the gradient.
[0055] In some possible embodiments, the step size may be calculated according to the following formula:
[0056]
[0057] In the formula, δ represents the step size.
[0058] S14: Adjust the learning rate according to the step size.
[0059] In this embodiment, the learning rate is recorded as θ, and the initial value is 1. During the second concurrent optimization and thereafter, the learning rate θ is adjusted according to whether the sign of the step size of the previous concurrent optimization is consistent with that of the current optimization. When the sign of the step size of the previous concurrent optimization is consistent with that of the current optimization, it indicates that the current adjustment direction is correct, the learning rate increases, and the θ+1 operation is performed; when the sign of the step size of the previous concurrent optimization is inconsistent with that of the current optimization, it indicates that the adjustment direction needs to be adjusted, the learning rate is halved, and the θ / 2 operation is performed. Adjustment of the learning rate helps the system converge to the optimal concurrency faster. It should be noted that the minimum value of the learning rate θ is 1. When it is halved, the learning rate may not be 1. In this case, the value of the learning rate θ is 1.
[0060] S15: Update the concurrency based on the step size and adjusted learning rate.
[0061] In this embodiment, the concurrency is updated according to the step size and the adjusted learning rate to achieve better file transfer performance.
[0062] In some possible embodiments, the update concurrency may be calculated according to the following formula:
[0063] n new =n+θ·δ
[0064] Where n new Indicates the updated concurrency, and n indicates the concurrency.
[0065] S16: The process of updating the concurrency is repeated until the updated concurrency minus one is the same as the number of files.
[0066] In this embodiment, in order to continuously optimize the concurrency until the optimal configuration is reached or specific conditions are met, steps S12-S15 can be executed repeatedly to continuously update the concurrency until the updated concurrency minus one is the same as the number of files, or other preset stop conditions are met. This process ensures that the system can dynamically adapt to network changes and continuously optimize file transfer performance. new -1 is greater than the number of files currently being transferred, the file transfer module sends a new file transfer request until the concurrency n is reached. new -1, if n new -1 is less than the number of files currently being transferred, the transfer server is notified to stop sending some files until the number of files transferred equals the concurrent capacity n new -1.
[0067] The above is an introduction to the file transfer concurrency adjustment method provided by the embodiment of the present application. The concurrency set is updated by multiple cycles, so that the final concurrency minus one is the same as the number of files. This method only needs to be deployed at the transmission receiving end, and the transmission sending end is considered as a black box. The data throughput and packet loss rate are sampled during transmission. There is no need to make any changes or requirements to the transmission sending end. It has a wide range of applications and is simple and convenient to deploy. Through this method, the concurrency is adjusted quickly, and the transmission concurrency can be adjusted to the optimal value of the current network environment within 10 seconds, solving the problem of setting the transmission concurrency and improving the efficiency of file transmission. The concurrency can be dynamically adjusted according to the network situation. After the concurrency is adjusted to the optimal value of the network environment, the present invention will continue to run. If the network environment changes, the present invention can quickly adjust the concurrency to the optimal value of the changed network environment. When multiple transmissions running the present invention are carried out simultaneously, the present invention can adjust the concurrency to the average, so that multiple transmissions evenly distribute the network bandwidth to achieve fairness in file transmission.
[0068] It is understandable that the size of the sequence number of each step in the above-mentioned embodiments does not mean the order of execution, and 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. In addition, in some possible implementations, the steps in the above-mentioned embodiments can be selectively executed according to actual conditions, and can be partially executed or fully executed, which is not limited here. All or part of any feature of any embodiment of the present application can be freely and arbitrarily combined without contradiction. The combined technical solution is also within the scope of the present application.
[0069] Based on the method in the above embodiment, the embodiment of the present application also provides a device for adjusting the concurrent amount of file transmission. Figure 2 A device for adjusting the concurrent volume of file transfer is shown. Figure 2 As shown, the device 200 includes an acquisition module 201 and a processing module 202 .
[0070] The acquisition module 201 is used to obtain the number of files that need to be transmitted simultaneously, as well as the concurrency and learning rate;
[0071] The processing module 202 is used to determine a first utility value and a second utility value of the file transmission, wherein the first utility value is the transmission utility when the number of concurrent connections is reduced by one, and the second utility value is the transmission utility when the number of concurrent connections is increased by one;
[0072] The processing module 202 is further configured to determine a step size that needs to be adjusted in the case of the concurrency according to the first utility value and the second utility value;
[0073] The processing module 202 is further configured to adjust the learning rate according to the step size;
[0074] The processing module 202 is further configured to update the concurrency according to the step size and the adjusted learning rate;
[0075] The processing module 202 is further used to repeat the process of updating the concurrency multiple times until the updated concurrency minus one is the same as the number of files.
[0076] It should be understood that the above-mentioned device is used to execute the method in the above-mentioned embodiment. The implementation principle and technical effect of the corresponding program module in the device are similar to those described in the above-mentioned method. The working process of the device can refer to the corresponding process in the above-mentioned method, which will not be repeated here.
[0077] The present application also provides a computing device 300. Figure 3 As shown, computing device 300 includes: bus 302, processor 304, memory 306 and communication interface 308. Processor 304, memory 306 and communication interface 308 communicate through bus 302. Computing device 300 can be a server or a terminal device. It should be understood that the present application does not limit the number of processors and memories in computing device 300.
[0078] The bus 302 may be a peripheral component interconnect (PCI) bus or an extended industry standard architecture (EISA) bus. The bus may be divided into an address bus, a data bus, a control bus, etc. For ease of representation, Figure 3 The bus 304 is represented by only one line, but does not mean that there is only one bus or one type of bus. The bus 304 may include a path for transmitting information between various components of the computing device 300 (eg, the memory 306, the processor 304, and the communication interface 308).
[0079] The processor 304 may include any one or more of a central processing unit (CPU), a graphics processing unit (GPU), a microprocessor (MP), or a digital signal processor (DSP).
[0080] The memory 306 may include a volatile memory, such as a random access memory (RAM). The processor 304 may also include a non-volatile memory, such as a read-only memory (ROM), a flash memory, a hard disk drive (HDD), or a solid state drive (SSD).
[0081] The memory 306 stores executable program codes, and the processor 304 executes the executable program codes to respectively implement the functions of the acquisition module 201 and the processing module 202, thereby implementing all or part of the steps of the method in the above embodiment. That is, the memory 306 stores instructions for executing all or part of the steps in the method in the above embodiment.
[0082] Alternatively, the memory 306 stores executable codes, and the processor 304 executes the executable codes to respectively implement the functions of the aforementioned file transfer concurrency adjustment device 200, thereby implementing all or part of the steps in the above-mentioned embodiment method. That is, the memory 306 stores instructions for executing all or part of the steps in the above-mentioned embodiment method.
[0083] The communication interface 308 uses a transceiver module such as, but not limited to, a network interface card or a transceiver to implement communication between the computing device 300 and other devices or a communication network.
[0084] Based on the methods in the above embodiments, an embodiment of the present application provides a computer-readable storage medium, which stores a computer program. When the computer program runs on a processor, the processor executes the methods in the above embodiments.
[0085] Based on the methods in the above embodiments, an embodiment of the present application provides a computer program product. When the computer program product runs on a processor, the processor executes the methods in the above embodiments.
[0086] It is understood that the processor in the embodiments of the present application may be a central processing unit (CPU), or other general-purpose processors, digital signal processors (DSP), application specific integrated circuits (ASIC), field programmable gate arrays (FPGA) or other programmable logic devices, transistor logic devices, hardware components or any combination thereof. The general-purpose processor may be a microprocessor or any conventional processor.
[0087] The method steps in the embodiments of the present application can be implemented by hardware or by a processor executing software instructions. The software instructions can be composed of corresponding software modules, and the software modules can be stored in random access memory (RAM), flash memory, read-only memory (ROM), programmable read-only memory (PROM), erasable programmable read-only memory (EPROM), electrically erasable programmable read-only memory (EEPROM), registers, hard disks, mobile hard disks, CD-ROMs, or any other form of storage medium known in the art. An exemplary storage medium is coupled to the processor so that the processor can read information from the storage medium and write information to the storage medium. Of course, the storage medium can also be a component of the processor. The processor and the storage medium can be located in an ASIC.
[0088] In the above embodiments, it 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 instructions. When the computer program instructions are loaded and executed on a computer, the process or function described in the embodiment of the present application is generated in whole or in part. The computer may be a general-purpose computer, a special-purpose computer, a computer network, or other programmable device. The computer instructions may be stored in a computer-readable storage medium or transmitted through the computer-readable storage medium. The computer instructions may be transmitted from a website site, computer, server or data center to another website site, computer, server or data center by wired (e.g., coaxial cable, optical fiber, digital subscriber line (DSL)) or wireless (e.g., infrared, wireless, microwave, etc.) means. The computer-readable storage medium may be any available medium that a computer can access or a data storage device such as a server or data center that includes one or more available media integrated. The available medium may be a magnetic medium (e.g., a floppy disk, a hard disk, a tape), an optical medium (e.g., a DVD), or a semiconductor medium (e.g., a solid state disk (SSD)), etc.
[0089] It should be understood that the various numerical numbers involved in the embodiments of the present application are only used for the convenience of description and are not used to limit the scope of the embodiments of the present application.
Claims
1. A method for adjusting the concurrent volume of file transfer, characterized in that: The method comprises: Get the number of files that need to be transferred simultaneously, as well as the concurrency and learning rate; Determine a first utility value and a second utility value of the file transfer, wherein the first utility value is the transfer utility when the number of concurrent connections is reduced by one, and the second utility value is the transfer utility when the number of concurrent connections is increased by one; Determining, according to the first utility value and the second utility value, a step size that needs to be adjusted under the concurrency; Adjusting the learning rate according to the step size; Updating the concurrency according to the step size and the adjusted learning rate; The process of updating the concurrency is repeated multiple times until the updated concurrency minus one is the same as the number of files.
2. The method according to claim 1, characterized in that The first utility value and the second utility value are calculated according to the following formula: U(n,t,L)=((nt) 0.999 -ntL×10)t 0.7 In the formula, U represents the utility function, n represents the concurrency, t represents the average bandwidth, and L represents the packet loss rate; Then the first utility value u1=((n-1)·t1) 0.999 -(n-1)·t1·L1×10)t1 0.7 , the second utility value u2 = ((n+1)·t2) 0.999 -(n+1)·t2·L2×10)t2 0.7 .
3. The method according to claim 1, characterized in that The determining of the step size that needs to be adjusted under the concurrency includes: obtaining the gradient of the utility function U when the concurrency is n according to the first utility value and the second utility value, and normalizing the gradient.
4. The method according to claim 3, characterized in that The gradient is calculated according to the following formula: Where λ represents the gradient, u1 represents the first utility value, and u2 represents the second utility value.
5. The method according to claim 4, characterized in that The step length is calculated according to the following formula: In the formula, δ represents the step size.
6. The method according to claim 1, characterized in that The updating of the concurrent amount is calculated according to the following formula: n new =n+θ·δ Where n new represents the updated concurrency, n represents the concurrency, θ represents the learning rate, and δ represents the step size.
7. The method according to claim 1, characterized in that The adjusting the learning rate according to the step size comprises: The learning rate θ is adjusted according to whether the sign of the step size of the previous concurrent optimization is consistent with that of this optimization.
8. The method according to claim 7, characterized in that The adjusting the learning rate according to the step size specifically includes: When the step size of the previous concurrent optimization is consistent with the step size of this optimization, the learning rate θ+1 operation is performed; When the sign of the step size of the previous concurrent optimization is inconsistent with that of the current optimization, the learning rate θ / 2 is performed.
9. The method according to claim 1, characterized in that: The initial value of the concurrency is 2.
10. A device for adjusting the concurrent volume of file transfer, characterized in that: The device comprises: The acquisition module is used to obtain the number of files that need to be transferred simultaneously, as well as the concurrency and learning rate; A processing module, configured to determine a first utility value and a second utility value of file transmission, wherein the first utility value is the transmission utility when the number of concurrent connections is reduced by one, and the second utility value is the transmission utility when the number of concurrent connections is increased by one; The processing module is further used to determine a step size that needs to be adjusted in the case of the concurrency according to the first utility value and the second utility value; The processing module is further used to adjust the learning rate according to the step size; The processing module is further used to update the concurrency according to the step size and the adjusted learning rate; The processing module is also used for the process of updating the concurrency in multiple cycles until the updated concurrency minus one is the same as the number of files.