A network traffic scheduling method and a storage medium

By constructing a traffic relationship graph and utilizing modularity partitioning, the system prioritizes scheduling the critical flow set and then schedules the packet flow set in parallel, thus solving the problem of high scheduling complexity in large-scale TSN networks and achieving efficient traffic scheduling.

CN120075157BActive Publication Date: 2026-03-27NANJING UNIV OF POSTS & TELECOMM
View PDF 2 Cites 0 Cited by

Patent Information

Authority / Receiving Office
CN · China
Patent Type
Patents(China)
Current Assignee / Owner
Filing Date
2025-01-14
Publication Date
2026-03-27

AI Technical Summary

Technical Problem

Existing technologies in large-scale TSN networks suffer from high computational complexity, long scheduling time, and inefficiency due to inaccurate grouping, making them ineffective in addressing scheduling challenges in complex network environments.

Method used

By constructing a traffic relationship graph and dividing the traffic graph using modularity, the key flow set and the group flow set are determined. Based on a preset model, the key flow set is scheduled first and then the group flow set is scheduled in parallel. The ILP model is used to optimize the scheduling scheme.

Benefits of technology

It reduces scheduling complexity and time, decreases inter-group scheduling conflicts, improves scheduling efficiency and network performance, and adapts to scheduling needs under high traffic volume.

✦ Generated by Eureka AI based on patent content.

Smart Images

  • Figure CN120075157B_ABST
    Figure CN120075157B_ABST
Patent Text Reader

Abstract

The application discloses a network flow scheduling method and a storage medium, and belongs to the technical field of communication. The method comprises the following steps: constructing a current flow relationship graph corresponding to to-be-scheduled flows of a target network according to flow relationships among the to-be-scheduled flows; regarding each node in the current flow relationship graph as a community respectively, and determining a current modularity of the current flow relationship graph; performing grouping processing on the current flow relationship graph according to the current modularity, determining a key flow set and a plurality of grouped flow sets; preferentially scheduling the key flow set based on a preset model, and after the scheduling of the key flow set is completed, scheduling the plurality of grouped flow sets in parallel based on the preset model, and obtaining a target scheduling result. The technical scheme provided by the application can reduce scheduling conflicts among flows, reduce scheduling complexity, and significantly improve scheduling efficiency.
Need to check novelty before this filing date? Find Prior Art

Description

Technical Field

[0001] This invention relates to the field of communication technology, and in particular to a network traffic scheduling method and storage medium. Background Technology

[0002] Time-Sensitive Networking (TSN) aims to enhance the real-time performance and reliability of Ethernet in industrial environments, thereby supporting critical applications such as smart manufacturing, autonomous driving, and energy management. Furthermore, TSN extends a range of real-time communication mechanisms, such as deterministic scheduling, time synchronization, and traffic shaping, to provide the network with low-latency and zero-congestion packet loss data transmission capabilities.

[0003] However, in complex network environments, there are many scheduling challenges, including time window management, rational allocation of network resources, traffic path optimization, and dynamic response to traffic changes. Therefore, effective traffic scheduling strategies are crucial for ensuring the performance of TSN networks. Existing technologies model the scheduling problem of time-triggered flows in TSN as a linear programming problem and use an ILP (Integer Linear Programming) solver to solve the scheduling scheme; or model the scheduling problem of time-triggered flows in TSN as a constraint satisfaction problem and use an SMT (Satisfiability Modulo Theories) solver to solve the scheduling scheme; furthermore, existing technologies propose determining the transmission path of traffic through conflict-free routing planning and then using ILP to solve the scheduling scheme; or performing joint routing and scheduling optimization 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 ILP or SMT solvers can theoretically obtain the optimal scheduling scheme, the solvers themselves are highly sensitive to the problem size. When the network size increases and the amount of time-sensitive traffic increases, the number of variables in the scheduling problem will grow exponentially, which will lead to a significant increase in computational complexity and unacceptable solution time.

[0004] To improve the flexibility and efficiency of the solution, existing technologies for the joint routing and scheduling problem of TSN multicast traffic propose several approaches. One approach is to determine the traffic similarity index based on the traffic routing path, traffic period, priority, and other indicators. Then, spectral clustering is used to group the traffic, and ILP is used to sequentially solve the scheduling scheme for each group. Another approach considers the intersection of routing paths, frame length, and period as traffic similarity indices, introduces normalized cut modeling to solve the flow grouping problem, and then uses ILP to sequentially schedule each flow group. In group scheduling, the traffic similarity index determines the grouping efficiency. However, existing technologies all use empirical factors to define similarity, lacking flexibility and leading to inaccuracies in grouping, increasing scheduling complexity. Furthermore, solving for each group sequentially results in long solution times for large-scale networks. Therefore, a more reliable solution is needed. Summary of the Invention

[0005] The purpose of this invention is to overcome the shortcomings of the prior art and provide a network traffic scheduling method and storage medium that can improve scheduling efficiency and reduce scheduling complexity.

[0006] To achieve the above objectives, the present invention employs the following technical solution:

[0007] On one hand, the present invention provides a network traffic scheduling method, the method comprising:

[0008] Based on the traffic relationships among multiple traffic flows to be scheduled in the target network, construct the current traffic relationship graph corresponding to the traffic flows to be scheduled;

[0009] Each node in the current traffic relationship graph is treated as a community, and the current modularity of the current traffic relationship graph is determined.

[0010] Based on the current module degree, the current traffic relationship graph is grouped to determine the key flow set and multiple grouped flow sets;

[0011] Based on a preset model, the key flow set is scheduled first, and after the key flow set is scheduled, the multiple group flow sets are scheduled in parallel based on the preset model to obtain the target scheduling result.

[0012] In some possible implementations, the step of grouping the current traffic relationship graph according to the current modularity to determine the key flow set and multiple grouped flow sets includes:

[0013] Based on the current module degree, the current traffic relationship graph is divided into communities to obtain a first traffic relationship graph and a community division set corresponding to the first traffic relationship graph;

[0014] Based on the community division set, determine the second traffic relationship graph and the first modularity corresponding to the second traffic relationship graph;

[0015] If the first module degree is greater than the current module degree, the second traffic relationship graph is used as the current traffic relationship graph, and the first module degree is used as the current module degree; then proceed to the step of performing community partitioning processing on the current traffic relationship graph based on the current module degree to obtain the first traffic relationship graph and the community partitioning set corresponding to the first traffic relationship graph, until the first module degree is less than the current module degree;

[0016] Based on the second flow relationship diagram corresponding to the first modularity, the key flow set and the multiple group flow sets are determined.

[0017] In some possible implementations, the step of performing community partitioning on the current traffic relationship graph based on the current modularity to obtain a first traffic relationship graph and a community partitioning set corresponding to the first traffic relationship graph includes:

[0018] 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 there is a node connected to any node in the community;

[0019] Based on each second modularity and the current modularity, at least one modularity difference is determined;

[0020] Sort the at least one module degree difference in descending order to obtain the descending sort result;

[0021] Based on the descending sorting results, determine the target modularity difference of the first sorted position;

[0022] If the target modularity difference is greater than zero, the community will be merged into the adjacent community corresponding to the target modularity difference.

[0023] Repeat the process for each community in the current traffic relationship graph, merging the community into at least one adjacent community corresponding to the community to obtain at least one third traffic relationship graph, and determining the second modularity corresponding to each third traffic relationship graph until, if the target modularity difference is greater than zero, the community is merged into the adjacent community corresponding to the target modularity difference, until there is no case 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 implementations, determining the second traffic relationship graph and the first modularity corresponding to the second traffic relationship graph based on the community partitioning set includes:

[0025] Each community in the community partition set is considered a new node;

[0026] Based on the connection relationships between each new node, a second flow relationship graph is determined;

[0027] Based on the second flow relationship diagram, determine the first module degree corresponding to the second flow relationship diagram.

