A user-granular distributed flow control method and flow control system

By introducing proxy modules, traffic forwarding modules, and traffic control modules into cloud rendering and edge computing scenarios, and generating preset identifiers using user identifiers and traffic priorities, the problems of traffic statistics distortion and rate limiting in cloud rendering scenarios are solved, and precise traffic management and efficient rate limiting at the user level are achieved.

CN119728595BActive Publication Date: 2025-10-31CHINA TELECOM CLOUD TECH CO LTD
View PDF 2 Cites 0 Cited by

Patent Information

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

AI Technical Summary

Technical Problem

In cloud rendering and edge computing scenarios, existing technologies struggle to accurately count network traffic generated by rendering applications for different users and to limit rates at the user level, resulting in distorted statistical results and difficulty in meeting the traffic priority requirements of different users.

Method used

By introducing a proxy module, a traffic forwarding module, and a traffic control module into the traffic control system, preset identifiers are generated using user identifiers and traffic priorities to mark application traffic, and precise rate limiting and statistical processing are performed based on rate limiting information.

Benefits of technology

It achieves precise traffic management at the user level, ensures timely transmission of high-priority traffic, reduces system module coupling, and improves the accuracy of traffic management and the scalability of the system.

✦ Generated by Eureka AI based on patent content.

Smart Images

  • Figure CN119728595B_ABST
    Figure CN119728595B_ABST
Patent Text Reader

Abstract

This disclosure relates to the field of cloud computing technology and discloses a user-granular distributed traffic control method and traffic control system. The method includes: a proxy module that determines a proxy port corresponding to a user identifier and traffic priority, and sends the proxy port to a traffic forwarding module; a traffic forwarding module that forwards application traffic to the proxy module based on the proxy port; a proxy module that determines a preset identifier based on the user identifier and traffic priority, and uses the preset identifier to mark the application traffic; and a traffic control module that determines the rate limiting information of the marked traffic according to the user identifier in the preset identifier, and performs rate limiting and statistical processing on the marked traffic. In the method provided by the embodiments of this disclosure, the proxy module is a preset identifier corresponding to the user marking traffic, and the traffic processing module performs different rate limiting and statistical processing on the traffic based on the preset identifier of different users. This allows for rate limiting and statistical processing of traffic at the user granularity, improving the accuracy of traffic control.
Need to check novelty before this filing date? Find Prior Art

Description

Technical Field

[0001] This disclosure relates to the field of cloud computing technology, specifically to a user-granular distributed traffic control method and a traffic control system. Background Technology

[0002] With the development of edge computing and cloud rendering technologies, cloud computing architectures are 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 across cluster nodes and consume resources such as central processing units (CPUs), graphics processing units (GPUs), and network traffic, achieving accurate user-level traffic statistics and rate limiting has become a challenge.

[0003] In related technologies, methods typically rely on machine or outbound traffic statistics, but these methods struggle to differentiate the actual traffic consumption of different users, leading to distorted statistical results and difficulty in meeting user-granular rate limiting requirements. Therefore, in cloud rendering and edge computing scenarios, achieving accurate statistics on network traffic generated by user rendering applications in cloud rendering services and implementing user-granular rate limiting becomes a problem that needs to be solved. Summary of the Invention

[0004] In view of this, this disclosure provides a user-granular distributed traffic control method and traffic control system to solve the problem of how to accurately count the network traffic generated by user rendering applications in cloud rendering services and limit the rate according to user granularity in cloud rendering and edge computing scenarios.

[0005] This disclosure provides a user-granular distributed traffic control method 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 receiving a user identifier and traffic priority corresponding to the application from the traffic forwarding module, determining the proxy port corresponding to the user identifier and traffic priority, and sending the proxy port to the traffic forwarding module; the traffic forwarding module forwarding the application's traffic to the proxy module through the proxy port; the proxy module determining a preset identifier based on the user identifier and traffic priority, marking the application's traffic with the preset identifier, and sending the marked traffic to the traffic control module; and the traffic control module determining the rate limiting information of the marked traffic based on the user identifier in the preset identifier, and performing rate limiting and statistical processing on the marked traffic based on the rate limiting information and the traffic priority in the preset identifier.

[0006] This disclosure also provides a traffic control system, which includes a proxy module, a traffic forwarding module, and a traffic control module. The proxy module receives a user identifier and traffic priority corresponding to the application from the traffic forwarding module, determines the proxy port corresponding to the user identifier and traffic priority, and sends the proxy port to the traffic forwarding module. The traffic forwarding module forwards the application's traffic to the proxy module through the proxy port. The proxy module determines a preset identifier based on the user identifier and traffic priority, marks the application's traffic with the preset identifier, and sends the marked traffic to the traffic control module. The traffic control module determines the rate limiting information of the marked traffic based on the user identifier in the preset identifier, and performs rate limiting and statistical processing on the marked traffic based on the rate limiting information and the traffic priority in the preset identifier.

[0007] In another aspect, this disclosure provides a computer-readable storage medium storing computer instructions for causing a computer to implement the aforementioned user-granular distributed flow control method.

[0008] This disclosure also provides a computer program product, including computer instructions for causing a computer to execute the user-granular distributed flow control method described above.

