Traffic engineering device, traffic engineering method, and traffic engineering program

The traffic engineering device optimizes network routes by acquiring topology and flow information, preprocessing to exclude certain flows, and using linear programming to minimize route changes and link utilization, addressing the limitations of conventional systems in large-scale networks.

JP7720003B2Active Publication Date: 2025-08-07NIPPON TELEGRAPH & TELEPHONE CORP
View PDF 1 Cites 0 Cited by

Patent Information

Application Number
JP2023578233
Authority / Receiving Office
JP · JP
Patent Type
Patents
Current Assignee / Owner
Filing Date
2022-02-01
Publication Date
2025-08-07
Estimated Expiration
2042-02-01

AI Technical Summary

Technical Problem

Conventional traffic engineering systems struggle with low resolution for traffic identification, inability to analyze multiply labeled and encapsulated traffic, and difficulty in calculating routes to suppress route fluctuations in large-scale networks, especially for telecommunications carriers.

Method used

A traffic engineering device that acquires network topology and flow information, performs preprocessing to exclude flows that do not allow route changes, and calculates routes using linear programming to minimize route fluctuations and link utilization, employing heuristic and Dijkstra algorithms for efficient route determination.

Benefits of technology

Enables effective suppression of route changes based on flow information and operational policies, optimizing network resource utilization and reducing fluctuations within a realistic timeframe.

✦ Generated by Eureka AI based on patent content.

Smart Images

  • Figure 0007720003000002
    Figure 0007720003000002
  • Figure 0007720003000003
    Figure 0007720003000003
  • Figure 0007720003000004
    Figure 0007720003000004
Patent Text Reader

Abstract

An acquisition unit (15a) acquires network topology information (14a) indicating the connective configuration of network devices and also acquires traffic information data (14b) that is information of flows in the traffics. A route calculating unit (15c) calculates the route of each flow such that the number of flows the routes of which are to be changed is minimized.
Need to check novelty before this filing date? Find Prior Art

Description

[Technical Field]

[0001] The present invention relates to a traffic engineering device, a traffic engineering method, and a traffic engineering program. [Background technology]

[0002] Efficiently accommodating ever-increasing traffic is an important issue for telecommunications carriers. To address this issue, a technology called Traffic Engineering (TE) is known that solves mathematical optimization problems based on constraints such as network topology, link capacity, and exchange traffic, calculates traffic routes that minimize the utilization of network resources, and explicitly changes the traffic routes (see Non-Patent Documents 1 and 2). [Prior art documents] [Non-patent literature]

[0003] [Non-Patent Document 1] Hitoshi Hashimoto and five others, "Proposal and Evaluation of Dynamic MPLS-TE Method Capable of Limiting Path Reconfiguration Traffic Volume," IEICE Transactions on Network Engineering, Vol. J91-B No. 6, pp. 645-654, 2008. [Non-patent document 2] Yufei Wang, Zheng Wang, "Explicit Routing Algorithms for Internet Traffic Engineering", IEEE. Proceedings Eight International Conference on Computer Communications and Networks (Cat. No.99EX370) Summary of the Invention [Problem to be solved by the invention]

[0004] However, with conventional technologies, it is difficult to limit or suppress communications subject to route changes based on flow information, operational policies, etc. For example, conventional systems have low resolution for traffic identification, and can only perform TE on a per-link or per-bundle basis. Furthermore, there is no mechanism for clearly analyzing exchange traffic information. Therefore, it is difficult to clearly analyze multiply labeled and encapsulated traffic, calculate routes to suppress route fluctuations, and identify traffic at a fine-grained level for route control. Furthermore, it is known that solving this problem within a realistic timeframe is difficult in large-scale networks such as those of telecommunications carriers.

[0005] The present invention has been made in consideration of the above, and aims to make it possible to limit or suppress communications that are subject to route changes based on flow information, operational policies, etc. [Means for solving the problem]

[0006] In order to solve the above-mentioned problems and achieve the objectives, the traffic engineering device of the present invention is characterized by having an acquisition unit that acquires information indicating the connection topology of network devices and information about flows in the traffic, and a route calculation unit that calculates the route of each flow so as to minimize the number of flows that change routes. [Effects of the Invention]

[0007] According to the present invention, it is possible to limit or suppress communications that are subject to route changes based on flow information, operation policies, and the like. [Brief explanation of the drawings]

