Abstract:
The present invention relates to packet-switched networks, such as Ethernet, and more particularly to a method for traffic shaping of data frames to transmit in such a telecommunication network, the frames to transmit being distinguished between: express frames, needing to be sent within predetermined time windows, and normal frames, intended to be sent at times outside said time windows. More particularly, for a current normal frame, the method comprises the steps of: determining whether said normal frame can be fragmented, and if yes: determining whether a remaining time to a next time window opening is enough to transmit one or several fragments of said normal frame, and if yes: transmitting said one or several fragments.

Description:
TECHNICAL FIELD 
       [0001]    The present invention relates to packet-switched networks, such as Ethernet. 
       BACKGROUND ART 
       [0002]    Such networks are more and more used in domains other than data communications. 
         [0003]    Industrial networks are currently an example of this application (e.g. Profinet standard, IEC standards on redundancy: HSR, PRP, MRP). 
         [0004]    The evolution introduced by these technologies mainly focuses on the improvement of the resilience of these networks: protection against single failure without affecting the data transmission. 
         [0005]    However, other constraints such as the enforcement of strict temporal properties of the data transmission cannot be implemented using standard Ethernet. More particularly, the transmission of control/command messages that requires tightly bounded latency and/or jitter is not properly addressed. 
         [0006]    Several solutions have been developed and standardized in the transportation field, mainly in aeronautics: the Avionics Full-Duplex Switched Ethernet (AFDX, protocol ARINC 664 Part 7) and the technology TTEthernet (SAE AS6802). Both solutions rely on the addition of timing properties to the organization of the packet multiplex. 
         [0007]    As for an example, AFDX defines a Bandwidth Allocation Gap (BAG), which fixes the maximum and guaranteed rate that data of a given flow can be sent at: the BAG sets the volume of data that a flow can transmit within a fixed time interval, as it can be seen on  FIG. 1  which shows two examples of an AFDX traffic shaping according to the BAG. When setting the BAG rate for each flow, care is taken so as to provide enough bandwidth for other flows and the total bitrate cannot exceed the link capacity. The shaping according to the BAG is performed only in the sources and the multiplexing is then performed asynchronously in the downstream nodes. This technique does not provide tight bounds on jitter and transfer delays. 
         [0008]    As for a second example, TTEthernet is based on a tight synchronization of the network nodes, and defines three types of traffic: Time-triggered (TT), Rate-constrained (RC) and Best-effort (BE). 
         [0009]    TT messages are sent over the network according to a predefined static schedule that leverages the domain-wide synchronized clock. They take precedence over all other message types. The schedule defines a set of TT windows for each switch output port, in which TT frames are transmitted. Occurrence, temporal delay and precision of time-triggered messages are predefined and guaranteed. 
         [0010]    RC messages are used for applications with less stringent determinism and real-time requirements. TT windows and a wide domain synchronised clock are used as inputs for the shaping algorithm that controls the RC traffic. The algorithm checks whether each frame transmission can be finished before the next TT window starts. If no frame fits, the transmitter remains idle until the transmission of the next scheduled TT frame begins. This idle time (called “guard band”) guarantees that RC frames (and BE frames also, as explained below) never interfere with TT frames. These messages guarantee that bandwidth is predefined for each application and delays and temporal deviations have bounded limits. 
         [0011]    BE messages follow the usual Ethernet policy and are transmitted in the remaining TT windows, using the interference avoidance mechanism described above. There is no guarantee whether and when these messages can be transmitted, what delays occur and if messages arrive at the recipient. 
         [0012]    These three types of traffics are allocated with time slots according to a TDMA (Time Division Multiple Access) scheme that organizes the transmission multiplex in recurrent cycles subdivided into sub-cycles (base periods), as it can be seen on  FIG. 2  which shows a TTEthernet flow scheduling. The time slots allocated to each traffic type correspond to a volume of data per base period and their (time) position is fixed over the whole network. 
         [0013]    Packets are relayed according to a communication schedule defined a priori. Hence, as the local clocks are synchronized, the communication schedule is executed synchronously and contentions at the network are avoided. Time-triggered communication provides therefore strong temporal partitioning because the possibility that two or more communication participants access the network at the same point in time can be excluded by design. 
         [0014]    In an effort to provide a framework for the support of TT traffics over standard Ethernet-based networks, the IEEE (802.1 TSN Work Group) is currently standardizing a transmission selection mechanism called “Time Aware Scheduler”. This specification is the object of an amendment of the 802.1Q standard which is called “802.1Qbv—Enhancements for Scheduled Traffic”. This transmission selection mechanism relies on transmission gates that are associated with each traffic class queue: a frame on a traffic class queue is not available for transmission if the transmission gate is in the closed state or if there is insufficient time available to transmit the entirety of that frame before the next gate-close event associated with that queue. A per-traffic class queue “queueMaxSDU” parameter defines the maximum service data unit size for each queue. Frames that exceed the maximum size for the queue are discarded. 
         [0015]    A gate control list associated with each Port changes the transmission gate state for the gate associated with each Port&#39;s traffic class queues (#7, #6, . . . , #0- FIG. 3 ). In an implementation that does not support enhancements for scheduled traffic, all gates are assumed to be permanently in the open state. A state machine is in charge of controlling the transitions of the per-queue gate states as it can be seen on  FIG. 3  which shows the principle of a transmission selection according to IEEE 802.1Qbv. 
         [0016]    However, the introduction of a fixed schedule for the organization of the multiplex induces some unfairness in the access to the medium: frames of RC and BE flows can be inserted only in time slots long enough to include a whole frame, which length is nevertheless variable. This leads to additional (not always necessary) delay and jitter in the transmission of RC frames as well as waste of bandwidth on the link 
         [0017]    To solve this issue, IEEE 802.3br (amendment to 802.3: “Specification and Management Parameters for Interspersing Express Traffic”) defines a preemption mechanism of so-called “Normal-Frames” (frames with lower priority, typically RC and BE frames) that guarantees that no conflicts occurs when so-called “Express-Frames” (frames with guaranteed low latency, typically TT frames) are scheduled for transmission and resulting in no added latency for Express traffic. 
         [0018]    This mechanism allows a MAC Client that has a schedule for Express traffic to preempt Normal-Frames before the scheduled Express traffic arrives (as it can be seen on  FIG. 4  which shows Express and Normal traffics data paths). When a scheduled frame arrives, it can be transmitted immediately. 
         [0019]    In addition, the 802.3br specification defines a per-hop fragmentation and reassembly scheme that allows stopping the transmission of a Normal-Frame to give a transmission opportunity to an Express-Frame. Normal-Frame fragments and Express-Frames are distinguished by their preamble length and a so-called “Start Frame Delimiter” (SFD) field as shown in  FIG. 5  which is related to IEE 802.3br frame and fragment formats. This allows non-express frames (Normal-Frames) not to wait for a long enough timeslot to be transmitted, resulting in a limited added latency for Normal flows and a better use of the link capacity. 
         [0020]    It is to be noted that only a single Normal-Frame can be fragmented at any time, i.e. a frame which transmission time span covers one or several TT windows. In  FIG. 5 , MFCS is the CRC (Cyclic Redundancy Check) of a non-final fragment. Here, its value is the same as the FCS (Frame Check Sequence) of the frame octets transmitted XOR FFFF0000. SMD-Ix indicates the beginning of a Normal-Frame, such as a first fragment of that frame (an initial fragment), while SMD-Cx indicates a non-initial fragment of that frame. For completeness of the explanations, MAC DA and MAC SA are respectively the destination and source MAC addresses. “Ethertype” means Ethernet type length filed. The upper part of  FIG. 5  shows then no fragmented Express and Normal Frames, and its lower part shows successive fragments of a Normal Frame. 
         [0021]    The minimum preempted fragment size is 64 bytes. Therefore a packet with a length less than 128 bytes cannot be preempted. Non-final fragments have a length multiple of 8 bytes. 
         [0022]    However, the multiplexing mechanism described above does not guarantee: 
         [0023]    a fair access to the medium to Normal-frames relatively to Express-frames, 
         [0024]    a fair access to the medium to Normal-frames belonging to a given flow relative to other Normal flows, 
         [0025]    that Normal-frames or fragments can be inserted in the multiplex during their allocated time slots according to IEEE 802.1Qbv, 
         [0026]    that Normal-frames can be fragmented according to IEEE 802.3br. 
       SUMMARY OF INVENTION 
       [0027]    The present invention aims to improve the situation. 
         [0028]    To that end, it is proposed first a method for traffic shaping of data frames to transmit in a telecommunication network, the frames to transmit being distinguished between: 
         [0029]    express frames, needing to be sent within predetermined time windows, 
         [0030]    and normal frames, intended to be sent at times outside said time windows (step b) of  FIG. 9  commented below), 
         [0031]    More particularly, for a current normal frame, the method comprises the steps of: determining whether said normal frame can be fragmented (step c) of  FIG. 9 ), and if yes: 
         [0032]    determining whether a remaining time to a next time window opening is enough to transmit one or several fragments of said normal frame, and if yes: 
         [0033]    transmitting said one or several fragments. 
         [0034]    In a particular embodiment, the aforesaid normal frames and, if any, one or several fragments remaining from a previous normal frame processing, are queued in a memory and are assigned with respective processing instants and a current time is compared (step a) of  FIG. 9 ) with a least processing instant so as to implement said steps if the current time is greater than the least processing instant. 
         [0035]    In a more particular embodiment of the invention where several flows of frames are being processed together, each flow comprises successive normal frames and, if any, one or several fragments remaining from a previous normal frame processing. These normal frames and/or fragments of each flow are respectively queued in a memory and are assigned with respective processing instants. Then, a current time is compared (step a) of  FIG. 9 ) with a least processing instant among all the queues of the respective flows so as to implement the steps of the method if the current time is greater than said least processing instant. 
         [0036]    In a particular embodiment, if said current normal frame cannot be fragmented, then it is determined whether a remaining time to a next time window opening is enough to transmit the whole current normal frame, and: 
         [0037]    if yes, said whole current normal frame is transmitted, 
         [0038]    otherwise, a temporization step is applied until a next current time. 
         [0039]    In a particular embodiment, if said current normal frame can be fragmented, then it is determined whether a remaining time to a next time window opening is enough to transmit at least one fragment, and: 
         [0040]    if yes, at least one fragment is transmitted, 
         [0041]    otherwise, a temporization step is applied until a next current time. 
         [0042]    More particularly, if the current normal frame can be fragmented, then it is determined further whether the remaining time until the next window opening is enough to send a remaining part of a normal complete frame, and: 
         [0043]    if yes, corresponding fragments of a remaining part of said normal complete frame are transmitted, 
         [0044]    otherwise, one or several fragments, corresponding to a total duration less than the remaining time until the next window opening, are transmitted. 
         [0045]    In a particular embodiment, the aforesaid remaining time until the next window opening is compared to a time taken for transmitting a fragment or a whole normal frame, said taken time being estimated on the basis of a capacity of a link on which said fragment or frame is transmitted. 
         [0046]    Moreover, the aforesaid processing instants (assigned to the queued frames and/or fragments) are preferably updated at each scheduled transmission of a frame or a fragment, by the duration of that scheduled transmission estimated on the basis of a transmission flow bitrate. 
         [0047]    In an embodiment, a normal frame is considered as able to be fragmented if its total length is at least twice as a length of a minimum fragment size. 
         [0048]    Preferably, that total length of a normal frame is updated with its remaining fragments which have not been transmitted (such frame length updating steps are labelled S 15  and S 18  on  FIG. 9 ). 
         [0049]    In an embodiment, the aforesaid time windows are successively defined in a cyclic timetable (as shown in the example of embodiment of  FIG. 8 ). 
         [0050]    The present invention aims also at a device, having traffic shaping means (such as a processor and at least one memory) for performing the method according to the invention. 
         [0051]    The present invention aims also at a computer program product, comprising instructions for performing the method of the invention, when run by a processor. 
         [0052]    The present invention is illustrated by way of example, and not by way of limitation, in the figures of the accompanying drawings, in which like reference numerals refer to similar elements. 
     
    
     
       BRIEF DESCRIPTION OF DRAWINGS 
         [0053]      FIG. 1  shows two examples of an AFDX traffic shaping according to the BAG, 
           [0054]      FIG. 2  shows a TTEthernet flow scheduling, 
           [0055]      FIG. 3  shows the principle of a transmission selection according to IEEE 802.1Qbv, 
           [0056]      FIG. 4  shows Express and Normal traffics data paths, 
           [0057]      FIG. 5  shows non-fragmented Express and Normal Frames, and successive fragments of a Normal Frame (lower part), 
           [0058]      FIG. 6  shows a system comprising elements which can include a device according to the invention, 
           [0059]      FIG. 7  shows an example of a structure of a device according to the invention, and comprising traffic shaping means so as to perform the method according to the invention, 
           [0060]      FIG. 8  shows an example of a cyclic timetable defining the aforesaid time windows, 
           [0061]      FIG. 9  shows steps of a method according to an example of embodiment of the invention. 
       
    
    
     DESCRIPTION OF EMBODIMENTS 
       [0062]    In the present following specification, “Express traffic” (or “express frame”) denotes low latency, scheduled or TT (“Time-triggered”) traffic (or frame), while “Normal traffic” (or “normal frame”) denotes Rate-constrained (RC) traffic, or Best-effort (BE) traffic, or any other non-Express traffic (or frame). 
         [0063]    The present invention proposes a combined frame scheduling and fragmentation mechanism which makes it possible to guarantee the conditions listed above. 
         [0064]    Referring to  FIG. 6 , the scheduling function can be located in a device D provided for each output port of a switch SW of a network NET, or also in a device D having a frame transmission function in a terminal station (T 1 , T 2 ) for transmitting data or voice data from a terminal T 1 , T 2 . As shown on  FIG. 7 , the incoming frames of each flow (F 1 , . . . , Fi, Fm) which are received through an input interface IN of the device D are stored in FIFO order (“First In First Out”) in an independent queue (Q i  for flow i), in a working memory MEMA. The device D further comprises a processor PROC for performing the method of the invention with synchronization clock data CLK (obtained from the network or from a synchronized internal clock). Furthermore, the device D comprises a memory MEMB (which can be in a same or in a different memory unit from the working memory MEMA) storing the time table TST detailed on  FIG. 8  for allocating timeslots to frames or fragments (FR) to be transmitted. Finally, the frames or fragments (referenced FR in  FIG. 7 ) to transmit are received in an output interface OUT of the device in a convenient order, thanks to the implementation of the invention as detailed below with reference to  FIG. 9 . Of course, the device D can have further a third memory MEMC (in a same or a different memory unit from MEMA and MEMB) for storing computer program code instructions (INST) to be run by the processor PROC so as to implement the method of the invention. 
         [0065]    The device D can be implemented as an autonomous device, such as an independent chip of a terminal T 1 , T 2  or of a switch SW, or alternatively can use hardware resources (such as the processor and/or a memory unit) of such a terminal or switch (or more widely, any element of a network). 
         [0066]    Referring to  FIG. 8 , the time table TST is used as follows. 
         [0067]    Time is expressed in a unit corresponding to the duration of 1 bit on the transmission link attached to the output port. All nodes in the network are preferably synchronised on the same clock and have the same image of the current time CLK. The current value of the time is denoted hereafter as T. 
         [0068]    It is associated a bit-rate, denoted r i , with each flow i, whether it is Normal or Express: 
         [0069]    The volume of data transmitted in the recurring transmission windows of an Express flow allows defining the bit-rate of that flow, 
         [0070]    Normal flows can be allocated with a bit-rate (maximum, enforced or not). 
         [0071]    The sum of all bitrates r i  must not be greater than the total capacity of the link For the sake of simplification, all links have preferably (but optionally) the same capacity, denoted ρ hereafter. 
         [0072]    The transmissions of frames of each Express flow follow a periodic pattern. The table TST (of finite length) can contain the succession of all successive transmission window opening and closing times (respectively t o   k  and t c   k ) of all the scheduled Express flows. This means that an Express frame or fragment is transmitted within a time interval [t o   k , t c   k ] while a Normal frame or fragment is rather transmitted in a left time interval [t c   k , t o   k+1 ] (with k modulo n). The assumption is also made that the duration of each widow is pre-computed so that, when opened, the window can permit the transmission of the Express-frames for which it has been provided. All Express window opening and closing times are stored in the circular table TST (with k[n] shown by the circular arrow CIRC on  FIG. 8 ). In practice, each entry of the table is a couple (t o   k , t c   k ) which respectively represents the opening time and the closing time of a window k. An offset corresponding to the depth of the table is added to the entry at each time when a read pointer of the table rewinds back to the first element of the table. The read pointer takes into account the current value of time T. 
         [0073]    As for Normal flows, each normal frame stored at the head of each flow queue is associated with a theoretical transmission time (TT i ), which corresponds to the theoretical time the first bit of the frame is supposed to be transmitted at. TT i  are sorted in increasing order and the Normal frame or fragment with the least TT i  (referenced min(TTi) in  FIG. 9 ) is the next Normal frame or fragment candidate for insertion on the multiplex. 
         [0074]    With reference now to  FIG. 9 : 
         [0075]    S is the size of the current Normal-frame or fragment to be transmitted, 
         [0076]    minfs is the minimum fragment size as defined by IEEE 802.3br (“minFrag” according to the notation of that value in that specification), 
         [0077]    r i  is the bitrate of flow i, 
         [0078]    ρ is a mean capacity (in the example described here) of a link, 
         [0079]    Δt is a time increment during a temporisation step S 2  (for example the duration of a one bit transmission), 
         [0080]    TT i  are the theoretical time the first bit of a frame or fragment FR in a queue Q i  is supposed to be transmitted at, before the computation according to the method of the invention. 
         [0081]    A Normal-frame or fragment is inserted on the multiplex (actually transmitted) at least if the following conditions are met: 
         [0082]    a) T≧min(TT i ) (arrow “OK” from test a) on  FIG. 9 ) and 
         [0083]    b) T is not comprised in the current (t o   k , t c   k ) window (arrow “KO” from test b) on  FIG. 9 ) and 
         [0084]    c) S≧ 2 *minfs (arrow “OK” from test c) on  FIG. 9 ). 
         [0085]    Condition a) means that the current time T has come to start considering normal frames. 
         [0086]    If condition a) is systematically verified, the system guarantees that each Normal flow is not transmitted at a rate greater than r i . It should be noted that condition a) can be made optional if fairness only between RC flows is to be achieved relatively to a weight represented by their respective bit-rate r i . 
         [0087]    Condition b) means that it is checked whether the current time T is within a time window k (e.g. between its opening time t o   k , and its closing time t c   k ) so as to give priority to the transmission of an Express frame in that case. 
         [0088]    Condition c) means that it is checked whether (if the conditions a) and b) above are achieved) that a Normal frame can be fragmented of not. If it cannot be fragmented (arrow KO at the output of test c)), then a temporisation step S 2  is performed until the time duration [t c   k , t o   k+1 ] (with k [n], meaning “k modulo n”) is long enough to send this non fragmentable Normal frame. If the Normal frame can be fragmented (arrow OK at the output of test c)), then further tests and steps are implemented as detailed below so as to perform the fragmentation in good and fair conditions. 
         [0089]    The process starts with a first step S 1 , of: 
         [0090]    Considering Normal frames or fragments to transmit (the algorithm points to a routine dedicated to Normal frames and fragments to process for transmission—for sending a whole frame or a fragment, common steps of the routine are used for algorithmic optimization), 
         [0091]    Then, calculating the TT i  in each queue, 
         [0092]    Referring to the table TST so as to determine the current time window having the current index k, 
         [0093]    Referring to the clock so as to determine the current time value T. 
         [0094]    Then, step a) is performed: if current T has come for sending a Normal frame or fragment, then it is verified whether, considering the current window index k, the current time falls after the closing of that time window k (arrow OK from test T 3 ), meaning then that the window index k needs to be updated (increment of step S 4 , with k [n]). Then, step b) is performed so as to determine whether priority is to be given to Express frames. Otherwise (arrow KO from test b)), it is determined whether the Normal frame can be fragmented. If not (arrow KO from test c)), then test T 6  can be performed with the information that the frame cannot be fragmented (dashed arrow line KO from test c)). In test T 6 , it is determined whether a whole and complete frame can be transmitted, while taking into account the remaining time T to the next window opening t o   k , and the link capacity ρ. If yes (arrow OK from test T 6 ), then the frame FR is sent at step S 7 . The next time scheduled TT i  for sending the next frame (or fragment as it will be seen later) is updated at step S 8 , while taking into account the flow bit-rate r i  for sending a new frame having a size S. A test T 9  is further performed so as to read the latest fragment—typically its heading—to be transmitted at step S 7 , to determine whether that fragment was the end of a frame. In the present branch of following the algorithm, since a complete frame is sent at step S 7 , the output of test T 9  should be “OK” and a next candidate frame is considered (step S 10 ) to be processed referring back to step S 1 . 
         [0095]    If a whole and complete frame cannot be transmitted according to the test T 6  (dashed arrow line KO from test T 6 , with the information that the frame cannot be fragmented), then a temporisation step is performed in step S 2 , so as to wait for a new time interval [t c   k , t o   k+1 ] long enough to send the whole frame. 
         [0096]    If the frame can be fragmented (arrow OK from step c)), then fragmentation is contemplated and in test T 5  it is checked whether the time left until the next window opening is long enough to send a fragment having a duration minfs. If yes (arrow OK from test T 5 ), it is checked further whether a whole frame can be sent (at test T 6 , explained above). If fragments only can be sent (arrow KO from test T 6  with the information that the frame can be fragmented), it is checked, at test T 12 , whether the remaining time until the next window opening is sufficient to send a remaining part of a complete frame (arrow “KO” of test T 12  which condition can be written also: (t o   k −T) ρ≧S−minfs: meaning then that at least one fragment (complementary for building the complete frame) having a length S−minfs can be created and sent at step S 13  without disturbing the next transmission frame or fragment). Then, the scheduled times TT i  are updated accordingly at step S 14 , and so as the next frame length to consider at step S 15 . Then, it can be checked whether that fragment is an end of frame (test T 9 ). Normally, it should. It is nevertheless preferred to check it in the shown example because a last step (not shown on  FIG. 9 ) can consist on calculating the FCS (Frame Check Sequence) to add at the end of the frame to transmit. 
         [0097]    If (t o   k −T)ρ≦S−minfs (arrow OK from test T 12  while (t o   k −T)* ρ≧minfs in test T 5 ), this means that at least one fragment can be created and sent at step S 16  (but not a last fragment terminating a frame). The length of the fragment is given by (t o   k −T)* ρ in step S 16 . Then, the scheduled times TT i  are updated accordingly at step S 17 , and so as the next frame length to consider at step S 18 . Then, it can be checked whether that fragment is an end of frame (test T 9 ). Here, it can or cannot. If not (arrow KO from test T 9 ), then a next fragment is considered in step S 11  to implement with it step S 1  again. 
         [0098]    It should be noted that when step S 1  is implemented again, the respective times TTi in the queues Q 1 , . . . , Qm (of the different flows F 1 , . . . , Fm) have been updated in one of the steps S 8 , S 14  and S 17 , and the current time T has also advanced during the transmission of the fragment or the frame in one of steps S 7 , S 13 , S 16 . Therefore, these parameters TTi and T are naturally updated and ready to be used at step S 1  (with a current window index k which can be updated also at step S 4 ). 
         [0099]    The main steps of the algorithm shown on  FIG. 9  are listed below: 
         [0000]    
       
         
               
               
             
           
               
                   
                   
               
             
             
               
                   
                 a) If T ≧ min(TT i ) and 
               
               
                   
                 b) If T is not comprised in the current (t o   k , t c   k ) window and 
               
               
                   
                 c) If S ≧ 2* minfs, 
               
               
                   
                 If (t o   k − T)* ρ ≧ minfs 
               
               
                   
                 If (t o   k − T)* ρ ≧ S 
               
               
                   
                 Send frame or final fragment 
               
               
                   
                 TT i  = TT i  + (S/r i ) 
               
               
                   
                 Select next frame of fragment candidate for transmission 
               
               
                   
                 Else 
               
               
                   
                 If (T+ S/ρ) − t o   k  &gt;= minfs/ ρ 
               
               
                   
                 Create and send fragment of length (t o   k  − T)* ρ 
               
               
                   
                 TT i  = TT i  + ((t o   k  − T)* ρ/r i ) 
               
               
                   
                 S = S − (t o   k  − T)* ρ 
               
               
                   
                 Select next fragment or frame candidate for transmission 
               
               
                   
                 Else 
               
               
                   
                 Create and send fragment of length (S − minfs) 
               
               
                   
                 TT i  = TT i  + ((S − minfs)/r i ) 
               
               
                   
                 S = minfs 
               
               
                   
                 Select next fragment or frame candidate for transmission 
               
               
                   
                 Endif 
               
               
                   
                 Endif 
               
               
                   
                 Endif 
               
               
                   
                 Else 
               
               
                   
                 If (T+ S/ρ) &lt; t o   k   
               
               
                   
                 Send frame or final fragment 
               
               
                   
                 TT i  = TT i  + (S/r i ) 
               
               
                   
                 Select next frame or fragment candidate for transmission 
               
               
                   
                 Endif 
               
               
                   
                 Endif 
               
               
                   
                   
               
             
          
         
       
     
         [0100]    The invention can be applied to any domain where a workload (computing time, process scheduling, etc.) has to be shared in time. In those cases, no particular change is to be made. 
         [0101]    The invention can apply in networks supporting mix of applications with various time constraints (ranging from strong real-time (e.g. critical control loops) to more relaxed latency and synchronisation (audio-video transport) and best-effort). 
         [0102]    The present invention can be implemented for example in time sensitive control networks (or any network such as in factory automation, or automotive or utilities or trains). 
         [0103]    This invention solves a standard implementation problem but can be used as support for the standardisation any other “transmission selection” mechanism within IEEE 802.1 TSN, providing then a network traffic shaping with ultra-low latency and a network load sharing optimisation. 
         [0104]    It has been described above in details the processing of several flows in parallel queues (Q 1 , . . . , Qm) like shown on  FIG. 7 . However, the invention can be performed also with a single queue of one single flow. Then, each frame or fragment of the queue has a processing time TTi which can be updated and rearranged at each implementation of the steps shown on  FIG. 9  so as to determine which fragment or frame is to process at a next implementation of those steps. 
         [0105]    The present invention can be embedded in a computer program product, which comprises all the features enabling the implementation of the methods described herein, and which, when loaded in an information processing system (for example a user equipment or a network element), causes the information processing system to carry out the invention. Computer program means or computer program in the present context mean any expression, in any language, code or notation, of a set of instructions intended to cause a system having an information processing capability to perform a particular function either directly or after the conversion to another language. Such a computer program can be stored on a computer or machine readable medium allowing data, instructions, messages or message packets, and other machine readable information to be read from the medium. The computer or machine readable medium may include non-volatile memory, such as ROM, Flash memory, Disk drive memory, CD-ROM, and other permanent storage. Additionally, a computer or machine readable medium may include, for example, volatile storage such as RAM, buffers, cache memory, and network circuits. Furthermore, the computer or machine readable medium may comprise computer or machine readable information in a transitory state medium such as a network link and/or a network interface, including a wired network or a wireless network, that allow a device to read such computer or machine readable information. 
         [0106]    While there has been illustrated and described what are presently considered to be the preferred embodiments of the present invention, it will be understood by those skilled in the art that various other modifications may be made, and equivalents may be substituted, without departing from the true scope of the present invention. Additionally, many modifications may be made to adapt a particular situation to the teachings of the present invention without departing from the central inventive concept described herein. Furthermore, an embodiment of the present invention may not include all of the features described above. Therefore, it is intended that the present invention not be limited to the particular embodiments disclosed, but that the invention include all embodiments falling within the scope of the invention as broadly defined above. 
         [0107]    A person skilled in the art will readily appreciate that various parameters disclosed in the description may be modified and that various embodiments disclosed and/or claimed may be combined without departing from the scope of the invention. 
       INDUSTRIAL APPLICABILITY 
       [0108]    This invention is applicable to networks in many kinds of fields.