The present invention relates to a traffic engineering device, a traffic engineering method, and a traffic engineering program.
Efficient accommodation of increasing traffic is an important issue for communication carriers. In the past, there has been known a technology called traffic engineering (TE) for calculating a traffic path in which the network resource utilization is minimized by solving a mathematical optimization problem including constraints such as network topology, link capacity, and AC traffic, and explicitly changing the traffic path (See Non Patent Literatures 1 and 2).
However, in the related art, it is difficult to limit or suppress communication being a target of path change on the basis of flow information, an operation policy, or the like. For example, in a system according to the related art, TE can only be performed in units of thick bundles such as in units of links due to a low resolution of traffic identification. In addition, there is no mechanism for detailed analysis of AC traffic information. Therefore, there is difficulty in path control through the detailed analysis of the traffic labeled/encapsulated in a multiple manner, followed by path calculation for suppressing re-routing and traffic identification on a fine granularity. In addition, it has been known that a large-scale network such as a communication carrier has difficulty in solving the problems within a realistic time.
The present invention has been contrived in view of the above circumstances, and an object thereof is to enable limitation or suppression of communication being a target of path change on the basis of flow information, an operation policy, or the like.
In order to solve the above-described problems and achieve the object, a traffic engineering device according to the present invention includes: an acquisition unit that acquires information indicating a connection form of a network device and information about flows in traffic; and a path calculation unit that calculates a path of each flow so that the number of flows whose paths are to be changed is minimized.
According to the present invention, it is possible to limit or suppress communication being a target of path change on the basis of flow information, an operation policy, or the like.
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 by this embodiment. Furthermore, in the description of the drawings, the same parts are denoted by the same reference numerals.
Here, in TE according to the related art, as illustrated in
On the other hand, in the NBP, as illustrated in
Therefore, in the TE device 10 according to the present embodiment, in path calculation, by using a heuristic method, paths are calculated so that no mid-branching/merging of traffic occurs within a realistic time, though they are not optimal solutions.
Specifically, as illustrated in
In that case, as will be described later, the TE device 10 may perform path calculation by using an optimal solution that is a mathematical calculation result obtained by a linear programming problem solver. For example, the TE device 10 formulates a linear programming problem with the following objective variables, constraints, and variables by using the network topology information and the traffic information data, passes the linear programming problem to the linear programming problem solver, and receives a return of the resultant variable.
The objective variables of the linear programming problem are provided to minimize the maximum link utilization and minimize the flows whose paths are to be re-routed. In addition, the constraints are network topology, link capacity, and traffic volume/path information of the flows. In addition, the variable is a path through which the traffic of each flow should pass, and a real number solution is obtained.
As illustrated in
The input unit 11 is realized by using an input device such as a keyboard or a mouse and inputs various types of instruction information such as processing start to the control unit 15 in response to an input operation of 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, or the like. For example, the output unit 12 displays a TE result to be described later.
The communication control unit 13 is realized by a network interface card (NIC) or the like and controls communication between an external device and the control unit 15 via an electric communication line such as a local area network (LAN) or the Internet. For example, the communication control unit 13 controls communication between the control unit 15 and an external device, such as a network device such as an edge router, a collection device that collects AC traffic information of the network device, or a controller that carries out TE.
The storage unit 14 is realized by a semiconductor memory element such as a random access memory (RAM) or a flash memory, or a storage device such as a hard disk or an optical disc. In the storage unit 14, a processing program for operating the TE device 10, data to be used during execution of the processing program, and the like are stored in advance or temporarily stored each time processing is performed.
In the present embodiment, in the storage unit 14, network topology information 14a, traffic information data 14b, and the like are stored. The storage unit 14 may communicate with the control unit 15 via the communication control unit 13.
The description returns to
The acquisition unit 15a acquires the network topology information 14a indicating the connection form of the network device and the traffic information data 14b that is information about flows in traffic. For example, the acquisition unit 15a acquires AC traffic information from a collection device or the like that collects the AC traffic information via the communication control unit 13. In addition, the acquisition unit 15a analyzes the collected AC traffic information, and acquires the network topology information 14a and the traffic information data 14b. The acquisition unit 15a stores the acquired network topology information 14a and traffic information data 14b in the storage unit 14.
The preprocessing unit 15b deletes, from the traffic information data 14b that is the information about flows in traffic, information about a flow for which path change is not permitted. Specifically, the preprocessing unit 15b receives, via the input unit 11 or the communication control unit 13, an input designating a flow for which path change is not permitted, and deletes the designated flow from the traffic information data 14b.
For example, as illustrated in
In addition, the preprocessing unit 15b adds at least any of an average value, a maximum value, and a minimum value of traffic amounts acquired at different times to the traffic information data 14b that is the information about flows in traffic.
Here,
Usually, since the band of a flow changes over time, a path calculated by cutting off traffic information at a certain time is not necessarily an optimal solution at different times. In contrast, in TE processing to be described later, it is possible to properly use the average value, the maximum value, or the minimum value as the band of each flow according to the availability of network resources or a policy. For example, in a case where the availability of network resources is large, or for a preferential flow, TE processing is performed using the maximum value of the utilization band.
The description returns to
Specifically, in the TE device 10 according to the present embodiment, the mathematical calculation unit 15d calculates the solutions of the linear programming problem formulated so that the number of flows whose paths are to be changed is minimized and the maximum link utilization is minimized. In addition, the path calculation unit 15c determines the path of each flow on the basis of the solutions of the linear programming problem obtained with respect to flow groups generated by grouping the flows in traffic.
Here,
Then, the path calculation unit 15c applies a packing problem of fitting each flow to the real number solutions. That is, by packing the flows in original user communication unit into the real number solutions in which mid-branching of traffic occurs, the real number solutions are realized. In the example illustrated in
Specifically, the path calculation unit 15c aggregates the traffic information data 14b for each edge router, and creates a traffic matrix representing information between the edge routers as illustrated in
Next, the mathematical calculation unit 15d solves a linear programming problem that minimizes the maximum link utilization using the network topology information 14a and the traffic matrix, to calculate an optimal solution.
Regarding flows branched in the optimal solution, the path calculation unit 15c considers flows that cannot be accommodated in line unit to be accommodated in VPN unit. In addition, the path calculation unit 15c considers flows that cannot be accommodated in VPN unit to be accommodated in user communication unit. In addition, the path calculation unit 15c calculates paths of flows that cannot be accommodated in user communication unit by Dijkstra's algorithm.
For example, in the examples illustrated in
In addition,
The path calculation unit 15c selects the thickest link branching from the node at the start point of the target flow. In the example illustrated in
Next, the path calculation unit 15c selects the thickest link L2 following the link L1 for the flow of the line identifier A. In the link L2, a flow of up to 101 Mbps can be accommodated. As illustrated in
Next, the path calculation unit 15c selects the thickest link L3 following the link L2 for the flow of the user communication identifier M. In the link L3, a flow of up to 101 Mbps can be accommodated. As illustrated in
In addition, for flows not accommodated, the path calculation unit 15c returns the processing to the preceding step and updates the residual band in which the accommodation in the link L2 is possible to 1 Mbps that is a result obtained by subtracting 100 Mbps determined from 101 Mbps. A flow of a user communication identifier N not accommodated, illustrated in
Therefore, the path calculation unit 15c selects the link L4 following the link L1 for the flow of the line identifier A. In the link L4, a flow of up to 26 Mbps can be accommodated, but as illustrated in
Next, the path calculation unit 15c selects the link L5 following the link L4 for the flow of the user communication identifier N. In the link L5, a flow of up to 26 Mbps can be accommodated. The path calculation unit 15c accommodates the flow of the user communication identifier N in the above range. In addition, as illustrated in
Next, for flows not accommodated, the path calculation unit 15c returns the processing to the preceding step and updates the residual band of the link L4 to 6 Mbps that is a result obtained by subtracting 20 Mbps determined from 26 Mbps. Meanwhile, as illustrated in
Next, the path calculation unit 15c selects the link L6 for a flow in line unit not accommodated. In the link L6, a flow of up to 3 Mbps can be accommodated, but as illustrated in
As described above, the path calculation unit 15c may multiply the accommodation upper limit value by a parameter for adjustment to give relaxation so that a flow not accommodated is not generated.
In addition, the path calculation unit 15c calculates a path of a flow not accommodated, by sequentially searching for the shortest path by Dijkstra's algorithm from the start point. In this case, as illustrated in
In addition, the path calculation unit 15c instructs the controller to change the path on the basis of the determined path.
Next,
First, the acquisition unit 15a acquires the network topology information 14a and the traffic information data 14b by acquiring and analyzing AC traffic information from a collection device or the like that collects the AC traffic information (Step S1). The acquisition unit 15a stores the acquired network topology information 14a and traffic information data 14b in the storage unit 14.
Next, the preprocessing unit 15b receives an input designating a flow for which path change is not permitted, and deletes the designated flow from the traffic information data 14b (Step S2).
Next, the path calculation unit 15c calculates the path of each flow so that the number of flows whose paths are to be changed is minimized (Step S3). Specifically, the mathematical calculation unit 15d calculates the solutions of the linear programming problem formulated so that the number of flows whose paths are to be changed is minimized and the maximum link utilization is minimized. In addition, the path calculation unit 15c determines the path of each flow on the basis of the solutions of the linear programming problem obtained with respect to flow groups generated by grouping the flows in traffic.
For example, regarding flows branched in the optimal solution, the path calculation unit 15c considers flows that cannot be accommodated in line unit to be accommodated in VPN unit. In addition, the path calculation unit 15c considers flows that cannot be accommodated in VPN unit to be accommodated in user communication unit. In addition, the path calculation unit 15c calculates paths of flows that cannot be accommodated in user communication unit by Dijkstra's algorithm, and determines the paths.
In addition, the path calculation unit 15c instructs the controller to change the path on the basis of the determined path (Step S4). Accordingly, a series of TE processing ends.
Here,
In a TE device 10 according to the second embodiment, in a case where the sum of descending order of traffic amounts of flows occupies a predetermined ratio with respect to the total traffic amount, a path calculation unit 15c calculates the path of each of the flows. Specifically, as illustrated in
Here, the Top-N flows occupy a predetermined percentage of the total traffic amount. In this embodiment, no path change is performed for flows other than the Top-N flows. The number of Top-N flows is assumed to be overwhelmingly larger than the number of flows other than the Top-N flows. Therefore, the TE device 10 can suppress the number of flows whose parts are re-routed, while securing a sufficient optimization effect to some extent.
In addition, the path calculation unit 15c selects the sorted Top-N flows of the traffic information data 14b. That is, the path calculation unit 15c selects the flows of the traffic information data 14b in descending order of the utilization band so that these occupy a predetermined X % of the total utilization band (Step S12). Here, X is a parameter managed by SG or the like.
The path calculation unit 15c sets the selected Top-N flows as a flow set to be processed thereafter (Step S13). In addition, the path calculation unit 15c subtracts the utilization band of the flows other than the Top-N flows from the link capacity of network topology information 14a (Step S14).
The path calculation unit 15c selects flows one by one from the flow set, and performs shortest path searching by Dijkstra's algorithm to determine the path arrangement (path) (Step S15). In this case, the path calculation unit 15c calculates the path with the reciprocal of a residual band c_ij of each link as a metric. In addition, the path calculation unit 15c subtracts the utilization band of the flows whose paths have been determined from the link capacity (Step S16).
In a case where the flow set is not empty (No in Step S17), the path calculation unit 15c returns the processing to Step S15. In a case where the flow set is empty (Yes in Step S17), the path calculation unit 15c completes a series of processing.
Since the integer solution can be realized by the network device, the obtained path is determined. On the other hand, since it is difficult to realize the real number solution by the network device, the path calculation unit 15c performs recalculation by Dijkstra's algorithm. In that case, the path calculation unit 15c focuses on whether the bottleneck link is deteriorated as a link metric. In addition, the path calculation unit 15c focuses on how much the link utilization is increased. In addition, the link utilization in the original path arrangement (path) is compared with the link utilization in the recalculated path arrangement, and the path arrangement with the lower link utilization is adopted.
The path calculation unit 15c selects, among the flows, flows with branching paths where a real number solution is obtained, and classifies the selected flows into S_d and S_e (Step S22). Here, S_d represents flows passing through a link whose link utilization is r, and S_e represents flows other than S_d. In addition, the band on each link of flows other than S_d and S_e where an integer solution is obtained is set as f_ij (Step S23), and the path is determined.
The path calculation unit 15c repeats the processing of Steps S25 to S29 (Step S30) until S_d and S_e are empty (Step S24).
First, the path calculation unit 15c obtains a maximum link utilization r′ on the basis of f_ij (Step S25). Next, the path calculation unit 15c selects flows one by one from S_d and S_e, and performs shortest path searching by Dijkstra's algorithm to determine the path arrangement (path) (Step S26). In this case, the metric of the link is expressed as Expression (1).
T1; parameter for adjustment
flow; band of flow
cij; link capacity
The path calculation unit 15c confirms whether the path arrangement obtained by Dijkstra's algorithm is identical to the original path arrangement (Step S27). In a case where they are not identical to each other (No in Step S27), the path arrangement with a lower utilization is adopted (Step S28), and the utilization band of the flows whose paths have been determined is added to f_ij (Step S29). In a case where they are identical to each other (Yes in Step S27), the processing proceeds to Step S29.
In a case where S_d and S_e are empty, the path calculation unit 15c completes a series of processing.
Specifically, in the calculation method (1), as illustrated in
Then, as illustrated in
As described above, in the TE device 10, the acquisition unit 15a acquires the network topology information 14a indicating the connection form of the network device and the traffic information data 14b that is information about flows in traffic. In addition, the path calculation unit 15c calculates the path of each flow so that the number of flows whose paths are to be changed is minimized.
Specifically, the mathematical calculation unit 15d calculates the solutions of the linear programming problem formulated so that the number of flows whose paths are to be changed is minimized and the maximum link utilization is minimized. In addition, the path calculation unit 15c determines the path of each flow on the basis of the solutions of the linear programming problem obtained with respect to flow groups generated by grouping the flows in traffic. Accordingly, it is possible to efficiently limit or suppress communication being a target of path change within a realistic time on the basis of flow information, an operation policy, or the like.
Alternatively, in a case where the sum of descending order of traffic amounts of flows occupies a predetermined ratio with respect to the total traffic amount, the path calculation unit 15c calculates the path of each of the flows. Accordingly, it is possible to efficiently limit or suppress communication being a target of path change within a realistic time on the basis of flow information, an operation policy, or the like.
Alternatively, the mathematical calculation unit 15d calculates the solutions of the linear programming problem formulated so that the number of flows whose paths are to be changed is minimized and the maximum link utilization is minimized. In addition, the path calculation unit 15c calculates the path again by Dijkstra's algorithm with respect to real number solutions among the solutions. Accordingly, it is possible to efficiently limit or suppress communication being a target of path change within a realistic time on the basis of flow information, an operation policy, or the like.
In addition, the preprocessing unit 15b deletes, from the traffic information data 14b that is the information about flows in traffic, information about a flow for which path change is not permitted. Accordingly, re-routing can be efficiently suppressed.
In addition, the preprocessing unit 15b adds at least any of an average value, a maximum value, and a minimum value of traffic amounts acquired at different times to the traffic information data 14b that is the information about flows in traffic. Accordingly, it is possible to effectively perform the TE processing by properly using the average value, the maximum value, or the minimum value as the band of each flow according to the availability of network resources or a policy.
It is also possible to produce a program that describes the processing executed by the TE device 10 according to the above embodiment in a computer executable language. In an embodiment, the TE device 10 can be implemented by installing a TE program for executing the TE processing as packaged software or online software in a desired computer. For example, an information processing device is caused to execute the TE program, thereby functioning as the TE device 10. In addition, the information processing device includes a mobile communication terminal such as a smartphone, a mobile phone, or a personal handyphone system (PHS) and a slate terminal such as a personal digital assistant (PDA). Further, the functions of the TE device 10 may be implemented on a cloud server.
The memory 1010 includes a read-only memory (ROM) 1011 and a RAM 1012. The ROM 1011 stores, for example, a boot program such as a basic input output system (BIOS). 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. For example, a removable storage medium such as a magnetic disk or an optical disc 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.
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, for example, the hard disk drive 1031 or the memory 1010.
In addition, the TE program is stored in the hard disk drive 1031 as the program module 1093 in which commands to be executed by the computer 1000 are described, for example. Specifically, the program module 1093 in which each type of processing performed by the TE device 10 described in the above embodiment is written is stored in the hard disk drive 1031.
Data used in information processing performed by the TE program is stored as the program data 1094 in the hard disk drive 1031, for example. The CPU 1020 reads, into the RAM 1012, the program module 1093 and the program data 1094 stored in the hard disk drive 1031 as necessary and executes each procedure described above.
The program module 1093 and the 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 or the like. Alternatively, the program module 1093 and the program data 1094 related to the TE program may be stored in another computer connected via a network such as a local area network (LAN) or a wide area network (WAN) and may be read by the CPU 1020 via the network interface 1070.
Although the embodiments to which the present invention made by the present inventors is applied have been described above, the present invention is not limited by the description and the drawings of the present embodiments showing a part of the disclosure of the present invention. In other words, other embodiments, examples, operational techniques, and the like made by those skilled in the art or the like on the basis of the present embodiment are all included in the scope of the present invention.
Filing Document | Filing Date | Country | Kind |
---|---|---|---|
PCT/JP2022/003891 | 2/1/2022 | WO |