[0008] [Figure 1] FIG. 1 is a diagram for explaining an outline of the TE device. [Figure 2] FIG. 2 is a diagram for explaining an outline of the TE device. [Figure 3] FIG. 3 is a diagram for explaining an outline of the TE device. [Figure 4] FIG. 4 is a diagram for explaining an outline of the TE device. [Figure 5] FIG. 5 is a schematic diagram illustrating the general configuration of a TE device. [Figure 6] FIG. 6 is a diagram illustrating an example of the data structure of the network topology information. [Figure 7] FIG. 7 is a diagram illustrating an example of the data structure of the traffic information data. [Figure 8] FIG. 8 is a diagram for explaining the processing of the preprocessing unit. [Figure 9] FIG. 9 is a diagram for explaining the processing of the TE device of the first embodiment. [Figure 10] FIG. 10 is a diagram for explaining the processing of the TE device of the first embodiment. [Figure 11] FIG. 11 is a diagram for explaining the processing of the TE device of the first embodiment. [Figure 12] FIG. 12 is a diagram for explaining the processing of the TE device of the first embodiment. [Figure 13] FIG. 13 is a diagram for explaining the processing of the TE device of the first embodiment. [Figure 14] FIG. 14 is a diagram for explaining the processing of the TE device of the first embodiment. [Figure 15] FIG. 15 is a diagram for explaining the processing of the TE device of the first embodiment. [Figure 16] FIG. 16 is a diagram for explaining the processing of the TE device of the first embodiment. [Figure 17] FIG. 17 is a diagram for explaining the processing of the TE device of the first embodiment. [Figure 18] FIG. 18 is a diagram for explaining the processing of the TE device of the first embodiment. [Figure 19] FIG. 19 is a flowchart showing the TE processing procedure. [Figure 20] FIG. 20 is a diagram for explaining the processing of the TE device of the second embodiment. [Figure 21]FIG. 21 is a diagram for explaining the processing of the TE device of the second embodiment. [Figure 22] FIG. 22 is a diagram for explaining the processing of the TE device of the third embodiment. [Figure 23] FIG. 23 is a diagram for explaining the processing of the TE device of the third embodiment. [Figure 24] FIG. 24 is a diagram for explaining the processing of the TE device according to another embodiment. [Figure 25] FIG. 25 is a diagram illustrating a computer that executes a TE program. DETAILED DESCRIPTION OF THE INVENTION

[0009] Hereinafter, an embodiment of the present invention will be described in detail with reference to the drawings. Note that the present invention is not limited to this embodiment. In addition, in the description of the drawings, the same parts are designated by the same reference numerals.

[0010] [Traffic Engineering (TE) Equipment Overview] 1 to 4 are diagrams for explaining an overview of the TE device. First, as shown in Fig. 1, the TE device 10 of this embodiment analyzes information on services such as VPN, user communications, communication routes, etc. from exchange traffic information collected from NEs (Network Elements), and performs route calculation that suppresses route fluctuations based on the analyzed information.

[0011] In conventional TE, problems are classified into BP (Bifurcation Problem), which allows branching and merging of traffic midway, and NBP (Non-Bifurcation Problem), which does not, as shown in Figure 2. In BP, as shown in Figure 2(a), the solution to the mathematical optimization problem is allowed to be a real number solution, so calculation is fast, but it is difficult to realize branching and merging of traffic midway using existing network equipment.

[0012] On the other hand, in NBP, the solution to the mathematical optimization problem is limited to integer solutions, as illustrated in Figure 2(b). Therefore, although it can be realized using network devices, finding an integer solution is known to be NP-hard.

[0013] Therefore, in the TE device 10 of this embodiment, when calculating a route, a heuristic solution is used to calculate a route that is not an optimal solution but is calculated within a realistic time period so that branching and joining of traffic does not occur along the way.

[0014] 3, the TE device 10 analyzes the collected exchange traffic information, acquires network topology information and traffic information data, and stores them in the storage unit 14. Then, the TE device 10 performs route calculation that suppresses route fluctuations of the flow based on the acquired network topology information and traffic information data.

[0015] At this time, the TE device 10 may perform route calculation by utilizing an optimal solution that is a mathematical calculation result by a linear programming problem solver, as will be described later. For example, the TE device 10 uses network topology information and traffic information data to formulate a linear programming problem with the objective variables, constraint conditions, and variables shown below, passes it to the linear programming problem solver, and receives the result variables as return.

[0016] The objective variables of the linear programming problem are the minimization of the maximum link utilization rate and the minimization of the route fluctuation flow. The constraints are the network topology, link capacity, and traffic volume and route information for each flow. The variables are the routes that the traffic of each flow should take, and a real solution is obtained.

[0017] As shown in Fig. 4, before route calculation, the TE device 10 performs preprocessing to delete flows that are not to be subjected to route fluctuations, thereby excluding them from the targets of route calculation. In the example shown in Fig. 4, the flow with VPN identifier "H", which indicates a service for premium users, is deleted from the traffic information data, thereby excluding the flow from the targets of route calculation. This makes it possible to efficiently suppress route fluctuations.