[0009] The user-granular distributed traffic control method and traffic control system disclosed above, by assigning preset identifiers with user identifiers and traffic priorities to user application traffic in the proxy module, enables the traffic control module to distinguish the traffic of different users from a global perspective, thereby achieving user-granular rate limiting management. When user traffic reaches the rate limiting threshold, precise packet loss processing is performed according to traffic priority to ensure that high-priority traffic demands are met. This is more refined than traditional machine-level or egress-level rate limiting, avoids distortion of traffic statistics, and improves the accuracy of traffic management.

[0010] Furthermore, the user-granular distributed traffic control method and traffic control system disclosed in the above embodiments also forward 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. This can effectively reduce the coupling between the various modules of the system and improve the scalability and flexibility of the system. Attached Figure Description

[0011] To more clearly illustrate the technical solutions in the specific embodiments or related technologies of this disclosure, the accompanying drawings used in the description of the specific embodiments or related technologies will be briefly introduced below. Obviously, the accompanying drawings described below are some embodiments of this disclosure. For those skilled in the art, other drawings can be obtained based on these drawings without creative effort.

[0012] Figure 1a An exemplary schematic diagram of the architecture of a flow control system to which a user-granular distributed flow control method is applied, according to an embodiment of the present disclosure, is shown.

[0013] Figure 1b This is a flowchart illustrating a user-granular distributed flow control method provided in an embodiment of this disclosure;

[0014] Figure 2 An exemplary schematic diagram is shown of the architecture of another flow control system to which a user-granular distributed flow control method according to an embodiment of the present disclosure is applied;

[0015] Figure 3 This is a schematic diagram of a preset identifier for a user-granular distributed flow control method provided in an embodiment of this disclosure;

[0016] Figure 4 This is a flowchart illustrating another user-granular distributed flow control method provided in this disclosure embodiment;

[0017] Figure 5 A detailed architecture diagram of a traffic control system to which a user-granular distributed traffic control method is applied, according to an embodiment of this disclosure, is shown.

[0018] Figure 6 This is a schematic diagram of another flow control system provided in an embodiment of this disclosure;

[0019] Figure 7 This is a schematic diagram of another flow control system provided in this embodiment. Detailed Implementation

[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 allows for more flexible and efficient scheduling of computing resources, providing users with convenient services without needing to concern themselves with the details of underlying resources. However, while this flexibility and abstract resource management bring convenience, it also raises new challenges, particularly in the areas of resource consumption, traffic control, and the finer-grained management of users.

[0021] In typical cloud rendering scenarios, user rendering applications rely on cloud computing resources to process graphics and video content, often using significant amounts of CPU and GPU computing power, as well as network bandwidth for data transmission, real-time rendering, and streaming media delivery. In this environment, different users' rendering applications are randomly distributed across different machines within the cluster, dynamically scheduled based on computing power and resource requirements. However, this distribution makes accurate traffic statistics and control per user difficult. In this multi-tenant, multi-application cloud rendering scenario, different users' rendering applications not only generate traffic required for their own business but also involve video traffic output by the rendering service and operation and scheduling traffic from the cloud rendering system. The presence of these various types of traffic increases the difficulty of accurate traffic statistics.

[0022] In related technologies, reliance is typically placed on machine or outbound traffic statistics, but these technologies often suffer from the following problems:

[0023] 1. Related technologies typically use machine or outbound traffic statistics, which makes it difficult to distinguish and identify the traffic generated by different users or applications. This results in statistical data that cannot reflect the actual traffic consumption of each user, leading to distorted statistical results.

[0024] 2. The rate limiting mechanisms of related technologies are mostly implemented at the machine level or outbound traffic level, making it difficult to manage rate limiting independently for each user's traffic. In cloud rendering scenarios, different users may require different traffic priorities and rate limiting strategies, such as on-demand traffic, periodic traffic, or priority guaranteed traffic. It is impossible to perform fine-grained rate limiting on user-level traffic, which can easily lead to high-priority traffic demands being affected by low-priority traffic, impacting user experience.

[0025] To address the aforementioned issues, various embodiments of this disclosure provide a user-granular distributed traffic control method 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 receiving a user identifier and traffic priority corresponding to an application from the traffic forwarding module, determining a proxy port corresponding to the user identifier and traffic priority, and sending the proxy port to the traffic forwarding module; the traffic forwarding module forwarding the application's traffic to the proxy module through the proxy port; the proxy module determining a preset identifier based on the user identifier and traffic priority, marking the application's traffic with the preset identifier, and sending the marked traffic to the traffic control module; and the traffic control module determining rate-limiting information for the marked traffic based on the user identifier in the preset identifier, and performing rate-limiting and statistical processing on the marked traffic based on the rate-limiting information and the traffic priority in the preset identifier.

[0026] To make the objectives, technical solutions, and advantages of the embodiments of this disclosure clearer, the technical solutions of the embodiments of this disclosure will be clearly and completely described below with reference to the accompanying drawings. Obviously, the described embodiments are only some embodiments of this disclosure, and not all embodiments. Based on the embodiments of this disclosure, all other embodiments obtained by those skilled in the art without creative effort are within the scope of protection of this disclosure.

[0027] Please refer to Figure 1a , Figure 1a This diagram illustrates an exemplary schematic of the architecture of a traffic control system to which a user-granular distributed traffic control method, according to an embodiment of this disclosure, is applied. Figure 1a As shown, the traffic control system may include: a proxy module, a traffic forwarding module, and a traffic control module.

[0028] like Figure 1a As shown, the flow control system is deployed in a cluster. A flow control system can refer to a system in a cluster environment that achieves flow management and control through the collaborative work of multiple modules; it is a combination of at least one module in the cluster.

[0029] Here, a cluster can refer to a collection of interconnected and collaborative computers or nodes that work together via a network to process tasks. The nodes in a cluster can be distributed across different physical or logical locations, forming a distributed architecture.

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

[0031] Furthermore, the system includes at least one traffic forwarding module, and each traffic forwarding module can be set up inside a different machine in the cluster, with each traffic forwarding module corresponding one-to-one with a machine. Here, a machine can refer to a computer or a node, and each machine can include at least one application.

[0032] Here, the applications included in the machine can refer to rendering applications, that is, application instances that perform specific rendering tasks; each rendering application can correspond to a user, and the rendering application can belong to a specific tenant and perform the tenant's exclusive rendering tasks.

[0033] Further reference Figure 1b , Figure 1b This is a flowchart illustrating a user-granular distributed flow control method provided in this disclosure, applied to the above-mentioned... Figure 1a The flow control system shown herein may include the following steps:

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

[0035] In this embodiment, the user identifier can be a numerical value or string used to uniquely identify each user, and each application can be associated with the corresponding user through the user identifier. Traffic priority can be used to define the priority level of an application in the traffic control policy; traffic priority can be represented by a numerical value, with higher values ​​indicating higher priority.

[0036] As an example, traffic priority can include, but is not limited to: priority guarantee, subscription period priority, or on-demand priority; among which, priority guarantee priority can be the highest priority traffic priority, which will be guaranteed first when traffic is throttled; subscription period priority can be the second priority traffic priority, which can be the priority of users with fixed-period billing; and on-demand priority can be the third priority traffic priority, which can refer to the priority of users who pay on demand.

[0037] A proxy port can be a logical port in a network system used to mark, forward, and manage traffic for a specific application. In a traffic control system, each proxy port corresponds to a specific user identifier and traffic priority combination, and can be used to receive traffic from that user.

[0038] As an example, if there are on-demand traffic for user 1, periodic traffic for user 1, and priority guaranteed traffic for 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] In step S102, the traffic forwarding module forwards the application's traffic to the proxy module through the proxy port.

