Methods for optimizing traffic between autonomous systems

DE602022019228T2Active Publication Date: 2025-08-13ORANGE SA
View PDF 0 Cites 0 Cited by

Patent Information

Application Number
DE602022019228
Authority / Receiving Office
DE · DE
Patent Type
Patents
Current Assignee / Owner
Priority Date
2021-04-02
Filing Date
2022-03-29
Publication Date
2025-08-13
Estimated Expiration
2042-03-29

AI Technical Summary

Technical Problem

The challenge in autonomous systems is optimizing traffic distribution across interconnecting links to ensure balanced load and adherence to agreements, as current methods are complex, error-prone, and prone to suboptimal states due to manual or rule-based optimizations.

Method used

A method utilizing artificial intelligence to learn and optimize traffic distribution by receiving information about neighboring autonomous systems, determining a reward function result, and triggering actions to influence link load states, including modifying BGP attributes like MED, AS PATH, and PREFIX, with iterative learning to achieve optimal load balancing.

Benefits of technology

This approach leads to improved load balancing and traffic transmission quality by dynamically adapting to system changes, avoiding suboptimal states and ensuring efficient link utilization.

✦ Generated by Eureka AI based on patent content.
Patent Text Reader
Need to check novelty before this filing date? Find Prior Art

Description

Domaine technique

[0001] This disclosure relates to the field of traffic between autonomous systems.

[0002] More particularly, the present disclosure relates to a method of distributing traffic over a set of links interconnecting a plurality of autonomous systems. Technique antérieure

[0003] The Internet is made up of autonomous systems, sets of networks and routers under a single administrative authority.

[0004] To maintain the overall accessibility and connectivity of the Internet, autonomous systems must interconnect and exchange information about networks for which different operators are responsible, allowing autonomous systems to send traffic to each other in the form of data packets.

[0005] The interconnection between different autonomous systems is not random and often relies on bilateral agreements between operators. In the case of multiple possible paths to the same destination, the selection of the path that the traffic will take results from the sequential examination of the preferences of the autonomous systems through which the traffic passes, as well as the preferences of neighboring autonomous systems. The paths are constructed as a sum of local decisions, and each autonomous system will choose locally and independently of the other autonomous systems a best path to a given destination.

[0006] The challenge for an autonomous system is to advertise the prefixes of the networks for which it is responsible to the Internet in a way that has the potential to influence in its favor the best paths constructed by other autonomous systems.

[0007] It can therefore be difficult to anticipate the path that traffic will take, and to ensure good load distribution on the links that carry traffic from one autonomous system to another.

[0008] The consequence is that some links may become overloaded and saturate, leading to a loss of transmitted content, while other links may be lightly loaded or not loaded at all. In addition, the distribution of traffic on the links may not comply with any agreements.

[0009] An autonomous system that observes such suboptimality in traffic distribution can implement various optimization actions, including actions modifying BGP (for "Border Gateway Protocol") attributes to which it has access, or actions modifying the advertisement of the prefixes of the networks for which it is responsible.

[0010] Manual implementation of such optimization actions is complex and error-prone. It involves proceeding in stages, each stage including the application of an optimization action and subsequent observation of the action's effect on the link load status.

[0011] Automation can help in this implementation of actions. However, automation is based on predefined rules for choosing the actions to be executed, which can lead to the execution of inappropriate or unnecessary actions, and even cause oscillations of the load state of the links between two or more suboptimal states.

[0012] Examples and embodiments of the prior art can be found in US 2021 / 0099378 A1. Résumé

[0013] This disclosure improves the situation.

[0014] A method is proposed for distributing traffic over a set of links interconnecting a local autonomous system with a plurality of autonomous systems neighboring the local autonomous system, the method comprising: / a / receiving information at least relating to characteristics of the plurality of neighboring autonomous systems; / b / determining, from the information received, a result of a reward function, representative of a state of said set of links; / c / triggering, as a function of the information received and the result of the reward function, at least one action influencing a distribution of traffic on the set of links so as to optimize the load state of the set of links; / d / repeating steps / a / to / c / ; the at least one action being identified by an artificial intelligence configured to learn to identify, on the basis of successive results of the reward function, actions making it possible to distribute the traffic over the set of links so as to optimize the load state of the set of links.

[0015] An autonomous system can be a collection of networks and routers under the same administrative authority. Different autonomous systems can be interconnected by links to carry traffic, and BGP (Border Gateway Protocol) routers implementing a BGP protocol, whose purpose is to exchange routing and accessibility information of computer networks for which the autonomous systems are responsible.

[0016] In one embodiment, the information received during step / a / is representative of: a load status of the set of links; a type of autonomous system for each of the neighboring autonomous systems; prefixes relating to networks hosted by the local autonomous system and by the neighboring autonomous systems, the prefixes being announced by an autonomous system to its neighbors. A prefix may be an identifier making it possible to identify each network within an autonomous system.

[0017] A local autonomous system may be an autonomous system connected to one or more other autonomous systems, and which implements the method.

[0018] A neighboring autonomous system can be an autonomous system to which a local autonomous system is connected directly, that is, without having to go through another autonomous system.

[0019] Inter-autonomous system traffic can be any type of data transmitted from one autonomous system to another.

[0020] The method, implemented by a device of the local autonomous system, or associated with it, aims to influence the distribution of traffic destined for the local autonomous system, that is to say of traffic entering the local autonomous system.

[0021] A link's load state can correspond to the type and / or volume of traffic carried on the link.

[0022] An autonomous system type can characterize a hierarchical level of an autonomous system relative to another autonomous system. Such an autonomous system type can be, for example, a client autonomous system, a peer autonomous system, or a provider autonomous system.

[0023] A client autonomous system can be an autonomous system that obtains data and / or uses services provided by another autonomous system. A client autonomous system is often an individual or a small business.