[0018] [First embodiment] [TE device configuration] Fig. 5 is a schematic diagram illustrating the overall configuration of a TE device. As illustrated in Fig. 5, a TE device 10 is realized by a general-purpose computer such as a personal computer, and includes an input unit 11, an output unit 12, a communication control unit 13, a storage unit 14, and a control unit 15.

[0019] The input unit 11 is realized by using input devices such as a keyboard and a mouse, and inputs various instruction information such as a command to start processing to the control unit 15 in response to input operations by an operator. The output unit 12 is realized by a display device such as a liquid crystal display, a printing device such as a printer, etc. For example, the output unit 12 displays the TE results described below.

[0020] The communication control unit 13 is realized by a NIC (Network Interface Card) or the like, and controls communication between the control unit 15 and external devices via telecommunication lines such as a LAN (Local Area Network) or the Internet. For example, the communication control unit 13 controls communication between the control unit 15 and external devices such as network devices such as edge routers, collection devices that collect exchange traffic information of network devices, and controllers that perform TE.

[0021] The storage unit 14 is realized by a semiconductor memory element such as a RAM (Random Access Memory) or a flash memory, or a storage device such as a hard disk or an optical disk. The storage unit 14 stores in advance a processing program for operating the TE device 10, data used during execution of the processing program, and the like, or temporarily stores the data each time processing is performed.

[0022] In this embodiment, the storage unit 14 stores network topology information 14a, traffic information data 14b, etc. The storage unit 14 may be configured to communicate with the control unit 15 via the communication control unit 13.

[0023] Fig. 6 is a diagram illustrating an example of the data configuration of network topology information. The network topology information 14a indicates the connection topology of network elements (NEs) such as edge routers. For example, as illustrated in Fig. 6, the network topology information 14a is information that represents links between NEs in a graph format. Note that V, W, X, Y, and Z in Fig. 6 represent edge routers.

[0024] 7 is a diagram illustrating an example of the data configuration of traffic information data. As shown in FIG. 7, the traffic information data 14b includes information on the line identifier, VPN identifier, user communication identifier, source edge router, destination edge router, used bandwidth, and communication path of each flow. The line identifier is, for example, the VID of the C-VLAN. The VPN identifier is, for example, the outer IP address of a tunnel such as IPsec. The user communication identifier is, for example, the inner IP address of the tunnel.

[0025] Returning to the explanation of FIG. 5, the control unit 15 is realized using a CPU (Central Processing Unit), an NP (Network Processor), an FPGA (Field Programmable Gate Array), or the like, and executes processing programs stored in memory. As a result, the control unit 15 functions as an acquisition unit 15a, a preprocessing unit 15b, a route calculation unit 15c, and a mathematical calculation unit 15d, as exemplified in FIG. 5. Note that these functional units may be implemented in different hardware. For example, the preprocessing unit 15b may be implemented in hardware different from the other functional units. The control unit 15 may also include other functional units.

[0026] The acquiring unit 15a acquires network topology information 14a indicating the connection topology of network devices and traffic information data 14b, which is information on flows in traffic. For example, the acquiring unit 15a acquires exchange traffic information via the communication control unit 13 from a collection device or the like that collects exchange traffic information. The acquiring unit 15a also analyzes the collected exchange traffic information to acquire the network topology information 14a and the traffic information data 14b. The acquiring unit 15a stores the acquired network topology information 14a and traffic information data 14b in the storage unit 14.

[0027] The preprocessing unit 15b deletes information about flows that do not allow route changes from the traffic information data 14b, which is information about flows in the traffic. Specifically, the preprocessing unit 15b receives an input specifying a flow that does not allow route changes via the input unit 11 or the communication control unit 13, and deletes the specified flow from the traffic information data 14b.

[0028] For example, the preprocessing unit 15b deletes from the traffic information data 14b flows for which route changes are not desired, such as services for premium users, as illustrated in Fig. 4. As a result, the preprocessing unit 15b excludes the flows from the targets of the TE processing described later.

[0029] Furthermore, the preprocessing unit 15b includes at least one of the average, maximum, and minimum values of the traffic volume acquired at different times in the traffic information data 14b, which is information on the flow within the traffic.

[0030] 8 is a diagram for explaining the processing of the pre-processing unit. In order to perform TE processing taking into account time fluctuations in traffic, the pre-processing unit 15b may calculate the average, maximum, and minimum values for the bandwidth of each flow for multiple pieces of data acquired at different times, as shown in FIG. 8, and add these values to the traffic information data 14b.

[0031] Since the bandwidth of a flow usually changes over time, a route calculated by extracting traffic information at a certain time does not necessarily provide the optimal solution at a different time. In response to this, the TE processing described below makes it possible to use the average, maximum, or minimum value as the bandwidth for each flow depending on the availability of network resources and policies. For example, when network resources are frequently available or for priority flows, TE processing is performed using the maximum value of the bandwidth used.

