Traffic scheduling method and device and related equipment

By comparing the two traffic forwarding strategies in the controller, determining the target data flow of different ports and issuing corresponding forwarding entries, the problem of insufficient ACL resources in high-bandwidth intelligent computing scenarios is solved, and fine scheduling of traffic and effective utilization of ACL resources are achieved.

CN119996321AActive Publication Date: 2025-05-13NEW H3C TECH CO LTD
View PDF 11 Cites 0 Cited by

Patent Information

Application Number
CN202510358633.8
Authority / Receiving Office
CN · China
Patent Type
Applications(China)
Current Assignee / Owner
Filing Date
2025-03-25
Publication Date
2025-05-13
Estimated Expiration
2045-03-25

AI Technical Summary

Technical Problem

In high-bandwidth intelligent computing scenarios, the device's ACL resources are insufficient and the existing traffic-matrix functions cannot be used to achieve fine traffic path navigation.

Method used

By applying a traffic scheduling method in the controller, the data flow carried by each port is calculated based on the first traffic forwarding strategy of the target device and the second traffic forwarding strategy locally preset, and the corresponding scheduling strategy is obtained. Then compare the two strategies, determine the target data flow of different ports, and issue corresponding forwarding table entries to the target device to achieve fine scheduling of traffic.

Benefits of technology

This method reduces the number of traffic-matrix policies issuance, significantly reduces the utilization of ACL resources on the device side, and solves the problem of insufficient ACL resources on the device.

✦ Generated by Eureka AI based on patent content.

Smart Images

  • Figure CN119996321A_ABST
    Figure CN119996321A_ABST
Patent Text Reader

Abstract

The invention relates to the technical field of network communication, in particular to a traffic scheduling method and device and related equipment. The method comprises: based on a first traffic forwarding strategy of a target device, calculating data streams carried by each port of the target device to obtain a first traffic scheduling strategy, and based on a locally preset second traffic forwarding strategy, calculating data streams carried by each port of the target device to obtain a second traffic scheduling strategy; comparing the first traffic scheduling strategy with the second traffic scheduling strategy to determine a first port adopted for forwarding each data stream in the first traffic scheduling strategy and a second port adopted for forwarding each data stream in the second traffic scheduling strategy; according to a comparison result, determining different target data streams of the first port and the second port; and issuing a forwarding table entry corresponding to the target data stream in the second traffic scheduling policy to the target device, so that the target device forwards the target data stream based on the forwarding table entry.
Need to check novelty before this filing date? Find Prior Art

Description

Technical Field

[0001] The present application relates to the field of network communication technology, and in particular to a traffic scheduling method, device and related equipment. Background Art

[0002] The traffic bandwidth in current intelligent computing scenarios is getting higher and higher, requiring precise traffic path navigation to fully utilize the bandwidth of device ports. Currently, the traffic-matrix function is used to implement path navigation. The traffic-matrix implementation requires specifying the source and destination IP addresses as well as the device egress port to achieve precise traffic path navigation. However, one flow will occupy one ACL resource. In large-scale intelligent computing GPU scenarios, the device ACL resources are insufficient and cannot be applied. Summary of the invention

[0003] The present application provides a traffic scheduling method, device and related equipment.

[0004] In a first aspect, the present application provides a traffic scheduling method, which is applied to a controller, and the method includes:

[0005] Based on the first traffic forwarding strategy of the target device, the data flow carried by each port of the target device is calculated to obtain a first traffic scheduling strategy, and based on the locally preset second traffic forwarding strategy, the data flow carried by each port of the target device is calculated to obtain a second traffic scheduling strategy;

[0006] Comparing the first traffic scheduling strategy with the second traffic scheduling strategy to determine a first port used for forwarding each data flow in the first traffic scheduling strategy and a second port used for forwarding each data flow in the second traffic scheduling strategy;

[0007] According to the comparison result, determining the target data stream that is different between the first port and the second port;

