Distributed flow control method and flow control system based on user granularity

By using a distributed flow control method and flow control system based on user granularity in cloud rendering and edge computing scenarios, accurate statistics and speed limit management of network traffic for user rendering are realized, and the problems of traffic statistical distortion and speed limit management in the existing technology are solved, and the accuracy of traffic management and system scalability are improved.

CN119728595AActive Publication Date: 2025-03-28CHINA TELECOM CLOUD TECH CO LTD
View PDF 4 Cites 0 Cited by

Patent Information

Application Number
CN202411630064.X
Authority / Receiving Office
CN · China
Patent Type
Applications(China)
Current Assignee / Owner
Filing Date
2024-11-14
Publication Date
2025-03-28
Estimated Expiration
2044-11-14

AI Technical Summary

Technical Problem

In cloud rendering and edge computing scenarios, how to achieve accurate statistics on network traffic generated by user rendering applications in cloud rendering services and speed limiting according to user granularity has become a challenge.

Method used

Provide a distributed flow control method and flow control system based on user granularity, including a proxy module, a traffic forwarding module and a flow control module. The proxy module receives user ID and traffic priority, determines the proxy port, and forwards the traffic to the proxy module through the traffic forwarding module, marks it and passes it to the traffic control module, realizes speed limit and statistical processing.

Benefits of technology

Accurate distinction and speed limit management of different user traffic is realized, which avoids traffic statistics distortion, improves the accuracy of traffic management, and improves the scalability and flexibility of the system by reducing the coupling degree of modules.

✦ Generated by Eureka AI based on patent content.

Smart Images

  • Figure CN119728595A_ABST
    Figure CN119728595A_ABST
Patent Text Reader

Abstract

The invention relates to the technical field of cloud computing, and discloses a distributed flow control method and flow control system based on user granularity, and the method comprises the steps: an agent module determines an agent port corresponding to a user identifier and a flow priority, and transmits the agent port to a flow forwarding module; the traffic forwarding module is used for forwarding the traffic of the application to the proxy module based on the proxy port; the agent module is used for determining a preset identifier based on the user identifier and the flow priority, and marking the flow of the application by adopting the preset identifier; and the flow control module is used for determining the speed limit information of the marked flow according to the user identifier in the preset identifier, and carrying out speed limit processing and statistical processing on the marked flow. According to the method provided by the embodiment of the invention, the agent module marks the preset identifier corresponding to the user for the flow, and the flow processing module performs different speed limiting processing and statistical processing on the flow based on the preset identifiers of different users, so that speed limiting and statistical processing can be performed on the flow according to user granularity, and the accuracy of flow control is improved.
Need to check novelty before this filing date? Find Prior Art

Description

Technical Field

[0001] The present disclosure relates to the technical field of cloud computing, and in particular to a distributed traffic control method and a traffic control system based on user granularity. Background Art

[0002] With the development of edge computing and cloud rendering technologies, cloud computing architecture has been widely used in various business scenarios, greatly improving the flexibility of resource scheduling. However, in cloud rendering scenarios, since users' rendering applications are randomly distributed on cluster nodes and consume resources such as central processing units (CPUs), graphics processing units (GPUs), and network traffic, it is challenging to achieve accurate user-level traffic statistics and speed limits.

[0003] In related technologies, traffic statistics are usually based on machines or exports, but it is difficult to distinguish the actual traffic consumption of different users, resulting in distorted statistical results and difficulty in meeting the speed limit requirements at the user level. Therefore, in cloud rendering and edge computing scenarios, how to achieve accurate statistics of network traffic generated by user rendering applications in cloud rendering services and speed limit at the user level has become a problem that needs to be solved. Summary of the invention

[0004] In view of this, the present disclosure provides a distributed traffic control method and traffic control system based on user granularity to solve the problem of how to achieve accurate statistics of network traffic generated by user rendering applications in cloud rendering services and speed limit according to user granularity in cloud rendering and edge computing scenarios.

[0005] On the one hand, the present disclosure provides a distributed flow control method based on user granularity, which is applied to a flow control system. The flow control system includes: a proxy module, a flow forwarding module and a flow control module. The method includes: the proxy module receives a user identifier and a flow priority corresponding to an application from the flow forwarding module, determines a proxy port corresponding to the user identifier and the flow priority, and sends the proxy port to the flow forwarding module; the flow forwarding module forwards the flow of the application to the proxy module through the proxy port; the proxy module determines a preset identifier based on the user identifier and the flow priority, marks the flow of the application with the preset identifier, and sends the marked flow to the flow control module; the flow control module determines the speed limit information of the marked flow according to the user identifier in the preset identifier, and performs speed limit processing and statistical processing on the marked flow based on the speed limit information and the flow priority in the preset identifier.

[0006] On the other hand, the present disclosure also provides a flow control system, the system includes a proxy module, a flow forwarding module and a flow control module, wherein: the proxy module is used to receive a user identifier and a flow priority corresponding to an application from the flow forwarding module, determine a proxy port corresponding to the user identifier and the flow priority, and send the proxy port to the flow forwarding module; the flow forwarding module is used to forward the flow of the application to the proxy module through the proxy port; the proxy module is used to determine a preset identifier based on the user identifier and the flow priority, use the preset identifier to mark the flow of the application, and send the marked flow to the flow control module; the flow control module is used to determine the speed limit information of the marked flow according to the user identifier in the preset identifier, and perform speed limit processing and statistical processing on the marked flow based on the speed limit information and the flow priority in the preset identifier.

[0007] On the other hand, the present disclosure further provides a computer-readable storage medium, on which computer instructions are stored, and the computer instructions are used to enable a computer to implement the above-mentioned distributed traffic control method based on user granularity.

[0008] On the other hand, the present disclosure further provides a computer program product, including computer instructions, which are used to enable a computer to execute the above-mentioned distributed traffic control method based on user granularity.

[0009] Through the user-granularity-based distributed traffic control method and traffic control system of the above-mentioned embodiments of the present invention, by marking the user application traffic with a preset identifier with a user identifier and traffic priority in the proxy module, the traffic control module can distinguish the traffic of different users from a global perspective and realize speed limit management at user granularity; when the user traffic reaches the speed limit threshold, accurate packet loss processing is performed according to the traffic priority to ensure that high-priority traffic demands are met. Compared with traditional machine-level or export-level speed limits, it is more precise, avoids distortion of traffic statistics, and improves the accuracy of traffic management.

[0010] In addition, the user-granularity-based distributed traffic control method and traffic control system of the above-mentioned embodiments of the present invention also uniformly forward the user application traffic to the proxy module through the traffic forwarding module, and mark it in the proxy module before passing it to the traffic control module, which can effectively reduce the coupling degree of each module of the system and improve the scalability and flexibility of the system. BRIEF DESCRIPTION OF THE DRAWINGS