[0028] In some possible implementations, determining the key flow set and the plurality of group flow sets based on the second flow relationship graph corresponding to the first modularity includes:

[0029] Traverse each node in the second flow graph;

[0030] When any node is encountered during traversal, determine whether the node has neighboring nodes that are not in the same community as the node; if the node has neighboring nodes that are not in the same community as the node, add the node to the candidate node set; wherein, the neighboring node is a node that has an undirected edge with the node.

[0031] Based on the number of neighboring 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.

[0032] Delete nodes in the descending sorted node set sequentially until there are no connections between the communities where the remaining nodes in the second traffic relationship graph are located;

[0033] Based on the deleted nodes, determine the set of key flows;

[0034] The multiple group flow sets are determined based on the community division set of the second flow relationship graph and the remaining nodes.

[0035] In some possible implementations, constructing a current traffic relationship graph corresponding to the traffic to be scheduled based on the traffic relationships among multiple traffic flows to be scheduled in the target network includes:

[0036] Identify each node in the traffic relationship graph; wherein each node corresponds to a traffic flow to be scheduled.

[0037] The undirected edges between the nodes are determined based on whether there is path overlap between the transmission paths of each traffic to be scheduled;

[0038] The flow relationship graph is constructed based on each node and the undirected edges between each node.

[0039] In some possible implementations, the step of prioritizing the scheduling of the key flow set based on a preset model, and after completing the scheduling of the key flow set, scheduling the multiple group flow sets in parallel based on the preset model to obtain the target scheduling result, includes:

[0040] Based on a preset solver and a preset model, the key flow set is prioritized for scheduling to obtain a first scheduling result.

[0041] After the scheduling of the key flow set is completed, the multiple group flow sets are scheduled in parallel based on the preset solver and preset model to obtain the second scheduling result;

[0042] The target scheduling result is determined based on the first scheduling result and the second scheduling result.

[0043] In some possible implementations, the preset model is an integer linear programming (ILP) model, which is constructed in the following manner:

[0044] A target function is determined for solving the problem of minimizing the flow span within a scheduling cycle, and the target function is shown in the following equation:

[0045] ;

[0046] ; (1)

[0047] Among them, the traffic to be scheduled Represents the first in the set of traffic flowing through the target network. Traffic flow; This represents the set of traffic flowing through the target network; Indicates the traffic to be scheduled No. Send once; Indicates the traffic to be scheduled The number of times to send within the scheduling period, and , Indicates the scheduling period. Traffic to be scheduled The sending cycle; Indicates the flow span; Indicates the traffic to be scheduled No. Secondary physical link Start sending time; Indicates the traffic to be scheduled The transmission delay in the target network, and , Indicates the traffic to be scheduled Frame length, Indicates bandwidth;

[0048] The objective function is subject to multiple constraints, including: contention-free constraint, wait-free constraint, delay constraint, offset constraint, and time slice constraint.

[0049] The contention-free constraint is shown in the following equation:

[0050] ,

[0051] ;

[0052] (2)

[0053] ; (3)

[0054] Among them, the traffic to be scheduled Represents the first in the set of traffic flowing through the target network. Traffic flow; Indicates the traffic to be scheduled The path; Indicates the traffic to be scheduled The path; Indicates the traffic to be scheduled No. Send once; Indicates the traffic to be scheduled The number of times the data is sent within the scheduling period; Indicates the traffic to be scheduled No. Secondary physical link Start sending time; Indicates the traffic to be scheduled Transmission delay in the target network;

[0055] The absence of waiting constraints is shown in the following equation:

[0056] ;

[0057] ; (4)

[0058] in, Indicates the traffic to be scheduled No. Secondary physical link Start sending time;

[0059] The delay constraint is shown in the following equation:

[0060] ;

[0061] ; (5)

[0062] in, Traffic to be scheduled The source node, Traffic to be scheduled The destination node Indicates the traffic to be scheduled No. Secondary physical link Start time of sending Indicates the traffic to be scheduled No. Secondary physical link Start sending time; This represents the latency threshold, which is the maximum allowed latency time for a stream to travel from the source node to the destination node.

[0063] The offset constraint is shown in the following formula:

[0064] ;

[0065] ; (6)

[0066] in, Indicates the offset;

[0067] The time slice constraint is shown in the following formula:

[0068] , , ;

[0069] (7)

[0070] ; (8)

[0071] in, This indicates that a time slice has been used;

[0072] The ILP model is determined based on the objective function and the constraints.

[0073] In some possible implementations, the source node, the target node, and the physical link can be determined by combining a directed network graph, which is determined in the following manner:

[0074] Each node in the directed graph of the network is determined, and each node corresponds to a network device in the target network, including switches and terminal devices;

[0075] Based on the connection relationship between each network device and the data transmission direction, the directed edges between each node are determined;

[0076] The directed graph of the network is constructed based on each node and the directed edges between each node.

[0077] On the other hand, a computer-readable storage medium is provided, wherein at least one instruction and at least one program are stored therein, the at least one instruction and the at least one program being loaded and executed by a processor to implement the network traffic scheduling method described above.

[0078] Compared with the prior art, the beneficial effects achieved by the present invention are as follows:

[0079] In this invention, a current traffic relationship graph corresponding to the traffic to be scheduled is constructed based on the traffic relationships between the traffic to be scheduled in the target network. Each node in the current traffic relationship graph is treated as a community, and the current modularity of the current traffic relationship graph is determined. The current modularity reflects the degree of modularity of the connections between traffic nodes in the current traffic relationship graph, which facilitates subsequent traffic grouping and reduces scheduling complexity. Then, based on the current modularity, the current traffic relationship graph is grouped to determine a set of key flows and multiple sets of grouped flows. Based on a preset model, the set of key flows is scheduled first. After the scheduling of the set of key flows is completed, multiple sets of grouped flows are scheduled in parallel based on the preset model to obtain the target scheduling result. This reduces inter-group scheduling conflicts and scheduling delays, as well as reduces scheduling complexity and scheduling time, thereby improving scheduling efficiency and network performance. Furthermore, the technical solution provided by this invention is adaptable to different network traffic conditions. Even under large traffic volumes, it can effectively reduce flow span and scheduling time, thereby significantly improving scheduling efficiency. Attached Figure Description

[0080] To more clearly illustrate the technical solutions and advantages in the embodiments of the present invention or the prior art, the drawings used in the description of the embodiments or the prior art will be briefly introduced below. Obviously, the drawings described below are only some embodiments of the present invention. For those skilled in the art, other drawings can be obtained based on these drawings without creative effort.

[0081] Figure 1 This is a flowchart illustrating a network traffic scheduling method provided in an embodiment of the present invention;

[0082] Figure 2 This is a schematic diagram illustrating the process of constructing a current traffic relationship graph according to an embodiment of this application;

[0083] Figure 3 This is a schematic diagram of the process for determining a key flow set and multiple group flow sets provided in an embodiment of this application;

[0084] Figure 4 This is a schematic diagram illustrating the process of determining a first traffic relationship diagram and the corresponding community division set provided in an embodiment of this application.

[0085] Figure 5 This is a schematic diagram of a process for determining a set of key flows and multiple sets of group flows based on a second flow relationship diagram corresponding to a first module degree, provided in an embodiment of this application.

[0086] Figure 6 This is a schematic diagram of another process for determining a key flow set and multiple group flow sets provided in an embodiment of this application;

[0087] Figure 7 This is a schematic diagram of a second flow relationship diagram provided in an embodiment of this application;

[0088] Figure 8 This is a schematic diagram of a process provided by an embodiment of the present application, which prioritizes scheduling a set of key flows based on a preset model, and after scheduling the set of key flows, schedules multiple sets of grouped flows in parallel based on the preset model to obtain the target scheduling result.

[0089] Figure 9 This is a schematic diagram of the structure of a network traffic scheduling device provided in an embodiment of the present invention. Detailed Implementation

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