[0040] In this embodiment, the function of the traffic forwarding module can be to utilize the operating system's traffic hijacking capability to forward the traffic of a specific user's application to the proxy port of the proxy module. Here, traffic hijacking capability can 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 operating system's traffic hijacking capabilities to reroute traffic originally sent to the first module to the proxy port of the proxy module.

[0042] Further, please refer to Figure 2, Figure 2 An exemplary schematic diagram illustrates the architecture of another flow control system to which a user-granular distributed flow control method, according to an embodiment of this disclosure, is applied. Figure 2 As shown, the flow control system may also include a service discovery module.

[0043] A service discovery module is a module used in a distributed system to dynamically discover and manage available services in the network. Its function is to help different components or modules in the system automatically find each other without having to pre-configure fixed service locations or addresses.

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

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

[0046] Furthermore, the traffic forwarding module can send the 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 identifier and traffic priority from the application process, and send a request containing the user identifier and traffic priority to the proxy module using the address information, while waiting to receive the proxy port determined by the proxy module based on the user identifier and traffic priority.

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

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

[0050] In step S103, the proxy module determines a preset identifier based on the user identifier and traffic priority, marks the application's traffic 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 correspond to the user to which the application belongs. That is, the preset identifier can be used to mark the specific traffic of the user and the user's application.

[0052] Traffic marked with a preset identifier can include: after receiving traffic from the traffic forwarding module, the proxy module adds a generated preset identifier to the traffic data packets. This preset identifier contains user identification and traffic priority information; the marked traffic can be identified as belonging to a specific user and having a specific priority within the system.

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

[0054] Step S104: The flow control module determines the rate limit information of the marked flow based on the user identifier in the preset identifier, and performs rate limit processing and statistical processing on the marked flow based on the rate limit information and the flow priority in the preset identifier.

[0055] In this embodiment, the flow control module determines the rate limit information of the marked flow based on the user identifier in the preset identifier. This may include: the flow control module acquiring the marked flow, determining the user identifier of the application of the flow based on the preset identifier contained in the marked flow, and querying the rate limit information corresponding to the user based on the user identifier.

[0056] Here, the rate limit information can refer to the maximum bandwidth allocated by the system to each user. For example, user A's rate limit information could be 10 megabits per second (Mbps).

[0057] In one possible implementation, the flow control module performs rate limiting and statistical processing on the marked flow based on the rate limiting information and the flow priority in the preset identifier, which may include:

[0058] The traffic control module limits the traffic flow when it determines that the traffic has reached the user's rate limit information, thereby restricting the user's traffic rate. When it determines that the traffic flow exceeds the user's rate limit information, it drops packets according to priority, discarding low-priority data packets to ensure that the overall traffic meets the user's rate limit standards.

[0059] The traffic control module records the traffic after it has been rate-limited, and classifies and statistically analyzes the traffic based on the user identifier.