[0032] Returning to the explanation of Fig. 5, the route calculation unit 15c calculates the route of each flow so as to minimize the number of flows that change routes.

[0033] Specifically, in the TE device 10 of this embodiment, the mathematical calculation unit 15d calculates a solution to a linear programming problem formulated so as to minimize the number of flows that change paths and minimize the maximum link utilization rate. Also, the path calculation unit 15c determines the path of each flow based on the solution to the linear programming problem obtained for a group of flows that are groups of flows in the traffic.

[0034] 9 to 18 are diagrams for explaining the processing of the TE device of the first embodiment. First, as shown in Fig. 9, the route calculation unit 15c groups the original flows in user communication units into VPN units, VLAN units, or the like, to create a flow group with coarse granularity. Then, the mathematical calculation unit 15d solves a linear programming problem for the flow group aggregated into coarse granularity, such as into VPN units.

[0035] Then, the route calculation unit 15c applies a packing problem to apply each flow to a real solution. That is, a real solution is realized by packing the original flow per user communication into a real solution in which a traffic branch occurs midway. In the example shown in Fig. 8, a real solution in which the flow per VPN is branched into 70% and 30% is realized by allocating the flow per user communication.

[0036] Specifically, the route calculation unit 15c aggregates the traffic information data 14b for each edge router and creates a traffic matrix representing information between edge routers, as shown in Fig. 10. Fig. 10 illustrates an example of the bandwidth (Mbps) used between edge routers.

[0037] Next, the mathematical calculation unit 15d uses the network topology information 14a and the traffic matrix to solve a linear programming problem that minimizes the maximum link utilization rate, and calculates an optimal solution.

[0038] Then, for flows branching in the optimal solution, the route calculation unit 15c considers accommodating flows that cannot be accommodated on a line-by-line basis on a VPN-by-VPN basis. Furthermore, the route calculation unit 15c considers flows that cannot be accommodated on a VPN-by-VPN basis on a user communication-by-user communication basis. Furthermore, the route calculation unit 15c calculates routes for flows that cannot be accommodated on a user communication-by-user communication basis using the Dijkstra algorithm.

[0039] For example, in the examples shown in FIGS. 11 to 18, the flow (VX flow) from edge router V to edge router X, which has a bandwidth of 130 Mbps, among the traffic matrices shown in FIG. 10, is the target of TE processing.

[0040] FIG. 11(a) shows the bandwidths of the links L1 to L6 in the optimal solution for the VX flow. As will be described below, this bandwidth can be considered as the upper limit of the flow that the route calculation unit 15c can accommodate for each link. For example, L1 can accommodate flows with a usage bandwidth of up to 127 Mbps. The upper limit may be relaxed by multiplying it by an adjustment parameter. This makes it possible to avoid the occurrence of flows that cannot be accommodated, as will be described later.

[0041] 11(b) shows an example of a breakdown of a 130 Mbps VX flow by line. Similarly, FIGS. 12 to 17 show examples of a breakdown of a VX flow by line, VNP, or user communication.

[0042] The route calculation unit 15c selects the thickest link branching from the starting node of the target flow. In the example shown in FIG. 11(a), link L1 is selected. This link L1 can accommodate flows up to 127 Mbps. The route calculation unit 15c accommodates the flows per line that can be accommodated within that range in descending order of the bandwidth used by the line using a greedy method. For example, link L1 accommodates the flow with line identifier A and a bandwidth used of 120 Mbps shown in FIG. 11(b).

[0043] Next, the route calculation unit 15c selects the thickest link L2 following the link L1 for the flow with the line identifier A. This link L2 can accommodate flows up to 101 Mbps. As shown in FIG. 12(a), there are no line-based flows or VPN-based flows that can be accommodated within that range. Therefore, the route calculation unit 15c accommodates the flow with the thickest user communication identifier M and a usage bandwidth of 100 Mbps among the flows per user communication shown in FIG. 12(b).

[0044] Next, the route calculation unit 15c selects the thickest link L3 following the link L2 for the flow with user communication identifier M. This link L3 can accommodate flows of up to 101 Mbps. The route calculation unit 15c accommodates the flow with user communication identifier M within that range, as shown in FIG. 13. In this case, the route calculation unit 15c returns flag information indicating that accommodation of the flow with user communication identifier M for each user communication has been completed.

[0045] In addition, since the route calculation unit 15c targets unaccommodated flows, it returns the process to the previous step and updates the remaining bandwidth that can be accommodated in link L2 to 1 Mbps, which is obtained by subtracting the determined 100 Mbps from 101 Mbps. The unaccommodated flow with user communication identifier N shown in Figure 14(b) has a usage bandwidth of 20 Mbps and cannot be accommodated in the remaining bandwidth of link L2.

