Download speed control method and device, electronic equipment and storage medium

By dividing the interval according to the actual download speed of the download object and calculating the bandwidth threshold, and selecting the maximum reference download speed as the download speed threshold, the bandwidth control problem during peak download period is solved, and download efficiency and bandwidth utilization are improved.

CN119583528APending Publication Date: 2025-03-07TENCENT TECHNOLOGY (SHENZHEN) CO LTD
View PDF 0 Cites 0 Cited by

Patent Information

Application Number
CN202311148379.6
Authority / Receiving Office
CN · China
Patent Type
Applications(China)
Current Assignee / Owner
Filing Date
2023-09-06
Publication Date
2025-03-07

AI Technical Summary

Technical Problem

During peak download periods, the existing technology controls bandwidth by limiting the download speed, resulting in users who were originally slow to be limited again, seriously affecting download efficiency and service quality.

Method used

By arranging each download object to the corresponding download speed intervals according to the actual download speed of the download object, and traversing these intervals to obtain the set of download threshold values. Each download speed interval is read as a reference to calculate the actual and estimated total bandwidth occupancy. If it is not greater than the bandwidth threshold, the reference download speed is added to the download threshold value set, and the maximum reference download speed is finally selected as the download speed threshold.

Benefits of technology

This method can improve download efficiency on the basis of saving bandwidth costs, reduce the impact on the download object's speed limit, maximize bandwidth utilization, and keep bandwidth near the threshold during peak download periods.

✦ Generated by Eureka AI based on patent content.

Smart Images

  • Figure CN119583528A_ABST
    Figure CN119583528A_ABST
Patent Text Reader

Abstract

The invention relates to the technical field of communication, in particular to the technical field of data transmission, and provides a downloading speed control method and device, electronic equipment and a storage medium which are used for improving downloading efficiency. The method comprises the following steps of: affiliating each downloading object to a corresponding downloading speed interval according to the actual downloading speed of each downloading object; traversing each downloading speed interval, and executing the following operations every time the downloading speed interval is read: obtaining the actual total occupied bandwidth of each downloading object contained in the read downloading speed interval set; based on the reference downloading speed, obtaining an estimated total occupied bandwidth of each downloading object contained in the unread downloading speed interval set; if the sum of the actual total occupied bandwidth and the estimated total occupied bandwidth is not greater than a preset bandwidth threshold value, adding the reference downloading speed to a downloading threshold value set; and acquiring a downloading speed threshold in the downloading threshold set. The downloading speed threshold obtained by the method and the device cannot influence the downloading object lower than the threshold, so that the downloading experience and the downloading efficiency can be improved.
Need to check novelty before this filing date? Find Prior Art

Description

Background Art

[0002] With the development of Internet technology and the continuous improvement of living standards, people can now download various multimedia applications on the Internet to meet their material and cultural needs, such as novels, music, videos, games, etc.

[0003] In actual download scenarios, the maximum total bandwidth of the total bandwidth occupied by multimedia applications downloaded at each moment determines the bandwidth cost. In order to save this cost, a bandwidth threshold is often set based on the download status of multimedia applications at various moments in the past. However, the number of downloaders at each moment is not constant. For example, during the daily rest period, users often flock to the server to download multimedia applications. At this time, the actual bandwidth occupied by the download can easily exceed the bandwidth threshold, resulting in increased bandwidth costs.

[0004] In the related art, in response to the above situation, the download speed is often limited during the download peak period to achieve bandwidth control, so as to avoid the actual bandwidth exceeding the bandwidth threshold as much as possible; the specific limitation method is to limit the speed of all users in the same proportion based on the ratio of the current actual total bandwidth to the bandwidth threshold.

[0005] However, adopting the above method will cause the speed of users with slow download speed to be limited again, which will seriously affect the download efficiency and reduce the service quality. Summary of the invention

[0006] The embodiments of the present application provide a method, device, electronic device and storage medium for controlling download speed, so as to improve download efficiency while saving bandwidth cost.

[0007] A method for controlling download speed provided in an embodiment of the present application includes:

[0008] Based on the actual download speed of each download object for the download target, respectively assigning each download object to a corresponding download speed interval;

[0009] The download speed intervals are traversed to obtain a set of download threshold values, wherein each time a download speed interval currently read is used as a reference download speed interval, and the following operations are performed:

[0010] Obtaining the actual total occupied bandwidth of each download object included in the read download speed interval set; the read download speed interval set at least includes the reference download speed interval;

[0011] Obtaining a reference download speed based on the reference download speed interval, and obtaining an estimated total occupied bandwidth of each download object included in the unread download speed interval set based on the reference download speed;

[0012] If the sum of the actual total occupied bandwidth and the estimated total occupied bandwidth is not greater than a preset bandwidth threshold, adding the reference download speed to the download threshold value set;

[0013] The reference download speeds in the download threshold value set are sorted, and the reference download speed at a specified position is used as the download speed threshold for the download target.

[0014] An embodiment of the present application provides a download speed control device, comprising:

[0015] an attribution unit, configured to respectively attribute each download object to a corresponding download speed interval based on an actual download speed of each download object for a download target;

[0016] The traversal unit is used to traverse the download speed intervals to obtain a set of download threshold values, wherein each time a download speed interval currently read is used as a reference download speed interval, and the following operations are performed:

[0017] Obtaining the actual total occupied bandwidth of each download object included in the read download speed interval set; the read download speed interval set at least includes the reference download speed interval;

[0018] Obtaining a reference download speed based on the reference download speed interval, and obtaining an estimated total occupied bandwidth of each download object included in the unread download speed interval set based on the reference download speed;

[0019] If the sum of the actual total occupied bandwidth and the estimated total occupied bandwidth is not greater than a preset bandwidth threshold, adding the reference download speed to the download threshold value set;

[0020] The sorting unit is used to sort the reference download speeds in the download threshold value set, and use the reference download speed at a specified position as the download speed threshold for the download target.

[0021] Optionally, the traversal unit is specifically used for:

[0022] Selecting, from the reference download speed interval and each of the read download speed intervals included in the read download speed interval set, download speed values ​​corresponding to the reference download speed interval and each of the read download speed intervals;

[0023] Based on the reference download speed interval, the number of download objects corresponding to each of the read download speed intervals, and the download speed values, the actual total occupied bandwidth of each download object included in the read download speed interval set is obtained.

[0024] Optionally, the traversal unit is specifically used for:

[0025] Based on the reference download speed interval, the sum of the products of the number of download objects corresponding to each of the read download speed intervals and the corresponding download speed value is obtained to obtain the actual total occupied bandwidth of each download object included in the read download speed interval set.

[0026] Optionally, the traversal unit is specifically used for:

[0027] Using the download speed value corresponding to the reference download speed interval as the reference download speed of each unread download speed interval in the unread download speed interval set;

[0028] Based on the number of download objects corresponding to each of the unread download speed intervals and the reference download speed, an estimated total occupied bandwidth of each download object included in the unread download speed interval set is obtained.

[0029] Optionally, the traversal unit is specifically used for:

[0030] Based on the sum of the products of the number of download objects corresponding to each of the unread download speed intervals and the reference download speed, an estimated total occupied bandwidth of each download object included in the unread download speed interval set is obtained.

[0031] Optionally, the sorting unit is specifically used to:

[0032] If it is determined that there is a reference download speed that is not added to the download threshold value set, the reference download speeds in the download threshold value set are sorted, and the reference download speed at a specified position is used as the download speed threshold for the download target.

[0033] Optionally, the traversal unit is specifically used for:

[0034] The download speed intervals are traversed in order from low speed to high speed to obtain a set of download threshold values.

[0035] Optionally, the sorting unit is specifically used to:

[0036] The maximum reference download speed is used as the download speed threshold for the download target.

[0037] An electronic device provided by an embodiment of the present application includes a processor and a memory, wherein the memory stores a computer program, and when the computer program is executed by the processor, the processor executes the steps of any one of the above-mentioned download speed control methods.

[0038] An embodiment of the present application provides a computer-readable storage medium, which includes a computer program. When the computer program is run on an electronic device, the computer program is used to enable the electronic device to execute the steps of any one of the above-mentioned download speed control methods.

[0039] An embodiment of the present application provides a computer program product, which includes a computer program, and the computer program is stored in a computer-readable storage medium; when a processor of an electronic device reads the computer program from the computer-readable storage medium, the processor executes the computer program, so that the electronic device performs the steps of any one of the above-mentioned download speed control methods.

[0040] The beneficial effects of this application are as follows:

[0041] The embodiments of the present application provide a method, device, electronic device and storage medium for controlling download speed. After obtaining the actual download speed of each download object for the download target, the present application assigns each download object to a corresponding download speed interval according to each actual download speed, and then traverses each download speed interval. Each time a download speed interval is read, the sum of the bandwidth occupied by each download object included in the currently read download speed interval and the download speed interval that has been read is calculated to obtain the actual total occupied bandwidth; then, the download speed value corresponding to the currently read download speed interval, that is, the reference download speed, is assumed to be the download speed of each download object in the unread download speed interval set, and the estimated total occupied bandwidth of all download objects in the unread download speed interval set is calculated when the download speed of each download object in the unread download speed interval set is the reference download speed.

[0042] Then, compare the sum of the actual total occupied bandwidth and the estimated total occupied bandwidth with the bandwidth threshold. If it is not greater than the bandwidth threshold, it means that when the unread download speed interval is concentrated and the download speed of each download object is the reference download speed, the total bandwidth occupied by all download objects currently downloading the download target will not exceed the bandwidth threshold. Therefore, the reference download speed can be used as one of the options for the download speed threshold.

[0043] After traversing all download speed intervals, one is selected from all the reference download speeds obtained as the final download speed threshold. This download speed threshold will only limit the speed of download objects whose actual download speed is higher than the threshold, and will not affect download objects whose speed is lower than the threshold. Therefore, the download experience and download efficiency can be improved. During the download peak period, there is a reference download speed whose sum of the actual total occupied bandwidth and the estimated total occupied bandwidth is very close to the bandwidth threshold. This reference download speed can maximize the bandwidth utilization and minimize the number of download objects affected by the speed limit. For download objects with higher download speeds, the speed limit has a relatively low impact, further improving the download experience.

[0044] Other features and advantages of the present application will be described in the following description, and partly become apparent from the description, or be understood by practicing the present application. The purpose and other advantages of the present application can be realized and obtained by the structures specifically pointed out in the written description, claims, and drawings. BRIEF DESCRIPTION OF THE DRAWINGS

[0045] The drawings described herein are used to provide a further understanding of the present application and constitute a part of the present application. The illustrative embodiments of the present application and their descriptions are used to explain the present application and do not constitute an improper limitation on the present application. In the drawings:

[0046] Figure 1 A schematic diagram of an application scenario of a download speed control method provided in an embodiment of the present application;

[0047] Figure 2 An overall flow chart of a download speed control method provided in an embodiment of the present application;

[0048] Figure 3 An actual download speed distribution diagram provided in an embodiment of the present application;

[0049] Figure 4 A logic diagram for counting the actual download speed distribution of each player provided in an embodiment of the present application;

[0050] Figure 5 A logic diagram for obtaining the actual total occupied bandwidth of each download object in the read download speed interval set provided by an embodiment of the present application;

[0051] Figure 6 A logic diagram for obtaining an estimated total occupied bandwidth of each download object included in an unread download speed interval set provided in an embodiment of the present application;

[0052] Figure 7 A schematic diagram of a download speed threshold value provided in an embodiment of the present application;

[0053] Figure 8 A schematic diagram of a download speed control system provided in an embodiment of the present application;

[0054] Fig. 9 A schematic diagram of a closed-loop feedback system provided in an embodiment of the present application;

[0055] Fig.10 A schematic diagram of a bandwidth control effect provided in an embodiment of the present application;

[0056] Fig.11 A flowchart of another download speed control method provided in an embodiment of the present application;

[0057] Fig.12 A logical schematic diagram of controlling download speed provided in an embodiment of the present application;

[0058] Fig.13 A schematic diagram of the structure of a download speed control device provided in an embodiment of the present application;

[0059] Fig.14 A schematic diagram of a hardware structure of an electronic device provided in an embodiment of the present application;

[0060] Fig.15 A schematic diagram of the hardware structure of another electronic device provided for application of an embodiment of the present application. DETAILED DESCRIPTION

[0061] In order to make the purpose, technical solution and advantages of the embodiments of the present application clearer, the technical solution of the present application will be clearly and completely described below in conjunction with the drawings in the embodiments of the present application. Obviously, the described embodiments are part of the embodiments of the technical solution of the present application, rather than all of the embodiments. Based on the embodiments recorded in the application documents, all other embodiments obtained by ordinary technicians in this field without creative work are within the scope of protection of the technical solution of the present application.

[0062] The following is an introduction to some concepts involved in the embodiments of the present application.

[0063] Actual download speed: The actual speed at which the relevant data of the download target is downloaded from the Internet or other networks to the download device when the download object downloads the download target through the download device.

[0064] Reference download speed: the download speed value corresponding to the download speed range currently read by the server, where the download speed value is obtained by the server based on the download speed range currently read, and it can be the upper limit value, lower limit value, middle value, etc. of the download speed range.

[0065] Actual total occupied bandwidth: the sum of the actual bandwidth occupied by each download object in the current read download interval set, each read download interval and the reference download interval.

[0066] Estimated total occupied bandwidth: The reference download speed is used as the download speed corresponding to each unread download interval in the current unread download interval set, and the sum of the estimated bandwidths occupied by each download object in the unread download interval set is obtained.

[0067] The following is a brief introduction to the design concept of the embodiment of the present application:

[0068] In an actual download scenario, the more download objects a multimedia application is currently downloading, and the faster the download speed of a single download object is, the greater the total bandwidth occupied by all download objects currently downloading the multimedia application. Furthermore, among the total bandwidths corresponding to each time of the day, the maximum total bandwidth, that is, the daily peak value of the total bandwidth, determines the bandwidth cost. In order to save this cost, a bandwidth threshold is often set in advance, and the actual download speed of the download object is limited during the download peak period, so as to control the total bandwidth occupied by all download objects within the bandwidth threshold as much as possible. However, how to limit the actual download speed has become an increasingly prominent problem.

[0069] In the related technology, the average speed limit method or the proportional speed limit method is usually used to limit the actual download speed of each download object; wherein, the average speed limit method is to divide the bandwidth threshold by the number of download objects currently downloading the download target, and use the calculated result as the speed limit value, which is sent to each terminal device so that the download speed of each download object for the download target does not exceed the speed limit value sent by the server. However, due to the large number of users downloading at the same time during the evening peak, the speed limit value sent by the server will be relatively low. For download objects with a higher actual download speed, their actual download speed will directly drop to the speed limit value, and the download speed limit is more serious, resulting in a poor download experience; and for download objects with a lower actual download speed, due to the limitations of their own equipment or network, the actual download speed itself cannot reach the speed limit value sent by the server. And under this method, after the speed limit, the total bandwidth occupied by all download objects does not reach the bandwidth threshold, so that the bandwidth is not fully utilized, and the objects with a faster actual download speed still have room to improve the download speed.

[0070] The proportional speed limit rule is to limit the speed of all download objects in the same proportion based on the ratio of the total bandwidth occupied by all download objects to the bandwidth threshold. This results in that during peak download periods, download objects with lower actual download speeds will be limited again, resulting in a poor download experience for the download objects, seriously affecting download efficiency and reducing service quality.

[0071] Based on this, the present application proposes a method for controlling the download speed. After obtaining the actual download speed of each download object for the download target, the present application will assign each download object to a corresponding download speed interval according to the actual download speed, and then traverse each download speed interval. Each time a download speed interval is read, the sum of the bandwidth occupied by each download object contained in the currently read download speed interval and the download speed interval that has been read is first calculated to obtain the actual total occupied bandwidth.

[0072] Afterwards, assuming that the unread download speed interval is concentrated, the download speed of all download objects is the reference download speed, and calculate how much bandwidth all download objects in the unread download speed interval will occupy in this case, and then add the actual total occupied bandwidth to the estimated total occupied bandwidth. If the result does not exceed the pre-set bandwidth threshold, it means that the actual download speed of each download object is limited according to the reference download speed, so that the total bandwidth occupied by all download objects currently downloading the download target can be kept within the bandwidth threshold. At this time, the server adds the reference download speed to the download threshold value set.

[0073] After traversing all download speed intervals, the largest one among all reference download speeds obtained can be selected as the final download speed threshold. Since the download speed threshold will only limit the speed of download objects whose actual download speed is higher than the threshold, and will not affect download objects whose actual download speed is lower than the threshold, the download experience and download efficiency can be improved. And since the threshold is the maximum reference download speed, the number of download objects affected by the speed limit can be minimized, and the total bandwidth occupied by all download objects currently downloading the download target is also closest to the bandwidth threshold, achieving full utilization of the bandwidth.