[0060] In the user-granular distributed traffic control method and traffic control system of the above embodiments of this disclosure, by marking user application traffic with preset identifiers containing user identifiers and traffic priorities in the proxy module, the traffic control module can distinguish the traffic of different users from a global perspective, realizing rate limiting management at the user level. When user traffic reaches the rate limiting threshold, precise packet loss processing is performed according to traffic priority to ensure that high-priority traffic demands are met. This is more refined than traditional machine-level or egress-level rate limiting, avoids distortion of traffic statistics, and improves the accuracy of traffic management. By forwarding user application traffic to the proxy module through the traffic forwarding module, and marking it in the proxy module before passing it to the traffic control module, the coupling between various modules of the system can be effectively reduced, improving the scalability and flexibility of the system.

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

[0062] The proxy module receives the user identifier and traffic priority corresponding to the application from the traffic forwarding module, combines the user identifier and traffic priority to determine the preset identifier; the preset identifier uniquely corresponds to the proxy port.

[0063] The proxy module determines whether a proxy port corresponding to a preset identifier already exists. If a proxy port corresponding to a preset identifier already exists, it sends the proxy port to the traffic forwarding module. If the proxy module determines that a proxy port corresponding to a preset identifier does not exist, it creates the proxy port and sets the firewall rules corresponding to the proxy port. When the firewall rules obtain traffic from the proxy port, they use the preset identifier to mark the traffic.

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

[0065] As an example, the preset identifier fw_mark, composed of user identifier user_id and flow priority, can take the form of: Figure 3 As shown. The preset identifier fw_mark can be a 32-bit binary data, where the first 30 bits represent the user identifier (user_id) and the last 2 bits represent the traffic priority (flow_prority).

[0066] The last two bits of the flow_prority data used to represent the traffic priority can be 00, 01, or 10. 2 (i.e., 10) can represent guaranteed priority, 1 (i.e., 01) can represent periodic priority, and 0 (i.e., 00) can represent on-demand priority.

[0067] The proxy module determines whether a proxy port corresponding to a pre-created identifier fw_mark already exists within the module. If a proxy port corresponding to fw_mark already exists within the module, it directly sends the proxy port corresponding to fw_mark to the traffic forwarding module. If a proxy port corresponding to fw_mark does not exist within the module, it creates a proxy port corresponding to fw_mark based on the user identifier user_id and traffic priority flow_prority in fw_mark, and then sends the proxy port corresponding to fw_mark to the traffic forwarding module.

[0068] Furthermore, when creating the proxy port corresponding to fw_mark, firewall rules are set for the proxy port. The firewall rules are used to mark traffic entering from the proxy port using fw_mark.

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

[0070] After creating the proxy port corresponding to fw_mark, the user identifier user_id and traffic priority flow_prority in fw_mark are passed to the rate limiting module and the statistics module.

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

[0072] In the user-granular distributed traffic control method and traffic control system of the above embodiments of this disclosure, the proxy module generates a unique preset identifier by using user identifier and traffic priority to ensure that each user's application traffic has a unique identifier, which can not only mark the user source, but also contain traffic priority information, thereby ensuring fine-grained management of traffic at the user level; each proxy port corresponds to a preset identifier, and this one-to-one correspondence ensures accurate classification and marking of proxy port traffic, reduces errors, and avoids confusion of multi-user traffic; the proxy module only creates new proxy ports when needed, and directly uses the proxy port corresponding to the preset identifier when one already exists, thereby avoiding the creation of duplicate ports and saving system resources.

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

[0074] The flow control module determines the rate limiting information for the marked traffic based on the user identifier in the preset identifier. Based on the rate limiting information and the traffic priority in the preset identifier, it performs rate limiting and statistical processing on the marked traffic, including:

[0075] The rate limiting module queries the rate limiting information of the user to which the application belongs based on the user identifier in the preset identifier. Based on the rate limiting information, it performs rate limiting on the traffic containing the user identifier after marking and sends the rate-limited traffic to the statistics module.

[0076] The statistics module determines whether a traffic statistics database associated with a user identifier exists. If no such database exists, it creates a traffic statistics database and stores the traffic after rate limiting. If a traffic statistics database associated with a user identifier already exists, the module stores the traffic after rate limiting in the traffic statistics database.

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

[0078] The rate limiting module queries the rate limiting information of the user to which the application belongs based on the user identifier in the preset identifier fw_mark. It may include: the rate limiting module obtains the user identifier user_id and traffic priority flow_prority information from the received preset identifier fw_mark, and queries the preset database for the rate limiting information associated with the user based on the user identifier user_id.

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

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

[0081] As an example, rate limiting information may include, but is not limited to: user ID, traffic limit, traffic priority, packet loss policy, and rate limiting adjustment policy.

[0082] The rate limiting module, based on rate limiting information, applies rate limiting to traffic containing user identifiers after marking, and sends the rate-limited traffic to the statistics module. This may include:

[0083] The rate limiting module compares and identifies the user identifier of each preset identifier in at least one acquired traffic. When it is determined that the user identifier of the candidate traffic is the same as the user identifier of the target traffic, it determines that the candidate traffic belongs to the user corresponding to the target traffic. The rate limiting information of the user of the target traffic is used to rate limit the candidate traffic, and the rate-limited traffic is sent to the statistics module.

[0084] Here, the traffic after rate limiting sent to the statistics module also includes the preset identifier fw_mark.