[0024] A provider autonomous system can be an autonomous system that sets up an infrastructure to offer services to other autonomous systems and / or to provide data to other autonomous systems. A provider autonomous system can allow a customer autonomous system to access the networks for which it is responsible. Examples of a provider autonomous system include an internet service provider, a technology company, a university, or a government agency.

[0025] Peer autonomous systems can be autonomous systems of the same hierarchical level that enter into agreements regarding the joint establishment or use of structures such as networks or links to carry traffic. In a peer interconnection, two autonomous systems can grant each other access to a subset of the networks for which they are responsible. Examples of peer autonomous systems are Internet service providers.

[0026] A reward function is a concept in artificial intelligence. The result of the reward function is used to quantify the load distribution across the set of links, and to indicate whether a load state is satisfactory or not.

[0027] Besides the result of the reward function, other elements of the received information can be taken into account to determine whether a load state is satisfactory or not, for example information that indicates traffic congestion on a given link.

[0028] The proposed method aims to address the drawbacks mentioned above and to propose an implementation of traffic optimization between a local autonomous system and the autonomous systems neighboring the local autonomous system, allowing better use of the links and better quality of traffic transmission.

[0029] The proposed method is innovative in determining a result of a reward function, and in at least one action triggered, based on the information received and the result of the reward function, which makes it possible to distribute the traffic over the set of links, so as to optimize the load state of the set of links.

[0030] The proposed method is, moreover, original in that the at least one action is identified by an artificial intelligence configured to learn to identify the at least one action which makes it possible to distribute the traffic over the set of links so as to optimize the load state of the set of links.

[0031] In implementing the method, no prior knowledge about the state of the system is required. The artificial intelligence can adapt to new situations and find solutions to complex problems. The artificial intelligence gradually discovers, based on the result of the reward function, the at least one action that leads to an optimization of the traffic and the load state of the set of links. The learning allows the artificial intelligence to train itself, after one or more iterations of the method, and to learn what effects the at least one action triggered by it has on the load state of the set of links, which allows it to choose the at least one action in such a way as to optimize the load state of the set of links represented by the result of the reward function.

[0032] Traffic distribution results in better load balancing across all links interconnecting the local autonomous system with its neighbors, improving link management and utilization, as well as traffic transmission quality.

[0033] The features set out in the following paragraphs may optionally be implemented. They may be implemented independently of each other or in combination with each other.

[0034] In one embodiment, the artificial intelligence comprises a neural network.

[0035] A neural network is specially adapted for implementing learning from experience, known as “machine learning”.

[0036] Learning allows the optimization of the results obtained relating to the load status of the links based on actions triggered and results obtained previously.

[0037] In one embodiment, optimizing the state of charge according to step / c / comprises converging the state of charge to a desired state of charge.

[0038] The desired charge state can be a predefined state or a state considered advantageous by the artificial intelligence, for example because it corresponds to an optimal outcome of the reward function.

[0039] Often it is not possible to achieve a desired state of charge by triggering one or more actions once. The reiteration of the process allows the artificial intelligence, in each iteration, to learn from previous actions, and thus to trigger one or more optimized actions and to converge, over time, towards the desired state. Thus, the artificial intelligence can learn, in an iterative process, the relationship between the triggered actions and the effects of the actions on the state of charge, for a given state of charge.

[0040] In one embodiment, the autonomous system type may be a client autonomous system, a peer autonomous system, or a provider autonomous system.

[0041] This information about the type of autonomous system for each of the respective neighboring autonomous systems can influence the outcome of the reward function, and thus the at least one action triggered.

[0042] For example, a provider Autonomous System with multiple possible paths to send traffic may benefit from going through customer Autonomous Systems, instead of going through other provider Autonomous Systems.

[0043] In one embodiment, the at least one action triggered according to step / c / comprises modifying at least one BGP attribute.

[0044] BGP routers can select the best path to route traffic based on the preferences and properties of autonomous systems, links, and BGP routers.

[0045] Changing a BGP attribute is one way to influence traffic routing. Changing one or more BGP attributes allows a local autonomous system to influence how network prefixes are advertised and the path traffic takes, leading to (potentially optimized) traffic distribution across links.

[0046] In one embodiment, modifying the at least one BGP attribute comprises at least modifying one of the following BGP attributes: MED, AS PATH, PREFIX.

[0047] The PREFIX attribute represents the prefixes advertised by the local autonomous system. The PREFIX can be modified by an action called LOAD SHARING. Modifying the PREFIX by LOAD SHARING allows only some of the prefixes to be advertised and / or to advertise the prefixes only to a subset of neighboring autonomous systems. The consequence may be that certain links will be favored by traffic and used first to route traffic. For example, if certain prefixes are only advertised to some of the neighboring autonomous systems, it is likely that traffic to these prefixes will be reduced and that the corresponding links will be less loaded.

[0048] The AS PATH attribute represents the sequence of autonomous systems through which routing information has passed. Generally, traffic will prefer the path whose AS PATH attribute has the fewest autonomous systems. Modifying the AS PATH with an action called PREPENDING allows a local autonomous system to increase the size of the AS PATH attribute artificially, for example by adding its own number multiple times. Traffic will prefer a path with a short AS PATH over a path with a long AS PATH.

[0049] For example, a local autonomous system may artificially increase the size of an AS PATH attribute of type "1 2 3", representative of a certain path that traffic can take, by adding its own number several times (e.g., "1 2 2 2 3"). If there is an alternative path that passes through another autonomous system (e.g., "1 4 3") and, because its AS PATH attribute size has not been artificially increased, appears to be shorter, this path will be preferred over the path with the AS PATH attribute whose size has been increased ("1 2 2 2 3").

