Network traffic scheduling method and storage medium
By building traffic relationship diagrams, grouping processing and preset model scheduling, the problem of high traffic scheduling complexity in TSN network is solved, and efficient traffic scheduling and network performance improvement is achieved.
Patent Information
- Application Number
- CN202510052679.7
- Authority / Receiving Office
- CN · China
- Patent Type
- Applications(China)
- Current Assignee / Owner
- Filing Date
- 2025-01-14
- Publication Date
- 2025-05-30
- Estimated Expiration
- 2045-01-14
AI Technical Summary
When dealing with time-sensitive network (TSN) traffic scheduling in complex network environments, the prior art faces difficulties such as time window management, network resource allocation, traffic path optimization and dynamic response to traffic changes, resulting in high computational complexity and long solution time.
By constructing the current flow relationship diagram of the traffic to be scheduled, the current module degree is determined, and traffic grouping is performed based on the module degree, and the key flow sets and multiple packet flow sets are divided. Then, the preset model is used to prioritize the scheduling of key flow sets and the packet flow sets are scheduled in parallel to achieve the target scheduling results.
This method reduces inter-group scheduling conflicts and scheduling delays, reduces scheduling complexity and time, thereby improving scheduling efficiency and network performance, and is suitable for different network traffic situations.
Smart Images

