EP1766889A1 - Marking of a datagram transmitted over an ip network and transmission of one such datagram - Google Patents

Marking of a datagram transmitted over an ip network and transmission of one such datagram

Info

Publication number
EP1766889A1
EP1766889A1 EP04805663A EP04805663A EP1766889A1 EP 1766889 A1 EP1766889 A1 EP 1766889A1 EP 04805663 A EP04805663 A EP 04805663A EP 04805663 A EP04805663 A EP 04805663A EP 1766889 A1 EP1766889 A1 EP 1766889A1
Authority
EP
European Patent Office
Prior art keywords
datagram
router
vector
terminal
read
Prior art date
Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
Withdrawn
Application number
EP04805663A
Other languages
German (de)
French (fr)
Inventor
Christophe Proust
Noël CANTENOT
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Orange SA
Original Assignee
France Telecom SA
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by France Telecom SA filed Critical France Telecom SA
Publication of EP1766889A1 publication Critical patent/EP1766889A1/en
Withdrawn legal-status Critical Current

Links

Classifications

    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L45/00Routing or path finding of packets in data switching networks

Definitions

  • the present invention relates to a method of marking a datagram transmitted in a communication network of the IP (“Internet Protocol”) type. It also relates to a transmission method which can use a marking of a datagram thus carried out.
  • IP Internet Protocol
  • the identification of the path followed by a datagram in a communication network is an important issue for several aspects. This concerns, in particular, certain services intended to guarantee transmission quality guarantees. For example, it is preferable that successive datagrams of the same flow follow the same path in the network, in order to avoid that the order of arrival of the datagrams at the destination terminal is different from the order of sending of the same datagrams by the5 transmitting terminal.
  • a transmission method exists, according to which the path followed by a datagram in the network is registered in the datagram by the terminal transmitting the datagram.
  • This process is known as "source routing".
  • a drawback of this method comes from the fact that the terminals 0 do not know the network topology, that is to say that they do not know the available or unavailable links of the network.
  • the path entered in the datagram is definitively fixed at the time of the transmission of the datagram by the transmitting terminal, and no subsequent modification of the path is possible depending on the possible unavailability of certain links in the network.
  • This transmission method therefore does not make it possible to activate adaptive mechanisms of the routing function in IP networks.
  • the use of the “source routing” method does not reduce the risk of the appearance of congestion phenomena in the network, that is to say situations according to which the number of datagrams to be routed by a determined link. of the network reaches or exceeds the maximum transmission capacity of this link.
  • the path registered in a datagram cannot contain more than nine routers, because of the size of the field of the datagram in which this path is registered.
  • the “source routing” process lacks security, in the sense that the source IP address of the first datagrams can be usurped to cross an access control system based on this address. Second datagrams sent in response to the first datagrams also using the “source routing” process can then be diverted. According to a known method of identifying the path followed by a datagram in a network, called "record routing", each router through which a datagram passes inscribes its IP address in this datagram, following the address entered by the previous router on the path followed by the datagram.
  • a traceability of the path followed is thus obtained, by reading the series of addresses entered in the datagram.
  • This method of identifying the path followed has the disadvantage of not making it possible to orient a datagram at the level of a router as a function of data external to this router at the time of the transmission of the datagram.
  • the number of routers of the path followed by a datagram registered in this datagram according to the “record routing” method is limited to nine routers.
  • An object of the present invention is to develop a marking of a datagram transmitted in a communication network, which does not have the drawbacks of the “source routing” and “record routing” methods indicated above.
  • the invention provides a method of marking a datagram transmitted in a communication network comprising routers connected together by transmission links.
  • the datagram is transmitted from a terminal sending the datagram connected to a first network router to a terminal receiving the datagram connected to a second network router.
  • the datagram comprises a vector formed of ordered fields each containing a reference and a vector index field.
  • each router in the network has a table of references.
  • the marking process comprises the following steps, when a router receives the datagram: - reading a value in the index field of the datagram, - reading the reference contained in the vector field of the datagram designated by the value d 'index read; - if the router table does not contain the reference read, writing, in the vector field of the datagram designated by the index value read, of a reference selected in the router table; - entry, in the index field of the datagram, of a value equal to the value read incremented by one; and - transmission of the datagram to a next router on the network.
  • the recording of a new reference in the datagram by a router is not systematic.
  • the reference read which constitutes data external to the router during the transmission of the datagram, is preferred to remain registered in the datagram.
  • the registration by the router of a new reference occurs when the reference read is not contained in the router reference table.
  • the router is then autonomous in selecting, in its reference table, the new reference to be entered in the datagram.
  • the references entered in the vector fields of the datagram are each identical to a reference contained in the reference table of a router having transmitted this datagram. More precisely, the reference registered in the n th field of the vector is contained in the table of the n th router located on the path followed by the datagram in the network, n being a value taken by the vector index of the datagram during the transmission of it in the network.
  • each reference identifies a route along which the datagram was transmitted by a router
  • knowledge of the meaning of the references in the table of each router makes it possible to reconstruct the path followed by the datagram in the network.
  • the marking method according to the invention is safe, because the mere reading in the datagram of the references written in the fields of the vector is not sufficient to obtain significant information. It is also essential to know the meaning of the references for each router. Intercepting a datagram without having this knowledge does not allow an exploitation of the references registered in this datagram.
  • the reference read by the router is identical to a registered reference by this router during the transmission of an earlier datagram of said stream. If the network has stable operation, that is to say that no breakdown or congestion of certain network links occurs, which affects a router through which said previous datagram has passed, the same reference contained in the table a router through which several successive datagrams of the flow pass is then associated with all these datagrams. An identical marking is thus obtained along the path followed by the successive datagrams of the flow, to which a specific processing associated with this flow can be attached.
  • the invention also relates to a method of transmitting a datagram in which route references are written.
  • These references may have been previously entered in the datagram using a marking process as described above, but not necessarily. They may also have been entered in the datagram by another method, such as, for example, a “source routing” type method.
  • a knowledge of the network topology by the terminals is necessary, as well as a knowledge by the terminals of the reference tables of the routers.
  • a network router has a table of references associated with respective routes between this router and a destination terminal of the datagram connected to the network.
  • the reference table is associated with a unique destination prefix contained in a routing table of the router.
  • the datagram transmission method then includes the following steps: - when the datagram is received by the router, reading a reference in the datagram; and - search for the reference read from the router reference table,. if the table contains the reference read, transmission of the datagram along the route with which the reference read is associated,. otherwise, selection of a reference in the table, and transmission of the datagram along the route with which the selected reference is associated.
  • a transmission method according to the invention is implemented at the level of the IP protocol layer.
  • a first advantage of such a transmission method lies in the fact that it requires only an adaptation of the IP layer, without modification of the other layers of protocols implemented in the routers. An existing communication network can therefore be easily adapted for the implementation of such a transmission method.
  • a second advantage of a transmission method according to the invention comes from the fact that it allows an initial qualification of the path followed by a datagram in the network.
  • the transmission of a datagram by a router takes priority into account a route reference read in this datagram.
  • successive datagrams of the same stream, transmitted by a given transmitting terminal bound for a given receiving terminal are transmitted in the network along identical routes, if these datagrams contain, during their transmission by the transmitting terminal , with the same references, and if the network has stable operation.
  • the reference table of a router does not contain the reference read from a datagram, this router selects a route from possible routes to transmit the datagram.
  • the transmission method of the invention therefore conforms to the main mode of operation of an IP network, by independent elementary transmissions, designated by "hop by hop” in English.
  • the reference selected in the reference table of the router is also written into the datagram using a marking method as described above.
  • marking and transmission methods according to the invention are simultaneously implemented within an IP network, in addition to the functions of transmitting datagrams and knowing the network topology, the routers can modify the references of registered routes in datagrams. Initial references can be entered in the datagrams by the terminals, without knowledge of the network topology. To this end, the terminals can store references read in a received datagram, in order to use these read references as initial references for an emitted datagram.
  • the router reference table further comprises, for each reference of said table, a load rate value assigned to the route to which said reference is associated.
  • the load rate of a route characterizes the amount of traffic carried along this route.
  • the invention also relates to a terminal adapted to implement a marking process as described first.
  • a terminal comprises: - means for producing a datagram intended to be transmitted by the terminal, the datagram comprising a vector of ordered fields and a vector index field; means for registering an initial reference in each field of the datagram vector intended to be transmitted by the terminal; and - means for registering an initial value in the index field of the datagram intended to be transmitted by the terminal.
  • the terminal further comprises: - means for reading second references in fields of an additional vector contained in a datagram received by the terminal; and - means for storing, in a table of communication session contexts of said terminal, second references with communication session context data of the received datagram, so that the initial reference entered in each field of the vector of the datagram intended to be sent by the terminal is a so-called second reference read in a field of the additional vector of the received datagram, when the datagram intended to be sent belongs to the communication session of the received datagram.
  • previously determined route references can be used for the datagram intended to be transmitted.
  • the means for producing the datagram intended to be transmitted can be adapted so that the datagram intended to be transmitted further comprises an additional vector of fields.
  • the terminal then further comprises: - means for reading first references in fields of a vector contained in the received datagram; means for storing, in the table of contexts of communication sessions of said terminal, said first references with the communication session context data of the received datagram; and means for registering said first references in the fields of the additional vector of the datagram intended to be sent by the terminal, when the datagram intended to be sent belongs to the communication session of the received datagram.
  • the invention further relates to a router suitable for implementing a transmission method as described secondly.
  • Such a router comprises: means for reading a value in a vector index field of a datagram received by the router; means for reading a reference contained in a vector field of said datagram designated by the index value read; - means for storing a reference table; - means for associating the references contained in the table with respective routes; means for searching for a read reference, in the reference table of said router, arranged to control a transmission of said datagram along the route with which the read reference is associated, if the reference table contains the read reference; means for selecting a reference in the reference table, arranged to be activated if the reference table does not contain the reference read, and arranged to control a transmission of said reference datagram along the route to which the selected reference is associated; and means for recording, in the index field of said datagram, a value equal to the value read incremented by one.
  • the association means are included in means for calculating a routing table of this router.
  • the calculation means belong to a control unit of the router.
  • the router can be adapted to simultaneously implement a method of marking a datagram passing through this router, as described first. For this, it further comprises means for writing the reference selected in the vector field of the datagram designated by the index value read. Even if the combination within the same router of the implementation of the marking and transmission methods which are the subject of the invention is particularly advantageous for obtaining an efficient operation of the network, the router may include means for implementing the method regardless of the presence, in this same router, of datagram marking means. And vice versa.
  • a router which combines implementations of the two methods, some of the means mentioned above for each method may be common to the two methods.
  • the invention finally relates to a communication network which comprises a router as described above.
  • FIG 1 shows a communication network in which the invention can be implemented
  • - Figure 2 illustrates the structure of an IP datagram header as used for an implementation of the invention
  • - Figures 3a and 3b intended to be associated, illustrate different stages of a transmission according to the invention of several datagrams, within a network as shown in Figure 1
  • - Figure 4 is a flow diagram of a method of transmitting a datagram according to the invention.
  • a communication network by transmission of datagrams 100 comprises routers 4-9 linked together by transmission links.
  • a chain of routers forms a route in the network 100, to transmit a datagram.
  • Each router can include a routing unit (or
  • Forming unit which transfers the datagrams between two links linked to this unit, and a command unit (or “control unit”) which supervises the activity of the routing unit.
  • control unit which supervises the activity of the routing unit.
  • the routing unit and the control unit are respectively referenced 5a and 5b. Terminals are connected to some of the routers in network 100.
  • terminals can be of different types, such as, for example, computer units, mobile communication units, etc.
  • computer units 1 and 10 are connected to routers 4 and 7, respectively.
  • Data produced by terminal 1 and intended for terminal 10 is distributed by terminal 1 in IP datagrams.
  • IP datagrams are transmitted by some of the routers of the network 100 to the terminal 10. It is considered below that the operation of an IP type network is known.
  • each transmission link of the network 100 is identified by a prefix DP, followed by identifiers of each of the routers or terminals connected to this link.
  • Each IP datagram has a header as shown in Figure 2, for version 4 of the IP protocol (IPv4).
  • IPv4 IP protocol
  • the header includes a basic header part Bl present in all the datagrams, and an optional header part B11.
  • the header part B1 has a fixed length of 20 bytes.
  • the header part B11 can have a variable length.
  • Among the fields of the header part B1 appear the field "SOURCE ADDRESS", in which the IP address of the terminal sending the datagram is indicated, and the “DESTINATION ADDRESS” field, in which the IP address of the terminal receiving the datagram is indicated.
  • Other fields include: - the “Type Of Service”, or TOS, field in which the way in which the datagram is to be managed is specified; - the "TOTAL LENGTH” field, in which the total length of the datagram is specified; - the "ID” field intended to receive an identification number of the datagram, in particular with a view to possible fragmentation of the datagram; - the “TTL” or “TIME TO LIVE” field, in English, in which is indicated a maximum duration of existence of the datagram being routed in the network; and - the “PROTOCOL” field, in which the high-level protocol to which the data placed by the sending terminal in the datagram data field (or “payload”, in English, and not shown in FIG. 2) is indicated. ).
  • the header part B11 comprises a first field denoted “OPT. TYPE ", 1 byte. This field is intended to receive a reference constructed according to a nomenclature known to those skilled in the art. This reference specifies the presence, the class and a dedicated option number, which make it possible to identify the nature of the content of the header part Bll. By way of example, for the embodiment of the invention described below, this reference can be 10011001 in binary representation of the byte. The length of the header part B11, expressed in bytes, is indicated in the "OPT.” LENGTH ”(1 byte). For the implementation of the invention described here, the maximum possible length for the header part B11 is used, namely 40 bytes.
  • the 38 bytes remaining available in the header part B11 are divided into four fields arranged as follows: - a first field denoted FVI, for “Forward Vector Index” in English, of 1 byte, intended to receive a value digital index; - a second field denoted BVL, for “Backward Vector Length”, also of 1 byte, intended to receive a value of vector length; - a first ordered series of 36 fields, noted FFIV, for "Forward Flow Identifier Vector", of 18 bytes in total.
  • the fields of this first series arranged one after the other, form a first vector and are intended to receive 36 first digital references, coded on 4 bits each.
  • the index and the first vector are respectively designated below by the FVI index and the FFIV vector.
  • the FVI index is used to locate a field in the FFIV vector, by the sequence number of the position of this field in the FFIV vector, counted from the start of the vector.
  • the value of the FVI index varies between 1 and 36.
  • a second ordered series of fields denoted BFIV, for "Backward Flow Identifier Vector", also of 18 bytes in total. This second series of fields is organized in the same way as the first series of fields.
  • the BFIV fields form a second vector and are intended to receive 36 second digital references coded on 4 bits each.
  • This second vector which corresponds to the additional vector mentioned in the general description of the invention, is designated hereinafter by BFIV vector.
  • BFIV vector This second vector, which corresponds to the additional vector mentioned in the general description of the invention, is designated hereinafter by BFIV vector.
  • the positions of the fields FVI and BVL, as well as those of the fields of the vectors FFIV and BFIV shown in FIG. 2 are given by way of example. Other positions can be chosen, in order to obtain alternative embodiments of the invention. Such alternative modes of implementation are also included in the invention. However, it is particularly advantageous, in the context of the IPv4 version of the IP protocol, to design the FVI and BVL fields, as well as the FFIV and BFIV vector fields, so as to exploit the maximum length of the part of- Bll head.
  • IPv6 IP protocol
  • FIB table for "Forwarding Information dataBase” in English.
  • Table 1 below represents a part of such a routing table, established by way of example for router 5 in FIG. 1:
  • the FIB table must be read in rows, each row corresponding to a route.
  • the second line characterizes the direction to take, that is to say the IP address of the following router, ie DP_5_6: 6, to reach the destination prefix DP_7_10.
  • the first column of the FIB table entitled “Destination Prefix” in English, groups DP destination prefixes.
  • the destination prefix noted DP_7_10 corresponds to the interconnection subnet between router 7 and terminal 10.
  • the second column of the FIB table entitled “Next Hop", indicates an IP address of a router or terminal connected to router 5 by a single transmission link, for each destination prefix indicated in the first column.
  • IP addresses are constructed in a known manner, with a DP prefix followed by an identifier of the terminal or the router.
  • the columns “Interface” and “Encapsulation L2” give useful information for the transmission of the datagram, without relation to the invention.
  • the IP address of the terminal receiving this datagram is read in the "DESTINATION ADDRESS" field in the header part B1 of the datagram.
  • the destination prefix of the address read is isolated using a network mask, and is identified with one of the destination prefixes contained in the first column of the FIB table according to a principle of greater coincidence, or "longest match" in English.
  • the FIB table of each router is completed in the following manner, illustrated by table 2 below. Table 2 also represents a part of the FIB table, established by way of example for router 5 (see FIG. 1):
  • a FIB table conforming to table 2 has two additional columns.
  • the first column contains route references, and is titled “Ref.”
  • the second column titled “Load”, contains load rate values.
  • a FIB table conforming to table 1 indicates a single possibility of transmission of a datagram by the router, for each destination prefix.
  • an FIB table conforming to table 2 indicates a or several possibilities of transmitting a datagram for each destination prefix. Each possibility corresponds to a different route between the router concerned, that is to say the router 5 in the example considered, and the destination terminal whose IP address is read in the datagram.
  • the “Ref.” Column associates a numerical reference to each of these routes.
  • references distinguish the different routes taken into account in the FIB table, which correspond to the same destination prefix.
  • the same reference can possibly be used several times in the FIB table, to designate routes corresponding to different destination prefixes.
  • the references associated with the routes taken into account in the FIB table have only an identification function, and do not correspond to a classification.
  • the references used depend on the modifications which have occurred in the FIB table during successive updates thereof, established by the control unit of the router.
  • the reference table mentioned in the general description of the invention is formed by all of the rows of the FIB table which correspond to a single determined destination prefix.
  • the reference table considered for a datagram whose destination prefix is DP_7_10 comprises the third to fifth rows of the FIB table, without counting the row of column names .
  • the "Load" column indicates a value of load rate. This value is determined by the control unit based on network status data. Such data are, for example, load rate values of at least some of the links in network 100.
  • the value indicated in the “Load” column for each row of the FIB table can be, for example, at the most large of the load rate values of all links along the route corresponding to this line.
  • This communication session context includes in particular the following data: the respective IP addresses of the terminals 1 and 10, a transport protocol number (for example the TCP or UDP protocols) and source and destination port numbers.
  • the data of the communication session context are stored in the terminal 1.
  • the terminal 1 configures the header part B1 of this datagram. In particular, it registers the respective IP addresses of terminals 1 and 10 in the "SOURCE ADDRESS” and "DESTINATION ADDRESS" fields. It also configures the header part Bll, by entering the following initial values in the different fields: - OPT field. TYPE: 10011001 - OPT field.
  • LENGTH 40 - FVI field: 1 - BVL field: 0 - FFIV vector fields: 0, 0 0 - BFIV vector fields: 0, 0 0
  • 1 is the initial value of the index FVI
  • 0 is the initial value entered in the BVL field.
  • 0 is also the initial reference entered in all the fields of the vectors FFIV and BFIV.
  • the reference 0 is reserved for the initialization function: it is not used in the router reference tables to identify a route.
  • the initialization at 0 of the fields of the vectors FFIV and BFIV of a datagram by a terminal means that this datagram is either an isolated datagram, or a first datagram of a flow, or a datagram subsequent of a flow for which the transmitting terminal does not have predetermined initial references.
  • These references entered in the fields of the vectors FFIV and BFIV of the datagram 20, as well as the values written in the fields FVI and BVL of the datagram 20, are stored by the terminal 1 with the data of the context of the communication session.
  • the terminal 1 then transmits the datagram 20 to the router 4 (step B).
  • the router 4 transmits the datagram 20 to the router 5 (step C).
  • the router 4 writes the value 2 in the index field FVI of the datagram 20, as well as the reference 3, given by way of example, in the first field of the vector FFIV of the datagram 20.
  • the method of transmission of the datagram 20, implemented within each router, is now described in detail for the router 5.
  • the router 5 selects a line in its FIB table (table 2). This selection is made in two successive stages. During a first step of selecting a line from the FIB table, the router 5 reads the IP address of the destination terminal of the datagram 20 in the "DESTINATION ADDRESS" field of the header part Bl.
  • the destination prefix isolates the destination prefix from this address, and compares it to the destination prefixes contained in the first column of the FIB table. According to the process of greatest coincidence (“longest match”), it selects from the FIB table the longest destination prefix which corresponds to that of the IP address of the destination terminal.
  • the selected destination prefix is noted DP_7_10 (table 2).
  • Router 5 first reads the value entered in the FVI index field of datagram 20 (step 30). The value read is 2. It then reads the reference contained in the field of the vector FFIV whose position within this vector corresponds to the value read in the FVI field (step 31). The reference 0 is thus read in the second field of the vector FFIV. Since the reference read is equal to the initialization reference (step 32a), the router 5 is then autonomous in determining the route along which it transmits the datagram.
  • the router 5 registers the reference 4 in the field of the vector FFIV designated by the index FVI (second field of the vector FFIV - step 34 of FIG. 4). It then increments the value of the FVI index by one and writes the value obtained in the FVI field of the datagram 20 (step 35).
  • the datagram 20 then contains the values and references indicated in FIG. 3a, for step D.
  • the line of the FIB table which corresponds to the selected destination prefix and to the reference 4 is the selected line.
  • Router 5 transmits datagram 20 according to the indication in the “Next Hop” column for the selected line. In the example described, it transmits the datagram 20 to the router 6.
  • the routers 6 (step E of FIG. 3b) then 7 (step F) each transmit the datagram 20 by following a process identical to that described for the router 5.
  • the terminal 10 receives the datagram 20 containing the index value FVI and the references, written in the fields of the vectors FFIV and BFIV, indicated in step G, by way of example.
  • the terminal 10 stores the data of the context of the communication session of the datagram 20, read in the header part B1 of the datagram 20. It also stores, with these data, the contents of the fields FVI and BVL, as well as those FFIV and BFIV vector fields.
  • the terminal 10 then reads the data contained in the data field (or “payload”) of the datagram 20. It is now assumed that the terminal 10 in turn produces data intended for the terminal 1, in response to the data carried by the datagram 20.
  • the data produced by terminal 10 are transmitted in the context of the same communication session as that of the datagram 20.
  • the datagram 20 therefore belongs to a go flow coming from this communication session, and new datagrams sent by the terminal 10 belong to a return flow from this session Communication.
  • the terminal 10 creates a new datagram 21, by taking the data from the communication session context of the datagram 20 (step H of FIG. 3b).
  • the datagram 21 has a structure identical to that of the datagram 20.
  • the terminal 10 completes the fields of the header part B1 of the datagram 21 as described above for the terminal 1 and the datagram 20, by exchanging the data relating to the sending and receiving terminals. In addition, the terminal 10 retrieves, with the data of the stored communication session context, the references and values memorized during the reception of the datagram 20.
  • the terminal 10 writes them in the fields of the header part Bll of the datagram 21 , as follows: - in the successive fields of the FFIV vector of the datagram 21: the references contained in the fields of the BFIV vector of the datagram 20, in the same order; - in the successive fields of the BFIV vector of the datagram 21: the references contained in the fields of the FFIV vector of the datagram 20, in the same order; and - in the BVL field of the datagram 21: the value read in the FVI field of the datagram 20.
  • the terminal 10 writes the initial value 1 in the index field FVI of datagram 21 (step I).
  • the transmission of the datagram 21 in the network 100 to the terminal 1 is carried out in a manner analogous to the transmission of the datagram 20 described above. It should be noted that the datagram 21 does not pass, a priori, by the same routers as the datagram 20, and that the numbers of routers through which each of the datagrams 20 and 21 respectively pass are a priori different. In FIGS. 3a and 3b, there is the number of routers through which the datagram 21 passes. The contents of the BVL field and BFIV vector fields of the datagram 21 are transported during the transmission of the datagram 21 in the network 100, without being used. The reception of the datagram 21 by the terminal 1 (step J of FIG.
  • the references entered by the routers in the FFIV vector fields of the datagram 20, as well as the last value entered in the FVI index field of the datagram 20, ie the value entered by the router 7, are stored in the two terminals 1 and 10 with the data of the context of the communication session.
  • the method now described applies to the situation where the terminal 1 produces new data intended for the terminal 10, in response to the data conveyed by the datagram 21.
  • the terminal 1 then creates a datagram 22, according to the procedure already described, by taking the data from the stored communication session context (step K of FIG. 3a).
  • the datagram 22 belongs to the same go flow pertaining to this communication session as the datagram 20.
  • the terminal 1 enters, in the FVI field of the datagram 22, the initial value 1, and, in the BVL field of the datagram 22, the value y of the FVI index read in the datagram 21 upon reception of the latter by the terminal 1. It also writes, in the fields of the vector FFIV of the datagram 22, the references read in the fields of the vector BFIV of the datagram 21. From even, it inscribes in the fields of the vector BFIV of the datagram 22, the references read in the fields of the vector FFIV of the datagram 21. The values and references thus obtained for the fields of the datagram 22 are indicated in step L of FIG. 3a .
  • the fields of the BFIV vector of said datagram are intended to receive references entered in the fields of a FFIV vector of a datagram of a return flow pertaining to said communication session, transmitted by the terminal receiving the datagrams of the outward flow, and received by the terminal transmitting the datagrams of the flow- go before the transmission of said go flow datagram.
  • the BVL field of said go flow datagram is intended to receive the last value entered in the FVI field of said return flow datagram.
  • the datagram 22 is transmitted to the router 4 by the terminal 1, then to the router 5 by the router 4 (step M), in the same way as the datagram 20.
  • that -ci increments the value of the FVI index to 2.
  • the router 4 also leaves the reference 3 written in the first field of the vector FFIV of the datagram 22.
  • the description of the method of transmission of a datagram by a router of the network 100 is now completed, in the case of the datagram 22 transmitted by the router 5.
  • the first step of selecting a line from the FIB table is identical to that described for the transmission of datagram 20.
  • router 5 analyzes the FFIV vector of the datagram 22 according to the method of FIG. 4. It reads the reference indicated by the FVI index (steps 30 and 31). The reference read is 4, in accordance with the entry made by the router 5 in the datagram 20, during step D of the transmission of the latter. This reference read being different from the initialization reference 0 of the vector fields (step 32a), the router 5 examines whether the reference table determined during the first step of selecting a line of the FIB table contains the reference 4 (step 32b). Two situations can then arise: according to a first situation, the reference table still contains reference 4, and according to a second situation, it no longer contains reference 4.
  • the first situation occurs, in particular, when the FIB table of router 5 has not been modified between the respective transmissions of datagrams 20 and 22. It intervenes also if the reference 4 has been maintained in the FIB table for the destination prefix DP_7_10 during updates of the FIB table which have occurred between the transmissions of datagrams 20 and 22.
  • the FFIV vector is not modified by router 5, the FVI index is incremented (step 35), and router 5 transmits datagram 22 to router 6 (step 36).
  • the transmissions of datagrams 20 and 22 by the router 5 are then identical.
  • the second situation occurs when an update of the FIB table of router 5 has occurred between the transmission of datagram 20 and that of datagram 22.
  • the router 5 has selected in its FIB table the two lines corresponding to the destination prefix DP_7_10. These two lines constitute the new reference table considered.
  • the first of these two lines corresponds to the route reference 1, and the charge rate value indicated is 70%.
  • the second of these two lines corresponds to the route reference 6, and the charge rate value indicated is 20%.
  • the router 5 selects one of these two references for which the route has the minimum load rate value (steps 32b and 33): the reference 6.
  • the combination of the marking and transmission methods of a datagram according to the invention provides the following advantages: when a new datagram belongs to a flow for which datagrams have already been transmitted, the use of a route followed by an earlier datagram of the same flow is preferred for the new datagram; - when the route used for the previous datagram of the stream is no longer available, the new datagram is transmitted according to a new route; and the new route is determined so as to distribute the datagram flows between different transmission links of the network according to their degrees of availability.
  • This association combines transmission by independent elementary jumps (“hop by hop”) and a reduction in the risk of network congestion. Stable network operation results. It is understood that variants can be introduced with respect to the mode of implementation of the invention which has been described above.
  • steps 32a and 32b can be grouped together in a single step, corresponding to the same test as that of step 32b.
  • references written in a field of the vector FFIV or vector BFIV of a datagram, as well as a value written in the field FVI or BVL of a datagram can only be stored in one of the two terminals sender or recipient of this datagram.
  • Such an implementation may, in particular, relate to a datagram belonging to a return flow.

Abstract

The invention relates to a method of marking a datagram (20-22) that is transmitted over an IP-type communication network by routers (4, 5), comprising the inclusion of references in the fields of the datagram (FFIV). According to the invention, when a datagram (20, 22) is received by a router (5), the router reads a reference entered in the datagram and searches for said reference in a reference table stored inside the router. If the read reference is not contained in the reference table, the router selects a new reference from the table. The references can correspond to routes between the router and a datagram receiving terminal. The selection of a route reference can take account of a charge rate value assigned to said route.

Description

MARQUAGE D'UN DATAGRAMME TRANSMIS DANS UN RESEAU IP ET TRANSMISSION D'UN TEL DATAGRAMME Marked U P AN DATAGRA MRS TRANSMITTED IN IP NETWORK AND TRANSMISSION OF SUCH DATAGRAM
La présente invention concerne un procédé de marquage d'un 5 datagramme transmis dans un réseau de communication de type IP («Internet Protocol»). Elle concerne aussi un procédé de transmission qui peut utiliser un marquage d'un datagramme ainsi effectué. L'identification du chemin suivi par un datagramme dans un réseau de communication revêt un enjeu important pour plusieurs aspects. Ceci0 concerne, en particulier, certains services destinés à assurer des garanties de qualité de transmission. A titre d'exemple, il est préférable que des datagrammes successifs d'un même flux suivent un même chemin dans le réseau, afin d'éviter que l'ordre d'arrivée des datagrammes au terminal destinataire soit différent de l'ordre d'envoi des mêmes datagrammes par le5 terminal émetteur. Un procédé de transmission existe, selon lequel le chemin suivi par un datagramme dans le réseau est inscrit dans le datagramme par le terminal émetteur du datagramme. Ce procédé est connu sous l'appellation de «source routing». Un inconvénient de ce procédé provient du fait que les terminaux0 n'ont pas connaissance de la topologie du réseau, c'est-à-dire qu'ils ne connaissent pas les liens disponibles ou indisponibles du réseau. Le chemin inscrit dans le datagramme est définitivement fixé au moment de l'émission du datagramme par le terminal émetteur, et aucune modification ultérieure du chemin n'est possible en fonction d'indisponibilités éventuelles de certains liens du réseau. Ce procédé de transmission ne permet donc pas d'activer des mécanismes adaptatifs de la fonction de routage dans les réseaux IP. En outre, l'utilisation du procédé «source routing» ne réduit pas le risque d'apparition de phénomènes de congestion dans le réseau, c'est-à-dire des situations selon lesquelles le nombre de datagrammes devant être acheminés par un lien déterminé du réseau atteint ou dépasse la capacité maximale de transmission de ce lien. Par ailleurs, dans un réseau de type IPv4, le chemin inscrit dans un datagramme ne peut contenir plus de neuf routeurs, à cause de la taille du champ du datagramme dans lequel ce chemin est inscrit. Enfin, le procédé «source routing» manque de sécurité, en ce sens que l'adresse IP source de premiers datagrammes peut être usurpée pour franchir un système de contrôle d'accès basé sur cette adresse. Des seconds datagrammes émis en réponse aux premiers datagrammes en utilisant aussi le procédé «source routing» peuvent alors être détournés. Selon un procédé connu d'identification du chemin suivi par un datagramme dans un réseau, appelé «record routing», chaque routeur par lequel transite un datagramme inscrit son adresse IP dans ce datagramme, à la suite de l'adresse inscrite par le routeur précédent sur le chemin suivi par le datagramme. Une traçabilité du chemin suivi est ainsi obtenue, en lisant la suite d'adresses inscrites dans le datagramme. Ce procédé d'identification du chemin suivi présente l'inconvénient de ne pas permettre d'orienter un datagramme au niveau d'un routeur en fonction d'une donnée externe à ce routeur au moment de la transmission du datagramme. En outre, de la même façon que pour le procédé «source routing», le nombre de routeurs du chemin suivi par un datagramme inscrit dans ce datagramme selon le procédé «record routing» est limité à neuf routeurs. Un but de la présente invention consiste à élaborer un marquage d'un datagramme transmis dans un réseau de communication, qui ne présente pas les inconvénients des procédés «source routing» et «record routing» indiqués ci-dessus. L'invention propose un procédé de marquage d'un datagramme transmis dans un réseau de communication comprenant des routeurs connectés entre eux par des liens de transmission. Le datagramme est transmis à partir d'un terminal émetteur du datagramme raccordé à un premier routeur du réseau jusqu'à un terminal récepteur du datagramme raccordé à un second routeur du réseau. Le datagramme comprend un vecteur formé de champs ordonnés contenant chacun une référence et un champ d'index de vecteur. Par ailleurs, chaque routeur du réseau dispose d'une table de références. Le procédé de marquage comprend les étapes suivantes, lorsqu'un routeur reçoit le datagramme : - lecture d'une valeur dans le champ d'index du datagramme, - lecture de la référence contenue dans le champ du vecteur du datagramme désigné par la valeur d'index lue ; - si la table du routeur ne contient pas la référence lue, inscription, dans le champ du vecteur du datagramme désigné par la valeur d'index lue, d'une référence sélectionnée dans la table du routeur ; - inscription, dans le champ d'index du datagramme, d'une valeur égale à la valeur lue incrémentée d'une unité ; et - transmission du datagramme à un routeur suivant du réseau. Selon le procédé de l'invention, l'inscription d'une nouvelle référence dans le datagramme par un routeur n'est pas systématique. La référence lue, qui constitue une donnée externe au routeur lors de la transmission du datagramme, est privilégiée pour rester inscrite dans le datagramme. L'inscription par le routeur d'une nouvelle référence intervient lorsque la référence lue n'est pas contenue dans la table de références du routeur. Le routeur est alors autonome pour sélectionner, dans sa table de références, la nouvelle référence à inscrire dans le datagramme. Lorsque le terminal récepteur reçoit le datagramme, les références inscrites dans les champs du vecteur du datagramme sont identiques chacune à une référence contenue dans la table de références d'un routeur ayant transmis ce datagramme. Plus précisément, la référence inscrite dans le nlème champ du vecteur est contenue dans la table du nleme routeur situé sur le chemin suivi par le datagramme dans le réseau, n étant une valeur prise par l'index de vecteur du datagramme lors de la transmission de celui-ci dans le réseau.The present invention relates to a method of marking a datagram transmitted in a communication network of the IP (“Internet Protocol”) type. It also relates to a transmission method which can use a marking of a datagram thus carried out. The identification of the path followed by a datagram in a communication network is an important issue for several aspects. This concerns, in particular, certain services intended to guarantee transmission quality guarantees. For example, it is preferable that successive datagrams of the same flow follow the same path in the network, in order to avoid that the order of arrival of the datagrams at the destination terminal is different from the order of sending of the same datagrams by the5 transmitting terminal. A transmission method exists, according to which the path followed by a datagram in the network is registered in the datagram by the terminal transmitting the datagram. This process is known as "source routing". A drawback of this method comes from the fact that the terminals 0 do not know the network topology, that is to say that they do not know the available or unavailable links of the network. The path entered in the datagram is definitively fixed at the time of the transmission of the datagram by the transmitting terminal, and no subsequent modification of the path is possible depending on the possible unavailability of certain links in the network. This transmission method therefore does not make it possible to activate adaptive mechanisms of the routing function in IP networks. In addition, the use of the “source routing” method does not reduce the risk of the appearance of congestion phenomena in the network, that is to say situations according to which the number of datagrams to be routed by a determined link. of the network reaches or exceeds the maximum transmission capacity of this link. Furthermore, in an IPv4 type network, the path registered in a datagram cannot contain more than nine routers, because of the size of the field of the datagram in which this path is registered. Finally, the “source routing” process lacks security, in the sense that the source IP address of the first datagrams can be usurped to cross an access control system based on this address. Second datagrams sent in response to the first datagrams also using the “source routing” process can then be diverted. According to a known method of identifying the path followed by a datagram in a network, called "record routing", each router through which a datagram passes inscribes its IP address in this datagram, following the address entered by the previous router on the path followed by the datagram. A traceability of the path followed is thus obtained, by reading the series of addresses entered in the datagram. This method of identifying the path followed has the disadvantage of not making it possible to orient a datagram at the level of a router as a function of data external to this router at the time of the transmission of the datagram. In addition, in the same way as for the “source routing” method, the number of routers of the path followed by a datagram registered in this datagram according to the “record routing” method is limited to nine routers. An object of the present invention is to develop a marking of a datagram transmitted in a communication network, which does not have the drawbacks of the “source routing” and “record routing” methods indicated above. The invention provides a method of marking a datagram transmitted in a communication network comprising routers connected together by transmission links. The datagram is transmitted from a terminal sending the datagram connected to a first network router to a terminal receiving the datagram connected to a second network router. The datagram comprises a vector formed of ordered fields each containing a reference and a vector index field. In addition, each router in the network has a table of references. The marking process comprises the following steps, when a router receives the datagram: - reading a value in the index field of the datagram, - reading the reference contained in the vector field of the datagram designated by the value d 'index read; - if the router table does not contain the reference read, writing, in the vector field of the datagram designated by the index value read, of a reference selected in the router table; - entry, in the index field of the datagram, of a value equal to the value read incremented by one; and - transmission of the datagram to a next router on the network. According to the method of the invention, the recording of a new reference in the datagram by a router is not systematic. The reference read, which constitutes data external to the router during the transmission of the datagram, is preferred to remain registered in the datagram. The registration by the router of a new reference occurs when the reference read is not contained in the router reference table. The router is then autonomous in selecting, in its reference table, the new reference to be entered in the datagram. When the receiving terminal receives the datagram, the references entered in the vector fields of the datagram are each identical to a reference contained in the reference table of a router having transmitted this datagram. More precisely, the reference registered in the n th field of the vector is contained in the table of the n th router located on the path followed by the datagram in the network, n being a value taken by the vector index of the datagram during the transmission of it in the network.
En fonction de la signification des références, diverses informations peuvent ainsi être recueillies lors de la réception du datagramme par le terminal récepteur. Lorsque chaque référence identifie une route le long de laquelle le datagramme a été transmis par un routeur, la connaissance de la signification des références de la table de chaque routeur permet de reconstituer le chemin suivi par le datagramme dans le réseau.Depending on the meaning of the references, various information can thus be collected when the datagram is received by the receiving terminal. When each reference identifies a route along which the datagram was transmitted by a router, knowledge of the meaning of the references in the table of each router makes it possible to reconstruct the path followed by the datagram in the network.
Le procédé de marquage selon l'invention est sécuritaire, parce que la seule lecture dans le datagramme des références inscrites dans les champs du vecteur ne suffit pas pour obtenir une information significative. Il est indispensable de connaître en outre la signification des références pour chaque routeur. L'interception d'un datagramme sans posséder cette connaissance ne permet pas une exploitation des références inscrites dans ce datagramme.The marking method according to the invention is safe, because the mere reading in the datagram of the references written in the fields of the vector is not sufficient to obtain significant information. It is also essential to know the meaning of the references for each router. Intercepting a datagram without having this knowledge does not allow an exploitation of the references registered in this datagram.
Suivant le mode de mise en œuvre préféré d'un procédé de marquage selon l'invention, lorsque le datagramme appartient à un flux de datagrammes successivement transmis par le terminal émetteur au terminal récepteur, la référence lue par le routeur est identique à une référence inscrite par ce routeur lors de la transmission d'un datagramme antérieur dudit flux. Si le réseau présente un fonctionnement stable, c'est-à-dire qu'aucune panne ni congestion de certains liens du réseau ne survient, qui affecte un routeur par lequel a transité ledit datagramme antérieur, une même référence contenue dans la table d'un routeur par lequel transitent plusieurs datagrammes successifs du flux est alors associée à tous ces datagrammes. On obtient ainsi un marquage identique le long du chemin suivi par les datagrammes successifs du flux, auquel peut être attaché un traitement spécifique associé à ce flux. L'invention concerne aussi un procédé de transmission d'un datagramme dans lequel sont inscrites des références de routes. Ces références peuvent avoir été inscrites préalablement dans le datagramme en utilisant un procédé de marquage tel que décrit ci-dessus, mais non nécessairement. Elles peuvent aussi avoir été inscrites dans le datagramme selon un autre procédé, tel que, par exemple, un procédé de type «source routing». Dans ce cas, une connaissance de la topologie du réseau par les terminaux est nécessaire, ainsi qu'une connaissance par les terminaux des tables de références des routeurs. Pour la mise en œuvre du procédé de transmission, un routeur du réseau dispose d'une table de références associées à des routes respectives entre ce routeur et un terminal destinataire du datagramme raccordé au réseau. De préférence, la table de références est associée à un préfixe de destination unique contenu dans une table de routage du routeur. Le procédé de transmission du datagramme comprend alors les étapes suivantes : - lors de la réception du datagramme par le routeur, lecture d'une référence dans le datagramme ; et - recherche de la référence lue dans la table de références du routeur, . si la table contient la référence lue, transmission du datagramme le long de la route à laquelle la référence lue est associée, . sinon, sélection d'une référence dans la table, et transmission du datagramme le long de la route à laquelle est associée la référence sélectionnée. Un procédé de transmission selon l'invention est mis en œuvre au niveau de la couche de protocole IP. Un premier avantage d'un tel procédé de transmission réside dans le fait qu'il ne requiert qu'une adaptation de la couche IP, sans modification des autres couches de protocoles mises en œuvre dans les routeurs. Un réseau de communication existant peut donc être facilement adapté pour la mise en œuvre d'un tel procédé de transmission. Un second avantage d'un procédé de transmission selon l'invention provient du fait qu'il permet une qualification initiale du chemin suivi par un datagramme dans le réseau. En effet, la transmission d'un datagramme par un routeur prend en compte prioritairement une référence de route lue dans ce datagramme. Ainsi, des datagrammes successifs d'un même flux, transmis par un terminal émetteur donné à destination d'un terminal récepteur donné, sont transmis dans le réseau le long de routes identiques, si ces datagrammes contiennent, lors de leur transmission par le terminal émetteur, des mêmes références, et si le réseau présente un fonctionnement stable. Cependant, lorsque la table de références d'un routeur ne contient pas la référence lue dans un datagramme, ce routeur sélectionne une route parmi des routes possibles pour transmettre le datagramme. Le procédé de transmission de l'invention est donc conforme au mode de fonctionnement principal d'un réseau IP, par transmissions élémentaires indépendantes, désigné par «hop by hop» en anglais. De façon préférée, la référence sélectionnée dans la table de références du routeur est en outre inscrite dans le datagramme en utilisant un procédé de marquage tel que décrit précédemment. Lorsque des procédés de marquage et de transmission selon l'invention sont simultanément mis en œuvre au sein d'un réseau IP, outre les fonctions de transmission des datagrammes et de connaissance de la topologie du réseau, les routeurs peuvent modifier les références de routes inscrites dans les datagrammes. Des références initiales peuvent être inscrites dans les datagrammes par les terminaux, sans connaissance de la topologie du réseau. A cette fin, les terminaux peuvent stocker des références lues dans un datagramme reçu, afin d'utiliser ces références lues comme références initiales pour un datagramme émis. Selon le mode de mise en œuvre préféré d'un procédé de transmission selon l'invention, la table de références du routeur comprend en outre, pour chaque référence de ladite table, une valeur de taux de charge affectée à la route à laquelle ladite référence est associée. Le taux de charge d'une route caractérise la quantité de trafic acheminée le long de cette route. Lors de la transmission d'un datagramme par un routeur, si la table de références du routeur ne contient pas la référence lue dans le datagramme, la référence sélectionnée peut correspondre à une valeur de taux de charge minimale parmi les routes auxquelles sont associées des références contenues dans ladite table de références. Un tel procédé de transmission prend donc en compte le taux de charge des différentes routes calculées. Ceci permet d'éviter que des congestions ne se produisent sur des liens de transmission particuliers du réseau, ou tout au moins réduit le risque de survenance de congestion. Il en résulte une plus grande stabilité du fonctionnement du réseau : aucune oscillation de charge n'est observée, entre des parties différentes du réseau. En effet, un tel procédé de transmission tend à répartir et à maintenir les flux de datagrammes d'une façon équilibrée dans le réseau selon la disponibilité des resources. L'invention concerne encore un terminal adapté pour mettre en œuvre un procédé de marquage tel que décrit en premier lieu. Un tel terminal comprend : - des moyens de production d'un datagramme destiné à être émis par le terminal, le datagramme comprenant un vecteur de champs ordonnés et un champ d'index de vecteur ; - des moyens d'inscription d'une référence initiale dans chaque champ du vecteur du datagramme destiné à être émis par le terminal ; et - des moyens d'inscription d'une valeur initiale dans le champ d'index du datagramme destiné à être émis par le terminal. De façon préférée, le terminal comprend en outre : - des moyens de lecture de secondes références dans des champs d'un vecteur supplémentaire contenus dans un datagramme reçu par le terminal ; et - des moyens de stockage, dans une table de contextes de sessions de communication dudit terminal, des secondes références avec des données de contexte de session de communication du datagramme reçu, de telle sorte que la référence initiale inscrite dans chaque champ du vecteur du datagramme destiné à être émis par le terminal est une dite seconde référence lue dans un champ du vecteur supplémentaire du datagramme reçu, lorsque le datagramme destiné à être émis appartient à la session de communication du datagramme reçu. Ainsi, des références de routes déterminées préalablement peuvent être reprises pour le datagramme destiné à être émis. Les moyens de production du datagramme destiné à être émis peuvent être adaptés de sorte que le datagramme destiné à être émis comprend en outre un vecteur supplémentaire de champs. Le terminal comprend alors en outre : - des moyens de lecture de premières références dans des champs d'un vecteur contenus dans le datagramme reçu ; - des moyens de stockage, dans la table de contextes de sessions de communication dudit terminal, desdites premières références avec les données de contexte de session de communication du datagramme reçu ; et - des moyens d'inscription desdites premières références dans les champs du vecteur supplémentaire du datagramme destiné à être émis par le terminal, lorsque le datagramme destiné à être émis appartient à la session de communication du datagramme reçu. Ainsi, lorsque deux tels terminaux émettent et reçoivent chacun des datagrammes d'un flux-aller ou d'un flux-retour relevant d'une même session de communication, des références initiales peuvent être inscrites dans un datagramme du flux-aller par le terminal émetteur de ce datagragramme, qui sont respectivement identiques à des références contenues dans des champs dudit vecteur supplémentaire d'un datagramme du flux-retour. En appliquant ce mécanisme aux deux terminaux émetteur et récepteur d'un datagramme, il résulte que la référence lue par un routeur dans ce datagramme est identique à une référence inscrite par ce routeur lors de la transmission d'un datagramme antérieur de ce flux. L'invention concerne en outre un routeur adapté pour mettre en œuvre un procédé de transmission tel que décrit en second lieu. Un tel routeur comprend : - des moyens de lecture d'une valeur dans un champ d'index de vecteur d'un datagramme reçu par le routeur ; - des moyens de lecture d'une référence contenue dans un champ de vecteur dudit datagramme désigné par la valeur d'index lue ; - des moyens de stockage d'une table de références ; - des moyens d'association des références contenues dans la table avec des routes respectives ; - des moyens de recherche d'une référence lue, dans la table de références dudit routeur, agencés pour commander une transmission dudit datagramme le long de la route à laquelle est associée la référence lue, si la table de références contient la référence lue ; - des moyens de sélection d'une référence dans la table de références, agencés pour être activés si la table de références ne contient pas la référence lue, et agencés pour commander une transmission dudit datagramme le long de la route à laquelle est associée la référence sélectionnée ; et - des moyens d'inscription, dans le champ d'index dudit datagramme, d'une valeur égale à la valeur lue incrémentée d'une unité. Selon un mode de réalisation avantageux d'un tel routeur, les moyens d'association sont compris dans des moyens de calcul d'une table de routage de ce routeur. En outre, les moyens de calcul appartiennent à une unité de contrôle du routeur. Le routeur peut être adapté pour mettre en œuvre simultanément un procédé de marquage d'un datagramme transitant par ce routeur, tel que décrit en premier lieu. Pour cela, il comprend en outre des moyens d'inscription de la référence sélectionnée dans le champ du vecteur du datagramme désigné par la valeur d'index lue. Même si la combinaison au sein d'un même routeur des mises en œuvre des procédés de marquage et de transmission objets de l'invention est particulièrement avantageuse pour obtenir un fonctionnement efficace du réseau, le routeur peut comporter des moyens de mise en œuvre du procédé de transmission indépendamment de la présence, dans ce même routeur, de moyens de marquage de datagrammes. Et vice-versa. Pour un routeur qui combine des mises en œuvre des deux procédés, certains des moyens cités ci-dessus pour chaque procédé peuvent être communs aux deux procédés. L'invention concerne enfin un réseau de communication qui comprend un routeur tel que décrit ci-dessus. D'autres particularités et avantages de la présente invention apparaîtront dans la description ci-après d'un d'exemple de mise en œuvre non limitatif, en référence aux dessins annexés, dans lesquels : - la figure 1 représente un réseau de communication dans lequel l'invention peut être mise en œuvre ; - la figure 2 illustre la structure d'un en-tête de datagramme IP telle qu'utilisée pour une mise en œuvre de l'invention ; - les figures 3a et 3b, destinées à être associées, illustrent différentes étapes d'une transmission selon l'invention de plusieurs datagrammes, au sein d'un réseau tel que représenté sur la figure 1 ; - la figure 4 est un organigramme d'un procédé de transmission d'un datagramme selon l'invention. Selon la figure 1, un réseau de communication par transmission de datagrammes 100, de type IP, comprend des routeurs 4-9 reliés entre eux par des liens de transmission. Ainsi une chaîne de routeurs forme une route dans le réseau 100, pour transmettre un datagramme. Chaque routeur peut comprendre une unité d'acheminement (ouAccording to the preferred embodiment of a marking method according to the invention, when the datagram belongs to a stream of datagrams successively transmitted by the transmitting terminal to the receiving terminal, the reference read by the router is identical to a registered reference by this router during the transmission of an earlier datagram of said stream. If the network has stable operation, that is to say that no breakdown or congestion of certain network links occurs, which affects a router through which said previous datagram has passed, the same reference contained in the table a router through which several successive datagrams of the flow pass is then associated with all these datagrams. An identical marking is thus obtained along the path followed by the successive datagrams of the flow, to which a specific processing associated with this flow can be attached. The invention also relates to a method of transmitting a datagram in which route references are written. These references may have been previously entered in the datagram using a marking process as described above, but not necessarily. They may also have been entered in the datagram by another method, such as, for example, a “source routing” type method. In this case, a knowledge of the network topology by the terminals is necessary, as well as a knowledge by the terminals of the reference tables of the routers. For the implementation of the transmission method, a network router has a table of references associated with respective routes between this router and a destination terminal of the datagram connected to the network. Preferably, the reference table is associated with a unique destination prefix contained in a routing table of the router. The datagram transmission method then includes the following steps: - when the datagram is received by the router, reading a reference in the datagram; and - search for the reference read from the router reference table,. if the table contains the reference read, transmission of the datagram along the route with which the reference read is associated,. otherwise, selection of a reference in the table, and transmission of the datagram along the route with which the selected reference is associated. A transmission method according to the invention is implemented at the level of the IP protocol layer. A first advantage of such a transmission method lies in the fact that it requires only an adaptation of the IP layer, without modification of the other layers of protocols implemented in the routers. An existing communication network can therefore be easily adapted for the implementation of such a transmission method. A second advantage of a transmission method according to the invention comes from the fact that it allows an initial qualification of the path followed by a datagram in the network. In fact, the transmission of a datagram by a router takes priority into account a route reference read in this datagram. Thus, successive datagrams of the same stream, transmitted by a given transmitting terminal bound for a given receiving terminal, are transmitted in the network along identical routes, if these datagrams contain, during their transmission by the transmitting terminal , with the same references, and if the network has stable operation. However, when the reference table of a router does not contain the reference read from a datagram, this router selects a route from possible routes to transmit the datagram. The transmission method of the invention therefore conforms to the main mode of operation of an IP network, by independent elementary transmissions, designated by "hop by hop" in English. Preferably, the reference selected in the reference table of the router is also written into the datagram using a marking method as described above. When marking and transmission methods according to the invention are simultaneously implemented within an IP network, in addition to the functions of transmitting datagrams and knowing the network topology, the routers can modify the references of registered routes in datagrams. Initial references can be entered in the datagrams by the terminals, without knowledge of the network topology. To this end, the terminals can store references read in a received datagram, in order to use these read references as initial references for an emitted datagram. According to the preferred implementation mode of a transmission method according to the invention, the router reference table further comprises, for each reference of said table, a load rate value assigned to the route to which said reference is associated. The load rate of a route characterizes the amount of traffic carried along this route. When a datagram is transmitted by a router, if the router's reference table does not contain the reference read from the datagram, the selected reference can correspond to a minimum load rate value among the routes with associated references contained in said reference table. Such a transmission method therefore takes into account the load rate of the different routes calculated. This prevents congestion from occurring on particular network transmission links, or at least reduces the risk of congestion occurring. This results in greater stability in the operation of the network: no load oscillation is observed, between different parts of the network. Indeed, such a transmission method tends to distribute and maintain the flow of datagrams in a balanced manner in the network according to the availability of resources. The invention also relates to a terminal adapted to implement a marking process as described first. Such a terminal comprises: - means for producing a datagram intended to be transmitted by the terminal, the datagram comprising a vector of ordered fields and a vector index field; means for registering an initial reference in each field of the datagram vector intended to be transmitted by the terminal; and - means for registering an initial value in the index field of the datagram intended to be transmitted by the terminal. Preferably, the terminal further comprises: - means for reading second references in fields of an additional vector contained in a datagram received by the terminal; and - means for storing, in a table of communication session contexts of said terminal, second references with communication session context data of the received datagram, so that the initial reference entered in each field of the vector of the datagram intended to be sent by the terminal is a so-called second reference read in a field of the additional vector of the received datagram, when the datagram intended to be sent belongs to the communication session of the received datagram. Thus, previously determined route references can be used for the datagram intended to be transmitted. The means for producing the datagram intended to be transmitted can be adapted so that the datagram intended to be transmitted further comprises an additional vector of fields. The terminal then further comprises: - means for reading first references in fields of a vector contained in the received datagram; means for storing, in the table of contexts of communication sessions of said terminal, said first references with the communication session context data of the received datagram; and means for registering said first references in the fields of the additional vector of the datagram intended to be sent by the terminal, when the datagram intended to be sent belongs to the communication session of the received datagram. Thus, when two such terminals each send and receive datagrams of a go flow or a return flow pertaining to the same communication session, initial references can be entered in a datagram of the go flow by the terminal transmitter of this datagragram, which are respectively identical to references contained in fields of said additional vector of a datagram of the return flow. By applying this mechanism to the two transmitting and receiving terminals of a datagram, it follows that the reference read by a router in this datagram is identical to a reference written by this router during the transmission of an earlier datagram of this stream. The invention further relates to a router suitable for implementing a transmission method as described secondly. Such a router comprises: means for reading a value in a vector index field of a datagram received by the router; means for reading a reference contained in a vector field of said datagram designated by the index value read; - means for storing a reference table; - means for associating the references contained in the table with respective routes; means for searching for a read reference, in the reference table of said router, arranged to control a transmission of said datagram along the route with which the read reference is associated, if the reference table contains the read reference; means for selecting a reference in the reference table, arranged to be activated if the reference table does not contain the reference read, and arranged to control a transmission of said reference datagram along the route to which the selected reference is associated; and means for recording, in the index field of said datagram, a value equal to the value read incremented by one. According to an advantageous embodiment of such a router, the association means are included in means for calculating a routing table of this router. In addition, the calculation means belong to a control unit of the router. The router can be adapted to simultaneously implement a method of marking a datagram passing through this router, as described first. For this, it further comprises means for writing the reference selected in the vector field of the datagram designated by the index value read. Even if the combination within the same router of the implementation of the marking and transmission methods which are the subject of the invention is particularly advantageous for obtaining an efficient operation of the network, the router may include means for implementing the method regardless of the presence, in this same router, of datagram marking means. And vice versa. For a router which combines implementations of the two methods, some of the means mentioned above for each method may be common to the two methods. The invention finally relates to a communication network which comprises a router as described above. Other features and advantages of the present invention will appear in the description below of an example of non-limiting implementation, with reference to the appended drawings, in which: - Figure 1 shows a communication network in which the invention can be implemented; - Figure 2 illustrates the structure of an IP datagram header as used for an implementation of the invention; - Figures 3a and 3b, intended to be associated, illustrate different stages of a transmission according to the invention of several datagrams, within a network as shown in Figure 1; - Figure 4 is a flow diagram of a method of transmitting a datagram according to the invention. According to FIG. 1, a communication network by transmission of datagrams 100, of the IP type, comprises routers 4-9 linked together by transmission links. Thus a chain of routers forms a route in the network 100, to transmit a datagram. Each router can include a routing unit (or
«forwarding unit», en anglais) qui transfère les datagrammes entre deux liens reliés à cette unité, et une unité de commande (ou «control unit») qui supervise l'activité de l'unité d'acheminement. Pour le routeur 5, l'unité d'acheminement et l'unité de commande sont respectivement référencées 5a et 5b. Des terminaux sont connectés à certains des routeurs du réseau 100.“Forwarding unit”, which transfers the datagrams between two links linked to this unit, and a command unit (or “control unit”) which supervises the activity of the routing unit. For router 5, the routing unit and the control unit are respectively referenced 5a and 5b. Terminals are connected to some of the routers in network 100.
Ces terminaux peuvent être de différents types, tels que, par exemple, des unités informatiques, des unités de communication mobiles, etc.. Sur la figure 1 , des unités informatiques 1 et 10 sont connectées aux routeurs 4 et 7, respectivement. Des données produites par le terminal 1 et destinées au terminal 10 sont réparties par le terminal 1 dans des datagrammes IP. Ces datagrammes sont transmis par certains des routeurs du réseau 100 jusqu'au terminal 10. On considère dans la suite que le fonctionnement d'un réseau de type IP est connu. Dans ce cadre, sur la figure 1, chaque lien de transmission du réseau 100 est repéré par un préfixe DP, suivi d'identifiants de chacun des routeurs ou terminaux connectés à ce lien. Chaque datagramme IP possède un en-tête tel que représenté sur la figure 2, pour la version 4 du protocole IP (IPv4). L'en-tête comprend une partie d'en-tête de base Bl présente dans tous les datagrammes, et une partie d'entêté optionnelle Bll. La partie d'en tête Bl possède une longueur fixe de 20 octets. La partie d'en-tête Bll peut avoir une longueur variable. Parmi les champs de la partie d'en-tête Bl figurent le champ «SOURCE ADDRESS», dans lequel est indiquée l'adresse IP du terminal émetteur du datagramme, et le champ «DESTINATION ADDRESS», dans lequel est indiquée l'adresse IP du terminal destinataire du datagramme. Parmi les autres champs figurent notamment : - le champ «Type Of Service», ou TOS, dans lequel est spécifiée la façon dont le datagramme doit être géré ; - le champ «TOTAL LENGTH», dans lequel est spécifiée la longueur totale du datagramme ; - le champ «ID» destiné à recevoir un numéro d'identification du datagramme, notamment en vue d'une éventuelle fragmentation du datagramme ; - le champ «TTL» ou «TIME TO LIVE», en anglais, dans lequel est indiquée une durée maximale d'existence du datagramme en cours d'acheminement dans le réseau ; et - le champ «PROTOCOL», dans lequel est indiqué le protocole de haut niveau auquel se réfèrent les données placées par le terminal émetteur dans le champ de données du datagramme (ou «payload», en anglais, et non représenté sur la figure 2). La partie d'en-tête Bll comprend un premier champ noté «OPT. TYPE», de 1 octet. Ce champ est destiné à recevoir une référence construite selon une nomenclature connue de l'Homme du métier. Cette référence spécifie la présence, la classe et un numéro dédié d'option, qui permettent d'identifier la nature du contenu de la partie d'en-tête Bll. A titre d'exemple, pour le mode de mise en œuvre de l'invention décrit ci-après, cette référence peut être 10011001 en représentation binaire de l'octet. La longueur de la partie d'en-tête Bll, exprimée en octets, est indiquée dans le champ «OPT. LENGTH» (de 1 octet). Pour la mise en œuvre de l'invention décrite ici, on utilise la longueur maximale possible pour la partie d'en-tête Bll, à savoir 40 octets. Les 38 octets restant disponibles dans la partie d'en-tête Bll sont répartis en quatre champs disposés de la façon suivante : - un premier champ noté FVI, pour «Forward Vector Index» en anglais, de 1 octet, destiné à recevoir une valeur numérique d'index ; - un second champ noté BVL, pour «Backward Vector Length», aussi de 1 octet, destiné à recevoir une valeur de longueur de vecteur ; - une première série ordonnée de 36 champs, notée FFIV, pour «Forward Flow Identifier Vector», de 18 octets au total. Les champs de cette première série, disposés les uns à la suite des autres, forment un premier vecteur et sont destinés à recevoir 36 premières références numériques, codées sur 4 bits chacune. Par souci de clarté, l'index et le premier vecteur sont respectivement désignés dans la suite par index FVI et vecteur FFIV. L'index FVI sert à repérer un champ dans le vecteur FFIV, par le numéro d'ordre de la position de ce champ dans le vecteur FFIV, compté à partir du début du vecteur. Ainsi, la valeur de l'index FVI varie entre 1 et 36. - une seconde série ordonnée de champs, notée BFIV, pour «Backward Flow Identifier Vector», aussi de 18 octets au total. Cette seconde série de champs est organisée de la même façon que la première série de champs. Les champs BFIV forment un second vecteur et sont destinés à recevoir 36 secondes références numériques codées sur 4 bits chacune. Ce second vecteur, qui correspond au vecteur supplémentaire cité dans la description générale de l'invention, est désigné ci-après par vecteur BFIV. Il est entendu que les positions des champs FVI et BVL, ainsi que celles des champs des vecteurs FFIV et BFIV représentées sur la figure 2 sont données à titre d'exemple. D'autres positions peuvent être choisies, pour obtenir des modes de mise en œuvre alternatifs de l'invention. De tels modes de mise en œuvre alternatifs sont aussi compris dans l'invention. Néanmoins, il est particulièrement avantageux, dans le cadre de la version IPv4 du protocole IP, de concevoir les champs FVI et BVL, ainsi que les champs des vecteurs FFIV et BFIV, de façon à exploiter la longueur maximale de la partie d'en-tête Bll. Il est aussi entendu que l'invention peut être mise en œuvre de façon équivalente dans le cadre de la version 6 du protocole IP (IPv6), en adaptant les champs FVI et BVL, ainsi que les champs des vecteurs FFIV et BFIV définis ci-dessus aux particularités de cette dernière version du protocole IP. Notamment, la version IPv6 permet d'adopter des longueurs de champs et de vecteurs supérieures, grâce à la possibilité de définir un en-tête d'option de taille supérieure à 40 octets. Chaque routeur du réseau 100 dispose d'une table de routage utilisée par l'unité d'acheminement de ce routeur pour transmettre les datagrammes reçus. Cette table de routage est désignée par table FIB, pour «Forwarding Information dataBase» en anglais. Le tableau 1 ci-dessous représente une partie d'une telle table de routage, établie à titre d'exemple pour le routeur 5 de la figure 1 :These terminals can be of different types, such as, for example, computer units, mobile communication units, etc. In FIG. 1, computer units 1 and 10 are connected to routers 4 and 7, respectively. Data produced by terminal 1 and intended for terminal 10 is distributed by terminal 1 in IP datagrams. These datagrams are transmitted by some of the routers of the network 100 to the terminal 10. It is considered below that the operation of an IP type network is known. In this context, in FIG. 1, each transmission link of the network 100 is identified by a prefix DP, followed by identifiers of each of the routers or terminals connected to this link. Each IP datagram has a header as shown in Figure 2, for version 4 of the IP protocol (IPv4). The header includes a basic header part Bl present in all the datagrams, and an optional header part B11. The header part B1 has a fixed length of 20 bytes. The header part B11 can have a variable length. Among the fields of the header part B1 appear the field "SOURCE ADDRESS", in which the IP address of the terminal sending the datagram is indicated, and the “DESTINATION ADDRESS” field, in which the IP address of the terminal receiving the datagram is indicated. Other fields include: - the “Type Of Service”, or TOS, field in which the way in which the datagram is to be managed is specified; - the "TOTAL LENGTH" field, in which the total length of the datagram is specified; - the "ID" field intended to receive an identification number of the datagram, in particular with a view to possible fragmentation of the datagram; - the “TTL” or “TIME TO LIVE” field, in English, in which is indicated a maximum duration of existence of the datagram being routed in the network; and - the “PROTOCOL” field, in which the high-level protocol to which the data placed by the sending terminal in the datagram data field (or “payload”, in English, and not shown in FIG. 2) is indicated. ). The header part B11 comprises a first field denoted “OPT. TYPE ", 1 byte. This field is intended to receive a reference constructed according to a nomenclature known to those skilled in the art. This reference specifies the presence, the class and a dedicated option number, which make it possible to identify the nature of the content of the header part Bll. By way of example, for the embodiment of the invention described below, this reference can be 10011001 in binary representation of the byte. The length of the header part B11, expressed in bytes, is indicated in the "OPT." LENGTH ”(1 byte). For the implementation of the invention described here, the maximum possible length for the header part B11 is used, namely 40 bytes. The 38 bytes remaining available in the header part B11 are divided into four fields arranged as follows: - a first field denoted FVI, for “Forward Vector Index” in English, of 1 byte, intended to receive a value digital index; - a second field denoted BVL, for “Backward Vector Length”, also of 1 byte, intended to receive a value of vector length; - a first ordered series of 36 fields, noted FFIV, for "Forward Flow Identifier Vector", of 18 bytes in total. The fields of this first series, arranged one after the other, form a first vector and are intended to receive 36 first digital references, coded on 4 bits each. For the sake of clarity, the index and the first vector are respectively designated below by the FVI index and the FFIV vector. The FVI index is used to locate a field in the FFIV vector, by the sequence number of the position of this field in the FFIV vector, counted from the start of the vector. Thus, the value of the FVI index varies between 1 and 36. - a second ordered series of fields, denoted BFIV, for "Backward Flow Identifier Vector", also of 18 bytes in total. This second series of fields is organized in the same way as the first series of fields. The BFIV fields form a second vector and are intended to receive 36 second digital references coded on 4 bits each. This second vector, which corresponds to the additional vector mentioned in the general description of the invention, is designated hereinafter by BFIV vector. It is understood that the positions of the fields FVI and BVL, as well as those of the fields of the vectors FFIV and BFIV shown in FIG. 2 are given by way of example. Other positions can be chosen, in order to obtain alternative embodiments of the invention. Such alternative modes of implementation are also included in the invention. However, it is particularly advantageous, in the context of the IPv4 version of the IP protocol, to design the FVI and BVL fields, as well as the FFIV and BFIV vector fields, so as to exploit the maximum length of the part of- Bll head. It is also understood that the invention can be implemented in an equivalent manner within the framework of version 6 of the IP protocol (IPv6), by adapting the fields FVI and BVL, as well as the fields of vectors FFIV and BFIV defined above. above to the specifics of this latest version of the IP protocol. In particular, the IPv6 version allows the adoption of longer field and vector lengths, thanks to the possibility of defining an option header for size larger than 40 bytes. Each router of network 100 has a routing table used by the routing unit of this router to transmit the received datagrams. This routing table is designated by FIB table, for "Forwarding Information dataBase" in English. Table 1 below represents a part of such a routing table, established by way of example for router 5 in FIG. 1:
Tableau 1 Table 1
La table FIB doit être lue par lignes, chaque ligne correspondant à une route. A titre d'exemple, la deuxième ligne caractérise la direction à prendre, c'est-à-dire l'adresse IP du routeur suivant, soit DP_5_6 : 6, pour atteindre le préfixe de destination DP_7_10. La première colonne de la table FIB, intitulée «Destination Prefix» en anglais, regroupe des préfixes de destination DP. A titre d'exemple, le préfixe de destination noté DP_7_10 correspond au sous-réseau d'interconnexions entre le routeur 7 et le terminal 10. La seconde colonne de la table FIB, intitulée «Next Hop», indique une adresse IP d'un routeur ou d'un terminal relié au routeur 5 par un lien de transmission unique, pour chaque préfixe de destination indiqué dans la première colonne. Les adresses IP sont construites de la façon connue, avec un préfixe DP suivi d'un identifiant du terminal ou du routeur. Les colonnes «Interface» et «Encapsulation L2» donnent des informations utiles pour la transmission du datagramme, sans relation avec l'invention. Lors de la réception d'un datagramme par un routeur, l'adresse IP du terminal destinataire de ce datagramme est lue dans le champ «DESTINATION ADDRESS» de la partie d'en-tête Bl du datagramme. D'une façon connue, le préfixe de destination de l'adresse lue est isolé en utilisant un masque de réseau, et est identifié à l'un des préfixes de destination contenus dans la première colonne de la table FIB selon un principe de plus grande coïncidence, ou «longest match» en anglais. Selon l'invention, la table FIB de chaque routeur est complétée de la façon suivante, illustrée par le tableau 2 ci-dessous. Le tableau 2 représente encore une partie de table FIB, établie à titre d'exemple pour le routeur 5 (voir figure 1 ) :The FIB table must be read in rows, each row corresponding to a route. For example, the second line characterizes the direction to take, that is to say the IP address of the following router, ie DP_5_6: 6, to reach the destination prefix DP_7_10. The first column of the FIB table, entitled "Destination Prefix" in English, groups DP destination prefixes. As an example, the destination prefix noted DP_7_10 corresponds to the interconnection subnet between router 7 and terminal 10. The second column of the FIB table, entitled "Next Hop", indicates an IP address of a router or terminal connected to router 5 by a single transmission link, for each destination prefix indicated in the first column. IP addresses are constructed in a known manner, with a DP prefix followed by an identifier of the terminal or the router. The columns “Interface” and “Encapsulation L2” give useful information for the transmission of the datagram, without relation to the invention. When a datagram is received by a router, the IP address of the terminal receiving this datagram is read in the "DESTINATION ADDRESS" field in the header part B1 of the datagram. In a known manner, the destination prefix of the address read is isolated using a network mask, and is identified with one of the destination prefixes contained in the first column of the FIB table according to a principle of greater coincidence, or "longest match" in English. According to the invention, the FIB table of each router is completed in the following manner, illustrated by table 2 below. Table 2 also represents a part of the FIB table, established by way of example for router 5 (see FIG. 1):
Tableau 2 Table 2
Par rapport à une table FIB conforme au tableau 1, une table FIB conforme au tableau 2 possède deux colonnes supplémentaires. La première colonne contient des références de routes, et est intitulée «Réf.». La seconde colonne, intitulée «Load», contient des valeurs de taux de charge. Une table FIB conforme au tableau 1 indique une unique possibilité de transmission d'un datagramme par le routeur, pour chaque préfixe de destination. A la différence, une table FIB conforme au tableau 2 indique une ou plusieurs possibilités de transmission d'un datagramme pour chaque préfixe de destination. Chaque possibilité correspond à une route différente entre le routeur concerné, c'est-à-dire le routeur 5 dans l'exemple considéré, et le terminal destinataire dont l'adresse IP est lue dans le datagramme. La colonne «Réf.» associe à chacune de ces routes une référence numérique. Ces références distinguent les différentes routes prises en compte dans la table FIB, qui correspondent à un même préfixe de destination. Une même référence peut éventuellement être utilisée plusieurs fois dans la table FIB, pour désigner des routes correspondant à des préfixes de destination différents. Pour un même préfixe de destination, les références associées aux routes prises en compte dans la table FIB n'ont qu'une fonction d'identification, et ne correspondent pas à un classement. Les références utilisées dépendent des modifications intervenues dans la table FIB lors de mises à jour successives de celle-ci, établies par l'unité de commande du routeur. La table de références évoquée dans la description générale de l'invention est formée par l'ensemble des lignes de la table FIB qui correspondent à un préfixe de destination déterminé unique. Ainsi, dans l'exemple correspondant à la figure 1 et au tableau 2, la table de références considérée pour un datagramme dont le préfixe de destination est DP_7_10 comprend les troisième à cinquième lignes de la table FIB, sans compter la ligne des noms des colonnes. Pour chaque ligne de la table FIB, c'est à dire pour chaque route prise en compte, la colonne «Load» indique une valeur de taux de charge. Cette valeur est déterminée par l'unité de commande en fonction de données d'état du réseau. De telles données sont, par exemple, des valeurs de taux de charge de certains au moins des liens du réseau 100. La valeur indiquée dans la colonne «Load» pour chaque ligne de la table FIB peut être égale, par exemple, à la plus grande des valeurs de taux de charge de tous les liens le long de la route correspondant à cette ligne. Elle peut être exprimée de diverses façons, telles que, notamment, sous forme d'un pourcentage d'une capacité maximale de transmission par cette route, ou bande passante. On décrit maintenant en détail des transmissions de plusieurs datagrammes au sein du réseau 100 représenté sur la figure 1, en référence aux figures 3a et 3b. Les lettres A à O indiquées sur les figures 3a et 3b repèrent différentes étapes de ces transmissions. Lorsque des données sont produites par le terminal 1 à destination du terminal 10, le terminal 1 répartit ces données dans des datagrammes successifs. Le procédé de création des datagrammes est considéré connu. En particulier, le terminal 1 crée un contexte de session de communication (étape A de la figure 3a). Ce contexte de session de communication regroupe notamment les données suivantes : les adresses IP respectives des terminaux 1 et 10, un numéro de protocole de transport (par exemple les protocoles TCP ou UDP) et des numéros de ports source et destination. Les données du contexte de session de communication sont stockées dans le terminal 1. Lors de la création d'un premier datagramme 20, le terminal 1 configure la partie d'en-tête Bl de ce datagramme. En particulier, il inscrit les adresses IP respectives des terminaux 1 et 10 dans les champs «SOURCE ADDRESS» et «DESTINATION ADDRESS». Il configure aussi la partie d'en- tête Bll, en inscrivant les valeurs initiales suivantes dans les différents champs : - champ OPT. TYPE : 10011001 - champ OPT. LENGTH : 40 - champ FVI : 1 - champ BVL : 0 - champs du vecteur FFIV : 0, 0 0 - champs du vecteur BFIV : 0, 0 0 Selon le procédé donné ici en exemple, 1 est la valeur initiale de l'index FVI, et 0 est la valeur initiale inscrite dans le champ BVL. 0 est aussi la référence initiale inscrite dans tous les champs des vecteurs FFIV et BFIV. La référence 0 est réservée à la fonction d'initialisation : elle n'est pas utilisée dans les tables de références des routeurs pour identifier une route. Ainsi qu'il apparaîtra dans la suite, l'initialisation à 0 des champs des vecteurs FFIV et BFIV d'un datagramme par un terminal signifie que ce datagramme est soit un datagramme isolé, soit un premier datagramme d'un flux, soit un datagramme ultérieur d'un flux pour lequel le terminal émetteur ne dispose pas de références initiales prédéterminées. Ces références inscrites dans les champs des vecteurs FFIV et BFIV du datagramme 20, ainsi que les valeurs inscrites dans les champs FVI et BVL du datagramme 20, sont stockées par le terminal 1 avec les données du contexte de session de communication. Le terminal 1 transmet alors le datagramme 20 au routeur 4 (étape B).Compared to a FIB table conforming to table 1, a FIB table conforming to table 2 has two additional columns. The first column contains route references, and is titled "Ref." The second column, titled "Load", contains load rate values. A FIB table conforming to table 1 indicates a single possibility of transmission of a datagram by the router, for each destination prefix. Unlike, an FIB table conforming to table 2 indicates a or several possibilities of transmitting a datagram for each destination prefix. Each possibility corresponds to a different route between the router concerned, that is to say the router 5 in the example considered, and the destination terminal whose IP address is read in the datagram. The “Ref.” Column associates a numerical reference to each of these routes. These references distinguish the different routes taken into account in the FIB table, which correspond to the same destination prefix. The same reference can possibly be used several times in the FIB table, to designate routes corresponding to different destination prefixes. For the same destination prefix, the references associated with the routes taken into account in the FIB table have only an identification function, and do not correspond to a classification. The references used depend on the modifications which have occurred in the FIB table during successive updates thereof, established by the control unit of the router. The reference table mentioned in the general description of the invention is formed by all of the rows of the FIB table which correspond to a single determined destination prefix. Thus, in the example corresponding to FIG. 1 and to Table 2, the reference table considered for a datagram whose destination prefix is DP_7_10 comprises the third to fifth rows of the FIB table, without counting the row of column names . For each row of the FIB table, ie for each route taken into account, the "Load" column indicates a value of load rate. This value is determined by the control unit based on network status data. Such data are, for example, load rate values of at least some of the links in network 100. The value indicated in the “Load” column for each row of the FIB table can be, for example, at the most large of the load rate values of all links along the route corresponding to this line. It can be expressed in various ways, such as, in particular, as a percentage of a maximum transmission capacity by this route, or bandwidth. We will now describe in detail transmissions of several datagrams within the network 100 represented in FIG. 1, with reference to FIGS. 3a and 3b. The letters A to O indicated in Figures 3a and 3b identify different stages of these transmissions. When data is produced by the terminal 1 intended for the terminal 10, the terminal 1 distributes this data in successive datagrams. The process for creating datagrams is considered to be known. In particular, the terminal 1 creates a communication session context (step A in FIG. 3a). This communication session context includes in particular the following data: the respective IP addresses of the terminals 1 and 10, a transport protocol number (for example the TCP or UDP protocols) and source and destination port numbers. The data of the communication session context are stored in the terminal 1. When creating a first datagram 20, the terminal 1 configures the header part B1 of this datagram. In particular, it registers the respective IP addresses of terminals 1 and 10 in the "SOURCE ADDRESS" and "DESTINATION ADDRESS" fields. It also configures the header part Bll, by entering the following initial values in the different fields: - OPT field. TYPE: 10011001 - OPT field. LENGTH: 40 - FVI field: 1 - BVL field: 0 - FFIV vector fields: 0, 0 0 - BFIV vector fields: 0, 0 0 According to the method given here as an example, 1 is the initial value of the index FVI, and 0 is the initial value entered in the BVL field. 0 is also the initial reference entered in all the fields of the vectors FFIV and BFIV. The reference 0 is reserved for the initialization function: it is not used in the router reference tables to identify a route. As will appear below, the initialization at 0 of the fields of the vectors FFIV and BFIV of a datagram by a terminal means that this datagram is either an isolated datagram, or a first datagram of a flow, or a datagram subsequent of a flow for which the transmitting terminal does not have predetermined initial references. These references entered in the fields of the vectors FFIV and BFIV of the datagram 20, as well as the values written in the fields FVI and BVL of the datagram 20, are stored by the terminal 1 with the data of the context of the communication session. The terminal 1 then transmits the datagram 20 to the router 4 (step B).
On suppose que le routeur 4 transmet à son tour le datagramme 20 au routeur 5 (étape C). Lors de cette transmission, le routeur 4 inscrit la valeur 2 dans le champ d'index FVI du datagramme 20, ainsi que la référence 3, donnée à titre d'exemple, dans le premier champ du vecteur FFIV du datagramme 20. Le procédé de transmission du datagramme 20, mis en œuvre au sein de chaque routeur, est maintenant décrit en détail pour le routeur 5. Au cours de ce procédé, le routeur 5 sélectionne une ligne dans sa table FIB (tableau 2). Cette sélection est effectuée en deux étapes successives. Lors d'une première étape de la sélection d'une ligne de la table FIB, le routeur 5 lit l'adresse IP du terminal destinataire du datagramme 20 dans le champ «DESTINATION ADDRESS» de la partie d'en-tête Bl. Il isole le préfixe de destination de cette adresse, et le compare aux préfixes de destination contenus dans la première colonne de la table FIB. Selon le procédé de plus grande coïncidence («longest match»), il sélectionne dans la table FIB le plus long préfixe de destination qui correspond à celui de l'adresse IP du terminal destinataire. Dans l'exemple décrit ici, le préfixe de destination sélectionné est noté DP_7_10 (tableau 2). Les références contenues dans la colonne «Réf.» de la table FIB aux lignes correspondant au préfixe de destination DP_7_10 forment la table de références prise en compte lors de la transmission du datagramme 20. Cette table de références est donc une partie de la table FIB qui correspond au préfixe de destination unique sélectionné DP_7_10. La seconde étape de la sélection d'une ligne de la table FIB est maintenant décrite en référence à la figure 4. Les différentes étapes mentionnées à la figure 4 sont exécutées dans l'unité d'acheminement 5a. Le routeur 5 lit d'abord la valeur inscrite dans le champ d'index FVI du datagramme 20 (étape 30). La valeur lue est 2. Il lit ensuite la référence contenue dans le champ du vecteur FFIV dont la position au sein de ce vecteur correspond à la valeur lue dans le champ FVI (étape 31). La référence 0 est ainsi lue dans le deuxième champ du vecteur FFIV. Etant donné que la référence lue est égale à la référence d'initialisation (étape 32a), le routeur 5 est alors autonome pour déterminer la route le long de laquelle il transmet le datagramme. Il sélectionne, dans la table de références correspondant au préfixe de destination DP_7_10, la référence qui correspond à une valeur de taux de charge minimale (étape 33). Dans le cas de la table FIB du tableau 2, la référence 4 correspond à la valeur de taux de charge minimale. Le routeur 5 inscrit alors la référence 4 dans le champ du vecteur FFIV désigné par l'index FVI (deuxième champ du vecteur FFIV - étape 34 de la figure 4). Il incrémente ensuite d'une unité la valeur de l'index FVI et inscrit la valeur obtenue dans le champ FVI du datagramme 20 (étape 35). Le datagramme 20 contient alors les valeurs et références indiquées sur la figure 3a, pour l'étape D. La ligne de la table FIB qui correspond au préfixe de destination sélectionné et à la référence 4 est la ligne sélectionnée. Le routeur 5 transmet le datagramme 20 conformément à l'indication de la colonne «Next Hop» pour la ligne sélectionnée. Dans l'exemple décrit, il transmet le datagramme 20 au routeur 6. Les routeurs 6 (étape E de la figure 3b) puis 7 (étape F) transmettent chacun le datagramme 20 en suivant un procédé identique à celui décrit pour le routeur 5. Le terminal 10 reçoit alors le datagramme 20 contenant la valeur d'index FVI et les références, inscrites dans les champs des vecteurs FFIV et BFIV, indiquées à l'étape G, à titre d'exemple. Le terminal 10 stocke les données du contexte de la session de communication du datagramme 20, lues dans la partie d'en-tête Bl du datagramme 20. Il stocke aussi, avec ces données, les contenus des champs FVI et BVL, ainsi que ceux des champs des vecteurs FFIV et BFIV. Le terminal 10 lit alors les données contenues dans le champ de données (ou «payload») du datagramme 20. On suppose maintenant que le terminal 10 produit à son tour des données à destination du terminal 1, en réponse aux données véhiculées par le datagramme 20. Les données produites par le terminal 10 sont transmises dans le cadre de la même session de communication que celle du datagramme 20. Le datagramme 20 appartient donc à un flux-aller relevant de cette session de communication, et de nouveaux datagrammes émis par le terminal 10 appartiennent à un flux-retour de cette session de communication. Le terminal 10 crée un nouveau datagramme 21 , en reprenant les données du contexte de session de communication du datagramme 20 (étape H de la figure 3b). Le datagramme 21 possède une structure identique à celle du datagramme 20. Le terminal 10 complète les champs de la partie d'en-tête Bl du datagramme 21 de la façon décrite plus haut pour le terminal 1 et le datagramme 20, en échangeant les données relatives aux terminaux émetteur et destinataire. En outre, le terminal 10 récupère, avec les données du contexte de session de communication stockées, les références et valeurs mémorisées lors de la réception du datagramme 20. Il les inscrit dans les champs de la partie d'en-tête Bll du datagramme 21 , de la façon suivante : - dans les champs successifs du vecteur FFIV du datagramme 21 : les références contenues dans les champs du vecteur BFIV du datagramme 20, selon le même ordre ; - dans les champs successifs du vecteur BFIV du datagramme 21 : les références contenues dans les champs du vecteur FFIV du datagramme 20, selon le même ordre ; et - dans le champ BVL du datagramme 21 : la valeur lue dans le champ FVI du datagramme 20. De même que le terminal 1 lors de l'émission du datagramme 20, le terminal 10 inscrit la valeur initiale 1 dans le champ d'index FVI du datagramme 21 (étape I). La transmission du datagramme 21 dans le réseau 100 jusqu'au terminal 1 est effectuée d'une façon analogue à la transmission du datagramme 20 décrite plus haut. Il faut préciser que le datagramme 21 ne transite pas, a priori, par les mêmes routeurs que le datagramme 20, et que les nombres de routeurs par lesquels transite respectivement chacun des datagrammes 20 et 21 sont a priori différents. Sur les figures 3a et 3b, y est le nombre de routeurs par lesquels transite le datagramme 21. Les contenus du champ BVL et des champs du vecteur BFIV du datagramme 21 sont transportés lors de la transmission du datagramme 21 dans le réseau 100, sans être utilisés. La réception du datagramme 21 par le terminal 1 (étape J de la figure 3a) est effectuée d'une façon identique à la réception du datagramme 20 par le terminal 10, décrite ci-dessus. En particulier, les contenus des champs FVI et BVL, ainsi que ceux des vecteurs FFIV et BFIV du datagramme 21 , sont stockés par le terminal 1 avec les données du contexte de la session de communication. Les références inscrites dans les champs du vecteur BFIV du datagramme 21 du flux-retour, et la valeur inscrite dans le champ BVL du datagramme 21, sont alors stockées dans chacun des deux terminaux 1 et 10. Ainsi, les références inscrites par les routeurs dans les champs du vecteur FFIV du datagramme 20, de même que la dernière valeur inscrite dans le champ d'index FVI du datagramme 20, i.e. la valeur inscrite par le routeur 7, sont stockées dans les deux terminaux 1 et 10 avec les données du contexte de la session de communication. Le procédé décrit maintenant s'applique à la situation selon laquelle le terminal 1 produit de nouvelles données à destination du terminal 10, en réponse aux données véhiculées par le datagramme 21. Le terminal 1 crée alors un datagramme 22, selon la procédure déjà décrite, en reprenant les données du contexte de session de communication stockées (étape K de la figure 3a). Le datagramme 22 appartient au même flux-aller relevant de cette session de communication que le datagramme 20. Le terminal 1 inscrit, dans le champ FVI du datagramme 22, la valeur initiale 1 , et, dans le champ BVL du datagramme 22, la valeur y d'index FVI lue dans le datagramme 21 lors de la réception de ce dernier par le terminal 1. Il inscrit aussi, dans les champs du vecteur FFIV du datagramme 22, les références lues dans les champs du vecteur BFIV du datagramme 21. De même, il inscrit dans les champs du vecteur BFIV du datagramme 22, les références lues dans les champs du vecteur FFIV du datagramme 21. Les valeurs et références ainsi obtenues pour les champs du datagramme 22 sont indiqués à l'étape L de la figure 3a. Autrement dit, lorsqu'un datagramme appartient à un flux-aller de datagrammes successivement transmis par un terminal émetteur à un terminal récepteur, ledit flux-aller relevant d'une session de communication, les champs du vecteur BFIV dudit datagramme sont destinés à recevoir des références inscrites dans les champs d'un vecteur FFIV d'un datagramme d'un flux-retour relevant de ladite session de communication, transmis par le terminal récepteur des datagrammes du flux-aller, et reçu par le terminal émetteur des datagrammes du flux-aller avant la transmission dudit datagramme du flux- aller. De même, le champ BVL dudit datagramme du flux-aller est destiné à recevoir la dernière valeur inscrite dans le champ FVI dudit datagramme du flux-retour. On suppose que le datagramme 22 est transmis au routeur 4 par le terminal 1 , puis au routeur 5 par le routeur 4 (étape M), de la même façon que le datagramme 20. Lorsque le datagramme 22 est transmis par le routeur 4, celui-ci incrémente à 2 la valeur de l'index FVI. Le routeur 4 laisse en outre la référence 3 inscrite dans le premier champ du vecteur FFIV du datagramme 22. La description du procédé de transmission d'un datagramme par un routeur du réseau 100 est complétée maintenant, dans le cas du datagramme 22 transmis par le routeur 5. La première étape de la sélection d'une ligne de la table FIB est identique à celle décrite pour la transmission du datagramme 20. Lors de la seconde étape de la sélection d'une ligne de la table FIB, le routeur 5 analyse le vecteur FFIV du datagramme 22 conformément au procédé de la figure 4. Il lit la référence indiquée par l'index FVI (étapes 30 et 31). La référence lue est 4, conformément à l'inscription qu'avait opérée le routeur 5 dans le datagramme 20, lors l'étape D de la transmission de ce dernier. Cette référence lue étant différente de la référence d'initialisation 0 des champs de vecteurs (étape 32a), le routeur 5 examine si la table de références déterminée lors de la première étape de sélection d'une ligne de la table FIB contient la référence 4 (étape 32b). Deux situations peuvent alors se présenter : selon une première situation, la table de références contient encore la référence 4, et selon une seconde situation, elle ne contient plus la référence 4. La première situation intervient, notamment, lorsque la table FIB du routeur 5 n'a pas été modifiée entre les transmissions respectives des datagrammes 20 et 22. Elle intervient aussi si la référence 4 a été maintenue dans la table FIB pour le préfixe de destination DP_7_10 lors des mises à jour de la table FIB survenues entre les transmissions des datagrammes 20 et 22. Dans ce cas, conformément au diagramme de la figure 4, le vecteur FFIV n'est pas modifié par le routeur 5, l'index FVI est incrémente (étape 35), et le routeur 5 transmet le datagramme 22 au routeur 6 (étape 36). Les transmissions des datagrammes 20 et 22 par le routeur 5 sont alors identiques. La seconde situation se produit lorsqu'une mise à jour de la table FIB du routeur 5 est survenue entre la transmission du datagramme 20 et celle du datagramme 22. On suppose, pour l'exemple, que la mise à jour n'a consisté, en ce qui concerne les routes reliant le routeur 5 au terminal 10, qu'à la suppression de la ligne du tableau 2 correspondant au préfixe de destination DP_7_10 et à la référence 4. A l'issue de la première étape de sélection d'une ligne de la table FIB, le routeur 5 a sélectionné dans sa table FIB les deux lignes correspondant au préfixe de destination DP_7_10. Ces deux lignes constituent la nouvelle table de références considérée. La première de ces deux lignes correspond à la référence de route 1 , et la valeur de taux de charge indiquée est 70%. La seconde de ces deux lignes correspond à la référence de route 6, et la valeur de taux de charge indiquée est 20%. Le routeur 5 sélectionne celle de ces deux références pour laquelle la route présente la valeur minimale de taux de charge (étapes 32b et 33) : la référence 6. Il inscrit alors cette référence dans le deuxième champ du vecteur FFIV du datagramme 22 (étape 34). De la même façon que précédemment, il incrémente l'index FVI du datagramme 22 (étape 35). Enfin, il transmet le datagramme 22 selon l'indication de la colonne «Next Hop» de la table FIB pour la ligne correspondant au préfixe de destination DP_7_10 et à la référence 6 (étape 36). Dans l'exemple présent, le routeur 5 transmet le datagramme 22 au routeur 9. Les étapes N et O des figures 3a et 3b illustrent la seconde situation qui vient d'être décrite, x est une référence inscrite par le routeur 9. A la réception du datagramme 22 par le terminal 10, le terminal 10 actualise les valeurs et références stockées avec les données du contexte de la session de communication. A l'issue de cette actualisation, les références inscrites dans les champs du vecteur FFIV du datagramme 21 , recopiées dans les champs du vecteur BFIV du datagramme 22 par le terminal 1 , sont stockées dans les deux terminaux 1 et 10. Il en est de même pour la dernière valeur inscrite dans le champ d'index FVI du datagramme 21. Il ressort de la description ci-dessus que l'association des procédés de marquage et de transmission d'un datagramme selon l'invention procure les avantages suivants : - lorsqu'un nouveau datagramme appartient à un flux pour lequel des datagrammes ont déjà été transmis, l'utilisation d'une route suivie par un datagramme antérieur du même flux est privilégiée pour le nouveau datagramme ; - lorsque la route utilisée pour le datagramme antérieur du flux n'est plus disponible, le nouveau datagramme est transmis selon une nouvelle route ; et - la nouvelle route est déterminée de façon à répartir les flux de datagrammes entre différents liens de transmission du réseau selon leurs degrés de disponibilité. Cette association combine une transmission par sauts élémentaires indépendants («hop by hop») et une réduction du risque de congestion du réseau. Un fonctionnement stable du réseau en résulte. II est entendu que des variantes peuvent être introduites par rapport au mode de mise en œuvre de l'invention qui a été décrit ci-dessus. En particulier, dans la figure 4, les étapes 32a et 32b peuvent être regroupées en une étape unique, correspondant au même test que celui de l'étape 32b. Enfin, dans des modes de mise en œuvre particuliers de l'invention, des références inscrites dans un champ du vecteur FFIV ou du vecteur BFIV d'un datagramme, de même qu'une valeur inscrite dans le champ FVI ou BVL d'un datagramme, peuvent n'être stockées que dans l'un des deux terminaux émetteur ou destinataire de ce datagramme. Une telle mise en œuvre peut, notamment, concerner un datagramme appartenant à un flux-retour. It is assumed that the router 4 in turn transmits the datagram 20 to the router 5 (step C). During this transmission, the router 4 writes the value 2 in the index field FVI of the datagram 20, as well as the reference 3, given by way of example, in the first field of the vector FFIV of the datagram 20. The method of transmission of the datagram 20, implemented within each router, is now described in detail for the router 5. During this process, the router 5 selects a line in its FIB table (table 2). This selection is made in two successive stages. During a first step of selecting a line from the FIB table, the router 5 reads the IP address of the destination terminal of the datagram 20 in the "DESTINATION ADDRESS" field of the header part Bl. isolates the destination prefix from this address, and compares it to the destination prefixes contained in the first column of the FIB table. According to the process of greatest coincidence (“longest match”), it selects from the FIB table the longest destination prefix which corresponds to that of the IP address of the destination terminal. In the example described here, the selected destination prefix is noted DP_7_10 (table 2). The references contained in the “Ref.” Column of the FIB table to the lines corresponding to the destination prefix DP_7_10 form the reference table taken into account when transmitting datagram 20. This reference table is therefore a part of the FIB table which corresponds to the selected unique destination prefix DP_7_10. The second step of selecting a row from the FIB table is now described with reference to FIG. 4. The various steps mentioned in FIG. 4 are carried out in the routing unit 5a. Router 5 first reads the value entered in the FVI index field of datagram 20 (step 30). The value read is 2. It then reads the reference contained in the field of the vector FFIV whose position within this vector corresponds to the value read in the FVI field (step 31). The reference 0 is thus read in the second field of the vector FFIV. Since the reference read is equal to the initialization reference (step 32a), the router 5 is then autonomous in determining the route along which it transmits the datagram. It selects, in the reference table corresponding to the destination prefix DP_7_10, the reference which corresponds to a minimum charge rate value (step 33). In the case of the FIB table of table 2, the reference 4 corresponds to the minimum charge rate value. The router 5 then registers the reference 4 in the field of the vector FFIV designated by the index FVI (second field of the vector FFIV - step 34 of FIG. 4). It then increments the value of the FVI index by one and writes the value obtained in the FVI field of the datagram 20 (step 35). The datagram 20 then contains the values and references indicated in FIG. 3a, for step D. The line of the FIB table which corresponds to the selected destination prefix and to the reference 4 is the selected line. Router 5 transmits datagram 20 according to the indication in the “Next Hop” column for the selected line. In the example described, it transmits the datagram 20 to the router 6. The routers 6 (step E of FIG. 3b) then 7 (step F) each transmit the datagram 20 by following a process identical to that described for the router 5. The terminal 10 then receives the datagram 20 containing the index value FVI and the references, written in the fields of the vectors FFIV and BFIV, indicated in step G, by way of example. The terminal 10 stores the data of the context of the communication session of the datagram 20, read in the header part B1 of the datagram 20. It also stores, with these data, the contents of the fields FVI and BVL, as well as those FFIV and BFIV vector fields. The terminal 10 then reads the data contained in the data field (or “payload”) of the datagram 20. It is now assumed that the terminal 10 in turn produces data intended for the terminal 1, in response to the data carried by the datagram 20. The data produced by terminal 10 are transmitted in the context of the same communication session as that of the datagram 20. The datagram 20 therefore belongs to a go flow coming from this communication session, and new datagrams sent by the terminal 10 belong to a return flow from this session Communication. The terminal 10 creates a new datagram 21, by taking the data from the communication session context of the datagram 20 (step H of FIG. 3b). The datagram 21 has a structure identical to that of the datagram 20. The terminal 10 completes the fields of the header part B1 of the datagram 21 as described above for the terminal 1 and the datagram 20, by exchanging the data relating to the sending and receiving terminals. In addition, the terminal 10 retrieves, with the data of the stored communication session context, the references and values memorized during the reception of the datagram 20. It writes them in the fields of the header part Bll of the datagram 21 , as follows: - in the successive fields of the FFIV vector of the datagram 21: the references contained in the fields of the BFIV vector of the datagram 20, in the same order; - in the successive fields of the BFIV vector of the datagram 21: the references contained in the fields of the FFIV vector of the datagram 20, in the same order; and - in the BVL field of the datagram 21: the value read in the FVI field of the datagram 20. Like the terminal 1 during the transmission of the datagram 20, the terminal 10 writes the initial value 1 in the index field FVI of datagram 21 (step I). The transmission of the datagram 21 in the network 100 to the terminal 1 is carried out in a manner analogous to the transmission of the datagram 20 described above. It should be noted that the datagram 21 does not pass, a priori, by the same routers as the datagram 20, and that the numbers of routers through which each of the datagrams 20 and 21 respectively pass are a priori different. In FIGS. 3a and 3b, there is the number of routers through which the datagram 21 passes. The contents of the BVL field and BFIV vector fields of the datagram 21 are transported during the transmission of the datagram 21 in the network 100, without being used. The reception of the datagram 21 by the terminal 1 (step J of FIG. 3a) is carried out in an identical manner to the reception of the datagram 20 by the terminal 10, described above. In particular, the contents of the fields FVI and BVL, as well as those of the vectors FFIV and BFIV of the datagram 21, are stored by the terminal 1 with the data of the context of the communication session. The references entered in the BFIV vector fields of the datagram 21 of the return flow, and the value entered in the BVL field of the datagram 21, are then stored in each of the two terminals 1 and 10. Thus, the references entered by the routers in the FFIV vector fields of the datagram 20, as well as the last value entered in the FVI index field of the datagram 20, ie the value entered by the router 7, are stored in the two terminals 1 and 10 with the data of the context of the communication session. The method now described applies to the situation where the terminal 1 produces new data intended for the terminal 10, in response to the data conveyed by the datagram 21. The terminal 1 then creates a datagram 22, according to the procedure already described, by taking the data from the stored communication session context (step K of FIG. 3a). The datagram 22 belongs to the same go flow pertaining to this communication session as the datagram 20. The terminal 1 enters, in the FVI field of the datagram 22, the initial value 1, and, in the BVL field of the datagram 22, the value y of the FVI index read in the datagram 21 upon reception of the latter by the terminal 1. It also writes, in the fields of the vector FFIV of the datagram 22, the references read in the fields of the vector BFIV of the datagram 21. From even, it inscribes in the fields of the vector BFIV of the datagram 22, the references read in the fields of the vector FFIV of the datagram 21. The values and references thus obtained for the fields of the datagram 22 are indicated in step L of FIG. 3a . In other words, when a datagram belongs to a go stream of datagrams successively transmitted by a transmitting terminal to a receiving terminal, said go flow coming from a communication session, the fields of the BFIV vector of said datagram are intended to receive references entered in the fields of a FFIV vector of a datagram of a return flow pertaining to said communication session, transmitted by the terminal receiving the datagrams of the outward flow, and received by the terminal transmitting the datagrams of the flow- go before the transmission of said go flow datagram. Likewise, the BVL field of said go flow datagram is intended to receive the last value entered in the FVI field of said return flow datagram. It is assumed that the datagram 22 is transmitted to the router 4 by the terminal 1, then to the router 5 by the router 4 (step M), in the same way as the datagram 20. When the datagram 22 is transmitted by the router 4, that -ci increments the value of the FVI index to 2. The router 4 also leaves the reference 3 written in the first field of the vector FFIV of the datagram 22. The description of the method of transmission of a datagram by a router of the network 100 is now completed, in the case of the datagram 22 transmitted by the router 5. The first step of selecting a line from the FIB table is identical to that described for the transmission of datagram 20. During the second step of selecting a line from the FIB table, router 5 analyzes the FFIV vector of the datagram 22 according to the method of FIG. 4. It reads the reference indicated by the FVI index (steps 30 and 31). The reference read is 4, in accordance with the entry made by the router 5 in the datagram 20, during step D of the transmission of the latter. This reference read being different from the initialization reference 0 of the vector fields (step 32a), the router 5 examines whether the reference table determined during the first step of selecting a line of the FIB table contains the reference 4 (step 32b). Two situations can then arise: according to a first situation, the reference table still contains reference 4, and according to a second situation, it no longer contains reference 4. The first situation occurs, in particular, when the FIB table of router 5 has not been modified between the respective transmissions of datagrams 20 and 22. It intervenes also if the reference 4 has been maintained in the FIB table for the destination prefix DP_7_10 during updates of the FIB table which have occurred between the transmissions of datagrams 20 and 22. In this case, in accordance with the diagram in FIG. 4, the FFIV vector is not modified by router 5, the FVI index is incremented (step 35), and router 5 transmits datagram 22 to router 6 (step 36). The transmissions of datagrams 20 and 22 by the router 5 are then identical. The second situation occurs when an update of the FIB table of router 5 has occurred between the transmission of datagram 20 and that of datagram 22. It is assumed, for the example, that the update did not consist, with regard to the routes connecting the router 5 to the terminal 10, only with the deletion of the line of table 2 corresponding to the destination prefix DP_7_10 and the reference 4. At the end of the first step of selecting a line of the FIB table, the router 5 has selected in its FIB table the two lines corresponding to the destination prefix DP_7_10. These two lines constitute the new reference table considered. The first of these two lines corresponds to the route reference 1, and the charge rate value indicated is 70%. The second of these two lines corresponds to the route reference 6, and the charge rate value indicated is 20%. The router 5 selects one of these two references for which the route has the minimum load rate value (steps 32b and 33): the reference 6. It then writes this reference in the second field of the vector FFIV of the datagram 22 (step 34 ). In the same way as previously, it increments the FVI index of the datagram 22 (step 35). Finally, it transmits the datagram 22 according to the indication in the “Next Hop” column of the FIB table for the line corresponding to the destination prefix DP_7_10 and to the reference 6 (step 36). In the present example, the router 5 transmits the datagram 22 to the router 9. The steps N and O of FIGS. 3a and 3b illustrate the second situation which has just been described, x is a reference entered by the router 9. On receipt of the datagram 22 by the terminal 10, the terminal 10 updates the values and references stored with the data of the context of the communication session. At the end of this update, the references entered in the fields of the vector FFIV of the datagram 21, copied into the fields of the vector BFIV of the datagram 22 by the terminal 1, are stored in the two terminals 1 and 10. The same is true for even for the last value entered in the FVI index field of the datagram 21. It appears from the above description that the combination of the marking and transmission methods of a datagram according to the invention provides the following advantages: when a new datagram belongs to a flow for which datagrams have already been transmitted, the use of a route followed by an earlier datagram of the same flow is preferred for the new datagram; - when the route used for the previous datagram of the stream is no longer available, the new datagram is transmitted according to a new route; and the new route is determined so as to distribute the datagram flows between different transmission links of the network according to their degrees of availability. This association combines transmission by independent elementary jumps (“hop by hop”) and a reduction in the risk of network congestion. Stable network operation results. It is understood that variants can be introduced with respect to the mode of implementation of the invention which has been described above. In particular, in FIG. 4, steps 32a and 32b can be grouped together in a single step, corresponding to the same test as that of step 32b. Finally, in particular embodiments of the invention, references written in a field of the vector FFIV or vector BFIV of a datagram, as well as a value written in the field FVI or BVL of a datagram , can only be stored in one of the two terminals sender or recipient of this datagram. Such an implementation may, in particular, relate to a datagram belonging to a return flow.

