Traffic scheduling method and device for network cluster, electronic device and medium

By setting traffic speed limit values ​​in the network cluster and adjusting gateway devices according to round trip delays, accurate speed limits for a single IP are achieved, and the problem of insufficient real-time and accuracy of speed limits in multipath networks is solved, and efficient bandwidth utilization and flexible speed limits are achieved.

CN116232999BActive Publication Date: 2025-03-25BEIJING BAIDU NETCOM SCI & TECH CO LTD
View PDF 1 Cites 0 Cited by

Patent Information

Application Number
CN202310265295.4
Authority / Receiving Office
CN · China
Patent Type
Patents(China)
Current Assignee / Owner
Filing Date
2023-03-14
Publication Date
2025-03-25
Estimated Expiration
2043-03-14

AI Technical Summary

Technical Problem

In a distributed gateway cluster, how to achieve accurate speed limits for a single IP, especially under multipath network topology, the existing technology has the problem of insufficient real-time and accuracy of speed limits.

Method used

By setting traffic speed limit values ​​for multiple gateway devices in the network cluster, and dynamically adjusting the gateway devices passing through the packet according to the round trip delay of the first two rounds of packets, the precise speed limit for a single IP is achieved.

Benefits of technology

This solution can maximize the bandwidth of multipath networks and achieve accurate speed limits on each tenant's IP. It has the advantages of low overhead, high real-time performance, and accurate and flexible speed limits. It is suitable for symmetric and asymmetric network topology.

✦ Generated by Eureka AI based on patent content.

Smart Images

  • Figure CN116232999B_ABST
    Figure CN116232999B_ABST
Patent Text Reader

Abstract

The present disclosure provides a traffic scheduling method, device, electronic device, computer-readable storage medium and computer program product for a network cluster, which relates to the field of artificial intelligence, especially to the field of cloud computing technology, and can be applied in intelligent cloud scenarios. The implementation scheme is: set a corresponding traffic speed limit value for each of the multiple gateway devices in the network cluster; obtain the data packets to be sent by the sender in this round; obtain the round-trip delays corresponding to the data packets sent by the sender in the previous two rounds; in response to determining that the round-trip delay corresponding to the previous round is less than or equal to the round-trip delay corresponding to the previous round, use the gateway device used by the data packet sent in the previous round as the gateway device corresponding to the data packet to be sent in this round, otherwise re-determine a gateway device in other gateway devices as the gateway device corresponding to the data packet to be sent in this round.
Need to check novelty before this filing date? Find Prior Art

Description

Technical Field

[0001] The present disclosure relates to the field of artificial intelligence, and in particular to the field of cloud computing technology, and can be applied in intelligent cloud scenarios. Specifically, it relates to a traffic scheduling method, device, electronic device, computer-readable storage medium, and computer program product for a network cluster. Background Art

[0002] Nowadays, multi-path network topology and distributed cluster architecture are commonly used in large and medium-sized networks to provide external services. Especially with the rise and popularity of cloud computing, this architecture has become the basic network architecture adopted by cloud computing data center networks. How to accurately limit the speed of a single IP in a distributed gateway cluster is a problem of general concern in the industry. Summary of the invention

[0003] The present disclosure provides a traffic scheduling method, device, electronic device, computer-readable storage medium, and computer program product for a network cluster.

[0004] According to one aspect of the present disclosure, a traffic scheduling method for a network cluster is provided, comprising: setting a corresponding traffic speed limit value for each of a plurality of gateway devices in the network cluster, wherein a data packet sent by a sender in the network cluster is transmitted via any one of the plurality of gateway devices; obtaining a data packet to be sent by the sender in this round; obtaining a round trip delay corresponding to each of the data packets sent by the sender in the previous two rounds; in response to determining that the round trip delay corresponding to the data packet sent in the previous round is less than or equal to the round trip delay corresponding to the data packet sent in the previous round, using the gateway device used by the data packet sent in the previous round as the gateway device corresponding to the data packet to be sent in this round; and in response to determining that the round trip delay corresponding to the data packet sent in the previous round is greater than the round trip delay corresponding to the data packet sent in the previous round, re-determining the gateway device corresponding to the data packet to be sent in this round, wherein the re-determined gateway device corresponding to the data packet to be sent in this round is one of the other gateway devices among the plurality of gateway devices except the gateway device used by the data packet sent in the previous round.

[0005] According to another aspect of the present disclosure, a traffic scheduling device for a network cluster is provided, comprising: a setting unit, configured to set a corresponding traffic speed limit value for each of a plurality of gateway devices in the network cluster, wherein a data packet sent by a sending end in the network cluster is transmitted via any one of the plurality of gateway devices; a first acquisition unit, configured to acquire a data packet to be sent by the sending end in this round; a second acquisition unit, configured to acquire a round-trip delay corresponding to each of the data packets sent by the sending end in the previous two rounds; a first determination unit, configured to determine, in response to determining that the round-trip delay corresponding to the data packet sent in the previous round is less than or equal to the round-trip delay corresponding to the data packets sent in the previous round, and taking the gateway device used by the data packets sent in the previous round as the gateway device corresponding to the data packets to be sent in this round; and a second determination unit, configured to redetermine the gateway device corresponding to the data packets to be sent in this round in response to determining that the round-trip delay corresponding to the data packets sent in the previous round is greater than the round-trip delay corresponding to the data packets sent in the previous round, wherein the redetermined gateway device corresponding to the data packets to be sent in this round is one of the other gateway devices among the multiple gateway devices except the gateway device used by the data packets sent in the previous round.

