Computer program product, method and device for managing a network

By assessing the stability of routing paths based on their retention time in the routing table and using this information to selectively announce updates, the method addresses the inefficiencies in existing routing protocols, reducing network congestion and improving path sharing.

FR3157753A1Inactive Publication Date: 2025-06-27ORANGE SA
View PDF 0 Cites 0 Cited by

Patent Information

Application Number
FR2023014935
Authority / Receiving Office
FR · FR
Patent Type
Applications
Current Assignee / Owner
Filing Date
2023-12-21
Publication Date
2025-06-27
Estimated Expiration
Not applicable · inactive patent

AI Technical Summary

Technical Problem

Existing routing protocols, such as BGP, face challenges in efficiently managing routing path announcements, leading to network congestion and increased computational load on routers due to periodic transmission of update messages, regardless of path stability.

Method used

A method that determines the stability of a routing path based on its retention time in the routing table and uses this stability estimate to decide whether to issue an announcement to neighboring routers, potentially utilizing an intelligent agent trained on neural networks to refine this decision.

Benefits of technology

This approach reduces the number of unnecessary routing path announcements, decreases network congestion, and improves packet routing by quickly sharing stable paths, all while being deployable without significant modifications to existing network protocols.

✦ Generated by Eureka AI based on patent content.

Smart Images

  • Figure 00000000_0000_ABST
    Figure 00000000_0000_ABST
Patent Text Reader

Abstract

Examples present a method for managing routing path advertisement 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) whether or not to transmit an advertisement of the given routing path (Rx) to at least one neighboring router of the current router according to the estimation (120) of stability of the given routing path. Abstract figure: [Fig. 4].
Need to check novelty before this filing date? Find Prior Art

Description

Title of the invention: Computer program product, method and device for managing a network Technical field

[0001] The present disclosure relates to the field of communications routing, in particular communications according to the Internet protocol. Prior art

