Bandwidth estimation method, system and device, electronic equipment and storage medium
By constructing a simulation network and comparing pre-configured and actual bandwidth sets, automated bandwidth estimation is achieved, solving the problems of high cost and inaccuracy of manual estimation in existing technologies, and improving the efficiency and accuracy of bandwidth estimation.
Patent Information
- Application Number
- CN202411082262.7
- Authority / Receiving Office
- CN · China
- Patent Type
- Applications(China)
- Current Assignee / Owner
- Filing Date
- 2024-08-07
- Publication Date
- 2026-02-10
AI Technical Summary
Existing bandwidth estimation methods rely on manual operation, which is costly and susceptible to subjective factors, leading to inaccurate bandwidth estimation and failing to effectively solve network congestion problems.
By constructing a simulated network, a pre-configured first bandwidth set and a second bandwidth set of the actual network are obtained. Automated bandwidth estimation is performed using network simulation equipment, and the differences between the two are compared to calculate accurate bandwidth estimation information.
It reduces labor costs, improves the accuracy and efficiency of bandwidth estimation, and provides a foundation for solving network congestion problems.
Smart Images

Figure CN121509244A_ABST
Abstract
Description
TECHNICAL FIELD
[0001] Embodiments of the present application relate to the technical field of communication, and in particular to a bandwidth estimation method, system, device, electronic equipment and storage medium. BACKGROUND
[0002] In a communication network scenario, network congestion may occur due to changes in the amount of data transmitted, changes in packet size, network performance jitter, etc., which not only reduces the efficiency of data transmission, but also may affect the stability and reliability of network services. To solve this problem, a congestion control algorithm based on bandwidth estimation is usually used to optimize the performance of network transmission.
[0003] In related technologies, network bandwidth is usually estimated manually by a network testing device after collecting bandwidth data for a certain period of time. However, this method not only has high labor costs, but also is easily affected by subjective factors of relevant personnel, making it difficult to obtain accurate bandwidth estimation results and thus unable to solve the problem of network congestion. SUMMARY
[0004] To overcome the problems in the related art, embodiments of the present application provide a bandwidth estimation method, system, device, electronic equipment and storage medium.
[0005] According to a first aspect of embodiments of the present application, a bandwidth estimation method is provided, the method comprising:
[0006] obtaining a first bandwidth set corresponding to a pre-constructed simulation network, the simulation network being a simulation network between a network simulation device and a server, the first bandwidth set including bandwidths corresponding to a plurality of continuous time instants, the bandwidth of any time instant being a bandwidth corresponding to the time instant of an initial bandwidth pre-configured by the network simulation device;
[0007] obtaining a second bandwidth set, the second bandwidth set including bandwidths of a network to be estimated between a client and the server network corresponding to each time instant of the plurality of continuous time instants;
[0008] based on the first bandwidth set and the second bandwidth set, calculating bandwidth estimation information of the network to be estimated within a first preset time period, the first preset time period being a time period composed of the plurality of continuous time instants.
[0009] According to a second aspect of embodiments of the present application, a bandwidth estimation system is provided, the system comprising a client, a server, a network simulation device and a bandwidth estimation device, the client and the server comprising a simulation network therebetween, the bandwidth estimation device being configured to perform the method of the first aspect.
[0010] According to a third aspect of embodiments of the present application, a bandwidth estimation device is provided, the device comprising:
[0011] The first obtaining module is configured to obtain a first bandwidth set corresponding to a pre-constructed simulation network, the simulation network being a simulation network between a network simulation device and a server, and the first bandwidth set including bandwidths corresponding to a plurality of continuous time points, and the bandwidth of any time point being a bandwidth corresponding to the time point of an initial bandwidth pre-configured by the network simulation device;
[0012] The second obtaining module is configured to obtain a second bandwidth set, the second bandwidth set including a bandwidth of a network to be estimated between a client and the server network corresponding to each time point in the plurality of continuous time points;
[0013] The bandwidth calculating module is configured to calculate bandwidth estimation information of the network to be estimated in a first preset time period based on the first bandwidth set and the second bandwidth set, the first preset time period being a time period composed of the plurality of continuous time points.
[0014] According to a fourth aspect of the embodiments of the present application, an electronic device is provided, which includes a memory, a processor, and a computer program stored in the memory and executable on the processor, and the computer program is executed by the processor to enable the electronic device to perform the method according to the first aspect.
[0015] According to a fifth aspect of the embodiments of the present application, a computer readable storage medium is provided, which stores a computer program, and the program is executed by a processor to implement the method according to the first aspect.
[0016] According to a sixth aspect of the embodiments of the present application, a computer program product is provided, which includes instructions, and when the instructions are executed on a computer, the computer is enabled to perform the method according to the first aspect.
[0017] The technical solutions provided by the embodiments of the present application can have the following beneficial effects:
[0018] In the embodiments of the present application, the bandwidth estimation method of the present application obtains a first bandwidth set corresponding to a pre-constructed simulation network, wherein the simulation network is a simulation network between a network simulation device and a server, and the simulation network constructed by the network simulation device realizes simulation of various types of networks, reduces data collection time, and provides a basis for bandwidth estimation; on this basis, a second bandwidth set is obtained, wherein the first bandwidth set and the second bandwidth set each include bandwidths corresponding to multiple continuous time points; any bandwidth in the first bandwidth set is a bandwidth corresponding to an initial bandwidth pre-configured by the network simulation device at the time, i.e., a theoretical output bandwidth in an ideal case, and the second bandwidth set is a bandwidth of a network to be estimated between the client and the server corresponding to the multiple continuous time points in the first bandwidth set; by comparing the first bandwidth set and the second bandwidth set, a relatively accurate bandwidth estimation information of the bandwidth estimation system can be calculated, which not only saves labor cost, but also improves the efficiency of the bandwidth estimation information, and lays a foundation for solving the network congestion problem.
[0019] It should be understood that the foregoing general description and the following detailed description are only exemplary and explanatory, and cannot limit the present application. BRIEF DESCRIPTION OF DRAWINGS
[0020] In order to more clearly illustrate the technical solutions in the embodiments of the present application, the drawings needed to be used in the embodiments of the present application will be briefly introduced. It should be understood that other drawings can also be obtained by those of ordinary skill in the art without creative labor on the basis of these drawings.
[0021] Figure 1 A bandwidth estimation system schematic diagram to which the bandwidth estimation method provided by the embodiments of the present application is applicable;
[0022] Figure 2 An exemplary method flowchart of the bandwidth estimation method provided by the embodiments of the present application;
[0023] Figure 3 A scene schematic diagram of an exemplary bandwidth estimation provided by the embodiments of the present application;
[0024] Figure 4 An exemplary component schematic diagram of the bandwidth estimation device provided by the embodiments of the present application;
[0025] Figure 5 An exemplary structure schematic diagram of the electronic device provided by the embodiments of the present application. DETAILED DESCRIPTION
[0026] The technical solutions of the embodiments of the present application will be described below in combination with the drawings in the embodiments of the present application.
[0027] The terminology used in the following embodiments of this application is for the purpose of describing particular embodiments and is not intended to limit the technical solutions of this application. As used in the specification and appended claims of this application, the singular expressions “a,” “an,” “the,” “the,” “the,” and “this” are intended to include the plural expressions as well, unless the context clearly indicates otherwise.
[0028] It should also be understood that although the terms "first," "second," etc., may be used in the following embodiments to describe a certain type of object, the objects should not be limited to these terms. These terms are used to distinguish the specific implementation objects of that type of object.
[0029] It should be noted that the accounts and corresponding account information (including but not limited to account security operation information) involved in the embodiments of this application are all information and data authorized by the user or fully authorized by all parties. Furthermore, the collection, use and processing of related data must comply with the relevant laws, regulations and standards of the relevant countries and regions, and corresponding operation entry points are provided for users to choose to authorize or refuse.
[0030] In communication networks, network congestion can occur due to variations in data volume, packet size, and network performance jitter during transmission. Network congestion impacts data transmission efficiency, network service performance stability, and reliability. Based on these issues, optimization of transmission quality in communication networks is crucial. Transmission Control Protocol (TCP) is a commonly used transmission protocol in communication networks. Optimization of transmission links in communication networks based on TCP has evolved from no congestion control to Reno, Cubic congestion control algorithms, bottleneck bandwidth, and round-trip delay.
[0031] In this context, "no congestion control" refers to a transmission control protocol lacking a congestion control mechanism, or having no congestion control mechanism at all. This can lead to network congestion and packet loss during peak traffic periods. Reno, on the other hand, is a congestion control algorithm based on the additive increase / multiplicative decrease principle. When network conditions are good, it gradually increases the packet sending rate to improve throughput. When packet loss is detected, it decreases the sending rate. The Reno algorithm is simple and effective, but it lacks flexibility in responding to dynamic network changes.
[0032] Cubic is an improved version of Reno, employing a smooth backoff strategy during the reduction phase to mimic the cumulative effect of TCP traffic in the network. The Cubic algorithm aims to improve Reno's performance in high bandwidth-delay product scenarios. The Bottleneck Bandwidth and Round-Trip Time (BBR) algorithm determines the network bandwidth by measuring the minimum round-trip time and adjusts the sending rate based on queue latency and packet loss rate.
[0033] However, congestion control algorithms based on the Transmission Control Protocol (TCP) are typically implemented in the operating system kernel, limiting their interaction with the application layer. In scenarios requiring interaction with the application layer, TCP-based congestion control algorithms are insufficient. Therefore, User Datagram Protocol (UDP) is further employed for congestion control.
[0034] Congestion control algorithms based on the User Datagram Protocol (UDP) rely on the accuracy of network bandwidth assessment. Related bandwidth assessment methods include using network loss meters or Network Link Conditioners (NLCs) to collect data over a certain period, or manually estimating bandwidth based on changes in logs or instrumented data points. However, these methods have long testing cycles and are easily affected by subjective factors of personnel, leading to inaccurate bandwidth estimates.
[0035] In view of this, this application proposes a bandwidth estimation method. This application constructs an automated bandwidth estimation method, which, compared with bandwidth estimation methods in related technologies, is beneficial to improving the efficiency and accuracy of bandwidth estimation.
[0036] The bandwidth estimation method provided in this application embodiment can be applied to, for example, Figure 1 The bandwidth estimation system shown includes a client 101, a network simulation device 102, a server 103, and a bandwidth estimation device 104. The client 101, network simulation device 102, and server 103 construct a simulated network of the network to be estimated. The client 101 is connected to the server 103 via the network simulation device 102. In this embodiment, the network simulation device 102 may be, for example, a network impairment meter (hereinafter referred to as a network impairment meter). In actual implementation, this embodiment does not limit the specific device and model of the network simulation device 102; those skilled in the art can determine it according to the actual situation.
[0037] Client 101 can be an electronic device or an application. Client 101 is used to receive user-triggered operations and then, in response to the corresponding trigger operations, send access instructions to server 103. Taking a cloud desktop implementation as an example, client 101 can take the following forms: thin client, computer terminal, mobile device, browser, and zero client.
[0038] A thin client can be a hardware device used to run a cloud desktop. This hardware device is equipped with a processor, memory, network interface, and input / output devices (such as a monitor, keyboard, and mouse). This hardware device does not need to store large amounts of data or have the ability to run complex applications. Instead, it connects to a remote server 103 via a network to obtain the desktop environment and applications. This makes the hardware device small in size, low in power consumption, and easy to manage, hence the term "thin" client. In practical use cases, when a computer terminal acts as a cloud desktop client 101, it connects to the remote server 103 by installing the cloud desktop client 101 software on the local computer terminal. After a successful connection, the user can see the remote cloud desktop interface on the local computer terminal's monitor and interact with it using the keyboard and mouse. Mobile devices: Mobile devices such as smartphones and tablets can also act as cloud desktop clients 101. They access the remote server 103 by installing a cloud desktop application on the mobile device. Browser: Some cloud desktop service providers offer web-based clients 101, allowing access to the cloud desktop via a browser. No additional software or hardware installation is required; simply open a browser on a web-enabled device and enter the corresponding Uniform Resource Locator (URL). Web-based clients 101 are cross-platform compatible and easy to use. Zero Client: This is a hardware device without an operating system or applications, relying on a network connection to provide computing power and storage resources. When a zero client connects to the server 103, the server provides the zero client with a complete desktop environment and applications.
[0039] The bandwidth estimation device 104 performs bandwidth estimation on the network between client 101 and server 103. Specifically, the bandwidth estimation device 104 collects the pre-configured bandwidth between client 101 and server 103, and the bandwidth during the simulation process between client 101 and server 103. In the simulated network, bandwidth-related information relative to the real network can be obtained in a short time, avoiding the problem of long data acquisition times in the real network, thus improving the efficiency of bandwidth estimation. By comparing the pre-configured bandwidth in the simulated network with the bandwidth during the simulation process, the bandwidth estimation information of the corresponding network to be estimated is obtained by the bandwidth estimation device 104, improving the accuracy of bandwidth estimation.
[0040] Corresponding to the bandwidth estimation system described above, embodiments of this application provide, as follows: Figure 2 The bandwidth estimation method shown can be applied to the bandwidth estimation device in the bandwidth estimation system described above. The bandwidth estimation method includes the following steps:
[0041] In step S201, the first bandwidth set corresponding to the pre-built simulation network is obtained.
[0042] The simulated network is the simulated network between the network simulation device and the server. The first bandwidth set includes the bandwidth corresponding to multiple consecutive time points. The bandwidth at any time point is the bandwidth corresponding to the initial bandwidth pre-configured by the network simulation device at that time point.
[0043] For example, the pre-built simulation network is a simulation network of the network to be evaluated, which can reproduce the operation of the network to be evaluated. The initial bandwidth pre-configured in the simulation network can be read from the network simulation device. According to the content of the bandwidth estimation system described above, the network simulation device uses a network loss meter as an example, and reads the pre-configured bandwidth in the network loss meter through an application programming interface. Bandwidth estimation requires bandwidth within a certain time period, so it is necessary to read the bandwidth within the corresponding time period from the network loss meter. Here, bandwidth includes the corresponding bandwidth value and the time corresponding to the bandwidth value.
[0044] In step S202, the second bandwidth set is obtained.
[0045] The second bandwidth set includes the bandwidth of the network to be estimated between the client and server networks at each of multiple consecutive time points.
[0046] For example, a second bandwidth set of the simulated network is obtained. This second bandwidth set is the set of bandwidths measured between the client and server during the simulation process. Specifically, the bandwidth at the same time as the first bandwidth set can be obtained by pre-installing test software on the client or server, via command line, or through network monitoring tools.
[0047] In step S203, bandwidth estimation information of the network to be estimated within a first preset time period is calculated based on the first bandwidth set and the second bandwidth set.
[0048] The first preset time period is a time period composed of multiple consecutive moments.
[0049] For example, the first bandwidth set is the pre-configured bandwidth read from the network loss meter, which can obtain the theoretically true bandwidth of the simulated network, that is, the bandwidth without network loss. The second bandwidth set is the bandwidth measured during the simulation process. Therefore, after obtaining the first and second bandwidth sets, by comparing and calculating the bandwidths corresponding to the same time in the first and second bandwidth sets, the difference between the measured true bandwidth in the simulated network and the pre-configured ideal bandwidth can be obtained. Based on this difference, the bandwidth estimation information of the simulated network in the first time period can be further obtained, where the bandwidth estimation information of the simulated network is also the block estimation information of the network to be estimated.
[0050] It should be noted that this simulated network uses a network loss meter for network output. Compared with the simulation tools such as MATLAB used in related technologies, it can simulate various types of scenarios and complex, real-time changing network environments. The bandwidth estimation information obtained is more practical than traditional bandwidth estimation.
[0051] As can be seen, by adopting the embodiments of this application, a first bandwidth set corresponding to a pre-constructed simulated network is obtained. The simulated network is the simulated network between the network simulation device and the server. The simulated network constructed by the network simulation device realizes the simulation of various types of networks, reduces data acquisition time, and provides a basis for bandwidth estimation. On this basis, a second bandwidth set is obtained. The first bandwidth set and the second bandwidth set each include bandwidths corresponding to multiple consecutive time points. Any bandwidth in the first bandwidth set is the bandwidth corresponding to the initial bandwidth pre-configured by the network simulation device at a given time, i.e., the theoretical output bandwidth under ideal conditions. The second bandwidth set is the bandwidth of the network to be estimated between the client and the server corresponding to multiple consecutive time points in the first bandwidth set. By comparing the first bandwidth set and the second bandwidth set, the relatively accurate bandwidth estimation information of the bandwidth estimation system can be calculated. This not only saves labor costs but also helps to improve the efficiency of bandwidth estimation information, laying the foundation for solving network congestion problems.
[0052] Based on the above embodiments, obtaining the first bandwidth set and the second bandwidth set requires constructing a simulation network. Furthermore, the simulation network must be consistent with the network to be estimated to ensure consistency between the bandwidth estimation information obtained from the simulation network and the network to be estimated. Therefore, in some embodiments, before step S201 in the above embodiments: a simulation network needs to be constructed. Specifically, a network simulation device and server are configured according to the network type of the simulation network to be constructed; based on the configured network simulation device and the configured server, a simulation network corresponding to the network type is constructed.
[0053] For example, in order to determine the bandwidth estimation information of the network to be estimated, the constructed simulation network needs to be closely aligned with the real usage environment of the network to be estimated. The network to be estimated needs to be constructed according to the usage environment, the task requirements corresponding to the use of the network, and the requirements for testing the robustness of the network to be estimated. The weak network type can be a latency network type, a packet loss network type, or a jitter network type.
[0054] Configure the network simulation device (network loss meter) and server parameters in the simulated network according to the configuration parameters corresponding to the network type. Besides the network loss meter and server, corresponding routers and switches can also be configured according to actual needs. This application embodiment does not limit the configuration method in the simulated network or the corresponding devices that need to be configured. Using the configured network simulation device and server, build a simulated network according to the network type, for example, setting the network topology, device connections, protocol configuration, etc.
[0055] It should be noted that during the simulation process, corresponding simulation experiments can be designed to simulate the usage of the network to be estimated in various types of scenarios, thereby determining the bandwidth estimation information corresponding to the network to be estimated.
[0056] In some embodiments, to further improve the construction speed of the simulation network during the above-described configuration process, a mapping relationship between the corresponding network type and the configuration parameters of the corresponding network loss meter can be pre-built. Specifically, this can be a corresponding database, configuration file, or rules hard-coded in the system. During the construction of the simulation network, it is only necessary to obtain the network type, determine the target network parameters corresponding to the network type based on the mapping relationship between the network type and the preset network parameters, and configure the network simulation device using the target network parameters. Based on the content of the above embodiments, the network type of the simulation network to be constructed can be a latency network type, a packet loss network type, or a jitter network type.
[0057] Specifically, configuring network simulation equipment based on target network parameters allows for the design of network latency, bandwidth limits, and packet loss rate settings. For example, based on the latency value in the target network parameters, the network simulation equipment can be configured to simulate the corresponding network latency; based on the target bandwidth value, the transmission speed of the network simulation equipment can be limited; and based on the target packet loss rate, the network simulation equipment can be configured to simulate data packet loss during transmission.
[0058] After configuration, you can further verify whether the network simulation device is configured correctly. For example, you can verify the simulation effect by sending test data packets or simulating actual communication scenarios. If the verification results do not meet expectations, adjust and optimize the configuration of the network simulation device based on the test results until the network simulation device can accurately simulate the behavior of the target network type.
[0059] In a simulated network, the different application scenarios and functionalities of the clients necessitate different service types and functionalities supported by the servers, as well as varying server parameters and adaptability. For example, if the client's actual usage is a file server, the server needs to provide file storage, sharing, and management capabilities; specifically, the server configuration process requires setting parameters to meet these functionalities. If the client is using a video conferencing scenario, the server configuration parameters need to support image and video transmission capabilities. Configuring server parameters based on the client's application scenario or the application scenario of the simulated network being tested allows for fine-grained configuration, improving the realism of the simulation network. Therefore, configuring the server according to the actual application scenario requirements of the clients improves the service efficiency of both the simulated network and the server.
[0060] Specifically, in some embodiments, configuring the server according to the network type of the simulation network to be constructed includes: determining the target server parameters corresponding to the network type based on the mapping relationship between the network type and the preset server parameters; and configuring the server using the target server parameters.
[0061] The actual bandwidth of the simulated network during the actual simulation process is collected. As in the above embodiments, related technologies generally obtain the second bandwidth set by installing test software on the client or server, through command line, or through network monitoring tools. These methods all require long-term monitoring to obtain a certain amount of bandwidth. To improve the efficiency of obtaining the second bandwidth set, in some embodiments, the specific implementation of step S202 in the above embodiments can be: obtaining the bandwidth log set of the network to be estimated through preset log points; parsing the bandwidth logs corresponding to multiple consecutive time points in the bandwidth log set to obtain multiple second bandwidths in the second bandwidth set.
[0062] For example, pre-install log points at key locations in the simulated network (such as client and server). Determine the network parameters to be monitored, including bandwidth usage and transmission speed. Based on the monitoring requirements, write or configure a log collection tool (such as Snort, Zabbix, ELK Stack, etc.) to capture the corresponding network parameters. Then, start the log collection tool to begin capturing network logs at the pre-installed points. Ensure the logs contain key information such as timestamps and bandwidth usage data. Store the captured logs on a log server or in a database.
[0063] Clean and filter logs stored on the server or in the database, removing duplicate, invalid, or malformed records. Format the cleaned and filtered logs to ensure data consistency and readability. Write scripts or programs to parse bandwidth data from the log files. Extract the bandwidth value for each consecutive time point based on the log format. Arrange the extracted bandwidth values in chronological order to form a second bandwidth set.
[0064] After obtaining the first and second bandwidth sets, to determine the accuracy of the bandwidth estimate in the second bandwidth set, it is necessary to compare the bandwidth corresponding to the same time in each of the first and second bandwidth sets. In related technologies, bandwidth is generally estimated and compared based on the experience of network administrators or technicians, observing factors such as network usage and equipment performance. However, due to the influence of personal experience, skills, and biases, as well as the complexity of the network environment and the dynamic changes in network bandwidth during actual use, manually estimated bandwidth results cannot accurately track and reflect the actual bandwidth of the network being estimated, thus resulting in poor accuracy.
[0065] In this scheme, by collecting the actual bandwidth of the simulated network during the actual simulation process, a corresponding second bandwidth set can be obtained. By comparing any bandwidth in the second bandwidth set with the first bandwidth in the first bandwidth set at the corresponding time, the difference between the second bandwidth set (actual evaluation bandwidth) and the first bandwidth set (preset bandwidth) of the network to be evaluated can be obtained, thereby realizing the evaluation of the accuracy of the bandwidth estimation of the network to be evaluated.
[0066] In some other embodiments, step S203 in the above embodiments may be implemented as follows: calculate the error range of the first bandwidth based on the first bandwidth and a preset allowable error ratio, wherein the first bandwidth is any one of the first bandwidth sets; if the second bandwidth in the second bandwidth set that matches the time corresponding to the first bandwidth is within the error range, determine the second bandwidth as the accurate bandwidth; calculate the bandwidth accuracy information of the network to be estimated based on the number of accurate bandwidths in the second bandwidth set and the number of second bandwidths in the second bandwidth set; and use the bandwidth accuracy information as the bandwidth estimation information of the network to be estimated within a first preset time period.
[0067] For example, when comparing the first bandwidth set and the second bandwidth set, due to uncertainties in network simulation or actual use, directly considering the second bandwidth at the same moment as inaccurate bandwidth simply because it differs from the first bandwidth would lack fault tolerance and be unrealistic. Therefore, an allowable error ratio can be set to calculate the corresponding error range of the first bandwidth. If the second bandwidth falls within this error range, it indicates that the measured second bandwidth is close to the pre-configured first bandwidth, and the second bandwidth is an accurate bandwidth.
[0068] Specifically, the calculation of the error range of the first bandwidth based on the first bandwidth and a preset allowable error ratio includes:
[0069] The first error factor and the second error factor are calculated based on the allowable error ratio. The first error factor is the difference between the preset initial value and the allowable error ratio, and the second error factor is the sum of the preset initial value and the allowable error ratio.
[0070] The product of the first bandwidth and the first error factor is taken as the minimum value of the error range; and the product of the first bandwidth and the first error factor is taken as the maximum value of the error range.
[0071] For example, the allowable error ratio can be a ratio corresponding to the first bandwidth, specifically a value of 0.8. This application embodiment does not limit the numerical value of the allowable error ratio. Based on the allowable error ratio, the error range of the second bandwidth relative to the first bandwidth can be calculated. The minimum value within the error range is calculated using the first error factor and the first bandwidth, and the maximum value within the error range is calculated using the second error factor and the first bandwidth.
[0072] Specifically, the error range is:
[0073] A×(1-α)≤B≤A×(1+α)
[0074] Where A represents the first bandwidth, B represents the second bandwidth at the same time as the first bandwidth, α represents the allowable error ratio, and (1-α) represents the first error factor and (1+α) represents the second error factor.
[0075] Based on the above formula, if the second bandwidth is within the error range, then the second bandwidth is considered an accurate bandwidth. By sequentially comparing each second bandwidth in the second bandwidth set with the first bandwidth in the first bandwidth set at the same time, the number of accurate bandwidths in the second bandwidth set can be obtained.
[0076] After obtaining the number of accurate bandwidths, the quotient of the number of accurate bandwidths in the second bandwidth set and the number of second bandwidths in the second bandwidth set is used as the bandwidth accuracy information of the network to be estimated.
[0077] Specifically, the bandwidth accuracy information is calculated using the following formula:
[0078]
[0079] Among them, Acc represents the bandwidth accuracy information, hit_cnt represents the number of accurate bandwidths, and total_cnt represents the number of second bandwidths in the second bandwidth set.
[0080] In practical applications, network bandwidth can vary depending on the usage environment and network configuration. For example, in this embodiment, when the pre-configured first bandwidth of the network loss meter changes, the detected second bandwidth will change accordingly during the time period following the change. Specifically, the convergence time of the network to be evaluated is defined as the time from when the first bandwidth changes until the second bandwidth also changes and then remains stable. Furthermore, based on the magnitude of the bandwidth change corresponding to the first bandwidth and the convergence time, the corresponding convergence speed can be calculated. The convergence speed can quantitatively assess the adaptability of the network to be evaluated in changing environments.
[0081] Therefore, the convergence speed of the network under evaluation can be used to further improve the network, thereby enhancing user experience and reducing service interruptions and latency caused by bandwidth adjustments. Furthermore, when bandwidth changes, the network can quickly adjust its resource allocation strategy to ensure that critical services or high-priority applications receive sufficient bandwidth resources, improving overall resource utilization efficiency. A fast convergence speed helps reduce redundant configurations or resource idleness during bandwidth adjustments, lowering operating costs. In the face of sudden events such as network attacks or equipment failures, a high-convergence-speed network can recover to normal operation more quickly, reducing losses and the scope of impact. As the network environment and usage demands continuously change, the network needs to possess strong adaptability. A fast convergence speed enables the network to adapt to these changes more quickly, maintaining efficient and stable operation. A high-convergence-speed network supports more flexible service and application deployments. When new applications or services need to access the network, the network can quickly adjust bandwidth and resource allocation to ensure the smooth operation of new services. A fast convergence speed reduces the time and effort required by network operations personnel to handle bandwidth-related issues, simplifying the operations and maintenance process.
[0082] In some embodiments, the implementation of step S203 in the above embodiments may further include: determining the time corresponding to the previous first bandwidth among two adjacent bandwidths in the first bandwidth set whose difference is greater than a preset threshold as the first time; determining the second time based on the number of accurate bandwidths in the second bandwidth set within a second preset time period starting from the first time; using the time period from the first time to the second time as the convergence duration of the bandwidth estimation system; calculating the convergence speed of the bandwidth estimation system at the first time based on the convergence duration and the bandwidth difference of the first bandwidth set at the convergence duration; and using the convergence speed and bandwidth accuracy information as bandwidth estimation information of the network to be estimated within the first preset time period.
[0083] For example, in the first bandwidth set, if the difference between two adjacent first bandwidths is greater than a preset threshold, this indicates a change in the first bandwidth. Those skilled in the art can determine the size of the preset threshold based on the actual situation, ensuring the value conforms to the actual network operation. Here, each of the two adjacent first bandwidths corresponds to a specific time point. The time point corresponding to the previous bandwidth is taken as the first time point, i.e., the time before the bandwidth change. The first time point is the start time of the convergence period.
[0084] The convergence time ends when the second bandwidth falls within the error range of the changed first bandwidth. In other words, the second time point corresponds to the accurate bandwidth after the first time point. The time interval from the first time point to the second time point is the convergence time of the network to be estimated. The convergence speed is obtained by dividing the difference in the change of the first bandwidth by the convergence time.
[0085] In practical applications, when the pre-configured first bandwidth changes, the network to be estimated fluctuates, and the corresponding measured second bandwidth also changes. However, the change of the second bandwidth is a fluctuating process, which means that the network to be estimated cannot be determined to be in a convergent state simply because the second bandwidth is an accurate bandwidth.
[0086] Therefore, the process of determining the second moment may also include: detecting the number of second bandwidths that are accurate bandwidths in the second bandwidth set; if the number of accurate bandwidths reaches the preset total number, the moment corresponding to the first second bandwidth in the number of accurate bandwidths is taken as the second moment.
[0087] For example, starting from the first moment, if the number of detected second bandwidths that are accurate bandwidths reaches a preset total number, and the number of accurate bandwidths within a second preset time period reaches a preset total number, where the second preset time period starts from the first moment, and if the number of accurate bandwidths within any second preset time period reaches the preset total number, then the starting moment of the first second preset time period is determined as the second moment. For example, if the second preset time period is 5 seconds and the preset total number is 3, assuming the first moment is the 7th second, starting from the 7th second, if the number of accurate bandwidths within the corresponding period from the 10th to the 15th second is 3, then the 10th second is determined as the second moment.
[0088] If, during the entire evaluation process, the network to be evaluated experiences multiple instances where the first bandwidth difference exceeds a preset threshold, then the convergence rate at each of these instances needs to be considered when calculating the convergence rate.
[0089] By identifying and considering all moments when the first bandwidth difference exceeds a preset threshold, the convergence characteristics of the network under evaluation can be reflected. Compared to focusing on only a single point in time, this reduces evaluation bias caused by accidental factors or short-term fluctuations. In practical applications, various complex environments and conditions may be encountered, such as load changes and fault recovery. By calculating the convergence speed at multiple key points, the stability and robustness of the evaluation results are improved, while providing data support for the optimization, fault diagnosis, and performance tuning of the network under evaluation.
[0090] Therefore, there are also some embodiments where, if there are at least two moments in the first bandwidth set where the difference is greater than a preset threshold, the convergence speed corresponding to each moment is determined; the average convergence speed corresponding to each moment is calculated; and the average convergence speed is used as the convergence speed of the network to be estimated.
[0091] For example, it is necessary to calculate the convergence rate at each time step, calculate the average convergence rate, and obtain the convergence rate of the network to be estimated.
[0092] like Figure 3As shown, if the second bandwidth is the accurate bandwidth within the error range corresponding to the first bandwidth, Figure 3 In this embodiment, the first moment when the first bandwidth changes is time t1, and the time period between t2 and t3 is the second preset time period, which is 5 seconds in this application embodiment. Here, t2 is the second moment. There are three convergence points between t2 and t3. Therefore, the number of accurate bandwidths in the second preset time period meets the preset total number. Figure 3 There are two moments when the first bandwidth changes, so the convergence speed corresponding to the first preset time period is the average convergence speed of the two moments.
[0093] For example, if the above implementation steps can be implemented by software modules, corresponding to the above bandwidth estimation method, the embodiments of this application can also provide a bandwidth estimation device.
[0094] like Figure 4 As shown, a bandwidth estimation device is provided, which may include a first acquisition module 41, a second acquisition module 42, and a bandwidth calculation module 42. This bandwidth estimation device can be used to perform the above-described... Figure 2 Part or all of the operations of the bandwidth estimation method.
[0095] For example: the first acquisition module 41 is used to acquire a first bandwidth set corresponding to a pre-built simulation network. The simulation network is a simulation network between a network simulation device and a server. The first bandwidth set includes bandwidths corresponding to multiple consecutive time moments. The bandwidth at any time moment is the bandwidth corresponding to the initial bandwidth pre-configured by the network simulation device at that time moment.
[0096] The second acquisition module 42 is used to acquire a second bandwidth set, the second bandwidth set including the bandwidth of the network to be estimated between the client and the server network at each of the plurality of consecutive time moments;
[0097] The bandwidth calculation module 42 is used to calculate the bandwidth estimation information of the network to be estimated within a first preset time period based on the first bandwidth set and the second bandwidth set, wherein the first preset time period is a time period composed of the plurality of consecutive moments.
[0098] Therefore, the bandwidth estimation device provided in this application embodiment obtains a first bandwidth set corresponding to a pre-constructed simulated network. The simulated network is a simulated network between a network simulation device and a server. The simulated network constructed by the network simulation device realizes the simulation of various types of networks, reduces data acquisition time, and provides a basis for bandwidth estimation. Based on this, a second bandwidth set is obtained. The first bandwidth set and the second bandwidth set each include bandwidths corresponding to multiple consecutive time points. Any bandwidth in the first bandwidth set is the bandwidth corresponding to the initial bandwidth pre-configured by the network simulation device at that time, i.e., the theoretical output bandwidth under ideal conditions. The second bandwidth set is the bandwidth of the network to be estimated between the client and the server corresponding to multiple consecutive time points in the first bandwidth set. By comparing the first bandwidth set and the second bandwidth set, the bandwidth estimation information of the bandwidth estimation system can be calculated to be relatively accurate. This not only saves labor costs but also helps to improve the efficiency of bandwidth estimation information, laying the foundation for solving network congestion problems.
[0099] Optionally, before the first acquisition module 41, the system further includes: a configuration module, configured to configure the network simulation device and the server according to the network type of the simulation network to be constructed; and a network construction module, configured to construct a simulation network corresponding to the network type according to the configured network simulation device and the configured server.
[0100] Optionally, the configuration module is specifically used to determine the target network parameters corresponding to the network type based on the mapping relationship between the network type and the preset network parameters; and to configure the network simulation device using the target network parameters.
[0101] Optionally, the configuration module is further configured to: determine the target server parameters corresponding to the network type based on the mapping relationship between the network type and the preset server parameters; and configure the server using the target server parameters.
[0102] Optionally, the network type includes at least one of the following: latency network type, packet loss network type, and jitter network type.
[0103] Optionally, the second acquisition module 42 is specifically used to: acquire the bandwidth log set of the network to be estimated through preset log embedding points; and parse the bandwidth logs corresponding to the multiple consecutive time points in the bandwidth log set to obtain multiple second bandwidths in the second bandwidth set.
[0104] Optionally, the bandwidth calculation module 42 includes: a range determination module, configured to calculate the error range of the first bandwidth based on a first bandwidth and a preset allowable error ratio, wherein the first bandwidth is any one of the first bandwidth sets, and the preset allowable error ratio is the error ratio of the second bandwidth bit in the second bandwidth set that matches the time corresponding to the first bandwidth; an accurate bandwidth determination module, configured to determine the second bandwidth as an accurate bandwidth if the second bandwidth in the second bandwidth set that matches the time corresponding to the first bandwidth is within the error range; and an accuracy calculation module, configured to calculate the bandwidth accuracy information of the network to be estimated based on the number of accurate bandwidths in the second bandwidth set and the number of second bandwidths in the second bandwidth set; and to use the bandwidth accuracy information as the bandwidth estimation information of the network to be estimated within a first preset time period.
[0105] Optionally, the range determination module is specifically configured to: calculate a first error factor and a second error factor based on the allowable error ratio, wherein the first error factor is the difference between a preset initial value and the allowable error ratio, and the second error factor is the sum of the preset initial value and the allowable error ratio; take the product of the first bandwidth and the first error factor as the minimum value of the error range; and take the product of the first bandwidth and the first error factor as the maximum value of the error range.
[0106] Optionally, the accuracy calculation module is specifically used to: take the quotient of the number of accurate bandwidths in the second bandwidth set and the number of second bandwidths in the second bandwidth set as the bandwidth accuracy information of the network to be estimated.
[0107] Optionally, the bandwidth calculation module 42 further includes: a first time determination module, used to determine the time corresponding to the previous first bandwidth among two adjacent bandwidths in the first bandwidth set whose difference is greater than a preset threshold as the first time; a second time determination module, used to determine the second time based on the number of accurate bandwidths in the second bandwidth set within a second preset time period starting from the first time; a duration determination module, used to use the time period from the first time to the second time as the convergence duration of the bandwidth estimation system; and a speed determination module, used to calculate the convergence speed of the bandwidth estimation system at the first time based on the convergence duration and the bandwidth difference of the first bandwidth set corresponding to the convergence duration; and to use the convergence speed and the bandwidth accuracy information as the bandwidth estimation information of the network to be estimated within the first preset time period.
[0108] Optionally, the device is further configured to: if there are at least two moments in the first bandwidth set where the difference is greater than a preset threshold, determine the convergence speed corresponding to each moment; calculate the average convergence speed corresponding to each moment; and use the average convergence speed as the convergence speed of the network to be estimated.
[0109] Optionally, the second time determination module is specifically used to: detect the number of second bandwidths that are accurate bandwidths in the second bandwidth set; if the number of accurate bandwidths reaches a preset total number, take the time corresponding to the first second bandwidth among the number of accurate bandwidths as the second time.
[0110] Understandable Figure 4 The division of the various modules is merely a logical functional division. In actual implementation, the functions of these modules can be integrated into the hardware entity of the electronic device.
[0111] Please refer to Figure 5 , Figure 5 An electronic device is provided, and this disclosure also provides an electronic device for performing the bandwidth estimation method described above. Please refer to... Figure 5 This illustrates a schematic diagram of an electronic device provided by some embodiments of the present disclosure. For example... Figure 5 As shown, the electronic device includes: a processor 500, a memory 501, a bus 502, and a communication interface 503. The processor 500, the communication interface 503, and the memory 501 are connected via the bus 502. The memory 501 stores a computer program that can run on the processor 500. When the processor 500 runs the computer program, it executes the aforementioned provisions of this disclosure. Figure 2 The bandwidth estimation method provided by any of the illustrated embodiments.
[0112] The memory 501 may include high-speed random access memory (RAM) or non-volatile memory, such as at least one disk storage device. Communication between this system network element and at least one other network element is achieved through at least one communication interface 503 (which can be wired or wireless), such as the Internet, wide area network, local area network, metropolitan area network, etc.
[0113] Bus 502 can be an ISA bus, PCI bus, or EIS bus, etc. The bus can be divided into address bus, data bus, control bus, etc. Memory 501 is used to store programs, and the processor 500 executes the programs after receiving execution instructions. Figure 2The illustrated implementation shows that the bandwidth estimation method can be applied to, or implemented by, the processor 500.
[0114] The processor 500 may be an integrated circuit chip with signal processing capabilities. In implementation, each step of the above method can be completed by the integrated logic circuitry in the hardware of the processor 500 or by software instructions. The processor 500 may be a general-purpose processor, including a central processing unit (CPU), a network processor (NP), etc.; it may also be a digital signal processor (DSP), an application-specific integrated circuit (ASIC), a field-programmable gate array (FPGA), or other programmable logic devices, discrete gate or transistor logic devices, or discrete hardware components. It can implement or execute the methods, steps, and logic block diagrams disclosed in the embodiments of this disclosure. The general-purpose processor may be a microprocessor or any conventional processor. The steps of the methods disclosed in the embodiments of this disclosure can be directly manifested as execution by a hardware decoding processor, or execution by a combination of hardware and software modules in the decoding processor. The software module can reside in a mature storage medium in the field, such as random access memory, flash memory, read-only memory, programmable read-only memory, electrically erasable programmable memory, or registers. This storage medium is located in memory 501, and the processor 500 reads the information from memory 501 and, in conjunction with its hardware, completes the steps of the above method.
[0115] The electronic device provided in this disclosure and the bandwidth estimation method provided in this disclosure are based on the same inventive concept and have the same beneficial effects as the methods they employ, operate, or implement.
[0116] This application also provides a computer-readable storage medium storing instructions for bandwidth estimation, which, when executed on a computer, cause the computer to perform some or all of the steps in the method described in the foregoing embodiments.
[0117] This application also provides a computer program product including instructions for bandwidth estimation, which, when run on a computer, causes the computer to perform some or all of the steps in the method described in the foregoing embodiments.
[0118] Those skilled in the art will clearly understand that, for the sake of convenience and brevity, the specific working processes of the systems, devices, and units described above can be referred to the corresponding processes in the foregoing method embodiments, and will not be repeated here.
[0119] In the several embodiments provided in this application, it should be understood that the disclosed systems, apparatuses, and methods can be implemented in other ways. For example, the apparatus embodiments described above are merely illustrative; for instance, the division of units is only a logical functional division, and in actual implementation, there may be other division methods. For example, multiple units or components may be combined or integrated into another system, or some features may be ignored or not executed. Furthermore, the coupling or direct coupling or communication connection shown or discussed may be an indirect coupling or communication connection between apparatuses or units through some interfaces, and may be electrical, mechanical, or other forms.
[0120] The units described as separate components may or may not be physically separate. The components shown as units may or may not be physical units; that is, they may be located in one place or distributed across multiple network units. Some or all of the units can be selected to achieve the purpose of this embodiment according to actual needs.
[0121] Furthermore, the functional units in the various embodiments of this application can be integrated into one processing unit, or each unit can exist physically separately, or two or more units can be integrated into one unit. The integrated unit can be implemented in hardware or as a software functional unit.
[0122] If the integrated unit is implemented as a software functional unit and sold or used as an independent product, it can be stored in a computer-readable storage medium. Based on this understanding, the technical solution of this application, in essence, or the part that contributes to the prior art, or all or part of the technical solution, can be embodied in the form of a software product. This computer software product is stored in a storage medium and includes several instructions to cause a computer device (which may be a personal computer, smartphone, or network device, etc.) to execute all or part of the steps of the methods described in the various embodiments of this application. The aforementioned storage medium includes various media capable of storing program code, such as USB flash drives, portable hard drives, read-only memory (ROM), random access memory (RAM), magnetic disks, or optical disks.
[0123] Although alternative embodiments of this application have been described, those skilled in the art, upon learning the basic inventive concept, can make further changes and modifications to these embodiments. Therefore, the appended claims are intended to be interpreted as including the preferred embodiments as well as all changes and modifications falling within the scope of this application.
[0124] The specific embodiments described above further illustrate the purpose, technical solution, and beneficial effects of this application. It should be understood that the above description is only a specific embodiment of this application and is not intended to limit the scope of protection of this application. Any modifications, equivalent substitutions, improvements, etc., made on the basis of the technical solution of this application should be included within the scope of protection of this invention.
Claims
1. A bandwidth estimation method, characterized in that, The method includes: Obtain the first bandwidth set corresponding to the pre-built simulation network. The simulation network is a simulation network between the network simulation device and the server. The first bandwidth set includes the bandwidth corresponding to multiple consecutive time points. The bandwidth at any time point is the bandwidth corresponding to the initial bandwidth pre-configured by the network simulation device at that time point. Obtain a second bandwidth set, which includes the bandwidth of the network to be estimated between the client and the server network at each of the plurality of consecutive time points; Based on the first bandwidth set and the second bandwidth set, bandwidth estimation information of the network to be estimated is calculated within a first preset time period, where the first preset time period is a time period composed of the multiple consecutive moments.
2. The method according to claim 1, characterized in that, The acquisition of the second bandwidth set includes: The bandwidth log set of the network to be estimated is obtained by pre-setting log points; The bandwidth logs corresponding to the multiple consecutive time points in the bandwidth log set are parsed respectively to obtain multiple second bandwidths in the second bandwidth set.
3. The method according to claim 2, characterized in that, The step of calculating the bandwidth estimation information of the network to be estimated within a first preset time period based on the first bandwidth set and the second bandwidth set includes: The error range of the first bandwidth is calculated based on the first bandwidth and a preset allowable error ratio. The first bandwidth is any one of the first bandwidth set, and the preset allowable error ratio is the error ratio of the second bandwidth bit in the second bandwidth set that matches the time corresponding to the first bandwidth. If the second bandwidth in the set of second bandwidths that matches the time corresponding to the first bandwidth is within the error range, the second bandwidth is determined to be the accurate bandwidth. Based on the number of accurate bandwidths in the second bandwidth set and the number of second bandwidths in the second bandwidth set, the bandwidth accuracy information of the network to be estimated is calculated. The bandwidth accuracy information is used as the bandwidth estimation information of the network to be estimated within a first preset time period.
4. The method according to claim 3, characterized in that, The calculation of the error range of the first bandwidth based on the first bandwidth and a preset allowable error ratio includes: A first error factor and a second error factor are calculated based on the allowable error ratio. The first error factor is the difference between a preset initial value and the allowable error ratio, and the second error factor is the sum of the preset initial value and the allowable error ratio. The product of the first bandwidth and the first error factor is taken as the minimum value of the error range; and the product of the first bandwidth and the first error factor is taken as the maximum value of the error range.
5. The method according to claim 4, characterized in that, Based on the number of accurate bandwidths in the second bandwidth set and the number of second bandwidths in the second bandwidth set, the bandwidth accuracy information of the network to be estimated is calculated, including: The quotient of the number of accurate bandwidths in the second bandwidth set and the number of second bandwidths in the second bandwidth set is used as the bandwidth accuracy information of the network to be estimated.
6. The method according to any one of claims 3-5, characterized in that, The step of calculating the bandwidth estimation information of the network to be estimated within a first preset time period based on the first bandwidth set and the second bandwidth set further includes: In the first bandwidth set, among two adjacent bandwidths whose difference is greater than a preset threshold, the time corresponding to the first bandwidth is determined as the first time. The second moment is determined based on the number of accurate bandwidths in the second bandwidth set within a second preset time period starting from the first moment. The time period from the first moment to the second moment is taken as the convergence time of the bandwidth estimation system; Based on the convergence time and the bandwidth difference corresponding to the convergence time of the first bandwidth set, the convergence speed of the bandwidth estimation system at the first moment is calculated; The convergence speed and the bandwidth accuracy information are used as the bandwidth estimation information of the network to be estimated within a first preset time period.
7. The method according to claim 6, characterized in that, The method further includes: If there are at least two moments in the first bandwidth set where the difference is greater than a preset threshold, then the convergence speed corresponding to each moment is determined. Calculate the average convergence rate corresponding to the convergence rate at each time step; The average convergence rate is taken as the convergence rate of the network to be estimated.
8. The method according to claim 7, characterized in that, Determining the second moment based on the number of accurate bandwidths in the second bandwidth set within a second preset time period starting from the first moment includes: Detect the number of second bandwidths in the second bandwidth set that are accurate bandwidths; If the number of accurate bandwidths reaches the preset total number, the time corresponding to the first second bandwidth among the accurate bandwidths is taken as the second time.
9. The method according to claim 1, characterized in that, Before obtaining the first bandwidth set corresponding to the pre-built simulation network, the method further includes: Configure the network simulation device and the server according to the network type of the simulated network to be constructed; Based on the configured network simulation equipment and the configured server, construct a simulation network corresponding to the network type.
10. The method according to claim 9, characterized in that, The step of configuring the network simulation device according to the network type of the simulation network to be constructed includes: Based on the mapping relationship between the network type and the preset network parameters, the target network parameters corresponding to the network type are determined; Configure the network simulation device using the target network parameters.
11. The method according to claim 10, characterized in that, Configure the server according to the network type of the simulation network to be built, including: Based on the mapping relationship between the network type and the preset server parameters, the target server parameters corresponding to the network type are determined; Configure the server using the target server parameters.
12. A bandwidth estimation system, characterized in that, The system includes a client, a server, a network simulation device, and a bandwidth estimation device. The client and the server are connected by a simulated network. The bandwidth estimation device is used to perform the bandwidth estimation method as described in any one of claims 1-11.
13. A bandwidth estimation device, characterized in that, The device includes: The first acquisition module is used to acquire a first bandwidth set corresponding to a pre-built simulation network. The simulation network is a simulation network between a network simulation device and a server. The first bandwidth set includes bandwidths corresponding to multiple consecutive time moments. The bandwidth at any time moment is the bandwidth corresponding to the initial bandwidth pre-configured by the network simulation device at that time moment. The second acquisition module is used to acquire a second bandwidth set, the second bandwidth set including the bandwidth of the network to be estimated between the client and the server network at each of the plurality of consecutive time moments; The bandwidth calculation module is used to calculate the bandwidth estimation information of the network to be estimated within a first preset time period based on the first bandwidth set and the second bandwidth set, wherein the first preset time period is a time period composed of the plurality of consecutive moments.
14. An electronic device comprising a memory, a processor, and a computer program stored in the memory and executable on the processor, characterized in that, The computer program is executed by the processor to cause the electronic device to perform the method as described in any one of claims 1-11.
15. A computer-readable storage medium having a computer program stored thereon, characterized in that, The program is executed by a processor to implement the method as described in any one of claims 1-11.
16. A computer program product, characterized in that, Includes instructions that, when executed on a computer, cause the computer to perform the method as described in any one of claims 1-11.