[0074] The preferred embodiments of the present application are described below in conjunction with the drawings in the specification. It should be understood that the preferred embodiments described herein are only used to illustrate and explain the present application, and are not used to limit the present application. In addition, the embodiments and features in the embodiments of the present application may be combined with each other if there is no conflict.

[0075] like Figure 1 As shown, it is a schematic diagram of an application scenario of an embodiment of the present application. The application scenario diagram includes two terminal devices 110 and a server 120.

[0076] In the embodiment of the present application, the terminal device 110 includes but is not limited to mobile phones, tablet computers, laptop computers, desktop computers, e-book readers, intelligent voice interaction devices, smart home appliances, car terminals and other devices; the terminal device may be installed with a client related to games, music, etc., which may be software (such as a browser, game software, etc.), or a web page, a small program, etc. The server 120 is a background server corresponding to the software or web page, small program, etc., or a server specifically used for download speed control, which is not specifically limited in the present application. The server 120 may be an independent physical server, or a server cluster or distributed system composed of multiple physical servers, or a cloud server that provides basic cloud computing services such as cloud services, cloud databases, cloud computing, cloud functions, cloud storage, network services, cloud communications, middleware services, domain name services, security services, content delivery networks (CDNs), and big data and artificial intelligence platforms.

[0077] It should be noted that the download speed control method in each embodiment of the present application can be executed by an electronic device, and the electronic device can be a server 120, that is, the method can be executed by the server 120 alone. With the server 120 as the execution subject, assuming that the current Q game has been updated to a new version, the player needs to download the new version of the game installation package. At this time, each terminal device 110 uploads its actual download speed for the game installation package. After receiving each actual download speed, the server 120 assigns each player who is currently downloading the game installation package to a corresponding download speed interval according to the actual download speed; thereafter, the server reads each download speed interval in a certain order, and each time it is read, the currently read download speed interval is used as a reference download speed interval, and the following operations are performed:

[0078] For each download speed interval that has been read and a download speed interval that is currently being read, the server 120 obtains the actual total occupied bandwidth occupied by all players in these download speed intervals; for each download speed interval that has not been read, the server 120 obtains the reference download speed according to the download speed interval that is currently being read, and obtains the estimated total occupied bandwidth occupied by all players in each download speed interval that has not been read based on the reference download speed. Finally, the server 120 compares the sum of the actual total occupied bandwidth and the estimated total occupied bandwidth with the size of the preset bandwidth threshold. If the sum of the actual total occupied bandwidth and the estimated total occupied bandwidth is not greater than the bandwidth threshold, the reference download speed obtained in the current reading is added to the download threshold value set.

[0079] After traversing all download speed ranges, the server 120 selects a reference download speed from the download threshold value set as the download speed threshold for the game installation package of the Q game, and sends the download speed threshold to each terminal device 110 to limit the maximum actual download speed of each terminal device 110 for the game installation package.

[0080] In an optional implementation, the terminal device 110 and the server 120 may communicate with each other via a communication network.

[0081] In an optional implementation, the communication network is a wired network or a wireless network.

[0082] It should be noted that Figure 1 The figure is only an example. In fact, the number of terminal devices and servers is not limited and is not specifically limited in the embodiments of the present application.

[0083] In an embodiment of the present application, when there are multiple servers, the multiple servers can form a blockchain, and the servers are nodes on the blockchain; as in the download speed control method disclosed in the embodiment of the present application, the download data involved can be saved on the blockchain, for example, the actual download speed, the actual total occupied bandwidth, the estimated total occupied bandwidth, the download threshold value, etc.

[0084] In addition, the embodiments of the present application can be applied to various scenarios, including not only scenarios of download speed control, but also including but not limited to cloud technology, artificial intelligence, smart transportation, assisted driving and other scenarios.

[0085] The following describes the download speed control method provided by the exemplary embodiment of the present application in combination with the application scenario described above and with reference to the accompanying drawings. It should be noted that the above application scenario is only shown to facilitate understanding of the spirit and principles of the present application, and the implementation of the present application is not limited in this respect.

[0086] See also Figure 2 As shown, it is an implementation flow chart of a method for controlling download speed provided in an embodiment of the present application. The specific implementation process of the method is as follows:

[0087] S201: The server assigns each download object to a corresponding download speed interval based on the actual download speed of each download object for the download target.

[0088] In the above, the download target can be a video, a song, a game installation package, etc.; the download object is the object that is currently performing a download operation on the download target; each download device used by each download target can detect its own actual download speed and send the actual download speed to the server; the download device can be a laptop computer, a mobile phone, a desktop computer, etc.; based on this, the server can obtain the actual download speed of each download object currently being downloaded for the download target, or in other words, obtain the actual download speed of each download device currently being downloaded for the download target.

[0089] It can be understood that in the specific implementation of the present application, related data such as the actual download speed of each download object for the download target is involved. When the above embodiments of the present application are applied to specific products or technologies, it is necessary to obtain the permission or consent of the download object, and the collection, use and processing of relevant data need to comply with the relevant laws, regulations and standards of the relevant countries and regions.

[0090] In order to control the download speed in time and adjust the bandwidth, the server can periodically obtain the actual download speed of each download object for the download target, for example, once a minute, or once every half a minute, which is not specifically limited in this application. The following is a specific introduction using one of the acquisitions as an example.

[0091] After obtaining each actual download speed, the server counts the actual download speed distribution of each download object. An optional statistical method is to divide the maximum speed of 100000KB / s into 10000 download speed intervals, and the length of each download speed interval is 10KB / s. For example, the first download speed interval is 0-10KB / s, the second download speed interval is 10-20KB / s, the third download speed interval is 20-30KB / s, ..., and the last download speed interval is 99990-100000KB / s.

[0092] Assuming that an actual download speed is 23KB / s, the download object corresponding to the actual download speed is assigned to the third download speed interval; assuming that another actual download speed is 7KB / s, the download object corresponding to the actual download speed is assigned to the first download speed interval; assuming that an actual download speed is 10002KB / s, 10002KB / s divided by 10KB / s is 1000 plus 2, then the download object corresponding to the actual download speed is assigned to the 1000+1th download speed interval... until all download objects are assigned.

[0093] like Figure 3As shown, it is an actual download speed distribution diagram provided by an embodiment of the present application. After all download objects are assigned according to the above method, an actual download speed distribution diagram with the download speed as the horizontal axis and the number of downloaders as the vertical axis can be approximately obtained.

[0094] It should be noted that each of the above download speed intervals can be open at the beginning and closed at the end (the first download speed interval is closed at the beginning and closed at the end), or closed at the beginning and open at the end (the last download speed interval is closed at the beginning and closed at the end), etc.; and each of the above methods for statistically analyzing the actual download speed distribution is only an example, and this application does not make any specific limitations.

[0095] Taking a specific scenario as an example, suppose a game has just been launched, and a large number of players download the game installation package every day. In order to limit bandwidth costs, the game manufacturer sets the bandwidth threshold to S. Assume that each player only uses one download device to download the game installation package, and the server obtains the actual download speed of each player who is currently downloading the game installation package every minute.

[0096] like Figure 4 As shown, it is a logic diagram for counting the actual download speed distribution of each player provided by an embodiment of the present application. It is assumed that the current server obtains that z players are downloading the download target, that is, there are z actual download speeds, among which the actual download speed corresponding to player 1 is D1 (KB / s), the actual download speed corresponding to player 2 is D2 (KB / s), the actual download speed corresponding to player 3 is D3 (KB / s), the actual download speed corresponding to player 4 is D4 (KB / s), ..., the actual download speed corresponding to player z is Dz (KB / s); the server assigns each download object to the corresponding download speed interval according to each actual download speed.

[0097] There are n download speed intervals in total, and the length of each download speed interval is 10KB / s. Assume that the attribution results of each download object are as follows: the actual download speed D1 (KB / s) corresponding to player 1 is between 10 and 20 (KB / s), so player 1 is attributed to download speed interval 2; the actual download speed D2 (KB / s) corresponding to player 2 is between 10n-20 and 10n-10 (KB / s), so player 2 is attributed to download speed interval n-1; the actual download speed D3 (KB / s) corresponding to player 3 is between 10n-20 and 10n-10 (KB / s), so player 3 is also attributed to download speed interval n-1; the actual download speed D4 (KB / s) corresponding to player 4 is between 10n-10 and 10n (KB / s), so player 4 is attributed to download speed interval n; ...; the actual download speed Dz (KB / s) corresponding to player z is between 0 and 10 (KB / s), so player z is attributed to download speed interval 1.