[0011] In order to more clearly illustrate the specific embodiments of the present disclosure or the technical solutions in the related technologies, the drawings required for use in the specific embodiments or the related technical descriptions will be briefly introduced below. Obviously, the drawings described below are some embodiments of the present disclosure. For ordinary technicians in this field, other drawings can be obtained based on these drawings without paying any creative work.

[0012] Figure 1a An exemplary schematic diagram showing the architecture of a traffic control system applied by a distributed traffic control method based on user granularity according to an embodiment of the present disclosure;

[0013] Figure 1b It is a flow chart of a distributed flow control method based on user granularity provided by an embodiment of the present disclosure;

[0014] Figure 2 An exemplary schematic diagram showing the architecture of another traffic control system applied by a distributed traffic control method based on user granularity according to an embodiment of the present disclosure;

[0015] Figure 3 It is a schematic diagram of preset identification of a distributed flow control method based on user granularity provided by an embodiment of the present disclosure;

[0016] Figure 4 is a flow chart of another distributed flow control method based on user granularity provided by an embodiment of the present disclosure;

[0017] Figure 5 A specific architecture diagram of a traffic control system applied by a distributed traffic control method based on user granularity according to an embodiment of the present disclosure is shown;

[0018] Figure 6 is a schematic diagram of the structure of another flow control system provided by an embodiment of the present disclosure;

[0019] Figure 7 It is a structural schematic diagram of another flow control system provided by an embodiment of the present disclosure. DETAILED DESCRIPTION

[0020] With the rapid development of edge computing and cloud rendering technologies, many business scenarios are gradually being implemented in cloud computing environments. This architecture can schedule computing resources more flexibly and efficiently, providing users with convenient services without having to pay attention to the details of underlying resources. However, while this flexibility and abstract resource management bring convenience, it also triggers a new round of challenges, especially in terms of resource consumption, traffic control, and refined user management.

[0021] In a typical business scenario of cloud rendering, the user's rendering application relies on cloud computing resources to process graphics and video content, often using a large amount of CPU and GPU computing power, and also consumes a large amount of network bandwidth to achieve data transmission, real-time rendering, streaming media push and other services. In this environment, rendering applications of different users are randomly distributed on different machines in the cluster, and are dynamically scheduled based on computing power and resource requirements. However, this distribution method makes it difficult to accurately count and control traffic by user. In this multi-tenant, multi-application cloud rendering scenario, rendering applications of different users not only generate the traffic required for their own business, but also involve the video traffic output by the rendering service and the operation, maintenance and scheduling traffic of the cloud rendering system. The existence of various types of traffic increases the difficulty of accurate traffic statistics.

[0022] In the related technologies, machine or export traffic statistics are usually relied on, but the related technologies often have the following problems:

[0023] 1. Related technologies usually count traffic based on machines or export flows, which makes it difficult to distinguish and identify the traffic generated by different users or applications. As a result, the statistical data cannot reflect the actual traffic consumption of each user, resulting in distorted statistical results.

[0024] 2. The speed limit mechanism of related technologies is mostly performed at the machine level or export traffic level, and it is difficult to independently manage the speed limit for each user's traffic. In the cloud rendering scenario, different users may require different traffic priorities and speed limit strategies, such as on-demand traffic, package cycle traffic, or priority guaranteed traffic. It is impossible to finely limit the speed of user-level traffic, which easily causes high-priority traffic demands to be affected by low-priority traffic, affecting user experience.

[0025] To solve the above problems, various embodiments of the present disclosure provide a distributed traffic control method based on user granularity, which is applied to a traffic control system. The traffic control system includes: a proxy module, a traffic forwarding module and a traffic control module. The method includes: the proxy module receives a user identifier and a traffic priority corresponding to an application from the traffic forwarding module, determines a proxy port corresponding to the user identifier and the traffic priority, and sends the proxy port to the traffic forwarding module; the traffic forwarding module forwards the application traffic to the proxy module through the proxy port; the proxy module determines a preset identifier based on the user identifier and the traffic priority, uses the preset identifier to mark the application traffic, and sends the marked traffic to the traffic control module; the traffic control module determines the speed limit information of the marked traffic according to the user identifier in the preset identifier, and performs speed limit processing and statistical processing on the marked traffic based on the speed limit information and the traffic priority in the preset identifier.

[0026] In order to make the purpose, technical solution and advantages of the embodiments of the present disclosure clearer, the technical solution in the embodiments of the present disclosure will be clearly and completely described below in conjunction with the drawings in the embodiments of the present disclosure. Obviously, the described embodiments are part of the embodiments of the present disclosure, rather than all the embodiments. Based on the embodiments in the present disclosure, all other embodiments obtained by those skilled in the art without creative work are within the scope of protection of the present disclosure.

[0027] Please refer to Figure 1a , Figure 1a An exemplary schematic diagram of the architecture of a traffic control system applied by a distributed traffic control method based on user granularity according to an embodiment of the present disclosure is shown. Figure 1a As shown, the flow control system may include: a proxy module, a flow forwarding module and a flow control module.

[0028] like Figure 1a As shown, the traffic control system is deployed in the cluster. The traffic control system may refer to a system that realizes traffic management and control through the collaborative work of multiple modules in a cluster environment, and is a combination of at least one module in the cluster.

[0029] Here, cluster can refer to a collection of computers or nodes that are connected and work together. These nodes are connected together through a network and work together to process tasks. The nodes in the cluster can be distributed in different physical or logical locations.

[0030] The proxy module can be used for data forwarding and traffic marking; the traffic forwarding module can be used to forward the traffic generated by user applications to the specified proxy module on demand; the traffic control module can be used to allocate bandwidth and manage priorities for traffic of different users.

[0031] Furthermore, the system includes at least one traffic forwarding module, each of which can be set in different machines in the cluster, and each traffic forwarding module corresponds to a machine one by one. The machine can refer to a computer or a node, and each machine can include at least one application.

[0032] Here, the application included in the machine may refer to a rendering application, that is, an application instance that performs a specific rendering task; each rendering application may correspond to a user, and the rendering application may belong to a specific tenant and perform exclusive rendering tasks for the tenant.

[0033] Further references Figure 1b , Figure 1b is a flow chart of a distributed flow control method based on user granularity provided by an embodiment of the present disclosure, which is applied to the above Figure 1a The flow control system shown in the figure may include the following steps:

[0034] Step S101: The proxy module receives the user identification and traffic priority corresponding to the application from the traffic forwarding module, determines the proxy port corresponding to the user identification and the traffic priority, and sends the proxy port to the traffic forwarding module.