[0085] The statistics module determines whether a traffic statistics database associated with a user identifier exists. If no such database exists, it creates one and stores the traffic after rate limiting in the database. This database may include:

[0086] The statistics module obtains the traffic after rate limiting and extracts the first 30 bits of binary data from the preset identifier fw_mark of the traffic as the user identifier user_id information;

[0087] The statistics module determines whether a traffic statistics database associated with the user identifier (user_id) exists within the module. If no traffic statistics database associated with the user identifier (user_id) exists, the traffic statistics database is created.

[0088] Furthermore, the statistics module, when it is determined that a traffic statistics database associated with the user identifier already exists, stores the traffic after rate limiting into the traffic statistics database. This may include: the statistics module, upon determining that a traffic statistics database associated with the user identifier user_id exists within the module, stores the traffic after rate limiting into the traffic statistics database.

[0089] The process of storing the traffic after rate limiting into the traffic statistics database may include: aggregating and statistically analyzing the top 30 traffic entries with the same fw_mark from at least one traffic entry, and accumulating them into the traffic statistics database corresponding to the user identifier user_id.

[0090] In one possible implementation, the statistics module can synchronize the traffic statistics database with the cloud-based traffic statistics database 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 database to the cloud traffic statistics database of the central cloud based on a preset time interval, so that the central cloud can analyze users' traffic usage habits and optimize bandwidth allocation strategies based on the traffic data in the traffic statistics database.

[0092] In the user-granular distributed traffic control method and traffic control system of the above embodiments of this disclosure, the rate limiting module can query the corresponding rate limiting information through the user's preset identifier, and perform rate limiting processing on the traffic based on the rate limiting information, ensuring that traffic control can be accurately applied to specific users, avoiding mutual interference of traffic usage by different users on the same device or the same node, thereby improving the accuracy of traffic statistics in cloud rendering scenarios; the statistics module can establish and maintain a traffic statistics database associated with users based on the traffic information processed by the rate limiting module, so that the traffic consumption of each user can be recorded, and each user has an independent traffic statistics database, thereby realizing user-granular traffic control and result statistics; by processing rate limiting and statistics at the edge node and synchronizing the data to the central cloud intermittently, the amount of frequent data communication is reduced, resource utilization is optimized, the overall efficiency of the system is improved, and the real-time and accuracy of statistical data are guaranteed.

[0093] In one possible implementation of the above embodiments, the rate limiting module queries the rate limiting information of the user to which the application belongs based on the user identifier in the preset identifier, performs rate limiting processing on the traffic containing the user identifier in the marked traffic based on the rate limiting information, and sends the rate-limited traffic to the statistics module, including:

[0094] The rate limiting module limits the traffic containing user identifiers based on rate limiting information, so as to set the traffic speed to be less than the maximum speed represented by the rate limiting information.

[0095] The rate limiting module sets a packet loss policy based on traffic priority. It uses the packet loss policy to drop packets in the traffic that exceed the maximum speed and sends the rate-limited and packet-loss-reduced traffic to the statistics module.

[0096] In this embodiment, the rate limiting module performs rate limiting processing on traffic containing user identifiers based on rate limiting information, so as to set the speed of the traffic to be less than the maximum speed represented by the rate limiting information. It may include: the rate limiting module obtains the user's rate limiting information, and based on the maximum speed flow_limit represented in the rate limiting information, uniformly limits at least one traffic corresponding to the user to the maximum speed flow_limit in the rate limiting information.

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

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

[0099] The rate limiting module sets a packet loss policy for traffic based on traffic priority. It uses the packet loss policy to process packets in the traffic that exceed the maximum speed. It sends the traffic after rate limiting and packet loss processing to the statistics module. It may include: the rate limiting module obtains the last two bits of the preset identifier fw_mark as the traffic priority flow_prority, and determines the packet loss policy corresponding to the traffic based on the traffic priority flow_prority.

[0100] The rate limiting module uses a packet loss strategy to drop packets with a speed exceeding flow_limit.

[0101] The purpose of packet dropping and packet loss policies is to address resource allocation issues after traffic exceeds limits, thereby ensuring fine-grained management of user traffic. Packet dropping refers to proactively discarding a portion of the user's data packets when their traffic exceeds the system's bandwidth limit (flow_limit) to control traffic flow. Packet loss policies can be control rules designed for different traffic priorities (flow_prority).

[0102] Furthermore, when the rate limiting module processes packet loss, it can consider the traffic priority of each packet and prioritize discarding packets with relatively lower priority to ensure that packets with relatively higher priority can pass.

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

[0104] In one possible implementation of the above embodiments, the rate limiting module sets a packet loss strategy for traffic based on traffic priority, including:

[0105] The rate limiting module obtains the traffic priority from the marked traffic. The traffic priority includes one of the following: first priority, second priority, or third priority, where 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 a priority of third priority, the traffic with the third priority is allowed to pass first;

[0107] When there is no traffic with a priority of third priority, traffic with a priority of second priority is allowed to pass.

[0108] When there is no traffic with priority of third or second priority, traffic with first priority is allowed to pass first.

[0109] In this embodiment, the third priority can refer to the priority of priority guarantee, the second priority can refer to the packet cycle priority, and the first priority can refer to the on-demand priority. Specifically, the flow_prority of the priority guarantee can be 2, the flow_prority of the packet cycle priority can be 1, and the flow_prority of the on-demand priority can be 0.