Claims

R E V E N D I C A T I O N S
1. Procédé de marquage d'un datagramme (20, 22) transmis dans un réseau de communication (100) comprenant des routeurs (4-9) connectés entre eux par des liens de transmission, à partir d'un terminal émetteur du datagramme (1) raccordé à un premier routeur du réseau (4) jusqu'à un terminal récepteur du datagramme (10) raccordé à un second routeur du réseau (7), le datagramme comprenant un vecteur (FFIV) formé de champs ordonnés contenant chacun une référence, le datagramme comprenant en outre un champ d'index de vecteur (FVI), chaque routeur disposant d'une table de références, le procédé comprenant les étapes suivantes, lorsqu'un routeur (5) reçoit le datagramme : - lecture d'une valeur dans le champ d'index (FVI) du datagramme, - lecture de la référence contenue dans le champ du vecteur du datagramme (FFIV) désigné par la valeur d'index lue ; - si la table du routeur ne contient pas la référence lue, inscription, dans le champ du vecteur du datagramme désigné par la valeur d'index lue, d'une référence sélectionnée dans la table du routeur ; - inscription, dans le champ d'index du datagramme, d'une valeur égale à la valeur lue incrémentée d'une unité ; et - transmission du datagramme à un routeur suivant du réseau.1. Method for marking a datagram (20, 22) transmitted in a communication network (100) comprising routers (4-9) connected to each other by transmission links, from a terminal transmitting the datagram ( 1) connected to a first network router (4) to a terminal receiving the datagram (10) connected to a second network router (7), the datagram comprising a vector (FFIV) formed of ordered fields each containing a reference , the datagram further comprising a vector index field (FVI), each router having a reference table, the method comprising the following steps, when a router (5) receives the datagram: - reading a value in the index field (FVI) of the datagram, - reading of the reference contained in the vector field of the datagram (FFIV) designated by the index value read; - if the router table does not contain the reference read, writing, in the vector field of the datagram designated by the index value read, of a reference selected in the router table; - entry, in the index field of the datagram, of a value equal to the value read incremented by one; and - transmission of the datagram to a next router on the network.
2. Procédé de marquage selon la revendication 1, suivant lequel les champs du vecteur (FFIV) et le champ d'index (FVI) sont disposés dans l'entête du datagramme.2. The marking method according to claim 1, according to which the vector fields (FFIV) and the index field (FVI) are arranged in the header of the datagram.
3. Procédé de marquage selon la revendication 1 ou 2, suivant lequel les références contenues dans la table du routeur (5) sont associées à des routes respectives dans le réseau (100).3. The marking method according to claim 1 or 2, according to which the references contained in the router table (5) are associated with respective routes in the network (100).
4. Procédé de marquage selon la revendication 3, suivant lequel la table de références du routeur (5) est une partie d'une table de routage dudit routeur, ladite partie correspondant à un préfixe de destination unique contenu dans la table de routage.4. Marking method according to claim 3, according to which the router reference table (5) is a part of a routing table of said router. router, said part corresponding to a unique destination prefix contained in the routing table.
5. Procédé de marquage selon l'une quelconque des revendications 1 à 4, suivant lequel le datagramme (22) appartient à un flux de datagrammes successivement transmis par le terminal émetteur (1) au terminal récepteur (10), et suivant lequel la référence lue est identique à une référence inscrite par ledit routeur (5) lors de la transmission d'un datagramme antérieur dudit flux (20).5. A marking method according to any one of claims 1 to 4, according to which the datagram (22) belongs to a stream of datagrams successively transmitted by the transmitting terminal (1) to the receiving terminal (10), and according to which the reference read is identical to a reference entered by said router (5) during the transmission of an earlier datagram of said stream (20).
6. Procédé de marquage selon la revendication 5, suivant lequel une référence initiale est inscrite dans chaque champ du vecteur (FFIV) d'un premier datagramme du flux (20) par le terminal émetteur (1), la référence initiale ne correspondant à aucune référence contenue dans les tables de références des routeurs.6. A marking method according to claim 5, according to which an initial reference is entered in each field of the vector (FFIV) of a first datagram of the stream (20) by the transmitting terminal (1), the initial reference not corresponding to any reference contained in the router reference tables.
7. Procédé de marquage selon l'une quelconque des revendications précédentes, suivant lequel le datagramme (22) appartient à un flux-aller de datagrammes successivement transmis par le terminal émetteur (1) au terminal récepteur (10), ledit flux-aller relevant d'une session de communication, et suivant lequel ledit datagramme (22) comprend en outre un vecteur supplémentaire (BFIV) formés de champs destinés à recevoir des références inscrites dans les champs d'un vecteur (FFIV) d'un datagramme d'un flux- retour (21) relevant de ladite session de communication, transmis par le terminal récepteur des datagrammes du flux-aller (10), et reçu par le terminal émetteur des datagrammes du flux-aller (1) avant la transmission dudit datagramme du flux-aller (22).7. A marking method according to any one of the preceding claims, according to which the datagram (22) belongs to a go stream of datagrams successively transmitted by the transmitting terminal (1) to the receiving terminal (10), said go flow falling a communication session, and according to which said datagram (22) further comprises an additional vector (BFIV) formed of fields intended to receive references inscribed in the fields of a vector (FFIV) of a datagram of a return-flow (21) pertaining to said communication session, transmitted by the terminal receiving the datagrams of the forward flow (10), and received by the terminal transmitting the datagrams of the forward flow (1) before the transmission of said datagram of the flow -Go (22).
8. Procédé de marquage selon la revendication 7, suivant lequel les références inscrites dans les champs du vecteur (FFIV) du datagramme du flux-retour (21) sont stockées avec des données de contexte de la session de communication dans l'un au moins des deux terminaux (1, 10). 8. The marking method according to claim 7, according to which the references written in the vector fields (FFIV) of the datagram of the return flow (21) are stored with context data of the communication session in at least one. of the two terminals (1, 10).
9. Procédé de marquage selon la revendication 7 ou 8, suivant lequel les champs du vecteur supplémentaire (BFIV) sont disposés dans l'en-tête dudit datagramme du flux-aller (22).9. The marking method according to claim 7 or 8, according to which the fields of the additional vector (BFIV) are arranged in the header of said go-stream datagram (22).
10. Procédé de marquage selon l'une quelconque des revendications 7 à 9, suivant lequel des références initiales sont inscrites par le terminal émetteur (1) dans les champs du vecteur (FFIV) dudit datagramme du flux-aller (22), lesdites références initiales étant respectivement identiques à des références contenues dans des champs d'un vecteur supplémentaire (BFIV) du datagramme du flux-retour (21).10. A marking method according to any one of claims 7 to 9, according to which initial references are entered by the transmitting terminal (1) in the vector fields (FFIV) of said datagram of the go-stream (22), said references initials being respectively identical to references contained in fields of an additional vector (BFIV) of the datagram of the return flow (21).
11. Procédé de marquage selon la revendication 10, suivant lequel les références inscrites dans les champs du vecteur supplémentaire (BFIV) du datagramme du flux-retour (21) sont stockées avec des données de contexte de la session de communication dans l'un au moins des deux terminaux (1, 10).11. The marking method according to claim 10, according to which the references written in the fields of the additional vector (BFIV) of the datagram of the return flow (21) are stored with context data of the communication session in one to the less than the two terminals (1, 10).
12. Procédé de marquage selon l'une quelconque des revendications 7 à 11, suivant lequel ledit datagramme du flux-aller (22) comprend en outre un champ de longueur de vecteur (BVL) destiné à recevoir la dernière valeur inscrite dans le champ d'index (FVI) du datagramme du flux-retour (21).12. A marking method according to any one of claims 7 to 11, according to which said go flow datagram (22) further comprises a vector length field (BVL) intended to receive the last value entered in the field d 'index (FVI) of the datagram of the return flow (21).
13. Procédé de marquage selon la revendication 12, suivant lequel la dernière valeur inscrite dans le champ d'index (FVI) du datagramme du flux- retour (21) est stockée avec des données de contexte de la session de communication dans l'un au moins des deux terminaux (1, 10).13. The marking method according to claim 12, according to which the last value entered in the index field (FVI) of the datagram of the return flow (21) is stored with context data of the communication session in one at least two terminals (1, 10).
14. Procédé de marquage selon la revendication 12 ou 13, suivant lequel le champ de longueur de vecteur (BVL) est disposé dans l'en-tête dudit datagramme du flux-aller (22).14. The marking method according to claim 12 or 13, according to which the vector length field (BVL) is arranged in the header of said go flow datagram (22).
15. Procédé de marquage selon l'une quelconque des revendication 12 à 14, suivant lequel une valeur inscrite dans un champ de longueur de vecteur (BVL) du datagramme du flux-retour (21) est stockée avec des données de contexte de la session de communication dans l'un au moins des deux terminaux (1, 10). 15. The marking method according to claim 12, according to which a value written in a vector length field (BVL) of the datagram of the return flow (21) is stored with context data of the session. communication in at least one of the two terminals (1, 10).
16. Procédé de transmission d'un datagramme (20, 22) par un routeur (5) d'un réseau de communication (100), le routeur disposant d'une table de références associées à des routes respectives entre ledit routeur et un terminal, destinataire du datagramme (10) raccordé au réseau, le procédé de transmission comprenant les étapes suivantes : - lors de la réception du datagramme par le routeur, lecture d'une référence dans le datagramme ; et - recherche de la référence lue dans la table de références du routeur, . si la table contient la référence lue, transmission du datagramme le long de la route à laquelle la référence lue est associée, . sinon, sélection d'une référence dans la table, et transmission du datagramme le long de la route à laquelle est associée la référence sélectionnée ; procédé selon lequel la référence lue a été inscrite préalablement dans le datagramme en utilisant un procédé de marquage selon l'une quelconque des revendications 1 à 15.16. Method for transmitting a datagram (20, 22) by a router (5) of a communication network (100), the router having a table of references associated with respective routes between said router and a terminal , recipient of the datagram (10) connected to the network, the transmission method comprising the following steps: - when the datagram is received by the router, reading a reference in the datagram; and - search for the reference read from the router reference table,. if the table contains the reference read, transmission of the datagram along the route with which the reference read is associated,. otherwise, selection of a reference in the table, and transmission of the datagram along the route with which the selected reference is associated; method according to which the reference read has been previously registered in the datagram using a marking method according to any one of claims 1 to 15.
17. Procédé de transmission selon la revendication 16, suivant lequel la référence sélectionnée dans la table de références du routeur est en outre inscrite dans ledit datagramme (20, 22) en utilisant un procédé de marquage selon l'une quelconque des revendications 1 à 15.17. The transmission method according to claim 16, according to which the reference selected in the reference table of the router is also written in said datagram (20, 22) using a marking method according to any one of claims 1 to 15. .
18. Procédé de transmission selon la revendication 16 ou 17, suivant lequel la table de références est associée à un préfixe de destination unique contenu dans une table de routage dudit routeur (5).18. The transmission method according to claim 16 or 17, according to which the reference table is associated with a unique destination prefix contained in a routing table of said router (5).
19. Procédé de transmission selon la revendication 18, comprenant les étapes suivantes effectuées lors de la réception du datagramme par le routeur19. The transmission method according to claim 18, comprising the following steps carried out upon reception of the datagram by the router
(5) avant la recherche de la référence lue dans la table de références dudit routeur : - lecture d'une adresse de destination dans le datagramme ; et - sélection dans la table de routage dudit routeur du plus long préfixe de destination correspondant à l'adresse de destination lue, la table de références dudit routeur dans laquelle la référence lue dans le datagramme est ensuite recherchée étant associée au préfixe de destination sélectionné.(5) before searching for the reference read from the reference table of said router: - reading of a destination address in the datagram; and - selection in the routing table of said router of the longest destination prefix corresponding to the destination address read, the reference table of said router in which the reference read in the datagram is then sought being associated with the selected destination prefix.
20. Procédé de transmission selon l'une quelconque des revendications 16 à 19, suivant lequel la table de références comprend en outre, pour chaque référence de ladite table, une valeur de taux de charge affectée à la route à laquelle est associée ladite référence, et suivant lequel la référence sélectionnée correspond à une valeur de taux de charge minimale parmi les routes auxquelles sont associées des références contenues dans ladite table de références.20. Transmission method according to any one of claims 16 to 19, according to which the reference table further comprises, for each reference of said table, a load rate value assigned to the route with which said reference is associated, and according to which the selected reference corresponds to a minimum load rate value among the routes to which are associated references contained in said reference table.
21. Terminal (1 , 10) comprenant : - des moyens de production d'un datagramme destiné à être émis par le terminal (20-22), le datagramme comprenant un vecteur de champs ordonnés (FFIV) et un champ d'index de vecteur (FVI) ; - des moyens d'inscription d'une référence initiale dans chaque champ du vecteur (FFIV) du datagramme destiné à être émis par le terminal ; et - des moyens d'inscription d'une valeur initiale dans le champ d'index (FVI) du datagramme destiné à être émis par le terminal.21. Terminal (1, 10) comprising: - means for producing a datagram intended to be transmitted by the terminal (20-22), the datagram comprising an ordered field vector (FFIV) and an index field of vector (FVI); - means for registering an initial reference in each vector field (FFIV) of the datagram intended to be transmitted by the terminal; and means for recording an initial value in the index field (FVI) of the datagram intended to be transmitted by the terminal.
22. Terminal selon la revendication 21 , comprenant en outre : - des moyens de lecture de secondes références dans des champs d'un vecteur supplémentaire (BFIV) contenus dans un datagramme reçu (21) par le terminal ; et - des moyens de stockage, dans une table de contextes de sessions de communication dudit terminal, des secondes références avec des données de contexte de session de communication du datagramme reçu, dans lequel la référence initiale inscrite dans chaque champ du vecteur (FFIV) du datagramme destiné à être émis par le terminal (21 , 22) est une dite seconde référence lue dans un champ du vecteur supplémentaire (BFIV) du datagramme reçu (20, 21), lorsque le datagramme destiné à être émis appartient à la session de communication du datagramme reçu.22. Terminal according to claim 21, further comprising: - means for reading second references in fields of an additional vector (BFIV) contained in a datagram received (21) by the terminal; and - means for storing, in a table of communication session contexts of said terminal, second references with communication session context data of the received datagram, in which the initial reference entered in each vector field (FFIV) of the datagram intended to be transmitted by the terminal (21, 22) is a so-called second reference read in a field of the additional vector (BFIV) of the received datagram (20, 21), when the datagram intended to be sent belongs to the communication session of the received datagram.
23. Terminal selon la revendication 22, dans lequel les moyens de production du datagramme destiné à être émis (21 , 22) sont adaptés de sorte que le datagramme destiné à être émis comprend en outre un vecteur supplémentaire (BFIV) de champs, le terminal comprenant en outre : - des moyens de lecture de premières références dans des champs d'un vecteur (FFIV) contenus dans le datagramme reçu (20, 21) ; - des moyens de stockage, dans la table de contextes de sessions de communication dudit terminal, desdites premières références avec les données de contexte de session de communication du datagramme reçu ; et - des moyens d'inscription desdites premières références dans les champs du vecteur supplémentaire (BFIV) du datagramme destiné à être émis par le terminal (21 , 22), lorsque le datagramme destiné à être émis appartient à la session de communication du datagramme reçu.23. Terminal according to claim 22, in which the means for producing the datagram intended to be transmitted (21, 22) are adapted so that the datagram intended to be transmitted further comprises an additional vector (BFIV) of fields, the terminal further comprising: - means for reading first references in fields of a vector (FFIV) contained in the received datagram (20, 21); means for storing, in the table of contexts of communication sessions of said terminal, said first references with the data of context of communication session of the received datagram; and - means for registering said first references in the fields of the additional vector (BFIV) of the datagram intended to be sent by the terminal (21, 22), when the datagram intended to be sent belongs to the communication session of the received datagram .
24. Terminal selon la revendication 23, dans lequel les moyens de production du datagramme destiné à être émis (21 , 22) sont aussi adaptés de sorte que le datagramme destiné à être émis comprend en outre un champ de longueur de vecteur (BVL), le terminal comprenant en outre : - des moyens de lecture d'une valeur dans un champ d'index de vecteur (FVI) contenu dans le datagramme reçu (20, 21 ) ; - des moyens de stockage, dans la table de contextes de sessions de communication dudit terminal, de la valeur d'index lue avec les données de contexte de session de communication du datagramme reçu ; et - des moyens d'inscription de la valeur d'index lue dans le champ de longueur de vecteur (BVL) du datagramme destiné à être émis par le terminal (21 , 22), lorsque le datagramme destiné à être émis appartient à la session de communication du datagramme reçu. 24. The terminal as claimed in claim 23, in which the means for producing the datagram intended to be sent (21, 22) are also adapted so that the datagram intended to be sent further comprises a vector length field (BVL), the terminal further comprising: - means for reading a value in a vector index field (FVI) contained in the received datagram (20, 21); means of storing, in the table of contexts of communication sessions of said terminal, the index value read with the data of context of communication session of the received datagram; and - means for registering the index value read in the vector length field (BVL) of the datagram intended to be transmitted by the terminal (21, 22), when the datagram intended to be transmitted belongs to the session communication of the datagram received.
25. Routeur (5) comprenant : - des moyens de lecture d'une valeur dans un champ d'index de vecteur (FVI) d'un datagramme reçu (20, 22) par le routeur ; - des moyens de lecture d'une référence contenue dans un champ de vecteur (FFIV) dudit datagramme désigné par la valeur d'index lue ; - des moyens de stockage d'une table de références ; - des moyens d'association des références contenues dans la table avec des routes respectives ; - des moyens de recherche d'une référence lue, dans la table de références dudit routeur, agencés pour commander une transmission dudit datagramme le long de la route à laquelle est associée la référence lue, si la tablé de références contient la référence lue ; - des moyens de sélection d'une référence dans la table de références, agencés pour être activés si la table de références ne contient pas la référence lue, et agencés pour commander une transmission dudit datagramme le long de la route à laquelle est associée la référence sélectionnée ; et - des moyens d'inscription, dans le champ d'index dudit datagramme (FVI), d'une valeur égale à la valeur lue incrémentée d'une unité.25. Router (5) comprising: - means for reading a value in a vector index field (FVI) of a datagram received (20, 22) by the router; means for reading a reference contained in a vector field (FFIV) of said datagram designated by the index value read; - means for storing a reference table; - means for associating the references contained in the table with respective routes; means of searching for a read reference, in the reference table of said router, arranged to control a transmission of said datagram along the route with which the read reference is associated, if the reference table contains the read reference; means for selecting a reference in the reference table, arranged to be activated if the reference table does not contain the reference read, and arranged to control a transmission of said datagram along the route to which the reference is associated selected; and - means for recording, in the index field of said datagram (FVI), a value equal to the value read incremented by one.
26. Routeur selon la revendication 25, comprenant en outre des moyens d'inscription de la référence sélectionnée dans le champ de vecteur (FFIV) dudit datagramme désigné par la valeur d'index lue.26. A router according to claim 25, further comprising means for writing the reference selected in the vector field (FFIV) of said datagram designated by the index value read.
27. Routeur selon la revendication 25 ou 26, dans lequel les moyens d'association sont compris dans des moyens de calcul d'une table de routage dudit routeur, lesdits moyens de calcul appartenant à une unité de contrôle dudit routeur (5b).27. Router according to claim 25 or 26, in which the association means are included in means for calculating a routing table of said router, said means for calculating belonging to a control unit of said router (5b).
28. Routeur selon la revendication 27, dans lequel les moyens d'association sont agencés en outre pour associer une table de références à un préfixe de destination unique contenu dans la table de routage dudit routeur (5).28. Router according to claim 27, in which the association means are further arranged for associating a reference table with a unique destination prefix contained in the routing table of said router (5).
29. Routeur selon la revendication 28, dans lequel la table de références dudit routeur comprend, pour chaque référence de ladite table, une valeur de taux de charge affectée à la route à laquelle est associée ladite référence, et dans lequel les moyens de sélection d'une référence sont agencés pour sélectionner la référence pour laquelle la route correspond à une valeur de taux de charge minimale.29. Router according to claim 28, in which the reference table of said router comprises, for each reference in said table, a load rate value assigned to the route to which said reference is associated, and in which the means for selecting d 'a reference are arranged to select the reference for which the route corresponds to a minimum load rate value.
30. Réseau de communication comprenant un routeur (5) selon l'une quelconque des revendications 25 à 29. 30. Communication network comprising a router (5) according to any one of claims 25 to 29.
EP04805663A 2003-12-26 2004-12-08 Marking of a datagram transmitted over an ip network and transmission of one such datagram Withdrawn EP1766889A1 (en)