[0035] In this embodiment, the user identifier may refer to a value or string used to uniquely identify each user, and each application may be associated with the corresponding user through the user identifier. The traffic priority may be used to define the priority level of the application in the traffic control policy, and the traffic priority may be represented by a value, and the higher the value, the higher the priority.

[0036] As an example, traffic priority may include but is not limited to: priority guarantee priority, package period priority or on-demand priority; among them, priority guarantee priority may be the highest priority traffic priority, which will be given priority when traffic speed is limited, package period priority may be the second priority traffic priority, which may be the priority for users with fixed period charges, and on-demand priority may be the third priority traffic priority, which may refer to the priority for users who pay on demand.

[0037] A proxy port may refer to a logical port in a network system used to mark, forward, and manage specific application traffic. In a traffic control system, each proxy port corresponds to a specific user ID and traffic priority combination and can be used to receive the user's traffic.

[0038] As an example, if there is on-demand traffic of user 1, periodic traffic of user 1, and priority guaranteed traffic of user 2 in the cluster, the proxy module can assign different proxy ports to each user priority combination, assigning proxy port 01 to user 1 and on-demand traffic priority, assigning proxy port 02 to user 1 and periodic traffic priority, and assigning proxy port 03 to user 2 and priority guaranteed traffic priority.

[0039] Step S102: The traffic forwarding module forwards the application traffic to the proxy module through the proxy port.

[0040] In this embodiment, the function of the traffic forwarding module may be to use the traffic hijacking capability of the operating system to forward the traffic of a specific user's application to the proxy port of the proxy module. The traffic hijacking capability may refer to a network control technology that allows the system to intercept and redirect data traffic under specific conditions.

[0041] As an example, the traffic forwarding module uses the traffic hijacking capability of the operating system to reroute the traffic originally sent to the first module to the proxy port of the proxy module.

[0042] For further information, please refer to Figure 2, Figure 2 FIG. 1 is an exemplary schematic diagram showing the architecture of another traffic control system applied by a distributed traffic control method based on user granularity according to an embodiment of the present disclosure. Figure 2 As shown, the traffic control system may also include: a service discovery module.

[0043] A service discovery module may be a module used in a distributed system to dynamically discover and manage available services in a network. It may help different components or modules in the system to automatically find each other without the need to configure a fixed service location or address in advance.

[0044] In a possible implementation manner of the above embodiment, the method further includes: a service discovery module, using multicast technology, to provide address information of the proxy module to the traffic forwarding module.

[0045] Here, multicast technology may refer to allowing a single data source to send data to multiple receivers simultaneously. The service discovery module may use a multicast domain name (Multicast DNS, MDNS) to send the address information of the proxy module to the traffic forwarding module.

[0046] Furthermore, the traffic forwarding module may send a user identifier and traffic priority corresponding to the application to the proxy module based on the address information.

[0047] Specifically, the traffic forwarding module can obtain the address information of the proxy module through the service discovery module, extract the user ID and traffic priority from the application process, use the address information to send a request containing the user ID and traffic priority to the proxy module, and wait to receive the proxy port determined by the proxy module based on the user ID and traffic priority.

[0048] Furthermore, the traffic forwarding module forwards the traffic of the application to the proxy module through the proxy port, and may include: the traffic forwarding module sends all traffic generated by the application to the proxy module through the proxy port.

[0049] Here, the traffic generated by the application may include but is not limited to: rendering data traffic, control traffic, business request traffic, log and monitoring traffic.

[0050] Step S103: the proxy module determines a preset identifier based on the user identifier and the traffic priority, marks the traffic of the application with the preset identifier, and sends the marked traffic to the traffic control module.

[0051] In this embodiment, the preset identifier can be used to uniquely associate the application with the user, that is, the preset identifier can be used to mark the specific traffic of the user and the application of the user.

[0052] Using a preset identifier to mark the traffic of an application may include: after receiving the traffic sent by the traffic forwarding module, the proxy module marks the traffic data packet with a generated preset identifier. The preset identifier includes information about the user identifier and the traffic priority, and the marked traffic can be identified in the system as belonging to a specific user and having a specific priority.

[0053] The marked traffic is sent to the traffic control module so that the traffic control module can read the user identification and traffic priority information contained in the marked traffic and make appropriate control decisions for different users or traffic priorities.

[0054] Step S104, the traffic control module determines the speed limit information of the marked traffic according to the user identifier in the preset identifier, and performs speed limit processing and statistical processing on the marked traffic based on the speed limit information and the traffic priority in the preset identifier.

[0055] In this embodiment, the traffic control module determines the speed limit information of the marked traffic according to the user identifier in the preset identifier, which may include: the traffic control module obtains the marked traffic, determines the user identifier of the application of the traffic according to the preset identifier contained in the marked traffic, and queries the speed limit information corresponding to the user according to the user identifier.

[0056] Here, the speed limit information may refer to the maximum traffic bandwidth allocated by the system to each user. For example, the speed limit information of user A may be 10 megabits per second (Mbps).

[0057] In a possible implementation, the traffic control module performs speed limit processing and statistical processing on the marked traffic based on the speed limit information and the traffic priority in the preset identifier, which may include:

[0058] The flow control module, when it is determined that the flow reaches the user's speed limit information, performs speed limit processing on the flow to limit the user's flow rate; the flow control module, when it is determined that the flow exceeds the user's speed limit information, performs packet loss processing on the flow, discards low-priority data packets according to priority, and ensures that the overall flow meets the user's speed limit standard;

[0059] The flow control module, after speed limiting the flow, records the flow after speed limiting and classifies and counts the flow according to the user identification.

[0060] In the user-granularity-based distributed traffic control method and traffic control system of the above-mentioned embodiments of the present disclosure, by marking the user application traffic with a preset identifier with a user identifier and traffic priority in the proxy module, the traffic control module can distinguish the traffic of different users from a global perspective and realize speed limit management at user granularity; when the user traffic reaches the speed limit threshold, accurate packet loss processing is performed according to the traffic priority to ensure that high-priority traffic requirements are met, which is more precise than traditional machine-level or export-level speed limits, avoids distortion of traffic statistics, and improves the accuracy of traffic management; the user application traffic is uniformly forwarded to the proxy module through the traffic forwarding module, and is passed to the traffic control module after being marked in the proxy module, which can effectively reduce the coupling degree of the system modules and improve the scalability and flexibility of the system.

[0061] In a possible implementation of the above embodiment, the proxy module determines a preset identifier based on the user identifier and the traffic priority, marks the traffic of the application with the preset identifier, and sends the marked traffic to the traffic control module, including:

[0062] The proxy module receives the user identification and traffic priority corresponding to the application from the traffic forwarding module, combines the user identification and the traffic priority, and determines a preset identification; wherein the preset identification uniquely corresponds to the proxy port;

[0063] The proxy module determines whether a proxy port corresponding to a preset identifier already exists. When it is determined that a proxy port corresponding to the preset identifier already exists, the proxy port is sent to the traffic forwarding module. The proxy module creates a proxy port and sets firewall rules corresponding to the proxy port when it is determined that a proxy port corresponding to the preset identifier does not exist. When the firewall rules are used to obtain traffic from the proxy port, the traffic is marked with a preset identifier.

[0064] In this embodiment, the preset identifier determined by combining the user identifier and the traffic priority can be in the form of a data structure of preset digits, where the first N digits are used to represent the user identifier and the last M digits are used to represent the traffic priority.

[0065] As an example, the form of the preset mark fw_mark composed of the user identifier user_id and the flow priority flow_prority can be as follows: Figure 3 The preset mark fw_mark may be a 32-bit binary data, wherein the first 30 bits may represent the user identifier user_id, and the last 2 bits may represent the flow priority flow_prority.

[0066] The last two bits of binary data used to represent the traffic priority flow_prority can be 00, 01 and 10, where 2 (ie 10) can be used to represent the priority guarantee, 1 (ie 01) can be used to represent the packet cycle priority, and 0 (ie 00) can be used to represent the on-demand priority.

[0067] The proxy module determines whether there is a proxy port corresponding to the preset identifier fw_mark that has been created inside the module. When the proxy port corresponding to fw_mark already exists in the module, the proxy port corresponding to fw_mark is directly sent to the traffic forwarding module; when the proxy port corresponding to fw_mark does not exist in the module, the proxy port corresponding to fw_mark is created according to the user identifier user_id in fw_mark and the traffic priority flow_prority, and then the proxy port corresponding to fw_mark is sent to the traffic forwarding module.

[0068] Furthermore, when a proxy port corresponding to fw_mark is created, a firewall rule is set for the proxy port, and the firewall rule is used to mark the traffic entering from the proxy port using fw_mark.

[0069] Here, by setting up firewall rules on the proxy port, data traffic entering from a specific port can be identified and marked, and the traffic can be bound to the corresponding user information and priority.

[0070] After the proxy port corresponding to fw_mark is created, the user identifier user_id and flow priority flow_prority in fw_mark are passed to the speed limit module and the statistics module.

[0071] As an example, the user identifier user_id is 123456, and the flow priority flow_prority, so that the proxy module generates fw_mark according to the above information, configures firewall rules on the proxy port, and ensures that all traffic of the user corresponding to the user identifier is marked as a combination of user_id=123456 and flow_prority=2 after entering the proxy port.

[0072] In the user-granularity-based distributed traffic control method and traffic control system of the above-mentioned embodiment of the present disclosure, the proxy module generates a unique preset identifier through the user identifier and the traffic priority, ensuring that the application traffic of each user has a unique identifier, which can not only mark the user source but also contain the traffic priority information, thereby ensuring the refined management of the traffic at the user granularity; each proxy port corresponds to a preset identifier, and this one-to-one correspondence ensures the accurate classification and marking of the proxy port traffic, reduces errors, and avoids confusion of multi-user traffic; the proxy module creates a new proxy port only when needed, and directly uses it when there is a proxy port corresponding to the preset identifier, thereby avoiding the creation of duplicate ports and saving system resources.

[0073] In a possible implementation of the above embodiment, the flow control module includes: a rate limiting module and a statistical module; and

[0074] The flow control module determines the speed limit information of the marked flow according to the user identifier in the preset identifier, and performs speed limit processing and statistical processing on the marked flow based on the speed limit information and the flow priority in the preset identifier, including:

[0075] The speed limit module queries the speed limit information of the user to which the application belongs according to the user identifier in the preset identifier, performs speed limit processing on the traffic containing the user identifier in the marked traffic based on the speed limit information, and sends the speed-limited traffic to the statistical module;

[0076] The statistical module determines whether there is a traffic statistics library associated with the user identifier. When it is determined that there is no traffic statistics library associated with the user identifier, the traffic statistics library is created and the traffic after speed limit processing is stored in the traffic statistics library. The statistical module stores the traffic after speed limit processing in the traffic statistics library when it is determined that there is a traffic statistics library associated with the user identifier.

[0077] In this embodiment, the traffic control module may include a rate limiting module and a statistical module, wherein the rate limiting module may be a submodule for managing and controlling user traffic bandwidth usage, and the statistical module may be a submodule for recording and summarizing actual traffic usage of each user.

[0078] The speed limit module queries the speed limit information of the user to which the application belongs according to the user identifier in the preset identifier, and may include: the speed limit module obtains the information of the user identifier user_id and the flow priority flow_prority from the received preset identifier fw_mark, and queries the speed limit information associated with the user in the preset database according to the user identifier user_id.

[0079] Specifically, the speed limiting module extracts the first 30 bits of binary data from the received preset mark fw_mark as information of the user identifier user_id, and extracts the last 2 bits of binary data from fw_mark as information of the flow priority flow_prority.

[0080] Here, the preset database may refer to a speed limit policy database or speed limit configuration table stored in a cluster or in the cloud, and the speed limit information in the preset database may be pre-configured and support dynamic adjustment. The storage form of the speed limit information in the preset database may include but is not limited to: files, database tables, and distributed caches.

[0081] As an example, the speed limit information may include, but is not limited to: user identification, traffic upper limit, traffic priority, packet loss policy, speed limit adjustment policy, etc.

[0082] The rate limiting module performs rate limiting processing on the traffic containing the user identifier in the marked traffic based on the rate limiting information, and sends the traffic after the rate limiting processing to the statistical module, which may include:

[0083] The speed limit module compares and identifies the user identifier of each flow with a preset identifier in at least one of the acquired flows. When it is determined that the user identifier of the candidate flow is the same as the user identifier of the target flow, it is determined that the candidate flow belongs to the user corresponding to the target flow, and the speed limit information of the user of the target flow is used to perform speed limit processing on the candidate flow, and the speed-limited flow is sent to the statistical module.

[0084] Here, the traffic after the rate limit processing sent to the statistical module also includes the preset mark fw_mark.

[0085] The statistics module determines whether there is a traffic statistics library associated with the user identifier, and when it is determined that there is no traffic statistics library associated with the user identifier, creates a traffic statistics library, and stores the traffic after the speed limit processing in the traffic statistics library, which may include:

[0086] The statistics module obtains the traffic after the speed limit processing, and extracts the first 30 bits of binary data from the preset mark fw_mark of the traffic as the information of the user identifier user_id;