[0008] The forwarding table entry corresponding to the target data flow is issued to the target device, so that the target device forwards the target data flow based on the forwarding table entry, wherein the forwarding table entry is the traffic scheduling policy corresponding to the target data flow in the second traffic scheduling policy.

[0009] Optionally, the target device is any network device in the network managed by the controller; the first traffic forwarding strategy is a hash algorithm; and the method further includes:

[0010] Obtain a first traffic forwarding strategy of the target device.

[0011] Optionally, the second traffic forwarding strategy is: based on the traffic bandwidth size carried by the target device, sharing the load of each data flow to each egress port;

[0012] The step of calculating the data flow carried by each port of the target device based on the locally preset second traffic forwarding strategy to obtain the second traffic scheduling strategy includes:

[0013] Obtaining the bandwidth size of each data stream carried by the target device;

[0014] Based on the bandwidth size of each data stream, the load of each data stream is shared to each outbound port of the target device;

[0015] Create a forwarding table entry corresponding to each data flow, including the source and destination addresses and outbound ports of the traffic.

[0016] Optionally, the second traffic forwarding strategy is: based on the number of data flows carried by the target device, sharing the load of each data flow to each egress port;

[0017] The step of calculating the data flow carried by each port of the target device based on the locally preset second traffic forwarding strategy to obtain the second traffic scheduling strategy includes:

[0018] Obtaining the number of traffic items of each data flow carried by the target device;

[0019] Based on the number of traffic items, the load of each data flow is shared to each egress port of the target device;

[0020] Create a forwarding table entry corresponding to each data flow, including the source and destination addresses and outbound ports of the traffic.

[0021] In a second aspect, the present application provides a flow scheduling device, applied to a controller, the device comprising:

[0022] A calculation unit, configured to calculate the data flow carried by each port of the target device based on the first traffic forwarding strategy of the target device to obtain a first traffic scheduling strategy, and calculate the data flow carried by each port of the target device based on the second traffic forwarding strategy preset locally to obtain a second traffic scheduling strategy;

[0023] A comparing unit, used to compare the first traffic scheduling strategy and the second traffic scheduling strategy to determine a first port used for forwarding each data flow in the first traffic scheduling strategy and a second port used for forwarding each data flow in the second traffic scheduling strategy;

[0024] A determination unit, configured to determine, according to the comparison result, a target data stream that uses a first port and a second port that are different;

[0025] A sending unit is used to send the forwarding table entry corresponding to the target data flow to the target device, so that the target device forwards the target data flow based on the forwarding table entry, wherein the forwarding table entry is the traffic scheduling policy corresponding to the target data flow in the second traffic scheduling policy.

[0026] Optionally, the target device is any network device in the network managed by the controller; the first traffic forwarding strategy is a hash algorithm; and the device further includes:

[0027] An acquisition unit is used to acquire a first traffic forwarding strategy of the target device.

[0028] Optionally, the second traffic forwarding strategy is: based on the traffic bandwidth size carried by the target device, sharing the load of each data flow to each egress port;

[0029] When calculating the data flow carried by each port of the target device based on the locally preset second traffic forwarding strategy and obtaining the second traffic scheduling strategy, the calculation unit is specifically used to:

[0030] Obtaining the bandwidth size of each data stream carried by the target device;

[0031] Based on the bandwidth size of each data stream, the load of each data stream is shared to each outbound port of the target device;

[0032] Create a forwarding table entry corresponding to each data flow, including the source and destination addresses and outbound ports of the traffic.

[0033] Optionally, the second traffic forwarding strategy is: based on the number of data flows carried by the target device, sharing the load of each data flow to each egress port;

[0034] When calculating the data flow carried by each port of the target device based on the locally preset second traffic forwarding strategy and obtaining the second traffic scheduling strategy, the calculation unit is specifically used to:

[0035] Obtaining the number of traffic items of each data flow carried by the target device;

