CN110365588B - Data flow scheduling method and device and SDN controller - Google Patents
Data flow scheduling method and device and SDN controller Download PDFInfo
- Publication number
- CN110365588B CN110365588B CN201910642679.7A CN201910642679A CN110365588B CN 110365588 B CN110365588 B CN 110365588B CN 201910642679 A CN201910642679 A CN 201910642679A CN 110365588 B CN110365588 B CN 110365588B
- Authority
- CN
- China
- Prior art keywords
- forwarding
- data stream
- forwarded
- priority
- forwarding path
- Prior art date
- Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
- Active
Links
Images
Classifications
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L45/00—Routing or path finding of packets in data switching networks
- H04L45/302—Route determination based on requested QoS
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L45/00—Routing or path finding of packets in data switching networks
- H04L45/302—Route determination based on requested QoS
- H04L45/306—Route determination based on the nature of the carried application
- H04L45/3065—Route determination based on the nature of the carried application for real time traffic
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L47/00—Traffic control in data switching networks
- H04L47/10—Flow control; Congestion control
- H04L47/24—Traffic characterised by specific attributes, e.g. priority or QoS
- H04L47/2416—Real-time traffic
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L47/00—Traffic control in data switching networks
- H04L47/10—Flow control; Congestion control
- H04L47/24—Traffic characterised by specific attributes, e.g. priority or QoS
- H04L47/2425—Traffic characterised by specific attributes, e.g. priority or QoS for supporting services specification, e.g. SLA
- H04L47/2433—Allocation of priorities to traffic types
Landscapes
- Engineering & Computer Science (AREA)
- Computer Networks & Wireless Communication (AREA)
- Signal Processing (AREA)
- Data Exchanges In Wide-Area Networks (AREA)
Abstract
The application provides a data flow scheduling method, a data flow scheduling device and an SDN controller, wherein through a path calculation scheme of priority dynamic processing, when a forwarding path capable of being used for forwarding a data flow to be forwarded does not exist in networking, whether an available forwarding path of the data flow to be forwarded exists is calculated under the condition that the existing data flow with high priority is subjected to path adjustment through supposing adjustment and analysis on the priority of the data flow to be forwarded, and if the available forwarding path exists, a first forwarding path originally used for forwarding a data flow with high priority to be removed is allocated for the data flow to be forwarded. Then, when it is further determined that a second forwarding path which can be used for forwarding the data stream to be removed exists in the networking, the data stream to be forwarded can be forwarded through the first forwarding path, and the data stream to be removed can be forwarded through the second forwarding path. Therefore, more data streams can be reasonably distributed to the networking for forwarding, the networking load capacity is improved, and the waste of bandwidth resources is reduced.
Description
Technical Field
The present application relates to the field of communications technologies, and in particular, to a data flow scheduling method and apparatus, and an SDN controller.
Background
In a Network controlled by an SDN (Software Defined Network) controller, different data stream traffic may be of different importance to users. For example, a user may desire that the network prioritize the quality of certain data streaming services, such as the transmission of important data, such as voice call data, video conferencing data, and the like. Meanwhile, the method can tolerate the slightly poor quality of certain data stream services, such as online video services and the like.
Based on this, the SDN controller can preferentially guarantee important services by setting priorities for different service data flows, direct high-priority services to forwarding paths with better quality and more sufficient bandwidth, and allow bandwidth resources of low-priority services to be occupied.
In the above scheme, the problem of relatively serious bandwidth waste can exist by ensuring the right of the high-priority service to preferentially select the forwarding path. For example, a new service data stream delivered later may only bypass a path with a higher path cost value to be forwarded because a critical forwarding path is occupied by service data with a high priority, thereby affecting transmission of the new service data stream. Meanwhile, bandwidth resources may be wasted.
Disclosure of Invention
In view of this, the present application provides a data flow scheduling method, a data flow scheduling device, and an SDN controller, so that more data flows can be reasonably distributed in networking, thereby improving the load capacity of networking and reducing the waste of bandwidth resources.
According to one aspect of the present application, an SDN controller is provided that may include one or more storage media and one or more processors in communication with the storage media. One or more storage media store machine-executable instructions that are executable by a processor. The processor executes the machine executable instructions when the SDN controller is running to perform the data flow scheduling methods described below.
According to another aspect of the present application, a data flow scheduling method is provided, which is applied to an SDN controller, where the SDN controller is configured to control forwarding of data flows in a networking, and the method includes:
acquiring a required bandwidth and a first priority of a data stream to be forwarded;
judging whether a forwarding path which can be used for forwarding the data stream to be forwarded exists in the networking according to the required bandwidth and the first priority;
if the networking does not have a forwarding path which can be used for forwarding the data flow to be forwarded, calculating a first forwarding path which can be used for forwarding the data flow to be forwarded if the first priority of the data flow to be forwarded is increased to a second priority;
acquiring a data stream to be removed when the first forwarding path is used for forwarding the data stream to be forwarded, wherein the sum of the occupied bandwidth of the data stream to be removed and the residual bandwidth of the first forwarding path is not less than the required bandwidth;
calculating a second forwarding path which can be used for forwarding the data stream to be removed in the networking;
and when a second forwarding path which can be used for forwarding the data flow to be removed is calculated, forwarding the data flow to be forwarded through the first forwarding path, and forwarding the data flow to be removed through the second forwarding path.
According to another aspect of the present application, there is provided a data flow scheduling apparatus applied to a software defined network SDN controller, the SDN controller being configured to control forwarding of data flows of multiple networks, the apparatus including:
the first acquisition module is used for acquiring the required bandwidth and the first priority of the data stream to be forwarded;
the judging module is used for judging that a forwarding path which can be used for forwarding the data stream to be forwarded exists in the networking according to the required bandwidth and the first priority;
a first calculating module, configured to calculate, if a forwarding path that is available for forwarding the data stream to be forwarded does not exist in the networking, a first forwarding path that is available for forwarding the data stream to be forwarded if a first priority of the data stream to be forwarded is increased to a second priority;
a second obtaining module, configured to obtain a to-be-removed data stream when the first forwarding path is used to forward the to-be-forwarded data stream, where a sum of an occupied bandwidth of the to-be-removed data stream and a remaining bandwidth of the first forwarding path is not less than the required bandwidth;
the second calculation module is used for calculating a second forwarding path which can be used for forwarding the data stream to be removed in the networking;
and the forwarding module is used for forwarding the data stream to be forwarded through the first forwarding path and forwarding the data stream to be removed through the second forwarding path when a second forwarding path which can be used for forwarding the data stream to be removed is calculated.
According to another aspect of the present application, there is provided a readable storage medium having stored thereon machine executable instructions, which when executed by a processor, can perform the steps of the data flow scheduling method of any of the above embodiments.
Based on any aspect, according to the path calculation scheme for dynamically processing the priority, when a forwarding path for forwarding the data stream to be forwarded does not exist in the networking, by performing assumed adjustment analysis on the priority of the data stream to be forwarded, whether an available forwarding path for the data stream to be forwarded exists is calculated under the condition of performing path adjustment on the existing data stream with high priority, and if so, a first forwarding path originally used for forwarding the data stream with high priority and to be removed is allocated to the data stream to be forwarded. Then, when it is further determined that a second forwarding path which can be used for forwarding the data stream to be removed exists in the networking, the data stream to be forwarded can be forwarded through the first forwarding path, and the data stream to be removed can be forwarded through the second forwarding path. Therefore, more data streams can be reasonably distributed to the networking for forwarding, the networking load capacity is improved, and the waste of bandwidth resources is reduced.
Drawings
In order to more clearly illustrate the technical solutions of the embodiments of the present application, the drawings that are required to be used in the embodiments will be briefly described below, it should be understood that the following drawings only illustrate some embodiments of the present application and therefore should not be considered as limiting the scope, and for those skilled in the art, other related drawings can be obtained from the drawings without inventive effort.
Fig. 1 shows a schematic networking diagram of a traffic data flow;
fig. 2 is a schematic flowchart illustrating a data flow scheduling method according to an embodiment of the present application;
FIG. 3 illustrates a schematic diagram of an exemplary networking;
fig. 4 shows a component structural diagram of an SDN controller provided in an embodiment of the present application.
Detailed Description
In order to make the purpose, technical solutions and advantages of the embodiments of the present application clearer, the technical solutions in the embodiments of the present application will be clearly and completely described below with reference to the drawings in the embodiments of the present application, and it should be understood that the drawings in the present application are for illustrative and descriptive purposes only and are not used to limit the scope of protection of the present application.
Additionally, it should be understood that the schematic drawings are not necessarily drawn to scale. The flowcharts used in this application illustrate operations implemented according to some of the embodiments of the present application. It should be understood that the operations of the flow diagrams may be performed out of order, and steps without logical context may be performed in reverse order or simultaneously. One skilled in the art, under the guidance of this application, may add one or more other operations to, or remove one or more operations from, the flowchart.
In addition, the described embodiments are only a part of the embodiments of the present application, and not all of the embodiments. The components of the embodiments of the present application, generally described and illustrated in the figures herein, can be arranged and designed in a wide variety of different configurations. Thus, the following detailed description of the embodiments of the present application, presented in the accompanying drawings, is not intended to limit the scope of the claimed application, but is merely representative of selected embodiments of the application. All other embodiments, which can be derived by a person skilled in the art from the embodiments of the present application without making any creative effort, shall fall within the protection scope of the present application.
Fig. 1 shows a schematic diagram of a networking of service data flows, which may include an SDN controller 100 and a plurality of forwarding nodes 200 communicatively connected to the SDN controller 100.
The SDN controller 100 may collect various types of data information in the networking, where the data information may include device information, link information, tunnel information, and the like of the forwarding node 200, and store the data information through a topology structure. The northbound interface in the SDN controller 100 may allow defining the forwarded service data flow and its forwarding path, so that the attribute of the service data flow that needs to be forwarded may be configured, such as the bandwidth range to be occupied, the path constraint condition, the priority, and the like. The SDN controller 100 may also search a topological graph structure for a traffic data flow to be forwarded for a suitable forwarding path that needs to satisfy the configured relevant policy.
Wherein, a brief exemplary network topology structure is shown in fig. 1, a plurality of forwarding nodes 200 are respectively represented by A, B, C, D, E, the forwarding nodes 200 respectively form three forwarding paths, for example, a forwarding path ABE, a forwarding path ACE, and a forwarding path ADE, and the SDN controller 100 may allocate one of the forwarding paths ABE, the forwarding path ACE, and the forwarding path ADE for data forwarding for a data flow in a network.
Each forwarding node 200 typically has an outbound link and an inbound link in addition to a source node at the head end and a destination node at the tail end of the forwarding path. The outbound link can be understood as a direct link starting from a certain node, and taking fig. 1 as an example, the outbound link of the node a is AB, AC, and AD; similarly, the outbound link of the node B is BE. The inbound link may be understood as a direct link with a certain node as a destination, and taking fig. 1 as an example, the node a is a source node, the inbound link is empty, and the inbound link of the node B is AB. Node E is the destination node and its outbound link is empty.
In general, a source forwarding node and a destination forwarding node are needed to forward each data stream in a networking, and taking fig. 1 as an example, if a data stream from a node a to a node E needs to be forwarded, the source forwarding node of the data stream is a, and the destination forwarding node is E.
Before explaining detailed technical solutions provided by embodiments of the present application, a basic concept related to the present application is first described below with reference to fig. 1.
In the exemplary network topology shown in fig. 1, the SDN controller 100 may count the occupied bandwidth of all data flows and the priority of each data flow on the network topology. Assuming that the larger the priority number is, the higher the priority is, according to the counted priority, the SDN controller 100 may obtain a bandwidth occupation table of each forwarding path divided by priority. Assuming that some data flows on a certain forwarding link l1 occupy bandwidth resources, as shown in table 1:
table 1 data flow priority and bandwidth comparison table for forwarding link l
Assuming that the total bandwidth of the forwarding link l1 is 1000M, the remaining bandwidth of the forwarding link l1 is 100M, which is denoted as unreservedBandwidth, as can be seen from table 1. When calculating the forwarding path, the data flow with high priority may occupy the bandwidth of the data flow with low priority, and the occupiable bandwidth of the data flow with high priority may be represented by the following formula:
wherein, bandwidth (f, l) is an available bandwidth of the data flow f on the forwarding link l1, and Pri is a priority of the data flow f.
For example, for data flow f3, since its priority is 2 and is greater than priority 1 of data flows f1 and f2, the bandwidth of data flows f1 and f2 can be occupied, and then the occupiable bandwidth of data flow f3 is 200M, and so on, the following table 2 can be obtained:
table 2 data flow priority and bandwidth comparison table for forwarding link l
In this way, a forwarding path can be selected for the data flow according to table 2, that is, the bandwidth of the data flow with lower priority can be occupied in the data flow with higher priority. Taking table 2 as an example, when the priority of a certain data flow is 4, then the data flow has 600M of available bandwidth to be allocated.
Taking table 2 as an example, assuming that the priority of a certain data flow f is 4 and the required bandwidth is 200M, when the data flow passes through the forwarding link l1, it can be known from table 2 that the priority of the data flow f is greater than the priorities of f1, f2 and f3, so that the bandwidth resources of f1, f2 and f3 can be preempted. However, since the remaining bandwidth of the forwarding link l1 still has 100M, the forwarding requirement can be satisfied only by preempting the bandwidth resources of f1 and f2, and thus the data streams to be removed of the forwarding link l1 are obtained as f1 and f 2.
Similarly, when the path calculation result for the data stream f is a path set R including at least one forwarding path, each forwarding path in the path set R needs to be processed to obtain all preempted to-be-removed data stream lists, and the bandwidth preemption lists shown in table 3 are summarized:
TABLE 3 Bandwidth preemption List
Further, each forwarding path in the networking may be subjected to priority listing to obtain a topology structure diagram containing priority bandwidth information, and subsequently, when performing path calculation, a path calculation result list of a certain data stream may be obtained through the topology structure diagram, as shown in table 4:
table 4 list of path computation results
Wherein the path calculation resultIs shown at the current priority PnPath R obtained belowmSince there is more than one forwarding path calculated in most cases, m may be an integer greater than or equal to 1, and different lists of data streams to be removed may be obtained for data streams of different priorities.
Fig. 2 shows a flowchart of a data flow scheduling method provided in an embodiment of the present application, which may be executed by the SDN controller 100 shown in fig. 1. It should be understood that, in other embodiments, the order of some steps in the data flow scheduling method of this embodiment may not be limited to the order in fig. 2 and the following specific embodiments, for example, the steps may be interchanged according to actual needs, or some steps may also be omitted or deleted. The detailed steps of the data flow scheduling method are described as follows.
Step S110, acquiring a required bandwidth and a first priority of a data stream to be forwarded.
In this embodiment, when networking a data flow to be forwarded, the SDN controller 100 obtains a required bandwidth and a first priority of the data flow to be forwarded, and uses the required bandwidth and the first priority as a basis for performing subsequent path computation to forward the data flow to be forwarded. The required bandwidth and the first priority of the data flow to be forwarded are obtained by a user through pre-configuration of the SDN controller 100 before the data flow to be forwarded is forwarded, where the first priority may be generally determined according to an importance degree of the data flow to be forwarded on a user requirement, so that the data flow to be forwarded may reasonably occupy forwarding resources in a networking according to the first priority.
Step S120, judging whether a forwarding path which can be used for forwarding the data stream to be forwarded exists in the networking according to the required bandwidth and the first priority. If no forwarding path for forwarding the data stream to be forwarded exists in the networking, the process proceeds to step S130.
Step S130, calculating a first forwarding path that can be used for forwarding the data stream to be forwarded if the first priority of the data stream to be forwarded is increased to the second priority.
Step S140, acquiring the first forwarding path for forwarding the to-be-removed data stream when the to-be-forwarded data stream is forwarded.
The data stream to be removed is an existing data stream that occupies part of the bandwidth resource on the first forwarding path and needs to be removed on the first forwarding path when the first forwarding path is adjusted to forward the data stream to be forwarded. And the sum of the occupied bandwidth of the data stream to be removed and the residual bandwidth of the first forwarding path is not less than the required bandwidth of the data stream to be forwarded.
Step S150, calculating a second forwarding path in the networking, which can be used for forwarding the data stream to be removed.
Step S160, when calculating a second forwarding path that can be used for forwarding the data stream to be removed, forwarding the data stream to be forwarded through the first forwarding path, and forwarding the data stream to be removed through the second forwarding path.
In addition, for step S120, if at least one forwarding path for forwarding the data stream to be forwarded exists in the networking, the data stream to be forwarded may be directly forwarded through the available forwarding path existing in the networking. When available forwarding paths exist, a better available forwarding path can be calculated to forward the data stream to be forwarded according to the first priority and the required bandwidth of the data stream to be forwarded in the existing various path calculation modes. For example, the data stream to be forwarded may be forwarded through a forwarding path with the largest first occupiable bandwidth or a forwarding path with the largest remaining bandwidth in the at least one forwarding path, so as to further save bandwidth resources and improve the load capacity of the network.
Based on the above steps, in this embodiment, when there is no forwarding path available for forwarding the data stream to be forwarded in the networking, by performing assumed adjustment analysis on the priority of the data stream to be forwarded, and under the condition of performing path adjustment on the existing data stream with high priority, calculating whether there is an available forwarding path of the data stream to be forwarded, and if there is an available forwarding path, allocating a first forwarding path, which is originally used for forwarding the data stream with high priority and to be removed, to the data stream to be forwarded. Then, when it is further determined that a second forwarding path which can be used for forwarding the data stream to be removed exists in the networking, the data stream to be forwarded can be forwarded through the first forwarding path, and the data stream to be removed can be forwarded through the second forwarding path. Therefore, more data streams can be reasonably distributed to the networking for forwarding, the networking load capacity is improved, and the waste of bandwidth resources is reduced.
It should be noted that, in this embodiment, the path calculation method is to assume that the first priority of the data stream to be forwarded is raised to find a first forwarding path that can be used for forwarding the data stream to be forwarded, and then implement forwarding of the data stream to be forwarded by networking by adjusting the data stream to be removed on the first forwarding path to another available forwarding path (second forwarding path), so as to reasonably raise the bandwidth resource utilization rate of networking. Specifically, the following priority raising process for the data stream to be forwarded assumes that the first priority of the data stream to be forwarded is raised for performing path calculation, but actually, when the data stream to be forwarded is forwarded, the relevant parameter of the first priority carried by the data stream to be forwarded is not changed.
Usually, the networking includes a large number of forwarding paths, and for step S120, when it is determined whether a forwarding path that can be used for forwarding a data stream to be forwarded exists in the networking, if a path determination is performed for each forwarding path, a large amount of computation may be generated, and the computation pressure of the SDN controller 100 is increased.
For this reason, as a possible implementation manner, the embodiment may first acquire a target forwarding path that satisfies a preset path constraint condition from networking. The preset path constraint condition may be a constraint condition for network state data such as time delay, jitter, packet loss rate, etc., and only a target forwarding path that satisfies the preset path constraint condition may participate in subsequent path calculation.
On this basis, it can be determined whether the first occupiable bandwidth of each forwarding link in each target forwarding path for the data stream to be forwarded is smaller than the required bandwidth. Wherein, since the data stream with higher priority can occupy the used bandwidth of the data stream with lower priority, the first occupiable bandwidth is the sum of the remaining bandwidth of the forwarding link and the occupied bandwidth of the data stream with priority lower than the first priority in the forwarding link.
In the judging process, if each target forwarding path comprises at least one forwarding link of which the first occupied bandwidth is smaller than the required bandwidth, judging that no forwarding path capable of being used for forwarding the data stream to be forwarded exists in the networking according to the first priority and the required bandwidth of the current data stream to be forwarded.
In addition, if the first available bandwidth of all forwarding links on at least one target forwarding path is not less than the required bandwidth of the data stream to be forwarded, it can be determined that a forwarding path available for forwarding the data stream to be forwarded exists in the networking.
It should be noted that in other embodiments, a one-to-one calculation may be performed for all forwarding paths in the network. For example, it may be calculated whether a first available bandwidth of each forwarding link in all forwarding paths in the networking for the data stream to be forwarded is less than a required bandwidth. And if the first available bandwidth of each forwarding link aiming at the data stream to be forwarded in all the forwarding paths is smaller than the required bandwidth, judging that no forwarding path which can be used for forwarding the data stream to be forwarded exists in the networking.
Further, as a possible implementation manner, to avoid increasing redundant computation, this embodiment may determine in advance whether an available forwarding path whose bandwidth that can be occupied is not less than the required bandwidth of the data stream to be forwarded exists in the networking if the first priority of the data stream to be forwarded is increased to the set highest priority.
In detail, if an available forwarding path that can occupy a bandwidth that is not less than a required bandwidth of the data stream to be forwarded still does not exist in the networking when the first priority of the data stream to be forwarded is increased to the set highest priority, it indicates that no matter how many the first priority of the data stream to be forwarded is set, the networking cannot have the available forwarding path to forward the data stream to be forwarded. In this case, it is not necessary to assume and increase the first priority of the data stream to be forwarded step by step and then gradually calculate the first forwarding path available for forwarding the data stream to be forwarded in the network, thereby avoiding redundant computation.
In addition, if it is determined that the first priority of the data stream to be forwarded is increased to the set highest priority, and an available forwarding path which can occupy a bandwidth not less than the required bandwidth of the data stream to be forwarded exists in the networking, it indicates that the available forwarding path is inevitably present in the networking to forward the data stream to be forwarded if the first priority of the data stream to be forwarded is increased to a certain priority. Based on this, in this embodiment, the priority dynamic interval of the data stream to be forwarded may be calculated according to the link information of the network, and the first priority of the data stream to be forwarded is assumed to be raised based on the priority dynamic interval to find the first forwarding path of the data stream to be forwarded, so as to reduce the calculation amount for subsequently calculating the first forwarding path.
As an alternative example, the link information of the network may include link bandwidths of the links in each forwarding path and occupied bandwidths and priorities of existing data flows in the links. On this basis, the lowest priority required by the data flow to be forwarded can be calculated according to the link information, so that if the priority of the data flow to be forwarded is the lowest priority, an available forwarding path for forwarding the data flow to be forwarded exists in the networking.
In detail, assume that the outbound link set of the source forwarding node is flsrc(i) The in-degree link set of the destination forwarding node is fldst(j) The outgoing degree link of the source forwarding node is n, the incoming degree link of the destination forwarding node is m, and the lowest priority required by the data stream to be forwarded is Pl. Then, the lowest priority PlThe following relationship is required:
after determining the lowest priority as PlThen, according to the lowest priority PlAnd obtaining the priority dynamic interval of the data flow to be forwarded according to the first priority Pri of the data flow to be forwarded.
In detail, a third priority Pri +1, which is one level higher than the first priority, is determined according to the first priority Pri. On the basis of the above-mentioned priority, according to the third priority Pri +1, waiting for the lowest priority PlAnd the highest priority P sethAnd determining a priority dynamic interval, wherein the minimum value of the priority dynamic interval is the larger value of the third priority and the lowest priority, and the maximum value is the set highest priority.
For example, the minimum value P of the priority dynamic intervals=max[Pri+1,Pl]Thus, a priority dynamic interval of [ P ] can be obtaineds,Ph]。
Based on the above description, for step S130, if the data flow to be forwarded is increased from the first priority to the second priority, the data flow is located in the dynamic interval of priority.
After the first forwarding path of the data stream to be forwarded is obtained through calculation, the data stream to be removed in the first forwarding path when the data stream to be forwarded is forwarded may be obtained according to the path calculation result list (for example, table 4) in the foregoing description portion, and after the data stream to be removed is removed, the bandwidth that may be occupied by the first forwarding path is not less than the required bandwidth of the data stream to be forwarded, so that the data stream to be forwarded may be forwarded through the first forwarding path.
However, since the priority of the data flow to be removed is originally higher than the first priority of the data flow to be forwarded, in order to ensure that the path allocation of the data flow to be forwarded does not affect the normal forwarding of the data flow with higher priority, after the first forwarding path is determined, it is further necessary to determine whether a second forwarding path that can be used for forwarding the data flow to be removed exists in the current networking. If a second forwarding path which can be used for forwarding the data stream to be removed exists in the current networking, the data stream to be forwarded can be forwarded through the first forwarding path, and the data stream to be removed can be forwarded through the second forwarding path.
If a second forwarding path which can be used for forwarding the data stream to be removed does not exist in the networking, recalculating a first forwarding path which can be used for forwarding the data stream to be forwarded in the networking after the second priority of the data stream to be forwarded is promoted to the next priority, then acquiring the recalculated first forwarding path for forwarding the data stream to be removed when the recalculated first forwarding path is used for forwarding the data stream to be forwarded, and judging whether a second forwarding path which can be used for forwarding the data stream to be removed exists in the networking.
And if a second forwarding path which can be used for forwarding the data stream to be removed exists in the networking, forwarding the data stream to be forwarded through the first forwarding path, and forwarding the data stream to be removed through the second forwarding path.
Therefore, under the condition that an available forwarding path of the data stream to be forwarded does not exist originally, the first forwarding path which can be used for forwarding the data stream to be forwarded in the networking is calculated by assuming a mode of dynamically changing the priority of the data stream to be forwarded, and reasonable adjustment of paths is performed on other data streams with high priorities in the networking, so that more data streams can be reasonably distributed in the networking for forwarding, and the data stream to be forwarded does not need to be forwarded by bypassing a path with high path cost value. Meanwhile, the method does not influence the normal forwarding of the data stream with higher priority, improves the networking load capacity and reduces the waste of bandwidth resources.
It is to be noted that in other possible embodiments, it may be chosen not to calculate the dynamic priority of the data flow to be forwarded. For example, on the basis of the first priority of the data flow to be forwarded, a manner of assuming escalation of the first priority step by step may be performed, and whether a first forwarding path that can be used for forwarding the data flow to be forwarded exists in the networking is calculated successively. If yes, continuing to execute according to the step S130; if not, the priority of the data flow to be forwarded is assumed to be increased by one level, and the steps are repeated until a first forwarding path which can be used for forwarding the data flow to be forwarded is found.
Optionally, in order to further reduce the calculation amount, when a second forwarding path that is available for forwarding the data stream to be removed does not exist in the current networking, the calculated result of the data stream path to be forwarded may be saved, where the path calculation result may include the calculated first forwarding path and the calculated first forwarding path, which are used for forwarding the data stream to be removed, and then after the priority of the data stream to be forwarded is continuously raised, the path calculation result of the data stream to be forwarded after the priority is raised is recalculated. Then, comparing whether the path calculation result after recalculation is consistent with the saved path calculation result: if the two paths are consistent, a second forwarding path which can be used for forwarding the data flow to be removed in the networking is not calculated any more, and the priority of the data flow to be forwarded is continuously improved; and if the recalculated path calculation result comprises other first forwarding paths different from the saved path calculation result, acquiring the other first forwarding paths for forwarding the data stream to be forwarded when the other first forwarding paths are used for forwarding the data stream to be forwarded.
In a possible implementation, the manner of calculating the second forwarding path that can be used for forwarding the data flow to be removed in the networking is illustrated as follows:
and calculating whether the second available bandwidth of each forwarding link in each target forwarding path for the data stream to be removed is smaller than the available bandwidth of the data stream to be removed or not aiming at each target forwarding path except the first forwarding path. And the second occupiable bandwidth is the sum of the residual bandwidth of the forwarding link and the occupied bandwidth of the data stream with the priority lower than that of the data stream to be removed in the forwarding link.
And if the second available bandwidth of each forwarding link in each target forwarding path is not less than the occupied bandwidth of the data stream to be removed, determining the target forwarding path as a second forwarding path.
In addition, in other possible embodiments, if the second available bandwidth of each forwarding link of a certain entry labeled forwarding path is not less than the available bandwidth of the data stream to be removed, it needs to be further determined whether the path cost value of the target forwarding path is not greater than the path cost value of the first forwarding path, and if not, the target forwarding path is determined as the second forwarding path. By the design, the path cost value of the forwarding path with higher priority can not be influenced when the forwarding path of the data stream to be removed is changed.
It should be noted that, when the determination result indicates that more than two second forwarding paths exist, one of the second forwarding paths that may occupy the largest bandwidth may be selected to forward the to-be-removed data stream, or one of the second forwarding paths may be randomly selected to forward the to-be-removed data stream, which is not limited in this embodiment.
In order to make the above embodiments fully understood by those skilled in the art, the data stream scheduling method provided in the embodiment of the present application is exemplarily described below with reference to fig. 3. Referring to the networking shown in fig. 3, forwarding nodes including A, B, C, D, E and the like respectively form forwarding paths ABE, ACE, ADE. The path cost values of the forwarding paths ABE, ACE and ADE are equal.
As shown in fig. 3, the data flows already existing in the exemplary network from the source node a to the destination node E include F1, F2, F3, and F4, respectively. Wherein, the occupied bandwidth BW of F1 is 50M, and the priority Pri is 2; the occupied bandwidth BW of F2 is 280M, and the priority Pri is 3; the occupied bandwidth BW of F3 is 120M, and the priority Pri is 5; the occupied bandwidth BW of F4 is 150M, and the priority Pri is 5. The total bandwidth of outgoing links AB, AC and AD of the source node A is 200M, 300M and 500M respectively. The total bandwidth of the inbound links BE, CE and DE of the destination node E is 1000M.
Assuming that the highest priority of the data flow in the exemplary networking is 6, a data flow F to be forwarded is next initiated from the source node a to the destination node E, where the required bandwidth BW of the data flow F to be forwarded is 280M, and the first priority Pri is 1, then an example of a data flow scheduling process of the data flow F to be forwarded is as follows:
in this example, it is assumed that the forwarding paths ABE, ACE, ADE are target forwarding paths that satisfy the preset path constraint condition.
Firstly, judging whether a forwarding path which can be used for forwarding the data flow F to be forwarded exists in the exemplary networking.
According to the example shown in fig. 3, it can be obtained that the priorities of the data flows F1, F2, F3, and F4 are all higher than the first priority of the data flow F to be forwarded, so that the data flow F to be forwarded cannot occupy the bandwidth resources of the data flows F1, F2, F3, and F4, and thus it can be calculated that the first occupiable bandwidth of the forwarding link AB is 150M, the first occupiable bandwidth of the forwarding link AC is 20M, and the first occupiable bandwidth of the forwarding link AC is 260M, which are all smaller than the required bandwidth 280M of the data flow F to be forwarded. Thus, the dynamic priority adjustment of the first priority of the data flow F to be forwarded is required to make it possible to forward the data flow F to be forwarded through the networking shown in fig. 3.
Secondly, since the highest priority in the networking is 6, it is determined whether an available forwarding path exists in the networking, where the available forwarding path can occupy a bandwidth not less than the required bandwidth (280M) of the data flow F to be forwarded if the priority of the data flow F to be forwarded is increased to 6. As can BE seen from fig. 3, if the priority of the data flow F to BE forwarded is increased to 6, the first available bandwidth of the forwarding link AB is 200M, the first available bandwidth of the forwarding link AC is 300M, the first available bandwidth of the forwarding link AD is 500M, and the remaining bandwidths of the forwarding links BE, CE, and DE are all sufficient, so that both the forwarding path ACE and the forwarding path ADE can BE used to forward the data flow F to BE forwarded.
And thirdly, calculating a priority dynamic interval of the data flow F to be forwarded. As can be seen from fig. 3, for the outbound link of the source node a, when the priority of the data flow F to be forwarded is increased to 4, the bandwidth of the forwarding link AC is sufficient, and when the priority of the data flow F to be forwarded is increased to 6, the bandwidth of the forwarding links AC and AD is sufficient; for the incoming link of the destination node E, when the priority of the data flow F to be forwarded is 1, the bandwidths of the forwarding links AB, AC, and AD are all sufficient, so that it can be obtained that when the priority of the data flow F to be forwarded is increased to 4, the outgoing link of the source node a and the incoming link of the destination node E both have links meeting the bandwidth requirement, that is, the lowest priority P required by the data flow F to be forwarded, i.e., the lowest priority P required by the data flow F to be forwardedl=4。
Next, the lowest priority Ps of the dynamic interval of priorities can be calculated according to Ps=max[Pri+1,Pl]Calculating to obtain Ps=max[2,4]If 4, the dynamic interval of priority of the data flow F to be forwarded is [4, 6]。
And fourthly, increasing the first priority of the data flow F to be forwarded to 4, calculating that the first forwarding path which can be used for forwarding the data flow F to be forwarded is a forwarding path ACE, and obtaining that the data flow to be removed in the forwarding path ACE is F2.
Since the priority of the to-be-removed data flow F2 is higher than the first priority of the to-be-forwarded data flow F, it needs to be determined whether there is a second forwarding path available for forwarding the to-be-removed data flow F2 in the networking. However, as can be seen from fig. 3, the second occupiable bandwidth of the forwarding link AB is 200M, and the second occupiable bandwidth of the forwarding link AD is 230M, which are both lower than the occupied bandwidth 280M of the to-be-removed data flow F2, so that at this time, there is no second forwarding path available for forwarding the to-be-removed data flow F2 in the networking.
Fifthly, since the first priority of the data flow to be forwarded is increased to 4 and the second forwarding path for forwarding the data flow F2 to be removed cannot be found, the current priority of the data flow F to be forwarded is further increased by one step in the priority dynamic interval [4, 6], that is, is increased to 5. Then, the first forwarding path that is calculated to be available for forwarding the data flow F to be forwarded is still the forwarding path ACE, and the data flow to be removed in the forwarding path ACE is still F2, which is the same as the above-mentioned path calculation result, so when the priority of the data flow F to be forwarded is raised to 5, there is still no second forwarding path that is available for forwarding the data flow F2 to be removed in the networking.
Sixth, after the priority of the data flow to be forwarded is further raised to 5 by one, a second forwarding path for forwarding the data flow F2 to be removed cannot be found, so that the current priority of the data flow F to be forwarded is continuously raised to one level in the priority dynamic interval [4, 6], that is, to 6, and the first forwarding path that can be used for forwarding the data flow F to be forwarded is calculated to be the forwarding path ACE and the forwarding path ADE. The data flow to be removed in the forwarding path ACE is F2, and the data flow to be removed in the forwarding path ADE is F3 and F4, and the forwarding path ACE is discarded because it is the same as the path calculation result.
Then, for the forwarding path ADE, since the remaining bandwidth of the forwarding link AD is 230M, only one of the data flows F3 and F4 needs to be removed to satisfy the requirement of forwarding the data flow F to be forwarded. Thus, F3, which occupies a smaller bandwidth, may be selected as the data stream to be removed. Since the priority of F3 is higher than the first priority of the data flow F to be forwarded, it needs to be determined whether there is a second forwarding path available for forwarding the data flow F3 to be removed in the networking.
As can be seen from fig. 3, the remaining bandwidth of forwarding link AB is 150M, the second occupiable bandwidth is 200M, the remaining bandwidth of forwarding link AC is 20M, and the second occupiable bandwidth is 200M, which both satisfy the requirement of forwarding data flow F3 to be removed, and the path cost values of forwarding path ABE and forwarding path ACE are the same as the forwarding path ADE on which data flow F3 to be removed is located. Therefore, the forwarding path ABE with larger remaining bandwidth can be selected as the second forwarding path for forwarding the to-be-removed data flow F3, and the path cost value of the forwarding path of the to-be-removed data flow F3 is not affected. Alternatively, the ACE may also be selected as the second forwarding path for forwarding the to-be-removed data flow F3.
Thus, through the above process, the data flow F to be forwarded (first forwarding path) may be forwarded through the forwarding path ADE, and after removing the data flow F3 in the forwarding path ADE, the data flow F3 may be forwarded through the forwarding path ABE or the forwarding path ACE (second forwarding path).
According to the path calculation scheme for priority dynamic processing, when the first available bandwidth of the forwarding links of the initial forwarding paths ABE, ACE and ADE is smaller than the required bandwidth of the data flow F to be forwarded, the first priority of the data flow F to be forwarded is dynamically changed in the priority dynamic interval from 1, and when the path capable of forwarding the data flow F to be forwarded does not exist originally, the first forwarding path ADE for forwarding the data flow F with high priority to be removed is allocated to the data flow F to be forwarded again after the priority of the data flow F to be forwarded is increased to 6. Then, it is further determined that a second forwarding path ABE or ACE for forwarding the data flow F3 to be removed exists in the networking, that is, the data flow F to be forwarded may be forwarded through the first forwarding path ADE, and the data flow F3 to be removed may be forwarded through the second forwarding path ABE or ACE, so that more data flows may be reasonably distributed in the networking for forwarding, thereby improving the load capacity of the networking and reducing the waste of bandwidth resources.
Fig. 4 shows a structural schematic diagram of the SDN controller 100 provided in an embodiment of the present application, where in this embodiment, the SDN controller 100 may include a storage medium 110, a processor 120, and a data flow scheduling device 130.
The processor 120 may be a general-purpose Central Processing Unit (CPU), a microprocessor, an Application-Specific Integrated Circuit (ASIC), or one or more Integrated circuits for controlling the execution of the program of the data stream scheduling method provided by the above method embodiments.
The present application may divide the functional modules of the data flow scheduling apparatus 130 according to the above method embodiments, for example, each functional module may be divided corresponding to each function, or two or more functions may be integrated into one processing module. The integrated module can be realized in a hardware mode, and can also be realized in a software functional module mode. It should be noted that, the division of the modules in the present application is schematic, and is only a logical function division, and there may be another division manner in actual implementation. For example, in the case of dividing each functional module according to each function, the data flow scheduling apparatus 130 shown in fig. 4 is only a schematic apparatus. The data flow scheduling apparatus 130 may include a first obtaining module 131, a determining module 132, a first calculating module 133, a second obtaining module 134, a second calculating module 135, and a forwarding module 136, and the functions of the functional modules of the data flow scheduling apparatus 130 are described in detail below.
The first obtaining module 131 is configured to obtain a required bandwidth and a first priority of a data stream to be forwarded. It is understood that the obtaining module 131 can be used to execute the step S110, and for the detailed implementation of the obtaining module 131, reference can be made to the content related to the step S110.
The determining module 132 is configured to determine, according to the required bandwidth and the first priority, that a forwarding path for forwarding the data stream to be forwarded exists in the networking. It is understood that the first determining module 132 can be used to perform the step S120, and for the detailed implementation of the first determining module 132, reference can be made to the contents related to the step S120.
The first calculating module 133 is configured to calculate, when there is no forwarding path that is available for forwarding the data stream to be forwarded in the networking, a first forwarding path that is available for forwarding the data stream to be forwarded after the first priority of the data stream to be forwarded is increased to the second priority. It is understood that the first calculating module 133 can be used to execute the step S130, and for the detailed implementation of the first calculating module 133, reference can be made to the above-mentioned contents related to the step S130.
A second obtaining module 134, configured to obtain a to-be-removed data stream when the first forwarding path is used to forward the to-be-forwarded data stream, where a sum of an occupied bandwidth of the to-be-removed data stream and a remaining bandwidth of the first forwarding path is not less than a required bandwidth. It is understood that the second obtaining module 134 can be used to perform the step S140, and for the detailed implementation of the second obtaining module 1343, reference can be made to the above description related to the step S140.
A second calculation module 135, configured to calculate a second forwarding path in the networking, where the second forwarding path is used to forward the data flow to be removed. It is understood that the second calculating module 135 can be used to execute the above step S150, and for the detailed implementation of the second calculating module 135, reference can be made to the above description of the step S150.
The forwarding module 136 is configured to forward the data stream to be forwarded through the first forwarding path and forward the data stream to be removed through the second forwarding path when the second forwarding path that is available for forwarding the data stream to be removed is calculated. It is understood that the forwarding module 136 may be configured to perform the step S160, and for a detailed implementation of the forwarding module 136, reference may be made to the content related to the step S160.
In a possible implementation manner, the determining module 132 may be specifically configured to obtain a target forwarding path that meets a preset path constraint condition from a networking, and then determine whether a first available bandwidth of each forwarding link in each target forwarding path for a data stream to be forwarded is smaller than a required bandwidth, where the first available bandwidth is a sum of a remaining bandwidth of the forwarding link and an available bandwidth of a data stream having a priority lower than a first priority in the forwarding link. And if each target forwarding path comprises at least one forwarding link of which the first occupied bandwidth is smaller than the required bandwidth, judging that no forwarding path for forwarding the data stream to be forwarded exists in the networking. And if the first available bandwidth of all the forwarding links on at least one target forwarding path is not less than the required bandwidth, determining that a forwarding path which can be used for forwarding the data stream to be forwarded exists in the networking.
In a possible implementation manner, if the first priority of the data stream to be forwarded is increased to the set highest priority, the determining module 132 may be further specifically configured to determine whether an available forwarding path exists in the networking, where a first available bandwidth of each forwarding link on the available forwarding path for the data stream to be forwarded is not less than a required bandwidth of the data stream to be forwarded, and the first available bandwidth is a remaining bandwidth of the forwarding link and an available bandwidth of a data stream in the forwarding link, where the priority of the data stream is lower than the first priority. If there is an available forwarding path, the first calculating module 133 further calculates a priority dynamic interval of the data stream to be forwarded according to the networking link information, where the second priority is located in the priority dynamic interval.
In a possible implementation manner, the first calculating module 133 may specifically calculate the dynamic interval of the priority of the data stream to be forwarded by:
firstly, according to the link bandwidth of each link on each target forwarding path in the networking and the occupied bandwidth and priority of the existing data stream in each link, calculating the lowest priority required by the data stream to be forwarded, so that if the priority of the data stream to be forwarded is the lowest priority, an available forwarding path for forwarding the data stream to be forwarded exists in the networking.
Then, a third priority is determined based on the first priority, the third priority being one level higher than the first priority.
And finally, determining a priority dynamic interval according to the third priority, the lowest priority and the set highest priority, wherein the minimum value of the priority dynamic interval is the larger value of the third priority and the lowest priority, and the maximum value of the priority dynamic interval is the set highest priority.
In a possible implementation manner, if it is determined that there is no second forwarding path available for forwarding the data flow to be removed in the networking, the first calculating module 133 further recalculates the first forwarding path available for forwarding the data flow to be forwarded in the networking if the second priority of the data flow to be forwarded is raised to the next priority. The second obtaining module 134 may further obtain the recalculated first forwarding path for forwarding the to-be-forwarded data stream. The second calculation module 135 may also calculate a second forwarding path in the networking that may be used to forward the data flow to be removed.
In a possible implementation manner, if at least one forwarding path that can be used for forwarding the data stream to be forwarded exists in the networking, the forwarding module 136 may also forward the data stream to be forwarded through any forwarding path in the at least one forwarding path.
In a possible implementation manner, the second calculation module 135 may specifically be configured to calculate, for each target forwarding path except for the first forwarding path, whether a second occupiable bandwidth of each forwarding link in each target forwarding path for the data stream to be removed is smaller than an occupied bandwidth of the data stream to be removed. And the second occupiable bandwidth is the sum of the residual bandwidth of the forwarding link and the occupied bandwidth of the data stream with the priority lower than that of the data stream to be removed in the forwarding link. And if the second available bandwidth of each forwarding link in each target forwarding path is not less than the occupied bandwidth of the data stream to be removed, determining the target forwarding path as a second forwarding path.
In another possible implementation manner, the second calculating module 135 may specifically calculate, for each target forwarding path other than the first forwarding path, whether a second occupiable bandwidth of each forwarding link in each target forwarding path for the data stream to be removed is smaller than an occupancy bandwidth of the data stream to be removed. And the second occupiable bandwidth is the sum of the residual bandwidth of the forwarding link and the occupied bandwidth of the data stream with the priority lower than that of the data stream to be removed in the forwarding link. If the second available bandwidth of each forwarding link of each target forwarding path is not less than the occupied bandwidth of the data stream to be removed, judging whether the path cost value of the target forwarding path is not greater than the path cost value of the first forwarding path, and if not, determining the target forwarding path as the second forwarding path.
Since the data stream scheduling apparatus 130 provided in the embodiment of the present application is another implementation form of the aforementioned data stream scheduling method, and the data stream scheduling apparatus 130 can be used to execute the method provided in the foregoing embodiment, the technical effect obtained by the method can refer to the foregoing method embodiment, and is not described herein again.
Further, based on the same inventive concept, embodiments of the present application further provide a computer-readable storage medium, where a computer program is stored on the computer-readable storage medium, and when the computer program is executed by a processor, the computer program performs the steps of the data stream scheduling method provided by the foregoing method embodiments.
In particular, the storage medium can be a general-purpose storage medium, such as a removable disk, a hard disk, or the like, and when executed, the computer program on the storage medium can execute the data stream scheduling method.
Embodiments of the present application are described with reference to flowchart illustrations and/or block diagrams of methods, apparatus (e.g., SDN controller 100 of fig. 4), and computer program products according to embodiments of the application. It will be understood that each flow and/or block of the flow diagrams and/or block diagrams, and combinations of flows and/or blocks in the flow diagrams and/or block diagrams, can be implemented by computer program instructions. These computer program instructions may be provided to a processor of a general purpose computer, special purpose computer, embedded processor, or other programmable data processing apparatus to produce a machine, such that the instructions, which execute via the processor of the computer or other programmable data processing apparatus, create means for implementing the functions specified in the flowchart flow or flows and/or block diagram block or blocks.
While the present application has been described in connection with various embodiments, other variations to the disclosed embodiments can be understood and effected by those skilled in the art in practicing the claimed application, from a review of the drawings, the disclosure, and the appended claims. In the claims, the word "comprising" does not exclude other elements or steps, and the word "a" or "an" does not exclude a plurality. A single processor or other unit may fulfill the functions of several items recited in the claims. The mere fact that certain measures are recited in mutually different dependent claims does not indicate that a combination of these measures cannot be used to advantage.
The above description is only for various embodiments of the present application, but the scope of the present application is not limited thereto, and any person skilled in the art can easily conceive of changes or substitutions within the technical scope of the present application, and all such changes or substitutions are included in the scope of the present application. Therefore, the protection scope of the present application shall be subject to the protection scope of the claims.
Claims (10)
1. A data flow scheduling method is applied to an SDN controller, the SDN controller is used for controlling data flow forwarding of networking, and the method comprises the following steps:
acquiring a required bandwidth and a first priority of a data stream to be forwarded;
judging whether a forwarding path which can be used for forwarding the data stream to be forwarded exists in the networking according to the required bandwidth and the first priority;
if the networking does not have a forwarding path which can be used for forwarding the data flow to be forwarded, calculating a first forwarding path which can be used for forwarding the data flow to be forwarded if the first priority of the data flow to be forwarded is increased to a second priority;
acquiring a data stream to be removed when the first forwarding path is used for forwarding the data stream to be forwarded, wherein the sum of the occupied bandwidth of the data stream to be removed and the residual bandwidth of the first forwarding path is not less than the required bandwidth, and the data stream to be removed is an existing data stream which occupies part of bandwidth resources on the first forwarding path and needs to be removed on the first forwarding path when the first forwarding path is adjusted to be used for forwarding the data stream to be forwarded;
calculating a second forwarding path which can be used for forwarding the data stream to be removed in the networking;
and when a second forwarding path which can be used for forwarding the data flow to be removed is calculated, forwarding the data flow to be forwarded through the first forwarding path, and forwarding the data flow to be removed through the second forwarding path.
2. The method according to claim 1, wherein said determining whether a forwarding path available for forwarding the data stream to be forwarded exists in the networking according to the required bandwidth and the first priority includes:
acquiring a target forwarding path meeting preset path constraint conditions from the networking;
judging whether a first available bandwidth of each forwarding link in each target forwarding path for the data stream to be forwarded is smaller than the required bandwidth, wherein the first available bandwidth is the sum of the residual bandwidth of the forwarding link and the available bandwidth of the data stream with the priority lower than the first priority in the forwarding link;
if each target forwarding path comprises at least one forwarding link of which the first occupiable bandwidth is smaller than the required bandwidth, determining that no forwarding path which can be used for forwarding the data stream to be forwarded exists in the networking;
and if the first available bandwidth of all the forwarding links on at least one target forwarding path is not less than the required bandwidth, determining that a forwarding path which can be used for forwarding the data stream to be forwarded exists in the networking.
3. The method according to claim 2, wherein said calculating a second forwarding path available for forwarding the data flow to be removed in the networking comprises:
for each target forwarding path except the first forwarding path, calculating whether a second occupiable bandwidth of each forwarding link in each target forwarding path for the data stream to be removed is smaller than the occupied bandwidth of the data stream to be removed; wherein, the second occupiable bandwidth is the sum of the residual bandwidth of the forwarding link and the occupied bandwidth of the data stream with the priority lower than that of the data stream to be removed in the forwarding link;
and if the second available bandwidth of each forwarding link in each target forwarding path is not less than the occupied bandwidth of the data stream to be removed, determining the target forwarding path as the second forwarding path.
4. The method according to claim 2, wherein said calculating a second forwarding path available for forwarding the data flow to be removed in the networking comprises:
for each target forwarding path except the first forwarding path, calculating whether a second occupiable bandwidth of each forwarding link in each target forwarding path for the data stream to be removed is smaller than the occupied bandwidth of the data stream to be removed; wherein, the second occupiable bandwidth is the sum of the residual bandwidth of the forwarding link and the occupied bandwidth of the data stream with the priority lower than that of the data stream to be removed in the forwarding link;
if the second available bandwidth of each forwarding link of each target forwarding path is not less than the occupied bandwidth of the data stream to be removed, determining whether the path cost value of the target forwarding path is not greater than the path cost value of the first forwarding path, and if not, determining the target forwarding path as the second forwarding path.
5. The method according to claim 1, wherein before determining whether a forwarding path available for forwarding the data stream to be forwarded exists in the networking according to the required bandwidth and the first priority, the method further comprises:
if the first priority of the data stream to be forwarded is increased to the set highest priority, judging whether an available forwarding path exists in the networking, wherein the first available bandwidth of each forwarding link on the available forwarding path for the data stream to be forwarded is not less than the required bandwidth of the data stream to be forwarded, and the first available bandwidth is the residual bandwidth of the forwarding link and the occupied bandwidth of the data stream with the priority lower than the first priority in the forwarding link;
if the available forwarding path exists, calculating a priority dynamic interval of the data stream to be forwarded according to the link information of the networking, wherein the second priority is located in the priority dynamic interval.
6. The method according to claim 5, wherein the calculating the dynamic interval of the priority of the data stream to be forwarded according to the link information of the network comprises:
calculating the lowest priority required by the data flow to be forwarded according to the link bandwidth of each link on each target forwarding path in the networking and the occupied bandwidth and priority of the existing data flow in each link, so that if the priority of the data flow to be forwarded is the lowest priority, an available forwarding path for forwarding the data flow to be forwarded exists in the networking;
determining a third priority according to the first priority, wherein the third priority is higher than the first priority by one level;
and determining the priority dynamic interval according to the third priority, the lowest priority and the set highest priority, wherein the minimum value of the priority dynamic interval is the larger value of the third priority and the lowest priority, and the maximum value of the priority dynamic interval is the set highest priority.
7. The method for scheduling data streams according to any one of claims 1 to 6, wherein the method further comprises:
if the fact that a second forwarding path which can be used for forwarding the data flow to be removed does not exist in the networking is judged, recalculating a first forwarding path which can be used for forwarding the data flow to be forwarded in the networking after the second priority of the data flow to be forwarded is raised to the next priority;
acquiring a to-be-removed data stream when the recalculated first forwarding path is used for forwarding the to-be-forwarded data stream;
calculating a second forwarding path which can be used for forwarding the data stream to be removed in the networking;
and if a second forwarding path which can be used for forwarding the data stream to be removed exists in the networking, forwarding the data stream to be forwarded through the first forwarding path, and forwarding the data stream to be removed through the second forwarding path.
8. The method for scheduling data streams according to any one of claims 1 to 6, wherein the method further comprises:
and if at least one forwarding path which can be used for forwarding the data flow to be forwarded exists in the networking, forwarding the data flow to be forwarded through any forwarding path in the at least one forwarding path.
9. A data flow scheduling apparatus applied to a Software Defined Network (SDN) controller, the SDN controller being configured to control forwarding of data flows of multiple networks, the apparatus comprising:
the first acquisition module is used for acquiring the required bandwidth and the first priority of the data stream to be forwarded;
the judging module is used for judging that a forwarding path which can be used for forwarding the data stream to be forwarded exists in the networking according to the required bandwidth and the first priority;
a first calculating module, configured to calculate, when a forwarding path that is available for forwarding the data stream to be forwarded does not exist in the networking, a first forwarding path that is available for forwarding the data stream to be forwarded if a first priority of the data stream to be forwarded is increased to a second priority;
a second obtaining module, configured to obtain a to-be-removed data stream when the first forwarding path is used to forward the to-be-forwarded data stream, where a sum of an occupied bandwidth of the to-be-removed data stream and a remaining bandwidth of the first forwarding path is not less than the required bandwidth, and the to-be-removed data stream is an existing data stream that occupies a part of bandwidth resources on the first forwarding path and needs to be removed on the first forwarding path when the first forwarding path is adjusted to forward the to-be-forwarded data stream;
the second calculation module is used for calculating a second forwarding path which can be used for forwarding the data stream to be removed in the networking;
and the forwarding module is used for forwarding the data stream to be forwarded through the first forwarding path and forwarding the data stream to be removed through the second forwarding path when a second forwarding path which can be used for forwarding the data stream to be removed is calculated.
10. An SDN controller, comprising a machine-readable storage medium having stored thereon machine-executable instructions and a processor that, when executed, causes the SDN controller to implement the data flow scheduling method of any one of claims 1-8.
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201910642679.7A CN110365588B (en) | 2019-07-16 | 2019-07-16 | Data flow scheduling method and device and SDN controller |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201910642679.7A CN110365588B (en) | 2019-07-16 | 2019-07-16 | Data flow scheduling method and device and SDN controller |
Publications (2)
Publication Number | Publication Date |
---|---|
CN110365588A CN110365588A (en) | 2019-10-22 |
CN110365588B true CN110365588B (en) | 2021-11-09 |
Family
ID=68219740
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201910642679.7A Active CN110365588B (en) | 2019-07-16 | 2019-07-16 | Data flow scheduling method and device and SDN controller |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN110365588B (en) |
Families Citing this family (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN116232997B (en) * | 2023-02-10 | 2024-04-09 | 中国联合网络通信集团有限公司 | Data forwarding method, device and storage medium |
CN117081984B (en) * | 2023-09-27 | 2024-03-26 | 新华三技术有限公司 | Route adjustment method and device and electronic equipment |
Citations (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US6449702B1 (en) * | 1999-12-30 | 2002-09-10 | Intel Corporation | Memory bandwidth utilization through multiple priority request policy for isochronous data streams |
CN103823780A (en) * | 2014-03-03 | 2014-05-28 | 东南大学 | Real-time field bus controlling and dispatching method |
CN106559273A (en) * | 2017-01-19 | 2017-04-05 | 中国人民解放军国防科学技术大学 | Towards the self-adaptive service quality priority dispatching method of Time Triggered Ethernet |
Family Cites Families (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN101127689B (en) * | 2006-08-15 | 2010-10-13 | 中国电信股份有限公司 | Method for minimizing priority seizing cost |
CN101227747A (en) * | 2008-02-04 | 2008-07-23 | 华为技术有限公司 | System, base station and method for allocating demodulation resource |
CN102333350B (en) * | 2011-10-19 | 2014-02-26 | 华为技术有限公司 | Method, device and system for improving experiences of low-traffic user |
CN103841646A (en) * | 2012-11-23 | 2014-06-04 | 北京信威通信技术股份有限公司 | Wireless resource allocation method capable of ensuring service quality |
CN108199961B (en) * | 2018-01-17 | 2021-09-21 | 新华三技术有限公司 | Flow forwarding control method and device |
-
2019
- 2019-07-16 CN CN201910642679.7A patent/CN110365588B/en active Active
Patent Citations (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US6449702B1 (en) * | 1999-12-30 | 2002-09-10 | Intel Corporation | Memory bandwidth utilization through multiple priority request policy for isochronous data streams |
CN103823780A (en) * | 2014-03-03 | 2014-05-28 | 东南大学 | Real-time field bus controlling and dispatching method |
CN106559273A (en) * | 2017-01-19 | 2017-04-05 | 中国人民解放军国防科学技术大学 | Towards the self-adaptive service quality priority dispatching method of Time Triggered Ethernet |
Also Published As
Publication number | Publication date |
---|---|
CN110365588A (en) | 2019-10-22 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
EP3361684B1 (en) | Route determining method and corresponding apparatus and system | |
CN102124701B (en) | Perform and support many bandwidth reservation requests | |
US20060056291A1 (en) | Mechanism to improve preemption behavior of resource reservations | |
US8730794B2 (en) | Priority service protection | |
WO2017024824A1 (en) | Aggregated link-based traffic management method and device | |
CN107332766B (en) | Method for improving network throughput based on software defined network flow scheduling | |
CN110365588B (en) | Data flow scheduling method and device and SDN controller | |
JP5570652B2 (en) | System and method for dynamically adjusting quality of service configuration based on real-time traffic | |
CN109617836B (en) | Intelligent bandwidth allocation method and system for satellite data transmission | |
US20070127419A1 (en) | Enforcing fairness in ad hoc mesh networks | |
CN112152933B (en) | Method and device for sending flow | |
EP1478133B1 (en) | Preemptive precedence scheduler for communications link bandwidth | |
CN111131061B (en) | Data transmission method and network equipment | |
CN112615798B (en) | Bandwidth allocation method and device based on elephant flow reservation | |
CN109391558B (en) | Queue control method and device | |
US11924110B2 (en) | System and method for prioritizing network traffic in a distributed environment | |
CN113765796B (en) | Flow forwarding control method and device | |
WO2018161754A1 (en) | Method and apparatus for recovering tunnel bandwidth resource | |
KR100446794B1 (en) | A traffic control technology in home network through adaptive priority control | |
CN113973342A (en) | Flow control method and device, electronic equipment and storage medium | |
CN112055382A (en) | Service access method based on refined differentiation | |
JPH11298523A (en) | Packet scheduling method | |
CN117971769B (en) | Method and related device for managing cache resources in chip | |
JP2002305538A (en) | Communication quality control method, server and network system | |
JP2008060964A (en) | Admission controller employing minimum guaranteed transfer rate and transfer data quantity, system and method |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
PB01 | Publication | ||
PB01 | Publication | ||
SE01 | Entry into force of request for substantive examination | ||
SE01 | Entry into force of request for substantive examination | ||
GR01 | Patent grant | ||
GR01 | Patent grant |