[0050] The MED (for "Multi Exit Discriminator") attribute can be exchanged between neighboring autonomous systems and indicates the preferred entry point of the local autonomous system for traffic from neighboring autonomous systems to the local autonomous system.

[0051] Changing the MED allows you to influence the entry point of traffic from neighboring autonomous systems into a local autonomous system. Generally, traffic will prefer the path with a low MED value over a path with a high MED value.

[0052] Controlling one or more of these three attributes can influence the distribution of traffic across links to optimize load status.

[0053] In one embodiment, the modification of the at least one BGP attribute takes into account a propagation delay of prefixes to be advertised.

[0054] Generally, a change in a BGP attribute does not cause an instant change in traffic distribution. It may take some time for the corresponding information to propagate and deploy its effects.

[0055] Taking into account a propagation delay of the prefixes allows artificial intelligence to determine at least one action triggered.

[0056] In one embodiment, the method comprises a step of triggering at least one action influencing a distribution of traffic randomly on at least a portion of the set of links.

[0057] If the outcome of the reward function reaches a value considered optimal, the artificial intelligence may consider having reached an optimal state, although this may be a local extremum of the reward function. The charge state may be trapped in a loop and oscillate between two or more suboptimal states. Such side effects can be difficult to understand.

[0058] Triggering at least one action that influences a random traffic distribution, although this distribution is not a priori considered useful, can help to get the load state out of such a suboptimal state.

[0059] Another aspect of the disclosure includes a decision device for distributing traffic over a set of links interconnecting a local autonomous system with a plurality of neighboring autonomous systems of the local autonomous system, the device comprising: at least one interface configured to: / a / receive information at least relating to characteristics of the plurality of neighboring autonomous systems (AS100, AS200, AS300); at least one processing circuit configured to: / b / determine, from the information received, a result of a reward function, representative of a state of said set of links; / c / trigger, as a function of the information received and the result of the reward function, at least one action influencing a distribution of traffic on the set of links so as to optimize the load state of the set of links; / d / repeat steps / a / to / c / ; the device comprising an artificial intelligence configured to learn to identify, on the basis of successive results of the reward function, the at least one action which makes it possible to distribute the traffic over the set of links so as to optimize the load state of the set of links.

[0060] The decision device may be integrated into the local autonomous system or associated with it, and be adapted to implement the method previously described in all its embodiments.

[0061] The proposed device is innovative in the at least one action influencing a distribution of traffic that it can trigger, and in the determination of a result of a reward function.

[0062] The proposed device is, moreover, original in that it includes an artificial intelligence configured to learn to identify at least one action which makes it possible to distribute the traffic over the set of links so as to optimize the load state of the set of links.

[0063] Another aspect of the present invention includes a computer program product comprising instructions for implementing the method of the present invention, when this program is executed by a processor.

[0064] This program may use any programming language (e.g., an object-oriented language or otherwise), and may be in the form of interpretable source code, partially compiled code, or fully compiled code.

[0065] There figure 2 described in detail below can form the flowchart of the general algorithm of such a computer program. Brève description des dessins

[0066] Other features, details and advantages will become apparent upon reading the detailed description below, and upon analyzing the attached drawings, in which: Fig. 1 [ Fig. 1 ] shows a local autonomous system connected to a plurality of neighboring autonomous systems of the local autonomous system in the Internet. Fig. 2 [ Fig. 2 ] shows a flowchart of a method for distributing traffic over a set of links interconnecting a local autonomous system with a plurality of autonomous systems neighboring the local autonomous system. Fig. 3 [ Fig. 3 ] shows a neural network, configured to identify actions to be triggered in the implementation of the traffic distribution process on a set of links. Fig. 4 [ Fig. 4 ] presents a device suitable for implementing the process. Description des modes de réalisation

[0067] There figure 1 shows a local autonomous system connected to a plurality of neighboring autonomous systems of the local autonomous system in the Internet. The local autonomous system may be configured to implement the method according to the present invention, by means of a decision device.

[0068] The Internet is composed of autonomous systems, sets of networks and routers under a single administrative authority. Different autonomous systems can be interconnected by links to carry traffic in the form of data packets, and BGP (Border Gateway Protocol) routers implementing a BGP protocol, whose objective is to exchange routing and accessibility information for computer networks for which the autonomous systems are responsible.

[0069] To enable traffic to be sent from one autonomous system to another, each autonomous system can advertise prefixes relating to the networks it hosts to neighboring autonomous systems.

[0070] The non-limiting case of the figure 1 shows a local autonomous system AS1 connected to three neighboring autonomous systems AS100, AS200, AS300.

[0071] AS100 can be a customer autonomous system, AS200 a peer autonomous system and A300 a provider autonomous system.

[0072] A client autonomous system can be an autonomous system that obtains data and / or uses services provided by another autonomous system. A client autonomous system is often an individual or a small business.

[0073] A provider autonomous system can be an autonomous system that sets up an infrastructure to offer services to other autonomous systems and / or to provide data to other autonomous systems. A provider autonomous system can allow a customer autonomous system to access the networks for which it is responsible. Examples of a provider autonomous system include an internet service provider, a technology company, a university, or a government agency.

[0074] Peer autonomous systems can be autonomous systems of the same hierarchical level that enter into agreements regarding the joint establishment or use of structures such as networks or links to carry traffic. In a peer interconnection, two autonomous systems can grant each other access to a subset of the networks for which they are responsible. Examples of peer autonomous systems are Internet service providers.

[0075] AS1 can host three networks and advertise the prefixes 10.0.1.0 / 24, 10.0.2.0 / 24, 10.0.3.0 / 24 relating to these networks to neighboring autonomous systems. Each of these three prefixes can be advertised on each of the three links connecting AS1 to AS100 (link L100), AS1 to AS200 (link L200), and AS1 to AS300 (link L300).