[0036] Based on the number of traffic items, the load of each data flow is shared to each egress port of the target device;

[0037] Create a forwarding table entry corresponding to each data flow, including the source and destination addresses and outbound ports of the traffic.

[0038] In a third aspect, an embodiment of the present application provides a traffic scheduling device, the traffic scheduling device comprising:

[0039] A memory for storing program instructions;

[0040] The processor is used to call the program instructions stored in the memory, and execute the steps of the method as described in any one of the first aspects above according to the obtained program instructions.

[0041] In a fourth aspect, an embodiment of the present application further provides a computer-readable storage medium, wherein the computer-readable storage medium stores computer-executable instructions, and the computer-executable instructions are used to enable the computer to execute the steps of the method described in any one of the first aspects above.

[0042] In summary, the traffic scheduling method provided in the embodiment of the present application is applied to a controller, and the method includes: based on the first traffic forwarding strategy of the target device, calculating the data flow carried by each port of the target device to obtain a first traffic scheduling strategy, and based on the locally preset second traffic forwarding strategy, calculating the data flow carried by each port of the target device to obtain a second traffic scheduling strategy; comparing the first traffic scheduling strategy and the second traffic scheduling strategy to determine the first port used for forwarding each data flow in the first traffic scheduling strategy and the second port used for forwarding in the second traffic scheduling strategy; according to the comparison result, determining the target data flow with different first and second ports; sending the forwarding table entry corresponding to the target data flow to the target device, so that the target device forwards the target data flow based on the forwarding table entry, wherein the forwarding table entry is the traffic scheduling strategy corresponding to the target data flow in the second traffic scheduling strategy.

[0043] Using the traffic scheduling method provided in the embodiment of the present application, the controller calculates the scheduling strategy by bandwidth occupancy / number of traffic items. If the hash results of all traffic after the device-side scheduling strategy is adopted and the results of the controller-side scheduling strategy are consistent, the controller does not need to send any traffic-matrix strategy to the device and does not occupy the device ACL resources. If half of the results are consistent, only half of the previous resource occupancy is required. In the worst case, all traffic is inconsistent and is consistent with the original resource occupancy. In this way, the number of traffic-matrix strategies sent can be reduced, thereby greatly reducing the ACL resource occupancy on the device side. BRIEF DESCRIPTION OF THE DRAWINGS

[0044] In order to more clearly illustrate the embodiments of the present application or the technical solutions in the prior art, the drawings required for use in the embodiments of the present application or the description of the prior art will be briefly introduced below. Obviously, the drawings described below are only some embodiments recorded in this application. For ordinary technicians in this field, other drawings can also be obtained based on these drawings of the embodiments of the present application.

[0045] Figure 1A detailed flow chart of a traffic scheduling method provided in an embodiment of the present application;

[0046] Figure 2 A schematic diagram of the structure of a flow scheduling device provided in an embodiment of the present application;

[0047] Figure 3 A schematic diagram of the hardware architecture of a traffic scheduling device provided in an embodiment of the present application. DETAILED DESCRIPTION

[0048] The terms used in the embodiments of the present application are only for the purpose of describing specific embodiments, rather than limiting the present application. The singular forms of "a", "said" and "the" used in the present application and claims are also intended to include plural forms, unless the context clearly indicates other meanings. It should also be understood that the term "and / or" used herein refers to any or all possible combinations of one or more associated listed items.

[0049] It should be understood that, although the terms first, second, third, etc. may be used to describe various information in the embodiments of the present application, these information should not be limited to these terms. These terms are only used to distinguish the same type of information from each other. For example, without departing from the scope of the present application, the first information may also be referred to as the second information, and similarly, the second information may also be referred to as the first information. Depending on the context, in addition, the word "if" used may be interpreted as "at..." or "when..." or "in response to determination".

[0050] For example, see Figure 1 , which is a detailed flow chart of a traffic scheduling method provided in an embodiment of the present application, the method is applied to a controller, and the method includes the following steps:

[0051] Step 100: Based on the first traffic forwarding strategy of the target device, calculate the data flow carried by each port of the target device to obtain a first traffic scheduling strategy, and based on the locally preset second traffic forwarding strategy, calculate the data flow carried by each port of the target device to obtain a second traffic scheduling strategy.

[0052] It should be noted that in the embodiment of the present application, the target device is any network device in the network managed by the controller; the first traffic forwarding strategy is a hash algorithm; and the above method further includes the following steps:

[0053] Obtain a first traffic forwarding strategy of the target device.

[0054] That is to say, each network device in the network forwards the locally carried business traffic according to the hash algorithm, hashes the source and destination addresses of the received traffic packets to obtain the hash result, and determines the forwarding outbound port according to the hash result.

[0055] In an embodiment of the present application, for the target device, a hash algorithm (first traffic forwarding strategy) of the target device is obtained, and based on the first traffic forwarding strategy, a first traffic scheduling strategy for each data flow carried by the target device is determined (i.e., a table entry including the source and destination addresses and egress ports of each data flow).

[0056] At the same time, the controller calculates the individual flows carried by the target device according to the locally preset second traffic forwarding strategy, and obtains the second traffic scheduling strategy after load balancing. The second traffic scheduling strategy also includes the source and destination addresses and egress port entries of each data flow.

[0057] In the embodiment of the present application, the second traffic forwarding strategy is: based on the traffic bandwidth size carried by the target device, sharing the load of each data flow to each egress port;

[0058] Then, based on the locally preset second traffic forwarding strategy, the data flow carried by each port of the target device is calculated to obtain the second traffic scheduling strategy. A preferred implementation method is:

[0059] Obtain the bandwidth size of each data flow carried by the target device; based on the bandwidth size of each data flow, share the load of each data flow to each egress port of the target device; create a forwarding table entry corresponding to each data flow, including the source and destination address of the flow and the egress port.

[0060] That is, the controller adopts the second traffic forwarding strategy preset locally, and shares the load of each data stream to the egress port of the target device according to the bandwidth size of each data stream, so that the traffic size carried by each egress port is the same / similar.

[0061] For example, assuming that the total traffic bandwidth carried by the target device is 80G and the number of outbound ports is 8, after the target device hashes the 80G traffic based on the hash algorithm, the traffic bandwidth carried by each port is different. For example, port 1 carries 30G traffic and port 3 only carries 5G traffic.

[0062] The controller can distribute each data stream to different ports for forwarding according to the bandwidth of each data stream according to the preset second traffic forwarding strategy, so as to make the traffic bandwidth carried by each port around 10G as much as possible.

[0063] In this way, the first traffic forwarding strategy on the target device is a hash algorithm. The target device allocates each data stream to each egress port for forwarding based on the local hash algorithm. The controller also calculates the hash forwarding result based on the hash algorithm. At the same time, the controller shares the load of each data stream to the egress port of the target device according to the local load balancing strategy and the bandwidth size of each data stream. At this time, two traffic forwarding strategies appear. In actual applications, the two forwarding strategies can be completely the same, partially the same, or completely different.

[0064] In the embodiment of the present application, the second traffic forwarding strategy is: based on the number of data flows carried by the target device, the load of each data flow is shared to each egress port; then, based on the locally preset second traffic forwarding strategy, the data flows carried by each port of the target device are calculated to obtain the second traffic scheduling strategy, another preferred implementation method is:

[0065] Obtain the number of traffic items of each data flow carried by the target device; based on the number of traffic items, share the load of each data flow to each egress port of the target device; create a forwarding table entry corresponding to each data flow, including the source and destination address of the traffic and the egress port.