[0087] The statistics module determines whether there is a traffic statistics library associated with the user identifier user_id inside the module, and creates a traffic statistics library when it is determined that there is no traffic statistics library associated with the user identifier user_id.

[0088] Furthermore, when the statistics module determines that there is a traffic statistics library associated with the user identifier, the traffic after speed limit processing is stored in the traffic statistics library. It can include: the statistics module determines that there is a traffic statistics library associated with the user identifier user_id inside the module, and stores the traffic after speed limit processing in the traffic statistics library.

[0089] Storing the speed-limited traffic into the traffic statistics library may include: aggregating and counting traffic with the same first 30 fw_marks in at least one traffic, and accumulating the traffic into the traffic statistics library corresponding to the user identifier user_id.

[0090] In a possible implementation, the statistics module can synchronize the traffic statistics library with the cloud traffic statistics library of the central cloud based on a preset time interval.

[0091] Specifically, the statistics module periodically synchronizes the traffic data of at least one edge computing node in the traffic statistics library to the cloud traffic statistics library of the central cloud based on a preset time interval, so that the central cloud can analyze the user's traffic usage habits and optimize the bandwidth allocation strategy based on the traffic in the traffic statistics library.

[0092] In the user-granularity-based distributed traffic control method and traffic control system of the above-mentioned embodiments of the present disclosure, the speed limit module can query the corresponding speed limit information through the user's preset identifier, and perform speed limit processing on the traffic based on the speed limit information, ensuring that the traffic control can be accurately applied to specific users, avoiding different users of the same device or the same node from affecting each other's traffic usage, thereby improving the accuracy of traffic statistics in the cloud rendering scenario; the statistics module can establish and maintain a user-associated traffic statistics library based on the traffic information processed by the speed limit module, so that the traffic consumption of each user can be recorded, and each user has an independent traffic statistics library, thereby realizing user-granularity traffic control and result statistics; by processing speed limits and statistics at edge nodes and synchronizing data to the central cloud at intervals, frequent data communication volume is reduced, resource utilization is optimized, and the overall efficiency of the system is improved, while ensuring the real-time and accuracy of statistical data.

[0093] In a possible implementation of the above embodiment, the speed limit module queries the speed limit information of the user to which the application belongs according to the user identifier in the preset identifier, performs speed limit processing on the traffic containing the user identifier in the marked traffic based on the speed limit information, and sends the speed-limited traffic to the statistical module, including:

[0094] A speed limit module, which performs speed limit processing on the traffic containing the user identifier based on the speed limit information, so as to set the speed of the traffic to be less than the maximum speed represented by the speed limit information;

[0095] The speed limit module sets the packet loss strategy for the traffic according to the traffic priority, adopts the packet loss strategy to drop the data packets in the traffic that are greater than the maximum speed, and sends the traffic after the speed limit and packet loss processing to the statistics module.

[0096] In this embodiment, the speed limit module performs speed limit processing on the traffic containing the user identifier based on the speed limit information to set the speed of the traffic to be less than the maximum speed represented by the speed limit information, which may include: the speed limit module obtains the speed limit information of the user, and based on the maximum speed flow_limit represented in the speed limit information, uniformly limits the speed of at least one traffic corresponding to the user to the maximum speed flow_limit in the speed limit information.

[0097] Here, the maximum speed flow_limit may refer to the bandwidth upper limit of the traffic.

[0098] As an example, when the maximum speed flow_limit represented in the speed limiting device is 10 MBps, the speed limiting module limits the speed of each flow corresponding to the user to 10 MBps.

[0099] The speed limit module sets the packet loss strategy of the traffic according to the traffic priority, adopts the packet loss strategy to perform packet loss processing on the data packets in the traffic that are greater than the maximum speed, and sends the traffic after the speed limit processing and packet loss processing to the statistical module. It may include: the speed limit module obtains the last 2 bits of the preset identifier fw_mark as the traffic priority flow_prority, and determines the packet loss strategy corresponding to the traffic based on the traffic priority flow_prority;

[0100] The rate limit module uses a packet drop strategy to drop packets whose speed is greater than flow_limit.

[0101] The purpose of discarding packets and packet loss strategies is to solve the resource allocation problem after the traffic exceeds the limit, so as to ensure the system's refined management of user traffic. Discarding packets can mean that when the user's traffic exceeds the bandwidth upper limit flow_limit specified by the system, a part of the data packets generated by the user will be actively discarded to control the traffic; the packet loss strategy can be a control rule designed for different traffic priorities flow_prority.

[0102] Furthermore, when the rate limiting module performs packet discarding processing on the data packets, the flow priority of each data packet may be considered, and data packets with relatively low priorities may be discarded first to ensure that data packets with relatively high priorities pass through.

[0103] In the distributed traffic control method and traffic control system based on user granularity of the above-mentioned embodiments of the present disclosure, when the traffic exceeds the maximum speed, the system automatically adopts different packet loss strategies according to the traffic priority, ensuring that traffic with relatively higher priority passes first, making the system's bandwidth resource allocation more intelligent, and by sending the traffic after speed limit and packet loss processing to the statistical module, the system can continuously record and monitor the actual traffic situation of each user, realizing real-time control of traffic based on user granularity.

[0104] In a possible implementation of the above embodiment, the rate limiting module sets a packet loss strategy for traffic according to traffic priority, including:

[0105] The rate limiting module obtains a traffic priority in the marked traffic, where the traffic priority includes one of the following: a first priority, a second priority, or a third priority, wherein the third priority has a higher priority than the second priority, and the second priority has a higher priority than the first priority;

[0106] When there is traffic with the third priority, the third priority traffic is allowed to pass first;

[0107] When there is no traffic with the third priority, the traffic with the second priority is allowed to pass first;

[0108] When there is no traffic with the third priority and the second priority, traffic with the first priority is preferentially allowed to pass.

[0109] In this embodiment, the third priority may refer to the priority guarantee, the second priority may refer to the packet period priority, and the first priority may refer to the on-demand priority. The flow priority flow_prority of the priority guarantee may be 2, the flow priority flow_prority of the packet period priority may be 1, and the flow priority flow_prority of the on-demand priority may be 0.

[0110] As an example, the services corresponding to the priority level may include but are not limited to: video conferencing, real-time financial transactions, the services corresponding to the package cycle priority may include but are not limited to: video streaming, data backup, and the services corresponding to the on-demand priority may include but are not limited to: file downloading, video watching.

[0111] In one possible implementation, the packet loss strategy may include but is not limited to: when there is traffic with flow_prority=2, the traffic with flow_prority=2 is given priority to pass; when there is no traffic with flow_prority=2, the traffic with flow_protity=1 is given priority to pass; when there is no flow_protity=2 and flow_protity=1, the traffic with flow_protity=0 is allowed to pass.