[0076] There are also two standalone systems AS2 and AS3 connected to the AS100, AS200 and AS300 systems via the Internet.

[0077] AS2 and AS3 can each advertise one prefix. Information about the advertised prefixes can be passed to AS1 via one or more of its direct neighbors AS100, AS200, AS300.

[0078] Neighboring autonomous systems AS100, AS200, and AS300 do not advertise prefixes.

[0079] To influence the routing of traffic on links L100, L200, L300 in its favor, the local autonomous system AS1 may implement a method for distributing incoming traffic from neighboring autonomous systems A100, A200, A300 on links L100, L200, L300.

[0080] There figure 2 shows the flowchart of a method for distributing traffic over a set of links interconnecting a local autonomous system with a plurality of autonomous systems neighboring the local autonomous system. The method may be implemented by the local autonomous system. The decision device may comprise artificial intelligence.

[0081] In a first step 101 of the method, the decision device can receive one or more representative information: of a link load status; of an autonomous system type for each of the neighboring autonomous systems; and of prefixes relating to networks hosted by the local autonomous system and the autonomous systems, the prefixes being advertised by an autonomous system to its neighbors.

[0082] Load status can indicate whether one or more links are overloaded, reasonably loaded, or lightly loaded, as well as the volume of traffic (typically indicated in Gbps).

[0083] A type of an autonomous system can describe a hierarchical level of an autonomous system relative to other autonomous systems. This can include a client autonomous system, a peer autonomous system, or a provider autonomous system.

[0084] Representative information about prefixes relating to hosted networks may include details about the properties of those networks, such as the number of servers available and server characteristics, e.g., storage or RAM.

[0085] In particular, the information that the local autonomous system receives from other autonomous systems may include: the LOCAL PREF attribute. This attribute can be configured on BGP routers, and informs routers about the benefit of using a certain path. For example, a provider AS with multiple possible paths to send traffic may benefit from using customer AS instead of other provider AS. Generally, traffic will prefer the path with the highest LOCAL PREF. the AS PATH attribute: This attribute can be carried by traffic and represents the sequence of ASs through which the traffic has passed. Generally, traffic will prefer the path whose AS PATH attribute has the fewest ASs, helping to avoid routing loops; any other information, particularly relating to agreements between ASs.There may be agreements between autonomous systems stipulating the exchanges between autonomous systems (described by the "peering ratio"). These agreements take into account the fact that a connection between autonomous systems is often not symmetrical in the Internet, and that traffic from one autonomous system to a second autonomous system will not necessarily take the same path as traffic from the second autonomous system to the first autonomous system.

[0086] Generally, traffic will take the shortest path between two autonomous systems and within an autonomous system, which may be the path that optimizes the value of the LOCAL PREF, AS PATH, and MED attributes, while taking into account constraints such as agreements between autonomous systems.

[0087] In a second step 102, the decision device can determine, from the information received, a result of a reward function, representative of a state of the set of links.

[0088] The reward function is a concept in artificial intelligence that quantifies load balancing across links. For example, a high value of the reward function result can indicate whether a load state is desirable. To this end, the reward function result can be compared to a reference value.

[0089] In a third step 103, the decision device can trigger, depending on the result of the reward function and the information received, actions influencing the distribution of traffic on the set of links so as to optimize the load state of the set of links.

[0090] Actions can be identified by artificial intelligence.

[0091] For a local autonomous system, the method aims to influence the distribution of traffic from one or more neighboring autonomous systems (which often pursue complex strategies for routing traffic) and to said local autonomous system, i.e. traffic entering said local autonomous system.

[0092] For example, if the value of the reward function result is high and above a reference value, the artificial intelligence can conclude that the state of charge is optimal and decide that it is not necessary to trigger any optimization actions.

[0093] The actions according to the third step 103 may include modifying at least one BGP attribute to which the local system has access, such as: MED, AS PATH, PREFIX. Modifying a BGP attribute represents a means of influencing traffic routing.

[0094] The PREFIX attribute represents the prefixes advertised by a local autonomous system. The PREFIX can be modified by an action called LOAD SHARING: Modifying the PREFIX by LOAD SHARING consists of announcing only some of the prefixes and / or announcing the prefixes only to a subset of neighboring autonomous systems (potentially only one). The consequence may be that certain links are favored by traffic and selected in priority by neighboring autonomous systems. Potentially, modifying the PREFIX by LOAD SHARING and thus modifying the way prefixes are advertised may be the action with the greatest impact on traffic distribution.

[0095] Modifying the AS PATH with an action named PREPENDING allows a local autonomous system to artificially increase the size of the AS PATH attribute, for example by adding its own number multiple times. An autonomous system in the Internet with multiple paths to a destination prefers the one with the shortest AS PATH.

[0096] For example, a local autonomous system may artificially increase the size of an AS PATH attribute of type "1 2 3", representative of a certain path that traffic can take, by adding its own number several times (e.g., "1 2 2 2 3"). If there is an alternative path that passes through another autonomous system (e.g., "1 4 3") and, because its AS PATH attribute size has not been artificially increased, appears to be shorter, this path will be preferred over the path with the AS PATH attribute whose size has been increased ("1 2 2 2 3").

[0097] The MED (Multi Exit Discriminator) attribute can be exchanged between neighboring Autonomous Systems and indicates the preferred entry point of the local Autonomous System for traffic from neighboring Autonomous Systems to the local Autonomous System. Changing the MED attribute allows you to influence the entry point of traffic from neighboring Autonomous Systems into a local Autonomous System. Traffic will prefer the path with a low MED value over a path with a high MED value. Potentially, changing the MED attribute can be the third strongest action, after changing the AS PATH by PREPENDING and changing the PREFIX by LOAD SHARING.