[0066] Similarly, the first traffic forwarding strategy on the target device is a hash algorithm. The target device distributes each data stream to each output port for forwarding based on the local hash algorithm. The controller also calculates the hash forwarding result based on the hash algorithm. At the same time, the controller load balances each data stream to each output interface according to the local load balancing strategy and the total number of traffic carried by the target device, so that the number of traffic carried by each output interface is the same or similar.

[0067] For example, assuming that the total number of traffic carried by the target device is 800 and the number of outbound ports is 8, after the target device hashes the 800 traffic flows based on the hash algorithm, the number of traffic flows carried by each port is different. For example, port 1 carries 130 traffic flows, while port 3 only carries 70 traffic flows.

[0068] The controller can distribute each data stream to different ports for forwarding according to the preset second traffic forwarding strategy and according to the total number of each data stream as much as possible, so that the number of traffic streams carried by each port is 100.

[0069] Step 110: Compare the first traffic scheduling strategy and the second traffic scheduling strategy to determine a first port used for forwarding each data flow in the first traffic scheduling strategy and a second port used for forwarding each data flow in the second traffic scheduling strategy.

[0070] Specifically, the controller compares the first forwarding table entry of each data flow included in the first traffic scheduling strategy with the second forwarding table entry of each data flow included in the second traffic scheduling strategy, and determines the first port used by each data flow in the first forwarding table entry and the second port used in the second forwarding table entry.

[0071] For example, taking flow 1 as an example, it is determined that the first port used by flow 1 in the corresponding first forwarding table entry is port 1, and the second port used in the corresponding second forwarding table entry is also port 1. Taking flow 2 as an example, it is determined that the first port used by flow 2 in the corresponding first forwarding table entry is port 3, and the second port used in the corresponding second forwarding table entry is also port 4.

[0072] Step 120: According to the comparison result, determine the target data streams that are different between the first port and the second port.

[0073] As can be seen from the above, based on the comparison between flow 1 and flow 2, it is determined that the second port used by flow 2 is different from the second port, so flow 2 is the target data flow.

[0074] Step 130: Send the forwarding table entry corresponding to the target data flow to the target device, so that the target device forwards the target data flow based on the forwarding table entry, wherein the forwarding table entry is the traffic scheduling policy corresponding to the target data flow in the second traffic scheduling policy.

[0075] In the embodiment of the present application, after different target data flows of the first port and the second port are determined according to the comparison results, only a forwarding table entry (eg, traffic-matrix) needs to be sent for the target data flow.

[0076] For example, the controller compares the result of the device hash calculation with the result of the controller calculation, removes the same part, and adjusts the outbound port of the different part through the traffic-matrix. For example, if the calculated source address of a certain traffic is 10.1.1.1 and the destination address is 11.6.1.1, and the hash goes through port 0 / 0 / 2, the controller calculates that it should go through port 0 / 0 / 3 based on the bandwidth usage, etc., and then sends the traffic-matrix policy:

[0077] ip source 10.1.1.1destination 11.6.1.1traffic-path interface Ten-GigabitEthernet0 / 0 / 3next-hop 117.117.5.3, let the traffic go through port 0 / 0 / 3. All inconsistent traffic can be delivered in the above way to achieve precise traffic path navigation.

[0078] For another example, the hash result of a device will not be that all traffic items are evenly distributed to each port. For example, if there are 800 traffic items and they go through 8 outbound ports, the hash distribution result is as shown in Table 1:

[0079] port Number of items 0 / 0 / 1 100 0 / 0 / 2 110 0 / 0 / 3 90 0 / 0 / 4 120 0 / 0 / 5 95 0 / 0 / 6 85 0 / 0 / 7 100 0 / 0 / 8 100

[0080] Table 1

[0081] By adopting the technical solution provided in the embodiment of the present application, only 10 traffic-matrix policies need to be issued to adjust 10 flows from 0 / 0 / 2 to 0 / 0 / 3, and 20 policies need to adjust 5 of the 20 flows of 0 / 0 / 4 to 0 / 0 / 5 and 15 to 0 / 0 / 6, and only 30 traffic-matrix policies need to be issued in total. This method can achieve even distribution of 100 flows per port and realize port load balancing.