[0098] S202: The server traverses each download speed interval to obtain a set of download threshold values, wherein each time a download speed interval currently read is used as a reference download speed interval, and the following operations are performed:

[0099] S2021: The server obtains the actual total occupied bandwidth of each download object included in the read download speed interval set.

[0100] In the above, the server traverses each download speed interval in order from low speed to high speed, and the read download speed interval set at least includes the reference download speed interval; when the server reads the first download speed interval this time, the read download speed interval set only includes the reference download speed interval currently being read; when the server does not read the first download speed interval this time, the read download speed interval set includes all the read download speed intervals that have been read before, as well as the reference download speed interval currently being read.

[0101] An optional way to obtain the actual total occupied bandwidth is that the server selects the download speed values ​​corresponding to the reference download speed interval and each read download speed interval from the reference download speed interval and each read download speed interval included in the read download speed interval set; then, the server obtains the actual total occupied bandwidth of each download object included in the read download speed interval set based on the reference download speed interval, the number of download objects corresponding to each read download speed interval, and each download speed value.

[0102] Among them, the download speed value corresponding to a download speed range can be the upper limit value, lower limit value, middle value, etc. of the download speed range, and this application does not make specific limitations.

[0103] In the above, there is the following relationship between the download speed and the occupied bandwidth. A download speed of 1Mb / s will correspond to occupying 1Mb of bandwidth, 1Mb / s=1024Kb / s=128KB / s.

[0104] The actual total occupied bandwidth can be approximately obtained by multiplying the number of download objects by the corresponding download speed value; an optional implementation is that the server can obtain the actual total occupied bandwidth of each download object included in the read download speed interval set based on the reference download speed interval and the sum of the products of the number of download objects corresponding to each read download speed interval and the corresponding download speed value.

[0105] In addition, if the computing power is sufficient, the product of each download object and its corresponding actual download speed in the read download speed interval can be calculated separately, and finally all the products can be added together to obtain the actual total occupied bandwidth; next, this application will still take the multiplication of the number of download objects in each interval by the corresponding download speed value as an example to introduce and explain this application.

[0106] The download speed interval is denoted as i, and the reference download speed interval is denoted as m; x[i] is defined as the download speed value of the i-th download speed interval, and y[i] is defined as the number of downloaders in the i-th download speed interval; assuming that the length of each download speed interval is 10KB / s, and the download speed value is the upper limit of each interval, then x[i] = i×10KB / s; the calculation formula for the actual total occupied bandwidth B1 is as follows:

[0107]

[0108] Following the assumption in S201, after assigning each player to a corresponding download speed interval, the server starts from download speed interval 1 and traverses each download speed interval in order from low speed to high speed; Figure 5 As shown, a logic diagram for obtaining the actual total occupied bandwidth of each download object in the read download speed interval set provided by an embodiment of the present application, assuming that download speed intervals 1 to 3 have been read, and the server is currently continuing to read download speed interval 4, then the current read download speed interval set includes the read download speed interval 1, the read download speed interval 2, the read download speed interval 3, and also includes the download speed interval 4 currently being read, that is, the reference download speed interval 4.

[0109] Assume that the read download speed interval 1 contains y1 players, and the corresponding download speed value is x1; the read download speed interval 2 contains y2 players, and the corresponding download speed value is x2; the read download speed interval 3 contains y3 players, and the corresponding download speed value is x3; the reference download speed interval 4 contains y4 players, and the corresponding download speed value is x4. Then the actual total occupied bandwidth is x1×y1+x2×y2+x3×y3+x4×y4.

[0110] S2022: The server obtains a reference download speed based on the reference download speed interval, and obtains an estimated total occupied bandwidth of each download object included in the unread download speed interval set based on the reference download speed.

[0111] After obtaining the actual total occupied bandwidth of each download object in the read download speed interval set, the server needs to further obtain the estimated total occupied bandwidth of the download speed interval that has not been read. The estimated total occupied bandwidth is different from the actual total occupied bandwidth, which is calculated based on the reference download speed; wherein the reference download speed is the download speed value corresponding to the reference download speed interval; that is, the server uses the download speed value corresponding to the reference download speed interval as the reference download speed of each unread download speed interval in the unread download speed interval set. Afterwards, the server obtains the estimated total occupied bandwidth of each download object contained in the unread download speed interval set based on the number of download objects corresponding to each unread download speed interval and the reference download speed.

[0112] This step is equivalent to determining how much bandwidth all the download objects in the unread download speed interval set will occupy, assuming that the download speeds of all the download objects in the unread download speed interval set are the reference download speed.

[0113] The estimated total occupied bandwidth can also be approximately obtained by multiplying the number of download objects by the reference download speed; an optional implementation is that the server obtains the estimated total occupied bandwidth of each download object included in the unread download speed interval set based on the sum of the products of the number of download objects corresponding to each unread download speed interval and the reference download speed.

[0114] The download speed interval is still recorded as i, and the reference download speed interval is recorded as m; x[i] is defined as the download speed value of the i-th download speed interval, and y[i] is defined as the number of downloaders in the i-th download speed interval; assuming that there are n download speed intervals in total, and the length of each download speed interval is 10KB / s, and the download speed value is the upper limit of each interval, then x[i] = i×10KB / s; the calculation formula for estimating the total occupied bandwidth B2 is as follows:

[0115]

[0116] Using the assumptions in S2021, such as Figure 6 As shown, it is a logic diagram for obtaining the estimated total occupied bandwidth of each download object included in an unread download speed interval set provided by an embodiment of the present application; at this time, the unread download speed interval set includes unread download speed interval 5, unread download speed interval 6, ..., unread download speed interval n-1 and unread download speed interval n; the server uses the download speed value x4 corresponding to the reference download speed interval 4 as the reference download speed, and based on the reference download speed x4, obtains the estimated total occupied bandwidth of each download object in the unread download speed interval set.

[0117] Specifically, the estimated total occupied bandwidth = x4×y5+x4×y6+…+x4×y n-1 +x4×yn .

[0118] S2023: If the server determines that the sum of the actual total occupied bandwidth and the estimated total occupied bandwidth is not greater than the preset bandwidth threshold, the reference download speed is added to the download threshold value set.

[0119] That is, the server adds the actual total occupied bandwidth obtained during this reading process to the estimated total occupied bandwidth, and compares the sum with the preset bandwidth threshold. If the actual total occupied bandwidth + the estimated total occupied bandwidth ≤ the bandwidth threshold, the reference download speed obtained during this reading process, that is, the download speed value corresponding to the reference download speed range currently being read, is added to the download threshold value set.

[0120] The bandwidth threshold mentioned above may be a content delivery network (English: Content Delivery Network, CDN) bandwidth threshold.

[0121] Referring to the calculation formulas of the actual total occupied bandwidth B1 and the estimated total occupied bandwidth B2 in S2022 and S2023, the above process can be recorded as:

[0122]

[0123] Since the server traverses each download speed interval in the order from low to high speed, for each download speed interval in the read download speed interval set, that is, for each read download speed interval and the reference download speed interval, the actual download speed of each download object therein will not exceed the reference download speed; and in the unread download speed interval set, the actual download speed of each download object has exceeded the reference download speed; this formula is equivalent to limiting the download speed of all download objects in the unread download speed interval set to the reference download speed, and calculating how much bandwidth all download objects in the unread download speed interval set will occupy in this case, and then adding the actual total occupied bandwidth to the estimated total occupied bandwidth. If the result does not exceed the preset bandwidth threshold, it means that by limiting the actual download speed of each download object according to the reference download speed, the total bandwidth occupied by all download objects currently downloading the download target can be kept within the bandwidth threshold. At this time, the server adds the reference download speed to the download threshold value set; if the result has exceeded the preset bandwidth threshold, it is not added.

[0124] In addition, when the server reads the last download speed interval this time, the unread download speed interval set is an empty set, and accordingly, the value of B2 is 0.

[0125] Using the assumption in S2022, the server adds the actual total occupied bandwidth obtained to the estimated total occupied bandwidth, that is, x1×y1+x2×y2+x3×y3+x4×y4+x4×y5+x4×y6+…+x4×y n-1 +x4×y n , compare the summed result with the bandwidth threshold S. Assuming that the bandwidth threshold is greater than the summed result, the server does not add x4 to the download threshold value set.

[0126] S203: The server sorts the reference download speeds in the download threshold value set, and uses the reference download speed at a specified position as the download speed threshold for the download target.