[0110] As an example, priority services may include, but are not limited to: video conferencing and real-time financial transactions; periodic priority services may include, but are not limited to: video streaming and data backup; and on-demand priority services may include, but are not limited to: file downloading and video viewing.

[0111] In one possible implementation, the packet loss strategy may include, but is not limited to: when there is traffic with flow_prority=2, prioritize passing traffic with flow_prority=2; when there is no traffic with flow_prority=2, prioritize passing traffic with flow_prority=1; when there is neither flow_prority=2 nor flow_prority=1, allow traffic with flow_prority=0 to pass.

[0112] As an example, user A's maximum speed flow_limit is 100MBps. User A's application generates three types of traffic: 30MBps of guaranteed priority traffic, 40MBps of periodic traffic, and 50MBps of on-demand traffic. Therefore, 20 (i.e., 30+40+50-100)MBps of traffic needs to be discarded. Specifically, there is guaranteed priority traffic with flow_prority=2, allowing the 30MBps of guaranteed priority traffic to pass. Among the remaining 40MBps of periodic traffic and 50MBps of on-demand traffic, there is no guaranteed priority traffic with flow_prority=2, allowing the 40MBps of periodic traffic to pass. Among the remaining 50MBps of on-demand traffic, there is neither guaranteed priority traffic with flow_prority=2 nor periodic traffic with flow_prority=1, allowing the 30MBps of on-demand traffic to pass, and discarding 20MBps of on-demand traffic.

[0113] In the user-granular distributed traffic control method and traffic control system of the above embodiments of this disclosure, the priority-based scheduling strategy enables the traffic control module to perform rate limiting and packet loss handling more effectively. This not only ensures the timely transmission of high-priority traffic but also prevents low-priority traffic from consuming too much bandwidth resources, thereby improving the overall efficiency of traffic management. By prioritizing the processing of third-priority traffic, then second-priority traffic, and finally first-priority traffic, the rate limiting module can maximize bandwidth utilization efficiency and reduce the network occupation of low-priority traffic.

[0114] In one embodiment, Figure 4 This is a flowchart illustrating another user-granular distributed flow control method provided in this disclosure, applied to the above-mentioned... Figure 1a The flow control system shown herein 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] In step S402, the traffic forwarding module sends the user identifier and traffic priority to the proxy module;

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

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

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

[0121] Step S404: The agent module sends a preset identifier to the speed limiting module and the statistics module;

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

[0123] Step S405: The speed limiting module queries the speed limiting information based on 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's traffic to the proxy module through the proxy port; furthermore, steps S403 and S406 are executed in parallel.

[0126] Step S407: The rate limiting module limits the traffic flow based on the rate limiting information;

[0127] Here, the rate limiting module performs rate limiting and packet loss processing on the traffic based on the rate limiting information; furthermore, steps S407 and S408 are executed sequentially.

[0128] Step S408: The statistics module counts and reports the actual traffic generated by the user.

[0129] Here, the statistics module counts the actual traffic generated by users and stores it in the traffic statistics database, which is periodically synchronized with the cloud-based traffic statistics database in 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. It then retrieves the user identifier and traffic priority for different applications and sends them to the proxy module. The proxy module determines the proxy port based on the user identifier and traffic priority, enabling the traffic forwarding module to send the user's application traffic to the proxy port. The proxy module marks the acquired traffic with a preset identifier and sends the traffic with the preset identifier to the rate limiting module. The rate limiting module uses different rate limiting queues based on different preset identifiers to rate-limit the traffic and sends the rate-limited traffic to the statistics module. The statistics module uses different traffic statistics databases based on different preset identifiers to collect traffic information for different users. The statistics module also obtains public network traffic data and usage data for sending public network traffic, and periodically synchronizes user traffic statistics information with the central cloud.

[0132] In one embodiment, a flow control system 60 is provided, which corresponds one-to-one with the user-granularity-based distributed flow control method described in the above embodiments. For example... 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. The detailed descriptions of each functional module are as follows:

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

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

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

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

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

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

[0139] The traffic forwarding module 602 is used to send the user identifier 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 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. When it is determined that a proxy port corresponding to a preset identifier already exists, the proxy port is sent to the traffic forwarding module 602.

[0142] The proxy module 601 is used to create a proxy port when it is determined that there is no proxy port corresponding to the preset identifier, and to set the firewall rules corresponding to the proxy port. The firewall rules are 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 limiting module 6031 and a statistics module 6032, wherein:

[0144] The rate limiting module 6031 is used to query the rate limiting information of the user to which the application belongs based on the user identifier in the preset identifier, and based on the rate limiting information, to process the rate limiting of the traffic containing the user identifier after marking, and to send the rate-limited traffic to the statistics module 6032.

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

[0146] The statistics module 6032 is used to store the rate-limited traffic into the traffic statistics database when it is determined that a traffic statistics database associated with the user identifier already exists.

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

[0148] The rate limiting module 6031 is used to set the packet loss policy of traffic according to traffic priority. The packet loss policy is used to process the packets in the traffic that are higher than the maximum speed and to send the traffic after rate limiting and packet loss processing to the statistics module 6032.