[0082] The technical solution provided in this application is implemented. If the controller calculates the scheduling strategy based on bandwidth occupancy, and all traffic hash results are consistent with the controller calculation results, there is no need to issue any traffic-matrix strategy, and no ACL resources are occupied. If half of the results are consistent, only half of the previous resource occupancy is required. In the worst case, all traffic is inconsistent, and it is only consistent with the original resource occupancy.

[0083] If you want to ensure that each port has a consistent number of traffic flows, you only need to adjust the paths of the few flows that are unevenly shared. Originally, 800 policies were required, but now only 30 policies are needed, greatly reducing resource usage.

[0084] Furthermore, if you want to further reduce resource usage, you can fix the source IP and aggregate all traffic with the same outbound port through micro-segmentation to reduce the number of traffic-matrix policies issued.

[0085] Based on the same inventive concept as the above-mentioned embodiment of the invention, for example, refer to Figure 2 FIG. 1 is a schematic diagram of a flow scheduling device provided in an embodiment of the present application. The device is applied to a controller and includes:

[0086] The calculation unit 20 is used to calculate the data flow carried by each port of the target device based on the first traffic forwarding strategy of the target device to obtain a first traffic scheduling strategy, and calculate the data flow carried by each port of the target device based on the locally preset second traffic forwarding strategy to obtain a second traffic scheduling strategy;

[0087] A comparing unit 21, used to compare the first traffic scheduling strategy and the second traffic scheduling strategy to determine a first port used for forwarding each data flow in the first traffic scheduling strategy and a second port used for forwarding in the second traffic scheduling strategy;

[0088] A determination unit 22, configured to determine, based on the comparison result, a target data stream whose first port and second port are different;

[0089] The sending unit 23 is used to send the forwarding table entry corresponding to the target data flow to the target device so that the target device forwards the target data flow based on the forwarding table entry, wherein the forwarding table entry is the traffic scheduling policy corresponding to the target data flow in the second traffic scheduling policy.

[0090] Optionally, the target device is any network device in the network managed by the controller; the first traffic forwarding strategy is a hash algorithm; and the device further includes:

[0091] An acquisition unit is used to acquire a first traffic forwarding strategy of the target device.

[0092] Optionally, the second traffic forwarding strategy is: based on the traffic bandwidth size carried by the target device, sharing the load of each data flow to each egress port;

[0093] When calculating the data flow carried by each port of the target device based on the locally preset second traffic forwarding strategy and obtaining the second traffic scheduling strategy, the calculation unit 20 is specifically used to:

[0094] Obtaining the bandwidth size of each data stream carried by the target device;

[0095] Based on the bandwidth size of each data stream, the load of each data stream is shared to each outbound port of the target device;

[0096] Create a forwarding table entry corresponding to each data flow, including the source and destination addresses and outbound ports of the traffic.

[0097] Optionally, the second traffic forwarding strategy is: based on the number of data flows carried by the target device, sharing the load of each data flow to each egress port;

[0098] When calculating the data flow carried by each port of the target device based on the locally preset second traffic forwarding strategy and obtaining the second traffic scheduling strategy, the calculation unit 20 is specifically used to:

[0099] Obtaining the number of traffic items of each data flow carried by the target device;

[0100] Based on the number of traffic items, the load of each data flow is shared to each egress port of the target device;

[0101] Create a forwarding table entry corresponding to each data flow, including the source and destination addresses of the flow and the outbound port.

[0102] The above units may be one or more integrated circuits configured to implement the above methods, such as one or more application specific integrated circuits (ASIC), or one or more digital signal processors (DSP), or one or more field programmable gate arrays (FPGA). For another example, when a certain unit is implemented in the form of a processing element scheduling program code, the processing element may be a general-purpose processor, such as a central processing unit (CPU) or other processor that can call program code. For another example, these units may be integrated together and implemented in the form of a system-on-a-chip (SOC).