[0006] According to another aspect of the present disclosure, an electronic device is provided, comprising: at least one processor; and a memory communicatively connected to the at least one processor; the memory stores instructions executable by the at least one processor, and the instructions are executed by the at least one processor to enable the at least one processor to execute the method described in the present disclosure.

[0007] According to another aspect of the present disclosure, a non-transitory computer-readable storage medium storing computer instructions is provided. The computer instructions are used to cause a computer to execute the method described in the present disclosure.

[0008] According to another aspect of the present disclosure, a computer program product is provided, including a computer program, which implements the method described in the present disclosure when executed by a processor.

[0009] According to one or more embodiments of the present disclosure, the bandwidth of the multipath network can be utilized to the maximum extent, while achieving accurate speed limit for each tenant's IP. This solution has the advantages of low overhead, high real-time performance, accurate and flexible speed limit for single-granularity IP, and is applicable to both symmetric and asymmetric network topologies.

[0010] It should be understood that the content described in this section is not intended to identify the key or important features of the embodiments of the present disclosure, nor is it intended to limit the scope of the present disclosure. Other features of the present disclosure will become easily understood through the following description. BRIEF DESCRIPTION OF THE DRAWINGS

[0011] The accompanying drawings exemplarily illustrate the embodiments and constitute a part of the specification, and together with the text description of the specification, are used to explain the exemplary implementation of the embodiments. The embodiments shown are for illustrative purposes only and do not limit the scope of the claims. In all drawings, the same reference numerals refer to similar but not necessarily identical elements.

[0012] Figure 1 A schematic diagram showing an exemplary system in which the various methods described herein may be implemented according to an embodiment of the present disclosure;

[0013] Figure 2 A flow chart of a traffic scheduling method for a network cluster according to an embodiment of the present disclosure is shown;

[0014] Figure 3 A flowchart of obtaining data packets to be sent by the sending end in this round according to an embodiment of the present disclosure is shown;

[0015] Figure 4 A structural block diagram of a traffic scheduling device for a network cluster according to an embodiment of the present disclosure is shown; and

[0016] Figure 5 A structural block diagram of an exemplary electronic device that can be used to implement the embodiments of the present disclosure is shown. DETAILED DESCRIPTION

[0017] The following is a description of exemplary embodiments of the present disclosure in conjunction with the accompanying drawings, including various details of the embodiments of the present disclosure to facilitate understanding, which should be considered as merely exemplary. Therefore, it should be recognized by those of ordinary skill in the art that various changes and modifications may be made to the embodiments described herein without departing from the scope of the present disclosure. Similarly, for the sake of clarity and conciseness, the description of well-known functions and structures is omitted in the following description.

[0018] In the present disclosure, unless otherwise specified, the use of the terms "first", "second", etc. to describe various elements is not intended to limit the positional relationship, timing relationship, or importance relationship of these elements, and such terms are only used to distinguish one element from another element. In some examples, the first element and the second element may refer to the same instance of the element, and in some cases, based on the description of the context, they may also refer to different instances.

[0019] The terms used in the description of various examples in this disclosure are only for the purpose of describing specific examples and are not intended to be limiting. Unless the context clearly indicates otherwise, if the number of elements is not specifically limited, the element can be one or more. In addition, the term "and / or" used in this disclosure covers any one of the listed items and all possible combinations.

[0020] The embodiments of the present disclosure will be described in detail below with reference to the accompanying drawings.

[0021] Figure 1 FIG. 1 is a schematic diagram of an exemplary system 100 in which various methods and apparatuses described herein may be implemented according to an embodiment of the present disclosure. Figure 1 , the system 100 includes one or more client devices 101, 102, 103, 104, 105, and 106, a server 120, and one or more communication networks 110 coupling the one or more client devices to the server 120. The client devices 101, 102, 103, 104, 105, and 106 may be configured to execute one or more applications.

[0022] In an embodiment of the present disclosure, the server 120 may run one or more services or software applications that enable execution of a method for traffic scheduling of a network cluster.

[0023] In some embodiments, server 120 may also provide other services or software applications, which may include non-virtualized environments and virtualized environments. In some embodiments, these services may be provided as web-based services or cloud services, such as provided to users of client devices 101, 102, 103, 104, 105, and / or 106 under a software as a service (SaaS) model.

[0024] exist Figure 1 In the configuration shown, the server 120 may include one or more components that implement the functions performed by the server 120. These components may include software components, hardware components, or a combination thereof that can be executed by one or more processors. Users operating client devices 101, 102, 103, 104, 105, and / or 106 may in turn utilize one or more client applications to interact with the server 120 to utilize the services provided by these components. It should be understood that a variety of different system configurations are possible, which may differ from the system 100. Therefore, Figure 1 is one example of a system for implementing the various methods described herein and is not intended to be limiting.

[0025] A user may use client devices 101, 102, 103, 104, 105, and / or 106 to determine data to be sent or to receive network data. The client device may provide an interface that enables a user of the client device to interact with the client device. The client device may also output information to the user via the interface. Figure 1 Only six client devices are depicted, but one skilled in the art will appreciate that the present disclosure may support any number of client devices.