[0127] Since the actual download speed of each download object is limited based on any reference download speed in the download threshold value set, the total bandwidth occupied by all download objects currently downloading the download target can be kept within the bandwidth threshold. Therefore, a reference download speed can be obtained in the download threshold value set as the download speed threshold, and the download object whose actual download speed exceeds the reference download speed can be speed-limited, so that its actual download speed does not exceed the reference download speed at most.

[0128] An optional implementation is to use the maximum reference download speed in the download threshold value set as the download speed threshold for the download target.

[0129] By selecting the maximum reference download speed as the download speed threshold, the actual download speed of most download objects will not be affected by the speed limit, provided that the sum of B1 and B2 is within the bandwidth threshold. After the speed limit, the total bandwidth occupied by all download objects can approach the bandwidth threshold, thereby improving bandwidth utilization.

[0130] In addition, the number of downloaders is not static. For example, in a day, the number of downloaders usually increases gradually after 5 pm. For a week, there are more downloaders on Saturdays and Sundays. When the download target launches a new activity or updates the version, the number of downloaders will increase significantly compared to weekdays. In other words, downloads also have peak and trough periods. During the trough period, there are often fewer downloaders, and the total bandwidth occupied by all download objects is far below the bandwidth threshold. At this time, there is no need to limit the speed of the download objects.

[0131] Therefore, after traversing all download speed intervals, the server can determine whether speed limitation is currently required based on the number of reference download speeds in the download threshold value set.

[0132] An optional implementation is that if the server determines that there is a reference download speed that is not added to the download threshold value set, the reference download speeds in the download threshold value set are sorted, and the reference download speed at a specified position is used as the download speed threshold for the download target.

[0133] The server determines that there are reference download speeds that have not been added to the download threshold value set, that is, in the download threshold value set, the number of reference download speeds is less than the number of download speed intervals, which means that the sum of the actual total occupied bandwidth and the estimated total occupied bandwidth is greater than the preset bandwidth threshold. Further, the server obtains the download speed threshold and limits the speed of some download objects.

[0134] On the contrary, if the server determines that there is no reference download speed that has not been added to the download threshold value set, that is, in the download threshold value set, the number of reference download speeds is equal to the number of download speed intervals, then it means that there is no situation where the sum of the actual total occupied bandwidth and the estimated total occupied bandwidth is greater than the preset bandwidth threshold, and no speed limit processing is required.

[0135] In addition, since the server traverses each download speed interval in order from low to high speed, the reference download speed obtained by the server and the sum of B1 and B2 are getting larger and larger. Based on this, the server can directly use the reference download speed that makes the bandwidth threshold less than or equal to the sum of B1 and B2 for the first time as the download speed threshold in the process of traversing each download speed interval.

[0136] That is, each time the server reads a download speed interval, it determines the relationship between the actual total occupied bandwidth corresponding to the read download speed interval set, the sum of the estimated total occupied bandwidth corresponding to the unread download speed interval set, and the bandwidth threshold; if the sum of the actual total occupied bandwidth and the estimated total occupied bandwidth is not greater than the bandwidth threshold, it continues to read the next download speed interval; if the sum of the actual total occupied bandwidth and the estimated total occupied bandwidth is greater than the bandwidth threshold, it stops reading and uses the reference download speed corresponding to the download speed interval as the download speed threshold.

[0137] like Figure 7 As shown, it is a schematic diagram of a download speed threshold value provided in an embodiment of the present application. In a statistical distribution diagram of actual download speed with download speed as the horizontal axis and the number of downloaders as the vertical axis, assuming that the reference download speed that makes the bandwidth threshold less than or equal to the sum of B1 and B2 for the first time is: the download speed value x[m] corresponding to the download speed interval m, then x[m] is directly used as the download speed threshold.

[0138] It should be noted that when using the above method, if when reading the download speed interval m, the sum of the actual total occupied bandwidth and the estimated total occupied bandwidth is equal to the bandwidth threshold, the reference download speed corresponding to the download speed interval m can be used as the download speed threshold; if when reading the download speed interval m, the sum of the actual total occupied bandwidth and the estimated total occupied bandwidth is greater than the bandwidth threshold, and when reading the download speed interval m-1, the sum of the actual total occupied bandwidth and the estimated total occupied bandwidth is less than the bandwidth threshold, then the reference download speed corresponding to the download speed interval m-1 can be selected as the download speed threshold. When the download speed intervals are closely spaced, the reference download speed corresponding to the download speed interval m can also be selected as the download speed threshold. Although selecting the reference download speed corresponding to m may cause the total bandwidth occupied by all download objects to exceed the bandwidth threshold, the excess bandwidth is small.

[0139] In addition, this application uses the case where a download object uses a download device to download as an example. When a download object downloads the download target on multiple download devices, the actual download speeds corresponding to the multiple download devices should be obtained and assigned to the corresponding download speed intervals. For example, assuming that download object a uses two download devices to download the download target, the actual download speeds corresponding to the two download devices are 123KB / s and 133KB / s respectively, and the download speed interval length is 10KB / s, then after attribution, download object a will exist in the 13th interval and the 14th interval at the same time.

[0140] In addition to attributing the download object, the corresponding download device may also be attributed based on the actual download speed, which is not specifically limited in this application.

[0141] In the present application, the server may periodically obtain the actual download speed of each download object for the download target, and obtain the download speed limit value based on each actual download speed to control the bandwidth, for example, obtaining the download speed limit value once per minute.

[0142] Following the assumption in S2023, after reading all n download speed intervals, the server sorts the reference download speeds in the obtained download threshold value set. Assuming that there are n-5 reference download speeds in the download threshold value set, the n-5 reference download speeds are sorted in ascending order, and the sorting results are x1, x2, x3, ..., x4, ..., x5, ..., x6, ..., x7, ..., x8, ..., x9, ..., x10, ..., x11, ..., x12, ..., x13, ..., x14, ..., x15, ..., x16, ..., x17, ..., x18, ..., x19, ..., x21, ..., x22, ..., x3 n-7 、x n-6 、x n-5 , so the server can choose x n-5 As the download speed threshold, the maximum download speed of the game installation package does not exceed x before the server obtains a new download speed limit value next time. n-5 .

[0143] In summary, the present application also provides a download speed control system, such as Figure 8 As shown, it is a schematic diagram of a download speed control system provided in an embodiment of the present application, which includes terminal devices of each download object, a server, and terminal devices of maintenance personnel (or technicians, operators, other relevant staff, etc.) of the download target; the server includes a speed limit module, a database and a decision-making module.

[0144] The terminal device of each download object can report the actual download speed to the speed limit module in real time or periodically. The speed limit module is responsible for collecting, summarizing and counting the actual download speeds reported by the terminal devices, and periodically synchronizing the summarized and counted actual download speeds to the database for storage; the decision module periodically loads each actual download speed in the database, and based on the actual download speed collected by the speed limit module, counts the actual download speed distribution, calculates the download speed threshold, and finally sends the obtained download speed threshold to the database for use by the speed limit module; the speed limit module periodically loads the download speed threshold in the database, and sends the download speed threshold to the terminal device of each download object to limit the user's download speed.

[0145] In addition, the database can transmit the actual download speed, download threshold, bandwidth threshold and other data stored therein to the display module of the maintenance personnel's terminal device. The display module can visualize these data and has a detection and alarm function when the download threshold is too low. The operator can use the data displayed by the display module to make relevant speed limit decisions, such as adjusting the bandwidth threshold, so as to better balance the download experience and operating costs of the download object.

[0146] In addition, in addition to the fact that during the low-peak download period, the total bandwidth occupied by all download objects does not reach the bandwidth threshold, and therefore the actual download speed is not restricted, there is also the situation during the peak download period when the actual download speed has been restricted, but due to the gradual decrease in the number of downloaders, if the actual download speed is still restricted by the download speed threshold obtained last time, the total bandwidth occupied by all download objects will gradually decrease and become lower and lower than the bandwidth threshold. Although it is still the peak download period, the actual download speed is appropriately increased in this case, that is, the download speed threshold is increased to achieve peak shaving and valley filling of the total bandwidth occupied by all download objects.

[0147] like Fig. 9As shown, it is a schematic diagram of a closed-loop feedback system provided by an embodiment of the present application. The terminal device of each download object reports the actual download speed, and the speed limit module transmits the actual download speed to the decision module. The decision module calculates the download speed threshold according to the actual download speed. When the terminal device of each download object uses the download speed threshold sent by the speed limit module to control the actual download speed, the actual download speed can be prevented from exceeding the download speed threshold, thereby affecting the actual download speed of each download object collected by the speed limit module next time. That is, from (1) to (2) to (3) to (4) to (1)... and so on, a closed-loop feedback system is formed, which periodically calculates the download speed threshold and adjusts the actual download speed of each download object, and continuously adjusts it so that the total bandwidth occupied by all download objects continuously approaches the bandwidth threshold.