[0091] It should be noted that the terms "first," "second," etc., in the specification, claims, and accompanying drawings of this invention are used to distinguish similar objects and are not necessarily used to describe a specific order or sequence. It should be understood that such data can be interchanged where appropriate so that the embodiments of the invention described herein can be implemented in orders other than those illustrated or described herein. Furthermore, 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 that comprises a series of steps or units is not necessarily limited to those steps or units explicitly listed, but may include other steps or units not explicitly listed or inherent to such processes, methods, products, or devices.

[0092] In this embodiment of the invention, the terms "module" or "unit" refer to a computer program or part of a computer program that has a predetermined function and works with other related parts to achieve a predetermined goal, and can be implemented wholly or partially using software, hardware (such as processing circuitry or memory), or a combination thereof. Similarly, a processor (or multiple processors or memory) can be used to implement one or more modules or units. Furthermore, each module or unit can be part of an overall module or unit that includes the functionality of that module or unit.

[0093] Various exemplary embodiments, features, and aspects of the present invention will now be described in detail with reference to the accompanying drawings. The same reference numerals in the drawings denote elements that have the same or similar functions. Although various aspects of the embodiments are shown in the drawings, they are not necessarily drawn to scale unless specifically indicated otherwise.

[0094] The term “exemplary” as used herein means “serving as an example, embodiment, or illustration.” Any embodiment illustrated herein as “exemplary” is not necessarily to be construed as superior to or better than other embodiments.

[0095] In this document, the term "and / or" is merely a description of the relationship between related objects, indicating that three relationships can exist. For example, A and / or B can represent three cases: A alone, A and B simultaneously, and B alone. Furthermore, the term "at least one" in this document means any combination of at least two of any one or more elements. For example, including at least one of A, B, and C can mean including any one or more elements selected from the set consisting of A, B, and C.

[0096] Furthermore, to better illustrate the present invention, numerous specific details are set forth in the following detailed embodiments. Those skilled in the art will understand that the present invention can be practiced without certain specific details. In some instances, methods, means, elements, and circuits well known to those skilled in the art have not been described in detail in order to highlight the spirit of the invention.

[0097] Figure 1 This is a flowchart illustrating a network traffic scheduling method according to an embodiment of the present invention. This specification provides the method operation steps as shown in the embodiments or flowcharts, but based on conventional or non-inventive methods, more or fewer operation steps may be included. The order of steps listed in the embodiments is merely one possible execution order among many and does not represent the only possible execution order. In actual system or server product execution, the method can be executed sequentially according to the embodiments or drawings, or in parallel (e.g., in a parallel processor or multi-threaded processing environment). Specifically, as shown... Figure 1 As shown, the above method may include:

[0098] S101: Based on the traffic relationships between multiple traffic flows to be scheduled in the target network, construct the current traffic relationship graph corresponding to the traffic flows to be scheduled;

[0099] In one specific embodiment, the target network can be an industrial network, specifically a network used in the field of industrial automation, for connecting industrial automation equipment; optionally, the target network can be a TSN (Transmission Management Network), which can guarantee the real-time performance, accuracy, reliability, and security of data transmission. The traffic to be scheduled can be the traffic flowing through the target network. The current traffic relationship graph can represent the relationships between the traffic to be scheduled.

[0100] In an optional embodiment, Figure 2 This is a schematic diagram illustrating the process of constructing a current traffic relationship graph according to an embodiment of this application; as shown... Figure 2 As shown, the above-described method constructs a current traffic relationship graph corresponding to the traffic to be scheduled based on the traffic relationships among multiple traffic flows to be scheduled in the target network, including:

[0101] S201: Determine each node in the traffic relationship graph; where each node corresponds to a traffic flow to be scheduled.

[0102] S202: Determine the undirected edges between nodes based on whether there is path overlap between the transmission paths of each traffic to be scheduled;

[0103] S203: Construct a flow relationship graph based on each node and the undirected edges between each node.

[0104] In one specific embodiment, the traffic relationship between the traffic to be scheduled can be determined by whether there is path overlap between the transmission paths of each traffic to be scheduled. If there is path overlap, an undirected edge is constructed between the nodes corresponding to the traffic to be scheduled. Optionally, the edges in the traffic relationship graph can represent whether there is path overlap between the transmission paths of two traffic to be scheduled. Specifically, an adjacency matrix can be used. Representation, adjacency matrix elements in As shown in the following formula:

[0105] ;

[0106] in, Represents a node and nodes Is there an edge between them? Represents a node The transmission path; Represents a node The transmission path; if the transmission paths between two traffic streams overlap, then there is an edge between the nodes corresponding to the traffic streams to be scheduled, i.e. If there is no path overlap between the transmission paths of two traffic streams to be scheduled, then there are no edges between the nodes corresponding to the traffic streams to be scheduled. .

[0107] In the above embodiments, constructing a traffic relationship graph improves the ease of determining the density of connections between traffic, facilitates subsequent traffic grouping, and improves the accuracy of subsequent traffic grouping.

[0108] S102: Treat 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 grouping traffic in the current traffic relationship graph, communities can be initialized to determine that each node in the current traffic relationship graph belongs to a community, and the current modularity of the current traffic relationship graph can be determined. Optionally, the current modularity can characterize the degree of obvious modularity of the current traffic relationship graph. Further, the current modularity can characterize the density of connections between nodes within a module and the sparsity of connections between modules in the current traffic relationship graph; that is, the current modularity can characterize the density of connections between nodes within a community and the sparsity of connections between communities in the current traffic relationship graph. Specifically, when the current modularity is greater than a preset value, the connections between nodes in the current traffic relationship graph have obvious modularity characteristics, with dense connections between nodes within a module and sparse connections between modules. When the current modularity is less than a preset value, the connections between nodes in the current traffic relationship graph do not have obvious modularity characteristics, and the connections between nodes in the current traffic relationship graph are randomly distributed. The current modularity can be specifically expressed as follows:

[0110] ;