[0098] Often, a change in a BGP attribute does not cause an instant change in traffic distribution. It may take some time for the corresponding information to propagate and deploy its effects.

[0099] Taking into account a prefix propagation delay allows artificial intelligence to adapt and optimize the actions triggered.

[0100] This delay can be in the order of several seconds to several minutes.

[0101] The decision device may repeat, during a step 104, the first 101, second 102 and third 103 steps as often as necessary. The objective may be an implementation of the method which allows permanent monitoring and optimization of the load state of the set of links.

[0102] Often it is not possible to achieve a desired state of charge by triggering a set of actions only once. Reiterating the process allows, in each iteration, to learn from previous actions, and to converge, gradually, towards a desired state. Thus, artificial intelligence can learn, in an iterative process, the relationship between the actions triggered and the effects of the actions on the state of charge, for a given state of charge.

[0103] The desired state can be a predefined state or a state considered advantageous by artificial intelligence.

[0104] The reiteration may be done at a constant or variable frequency. In one embodiment, the reiteration frequency for an undesired state of charge may be higher than for a desired state of charge. If, however, the state of charge corresponds to an optimal state of charge, it may be sufficient to check the state of charge less often, i.e. at a lower frequency.

[0105] Artificial intelligence can be configured to learn to identify, based on successive results of the reward function, actions that allow traffic to be distributed across the set of links in such a way as to optimize the load state across the set of links.

[0106] If the outcome of the reward function reaches or exceeds a reference value, the artificial intelligence may consider itself to have reached an optimal state, although this may be a local extremum of the reward function. The charge state may be trapped in a loop and oscillate between two or more suboptimal states.

[0107] To address such issues, the method may further include a step of triggering actions that affect a random distribution of traffic across at least a portion of the set of links. Random distribution of traffic, although not a priori considered useful, may allow the artificial intelligence to discover the effects of new actions on a given load state.

[0108] In one embodiment, the artificial intelligence may comprise a neural network.

[0109] There figure 3 describes such a neural network, configured to identify actions to be triggered in the implementation of the traffic distribution method on a set of links according to the figure 2 , and for the system according to the figure 1 .

[0110] A neural network is specially suited for implementing learning from experience, known as "machine learning", as described above.

[0111] In one embodiment, the neural network may be a deep neural network. A deep neural network may comprise millions of neurons, distributed across several dozen layers. They may be used in deep learning to design learning mechanisms.

[0112] The method according to the exemplary embodiment described here relates to unsupervised learning, in which the neural network can train itself, after one or more iterations of the method, and learn which actions triggered by it optimize the outcome of the reward function.

[0113] In a particular non-limiting embodiment, the learning can be supervised, and a technician can intervene to “indicate” to the neural network certain load states considered favorable or unfavorable. Such intervention can be useful in particular if the triggering of actions influencing a traffic distribution in a random manner does not allow a load state to exit a suboptimal state.

[0114] A neural network may comprise an input layer inL, one or more intermediate layers hidL arranged one after the other in series, and an output layer outL.

[0115] The input layer inL can receive the data to be analyzed / processed, and transmit the received data to the first intermediate layer located downstream of the input layer. The data processed by the first intermediate layer can be transmitted to the second intermediate layer and so on, up to the output layer. The intermediate layers hidL can implement non-linear transformations of the data.

[0116] Each layer of the neural network may comprise a plurality of nodes.

[0117] Each of the nodes in the input layer inL can be configured to receive or output data in different forms, for example as vectors or matrices.

[0118] In this case, the input layer inL can include nine nodes, namely: three nodes to receive information relating to traffic on links L100, L200, L300; three nodes to receive information representative of the type of neighboring autonomous systems AS100, AS200, AS300. three nodes to receive information representative of the prefixes 10.0.1.0 / 24, 10.0.2.0 / 24, 10.0.3.0 / 24 announced by the local autonomous system AS1 on links L100, L200, L300. A given node can receive information relating to the prefixes announced on a given link.

[0119] The output layer outL can be located downstream of the last intermediate layer and take as input the results of the last intermediate layer to produce the system results.

[0120] The results produced by the output layer outL can be the actions to be triggered which influence a distribution of traffic on the set of links in order to optimize the load state of the set of links.

[0121] The output layer outL may include a plurality of nodes indicating how the three attributes MED, AS PATH, and PREFIX should be modified. Each node can be configured to indicate a particular action for a given link.

[0122] In this case, the output layer outL can consist of nine nodes. Each of the nodes can indicate whether the value of the respective attribute (MED, AS PATH, PREFIX) announced on the respective link L100, L200, L300 should be increased, decreased, or remain unchanged.

[0123] Learning as described, consisting of learning the actions to trigger, from experiences with one's environment, in order to optimize the outcome of the reward function over time, is called reinforcement learning.

[0124] In one embodiment, reinforcement learning may include the “Q-learning” technique. The “Q-learning” technique does not use any model describing the decision-making strategy (allowing a given action to be assigned to a given state). The decision-making strategy is learned, by the neural network, over time by exploring actions (i.e. triggering new actions for a given load state) or exploiting actions (i.e. triggering already known actions).

[0125] During iterative training of the neural network, the relationship between the initial load state of the link set (i.e., before the triggering of an action), the outcome of the reward function, and the triggered action that acts on the initial load state can be recorded and memorized by the neural network. When a certain action triggered in response to a given initial load state improves or does not improve the outcome of the reward function, this relationship can be recorded by the neural network. Thus, a reference database can be created and improved over time. In this way, the neural network will "know" which action(s) should be triggered or not triggered when a given load state appears.

[0126] No prior knowledge about the system state is required. The neural network can be configured to discover, as it goes along, based on the reward function output, for example by comparing the reward function output to a reference value, the actions that lead to optimization of traffic and link load status.