Applications Claiming Priority (2)

Application Number Priority Date Filing Date Title
FR0315470 2003-12-26
PCT/FR2004/003157 WO2005071902A1 (en) 2003-12-26 2004-12-08 Marking of a datagram transmitted over an ip network and transmission of one such datagram

Publications (1)

Publication Number Publication Date
EP1766889A1 true EP1766889A1 (en) 2007-03-28

Family

ID=34803300

Family Applications (1)

Application Number Title Priority Date Filing Date
EP04805663A Withdrawn EP1766889A1 (en) 2003-12-26 2004-12-08 Marking of a datagram transmitted over an ip network and transmission of one such datagram

Country Status (3)

Country Link
US (1) US20070140265A1 (en)
EP (1) EP1766889A1 (en)
WO (1) WO2005071902A1 (en)

Families Citing this family (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US10716060B2 (en) 2017-04-03 2020-07-14 Bank Of America Corporation Data transfer between computing device and user device at different locations and over session or connection to display one or more routing networks to use
US10609156B2 (en) * 2017-04-03 2020-03-31 Bank Of America Corporation Data transfer, over session or connection, and between computing device and server associated with one or more routing networks in response to detecting activity
US10601934B2 (en) 2017-04-03 2020-03-24 Bank Of America Corporation Data transfer, over session or connection, and between computing device and one or more servers for transmitting data to a third party computing device
US10601718B2 (en) 2017-04-03 2020-03-24 Bank Of America Corporation Data transfer, over session or connection, and between computing device and server associated with a routing network for modifying one or more parameters of the routing network
US10608918B2 (en) 2017-04-03 2020-03-31 Bank Of America Corporation Data transfer, over session or connection, and between computing device and one or more servers to determine likelihood of user device using a routing network

Family Cites Families (20)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US6148000A (en) * 1996-10-02 2000-11-14 International Business Machines Corporation Merging of data cells at network nodes
US6512766B2 (en) * 1997-08-22 2003-01-28 Cisco Systems, Inc. Enhanced internet packet routing lookup
US6763007B1 (en) * 1998-12-11 2004-07-13 Lucent Technologies Inc. Two phase local mobility scheme for wireless access to packet based networks
DE60034279T2 (en) * 1999-02-16 2007-12-20 Ntt Docomo, Inc. METHOD FOR ASSESSING THE ALLOCATION OF A RADIO CONNECTION IN A MOBILE COMMUNICATION SYSTEM AND RADIO CONNECTOR CONTROL
US20050259682A1 (en) * 2000-02-03 2005-11-24 Yuval Yosef Broadcast system
US7496096B1 (en) * 2002-01-31 2009-02-24 Cisco Technology, Inc. Method and system for defining hardware routing paths for networks having IP and MPLS paths
US8392952B2 (en) * 2002-05-03 2013-03-05 Time Warner Cable Enterprises Llc Programming content processing and management system and method
US7660255B2 (en) * 2002-11-13 2010-02-09 International Business Machines Corporation System and method for routing IP datagrams
US7872991B2 (en) * 2003-02-04 2011-01-18 Alcatel-Lucent Usa Inc. Methods and systems for providing MPLS-based layer-2 virtual private network services
US6970464B2 (en) * 2003-04-01 2005-11-29 Cisco Technology, Inc. Method for recursive BGP route updates in MPLS networks
US7715380B2 (en) * 2003-06-19 2010-05-11 Cisco Technology, Inc. Apparatus and methods for handling shared services through virtual route forwarding (VRF)-aware-NAT
US7698455B2 (en) * 2003-08-01 2010-04-13 Foundry Networks, Inc. Method for providing scalable multicast service in a virtual private LAN service
US7903565B2 (en) * 2005-08-12 2011-03-08 Alcatel Method of monitoring a tandem connection in a MPLS telecommunication network
US7609620B2 (en) * 2005-08-15 2009-10-27 Cisco Technology, Inc. Method and apparatus using multiprotocol label switching (MPLS) label distribution protocol (LDP) to establish label switching paths (LSPS) for directed forwarding
KR100735276B1 (en) * 2005-08-18 2007-07-03 삼성전자주식회사 Method and apparatus for decoding a mpe-fec frame in a dvb-h system
WO2007084167A1 (en) * 2006-01-17 2007-07-26 Truespan, Inc. Error resilience methods for multi-protocol encapsulation forward error correction implementations
US7684350B2 (en) * 2006-03-16 2010-03-23 Cisco Technology, Inc. Method and apparatus for distributing labels in a label distribution protocol multicast network
JP4951070B2 (en) * 2006-10-12 2012-06-13 テレフオンアクチーボラゲット エル エム エリクソン(パブル) Efficient MBMS backbone distribution using one tunnel method
KR101405970B1 (en) * 2007-06-28 2014-06-12 엘지전자 주식회사 Digital broadcasting system and method of processing data in digital broadcasting system
KR101486372B1 (en) * 2007-07-25 2015-01-26 엘지전자 주식회사 Digital broadcasting system and method of processing data in digital broadcasting system

Non-Patent Citations (1)

* Cited by examiner, † Cited by third party
Title
See references of WO2005071902A1 *

Also Published As

Publication number Publication date
US20070140265A1 (en) 2007-06-21
WO2005071902A1 (en) 2005-08-04

Similar Documents

Publication Publication Date Title
US6529508B1 (en) Methods and apparatus for packet classification with multiple answer sets
US6567408B1 (en) Methods and apparatus for packet classification with multi-level data structure
FR2835135A1 (en) Mobile communications system traffic stream reclassing system having streams filtered/reclassed comparing statistical digital words and finding filtering success with memory storing successively submitted filtered packets
FR2789778A1 (en) METHOD FOR ASSOCIATING ROUTING REFERENCES WITH DATA PACKETS BY MEANS OF A SORTED MEMORY, AND PACKET ROUTER APPLYING THIS METHOD
EP2436155B1 (en) Method for path management between a source node and a destination node at the link layer level, corresponding source node and table
EP1486047B1 (en) Method of selecting and sorting data packets
FR2811180A1 (en) IP DATA TRANSMISSION NETWORK USING ROUTE SELECTION SYSTEM BASED ON LEVEL 4/5 INFORMATION
EP1766889A1 (en) Marking of a datagram transmitted over an ip network and transmission of one such datagram
WO2002015488A1 (en) Methods and apparatus for packet classification with multiple answer sets
EP3503499A1 (en) Method for optimizing spectral efficiency in an mpls interconnection context
FR2838898A1 (en) CENTRALIZED SWITCHING AND ROUTING DEVICE
EP3949287A1 (en) Gateway and method for differentiating traffic transmitted by the gateway, traffic management device and method
EP2031809B1 (en) Method for processing data streams in a telecommunication network
FR2919139A1 (en) MECHANISM FOR UPDATING THE PARAMETERS OF A PSEUDO-LINK
EP1595362A1 (en) Method for interconnecting virtual private networks in non-connected mode
EP1355454B1 (en) Parallel processing routing device
FR2857539A1 (en) Packet communication network node e.g. IP router, operating method for data packet transmission, involves receiving packet and information independent of open system interconnection layer protocol, and processing packet by node
WO2006067288A1 (en) Datagram transmitting method, router and terminal for carrying out said method
EP1762051A1 (en) Method for managing an interconnection between telecommunication networks and device therefor
WO2005025146A1 (en) Transmission of multicast traffic in a communications network
EP1714467A1 (en) Automatic network number attribution for communication equipment in an ipv6 network
EP2476225B1 (en) Method and system for controlling the routing of a data stream from a class of service through a meshed and encrypted network
WO2005052812A1 (en) Trie-type memory device comprising a compression mechanism
EP4024820A1 (en) Method for configuring a secured interface between a transport network and one of a plurality of elementary networks federated through the transport network; associated interface
FR2867639A1 (en) METHOD OF TRANSMITTING DATA BETWEEN NODES OF A MULTIPLE ACCESS COMMUNICATION NETWORK BY DECREETING AN ASSOCIATED COUNTER

Legal Events

Date Code Title Description
PUAI Public reference made under article 153(3) epc to a published international application that has entered the european phase

Free format text: ORIGINAL CODE: 0009012

17P Request for examination filed

Effective date: 20060726

AK Designated contracting states

Kind code of ref document: A1

Designated state(s): AT BE BG CH CY CZ DE DK EE ES FI FR GB GR HU IE IS IT LI LT LU MC NL PL PT RO SE SI SK TR

DAX Request for extension of the european patent (deleted)
17Q First examination report despatched

Effective date: 20071030

STAA Information on the status of an ep patent application or granted ep patent

Free format text: STATUS: THE APPLICATION IS DEEMED TO BE WITHDRAWN

18D Application deemed to be withdrawn

Effective date: 20120703