[0111] in, This indicates the number of edges in the current traffic relationship graph; Represents a node and nodes Are there any edges connecting them? Represents a node The degree of the node. The number of edges connected; Represents a node The degree of the node. The number of edges connected; Represents a node The community to which it belongs; Represents a node The community to which it belongs; It is an indicator function, in the node and nodes When located in the same community, that is ,So At the node and nodes When they are not located in the same community, that is ,So ; This is a resolution parameter, which is optional. It can be configured according to actual application needs, specifically... ,exist At this time, larger module groups will be obtained, which is suitable for identifying the global structure of the network; optionally, the size can be increased appropriately. ( This improves adaptability to low-modularity network packets.

[0112] In the above embodiments, the current modularity can be used to measure the quality of the node division (community division) of the current traffic relationship graph, which facilitates subsequent traffic grouping and improves the convenience and accuracy of traffic grouping.

[0113] S104: Based on the current module degree, group the current traffic relationship graph to determine the key flow set and multiple grouped flow sets;

[0114] In one specific embodiment, the key flow set may include multiple cross-community communication traffic. Specifically, the key flow set can realize communication between different communities; the multiple group flow sets can be traffic sets corresponding to multiple communities, and each group flow set includes multiple traffic communicating in the corresponding community.

[0115] In an optional embodiment, Figure 3 This is a schematic diagram illustrating the process of determining a key flow set and multiple group flow sets according to an embodiment of this application; for example... Figure 3 As shown above, based on the current module level, the current traffic relationship graph is grouped to determine the key flow set and multiple grouped flow sets, including:

[0116] S301: Based on the current modularity, perform community partitioning on the current traffic relationship graph to obtain the first traffic relationship graph and the community partitioning set corresponding to the first traffic relationship graph;

[0117] S302: Based on the community division set, determine the second traffic relationship graph and the first modularity corresponding to the second traffic relationship graph;

[0118] S303: Determine whether the first module degree is greater than the current module degree. If the first module degree is greater than the current module degree, execute S304; if the first module degree is less than the current module degree, execute S305.

[0119] S304: Use the second flow relationship graph as the current flow relationship graph, use the first module degree as the current module degree, and jump to step S301;

[0120] S305: Based on the second flow relationship diagram corresponding to the first modularity, determine the set of critical flows and multiple group flow sets.

[0121] In a specific embodiment, the first traffic relationship graph can be the traffic relationship graph after community merging. The node connections in the first traffic relationship graph are still the same as those in the current traffic relationship graph, but the community divisions of the first traffic relationship graph and the current traffic relationship graph are different. Optionally, the community division set is a different set of nodes after dividing the relationship graph. The second traffic relationship graph can be a graph constructed based on the community division set, which facilitates determining the first modularity corresponding to the second traffic relationship graph. The specific refinement of the first modularity can refer to the relevant refinement of the current modularity, which will not be repeated here.

[0122] In a specific embodiment, a first modularity greater than the current modularity indicates that the second traffic relationship graph corresponding to the first modularity has more obvious modularity characteristics compared to the current traffic relationship graph, with denser node connections within a community and relatively sparser connections between communities. To further improve the modularity and obtain a graph with even more obvious modularity characteristics, the second traffic relationship graph is used as the current traffic relationship graph, and the first modularity is used as the current modularity. The process then jumps to the step of performing community merging processing on the current traffic relationship graph based on the current modularity, determining 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 point, the second traffic relationship graph corresponding to the first modularity is globally optimal.

[0123] In the above embodiments, when the first modularity is less than the current modularity, the determination of the second traffic relationship graph 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 group flow sets, thereby improving the effectiveness and accuracy of the determination of the key flow set and multiple group flow sets.

[0124] In an optional embodiment, Figure 4 This is a schematic diagram illustrating the process of determining a first traffic relationship graph and the corresponding community division set provided in an embodiment of this application; for example... Figure 4 As shown, based on the current module degree, the current traffic relationship graph is divided into communities to obtain the first traffic relationship graph and the corresponding community division set, including:

[0125] S401: For each community in the current traffic relationship graph, merge 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;

[0126] S402: Determine at least one module degree difference based on each second module degree and the current module degree;

[0127] S403: Sort at least one module degree difference in descending order to obtain the descending sort result;

[0128] S404: Based on the descending sorting results, determine the target modularity difference of the first sorted item;

[0129] S405: If the target modularity difference is greater than zero, merge the community into the adjacent community corresponding to the target modularity difference; return to execute S401;

[0130] S406: In the absence of a target module degree difference greater than zero, obtain the first traffic relationship graph and the community division set corresponding to the first traffic relationship graph.

[0131] In one specific embodiment, a neighboring community is a community in which a node is connected to any node in the community. Optionally, in the node... and nodes If there are connected edges between nodes, then the nodes... and nodes If nodes are neighbors, then in the community Memory exists in nodes and communities If any node in the community is connected, then the community... and community They are adjacent communities, specifically, communities It is a community The neighboring communities, at the same time, Also a community The second modularity can be the modularity of the third flow relationship graph after a community is merged into each of its adjacent communities. For details on the second modularity, please refer to the relevant details of the current modularity, which will not be repeated here.

[0132] In one specific embodiment, the second modularity is subtracted from the current modularity to obtain the modularity difference; specifically, the current modularity is... The second module degree is Then the modularity is The target modularity difference can be the largest modularity difference among at least one modularity difference. Optionally, the at least one modularity difference can be sorted in ascending order to obtain the ascending order result; based on the ascending order result, the target modularity difference at the bottom of the sorted position can be determined.

[0133] In a specific embodiment, the target modularity difference can characterize the modularity increment and can be used to evaluate whether community merging (node ​​movement) helps improve the overall modularity, thereby gradually optimizing the community partitioning. Specifically, when the target modularity difference is greater than zero, it indicates that community merging (node ​​movement) can improve the modularity of the traffic relationship graph. In this case, the community is merged into the adjacent community corresponding to the maximum modularity. When there is no target modularity difference greater than zero, it indicates that community merging (node ​​movement) cannot improve the modularity of the traffic relationship graph, that is, there is no community merging (node ​​movement) that can improve the modularity of the traffic relationship graph. Therefore, by merging communities to improve modularity until no community merging can improve modularity, a first traffic relationship graph can be obtained, and the community partitioning set corresponding to the first traffic relationship graph can be determined.

[0134] In an optional embodiment, the above-mentioned determination of the second traffic relationship graph and the first modularity corresponding to the second traffic relationship graph based on the community partitioning set includes:

[0135] Each community in the community partition set is treated as a new node;

[0136] The second flow graph is determined based on the connection relationships between each new node;

[0137] Based on the second flow relationship diagram, determine the first module degree corresponding to the second flow relationship diagram.

[0138] In one specific embodiment, all nodes within each community corresponding to the community partitioning set are treated as a whole, i.e., as a new node. This new node represents the community. Each node within the community still exists; in subsequent steps, all nodes within the community are processed as a set, i.e., the new node. Specifically, the new node in the second traffic relationship graph after community merging can be obtained by compressing the interconnections between 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 treated as a community, and the first modularity of the second traffic relationship graph is determined.

[0139] In an optional embodiment, Figure 5 This is a flowchart illustrating a process for determining a set of critical flows and multiple sets of grouped flows based on a second flow relationship graph corresponding to a first modularity, as provided in an embodiment of this application. Figure 5 As shown, based on the second flow relationship diagram corresponding to the first module degree, the key flow set and multiple group flow sets are determined, including:

[0140] S501: Traverse each node in the second flow relationship graph; when traversing 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; 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 based on the number of neighboring nodes that are not in the same community as the node, and obtain the descending sorted node set.

[0142] S503: Delete nodes in the descending order of the node set sequentially until there are no connections between the communities where the remaining nodes in the second flow relationship graph are located;

[0143] S504: Determine the set of critical flows based on the deleted nodes;

[0144] S505: Based on the community division set and remaining nodes in the second flow relationship graph, determine multiple group flow sets.

[0145] In one specific embodiment, the candidate node set includes multiple nodes, which are nodes that have neighboring nodes that are not in the same community as the node. The communities where the remaining nodes of the second traffic relationship graph reside are not connected, indicating that the communities where the remaining nodes of the second traffic relationship graph reside are independent of each other; optionally, the multiple group flow sets can each correspond to a community where the remaining nodes reside. Optionally, the key flow set includes nodes deleted from the multiple candidate node sets; each group flow set includes multiple remaining nodes in each community.

[0146] In a specific embodiment, the nodes in the candidate node set are sorted in descending order according to the number of neighboring nodes that are not in the same community as the node, resulting in a descending sorted node set. Then, the nodes in the descending sorted node set are deleted sequentially. This ensures that the minimum number of nodes are deleted to preserve the original division of the second flow relationship graph. It also ensures that there are no edges connecting communities, that is, there are no relationships between communities, and the nodes within a community are closely related, which facilitates the parallel scheduling of multiple group flow sets in the future.

[0147] In one specific embodiment Figure 6 This is a schematic diagram illustrating another process for determining the key flow set and multiple group flow sets provided in an embodiment of this application; as shown... Figure 6 As shown, the above-mentioned grouping of the current traffic relationship graph based on the current module level to determine the key flow set and multiple grouped flow sets may include:

[0148] S601: For each community in the current traffic relationship graph, merge 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 module degree difference based on each second module degree and the current module degree;

[0150] S603: Sort at least one module degree difference in descending order to obtain the descending sort result;

[0151] S604: Based on the descending sorting results, determine the target modularity difference of the first sorted item;

[0152] S605: If the target modularity difference is greater than zero, merge the community into the adjacent community corresponding to the target modularity difference; return to execute S601;

[0153] S606: In the absence of a target module degree difference greater than zero, obtain the first flow relationship graph and the community division set corresponding to the first flow relationship graph;

[0154] S607: Treat each community in the community partition set as a new node;

[0155] S608: Determine the second flow relationship graph based on the connection relationship between each new node;

[0156] S609: Treat each new node in the second traffic relationship graph as a community and determine the first modularity of the second traffic relationship graph;

[0157] S610: Determine whether the first module degree is greater than the current module degree. If the first module degree is greater than the current module degree, execute S611; if the first module degree is less than the current module degree, execute S612.

[0158] S611: Use the second flow relationship graph as the current flow relationship graph, use the first module degree as the current module degree, and jump to step S601;

[0159] S612: Traverse each node in the second flow relationship graph; when traversing 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; where 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 based on the number of neighboring nodes that are not in the same community as the node, and obtain the descending sorted node set.

[0161] S614: Delete nodes in the descending order of the node set sequentially until there are no connections between the communities where the remaining nodes in the second flow relationship graph are located;

[0162] S615: Determine the set of critical flows based on the deleted nodes;

[0163] S616: Determine multiple group flow sets based on the community division set and remaining nodes in the second flow relationship graph.

[0164] In one specific embodiment Figure 7 This is a schematic diagram of a second flow relationship diagram provided in an embodiment of this application; as shown... Figure 7The diagram shows the second traffic relationship graph after community partitioning in a multi-layered network structure, based on optimized modularity. The graph can be divided into four communities: communities 1, 2, 3, and 4. Nodes within a community are densely connected, while connections between different communities are sparse, exhibiting a clear modular characteristic. Optionally, cross-community communication traffic is considered critical traffic, with community 1 representing the determined set of critical flows, including multiple critical flows. Traffic that frequently communicates within its own community is considered traffic, with communities 2, 3, and 4 representing multiple group flow sets corresponding to the communities of the remaining nodes, each containing multiple flows. By partitioning communities based on optimized modularity, the effectiveness and accuracy of community partitioning can be improved, thereby enhancing the effectiveness and efficiency of determining the set of critical flows and multiple group flow sets.

[0165] S104: Based on the preset model, prioritize scheduling the key flow set, and after completing the scheduling of the key flow set, schedule multiple group flow sets in parallel based on the preset model to obtain the target scheduling result.

[0166] In one specific embodiment, the preset model can be a model that includes the traffic scheduling problem to be solved. Optionally, the preset model can be set according to actual application requirements. Specifically, the preset model can be an ILP model, which can optimize the utilization of network resources and ensure smooth traffic transmission in traffic scheduling. Optionally, based on the preset model, prioritizing the scheduling of critical flow sets can ensure that coordination between communities is not affected by latency. After completing the scheduling of critical flow sets, multiple packet flow sets can be scheduled in parallel based on the preset model to improve scheduling efficiency.

[0167] In an optional embodiment, Figure 8 This application provides a schematic diagram illustrating a process for prioritizing the scheduling of a key flow set based on a preset model, and, after completing the scheduling of the key flow set, scheduling multiple group flow sets in parallel based on the preset model to obtain a target scheduling result; as shown. Figure 8 As shown, the above-mentioned scheduling of key flow sets is based on a preset model, and after the scheduling of key flow sets is completed, multiple group flow sets are scheduled in parallel based on the preset model to obtain the target scheduling result, including:

[0168] S801: Based on the preset solver and preset model, the key flow set is prioritized and the first scheduling result is obtained;

[0169] S802: After completing the scheduling of the key flow set, based on the preset solver and preset model, multiple group flow sets are scheduled in parallel to obtain the second scheduling result;

[0170] S803: Determine the target scheduling result based on the first scheduling result and the second scheduling result.

[0171] In one specific embodiment, a preset solver is used to solve a preset model to determine the optimal solution within the preset model. Optionally, the preset solver can be configured 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 traffic transmission paths, network resource usage, etc.

[0172] In a specific embodiment, time slice occupancy is initialized. Based on a preset solver and a preset model, a key flow set is prioritized for scheduling to obtain a first scheduling result. Based on the first scheduling result, the time slice occupancy is updated to obtain an updated time slice occupancy. According to the updated time slice occupancy, multiple packet flow sets are scheduled in parallel to obtain a second scheduling result. This allows for priority allocation of network resources to the key flow set, followed by effective allocation of network resources to multiple packet flow sets, improving scheduling efficiency. Furthermore, updating the time slice occupancy based on the first scheduling result allows for flexible adjustment of remaining network resources, improving the accuracy of resource allocation for scheduling multiple packet flow sets, avoiding waste of network resources, and increasing network resource utilization. Simultaneously, it can reduce scheduling conflicts and delays between different flow sets, thereby improving the flexibility of traffic scheduling and network stability, as well as reducing scheduling complexity.

[0173] In an optional embodiment, the preset model can be an integer linear programming (ILP) model, which can be constructed in the following manner:

[0174] The objective function for minimizing the flow span within the scheduling cycle is determined as follows:

[0175] ;

[0176] ; (1)

[0177] Among them, the traffic to be scheduled This represents the first element in the set of traffic flowing through the target network. Traffic flow; This represents the set of traffic flowing through the target network; Indicates the traffic to be scheduled No. Send once; Indicates the traffic to be scheduled The number of times to send within the scheduling period, and , Indicates the scheduling period. Traffic to be scheduled The sending cycle; Indicates the flow span; Indicates the traffic to be scheduled No. Secondary physical link Start sending time; Indicates the traffic to be scheduled The transmission delay in the target network, and , Indicates the traffic to be scheduled Frame length, Indicates bandwidth;

[0178] The objective function is subject to multiple constraints, including: contention-free constraint, wait-free constraint, delay constraint, offset constraint, and time slice constraint.

[0179] The contention-free constraint is shown in the following equation:

[0180] ,

[0181] ;

[0182] (2)

[0183] ; (3)

[0184] Among them, the traffic to be scheduled Represents the first in the set of traffic flowing through the target network. Traffic flow; Indicates the traffic to be scheduled The path; Indicates the traffic to be scheduled The path; Indicates the traffic to be scheduled No. Send once; Indicates the traffic to be scheduled The number of times the data is sent within the scheduling period; Indicates the traffic to be scheduled No. Secondary physical link Start sending time; Indicates the traffic to be scheduled Transmission delay in the target network;

[0185] There are no wait constraints, as shown in the following equation:

[0186] ;

[0187] ; (4)

[0188] in, Indicates the traffic to be scheduled No. Secondary physical link Start sending time;

[0189] The delay constraint is shown in the following equation:

[0190] ;

[0191] ; (5)

[0192] in, Traffic to be scheduled The source node, Traffic to be scheduled The destination node Indicates the traffic to be scheduled No. Secondary physical link Start time of sending Indicates the traffic to be scheduled No. Secondary physical link Start sending time; This represents the latency threshold, which is the maximum allowed latency time for a stream to travel from the source node to the destination node.

[0193] The offset constraint is shown in the following formula:

[0194] ;

[0195] ; (6)

[0196] in, Indicates the offset;

[0197] The time slice constraint is as follows:

[0198] , , ;

[0199] (7)

[0200] ; (8)

[0201] in, This indicates that a time slice has been used;

[0202] The ILP model is determined based on the objective function and the constraints.

[0203] In a specific embodiment, the flow span is the maximum time it takes for all flows in the target network to complete transmission, i.e., the time span from the start of flow transmission to the completion of the last flow transmission. Minimizing the flow span can solve a scheduling problem; minimizing the flow span can improve network throughput and reduce latency; and improve network stability and reliability. In the target network, different flows to be scheduled correspond to different transmission periods, and the scheduling period is the least common multiple of the transmission periods of all flows to be scheduled.

[0204] In a specific embodiment, the contention-free constraint indicates that any two scheduled traffic streams must avoid conflict when transmitting on the same link within the same time period; that is, for any scheduled traffic stream, if it uses a link, that link cannot be occupied by other scheduled traffic streams within that time period. The wait-free constraint indicates that scheduled traffic streams are not allowed to wait at any node during processing; that is, once scheduled traffic streams begin transmission, they need to continuously pass through the entire network until they are received by the destination, without any pauses or waiting time during transmission; the wait-free constraint can improve the utilization efficiency of network resources and ensure that scheduled traffic streams do not incur delays during transmission. The delay constraint indicates a specific maximum delay that must be met when transmitting scheduled traffic streams in the network; the delay constraint can ensure that scheduled traffic streams do not exceed a predetermined delay threshold during transmission. The offset constraint indicates the delay time at which scheduled traffic streams begin transmission relative to a certain reference time in traffic scheduling; that is, the offset helps define when scheduled traffic streams begin in each cycle; the offset constraint can ensure that the start time of scheduled traffic streams is consistent in periodic scheduling, facilitating traffic coordination and management, and reducing conflicts and delays. Time-slot constraints indicate that multiple concurrently scheduled packet flows cannot occupy the time slice of a critical flow that has already been scheduled with priority; the occupancy status of already scheduled time slices can be recorded as time_slot_occupancy= Therefore, unscheduled streams cannot occupy these time slices.

[0205] In an optional embodiment, the source node, destination node, and physical link can be determined by combining a directed network graph, which can be determined in the following manner:

[0206] Identify each node in the directed graph of the network, with each node corresponding to a network device in the target network, including switches and terminal devices;

[0207] Based on the connection relationships between each network device and the direction of data transmission, the directed edges between each node are determined;

[0208] Construct a directed graph of the network based on each node and the directed edges between them.

[0209] In one specific embodiment, switches are used for forwarding and scheduling data flows (traffic) in the target network, while terminal devices are used for generating and receiving data flows (traffic). The set of all nodes in the directed graph of the network can be derived from... In other words, then This represents a switch or terminal device; the set of directed edges between nodes can be represented using... In other words, then Represents a node and nodes Connections between them; directed edges This indicates that the data flow is generated by nodes. Transmit to node .

[0210] In one specific embodiment, the set of all data streams (traffic) flowing through the target network can be determined by... This indicates that any stream It can be a six-tuple It means that, among them, For flow The source node, For flow The destination node For flow Frame length, For flow The sending cycle, This represents the maximum allowable delay for the flow from the source node to the destination node. Represents a stream The path, when the flow From the source node Start sending, passing through nodes Reach the destination node When, 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 traffic to be scheduled based on the traffic relationships between the traffic to be scheduled in the target network. Each node in the current traffic relationship graph is treated as a community, and the current modularity of the current traffic relationship graph is determined. The current modularity reflects the degree of modularity of the connections between traffic nodes in the current traffic relationship graph, which facilitates subsequent traffic grouping and reduces scheduling complexity. Then, based on the current modularity, the current traffic relationship graph is grouped to determine a set of key flows and multiple sets of grouped flows. Based on a preset model, the set of key flows is scheduled first, and after the scheduling of the set of key flows is completed, multiple sets of grouped flows are scheduled in parallel based on the preset model to obtain the target scheduling result. This can reduce scheduling conflicts and scheduling delays between groups, as well as reduce scheduling complexity and scheduling time, thereby improving scheduling efficiency and network performance. Furthermore, the technical solution provided by this invention is adaptable to different network traffic conditions. Even under large traffic volumes, it can effectively reduce flow span and scheduling time, thereby significantly improving scheduling efficiency.

[0212] This invention also provides a network traffic scheduling device, accordingly, Figure 9 This is a schematic diagram of the structure of a network traffic scheduling device provided in an embodiment of the present invention; as shown below. Figure 9 As shown, the above-mentioned device includes:

[0213] The relationship graph construction module 910 is used to construct a current traffic relationship graph corresponding to the traffic to be scheduled based on the traffic relationship between multiple traffic flows to be scheduled in the target network.

[0214] The data determination module 920 is used to treat each node in the current traffic relationship graph as a community and determine the current module degree of the current traffic relationship graph;

[0215] The traffic determination module 930 is used to group the current traffic relationship graph according to the current module degree to determine the key flow set and multiple grouped flow sets;

[0216] The traffic scheduling module 940 is used to prioritize scheduling the key flow set based on a preset model, and after completing the scheduling of the key flow set, to schedule the multiple group flow sets in parallel based on the preset model to obtain the target scheduling result.

[0217] In an optional embodiment, the flow determination module 930 includes:

[0218] The community partitioning unit is used to perform community partitioning processing on the current traffic relationship graph based on the current module degree, so as to obtain a first traffic relationship graph and a community partitioning set corresponding to the first traffic relationship graph;

[0219] The first information determination unit is used to determine the second traffic relationship graph and the first modularity corresponding to the second traffic relationship graph based on the community division set.

[0220] The second information determination unit, when the first module degree is greater than the current module degree, takes the second traffic relationship graph as the current traffic relationship graph and the first module degree as the current module degree, and jumps to the step of performing community partitioning processing on the current traffic relationship graph based on the current module degree to obtain the first traffic relationship graph and the community partitioning set corresponding to the first traffic relationship graph, until the first module degree is less than the current module degree;

[0221] The flow determination unit is used to determine the key flow set and the multiple group flow sets based on the second flow relationship graph corresponding to the first modularity.

[0222] In an optional embodiment, the community partitioning unit is specifically used for:

[0223] 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 there is a node connected to any node in the community;

[0224] Based on each second modularity and the current modularity, at least one modularity difference is determined;

[0225] Sort the at least one module degree difference in descending order to obtain the descending sort result;

[0226] Based on the descending sorting results, determine the target modularity difference of the first sorted position;

[0227] If the target modularity difference is greater than zero, the community will be merged into the adjacent community corresponding to the target modularity difference.

[0228] Repeat the process for each community in the current traffic relationship graph, merging the community into at least one adjacent community corresponding to the community to obtain at least one third traffic relationship graph, and determining the second modularity corresponding to each third traffic relationship graph until, if the target modularity difference is greater than zero, the community is merged into the adjacent community corresponding to the target modularity difference, until there is no case 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 optional embodiment, the first information determining unit is specifically used for:

[0230] Each community in the community partition set is considered a new node;

[0231] Based on the connection relationships between each new node, a second flow relationship graph is determined;

[0232] Based on the second flow relationship diagram, determine the first modularity corresponding to the second flow relationship diagram.

[0233] In an optional embodiment, the flow determination unit is specifically used for:

[0234] Traverse each node in the second flow graph;

[0235] When any node is encountered during traversal, determine whether the node has neighboring nodes that are not in the same community as the node; if the node has neighboring nodes that are not in the same community as the node, add the node to the candidate node set; wherein, the neighboring node is a node that has an undirected edge with the node.

[0236] Based on the number of neighboring 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.

[0237] Delete nodes in the descending sorted node set sequentially until there are no connections between the communities where the remaining nodes in the second traffic relationship graph are located;

[0238] Based on the deleted nodes, determine the set of key flows;

[0239] The multiple group flow sets are determined based on the community division set of the second flow relationship graph and the remaining nodes.

[0240] In an optional embodiment, the relationship graph construction module 910 includes:

[0241] A node determination unit is used to determine each node in the traffic relationship graph; wherein each node corresponds to a traffic flow to be scheduled.

[0242] An undirected edge determination unit is used to determine the undirected edges between the nodes based on whether there is path overlap between the transmission paths of each traffic to be scheduled;

[0243] The relationship graph construction unit is used to construct the flow relationship graph based on the nodes and the undirected edges between the nodes.

[0244] In an optional embodiment, the traffic scheduling module 940 includes:

[0245] The first flow scheduling unit is used to prioritize the scheduling of the key flow set based on a preset solver and a preset model, and obtain a first scheduling result.

[0246] The second flow scheduling unit is used to perform parallel scheduling on the multiple group flow sets based on a preset solver and a preset model to obtain a second scheduling result;

[0247] The scheduling result determination unit is used to determine the target scheduling result based on the first scheduling result and the second scheduling result.

[0248] In an optional embodiment, the preset model is an integer linear programming (ILP) model, which is constructed in the following manner:

[0249] A target function is determined for solving the problem of minimizing the flow span within a scheduling cycle, and the target function is shown in the following equation:

[0250] ;

[0251] ; (1)

[0252] Among them, the traffic to be scheduled Represents the first in the set of traffic flowing through the target network. Traffic flow; This represents the set of traffic flowing through the target network; Indicates the traffic to be scheduled No. Send once; Indicates the traffic to be scheduled The number of times to send within the scheduling period, and , Indicates the scheduling period. Traffic to be scheduled The sending cycle; Indicates the flow span; Indicates the traffic to be scheduled No. Secondary physical link Start sending time; Indicates the traffic to be scheduled The transmission delay in the target network, and , Indicates the traffic to be scheduled Frame length, Indicates bandwidth;

[0253] The objective function is subject to multiple constraints, including: contention-free constraint, wait-free constraint, delay constraint, offset constraint, and time slice constraint.

[0254] The contention-free constraint is shown in the following equation:

[0255] ,

[0256] ;

[0257] (2)

[0258] ; (3)

[0259] Among them, the traffic to be scheduled Represents the first in the set of traffic flowing through the target network. Traffic flow; Indicates the traffic to be scheduled The path; Indicates the traffic to be scheduled The path; Indicates the traffic to be scheduled No. Send once; Indicates the traffic to be scheduled The number of times the data is sent within the scheduling period; Indicates the traffic to be scheduled No. Secondary physical link Start sending time; Indicates the traffic to be scheduled Transmission delay in the target network;

[0260] The absence of waiting constraints is shown in the following equation:

[0261] ;

[0262] ; (4)

[0263] in, Indicates the traffic to be scheduled No. Secondary physical link Start sending time;

[0264] The delay constraint is shown in the following equation:

[0265] ;

[0266] ; (5)

[0267] in, Traffic to be scheduled The source node, Traffic to be scheduled The destination node Indicates the traffic to be scheduled No. Secondary physical link Start time of sending Indicates the traffic to be scheduled No. Secondary physical link Start sending time; This represents the latency threshold, which is the maximum allowed latency time for a stream to travel from the source node to the destination node.

[0268] The offset constraint is shown in the following formula:

[0269] ;

[0270] ; (6)

[0271] in, Indicates the offset;

[0272] The time slice constraint is shown in the following formula:

[0273] , , ;

[0274] (7)

[0275] ; (8)

[0276] in, This indicates that a time slice has been used;

[0277] The ILP model is determined based on the objective function and the constraints.

[0278] In an optional embodiment, the source node, the target node, and the physical link can be determined by combining a directed network graph. The apparatus further includes a directed graph construction module, used for...

[0279] Each node in the directed graph of the network is determined, and each node corresponds to a network device in the target network, including switches and terminal devices;

[0280] Based on the connection relationship between each network device and the data transmission direction, the directed edges between each node are determined;

[0281] The directed graph of the network is constructed based on each node and the directed edges between each node.

[0282] Regarding the apparatus in the above embodiments, the specific manner in which each module performs its operation has been described in detail in the embodiments related to the method, and will not be elaborated upon here.

[0283] This invention also provides an electronic device, the device comprising: a processor and a memory, wherein the memory stores at least one instruction, at least one program, a code set or an instruction set, wherein the at least one instruction, the at least one program, the code set or instruction set is loaded and executed by the processor to implement the network traffic scheduling method as described in any of the method embodiments.

[0284] This invention also provides a storage medium, which can be a tangible device for holding and storing 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 thereof. More specific examples (a non-exhaustive list) of computer-readable storage media 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 disc read-only memory (CD-ROM), digital multifunction disc (DVD), memory sticks, floppy disks, mechanical encoding devices, such as punch cards or recessed protrusions storing instructions thereon, and any suitable combinations thereof. The computer-readable storage medium used herein is not to be construed as a transient signal itself, such as radio waves or other freely propagating electromagnetic waves, electromagnetic waves propagating through waveguides or other transmission media (e.g., light pulses through fiber optic cables), or electrical signals transmitted through wires.

[0285] The computer-readable program instructions described herein can be downloaded from computer-readable storage media to various computing / processing devices, or downloaded via a network, such as the Internet, local area network, wide area network, and / or wireless network, to an external computer or external storage device. The network may include copper transmission cables, fiber optic transmission, wireless transmission, routers, firewalls, switches, gateway computers, and / or edge servers. A network adapter card or network interface in each computing / processing device receives the computer-readable program instructions from the network and forwards them to the computer-readable storage media in the respective computing / processing device.

[0286] The computer program instructions that perform the operations of this disclosure may be assembly instructions, instruction set architecture (ISA) instructions, machine instructions, machine-dependent 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 execute entirely on the user's computer, partially on the user's computer, as a standalone software package, partially on the user's computer and partially on a remote computer, or entirely on a remote computer or server. In cases involving a remote computer, the remote computer may be connected to the user's computer via 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., via the Internet using an Internet service provider). In some embodiments, electronic circuitry, such as programmable logic circuitry, field-programmable gate arrays (FPGAs), or programmable logic arrays (PLAs), is personalized by utilizing state information from the computer-readable program instructions to implement various aspects of this disclosure.