[0127] Learning allows the neural network to train and learn, after one or more iterations of the process, the effects of previously triggered actions on the load state of the set of links. The neural network can then choose, based on similar precedents, actions in order to optimize the load state of the links represented by the result of the reward function. The actions that the neural network considers advantageous can therefore vary at each iteration.

[0128] In the classical case of a neural network (with an update of weighting coefficients affecting the links between the nodes, for example at each iteration) one can plan, based on observations at a given time, to update these weighting coefficients according to the result obtained from the reward function. These coefficients can be updated each time a new result of the reward function is obtained, typically. The updating of the weighting coefficients can be done by the gradient back-propagation technique. This technique allows the neural network to train using the gradient of the weighting coefficients with respect to an error function. This error function can be the result of the differences between the results produced by the neural network and the desired results.The “Q-Learning” technique allows the desired results to be calculated based on the outcome of the reward function.

[0129] Alternatively, the neural network may start not from "zero," i.e., without prior knowledge, but based on prior knowledge about properties of the system or effects of previously triggered actions.

[0130] It is possible to play with the different parameters of the network architecture: the number of layers, the type of each layer, the number of neurons that make up each layer. The more layers you increase, the more likely neural networks are to learn complex phenomena.

[0131] The implementation of the method according to the present invention is illustrated using a numerical example, for the case of the system shown in the figure 1 .

[0132] A local autonomous system AS1 can be connected to three neighboring autonomous systems ASi, with i = 100, 200, 300. AS100 can be a client system, AS200 a peer system and A300 a provider system.

[0133] AS1 can advertise three prefixes Pa AS1-ASi,j relating to the networks it hosts: Pa AS1-ASi,1 = 10.0.1.0 / 24, Pa AS1-ASi,2 = 10.0.2.0 / 24, and Pa AS1-ASi,3 = 10.0.3.0 / 24. Each of these three prefixes can be advertised on each of the three links Li connecting AS1 to AS100 (link L100), AS1 to AS200 (link L200), and AS1 to AS300 (link L300).

[0134] There are also two standalone systems AS2 and AS3 connected to the AS100, AS200 and AS300 systems via the Internet.

[0135] AS2 and AS3 can each advertise a prefix Pr k (k = 2, 3; Pr 2 being the prefix advertised by AS2, and Pr 3 being the prefix advertised by AS3): Pr 2 = 11.0.1.0 / 24 and Pr 3 = 12.0.1.0 / 24. Information about the advertised prefixes can be passed to AS1 via one or more of its direct neighbors (AS100, AS200, AS300).

[0136] Neighboring autonomous systems AS100, AS200, and AS300 do not advertise prefixes.

[0137] Information received by AS1 may include: Pa AS1-ASi,j: all prefixes announced by AS1 on link L i; Pr k: all prefixes received by AS1, corresponding to the prefixes announced by AS2 and AS3; locpref k: the LOCAL PREF attribute for the prefixes Pr k received by AS1.

[0138] In addition, AS1 may receive information representative of a load state of the links interconnecting AS1 with its neighbors AS100, AS200 and AS300. This information may include information on: T AS1-ASi,j: traffic entering AS1 for the prefixes Pa AS1-ASi,j advertised on the link Li.

[0139] Furthermore, the information received by AS1 may be representative of an autonomous system type for each of the neighboring autonomous systems. The information may indicate that AS100 is a customer system, AS200 a peer system, and A300 a provider system.

[0140] The received information may include information about the AS PATH attribute and the MED attribute for each of the Pa AS1-ASi,j prefixes advertised by AS1.

[0141] Additionally, the received information may include the AS1-ASi C capacity of the L100, L200 and L300 links.

[0142] Artificial intelligence can determine, from the received information, the result of the reward function. The reward function f reward can be calculated as the sum of a score relating to the preferences of neighboring autonomous systems (score pref ) and a score relating to the traffic received by AS1 (score traf ): f reward = score pref + score traf .

[0143] pref score can be calculated as follows: pref score = ∑ k LP k * agreement ; LP k = locpref k − min LOCALPREF max LOCALPREF − min LOCALPREF ; k = 2, 3; LP 2 and locpref 2 being variables describing AS2, and LP 3 and locpref 3 being variables describing AS3; and agreement = 1 for the provider; agreement = 2 for the peer; agreement = 3 for the client.

[0144] The "agreement" variable indicates the preferences of the local autonomous system AS1. For example, if AS1 is a provider autonomous system such as a mobile operator, it may be preferable for the links of the customer autonomous system AS100 to be used to carry traffic, rather than the links of the provider autonomous system AS300. The "agreement" variable therefore has a higher value for a customer than for a provider.

[0145] LOCALPREF can be an array including the LOCAL PREF attribute for each of the prefixes received by AS1.

[0146] traf score can be calculated as follows: score traf = ∑ i C i / T i avec C i = C AS 1 − ASi et T i = ∑ j T As 1 − Asi , j .

[0147] The information received by AS1 can be in the form of the following matrix, for each of the links L100, L200 and L300: Li , < C AS 1 − ASi > , < Pa AS 1 − ASi , j > , < T AS 1 − ASi , j > , < Pr k > , < locpref k >

[0148] Subsequently, a numerical example will be considered.

[0149] For the L100 link, the information received can be as follows: [L100, 10Gbps, [ [10.0.1.0 / 24, 11 Gbps], [10.0.2.0 / 24, 0Gbps], [10.0.3.0 / 24, 0Gbps]], [[11.0.1.0 / 24, 100], [12.0.1.0 / 24, 100]]].

[0150] For the 10.0.1.0 / 24 prefix, traffic enters the local autonomous system AS1 through the L100 link.

[0151] For the L200 link, the information received may be as follows: [L200, 5Gbps, [[10.0.1.0 / 24, 0Gbps], [10.0.2.0 / 24, 7Gbps], [10.0.3.0 / 24, 0Gbps]], [[11.0.1.0 / 24, 200], [12.0.1.0 / 24, 100]]].