[0112] As an example, the maximum speed flow_limit of user A is 100MBps, and the application of user A generates three types of traffic, including 30MBps priority guaranteed traffic, 40MBps packet period traffic and 50MBps on-demand traffic. Therefore, 20 (i.e., 30+40+50-100)MBps of traffic needs to be discarded. Among them, there is priority guaranteed traffic with flow_prority=2, so the 30MBps priority guaranteed traffic passes; among the remaining 40MBps packet period traffic and 50MBps on-demand traffic, there is no priority guaranteed traffic with flow_prority=2, so the 40MBps packet period traffic passes; among the remaining 50MBps on-demand traffic, there is no priority guaranteed traffic with flow_prority=2 and flow_prority=1 packet period traffic, so the 30MBps on-demand traffic passes and the 20MBps on-demand traffic is discarded.

[0113] In the user-granularity-based distributed traffic control method and traffic control system of the above-mentioned embodiments of the present disclosure, the scheduling strategy sorted by priority enables the traffic control module to more effectively perform speed limiting and packet loss processing, which not only ensures the timely transmission of high-priority traffic, but also avoids low-priority traffic from occupying too much bandwidth resources, thereby improving the efficiency of overall traffic management; by giving priority to the third-priority traffic, then the second-priority traffic, and finally the first-priority traffic, the speed limiting module can maximize the efficiency of bandwidth utilization and reduce the occupancy of the network by low-priority traffic.

[0114] In one embodiment, Figure 4 is a flow chart of another distributed flow control method based on user granularity provided by an embodiment of the present disclosure, which is applied to the above Figure 1a The flow control system shown in the figure may include the following steps:

[0115] Step S401, the traffic forwarding module obtains the address information of the proxy module from the service discovery module;

[0116] Here, the service discovery module uses multicast technology to enable the traffic forwarding module to discover the address information of the proxy module;

[0117] Step S402, the traffic forwarding module sends the user identification and traffic priority to the proxy module;

[0118] Here, the traffic forwarding module sends the user identification and traffic priority of the application to the proxy module based on the discovered address information;

[0119] Step S403, the proxy module generates a preset identifier according to the user identifier and the traffic priority, and sends the proxy port to the traffic forwarding module;

[0120] Here, the proxy module combines the user identification and the traffic priority, determines the device identification corresponding to the traffic, determines the corresponding proxy port based on the user identification and the traffic priority, and sends the proxy port to the traffic forwarding module;

[0121] Step S404, the proxy module sends a preset identifier to the speed limit module and the statistics module;

[0122] Here, the proxy module sends traffic carrying a preset identifier to the rate limit module and the statistics module;

[0123] Step S405, the speed limit module queries the speed limit information according to the user identifier in the preset identifier;

[0124] Step S406, the traffic forwarding module forwards the application traffic to the proxy port;

[0125] Here, the traffic forwarding module forwards the application traffic to the proxy module through the proxy port; further, step S403 and step S406 are executed in parallel;

[0126] Step S407, the speed limit module limits the flow rate according to the speed limit information;

[0127] Here, the speed limit module performs speed limit processing and packet loss processing on the traffic based on the speed limit information; further, step S407 and step S408 are executed serially;

[0128] Step S408, the statistics module counts the actual traffic generated by the user and reports it;

[0129] Here, the statistics module counts the actual traffic generated by users, stores it in the traffic statistics library, and regularly synchronizes it with the cloud traffic statistics library of the central cloud.

[0130] In one embodiment, a specific architecture diagram of a flow control system is provided, such as Figure 5 As shown, where:

[0131] The traffic forwarding module obtains the address information of the proxy module from the service discovery module. The traffic forwarding obtains the user ID and traffic priority of different applications respectively and sends them to the proxy module. The proxy module determines the proxy port based on the user ID and traffic priority so that the traffic forwarding module sends the user's application traffic to the proxy port. The proxy module marks the acquired traffic with a preset ID and sends the traffic with the preset ID to the speed limit module. The speed limit module uses different speed limit queues based on different preset IDs to limit the traffic speed and sends the speed-limited traffic to the statistics module. The statistics module uses different traffic statistics libraries based on different preset IDs to count the traffic information of different users. The statistics module also obtains the public network traffic of the Internet and the usage data of the public network traffic sent by the Internet. In addition, the statistics module regularly synchronizes the user's traffic statistics information with the central cloud.

[0132] In one embodiment, a flow control system 60 is provided, which corresponds one-to-one to the distributed flow control method based on user granularity in the above embodiment. Figure 6 As shown, the flow control system 60 includes a proxy module 601, a flow forwarding module 602 and a flow control module 603, wherein each functional module is described in detail as follows:

[0133] The proxy module 601 is used to receive the user identification and traffic priority corresponding to the application from the traffic forwarding module 602, determine the proxy port corresponding to the user identification and the traffic priority, and send the proxy port to the traffic forwarding module 602;

[0134] Traffic forwarding module 602, used to forward application traffic to proxy module 601 through a proxy port;

[0135] The proxy module 602 is used to determine a preset identifier based on the user identifier and the traffic priority, mark the traffic of the application with the preset identifier, and send the marked traffic to the traffic control module 603;

[0136] The traffic control module 603 is used to determine the speed limit information of the marked traffic according to the user identifier in the preset identifier, and perform speed limit processing and statistical processing on the marked traffic based on the speed limit information and the traffic priority in the preset identifier.

[0137] In one embodiment, the traffic control system 60 further includes: a service discovery module 604, wherein:

[0138] The service discovery module 604 is used to provide the address information of the proxy module to the traffic forwarding module 602 by using multicast technology;

[0139] The traffic forwarding module 602 is used to send the user identification and traffic priority corresponding to the application to the proxy module 601 based on the address information.

[0140] In one embodiment, the proxy module 601 is used to receive the user identifier and traffic priority corresponding to the application from the traffic forwarding module 602, combine the user identifier and the traffic priority, and determine a preset identifier; wherein the preset identifier uniquely corresponds to the proxy port;

[0141] The proxy module 601 is used to determine whether a proxy port corresponding to a preset identifier already exists, and when it is determined that a proxy port corresponding to the preset identifier already exists, send the proxy port to the traffic forwarding module 602;

[0142] The proxy module 601 is used to create a proxy port and set a firewall rule corresponding to the proxy port when it is determined that there is no proxy port corresponding to the preset identifier. The firewall rule is used to mark the traffic with the preset identifier when obtaining traffic from the proxy port.

[0143] In one embodiment, the flow control module 603 includes: a rate limit module 6031 and a statistics module 6032, wherein:

[0144] The speed limit module 6031 is used to query the speed limit information of the user to which the application belongs according to the user identifier in the preset identifier, perform speed limit processing on the traffic containing the user identifier in the marked traffic based on the speed limit information, and send the speed-limited traffic to the statistical module 6032;

[0145] The statistics module 6032 is used to determine whether there is a traffic statistics library associated with the user identifier. When it is determined that there is no traffic statistics library associated with the user identifier, the traffic statistics library is created and the traffic after the speed limit processing is stored in the traffic statistics library;

[0146] The statistics module 6032 is used to store the traffic after the rate limit processing into the traffic statistics library when it is determined that there is a traffic statistics library associated with the user identifier.

[0147] In one embodiment, the speed limit module 6031 is used to perform speed limit processing on the traffic containing the user identifier based on the speed limit information, so as to set the speed of the traffic to be less than the maximum speed represented by the speed limit information;

[0148] The speed limit module 6031 is used to set the packet loss strategy of the traffic according to the traffic priority, adopt the packet loss strategy to drop the data packets in the traffic that are greater than the maximum speed, and send the traffic after speed limit processing and packet loss processing to the statistical module 6032.

[0149] In one embodiment, the rate limiting module 6031 is used to obtain the traffic priority in the marked traffic, where the traffic priority includes one of the following: a first priority, a second priority, or a third priority, wherein the third priority has a higher priority than the second priority, and the second priority has a higher priority than the first priority;

[0150] The rate limiting module 6031 is used for, when it is determined that there is traffic with a third priority, giving priority to the traffic with the third priority to pass;

[0151] The rate limiting module 6031 is used for giving priority to the traffic of the second priority when it is determined that there is no traffic of the third priority;

[0152] The rate limiting module 6031 is used to give priority to the traffic of the first priority when it is determined that there is no traffic with the third priority and the second priority.

[0153] It should be noted that: the flow control system provided in the above embodiment only uses the division of the above program modules as an example to illustrate when implementing the corresponding distributed flow control method based on user granularity. In actual applications, the above processing can be assigned to different program modules as needed, that is, the internal structure of the above system can be divided into different program modules to complete all or part of the above-described processing. Figure 1b The embodiments of the method shown belong to the same concept, and the specific implementation process is detailed in the method embodiments, which will not be repeated here.

[0154] The present disclosure also provides a computer device having the above Figure 6 Flow control system shown.

[0155] See 7, Figure 7 is a schematic diagram of the structure of another flow control system provided by an embodiment of the present disclosure, such as Figure 7 As shown, the computer device includes: one or more processors 10, a memory 20, and interfaces for connecting various components, including high-speed interfaces and low-speed interfaces. Various components are connected to each other using different buses for communication, and can be installed on a common mainboard or installed in other ways as needed. The processor can process the instructions executed in the computer device, including instructions stored in or on the memory to display the graphical information of the GUI on an external input / output device (such as, a display device coupled to the interface). In some optional embodiments, if necessary, multiple processors and / or multiple buses can be used together with multiple memories and multiple memories. Similarly, multiple computer devices can be connected, and each device provides some necessary operations (for example, as a server array, a group of blade servers, or a multi-processor system). Figure 7 A processor 10 is taken as an example.

[0156] The processor 10 may be a central processing unit, a network processor or a combination thereof. The processor 10 may further include a hardware chip. The hardware chip may be a dedicated integrated circuit, a programmable logic device or a combination thereof. The programmable logic device may be a complex programmable logic device, a field programmable gate array, a general purpose array logic or any combination thereof.

[0157] The memory 20 stores instructions executable by at least one processor 10, so that the at least one processor 10 executes the method shown in the above embodiment.

[0158] The memory 20 may include a program storage area and a data storage area, wherein the program storage area may store an operating system, an application required for at least one function; the data storage area may store data created according to the use of the computer device, etc. In addition, the memory 20 may include a high-speed random access memory, and may also include a non-transient memory, such as at least one disk storage device, a flash memory device, or other non-transient solid-state storage device. In some optional embodiments, the memory 20 may optionally include a memory remotely arranged relative to the processor 10, and these remote memories may be connected to the computer device via a network. Examples of the above-mentioned network include, but are not limited to, the Internet, an intranet, a local area network, a mobile communication network, and combinations thereof.

[0159] The memory 20 may include a volatile memory, such as a random access memory; the memory may also include a non-volatile memory, such as a flash memory, a hard disk or a solid state drive; the memory 20 may also include a combination of the above types of memory.

[0160] The computer device also includes an input device 30 and an output device 40. The processor 10, the memory 20, the input device 30 and the output device 40 may be connected via a bus or other means. Figure 7 The example of connecting through bus is taken in the following.

[0161] The input device 30 can receive input digital or character information, and generate key signal input related to the user settings and function control of the computer device, such as a touch screen, a keypad, a mouse, a track pad, a touch pad, an indicator bar, one or more mouse buttons, a trackball, a joystick, etc. The output device 40 may include a display device, an auxiliary lighting device (e.g., an LED) and a tactile feedback device (e.g., a vibration motor), etc. The above-mentioned display device includes but is not limited to a liquid crystal display, a light emitting diode, a display and a plasma display. In some optional embodiments, the display device can be a touch screen.

[0162] The computer device further comprises a communication interface 30 for the computer device to communicate with other devices or a communication network.

[0163] The embodiments of the present disclosure also provide a computer-readable storage medium. The above-mentioned method according to the embodiments of the present disclosure can be implemented in hardware, firmware, or can be implemented as a computer code that can be recorded in a storage medium, or can be implemented as a computer code that is originally stored in a remote storage medium or a non-temporary machine-readable storage medium and will be stored in a local storage medium and downloaded through a network, so that the method described herein can be stored in such software processing on a storage medium using a general-purpose computer, a dedicated processor, or programmable or dedicated hardware. Among them, the storage medium can be a magnetic disk, an optical disk, a read-only storage memory, a random access memory, a flash memory, a hard disk or a solid-state drive, etc.; further, the storage medium can also include a combination of the above-mentioned types of memory. It can be understood that a computer, a processor, a microprocessor controller, or programmable hardware includes a storage component that can store or receive software or computer code. When the software or computer code is accessed and executed by a computer, a processor, or hardware, the method shown in the above embodiment is implemented.