[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 the 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 according to the Internet protocol are sent from a first device to a second device on the IP network using an address (generally designated by IP address) of the second device on the IP network. The data packets thus pass from the first device to the second device via successive routers which direct them so as to reach the second device. This routing can sometimes pose certain difficulties.

[0004] The present disclosure improves this situation. Summary

[0005] In this regard, a method is proposed for managing the announcement of a routing path by a current router of a network comprising a plurality of routers comprising: - determining one or more durations during which a given routing path towards a destination of the network is kept in a routing table of a current router; then on detection of an update of the given routing path in the routing table of the current router: - estimate a stability of the given routing path, from the determination of one or more durations; and - decide whether or not to issue an advertisement of the given routing path to at least one neighboring router of the current router based on the stability estimate 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 made, 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 comprise a modification of a probability of announcing a routing path of the routing table of the current router, from 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 announcing a routing path may comprise an increase in the probability of announcing 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 announcing a routing path may comprise a reduction in the probability of announcing 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 as a function of 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 of the routing table of the current router from 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 table of routing associated with the given routing path is pulsed. The pulsed neural network is activated when the given routing path targets the destination associated with that network. In this option, prior to the decision to issue or not to issue the advertisement of the given routing path, the method may 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 spiking neural network associated with the destination of the given routing path, for a determined presentation duration during which a plurality of pulses are emitted. A second complementary operation corresponds to a determination of a number of pulses transmitted, among the plurality of pulses emitted, from the input neuron of the input layer to the output layer. The number of pulses transmitted is dependent 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 periods 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 pulses transmitted, 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 a border 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 announcements of updated paths in the routing table of a router, while quickly sending an announcement 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 intelligent AI agent which can be trained to determine, as finely as possible, which are the stable routing paths, and which are the unstable routing paths. The decision to issue or not issue an advertisement, once the network is trained, is therefore taken 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 comprises at least one SNN pulse neural network, the intrinsic operation of this network consumes very little computing resources, since it simply multiplies binary signals to a weight matrix. Consequently, the identification of stable and unstable paths carried out by this network consumes little computing resources. Brief description of the drawings

[0023] Other characteristics, details and advantages will appear on reading the detailed description below, and on analyzing the attached drawings, in which:

[0024] [Fig-1] schematically represents an example of a routing system.

[0025] [Fig.2] schematically represents an example of a router.

[0026] [Fig.3] schematically represents an example of a processing circuit.

[0027] [Fig.4] schematically represents an example of an announcement management method of routing path.

[0028] [Fig.5] schematically represents another example of a management method routing path advertisement.

[0029] [Fig.6] schematically represents yet another example of a management method routing path advertisement.

[0030] [Fig.7] schematically represents yet another example of a management method routing path advertisement.

[0031] [Fig.8] schematically represents an example of training an intelligent agent.

[0032] [Fig.9] schematically represents another example of training an intelligent agent.

[0033] [Fig. 10] schematically represents an architecture of a neural network of an intelligent agent.

[0034] [Fig. 11] schematically represents another architecture of a neural network of an intelligent agent.

[0035] [Fig. 12] schematically represents yet another example of a method for managing routing path advertisement.

[0036] [Fig. 13] schematically represents the operation of a pulse neural network.

[0037] [Fig. 14] schematically represents yet another example of a method for managing routing path advertisement.

[0038] [Fig. 15] schematically represents a comparative test of the operation of different methods for transmitting announcements of routing paths in terms of the number of announcements transmitted in a given time, and the average time before the transmission of an announcement after writing the paths in the routing table. Description of the embodiments

[0039] The inventors have noticed that routing data packets over an IP network from a first device to a second device can be complicated, particularly when the first device and the second device belong to a different autonomous network (generally referred to as autonomous systems or "autonomous Systems" AS in English). Autonomous systems designate sub-parts of the IP network which may have a routing protocol of their own.

[0040] The autonomous systems are interconnected and exchange in particular routing information 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 standards RFC 4271 and RFC 2545.

[0041] The BGP protocol is implemented by routers, hereinafter called 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 making it possible to send a data packet 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 date of filing of the application. of patent. In particular, for a given network destination, an edge router determines, among the routing paths to this network destination received from the edge routers adjacent to it, a preferential path, which it then announces to its own neighbors. The preferential 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 preferential routing paths to a network destination based on the routing paths to that destination that 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 under the English term "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 the routing table of a border router are transmitted to neighboring border routers each time a constant time interval corresponding to 30 seconds has elapsed. This constant time interval is referred to in the BGP protocol by the English term "Minimum Route Advertisement Interval" or by the abbreviation "MRAI". This thus makes it possible to limit the number of advertisement messages on the network of border routers, which reduces network congestion, and which also limits the time that a given border router spends determining a new path to a given destination each time it receives, from one of its neighbors, a new path to this destination.

[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 there is an actual need to transmit an advertisement message of the updated routing paths at the end of the time interval. Consequently, 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 also does not allow the number of advertisement messages to be effectively limited.Indeed, the inventors have noticed that an advertisement message comprising updated routing paths is periodically transmitted by each border router, even for 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 preferential 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 the 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 able to be used. Its deployment is therefore complex and represents a significant cost.

[0049] Another solution found by the inventors consists of proposing a heuristic approach which gradually removes obsolete or unstable paths in the routing table of the routers so that fewer update messages are sent. on the network. However, this approach is not satisfactory since it does not act on the announcement messages corresponding to paths that are not obsolete or unstable, and which are still announced 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 transmission of two successive announcement messages from a router. In other words, this solution proposes to dynamically modify the value of the MRAI 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 routing table of the routers. 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 which at least partially resolves the drawbacks of the solutions previously found by the inventors. More specifically, the present disclosure proposes a solution which makes it possible to reduce the number of messages announcing updated paths in the routing table sent by a router, while quickly sending an announcement message of 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 the stable paths are quickly shared between the 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 the level of a single router in the network. Indeed, this single router will reduce the number of announcement messages that it sends to the network (and therefore the phenomenon of "path exploration" among its neighbors) and will send announcements more quickly concerning the paths that it considers to be 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 presenting a periodic transmission of announcement messages of updated paths of the routing tables, the overall operation, in terms of bandwidth, speed of sending relevant announcement messages on the network, and availability of . 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 towards a network destination between two updates of the routing path towards 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 example method 100 according to the present disclosure can be implemented. An illustration of an example routing system 10 is notably presented in [Fig.l].

[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 shown in [Fig.l], the system 10 may correspond to a routing system 10 implementing an external gateway protocol, in particular a BGP protocol. In these examples, the routers 2 therefore correspond to border routers. For example, elsewhere, in these examples, a border router 2 can thus be associated with an autonomous system SA. In the example of [Fig.l], three autonomous systems SA are represented, referenced from SAi 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 single 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 comprise a processing circuit 1 configured to implement any of the example methods 100 described in the present disclosure. These examples are notably represented in [Fig.2],

[0059] In examples, a processing circuit 1 may comprise a calculation circuit PROC and a memory MEM. These examples are notably represented in [Fig.3].

[0060] A PROC calculation 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, lead the processing circuit 1 to implement any one of the examples of 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. processing 1, for example via the INT communication interface.

[0064] With reference to [Fig.4], an example of a method 100 for managing routing path announcement by a current router 2 of a network comprising a plurality of routers 2 is presented. In the context 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, for example 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 [Fig.4], 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] It is therefore understood 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 including a write 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 probably an unstable path to the extent that another routing path has been considered better by the router.

[0074] As illustrated in [Fig.4], the method 100 finally comprises an operation 130 for deciding whether or not to issue an announcement for updating the given routing path Rx. The decision to issue or not to issue 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 issue the given routing path Rx during the operation 130, this issue 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 routing paths. R updated 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. In addition, when it is decided to transmit an advertisement message of the given routing path Rx, the advertisement is no longer transmitted with other routing paths R updated 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 for 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 taken. In particular, the operation 140 of transmitting the advertisement of the given routing path Rx is performed if a current duration dxc during which the given routing path Rx is kept in the routing table since the update becomes greater than a first threshold SL. These examples are notably illustrated schematically in the method 100 of [Fig.5].

[0078] It is important to note that the current duration dxc during which the given routing path Rx is kept in the routing table since the update MAJ is distinguished from the one or more durations determined dx during the 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 the one or more durations determined dx. It is thus understood that the current duration dxc during which the given routing path Rx is kept in the routing table since the update can be used later to estimate, during a new iteration of the operation 120, whether the given routing path Rx is stable after a new update. day writing again the given routing path Rx in the routing table. It may therefore be part of one or more durations dx determined during operation 110 during a new iteration of method 100.

[0079] Thus, 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 dxc 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 was not 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 dxc greater than the first threshold SI 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 is kept in the table since the update exceeds the first SI threshold 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 B GP protocol, the first threshold SI may be determined from the constant duration set by the MRAI of the BGP protocol. The first threshold SI may, for example, correspond to the constant duration set by the MRAI. Thus, when the Rx routing path 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 SI 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. To the extent that the stability of the routing paths R evolves little over time (a stable path does not . becoming unstable or obsolete only under infrequent conditions compared to the number of routing path updates 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 operation 130 of 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 intelligent agent AI is trained, stable routing paths are announced quickly and unstable paths are not announced at all. Consequently, the first threshold SI can be configured to evolve in a decreasing manner during a period of time belonging to a training period of the intelligent agent AI.

[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 announcement of the given routing path Rx is taken from the announcement 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 announcement 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 announcement probability Px associated with the given routing path. Then, it is decided to emit or not emit the announcement of the given routing path Rx from the announcement probability Px of this path determined by the intelligent agent AL. These examples are notably illustrated schematically in the example method 100 of [Fig.6].

[0084] In examples, it is decided, during operation 130, to issue the announcement 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 notably illustrated schematically in the method example 100 of [Fig.7].

[0085] In examples, a training operation 111 of the intelligent agent AI comprises a modification 1110 of 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. In other words, the announcement 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 then overwritten from the routing table following two successive updates. Indeed, as explained previously, when a routing path R remains for a long time in the routing table 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 the 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 announcement probability P of a routing path R may comprise an operation 1111 of increasing 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. The intelligent agent AI is therefore trained to favor the announcement 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 re presented in [Fig.8]. The second threshold S2 can for example be set as being equal to the first threshold SI (S2 = SI).

[0087] In examples, the operation 1110 of modifying the announcement probability P of a routing path R may comprise an operation 1112 of decreasing the announcement 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 announcement 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 [Fig.9]. The third threshold S3 may for example be set as being equal to the first threshold SI (S3 = SI). 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. Consequently, 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 so 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); - to a spiking neural network (SNN); or - to 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 in [Fig. 10]. 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 in the routing table between two successive updates. Thus, the weight wex of 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 close 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 as a function of the weights we associated with the input neurons of the input layer Ce. Such a neural network architecture is schematically represented in [Fig. 10].

[0092] In examples, the output layer Cs of a neural network of the intelligent agent AI may comprise an output neuron Ns to which all the neurons Ne of the input layer are connected, and it is this output neuron Ns which 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 [Fig. 11]. 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 so that when the routing path R is written for the first time in 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 so that the advertisement probability P determined by the neural network for a routing path R written for the first time in the routing table is lower than the fourth threshold S4, so 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 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 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 time given, 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 passes. This makes it possible to limit the impact of past modifications, compared to current modifications, in the calculation of the weight we.

[0097] In examples in which 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 include 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 a SNN spiking neural network. The use of spiking neural networks SNN in the solution of the present disclosure is extremely advantageous since 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. Therefore, the mathematical operations allowing the operation of these networks are simple, which means that they are inexpensive in terms of computational 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 make the calculations are not used to perform the routing of packets. 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 computing circuit PROC of the router, when the method 100 is implemented in whole or in part at the level by the processing circuit 1 of the router.

[0098] In examples wherein the updated given routing path Rx corresponds to a routing path to a network destination associated with a network of SNN spiking neurons, this SNN spiking neural network is therefore activated and can make it possible to determine the announcement probability Px of the given routing path Rx. In particular, to determine the announcement probability Px of the given routing path Rx using an SNN spiking neural network, the method 100 can further comprise, prior to the operation 130 of deciding whether or not to issue the announcement of the given routing path Rx, the implementation of the operations 127, 128, and 129, schematically illustrated in [Fig. 12].

[0099] Operation 127 may thus comprise a presentation of the given routing path Rx to a neuron Nex of the input layer Ce of a spiking neural network SNN associated with the destination of the given routing path Rx for a determined presentation duration. The neuron Nex of the input layer Ce to which the given routing path Rx is presented corresponds to: 1. either to the input neuron Nex assigned to this given routing path Rx, when the given routing path Rx has already been presented to the neural network, 2. either 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 Nex in [Fig. 13].

[0100] During this determined presentation duration, a plurality of pulses, denoted Impe in [Fig. 13], are emitted to the input neuron Nex to 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 pulses Imp to the input neuron Ne. As detailed below, the announcement probability Px of the given routing path Rx will be determined as a function of the number of pulses transmitted from the input neuron Nex to the output layer Cs of the neural network. These transmitted pulses are denoted Imps in [Fig. 13].

[0101] Thus, to send, during the determined presentation duration, the plurality of pulses hnpe to the input neuron Nex, the routing path Rx can be binary encoded. In particular, when the given routing path Rx encoded in binary is transmitted to the input neuron Nex, a bit at 1 can correspond to a pulse while a bit at 0 can correspond to an absence of 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 comprise a determination of the number of pulses transmitted Imps, among the plurality of pulses Impe emitted, from the neuron Nex of the input layer Ce to the output layer Cs. In particular, in the example of the operating architecture of the SNN spiking neural network represented in [Fig. 13], 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, Imps, among the plurality of pulses Impe emitted, from the neuron Nex of the input layer Ce to the output neuron Ns.

[0103] The number of transmitted pulses hnps, from the input neuron Nex of the input layer Ce to the output layer Cs, upon presentation of the given routing path Rx to this input neuron Nex> is in particular dependent on the weight wex associated with this neuron Nex. More broadly, a number of transmitted pulses Imps, 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 Imps, 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 durations d of conservation of the routing path R assigned to this input neuron in the routing table. In the case of the given routing path Rx, it is understood that the weight wex associated with the neuron Nex of the input layer Ce of the spiking neural network SNN is therefore determined from one or more durations dx determined during the operation 110. .

[0104] Operation 129 may finally comprise determining the announcement probability Px of the given routing path Rx from the determined number of pulses transmitted hnps 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 with which it is associated in a spiking neural network SNN may correspond to the ratio between the determined number of pulses transmitted hnps and the number of pulses Impe emitted during the determined duration. In other words, if N pulses Impe have been emitted during the determined presentation duration of a routing path R encoded to its input neuron Ne, and K pulses have been 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 sufficiently large number of emitted pulses Impe and a sufficiently small duration 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 conceivable.

[0107] Examples of possible operating equations for a neural network enabling the learning of stable and unstable paths are presented below. These equations can in particular be implemented in a SNN spiking neural network having 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 presented the equations of the neurons of a neural network of the intelligent agent AI.

[0109] st=e(ut-e) with St which corresponds to the emission of a pulse at time t; Ut which corresponds to the membrane potential at time t; S which corresponds to the pulse trigger threshold; and 0(x- 0) which is a function whose output is equal to 1 if x is greater than or equal to 6, and which is equal to 0 otherwise. It is therefore a pulse trigger function.

[0110] uM=put+it- is with U[+l which corresponds to the membrane potential at time t + 1; It which corresponds to the synaptic current at time t; and which corresponds to a first decrease parameter. [YES] = alt + b + E, W^S jt with It+i which corresponds to the synaptic current at time t +1; a which corresponds to a second decrease parameter; b which corresponds to a parameter of increase in synaptic current; Wfjt which corresponds to the synaptic weight between i and j at time t; and Sjj which corresponds to the impulse of a neuron j at time t. Learning method

[0112] Below are presented the equations allowing the learning of the neural network of the intelligent agent AI.

[0113] Wz+1 = yWt + TpreetCA with which corresponds to the synaptic weight at time t +1; y which corresponds to a third decrease parameter; TPre 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. CA which corresponds to the learning coefficient; and and which corresponds to the error at time t. The error and 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 in the following manner: Tm = kTl + St with Tt+A which corresponds to the trace of a pre-synaptic neuron at time t+1; and k 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: dp™ which corresponds to the presentation duration of a routing path R to an input neuron (pre-synaptic neuron) of the neural network, is equal to 10ms; & is equal to 13; a is equal to 0; [3 is equal to ; 3 CA is equal to 10; y is equal to 1; and k is equal to dp™% where X corresponds to the value of the second threshold S2 and the third threshold S3 when these two thresholds are equal. X here allows to limit the memory of previous impulses in the calculation of the synaptic trace of pre-synaptic neurons. With this value of dp™, approximately 90% of the synaptic trace will have disappeared after X seconds. It will be done 3 reference to this X 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 advertisement during operation 130. In particular, it is decided to transmit the advertisement of the given routing path Rx if it is a routing path Rx different from the one 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 advertisement of this path. 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 the same destination. These examples therefore make it possible to avoid issuing an unnecessary announcement on the network, which reduces its congestion. They are illustrated in particular with reference to [Fig. 14].

[0117] An example of pseudo-code is introduced below allowing an implementation of 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 the method 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 variable CUR_ROUTE_TIMER corresponds to a timer that measures the retention time of CUR_INSTALLED_ROUTE in the routing table of the ROUTER between its writing following an update, and its overwriting following another update. CUR_ROUTE_TIMER measures the current retention time dc of an updated routing path R in the routing table of the current router.

[0123] The variable CUR_ROUTE_DURATION corresponds to the duration of conservation 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 variable CUR_ROUTE_DURATION corresponds to the duration of retention of OLD_INSTALLED_ROUTE between its writing in the routing table following an update, and its overwriting by the writing of CUR_INSTALLED_ROUTE.

[0126] The variable X corresponds to the duration in seconds which conditions a compromise between the number of advertisements and the duration during which at least one neighbor of the ROUTER is not aware of CUR_INSTALLED_ROUTE of the ROUTER for the DESTINATION. X can 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. Initialization of 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] X = 30; X is set to the value of the MRAI here. Algorithm

[0136] 1. -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 P prediction regarding CUR_INSTALLED_ROUTE announcement to T at least one neighbor of ROUTER

[0142] 1.1.6 - If P > 0.5 and CUR_INSTALLED_ROUTE != CUR_ANNOUNCED_ROUTE, SO :

[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 < X. then:

[0146] 1.1.7.1- AGENT is trained to take into account that OLD_INSTALLED_ROUTE should not be announced

[0147] 1.2 - If CUR_ROUTE_DURATION = X, then:

[0148] 1.2.1- AGENT is trained to take into account that CURRENT_INSTALLED_ROUTE should be announced

[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 in particular to train an intelligent agent AI to announce or not announce a routing path R depending on a 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 A, the intelligent agent AI is trained not to announce this routing path. Conversely, if the routing path is kept for more long as the duration X 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 [Fig. 14].

[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 of the intelligent AI agents used. This test is represented in [Fig.15]. 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 agent AI is made up of short-term memory recurrent neural networks (LSTM), an example of the method 100 in which the intelligent agent AI is made up of artificial neural networks (ANN), and an example of the method 100 in which the intelligent agent AI 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 the classic MRAI is that the update of each routing path triggers a time window of 30 seconds before the transmission of the routing path announcement. In other words, in the "Naive MRAI", each updated routing path is announced 30 seconds after its update. In contrast, in the 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: 1. MRAI issues announcements relatively quickly, but issues a lot of announcements; 2. the “Naive MRAI” emits announcements very slowly, but emits very few; 3. LTSM issues announcements relatively slowly, but issues few of them; 4. the ANN issues announcements very quickly, and issues barely more than the “Naive MRAI”; and 5. SNN has the same performance as ANN, but requires less computing resources than ANN.

[0159] An intelligent AI agent consisting of SNN-type neural networks therefore constitutes the most effective intelligent AI 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 announcements of updated paths in the routing table of a router, while quickly sending an announcement 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 intelligent agent AI may be trained to determine, as finely as possible, which routing paths are stable, and which routing paths 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 the fact that the paths are stable or unstable.

[0164] Furthermore, when the intelligent agent AI comprises at least one SNN pulse 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 it is 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 the present 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 routers to another protocol.

Claims

Claims

1. 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) whether or not to issue 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).

2. 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 (dxc) during which the given routing path (Rx) is kept in the routing table since the update becomes greater than a first threshold (SI).

3. A method according to any one of the preceding claims, wherein 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 wherein 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.

4. 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.

5. Method according to the preceding claim, in which a modification (1110) of the advertisement probability (P) of a routing path (R) comprises an increase (1111) of 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).

6. 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).

7. 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.

8. 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.

9. 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).

10. A method according to any one of claims 8 or 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 this network, and in which, prior to the decision (130) to emit or not to emit the announcement of the given routing path (Rx), the method comprises: a presentation (127) of the given routing path (Rx) to an input neuron (Nex) of the input layer (Ce) of the spiking neural network (SNN) associated with the destination of the given routing path (Rx), during a determined presentation duration during which a plurality of pulses (hnpe) are emitted; a determination (128) of a number of transmitted pulses (Imps), among the plurality of pulses (Impe) emitted, from the input neuron (Nex) of the input layer (Ce) to the output layer (Cs), the number of transmitted pulses (Imps) being dependent on the weight (wex) associated with the input neuron (Nex), which weight (wex) is in particular determined from the determination (110) of one or more durations (dx);and a determination (129) of the advertisement probability (Px) of the given routing path (Rx) from the determined number of pulses transmitted (Imps) to the output layer (Cs).;

11. 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).

12. A method according to any preceding claim, 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 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.

13. 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.

14. Device (1) comprising a processing circuit (PROC) for implementing the method according to any one of claims 1 to 12.

15. Router (2) comprising a device (1) according to the preceding claim.