[0148] like Fig.10 As shown, it is a schematic diagram of a bandwidth control effect provided in an embodiment of the present application. In the upper figure, the horizontal axis is time, and the vertical axis is the total bandwidth occupied by all download objects downloaded to the download target at the corresponding moment; in the lower figure, the horizontal axis is time, and the vertical axis is the number of all download objects downloaded to the download target at the corresponding moment; the bandwidth threshold is set to 400Gb.

[0149] As can be seen from the figure below, the number of download objects gradually increases after 16:00 every day, and the download gradually enters the peak period; speed limits are adopted after 16:00 and before 20:00 on X month 24 and X month 25. As can be seen from the figure above, the total bandwidth basically remains flat after reaching the bandwidth threshold, and does not increase with the increase in the number of download objects. The total bandwidth occupied by all download objects is well limited to the vicinity of the bandwidth threshold, which plays a role in controlling bandwidth and saving bandwidth costs. In addition, the difference between the total bandwidth and the bandwidth threshold is within 3%, and the bandwidth control is precise, which has almost no impact on the download experience of the download objects.

[0150] It can be seen that during the download peak period, this application controls the total bandwidth occupied by all download objects while trying to affect only a small number of download objects with higher actual download speeds, thereby reducing the impact on the download experience of the download objects. After controlling the actual download speed, the total bandwidth occupied by all download objects approaches the bandwidth threshold, thereby achieving full utilization of the bandwidth and further balancing the experience of the download objects and the bandwidth cost.

[0151] An optional implementation is that it is also possible to follow the following Fig.11 The flowchart shown implements S201 to S203, taking obtaining an acquisition cycle as an example, and includes the following steps:

[0152] S1101: The server obtains the actual download speed of each download object for the download target, and assigns each download object to a corresponding download speed interval based on each actual download speed.

[0153] S1102: The server reads a download speed interval, and uses the currently read download speed interval as a reference download speed interval.

[0154] The server reads each download speed interval in sequence from low speed to high speed, wherein the download speed interval currently read is the reference download speed interval.

[0155] S1103: The server obtains the actual total occupied bandwidth of each download object in the read download speed interval set.

[0156] In the above, if the server reads the first download speed interval this time, the read download speed interval set only includes the reference download speed interval currently being read; when the server does not read the first download speed interval this time, the read download speed interval set includes all the read download speed intervals previously read, as well as the reference download speed interval currently being read.

[0157] S1104: The server uses the download speed value corresponding to the reference download speed range as the reference download speed.

[0158] S1105: The server calculates the estimated total occupied bandwidth of each download object included in the unread download speed interval set based on the reference download speed.

[0159] In the above, if the server reads the last download speed interval this time, the unread download speed interval set is an empty set, and accordingly, the value of the estimated total occupied bandwidth is 0.

[0160] S1106: The server determines the sum of the actual total occupied bandwidth and the estimated total occupied bandwidth and the relationship between the sum and the bandwidth threshold. If the sum of the actual total occupied bandwidth and the estimated total occupied bandwidth is less than the bandwidth threshold, S1107 is executed; otherwise, S1108 is executed.

[0161] S1107: The server determines whether the reference download speed interval currently read is the last download speed interval. If so, execute S1109, otherwise return to S1102.

[0162] S1108: The server uses the reference download speed obtained this time as the download speed threshold.

[0163] S1109: The server does not limit the actual download speed.

[0164] like Fig.12As shown, it is a logical schematic diagram of controlling the download speed provided in an embodiment of the present application. The server first obtains the actual download speed of each download object (download object 1, download object 2, download object 3...), and based on the actual download speed, assigns the corresponding download object to the corresponding download speed interval, and obtains the distribution of the download objects corresponding to the actual download speed in each download speed interval. After that, the server traverses each download speed interval (download speed interval 1, download speed interval 2, download speed interval 3...), and each time a download speed interval is read, a corresponding reference download speed can be obtained.

[0165] The reference download speeds are screened. Specifically, if the sum of the actual total occupied bandwidth and the estimated total occupied bandwidth obtained during this reading is not greater than the bandwidth threshold, the reference download speed obtained during this reading can be added to the download threshold value set, otherwise it is not added.

[0166] After traversing all download speed intervals, the final download threshold value set is obtained, which includes reference download speed 1, reference download speed 2, reference download speed 3, etc. A reference download speed is selected from the download threshold value set as the download speed threshold, and the actual download speed of each download object is controlled based on the download speed threshold.

[0167] Based on the same inventive concept, the embodiment of the present application also provides a download speed control device. Fig.13 As shown, it is a schematic diagram of the structure of a download speed control device, which may include:

[0168] The attribution unit 1301 is used to respectively attribute each download object to a corresponding download speed interval based on the actual download speed of each download object for the download target;

[0169] A traversal unit 1302, configured to traverse each download speed interval to obtain a set of download threshold values;

[0170] The traversal unit 1302 includes: a first acquisition unit 13021, a second acquisition unit 13022, and a storage unit 13023. Each time the data is read, a currently read download speed interval is used as a reference download speed interval, and the following operations are performed:

[0171] The first acquisition unit 13021 is used to obtain the actual total occupied bandwidth of each download object included in the read download speed interval set; the read download speed interval set at least includes a reference download speed interval;

[0172] The second acquisition unit 13022 is used to obtain a reference download speed based on the reference download speed interval, and obtain an estimated total occupied bandwidth of each download object included in the unread download speed interval set based on the reference download speed;

[0173] The storage unit 13023 is configured to add the reference download speed to the download threshold value set if the sum of the actual total occupied bandwidth and the estimated total occupied bandwidth is not greater than a preset bandwidth threshold;

[0174] The sorting unit 1303 is used to sort the reference download speeds in the download threshold value set, and use the reference download speed at a specified position as the download speed threshold for the download target.

[0175] Optionally, the first acquiring unit 13021 is specifically used for:

[0176] Selecting download speed values ​​corresponding to the reference download speed interval and each of the read download speed intervals from the reference download speed interval and each of the read download speed intervals included in the read download speed interval set;

[0177] Based on the reference download speed interval, the number of download objects corresponding to each of the read download speed intervals, and each download speed value, the actual total occupied bandwidth of each download object included in the read download speed interval set is obtained.

[0178] Optionally, the first acquiring unit 13021 is specifically used for:

[0179] Based on the reference download speed interval, the sum of the products of the number of download objects corresponding to each read download speed interval and the corresponding download speed value is obtained to obtain the actual total occupied bandwidth of each download object included in the read download speed interval set.

[0180] Optionally, the second acquiring unit 13022 is specifically configured to:

[0181] The download speed value corresponding to the reference download speed interval is used as the reference download speed of each unread download speed interval in the unread download speed interval set;

[0182] Based on the number of download objects corresponding to each unread download speed interval and the reference download speed, the estimated total occupied bandwidth of each download object included in the unread download speed interval set is obtained.

[0183] Optionally, the second acquiring unit 13022 is specifically configured to:

[0184] Based on the sum of the products of the number of download objects corresponding to each unread download speed interval and the reference download speed, the estimated total occupied bandwidth of each download object included in the unread download speed interval set is obtained.

[0185] Optionally, the sorting unit 1303 is specifically configured to:

[0186] If it is determined that there is a reference download speed that is not added to the download threshold value set, the reference download speeds in the download threshold value set are sorted, and the reference download speed at a specified position is used as the download speed threshold for the download target.

[0187] Optionally, the traversal unit 1302 is specifically used for:

[0188] Each download speed interval is traversed in order from low speed to high speed to obtain a set of download threshold values.

[0189] Optionally, the sorting unit 1303 is specifically configured to:

[0190] The maximum reference download speed is used as the download speed threshold for the download target.

[0191] For the convenience of description, the above parts are divided into modules (or units) according to their functions and described separately. Of course, when implementing this application, the functions of each module (or unit) can be implemented in the same or multiple software or hardware.

[0192] After introducing the download speed control method and device according to the exemplary embodiment of the present application, next, an electronic device according to another exemplary embodiment of the present application is introduced.

[0193] Those skilled in the art will appreciate that various aspects of the present application may be implemented as a system, method or program product. Therefore, various aspects of the present application may be specifically implemented in the following forms, namely: a complete hardware implementation, a complete software implementation (including firmware, microcode, etc.), or a combination of hardware and software, which may be collectively referred to as "circuit", "module" or "system" herein.