[0046] Therefore, the route calculation unit 15c selects link L4, which is subsequent to link L1, for the flow with line identifier A. This link L4 can accommodate flows up to 26 Mbps, but as shown in Figure 15(a), there are no flows per VPN that can be accommodated within that range. Therefore, the route calculation unit 15c accommodates the flow with user communication identifier N.

[0047] Next, the route calculation unit 15c selects link L5, which is subsequent to link L4, for the flow with user communication identifier N. This link L5 can accommodate flows up to 26 Mbps. The route calculation unit 15c accommodates the flow with user communication identifier N within that range. In addition, as shown in FIG. 15(b), the route calculation unit 15c returns flag information indicating that accommodation of the flow with user communication identifier N for each user communication has been completed.

[0048] Next, the route calculation unit 15c returns the process to the previous step to target unaccommodated flows, and updates the remaining bandwidth of link L4 to 6 Mbps by subtracting the confirmed 20 Mbps from 26 Mbps. Meanwhile, as shown in Fig. 16(b), since there are no unaccommodated flows, the route calculation unit 15c returns the process to the previous step again, and returns flag information indicating that accommodation of flows for each VPN with circuit identifier A has been completed, as shown in Fig. 16(a).

[0049] Next, the route calculation unit 15c selects link L6 as the target of an unaccommodated line-based flow. This link L6 can accommodate flows up to 3 Mbps, but as shown in FIG. 17(a), there is no line-based flow that can be accommodated within that range. Here, the unaccommodated flow with line identifier C cannot be accommodated either on a VPN basis or on a user communication basis, as shown in FIG. 17(b). Therefore, the route calculation unit 15c returns information indicating that the flow with user communication identifier R is unaccommodated, and ends the processing for the VX flow.

[0050] As described above, the route calculation unit 15c may relax the upper limit of the capacity by multiplying it by an adjustment parameter, thereby preventing any unaccommodated flows from occurring.

[0051] Furthermore, the route calculation unit 15c calculates routes for unaccommodated flows by searching for the shortest route sequentially from the starting point using Dijkstra's algorithm. In this case, the route calculation unit 15c calculates routes using the inverse of the remaining bandwidth c_i,j of link i,j as the link metric, as shown in Fig. 18. As a result, the larger the remaining bandwidth, i.e., the smaller the link utilization rate, the more preferentially a route including the link is selected.

[0052] Furthermore, the route calculation unit 15c instructs the controller to change the route based on the determined route.

[0053] [Traffic Engineering (TE) Processing] Next, Fig. 19 is a flowchart showing the procedure of the TE process. The flowchart in Fig. 19 starts, for example, when the user instructs the start of the process.

[0054] First, the acquiring unit 15a acquires and analyzes the exchange traffic information from a collecting device or the like that collects the exchange traffic information, thereby acquiring the network topology information 14a and the traffic information data 14b (step S1). The acquiring unit 15a stores the acquired network topology information 14a and the traffic information data 14b in the storage unit 14.

[0055] Next, the preprocessing unit 15b receives an input specifying a flow for which a route change is not permitted, and deletes the specified flow from the traffic information data 14b (step S2).

[0056] Next, the route calculation unit 15c calculates the route of each flow so as to minimize the number of flows that change their routes (step S3). Specifically, the mathematical calculation unit 15d calculates a solution to a linear programming problem formulated so as to minimize the number of flows that change their routes and minimize the maximum link utilization rate. Then, the route calculation unit 15c determines the route of each flow based on the solution to the linear programming problem obtained for a group of flows that are groups of flows in the traffic.

[0057] For example, for flows branching in the optimal solution, the route calculation unit 15c considers accommodating flows that cannot be accommodated on a line-by-line basis on a VPN-by-VPN basis. Furthermore, the route calculation unit 15c considers flows that cannot be accommodated on a VPN-by-VPN basis on a user communication-by-user basis. Furthermore, the route calculation unit 15c calculates and determines routes for flows that cannot be accommodated on a user communication-by-user basis using the Dijkstra algorithm.

[0058] Furthermore, the route calculation unit 15c instructs the controller to change the route based on the determined route (step S4), thereby completing a series of TE processes.

[0059] [Second embodiment] 20 and 21 are diagrams for explaining the processing of the TE device of the second embodiment. Note that, below, only the points that are different from the TE processing of the TE device 10 of the first embodiment will be explained, and the explanation of the points in common will be omitted.

[0060] In the TE device 10 of the second embodiment, the route calculation unit 15c calculates a route for each flow when the sum of the descending traffic volumes of each flow accounts for a predetermined percentage of the total traffic volume. Specifically, as shown in Fig. 20, the route calculation unit 15c performs TE processing on only the Top-N flows that dominate the total traffic volume.