[0026] Client devices 101, 102, 103, 104, 105 and / or 106 may include various types of computer devices, such as portable handheld devices, general-purpose computers (such as personal computers and laptop computers), workstation computers, wearable devices, smart screen devices, self-service terminal devices, service robots, game systems, thin clients, various messaging devices, sensors or other sensing devices, etc. These computer devices may run various types and versions of software applications and operating systems, such as MICROSOFT Windows, APPLE iOS, UNIX-like operating systems, Linux or Linux-like operating systems (such as GOOGLE Chrome OS); or include various mobile operating systems, such as MICROSOFT Windows Mobile OS, iOS, Windows Phone, Android. Portable handheld devices may include cellular phones, smart phones, tablet computers, personal digital assistants (PDAs), etc. Wearable devices may include head-mounted displays (such as smart glasses) and other devices. Game systems may include various handheld game devices, Internet-enabled game devices, etc. Client devices are capable of executing various different applications, such as various Internet-related applications, communication applications (such as email applications), short message service (SMS) applications, and may use various communication protocols.

[0027] The network 110 may be any type of network known to those skilled in the art that may support data communications using any of a variety of available protocols, including but not limited to TCP / IP, SNA, IPX, etc. By way of example only, the one or more networks 110 may be a local area network (LAN), an Ethernet-based network, a token ring, a wide area network (WAN), the Internet, a virtual network, a virtual private network (VPN), an intranet, an extranet, a blockchain network, a public switched telephone network (PSTN), an infrared network, a wireless network (e.g., Bluetooth, WIFI), and / or any combination of these and / or other networks.