[0287] Those skilled in the art will understand that embodiments of the present invention can be provided as methods, systems, or computer program products. Therefore, the present invention can take the form of a completely hardware embodiment, a completely software embodiment, or an embodiment combining software and hardware aspects. Furthermore, the present invention can take the form of a computer program product embodied on one or more computer-usable storage media (including, but not limited to, disk storage, CD-ROM, optical storage, etc.) containing computer-usable program code.

[0288] This 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 will be understood that each block of the flowchart illustrations and / or block diagrams, and combinations of blocks in the flowchart illustrations and / or block diagrams, can be implemented by computer program instructions. These computer program instructions can be provided to a processor of a general-purpose computer, special-purpose computer, embedded processor, or other programmable data processing apparatus to produce a machine, such that the instructions, which execute via the processor of the computer or other programmable data processing apparatus, generate instructions for implementing the flowchart illustrations and / or block diagrams. Figure 1 One or more flowcharts and / or boxes Figure 1 A device that provides the functions specified in one or more boxes.

[0289] These computer program instructions may also be stored in a computer-readable storage medium that can direct a computer or other programmable data processing device to function in a particular manner, such that the instructions stored in the computer-readable storage medium produce an article of manufacture including instruction means, which are implemented in a process Figure 1 One or more flowcharts and / or boxes Figure 1 The function specified in one or more boxes.