[0061] Here, a Top-N flow is a flow that accounts for a predetermined percentage of the total traffic volume. In this embodiment, flows other than the Top-N flows are not routed. It is assumed that the number of Top-N flows is overwhelmingly greater than the number of flows other than the Top-N flows. Therefore, the TE device 10 can suppress the number of flows that cause route fluctuations while ensuring a certain degree of optimization effect.

[0062] The TE processing procedure of the second embodiment is shown in Fig. 21. First, the route calculation unit 15c sorts the flows of the traffic information data 14b by the bandwidth used (step S11).

[0063] The route calculation unit 15c also selects the Top-N flows from the sorted traffic information data 14b. That is, the route calculation unit 15c selects the flows from the traffic information data 14b in descending order of bandwidth utilization so that the flows account for a predetermined X% of the total bandwidth utilization (step S12). Here, X is a parameter managed by the SG or the like.

[0064] The route calculation unit 15c sets the selected Top-N flows as a flow set to be processed thereafter (step S13). The route calculation unit 15c also subtracts the bandwidth used by flows other than the Top-N flows from the link capacity of the network topology information 14a (step S14).

[0065] The route calculation unit 15c selects flows one by one from the flow set, performs shortest path search using Dijkstra's algorithm, and determines a path arrangement (route) (step S15). In this case, the route calculation unit 15c calculates a route using the inverse of the remaining bandwidth c_ij of each link as a metric. In addition, the route calculation unit 15c subtracts the used bandwidth of the flow whose route has been determined from the link capacity (step S16).

[0066] If the flow set is not empty (step S17, No), the route calculation unit 15c returns the process to step S15. If the flow set becomes empty (step S17, Yes), the route calculation unit 15c ends the series of processes.

[0067] [Third embodiment] 22 and 23 are diagrams for explaining the processing of the TE device of the third embodiment. In the TE device 10 of the third embodiment, the route calculation unit 15c recalculates routes by the Dijkstra algorithm for real solutions among the solutions calculated by the mathematical calculation unit 15d. Specifically, as shown in FIG. 22, after solving a linear programming problem using a known solution method, improvements are made taking route fluctuations into consideration. Specifically, first, the linear programming problem is solved to obtain a solution for the route of each flow that minimizes the maximum link utilization rate.

[0068] Since an integer solution can be realized by a network device, the obtained route is confirmed. On the other hand, since a real number solution is difficult to realize by a network device, the route calculation unit 15c performs recalculation using the Dijkstra algorithm. At this time, the route calculation unit 15c focuses on whether the bottleneck link has deteriorated as a link metric and on how much the link utilization rate has increased. Then, the link utilization rate of the original path allocation (route) is compared with the link utilization rate of the recalculated path allocation, and the path allocation that results in the lower link utilization rate is adopted.

[0069] The TE processing procedure of the third embodiment is shown in Fig. 23. First, the mathematical calculation unit 15d solves a linear programming problem to obtain the maximum link utilization rate r and the route of each flow (step S21).

[0070] The route calculation unit 15c selects flows that have real solutions from which the routes branch, and classifies them into S_d and S_e (step S22). Here, S_d is a flow that passes through a link with a link utilization rate of r, and S_e is a flow other than S_d. In addition, the bandwidth on each link of the flows with integer solutions other than S_d and S_e is set to f_ij (step S23), and the route is determined.

[0071] The route calculation unit 15c repeats the processes of steps S25 to S29 (step S30) until S_d and S_e become empty (step S24).

[0072] First, the route calculation unit 15c calculates the maximum link utilization rate r' based on f_ij (step S25). Next, the route calculation unit 15c selects one flow each from S_d and S_e, and determines the path arrangement (route) by searching for the shortest route using Dijkstra's algorithm (step 26). The link metric in this case is given by the following equation (1).

[0073]

number

[0074] The route calculation unit 15c checks whether the path allocation calculated by the Dijkstra algorithm matches the original path allocation (step S27). If they do not match (step S27, No), the path allocation with the lower utilization rate is adopted (step S28), and the utilization bandwidth of the flow whose route has been determined is added to f_ij (step S29). On the other hand, if they match (step S27, Yes), the process proceeds to step S29.

[0075] Then, when S_d and S_e become empty, the route calculation unit 15c ends the series of processes.

[0076] [Other embodiments] Fig. 24 is a diagram for explaining the processing of the TE device of another embodiment. The TE device 10 may perform processing that combines the processing of the first to third embodiments. In Fig. 24, calculation method (1) means the processing of the first embodiment. Furthermore, calculation method (2) means the processing of the second embodiment, and calculation method (3) means the processing of the third embodiment.