[0149] In one embodiment, the rate limiting module 6031 is used to obtain the traffic priority in the marked traffic, and the traffic priority includes one of the following: first priority, second priority or 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 to prioritize the flow of traffic with the third priority when it is determined that there is such traffic.

[0151] The rate limiting module 6031 is used to allow second-priority traffic to pass through when it is determined that there is no traffic with a traffic priority of third priority.

[0152] The rate limiting module 6031 is used to allow first-priority traffic to pass through when it is determined that there is no traffic with a traffic priority of third or second priority.

[0153] It should be noted that the flow control system provided in the above embodiments, when implementing the corresponding user-granular distributed flow control method, is only illustrated by the division of the above program modules. In practical applications, the above processing can be distributed 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 processing described above. Furthermore, the system provided in the above embodiments and the corresponding... Figure 1b The embodiments of the methods shown belong to the same concept, and their specific implementation process can be found in the method embodiments, which will not be repeated here.

[0154] This disclosure also provides a computer device having the above-described features. Figure 6 The flow control system shown.

[0155] Please refer to 7. Figure 7 This is a schematic diagram of another flow control system provided in an embodiment of this disclosure, as shown below. Figure 7 As shown, the computer device includes one or more processors 10, memory 20, and interfaces for connecting the components, including high-speed interfaces and low-speed interfaces. The components communicate with each other via different buses and can be mounted on a common motherboard or otherwise installed as needed. The processors can process instructions executed within the computer device, including instructions stored in or on memory to display graphical information of a GUI on external input / output devices (such as display devices coupled to the interfaces). In some alternative implementations, multiple processors and / or multiple buses can be used with multiple memories and multiple memory modules, if desired. Similarly, multiple computer devices can be connected, each providing some of the necessary operations (e.g., as a server array, a group of blade servers, or a multiprocessor system). Figure 7 Take a processor 10 as an example.

[0156] Processor 10 may be a central processing unit, a network processor, or a combination thereof. Processor 10 may further include a hardware chip. The hardware chip may be an application-specific integrated circuit (ASIC), a programmable logic device (PLD), or a combination thereof. The programmable logic device may be a complex programmable logic device (CAMP), a field-programmable gate array (FPGA), a general-purpose array logic (GDA), or any combination thereof.

[0157] The memory 20 stores instructions executable by at least one processor 10 to cause the at least one processor 10 to perform the method shown in the above embodiments.

[0158] The memory 20 may include a program storage area and a data storage area. The program storage area may store the operating system and applications required for at least one function; the data storage area may store data created based on the use of the computer device. Furthermore, the memory 20 may include high-speed random access memory and may also include non-transitory memory, such as at least one disk storage device, flash memory device, or other non-transitory solid-state storage device. In some alternative embodiments, the memory 20 may optionally include memory remotely located relative to the processor 10, and these remote memories may be connected to the computer device via a network. Examples of such networks include, but are not limited to, the Internet, intranets, local area networks, mobile communication networks, and combinations thereof.

[0159] The memory 20 may include volatile memory, such as random access memory; the memory may also include non-volatile memory, such as flash memory, hard disk or 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, memory 20, input device 30, and output device 20 can be connected via a bus or other means. Figure 7 Taking the example of a connection between China and Israel via a bus.

[0161] Input device 30 can receive input numerical or character information, and generate key signal inputs related to user settings and function control of the computer device, such as a touchscreen, keypad, mouse, trackpad, touchpad, joystick, one or more mouse buttons, trackball, joystick, etc. Output device 40 may include display devices, auxiliary lighting devices (e.g., LEDs), and haptic feedback devices (e.g., vibration motors). The aforementioned display devices include, but are not limited to, liquid crystal displays, light-emitting diodes, displays, and plasma displays. In some alternative embodiments, the display device may be a touchscreen.

[0162] The computer device also includes a communication interface 30 for communicating with other devices or communication networks.

[0163] This disclosure also provides a computer-readable storage medium in which the methods described in this disclosure can be implemented in hardware or firmware, or implemented as recordable on a storage medium, or implemented as computer code originally stored on a remote storage medium or a non-transitory machine-readable storage medium and subsequently stored on a local storage medium after being downloaded over a network. Thus, the methods described herein can be processed by software stored on a storage medium using a general-purpose computer, a dedicated processor, or programmable or dedicated hardware. The storage medium may be a magnetic disk, optical disk, read-only memory, random access memory, flash memory, hard disk, or solid-state drive, etc.; further, the storage medium may also include combinations of the above types of memory. It is understood that computers, processors, microprocessor controllers, or programmable hardware include storage components capable of storing or receiving software or computer code that, when accessed and executed by the computer, processor, or hardware, implements the methods shown in the above embodiments.

[0164] A portion of this disclosure can be applied to computer program products, such as computer program instructions, which, when executed by a computer, can invoke or provide methods and / or technical solutions according to this disclosure through the operation of the computer. Those skilled in the art will understand that the forms in which computer program instructions exist in a computer-readable medium include, but are not limited to, source files, executable files, and installation package files. Accordingly, the ways in which computer program instructions are executed by a computer include, but are not limited to: the computer directly executing the instructions; the computer compiling the instructions and then executing the corresponding compiled program; the computer reading and executing the instructions; or the computer reading and installing the instructions and then executing the corresponding installed program. Here, the computer-readable medium can be any available computer-readable storage medium or communication medium accessible to a computer.

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

Claims

