WO2016074738A1 - Data routing with a machine learning-based routing model - Google Patents
Data routing with a machine learning-based routing model Download PDFInfo
- Publication number
- WO2016074738A1 WO2016074738A1 PCT/EP2014/074559 EP2014074559W WO2016074738A1 WO 2016074738 A1 WO2016074738 A1 WO 2016074738A1 EP 2014074559 W EP2014074559 W EP 2014074559W WO 2016074738 A1 WO2016074738 A1 WO 2016074738A1
- Authority
- WO
- WIPO (PCT)
- Prior art keywords
- routing
- network
- flow
- model
- data
- Prior art date
Links
Classifications
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L45/00—Routing or path finding of packets in data switching networks
- H04L45/02—Topology update or discovery
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L45/00—Routing or path finding of packets in data switching networks
- H04L45/22—Alternate routing
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L45/00—Routing or path finding of packets in data switching networks
- H04L45/70—Routing based on monitoring results
Definitions
- the present invention in some embodiments thereof, relates to apparatus and methods for data routing and, more specifically, but not exclusively, to apparatus and methods for data routing based on a dynamic routing model.
- Constraint-based routing algorithms select a routing path satisfying constraints which are typically guided by a routing policy or on a service-oriented basis (e.g. Quality of Service (QoS) routing).
- QoS Quality of Service
- data flows are routed through a communication network, based on a routing model which applies rules for route selection to a model of the communication network.
- the accuracy of both the routing model and the network model directly affects the quality of route selection, since an inaccurate model may result in the failure of the selected route to meet the required criteria.
- network model means a representation of network structure and network parameters.
- routing model means a set of algorithms and parameters thereof that are used to make routing decisions based on provided data of flow requests and the network model.
- Embodiments herein use machine learning to dynamically update the routing model which configures data flows through the network.
- the failure or success of routed data flows to achieve a respective required level of service (LOS) is evaluated and the routing model is updated in accordance with the evaluation.
- the routing model is continuously updated by applying machine learning analytics to data sets which indicate the failure or success of flow routings to adhere to the LOS.
- the routing model automatically adapts to changes in the communication network and data flow within the network, thereby enabling data flow routing to be performed according to actual network conditions.
- applying machine learning analytics means processing a dataset by the routing model with any machine learning technique known in the art.
- the routing model is adjusted dynamically, to track changes occurring within the network.
- the network model is a connected graph, where the edges represent links (either physical or logical) and the vertices represent switching nodes.
- Different routing parameter weights are associated with each edge.
- the weight may represent static parameters such link capacity, link cost etc. and/or dynamic parameters such as available link capacity, link delay etc. There may be single or multiple weights associated with each edge.
- a machine learning training process is applied to a set of data (denoted herein a routing log) in order to maintain a dynamic routing model.
- the routing log includes data flow routings along with respective labels indicating the success or failure of the route to comply with level of service requirements.
- Flow route decisions are continuously reevaluated by comparing the flow's achieved level of service to the required level of service.
- the routing model may be dynamically updated based on the training set derived from automatic and continuous labeling.
- the data flow is monitored and/or network parameters (e.g. BW, Delay, Jitter%) are collected by monitoring/probing mechanisms within the communication network.
- the gathered information may also be used to determine the level of service actually achieved by a current (or logged) routing, for comparison with the required level or service.
- an apparatus for routing data flows through a data communication network may include: a network interface, a hardware processor, a non-transitory memory, a route selection module, an analysis module and/or a learning module.
- the network interface receives a request for routing a flow of data packets within the data communication network.
- the non-transitory memory stores a network model of network structure and network parameters and a routing log documenting respective success or failure of a plurality of routes routing a plurality of flows.
- the route selection module routes the flow through the network. The route is selected based on an updateable routing model which includes rules for route selection, where the rules are applied to the network model.
- the analysis module determines a failure of the route to comply with a respective required level of service.
- the required level of service specifies at least one required performance measure for the flow, and stores the failure in the routing log.
- the learning module updates the routing model by processing the routing log.
- the route selection module reroutes the flow based on the updated routing model.
- the learning module adjusts the network model by analyzing collected network data to identify changes in the network structure and network parameters.
- the updating is directed to obtain a routing model that selects routes complying with respective required levels of service.
- the updating includes applying machine learning analytics on the routing log.
- the routing log includes a plurality of flow entries, each entry specifying a route and respective success or failure of the route to comply with the respective required level of service.
- the updating includes applying supervised machine learning analytics on the routing log, and the respective successes or failures serve as training labels for flow entries processed by the supervised machine learning analytics.
- the analysis module relabels success or failure of routes in the routing log based on attained data flow performance measures, and the updating includes applying the supervised machine learning analytics on the relabeled routing log.
- the learning module updates the routing model incrementally, based on routes with modified success or failure.
- the relabeling is performed asynchronously from data flow routing.
- the network model includes a plurality of nodes interconnected by links, and at least one network parameter per link between two network nodes, and the route selection module applies constraint-based routing to the network parameters.
- the analysis module receives, through the network interface, data collected by monitoring elements monitoring performance measures of the data flow routed through the data communication network, and identifies therefrom a failure of the flow to adhere to the respective required level of service.
- the learning module develops an initial routing model by performing the machine learning analytics on a training set which includes a specified routing log and at least one of: network parameter data, network structure data, current data flow data and required levels of service.
- the required level of service is specified by a service level agreement (SLA).
- SLA service level agreement
- a second aspect of the present invention there is provided a method of routing a data flow through a data communication network.
- the method may include: i) receiving a route request for routing a flow of data packets within the data communication network; ii) selecting a route for the route request based on an updatable routing model which includes rules for route selection, the rules being applied to a network model of network structure and network parameters; iii) routing the data flow within the network through the selected route; iv) analyzing the routed data flow to determine a failure to comply with a respective required level of service, the required level of service specifying at least one required performance measure for the flow; v) storing the failure in a routing log documenting respective failures of a plurality of routes routing a plurality of flows within the data communication network; vi) updating the routing model by processing the routing log; and/or vii) rerouting the data flow through a new route selected based on the updated routing model.
- the method further includes modifying the network model in accordance with changes in the network structure and network parameters.
- the changes are identified by processing data collected network data.
- the modifying includes calculating a current value of a specified parameter of the network model and inputting the calculated value into the network model.
- the updating includes applying machine learning analytics on the routing log.
- the routing log includes a plurality of flow entries, each entry specifying a route and the respective success or failure of the route to comply with the respective required level of service.
- the updating includes applying supervised machine learning analytics on the routing log, and the respective successes or failures serve as training labels for flow entries processed by the supervised machine learning analytics.
- the updating is performed incrementally.
- the method further includes monitoring a routing of the flow through the data communication network to determine a success or failure of the flow to comply with the respective level of service, relabeling a success or failure of the route accordingly in the routing log, and updating the routing model by processing the relabeled routing log.
- the relabeling is performed asynchronously from route selection.
- selecting a route includes applying constraint-based routing to the network model.
- the network model includes a plurality of nodes interconnected by links and at least one network parameter per link between two network nodes, and selecting a route includes selecting each potential link in the route by applying constraint-based routing to the network model.
- the method further includes collecting network flow data from monitoring elements in the data communication network, and the analyzing includes comparing determining achieved performance measures for the flow and comparing the achieved performance measures to the required level of service.
- the method further includes developing an initial routing model by applying the machine learning analytics on a training set which includes a specified routing log and at least one of: network parameter data, network structure data and required levels of service.
- the required level of service is specified by a service level agreement (SLA).
- SLA service level agreement
- FIG. 1 A is a simplified block diagram of an apparatus for routing data flows through a data communication network, according to embodiments of the invention
- FIG. IB illustrates a simplified routing log, according to an exemplary embodiment of the invention
- FIG. 2 is a simplified flow chart of a method of routing a data flow through a data communication network, according to embodiments of the invention
- FIG. 3 is a simplified system diagram of a routing apparatus functioning within a data communication network, according to an exemplary embodiment of the invention.
- FIG. 4 is a simplified flowchart of a method of routing data through a network, according to an exemplary embodiment of the invention.
- the present invention in some embodiments thereof, relates to apparatus and methods for data routing and, more specifically, but not exclusively, to apparatus and methods for data routing based on a dynamic routing model.
- Embodiments described herein use machine learning (ML) analytics to dynamically develop and maintain a network model.
- the network model is used to route current and newly- requested data flows.
- the network model is updatable and may "evolve" in some sense as data flows through the data communication network.
- supervised ML is applied to labeled flow routings.
- supervised machine learning processes a training set which contains labeled examples in order to develop a model which detects whether new (unlabeled) data conforms to the pattern taught by the training set.
- current and/or previous flow routings are stored and labeled, where the labels indicate the failure or success of the data flow to adhere to a respective required level of service (LOS).
- LOS required level of service
- Supervised ML analytics may then be applied to the labeled data set to train and/or "auto-tune" the network model.
- past route decisions are reevaluated to determine if they still adhere to their level of service. Routes are reanalyzed according to the current network model (and optionally other data received from the network) and routings are relabeled in the routing table as necessary. In further embodiments, training action is then taken to update the routing model by applying supervised ML analytics to the relabeled routing table.
- the routing model is modified incrementally using only modified labels.
- the routing model may be continuously updated without going through a complex training process.
- a tunable ML algorithm (such as lazy learning or incremental decision tree) is used to fine tune the network model based on the success or failure of the flow routings.
- the present invention may be a system, a method, and/or a computer program product.
- the computer program product may include a computer readable storage medium (or media) having computer readable program instructions thereon for causing a processor to carry out aspects of the present invention.
- Routing apparatus 100 configures data flows through a data communication according to a network model, determines when routings fail to adhere to a respective required level of service (LOS) and updates the routing model accordingly.
- the LOS specifies at least one required performance measure for the respective flow.
- routing means directing a data flow through a data communication network along a selected route.
- Network interface 110 is an interface for communicating with other network elements.
- Network interface 110 receives requests for routing flows of data packets within the data communication network.
- network interface 110 further receives information from monitoring elements within the communication network.
- network interface 110 outputs routing information to other elements in the communication network in order to facilitate data flow along a selected route.
- Processor 120 performs processing operations and is in electrical communication with network interface 110, memory 140 and other modules in routing apparatus 100.
- Route selection module 130 selects a route for the requested data flow and routes the flow through the network.
- the route is selected by applying route selection rules from an updatable routing model to the network model.
- the network model is optionally represented as a network status map.
- route selection module 130 selects a route that is expected to comply with a specified LOS.
- the LOS is specified in a service level agreement (SLA) between a service provider (such as an Internet service provider) and a customer/user.
- SLA service level agreement
- Route selection may be performed by any method known in the art.
- at least one routing parameter is stored for each link between network nodes, and route selection module 130 selects the route by applying constraint-based routing to the stored routing parameters.
- the network parameters are stored as a routing table 146 in memory 140.
- route selection module 130 sends routing information to other network elements via network interface 110.
- Analysis module 150 determines whether the data routing fails or succeeds to comply with the required LOS.
- analysis module 150 receives data collected by monitoring elements through network interface 110.
- the monitoring elements monitor data flows through the data communication network, and provide data which enables analysis module 150 to determine the performance measures achieved by the data flow.
- analysis module 150 compares the achieved performance with the required performance measure(s) and determines whether the achieved performance fall within the range required by the LOS. It is noted that the range may be delimited in any manner (e.g. within specified upper and lower levels, above a specified level, below a specified level, etc.). Examples of performance measures include the maximum delay in milliseconds, maximum allowed Bit Error Rate, etc...
- Memory 140 stores data which includes network model 141 and routing log 145.
- Routing log 145 documents the failure or success of data flow routings, as determined by analysis module 150.
- routing log 145 includes multiple flow entries, each entry specifying a routing and the respective success or failure of the data flow routing to comply with the required LOS.
- routes which are not labeled in routing log 145 as failed routes are by default labeled as successful. Routing log 145 may thus serve as a training set for supervised ML analytics (which process a set of labeled data).
- FIG. IB A routing log according to an exemplary embodiment of the invention is shown in Fig. IB.
- Each data routing (entries 1...N) is labeled as either success or failure.
- the routing table also stores the respective levels of service.
- the routing may be specified by any means known in the art.
- Learning module 160 updates the routing model by processing routing log 145.
- the updating is optionally directed at obtaining a routing model that selects routes which comply with respective levels of service.
- the routing model may thus adapt to changes in data flow LOS requirements, increasing the likelihood of adhering to the required performance measures.
- learning module 160 processes routing log 145 with any type of machine learning analytics known in the art.
- the machine learning analytics are supervised machine learning analytics which use the labeled routings as a training data set. The respective successes or failures of the routings serve as training labels for the supervised machine learning analytics.
- the route selection module 130 reroutes one or more data flows based on the updated model. Rerouting may be performed any means known in the art, and by the same or different route selection process used to select the initial route for the given data flow.
- analysis module 150 rechecks the route labeling according to the current performance of the routed data flow, by comparing achieved performance measures to those required by the respective LOS. Analysis module 150 determines whether the routes' respective success/failure labels are still correct and relabels the routing log entries as necessary.
- the routing model may be continuously and/or automatically adapted to changing patterns of traffic utilization. This contrasts with standard constraint-based routing which does not take into account the changing network dynamics.
- Analysis module 150 optionally relabels the routing log asynchronously from the route selection process. Additionally or alternately, analysis module 150 relabels the routing log periodically or upon receiving an external instruction.
- learning module 160 updates network model 141 by processing the relabeled routing log (for example using supervised ML analytics).
- learning module 160 updates the routing model incrementally based on routes with modified success or failure labels. This may reduce the computational burden relative to processing the entire routing log with both modified and unmodified success/failure labels.
- tunable ML algorithms for example lazy learning or incremental decision tree
- tunable ML algorithms are used, in order to fine tune network model 141 based on incremental changes in the success or failure of the routes.
- learning module 160 dynamically adjusts the network model by analyzing collected network data to identify changes in said network structure and network parameters, to ensure that the network model represents the current network structure and parameters.
- learning module 160 develops an initial routing model is by applying ML analytics on a set of training data.
- the training data may include one or more of the following:
- An initial routing log (e.g. provided by a network supervisor);
- the routing apparatus is integrated into the data communication network.
- the routing apparatus may be centralized (e.g. at a communication hub) or distributed throughout the network in multiple network elements.
- Network and flow data is collected and analyzed in order to continuously update the routing model, which in turn modifies the network model as required to make route selections which comply with performance measure requirements.
- the routing apparatus communicates with other network elements, in order to obtain data necessary to maintain both the routing and network models, and to configure data flows through the network.
- the routing apparatus may communicate with one or more of:
- Probing elements within the communication network e.g. to receive network parameter and flow data
- Network databases e.g. to determine respective LOS requirements for data flows
- Routers and forwarding elements e.g. to provide flow entries for routing tables
- Flow endpoint elements e.g. to receive requests for data flows.
- FIG. 3 An exemplary embodiment of a routing apparatus integrated into a communication network is described below for Fig. 3.
- Fig. 2 is a simplified flow chart of a method of routing a data flow through a data communication network, according to embodiments of the invention.
- a route request for routing a flow of data packets within the data communication network is received.
- a route is selected for the route request based on an updatable routing model.
- the routing model specifies rules for routing data flows, where these rules are applied to the network model (and optionally other data).
- the route is selected by constraint-based routing as specified by the routing model. Alternate route selection rules may be used.
- the data flow is routed through the network along the selected route.
- the routed data flow is analyzed to determine whether it fails to comply with a respective required level of service.
- the route is labeled as failed in a routing log.
- routes are labeled by default as successful.
- the routing model is updated by processing the routing log. Routing model updating may be performed incrementally and/or periodically.
- routing model is updated by applying machine learning analytics on the routing log.
- the routing log includes multiple flow entries, where each entry specifies a routing and a label indicating the success or failure of the routing to comply with a respective required level of service.
- the machine learning analytics are supervised ML, which is applied to a routing log which includes a plurality of respectively labeled routes.
- the failed data flow is rerouted based on the updated model.
- the network model is modified to reflect the current network structure and parameters.
- current values of one or more specified parameters stored in the network model are calculated, and the stored parameters are replaced by respective recalculated parameter values.
- Network model modification may be performed at one or more stages, optionally including but not limited to: i) After routing model update; ii) After analyzing data route failure/success; and iii) Periodically.
- network model modification is performed by analyzing data collected from the communication network and/or data provided by external sources (e.g. by an administrator).
- the success/fail labels of the routes in the routing log are reevaluated based on network flow and/or other data.
- the routing model is updated based on changes to the route labels.
- network flow data is collected from monitoring elements in the data communication network.
- the collected data may be used to determine the performance measures achieved by the data flow.
- performance measures achieved by a data flow are compared to the requirements of the LOS, in order to determine the success or failure of the routing.
- SLA level of service
- SLA is not intended to be limiting. Other manners of establishing the required performance measures for a data flow may be used.
- FIG. 3 is a simplified system diagram of a routing apparatus functioning within a data communication network, according to an exemplary embodiment of the invention.
- the exemplary routing apparatus of Fig. 3 includes:
- Labeled Flow Table 310 A routing log formatted as a flow table, with a label per flow indicating success or failure of the route to adhere to the flow's LOS.
- the flow analysis table lists one or more performance measures (denoted "Param") required for each flow.
- Analysis Module 320 collects network traffic parameters from metering points in communication network 350 and builds a network status map (i.e. network model). Analysis Module 320 compares measured network parameters to flow's LOS, and labels (or re-labels) the flow entry in Flow Table 310 according to updated network parameters. For example, the measured actual delay along a flow path is compared to the maximum delay allowed by the LOS, and when the maximum delay is exceeded the flow entry is labeled as failed.
- the status map is point-to-point, per flow/tunnel metering end points, with per link based on per port metering.
- KPI i.e. network parameters
- OAMP Operaational Administration, Management and Performance
- Route selection module 330 Selects routes for requested data flows using the routing model and Routing table 340.
- Routing table 340 specifies one or more costs per link in communication network 350. Cost is a weight associated with a respective measured parameter. For example, a bigger delay on a link increases the cost associated with it, a routing model with cost minimizing routing rules would avoid such a link as much as possible (barring other constraints).
- Tunable analytics engine 360 serves as a learning module, which updates the routing model using ML analytics.
- the routing model is optionally updated by one or both of: i. Recalculating the routing model periodically by applying ML analytics to available data; and ii. Incremental update on the fly using online ML algorithms.
- tunable analytics engine 360 dynamically maintains the network model so that it reflects current network structure and network parameters.
- Network KPI and Metrics DB 370 stores the network parameters. It may be accessed by both analysis module 320 and tunable analytics engine 360; and
- User information database 380 stores user information (e.g. SLAs) which is optionally configured by the user and/or an administrator.
- user information e.g. SLAs
- FIG. 4 is a simplified flowchart of a method of routing data through a network, according to an exemplary embodiment of the invention.
- SLA and network data is input.
- an initial routing model is built.
- the routing model may initially be defined with a default routing model which is fed by statistics gathered from the communication network.
- flow requests are received and a route is selected per request.
- constraint-based routing is performed using the current routing model and network model. New routes are labeled as success by default. Network metering is performed continuously.
- the network QoS map is updated.
- the QoS map is an attribute of the network model which shows the level of service that is being offered by the network according to the actual load and or physical capabilities of the network. For example, at high loads the network may only be able to provide a minimum delay of 50 milliseconds.
- flows are checked to determine if they adhere to their respective SLAs. Route decisions are reevaluated asynchronously by comparison to current network metrics, for every rate of metric updates. Routes are relabeled as necessary according to current network status. When all flows adhere to the respective SLA, flow processing continues at 430. In 460, when flows do not adhere to their respective SLAs, affected flows are relabeled as failed.
- each block in the flowchart or block diagrams may represent a module, segment, or portion of code, which comprises one or more executable instructions for implementing the specified logical function(s).
- the functions noted in the block may occur out of the order noted in the figures. For example, two blocks shown in succession may, in fact, be executed substantially concurrently, or the blocks may sometimes be executed in the reverse order, depending upon the functionality involved.
- a compound or “at least one compound” may include a plurality of compounds, including mixtures thereof.
Abstract
An apparatus for routing data flows through a data communication network includes: a network interface, hardware processor, non-transitory memory, route selection module, analysis module and learning module. The network interface receives requests for routing a flow of data packets within the data communication network. Route selection module routes data flows through the network, based on a routing model applying routing rules to a model of network structure and network parameters. The analysis module determines when routes fail to comply with a respective required level of service (LOS) specifying at least one required performance measure for the flow. Flow routes and their respective failure or success in adhering to the LOS are stored in the routing log. The learning module updates the routing model by processing the routing log, optionally using ML analytics. Optionally, when the model is updated the route selection module reroutes one or more failed flows based on the updated model.
Description
DATA ROUTING WITH A MACHINE LEARNING-BASED ROUTING MODEL
BACKGROUND The present invention, in some embodiments thereof, relates to apparatus and methods for data routing and, more specifically, but not exclusively, to apparatus and methods for data routing based on a dynamic routing model.
Current methods for routing data through a data communication network use constraint- based routing to select routes for data flow through the network. Constraint-based routing algorithms select a routing path satisfying constraints which are typically guided by a routing policy or on a service-oriented basis (e.g. Quality of Service (QoS) routing). However, in order to route data flows efficiently and without exceeding allocated network resources an accurate model of the communication network is needed. Otherwise the route may be selected based on outdated or fixed factors, which reduce the effectiveness of the data routing process.
SUMMARY
In embodiments herein, data flows are routed through a communication network, based on a routing model which applies rules for route selection to a model of the communication network. The accuracy of both the routing model and the network model directly affects the quality of route selection, since an inaccurate model may result in the failure of the selected route to meet the required criteria.
As used herein the term "network model" means a representation of network structure and network parameters.
As used herein the term "routing model" means a set of algorithms and parameters thereof that are used to make routing decisions based on provided data of flow requests and the network model.
Embodiments herein use machine learning to dynamically update the routing model which configures data flows through the network. The failure or success of routed data flows
to achieve a respective required level of service (LOS) is evaluated and the routing model is updated in accordance with the evaluation. In some embodiments, the routing model is continuously updated by applying machine learning analytics to data sets which indicate the failure or success of flow routings to adhere to the LOS. The routing model automatically adapts to changes in the communication network and data flow within the network, thereby enabling data flow routing to be performed according to actual network conditions.
As used herein the term "applying machine learning analytics" means processing a dataset by the routing model with any machine learning technique known in the art.
Optionally, the routing model is adjusted dynamically, to track changes occurring within the network.
Optionally, the network model is a connected graph, where the edges represent links (either physical or logical) and the vertices represent switching nodes. Different routing parameter weights are associated with each edge. The weight may represent static parameters such link capacity, link cost etc. and/or dynamic parameters such as available link capacity, link delay etc. There may be single or multiple weights associated with each edge.
In embodiments herein, a machine learning training process is applied to a set of data (denoted herein a routing log) in order to maintain a dynamic routing model. The routing log includes data flow routings along with respective labels indicating the success or failure of the route to comply with level of service requirements. Flow route decisions are continuously reevaluated by comparing the flow's achieved level of service to the required level of service. Thus the routing model may be dynamically updated based on the training set derived from automatic and continuous labeling.
Optionally the data flow is monitored and/or network parameters (e.g. BW, Delay, Jitter...) are collected by monitoring/probing mechanisms within the communication network. The gathered information may also be used to determine the level of service actually achieved by a current (or logged) routing, for comparison with the required level or service.
According to a first aspect of the present invention there is provided an apparatus for routing data flows through a data communication network. The apparatus may include: a network interface, a hardware processor, a non-transitory memory, a route selection module, an analysis module and/or a learning module. The network interface receives a request for routing a flow of data packets within the data communication network. The non-transitory
memory stores a network model of network structure and network parameters and a routing log documenting respective success or failure of a plurality of routes routing a plurality of flows. The route selection module routes the flow through the network. The route is selected based on an updateable routing model which includes rules for route selection, where the rules are applied to the network model. The analysis module determines a failure of the route to comply with a respective required level of service. The required level of service specifies at least one required performance measure for the flow, and stores the failure in the routing log. The learning module updates the routing model by processing the routing log. Upon routing model update, the route selection module reroutes the flow based on the updated routing model. According to a first possible implementation form of the first aspect of the invention as such, the learning module adjusts the network model by analyzing collected network data to identify changes in the network structure and network parameters.
According to a second possible implementation form of the first aspect as such or according to the first implementation form of the first aspect, the updating is directed to obtain a routing model that selects routes complying with respective required levels of service.
According to a third possible implementation form of the first aspect as such or according to any of the preceding implementation forms of the first aspect, the updating includes applying machine learning analytics on the routing log.
According to a fourth possible implementation form of the first aspect as such or according to any of the preceding implementation forms of the first aspect, the routing log includes a plurality of flow entries, each entry specifying a route and respective success or failure of the route to comply with the respective required level of service.
According to a fifth possible implementation form of the first aspect as such or according to any of the preceding implementation forms of the first aspect, the updating includes applying supervised machine learning analytics on the routing log, and the respective successes or failures serve as training labels for flow entries processed by the supervised machine learning analytics.
According to a sixth possible implementation form of the first aspect as such or according to any of the preceding implementation forms of the first aspect, the analysis module relabels success or failure of routes in the routing log based on attained data flow performance measures, and the updating includes applying the supervised machine learning analytics on the relabeled routing log.
According to a seventh possible implementation form of the first aspect as such or according to any of the preceding implementation forms of the first aspect, the learning module updates the routing model incrementally, based on routes with modified success or failure.
According to an eighth possible implementation form of the first aspect as such or according to any of the preceding implementation forms of the first aspect, the relabeling is performed asynchronously from data flow routing.
According to a ninth possible implementation form of the first aspect as such or according to any of the preceding implementation forms of the first aspect, the network model includes a plurality of nodes interconnected by links, and at least one network parameter per link between two network nodes, and the route selection module applies constraint-based routing to the network parameters.
According to a tenth possible implementation form of the first aspect as such or according to any of the preceding implementation forms of the first aspect, the analysis module receives, through the network interface, data collected by monitoring elements monitoring performance measures of the data flow routed through the data communication network, and identifies therefrom a failure of the flow to adhere to the respective required level of service.
According to a eleventh possible implementation form of the first aspect as such or according to any of the preceding implementation forms of the first aspect, the learning module develops an initial routing model by performing the machine learning analytics on a training set which includes a specified routing log and at least one of: network parameter data, network structure data, current data flow data and required levels of service.
According to a twelfth possible implementation form of the first aspect as such or according to any of the preceding implementation forms of the first aspect, the required level of service is specified by a service level agreement (SLA). According to a second aspect of the present invention there is provided a method of routing a data flow through a data communication network. The method may include: i) receiving a route request for routing a flow of data packets within the data communication network;
ii) selecting a route for the route request based on an updatable routing model which includes rules for route selection, the rules being applied to a network model of network structure and network parameters; iii) routing the data flow within the network through the selected route; iv) analyzing the routed data flow to determine a failure to comply with a respective required level of service, the required level of service specifying at least one required performance measure for the flow; v) storing the failure in a routing log documenting respective failures of a plurality of routes routing a plurality of flows within the data communication network; vi) updating the routing model by processing the routing log; and/or vii) rerouting the data flow through a new route selected based on the updated routing model.
According to a first possible implementation form of the second aspect, the method further includes modifying the network model in accordance with changes in the network structure and network parameters. The changes are identified by processing data collected network data.
According to a second possible implementation form of the second aspect as such or according to any of the preceding implementation forms of the second aspect, the modifying includes calculating a current value of a specified parameter of the network model and inputting the calculated value into the network model.
According to a third possible implementation form of the second aspect as such or according to any of the preceding implementation forms of the second aspect, the updating includes applying machine learning analytics on the routing log.
According to a fourth possible implementation form of the second aspect as such or according to any of the preceding implementation forms of the second aspect, the routing log includes a plurality of flow entries, each entry specifying a route and the respective success or failure of the route to comply with the respective required level of service.
According to a fifth possible implementation form of the second aspect as such or according to any of the preceding implementation forms of the second aspect, the updating
includes applying supervised machine learning analytics on the routing log, and the respective successes or failures serve as training labels for flow entries processed by the supervised machine learning analytics.
According to a sixth possible implementation form of the second aspect as such or according to any of the preceding implementation forms of the second aspect, the updating is performed incrementally.
According to a seventh possible implementation form of the second aspect as such or according to any of the preceding implementation forms of the second aspect, the method further includes monitoring a routing of the flow through the data communication network to determine a success or failure of the flow to comply with the respective level of service, relabeling a success or failure of the route accordingly in the routing log, and updating the routing model by processing the relabeled routing log.
According to an eighth possible implementation form of the second aspect as such or according to any of the preceding implementation forms of the second aspect, the relabeling is performed asynchronously from route selection.
According to a ninth possible implementation form of the second aspect as such or according to any of the preceding implementation forms of the second aspect, selecting a route includes applying constraint-based routing to the network model.
According to a tenth possible implementation form of the second aspect as such or according to any of the preceding implementation forms of the second aspect, the network model includes a plurality of nodes interconnected by links and at least one network parameter per link between two network nodes, and selecting a route includes selecting each potential link in the route by applying constraint-based routing to the network model.
According to a eleventh possible implementation form of the second aspect as such or according to any of the preceding implementation forms of the second aspect, the method further includes collecting network flow data from monitoring elements in the data communication network, and the analyzing includes comparing determining achieved performance measures for the flow and comparing the achieved performance measures to the required level of service.
According to a twelfth possible implementation form of the second aspect as such or according to any of the preceding implementation forms of the second aspect, the method further
includes developing an initial routing model by applying the machine learning analytics on a training set which includes a specified routing log and at least one of: network parameter data, network structure data and required levels of service.
According to a thirteenth possible implementation form of the second aspect as such or according to any of the preceding implementation forms of the second aspect, the required level of service is specified by a service level agreement (SLA).
Unless otherwise defined, all technical and/or scientific terms used herein have the same meaning as commonly understood by one of ordinary skill in the art to which the invention pertains. Although methods and materials similar or equivalent to those described herein can be used in the practice or testing of embodiments of the invention, exemplary methods and/or materials are described below. In case of conflict, the patent specification, including definitions, will control. In addition, the materials, methods, and examples are illustrative only and are not intended to be necessarily limiting.
BRIEF DESCRIPTION OF THE DRAWINGS
Some embodiments of the invention are herein described, by way of example only, with reference to the accompanying drawings. With specific reference now to the drawings in detail, it is stressed that the particulars shown are by way of example and for purposes of illustrative discussion of embodiments of the invention. In this regard, the description taken with the drawings makes apparent to those skilled in the art how embodiments of the invention may be practiced.
In the drawings:
FIG. 1 A is a simplified block diagram of an apparatus for routing data flows through a data communication network, according to embodiments of the invention; FIG. IB illustrates a simplified routing log, according to an exemplary embodiment of the invention;
FIG. 2 is a simplified flow chart of a method of routing a data flow through a data communication network, according to embodiments of the invention;
FIG. 3 is a simplified system diagram of a routing apparatus functioning within a data communication network, according to an exemplary embodiment of the invention; and
FIG. 4 is a simplified flowchart of a method of routing data through a network, according to an exemplary embodiment of the invention.
DETAILED DESCRIPTION
The present invention, in some embodiments thereof, relates to apparatus and methods for data routing and, more specifically, but not exclusively, to apparatus and methods for data routing based on a dynamic routing model. Embodiments described herein use machine learning (ML) analytics to dynamically develop and maintain a network model. The network model is used to route current and newly- requested data flows. The network model is updatable and may "evolve" in some sense as data flows through the data communication network.
In embodiments herein, supervised ML is applied to labeled flow routings. In general, supervised machine learning processes a training set which contains labeled examples in order to develop a model which detects whether new (unlabeled) data conforms to the pattern taught by the training set. In embodiments herein, current and/or previous flow routings are stored and labeled, where the labels indicate the failure or success of the data flow to adhere to a respective required level of service (LOS). Supervised ML analytics may then be applied to the labeled data set to train and/or "auto-tune" the network model.
Optionally, in order to deal with the difficulties created by the constant changes in network structure and network traffic utilization, past route decisions are reevaluated to determine if they still adhere to their level of service. Routes are reanalyzed according to the current network model (and optionally other data received from the network) and routings are relabeled in the routing table as necessary. In further embodiments, training action is then taken to update the routing model by applying supervised ML analytics to the relabeled routing table.
In some embodiments, the routing model is modified incrementally using only modified labels. Thus the routing model may be continuously updated without going through a complex training process. Optionally, a tunable ML algorithm (such as lazy learning or incremental
decision tree) is used to fine tune the network model based on the success or failure of the flow routings.
Before explaining at least one embodiment of the invention in detail, it is to be understood that the invention is not necessarily limited in its application to the details of construction and the arrangement of the components and/or methods set forth in the following description and/or illustrated in the drawings and/or the Examples. The invention is capable of other embodiments or of being practiced or carried out in various ways.
The present invention may be a system, a method, and/or a computer program product. The computer program product may include a computer readable storage medium (or media) having computer readable program instructions thereon for causing a processor to carry out aspects of the present invention.
Aspects of the present invention are described herein 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 readable program instructions.
Apparatus for Routing Data Flows Reference is now made to Fig. 1 A, which is a simplified block diagram of an apparatus for routing data flows through a data communication network, according to embodiments of the invention. Routing apparatus 100 configures data flows through a data communication according to a network model, determines when routings fail to adhere to a respective required level of service (LOS) and updates the routing model accordingly. The LOS specifies at least one required performance measure for the respective flow.
As used herein, the term "routing" means directing a data flow through a data communication network along a selected route.
Network interface 110 is an interface for communicating with other network elements. Network interface 110 receives requests for routing flows of data packets within the data communication network. Optionally, network interface 110 further receives information from
monitoring elements within the communication network. In additional or alternate embodiments, network interface 110 outputs routing information to other elements in the communication network in order to facilitate data flow along a selected route.
Processor 120 performs processing operations and is in electrical communication with network interface 110, memory 140 and other modules in routing apparatus 100.
Route selection module 130 selects a route for the requested data flow and routes the flow through the network. The route is selected by applying route selection rules from an updatable routing model to the network model. The network model is optionally represented as a network status map. Optionally, route selection module 130 selects a route that is expected to comply with a specified LOS.
Optionally, the LOS is specified in a service level agreement (SLA) between a service provider (such as an Internet service provider) and a customer/user.
Route selection may be performed by any method known in the art. Optionally, at least one routing parameter is stored for each link between network nodes, and route selection module 130 selects the route by applying constraint-based routing to the stored routing parameters. Optionally, the network parameters are stored as a routing table 146 in memory 140.
Flow routing may be performed by any method known in the art. Optionally, route selection module 130 sends routing information to other network elements via network interface 110.
Analysis module 150 determines whether the data routing fails or succeeds to comply with the required LOS. Optionally, analysis module 150 receives data collected by monitoring elements through network interface 110. The monitoring elements monitor data flows through the data communication network, and provide data which enables analysis module 150 to determine the performance measures achieved by the data flow. Optionally, analysis module 150 compares the achieved performance with the required performance measure(s) and determines whether the achieved performance fall within the range required by the LOS. It is noted that the range may be delimited in any manner (e.g. within specified upper and lower levels, above a specified level, below a specified level, etc.). Examples of performance measures include the maximum delay in milliseconds, maximum allowed Bit Error Rate, etc...
Memory 140 stores data which includes network model 141 and routing log 145. Routing log 145 documents the failure or success of data flow routings, as determined by analysis module 150. Optionally, routing log 145 includes multiple flow entries, each entry specifying a routing and the respective success or failure of the data flow routing to comply with the required LOS. Optionally, routes which are not labeled in routing log 145 as failed routes are by default labeled as successful. Routing log 145 may thus serve as a training set for supervised ML analytics (which process a set of labeled data).
A routing log according to an exemplary embodiment of the invention is shown in Fig. IB. Each data routing (entries 1...N) is labeled as either success or failure. Optionally, the routing table also stores the respective levels of service. The routing may be specified by any means known in the art.
Learning module 160 updates the routing model by processing routing log 145. The updating is optionally directed at obtaining a routing model that selects routes which comply with respective levels of service. The routing model may thus adapt to changes in data flow LOS requirements, increasing the likelihood of adhering to the required performance measures.
Optionally, learning module 160 processes routing log 145 with any type of machine learning analytics known in the art. In further optional embodiments, the machine learning analytics are supervised machine learning analytics which use the labeled routings as a training data set. The respective successes or failures of the routings serve as training labels for the supervised machine learning analytics.
In some embodiments, when the routing model is updated the route selection module 130 reroutes one or more data flows based on the updated model. Rerouting may be performed any means known in the art, and by the same or different route selection process used to select the initial route for the given data flow. Optionally, analysis module 150 rechecks the route labeling according to the current performance of the routed data flow, by comparing achieved performance measures to those required by the respective LOS. Analysis module 150 determines whether the routes' respective success/failure labels are still correct and relabels the routing log entries as necessary. Thus the routing model may be continuously and/or automatically adapted to changing patterns of traffic utilization. This contrasts with standard constraint-based routing which does not take into account the changing network dynamics.
Analysis module 150 optionally relabels the routing log asynchronously from the route selection process. Additionally or alternately, analysis module 150 relabels the routing log periodically or upon receiving an external instruction.
Optionally, learning module 160 updates network model 141 by processing the relabeled routing log (for example using supervised ML analytics). In further optional embodiments, learning module 160 updates the routing model incrementally based on routes with modified success or failure labels. This may reduce the computational burden relative to processing the entire routing log with both modified and unmodified success/failure labels. Optionally tunable ML algorithms (for example lazy learning or incremental decision tree) are used, in order to fine tune network model 141 based on incremental changes in the success or failure of the routes.
Optionally, learning module 160 dynamically adjusts the network model by analyzing collected network data to identify changes in said network structure and network parameters, to ensure that the network model represents the current network structure and parameters. Optionally, learning module 160 develops an initial routing model is by applying ML analytics on a set of training data. The training data may include one or more of the following:
1) An initial routing log (e.g. provided by a network supervisor);
2) Data gathered from network (e.g. current data flows, network resources, network structure, etc.); and 3) Respective LOS parameters for specified types of data flows.
Routing Apparatus in a Data Communication Network
In some embodiments, the routing apparatus is integrated into the data communication network. The routing apparatus may be centralized (e.g. at a communication hub) or distributed throughout the network in multiple network elements. Network and flow data is collected and analyzed in order to continuously update the routing model, which in turn modifies the network model as required to make route selections which comply with performance measure requirements. Thus the network model used for route selection adapts to changing patterns of traffic utilization, as opposed to standard fixed constraint-based routing.
The routing apparatus communicates with other network elements, in order to obtain data necessary to maintain both the routing and network models, and to configure data flows through the network. The routing apparatus may communicate with one or more of:
1) Probing elements within the communication network (e.g. to receive network parameter and flow data);
2) Network databases (e.g. to determine respective LOS requirements for data flows);
3) Routers and forwarding elements (e.g. to provide flow entries for routing tables); and
4) Flow endpoint elements (e.g. to receive requests for data flows).
An exemplary embodiment of a routing apparatus integrated into a communication network is described below for Fig. 3.
Method for Routing Data Flows
Reference is now made to Fig. 2, which is a simplified flow chart of a method of routing a data flow through a data communication network, according to embodiments of the invention. In 200, a route request for routing a flow of data packets within the data communication network is received.
In 210, a route is selected for the route request based on an updatable routing model. The routing model specifies rules for routing data flows, where these rules are applied to the network model (and optionally other data). Optionally, the route is selected by constraint-based routing as specified by the routing model. Alternate route selection rules may be used.
In 220, the data flow is routed through the network along the selected route.
In 230, the routed data flow is analyzed to determine whether it fails to comply with a respective required level of service.
In 240, when a failure to comply with a LOS is detected, the route is labeled as failed in a routing log. Optionally, routes are labeled by default as successful.
In 250, the routing model is updated by processing the routing log. Routing model updating may be performed incrementally and/or periodically.
Optionally routing model is updated by applying machine learning analytics on the routing log. Optionally the routing log includes multiple flow entries, where each entry specifies a routing and a label indicating the success or failure of the routing to comply with a respective required level of service. In a further embodiment, the machine learning analytics are supervised ML, which is applied to a routing log which includes a plurality of respectively labeled routes.
Optionally, in 260 the failed data flow is rerouted based on the updated model.
Optionally, in 270 the network model is modified to reflect the current network structure and parameters. In some embodiments, current values of one or more specified parameters stored in the network model are calculated, and the stored parameters are replaced by respective recalculated parameter values. Network model modification may be performed at one or more stages, optionally including but not limited to: i) After routing model update; ii) After analyzing data route failure/success; and iii) Periodically.
Optionally, network model modification is performed by analyzing data collected from the communication network and/or data provided by external sources (e.g. by an administrator).
Optionally, the success/fail labels of the routes in the routing log are reevaluated based on network flow and/or other data. The routing model is updated based on changes to the route labels.
Optionally, network flow data is collected from monitoring elements in the data communication network. The collected data may be used to determine the performance measures achieved by the data flow. Optionally, performance measures achieved by a data flow are compared to the requirements of the LOS, in order to determine the success or failure of the routing.
In the exemplary embodiments presented below, the level of service is denoted an SLA. The term SLA is not intended to be limiting. Other manners of establishing the required performance measures for a data flow may be used.
Exemplary Routing Apparatus in a Data Communication Network
Reference is now made to Fig. 3, which is a simplified system diagram of a routing apparatus functioning within a data communication network, according to an exemplary embodiment of the invention.
The exemplary routing apparatus of Fig. 3 includes:
I) Labeled Flow Table 310: A routing log formatted as a flow table, with a label per flow indicating success or failure of the route to adhere to the flow's LOS. The flow analysis table lists one or more performance measures (denoted "Param") required for each flow. II) Analysis Module 320 collects network traffic parameters from metering points in communication network 350 and builds a network status map (i.e. network model). Analysis Module 320 compares measured network parameters to flow's LOS, and labels (or re-labels) the flow entry in Flow Table 310 according to updated network parameters. For example, the measured actual delay along a flow path is compared to the maximum delay allowed by the LOS, and when the maximum delay is exceeded the flow entry is labeled as failed.
In the exemplary embodiment, the status map is point-to-point, per flow/tunnel metering end points, with per link based on per port metering. In order to dynamically measure KPI (i.e. network parameters) an OAMP (Operational Administration, Management and Performance) protocol such as Y.1731 is used to constantly and continuously collect and log such data. III) Route selection module 330: Selects routes for requested data flows using the routing model and Routing table 340. Routing table 340 specifies one or more costs per link in communication network 350. Cost is a weight associated with a respective measured parameter. For example, a bigger delay on a link increases the cost associated with it, a routing model with cost minimizing routing rules would avoid such a link as much as possible (barring other constraints).
IV) Tunable analytics engine 360 serves as a learning module, which updates the routing model using ML analytics. The routing model is optionally updated by one or both of: i. Recalculating the routing model periodically by applying ML analytics to available data; and
ii. Incremental update on the fly using online ML algorithms.
Optionally, tunable analytics engine 360 dynamically maintains the network model so that it reflects current network structure and network parameters.
V) Network KPI and Metrics DB 370 stores the network parameters. It may be accessed by both analysis module 320 and tunable analytics engine 360; and
VI) User information database 380 stores user information (e.g. SLAs) which is optionally configured by the user and/or an administrator.
Method of Routing Data Reference is now made to Fig. 4, which is a simplified flowchart of a method of routing data through a network, according to an exemplary embodiment of the invention.
In 410, SLA and network data is input.
In 420, an initial routing model is built. For example, the routing model may initially be defined with a default routing model which is fed by statistics gathered from the communication network.
In 430, flow requests are received and a route is selected per request. For every new flow, constraint-based routing is performed using the current routing model and network model. New routes are labeled as success by default. Network metering is performed continuously.
In 440, the network QoS map is updated. The QoS map is an attribute of the network model which shows the level of service that is being offered by the network according to the actual load and or physical capabilities of the network. For example, at high loads the network may only be able to provide a minimum delay of 50 milliseconds.
In 450, flows are checked to determine if they adhere to their respective SLAs. Route decisions are reevaluated asynchronously by comparison to current network metrics, for every rate of metric updates. Routes are relabeled as necessary according to current network status. When all flows adhere to the respective SLA, flow processing continues at 430.
In 460, when flows do not adhere to their respective SLAs, affected flows are relabeled as failed.
In 470 it is determined whether an online routing model update is being performed. When online routing model update is performed, in 480 the routing model is updated incrementally by applying ML to relabeled flows (as determined in 460). When an online ML update is not performed, in 490 data is accumulated and the routing model is updated periodically.
The methods as described above are used in the fabrication of integrated circuit chips.
The flowchart and block diagrams in the Figures illustrate the architecture, functionality, and operation of possible implementations of systems, methods and computer program products according to various embodiments of the present invention. In this regard, each block in the flowchart or block diagrams may represent a module, segment, or portion of code, which comprises one or more executable instructions for implementing the specified logical function(s). It should also be noted that, in some alternative implementations, the functions noted in the block may occur out of the order noted in the figures. For example, two blocks shown in succession may, in fact, be executed substantially concurrently, or the blocks may sometimes be executed in the reverse order, depending upon the functionality involved. It will also be noted that each block of the block diagrams and/or flowchart illustration, and combinations of blocks in the block diagrams and/or flowchart illustration, can be implemented by special purpose hardware-based systems that perform the specified functions or acts, or combinations of special purpose hardware and computer instructions.
The descriptions of the various embodiments of the present invention have been presented for purposes of illustration, but are not intended to be exhaustive or limited to the embodiments disclosed. Many modifications and variations will be apparent to those of ordinary skill in the art without departing from the scope and spirit of the described embodiments. The terminology used herein was chosen to best explain the principles of the embodiments, the practical application or technical improvement over technologies found in the marketplace, or to enable others of ordinary skill in the art to understand the embodiments disclosed herein. It is expected that during the life of a patent maturing from this application many relevant machine learning analytics, supervised machine learning analytics, data flow routing,
routing models, levels of service specification and network model representations will be developed and the scope of the terms machine learning analytics, supervised machine learning analytics, data flow routing, routing model, level of service and network model are intended to include all such new technologies a priori. The terms "comprises", "comprising", "includes", "including", "having" and their conjugates mean "including but not limited to". This term encompasses the terms "consisting of and "consisting essentially of.
As used herein, the singular form "a", "an" and "the" include plural references unless the context clearly dictates otherwise. For example, the term "a compound" or "at least one compound" may include a plurality of compounds, including mixtures thereof.
The word "exemplary" is used herein to mean "serving as an example, instance or illustration". Any embodiment described as "exemplary" is not necessarily to be construed as preferred or advantageous over other embodiments and/or to exclude the incorporation of features from other embodiments. The word "optionally" is used herein to mean "is provided in some embodiments and not provided in other embodiments". Any particular embodiment of the invention may include a plurality of "optional" features unless such features conflict.
Whenever a numerical range is indicated herein, it is meant to include any cited numeral (fractional or integral) within the indicated range. The phrases "ranging/ranges between" a first indicate number and a second indicate number and "ranging/ranges from" a first indicate number "to" a second indicate number are used herein interchangeably and are meant to include the first and second indicated numbers and all the fractional and integral numerals therebetween.
It is appreciated that certain features of the invention, which are, for clarity, described in the context of separate embodiments, may also be provided in combination in a single embodiment. Conversely, various features of the invention, which are, for brevity, described in the context of a single embodiment, may also be provided separately or in any suitable subcombination or as suitable in any other described embodiment of the invention. Certain features described in the context of various embodiments are not to be considered essential features of those embodiments, unless the embodiment is inoperative without those elements.
Although the invention has been described in conjunction with specific embodiments thereof, it is evident that many alternatives, modifications and variations will be apparent to those skilled in the art. Accordingly, it is intended to embrace all such alternatives, modifications and variations that fall within the spirit and broad scope of the appended claims.
Claims
1. An apparatus for routing data flows through a data communication network, the apparatus comprising: a network interface (110) configured to receive a request for routing a flow of data packets within said data communication network; a hardware processor (120) in electrical communication with the network interface
(110); a non-transitory memory ( 140) in electrical communication with the hardware processor (120), the memory (140) having stored thereon: a network model (141) of network structure and network parameters and a routing log (145) documenting respective success or failure of a plurality of routes routing a plurality of flows; a route selection module (130), in electrical communication with said hardware processor (120), said network interface (110) and said memory (140), configured to route said flow through said network, wherein said route is selected based on an updatable routing model which comprises rules for route selection, said rules being applied to said network model (141); an analysis module (150), in electrical communication with said hardware processor (120) and said memory (140), configured to determine a failure of said route to comply with a respective required level of service, said required level of service specifying at least one required performance measure for said flow, and to store said failure in said routing log (145); and a learning module (160), in electrical communication with said hardware processor (120), and said memory (140), configured to update said routing model by processing said routing log (145), wherein, upon said routing model update said route selection module (130) is configured to reroute said flow based on said updated routing model.
2. The apparatus of claim 1, wherein said learning module (160) is further configured adjust said network model (141) by analyzing collected network data to identify changes in said network structure and network parameters.
3. The apparatus of claims 1 or 2, wherein said updating is directed to obtain a routing model that selects routes complying with respective required levels of service.
4. The apparatus of any one of claims 1-3, wherein said updating comprises applying machine learning analytics on said routing log (145).
5. The apparatus of any one of claims 1-4, wherein said routing log (145) comprises a plurality of flow entries, each entry specifying a route and respective success or failure of said route to comply with said respective required level of service.
6. The apparatus of claim 5, wherein said updating comprises applying supervised machine learning analytics on said routing log (145), and wherein said respective successes or failures serve as training labels for flow entries processed by said supervised machine learning analytics.
7. The apparatus of claim 6, wherein said analysis module (150) is further configured to relabel success or failure of routes in said routing log (145) based on attained data flow performance measures, and wherein said updating comprises applying said supervised machine learning analytics on said relabeled routing log (145).
8. The apparatus of claim 7, wherein said learning module (160) is configured to update said routing model incrementally based on routes with modified success or failure.
9. The apparatus of claim 7 or 8, wherein said relabeling is performed asynchronously from data flow routing.
10. The apparatus of any one of claims 1-9, wherein said network model (141) comprises a plurality of nodes interconnected by links, and at least one network parameter per link between two network nodes, and wherein said route selection module (130) is configured to apply constraint-based routing to said network parameters.
11. The apparatus of any one of claims 1-10, wherein said analysis module (150) is further configured to receive, through said network interface (110), data collected by monitoring elements monitoring performance measures of said data flow routed through said data communication network and to identify therefrom a failure of said flow to adhere to said respective required level of service.
12. A method of routing a data flow through a data communication network, comprising: receiving a route request for routing a flow of data packets within said data communication network; selecting a route for said route request based on an updatable routing model comprising rules for route selection, said rules being applied to a network model (141) of network structure and network parameters; routing said data flow within said network through said selected route; analyzing said routed data flow to determine a failure to comply with a respective required level of service, said required level of service specifying at least one required performance measure for said flow; storing said failure in a routing log (145) documenting respective failures of a plurality of routes routing a plurality of flows within said data communication network; updating said routing model by processing said routing log (145); and rerouting said data flow through a new route selected based on said updated routing model.
13. The method of claim 12, wherein said routing log (145) comprises a plurality of flow entries, each entry specifying a route and respective success or failure of said route to comply with said respective required level of service, wherein said updating comprises applying supervised machine learning analytics on said routing log (145), and wherein said respective successes or failures serve as training labels for flow entries processed by said supervised machine learning analytics.
14. The method of claim 12 or 13, further comprising monitoring a routing of said flow through said data communication network to determine a success or failure of said flow to comply with said respective level of service, relabeling a success or failure of said route accordingly in said routing log (145), and updating said routing model by processing said relabeled routing log (145).
15. The method of any one of claims 12-14, further comprising collecting network flow data from monitoring elements in said data communication network, wherein said
analyzing comprises comparing determining achieved performance measures for said flow and comparing said achieved performance measures to said required level of service.
Priority Applications (2)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201480036847.3A CN105960779B (en) | 2014-11-14 | 2014-11-14 | Data routing method and device with machine learning-based routing model |
PCT/EP2014/074559 WO2016074738A1 (en) | 2014-11-14 | 2014-11-14 | Data routing with a machine learning-based routing model |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
PCT/EP2014/074559 WO2016074738A1 (en) | 2014-11-14 | 2014-11-14 | Data routing with a machine learning-based routing model |
Publications (1)
Publication Number | Publication Date |
---|---|
WO2016074738A1 true WO2016074738A1 (en) | 2016-05-19 |
Family
ID=51897278
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
PCT/EP2014/074559 WO2016074738A1 (en) | 2014-11-14 | 2014-11-14 | Data routing with a machine learning-based routing model |
Country Status (2)
Country | Link |
---|---|
CN (1) | CN105960779B (en) |
WO (1) | WO2016074738A1 (en) |
Cited By (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN106953802A (en) * | 2017-03-01 | 2017-07-14 | 浙江工商大学 | A kind of network optimal route selection method based on deep learning |
WO2019125445A1 (en) * | 2017-12-20 | 2019-06-27 | Visa International Service Association | Automated fault detecting control system |
WO2020131522A1 (en) * | 2018-12-17 | 2020-06-25 | Loon Llc | Operation of sectorized communications from aerospace platforms using reinforcement learning |
FR3101498A1 (en) * | 2019-09-30 | 2021-04-02 | Orange | Method for controlling a data flow associated with a process within a shared network |
Families Citing this family (7)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN108075974B (en) * | 2016-11-14 | 2021-01-15 | 中国移动通信有限公司研究院 | Flow forwarding control method and device and SDN architecture system |
CN107124365B (en) * | 2017-04-25 | 2020-11-24 | 曙光信息产业(北京)有限公司 | Routing strategy acquisition system based on machine learning |
CN107609652B (en) * | 2017-08-30 | 2019-10-25 | 第四范式(北京)技术有限公司 | Execute the distributed system and its method of machine learning |
CN107920175A (en) * | 2017-11-04 | 2018-04-17 | 金陵科技学院 | A kind of method of communication control device call route |
US10958506B2 (en) | 2017-12-07 | 2021-03-23 | Cisco Technology, Inc. | In-situ OAM (IOAM) network risk flow-based “topo-gram” for predictive flow positioning |
CN108833310B (en) * | 2018-06-12 | 2020-11-13 | 国网江苏省电力有限公司无锡供电分公司 | Switch with artificial intelligence analysis |
US11223538B1 (en) * | 2020-09-11 | 2022-01-11 | Hewlett Packard Enterprise Development Lp | Intelligent data traffic routing in a wide area network |
Citations (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US20020145981A1 (en) * | 2001-04-10 | 2002-10-10 | Eric Klinker | System and method to assure network service levels with intelligent routing |
WO2004056047A1 (en) * | 2002-12-13 | 2004-07-01 | Internap Network Services Corporation | Topology aware route control |
Family Cites Families (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN102158388B (en) * | 2010-02-12 | 2014-12-24 | 国际商业机器公司 | Extremum route determination engine and method |
CN103326943B (en) * | 2012-03-23 | 2017-03-01 | 日电(中国)有限公司 | Data flow heavy route method and controller |
CN103716242B (en) * | 2013-12-25 | 2017-07-18 | 北京邮电大学 | A kind of method for routing and system |
-
2014
- 2014-11-14 CN CN201480036847.3A patent/CN105960779B/en active Active
- 2014-11-14 WO PCT/EP2014/074559 patent/WO2016074738A1/en active Application Filing
Patent Citations (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US20020145981A1 (en) * | 2001-04-10 | 2002-10-10 | Eric Klinker | System and method to assure network service levels with intelligent routing |
WO2004056047A1 (en) * | 2002-12-13 | 2004-07-01 | Internap Network Services Corporation | Topology aware route control |
Cited By (10)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN106953802A (en) * | 2017-03-01 | 2017-07-14 | 浙江工商大学 | A kind of network optimal route selection method based on deep learning |
CN106953802B (en) * | 2017-03-01 | 2020-03-03 | 浙江工商大学 | Network optimal path selection method based on deep learning |
WO2019125445A1 (en) * | 2017-12-20 | 2019-06-27 | Visa International Service Association | Automated fault detecting control system |
WO2020131522A1 (en) * | 2018-12-17 | 2020-06-25 | Loon Llc | Operation of sectorized communications from aerospace platforms using reinforcement learning |
US10863369B2 (en) | 2018-12-17 | 2020-12-08 | Loon Llc | Operation of sectorized communications from aerospace platforms using reinforcement learning |
US11202214B2 (en) | 2018-12-17 | 2021-12-14 | Google Llc | Operation of sectorized communications from aerospace platforms using reinforcement learning |
US11576057B2 (en) | 2018-12-17 | 2023-02-07 | Aalyria Technologies, Inc. | Operation of sectorized communications from aerospace platforms using reinforcement learning |
US11751076B2 (en) | 2018-12-17 | 2023-09-05 | Aalyria Technologies, Inc. | Operation of sectorized communications from aerospace platforms using reinforcement learning |
FR3101498A1 (en) * | 2019-09-30 | 2021-04-02 | Orange | Method for controlling a data flow associated with a process within a shared network |
WO2021064310A1 (en) * | 2019-09-30 | 2021-04-08 | Orange | Method for monitoring a data stream associated with a process within a shared network |
Also Published As
Publication number | Publication date |
---|---|
CN105960779B (en) | 2020-01-03 |
CN105960779A (en) | 2016-09-21 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
WO2016074738A1 (en) | Data routing with a machine learning-based routing model | |
US11240153B1 (en) | Scoring policies for predictive routing suggestions | |
EP3047609B1 (en) | Systems and method for reconfiguration of routes | |
US9838296B2 (en) | Bandwidth optimization systems and methods in networks | |
US8862744B2 (en) | Optimizing traffic load in a communications network | |
US10142186B2 (en) | System and method for designing a network for one or more entities in an enterprise | |
US9379949B2 (en) | System and method for improved end-user experience by proactive management of an enterprise network | |
US10833934B2 (en) | Energy management in a network | |
EP3371706B1 (en) | System and method for generating a graphical display region indicative of conditions of a computing infrastructure | |
WO2008011354A2 (en) | Controlled incremental multi-protocol label switching (mpls) traffic engineering | |
GB2539993A (en) | Energy management in a network | |
EP3318026B1 (en) | Model management in a dynamic qos environment | |
US11316752B2 (en) | Action recommendation engine (ARE) of a closed-loop machine learning (ML) system for controlling a network | |
US10044621B2 (en) | Methods and systems for transport SDN traffic engineering using dual variables | |
CN109039795A (en) | A kind of Cloud Server resource monitoring method and system | |
US11178064B2 (en) | Resource allocation device and resource allocation method | |
Khan et al. | Intent-based networking approach for service route and QoS control on KOREN SDI | |
CN113079427B (en) | ASON network service availability evaluation method based on network evolution model | |
US10630563B2 (en) | Application-driven cross-stratum resource monitoring | |
CN105917621B (en) | Method and system for data routing | |
Flavel et al. | BGP route prediction within ISPs | |
US20160065461A1 (en) | Risk mitigation in data center networks using virtual machine sharing | |
US20230291636A1 (en) | Application degradation root causing and rerouting using time series clustering | |
Anh et al. | A new localized multiconstraint QoS routing algorithm | |
US11824766B2 (en) | Adaptive selection of network paths based on long-term predictions of user experience |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
121 | Ep: the epo has been informed by wipo that ep was designated in this application |
Ref document number: 14796780 Country of ref document: EP Kind code of ref document: A1 |
|
NENP | Non-entry into the national phase |
Ref country code: DE |
|
122 | Ep: pct application non-entry in european phase |
Ref document number: 14796780 Country of ref document: EP Kind code of ref document: A1 |