[0290] These computer program instructions may also be loaded onto a computer or other programmable data processing equipment to cause a series of operational steps to be performed on the computer or other programmable equipment to produce a computer-implemented process, thereby providing instructions that execute on the computer or other programmable equipment for implementing the process. Figure 1 One or more flowcharts and / or boxes Figure 1 The steps of the function specified in one or more boxes.

[0291] The flowcharts and block diagrams in the accompanying drawings 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 a flowchart or block diagram may represent a module, segment, or portion of an instruction containing one or more executable instructions for implementing a specified logical function. In some alternative implementations, the functions marked in the blocks may occur in a different order than those shown in the drawings. For example, two consecutive blocks may actually be executed substantially in parallel, and they may sometimes be executed in 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, may be implemented using a dedicated hardware-based system that performs the specified function or action, or using a combination of dedicated hardware and computer instructions.

[0292] Finally, it should be noted that the embodiments of the present invention have been described above in conjunction with the accompanying drawings. However, the present invention is not limited to the specific embodiments described above. The specific embodiments described above are merely illustrative and not restrictive. Those skilled in the art can make many other forms under the guidance of the present invention without departing from the spirit and scope of the claims. All of these forms are within the protection scope of the present invention.

Claims

1. A network traffic scheduling method, characterized by, The method comprises: According to the traffic relationship between a plurality of to-be-scheduled flows in a target network, a current traffic relationship graph corresponding to the to-be-scheduled flows is constructed; Each node in the current traffic relationship graph is taken as a community respectively, and a current modularity of the current traffic relationship graph is determined; According to the current modularity, the current traffic relationship graph is processed in groups to determine a key flow set and a plurality of grouped flow sets; Based on a preset model, the key flow set is preferentially scheduled, and after the scheduling of the key flow set is completed, the plurality of grouped flow sets are scheduled in parallel based on the preset model to obtain a target scheduling result; Wherein, according to the current modularity, the current traffic relationship graph is processed in groups to determine a key flow set and a plurality of grouped flow sets, comprising: Based on the current modularity, the current traffic relationship graph is processed in community division to obtain a first traffic relationship graph and a community division set corresponding to the first traffic relationship graph; According to the community division set, a second traffic relationship graph and a first modularity corresponding to the second traffic relationship graph are determined; In the case where the first modularity is greater than the current modularity, the second traffic relationship graph is taken as the current traffic relationship graph, and the first modularity is taken as the current modularity, and the step of processing the current traffic relationship graph in community division based on the current modularity to obtain a first traffic relationship graph and a community division set corresponding to the first traffic relationship graph is jumped to until the first modularity is less than the current modularity; According to the second traffic relationship graph corresponding to the first modularity, the key flow set and the plurality of grouped flow sets are determined; According to the second traffic relationship graph corresponding to the first modularity, the key flow set and the plurality of grouped flow sets are determined, comprising: Traverse each node in the second traffic relationship graph; In the case where any node is traversed, it is determined whether the node has a neighbor node not in the same community as the node; in the case where the node has a neighbor node not in the same community as the node, the node is added to a candidate node set; wherein the neighbor node is a node having a non-directed edge with the node; 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 order node set; The nodes in the descending order node set are deleted in turn until there is no connection relationship between the communities in which the remaining nodes in the second traffic relationship graph are located; According to the deleted nodes, the key flow set is determined; According to the community division set of the second traffic relationship graph and the remaining nodes, the plurality of grouped flow sets are determined.

