WO2007148014A2 - Procede de construction de descriptions de flots de paquets - Google Patents

Procede de construction de descriptions de flots de paquets Download PDF

Info

Publication number
WO2007148014A2
WO2007148014A2 PCT/FR2007/051468 FR2007051468W WO2007148014A2 WO 2007148014 A2 WO2007148014 A2 WO 2007148014A2 FR 2007051468 W FR2007051468 W FR 2007051468W WO 2007148014 A2 WO2007148014 A2 WO 2007148014A2
Authority
WO
WIPO (PCT)
Prior art keywords
stream
level
description
flow
descriptions
Prior art date
Application number
PCT/FR2007/051468
Other languages
English (en)
Other versions
WO2007148014A3 (fr
Inventor
Fabrice Guillemin
Stéphanie MOTEAU
Original Assignee
France Telecom
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 filed Critical France Telecom
Publication of WO2007148014A2 publication Critical patent/WO2007148014A2/fr
Publication of WO2007148014A3 publication Critical patent/WO2007148014A3/fr

Links

Classifications

    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L47/00Traffic control in data switching networks
    • H04L47/10Flow control; Congestion control
    • H04L47/24Traffic characterised by specific attributes, e.g. priority or QoS
    • H04L47/2441Traffic characterised by specific attributes, e.g. priority or QoS relying on flow classification, e.g. using integrated services [IntServ]
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L69/00Network arrangements, protocols or services independent of the application payload and not provided for in the other groups of this subclass
    • H04L69/22Parsing or analysis of headers

Definitions

  • the invention relates to a technique for constructing stream descriptions relating to flows transmitted through a packet communication network.
  • the invention lies in the field of observation of traffic in packet communication networks. It applies to stream processing that can be performed by different elements of the network: routers, switches, multiplexers.
  • a stream is characterized by a number of characteristics common to several packets. These characteristics, or elements of identification, can be present in different layers of the OSI model for Open Systems Interconnection model in English. They can correspond to the contents of the source and / or destination address fields (layer 3), or any other field in the packet header, including port numbers and protocol type in the case of TCP segments encapsulated in IP datagrams (layer 4).
  • a certain component of the traffic for example the component corresponding to all the flows whose volume or number of packets is greater than a threshold, for example, greater than an N number of packets.
  • a threshold for example, greater than an N number of packets.
  • the observation of the traffic can be carried out on a link by means of a device for duplicating the traffic by an optical coupler, or by the implementation of specific functions directly implemented in a device of the network, for example a router, at as the traffic flows.
  • the observation device receives a packet to be routed containing, for at least some of the identification elements mentioned above, unknown values, it initiates a flow description by adding to the identification elements of the flow various elements making it possible to describe the flow such as: - DPkts, containing the number of packets counted for this flow; DOctets, containing the volume in bytes of level 3 (OSI layer) in the stream packets;
  • the observation device On receipt of each new packet belonging to an already identified stream, the observation device updates the parameters DPkts, DOctets and Last of the corresponding stream description.
  • the observation device After a predetermined period of inactivity of the stream, or periodically, the observation device transmits to a collection equipment the descriptions relating to this stream, which he himself made. Since the memory capacity of the observation device is limited, it can not retain all the wave descriptions indefinitely, so that it can not be responsible for making a decision locally about the detection of a component of traffic: it transmits all the collected flow descriptions to the collection equipment for post-processing. As a result, most often, there is not a single flow description for a given stream, but several flow descriptions in which the stream information is distributed. In addition, the fact that the observation device makes no local detection has the consequence that information relating to flow descriptions that do not correspond to the desired component is also transmitted. Furthermore, the collection equipment must then group together in the set of stream descriptions received, those corresponding to the same stream before being able to make a decision.
  • the invention responds to this need by proposing a method of constructing a stream description, wherein a succession of respective level processing i, with i varying from 1 to a determined value L, are applied to intermediate stream descriptions. , each processing level i using a level i flow description table.
  • the level i processing of a first intermediate stream description relating to a given stream comprises: a step of searching, in the level flow description table i, of an intermediate flow description relating to said flow; if the search is negative, a step of recording, in the level flow description table i, the first intermediate stream description relating to said stream and a step of assigning to the first stream description a date of expiry, depending on the level i, beyond which the first flow description is processed by the level (i + 1); if the search is positive, the level i flow description table containing a second intermediate stream description relating to said stream, a step of updating the second intermediate stream description concerning said stream in said stream description table level i using the first intermediate stream description and a step of updating an expiry date of the second level-dependent intermediate stream description i.
  • the invention originates from a problem of limited memory capacity of the device generating the stream descriptions.
  • the invention can be applied to any device generating stream descriptions.
  • An intermediate stream description corresponding to a packet exchange between two entities of a communication network, is successively processed by the processing levels from the first level.
  • the processing levels each handle an expiration date depending on the level i. If no intermediate flow description for this stream exists in a level i stream description table, then the stream description is stored in the level table i and an expiry date is assigned to the stream description. If an intermediate flow description already exists in the level i flow description table, the arrival of the intermediate flow description at level i updates the existing intermediate flow description and the expired expiry date. . Beyond the expiry date, the intermediate stream description present in the flow description table is considered out of date for this level i and is then processed by the next level i + 1.
  • a low volume flow will quickly be treated by the different treatment levels and reach the last level of treatment, where it is considered that the description of this flow is complete. It was not saved unnecessarily in the top-level table.
  • a large volume flow for which, for example, the packets are grouped into successive bursts will be the subject of several intermediate flow descriptions, to finally reach the last level where it is considered that the description of this flow is globally representative of the activity of the flow.
  • the use of the memory is also optimized in this case because the description of this stream will not occupy a memory location for a long time but more temporarily according to the arrival of successive bursts.
  • each processing level i further uses a flow level identifier table i of determined size M 1 and circular management in which the stream identifiers corresponding to intermediate stream descriptions processed by the level i are recorded, it is further provided before registering at a current address a stream identifier corresponding to an intermediate stream description processed by level i in place of another stream identifier already registered at the current address, a step of checking the expiration date of an intermediate stream description corresponding to said other stream identifier.
  • Each level of processing also includes a table of stream identifiers.
  • the flow description table is checked whether the expiry date assigned to the flow description corresponding to the flow description corresponds to Stream ID previously saved to the insert address is expired. If so, this previously recorded intermediate stream description is forwarded for processing to the next level.
  • the expiry date takes the value of a current date at level i plus the size of the level i-level identifier table.
  • the expiry date depending on processing level i, is implemented using the stream identifier table of this level. It is thus clocked by the arrival rhythm of the intermediate flow descriptions at level i.
  • the expiry date of an intermediate stream description is defined according to the size M 1 of the stream identifier table.
  • the method further comprises, before the step of searching in the level I flow description table, a step of rejecting the first intermediate stream description to be processed at level i if a volume information contained in said description. flow is below a threshold C 1 associated with level i.
  • the method further comprises a step of searching in at least one lower level flow description table of an occurrence of a relative flow description. to the same flow and if the search is positive, a step of updating the flow description of said occurrence with the expired flow description, the expiry date assigned to the flow description of the occurrence not being modified .
  • a step of searching for intermediate flow descriptions relating to the same flow in the lower processing levels is performed to verify that no intermediate flow description exists. is actually more present. This step therefore makes it possible to ensure the representativeness of the stream description while allowing the number of treatment levels to be limited.
  • the method comprises a step of selecting the stream if at least one of the characteristics contained in the flow description corresponds to a desired criterion. If the method is completed by a step of selecting flow descriptions of which at least one of the characteristics corresponds to a desired criterion, it is then possible to transmit only the selected flow descriptions to a collection device. The link to this device is then less loaded since only representative and selected flow descriptions are transmitted.
  • the invention also proposes a device for constructing a stream description, by a succession of respective level processing i, with i varying from 1 to a predetermined value L, comprising i level associated flow description tables, respectively associated with each other.
  • the device comprises:
  • level i identification data tables respectively associated with the different processing levels i, containing stream identifiers
  • the invention also relates to:
  • a program for constructing a stream description comprising program code instructions intended to control the execution of the steps of the method as described above and to be executed by a device, when said program is executed by said program device; a recording medium readable by a device on which the program is recorded as described above.
  • FIG. 1 represents the steps of the method of constructing a description flow according to a particular embodiment of the invention
  • FIG. 2 represents the steps of the method of constructing a stream description at the last level of processing
  • FIG. 3 represents a description of intermediate flow
  • FIG. 4 represents a device for constructing a flow description
  • FIG. 5 gives an example of construction of a stream description on a plurality of packets exchanged between two entities of a communication network.
  • a stream corresponds to a packet exchange between two machines of a packet communication network whose packets have common characteristics, in particular here common characteristics of origin, destination and service. Subsequently, these characteristics are called stream characteristics.
  • a stream identifier is constructed using these common features. We are here in the case of an IP network.
  • a stream description 100 comprises the following elements: an identifier 101 of the stream; a date 102 of beginning of the flow; a date 103 corresponding to the date when the last information concerning the flow was received; a date 104 of expiry of the flow; a field 105 representative of the volume in bytes of the stream; a field 106 representative of the number of packets of the stream.
  • the start date 102 of the flow is an absolute date managed by a device 150 implementing the method. Moreover, each processing level i manages a current date depending on the level i.
  • the expiration date 104 is initialized to a value dependent on the current date at processing level i and relates to this processing level i.
  • a packet exchanged between two entities of the communication network is associated with an intermediate stream description. which is treated by the first level.
  • a stream entering at level i is called a stream to which the description of intermediate stream to be processed by level i corresponds.
  • a first step E1 of rejection the volume of the incoming stream contained in the intermediate stream description to be processed by level i is compared with a threshold C 1 associated with level i.
  • the volume of the incoming stream is for example present in the description 100 of the intermediate stream in the field 106 representative of the number of packets of the stream.
  • This step El makes it possible to take into consideration at processing level i only the streams whose volume is sufficient. If the volume of the incoming stream is less than the threshold C 1 , the intermediate stream description is ignored in a step E14. In the opposite case, the process continues in step E2.
  • a third step E3 of search in the table 200_i of stream descriptions of level i one seeks, using the result obtained by the function of hash in step E2, if at least one second intermediate stream description is recorded in this table 200_i.
  • the table 200_i contains in the area addressed by the result obtained by the hash function, a plurality of second intermediate stream descriptions, for which the result obtained by the hash function applied to the respective stream identifiers is the same.
  • the result of the search step E3 is positive, that is to say that the 200_i table of level i flow descriptions contains at least a second intermediate stream description for which the result obtained by application of the function of hash to the identifier is identical to that obtained by application of the hash function to the identifier of the incoming stream, it is checked in a step E6 if the identifier of the (or one of) second (s) description (s) intermediate flow found in the table 200_i level i in step E3 corresponds to that of the incoming stream.
  • the second intermediate stream description is updated with the description stream to be processed by the level i, in particular the field 103 corresponding to the date when the last information about the stream was received, the field 105 representative of the volume of the stream and the field 106 representative of the number of packets received for the stream.
  • These last two fields represent the accumulation between their old value and the value present in the intermediate stream description to be processed by level i.
  • the field 103 is updated with a new expiry date value, beyond which the second intermediate stream description is processed by the level (i + 1).
  • a stream description record step E4 is moved to the table 200 i of level i.
  • Step E9 and the next steps of the method are aimed at detecting the presence of an expired stream description in table 200_i of level i stream descriptions.
  • each processing level i comprises an internal clock.
  • the expiry date of the set of intermediate flow descriptions contained in the table 200_i of level i is checked, for example periodically.
  • the expiry date is initialized to the value of the current date at level i plus a predetermined value. If the expiry date of an intermediate flow description is greater than the current date depending on the level i, the flow description is said to be out of date. It is then transmitted to the next higher level (i + 1) and is removed from the level i table 200_i.
  • each processing level i comprises a table 210_i of stream identifiers of level i of determined size M 1 .
  • the management of this table is circular and a current write address is used to record at this address a stream identifier.
  • the current date dependent on the level i is managed using this table 210_i of level i stream identifiers. It is incremented by 1 modulo M 1 for each record in table 210_i.
  • the expiry date is initialized to the current date plus the size M 1 of the table 210_i of stream identifiers.
  • the current date depending on the processing level i depends on the arrival rate of flow descriptions on this level. It is therefore relative to this level of treatment.
  • a stream identifier called outgoing stream, is read which is stored at the current address of the table 210_i of level i stream identifiers.
  • the stream identifier corresponding to the intermediate stream description to be processed by the level i is registered at the current address of the table 210_i of level i identifiers.
  • the expiry date read in the intermediate flow description corresponding to the outgoing flow is checked. If the stream description is out of date, i.e.
  • the stream description expired is transmitted to the next higher level (i + 1) in a step E 12 and is removed from the table 200_i of the level i flow descriptions.
  • a step E'5 it is checked whether one of the characteristics of the intermediate stream description corresponds to a desired criterion and is selected in a step E'6. It may be, for example, to select a flow description if the volume contained in the flow description in the field 106 representative of the number of packets of the stream is greater than a certain threshold. It is thus possible to detect flows of large volume and retain only these streams for subsequent analysis by a collection device. It can also be to select a flow description if the volume contained in the same field is below a certain threshold. It may still be a matter of selecting a stream description if the number of TCP SYN connection request packets is greater than a threshold.
  • step E'5 a so-called stream recolling phase is performed, that is to say, it is verified in the lower levels whether Intermediate stream descriptions for the same stream as the last-level L expired stream description are present in the lower levels.
  • This so-called stream recolling phase comprises the steps E 1 I to E ' 4 .
  • a counter k at the value (LI).
  • a search is made in a table 200_k of k-level stream descriptions for an occurrence of an intermediate stream flow description corresponding to the expelled stream description of the last level.
  • the flow description of this occurrence is updated in a step E'3 with the expelled stream description of the last level, the expiry date assigned to the intermediate stream description in the level table 200_k k not being modified.
  • the flow selection step E'5 is then not performed.
  • step E'4 we verify in a step E'4 that the counter has not reached the first level of processing, and in this case, we repeat the step E 1 I. If the search is negative and was performed on all processing levels, there are no more intermediate flow descriptions corresponding to the expelled intermediate flow description present in a table 200_l, ..., 200_L of lower level stream descriptions and the stream description is definitively considered expelled. We then go to step E'5 stream selection.
  • a first particular embodiment has been described including the step
  • Accessing the plurality of tables 200_1,..., 200_L of level i stream descriptions using a hash function in step E2 is an example of possible implementation. Other solutions are also possible, for example direct access according to the identifier of the stream.
  • Level 1 and 2 tables are empty. In this example, we only comment on the number of packets contained in the intermediate stream description. Of course, the other fields of the stream description are present.
  • a packet F2 is received.
  • an intermediate flow description relating to the identifier flow 2 is initialized with a number of packets of 1 and an expiry date of 6 (ie Ti + 4).
  • a packet F2 is received.
  • An intermediate flow description relating to this stream is already present in table 200_l. We update the number of packets with the value 2 and the expiry date with the value 7 (ie Ti + 4).
  • a packet relating to the identifier stream 3 is received.
  • An intermediate stream description relating to the identifier stream 3 is initialized with a number of packets of 1 and an expiry date of 9 (ie Ti + 4 ).
  • the identifier of the stream 3 is saved in the table 210_l in place of that of the identifier stream 1.
  • the expiry date of the flow description relative to the 1 is not expired, the current date value 5 and the expiry date of the stream 1 equaling 8, the flow description relative to the identifier stream 1 is therefore stored in the table 200_l.
  • a packet is received relating to the identifier stream 3.
  • An intermediate stream description relating to this stream is already present in the table 200_l.
  • the number of packets with the value 2 and the expiry date is updated with the value 10.
  • the identifier of the stream 3 is saved in the table 210_l instead of that of the identifier stream 2.
  • the expiry date of the stream description relative to the 2 is not expired, the flow description relative to the identifier stream 2 is therefore stored in the table 200_l.
  • a packet is received relating to the identifier stream 3.
  • the number of packets with the value 3 and the expiry date is updated with the value 11.
  • the identifier of the stream 3 is recorded in the table 210_l instead of that of the stream 2.
  • the flow description relating to the stream 2 is removed from the table and is transmitted to the second level of processing. This is the first stream description arriving on the second level.
  • the current date depending on the level 2 T 2 is therefore 1.
  • the size of the table 200_2 is 2.
  • the expiry date of the flow description for stream 1 is out of date and this flow description is removed from table 200_l to be passed to level 2.
  • the date T 2 is 2 In the table 200_2, we then have a flow description relating to stream 1 indicating a number of packets of 2 and an expiry date of 4.
  • the expiration date of the flow description relating to stream 2 whose identifier was in table 210_2 is checked.
  • the expiry date being out of date the flow description relative to the stream 2 is expelled from the last level.
  • the optional phase of re-gluing the flow descriptions makes it possible to transfer the information of the flow description from the last level to the first level (in bold in FIG. 5). .
  • the device 150 for constructing a stream description comprises:
  • the device further comprises a reception module 250 arranged to receive a packet exchanged between two entities of a communication network belonging to a given stream, to create an intermediate stream description and to transmit the intermediate stream description to the search module 300.
  • a reception module 250 arranged to receive a packet exchanged between two entities of a communication network belonging to a given stream, to create an intermediate stream description and to transmit the intermediate stream description to the search module 300.
  • the module At processing level i of an intermediate stream description, the module
  • step 300 of search in table 200_i of level i flow descriptions implements steps E2, E3 and E6 of the described method, that is, to find out whether a flow description concerning the stream to which the flow description to be processed by level i is relative, is stored in the table 200_i of level i flow descriptions.
  • the module 301 is arranged to assign an expiry date to the intermediate stream description. If the search is negative, the module 302 is arranged to execute the steps E4 and E5 in other words to create in the table 200_i of level i flow descriptions an intermediate stream description from the flow description to be processed by the level i and to associate the expiry date assigned by module 301.
  • the module 302 is arranged to execute the steps E7 and E8 of the method, in other words to update in the table 200_i of level I flow descriptions the description of the intermediate stream using the information of the flow description to be processed by level i.
  • the expiry date verification module 304 is arranged to check the expiry date assigned to the intermediate flow descriptions contained in the 200_i table of level i flow descriptions.
  • the device 150 further comprises a clock managing a current date depending on the level i.
  • the module 301 is arranged to assign an expiry date to the intermediate stream description as a function of the current date dependent on the level i increased by a predetermined value.
  • the module 304 is arranged to carry out the verification of expiry dates periodically.
  • the device 150 also comprises a plurality of tables 210_1,..., 210_L of stream identifiers respectively associated with the different processing levels i.
  • the module 301 is arranged to assign an expiry date to the intermediate stream description according to the current date depending on the level i plus the size of the table 210_i.
  • the module 250 is furthermore arranged to provide an identifier of the stream, corresponding to the description of intermediate stream processed by the level i, to a module 303 for accessing a table 210_i of stream identifiers. level i.
  • the module 303 is arranged to provide the module 304 with verification of the expiration date a stream identifier registered at a current address of the table 210_i of level i stream identifiers and record at the current address in this same table the identifier of the stream provided by the module 250.
  • the module 304 is arranged to implement the steps EI l to E12 of the method, that is to say: to read in the table 200_i level of stream descriptions i an intermediate stream description corresponding to the stream identifier provided by the module 303; if the expiry date has expired, that is to say reached or exceeded, transmit the intermediate stream description to the module 250 for processing by the level (i + 1).
  • the module 250 is furthermore arranged to implement, for a description of intermediate flow expelled from the last level, the steps E 1 I to E ' 4 of the method.
  • the module 250 is also arranged to implement for the expelled flow descriptions of the last level L the steps E'5 and E'6 aimed at selecting a flow description if at least one of the characteristics contained in the flow description corresponds to a criterion sought.
  • the device 150 for constructing a stream description may as well be a network equipment such as a router, or a traffic duplication equipment.
  • the modules 250, 300, 301, 302, 303, 304, which implement the method described above, are preferably software modules comprising software instructions for executing the steps of the method previously described by the device.
  • the software modules can be stored in or transmitted by a data carrier.
  • This may be a hardware storage medium, for example a CD-ROM, a magnetic diskette or a hard disk, or a transmission medium such as an electrical, optical or radio signal, or a telecommunication network.
  • a data carrier may be a hardware storage medium, for example a CD-ROM, a magnetic diskette or a hard disk, or a transmission medium such as an electrical, optical or radio signal, or a telecommunication network.
  • the particular embodiment has been described more particularly in the context of an IP type network.
  • the invention is also applicable to the construction of a stream description on networks of Ethernet, ATM, wireless, etc. type.

Landscapes

  • Engineering & Computer Science (AREA)
  • Computer Networks & Wireless Communication (AREA)
  • Signal Processing (AREA)
  • Computer Security & Cryptography (AREA)
  • Data Exchanges In Wide-Area Networks (AREA)
  • Information Retrieval, Db Structures And Fs Structures Therefor (AREA)

Abstract

Procédé de construction de descriptions de flots transmis à travers un réseau de communication par paquets Procédé de construction d'une description de flot, dans lequel une succession de traitements de niveaux respectifs i, avec i variant de 1 à une valeur déterminée L, sont appliqués à des descriptions de flot intermédiaires, chaque niveau i de traitement utilisant une table de descriptions de flots de niveau i, le traitement de niveau i d'une première description de flot intermédiaire relative à un flot donné comportant : - une étape de recherche, dans ladite table de descriptions de flots de niveau i, d'une description intermédiaire relative audit flot (E3); - si la recherche est négative, une étape d'enregistrement, dans ladite table de descriptions de flots de niveau i, de la première description de flot intermédiaire relative audit flot (E4) et une étape d'affectation à la première description de flot d'une date de péremption, dépendant du niveau i, au-delà de laquelle la première description de flot est traitée par le niveau (i+1) (E5); - si la recherche est positive, la table de descriptions de flots de niveau i contenant une deuxième description de flot intermédiaire relative au dit flot, une étape de mise à jour de la deuxième description de flot intermédiaire concernant ledit flot dans ladite table de descriptions de flots de niveau i à l'aide de la première description de flot intermédiaire (E7) et une étape de mise à jour d'une date de péremption de la deuxième description de flot intermédiaire dépendant du niveau i (E8).

Description

Procédé de construction de descriptions de flots transmis à travers un réseau de communication par paquets
L'invention concerne une technique de construction de descriptions de flots, relatives à des flots transmis à travers un réseau de communication par paquets. L'invention se situe dans le domaine de l'observation du trafic dans les réseaux de communication par paquets. Elle s'applique au traitement de flots qui peut être effectué par différents éléments du réseau: routeurs, commutateurs, multiplexeurs. Un flot est caractérisé par un certain nombre de caractéristiques communes à plusieurs paquets. Ces caractéristiques, ou éléments d'identification, peuvent être présentes dans différentes couches du modèle OSI pour Open Systems Interconnection model en anglais. Elles peuvent correspondre aux contenus des champs d'adresses source et/ou destination (couche 3), ou de tout autre champ dans l'entête des paquets, notamment les numéros de port et le type de protocole dans le cas des segments TCP encapsulés dans des datagrammes IP (couche 4). Dans le cadre de l'observation de trafic, il s'avère parfois nécessaire d'identifier au fil de l'eau une certaine composante du trafic, par exemple la composante correspondant à l'ensemble des flots dont le volume ou le nombre de paquets est supérieur à un seuil, par exemple, supérieur à un nombre N de paquets. Une telle identification peut être réalisée grâce à des techniques analysant des descriptions de flot.
On connaît des techniques permettant à un dispositif du réseau de communication d'engendrer des descriptions de flot. L'observation du trafic peut être réalisée sur un lien au moyen d'un dispositif de duplication du trafic par un coupleur optique, ou grâce à la mise en œuvre de fonctions spécifiques directement implantées dans un dispositif du réseau, par exemple un routeur, au fur et à mesure que le trafic circule. Lorsque le dispositif d'observation reçoit un paquet à acheminer contenant, pour au moins certains des éléments d'identification cités plus haut, des valeurs non connues, il initie une description de flot en ajoutant aux éléments d'identification du flot différents éléments permettant de décrire le flot tels que: - DPkts, contenant le nombre de paquets comptabilisés pour ce flot ; DOctets, contenant le volume en octets de niveau 3 (Couche OSI) dans les paquets du flot ;
First et Last, correspondant respectivement aux instants de début et de fin du flot.
A la réception de chaque nouveau paquet appartenant à un flot déjà identifié, le dispositif d'observation met à jour les paramètres DPkts, DOctets et Last de la description de flot correspondante.
Après une durée prédéterminée d'inactivité du flot, ou bien de façon périodique, le dispositif d'observation transmet à un équipement de collecte les descriptions relatives à ce flot, qu'il a lui-même réalisées. La capacité en mémoire du dispositif d'observation étant limitée, il ne peut pas conserver indéfiniment l'ensemble des descriptions de flots, de sorte qu'il ne peut pas être chargé de prendre localement une décision quant à la détection d'une composante de trafic : il transmet la totalité des descriptions de flot collectées à l'équipement de collecte pour le post-traitement. Il en résulte que, le plus souvent, il n'existe pas une description de flot unique pour un flot donné, mais plusieurs descriptions de flot dans lesquelles sont réparties les informations relatives au flot. En outre, le fait que le dispositif d'observation ne fasse aucune détection locale a pour conséquence que des informations relatives à des descriptions de flot ne correspondant pas à la composante recherchée sont également transmises. Par ailleurs, l'équipement de collecte doit ensuite regrouper dans l'ensemble des descriptions de flot reçues, celles correspondant au même flot avant de pouvoir prendre une décision.
Il existe donc un besoin d'une technique permettant de limiter le nombre de descriptions de flot pour un flot donné, pouvant notamment être mise en œuvre par des dispositifs ayant des capacités de stockage limitées. L'invention répond à ce besoin en proposant un procédé de construction d'une description de flot, dans lequel une succession de traitements de niveaux respectifs i, avec i variant de 1 à une valeur déterminée L, sont appliqués à des descriptions de flot intermédiaires, chaque niveau i de traitement utilisant une table de descriptions de flots de niveau i. Le traitement de niveau i d'une première description de flot intermédiaire relative à un flot donné comporte : une étape de recherche, dans la table de descriptions de flots de niveau i, d'une description de flot intermédiaire relative audit flot ; si la recherche est négative, une étape d'enregistrement, dans la table de descriptions de flots de niveau i, de la première description de flot intermédiaire relative audit flot et une étape d'affectation à la première description de flot d'une date de péremption, dépendant du niveau i, au-delà de laquelle la première description de flot est traitée par le niveau (i+1) ; si la recherche est positive, la table de descriptions de flots de niveau i contenant une deuxième description de flot intermédiaire relative au dit flot, une étape de mise à jour de la deuxième description de flot intermédiaire concernant ledit flot dans ladite table de descriptions de flots de niveau i à l'aide de la première description de flot intermédiaire et une étape de mise à jour d'une date de péremption de la deuxième description de flot intermédiaire dépendant du niveau i.
On notera que l'invention tire son origine d'un problème de capacité mémoire limitée du dispositif générant les descriptions de flots. Toutefois, l'invention peut s'appliquer à tout dispositif générant des descriptions de flots.
Une description de flot intermédiaire, correspondant à un échange de paquets entre deux entités d'un réseau de communication, est successivement traitée par les niveaux de traitement à partir du premier niveau. Les niveaux de traitement gèrent chacun une date de péremption dépendant du niveau i. Si aucune description de flot intermédiaire relative à ce flot n'existe dans une table de descriptions de flots de niveau i, la description de flot est alors enregistrée dans la table de niveau i et une date de péremption est affectée à la description de flot. Si une description de flot intermédiaire existe déjà dans la table de descriptions de flots de niveau i, l'arrivée de la description de flot intermédiaire au niveau i permet la mise à jour de la description de flot intermédiaire existante et de la date de péremption affectée. Au-delà de la date de péremption, la description de flot intermédiaire présente dans la table de descriptions de flots est considérée comme périmée pour ce niveau i et est alors traitée par le niveau suivant i+1. Ainsi, un flot de volume faible va rapidement être traité par les différents niveaux de traitement et arriver au dernier niveau de traitement, où l'on considère que la description de ce flot est complète. Il n'est pas resté enregistré inutilement dans la table de premier niveau. Au contraire, un flot de volume important et pour lequel, par exemple, les paquets sont regroupés en rafales successives, va faire l'objet de plusieurs descriptions de flot intermédiaires, pour finalement atteindre le dernier niveau où l'on considère que la description de ce flot est globalement représentative de l'activité du flot. L'utilisation de la mémoire est également optimisée dans ce cas car la description de ce flot ne va pas occuper un emplacement mémoire pendant une durée importante mais de façon plus temporaire en fonction de l'arrivée des rafales successives.
Avantageusement, chaque niveau i de traitement utilisant en outre une table d'identifiants de flots de niveau i de taille déterminée M1 et de gestion circulaire dans laquelle sont enregistrés les identifiants de flot correspondant à des descriptions de flot intermédiaires traitées par le niveau i, il est en outre prévu avant enregistrement à une adresse courante d'un identifiant de flot correspondant à une description de flot intermédiaire traitée par le niveau i à la place d'un autre identifiant de flot déjà enregistré à l'adresse courante, une étape de vérification de la date de péremption d'une description de flot intermédiaire correspondant audit autre identifiant de flot.
Chaque niveau de traitement comprend également une table d'identifiants de flots. Lors de l'insertion dans cette table d'un identifiant de flot correspondant à la description de flot intermédiaire en cours de traitement, on vérifie dans la table de descriptions de flots si la date de péremption affectée à la description de flot correspondant à l'identifiant de flot précédemment enregistré à l'adresse d'insertion est expirée. Si tel est le cas, cette description de flot intermédiaire précédemment enregistrée est transmise pour traitement au niveau suivant.
De préférence, la date de péremption prend la valeur d'une date courante au niveau i augmentée de la taille de la table d'identifiants de flots de niveau i.
La date de péremption, dépendant du niveau de traitement i, est mise en œuvre à l'aide de la table d'identifiants de flots de ce niveau. Elle est ainsi cadencée par le rythme d'arrivée des descriptions de flot intermédiaires au niveau i. La date de péremption d'une description de flot intermédiaire est définie en fonction de la taille M1 de la table d'identifiants de flots. Avantageusement, le procédé comprend en outre, avant l'étape de recherche dans la table de descriptions de flots de niveau i, une étape de rejet de la première description de flot intermédiaire à traiter au niveau i si une information de volume contenue dans ladite description de flot est inférieure à un seuil C1 associé au niveau i. L'étape de rejet des descriptions de flot intermédiaires ne présentant pas un volume suffisant pour un niveau de traitement i permet dans certains cas et plus particulièrement lorsque le lien entre les deux entités est très chargé de ne pas saturer trop vite les différentes tables avec des flots qui peuvent ne pas être intéressants suivant la composante recherchée ou l'application visée. Avantageusement, au dernier niveau L, lorsqu'une description de flot est périmée, le procédé comprend en outre une étape de recherche dans au moins une table de descriptions de flots d'un niveau inférieur d'une occurrence d'une description de flot relative au même flot et si la recherche est positive, une étape de mise à jour de la description de flot de ladite occurrence avec la description de flot périmée, la date de péremption affectée à la description de flot de l'occurrence n'étant pas modifiée.
Avant de considérer que la description de flot est représentative de l'activité du flot, une étape de recherche de descriptions de flot intermédiaires relatives au même flot dans les niveaux de traitement inférieurs est effectuée afin de vérifier qu'aucune description de flot intermédiaire n'est effectivement plus présente. Cette étape permet donc de s'assurer de la représentativité de la description de flot tout en permettant de limiter le nombre de niveaux de traitement.
Avantageusement, au dernier niveau L, pour une description de flot périmée, le procédé comprend une étape de sélection du flot si au moins une des caractéristiques contenues dans la description de flot correspond à un critère recherché. Si on complète le procédé par une étape de sélection des descriptions de flot dont au moins l'une des caractéristiques correspond à un critère recherché, il est alors possible de transmettre uniquement les descriptions de flot sélectionnées à un dispositif de collecte. Le lien vers ce dispositif est alors moins chargé puisque seules des descriptions de flot représentatives et sélectionnées sont transmises. L'invention propose également un dispositif de construction d'une description de flot, par une succession de traitements de niveaux respectifs i, avec i variant de 1 à une valeur prédéterminée L, comprenant des tables de descriptions de flots de niveau i, respectivement associées aux différents niveaux i de traitement, contenant des descriptions de flot intermédiaires concernant des flots respectifs ; des moyens de recherche dans les tables de descriptions de flots de niveau i, agencés pour rechercher si une description de flot concernant le flot auquel la description de flot à traiter par le niveau i est relative, est mémorisée dans la table de descriptions de flots de niveau i ; des moyens d'enregistrement et de mise à jour des descriptions de flot dans les tables de descriptions de flot de niveau i ; des moyens d'affectation à une description de flot d'une date de péremption dépendant du niveau i au-delà de laquelle la description de flot est traitée par le niveau (i+1) ; des moyens de vérification de la date de péremption d'une description de flot, agencés pour vérifier si une description de flot est périmée. En outre, le dispositif comprend :
- des tables d'identifiants de flots de niveau i, respectivement associées aux différents niveaux de traitement i, contenant des identifiants de flots ;
- des moyens d'accès aux tables d'identifiants de flots de niveau i, agencés pour fournir aux moyens de vérification de la date de péremption un identifiant de flot enregistré à une adresse courante et enregistrer à l'adresse courante un identifiant du flot correspondant à la description de flot traitée par le niveau i. L'invention concerne également :
- un programme de construction d'une description de flot, comprenant des instructions de code de programme destinées à commander l'exécution des étapes du procédé tel que décrit ci-dessus et à être exécutées par un dispositif, lorsque ledit programme est exécuté par ledit dispositif ; - un support d'enregistrement lisible par un dispositif sur lequel est enregistré le programme tel que décrit ci-dessus.
L'invention sera mieux comprise à l'aide de la description suivante d'un mode de réalisation particulier du procédé de l'invention, en référence aux dessins annexés sur lesquels : la figure 1 représente les étapes du procédé de construction d'une description de flot selon un mode particulier de réalisation de l'invention ; la figure 2 représente les étapes du procédé de construction d'une description de flot au dernier niveau de traitement ; - la figure 3 représente une description de flot intermédiaire ; la figure 4 représente un dispositif de construction d'une description de flot ; la figure 5 donne un exemple de construction d'une description de flot sur une pluralité de paquets échangés entre deux entités d'un réseau de communication.
On notera d'emblée qu'un flot correspond à un échange de paquets entre deux machines d'un réseau de communication par paquets dont les paquets ont des caractéristiques communes notamment ici des caractéristiques communes d'origine, de destination et de service. Par la suite, ces caractéristiques sont appelées caractéristiques de flot. Un identifiant du flot est construit à l'aide de ces caractéristiques communes. On se place ici dans le cas d'un réseau IP.
Les étapes du procédé sont mises en œuvre par une succession de traitements de niveau i, i étant supérieur à 1 et inférieur à une valeur déterminée L. Chaque niveau de traitement i utilise une table 200_i de descriptions de flots intermédiaires de niveau i. Une description 100 de flot, telle que représentée à la figure 3, comprend les éléments suivants: un identifiant 101 du flot ; une date 102 de début du flot ; une date 103 correspondant à la date où les dernières informations concernant le flot ont été reçues ; - une date 104 de péremption du flot ; un champ 105 représentatif du volume en octets du flot ; un champ 106 représentatif du nombre de paquets du flot.
La date 102 de début du flot est une date absolue gérée par un dispositif 150 mettant en œuvre le procédé. Par ailleurs, chaque niveau de traitement i gère une date courante dépendant du niveau i. La date 104 de péremption est initialisée à une valeur dépendant de la date courante au niveau de traitement i et est relative à ce niveau de traitement i.
Nous allons maintenant décrire les étapes du procédé au niveau de traitement i d'une description de flot intermédiaire relative à un flot donné en relation avec la figure 1. A un paquet échangé entre deux entités du réseau de communication est associée une description de flot intermédiaire qui est traitée par le premier niveau. Par la suite, on appelle flot entrant au niveau i un flot auquel correspond la description de flot intermédiaire à traiter par le niveau i.
Dans une première étape El de rejet, le volume du flot entrant contenu dans la description de flot intermédiaire à traiter par le niveau i est comparé à un seuil C1 associé au niveau i. Le volume du flot entrant est par exemple présent dans la description 100 de flot intermédiaire dans le champ 106 représentatif du nombre de paquets du flot. Cette étape El permet de prendre en considération au niveau de traitement i uniquement les flots dont le volume est suffisant. Si le volume du flot entrant est inférieur au seuil C1, la description de flot intermédiaire est ignorée dans une étape E14. Dans le cas contraire, le procédé continue à l'étape E2.
A la suite de cette première étape El, lors d'une deuxième étape E2, on calcule le résultat d'un identifiant du flot entrant par une fonction de hachage telle que la fonction SHA-I (pour Secure Hash Function) ou la fonction "Bob Hash" (définie dans le programme lookup.c sur le site http://burtleburtle.net/bob/hash/doobs.html, "A new hash function for hash table lookup"). Cette fonction de hachage peut être la même pour l'ensemble des niveaux de traitement ou bien différente pour chaque niveau.
Dans une troisième étape E3 de recherche dans la table 200_i de descriptions de flots de niveau i, on recherche, à l'aide du résultat obtenu par la fonction de hachage à l'étape E2, si au moins une deuxième description de flot intermédiaire est enregistrée dans cette table 200_i. La table 200_i contient dans la zone adressée par le résultat obtenu par la fonction de hachage, une pluralité de deuxièmes descriptions de flots intermédiaires, pour lesquelles le résultat obtenu par la fonction de hachage appliquée aux identifiants de flots respectifs est le même.
Si le résultat de l'étape de recherche E3 est positif, c'est-à-dire que la table 200_i de descriptions de flots de niveau i contient au moins une deuxième description de flot intermédiaire pour laquelle le résultat obtenu par application de la fonction de hachage à l'identifiant est identique à celui obtenu par application de la fonction de hachage à l'identifiant du flot entrant, on vérifie dans une étape E6 si l'identifiant de la (ou l'une des) deuxième(s) description(s) de flot intermédiaire trouvée(s) dans la table 200_i de niveau i à l'étape E3 correspond à celui du flot entrant.
Si tel est le cas, la table 200_i de descriptions de flots de niveau i contenant une deuxième description de flot intermédiaire relative au flot entrant, dans une étape E7, la deuxième description de flot intermédiaire est mise à jour à l'aide de la description de flot à traiter par le niveau i, notamment le champ 103 correspondant à la date où les dernières informations concernant le flot ont été reçues, le champ 105 représentatif du volume du flot et le champ 106 représentatif du nombre de paquets reçus pour le flot. Ces deux derniers champs représentent le cumul entre leur ancienne valeur et la valeur présente dans la description de flot intermédiaire à traiter par le niveau i. Dans une étape E8, le champ 103 est mis à jour avec une nouvelle valeur de date de péremption, au-delà de laquelle la deuxième description de flot intermédiaire est traitée par le niveau (i+1).
On rappelle que la date de péremption est relative au niveau de traitement i et dépend de la date courante de ce niveau. Ce fonctionnement est décrit ultérieurement. Le procédé passe ensuite à une étape E9.
Si aucune deuxième description de flot intermédiaire de la table 200_i de niveau i ne correspond au flot entrant ou si le résultat de l'étape de recherche E3 est négatif, on passe alors à une étape E4 d'enregistrement de description de flot dans la table 200 i de niveau i. On enregistre dans la table 200 i de niveau i dans la zone adressée par le résultat obtenu par la fonction de hachage à l'étape E2 la description de flot intermédiaire à traiter par le niveau i et dans une étape E5, on affecte au champ 103 une date de péremption, dépendant du niveau i, au-delà de laquelle la description de flot intermédiaire est traitée par le niveau (i+1). Le procédé passe ensuite à l'étape E9.
L'étape E9 et les étapes suivantes du procédé visent à détecter la présence d'une description de flot périmée dans la table 200_i des descriptions de flots de niveau i.
Dans une première variante de réalisation, chaque niveau de traitement i comprend une horloge interne. A l'étape E9, on vérifie la date de péremption de l'ensemble des descriptions de flots intermédiaires contenues dans la table 200_i de niveau i, par exemple de façon périodique. Dans cette variante de réalisation, la date de péremption est initialisée à la valeur de la date courante au niveau i augmentée d'une valeur prédéterminée. Si la date de péremption d'une description de flot intermédiaire est supérieure à la date courante dépendant du niveau i, la description de flot est dite périmée. Elle est alors transmise au niveau immédiatement supérieur (i+1) et est supprimée de la table 200_i de niveau i.
Dans une deuxième variante de réalisation, chaque niveau de traitement i comprend une table 210_i d'identifiants de flots de niveau i de taille déterminée M1. La gestion de cette table est circulaire et une adresse courante en écriture permet d'enregistrer à cette adresse un identifiant de flot. La date courante dépendant du niveau i est gérée à l'aide de cette table 210_i d'identifiants de flots de niveau i. Elle est incrémentée de 1 modulo M1 à chaque enregistrement dans la table 210_i. La date de péremption est initialisée à la date courante augmentée de la taille M1 de la table 210_i d'identifiants de flots. Dans cette variante de réalisation, la date courante dépendant du niveau de traitement i dépend du rythme d'arrivée de descriptions de flot sur ce niveau. Elle est donc bien relative à ce niveau de traitement.
Dans une étape E9, on lit un identifiant de flot, dit flot sortant, qui est enregistré à l'adresse courante de la table 210_i d'identifiants de flots de niveau i. On recherche ensuite une description de flot intermédiaire correspondant à ce flot sortant dans la table 200_i de description de flots de niveau i et on lit la date de péremption affectée. Lors d'une étape ElO, l'identifiant du flot correspondant à la description de flot intermédiaire à traiter par le niveau i est enregistré à l'adresse courante de la table 210_i d'identifiants de niveau i. Lors d'une étape EI l, on vérifie la date de péremption lue dans la description de flot intermédiaire correspondant au flot sortant. Si la description de flot est périmée, c'est-à-dire qu'aucune nouvelle occurrence de l'identifiant du flot n'est apparue dans un cycle de la table 210_i d'identifiants de flots de niveau i, la description de flot périmée est transmise au niveau immédiatement supérieur (i+1) dans une étape E 12 et est supprimée de la table 200_i des descriptions de flots de niveau i.
Si la description de flot intermédiaire correspondant au flot sortant n'est pas périmée, c'est-à-dire qu'au moins une nouvelle occurrence de l'identifiant du flot est apparue dans un cycle de la table 210_i d'identifiants de flots de niveau i, la description de flot intermédiaire de la table 200_i n'est pas modifiée (étape E13). Nous allons maintenant décrire, en relation avec la figure 2, le procédé tel qu'il se poursuit au dernier niveau de traitement L lorsqu'une description de flot intermédiaire est expulsée de ce niveau L.
Lors d'une étape E'5, on vérifie si l'une des caractéristiques de la description de flot intermédiaire correspond à un critère recherché et on la sélectionne dans une étape E'6. Il peut s'agir, par exemple, de sélectionner une description de flot si le volume contenu dans la description de flot dans le champ 106 représentatif du nombre de paquets du flot est supérieur à un certain seuil. On peut ainsi détecter des flots de volume important et ne retenir que ces seuls flots pour une analyse ultérieure par un dispositif de collecte. Il peut également s'agir de sélectionner une description de flot si le volume contenu dans le même champ est inférieur à un certain seuil. Il peut encore s'agir de sélectionner une description de flot si le nombre de paquets de demandes d'établissement de connexion SYN du TCP est supérieur à un seuil.
Afin d'améliorer les performances du procédé, on peut prévoir de façon optionnelle des étapes supplémentaires. Avant l'étape E'5, on procède à une phase dite de recollement des flots, c'est-à-dire qu'on vérifie dans les niveaux inférieurs si des descriptions de flot intermédiaires relatives au même flot que celui de la description de flot périmée du dernier niveau L sont présentes dans les niveaux inférieurs. Cette phase dite de recollement des flots comprend les étapes E1I à E'4. On initialise un compteur k à la valeur (L-I). Lors d'une étape E1I, on recherche dans une table 200_k de descriptions de flots de niveau k une occurrence d'une description de flot intermédiaire relative au flot correspondant à la description de flot expulsée du dernier niveau.
Si la recherche est positive, on met à jour dans une étape E'3 la description de flot de cette occurrence avec la description de flot expulsée du dernier niveau, la date de péremption affectée à la description de flot intermédiaire dans la table 200_k de niveau k n'étant pas modifiée. L'étape E'5 de sélection du flot n'est alors pas effectuée.
Si la recherche est négative, on décrémente dans une étape E'2 le compteur k. On vérifie dans une étape E'4 que le compteur n'est pas parvenu au premier niveau de traitement, et dans ce cas, on réitère l'étape E1I. Si la recherche est négative et a été effectuée sur l'ensemble des niveaux de traitement, il n'y a plus de descriptions de flot intermédiaires correspondant à la description de flot intermédiaire expulsée présentes dans une table 200_l, ..., 200_L de descriptions de flots d'un niveau inférieur et la description de flot est définitivement considérée comme expulsée. On passe alors à l'étape E'5 de sélection du flot. Un premier mode particulier de réalisation a été décrit en comprenant l'étape
El. Il est également possible dans un deuxième mode de réalisation d'omettre l'étape
El; ce mode de réalisation correspond au cas particulier où les seuils C1 sont tous nuls.
L'accès dans la pluralité de tables 200_l, ..., 200_L de descriptions de flots de niveau i à l'aide d'une fonction de hachage dans l'étape E2 est un exemple d'implémentation possible. D'autres solutions sont également possibles comme par exemple un accès direct en fonction de l'identifiant du flot.
Nous allons maintenant appliquer le procédé de construction d'une description de flot sur un exemple simplifié comprenant une pluralité de paquets échangés entre deux entités d'un réseau de communication représenté sur la figure 5. On considère par la suite que le nombre de niveaux de traitement est de 2, la table 210_l d'identifiants de flots de niveau 1 est de taille 4 et la table 210_2 d'identifiants de flots de niveau 2 de taille 2.
On se place au début du procédé pour des raisons de simplicité. Les tables de niveaux 1 et 2 sont vides. On ne commente dans cet exemple que le nombre de paquets contenu dans la description de flot intermédiaire. Bien entendu, les autres champs de la description de flot sont présents.
L'échange de paquets suivant a lieu entre deux entités du réseau de communication {FI, F2, F2, Fl, F3, F3, F3, F3, Fl, Fl, F2, Fl, FI } où Fx correspond à un paquet appartenant au flot d'identifiant x. On note par la suite T1 la date dépendant du niveau i. Au niveau 1, la date courante Ti dépend du cadencement de l'arrivée des paquets.
A Ti=I, on reçoit un premier paquet, un paquet Fl Dans la table 200_l, on initialise une description de flot intermédiaire relative au flot d'identifiant 1 avec un nombre de paquets de 1 et une date de péremption de 5. Cette date de péremption correspond à la somme de la valeur de la date courante dépendant du niveau 1 et de la taille de la table 200_l, soit Ti+4.
A Ti=2, on reçoit un paquet F2. Dans la table 200_l, on initialise une description de flot intermédiaire relative au flot d'identifiant 2 avec un nombre de paquets de 1 et une date de péremption de 6 (soit Ti+4). A Ti=3, on reçoit un paquet F2. Une description de flot intermédiaire relative à ce flot est déjà présente dans la table 200_l. On met à jour le nombre de paquets avec la valeur 2 et la date de péremption avec la valeur 7 (soit Ti+4).
A Ti=4, on reçoit un paquet relatif au flot d'identifiant 1. Une description de flot intermédiaire relative à ce flot est déjà présente dans la table 200_l. On met à jour le nombre de paquets avec la valeur 2 et la date de péremption avec la valeur 8.
A Ti=5, on reçoit un paquet relatif au flot d'identifiant 3. On initialise une description de flot intermédiaire relative au flot d'identifiant 3 avec un nombre de paquets de 1 et une date de péremption de 9 (soit Ti+4). L'identifiant du flot 3 est enregistré dans la table 210_l à la place de celui du flot d'identifiant 1. La date de péremption de la description de flot relative au 1 n'est pas périmée, la date actuelle valant 5 et la date de péremption du flot 1 valant 8, la description de flot relative au flot d'identifiant 1 est donc conservée dans la table 200_l.
A Ti=6, on reçoit un paquet relatif au flot d'identifiant 3. Une description de flot intermédiaire relative à ce flot est déjà présente dans la table 200_l. On met à jour le nombre de paquets avec la valeur 2 et la date de péremption avec la valeur 10. L'identifiant du flot 3 est enregistré dans la table 210_l à la place de celui du flot d'identifiant 2. La date de péremption de la description de flot relative au 2 n'est pas périmée, la description de flot relative au flot d'identifiant 2 est donc conservée dans la table 200_l. A Ti=7, on reçoit un paquet relatif au flot d'identifiant 3. Une description de flot intermédiaire relative à ce flot est déjà présente dans la table 200_l. On met à jour le nombre de paquets avec la valeur 3 et la date de péremption avec la valeur 11. L'identifiant du flot 3 est enregistré dans la table 210_l à la place de celui du flot 2. La date de péremption de la description de flot relative au flot 2 étant périmée (date de péremption = date courante), la description de flot relative au flot 2 est supprimée de la table et est transmise au deuxième niveau de traitement. Il s'agit de la première description de flot arrivant sur le deuxième niveau. La date courante dépendant du niveau 2 T2 vaut donc 1. La taille de la table 200_2 vaut 2. Dans la table 200_2, on crée alors une description de flot relative au flot 2 indiquant un nombre de paquets de 2 et une date de péremption de 3.
A Ti=8, la date de péremption de la description de flot relative au flot 1 est périmée et cette description de flot est supprimée de la table 200_l pour être transmise au niveau 2. Au niveau 2, la date T2 vaut 2 Dans la table 200_2, on a alors une description de flot relative au flot 1 indiquant un nombre de paquets de 2 et une date de péremption de 4.
A Ti=9, suite à la réception du paquet Fl, on initialise à nouveau dans la table 200_l une description de flot intermédiaire relative au flot 1.
Le procédé s'exécute comme décrit ci-dessus aux instants Ti=IO et T1=I 1. A Ti=12, la date de péremption de la description de flot relative au flot 3 est périmée et cette description de flot est supprimée de la table 200_l pour être transmise au niveau 2. Au niveau 2, on vérifie la date de péremption de la description de flot relative au flot 2 dont l'identifiant était dans la table 210_2. La date de péremption étant périmée, la description de flot relative au flot 2 est donc expulsée du dernier niveau. Comme une description de flot relative à ce flot est présente dans le niveau 1, la phase optionnelle de recollement des descriptions de flot permet de transférer les informations de la description de flot du dernier niveau vers le premier niveau (en gras sur la figure 5).
On va maintenant décrire un dispositif 150 de construction d'une description de flot, par une succession de traitements de niveaux respectifs i, avec i variant de 1 à une valeur prédéterminée L, en référence à la figure 4.
Le dispositif 150 de construction d'une description de flot comprend:
- une pluralité de tables 200_l, ..., 200_L de descriptions de flots de niveau i, respectivement associées aux différents niveaux de traitement i, contenant des descriptions de flot intermédiaires concernant des flots respectifs ; - un module 300 de recherche dans les tables 200_l, ..., 200_L de descriptions de flots de niveau i ;
- un module 301 d'affectation à une description de flot d'une date de péremption dépendant du niveau i au-delà de laquelle la description de flot est traitée par le niveau
(i+D ; - un module 302 d'enregistrement et de mise à jour des descriptions de flot dans les tables 200_l, ..., 200_L de descriptions de flot de niveau i ;
- un module 304 de vérification de la date de péremption d'une description de flot.
Le dispositif comprend en outre un module 250 de réception agencé pour recevoir un paquet échangé entre deux entités d'un réseau de communication appartenant à un flot donné, créer une description de flot intermédiaire et transmettre la description de flot intermédiaire au module 300 de recherche dans les tables 200_l à
200_L de descriptions de flots de niveau i.
Au niveau i de traitement d'une description de flot intermédiaire, le module
300 de recherche dans la table 200_i de descriptions de flots de niveau i, met en œuvre les étapes E2, E3 et E6 du procédé décrit, autrement dit pour rechercher si une description de flot concernant le flot auquel la description de flot à traiter par le niveau i est relative, est mémorisée dans la table 200_i de descriptions de flots de niveau i.
Le module 301 est agencé pour affecter une date de péremption à la description de flot intermédiaire. Si la recherche est négative, le module 302 est agencé pour exécuter les étapes E4 et E5 autrement dit pour créer dans la table 200_i de descriptions de flots de niveau i une description de flot intermédiaire à partir de la description de flot à traiter par le niveau i et pour y associer la date de péremption affectée par le module 301.
Si la recherche est positive, le module 302 est agencé pour exécuter les étapes E7 et E8 du procédé autrement dit pour mettre à jour dans la table 200_i de descriptions de flots de niveau i la description de flot intermédiaire à l'aide des informations de la description de flot à traiter par le niveau i.
Le module 304 de vérification de la date de péremption est agencé pour vérifier la date de péremption affectée aux descriptions de flots intermédiaires contenues dans la table 200_i de descriptions de flots de niveau i.
Dans une première variante de réalisation, le dispositif 150 comprend en outre une horloge gérant une date courante dépendant du niveau i. Le module 301 est agencé pour affecter une date de péremption à la description de flot intermédiaire en fonction de la date courante dépendant du niveau i augmentée d'une valeur prédéterminée. Le module 304 est agencé pour effectuer la vérification des dates de péremption de façon périodique.
Dans une deuxième variante de réalisation, le dispositif 150 comprend également une pluralité de tables 210_l, ..., 210_L d'identifiants de flots, respectivement associées aux différents niveaux de traitement i. Le module 301 est agencé pour affecter une date de péremption à la description de flot intermédiaire en fonction de la date courante dépendant du niveau i augmentée de la taille de la table 210_i. Dans cette variante de réalisation, le module 250 est agencé en outre pour fournir un identifiant du flot, correspondant à la description de flot intermédiaire traitée par le niveau i, à un module 303 d'accès à une table 210_i d'identifiants de flots de niveau i. Le module 303 est agencé pour fournir au module 304 de vérification de la date de péremption un identifiant de flot enregistré à une adresse courante de la table 210_i d'identifiants de flots de niveau i et enregistrer à l'adresse courante dans cette même table l'identifiant du flot fourni par le module 250.
Le module 304 est agencé pour mettre en œuvre les étapes EI l à E12 du procédé, autrement dit pour: lire dans la table 200_i de descriptions de flots de niveau i une description de flot intermédiaire correspondant à l'identifiant de flot fourni par le module 303 ; si la date de péremption est périmée, c'est-à-dire atteinte ou dépassée, transmettre la description de flot intermédiaire au module 250 en vue de son traitement par le niveau (i+1).
De façon optionnelle, le module 250 est agencé en outre pour mettre en œuvre, pour une description de flot intermédiaire expulsée du dernier niveau, les étapes E1I à E'4 du procédé.
Le module 250 est également agencé pour mettre en œuvre pour les descriptions de flots expulsées du dernier niveau L les étapes E'5 et E'6 visant à sélectionner une description de flot si au moins une des caractéristiques contenues dans la description de flot correspond à un critère recherché.
Le dispositif 150 de construction d'une description de flot peut aussi bien être un équipement du réseau tel qu'un routeur, ou bien un équipement de duplication du trafic.
Les modules 250, 300, 301, 302, 303, 304, qui mettent en œuvre le procédé précédemment décrit, sont de préférence des modules logiciels comprenant des instructions logicielles pour faire exécuter les étapes du procédé précédemment décrit par le dispositif. Les modules logiciels peuvent être stockés dans ou transmis par un support de données. Celui-ci peut être un support matériel de stockage, par exemple un CD-ROM, une disquette magnétique ou un disque dur, ou bien un support de transmission tel qu'un signal électrique, optique ou radio, ou un réseau de téléc ommunication . Le mode particulier de réalisation a été décrit plus particulièrement dans le cadre d'un réseau de type IP. L'invention est également applicable à la construction d'une description de flot sur des réseaux de type Ethernet, ATM, sans fils, ...

Claims

REVENDICATIONS
1. Procédé de construction d'une description de flot, dans lequel une succession de traitements de niveaux respectifs i, avec i variant de 1 à une valeur déterminée L, sont appliqués à des descriptions de flot intermédiaires, chaque niveau i de traitement utilisant une table (200_l, ..., 200_L) de descriptions de flots de niveau i, le traitement de niveau i d'une première description de flot intermédiaire relative à un flot donné comportant : une étape (E3, E6) de recherche, dans ladite table (200_l, ..., 200_L) de descriptions de flots de niveau i, d'une description de flot intermédiaire relative audit flot ; si la recherche est négative, une étape (E4) d'enregistrement, dans ladite table (200_l, ..., 200_L) de descriptions de flots de niveau i, de la première description de flot intermédiaire relative audit flot et une étape d'affectation à la première description de flot d'une date de péremption, dépendant du niveau i, au-delà de laquelle la première description de flot est traitée par le niveau (i+1) ; si la recherche est positive, la table (200_l, ..., 200_L) de descriptions de flots de niveau i contenant une deuxième description de flot intermédiaire relative au dit flot, une étape (E7) de mise à jour de la deuxième description de flot intermédiaire concernant ledit flot dans ladite table de descriptions de flots de niveau i à l'aide de la première description de flot intermédiaire et une étape de mise à jour d'une date de péremption de la deuxième description de flot intermédiaire dépendant du niveau i.
2. Procédé selon la revendication 1, dans lequel, chaque niveau i de traitement utilisant en outre une table (210_l, ..., 210_L) d'identifiants de flots de niveau i de taille déterminée M1 et de gestion circulaire dans laquelle sont enregistrés les identifiants de flot correspondant à des descriptions de flot intermédiaires traitées par le niveau i, il est en outre prévu avant enregistrement à une adresse courante d'un identifiant de flot correspondant à une description de flot intermédiaire traitée par le niveau i à la place d'un autre identifiant de flot déjà enregistré à l'adresse courante, une étape (EI l) de vérification de la date de péremption d'une description de flot intermédiaire correspondant audit autre identifiant de flot.
3. Procédé selon la revendication 2, dans lequel la date de péremption prend la valeur d'une date courante au niveau i augmentée de la taille de la table (210_l, ..., 210_L) d'identifiants de flots de niveau i.
4. Procédé selon l'une quelconque des revendications précédentes comprenant en outre, avant l'étape (E3) de recherche dans la table (200_l, ..., 200_L) de descriptions de flots de niveau i, une étape (El) de rejet de la première description de flot intermédiaire à traiter au niveau i si une information de volume contenue dans ladite description de flot est inférieure à un seuil C1 associé au niveau i.
5. Procédé selon l'une quelconque des revendications précédentes, dans lequel au dernier niveau L, lorsqu'une description de flot est périmée, le procédé comprend en outre une étape (E' 1) de recherche dans au moins une table (200_l, ...200_L) de descriptions de flots d'un niveau inférieur d'une occurrence d'une description de flot relative au même flot et si la recherche est positive, une étape (E'3) de mise à jour de la description de flot de ladite occurrence avec la description de flot périmée, la date de péremption affectée à la description de flot de l'occurrence n'étant pas modifiée.
6. Procédé selon l'une quelconque des revendications précédentes, dans lequel au dernier niveau L pour une description de flot périmée, le procédé comprend une étape (E'5) de sélection du flot si au moins une des caractéristiques contenues dans la description de flot correspond à un critère recherché.
7. Dispositif (150) de construction d'une description de flot, par une succession de traitements de niveaux respectifs i, avec i variant de 1 à une valeur prédéterminée L, comprenant : - des tables (200_l, ..., 200_L) de descriptions de flots de niveau i, respectivement associées aux différents niveaux de traitement i, contenant des descriptions de flot intermédiaires concernant des flots respectifs ;
- des moyens (300) de recherche dans lesdites tables (200_l, ..., 200_L) de descriptions de flots de niveau i, agencés pour rechercher si une description de flot concernant le flot auquel la description de flot à traiter par le niveau i est relative, est mémorisée dans la table (200_l, ..., 200_L) de descriptions de flots de niveau i ;
- des moyens (302) d'enregistrement et de mise à jour des descriptions de flot dans les tables (200_l, ..., 200_L) de descriptions de flot de niveau i ; - des moyens (301) d'affectation à une description de flot d'une date de péremption dépendant du niveau i au-delà de laquelle la description de flot est traitée par le niveau
(i+1) ;
- des moyens (304) de vérification de la date de péremption d'une description de flot, agencés pour vérifier si une description de flot est périmée.
8. Dispositif selon la revendication 7, comprenant en outre:
- des tables (210_l, ..., 210_L) d'identifiants de flots de niveau i, respectivement associées aux différents niveaux de traitement i, contenant des identifiants de flots ;
- des moyens (303) d'accès aux tables (210_l, ..., 210_L) d'identifiants de flots de niveau i, agencés pour fournir aux moyens (304) de vérification de la date de péremption un identifiant de flot enregistré à une adresse courante et enregistrer à l'adresse courante un identifiant du flot correspondant à la description de flot traitée par le niveau i.
9. Programme de construction d'une description de flot, comprenant des instructions de code de programme destinées à commander l'exécution des étapes du procédé selon les revendications 1 à 6 et à être exécutées par un dispositif, lorsque ledit programme est exécuté par ledit dispositif.
10. Support d'enregistrement lisible par un dispositif sur lequel est enregistré le programme selon la revendication 9.
PCT/FR2007/051468 2006-06-21 2007-06-19 Procede de construction de descriptions de flots de paquets WO2007148014A2 (fr)

Applications Claiming Priority (2)

Application Number Priority Date Filing Date Title
FR0652571 2006-06-21
FR0652571 2006-06-21

Publications (2)

Publication Number Publication Date
WO2007148014A2 true WO2007148014A2 (fr) 2007-12-27
WO2007148014A3 WO2007148014A3 (fr) 2008-03-13

Family

ID=37744277

Family Applications (1)

Application Number Title Priority Date Filing Date
PCT/FR2007/051468 WO2007148014A2 (fr) 2006-06-21 2007-06-19 Procede de construction de descriptions de flots de paquets

Country Status (1)

Country Link
WO (1) WO2007148014A2 (fr)

Citations (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20040054925A1 (en) * 2002-09-13 2004-03-18 Cyber Operations, Llc System and method for detecting and countering a network attack

Patent Citations (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20040054925A1 (en) * 2002-09-13 2004-03-18 Cyber Operations, Llc System and method for detecting and countering a network attack

Non-Patent Citations (2)

* Cited by examiner, † Cited by third party
Title
KORTEBI A ET AL: "Cross-protect: implicit service differentiation and admission control" HIGH PERFORMANCE SWITCHING AND ROUTING IEEE WORKSHOP, XX, XX, 19 avril 2004 (2004-04-19), pages 56-60, XP002354320 *
XU J ET AL: "Cost-effective flow table designs for high-speed routers: architecture and performance evaluation" IEEE TRANSACTIONS ON COMPUTERS, IEEE SERVICE CENTER, LOS ALAMITOS, CA, US, vol. 51, no. 9, septembre 2002 (2002-09), pages 1089-1099, XP002335870 ISSN: 0018-9340 *

Also Published As

Publication number Publication date
WO2007148014A3 (fr) 2008-03-13

Similar Documents

Publication Publication Date Title
JP4955107B2 (ja) Ipネットワーク内のトラフィックを分類するための方法およびユニット
EP1507384B1 (fr) Procédé de masquage des traitements applicatifs d'une requete d'accès à un serveur et système de masquage correspondant
WO2015097359A1 (fr) Procede de diagnostic de fonctions service dans un reseau ip
EP3138358B1 (fr) Procede de traitement d'un paquet de donnees relatif a un service
EP1842389A1 (fr) Procede, dispositif et programme de detection d'usurpation d'adresse dans un reseau sans fil
EP3556130A1 (fr) Procédé et dispositif de surveillance mis en oeuvre par un point d'accès à un réseau de télécommunications
FR2878674A1 (fr) Procede et systeme d'adaptation dynamique de metrique de qualite de service dans un reseau ad hoc
FR2928800A1 (fr) Procede de gestion de requetes d'obtention d'identifiants de pairs en vue d'acceder en mode p2p a des contenus qu'ils stockent, et dispositif de gestion et equipement de reseau associes.
FR3099325A1 (fr) Procédé pour détecter et identifier des équipements communiquant selon un protocole Modbus et contrôleur de communication pour la mise en œuvre d’un tel procédé.
EP1849257B1 (fr) Procede et equipements de controle d'acces a des flux ip multicast
FR2888695A1 (fr) Detection d'une intrusion par detournement de paquets de donnees dans un reseau de telecommunication
EP3365829B1 (fr) Procédé d'aide a la détection d'infection d'un terminal par un logiciel malveillant
EP2979222B1 (fr) Procédé de stockage de données dans un système informatique effectuant une deduplication de données
EP3891935A1 (fr) Procédé de configuration d'un noeud d'un réseau
WO2007148014A2 (fr) Procede de construction de descriptions de flots de paquets
WO2008081146A2 (fr) Procede et dispositif de gestion de connexions dans un reseau de telecommunications
FR2830396A1 (fr) Procede de reglage de la synchronisation d'une information d'aiguillage dans un environnement de commutation de donnees
WO2008035006A2 (fr) Procede pour configurer le profil de qualite de service d'un flot donne au niveau d'un noeud d'acces d'un reseau de communication par paquets
FR3064772A1 (fr) Procede d’aide a la detection d’attaques par denis de services
FR3103921A1 (fr) Procédé de coordination de la mitigation d’une attaque informatique, dispositif et système associés.
EP1652346B1 (fr) Procede de localisation d'objets mobiles communicants au sein d'un reseau de communications
WO2020084222A1 (fr) Technique de collecte d'informations relatives à un flux acheminé dans un réseau
WO2006103337A1 (fr) Procede de controle d’une table de flots adaptative et de detection d’une attaque par inondation d’un reseau de transmission de donnees par paquets a large bande et equipement d’analyse correspondant
EP2073450A1 (fr) Procédé de communication entre un terminal et un réseau de communication
FR3019417A1 (fr) Procede de traitement d'un message dans un dispositif d'interconnexion

Legal Events

Date Code Title Description
NENP Non-entry into the national phase

Ref country code: DE

NENP Non-entry into the national phase

Ref country code: RU

121 Ep: the epo has been informed by wipo that ep was designated in this application

Ref document number: 07803893

Country of ref document: EP

Kind code of ref document: A2

122 Ep: pct application non-entry in european phase

Ref document number: 07803893

Country of ref document: EP

Kind code of ref document: A2