[0152] For the 10.0.2.0 / 24 prefix, traffic enters the local autonomous system AS1 through the L200 link.

[0153] For the L300 link, the information received may be as follows: [L300, 20Gbps, [[10.0.1.0 / 24, 0Gbps], [10.0.2.0 / 24, 0Gbps], [10.0.3.0 / 24, 6Gbps] ], [[11.0.1.0 / 24, 100], [12.0.1.0 / 24, 300]]].

[0154] For the 10.0.3.0 / 24 prefix, traffic enters the local autonomous system AS1 through the L300 link.

[0155] The value of the MED attribute can be equal to 500 for all three prefixes advertised by AS1 on each of the three links L100, L200 and L300.

[0156] The result of the reward function is therefore: f récompense = score pref + score tra = 2 + 4.95 = 6.95 .

[0157] Artificial intelligence can analyze the result of the reward function, for example by comparing it to a reference value, and try to improve it subsequently.

[0158] The result of the reward function thus calculated allows artificial intelligence, alone or in combination with certain values of the matrices received for each of the links L100, L200 and L300, to identify actions to be triggered influencing the traffic on the links.

[0159] For this purpose, the BGP attributes (MED, AS PATH, PREFIX) can be modified, in particular increased or decreased, on one or more Li links.

[0160] We can see in the received matrix for the first L100 link that there is traffic congestion for the 10.0.1.0 / 24 prefix (the capacity C AS1-AS100 of the L100 link is 10 Gbps, but the incoming traffic T AS1-AS1,1 is 11 Gbps).

[0161] To improve this suboptimal load state, the MED attribute of the 10.0.1.0 / 24 prefix can be changed for the L300 link: L100: MED unchanged; L200: MED unchanged; L300: MED 500 -> 400.

[0162] Since traffic will prefer a link with a low MED value, this action has the potential to increase traffic on the L300 link and thus resolve the traffic congestion problem on the L100 link.

[0163] We can see in the received matrix for the second L200 link that there is traffic congestion for the 10.0.2.0 / 24 prefix (the capacity C AS1-AS200 of the L200 link is 5 Gbps, but the incoming traffic T AS1-AS2,2 is 7 Gbps).

[0164] To improve this suboptimal load state, the MED attribute of the 10.0.2.0 / 24 prefix can be changed in L100: L100: MED 500 -> 400; L200: MED unchanged; L300: MED unchanged.

[0165] Since traffic will prefer a link with a low MED value, this action has the potential to increase traffic on the L100 link and thus resolve the traffic congestion problem on the L200 link.

[0166] Additionally, to improve the traffic congestion status on the L200 link, the AS PATH attribute can be modified for the 10.0.2.0 / 24 prefix on the L200 link: L100: AS PATH unchanged; L200: AS PATH i -> 1 1 1 1 i; L300: AS PATH unchanged.

[0167] This modification has the potential, in addition to the action already carried out (L100: MED 500 -> 400), to resolve traffic congestion on the L200 link.

[0168] If the state of charge is still not satisfactory, further actions may be triggered.

[0169] The process can be iterated after each triggered action. In each iteration, new information representative of the load state of the links can be received, and a new result of the reward function can be determined.

[0170] Alternatively, several actions can be triggered in succession before repeating the process.

[0171] There figure 4 shows a decision device 301 for distributing traffic over a set of links interconnecting a local autonomous system with a plurality of autonomous systems neighboring the local autonomous system.

[0172] The device can be implemented by the local autonomous system.

[0173] In one embodiment, the device may be integrated into the local autonomous system and configured to distribute traffic across a set of links interconnecting the local autonomous system with neighboring autonomous systems.

[0174] The decision device 301 is adapted to implement the method described by the figure 2 .

[0175] In this embodiment, the decision device 301 comprises at least one input interface 302 for receiving messages or instructions, and at least one output interface 303 for communicating with external devices 306 such as one or more neighboring autonomous systems or the BGP routers interconnecting the autonomous systems.

[0176] The at least one input interface 302 may be configured to: / a / receive information representative of: of a load status of the set of links; of an autonomous system type for each of the neighboring autonomous systems; and of prefixes relating to networks hosted by the local autonomous system and the neighboring autonomous systems, the prefixes being advertised by an autonomous system to its neighbors.

[0177] The decision device 301 further comprises a memory 304 for storing instructions allowing the implementation of at least part of the method, the received data, and temporary data for carrying out the different steps 104, 102, 103 and 104 and operations of the method as described previously.

[0178] The decision device 301 further comprises a processing circuit 305. This circuit may be, for example: a processor capable of interpreting instructions in the form of a computer program, or an electronic card of which steps 101, 102, 103 and 104 and operations of the method of the disclosure can be described in silicon, or even a programmable electronic chip such as an FPGA chip for " Field-Programmable Gate Array » in English, like a SOC for “ System On Chip » in English or as an ASIC for « Application Specific Integrated Circuit » in English.

[0179] SOCs or systems on chips are embedded systems that integrate all the components of an electronic system into a single chip. An ASIC is a specialized electronic circuit that groups together tailor-made functionalities for a given application. ASICs are generally configured during their manufacture and can only be simulated by an operator of the decision-making device 301. Programmable logic circuits such as FPGAs are electronic circuits that can be reconfigured by the operator of the decision-making device 301.

[0180] The processing circuit 305 can be configured to: / b / determining, from the information received, a result of a reward function, representative of a state of said set of links; / c / triggering, depending on the information received and the result of the reward function, at least one action influencing a distribution of traffic on the set of links so as to optimize the load state of the set of links; and / d / repeating steps / a / to / c / .