[0103] Furthermore, the flow scheduling device provided in the embodiment of the present application, from the hardware level, the hardware architecture diagram of the flow scheduling device can be seen in Figure 3 As shown, the traffic scheduling device may include: a memory 30 and a processor 31,

[0104] The memory 30 is used to store program instructions; the processor 31 calls the program instructions stored in the memory 30 and executes the above method embodiment according to the obtained program instructions. The specific implementation method and technical effect are similar and will not be repeated here.

[0105] Optionally, the present application also provides a controller, comprising at least one processing element (or chip) for executing the above method embodiment.

[0106] Optionally, the present application also provides a program product, such as a computer-readable storage medium, which stores computer-executable instructions, and the computer-executable instructions are used to enable the computer to execute the above method embodiments.

[0107] Here, the machine-readable storage medium may be any electronic, magnetic, optical or other physical storage device that may contain or store information, such as executable instructions, data, etc. For example, the machine-readable storage medium may be: RAM (RadomAccess Memory), volatile memory, non-volatile memory, flash memory, storage drive (such as hard disk drive), solid state drive, any type of storage disk (such as CD, DVD, etc.), or similar storage medium, or a combination thereof.

[0108] The systems, devices, modules or units described in the above embodiments may be implemented by computer chips or entities, or by products with certain functions. A typical implementation device is a computer, which may be in the form of a personal computer, a laptop computer, a cellular phone, a camera phone, a smart phone, a personal digital assistant, a media player, a navigation device, an email transceiver, a game console, a tablet computer, a wearable device or a combination of any of these devices.

[0109] For the convenience of description, the above device is described in various units according to their functions. Of course, when implementing the present application, the functions of each unit can be implemented in the same or multiple software and / or hardware.

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

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

[0112] Moreover, these computer program instructions can also be stored in a computer-readable memory that can guide a computer or other programmable data processing device to work in a specific manner, so that the instructions stored in the computer-readable memory produce a product including an instruction device, which implements the process Figure 1 A process or multiple processes and / or boxes Figure 1 The function specified in one or more boxes.

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

[0114] The above description is only a preferred embodiment of the present application and is not intended to limit the present application. Any modifications, equivalent substitutions, improvements, etc. made within the spirit and principles of the present application shall be included in the scope of protection of the present application.

Claims

1. A traffic scheduling method, characterized in that: Applied to a controller, the method comprises: Based on the first traffic forwarding strategy of the target device, the data flow carried by each port of the target device is calculated to obtain a first traffic scheduling strategy, and based on the locally preset second traffic forwarding strategy, the data flow carried by each port of the target device is calculated to obtain a second traffic scheduling strategy; Comparing the first traffic scheduling strategy with the second traffic scheduling strategy to determine a first port used for forwarding each data flow in the first traffic scheduling strategy and a second port used for forwarding each data flow in the second traffic scheduling strategy; According to the comparison result, determining the target data stream that is different between the first port and the second port; The forwarding table entry corresponding to the target data flow is issued to the target device, so that the target device forwards the target data flow based on the forwarding table entry, wherein the forwarding table entry is the traffic scheduling policy corresponding to the target data flow in the second traffic scheduling policy.

2. The method according to claim 1, characterized in that The target device is any network device in the network managed by the controller; The first traffic forwarding strategy is a hash algorithm; the method further includes: Obtain a first traffic forwarding strategy of the target device.

3. The method according to claim 1 or 2, characterized in that The second traffic forwarding strategy is: based on the traffic bandwidth carried by the target device, sharing the load of each data flow to each egress port; The step of calculating the data flow carried by each port of the target device based on the locally preset second traffic forwarding strategy to obtain the second traffic scheduling strategy includes: Obtaining the bandwidth size of each data stream carried by the target device; Based on the bandwidth size of each data stream, the load of each data stream is shared to each outbound port of the target device; Create a forwarding table entry corresponding to each data flow, including the source and destination addresses and outbound ports of the traffic.