2. The network traffic scheduling method of claim 1, wherein, Based on the current modularity, the current traffic relationship graph is processed in community division to obtain a first traffic relationship graph and a community division set corresponding to the first traffic relationship graph, comprising: For each community of the current traffic relation graph, the community is merged into at least one adjacent community corresponding to the community to obtain at least one third traffic relation graph, and a second modularity corresponding to each third traffic relation graph is determined; the adjacent community is a community in which a node exists and is connected to any node in the community; According to each second modularity and the current modularity, at least one modularity difference is determined; The at least one modularity difference is sorted in descending order to obtain a descending order result; According to the descending order result, a target modularity difference at the top of the sorting is determined; In the case where the target modularity difference is greater than zero, the community is merged into the adjacent community corresponding to the target modularity difference; The steps of the above-mentioned method are repeated until there is no case where the target modularity difference is greater than zero, to obtain a first traffic relation graph and a community division set corresponding to the first traffic relation graph.

3. The network traffic scheduling method of claim 1, wherein, The method further comprises the following steps: Each community corresponding to the community division set is regarded as a new node; According to the connection relationship between each new node, a second traffic relation graph is determined; According to the second traffic relation graph, a first modularity corresponding to the second traffic relation graph is determined.

4. The network traffic scheduling method of claim 1, wherein, The method further comprises the following steps: Each node in the traffic relation graph is determined; wherein each node corresponds to a to-be-scheduled flow; According to whether a transmission path exists between each to-be-scheduled flow, a non-directional edge between each node is determined; According to each node and the non-directional edge between each node, the traffic relation graph is constructed.