[0194] Based on the same inventive concept as the above method embodiment, an electronic device is also provided in the embodiment of the present application. In one embodiment, the electronic device may be a server, such as Figure 1 In this embodiment, the structure of the electronic device can be as follows: Fig.14 As shown, it includes a memory 1401 , a communication module 1403 and one or more processors 1402 .

[0195] The memory 1401 is used to store computer programs executed by the processor 1402. The memory 1401 may mainly include a program storage area and a data storage area, wherein the program storage area may store an operating system and programs required for running the instant messaging function, etc.; the data storage area may store various instant messaging information and operation instruction sets, etc.

[0196] The memory 1401 may be a volatile memory, such as a random-access memory (RAM); the memory 1401 may also be a non-volatile memory, such as a read-only memory, a flash memory, a hard disk drive (HDD) or a solid-state drive (SSD); or the memory 1401 may be any other medium that can be used to carry or store a desired computer program in the form of instructions or data structures and can be accessed by a computer, but is not limited thereto. The memory 1401 may be a combination of the above memories.

[0197] The processor 1402 may include one or more central processing units (CPU) or a digital processing unit, etc. The processor 1402 is used to implement the above download speed control method when calling the computer program stored in the memory 1401 .

[0198] The communication module 1403 is used to communicate with terminal devices and other servers.

[0199] The specific connection medium between the memory 1401, the communication module 1403 and the processor 1402 is not limited in the embodiment of the present application. Fig.14 In the embodiment, the memory 1401 and the processor 1402 are connected via a bus 1404. Fig.14 The connections between the other components are only for illustration and are not intended to be limiting. The bus 1404 can be divided into an address bus, a data bus, a control bus, etc. For ease of description, Fig.14 The diagram shows that only one thick line is used, but this does not mean that there is only one bus or only one type of bus.

[0200] The memory 1401 stores a computer storage medium, and the computer storage medium stores computer executable instructions, and the computer executable instructions are used to implement the download speed control method of the embodiment of the present application. The processor 1402 is used to execute the above-mentioned download speed control method, such as Figure 2 shown.

[0201] In another embodiment, the electronic device may also be other electronic devices, such as Figure 1 The terminal device 110 shown, or Figure 8 In this embodiment, the structure of the electronic device can be as follows: Fig.15As shown, it includes: a communication component 1510, a memory 1520, a display unit 1530, a camera 1540, a sensor 1550, an audio circuit 1560, a Bluetooth module 1570, a processor 1580 and other components.

[0202] The communication component 1510 is used to communicate with the server. In some embodiments, a circuit wireless fidelity (Wireless Fidelity, WiFi) module may be included. The WiFi module belongs to a short-range wireless transmission technology. The electronic device can help an object (such as a user) to send and receive information through the WiFi module.

[0203] The memory 1520 can be used to store software programs and data. The processor 1580 executes various functions and data processing of the terminal device 110 by running the software programs or data stored in the memory 1520. The memory 1520 may include a high-speed random access memory, and may also include a non-volatile memory, such as at least one disk storage device, a flash memory device, or other volatile solid-state storage device. The memory 1520 stores an operating system that enables the terminal device 110 to run. In the present application, the memory 1520 can store an operating system and various application programs, and can also store a computer program for executing the download speed control method of the embodiment of the present application.

[0204] The display unit 1530 may also be used to display information input by an object or information provided to an object and a graphical user interface (GUI) of various menus of the terminal device 110. Specifically, the display unit 1530 may include a display screen 1532 disposed on the front of the terminal device 110. The display screen 1532 may be configured in the form of a liquid crystal display, a light emitting diode, etc. The display unit 1530 may be used to display an application download interface, etc. in the embodiment of the present application.

[0205] The display unit 1530 can also be used to receive input digital or character information, and generate signal input related to the object setting and function control of the terminal device 110. Specifically, the display unit 1530 may include a touch screen 1531 set on the front of the terminal device 110, which can collect touch operations of objects on or near it, such as clicking a button, dragging a scroll box, etc.

[0206] The touch screen 1531 can be covered on the display screen 1532, or the touch screen 1531 and the display screen 1532 can be integrated to realize the input and output functions of the terminal device 110, and the integrated display screen can be referred to as a touch display screen. In this application, the display unit 1530 can display the application program and the corresponding operation steps.

[0207] The camera 1540 can be used to capture static images, and the object can publish the image taken by the camera 1540 through the application. The camera 1540 can be one or more. The object generates an optical image through the lens and projects it onto the photosensitive element. The photosensitive element can be a charge coupled device (CCD) or a complementary metal-oxide-semiconductor (CMOS) phototransistor. The photosensitive element converts the optical signal into an electrical signal, and then passes the electrical signal to the processor 1580 to convert it into a digital image signal.

[0208] The terminal device may further include at least one sensor 1550, such as an acceleration sensor 1551, a distance sensor 1552, a fingerprint sensor 1553, and a temperature sensor 1554. The terminal device may also be configured with other sensors such as a gyroscope, a barometer, a hygrometer, a thermometer, an infrared sensor, a light sensor, and a motion sensor.

[0209] The audio circuit 1560, the speaker 1561, and the microphone 1562 can provide an audio interface between the object and the terminal device 110. The audio circuit 1560 can transmit the electrical signal converted from the received audio data to the speaker 1561, which is converted into a sound signal for output. The terminal device 110 can also be configured with a volume button for adjusting the volume of the sound signal. On the other hand, the microphone 1562 converts the collected sound signal into an electrical signal, which is received by the audio circuit 1560 and converted into audio data, and then the audio data is output to the communication component 1510 to be sent to, for example, another terminal device 110, or the audio data is output to the memory 1520 for further processing.

[0210] The Bluetooth module 1570 is used to exchange information with other Bluetooth devices having Bluetooth modules through the Bluetooth protocol. For example, the terminal device can establish a Bluetooth connection with a wearable electronic device (such as a smart watch) that also has a Bluetooth module through the Bluetooth module 1570 to exchange data.

[0211] The processor 1580 is the control center of the terminal device. It uses various interfaces and lines to connect various parts of the entire terminal. It executes various functions of the terminal device and processes data by running or executing software programs stored in the memory 1520 and calling data stored in the memory 1520. In some embodiments, the processor 1580 may include one or more processing units; the processor 1580 may also integrate an application processor and a baseband processor, wherein the application processor mainly processes the operating system, object interface and application program, and the baseband processor mainly processes wireless communication. It is understandable that the above-mentioned baseband processor may not be integrated into the processor 1580. In the present application, the processor 1580 can run the operating system, application program, object interface display and touch response, as well as the download speed control method of the embodiment of the present application. In addition, the processor 1580 is coupled to the display unit 1530.

[0212] In some possible implementations, various aspects of the download speed control method provided in the present application may also be implemented in the form of a program product, which includes a computer program. When the program product is run on an electronic device, the computer program is used to enable the electronic device to execute the steps of the download speed control method according to various exemplary embodiments of the present application described above in this specification. For example, the electronic device may execute the following steps: Figure 2 or Fig.11 Follow the steps shown in .

[0213] The program product may use any combination of one or more readable media. The readable medium may be a readable signal medium or a readable storage medium. The readable storage medium may be, for example, but not limited to, an electrical, magnetic, optical, electromagnetic, infrared, or semiconductor system, device or device, or any combination of the above. More specific examples of readable storage media (a non-exhaustive list) include: an electrical connection with one or more wires, a portable disk, a hard disk, a random access memory (RAM), a read-only memory (ROM), an erasable programmable read-only memory (EPROM or flash memory), an optical fiber, a portable compact disk read-only memory (CD-ROM), an optical storage device, a magnetic storage device, or any suitable combination of the above.

[0214] The program product of the embodiment of the present application may adopt a portable compact disk read-only memory (CD-ROM) and include a computer program, and can be run on an electronic device. However, the program product of the present application is not limited thereto, and in this document, a readable storage medium may be any tangible medium containing or storing a program, which can be used by or in combination with a command execution system, apparatus, or device.

[0215] A readable signal medium may include a data signal propagated in baseband or as part of a carrier wave, wherein a readable computer program is carried. Such propagated data signals may take a variety of forms, including but not limited to electromagnetic signals, optical signals, or any suitable combination of the foregoing. A readable signal medium may also be any readable medium other than a readable storage medium, which may send, propagate, or transmit a program for use by or in conjunction with a command execution system, apparatus, or device.

[0216] The computer program embodied on the readable medium may be transmitted using any appropriate medium, including but not limited to wireless, wireline, optical fiber cable, RF, etc., or any suitable combination of the foregoing.