[0077] Specifically, in calculation method (1), as shown in Fig. 9, the grouping of the first embodiment is performed to change the granularity of the TE target, a solution to the linear programming problem is obtained, and a packing problem is applied to the real solution. In calculation method (2), as shown in Fig. 20, only the Top-N that dominates the total traffic volume is selected as the target for TE processing, and flow placement is calculated using the Dijkstra algorithm. In calculation method (3), as shown in Fig. 22, a solution to the linear programming problem is obtained, and real solution real-number solution reallocation is performed taking route fluctuations into consideration.

[0078] The TE device 10 can determine the route by combining the processes of the calculation methods (1) to (3), as shown in Fig. 24. This makes it possible to perform TE processing by more efficiently suppressing route fluctuations using the optimal method according to the situation.

[0079] [effect] As described above, in the TE device 10, the acquisition unit 15a acquires network topology information 14a indicating the connection topology of network devices and traffic information data 14b, which is information on flows in the traffic. In addition, the route calculation unit 15c calculates the route of each flow so as to minimize the number of flows that change routes.

[0080] Specifically, the mathematical calculation unit 15d calculates a solution to a linear programming problem formulated to minimize the number of flows whose routes are changed and the maximum link utilization rate. The route calculation unit 15c determines the route of each flow based on the solution to the linear programming problem obtained for a group of flows, which are groups of flows within the traffic. This makes it possible to efficiently limit or suppress communications that are subject to route changes within a realistic time frame based on flow information, operation policies, etc.

[0081] Alternatively, when the sum of the traffic volumes of the flows in descending order accounts for a predetermined percentage of the total traffic volume, the route calculation unit 15c calculates the route of each flow for these flows. This makes it possible to limit or suppress communications that are subject to route changes efficiently within a realistic time frame based on flow information, operation policies, etc.

[0082] Alternatively, the mathematical calculation unit 15d calculates a solution to a linear programming problem formulated to minimize the number of flows whose routes are changed and the maximum link utilization rate. The route calculation unit 15c recalculates routes for real solutions using the Dijkstra algorithm. This makes it possible to efficiently limit or suppress communications that are subject to route changes within a realistic time frame based on flow information, operation policies, etc.

[0083] Furthermore, the preprocessing unit 15b deletes information about flows that do not allow route changes from the traffic information data 14b, which is information about flows within the traffic, thereby making it possible to efficiently suppress route changes.

[0084] Furthermore, the preprocessing unit 15b includes at least one of the average, maximum, and minimum values of traffic volume acquired at different times in the traffic information data 14b, which is information on flows within the traffic. This enables effective TE processing by selectively using the average, maximum, or minimum value as the bandwidth of each flow depending on the availability of network resources and the policy.

[0085] [program] A program describing the processing executed by the TE device 10 according to the above embodiment in a computer-executable language can also be created. In one embodiment, the TE device 10 can be implemented by installing a TE program that executes the above TE processing as package software or online software on a desired computer. For example, by executing the above TE program on an information processing device, the information processing device can function as the TE device 10. Other examples of information processing devices include mobile communication terminals such as smartphones, mobile phones, and PHS (Personal Handyphone Systems), as well as slate terminals such as PDAs (Personal Digital Assistants). The functions of the TE device 10 may also be implemented on a cloud server.

[0086] 25 is a diagram showing an example of a computer that executes a TE program. The computer 1000 includes, for example, a memory 1010, a CPU 1020, a hard disk drive interface 1030, a disk drive interface 1040, a serial port interface 1050, a video adapter 1060, and a network interface 1070. These components are connected by a bus 1080.

[0087] The memory 1010 includes a ROM (Read Only Memory) 1011 and a RAM 1012. The ROM 1011 stores, for example, a boot program such as a BIOS (Basic Input Output System). The hard disk drive interface 1030 is connected to a hard disk drive 1031. The disk drive interface 1040 is connected to a disk drive 1041. A removable storage medium such as a magnetic disk or optical disk is inserted into the disk drive 1041. The serial port interface 1050 is connected to, for example, a mouse 1051 and a keyboard 1052. The video adapter 1060 is connected to, for example, a display 1061.

[0088] Here, the hard disk drive 1031 stores, for example, an OS 1091, an application program 1092, a program module 1093, and program data 1094. Each piece of information described in the above embodiment is stored in the hard disk drive 1031 or memory 1010, for example.

[0089] The TE program is stored in the hard disk drive 1031 as, for example, a program module 1093 in which instructions to be executed by the computer 1000 are written. Specifically, the hard disk drive 1031 stores the program module 1093 in which each process executed by the TE device 10 described in the above embodiment is written.

