Computer program product, method and device for managing a network
By assessing the stability of routing paths based on their retention time and using intelligent agents to manage announcements, the method addresses network congestion and improves routing efficiency in existing protocols.
Patent Information
- Application Number
- PCT/EP2024/087044
- Authority / Receiving Office
- WO · WO
- Patent Type
- Applications
- Current Assignee / Owner
- Priority Date
- 2023-12-21
- Filing Date
- 2024-12-18
- Publication Date
- 2025-06-26
AI Technical Summary
Existing routing protocols, such as BGP, face challenges in efficiently managing routing path announcements, leading to network congestion and unnecessary 'path exploration' in routers.
A method that determines the stability of routing paths by analyzing their retention time in the routing table, deciding whether to announce the path to neighboring routers based on this stability, and using an intelligent agent, potentially with neural networks, to refine this decision.
This approach reduces the number of unnecessary routing announcements, decreases network congestion, and ensures that stable paths are quickly shared among routers, improving overall packet routing efficiency.
Smart Images

Figure EP2024087044_26062025_PF_FP_ABST
Abstract
Description
Computer program product, method and device for managing a network
[0001] This disclosure relates to the field of communications routing, particularly communications using the Internet protocol.
[0002] The Internet Protocol is a data communication protocol that allows communication between different devices connected to the Internet network (generally referred to as the IP network). The Internet Protocol (hereinafter IP protocol) is defined in particular in the RFC 791 standard for its version 4 (designated by the abbreviation "IPv4") and in the RFC 2460 standard for its version 6 (designated by the abbreviation "IPv6").
[0003] Data packets encoded using the Internet Protocol are sent from a first device to a second device over the IP network using an address (usually referred to as an IP address) of the second device on the IP network. The data packets thus travel from the first device to the second device, via successive routers that direct them to reach the second device. This routing can sometimes pose certain difficulties.
[0004] This disclosure improves this situation. Summary
[0005] In this regard, a method for managing routing path announcement by a current router of a network comprising a plurality of routers is proposed, comprising: determining one or more durations during which a given routing path to a destination of the network is kept in a routing table of a current router; then upon detection of an update of the given routing path in the routing table of the current router: estimating a stability of the given routing path, from the determination of the one or more durations; and deciding whether or not to issue an announcement of the given routing path to at least one neighboring router of the current router as a function of the estimation of stability of the given routing path.
[0006] Optionally, the advertisement of the given routing path may be issued, after a decision not to issue the advertisement of the given routing path has been taken, if a current duration during which the given routing path is kept in the routing table since the update becomes greater than a first threshold.
[0007] Optionally, the method may comprise training an intelligent agent to, from an input corresponding to a routing path, determine as output an announcement probability associated with the routing path, the announcement probability being determined from the stability estimate of the routing path. In this option, the decision to issue or not to issue the announcement of the given routing path may be taken from the announcement probability associated with the given routing path determined by the intelligent agent.
[0008] Optionally, training of the intelligent agent may include a modification of a probability of announcing a routing path of the routing table of the current router, based on a duration during which the routing path is written in the routing table between two successive updates.
[0009] Optionally, a modification of a probability of advertising a routing path may include an increase in the probability of advertising the routing path of the routing table of the current router if the duration during which the routing path is written in the routing table between two successive updates is greater than a second threshold.
[0010] Optionally, a modification of a probability of advertising a routing path may include a decrease in the probability of advertising the updated routing path of the routing table of the current router if the duration during which the routing path is written in the routing table between two successive updates is less than a third threshold.
[0011] Optionally, the intelligent agent may comprise a plurality of neural networks, each trained for a respective destination of the network.
[0012] Optionally, a neural network may comprise, for a given destination: an input layer comprising a plurality of input neurons assigned to respective routing paths to the given destination and respectively associated with a weight; and an output layer, which determines an announcement probability based on the weights associated with the neurons of the input layer. In this option, a weight of a given input neuron may be determined from one or more durations during which the routing path assigned to this neuron is written into the routing table between two successive updates.
[0013] Optionally, modifying the probability of announcing a routing path from the routing table of the current router based on a duration during which the routing path is written in the routing table between two successive updates may correspond to modifying the weight of the input neuron of the neural network associated with this routing path.
[0014] Optionally, a neural network trained for a destination of the routing table associated with the given routing path is pulsed. The pulsed neural network is activated when the given routing path targets the destination associated with this network. In this option, prior to the decision to transmit or not to transmit the announcement of the given routing path, the method can further comprise three complementary operations. A first complementary operation corresponds to a presentation of the given routing path to an input neuron of the input layer of the pulsed neural network associated with the destination of the given routing path, for a determined presentation duration during which a plurality of pulses are transmitted. A second complementary operation corresponds to a determination of a number of pulses transmitted, among the plurality of pulses transmitted, from the input neuron of the input layer to the output layer.The number of transmitted pulses depends on the weight associated with the input neuron. Furthermore, the weight associated with the input neuron to which the given routing path is presented is in particular determined from the determination of one or more retention times of the given routing path in the routing table. A third complementary operation corresponds to a determination of the probability of announcing the given routing path from the determined number of transmitted pulses, from the input neuron, to the output layer.
[0015] Optionally, it is decided to issue the advertisement of the given routing path if the advertisement probability of the given routing path is greater than a fourth threshold.
[0016] Optionally, the plurality of routers corresponds to a plurality of border routers associated with a respective autonomous system. In this option, the method is implemented within the framework of a BGP (Border Gateway Protocol). Thus, the decision to issue or not to issue an advertisement of the given routing path to at least one neighboring router of the current router corresponds to a decision to issue or not to issue an advertisement of the given routing path to at least one border router associated with an autonomous system neighboring the autonomous system associated with the current border router.
[0017] The application also relates to a device comprising a processing circuit for implementing any of the methods described in the present disclosure. This device may in particular be included in a router, for example in an edge router.
[0018] The application further relates to a computer program product comprising instructions for implementing any of the methods presented by the present disclosure when this program is executed by a processing circuit (for example by a processor).
[0019] Finally, the application relates to a non-transitory recording medium readable by a computer on which is recorded a program for implementing any of the methods presented by the present disclosure when this program is executed by a processing circuit (for example by a processor).
[0020] The solution presented by the present disclosure makes it possible to reduce the number of advertisements of updated paths in the routing table of a router, while quickly sending an advertisement of an updated path when this updated path is considered stable. Network congestion is therefore reduced, and the updated stable paths are shared quickly. The proposed solution can be deployed progressively, router by router without being incompatible with the operation of other routers in the network which would not implement this solution.
[0021] Furthermore, in options, the solution presents an AI intelligent agent that can be trained to determine, as finely as possible, which routing paths are stable, and which are unstable. The decision to issue or not issue an advertisement, once the network is trained, is therefore made with a high degree of confidence in the fact that the paths are stable or unstable.
[0022] It should also be noted that when the intelligent agent AI includes at least one SNN (spiking neural network), the intrinsic operation of this network is very low-computational resource consuming, since it simply multiplies binary signals to a weight matrix. Consequently, the identification of stable and unstable paths operated by this network consumes few computational resources.
[0023] Other features, details and advantages will become apparent upon reading the detailed description below, and upon analyzing the attached drawings, in which:
[0024] schematically represents an example of a routing system.
[0025] schematically represents an example of a router.
[0026] schematically represents an example of a processing circuit.
[0027] schematically represents an example of a routing path advertisement management method.
[0028] schematically represents another example of a routing path advertisement management method.
[0029] schematically represents yet another example of a method for managing routing path advertisement.
[0030] schematically represents yet another example of a method for managing routing path advertisement.
[0031] schematically represents an example of training an intelligent agent.
[0032] schematically represents another example of training an intelligent agent.
[0033] schematically represents an architecture of a neural network of an intelligent agent.
[0034] schematically represents another architecture of a neural network of an intelligent agent.
[0035] schematically represents yet another example of a method for managing routing path advertisement.
[0036] schematically represents the operation of a spiking neural network.
[0037] schematically represents yet another example of a method for managing routing path advertisement.
[0038] schematically represents a comparative test of the operation of different methods for issuing routing path announcements in terms of the number of announcements issued in a given time, and the average time before issuing an announcement after writing the paths in the routing table.
[0039] The inventors have noticed that routing data packets over an IP network from a first device to a second device can be complicated, especially when the first device and the second device belong to a different autonomous network (usually referred to as autonomous systems or "autonomous systems" AS in English). Autonomous systems refer to subparts of the IP network that may have their own routing protocol.
[0040] The autonomous systems are interconnected and exchange routing information, in particular, via the Border Gateway Protocol (BGP protocol hereinafter) to enable the routing of data packets from a device belonging to a first autonomous system to a second device belonging to a second autonomous system. The BGP protocol is defined in particular in the RFC 4271 and RFC 2545 standards.
[0041] The BGP protocol is implemented by routers, hereinafter referred to as border routers, associated with the various autonomous systems. Thus, each border router receives from its neighbors, i.e. border routers adjacent to it in the IP network, announcements of data routing paths enabling a data packet to be sent to the various networks making up the IP network, i.e. to approximately 920,000 networks implementing the IPv4 protocol and approximately 157,000 networks implementing the IPv6 protocol at the filing date of the patent application. In particular, for a given network destination, a border router determines, from among the routing paths to this network destination received from the border routers adjacent to it, a preferential path, which it then announces to its own neighbors.The preferred routing path is determined by successively examining different network metrics such as the LOCAL-PREF configured locally and reflecting the interest in going through one neighboring autonomous system or another, or the length of the routing path to a network destination, the path being able to cross different autonomous systems.
[0042] More specifically, a border router constantly determines new preferred routing paths to a network destination based on the routing paths to that destination it receives from other border routers, and updates its routing table (also referred to as the Routing Information Base, or RIB). An update to the routing table for a network destination corresponds to writing a routing path to that network destination into the routing table. If a routing path was already present in the routing table for that network destination, it is overwritten in favor of the new routing path.
[0043] This phenomenon of determination, by a border router, of a routing path to a given network destination, when a new path to this destination is received, is known as "path exploration". This task of determining the preferred path for a given destination is carried out by the border router, in particular by a processing circuit of the router, to the detriment of its original task of routing the data packets that it receives. It is understood that if a border router regularly receives routing paths to a network destination, it regularly redetermines, from these new paths received to this network destination, what is the preferred path to announce to its neighbors, so that the availability of the processing circuit of the router dedicated to routing data packets is reduced.
[0044] To limit this phenomenon, updates to a border router's routing table are transmitted to neighboring border routers every time a constant time interval of 30 seconds has elapsed. This constant time interval is referred to in BGP as the Minimum Route Advertisement Interval, or MRAI. This limits the number of announcement messages on the border router network, reducing network congestion, and also limits the time a given border router spends determining a new route to a given destination each time it receives a new route to that destination from one of its neighbors.
[0045] However, the inventors noted that defining a constant time interval between two advertisement messages from a border router on the network does not depend, by definition, on the destination of the updated paths in the router's routing table, nor on whether or not there is an actual need to transmit an advertisement message of the updated routing paths at the expiration of the time interval. Therefore, the inventors noted that regardless of whether a new updated path in a router's routing table needs to be communicated faster than the time remaining before a new MRAI transmission, the constant time interval between two MRAI advertisement messages does not allow the number of advertisement messages to be effectively limited either.Indeed, the inventors have noticed that an advertisement message comprising updated routing paths is periodically transmitted by each border router, even for the border routers whose updated routing paths in the routing table are not sufficiently stable to be transmitted. Consequently, the network is always congested with advertisement messages comprising routing paths of relative utility, which further trigger a "path exploration" phenomenon in the border routers that receive them, which therefore reduces the computational availability of these routers for routing.
[0046] Other routing protocols could also use a similar operation of periodic transmission of messages announcing updates to the network tables of the routers, in order to minimize the number of messages on the network, and in order to reduce the computational load of routers in determining a preferred path to a given destination. However, it is understood that such protocols would suffer from the same defects as those explained previously.
[0047] The inventors have therefore found alternative solutions to improve this operation, but none are completely satisfactory.
[0048] One of the solutions found by the inventors consists of using an alternative protocol to existing protocols implementing the periodic broadcast of announcements of updated paths in the routing tables of a router to its neighboring routers on the network. However, the use of a new protocol, assuming that a satisfactory solution is implemented by this new protocol to share the updated routing paths between routers, requires in any case modifying the configuration of all or part of the existing network equipment in order to be used. Its deployment is therefore complex and represents a significant cost.
[0049] Another solution found by the inventors is to propose a heuristic approach that gradually removes obsolete or unstable paths from the routers' routing table so that fewer update messages are sent to the network. However, this approach is not satisfactory since it does not act on the advertisement messages corresponding to paths that are not obsolete or unstable, and which are still advertised in situations in which it is not necessary.
[0050] A final solution found by the inventors consists of dynamically determining a delay considered optimal between the emission of two successive announcement messages from a router. In other words, this solution proposes to dynamically modify the MRAI value of the border routers. However, in this solution, the delay considered optimal is always attached to all the announcements, and is therefore independent of the destination of the paths actually updated in the routers' routing table. This is therefore a solution, certainly better than an MRAI value arbitrarily set at 30 seconds, but which remains unsatisfactory insofar as it is applied to all the announcement messages without distinction of the destination of the updated paths, and of the usefulness of announcing certain updates.
[0051] The present disclosure thus proposes a new solution that at least partially resolves the drawbacks of the solutions previously found by the inventors. More specifically, the present disclosure proposes a solution that makes it possible to reduce the number of messages for announcing updated paths in the routing table sent by a router, while quickly sending an announcement message for an updated path when this updated path is considered stable. The proposed solution therefore makes it possible to reduce congestion on the network, while improving packet routing since stable paths are quickly shared between routers. Furthermore, the solution proposed by the present disclosure can be deployed directly without substantial modifications to the network protocols already used on the equipment, and in particular the BGP protocol, so that it can be deployed on a large scale without substantial modifications to the equipment.The solution that is the subject of the present disclosure is also advantageous in that it provides benefits to the entire network, even if it is implemented at a single router in the network. Indeed, this single router will reduce the number of advertisement messages that it sends to the network (and therefore the phenomenon of "path exploration" among its neighbors) and will send advertisements more quickly concerning the paths that it considers stable, so that its operation alone improves the overall operation of the network.In other words, whether the solution is deployed on a single router, or on all the routers in the network configured to implement a protocol featuring periodic transmission of path announcement messages updated from the routing tables, the overall operation, in terms of bandwidth, speed of sending relevant announcement messages on the network, and availability of the routers to route data packets is improved.
[0052] Thus, the solution proposed by the present disclosure consists in deciding, for an update of a routing path in the routing table of a router, whether this update must be announced on the network, depending on a stability of the updated routing path. In particular, the solution ingeniously uses the retention time of a given routing path to a network destination between two updates of the routing path to this network destination in the routing table to determine whether this given routing path is stable. If the path is considered stable, it can thus be announced to at least one of the neighboring routers of the current router. Indeed, a routing path assigned to a network destination in a routing table can be considered stable as long as it is not quickly replaced, in the routing table, by another path.Thus, if a routing path is not replaced quickly in a router's routing table, it means that the router has not determined any other routing path to that destination that it considers better than the already recorded path, despite potentially receiving other routing paths to that destination from other routers. Therefore, this routing path can be considered stable and advertised quickly.
[0053] A routing system 10 is now presented in which an exemplary method 100 according to the present disclosure may be implemented. An illustration of an exemplary routing system 10 is notably presented in.
[0054] The exemplary routing system 10 comprises a plurality of routers 2. A router 2 is a device configured to route data packets to destinations in a network. In particular, any of the exemplary methods 100 described below in the present disclosure may be implemented at at least one router 2 of the routing system 10, and advantageously at each of the routers of the routing system 10.
[0055] In the present disclosure, a neighbor router of a given router corresponds to a router directly exchanging data packets with the given router. By directly, it is understood here that there is no intermediate router, between the given router and its neighbor router, routing at least a portion of the data packets from one to the other and vice versa. In other words, a router is a neighbor router of a given router if the data packets that it routes are, for at least a portion of them, transmitted to the given router without passing through an intermediate router.
[0056] In examples, and in particular those represented on the, the system 10 may correspond to a routing system 10 implementing an external route protocol (“external gateway protocol” in English), in particular a BGP protocol. In these examples, the routers 2 therefore correspond to border routers. Furthermore, in these examples, a border router 2 may thus be associated with an autonomous system SA. In the example of the, three autonomous systems SA are represented, referenced from SA1 to SA3, and each of the autonomous systems SA comprises a border router 2.
[0057] A router 2 comprises a routing table (not shown). A routing table is also known as a Routing Information Base (RIB). The routing table of a router 2 belonging to a network comprises a plurality of network destinations. Each network destination present in the routing table of a router is respectively associated with a unique routing path. Consequently, when the router 2 receives a data packet to a network destination, it can route it to this destination from the routing path associated with this destination in the routing table.
[0058] In examples, a router 2 may include a processing circuit 1 configured to implement any of the example methods 100 described in the present disclosure. These examples are notably represented in.
[0059] In examples, a processing circuit 1 may comprise a calculation circuit PROC and a memory MEM. These examples are notably represented in.
[0060] A PROC computing circuit may for example comprise at least one of a processor, a microprocessor, a controller, a microcontroller, or an FPGA.
[0061] The MEM memory may, for example, comprise at least one of a ROM (Read-Only Memory), a RAM (Random Access Memory), an EEPROM (Electrically Erasable Programmable Read-Only Memory) or any other type of suitable storage means. The MEM memory may, for example, comprise optical, electronic or magnetic storage means.
[0062] The memory MEM can for example store code instructions, which, when executed by the calculation circuit PROC, cause the processing circuit 1 to implement any of the example methods 100 presented by the present disclosure.
[0063] It should be noted that such a processing circuit 1, although it may be part of a router 2 as explained previously, may also be a circuit remote from the router 2 and exchange information with the router 2 via a wired or wireless communication interface INT connected to a corresponding communication interface of the router 2 (not shown). Also, the processing circuit 1 may be adapted to implement any of the exemplary methods 100 presented by the present disclosure, in a position remote from a current router 2, since the information necessary for the implementation of the exemplary methods 100 can be exchanged between the current router 2 and the processing circuit 1, for example via the communication interface INT.
[0064] With reference to the, an example method 100 for managing routing path advertisement by a current router 2 of a network comprising a plurality of routers 2 is presented. Within the framework of the BGP protocol, the network can thus correspond to the IP network or to a sub-part of the IP network and the current router corresponds to a border router.
[0065] A routing path is associated with a given network destination. Therefore, a network destination may be associated with a plurality of routing paths leading to that destination. A network destination in an IP network may, for example, be identified from an IP address, e.g., from a prefix of an IP address.
[0066] An announcement of a given routing path, by a current router 2, corresponds to a transmission on a network, by the current router 2, of the given routing path. In particular, an announcement of a given routing path by a current router 2 can be made to one or more neighboring routers of the current router 2.
[0067] As illustrated in the, the method 100 comprises an operation 110 of determining one or more durations dx during which a given routing path Rx to a destination of the network is kept in a routing table of a current router. In this case, a duration dx during which a given routing path Rx is kept in the routing table of a router can be determined from an instant when the given routing path Rx is written in the routing table following a first update, and from an instant when this given routing path Rx is overwritten from the routing table by another routing path R, following a second update, the second update being successive to the first update.
[0068] We therefore understand that if a given routing path Rx is written and overwritten in the routing table several times, several durations dx can be determined for the given routing path Rx. Each duration dx will then correspond to a retention time of the given routing path Rx between its writing in the routing table, and its overwriting by another routing path R.
[0069] An update of a given routing path Rx to a destination in a routing table should be understood as overwriting a routing path R previously written in the routing table with the given routing path Rx. It is important to note that since there is a unique association between a routing path R and a given network destination in the routing table of a router 2, a routing path R replacing another routing path R in the routing table necessarily guides to the same destination.
[0070] Thus, when reference is made in the present disclosure to an update of a given routing path Rx in a routing table of a router, it must be understood to mean a writing of the given routing path Rx, in the routing table, in place of a previous routing path R, towards the network destination targeted by the given routing path Rx (and by the previous routing path R).
[0071] In particular, the operations 120 and 130 described below are implemented upon detection of an update, i.e. a write, of the given routing path Rx in the routing table of the current router. It is therefore understood that one or more durations dx determined during the operation 110 are obtained prior to the detection of this update. The update of the routing path Rx in the routing table is identified by the diamond MAJ Rx in the figures referring to the example methods 100.
[0072] In particular, operation 120 comprises an estimation of a stability of the given routing path Rx. This estimation is carried out from one or more durations dx determined during operation 110. This operation therefore involves estimating a stability of the given routing path Rx written following an update from one or more retention durations dx in the routing table of this path Rx.
[0073] It is understood in particular that if the updated given routing path Rx has been kept for a long time in the routing table before being overwritten, it may be a relatively stable path. Conversely, if the given routing path Rx has been kept for a relatively short time in the routing table before being overwritten, it is because a new routing path R has quickly replaced it in the routing table, so that it is likely an unstable path to the extent that another routing path has been considered better by the router.
[0074] As illustrated in the, the method 100 finally comprises an operation 130 for deciding whether or not to transmit an announcement for updating the given routing path Rx. The decision to transmit or not to place the announcement is taken as a function of the operation 120 for estimating the stability of the given routing path Rx. If it is decided to transmit the given routing path Rx during the operation 130, this transmission is intended for at least one router neighboring the current router.
[0075] Thus, the exemplary method 100 can be implemented at a current router of the routing system 10 according to the present disclosure. Rather than periodically announcing all the updates made in its routing table, the method 100 now proposes to decide whether or not to announce an update of a given routing path Rx following its writing in the routing table, depending on whether or not this routing path is stable. It is understood that this method can be used for all the routing paths updated in the routing table of a current router, and that it can be implemented at each router 2 of a routing system 10. Also, the method 100 makes it possible, at a current router, to decide not to announce updated routing paths R when they are considered unstable.Therefore, unstable routing paths are no longer advertised, which reduces the number of advertisement messages transmitted on the network by the current router, and which at the same time reduces the phenomenon of "path exploration" of the neighboring routers of the current router since they receive fewer routing paths. Furthermore, when it is decided to transmit an advertisement message of the given routing path Rx, the advertisement is no longer transmitted with other updated routing paths R at the expiration of a periodic delay after a previous update, it is transmitted once the transmission decision has been taken during operation 130. The stable updated routing paths are therefore transmitted quickly and the neighboring routers of the current router can therefore start to use them quickly, which allows better routing of packets on the network.
[0076] Furthermore, the exemplary method 100 can be deployed on one or more routers operating on the network without substantial modifications to the network protocols already used on these devices. Thus, when the routers are edge routers, the exemplary method 100 can be deployed on edge routers without substantially modifying the external route exchange protocol, for example the BGP protocol, that they already use. The solution of the exemplary method 100 is therefore deployable on a large scale without substantial modifications to the devices, and produces benefits for the entire network, even if it is implemented at a single router in the network.
[0077] In examples, the method 100 may further comprise an operation 140 of transmitting an advertisement of the given routing path Rx, after a decision not to transmit the advertisement of the given routing path Rx, during the operation 130, has been made. In particular, the operation 140 of transmitting the advertisement of the given routing path Rx is performed if a current duration dx c during which the given routing path Rx is kept in the routing table since the update becomes greater than a first threshold S1. These examples are notably illustrated schematically in the method 100 of the.
[0078] It is important to note that the current duration dx cduring which the given routing path Rx is kept in the routing table since the update MAJ is distinguished from one or more determined durations dx during operation 110 since it is the duration of conservation of the given routing path Rx after the update (MAJ Rx in the figures), and not before the update, like one or more determined durations dx. It is thus understood that the current duration dx c during which the given routing path Rx is kept in the routing table since the update may be used later to estimate, during a new iteration of operation 120, whether the given routing path Rx is stable after a new update writing the given routing path Rx again in the routing table. It may therefore be part of one or more durations dx determined during operation 110 on the occasion of a new iteration of method 100.
[0079] So, when the given routing path Rx is written into the routing table of the current router, a timer can be started to measure the current duration dx c during which the given routing path Rx is kept in the routing table before being overwritten following a new update by another routing path R. If it has not been decided to issue an advertisement of this given path Rx at the end of operation 130, it is because the given routing path Rx was initially considered unstable. However, the fact that it is kept in the routing table at least for a current duration dx cgreater than the first threshold S1 shows that this path has a form of stability and that the decision not to issue an advertisement of this path at the end of operation 130 was an error. An advertisement of this given routing path Rx is therefore issued when the current duration during which it has been kept in the table since the update exceeds the first threshold S1 to share with the other routers the fact that this path is stable.
[0080] In examples in which the routers are border routers implementing the BGP protocol, the first threshold S1 may be determined from the constant duration set by the MRAI of the BGP protocol. The first threshold S1 may, for example, correspond to the constant duration set by the MRAI. Thus, when the routing path Rx is written in the routing table, it is transmitted at the latest after a delay corresponding to the delay of the MRAI if a decision not to transmit it had been taken at the end of the operation 130. The first threshold S1 may, for example, correspond to a threshold that changes over time.
[0081] In examples, the method 100 may further comprise an operation 111 of training an intelligent agent AI (which may also be referred to as a “learning agent”) making it possible to determine an announcement probability P of a routing path R. More precisely, the intelligent agent AI is trained to, from an input corresponding to a routing path R, determine as output an announcement probability P associated with the routing path R. The announcement probability P is determined from the stability estimate of the routing path R. In particular, the estimated stability of a routing path may correspond to the announcement probability P determined by the intelligent agent AI for this routing path R.In these examples, the method 100 therefore proposes to ingeniously use a machine learning technique to train an agent to recognize stable routing paths, by determining, from an input corresponding to a routing path, a probability P of announcing this path. Since the stability of the routing paths R changes little over time (a stable path only becoming unstable or obsolete in infrequent conditions compared to the number of routing path updates that a router faces), once the agent has been trained to recognize stable paths from unstable paths, the probability P of announcing a routing path R determined by the agent is extremely reliable. It can therefore be decided, during the operation 130 of the method 100, to announce or not to announce this path on the basis of this probability P with a high level of certainty.In other words, when the AI agent is trained, stable routing paths are advertised quickly and unstable paths are not advertised at all. Therefore, the first threshold S1 can be configured to evolve in a decreasing manner during a period of time belonging to a training period of the AI agent.
[0082] It should be noted that the intelligent agent AI is trained for routing paths R of the current router, and advantageously for each routing path R writes the routing table of the current router, so that it is not trained only for the given routing path Rx written in the routing table following the update. The method 100 according to the present disclosure is described here only for a single update of a routing path in the routing table, i.e. for a single writing of a routing path in the routing table, which routing path is thus designated by "given routing path Rx". This is to describe the solution in the broadest possible way, and it is therefore described for a single routing path R, corresponding to the given routing path Rx.It is understood, however, that the same method 100 can be used for each routing path R updated in the routing table, and that as such, each routing path R, upon detection of an update of these routing paths R, can be treated like the given routing path Rx of the method 100.
[0083] In examples comprising the operation 111 of training the intelligent agent AI, the decision to emit or not emit the advertisement of the given routing path Rx is taken from the advertisement probability Px associated with the given routing path Rx determined by the intelligent agent AI. Thus, in these examples, the method 100 can further comprise an operation 129 of determining an advertisement probability Px of the given routing path Rx from the intelligent agent AI. The given routing path Rx is presented to the intelligent agent AI which therefore determines at output an advertisement probability Px associated with the given routing path. Then, it is decided to emit or not emit the advertisement of the given routing path Rx from the advertisement probability Px of this path determined by the intelligent agent AI. These examples are notably illustrated schematically in the example method 100 of the.
[0084] In examples, it is decided, during operation 130, to transmit the advertisement of the given routing path Rx if the advertisement probability Px of the given routing path Rx, determined by the intelligent agent AI, is greater than a fourth threshold S4. In examples, the fourth threshold S4 may for example correspond to 0.5 so that if the agent estimates that the advertisement probability Px is greater than or equal to the non-advertisement probability of the given routing path Rx, it is decided to transmit the given routing path Rx to the at least one neighboring router of the current router. These examples are in particular illustrated schematically in the example method 100 of the.
[0085] In examples, a training operation 111 of the intelligent agent AI comprises a modification 1110 of the advertisement probability P of a routing path R of the routing table of the current router, from a duration d during which the routing path R is written in the routing table between two successive updates. In other words, the advertisement probability P determined by the intelligent agent for a routing path R provided as input is modified as a function of the duration d during which the routing path R is written and then overwritten from the routing table following two successive updates. Indeed, as explained previously, when a routing path R remains in the routing table for a long time following a first update before being overwritten by a new routing path R following a second update, it can be considered that this path has a certain stability.Conversely, when there is little time left, this path can be considered unstable. However, the intelligent agent AI determines the announcement probability P associated with this routing path upon its entry into the routing table following an update to quickly decide whether or not this path should be announced. Consequently, the decision to issue an announcement or not to announce operation 130 is taken without knowing whether the updated routing path R will remain in the routing table for a long time before being overwritten in favor of a new routing path, so as not to delay the announcement if the path is considered stable. It is therefore once the intelligent agent AI has access to this information that it can know whether the announcement probability P that it determined and on which the decision was based was relevant, or whether it was an error. It can then be trained accordingly.
[0086] Thus, in examples, the operation 1110 of modifying the advertisement probability P of a routing path R may comprise an operation 1111 of increasing the advertisement probability P of the routing path R of the routing table of the current router if the duration d during which the routing path R is written in the routing table between two successive updates is greater than a second threshold S2. The intelligent agent AI is therefore trained to favor the advertisement of a routing path R if it is kept in the routing table, between two successive updates, for at least a certain time. These examples are schematically represented in. The second threshold S2 may for example be set as being equal to the first threshold S1 (S2 = S1).
[0087] In examples, the operation 1110 of modifying the advertisement probability P of a routing path R may comprise an operation 1112 of decreasing the advertisement probability P of the updated routing path R of the routing table of the current router if the duration d during which the routing path R is written in the routing table between two successive updates is less than a third threshold S3. In these examples, the intelligent agent AI is trained to prevent an advertisement of the routing path R if it is kept in the routing table, between two successive updates, below a certain time. These examples are schematically represented in. The third threshold S3 may for example be set as being equal to the first threshold S1 (S3 = S1). The third threshold may be set as being equal to the second threshold (S3 = S2).In this last option, either the retention time of the routing path R in the routing table is less than this threshold, in which case this path is disfavored, or it is greater than this threshold, in which case the path is favored.
[0088] In examples, the intelligent agent AI may comprise at least one neural network and advantageously a plurality of neural networks. In these examples, each neural network of the intelligent agent AI is trained for a respective destination of the network. Therefore, there are ideally as many neural networks as there are destinations of the network in the routing table. Each neural network is therefore trained specifically for a given destination of the network such that when a routing path R is updated in the routing table of the current router, it is the neural network associated with the destination of the updated routing path R which is activated and which will determine the advertisement probability P of this routing path R.These examples help limit errors in announcement and non-announcement decisions since each network is trained specifically for its destination, and is therefore not trained for routing paths corresponding to other destinations.
[0089] In examples, a neural network of the intelligent agent AI may correspond to one of: an artificial neural network (“Artificial Neural Network” or “ANN” in English); a spiking neural network (“SNN” in English); or a recurrent neural network with short-term memory and long-term memory (“Long Short-Term Memory” or “LSTM” in English).
[0090] In examples, a neural network of the intelligent agent AI may comprise, for a given destination, an input layer Ce comprising a plurality of input neurons Ne assigned to respective routing paths R to the given destination. Each input neuron Ne is also associated with a respective weight denoted we on the. In particular, in these examples, the weight we of a given input neuron Ne is determined from one or more durations d during which the routing path R assigned to this neuron Ne is written into the routing table between two successive updates. Thus, the weight we xof the given routing path Rx updated in the method 100 is determined from one or more durations dx determined during the operation 110. Consequently, the weight we associated with the input neuron Ne of a routing path R is representative of the stability of this routing path R. These examples are particularly advantageous insofar as, as soon as a routing path R is associated with a neuron Ne, and therefore with a weight we, it is relatively easy to follow and understand the behavior of the neural network as a function of the routing paths R provided as input. In particular, the person skilled in the art can finely supervise the evolution of the weights associated with the neurons during the training of the intelligent agent AI as a function of the observed stability of the routing paths R provided as input.The person skilled in the art can therefore adapt the learning rules corresponding to the equations governing the operation of the neural network, in particular with regard to the modification of the weights, as closely as possible to the results that he wishes to obtain. The neural network architecture proposed in these examples therefore makes it possible to have a neural network allowing a certain interpretability, unlike neural network architectures which operate in an opaque manner.
[0091] In examples in which a neural network of the intelligent agent AI comprises an input layer Ce, the neural network also comprises an output layer Cs. The output layer Cs determines an announcement probability P of a routing path R provided as input to the neural network based on the weights we associated with the input neurons of the input layer Ce. Such a neural network architecture is schematically represented in.
[0092] In examples, the output layer Cs of a neural network of the intelligent agent AI may include an output neuron Ns to which all the neurons Ne of the input layer are connected, and it is this output neuron Ns that determines the announcement probability P of a routing path R provided as input from the weights we associated with the input neurons Ne. Such a neural network architecture is schematically illustrated in. This architecture is advantageous in that it is not a complex neural architecture. It simply uses two layers, an input layer Ce with a plurality of neurons Ne each associated with a routing path R to the network destination associated with the neural network, and an output layer with a single neuron Ns that determines the announcement probability P of the routing path R presented as input.
[0093] In examples, a weight we associated with a neuron Ne, and therefore with a routing path R, of a neural network of the intelligent agent AI may be initialized to a default value. The default value may be chosen such that when the routing path R is first written to the routing table, a decision is made not to advertise this routing path during operation 130. In other words, the default weight we may be chosen such that the advertisement probability P determined by the neural network for a routing path R first written to the routing table is less than the fourth threshold S4, such that a decision is made not to advertise it on the network during operation 130.This allows caution with regard to routing paths that are still unknown to the neural network, i.e., routing paths R whose stability has not yet been tested, since this is the first time they are written into the routing table.
[0094] In examples in which the intelligent agent AI comprises a neural network according to any one of the architectures schematically illustrated in figures 10 or 11; the operation 1010 of modifying the advertisement probability P of a routing path R of the routing table of the current router from a duration d during which the routing path R is written in the routing table between two successive updates may correspond to modifying the weight we of the input neuron Ne associated with the routing path R. In other words, in these examples, the weight we of the input neuron Ne associated with the routing path R may be modified from the duration d during which the routing path R is written in the routing table between two successive updates.
[0095] Thus, in examples, the operation 1011 of increasing the announcement probability P of a routing path R if the duration d is greater than the second threshold S2 may correspond to increasing the weight we of the input neuron Ne assigned to this routing path R. Furthermore, in other examples, the operation 1012 of decreasing the announcement probability P of a routing path R if the duration d is less than the third threshold S3 may correspond to decreasing the weight we of the input neuron Ne assigned to this routing path R.
[0096] In examples, a modification of a weight we of an input neuron Ne associated with a routing path R following an operation 1010 of modification of this weight can be attenuated by an attenuation coefficient when this modification of the weight we has taken place beyond a predetermined threshold duration. Thus, a timer can be triggered when the weight we of an input neuron Ne is modified at a given instant, then, when the timer exceeds the threshold duration, the attenuation coefficient can be applied to the modification of the weight we made at the given instant to attenuate its effect on the calculation of the current weight we. The attenuation coefficient can for example be scalable so that the modification made to the weight we of the neuron tends towards a determined percentage, for example a percentage between 0 and 20%, as time elapses. This makes it possible to limit the impact of past modifications, compared to present modifications, in the calculation of the weight we.
[0097] In examples wherein the intelligent agent AI of a current router comprises:- a plurality of neural networks according to any one of the architectures schematically illustrated in figures 10 or 11; and- for which each of the neural networks is trained for a respective destination of the routing table of the current router;the plurality of neural networks may comprise at least one SNN spiking neural network. In this case, each of the neural networks of the plurality of neural networks of the intelligent agent AI may correspond to an SNN spiking neural network.The use of SNN spiking neural networks in the solution of the present disclosure is extremely advantageous insofar as they are intrinsically energy-efficient neural networks. Indeed, these networks operate by presenting binary signals to the input neurons Ne of the input layer Ce of the network.The binary signals are then multiplied by a weight matrix composed of the weights we associated with these input neurons Ne between the input layer Ce and the output layer Cs. Consequently, the mathematical operations allowing the operation of these networks are simple, which means that they are inexpensive in terms of computing resources. It is recalled here that the intelligent agent AI must require as few computing resources as possible since, if it is implemented by the computing circuit 11 of the router 2, the resources necessary to perform the calculations are not used to perform packet routing. However, the solution presents, in certain examples, the fact of having a neural network for each destination of the network present in the routing table of the current router, and therefore as many neural networks as there are destinations.Each neural network must therefore be as energy-efficient as possible to save computing resources, and in particular computing resources of the PROC computing circuit of the router, when the method 100 is implemented in whole or in part at the level of the processing circuit 1 of the router.
[0098] In examples in which the updated given routing path Rx corresponds to a routing path to a network destination associated with a spiking neural network SNN, this spiking neural network SNN is therefore activated and can make it possible to determine the advertisement probability Px of the given routing path Rx. In particular, to determine the advertisement probability Px of the given routing path Rx using a spiking neural network SNN, the method 100 can further comprise, prior to the operation 130 of deciding whether or not to issue the advertisement of the given routing path Rx, the implementation of the operations 127, 128, and 129, schematically illustrated in the.
[0099] Operation 127 can thus comprise a presentation of the given routing path Rx to a neuron Ne xof the input layer Ce of a spiking neural network SNN associated with the destination of the given routing path Rx for a given presentation duration. The neuron Ne x of the input layer Ce to which the given routing path Rx is presented corresponds: either to the input neuron Ne x assigned to this given routing path Rx, when the given routing path Rx has already been presented to the neural network, or to an input neuron Ne of the neural network to which no other routing path R is assigned, when this is the first time that the given routing path Rx is presented to the neural network. In which case, this input neuron Ne is now assigned to the given routing path Rx and is denoted Ne x sur la.
[0100] During this determined presentation duration, a plurality of impulses, noted Imp e on the, are emitted to the input neuron Ne xto which the routing path Rx is assigned. What is meant by the presentation of a routing path R to an input neuron Ne of the neural network is therefore a sending, during a determined presentation duration, of a plurality of impulses Imp e to the input neuron Ne. As detailed below, the announcement probability Px of the given routing path Rx will be determined based on the number of pulses transmitted from the input neuron Ne x to the output layer Cs of the neural network. These transmitted impulses are denoted Imp s on the.
[0101] Thus, to send, during the determined presentation duration, the plurality of pulses Imp e to the input neuron Ne x , the routing path Rx can be binary encoded. In particular, when the given binary encoded routing path Rx is passed to the input neuron Ne x, a 1 bit can correspond to a pulse while a 0 bit can correspond to an absence of a pulse, or vice versa. A possible encoding for a routing path R transmitted to its associated input neuron Ne of the spiking neural network SNN can correspond to a 1-out-of-n encoding (known as "one-hot encoding").
[0102] Operation 128 can thus include a determination of the number of transmitted pulses Imp s , among the plurality of impulses Imp e emitted, from the neuron Ne x from the input layer Ce to the output layer Cs. In particular, in the example of the operating architecture of the spiking neural network SNN represented in, the output layer Cs comprises a single output neuron Ns. Also, in this example, it is a question of determining the number of transmitted pulses, Imp s , among the plurality of impulses Imp e emitted, from the neuron Ne xfrom the input layer Ce to the output neuron Ns.
[0103] The number of transmitted pulses Imp s , of the input neuron Ne x from the input layer Ce to the output layer Cs, upon presentation of the given routing path Rx to this input neuron Ne x , is particularly dependent on the weight we x associated with this neuron Ne x . More broadly, a number of transmitted pulses Imp s , from an input neuron Ne of the input layer Ce of the neural network to the output layer Cs, upon presentation of a routing path R to this input neuron Ne ,is dependent on the weight we associated with this neuron Ne. Furthermore, it was previously explained that the weight we associated with an input neuron Ne of a neural network (and not specifically of a spiking neural network SNN) can be determined from one or more durations d of conservation of the routing path R assigned to this input neuron Ne in the routing table. Thus, a number of transmitted impulses Imp s , from an input neuron Ne of the input layer Ce to the output layer Cs, upon presentation of a routing path R to this input neuron Ne , is dependent on one or more retention times d of the routing path R assigned to this input neuron in the routing table. In the case of the given routing path Rx, we understand that the weight we x associated with neuron Ne xof the input layer Ce of the SNN spiking neural network is therefore determined from one or more durations dx determined during operation 110.
[0104] Operation 129 may finally comprise determining the advertisement probability Px of the given routing path Rx from the determined number of transmitted pulses Imp s to the output layer Cs. In particular, the announcement probability P of a routing path R encoded at the input of the input neuron Ne to which it is associated in a spiking neural network SNN can correspond to the ratio between the determined number of transmitted pulses Imp s and the number of pulses Imp e emitted during the determined duration. In other words, if N pulses Imp ewere emitted during the determined presentation duration of an encoded routing path R to its input neuron Ne, and K impulses were transmitted to the output layer Cs of the neural network, the announcement probability P of the routing path R determined by the spiking neural network may correspond to K divided by N.
[0105] The determined presentation duration during which a routing path P is presented to the input neuron Ne to which it is assigned can be chosen as a compromise between a number of emitted impulses Imp e large enough and a duration small enough to determine the announcement probability P quickly and make the decision to announce or not to announce the routing path R quickly.
[0106] This is indeed an example of a possible implementation for determining an announcement probability P of an encoded routing path R provided as input to an input neuron Ne of a spiking neural network SNN. However, other variants are possible.
[0107] Examples of possible operating equations for a neural network for learning stable and unstable paths are presented below. These equations can be implemented in a spiking neural network (SNN) with any of the architectures illustrated in Figures 10 and 11. Other equations could obviously be implemented to pursue the same objective. Neuron Equations
[0108] Below are the equations of the neurons of an AI intelligent agent neural network.
[0109] with which corresponds to the emission of a pulse at time t; which corresponds to the membrane potential at time t; which corresponds to the trigger threshold of the pulse; and which is a function whose output is equal to 1 if x is greater than or equal to , and which is equal to 0 otherwise. It is therefore a pulse trigger function.
[0110] with which corresponds to the membrane potential at time t + 1; which corresponds to the synaptic current at time t; and which corresponds to a first decrease parameter.
[0111] with which corresponds to the synaptic current at time t +1; which corresponds to a second decrease parameter; which corresponds to a parameter of increase in synaptic current; which corresponds to the synaptic weight between i and j at time t; and which corresponds to the impulse of a neuron j at time t. Learning method
[0112] Below are the equations used to train the neural network of the intelligent AI agent.
[0113] with which corresponds to the synaptic weight at time t +1; which corresponds to a third decrease parameter; which corresponds to the trace of the presynaptic neurons. The presynaptic neurons correspond to the input neurons Ne of the input layer Ce of a neural network. which corresponds to the learning coefficient; and which corresponds to the error at time t. The error can for example be bounded in an interval between -1 and 1.
[0114] Furthermore, at the level of a pre-synaptic neuron, the trace behaves as follows: with which corresponds to the trace of a pre-synaptic neuron at time t+1; and which corresponds to a fourth decrease parameter.
[0115] Furthermore, the inventors propose an example of parameterization for the parameters of the examples of equations described above: which corresponds to the presentation time of a routing path R to an input neuron (pre-synaptic neuron) of the neural network, is equal to 10ms; is equal to 13; is equal to 0; β is equal to ; is equal to 10; is equal to 1; and is equal to Or corresponds to the value of the second threshold S2 and the third threshold S3 when these two thresholds are equal. allows here to limit the memory of previous impulses in the calculation of the synaptic trace of pre-synaptic neurons. With this value of , about 90% of the synaptic trace will have disappeared after seconds. Reference will be made to this in the pseudo-code detailed below.
[0116] In examples, the method 100 may further comprise an additional condition for deciding whether or not to transmit the announcement during the operation 130. In particular, it is decided to transmit the announcement of the given routing path Rx if it is a routing path Rx different from that previously transmitted for the same destination of the network. In other words, if the updated routing path R for a given destination corresponds to the routing path R previously announced for this destination, it is not necessary to transmit a new announcement of this routing path R. This makes it possible not to announce the same routing path R a second time if it is the path previously transmitted for this same destination. These examples therefore make it possible to avoid transmitting an unnecessary announcement on the network, which reduces its congestion. They are notably illustrated with reference to the.
[0117] An example of pseudo-code is introduced below for implementing an example method 100 according to the present disclosure. Declaring Variables and Objects
[0118] The ROUTER variable corresponds to a router in the network. This is the current router in process 100.
[0119] The DESTINATION variable corresponds to a network destination.
[0120] The CUR_INSTALLED_ROUTE variable corresponds to the routing path currently installed in the ROUTER's routing table for the DESTINATION.
[0121] The CUR_ANNOUNCED_ROUTE variable corresponds to the routing path currently advertised to at least one ROUTER neighbor for the DESTINATION.
[0122] The CUR_ROUTE_TIMER variable is a timer that measures how long CUR_INSTALLED_ROUTE is kept in the ROUTER's routing table between being written after an update and being overwritten after another update. CUR_ROUTE_TIMER measures the current retention time of c of an updated routing path R in the routing table of the current router.
[0123] The variable CUR_ROUTE_DURATION corresponds to the retention period of CUR_INSTALLED_ROUTE (i.e. the value at each instant of CUR_ROUTE_TIMER).
[0124] The OLD_INSTALLED_ROUTE variable corresponds to the routing path previously installed in the ROUTER's routing table for the DESTINATION.
[0125] The CUR_ROUTE_DURATION variable corresponds to the duration of retention of OLD_INSTALLED_ROUTE between its writing in the routing table following an update, and its overwriting by writing CUR_INSTALLED_ROUTE.
[0126] The variable corresponds to the duration in seconds that conditions a compromise between the number of advertisements and the duration during which the at least one neighbor of the ROUTER is not aware of CUR_INSTALLED_ROUTE of the ROUTER for the DESTINATION. may in particular correspond to the second threshold S2 and the third threshold S3 when these thresholds are equal.
[0127] The variable P corresponds to a probability of announcing CUR_INSTALLED_ROUTE.
[0128] The AGENT object corresponds to the intelligent agent AI, or the learning agent, which determines the probability P. Initializing variables
[0129] OLD_INSTALLED_ROUTE = NULL ;
[0130] OLD_ROUTE_DURATION = 0 ;
[0131] CUR_INSTALLED_ROUTE = NULL ;
[0132] CUR_ANNOUNCED_ROUTE = NULL ;
[0133] CUR_ROUTE_TIMER = 0 ;
[0134] CUR_ROUTE_DURATION = 0 ;
[0135] = 30 ; is set to the value of the MRAI here. Algorithm
[0136] – WHILE (TRUE)1.1 – If ROUTER receives an update for DESTINATION causing a ROUTE to be installed in its routing table, then:
[0137] 1.1.1 - OLD_INSTALLED_ROUTE = CUR_INSTALLED_ROUTE
[0138] 1.1.2 - OLD_INSTALLED_DURATION = CUR_ROUTE_DURATION
[0139] 1.1.3 - CUR_INSTALLED_ROUTE = ROUTE
[0140] 1.1.4 - CUR_ROUTE_TIMER = 0
[0141] 1.1.5 - AGENT's P prediction regarding the announcement of CUR_INSTALLED_ROUTE to at least one ROUTER neighbor
[0142] 1.1.6 - If P > 0.5 and CUR_INSTALLED_ROUTE != CUR_ANNOUNCED_ROUTE, then:
[0143] 1.1.6.1- ROUTER advertises CUR_INSTALLED_ROUTE to at least one neighbor of ROUTER
[0144] 1.1.6.2- CUR_ANNOUNCED_ROUTE = CUR_INSTALLED_ROUTE
[0145] 1.1.7 - If OLD_ROUTE_DURATION < , SO :
[0146] 1.1.7.1- AGENT is trained to take into account that OLD_INSTALLED_ROUTE should not be advertised
[0147] 1.2 – If CUR_ROUTE_DURATION = , SO :
[0148] 1.2.1- AGENT is trained to take into account that CURRENT_INSTALLED_ROUTE should be advertised
[0149] 1.2.2- If CUR_INSTALLED_ROUTE != CUR_ANNOUNCED_ROUTE, then:
[0150] 1.2.2.1- ROUTER advertises CUR_INSTALLED_ROUTE to at least one neighbor of ROUTER
[0151] 1.2.2.2- CUR_ANNOUNCED_ROUTE = CUR_INSTALLED_ROUTE
[0152] The pseudo-code example presented above makes it possible to train an intelligent agent AI to announce or not announce a routing path R depending on the duration during which this routing path is kept in the routing table. In particular, if the updated routing path is kept in the routing table for a duration less than , the AI intelligent agent is trained not to advertise this routing path. Conversely, if the routing path is kept longer than the duration in the routing table before being overwritten by a new routing path, the intelligent agent AI is trained to announce it. This is therefore a mode of operation of the method 100 in which the second threshold S2 is equal to the third threshold S3.
[0153] Furthermore, the announcement of the updated routing path is only performed when it is not the previously announced routing path, as in the exemplary method 100 presented in.
[0154] The decision to announce the routing path is also taken when the announcement probability P determined by the intelligent agent AI is greater than the fourth threshold S4, set at 0.5.
[0155] A comparative test was also carried out by the inventors to evaluate the operation of the solution of the method 100, in particular the AI intelligent agents used. This test is represented in. This comparative test highlights two indicators, the number of announcements issued over a fixed time interval, and the average time before issuing an announcement when this announcement is received.
[0156] This comparative test is applied to a border router implementing a BGP protocol. It is thus compared to the classic MRAI operation, which was detailed previously, a so-called “Naive MRAI” operation, an example of the method 100 in which the intelligent AI agent is made up of short-term memory recurrent neural networks (LSTM), an example of the method 100 in which the intelligent AI agent is made up of artificial neural networks (ANN), and an example of the method 100 in which the intelligent AI agent is made up of spiking neural networks (SNN).
[0157] The so-called "Naive MRAI" operation simply waits 30 seconds before transmitting an updated routing path. The difference with classic MRAI is that the update of each routing path triggers a 30-second time window before the routing path announcement is transmitted. In other words, in "Naive MRAI", each updated routing path is announced 30 seconds after its update. In contrast, in classic MRAI, all the paths updated within a 30-second period are announced during the same transmission.
[0158] We understand from this comparative test that: the MRAI emits the announcements relatively quickly, but emits a lot of announcements; the “Naive MRAI” emits the announcements very slowly, but emits very few; the LSTM emits the announcements relatively slowly, but emits few; the ANN emits the announcements very quickly, and emits barely more than the “Naive MRAI”; and the SNN has the same performance as the ANN, but requires fewer computing resources than the ANN.
[0159] An AI intelligent agent consisting of SNN-type neural networks therefore constitutes the most effective AI intelligent agent for implementing a method 100 according to the present disclosure.
[0160] The present disclosure also presents a computer program product comprising instructions for implementing any of the methods 100 described when this program is executed by a processor.
[0161] Furthermore, the application relates to a non-transitory recording medium readable by a computer on which is recorded a program for implementing any of the methods presented by the present disclosure when this program is executed by a processor.
[0162] Thus, the solution presented by the present disclosure makes it possible to reduce the number of advertisements of updated paths in the routing table of a router, while quickly sending an advertisement of an updated path when this updated path is considered stable. Network congestion is therefore reduced, and the updated stable paths are shared quickly, so that packet routing is improved. The solution can be implemented on a single router or on all the routers in the network, so that it can be deployed gradually, without being incompatible with the operation of other routers in the network that would not implement this solution. It therefore does not require modifying the configuration of all the routers in the network to operate, and allows them to continue to use the protocol for which they were deployed, in particular the BGP protocol.
[0163] Furthermore, in examples, an AI intelligent agent can be trained to determine, as finely as possible, which routing paths are stable, and which are unstable. Also, the decision to issue or not issue an advertisement, once the network is trained, is made with a high degree of confidence in whether the paths are stable or unstable.
[0164] Furthermore, when the intelligent agent AI comprises at least one SNN spiking neural network, the intrinsic operation of the network consumes very little computing resources, since it simply multiplies binary signals to a weight matrix. Also, the identification of stable and unstable paths carried out by this type of network, when implemented at the level of the computing circuit 11 of a router, makes it possible to save computing resources which can be devoted to routing packets.
[0165] In summary, the solution described in this disclosure reduces network congestion, reduces the phenomenon of "path exploration" since it reduces the number of advertisements transmitted between routers, consumes few computing resources, can be implemented locally or across the entire network, and does not require changing the configuration of the routers to another protocol.
Claims
Method for managing routing path announcement by a current router of a network comprising a plurality of routers, the method comprising: - determining (110) one or more durations (dx) during which a given routing path (Rx) towards a destination of the network is kept in a routing table of a current router; then upon detection of an update of the given routing path (Rx) in the routing table of the current router: - estimating (120) a stability of the given routing path (Rx), from the determination (110) of the one or more durations (dx); and - deciding (130) to transmit or not to transmit an announcement of the given routing path (Rx) to at least one neighboring router of the current router as a function of the estimation (120) of stability of the given routing path (Rx). The method of claim 1, wherein the announcement of the given routing path (Rx) is issued (140), after a decision (130) not to issue the announcement of the given routing path (Rx) has been taken, if a current duration (dx c ) during which the given routing path (Rx) is kept in the routing table since the update becomes greater than a first threshold (S1). Method according to any one of the preceding claims, in which the method comprises training (111) an intelligent agent (AI) to, from an input corresponding to a routing path (R), determine as output an announcement probability (P) associated with the routing path (R), the announcement probability (P) being determined from the stability estimate of the routing path (R), and in which the decision (130) to issue or not to issue the announcement of the given routing path (Rx) is taken from the announcement probability (Px) associated with the given routing path (Rx) determined (129) by the intelligent agent. Method according to claim 3, in which a training (111) of the intelligent agent (AI) comprises a modification (1110) of a probability of announcement (P) of a routing path (R) of the routing table of the current router, from a duration (d) during which the routing path (R) is written in the routing table between two successive updates. Method according to the preceding claim, in which a modification (1110) of the announcement probability (P) of a routing path (R) comprises an increase (1111) of the announcement probability (P) of the routing path (R) of the routing table of the current router if the duration (d) during which the routing path (R) is written in the routing table between two successive updates is greater than a second threshold (S2). Method according to any one of claims 4 or 5, wherein a modification (1110) of the advertisement probability (P) of a routing path (R) comprises a reduction (1112) of the advertisement probability (P) of the updated routing path (R) of the routing table of the current router if the duration (d) during which the routing path (R) is written in the routing table between two successive updates is less than a third threshold (S3). A method according to any one of claims 3 to 6, wherein the intelligent agent (AI) comprises a plurality of neural networks, each trained for a respective destination of the network. Method according to the preceding claim, in which a neural network comprises, for a given destination: an input layer (Ce) comprising a plurality of neurons (Ne) assigned to respective routing paths (R) towards the given destination and respectively associated with a weight (we); and an output layer (Cs), which determines an announcement probability (P) as a function of the weights (we) associated with the neurons of the input layer; and in which a weight (we) of a given neuron (Ne) is determined from one or more durations (d) during which the routing path (R) assigned to this neuron is written in the routing table between two successive updates. Method according to the preceding claim, in which modifying (1010) the announcement probability (P) of a routing path (R) of the routing table of the current router from a duration (d) during which the routing path (R) is written in the routing table between two successive updates, corresponds to modifying the weight (we) of the input neuron (Ne) associated with the routing path (R). A method according to any one of claims 7 to 9, wherein the neural networks trained for respective destinations of the routing table are spiking neural networks (SNN), and a spiking neural network (SNN) is activated when the given routing path (Rx) targets the destination associated with that network, and wherein, prior to the decision (130) to issue or not to issue the advertisement of the given routing path (Rx), the method comprises:a presentation (127) of the given routing path (Rx) to an input neuron (Ne x) of the input layer (Ce) of the spiking neural network (SNN) associated with the destination of the given routing path (Rx), for a determined presentation duration during which a plurality of pulses (Imp e ) are emitted; a determination (128) of a number of transmitted pulses (Imp s ), among the plurality of impulses (Imp e ) emitted, from the input neuron (Ne x ) from the input layer (Ce) to the output layer (Cs), the number of transmitted pulses (Imp s ) being dependent on the weight (we x ) associated with the input neuron (Ne x ), which weight (we x ) being in particular determined from the determination (110) of one or more durations (dx); and a determination (129) of the probability of announcement (Px) of the given routing path (Rx) from the determined number of transmitted pulses (Imp s ) to the output layer (Cs). Method according to any one of claims 3 to 10, in which it is decided (130) to emit the advertisement of the given routing path (Rx) if the advertisement probability (Px) of the given routing path (Rx) is greater than a fourth threshold (S4). Method according to any one of the preceding claims, wherein the plurality of routers corresponds to a plurality of border routers (2) associated with a respective autonomous system (SA); and wherein the method (100) is implemented within the framework of a BGP (Border Gateway Protocol), such that the decision (130) to issue or not issue an advertisement of the given routing path (Rx) to at least one neighboring router of the current router corresponds to a decision to issue or not issue an advertisement of the given routing path (Rx) to at least one border router associated with an autonomous system (SA) neighboring the autonomous system (SA) associated with the current border router. Computer program product comprising instructions for implementing any one of the methods according to claims 1 to 12 when this program is executed by a processor. Device (1) comprising a processing circuit (PROC) for implementing the method according to any one of claims 1 to 12. Router (2) comprising a device (1) according to the preceding claim.