4. The method according to claim 1 or 2, characterized in that: The second traffic forwarding strategy is: based on the number of data flows carried by the target device, sharing the load of each data flow to each egress port; The step of calculating the data flow carried by each port of the target device based on the locally preset second traffic forwarding strategy to obtain the second traffic scheduling strategy includes: Obtaining the number of traffic items of each data flow carried by the target device; Based on the number of traffic items, the load of each data flow is shared to each egress port of the target device; Create a forwarding table entry corresponding to each data flow, including the source and destination addresses and outbound ports of the traffic.

5. A flow scheduling device, characterized in that: Applied to a controller, the device comprises: A calculation unit, configured to calculate the data flow carried by each port of the target device based on the first traffic forwarding strategy of the target device to obtain a first traffic scheduling strategy, and calculate the data flow carried by each port of the target device based on the second traffic forwarding strategy preset locally to obtain a second traffic scheduling strategy; A comparing unit, used to compare the first traffic scheduling strategy and the second traffic scheduling strategy to determine a first port used for forwarding each data flow in the first traffic scheduling strategy and a second port used for forwarding each data flow in the second traffic scheduling strategy; A determination unit, configured to determine, according to the comparison result, a target data stream that uses a first port and a second port that are different; A sending unit is used to send the forwarding table entry corresponding to the target data flow to the target device, so that the target device forwards the target data flow based on the forwarding table entry, wherein the forwarding table entry is the traffic scheduling policy corresponding to the target data flow in the second traffic scheduling policy.

6. The device according to claim 5, characterized in that The target device is any network device in the network managed by the controller; The first traffic forwarding strategy is a hash algorithm; the device also includes: An acquisition unit is used to acquire a first traffic forwarding strategy of the target device.

7. The device according to claim 5 or 6, characterized in that The second traffic forwarding strategy is: based on the traffic bandwidth carried by the target device, sharing the load of each data flow to each egress port; When calculating the data flow carried by each port of the target device based on the locally preset second traffic forwarding strategy and obtaining the second traffic scheduling strategy, the calculation unit is specifically used to: Obtaining the bandwidth size of each data stream carried by the target device; Based on the bandwidth size of each data stream, the load of each data stream is shared to each outbound port of the target device; Create a forwarding table entry corresponding to each data flow, including the source and destination addresses and outbound ports of the traffic.

8. The device according to claim 5 or 6, characterized in that The second traffic forwarding strategy is: based on the number of data flows carried by the target device, sharing the load of each data flow to each egress port; When calculating the data flow carried by each port of the target device based on the locally preset second traffic forwarding strategy and obtaining the second traffic scheduling strategy, the calculation unit is specifically used to: Obtaining the number of traffic items of each data flow carried by the target device; Based on the number of traffic items, the load of each data flow is shared to each egress port of the target device; Create a forwarding table entry corresponding to each data flow, including the source and destination addresses and outbound ports of the traffic.

9. A flow scheduling device, characterized in that: The flow scheduling device comprises: A memory for storing program instructions; A processor is used to call the program instructions stored in the memory, and execute the steps of the method according to any one of claims 1 to 4 according to the obtained program instructions.

10. A computer-readable storage medium, characterized in that: The computer-readable storage medium stores computer-executable instructions, and the computer-executable instructions are used to enable the computer to execute the steps of the method according to any one of claims 1 to 4.

Citation Information

Patent Citations

  • Method and device for issuing multicast forwarding table items

    CN102946357A

  • SDN message transmitting method and device

    CN104283805A

  • Global network load balancing system, device and method

    CN105282043A

  • Out-of-band management method and device

    CN105939267A

  • Method for controlling conventional switch finely through SDN (Software Defined Network)

    CN106302220A