[0164] A part of the present disclosure may be applied as a computer program product, such as a computer program instruction, which, when executed by a computer, can call or provide the method and / or technical solution according to the present disclosure through the operation of the computer. Those skilled in the art should understand that the existence of computer program instructions in computer-readable media includes, but is not limited to, source files, executable files, installation package files, etc., and accordingly, the way in which computer program instructions are executed by a computer includes, but is not limited to: the computer directly executes the instruction, or the computer compiles the instruction and then executes the corresponding compiled program, or the computer reads and executes the instruction, or the computer reads and installs the instruction and then executes the corresponding installed program. Here, the computer-readable medium can be any available computer-readable storage medium or communication medium accessible to the computer.

[0165] Although the embodiments of the present disclosure have been described in conjunction with the accompanying drawings, those skilled in the art may make various modifications and variations without departing from the spirit and scope of the present disclosure, and such modifications and variations are all within the scope defined by the appended claims.

Claims

1. A distributed flow control method based on user granularity, characterized in that: Applied to a flow control system, the flow control system includes: a proxy module, a flow forwarding module and a flow control module, the method includes: The proxy module receives a user identifier and a traffic priority corresponding to an application from the traffic forwarding module, determines a proxy port corresponding to the user identifier and the traffic priority, and sends the proxy port to the traffic forwarding module; The traffic forwarding module forwards the traffic of the application to the proxy module through the proxy port; The proxy module determines a preset identifier based on the user identifier and the traffic priority, marks the traffic of the application with the preset identifier, and sends the marked traffic to the traffic control module; The traffic control module determines the speed limit information of the marked traffic according to the user identifier in the preset identifier, and performs speed limit processing and statistical processing on the marked traffic based on the speed limit information and the traffic priority in the preset identifier.

2. The method according to claim 1, characterized in that The traffic control system further includes: a service discovery module; and the method further includes: The service discovery module uses multicast technology to provide the address information of the proxy module to the traffic forwarding module; The traffic forwarding module sends the user identification and traffic priority corresponding to the application to the proxy module based on the address information.

3. The method according to claim 2, characterized in that The proxy module determines a preset identifier based on the user identifier and the traffic priority, marks the traffic of the application with the preset identifier, and sends the marked traffic to the traffic control module, including: The proxy module receives a user identifier and a traffic priority corresponding to the application from the traffic forwarding module, combines the user identifier and the traffic priority, and determines the preset identifier; wherein the preset identifier uniquely corresponds to the proxy port; The proxy module determines whether the proxy port corresponding to the preset identifier already exists, and when it is determined that the proxy port corresponding to the preset identifier already exists, sends the proxy port to the traffic forwarding module; when it is determined that the proxy port corresponding to the preset identifier does not exist, the proxy module creates the proxy port and sets the firewall rules corresponding to the proxy port, and when the firewall rules are used to obtain traffic from the proxy port, the traffic is marked with the preset identifier.

4. The method according to claim 3, characterized in that The flow control module includes: a rate limit module and a statistics module; and The traffic control module determines the speed limit information of the marked traffic according to the user identifier in the preset identifier, and performs speed limit processing and statistical processing on the marked traffic based on the speed limit information and the traffic priority in the preset identifier, including: The speed limit module queries the speed limit information of the user to which the application belongs according to the user identifier in the preset identifier, performs speed limit processing on the traffic containing the user identifier in the marked traffic based on the speed limit information, and sends the speed-limited traffic to the statistical module; The statistical module determines whether there is a traffic statistics library associated with the user identifier. When it is determined that there is no traffic statistics library associated with the user identifier, the statistical module creates the traffic statistics library and stores the traffic after the speed limit processing in the traffic statistics library. When it is determined that there is a traffic statistics library associated with the user identifier, the statistical module stores the traffic after the speed limit processing in the traffic statistics library.

5. The method according to claim 4, characterized in that The speed limit module queries the speed limit information of the user to which the application belongs according to the user identifier in the preset identifier, performs speed limit processing on the traffic containing the user identifier in the marked traffic based on the speed limit information, and sends the speed-limited traffic to the statistical module, including: The speed limit module performs speed limit processing on the traffic containing the user identifier based on the speed limit information, so as to set the speed of the traffic to be less than the maximum speed represented by the speed limit information; The speed limiting module sets a packet loss strategy for the traffic according to the traffic priority, adopts the packet loss strategy to perform packet loss processing on data packets in the traffic that are greater than the maximum speed, and sends the traffic after the speed limiting processing and the packet loss processing to the statistical module.

6. The method according to claim 5, characterized in that The rate limiting module sets a packet loss strategy for the traffic according to the traffic priority, including: The rate limiting module obtains a traffic priority in the marked traffic, where the traffic priority includes one of the following: a first priority, a second priority, or a third priority, wherein the third priority has a higher priority than the second priority, and the second priority has a higher priority than the first priority; The rate limiting module, when determining that there is traffic with the third priority as the traffic priority, preferentially allows the traffic with the third priority to pass; The rate limiting module, when determining that there is no traffic with the third priority, preferentially allows the traffic with the second priority to pass; When it is determined that there is no traffic with the third priority and the second priority, the rate limiting module preferentially allows the traffic with the first priority to pass.

7. A flow control system, characterized in that: The flow control system includes a proxy module, a flow forwarding module and a flow control module, wherein: The proxy module is used to receive a user identifier and a traffic priority corresponding to an application from the traffic forwarding module, determine a proxy port corresponding to the user identifier and the traffic priority, and send the proxy port to the traffic forwarding module; The traffic forwarding module is used to forward the traffic of the application to the proxy module through the proxy port; The proxy module is used to determine a preset identifier based on the user identifier and the traffic priority, mark the traffic of the application with the preset identifier, and send the marked traffic to the traffic control module; The traffic control module is used to determine the speed limit information of the marked traffic according to the user identifier in the preset identifier, and perform speed limit processing and statistical processing on the marked traffic based on the speed limit information and the traffic priority in the preset identifier.

8. The system according to claim 7, characterized in that The traffic control system further includes: a service discovery module; and The service discovery module is used to provide the address information of the proxy module to the traffic forwarding module by adopting the multicast technology; The traffic forwarding module is used to send the user identification and traffic priority corresponding to the application to the proxy module based on the address information.

9. A computer-readable storage medium, characterized in that: The computer-readable storage medium stores computer instructions, and the computer instructions are used to enable a computer to execute the user-granularity-based distributed traffic control method described in claims 1-6.

10. A computer program product, characterized in that The method comprises computer instructions, wherein the computer instructions are used to cause a computer to execute the distributed traffic control method based on user granularity according to any one of claims 1 to 6.

Citation Information

Patent Citations

  • Multicast traffic forwarding method and device, and server

    CN108881069A

  • TSN network medium system for realizing precise flow control

    CN118474039A

  • Dynamic traffic throttling

    US20230155940A1

  • Systems and methods for using a packet processing pipeline circuit to extend the capabilities of rate limiter circuits

    US20240163230A1