Improved method for transmitting data streams through a communication network and system for transmitting data streams
The method prioritizes and optimally routes data streams in communication networks based on priority, data loss, and time constraints, using advanced algorithms to enhance transmission efficiency and manage network resources effectively.
Patent Information
- Authority / Receiving Office
- WO · WO
- Patent Type
- Applications
- Current Assignee / Owner
- AIRBUS DEFENCE & SPACE SAS
- Filing Date
- 2025-12-18
- Publication Date
- 2026-06-25
AI Technical Summary
Existing communication networks struggle to efficiently manage diverse data streams with varying transmission requirements, such as bandwidth, latency, and data loss tolerance, leading to suboptimal performance, especially for real-time data streams.
A method and system that prioritize data streams based on priority levels, maximum acceptable data loss, and transmission time, using a control system to calculate optimal routes and schedules, incorporating mixed linear programming and heuristic algorithms for efficient network utilization.
The method enhances transmission performance by ensuring that high-priority streams are allocated resources first, adapting to real-time requirements, and managing network congestion effectively, thereby improving overall network efficiency.
Smart Images

Figure EP2025088189_25062026_PF_FP_ABST
Abstract
Description
[0001] DESCRIPTION
[0002] TITLE: IMPROVED METHOD FOR TRANSMITTING DATA STREAMS IN A COMMUNICATION NETWORK AND DATA STREAM TRANSMISSION SYSTEM.
[0003] TECHNICAL FIELD
[0004] The present invention relates to a method for transmitting data streams between two transmission nodes of a communication network, comprising a data stream transmission system. At least one embodiment relates to an improved transmission of one or more data streams, each between a source node and a destination node of a communication network, based in particular on collected information representative of the network topology, transmission performance within the network, characteristics of the data streams to be transmitted within the network, desired transmission conditions, and a transmission route determined from the collected information. The invention further relates to a data stream transmission system configured to execute such a transmission method.
[0005] PREVIOUS STATE OF THE ART
[0006] Data streams transmitted over communication networks can be highly varied and, consequently, can present equally varied transmission requirements and constraints. For example, transmitting audiovisual content involves greater time and bandwidth requirements than transmitting a text document or an email. Similarly, remote control messages for equipment, such as military equipment, require a much lower tolerance for data packet loss than simply transmitting a television program. More generally, bandwidth requirements, data packet loss tolerance, and transmission time constraints often differ significantly depending on the nature of the data streams, their areas of use, and their applications.There is a need to organize the transmission of multiple data streams within the same communication network, so that each stream takes a route through the network that satisfies its own transmission constraints. US patent 10686693 is known for this. However, the transmission performance of streams requiring real-time processing can still be improved.
[0007] DESCRIPTION OF THE INVENTION
[0008] An object of the present invention is to identify a route for each data stream among a plurality of data streams to be transmitted in the same communication network, considering for each of the streams a priority level, a maximum acceptable data loss and a maximum acceptable transmission time, and determining a transmission schedule that satisfies all of these constraints.
[0009] To this end, a method is proposed for transmitting a plurality of data streams, executed in a communication network comprising a control system and nodes connected to each other by unidirectional links, the control system being connected to each of the nodes and links, the method comprising the following steps: i) obtaining by the control system an updated list of streams awaiting transmission, each stream being associated with at least one priority level, a minimum required bandwidth and a maximum permissible data loss rate, each of the streams awaiting transmission being associated with a first node, called the source node, and a second node, called the destination node, ii) obtaining by the control system at least the operating state of each node and the available bandwidth of each unidirectional link iii) admission, by the control system, of streams to be transmitted, according to a routing calculation,triggered at least periodically or upon receipt of a flow whose priority level exceeds a predetermined priority level, the routing calculation favoring flows of the highest priority, the routing calculation being performed at least according to the available bandwidths of the links, iv) operate transmissions of flows admitted by the control system into the network.
[0010] According to one particular feature, the method according to the invention includes an additional step of updating the network topology, of which a list of nodes and a list of links are updated.
[0011] According to another feature of the invention, rejected flows are either kept in the list of flows awaiting transmission or are interrupted to trigger their retransmission. According to another feature of the invention, the routing calculation is performed in parallel by an optimization algorithm combining a mixed linear programming algorithm and a solver-type algorithm, and by a heuristic algorithm. A maximum computation time is predetermined, and the result of the heuristic algorithm is selected if, after the maximum computation time, the optimization algorithm has not reached a result; otherwise, the result of the optimization algorithm is selected.
[0012] According to another feature of the invention, the routing calculation first favors the highest priority flows, and then secondly the largest number of routes for flows tolerating data loss.
[0013] Another object of the invention relates to a system for implementing a process according to the invention.
[0014] Another object of the invention relates to a program product comprising program code instructions for executing the implementation steps of a process according to the invention, as well as a storage medium comprising such a computer program product.
[0015] The transmission route calculation device includes, in particular, electronic circuitry configured to execute a mixed linear programming algorithm as well as a solver-type algorithm configured to process a set of linear constraints defined in relation to the information obtained. The transmission route calculation device also includes, for example, electronic circuitry configured to execute a genetic algorithm.
[0016] According to another feature, the process according to the invention comprises the following steps:
[0017] - to obtain initial information, representative of one or more data streams to be transmitted via the communication network and of the transmission conditions to be met for each stream via said network
[0018] - to obtain second pieces of information, representative of a network topology, the second pieces of information comprising at least a list of communication nodes detected in the network and of communication links established between each two of the nodes detected in said network
[0019] - to obtain third pieces of information, known as metrics, representative of the characteristics of the communication network, for each of the detected communication nodes and for each of the established communication links, and - to determine, for each of the data flows to be transmitted, based on the first, second, and third pieces of information obtained, a data flow transmission route
[0020] - to operate transmissions according to determined routes of the process are executed by a first processing module dedicated to the execution of these steps, called "data flow transmission controller device", and, the steps aimed at determining a data flow transmission route for each of the data flows to be transmitted are executed by a second processing module, dedicated to these steps, called "route calculator device".
[0021] According to another particularity, the data stream transmission process is such that the first information obtained also includes, for all or part of the data streams to be transmitted, information on conditions (constraints) of data stream transmission.
[0022] Advantageously, the method according to the invention allows for the consideration of a significant set of flow constraints, including latency, permissible data loss, and priority, with these flow constraints being considered relative to one another. The highest priority flows can advantageously be allocated first, followed by lower priority flows if transmission resources are still available. A flow that tolerates a rate limitation and therefore data loss is thus considered lower priority and accepts reduced bandwidth.
[0023] Even more advantageously, the priority level can trigger a routing calculation, which promotes real-time processing.
[0024] Advantageously, the present invention adapts to real-time requirements and can also handle link loss. The method according to the invention offers complex flow management through flow rejection or admission at their nominal or reduced rate. Admission management, in particular, helps to limit network congestion.
[0025] BRIEF DESCRIPTION OF THE DRAWINGS
[0026] The features of the invention mentioned above, as well as others, will become clearer upon reading the following description of an exemplary embodiment, said description being made in relation to the accompanying drawings:
[0027] [Fig. 1] schematically illustrates a communication network comprising transmission nodes and transmission links connecting these transmission nodes; [Fig. 2] schematically illustrates a data stream transmission system connected to the communication network already represented in Fig. 1 and for operating data stream transmissions in this network, according to one embodiment;
[0028] [Fig. 3] illustrates details of the internal architecture of the data stream transmission system already shown in Fig. 2, according to one embodiment;
[0029] [Fig. 4] is a flowchart illustrating a data stream transmission process, operated by the data stream transmission system already illustrated in Fig. 2 and Fig. 3, according to one embodiment;
[0030] [Fig. 5a] is a flowchart illustrating a method for determining one or more transmission routes of a data stream, based on predetermined constraints, according to a first embodiment of the invention;
[0031] [Fig. 5b] is a flowchart illustrating a method for determining one or more transmission routes of a data stream, based on predetermined constraints, according to a second embodiment of the invention;
[0032] [Fig. 6] schematically illustrates an example of the internal architecture of a data flow transmission controller device, according to one embodiment;
[0033] [Fig. 7] schematically illustrates an example of the internal architecture of a transmission route computer device, according to one embodiment.
[0034] DETAILED EXPLANATION OF IMPLEMENTATION METHODS
[0035] Figure 1 schematically illustrates a communication network N. The communication network N comprises five communication node devices, 1, 2, 3, 4, and 5, interconnected by bidirectional transmission links, each represented by a double arrow. The bidirectional links are considered, for example, as two unidirectional links. The communication node devices are also referred to here as communication nodes, transmission nodes, or simply nodes, and are each configured to perform transmissions or retransmissions of data streams between a source node device of the communication network N and a destination node device of the same network N. Thus, a node of the communication network N can operate as a source node, an intermediate node, or a receiving node (destination node) on a transmission route from a source node to a destination node in the communication network N.A transmission link 12 connects node 1 to node 2 in the direction of transmission from node 1 to node 2. A transmission link 21 connects node 1 to node 2 in the direction of transmission from node 2 to node 1. A transmission link 23 connects node 2 to node 3 in the direction of transmission from node 2 to node 3. A transmission link 32 connects node 2 to node 3 in the direction of transmission from node 1 to node 3.
[0036] 3 to node 2. A transmission link 34 connects node 3 to node 4 in the transmission direction from node 3 to node 4. A transmission link 43 connects node 3 to node 4 in the transmission direction from node 4 to node 3. A transmission link 14 connects node 1 to node 4 in the transmission direction from node 1 to node 4. A transmission link 41 connects node 1 to node 4 in the transmission direction from node 3 to node 4.
[0037] 4 to node 1. A transmission link 13 connects node 1 to node 3 in the transmission direction from node 1 to node 3. A transmission link 31 connects node 1 to node 3 in the transmission direction from node 3 to node 1. A transmission link 35 connects node 3 to node 5 in the transmission direction from node 3 to node 5. A transmission link 53 connects node 3 to node 5 in the transmission direction from node 3 to node 5.
[0038] 5 to node 3. More generally, a MINI transmission link connects node M1 to node NI in a transmission direction from node M1 to node NI, and an N1M1 transmission link connects node M1 to node NI in a transmission direction from node NI to node M1. Thus, links 45 and 54 are shown between nodes 4 and 5, and links 25 and 52 are shown between nodes 2 and 5. According to the example described in Fig. 1, there is no direct link between nodes 1 and 5, nor between nodes 2 and 4, and these nodes are able to communicate with each other through one or more other nodes in the communication network N. This particular example is intended to illustrate the case of non-existent or broken communication links between two communication nodes present in the same communication network.
[0039] Figure 2 illustrates the communication network N, which also includes a data flow transmission control system CP, also referred to here as the CP control system. Connected to each of the nodes 1, 2, 3, 4, and 5 of the communication network N, the CP control system is configured to exchange control and / or monitoring messages with each of these nodes. In Figure 2, the communication links used for these exchanges of control messages between the nodes and the CP control system are shown as dashed lines. A reference A associated with an arrow pointing towards node 1 illustrates the insertion of a data flow A to be transmitted via the communication network N from node 1, and another reference A associated with an arrow pointing from node 3 illustrates the reception of this same data flow A, destined for node 3. According to the example described, the data flow A, also referred to here as "content A," can be transmitted via several routes through the communication network N.For example, data stream A can be transmitted via a route RAI = { 1, 2, 3}, or RA2 = { 1, 3} or RA3 = { 1, 2, 4, 5, 3}, as examples.
[0040] Advantageously, the data flow transmission control system, connected to each node of the communication network, can exchange messages to obtain information representative of the operating characteristics of the communication network N. For example, the CP control system can obtain information representative of all data flows waiting to be transmitted via the communication network N or currently being transmitted via the communication network N. In addition, the control system can obtain information representative of the operating status of the nodes of the communication network N, as well as the bandwidth available for each of the transmission links of the communication network N, and latency information for each of these links.Furthermore, by exchanging messages dedicated to achieving and maintaining quality of service with the nodes of the communication network N, the CP control system can obtain information representative of network congestion levels, such as information representing the potential loss of data packets between two communication nodes. Thus, the CP control system is configured to control, or in other words, supervise, all data stream transmissions across the communication network N. Of course, the communication network N can include a much larger number of transmission nodes, but the example described here in relation to Figures 1 and 2 illustrates only five, for the sake of simplicity in this description.Thus, the N network can include dozens, hundreds or even more communication nodes and transmission links established between all or part of these nodes.
[0041] Figure 3 illustrates an ingenious internal architecture of the CP data flow transmission control system via the N communication network, according to one embodiment. In this embodiment, the CP data flow transmission control system comprises a CTRL data flow controller and a PACL transmission route calculator. Advantageously, the CTRL data flow controller and the PACL transmission route calculator are connected by two communication links (or communication buses). A first communication link IC is configured to transmit representative state information of the N communication network, available to the CTRL data flow controller, to the PACL transmission route calculator.A second PATR communication link is configured to transmit to the CTRL data flow transmission controller device information representative of determined routes, in relation to data flows to be transmitted or being transmitted via the N communication network, determined by the PACL data flow transmission route calculator device.
[0042] The term "network state" here refers to various information representing updated characteristics and parameters related to the state and operation of the communication network N. This various information includes in particular: first information, obtained by a data flow collector module FC of the data flow transmission controller device CTRL representing one or more data flows to be transmitted via the communication network N, each of the data flows to be transmitted being associated with a first node of said network, called the source node for this flow, and with a second node of said network called the destination node for this flow, second information, obtained by a topology collector module TP of the data flow transmission controller device CTRL representing an updated topology of the network;this second information includes at least a list of communication nodes detected as normally operational in the communication network N and of communication links established each between two of the nodes detected in said network, and detected as normally operational; third information, called metrics, obtained by a metrics collector module MC of the data flow transmission controller device CTRL, representative of characteristics of the communication network N, for each of the communication nodes detected as operational and for each of the communication links established and detected as operational.
[0043] According to one embodiment, this varied information further includes information representing transmission conditions (or requirements or constraints) to be satisfied for each of the data transmission flows to be transmitted via the communication network N or in the process of being transmitted via the communication network N. This information representing transmission conditions or constraints is preferably inserted in the first information, obtained by the FC module of the CTRL data flow transmission controller device.According to one embodiment, information representing conditions or transmission constraints to be satisfied for a data stream to be transmitted or in the process of being transmitted includes the following: a latest possible time for the start of transmission of the data stream, a latest possible time for the end of reception of the data stream, a minimum transmission speed for the data stream, a minimum bandwidth during the transmission of the data stream, a maximum rate of data packet loss for the transmission of the data stream, a maximum rate of corrections made to transmitted data packets during the transmission of the data stream, a maximum level of latency during the transmission of the data stream, a minimum level of security during the transmission of the data stream (encryption, redundancy, special data security arrangements, etc.).
[0044] In one embodiment, information representing conditions or constraints for data stream transmission is extracted from blocks of information contained within transmission streams. In a particular embodiment, this information is inserted into data stream headers and can be read directly from these headers by the FC module of the CTRL data stream transmission controller. This embodiment is not exhaustive, and the transmission constraints to be met can be defined or instantiated by other means. In another example, these constraints are stored in the memory of the FC module of the CTRL data stream transmission controller via an input interface for a network administrator.
[0045] In this description, the term "transmission constraints" refers to transmission requirements reduced to an application level of the transmissions carried out or to be carried out. Examples include a maximum data rate or packet loss rate.
[0046] According to one embodiment, the PACL route calculator device is configured to determine, for each of the data streams to be transmitted, from the first, second and third pieces of information obtained, a data stream transmission route, then, to transmit fourth pieces of information, representative of the determined routes, to a data stream installer (or manager) module FI of the data stream transmission controller device CTRL, which FI module is configured to then operate transmissions of all or part of the data streams to be transmitted or in the process of being transmitted, in the communications network N, according to the routes determined by the PACL route calculator device.
[0047] Here, determining a route for each data stream means processing a data stream to be transmitted as a transmission request. Thus, after processing aimed at determining a route, the data stream may be ignored, and no route may yet be determined for it. In this case, the determined route is considered a route to be determined later, if necessary, should there still be a need to transmit the stream in question over the network.
[0048] The FC data stream collector module is configured to identify all streams to be transmitted or in transmission via the N communication network and to extract or obtain transmission conditions / requirements / constraints for each of these data streams.
[0049] The MC metrics collector module is configured to obtain (collect) a set of metrics representative of characteristics and performance measured in the N communication network. For example, this includes latency information, transfer time, bandwidth, whether a transmission node is operational or not, whether a transmission link is operational or not, the data packet loss rate in a network transmission node, the data packet loss rate in a transmission link, etc.These examples are not exhaustive, and other characteristics can be considered, such as the security level of a subset of the communication network, information representing the location of a transmission device, information representing the nature of a transmission device, information representing the vulnerability of a transmission device, information representing detected events related to a transmission device, information representing the installation date of a transmission device, etc. Again, these examples are not exhaustive.
[0050] According to one embodiment, two methods are used to obtain metrics: active polling or passive measurement. In the case of active polling, the data flow transmission controller (CTRL) queries the various node devices of the communication network to obtain measurements, while in the case of passive measurement, the transmission node devices themselves inform the data flow transmission controller (CTRL) of any changes.
[0051] Regarding bandwidth estimation, it is preferably performed using an active polling method. To do this, a packet generator generates as much traffic as possible from a device considered as a client to a device considered as a server. The server device then estimates the proportion of this traffic that reaches it, thus providing an estimate of the available bandwidth. This method is, however, invasive. Therefore, in one variant, links with predefined fixed capacities are considered, for example, 100 Mbps. In a particular embodiment, by measuring the traffic load of the communication links, it is possible to deduce the available bandwidth by applying the following formula: available bandwidth = link capacity - load on that link
[0052] Link load estimation is done by measuring the total number of bits (or bytes) sent in a predefined time window, such as: link load = byte l - byte O / tl - tO where tl is the transmission time of byte l and tO is the transmission time of byte_0.
[0053] All this information (metrics) can be obtained by the CTRL data flow transmission controller device by regularly probing the various transmission node devices of the communication network.
[0054] Regarding latency metrics, the latency of communication links is estimated using an active sampling method. Two types of communication links are considered for this purpose. On the one hand, control links that connect the node devices of the communication network to control devices (illustrated as dashed lines in Fig. 2), and on the other hand, data transmission links that connect the transmission node devices of the communication network to each other (illustrated as solid lines in Fig. 2).
[0055] To determine latency, the CTRL data flow controller sends a personalized, timestamped packet to each identified device on the network at time t0. The devices are instructed to propagate this packet after adding their identification number to the packet's payload data. The CTRL data flow controller also receives this packet from each device, as the propagation mechanism also sends it through communication interfaces dedicated to control functions. The CTRL data flow controller can then estimate the latency of each control link by subtracting the send timestamp t0 from the receive time of the data packet. Thus, the latency can be determined using the formula: latency = receive timestamp - send timestamp
[0056] Each device identified in the communication network sends the packet from each of its interfaces. Upon receiving such a customized packet from another device, the receiving device also receives the instruction to resend the received packet to the CTRL data flow controller. The customized packet then contains the sender's and receiver's identifiers. The CTRL data flow controller can thus deduce the latency of the link being used.
[0057] In other words, if for a transmitter A1 and a receiver B1, the link being measured is the A1 → B1 link, the total latency is therefore: t_c A1 + t_c B1 + t_d, where t_c A1 is the latency of the control link for A1, t_c B1 is the latency of the control link for B1, and t_d is the latency of the data transmission link A1 → B1. The controller device knows the latencies of the two control links, and the total latency is calculated from the received timestamp Tr minus the transmitted timestamp T0. The latency of the A → B link is therefore: t_A1 → B1 = T_r - T_0 - t_c A1 - t_c B1.
[0058] According to one embodiment, the metrics collector module MC is configured to determine, in addition to metrics representative of the state of the communication network N at a time t, metrics representative of the state of the communication network N at a later time, for example in one millisecond, 100 milliseconds, one second, ten seconds, one minute, two minutes, a quarter of an hour, one hour, etc. These examples are not limiting.
[0059] The primary task of the FC data stream collector module is to inform the PACL route planner each time a new stream needs to be admitted by the CP transmission system for transmission within the N communication network. Depending on the size, type, and nature of the network, the arrival frequency of data streams to be transmitted varies. This frequency can be low (from a few seconds to a few minutes) or very high (from a few nanoseconds to a few milliseconds). This frequency, as well as the time required for the PACL route planner to calculate transmission routes, must be considered when selecting an activation frequency for the PACL route planner. Several embodiments are possible:
[0060] According to one variant, route determination is event-driven: the PACL route calculation device is activated to perform route determination each time a new data stream to be transmitted is submitted to the system. Such a solution is suitable when the frequency of data stream arrivals is not very high, as it risks blocking data streams awaiting transmission.
[0061] According to a second variant, route determination is periodic: the PACL route calculation device is activated periodically at fixed time intervals, provided that there is at least one data stream awaiting transmission in the N communication network. The duration of the fixed intervals between two successive activations of the PACL route calculation device is then configurable according to the arrival frequency of the data streams to be transmitted and can even be dynamically updated based on collected statistics. The update can be manual or automatic.
[0062] According to a third variant, route determination is controlled in a hybrid manner based on established priorities. In this variant, the PACL route planning device is activated periodically unless a data stream with a transmission priority level exceeding a predetermined threshold is submitted to the CP transmission system. In this case, the PACL route planning device must be activated immediately.
[0063] As previously stated, whenever a new flow is to be admitted into the communication network, its transmission conditions (constraints) must be respected.
[0064] According to one embodiment, these constraints can be defined by a user, a data flow transmission administrator in the N communication network, or via an automatic configuration tool that determines updated conditions based on the context (a predictive tool, for example).
[0065] The TP topology collector module is configured to gather representative information about the topology of the communication network N, namely, for example, which communication (transmission) nodes are detected as operational, which transmission links are detected as operational, and also, what the failure rates are for these links or transmission nodes. This TP topology collector module can also detect any new transmission node or transmission link not yet recorded in the communication network N that appears in the network and identify it as such. In one embodiment, certain information can be considered both as metrics related to the performance or operating characteristics of the communication network N and as information related to the topology of the communication network N.
[0066] The TP topology collector module has a complete view of the network topology in the form of a list of links, each link being established between two transmission node devices. The CTRL data flow transmission controller device then delivers this information to the PACL route calculator device. The implementation details of the information transfer between these two devices are not described here, as they are not necessary for understanding the invention.
[0067] According to one embodiment, the FI data flow installer module operates control plane management device or system functions and exchanges control and supervision messages with, in particular, the various transmission nodes involved in one or more routes planned to operate a transmission of a data flow through the N communication network.
[0068] In other words, the primary task of the FI data flow installer module is to execute transmissions according to the routes determined by the PACL route planner. This involves establishing appropriate routing rules on each piece of equipment in the communication network involved in a given transmission route. The implementation of transmission routes can be synchronous (immediately after a route is determined) or asynchronous (transmission routes are implemented using hysteresis). The FI data flow installer module must also monitor data flows awaiting transmission. Data flows awaiting transmission are either data flows for which no transmission route has yet been determined, data flows previously ignored by the CP transmission system (for example, due to a lack of resources), or flows that have been placed on hold.In one embodiment, ignoring a data stream means that the stream is already being transmitted through the communication network, but new "incoming" data streams must be processed for transmission, likely due to higher priority, so a stream already in transmission had to be ignored. A third case of waiting for a data stream to be transmitted corresponds to the processing of a stream whose transmission has been intentionally interrupted or deferred. For example, a stream that has not yet been admitted into the communication network due to a lack of resources, or a stream whose transmission has been deferred because one or more higher-priority streams have been transmitted, either fully or partially. In both of these cases, and according to a particular embodiment, a single buffer is used.The system periodically checks whether these flows are still considered candidates for transmission over the communication network. If some flows are no longer candidates, they are removed from the buffer. Whenever a significant event occurs in the communication network (for example, resource release, completed flow transmissions, etc.), the transmission routes are recalculated, taking into account any flows awaiting transmission.
[0069] The FI data flow installer module should be configured to distinguish between flows that have been ignored and flows that are pending processing. Existing SDN protocols typically require devices in a communication network to notify a controller of the removal of a data flow forwarding rule and the reason for the removal (timeout or eviction). Therefore, whenever a flow is evicted, it is added to the pending flow list of the FI data flow installer module on the CTRL data flow forwarding controller device.
[0070] According to one embodiment, each of the CTRL and PACL devices (or modules) is specifically dedicated to the aforementioned operations, in the architecture of the CP data flow transmission control system.
[0071] In one embodiment, the CTRL and PACL devices (or modules) are two distinct devices implemented in separate components and connected by communication links or buses, for example, IP (Internet Protocol) communication links. In another embodiment, the CTRL and PACL devices (or modules) are implemented in two separate, distinct pieces of equipment, connected by communication links or buses, for example, IP. In this latter case, each of the CTRL and PACL devices or modules can be implemented as a plurality of hardware components (for example, FPGA-type programmable circuits, integrated circuits, dedicated computers, microcontrollers or microprocessors, etc.).
[0072] Figure 4 illustrates a method for transmitting one or more data streams in the communication network N using the data stream transmission control system CP, which advantageously includes the CTRL and PACL devices, respectively responsible for controlling the transmission of data streams and calculating data stream transmission routes. During an initialization step S0, all the systems that make up the communication network N are initialized. At the end of the initialization step SO, all the systems, modules, devices, nodes, and links of the communication network N are normally configured and operational. This obviously includes the data stream transmission control system CP, and therefore the CTRL and PACL devices or modules.Then, during an SI step, the FC, MC, and TP modules progressively collect numerous and varied pieces of information representative of the state of the communication network, namely the first, second, and third pieces of information mentioned above. This allows for the identification or determination of numerous topology characteristics, performance and operability metrics, and data flows to be transmitted or currently being transmitted within the communication network N. It should be noted that the described process loops back on itself, and that the SI step can be executed after a first iteration, without immediately following the initialization step S0. Thus, data stream transmissions may already be in progress during an execution of the SI step.Then, during an S2 step, the PACL data stream transmission route calculator device receives the first, second and third information from the FC, MC and TP modules of the CTRL data stream transmission controller device, via the IC communication bus, and determines, based on this information, one or more data stream transmission routes, then delivers (sends) to the data stream installer module of the CTRL data stream transmission controller device fourth information representing the routes to be used for the transmission of each of the streams waiting to be transmitted and / or, if necessary, to operate a rerouting of one or more data streams being transmitted in the N communication network.Finally, during step S3, the data stream installer module (FI) performs data stream transmissions in the communication network N based on the fourth set of information obtained, and specifically on routes determined for this purpose by the data stream transmission route calculator (PACL). In one embodiment, the data stream transmission route calculator operates according to a route determination process described in relation to Fig. 5a or Fig. 5b. At the end of step S3, the process loops back to step SI, and the control of data stream transmission is dynamically adjusted based on the updating (or refreshing) of the information collected by the FC, MC, and TP modules and any configuration parameters of the CP system (for example, the respective monitoring frequencies of the first, second, and third sets of information).According to one embodiment, the PACL transmission route calculator device performs a processing procedure using the following input data: a list of unidirectional links that make up a current network topology with metrics calculated at a given time, a list of flows that are waiting to be allocated in the network with their respective demands that must be satisfied.
[0073] The term "unidirectional" here means that for each pair of NI and Ml devices, two NI to Ml and Ml to NI links are considered, whose characteristics and metrics may be different.
[0074] Although the flowchart in Fig. 4 seems to illustrate a sequential operating mode, insofar as it is necessary to obtain first, second and third pieces of information prior to determining a route and it is necessary to have determined a route in order to implement it in the network, it remains nonetheless that the processes of collecting first, second and third pieces of information, determining routes and supervised transmissions of flows, are continuous processes operated by modules operating simultaneously.
[0075] Figure 5a illustrates details of step S2 of the process described above in relation to Figure 4, namely a process for determining data stream transmission routes in the N communication network, according to a first embodiment. This process is executed by the PACL route calculator of the CP data stream transmission control system. Thus, according to one embodiment, substeps S21 and S22, which comprise step S2, are implemented and executed by one or more processors of the PACL route calculator.
[0076] Advantageously and cleverly, the data stream routing process determines transmission routes based on previously obtained transmission conditions or constraints, for example, from the initial information obtained in the IF stage, and then operates by making successive decisions to identify the best possible transmission configurations for the data streams to be transmitted or currently being transmitted. For example, depending on the transmission and operating conditions of the communication network, the PACL route calculator determines whether an i-th data stream should be admitted immediately for transmission. As another example, if a data stream is deemed to be admitted immediately for transmission, the required bandwidth can be allocated or not for the transmission of that data stream.In yet another example, if the required bandwidth can be allocated for transmitting this data stream within the communication network, the question arises as to whether this data stream should be transmitted via the j-th possible transmission route. If so, the transmission delay requirements must be met, and the transmission links associated with a given route must not be overloaded beyond a predetermined and modifiable load threshold during transmission.
[0077] According to one embodiment, variables are predefined to store the results of decisions. For example, a variable ai represents the result of a decision as to whether an i-th data stream to be transmitted should be admitted for transmission (ai = 1) or ignored (abandoned) for the time being (ai = 0).
[0078] Thus, and according to one embodiment, a route determination (or calculation) algorithm is executed, considering a set of variables and conditions to be satisfied in order to carry out one or more data flow transmissions, which set can be seen as a finite dimension vector space in which feasible data flow transmission solutions, i.e., those that satisfy all the transmission conditions / constraints, belong to a hyperspace.
[0079] According to this mode of representation, and if the set of constraints is a limited and linear space, then the set of satisfactory transmission solutions at a given instant defines a hyperpolyhedron and it is then appropriate to be interested in the transmission solutions that maximize objective transmission functions, in this domain of transmission solutions.
[0080] According to one embodiment, an objective transmission function to be maximized is respecting the transmission priority of data streams, one with respect to the other.
[0081] In one embodiment, the data stream routing algorithm executed by the PACL route calculator uses a mixed-integer linear programming (MILP) formulation (Mixed-Integer Linear Programming Algorithm) and a solver module configured to handle all defined linear constraints. This mathematical modeling approach solves complex optimization tasks and identifies trade-offs between potentially conflicting objectives.
[0082] As a preamble to the description that follows, and considering the algorithm used by the PACL route calculation device, the following writing guidelines are introduced:
[0083] It should be noted that V is a set of transmission nodes of the communication network N; E is a set of bidirectional communication links (or more precisely pairs of unidirectional communication links) of the communication network N; c is a bandwidth and d is a delay (or delay or transmission delay) determined in the transmission of a data packet via a communication link.
[0084] Furthermore, in the following description, a transmission route is defined as a succession of nodes in the transmission network. For example, a route p between nodes 1 and 3 of the communication network N can be expressed as p = {1, 2, 4, 3}. This is equivalent to writing that the route is a succession of links 1 -> 2, 2 -> 4, then 4 -> 3.
[0085] In addition, the i-th link of a route p is named pi and the length of a route p is named |p|.
[0086] Thus, for example, set V includes nodes 1, 2, 3, 4 and 5 illustrated in Fig. 1, E includes all communication links existing between these nodes 1, 2, 3, 4 and 5 and for each of the unidirectional links there is a bandwidth value c and a delay value d.
[0087] Furthermore, P: {0,l} fc Z + is a priority level value;
[0088] D: {0,l] fc Z +is a lag value; and,
[0089] L: {0,l] fc [0,1] is a data packet loss rate value.
[0090] These three types of values are likely to guide the management of data stream transmission. For example, a real-time stream, such as one encoding and carrying voice, may require low latency (delay) but can tolerate a certain level of packet loss. The organization of data stream transmission can be formally expressed as follows: given a network N = (V, E, c, d), a set F of data streams to be transmitted, and a data stream transmission policy PO = (P, D, L), a routing solution ç:F—>E must be found. A **Z_(>0), so that each of the data streams to be transmitted is assigned to a route while satisfying the transmission conditions associated with that stream.
[0091] A first step S21 aims for example to determine linear constraints related to the transmission of data streams to be transmitted in the communication network N.
[0092] To do this, a flow Fi here designates the i-th flow in the lexicographical order of a set F of data flows to be transmitted via the communication network N.
[0093] Variables ai and pi,m are defined to determine whether a data stream is accepted for transmission in the communication network N, or whether the stream is routed through a specific route.
[0094] A variable ai is a variable that indicates whether an i-th data stream should be admitted (ai = 1) or ignored (ai = 0).
[0095] In addition, a variable pi,m indicates whether the ith data stream should be routed via the m-th route for a stream fi (in the lexicographical order of routes (fi) of the communication network N).
[0096] These variables have 1 and then, m are binary, that is to say that ai, pi, m G {0, 1} for all possible values of i G { 1, . . . |F|}, and m G { 1, . . . | routes (fi)|}.
[0097] Furthermore, variables 8i,j,l and fii,m are expressed as percentages, and therefore, 8i,j,i and Pi, m G [0, 1],
[0098] Pfim is a variable representing the admission rate of an i-th flow via an m-th transmission route in the communication network.
[0099] 8i,j,i is a variable representing a transmission demand rate of an i-th stream transmitted via a link (j, 1), i.e. a link between a transmission node) and a transmission node 1.
[0100] Furthermore, li,m(j, 1) is a characteristic function indicating whether the link (j, 1) belongs to a transmission route m for an i-th flow.
[0101] Furthermore, max prio(F) = max {P(h(f)) Vf GF} denotes a maximum priority level for the set F of transmission flows to be transmitted. Regarding the linear constraints formalized according to a MILP problem formalization:
[0102] A first linear constraint, simple and logical, is defined. If the i-th flow from the flow set F is accepted (i.e., ai = 1), then there must be one (and only one) route that carries this data flow to be transmitted. This can be expressed by the following first linear constraint:
[0103] This first constraint applies to all data streams in the set of data streams F to be transmitted, i.e. Vi £ {1, . . ., |F|}.
[0104] A second linear constraint is defined, which implies, for example, that the same bandwidth can be allocated for each transmission link of the communication network and for each of the data streams to be transmitted.
[0105] It should be noted that a bandwidth allocation request is only acceptable if: the associated route is selected (i.e., for pi,m only when pi,m = 1), and that,
[0106] - The acceptable bandwidth respects the maximum acceptable loss according to the data flow transmission management policy.
[0107] The second constraint can then be expressed as follows:
[0108] This second constraint applies for example to all data streams in the set F of data streams and to all routes of these streams, that is to say that Vi G {1, |F|]Vm G {1, ... , routes(fi)}.
[0109] A third constraint must, for example, be combined with the fact that the accepted demand on the path must be zero if the path is not chosen. This can be expressed by the following linear constraint:
[0110] Pi,m — Pi.m This third constraint applies to all flows and to each path of this flow, that is to say that Vi G {1, |F|}Vm G {1, ... , routes(Jf)}.
[0111] A fourth linear constraint is defined, for example, which imposes the same acceptable percentage of bandwidth for each link in the communication network and for each data stream to be transmitted. It should be noted that for links not used by a stream, this value is equal to zero.
[0112] This fourth linear constraint can be expressed in the following form:
[0113] This fourth constraint applies to all data transmission links in the data communication network of the set F of data flows and to all routes of these flows, that is to say that
[0114] A fifth linear constraint is defined, for example. This fifth constraint establishes a link between the data stream transmission requests admissible at this stage and the available bandwidth in the communication network. Indeed, depending on the accepted transmission requests, bandwidth restrictions influence the organization of data stream transmissions.
[0115] This fifth linear constraint can be expressed as:
[0116] This fifth constraint applies to all transmission links of the communication network, w(l,j) G E.
[0117] A sixth linear constraint is defined, for example, which concerns compliance with transmission time requirements for each of the data streams to be transmitted. This sixth linear constraint can be expressed as follows: This sixth constraint applies to all data streams to be transmitted and to all usable routes for each of the data streams, i.e. Vi G {1, ... , |F|]Vm G {1, ... , | routes ( / ■)!}.
[0118] Given the various linear constraints defined, it is clear that multiple solutions can satisfy all the linear constraints stated above, and it is therefore necessary to optimize transmission criteria. For example, choosing not to transmit any data streams in the communication network satisfies all the constraints stated previously, and it is then important to consider the need to transmit as many data streams as possible, based on the transmission priority levels associated (or assigned) to these data streams.
[0119] This optimization can be formulated as follows: maximize
[0120] It should be noted, however, that depending on the problem formulation, a feasible solution that imposes a maximum permissible packet loss for all data streams and allows all streams under these conditions is just as good as a solution that does not result in such packet loss for these data streams. Therefore, an additional optimization criterion must be considered. In one example implementation, the data streams to be transmitted, defined as having the highest priority, are prioritized, while giving greater priority to allowing a larger number of streams to be transmitted than to maintaining bandwidth for streams that might tolerate packet loss.
[0121] This condition can be expressed by the following linear constraint: maximize a Se
[0122] The preceding linear constraint takes into account the priority level of the transmission of data streams, since it is assumed here that the data stream transmission policy is established such that, if a data stream to be transmitted (even with a very high priority) can be safely admitted by reducing some of the bandwidth in order to admit lower priority streams, this must be done.
[0123] In one embodiment, admitting a portion of a high-priority data stream will result in an optimization function having a value strictly lower than that for admitting a lower-priority stream. This allows prioritizing the admission of a data stream to be transmitted over accepting a percentage of bandwidth.
[0124] Furthermore, it is important, for example, to ensure that there is no correlation between the different parameters for defining the transmission policy.
[0125] According to one embodiment, it is proposed to penalize the use of the longest transmission routes, thereby saving resources and energy and reducing transmission times.
[0126] According to one embodiment, the shortest transmission routes are used for the transmission of data streams with higher priority levels, provided, however, that this does not affect the admission of other data streams.
[0127] It is then considered that a transmission route cannot include more than |V|-1 nodes, and therefore, dividing by |V| the term will never equal 1.
[0128] Furthermore, by dividing the sum of route lengths by the maximum priority level, it is possible to ensure that high priority is given to avoiding long routes for high-priority flows, but not enough to prevent the admission of a low-priority, low-value data flow. Considering these elements, a combined objective can be formulated as follows: maximize SE, W.)) ' «< + Æ'r
[0129] Once the linear constraints are defined, a second step S21 consists of solving the problem thus modeled using a calculation module of the MILP solver type.
[0130] Advantageously, and according to a first embodiment, such a MILP solver is used to find an optimal solution that minimizes or maximizes the objective functions described above while satisfying all the constraints established and described in the form of mathematical equations or inequalities that represent the limits or requirements of the data stream transmission problem. According to a second embodiment, and in order to guarantee the determination of an acceptable solution within a limited time, another algorithm, called a "genetic" or "GA" type algorithm, is used by the PACL route planning device. This makes it possible to obtain a data stream transmission solution within a limited time.Indeed, a drawback of solving the problem using a MILP solver is that solving the aforementioned data stream transmission problem may require more time than is typical for data stream transmission in a communication network. This second embodiment is illustrated in relation to Fig. 5b, which details step S'2, replacing step S2 of the process described in Fig. 4, this time using an AG-type algorithm.
[0131] Genetic algorithms (GAs) can be likened to research procedures based on a mechanism of natural selection of the order of natural genetics.
[0132] According to these principles, individuals are considered to represent potential solutions to problems. In the optimization problem addressed here, individuals are a collection of variables P in an array grouping such variables. Such a representation of information is known as a genotype. What an individual represents as a string is the allocation of transmission routes; this representation is known as a phenotype. As an example, consider a network with two data streams to be transmitted and three possible paths per data stream. An individual 1=010001 represents choosing the second path for the first stream and the third path for the second stream, while the individual 1=000100 represents abandoning one transmission of the first stream and transmitting the second stream via the first path.
[0133] According to this second embodiment, a natural representation of an individual is an array of values, where each position in the array represents a variable of the problem. Since the variables P of the problem can be used to deduce other variables, a simple representation in the form of an array of real values is well suited to the genotype of individuals. To better illustrate this concept, consider individuals containing only the variables P from the formulation of the data stream transmission problem. An individual I thus has the following form: As an example to illustrate this principle, we consider a simplified modeled data stream transmission problem where only two data streams need to be transmitted, each stream can take two possible transmission routes, and the maximum allowable loss is 0.2 (20%) for each data stream. The generic representation of the genotype of individuals in this problem is I = [Pi, 1; Pi, 2; P2, 1; P?, 2]; a possible individual with the genotype I = 0; 1; 0.8; 0 has a phenotypic representation of the first data stream being assigned to the second transmission route, accepting the full requested bandwidth, whereas assigning the second transmission route to the second data stream accepts only 80% of the requested bandwidth.Similarly, individual II = 0; 1; 0; 0 only admits the first data stream with 100% of the requested bandwidth, transmits it via the second transmission route and ignores the second data stream.
[0134] If an individual is considered as an array of variables P involved in the aforementioned problem, many individuals may represent impractical solutions. For example, if the array of positions corresponding to the admission of flow i by route m ( (i, m )) is equal to 0.4 but the maximum acceptable loss is 0.5, this is an impractical solution. Similarly, if two transmission routes are selected to carry the same flow with different admission rates, i.e. (i, X ) > 0, 3(i, y) > 0 and x 7^y. To avoid such fragile relationships within individuals, different strategies can be implemented. One strategy is to consider only variables of the admission rate P as a representation of the chromosome. This avoids weaker relationships, and these variables are sufficient to deduce the correct value of the other variables. For example, if P(i,m) = 0.88, this implies that P(i,m) = 1, all boundary variables corresponding to the same route for the ith flow (s(ij.i)) must be assigned one, and ai = 1. Furthermore, such a representation allows for processing a population with less working memory.
[0135] According to this second embodiment, based on the aforementioned principle and schematically illustrated in relation to Fig. 5b, an S21' step corresponds to an initialization step of the AG algorithm during which each of the streams to be transmitted is assigned to at most one randomly chosen transmission route. Furthermore, since assigning a large number of transmission streams to transmission routes could exceed the linking capacity of the communications network, this assignment is carried out with a very low probability of assignment (0.01%, for example). This allows for the determination of a large number of feasible solutions and the genetic operators (mutation and crossover), as well as the fitness function, to properly guide the evolutionary process and find highly fit individuals.
[0136] For the initial population, P individuals are chosen.
[0137] In one embodiment, the chosen population is limited to approximately one hundred individuals. Indeed, for large instances, the genotype can be a very long table, and processing long individuals can therefore be very time-consuming; having more individuals can reduce the time needed to explore more generations and properly guide the population towards good fitness.
[0138] To improve the search for suitable individuals, one possible strategy is to create chromosomes with intelligent initialization. An individual is then chosen from the initial population to contain the solution provided by a so-called "greedy" algorithm. The greedy algorithm sorts the flows in non-increasing order of their priorities and attempts to find routes that can accept the flows in this order. If this is not possible, the greedy algorithm's strategy rejects as many flows as possible in order to admit all other possible flows. A greedy algorithm is designed to make successive local optimal choices to obtain a global optimal result.
[0139] The AG algorithm, for example, then includes a selection step S22' using a fitness function, which measures the fitness of each individual in the selected population. According to one implementation example, the fitness function is a function of an integer linear optimization problem, but one that does not directly know the variables 'a'. It must therefore be inferred that there exists a variable P whose value is not 0 for the i-th stream. However, when assigning a data stream to a given transmission route, the genetic algorithm does not know if this assignment exceeds the capacity of a link, which then leads to an impractical solution.To avoid such cases, it is proposed to draw inspiration from a reinforcement learning technique, whereby the fitness function can provide negative rewards to individuals that assign a data stream to a route exceeding a link's transmission capacity. This penalty is cumulative for data streams exceeding the link's capacity; if previous streams do not match, they are considered invalid, and a negative reward is then added to the fitness function's value. Such a formulation avoids positioning data streams to be transmitted on transmission routes that exceed a link's capacity, as fitness decreases when selecting these individuals, which are therefore less likely to survive and be passed on to subsequent generations. Once the fitness function is defined, the individuals are sorted in non-increasing order of fitness.The fittest individuals are directly copied into the next generation according to a principle of elitism, which ensures that the best identified individuals are not lost.
[0140] During an S23' step, known as the generation step, genetic operators (or crossover operators) are designed to avoid impractical solutions. This is achieved by considering the fragile relationships between the variables used to maximize the preservation of a transmission route for the data stream to be transmitted and to respect the maximum permissible loss for a data stream. According to this principle, a mutation operator first selects a stream to be mutated, then sets all the bits of the individual in the genetic algorithm corresponding to the routing of this stream to zero. Next, with a low probability (0.01%), a random route is chosen for the selected stream. With such a mutation operator, it is guaranteed that only one route is selected to transmit a given stream and that this route respects the maximum allowed loss.
[0141] A genetic operator is then applied to a number of individuals according to the formula P*C, the size of the cross (the number of individuals to be reproduced), where P is the population size and C is the crossing rate.
[0142] Similarly, the genetic operator is applied to a number of individuals according to the formula P*(lC), where M=lC is the mutation rate (the number of individuals to be mutated). The rates start at M=0.05 and C=0.95. Over generations, the mutation rate increases while the crossover rate decreases, maintaining the constraint C+M=l. However, since the genetic algorithm terminates in a fixed time (see termination), the rates are adjusted according to the time elapsed since the algorithm began running.
[0143] For example, a completion step S24' is then executed. Indeed, the problem to be solved here is a bounded optimization problem, meaning that the optimum cannot be greater than This would imply that all flows would be admitted, each with the full requested bandwidth, and then routed via paths of length 1 (direct transmission paths). Therefore, two criteria are chosen to terminate the GA algorithm used. The first criterion is obtaining an individual whose fitness equals the optimal value, which only occurs when the optimal value is the maximum possible value. The second criterion is that the generation process was executed in a constant time. The goal is to find the best possible solution within a predefined acceptable time. In one embodiment, this time constant is on the order of a second (i.e., one or a few seconds), as such time intervals are particularly well-suited to monitoring data flow transmission in a communication network. However, this order of magnitude can be modified.The AG algorithm repeats the generation step S23' until one of the two aforementioned stopping conditions is met during step S24'.
[0144] The use of an AG type algorithm advantageously guarantees the identification of a data flow transmission solution (routing) when a solver module cannot solve the MILP type problem in a reduced time, taking into account the operating conditions of the communication network and the identified data flow transmission needs.
[0145] Fig. 6 schematically illustrates an example of the internal architecture of the CTRL data stream transmission controller device.
[0146] According to the hardware architecture example shown in Fig. 6, the CTRL data flow controller device then comprises, connected by a CTRL-9 communication bus: a processor or CPU (Central Processing Unit) CTRL-1; a RAM (Random Access Memory) CTRL-2; a ROM (Read Only Memory) CTRL-3; a storage unit such as a hard disk drive (or a storage media reader, such as an SD card reader) CTRL-4; at least the CTRL-5 communication interface allowing the CTRL data flow controller device to communicate (via the IP layer) with devices present in the N communication network, such as, for example, transmission nodes 1, 2, 3, 4 and 5, as well as the PACL route calculator device.
[0147] The CTRL-1 processor is capable of executing instructions loaded into CTRL-2 RAM from CTRL-3 ROM, external memory (not shown), storage media (such as an SD card), or a communication network. When the CTRL data stream transmission controller device is powered on, the CTRL-1 processor can read instructions from CTRL-2 RAM and execute them. These instructions form a computer program that causes the CTRL-1 processor to implement all or part of a method for transmitting content, such as content A, across the communication network N, as described in relation to Fig. 4, Fig. 5a, and Fig. 5b, or described variations of this method. All or part of the methods described in relation to Fig. 4, Fig. 5a, and Fig. 5b are also available.5b, or their described variants, can be implemented in software form by the execution of a set of instructions by a programmable machine, for example a DSP (Digital Signal Processor) or a microcontroller, or in hardware form by a dedicated machine or component, for example an FPGA (Field-Programmable Gate Array) or an ASIC (Application-Specific Integrated Circuit). In general, the CTRL data stream transmission controller device comprises electronic circuitry configured to implement the described processes in relation to itself.Of course, the CTRL data flow transmission controller device also includes all the elements usually present in a system comprising a control unit and its peripherals, such as, a power supply circuit, a power supply monitoring circuit, one or more clock circuits, a reset circuit, input / output ports, interrupt inputs, bus drivers, this list being non-exhaustive.
[0148] Fig. 7 schematically illustrates an example of the internal architecture of the PACL transmission route computer device.
[0149] According to the hardware architecture example shown in Fig. 7, the PACL transmission route calculator device then comprises, connected by a CP-9 communication bus: a processor or CPU (Central Processing Unit) CP-1; a RAM (Random Access Memory) CP-2; a ROM (Read Only Memory) CP-3; a storage unit such as a hard disk drive (or a storage media reader, such as an SD card reader) CP-4; at least the CP-5 communication interface allowing the PACL transmission route calculator device to communicate (via the IP layer) with devices present in the N communication network, such as, for example, transmission nodes 1, 2, 3, 4 and 5, as well as the CTRL data flow transmission controller device.
[0150] The PACL-1 processor is capable of executing instructions loaded into PACL-2 RAM from PACL-3 ROM, external memory (not shown), storage media (such as an SD card), or a communication network. When the PACL transmission route calculator device is powered on, the PACL-1 processor can read and execute instructions from PACL-2 RAM. These instructions form a computer program that causes the PACL-1 processor to implement all or part of a method for transmitting content, such as content A, across communication network N, as described in relation to Fig. 4, Fig. 5a, and Fig. 5b, or described variations of this method.
[0151] All or part of the processes described in relation to Fig. 4, Fig. 5a, and Fig. 5b, or their described variants, can be implemented in software form by executing a set of instructions by a programmable machine, for example, a DSP (Digital Signal Processor) or a microcontroller, or implemented in hardware form by a dedicated machine or component, for example, an FPGA (Field-Programmable Gate Array) or an ASIC (Application-Specific Integrated Circuit). In general, the PACL transmission route computing device comprises electronic circuitry configured to implement the described processes in relation to itself.Obviously, the PACL transmission route calculator device also includes all the elements usually present in a system comprising a control unit and its peripherals, such as a power supply circuit, a power supply monitoring circuit, one or more clock circuits, a reset circuit, input / output ports, interrupt inputs, bus drivers, this list being non-exhaustive.
Claims
DEMANDS 1) A method for transmitting a plurality of data streams, carried out in a communication network comprising a control system and nodes connected to each other by unidirectional links, the control system being connected to each of the nodes and links, the method comprising the following steps: i) obtaining by the control system an updated list of streams awaiting transmission, each stream being associated with at least one priority level, a minimum required bandwidth and a maximum permissible data loss rate, each of the streams awaiting transmission being associated with a first node, called the source node, and a second node, called the destination node, ii) obtaining (S1) by the control system at least the operating state of each node and the available bandwidth of each unidirectional link, iii) admission (S2), by the control system, of streams to be transmitted, according to a routing calculation,triggered at least periodically or upon receipt of a flow whose priority level exceeds a predetermined priority level, the routing calculation favoring the highest priority flows, the routing calculation being performed at least according to the available bandwidths of the links, iv) operate (S3) transmissions of flows admitted by the control system into the network. 2) Method for transmitting data streams according to claim 1, comprising an additional step of updating the network topology, of which a list of nodes and a list of links are updated. 3) A method for transmitting data streams according to one of claims 1 and 2, wherein the unaccepted streams are kept in the list of streams awaiting transmission or are cut off to trigger their retransmission. 4) A method for transmitting data streams according to one of the preceding claims, wherein the routing calculation is performed in parallel by an optimization algorithm combining a mixed linear programming algorithm and a solver-type algorithm, and by a heuristic algorithm, a maximum computation time being predetermined, the result of the heuristic algorithm being selected if, at a time of the maximum computation time, the optimization algorithm is not no result was achieved, otherwise the result of the optimization algorithm was selected. 5) A method according to any one of the preceding claims, wherein the routing calculation first favors the highest priority flows, and secondly the largest number of routes for loss-tolerant flows. 6) System configured for the implementation of a process according to one of the preceding claims. 7) A program product comprising instructions for implementing a process according to one of the preceding claims. 8) A storage medium comprising a computer program product according to the preceding claim.