1. A user-granular distributed flow control method, characterized in that, An application is made to a traffic control system, the traffic control system comprising: a proxy module, a traffic forwarding module, a service discovery module, and a traffic control module, the method comprising: The proxy module receives the user identifier and traffic priority corresponding to the application from the traffic forwarding module, determines the 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's 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, marks the application's traffic with the preset identifier, and sends the marked traffic to the traffic control module. The traffic control module determines the rate limiting information of the marked traffic based on the user identifier in the preset identifier, and performs rate limiting and statistical processing on the marked traffic based on the rate limiting information and the traffic priority in the preset identifier. 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 identifier and traffic priority corresponding to the application to the proxy module based on the address information; The proxy module, based on the user identifier and the traffic priority, determines a preset identifier, uses the preset identifier to mark the application's traffic, and sends the marked traffic to the traffic control module, including: The proxy module receives the user identifier and traffic priority corresponding to the application from the traffic forwarding module, combines the user identifier and the traffic priority to determine 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. When it is determined that the proxy port corresponding to the preset identifier already exists, it 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. The firewall rules are used to mark the traffic with the preset identifier when obtaining traffic from the proxy port.

2. The method according to claim 1, characterized in that, The flow control module includes: a rate limiting module and a statistics module; and The traffic control module determines the rate limiting information of the marked traffic based on the user identifier in the preset identifier, and performs rate limiting and statistical processing on the marked traffic based on the rate limiting information and the traffic priority in the preset identifier, including: The rate limiting module queries the rate limiting information of the user to which the application belongs based on the user identifier in the preset identifier, performs rate limiting processing on the traffic containing the user identifier in the marked traffic based on the rate limiting information, and sends the rate-limited traffic to the statistics module. The statistics module determines whether a traffic statistics database associated with the user identifier exists. If no traffic statistics database associated with the user identifier exists, the statistics module creates the traffic statistics database and stores the traffic after the rate limiting process into the traffic statistics database. If the statistics module determines that a traffic statistics database associated with the user identifier already exists, the statistics module stores the traffic after the rate limiting process into the traffic statistics database.

3. The method according to claim 2, characterized in that, The rate-limiting module queries the rate-limiting information of the user to which the application belongs based on the user identifier in the preset identifier, performs rate-limiting processing on the traffic containing the user identifier in the marked traffic based on the rate-limiting information, and sends the rate-limited traffic to the statistics module, including: The rate limiting module limits the traffic containing the user identifier based on the rate limiting information, so as to set the speed of the traffic to be less than the maximum speed represented by the rate limiting information. The rate limiting module sets a packet loss policy for the traffic based on the traffic priority, uses the packet loss policy to process packet loss of data packets in the traffic that are greater than the maximum speed, and sends the rate-limited traffic and the traffic after the packet loss processing to the statistics module.

4. The method according to claim 3, characterized in that, The rate limiting module sets a packet loss strategy for the traffic based on the traffic priority, including: The rate limiting module obtains the traffic priority from the marked traffic, and the traffic priority includes one of the following: first priority, second priority or 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; When the speed limiting module determines that there is traffic with the third priority, it prioritizes allowing the traffic with the third priority to pass. When the speed limiting module determines that there is no traffic with the third priority, it prioritizes allowing traffic with the second priority to pass through. When the speed limiting module determines that there is no traffic with the third priority or the second priority, it prioritizes allowing the traffic with the first priority to pass.

5. A flow control system, characterized in that, The traffic control system includes a proxy module, a traffic forwarding module, a service discovery module, and a traffic control module, wherein: The proxy module is used to receive the user identifier and traffic priority corresponding to the application from the traffic forwarding module, determine the 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 application's traffic 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 application's traffic with the preset identifier, and send the marked traffic to the traffic control module; The traffic control module is used to determine the rate limiting information of the marked traffic based on the user identifier in the preset identifier, and to perform rate limiting and statistical processing on the marked traffic based on the rate limiting information and the traffic priority in the preset identifier. The service discovery module is used to provide the address information of the proxy module to the traffic forwarding module using multicast technology; The traffic forwarding module is used to send the user identifier and traffic priority corresponding to the application to the proxy module based on the address information; The proxy module is specifically used to receive the user identifier and traffic priority corresponding to the application from the traffic forwarding module, and combine the user identifier and the traffic priority to determine the preset identifier; wherein, the preset identifier uniquely corresponds to the proxy port; The proxy module is specifically used to determine whether the proxy port corresponding to the preset identifier already exists. When it is determined that the proxy port corresponding to the preset identifier already exists, the proxy port is sent to the traffic forwarding module. The proxy module is specifically used to create the proxy port and set the firewall rules corresponding to the proxy port when it is determined that the proxy port corresponding to the preset identifier does not exist. The firewall rules are used to mark the traffic with the preset identifier when obtaining traffic from the proxy port.

6. A computer-readable storage medium, characterized in that, The computer-readable storage medium stores computer instructions for causing the computer to execute the user-granular distributed flow control method as described in claims 1-4.

7. A computer program product, characterized in that, It includes computer instructions for causing a computer to perform the user-granular distributed flow control method according to any one of claims 1-4.

Citation Information

Patent Citations

  • Multicast traffic forwarding method and device, and server

    CN108881069A

  • TSN network medium system for realizing precise flow control

    CN118474039A