Figure CN120075157A_ABST
Abstract
Description
Technical Field
[0001] The present invention relates to the field of communication technologies, and in particular, to a network traffic scheduling method and a storage medium. Background Art
[0002] TSN (Time-Sensitive Networking) aims to enhance the real-time performance and reliability of Ethernet in industrial environments, so as to support key application scenarios such as intelligent manufacturing, autonomous driving, and energy management. And TSN extends a series of real-time communication mechanisms, such as deterministic scheduling, time synchronization, and traffic shaping, to provide the network with the data transmission ability of low latency and zero congestion packet loss.
[0003] However, in a complex network environment, there are many scheduling difficulties, including the management of time windows, the reasonable allocation of network resources, the optimization of traffic paths, and the dynamic response to traffic changes. Therefore, an effective traffic scheduling strategy is crucial for ensuring the performance of the TSN network. In the prior art, the scheduling problem of time-triggered flows in TSN is modeled as a linear programming problem and solved by an ILP (Integer Linear Programming) solver to obtain a scheduling scheme; or the scheduling problem of time-triggered flows in TSN is modeled as a constraint satisfaction problem and solved by an SMT (Satisfiability Modulo Theories) solver to obtain a scheduling scheme; and in the prior art, it is also proposed to determine the transmission path of traffic through conflict-free routing planning and then use ILP to solve the scheduling scheme; or jointly optimize the routing and scheduling of multicast data flows in TSN based on ILP, considering the impact of path selection during scheduling to avoid scheduling conflicts caused by poor path selection. Although the ILP or SMT solver can theoretically obtain an optimal scheduling scheme, the solver itself is highly sensitive to the problem scale. When the network scale expands and the number of time-sensitive flows increases, the number of variables in the scheduling problem will increase exponentially, which will lead to a significant increase in computational complexity and unacceptable solution time.
[0004] To improve the flexibility and efficiency of solving, for the problem of joint routing and scheduling of TSN multicast traffic in the prior art, a similarity metric for traffic is determined based on the routing path of the traffic and metrics such as traffic period and priority, and then spectral clustering is used for traffic grouping, and an ILP is used to sequentially solve the scheduling scheme for each grouped traffic; and it is proposed to consider the intersection between routing paths, frame length, period, etc. as the similarity metric of traffic, introduce normalized cut modeling and solve the flow grouping problem, and then use ILP to sequentially schedule each flow group. The similarity metric of traffic in packet scheduling determines the grouping efficiency. However, the prior art all uses empirical value factors to define the similarity, lacking flexibility, and will lead to inaccuracy in grouping, increasing the complexity of scheduling; and solving each group sequentially makes the solution time of large-scale networks still long. Therefore, a more reliable solution is needed. Summary of the Invention
[0005] An object of the present invention is to overcome the deficiencies in the prior art and provide a network traffic scheduling method and a storage medium, which can improve the scheduling efficiency and reduce the scheduling complexity.
[0006] To achieve the above object, the present invention is implemented by adopting the following technical solutions:
[0007] On the one hand, the present invention provides a network traffic scheduling method, and the method includes:
[0008] Construct a current traffic relationship graph corresponding to the traffic to be scheduled according to the traffic relationship between multiple traffic to be scheduled in the target network;
[0009] Take each node in the current traffic relationship graph as a community, and determine the current modularity of the current traffic relationship graph;
[0010] According to the current modularity, perform grouping processing on the current traffic relationship graph to determine a key flow set and multiple grouped flow sets;
[0011] Based on a preset model, preferentially schedule the key flow set, and after completing the scheduling of the key flow set, based on the preset model, parallelly schedule the multiple grouped flow sets to obtain a target scheduling result.
[0012] In some possible implementation manners, the performing grouping processing on the current traffic relationship graph according to the current modularity to determine a key flow set and multiple grouped flow sets includes:
[0013] Based on the current modularity, perform community division processing on the current traffic relationship graph to obtain a first traffic relationship graph and a community division set corresponding to the first traffic relationship graph;
[0014] Determine a second traffic relationship graph and a first modularity corresponding to the second traffic relationship graph according to the community division set.
[0015] When the first modularity is greater than the current modularity, use the second traffic relationship graph as the current traffic relationship graph and the first modularity as the current modularity; jump to the step of performing community division processing on the current traffic relationship graph based on the current modularity to obtain a first traffic relationship graph and a community division set corresponding to the first traffic relationship graph, until the first modularity is less than the current modularity.
[0016] Determine the key flow set and the multiple grouped flow sets according to the second traffic relationship graph corresponding to the first modularity.
[0017] In some possible implementation manners, the performing community division processing on the current traffic relationship graph based on the current modularity to obtain a first traffic relationship graph and a community division set corresponding to the first traffic relationship graph includes:
[0018] For each community of the current traffic relationship graph, incorporate the community into at least one adjacent community corresponding to the community to obtain at least one third traffic relationship graph, and determine a second modularity corresponding to each third traffic relationship graph; the adjacent community is a community in which there is a node connected to any node in the community.
[0019] Determine at least one modularity difference according to each second modularity and the current modularity.
[0020] Perform a descending order sorting on the at least one modularity difference to obtain a descending order sorting result.
[0021] Determine a target modularity difference ranked first according to the descending order sorting result.
[0022] When the target modularity difference is greater than zero, incorporate the community into the adjacent community corresponding to the target modularity difference.
[0023] Repeat the steps of for each community of the current traffic relationship graph, incorporating the community into at least one adjacent community corresponding to the community to obtain at least one third traffic relationship graph, and determining a second modularity corresponding to each third traffic relationship graph to when the target modularity difference is greater than zero, incorporating the community into the adjacent community corresponding to the target modularity difference, until there is no situation where the target modularity difference is greater than zero, to obtain a first traffic relationship graph and a community division set corresponding to the first traffic relationship graph.
[0024] In some possible implementation manners, determining the second traffic relationship graph and the first modularity corresponding to the second traffic relationship graph according to the community division set includes:
[0025] Regarding each community corresponding to the community division set as a new node;
[0026] Determining the second traffic relationship graph according to the connection relationship between each new node;
[0027] Determining the first modularity corresponding to the second traffic relationship graph according to the second traffic relationship graph.
[0028] In some possible implementation manners, determining the key flow set and the multiple grouped flow sets according to the second traffic relationship graph corresponding to the first modularity includes:
[0029] Traversing each node in the second traffic relationship graph;
[0030] When traversing to any node, determining whether the node has neighbor nodes that are not in the same community as the node; when the node has neighbor nodes that are not in the same community as the node, adding the node to the candidate node set; wherein, the neighbor node is a node that has an undirected edge with the node;
[0031] Sorting the nodes in the candidate node set in descending order according to the number of neighbor nodes that are not in the same community as the node, to obtain a descending-ordered node set;
[0032] Deleting the nodes in the descending-ordered node set in sequence until there is no connection relationship between the communities where the remaining nodes of the second traffic relationship graph are located;
[0033] Determining the key flow set according to the deleted nodes;
[0034] Determining the multiple grouped flow sets according to the community division set of the second traffic relationship graph and the remaining nodes.
[0035] In some possible implementation manners, constructing the current traffic relationship graph corresponding to the traffic to be scheduled according to the traffic relationship between multiple traffics to be scheduled in the target network includes:
[0036] Determining each node in the traffic relationship graph; wherein, each node corresponds to a traffic to be scheduled respectively;
[0037] Determining the undirected edges between each node according to whether there is path overlap in the transmission paths between each traffic to be scheduled;
[0038] Construct the traffic relationship graph according to the respective nodes and the undirected edges between the respective nodes.
[0039] In some possible implementation manners, the preferentially scheduling the critical flow set based on the preset model, and after completing the scheduling of the critical flow set, parallelly scheduling the multiple packet flow sets based on the preset model to obtain a target scheduling result includes:
[0040] Preferentially scheduling the critical flow set based on a preset solver and a preset model to obtain a first scheduling result;
[0041] After completing the scheduling of the critical flow set, parallelly scheduling the multiple packet flow sets based on a preset solver and a preset model to obtain a second scheduling result;
[0042] Determine the target scheduling result according to the first scheduling result and the second scheduling result.
[0043] In some possible implementation manners, the preset model is an integer linear programming (ILP) model, and the preset model is constructed in the following manner:
[0044] Determine an objective function for solving the minimum flow span within a scheduling period, and the objective function is shown as the following formula:
[0045] ;
[0046] ; (1)
[0047] where the traffic to be scheduled represents the rd traffic in the traffic set flowing through the target network; represents the traffic set flowing through the target network; represents the th transmission of the traffic to be scheduled; represents the number of transmissions of the traffic to be scheduled within the scheduling period, and , represents the scheduling period, is the transmission period of the traffic to be scheduled ; represents the flow span; represents the th starting transmission time of the traffic to be scheduled from the physical link ; represents the transmission delay of the traffic to be scheduled in the target network, and , Indicates the traffic to be scheduled of the frame length, indicating the bandwidth;
[0048] The objective function is subject to multiple constraint conditions, and the multiple constraint conditions include: contention-free constraint, no-wait constraint, delay constraint, offset constraint, and time-slot constraint;
[0049] The contention-free constraint is shown as follows:
[0050] ,
[0051] ;
[0052] (2)
[0053] ; (3)
[0054] where the traffic to be scheduled represents the th traffic in the traffic set flowing through the target network; represents the path of the traffic to be scheduled ; represents the path of the traffic to be scheduled ; represents the th transmission of the traffic to be scheduled; represents the number of transmissions of the traffic to be scheduled within the scheduling period; represents the th starting transmission time of the traffic to be scheduled from the physical link ; represents the transmission delay of the traffic to be scheduled in the target network;
[0055] The no-wait constraint is shown as follows:
[0056] ;
[0057] ; (4)
[0058] where, represents the th starting transmission time of the traffic to be scheduled from the physical link ;
[0059] The delay constraint is shown as follows:
[0060] ;
[0061] ; (5)
[0062] Wherein, is the traffic to be scheduled 's source node, is the traffic to be scheduled 's destination node, represents the traffic to be scheduled the th time starting from the physical link start sending time, represents the traffic to be scheduled the th time starting from the physical link start sending time; represents the delay threshold, that is, the maximum allowable delay time for the flow from the source node to the destination node;
[0063] The offset constraint is as follows:
[0064] ;
[0065] ; (6)
[0066] Wherein, represents the offset;
[0067] The time slice constraint is as follows:
[0068] , , ;
[0069] (7)
[0070] ; (8)
[0071] Wherein, represents the called time slice;
[0072] Determine the ILP model according to the objective function and the constraint conditions.
[0073] In some possible implementation manners, the source node, the destination node, and the physical link can be determined in combination with a network directed graph, and the network directed graph is determined in the following manner:
[0074] Determine each node in the network directed graph, and each node corresponds to a network device in the target network, and the network device includes a switch and a terminal device;
[0075] Determine the directed edges between the respective nodes according to the connection relationship and data transmission direction between each pair of network devices;
[0076] Construct the network directed graph according to the respective nodes and the directed edges between the respective nodes.
[0077] On the other hand, provided is a computer-readable storage medium storing at least one instruction and at least one program segment, the at least one instruction and the at least one program segment being loaded and executed by a processor to implement the network traffic scheduling method as described above.
[0078] Compared with the prior art, the beneficial effects achieved by the present invention are as follows:
[0079] In the present invention, by constructing a current traffic relationship graph corresponding to the traffic to be scheduled according to the traffic relationship between the traffic to be scheduled in the target network, and taking each node in the current traffic relationship graph as a community respectively, the current modularity of the current traffic relationship graph is determined. The current modularity can reflect the obvious degree of the modular characteristics presented by the connection between traffic nodes in the current traffic relationship graph, which is convenient for subsequent traffic grouping and reducing the scheduling complexity; then, according to the current modularity, the current traffic relationship graph is grouped to determine a critical flow set and multiple grouped flow sets. Based on a preset model, the critical flow set is preferentially scheduled, and after the scheduling of the critical flow set is completed, based on the preset model, multiple grouped flow sets are scheduled in parallel to obtain a target scheduling result, which can reduce inter-group scheduling conflicts and scheduling delays, and reduce the scheduling complexity and scheduling time, thereby improving the scheduling efficiency and network performance; and the technical solution provided by the present invention is adapted to different network traffic situations, and can also effectively reduce the flow span and scheduling time under a large traffic scale, thereby significantly improving the scheduling efficiency. BRIEF DESCRIPTION OF THE DRAWINGS
[0080] In order to more clearly illustrate the technical solutions and advantages in the embodiments of the present invention or the prior art, the following will briefly introduce the drawings required for the description of the embodiments or the prior art. Obviously, the following drawings are only some embodiments of the present invention, and those of ordinary skill in the art can obtain other drawings based on these drawings without creative efforts.
[0081] Figure 1 is a schematic flowchart of a network traffic scheduling method provided by an embodiment of the present invention;
[0082] Figure 2 is a schematic flowchart of the construction of a current traffic relationship graph provided by an embodiment of the present application;
[0083] Figure 3 It is a schematic flowchart for determining a key flow set and multiple packet flow sets provided by an embodiment of the present application;
[0084] Figure 4 It is a schematic flowchart for determining a first traffic relationship diagram and a community division set corresponding to the first traffic relationship diagram provided by an embodiment of the present application;
[0085] Figure 5 It is a schematic flowchart for determining a key flow set and multiple packet flow sets according to a second traffic relationship diagram corresponding to a first modularity provided by an embodiment of the present application;
[0086] Figure 6 It is another schematic flowchart for determining a key flow set and multiple packet flow sets provided by an embodiment of the present application;
[0087] Figure 7 It is a schematic diagram of a second traffic relationship diagram provided by an embodiment of the present application;
[0088] Figure 8 It is a schematic flowchart for preferentially scheduling a key flow set based on a preset model, and after completing the scheduling of the key flow set, parallelly scheduling multiple packet flow sets based on the preset model to obtain a target scheduling result provided by an embodiment of the present application;
[0089] Figure 9 It is a schematic structural diagram of a network traffic scheduling device provided by an embodiment of the present invention. Detailed implementation manners
[0090] In order to enable those skilled in the art to better understand the technical solutions in the present invention, the following will clearly and completely describe the technical solutions in the embodiments of the present invention with reference to the accompanying drawings in the embodiments of the present invention. Obviously, the described embodiments are only a part of the embodiments of the present invention, rather than all the embodiments. Based on the embodiments of the present invention, all other embodiments obtained by those of ordinary skill in the art without creative efforts shall fall within the protection scope of the present invention.
[0091] It should be noted that the terms "first", "second", etc. in the description, claims and above-mentioned drawings of the present invention are used to distinguish similar objects, and do not necessarily describe a specific order or sequence. It should be understood that the data used in this way can be interchanged under appropriate circumstances, so that the embodiments of the present invention described here can be implemented in an order other than those illustrated or described here. In addition, the terms "comprising" and "having" and any variations thereof are intended to cover non-exclusive inclusion. For example, a process, method, system, product or server comprising a series of steps or units does not necessarily have to be limited to those steps or units clearly listed, but may include other steps or units not clearly listed or inherent to these processes, methods, products or devices.
[0092] In the embodiments of the present invention, the term "module" or "unit" refers to a computer program with a predetermined function or a part of a computer program, which works together with other related parts to achieve a predetermined goal, and can be fully or partially implemented by using software, hardware (such as a processing circuit or a memory), or a combination thereof. Similarly, one processor (or multiple processors or memories) can be used to implement one or more modules or units. In addition, each module or unit can be a part of an overall module or unit that includes the function of that module or unit.
[0093] Various exemplary embodiments, features and aspects of the present invention will be described in detail below with reference to the drawings. The same reference numerals in the drawings denote elements with the same or similar functions. Although various aspects of the embodiments are shown in the drawings, the drawings do not have to be drawn to scale unless otherwise specified.
[0094] The special term "exemplary" here means "serving as an example, an embodiment or an illustration". Any embodiment described here as "exemplary" does not have to be construed as superior to or better than other embodiments.
[0095] The term "and / or" in this article is merely a description of the association relationship of associated objects, indicating that there can be three relationships. For example, A and / or B can represent: A exists alone, A and B exist simultaneously, and B exists alone. In addition, the term "at least one" in this article means any one of a plurality or any combination of at least two of a plurality. For example, including at least one of A, B, and C can represent including any one or more elements selected from the set composed of A, B, and C.
[0096] In addition, for a better description of the present invention, numerous specific details are given in the following specific embodiments. Those skilled in the art should understand that the present invention can also be implemented without some specific details. In some instances, methods, means, elements and circuits well-known to those skilled in the art are not described in detail in order to highlight the gist of the present invention.
[0097] Figure 1 It is a schematic flowchart of a network traffic scheduling method provided by an embodiment of the present invention. This specification provides method operation steps such as in the embodiment or flowchart, but based on routine or non-creative labor, more or fewer operation steps may be included. The step sequences listed in the embodiments are only one of the many execution sequences of the steps and do not represent the only execution sequence. When the actual system or server product executes, it can be executed in the order shown in the embodiment or the figure or executed in parallel (for example, in an environment of parallel processors or multi-threaded processing). Specifically, as Figure 1 shown, the above method may include:
[0098] S101: Construct a current traffic relationship graph corresponding to the traffic to be scheduled according to the traffic relationships among multiple traffics to be scheduled in the target network;
[0099] In a specific embodiment, the target network may be an industrial network, a network applied in the field of industrial automation for connecting industrial automation devices; optionally, the target network may be a TSN, and the TSN can ensure the real-time, accurate, reliable, and secure data transmission. The traffic to be scheduled may be the traffic to be scheduled flowing through the target network. The current traffic relationship graph may represent the relationships among the traffics to be scheduled.
[0100] In an alternative embodiment, Figure 2 it is a schematic flowchart of constructing a current traffic relationship graph provided by an embodiment of the present application; as Figure 2 shown, the above constructing a current traffic relationship graph corresponding to the traffic to be scheduled according to the traffic relationships among multiple traffics to be scheduled in the target network includes:
[0101] S201: Determine each node in the traffic relationship graph; where each node corresponds to a traffic to be scheduled respectively;
[0102] S202: Determine the undirected edges between each node according to whether there is path overlap in the transmission paths between each traffic to be scheduled;
[0103] S203: Construct a traffic relationship graph according to each node and the undirected edges between each node.
[0104] In a specific embodiment, the traffic relationship among the traffics to be scheduled may be whether there is path overlap in the transmission paths between each traffic to be scheduled. In the case where there is path overlap in the transmission paths between each traffic to be scheduled, an undirected edge is constructed between the nodes corresponding to the traffic to be scheduled; optionally, the edges in the traffic relationship graph may represent whether there is path overlap in the transmission paths between two traffics to be scheduled. Specifically, an adjacency matrix may be used Indicates the adjacency matrix The elements in Are as shown in the following formula:
[0105] ;
[0106] Wherein, Indicates whether there is an edge between node And node ; Indicates the transmission path of node ; Indicates the transmission path of node ; In the case where there is path overlap between the transmission paths of two flows to be scheduled, then there is an edge between the nodes corresponding to the flows to be scheduled, that is ; In the case where there is no path overlap between the transmission paths of two flows to be scheduled, then there is no edge between the nodes corresponding to the flows to be scheduled, that is .
[0107] In the above embodiment, by constructing a traffic relationship graph, the simplicity of determining the connection density between flows is improved, and it is convenient for subsequent traffic grouping and improves the accuracy of subsequent traffic grouping.
[0108] S102: Take each node in the current traffic relationship graph as a community and determine the current modularity of the current traffic relationship graph;
[0109] In a specific embodiment, when performing traffic grouping on the current traffic relationship graph, the community can be initialized, each node in the current traffic relationship graph is determined to belong to a community, and the current modularity of the current traffic relationship graph is determined. Optionally, the current modularity can characterize the obviousness of the modular structure of the current traffic relationship graph. Further, the current modularity can characterize the connection density of the nodes inside the module and the sparsity of the connections between the modules in the current traffic relationship graph, that is, the current modularity can characterize the connection density of the nodes inside the community and the sparsity of the connections between the communities in the current traffic relationship graph; Specifically, when the current modularity is greater than the preset value, the connections between the nodes in the current traffic relationship graph have obvious modular characteristics, the connections between the nodes inside the module are dense, and the connections between the modules are sparse; when the current modularity is less than the preset value, the connections between the nodes in the current traffic relationship graph do not have obvious modular characteristics, and the connections between the nodes in the current traffic relationship graph are randomly distributed. The current modularity can be specifically as shown in the following formula:
[0110] ;
[0111] Wherein, Represents the number of edges of the current traffic relationship graph; Represents node Whether there is an edge connection between the node and the node; Represents the degree of the node , that is, the number of edge connections of the node ; Represents the degree of the node , that is, the number of edge connections of the node ; Represents the community to which the node belongs; Represents the community to which the node belongs; Is an indicator function. When the node and the node are in the same community, that is , then . When the node and the node are not in the same community, that is , then ; Is a resolution parameter, optional, It can be set according to the actual application requirements. Specifically, , when , a larger module grouping will be obtained, which is suitable for identifying the global structure of the network; optionally, by appropriately increasing ( ), the adaptability to the low modularity network grouping can be improved.
[0112] In the above embodiment, the current modularity can be used to measure the quality of the node partitioning (community partitioning) of the current traffic relationship graph, which is convenient for subsequent traffic grouping and improves the convenience and accuracy of traffic grouping.
[0113] S104: Group the current traffic relationship graph according to the current modularity, and determine the critical flow set and multiple grouped flow sets;
[0114] In a specific embodiment, the critical flow set may include multiple cross-community communication flows. Specifically, the critical flow set can realize communication between different communities; the multiple grouped flow sets can be traffic sets corresponding to multiple communities, and each grouped flow set includes multiple traffic flows communicating in the corresponding community.
[0115] In an optional embodiment, Figure 3 Is a schematic flow chart for determining a critical flow set and multiple grouped flow sets provided by an embodiment of the present application; as Figure 3 shown, the above-mentioned grouping process of the current traffic relationship graph according to the current modularity to determine the critical flow set and multiple grouped flow sets includes:
[0116] S301: Based on the current modularity, perform community partitioning on the current traffic relationship graph to obtain a first traffic relationship graph and a community partitioning set corresponding to the first traffic relationship graph;
[0117] S302: Determine a second traffic relationship graph and a first modularity corresponding to the second traffic relationship graph according to the community partitioning set;
[0118] S303: Determine whether the first modularity is greater than the current modularity. If the first modularity is greater than the current modularity, execute S304; if the first modularity is less than the current modularity, execute S305;
[0119] S304: Take the second traffic relationship graph as the current traffic relationship graph, take the first modularity as the current modularity, and jump to the step of S301;
[0120] S305: Determine a key flow set and multiple grouped flow sets according to the second traffic relationship graph corresponding to the first modularity.
[0121] In a specific embodiment, the first traffic relationship graph may be the traffic relationship graph after community merging processing. The node connections of the first traffic relationship graph are still the node connections of the current traffic relationship graph, and the community partitioning of the first traffic relationship graph is different from that of the current traffic relationship graph. Optionally, the community partitioning set is a different set obtained by partitioning the nodes in the relationship graph. The second traffic relationship graph may be a graph constructed according to the community partitioning set, which is convenient for determining the first modularity corresponding to the second traffic relationship graph. For the specific refinement of the first modularity, reference may be made to the relevant refinement of the current modularity, which will not be elaborated here.
[0122] In a specific embodiment, that the first modularity is greater than the current modularity may indicate that the second traffic relationship graph corresponding to the first modularity has more obvious modular characteristics compared with the current traffic relationship graph. The node connections within the community are more dense, and the connections between communities are relatively sparse. In order to further improve the modularity and continue to obtain a graph with more obvious modular characteristics, take the second traffic relationship graph as the current traffic relationship graph and the first modularity as the current modularity; jump to the step of performing community merging processing on the current traffic relationship graph based on the current modularity to determine the first traffic relationship graph and the community partitioning set corresponding to the first traffic relationship graph, until the first modularity is less than the current modularity. At this time, the second traffic relationship graph corresponding to the first modularity is the global optimum.
[0123] In the above embodiments, when the first modularity is less than the current modularity, the determination of the second traffic relationship diagram corresponding to the first modularity can improve the clarity of the display of each community, simplify and clarify a complex network, and facilitate the determination of the key flow set and multiple grouped flow sets, improving the effectiveness and accuracy of the determination of the key flow set and multiple grouped flow sets.
[0124] In an alternative embodiment, Figure 4 is a schematic flow chart of determining a first traffic relationship diagram and a community division set corresponding to the first traffic relationship diagram provided by an embodiment of the present application; as Figure 4 shown, the above-mentioned community division processing of the current traffic relationship diagram based on the current modularity to obtain a first traffic relationship diagram and a community division set corresponding to the first traffic relationship diagram includes:
[0125] S401: For each community of the current traffic relationship diagram, incorporate the community into at least one adjacent community corresponding to the community to obtain at least one third traffic relationship diagram, and determine the second modularity corresponding to each third traffic relationship diagram;
[0126] S402: Determine at least one modularity difference according to each second modularity and the current modularity;
[0127] S403: Sort the at least one modularity difference in descending order to obtain a descending order result;
[0128] S404: Determine the target modularity difference at the first place in the sorted order according to the descending order result;
[0129] S405: When the target modularity difference is greater than zero, incorporate the community into the adjacent community corresponding to the target modularity difference; return to execute S401;
[0130] S406: When there is no target modularity difference greater than zero, obtain the first traffic relationship diagram and the community division set corresponding to the first traffic relationship diagram.
[0131] In a specific embodiment, an adjacent community is a community where there is a node connected to any node in the community. Optionally, if there is a connected edge between node and node , then node and node are neighbor nodes; then if there is a node in community connected to any node in community , then community and community are adjacent communities. Specifically, community is an adjacent community of community . At the same time, community It is also a community and its adjacent communities. The second modularity can be the modularity corresponding to the third traffic relationship graph after each adjacent community corresponding to the community is incorporated. For the specific refinement of the second modularity, reference can be made to the relevant refinement of the current modularity, which will not be elaborated here.
[0132] In a specific embodiment, the second modularity is subtracted from the current modularity to obtain a modularity difference; specifically, the current modularity is , and the second modularity is , then the modularity difference is . The target modularity difference can be the largest modularity difference among at least one modularity difference. Optionally, at least one modularity difference is sorted in ascending order to obtain an ascending order sorting result; according to the ascending order sorting result, the target modularity difference at the end of the sorting is determined.
[0133] In a specific embodiment, the target modularity difference can represent a modularity increment, which can be used to evaluate whether the incorporation of a community (node movement) helps to improve the overall modularity, thereby gradually optimizing the community partition. Specifically, when the target modularity difference is greater than zero, it indicates that the incorporation of a community (node movement) can improve the modularity of the traffic relationship graph. At this time, the community is incorporated into the adjacent community corresponding to the maximum modularity; when there is no target modularity difference greater than zero, it indicates that the incorporation of a community (node movement) cannot improve the modularity of the traffic relationship graph, that is, there is no community incorporation (node movement) that can improve the modularity of the traffic relationship graph. Therefore, when performing community incorporation to improve modularity until there is no community incorporation that can improve modularity, a first traffic relationship graph can be obtained, and the community partition set corresponding to the first traffic relationship graph can be determined.
[0134] In an alternative embodiment, the above determining the second traffic relationship graph and the first modularity corresponding to the second traffic relationship graph according to the community partition set includes:
[0135] Regarding each community corresponding to the community partition set as a new node;
[0136] Determining the second traffic relationship graph according to the connection relationship between each new node;
[0137] Determining the first modularity corresponding to the second traffic relationship graph according to the second traffic relationship graph.
[0138] In a specific embodiment, all nodes within each community corresponding to the community division set are regarded as a whole, that is, regarded as a new node, and the new node is used to represent the community. Among them, each node within the community still exists, and in subsequent steps, all nodes within the community are processed as a set, that is, a new node. Specifically, the new nodes in the second traffic relationship graph after community merging can be obtained by compressing the mutual connection relationships of each node in the first traffic relationship graph; each new node represents each community in the first traffic relationship graph, and the edge connecting two communities becomes the edge connecting two new nodes. Optionally, each new node in the second traffic relationship graph is respectively regarded as a community, and the first modularity of the second traffic relationship graph is determined.
[0139] In an alternative embodiment, Figure 5 is a schematic flowchart of a process for determining a key flow set and multiple grouped flow sets according to a second traffic relationship graph corresponding to a first modularity provided by an embodiment of the present application; as Figure 5 shown, the determination of the key flow set and multiple grouped flow sets according to the second traffic relationship graph corresponding to the first modularity includes:
[0140] S501: Traverse each node in the second traffic relationship graph; when any node is traversed, determine whether the node has neighbor nodes that are not in the same community as the node; when the node has neighbor nodes that are not in the same community as it, add the node to the candidate node set; where a neighbor node is a node that has an undirected edge with the node.
[0141] S502: Sort the nodes in the candidate node set in descending order according to the number of neighbor nodes that are not in the same community as the node, to obtain a descending-ordered node set.
[0142] S503: Delete the nodes in the descending-ordered node set one by one until there is no connection relationship between the communities where the remaining nodes in the second traffic relationship graph are located.
[0143] S504: Determine the key flow set according to the deleted nodes.
[0144] S505: Determine multiple grouped flow sets according to the community division set and the remaining nodes of the second traffic relationship graph.
[0145] In a specific embodiment, the candidate node set includes multiple nodes, which are nodes having neighbor nodes not in the same community as the node. There is no connection relationship between the communities where the remaining nodes of the second traffic relationship graph are located, indicating that the communities where the remaining nodes of the second traffic relationship graph are located are independent of each other; optionally, multiple grouped flow sets can correspond to the communities where the remaining nodes are located respectively. Optionally, the critical flow set includes the nodes deleted from multiple candidate node sets; each grouped flow set includes multiple remaining nodes in each community.
[0146] In a specific embodiment, according to the number of neighbor nodes not in the same community as the node, the nodes in the candidate node set are sorted in descending order to obtain a descending-ordered node set. Then, by sequentially deleting the nodes in the descending-ordered node set, it is possible to ensure that the minimum number of nodes is deleted to retain the original partition of the second traffic relationship graph, and it can be ensured that there are no edges connected between communities, that is, there is no relationship between communities, and the node relationships within the communities are close, which is convenient for subsequent parallel scheduling of multiple grouped flow sets.
[0147] In a specific embodiment, Figure 6 is another schematic flowchart of determining a critical flow set and multiple grouped flow sets provided by an embodiment of the present application; as Figure 6 shown, the above-mentioned grouping process of the current traffic relationship graph according to the current modularity to determine a critical flow set and multiple grouped flow sets may include:
[0148] S601: For each community of the current traffic relationship graph, incorporate the community into at least one adjacent community corresponding to the community to obtain at least one third traffic relationship graph, and determine the second modularity corresponding to each third traffic relationship graph;
[0149] S602: Determine at least one modularity difference according to each second modularity and the current modularity;
[0150] S603: Sort the at least one modularity difference in descending order to obtain a descending-ordered result;
[0151] S604: Determine the target modularity difference at the first place in the sorting according to the descending-ordered result;
[0152] S605: In the case where the target modularity difference is greater than zero, incorporate the community into the adjacent community corresponding to the target modularity difference; return to execute S601;
[0153] S606: In the case where there is no target modularity difference greater than zero, obtain a first traffic relationship graph and a community partition set corresponding to the first traffic relationship graph;
[0154] S607: Regard each community corresponding to the community partition set as a new node;
[0155] S608: Determine a second traffic relationship graph according to the connection relationships between each pair of new nodes;
[0156] S609: Take each new node in the second traffic relationship graph as a community respectively, and determine the first modularity corresponding to the second traffic relationship graph;
[0157] S610: Determine whether the first modularity is greater than the current modularity. If the first modularity is greater than the current modularity, execute S611; if the first modularity is less than the current modularity, execute S612;
[0158] S611: Take the second traffic relationship graph as the current traffic relationship graph, take the first modularity as the current modularity, and jump to the step of S601;
[0159] S612: Traverse each node in the second traffic relationship graph; when traversing to any node, determine whether the node has neighbor nodes that are not in the same community as the node; if the node has neighbor nodes that are not in the same community as the node, add the node to the candidate node set; wherein, a neighbor node is a node that has an undirected edge with the node;
[0160] S613: Sort the nodes in the candidate node set in descending order according to the number of neighbor nodes that are not in the same community as the node, to obtain a descending-ordered node set;
[0161] S614: Delete the nodes in the descending-ordered node set in sequence until there is no connection relationship between the communities where the remaining nodes of the second traffic relationship graph are located;
[0162] S615: Determine a critical flow set according to the deleted nodes;
[0163] S616: Determine a plurality of grouped flow sets according to the community partition set and the remaining nodes of the second traffic relationship graph.
[0164] In a specific embodiment, Figure 7 is a schematic diagram of a second traffic relationship graph provided by an embodiment of the present application; as Figure 7The figure shows the second traffic relationship diagram corresponding to the community division after optimizing the modularity when the target network is a multi-layer network structure. In the figure, it can be divided into 4 communities, namely the communities corresponding to 1, 2, 3, and 4. The connections between nodes within the community are dense, while the connections between different communities are sparse. This traffic relationship diagram presents obvious modular characteristics. Optionally, the traffic for cross-community communication is the key traffic. 1 is the determined set of key flows, including multiple key traffic flows. The traffic with frequent communication within its own community is the traffic. 2, 3, and 4 are respectively multiple grouped flow sets corresponding to the communities where the remaining nodes are located, and 2, 3, and 4 respectively include multiple traffic flows. By performing community division on the basis of optimizing the modularity, the effectiveness and accuracy of community division can be improved, thereby improving the effectiveness and efficiency of determining the set of key flows and multiple grouped flow sets.
[0165] S104: Based on a preset model, preferentially schedule the set of key flows, and after completing the scheduling of the set of key flows, based on the preset model, schedule multiple grouped flow sets in parallel to obtain the target scheduling result.
[0166] In a specific embodiment, the preset model can be a model including the traffic scheduling problem to be solved. Optionally, the preset model can be set according to the actual application requirements. Specifically, the preset model can be an ILP model. In traffic scheduling, the ILP model can optimize the utilization of network resources and ensure the smooth transmission of traffic. Optionally, preferentially scheduling the set of key flows based on the preset model can ensure that the coordination between communities is not affected by delays. After completing the scheduling of the set of key flows, scheduling multiple grouped flow sets in parallel based on the preset model can improve the scheduling efficiency.
[0167] In an alternative embodiment, Figure 8 is a schematic flow diagram of a method provided by an embodiment of the present application for preferentially scheduling a set of key flows based on a preset model, and after completing the scheduling of the set of key flows, scheduling multiple grouped flow sets in parallel based on the preset model to obtain the target scheduling result; as Figure 8 shown, the above-mentioned method of preferentially scheduling a set of key flows based on a preset model, and after completing the scheduling of the set of key flows, scheduling multiple grouped flow sets in parallel based on the preset model to obtain the target scheduling result includes:
[0168] S801: Based on a preset solver and a preset model, preferentially schedule the set of key flows to obtain a first scheduling result;
[0169] S802: After completing the scheduling of the set of key flows, based on the preset solver and the preset model, schedule multiple grouped flow sets in parallel to obtain a second scheduling result;
[0170] S803: Determine the target scheduling result based on the first scheduling result and the second scheduling result.
[0171] In a specific embodiment, a preset solver is used to solve a preset model to determine the optimal solution in the preset model; optionally, the preset solver can be set according to actual application requirements. When the preset model is an ILP model, the preset solver is an ILP solver. The target scheduling result is the optimal traffic scheduling scheme corresponding to the traffic in the target network determined based on the preset solver and the preset model. Optionally, the target scheduling result may include the selection of the transmission path of the traffic, the occupation of network resources, etc.
[0172] In a specific embodiment, initialize the time slice occupation, prioritize the scheduling of the critical flow set based on the preset solver and the preset model to obtain the first scheduling result; update the time slice occupation based on the first scheduling result to obtain the updated time slice occupation; parallelly schedule multiple packet flow sets according to the updated time slice occupation to obtain the second scheduling result; network resources can be preferentially allocated to the critical flow set, and then effectively allocated to multiple packet flow sets to improve the scheduling efficiency; and updating the time slice occupation based on the first scheduling result can flexibly adjust the remaining network resources, so as to improve the accuracy of resource allocation for scheduling multiple packet flow sets, and avoid waste of network resources, thereby improving the network resource utilization rate; at the same time, it can also reduce the scheduling conflicts and scheduling delays between different flow sets, thereby improving the flexibility of traffic scheduling and network stability, and reducing the scheduling complexity.
[0173] In an alternative embodiment, the preset model can be an integer linear programming (ILP) model, and the above preset model can be constructed in the following manner:
[0174] Determine the objective function for solving the minimum flow span within the scheduling period. The objective function is shown as the following formula:
[0175] ;
[0176] ; (1)
[0177] where the traffic to be scheduled represents the th traffic in the traffic set flowing through the target network; represents the traffic set flowing through the target network; represents the th transmission of the traffic to be scheduled; represents the number of transmissions of the traffic to be scheduled within the scheduling period, and ; represents the scheduling period. is the traffic to be scheduled of the sending period; represents the flow span; represents the traffic to be scheduled the time of the first start of sending from the physical link; represents the traffic to be scheduled transmission delay in the target network, and , represents the traffic to be scheduled frame length of; represents the bandwidth;
[0178] The objective function is subject to multiple constraints, including: contention-free constraint, no-wait constraint, delay constraint, offset constraint, and time-slot constraint;
[0179] The contention-free constraint is as follows:
[0180] ,
[0181] ;
[0182] (2)
[0183] ; (3)
[0184] wherein, the traffic to be scheduled represents the th traffic in the traffic set flowing through the target network; represents the traffic to be scheduled path of; represents the traffic to be scheduled path of; represents the traffic to be scheduled the th transmission; represents the traffic to be scheduled number of transmissions within the scheduling period; represents the traffic to be scheduled the time of the first start of sending from the physical link; represents the traffic to be scheduled transmission delay in the target network;
[0185] The no-wait constraint is as follows:
[0186] ;
[0187] ; (4)
[0188] Among them, represents the traffic to be scheduled the nth start sending time from the physical link
[0189] The delay constraint is as follows:
[0190] ;
[0191] ; (5)
[0192] Among them, is the source node of the traffic to be scheduled is the destination node of the traffic to be scheduled is the traffic to be scheduled is the traffic to be scheduled represents the traffic to be scheduled the nth start sending time from the physical link represents the traffic to be scheduled the nth start sending time from the physical link represents the delay threshold, that is, the maximum allowable delay time for the flow from the source node to the destination node;
[0193] The offset constraint is as follows:
[0194] ;
[0195] ; (6)
[0196] Among them, represents the offset;
[0197] The time slice constraint is as follows:
[0198] , , ;
[0199] (7)
[0200] ; (8)
[0201] Among them, represents the time slice that has been called;
[0202] Determine the ILP model according to the objective function and the constraint conditions.
[0203] In a specific embodiment, the flow span is the maximum time for all flows in the target network to complete transmission, that is, the time span from the start of flow transmission to the completion of the last flow transmission. Minimizing the flow span can be the scheduling problem to be solved; minimizing the flow span can improve the network throughput and reduce latency; and improve the stability and reliability of the network. In the target network, different flows to be scheduled correspond to different sending periods, and the scheduling period is the least common multiple of the sending periods of all flows to be scheduled.
[0204] In a specific embodiment, the contention-free constraint indicates that in the same time period, any two flows to be scheduled must avoid conflicts when transmitting on the same link; that is, for the transmission of any flow to be scheduled, if it uses a certain link, then this link cannot be occupied by other flows to be scheduled during this time period. The no-waiting constraint indicates that the flow to be scheduled is not allowed to wait at any node during the processing; that is, once the flow to be scheduled starts to be sent, it needs to continuously pass through the entire network until it is received by the destination, and no stagnation or waiting time is allowed during the transmission process; the no-waiting constraint can improve the utilization efficiency of network resources and ensure that the flow to be scheduled does not generate delay during the transmission. The delay constraint indicates a specific maximum delay that must be satisfied when transmitting the flow to be scheduled in the network; the delay constraint can ensure that the flow to be scheduled does not exceed a predetermined delay threshold during the transmission. The offset constraint indicates the delay time when the flow to be scheduled starts to be transmitted relative to a certain reference time in the flow scheduling; that is, the offset helps to define when the flow to be scheduled starts in each cycle, and the offset constraint can ensure that the start time of the flow to be scheduled in the periodic scheduling is consistent, facilitating the coordination and management of the flow and reducing conflicts and delays. The time-slot constraint indicates that multiple packet flows scheduled in parallel cannot occupy the time slots of the critical flows that have been preferentially scheduled; the occupancy of the time slots that have been scheduled can be recorded as time_slot_occupancy= then the unscheduled flows cannot occupy these time slots.
[0205] In an alternative embodiment, the source node, the destination node, and the physical link can be determined in combination with the network directed graph, and the above network directed graph can be determined in the following manner:
[0206] Determine each node in the network directed graph, and each node corresponds to a network device in the target network, and the network devices include switches and terminal devices;
[0207] Determine the directed edges between each node according to the connection relationship and the data transmission direction between each network device;
[0208] Construct a network directed graph based on each node and the directed edges between each pair of nodes.
[0209] In a specific embodiment, a switch is used for forwarding and scheduling data flows (traffic) in a target network, and a terminal device is used for generating and receiving data flows (traffic). The set of all nodes in the network directed graph can be represented by Then represents a switch or a terminal device; the set of directed edges between nodes can be represented by Then represents the connection between node and node ; the directed edge represents that the data flow is transmitted from node to node .
[0210] In a specific embodiment, the set of all data flows (traffic) flowing through the target network can be represented by where any flow can be represented by a six-tuple where, is the source node of flow , is the destination node of flow , is the frame length of flow , is the sending period of flow , represents the maximum allowable delay of the flow from the source node to the destination node, represents the path of flow , when flow starts sending from the source node and passes through node to reach the destination node , then the path can be represented as .
[0211] As can be seen from the technical solutions provided in the embodiments of this specification above, this specification constructs a current traffic relationship graph corresponding to the to-be-scheduled traffic according to the traffic relationship between the to-be-scheduled traffic in the target network, and takes each node in the current traffic relationship graph as a community to determine the current modularity of the current traffic relationship graph. The current modularity can reflect the obviousness of the modular characteristics presented by the connections between traffic nodes in the current traffic relationship graph, facilitating subsequent traffic grouping and reducing the scheduling complexity. Then, according to the current modularity, the current traffic relationship graph is grouped to determine a critical flow set and multiple grouped flow sets. Based on a preset model, the critical flow set is preferentially scheduled, and after the scheduling of the critical flow set is completed, based on the preset model, the multiple grouped flow sets are scheduled in parallel to obtain a target scheduling result, which can reduce inter-group scheduling conflicts and scheduling delays, and reduce the scheduling complexity and scheduling time, thereby improving the scheduling efficiency and network performance. And the technical solution provided by the present invention is applicable to different network traffic situations. Under a large traffic scale, it can also effectively reduce the flow span and scheduling time, thereby significantly improving the scheduling efficiency.
[0212] An embodiment of the present invention further provides a network traffic scheduling device. Correspondingly, Figure 9 is a schematic structural diagram of a network traffic scheduling device provided by an embodiment of the present invention; as Figure 9 shown, the above device includes:
[0213] A relationship graph construction module 910, configured to construct a current traffic relationship graph corresponding to the to-be-scheduled traffic according to the traffic relationship between multiple to-be-scheduled traffic in the target network;
[0214] A data determination module 920, configured to take each node in the current traffic relationship graph as a community and determine the current modularity of the current traffic relationship graph;
[0215] A traffic determination module 930, configured to perform grouping processing on the current traffic relationship graph according to the current modularity to determine a critical flow set and multiple grouped flow sets;
[0216] A traffic scheduling module 940, configured to preferentially schedule the critical flow set based on a preset model, and after the scheduling of the critical flow set is completed, schedule the multiple grouped flow sets in parallel based on the preset model to obtain a target scheduling result.
[0217] In an optional embodiment, the traffic determination module 930 includes:
[0218] A community division unit, configured to perform community division processing on the current traffic relationship graph based on the current modularity to obtain a first traffic relationship graph and a community division set corresponding to the first traffic relationship graph;
[0219] A first information determination unit, configured to determine a second traffic relationship graph and a first modularity corresponding to the second traffic relationship graph according to the community division set;
[0220] A second information determination unit, when the first modularity is greater than the current modularity, uses the second traffic relationship graph as the current traffic relationship graph, uses the first modularity as the current modularity, and jumps to the step of performing community division processing on the current traffic relationship graph based on the current modularity to obtain a first traffic relationship graph and a community division set corresponding to the first traffic relationship graph, until the first modularity is less than the current modularity;
[0221] A traffic determination unit, configured to determine the critical flow set and the multiple grouped flow sets according to the second traffic relationship graph corresponding to the first modularity.
[0222] In an alternative embodiment, the community division unit is specifically configured to:
[0223] For each community of the current traffic relationship graph, incorporate the community into at least one adjacent community corresponding to the community to obtain at least one third traffic relationship graph, and determine a second modularity corresponding to each third traffic relationship graph; the adjacent community is a community where there is a node connected to any node in the community;
[0224] Determine at least one modularity difference according to each second modularity and the current modularity;
[0225] Perform a descending order sorting on the at least one modularity difference to obtain a descending order sorting result;
[0226] Determine a target modularity difference ranked first according to the descending order sorting result;
[0227] When the target modularity difference is greater than zero, incorporate the community into the adjacent community corresponding to the target modularity difference;
[0228] Repeat the steps of for each community of the current traffic relationship graph, incorporating the community into at least one adjacent community corresponding to the community to obtain at least one third traffic relationship graph, and determining a second modularity corresponding to each third traffic relationship graph to when the target modularity difference is greater than zero, incorporating the community into the adjacent community corresponding to the target modularity difference, until there is no situation where the target modularity difference is greater than zero, to obtain a first traffic relationship graph and a community division set corresponding to the first traffic relationship graph.
[0229] In an alternative embodiment, the first information determination unit is specifically configured to:
[0230] Regarding each community corresponding to the community division set as a new node;
[0231] Determine a second traffic relationship graph according to the connection relationship between each of the new nodes;
[0232] Determine a first modularity corresponding to the second traffic relationship graph according to the second traffic relationship graph.
[0233] In an optional embodiment, the traffic determination unit is specifically configured to:
[0234] Traverse each node in the second traffic relationship graph;
[0235] When traversing to any node, determine whether the node has neighbor nodes that are not in the same community as the node; when the node has neighbor nodes that are not in the same community as it, add the node to the candidate node set; wherein, the neighbor node is a node that has an undirected edge with the node;
[0236] Sort the nodes in the candidate node set in descending order according to the number of neighbor nodes that are not in the same community as the node, to obtain a descending-order sorted node set;
[0237] Delete the nodes in the descending-order sorted node set in sequence until there is no connection relationship between the communities where the remaining nodes of the second traffic relationship graph are located;
[0238] Determine the critical flow set according to the deleted nodes;
[0239] Determine the multiple grouped flow sets according to the community division set of the second traffic relationship graph and the remaining nodes.
[0240] In an optional embodiment, the relationship graph construction module 910 includes:
[0241] A node determination unit, configured to determine each node in the traffic relationship graph; wherein, each node corresponds to a traffic to be scheduled;
[0242] An undirected edge determination unit, configured to determine the undirected edges between the respective nodes according to whether there is path overlap in the transmission paths between each of the traffics to be scheduled;
[0243] A relationship graph construction unit, configured to construct the traffic relationship graph according to the respective nodes and the undirected edges between the respective nodes.
[0244] In an optional embodiment, the traffic scheduling module 940 includes:
[0245] The first traffic scheduling unit is configured to perform priority scheduling on the critical flow set based on a preset solver and a preset model to obtain a first scheduling result;
[0246] The second traffic scheduling unit is configured to perform parallel scheduling on the multiple packet flow sets based on a preset solver and a preset model to obtain a second scheduling result;
[0247] The scheduling result determination unit is configured to determine the target scheduling result according to the first scheduling result and the second scheduling result.
[0248] In an alternative embodiment, the preset model is an integer linear programming (ILP) model, and the preset model is constructed in the following manner:
[0249] Determine an objective function for solving the minimum flow span within the scheduling period, and the objective function is shown as the following formula:
[0250] ;
[0251] ; (1)
[0252] where the traffic to be scheduled represents the th traffic in the traffic set flowing through the target network; represents the traffic set flowing through the target network; represents the traffic to be scheduled the th transmission; represents the number of transmissions of the traffic to be scheduled within the scheduling period, and , represents the scheduling period, is the transmission period of the traffic to be scheduled ; represents the flow span; represents the start time of the traffic to be scheduled the th time starting from the physical link ; represents the transmission delay of the traffic to be scheduled in the target network, and , represents the frame length of the traffic to be scheduled , represents the bandwidth;
[0253] The objective function is subject to multiple constraint conditions, and the multiple constraint conditions include: contention-free constraint, waiting-free constraint, delay constraint, offset constraint, and time slice constraint;
[0254] The contention-free constraint is as follows:
[0255] ,
[0256] ;
[0257] (2)
[0258] ; (3)
[0259] where the traffic to be scheduled represents the th traffic in the traffic set flowing through the target network; represents the path of the traffic to be scheduled ; represents the path of the traffic to be scheduled ; represents the th transmission of the traffic to be scheduled; represents the number of transmissions of the traffic to be scheduled within the scheduling period; represents the th start time of the transmission of the traffic to be scheduled from the physical link ; represents the transmission delay of the traffic to be scheduled in the target network;
[0260] The non-waiting constraint is as follows:
[0261] ;
[0262] ; (4)
[0263] where represents the th start time of the transmission of the traffic to be scheduled from the physical link ;
[0264] The delay constraint is as follows:
[0265] ;
[0266] ; (5)
[0267] where is the source node of the traffic to be scheduled , is the traffic to be scheduled The destination node indicating the traffic to be scheduled the nth starting transmission time from the physical link indicating the traffic to be scheduled the nth starting transmission time from the physical link; indicating the delay threshold, i.e., the maximum allowable delay time for a flow from the source node to the destination node;
[0268] The offset constraint is as follows:
[0269] ;
[0270] ; (6)
[0271] where represents the offset;
[0272] The time - slice constraint is as follows:
[0273] , , ;
[0274] (7)
[0275] ; (8)
[0276] where represents the called time - slice;
[0277] Determine the ILP model according to the objective function and the constraint conditions.
[0278] In an optional embodiment, the source node, the destination node, and the physical link can be determined in combination with a network directed graph, and the device further includes: a directed - graph construction module for
[0279] determining each node in the network directed graph, where each node corresponds to a network device in the target network, and the network devices include switches and terminal devices;
[0280] determining the directed edges between the respective nodes according to the connection relationship and the data - transmission direction between each network device;
[0281] constructing the network directed graph according to the respective nodes and the directed edges between the respective nodes.
[0282] Regarding the device in the above embodiments, the specific manner in which each module performs operations has been described in detail in the embodiments related to the method, and will not be elaborated herein.
[0283] An embodiment of the present invention further provides an electronic device, the device includes: a processor and a memory, and at least one instruction, at least one program, a code set or an instruction set is stored in the memory, and the at least one instruction, the at least one program, the code set or the instruction set is loaded and executed by the processor to implement the network traffic scheduling method as described in any one of the method embodiments.
[0284] An embodiment of the present invention further provides a storage medium. A computer-readable storage medium can be a tangible device that holds and stores instructions used by an instruction execution device. The computer-readable storage medium can be an electrical storage device, a magnetic storage device, an optical storage device, an electromagnetic storage device, a semiconductor storage device, or any suitable combination of the above. More specific examples (non-exhaustive list) of the computer-readable storage medium include: portable computer disks, hard disks, random access memory (RAM), read-only memory (ROM), erasable programmable read-only memory (EPROM or flash memory), static random access memory (SRAM), portable compact disk read-only memory (CD-ROM), digital versatile disks (DVD), memory sticks, floppy disks, mechanical encoding devices, such as punched cards or raised structures in grooves storing instructions thereon, and any suitable combination of the above. The computer-readable storage medium used herein is not construed as an instantaneous signal itself, such as radio waves or other freely propagating electromagnetic waves, electromagnetic waves propagating through a waveguide or other transmission medium (e.g., optical pulses through an optical fiber cable), or electrical signals transmitted through wires.
[0285] The computer-readable program instructions described herein can be downloaded from the computer-readable storage medium to various computing / processing devices, or downloaded to an external computer or external storage device through a network, such as the Internet, a local area network, a wide area network, and / or a wireless network. The network can include copper transmission cables, optical fiber transmission, wireless transmission, routers, firewalls, switches, gateway computers, and / or edge servers. The network adapter or network interface in each computing / processing device receives the computer-readable program instructions from the network and forwards the computer-readable program instructions for storage in the computer-readable storage medium in each computing / processing device.
[0286] The computer program instructions for performing the operations of the present disclosure may be assembly instructions, instruction set architecture (ISA) instructions, machine instructions, machine-related instructions, microcode, firmware instructions, state-setting data, or source code or object code written in any combination of one or more programming languages, including object-oriented programming languages such as Smalltalk, C++, etc., and conventional procedural programming languages such as the "C" language or similar programming languages. The computer-readable program instructions may be executed entirely on the user's computer, partially on the user's computer, executed as a stand-alone software package, partially on the user's computer and partially on a remote computer, or entirely on the remote computer or server. In the case of a remote computer, the remote computer may be connected to the user's computer through any type of network, including a local area network (LAN) or a wide area network (WAN), or may be connected to an external computer (e.g., through the Internet using an Internet service provider). In some embodiments, by using the state information of the computer-readable program instructions to customize an electronic circuit, such as a programmable logic circuit, a field-programmable gate array (FPGA), or a programmable logic array (PLA), the electronic circuit can execute the computer-readable program instructions to implement various aspects of the present disclosure.
[0287] Those skilled in the art will appreciate that embodiments of the present invention may be provided as a method, system, or computer program product. Accordingly, the present invention may take the form of an entirely hardware embodiment, an entirely software embodiment, or an embodiment combining software and hardware aspects. Moreover, the present invention may take the form of a computer program product implemented on 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.
[0288] The present invention is described with reference to flowchart illustrations and / or block diagrams of methods, apparatus (systems), and computer program products according to embodiments of the invention. It should be understood that each flow and / or block of the flowchart illustrations and / or block diagrams, and combinations of flows and / or blocks in the flowchart illustrations and / or block diagrams, can be implemented by computer program instructions. These computer program instructions may be provided to the processor of a general-purpose computer, a special-purpose computer, an embedded processor, or other programmable data processing device to produce a machine, such that the instructions executed by the processor of the computer or other programmable data processing device produce means for implementing the functions specified in Figure 1 one flow or multiple flowcharts and / or blocks Figure 1 one block or multiple blocks.
[0289] These computer program instructions can also be stored in a computer-readable memory that can direct a computer or other programmable data processing apparatus to work in a particular manner, such that the instructions stored in the computer-readable memory produce a manufacture including an instruction device that implements the functions specified in the process Figure 1 a process or processes and / or a flowchart and / or block Figure 1 or blocks specified in the function.
[0290] These computer program instructions can also be loaded onto a computer or other programmable data processing apparatus, such that a series of operational steps are performed on the computer or other programmable apparatus to produce a computer-implemented process, so that the instructions executed on the computer or other programmable apparatus provide steps for implementing the functions specified in the process Figure 1 a process or processes and / or a flowchart and / or block Figure 1 or blocks specified in the function.
[0291] The flowcharts and block diagrams in the figures illustrate the architecture, functionality, and operation of possible implementations of systems, methods, and computer program products according to various embodiments of the present invention. In this regard, each block in the flowchart or block diagram may represent a module, a segment of a program, or a portion of an instruction, and the module, segment of a program, or portion of an instruction contains one or more executable instructions for implementing the specified logical function. In some alternative implementations, the functions noted in the blocks may occur out of the order noted in the figures. For example, two consecutive blocks may in fact be executed substantially in parallel, or they may sometimes be executed in the reverse order, depending on the functions involved. It should also be noted that each block in the block diagrams and / or flowcharts, and combinations of blocks in the block diagrams and / or flowcharts, can be implemented by a dedicated hardware-based system that performs the specified functions or actions, or can be implemented by a combination of dedicated hardware and computer instructions.
[0292] Finally, it should be noted that the above embodiments of the present invention have been described in conjunction with the accompanying drawings, but the present invention is not limited to the above specific embodiments. The above specific embodiments are merely illustrative and not restrictive. Under the inspiration of the present invention, those of ordinary skill in the art can also make many forms without departing from the spirit and scope of the present invention as protected by the claims. All of these are within the protection scope of the present invention.
Claims
1. A network traffic scheduling method, characterized in that: The method comprises: According to the traffic relationship between multiple traffic flows to be scheduled in the target network, a current traffic relationship graph corresponding to the traffic flows to be scheduled is constructed; Taking each node in the current traffic relationship graph as a community, determining the current modularity of the current traffic relationship graph; According to the current modularity, the current traffic relationship graph is grouped to determine a key flow set and a plurality of grouped flow sets; Based on the preset model, the key flow set is scheduled preferentially, and after the scheduling of the key flow set is completed, the multiple grouped flow sets are scheduled in parallel based on the preset model to obtain a target scheduling result.
2. The network traffic scheduling method according to claim 1, characterized in that: The step of grouping the current traffic relationship graph according to the current modularity to determine a key flow set and a plurality of grouped flow sets includes: Based on the current modularity, performing community division processing on the current traffic relationship graph to obtain a first traffic relationship graph and a community division set corresponding to the first traffic relationship graph; Determine, according to the community division set, a second traffic relationship graph and a first modularity corresponding to the second traffic relationship graph; In the case where the first modularity is greater than the current modularity, the second traffic relationship graph is used as the current traffic relationship graph, the first modularity is used as the current modularity, and the process jumps to the step of performing community division processing on the current traffic relationship graph based on the current modularity to obtain a first traffic relationship graph and a community division set corresponding to the first traffic relationship graph, until the first modularity is less than the current modularity; The key flow set and the multiple grouping flow sets are determined according to the second traffic relationship diagram corresponding to the first modularity.
3. The network traffic scheduling method according to claim 2, characterized in that: The performing community division processing on the current traffic relationship graph based on the current modularity to obtain a first traffic relationship graph and a community division set corresponding to the first traffic relationship graph includes: For each community in the current traffic relationship graph, the community is merged into at least one adjacent community corresponding to the community to obtain at least one third traffic relationship graph, and the second modularity corresponding to each third traffic relationship graph is determined; the adjacent community is a community where a node is connected to any node in the community; Determining at least one modularity difference according to each of the second modularities and the current modularity; Sorting the at least one modularity difference in descending order to obtain a descending order result; According to the descending sorting result, determine the target modularity difference of the first place in the sorting; When the target modularity difference is greater than zero, merging the community into an adjacent community corresponding to the target modularity difference; Repeat the process for each community in the current traffic relationship graph, merge the community into at least one adjacent community corresponding to the community, obtain at least one third traffic relationship graph, and determine the second modularity corresponding to each third traffic relationship graph until the target modularity difference is greater than zero, merge the community into the adjacent community corresponding to the target modularity difference, until the target modularity difference is no longer greater than zero, and obtain the first traffic relationship graph and the community division set corresponding to the first traffic relationship graph.
4. The network traffic scheduling method according to claim 2, characterized in that: The determining, according to the community division set, a second traffic relationship graph and a first modularity corresponding to the second traffic relationship graph includes: Consider each community corresponding to the community partition set as a new node; Determine a second flow relationship graph according to the connection relationship between each new node; According to the second flow relationship graph, a first modularity corresponding to the second flow relationship graph is determined.
5. The network traffic scheduling method according to claim 2, characterized in that: The determining the key flow set and the plurality of grouped flow sets according to the second flow relationship graph corresponding to the first modularity includes: Traversing each node in the second traffic relationship graph; When traversing to any node, determine whether the node has a neighbor node that is not in the same community as the node; if the node has a neighbor node that is not in the same community as the node, add the node to the candidate node set; wherein the neighbor node is a node that has an undirected edge with the node; According to the number of neighbor nodes that are not in the same community as the node, the nodes in the candidate node set are sorted in descending order to obtain a descending sorted node set; Deleting nodes in the descending sorted node set in sequence until there is no connection relationship between the communities where the remaining nodes of the second traffic relationship graph are located; Determining the key flow set according to the deleted nodes; The multiple grouping flow sets are determined according to the community division set of the second traffic relationship graph and the remaining nodes.
6. The network traffic scheduling method according to claim 1, characterized in that: The step of constructing a current traffic relationship graph corresponding to the traffic to be scheduled according to the traffic relationship between the multiple traffic to be scheduled in the target network includes: Determine each node in the flow relationship diagram; wherein each node corresponds to a flow to be scheduled; Determine the undirected edges between the nodes according to whether there is path overlap in the transmission paths between each of the to-be-scheduled flows; The traffic relationship graph is constructed according to the nodes and the undirected edges between the nodes.
7. The network traffic scheduling method according to claim 1, characterized in that: The step of preferentially scheduling the key flow set based on the preset model, and after completing the scheduling of the key flow set, scheduling the multiple packet flow sets in parallel based on the preset model to obtain a target scheduling result includes: Based on a preset solver and a preset model, the key flow set is preferentially scheduled to obtain a first scheduling result; After completing the scheduling of the key flow set, based on a preset solver and a preset model, the multiple grouped flow sets are scheduled in parallel to obtain a second scheduling result; The target scheduling result is determined according to the first scheduling result and the second scheduling result.
8. The network traffic scheduling method according to claim 7, characterized in that: The preset model is an integer linear programming ILP model, and the preset model is constructed in the following manner: Determine the objective function for solving the minimum flow span within the scheduling period, and the objective function is shown in the following formula: ; ; (1) Among them, the traffic to be called Indicates the first Traffic flow; represents a set of traffic flowing through the target network; Indicates the traffic to be called No. times sent; Indicates the traffic to be called The number of transmissions within the scheduling period, and , represents the scheduling period, Traffic to be called The sending cycle; Indicates the flow span; Indicates the traffic to be called No. Secondary physical link Start sending time; Indicates the traffic to be called the transmission delay in the target network, and , Indicates the traffic to be called The frame length of Indicates bandwidth; The objective function is subject to a plurality of constraints, wherein the plurality of constraints include: a no contention constraint, a no waiting constraint, a delay constraint, an offset constraint, and a time slice constraint; The contention-free constraint is as follows: , ; (2) ; (3) Among them, the traffic to be called Indicates the first Traffic flow; Indicates the traffic to be called Path; Indicates the traffic to be called Path; Indicates the traffic to be called No. times sent; Indicates the traffic to be called The number of transmissions within the scheduling period; Indicates the traffic to be called No. Secondary physical link Start sending time; Indicates the traffic to be called transmission delay in the target network; The no-wait constraint is as shown in the following formula: ; ; (4) in, Indicates the traffic to be called No. Secondary physical link Start sending time; The delay constraint is as follows: ; ; (5) in, Traffic to be called The source node, Traffic to be called The destination node, Indicates the traffic to be called No. Secondary physical link Start sending time, Indicates the traffic to be called No. Secondary physical link Start sending time; It represents the delay threshold, i.e., the maximum allowed delay time of the flow from the source node to the destination node; The offset constraint is as follows: ; ; (6) in, Indicates the offset; The time slice constraint is as shown in the following formula: , , ; (7) ; (8) in, Indicates that the time slice has been called; The ILP model is determined according to the objective function and the constraint conditions.
9. The network traffic scheduling method according to claim 8, characterized in that: The source node, the target node and the physical link may be determined in combination with a network directed graph, and the network directed graph is determined in the following manner: Determine each node in the network directed graph, each of the nodes corresponding to a network device in the target network, the network device including a switch and a terminal device; Determine the directed edges between the nodes according to the connection relationship between each network device and the data transmission direction; The network directed graph is constructed according to the nodes and the directed edges between the nodes.
10. A computer storage medium, wherein at least one instruction and at least one program are stored in the computer storage medium, wherein the at least one instruction and the at least one program are loaded and executed by a processor to implement the network traffic scheduling method as described in any one of claims 1 to 9.
Citation Information
Patent Citations
Large-scale flow scheduling method based on dynamic grouping for time delay sensitive industrial Internet of Things
CN115766596A
Flow prediction method and device
CN117835284A
Service data processing method and system based on supply chain management
CN118428775A
Method and device for scheduling attack traffic, electronic equipment and storage medium
CN119172140A
Planning method and system architecture for scheduling of chained service flow
WO2023015644A1