[0028] Server 120 may include one or more general purpose computers, dedicated server computers (e.g., PC (personal computer) servers, UNIX servers, mid-range servers), blade servers, mainframe computers, server clusters, or any other suitable arrangement and / or combination. Server 120 may include one or more virtual machines running virtual operating systems, or other computing architectures involving virtualization (e.g., one or more flexible pools of logical storage devices that may be virtualized to maintain a server's virtual storage device). In various embodiments, server 120 may run one or more services or software applications that provide the functionality described below.

[0029] The computing units in the server 120 may run one or more operating systems including any of the above operating systems and any commercially available server operating systems. The server 120 may also run any of a variety of additional server applications and / or middle-tier applications, including HTTP servers, FTP servers, CGI servers, JAVA servers, database servers, etc.

[0030] In some implementations, server 120 may include one or more applications to analyze and consolidate data feeds and / or event updates received from users of client devices 101, 102, 103, 104, 105, and 106. Server 120 may also include one or more applications to display data feeds and / or real-time events via one or more display devices of client devices 101, 102, 103, 104, 105, and 106.

[0031] In some embodiments, the server 120 may be a server of a distributed system, or a server combined with a blockchain. The server 120 may also be a cloud server, or an intelligent cloud computing server or intelligent cloud host with artificial intelligence technology. A cloud server is a host product in a cloud computing service system to solve the defects of difficult management and weak business scalability in traditional physical hosts and virtual private servers (VPS) services.

[0032] The system 100 may also include one or more databases 130. In some embodiments, these databases may be used to store data and other information. For example, one or more of the databases 130 may be used to store information such as transmitted data packets. The databases 130 may reside in various locations. For example, the database used by the server 120 may be local to the server 120, or may be remote from the server 120 and may communicate with the server 120 via a network-based or dedicated connection. The databases 130 may be of different types. In some embodiments, the databases used by the server 120 may be, for example, relational databases. One or more of these databases may store, update, and retrieve data to and from the databases in response to commands.

[0033] In some embodiments, one or more of the databases 130 may also be used by applications to store application data. The databases used by the applications may be different types of databases, such as a key-value store, an object store, or a conventional store backed by a file system.

[0034] Figure 1 The system 100 may be configured and operated in various ways to enable the application of various methods and apparatuses described in the present disclosure.

[0035] Nowadays, multi-path network topology and distributed cluster architecture are widely used in large and medium-sized networks to provide external services. Especially with the rise and popularity of cloud computing, this architecture has become the basic network architecture adopted by cloud computing data center networks. In the network cluster architecture, network data is transmitted through multiple gateway devices, and the path between the switch or network card at the sending end and each gateway device can be used as a transmission path.

[0036] Gateway, also known as network connector or protocol converter. Gateway is the gateway connecting one network to another, also known as network checkpoint. Gateway realizes network interconnection above the network layer. It is the most complex network interconnection device and is only used for interconnection between two networks with different high-level protocols. Gateway can be used for both wide area network interconnection and local area network interconnection. Gateway is a computer system or device that performs the conversion task and is used between two systems with different communication protocols, data formats or languages, or even completely different architectures. Gateway can repackage the received information to meet the needs of the destination system.

[0037] IP (interconnection protocol) is a set of rules that enables all computer networks connected to the Internet to communicate with each other. It stipulates the rules that computers should follow when communicating on the Internet. Computer systems produced by any manufacturer can be interconnected with the Internet as long as they comply with the IP protocol.

[0038] In a multi-path network, multiple data flows belonging to a single IP will reach different gateway devices in the network cluster through different paths. It is necessary to collect traffic statistics and uniformly limit the speed of multiple data flows belonging to this IP among these multiple gateway devices. Since the speed limit is based on the granularity of IP, it is challenging to uniformly and accurately limit the speed of all flows belonging to this IP in this case.

[0039] At present, a centralized speed limiting solution is usually adopted: that is, the traffic belonging to a single IP is concentrated on a gateway device in the network cluster for centralized traffic statistics and speed limiting. When multiple data belonging to the same IP flow through multiple paths to different gateway devices, the gateway device performs hash calculation again and re-centralizes the traffic to the same gateway device for centralized traffic statistics and speed limiting. However, the centralized speed limiting solution centralizes all traffic belonging to a single IP to a gateway device for speed limiting. Although this can achieve traffic concentration and unification, the traffic that a gateway device can carry is limited. In the case of elephant traffic, a single gateway device can easily be "hung up" and become a performance bottleneck, making it impossible to effectively use the bandwidth of the multi-path network.

[0040] In addition, a central control speed limit solution can also be adopted: that is, the distributed gateway cluster regularly counts the IP traffic passing through each gateway device and reports it to the central controller. The central controller performs aggregation calculations according to the IP granularity, and calculates the speed limit value of each gateway device according to the IP speed limit value, and sends the speed limit value to each gateway device to achieve distributed speed limit. This solution can make good use of the bandwidth of multiple path networks, but its speed limit value needs to be reported to the central control machine for unified calculation and distribution, so its real-time performance and speed limit accuracy are obviously insufficient.

[0041] Therefore, according to an embodiment of the present disclosure, a traffic scheduling method for a network cluster is provided. Figure 2 is a flow chart of a traffic scheduling method for a network cluster according to an embodiment of the present disclosure, such as Figure 2As shown, method 200 includes: setting a corresponding traffic speed limit value for each of the multiple gateway devices in the network cluster, wherein the data packet sent by the sender in the network cluster is transmitted via any one of the multiple gateway devices (step 210); obtaining the data packet to be sent by the sender in this round (step 220); obtaining the round-trip delay corresponding to each of the data packets sent by the sender in the previous two rounds (step 230); in response to determining that the round-trip delay corresponding to the data packet sent in the previous round is less than or equal to the round-trip delay corresponding to the data packet sent in the previous round, The gateway device used by the data packets sent in the previous round is used as the gateway device corresponding to the data packets to be sent in this round (step 240); and in response to determining that the round-trip delay corresponding to the data packets sent in the previous round is greater than the round-trip delay corresponding to the data packets sent in the previous round, the gateway device corresponding to the data packets to be sent in this round is re-determined, wherein the re-determined gateway device corresponding to the data packets to be sent in this round is one of the other gateway devices among the multiple gateway devices except the gateway device used by the data packets sent in the previous round (step 250).

[0042] According to the embodiments of the present disclosure, the bandwidth of the multipath network can be utilized to the maximum extent, while achieving accurate speed limit for each tenant's IP. This solution has the advantages of low overhead, high real-time performance, accurate and flexible speed limit for single-granularity IP, and is applicable to both symmetric and asymmetric network topologies.

[0043] In some embodiments, the method according to the present disclosure may be implemented on a switch or a network card at a sending end in a server network cluster, and the data packet at the sending end is sent via a gateway device in the cluster.

[0044] In some examples, the traffic speed limit value corresponding to each gateway device in the multiple gateway devices belonging to the IP in the network cluster is first determined based on the IP traffic speed limit value. For example, the IP speed limit is 20G, and the network cluster includes 5 gateway devices for forwarding the traffic of the IP. Then, the traffic speed limit value of each gateway device can be set to 4G (i.e., uniform speed limit); or the traffic of the 5 gateway devices can be limited to 6G, 5G, 4G, 3G, and 2G respectively. In other words, the traffic speed limit values ​​of multiple gateway devices can be set to be the same or different based on actual conditions, and there is no limitation here.

[0045] Round-trip time (RTT) is an important performance indicator in computer networks. It indicates the total delay from the start of data transmission from the sender to the time when the sender receives confirmation from the receiver (the receiver sends confirmation immediately after receiving the data). Round-trip delay can be determined by three parts: the propagation time of the path, the processing time of the end system, and the queuing and processing time in the router's cache. Among them, the values ​​of the first two parts are relatively fixed as a TCP connection, and the queuing and processing time in the router's cache will change with the change of the congestion level of the entire network. Therefore, the change of round-trip delay reflects the change of network congestion level to a certain extent. Therefore, based on the round-trip delay of the first two rounds of data transmission, it can be determined whether the transmission speed of the path selected for the previous round of data transmission is slow, which may be caused by speed limit, congestion or path failure. Thus, load balancing is well done between multiple paths in the network, with low overhead, high real-time performance, and precise and flexible speed limit.

[0046] In some examples, the data packet to be transmitted may include a multi-tuple communication field, wherein the multi-tuple communication field is, for example, a four-tuple, a five-tuple, a seven-tuple, etc. Taking the five-tuple as an example, it includes five fields, namely, source IP, source port, destination IP, destination port, and the layer 4 protocol.

[0047] According to some embodiments, Figure 3 As shown, obtaining the data packets to be sent by the sending end in this round (i.e., step 220) includes: determining the slowest transmission delay and the fastest transmission delay between the sending end and each of the multiple gateway devices (step 310); determining a first time interval based on the difference between the slowest transmission delay and the fastest transmission delay (step 320); and obtaining one or more data packets obtained from the sending end within the first time interval after the previous round of data packets were sent from the sending end, as the data packets to be sent in this round (step 330).

[0048] Specifically, in order to achieve accurate speed limiting for all traffic of a single IP, it is generally necessary to avoid the problem of packet disorder at the receiving end. In the above embodiment, distributed speed limiting can be performed based on the Flowlet granularity, that is, data packets are sent at the Flowlet granularity. Flowlet is defined as a set of packets. When the sending time interval δ of adjacent packets exceeds a certain threshold (i.e., the first time interval), it indicates the appearance of a Flowlet (i.e., a Flowlet can include one or more data packets). Flowlet is a phenomenon caused by network congestion and slow path transmission. Because the network protocol actually sends data packets in clusters on the network card, when the network is congested or the network path transmission slows down, the sender will reduce the sending window, resulting in an increase in the interval between data packet transmission, resulting in clusters of Flowlets. In most cases, the time interval between different Flowlets is determined based on the transmission delay of the data center network.

[0049] Therefore, as long as the time interval between two adjacent clusters of Flowlet packets is greater than or equal to the maximum transmission delay difference between the Flowlet bifurcation point and the convergence point, the two clusters of Flowlet packets can arrive in an orderly manner. Here, the Flowlet bifurcation point can be understood as the sending end, and the convergence point can be understood as the receiving end. For example, when the time interval δ>|D2-D1| between two adjacent clusters of Flowlet packets (Flowlet1 and Flowlet2), Flowlet1 can arrive at the convergence point before Flowlet2, where D2 is the delay of the slowest physical transmission path between the bifurcation point and the convergence point, and D1 is the delay of the fastest physical transmission path between the two. It can be understood that as long as δ>|d2-D1| (that is, the first time interval is greater than |D2-D1|), it can be guaranteed that Flowlet1 transmitted from the slowest path arrives at the convergence point before Flowlet2 transmitted from the fastest transmission path. Therefore, Flowlet-based scheduling can effectively avoid the occurrence of packet disorder problems.

[0050] Specifically, the Flowlet generation process based on the five-tuple dimension: on the switch or network card at the sending end, the arriving five-tuple traffic data packets can be divided according to the Flowlet granularity, that is, the node is defined as the bifurcation point, and the difference between the slowest transmission path delay and the fastest transmission path delay between the node and the gateway device (as the convergence point) in the gateway cluster is defined as |D2-D1|. For example, for a data packet of the switch or network card at the sending end, if the time interval between the last Flowlet sending time and the data packet is less than |D2-D1|, then the data packet is added to the current Flowlet to be sent, and the Flowlet is marked as incomplete and does not meet the transmission conditions. Until the time interval between a data packet of the switch or network card at the sending end and the last Flowlet sending time is greater than |D2-D1|, the data packet that arrives later and has a time interval greater than |D2-D1| with the last Flowlet sending time can be used to form the next Flowlet. Each formed Flowlet can be sent from this node.

[0051] According to some embodiments, re-determining the gateway device corresponding to the data packets to be sent in this round includes: in response to the same traffic speed limit value corresponding to each gateway device, randomly determining a gateway device among the multiple gateway devices except the gateway device used for the data packets sent in the previous round as the gateway device corresponding to the data packets to be sent in this round.

[0052] As described above, after the Flowlet has formed and has the conditions for transmission, the round-trip time (RTT) statistics can be performed on the five-tuple where each Flowlet is located. If the round-trip time delay corresponding to the data packet sent in the previous round is less than or equal to the round-trip time delay corresponding to the data packet sent in the previous round, then it means that the transmission speed and quality of the path selected in the previous round are normal, so you can continue to select the path of the previous round and send out the current Flowlet to be sent. If the round-trip time delay corresponding to the data packet sent in the previous round is greater than the round-trip time delay corresponding to the data packet sent in the previous round, then it means that the transmission speed of the path selected in the previous round is slow, which may be due to speed limit, congestion or path failure. Therefore, a new path is selected to send out the current Flowlet to be sent. In addition, if the traffic speed limit value corresponding to each gateway device is the same, a gateway device can be randomly selected from other gateway devices except the gateway device used by the data packet sent in the previous round for sending.

[0053] Additionally or alternatively, according to some embodiments, redetermining the gateway device corresponding to the data packets to be sent in this round includes: in response to the different traffic speed limit values ​​corresponding to each gateway device, determining the gateway device corresponding to the data packets to be sent in this round based on preset weights, wherein the weights are determined based on the traffic speed limit values.

[0054] Specifically, if the current flow rate limit values ​​corresponding to each gateway device are different, the weight of each gateway device can be determined based on its limit value, so that the gateway device with a larger rate limit value corresponds to a higher weight value, and the gateway device with a lower rate limit value corresponds to a lower weight value. Thus, based on the weight value, the gateway device with the highest weight can be selected from other gateway devices except the gateway device used by the data packet sent in the previous round for sending.

[0055] Additionally or alternatively, according to some embodiments, re-determining the gateway device corresponding to the data packet to be sent in this round includes: obtaining the round-trip delay corresponding to each of the multiple gateway devices before this round, so as to determine the gateway device corresponding to the data packet to be sent in this round based on the round-trip delay.

[0056] As mentioned above, the change of round-trip delay (RTT) reflects the degree of network congestion to a certain extent. Therefore, a gateway device can be selected for transmission from other gateway devices other than the gateway device used by the data packet sent in the previous round based on the historical round-trip delay. When selecting a route based on the round-trip delay before each path (i.e., the path from the sending end to the corresponding gateway device), the path with the smallest round-trip delay among the previous paths is selected, so that the path reselected each time has a greater probability of being a path that has not reached the speed limit value.

[0057] According to some embodiments, determining the gateway device corresponding to the data packet to be sent in this round based on the round-trip delay includes: determining the round-trip delay corresponding to the most recent transmission of a data packet by each gateway device among the multiple gateway devices; and determining the gateway device corresponding to the minimum network delay among the round-trip delays corresponding to the most recent transmission of the data packet, so as to use the gateway device as the gateway device corresponding to the data packet to be sent in this round.

[0058] According to some embodiments, re-determining the gateway device corresponding to the data packets to be sent in this round includes: determining the throughput corresponding to each of the gateway devices before this round, and determining the gateway device corresponding to the data packets to be sent in this round based on the throughput, wherein the throughput is determined based on the ratio of the number of bytes of the data packets sent in the previous round to the round-trip delay corresponding to the data packets sent in the previous round.

[0059] Throughput refers specifically to the number of requests processed by a network server per unit time, or the amount of data transmitted on the network per unit time, or the number of client requests processed per unit time. It is an important indicator for measuring network performance. Usually, throughput is measured by "bytes / second", that is, throughput = number of bytes sent in the last round of RTT / corresponding RTT time. Obviously, throughput is limited by the bandwidth of the network or the rated rate of the network. Furthermore, throughput can be further used to evaluate network performance, thereby improving the transmission performance of the network while limiting the speed of the network, with high real-time performance.

[0060] According to the embodiments of the present disclosure, Figure 4 As shown, a traffic scheduling device 400 for a network cluster is also provided, comprising: a setting unit 410, configured to set a corresponding traffic speed limit value for each of a plurality of gateway devices in the network cluster, wherein a data packet sent by a sending end in the network cluster is transmitted via any one of the plurality of gateway devices; a first acquisition unit 420, configured to acquire a data packet to be sent by the sending end in this round; a second acquisition unit 430, configured to acquire a round-trip delay corresponding to each of the data packets sent by the sending end in the previous two rounds; a first determination unit 440, configured to determine a round-trip delay corresponding to a data packet sent in the previous round in response to the round-trip delay corresponding to the data packet sent in the previous round The gateway device used by the data packets sent in the previous round is used as the gateway device corresponding to the data packets to be sent in this round; and a second determining unit 450 is configured to, in response to determining that the round-trip delay corresponding to the data packets sent in the previous round is greater than the round-trip delay corresponding to the data packets sent in the previous round, redetermine the gateway device corresponding to the data packets to be sent in this round, wherein the redetermined gateway device corresponding to the data packets to be sent in this round is one of the multiple gateway devices other than the gateway device used by the data packets sent in the previous round.

[0061] Here, the operations of the above-mentioned units 410-450 of the traffic scheduling device 400 for a network cluster are similar to the operations of the steps 210-250 described above, and are not described in detail here.

[0062] In the technical solution of the present disclosure, the collection, storage, use, processing, transmission, provision and disclosure of user personal information involved are in compliance with the provisions of relevant laws and regulations and do not violate public order and good morals.

[0063] According to an embodiment of the present disclosure, an electronic device, a readable storage medium and a computer program product are also provided.

[0064] refer to Figure 5, a block diagram of an electronic device 500 that can be used as a server or client of the present disclosure will now be described, which is an example of a hardware device that can be applied to various aspects of the present disclosure. The electronic device is intended to represent various forms of digital electronic computer devices, such as laptop computers, desktop computers, workbenches, personal digital assistants, servers, blade servers, mainframe computers, and other suitable computers. The electronic device can also represent various forms of mobile devices, such as personal digital processing, cellular phones, smart phones, wearable devices, and other similar computing devices. The components shown herein, their connections and relationships, and their functions are merely examples and are not intended to limit the implementation of the present disclosure described and / or required herein.

[0065] like Figure 5 As shown, the electronic device 500 includes a computing unit 501, which can perform various appropriate actions and processes according to a computer program stored in a read-only memory (ROM) 502 or a computer program loaded from a storage unit 508 into a random access memory (RAM) 503. In the RAM 503, various programs and data required for the operation of the electronic device 500 can also be stored. The computing unit 501, the ROM 502, and the RAM 503 are connected to each other via a bus 504. An input / output (I / O) interface 505 is also connected to the bus 504.

[0066] Multiple components in the electronic device 500 are connected to the I / O interface 505, including: an input unit 506, an output unit 507, a storage unit 508, and a communication unit 509. The input unit 506 can be any type of device that can input information to the electronic device 500. The input unit 506 can receive input digital or character information and generate key signal input related to user settings and / or function control of the electronic device, and can include but is not limited to a mouse, a keyboard, a touch screen, a track pad, a track ball, a joystick, a microphone, and / or a remote controller. The output unit 507 can be any type of device that can present information, and can include but is not limited to a display, a speaker, a video / audio output terminal, a vibrator, and / or a printer. The storage unit 508 can include but is not limited to a disk, an optical disk. The communication unit 509 allows the electronic device 500 to exchange information / data with other devices through a computer network such as the Internet and / or various telecommunication networks, and can include but is not limited to a modem, a network card, an infrared communication device, a wireless communication transceiver, and / or a chipset, such as a Bluetooth device, an 802.11 device, a WiFi device, a WiMax device, a cellular communication device, and / or the like.

[0067] The computing unit 501 may be a variety of general and / or special processing components with processing and computing capabilities. Some examples of the computing unit 501 include, but are not limited to, a central processing unit (CPU), a graphics processing unit (GPU), various dedicated artificial intelligence (AI) computing chips, various computing units running machine learning model algorithms, digital signal processors (DSPs), and any appropriate processors, controllers, microcontrollers, etc. The computing unit 501 performs the various methods and processes described above, such as method 200. For example, in some embodiments, the method 200 may be implemented as a computer software program, which is tangibly contained in a machine-readable medium, such as a storage unit 508. In some embodiments, part or all of the computer program may be loaded and / or installed on the electronic device 500 via the ROM 502 and / or the communication unit 509. When the computer program is loaded into the RAM 503 and executed by the computing unit 501, one or more steps of the method 200 described above may be performed. Alternatively, in other embodiments, the computing unit 501 may be configured to perform the method 200 in any other appropriate manner (e.g., by means of firmware).

[0068] Various implementations of the systems and techniques described above herein can be implemented in digital electronic circuit systems, integrated circuit systems, field programmable gate arrays (FPGAs), application specific integrated circuits (ASICs), application specific standard products (ASSPs), systems on chips (SOCs), complex programmable logic devices (CPLDs), computer hardware, firmware, software, and / or combinations thereof. These various implementations can include: being implemented in one or more computer programs that can be executed and / or interpreted on a programmable system including at least one programmable processor, which can be a special purpose or general purpose programmable processor that can receive data and instructions from a storage system, at least one input device, and at least one output device, and transmit data and instructions to the storage system, the at least one input device, and the at least one output device.

[0069] The program code for implementing the method of the present disclosure may be written in any combination of one or more programming languages. These program codes may be provided to a processor or controller of a general-purpose computer, a special-purpose computer, or other programmable data processing device, so that the program code, when executed by the processor or controller, enables the functions / operations specified in the flow chart and / or block diagram to be implemented. The program code may be executed entirely on the machine, partially on the machine, partially on the machine and partially on a remote machine as a stand-alone software package, or entirely on a remote machine or server.

[0070] In the context of the present disclosure, a machine-readable medium may be a tangible medium that may contain or store a program for use by or in conjunction with an instruction execution system, device, or equipment. A machine-readable medium may be a machine-readable signal medium or a machine-readable storage medium. A machine-readable medium may include, but is not limited to, an electronic, magnetic, optical, electromagnetic, infrared, or semiconductor system, device, or equipment, or any suitable combination of the foregoing. A more specific example of a machine-readable storage medium may include an electrical connection based on one or more lines, a portable computer disk, a hard disk, a random access memory (RAM), a read-only memory (ROM), an erasable programmable read-only memory (EPROM or flash memory), an optical fiber, a portable compact disk read-only memory (CD-ROM), an optical storage device, a magnetic storage device, or any suitable combination of the foregoing.

[0071] To provide interaction with a user, the systems and techniques described herein can be implemented on a computer having: a display device (e.g., a CRT (cathode ray tube) or LCD (liquid crystal display) monitor) for displaying information to the user; and a keyboard and pointing device (e.g., a mouse or trackball) through which the user can provide input to the computer. Other types of devices can also be used to provide interaction with the user; for example, the feedback provided to the user can be any form of sensory feedback (e.g., visual feedback, auditory feedback, or tactile feedback); and input from the user can be received in any form (including acoustic input, voice input, or tactile input).

[0072] The systems and techniques described herein can be implemented in a computing system that includes backend components (e.g., as a data server), or a computing system that includes middleware components (e.g., an application server), or a computing system that includes frontend components (e.g., a user computer with a graphical user interface or a web browser through which a user can interact with implementations of the systems and techniques described herein), or a computing system that includes any combination of such backend components, middleware components, or frontend components. The components of the system can be interconnected by any form or medium of digital data communication (e.g., a communication network). Examples of communication networks include: a local area network (LAN), a wide area network (WAN), the Internet, and a blockchain network.

[0073] A computer system may include a client and a server. The client and the server are generally remote from each other and usually interact through a communication network. The relationship of client and server is generated by computer programs running on respective computers and having a client-server relationship with each other. The server may be a cloud server, a server of a distributed system, or a server combined with a blockchain.

[0074] It should be understood that the various forms of processes shown above can be used to reorder, add or delete steps. For example, the steps recorded in this disclosure can be performed in parallel, sequentially or in a different order, as long as the desired results of the technical solutions disclosed in this disclosure can be achieved, and this document is not limited here.

[0075] Although the embodiments or examples of the present disclosure have been described with reference to the accompanying drawings, it should be understood that the above-mentioned methods, systems and devices are merely exemplary embodiments or examples, and the scope of the present invention is not limited by these embodiments or examples, but only by the claims after authorization and their equivalent scope. Various elements in the embodiments or examples can be omitted or replaced by their equivalent elements. In addition, each step can be performed in an order different from that described in the present disclosure. Further, the various elements in the embodiments or examples can be combined in various ways. It is important that with the evolution of technology, many elements described herein can be replaced by equivalent elements that appear after the present disclosure.

Claims

1. A traffic scheduling method for a network cluster, comprising: Setting a corresponding flow rate limit value for each of the multiple gateway devices in the network cluster, wherein a data packet sent by a sender in the network cluster is transmitted via any one of the multiple gateway devices; Obtaining the data packet to be sent by the sending end in this round; Obtaining the round trip delays corresponding to the data packets sent by the sending end in the first two rounds; In response to determining that the round trip delay corresponding to the data packet sent in the previous round is less than or equal to the round trip delay corresponding to the data packet sent in the previous round, using the gateway device used by the data packet sent in the previous round as the gateway device corresponding to the data packet to be sent in the current round; and In response to determining that the round-trip delay corresponding to the data packets sent in the previous round is greater than the round-trip delay corresponding to the data packets sent in the previous round, the gateway device corresponding to the data packets to be sent in this round is re-determined, wherein the re-determined gateway device corresponding to the data packets to be sent in this round is one of the multiple gateway devices other than the gateway device used by the data packets sent in the previous round.

2. The method of claim 1, wherein: Acquiring the data packet to be sent by the sending end in this round includes: Determine the slowest transmission delay and the fastest transmission delay between the transmitting end and each of the plurality of gateway devices; Determining a first time interval based on a difference between the slowest transmission delay and the fastest transmission delay; and One or more data packets obtained from the sending end within the first time interval after the sending end sends the data packets in the previous round are obtained as the data packets to be sent in the current round.

3. The method of claim 1, wherein: Re-determining the gateway device corresponding to the data packet to be sent in this round includes: In response to the traffic speed limit value corresponding to each gateway device being the same, a gateway device is randomly determined from other gateway devices among the multiple gateway devices except the gateway device used by the data packet sent in the previous round as the gateway device corresponding to the data packet to be sent in this round.

4. The method of claim 1, wherein: Re-determining the gateway device corresponding to the data packet to be sent in this round includes: In response to the different traffic speed limit values ​​corresponding to each gateway device, the gateway device corresponding to the data packet to be sent in this round is determined based on a preset weight, wherein the weight is determined based on the traffic speed limit value.

5. The method of claim 1, wherein: Re-determining the gateway device corresponding to the data packet to be sent in this round includes: The round trip delay corresponding to each of the multiple gateway devices in the data packet transmission before the current round is obtained, so as to determine the gateway device corresponding to the data packet to be sent in the current round based on the round trip delay.

6. The method of claim 5, wherein: Determining the gateway device corresponding to the data packet to be sent in this round based on the round-trip delay includes: Determine a round trip delay corresponding to a most recent data packet transmission by each of the plurality of gateway devices; and Determine the gateway device corresponding to the minimum network delay in the round-trip delay corresponding to the most recent transmission of the data packet, and use the gateway device as the gateway device corresponding to the data packet to be sent in this round.

7. The method of claim 1, wherein: Re-determining the gateway device corresponding to the data packet to be sent in this round includes: Determine the throughput rate corresponding to each of the gateway devices, so as to determine the gateway device corresponding to the data packet to be sent in this round based on the throughput rate, wherein the throughput rate is determined based on the ratio of the number of bytes of the data packet sent in the previous round to the round-trip delay corresponding to the data packet sent in the previous round.

8. A traffic scheduling device for a network cluster, comprising: A setting unit configured to set a corresponding flow rate limit value for each of a plurality of gateway devices in the network cluster, wherein a data packet sent by a sender in the network cluster is transmitted via any one of the plurality of gateway devices; A first acquisition unit, configured to acquire a data packet to be sent by the sending end in this round; A second acquisition unit is configured to acquire the round trip delays corresponding to the data packets sent by the sending end in the first two rounds; a first determining unit configured to, in response to determining that the round trip delay corresponding to the data packet sent in the previous round is less than or equal to the round trip delay corresponding to the data packet sent in the previous round, use the gateway device used by the data packet sent in the previous round as the gateway device corresponding to the data packet to be sent in the current round; and The second determination unit is configured to redetermine the gateway device corresponding to the data packets to be sent in this round in response to determining that the round-trip delay corresponding to the data packets sent in the previous round is greater than the round-trip delay corresponding to the data packets sent in the previous round, wherein the redetermined gateway device corresponding to the data packets to be sent in this round is one of the other gateway devices among the multiple gateway devices except the gateway device used by the data packets sent in the previous round.

9. The device of claim 8, wherein: Acquiring the data packet to be sent by the sending end in this round includes: Determine the slowest transmission delay and the fastest transmission delay between the transmitting end and each of the plurality of gateway devices; Determining a first time interval based on a difference between the slowest transmission delay and the fastest transmission delay; and One or more data packets obtained from the sending end within the first time interval after the sending end sends the data packets in the previous round are obtained as the data packets to be sent in the current round.

10. The device according to claim 8, wherein: Re-determining the gateway device corresponding to the data packet to be sent in this round includes: In response to the traffic speed limit value corresponding to each gateway device being the same, a gateway device is randomly determined from other gateway devices among the multiple gateway devices except the gateway device used by the data packet sent in the previous round as the gateway device corresponding to the data packet to be sent in this round.

11. The device of claim 8, wherein: Re-determining the gateway device corresponding to the data packet to be sent in this round includes: In response to the different traffic speed limit values ​​corresponding to each gateway device, the gateway device corresponding to the data packet to be sent in this round is determined based on a preset weight, wherein the weight is determined based on the traffic speed limit value.

12. The device of claim 8, wherein: Re-determining the gateway device corresponding to the data packet to be sent in this round includes: The round trip delay corresponding to each of the multiple gateway devices in the data packet transmission before the current round is obtained, so as to determine the gateway device corresponding to the data packet to be sent in the current round based on the round trip delay.

13. The device of claim 12, wherein: Determining the gateway device corresponding to the data packet to be sent in this round based on the round-trip delay includes: Determine a round trip delay corresponding to a most recent data packet transmission by each of the plurality of gateway devices; and Determine the gateway device corresponding to the minimum network delay in the round-trip delay corresponding to the most recent transmission of the data packet, and use the gateway device as the gateway device corresponding to the data packet to be sent in this round.

14. The device of claim 8, wherein: Re-determining the gateway device corresponding to the data packet to be sent in this round includes: Determine the throughput rate corresponding to each of the gateway devices, so as to determine the gateway device corresponding to the data packet to be sent in this round based on the throughput rate, wherein the throughput rate is determined based on the ratio of the number of bytes of the data packet sent in the previous round to the round-trip delay corresponding to the data packet sent in the previous round.

15. An electronic device, comprising: at least one processor; as well as a memory communicatively coupled to the at least one processor; in The memory stores instructions that can be executed by the at least one processor, and the instructions are executed by the at least one processor to enable the at least one processor to perform the method according to any one of claims 1 to 7.

16. A non-transitory computer-readable storage medium storing computer instructions, wherein: The computer instructions are used to cause the computer to execute the method according to any one of claims 1-7.

17. A computer program product comprising a computer program, wherein: When the computer program is executed by a processor, the method according to any one of claims 1 to 7 is implemented.

Citation Information

Patent Citations

  • Remote service access path control method and related device

    CN106936709A