[0217] Computer programs for performing the operations of the present application may be written in any combination of one or more programming languages, including object-oriented programming languages ​​such as Java, C++, etc., and conventional procedural programming languages ​​such as "C" language or similar programming languages. The computer program may be executed entirely on the subject electronic device, partially on the subject electronic device, as a separate software package, partially on the subject electronic device and partially on a remote electronic device, or entirely on a remote electronic device or server. In cases involving remote electronic devices, the remote electronic device may be connected to the subject electronic device via any type of network including a local area network (LAN) or a wide area network (WAN), or may be connected to an external electronic device (e.g., via the Internet using an Internet service provider).

[0218] It should be noted that, although several units or subunits of the device are mentioned in the above detailed description, this division is merely exemplary and not mandatory. In fact, according to the embodiments of the present application, the features and functions of two or more units described above can be embodied in one unit. Conversely, the features and functions of one unit described above can be further divided into multiple units to be embodied.

[0219] In addition, although the operations of the method of the present application are described in a specific order in the drawings, this does not require or imply that the operations must be performed in this specific order, or that all the operations shown must be performed to achieve the desired results. Additionally or alternatively, some steps may be omitted, multiple steps may be combined into one step, and / or one step may be decomposed into multiple steps.

[0220] Those skilled in the art will appreciate that the embodiments of the present application may be provided as methods, systems, or computer program products. Therefore, the present application may adopt the form of a complete hardware embodiment, a complete software embodiment, or an embodiment in combination with software and hardware. Moreover, the present application may adopt the form of a computer program product implemented on one or more computer-usable storage media (including but not limited to disk storage, CD-ROM, optical storage, etc.) that contain a computer-usable computer program.

[0221] The present application is described with reference to the flowcharts and / or block diagrams of the methods, devices (systems), and computer program products according to the embodiments of the present application. It should be understood that each process and / or box in the flowchart and / or block diagram, as well as the combination of the processes and / or boxes in the flowchart and / or block diagram, can be implemented by computer program commands. These computer program commands can be provided to a processor of a general-purpose computer, a special-purpose computer, an embedded processor, or other programmable data processing device to generate a machine, so that the commands executed by the processor of the computer or other programmable data processing device generate commands for implementing the processes in the flowchart and / or block diagram. Figure 1 A process or multiple processes and / or boxes Figure 1 A device that provides the functions specified in a block or multiple blocks.

[0222] These computer program commands may also be stored in a computer readable memory capable of directing a computer or other programmable data processing device to operate in a specific manner, so that the commands stored in the computer readable memory produce an article of manufacture comprising a command device, the command device implementing the process Figure 1 A process or multiple processes and / or boxes Figure 1 A function specified in one or more boxes.

[0223] These computer program commands can also be loaded onto a computer or other programmable data processing device so that a series of operation steps are executed on the computer or other programmable device to produce a computer-implemented process, so that the commands executed on the computer or other programmable device provide the instructions for implementing the process. Figure 1 A process or multiple processes and / or boxes Figure 1 The steps for the functions specified in one or more boxes.

[0224] Although the preferred embodiments of the present application have been described, those skilled in the art may make additional changes and modifications to these embodiments once they have learned the basic creative concept. Therefore, the appended claims are intended to be interpreted as including the preferred embodiments and all changes and modifications falling within the scope of the present application.

[0225] Obviously, those skilled in the art can make various changes and modifications to the present application without departing from the spirit and scope of the present application. Thus, if these modifications and variations of the present application fall within the scope of the claims of the present application and their equivalents, the present application is also intended to include these modifications and variations.

Claims

1. A method for controlling download speed, characterized in that: The method comprises: Based on the actual download speed of each download object for the download target, respectively assigning each download object to a corresponding download speed interval; The download speed intervals are traversed to obtain a set of download threshold values, wherein each time a download speed interval currently read is used as a reference download speed interval, and the following operations are performed: Obtaining the actual total occupied bandwidth of each download object included in the read download speed interval set; the read download speed interval set at least includes the reference download speed interval; Obtaining a reference download speed based on the reference download speed interval, and obtaining an estimated total occupied bandwidth of each download object included in the unread download speed interval set based on the reference download speed; If the sum of the actual total occupied bandwidth and the estimated total occupied bandwidth is not greater than a preset bandwidth threshold, adding the reference download speed to the download threshold value set; The reference download speeds in the download threshold value set are sorted, and the reference download speed at a specified position is used as the download speed threshold for the download target.

2. The method according to claim 1, characterized in that The obtaining of the actual total occupied bandwidth of each download object included in the read download speed interval set includes: Selecting, from the reference download speed interval and each of the read download speed intervals included in the read download speed interval set, download speed values ​​corresponding to the reference download speed interval and each of the read download speed intervals; Based on the reference download speed interval, the number of download objects corresponding to each of the read download speed intervals, and the download speed values, the actual total occupied bandwidth of each download object included in the read download speed interval set is obtained.

3. The method according to claim 2, characterized in that The obtaining, based on the reference download speed interval, the number of download objects corresponding to each of the read download speed intervals, and the download speed values, the actual total occupied bandwidth of each download object included in the read download speed interval set includes: Based on the reference download speed interval, the sum of the products of the number of download objects corresponding to each of the read download speed intervals and the corresponding download speed value is obtained to obtain the actual total occupied bandwidth of each download object included in the read download speed interval set.

4. The method according to claim 2, characterized in that The obtaining of a reference download speed based on the reference download speed interval, and obtaining an estimated total occupied bandwidth of each download object included in the unread download speed interval set based on the reference download speed, includes: Using the download speed value corresponding to the reference download speed interval as the reference download speed of each unread download speed interval in the unread download speed interval set; Based on the number of download objects corresponding to each of the unread download speed intervals and the reference download speed, an estimated total occupied bandwidth of each download object included in the unread download speed interval set is obtained.

5. The method according to claim 4, characterized in that The acquiring, based on the number of download objects corresponding to each of the unread download speed intervals and the reference download speed, an estimated total occupied bandwidth of each download object included in the unread download speed interval set includes: Based on the sum of the products of the number of download objects corresponding to each of the unread download speed intervals and the reference download speed, an estimated total occupied bandwidth of each download object included in the unread download speed interval set is obtained.

6. The method according to claim 1, characterized in that The step of sorting the reference download speeds in the download threshold value set and using the reference download speed at a specified position as the download speed threshold for the download target includes: If it is determined that there is a reference download speed that is not added to the download threshold value set, the reference download speeds in the download threshold value set are sorted, and the reference download speed at a specified position is used as the download speed threshold for the download target.

7. The method according to any one of claims 1 to 6, characterized in that: The traversing the download speed intervals to obtain a set of download threshold values ​​includes: The download speed intervals are traversed in order from low speed to high speed to obtain a set of download threshold values.

8. The method according to any one of claims 1 to 6, characterized in that: Using the reference download speed at the specified position as the download speed threshold for the download target includes: The maximum reference download speed is used as the download speed threshold for the download target.

9. A download speed control device, characterized in that: include: an attribution unit, configured to respectively attribute each download object to a corresponding download speed interval based on an actual download speed of each download object for a download target; The traversal unit is used to traverse the download speed intervals to obtain a set of download threshold values, wherein each time a download speed interval currently read is used as a reference download speed interval, and the following operations are performed: Obtaining the actual total occupied bandwidth of each download object included in the read download speed interval set; the read download speed interval set at least includes the reference download speed interval; Obtaining a reference download speed based on the reference download speed interval, and obtaining an estimated total occupied bandwidth of each download object included in the unread download speed interval set based on the reference download speed; If the sum of the actual total occupied bandwidth and the estimated total occupied bandwidth is not greater than a preset bandwidth threshold, adding the reference download speed to the download threshold value set; The sorting unit is used to sort the reference download speeds in the download threshold value set, and use the reference download speed at a specified position as the download speed threshold for the download target.

10. An electronic device, characterized in that: It comprises a processor and a memory, wherein the memory stores a computer program, and when the computer program is executed by the processor, the processor executes the steps of any one of the methods of claims 1 to 8.

11. A computer-readable storage medium, characterized in that: It includes a computer program. When the computer program is run on an electronic device, the computer program is used to enable the electronic device to execute the steps of any method described in claims 1 to 8.

12. A computer program product, characterized in that The method comprises a computer program stored in a computer-readable storage medium; when a processor of an electronic device reads the computer program from the computer-readable storage medium, the processor executes the computer program, so that the electronic device executes the steps of any one of the methods described in claims 1 to 8.