[0090] Furthermore, data used for information processing by the TE program is stored as program data 1094, for example, in the hard disk drive 1031. Then, the CPU 1020 reads the program module 1093 and the program data 1094 stored in the hard disk drive 1031 into the RAM 1012 as necessary, and executes each of the above-described procedures.

[0091] The program module 1093 and program data 1094 related to the TE program are not limited to being stored in the hard disk drive 1031, and may be stored in, for example, a removable storage medium and read by the CPU 1020 via the disk drive 1041. Alternatively, the program module 1093 and program data 1094 related to the TE program may be stored in another computer connected via a network such as a LAN (Local Area Network) or a WAN (Wide Area Network), and read by the CPU 1020 via the network interface 1070.

[0092] Although the present invention has been described above as an embodiment, the present invention is not limited to the description and drawings that form part of the disclosure of the present invention. In other words, other embodiments, examples, and operational techniques that can be made by those skilled in the art based on the present invention are all included in the scope of the present invention. [Explanation of symbols]

[0093] 10 TE equipment 13 Communication control section 14 Storage section 14a Network topology information 14b Traffic information data 15 Control Unit 15a Acquisition part 15b Pretreatment section 15c Route calculation unit 15d Mathematical calculation section

Claims

1. an acquisition unit that acquires information indicating the connection topology of network devices and information on flows within traffic; a route calculation unit that calculates a route for each flow so as to minimize the number of flows that change routes; a mathematical calculation unit that calculates a solution to a linear programming problem formulated so that the number of flows that change routes is minimized and the maximum link utilization rate is minimized; and The route calculation unit A route for each flow is determined based on a solution to the linear programming problem obtained for a group of flows obtained by grouping flows within the traffic. A traffic engineering device comprising:

2. an acquisition unit that acquires information indicating the connection topology of network devices and information on flows within traffic; a route calculation unit that calculates a route for each flow so as to minimize the number of flows that change routes; a mathematical calculation unit that calculates a solution to a linear programming problem formulated so that the number of flows that change routes is minimized and the maximum link utilization rate is minimized; and The route calculation unit recalculates routes using the Dijkstra algorithm for real solutions among the solutions. A traffic engineering device comprising:

3. 3. The traffic engineering device according to claim 1, wherein the route calculation unit calculates the route of each flow for a flow when the sum of the descending traffic volumes of the flows accounts for a predetermined percentage of the total traffic volume.

4. 3. The traffic engineering device according to claim 1, further comprising a pre-processing unit that deletes information about flows that do not allow route changes from information about flows in the traffic.

5. 5. The traffic engineering device according to claim 4, wherein the preprocessing unit includes at least one of an average value, a maximum value, and a minimum value of traffic volume acquired at different times in the information of the flow within the traffic.

6. A traffic engineering method executed by a traffic engineering device, comprising: an acquisition step of acquiring information indicating the topology of network devices and information on flows within traffic; a route calculation step of calculating a route for each flow so as to minimize the number of flows that change their routes; a mathematical calculation step of calculating a solution to a linear programming problem formulated so as to minimize the number of flows that change routes and the maximum link utilization rate; Including, The route calculation step includes: A route for each flow is determined based on a solution to the linear programming problem obtained for a group of flows obtained by grouping flows within the traffic. A traffic engineering method comprising:

7. A traffic engineering method executed by a traffic engineering device, comprising: an acquisition step of acquiring information indicating the topology of network devices and information on flows within traffic; a route calculation step of calculating a route for each flow so as to minimize the number of flows that change their routes; a mathematical calculation step of calculating a solution to a linear programming problem formulated so as to minimize the number of flows that change routes and the maximum link utilization rate; Including, The route calculation step recalculates a route using the Dijkstra algorithm for real solutions among the solutions. A traffic engineering method comprising:

8. an acquiring step of acquiring information indicating the topology of the network devices and information on the flow in the traffic; a route calculation step of calculating a route for each flow so as to minimize the number of flows that change routes; a mathematical calculation step of calculating a solution to a linear programming problem formulated so that the number of flows that change routes is minimized and the maximum link utilization rate is minimized; on the computer, The route calculation step includes: A route for each flow is determined based on a solution to the linear programming problem obtained for a group of flows obtained by grouping flows within the traffic. A traffic engineering program comprising:

9. An acquisition step of acquiring information indicating the connection topology of network devices and information on flows within traffic; a route calculation step of calculating a route for each flow so as to minimize the number of flows that change routes; a mathematical calculation step of calculating a solution to a linear programming problem formulated so that the number of flows that change routes is minimized and the maximum link utilization rate is minimized; on the computer, The route calculation step calculates a route again using the Dijkstra algorithm for real solutions among the solutions. A traffic engineering program comprising:

Citation Information

Patent Citations

  • Route setting method and route setting device

    JP2007158818A