5. The network traffic scheduling method of claim 1, wherein, The method further comprises the following steps: Based on a preset model, the critical flow set is preferentially scheduled, and after the scheduling of the critical flow set is completed, the multiple grouped flow sets are scheduled in parallel based on the preset model to obtain a target scheduling result. Based on a preset solver and a preset model, the critical flow set is preferentially scheduled to obtain a first scheduling result; After the scheduling of the critical flow set is completed, the multiple grouped flow sets are scheduled in parallel based on a preset solver and a preset model to obtain a second scheduling result; 6. The network traffic scheduling method of claim 5, wherein, According to the first scheduling result and the second scheduling result, the target scheduling result is determined. The preset model is an integer linear programming ILP model, and the preset model is constructed in the following manner: A target function for solving a flow span in a scheduling period is determined, and the target function is as follows: ; ; (1) wherein the traffic to be invoked represents the first time of sending the traffic ; represents the set of traffics flowing through the target network; wherein the traffic to be invoked is sent for the first time; wherein the traffic to be invoked is sent for the first time in the scheduling period, and , represents the scheduling period, wherein the traffic to be invoked is sent for the first time; represents the first sending time of the traffic from the physical link ; wherein the traffic to be invoked has a transmission delay in the target network, and , represents the frame length of the traffic to be invoked , represents the bandwidth; The objective function is subject to a plurality of constraint conditions, including: a contention-free constraint, a wait-free constraint, a delay constraint, an offset constraint, and a time slice constraint; The contention-free constraint is as follows: , ; (2) ; (3) Wherein, the to-be-invoked traffic represents the i-th traffic in the traffic set flowing through the target network; represents the path of the to-be-invoked traffic ; represents the path of the to-be-invoked traffic ; represents the transmission delay of the to-be-invoked traffic in the target network; represents the i-th sending of the to-be-invoked traffic ; represents the number of sending of the to-be-invoked traffic in the scheduling period; represents the i-th sending time of the to-be-invoked traffic from the physical link ; represents the transmission delay of the to-be-invoked traffic in the target network;​ The wait-free constraint is as follows: ; ; (4) wherein, indicates the traffic to be invoked the first time to start sending from the physical link time; The delay constraint is as follows: ; ; (5) wherein, is a source node of the traffic to be invoked, is a destination node of the traffic to be invoked, denotes the traffic to be invoked, denotes the traffic to be invoked, denotes the traffic to be invoked, denotes a first sending time from a physical link, denotes a first sending time from a physical link, denotes a first sending time from a physical link, denotes a first sending time from a physical link, denotes a first sending time from a physical link, denotes a first sending time from a physical link, denotes a first sending time from a physical link, denotes a delay threshold, i.e. a maximum allowed delay time for the flow from the source node to the destination node; The offset constraint is as follows: ; ; (6) wherein represents an offset amount; The time slice constraint is as follows: , , ; (7) ; (8) wherein, indicates that the time slice has been invoked; The ILP model is determined according to the objective function and the constraint conditions.

7. The network traffic scheduling method of claim 6, wherein, The source node, the target 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: Each node in the network directed graph is determined, and each node corresponds to a network device in the target network, and the network device includes a switch and a terminal device; A directed edge between each node is determined according to a connection relationship and a data transmission direction between each network device; The network directed graph is constructed according to each node and the directed edge between each node.

8. A computer storage medium, the computer storage medium storing at least one instruction and at least one program, the at least one instruction and the at least one program being loaded and executed by a processor to implement the network traffic scheduling method according to any one of claims 1 to 7.

Citation Information

Patent Citations

  • Large-scale flow scheduling method based on dynamic grouping for time delay sensitive industrial Internet of Things

    CN115766596A

  • Method and device for scheduling attack traffic, electronic equipment and storage medium

    CN119172140A