[0181] The local autonomous system may include an artificial intelligence configured to learn to identify, based on successive results of the reward function, the actions which make it possible to distribute the traffic over the set of links so as to optimize the load state of the set of links.

[0182] Depending on the embodiment, the decision device 301 may be a computer, a computer network, an electronic component, or another apparatus comprising a processor operably coupled to a memory, as well as, depending on the embodiment selected, a data storage unit, and other associated hardware elements such as a network interface and a media reader for reading and writing to a removable storage medium not shown in the figure 4 . The removable storage medium can be, for example, a CD compact disc, a DVD digital video / versatile disc, a flash disk, a USB flash drive, etc.

[0183] Depending on the embodiment, the memory 304, the data storage unit or the removable storage medium contain instructions which, when executed by the processing circuit 305, cause this circuit to perform or control the at least one input interface 302, the at least one output interface 303, the storage of data in the memory 304 and / or the processing of data and / or the implementation of at least part of the method according to the figure 2 .

[0184] The processing circuit 305 may be a component implementing the control of the decision device 301.

[0185] Furthermore, the decision device 301 may be implemented in software form, in which case it takes the form of a program executable by a processor, or in hardware form, or " hardware ", such as an application-specific integrated circuit ASIC, a system on chip SOC, or in the form of a combination of hardware and software elements, for example a software program intended to be loaded and executed on an electronic component described above such as FPGA, processor.

[0186] The decision device 301 may also use hybrid architectures, for example, architectures based on a CPU+FPGA, a GPU for “ Graphics Processing Unit » or an MPPA for « Multi-Purpose Processor Array ".

[0187] The decision device 301 can control the networks hosted by the local autonomous system.

[0188] The present disclosure makes it possible to distribute traffic over a set of links interconnecting a local autonomous system with a plurality of autonomous systems neighboring the local autonomous system.

[0189] This disclosure is not limited to the examples of devices, systems, methods, uses and computer program products described above, solely by way of example, but it encompasses all variations that the person skilled in the art may envisage within the framework of the protection sought.

Claims

1. Method for distributing traffic over a set of links (L100, L200, L300) interconnecting a local autonomous system (AS1) with a plurality of neighbouring autonomous systems (AS100, AS200, AS300) of the local autonomous system (AS1), the method comprising: / a / receiving (101) information at least relating to characteristics of the plurality of neighbouring autonomous systems (AS100, AS200, AS300); / b / determining (102), on the basis of the information received, a result of a reward function, which is representative of a state of said set of links; / c / triggering (103), depending on the information received and the result of the reward function, at least one action influencing a distribution of the traffic over the set of links (L100, L200, L300) so as to optimize the load state of the set of links (L100, L200, L300); / d / repeating (104) steps / a / to / c / ; the at least one action being identified by an artificial intelligence configured to learn to identify, based on successive results of the reward function, actions making it possible to distribute the traffic over the set of links (L100, L200, L300) so as to optimize the load state of the set of links (L100, L200, L300), wherein the information received according to step / a / is representative of: - a load state of the set of links (L100, L200, L300); - a type of autonomous system for each of the neighbouring autonomous systems (AS100, AS200, AS300); and - prefixes relating to networks hosted by the local autonomous system (AS1) and the neighbouring autonomous systems (AS100, AS200, AS300), the prefixes being advertised by an autonomous system to its neighbours.

2. Method according to Claim 1, wherein the artificial intelligence comprises a neural network.

3. Method according to either one of the preceding claims, wherein optimizing the load state according to step / c / comprises the convergence of the load state towards a desired load state.

4. Method according to any one of the preceding claims, wherein the type of autonomous system is a client autonomous system, a peer autonomous system or a provider autonomous system.

5. Method according to any one of the preceding claims, wherein the at least one action triggered according to step / c / comprises modifying at least one BGP, or Border Gateway Protocol, attribute.

6. Method according to Claim 5, wherein modifying the at least one BGP attribute comprises modifying at least one BGP attribute from among: MED, AS PATH, PREFIX.

7. Method according to either one of Claims 5 and 6, wherein the modification of the at least one BGP attribute takes into account a delay in the propagation of prefixes to be advertised.

8. Method according to any one of the preceding claims, wherein the method comprises a step of triggering at least one action influencing a distribution of the traffic randomly over at least part of the set of links (L100, L200, L300).

9. Decision device (301) for distributing traffic over a set of links (L100, L200, L300) interconnecting a local autonomous system (AS1) with a plurality of neighbouring autonomous systems (AS100, AS200, AS300) of the local autonomous system (AS1), the device comprising: - at least one interface (302) configured to: / a / receive information at least relating to characteristics of the plurality of neighbouring autonomous systems (AS100, AS200, AS300); - at least one processing circuit (305) configured to: / b / determine, on the basis of the information received, a result of a reward function, which is representative of a state of said set of links; / c / trigger, depending on the information received and the result of the reward function, at least one action influencing a distribution of the traffic over the set of links (L100, L200, L300) so as to optimize the load state of the set of links (L100, L200, L300); / d / repeat steps / a / to / c / ; the device comprising an artificial intelligence configured to learn to identify, based on successive results of the reward function, the at least one action which makes it possible to distribute the traffic over the set of links (L100, L200, L300) so as to optimize the load state of the set of links (L100, L200, L300), wherein the information received according to step / a / is representative of: - a load state of the set of links (L100, L200, L300); - a type of autonomous system for each of the neighbouring autonomous systems (AS100, AS200, AS300); and - prefixes relating to networks hosted by the local autonomous system (AS1) and the neighbouring autonomous systems (AS100, AS200, AS300), the prefixes being advertised by an autonomous system to its neighbours.

10. Computer program product comprising instructions which, when these instructions are executed by a processor, cause the latter to implement the steps of the method according to any one of Claims 1 to 8.