WO2010052406A1 - Method for monitoring flows transmitted through a packet communication network - Google Patents

Method for monitoring flows transmitted through a packet communication network Download PDF

Info

Publication number
WO2010052406A1
WO2010052406A1 PCT/FR2009/052049 FR2009052049W WO2010052406A1 WO 2010052406 A1 WO2010052406 A1 WO 2010052406A1 FR 2009052049 W FR2009052049 W FR 2009052049W WO 2010052406 A1 WO2010052406 A1 WO 2010052406A1
Authority
WO
WIPO (PCT)
Prior art keywords
stream
record
packet
flow
packets
Prior art date
Application number
PCT/FR2009/052049
Other languages
French (fr)
Inventor
Emile Stephan
Patrick Truong
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 WO2010052406A1 publication Critical patent/WO2010052406A1/en

Links

Classifications

    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L63/00Network architectures or network communication protocols for network security
    • H04L63/14Network architectures or network communication protocols for network security for detecting or protecting against malicious traffic
    • H04L63/1408Network architectures or network communication protocols for network security for detecting or protecting against malicious traffic by monitoring network traffic
    • H04L63/1416Event detection, e.g. attack signature detection
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L43/00Arrangements for monitoring or testing data switching networks
    • H04L43/02Capturing of monitoring data
    • H04L43/026Capturing of monitoring data using flow identification

Definitions

  • the invention relates to a technique for observing flows transmitted through a packet communication network.
  • the invention lies in the field of observation of traffic in packet communication networks. It applies to the processing of stream packets 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 features, or identifying elements, may be present in different layers of the OSI model for Open Systems
  • Interconnection model in English 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 or UDP data. encapsulated in IP datagrams (layer 4).
  • a device of the communication network or observation device to generate a record of data relating to a stream under observation or stream recording, also called flow description.
  • 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.
  • a device receives a packet containing, for at least some of the identification elements mentioned above, unknown values, it initiates a flow description, including flow identification elements and various elements for describing an activity. of 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; - First and Last, respectively corresponding to the start and end times of the flow.
  • OSI layer level 3
  • the observation device On receipt of a new packet belonging to a stream for which a stream description exists, the observation device updates the parameters DPkts, DOctets and Last of the corresponding stream description.
  • the observation device transmits to a collection equipment the record relating to this stream, which it has itself made.
  • observation tasks can induce significant processing loads on the observation devices.
  • this function on a router, there is a significant risk that the router no longer has processor resources to perform its main task, namely to route packets.
  • a stream record is built from packets that are not consecutive. This is necessary to identify the application associated with the stream and to perform network performance measurements.
  • One of the aims of the invention is to remedy the shortcomings / disadvantages of the state of the art and / or to make improvements thereto.
  • the subject of the invention is a method for observing flows transmitted through a packet communication network, said method comprising, on reception of a packet belonging to a given stream: a step of determining a index of access to a first table based on an identifier of the given stream, the first table including stream records;
  • a step of determining an expulsion condition of the other stream of the first table as a function of previous collisions if the expulsion condition is not satisfied, a step of storing information relating to the packet in a second table; if the expulsion condition is satisfied, a step of expelling the record relating to said other stream to a collection device and a step of initializing a record relating to said given stream from the received packet and information stored in the second table.
  • a stream record or flow description is subsequently called a set of data comprising characteristics identifying the stream and information related to the traffic that has passed, for example, a number of bytes, a number of packets, etc. to a flow record by an access index determined for example by applying a hash function to characteristics identifying the stream.
  • the hash function provides access to a first table of fixed size. However, the hash function can produce the same access index for two or more streams of different identifiers. Collision means receiving a packet belonging to another stream than that stored in the first table and same access index to the first table.
  • An expulsion condition of the flow of the first table is defined based on previous collisions caused by previously received packets. When too many previous collisions have occurred, it is decided to expel the stream from the first table, removing the corresponding stream record from the first table and passing the corresponding stream record to a collection device. .
  • This expulsion as a function of previous collisions makes it possible to use a first table of fixed size which is accessed by a hash function. It is also possible to take into account previous collisions that occurred for flows for which a given combination of fields of the header of the packets is identical to a combination of the same fields of the flow packet header stored in the first table.
  • the memorization in the second table of at least a part of the information of the packets received previously and which were not taken into account in the first table, it is possible to create in the first table, following the expulsion of the other stream, a record taking into account consecutive packets of the given stream, for which an observation starts.
  • the second table allows to go back in the history of previously received packets.
  • the constructed stream records take into account packets received consecutively and allow more reliable observation of the traffic carried in the packet communication network.
  • the second table thus makes it possible to partially compensate the effects of the collisions for access to a storage space in the first table, these collisions being due to the fixed size of the first table.
  • the first and second tables being of fixed size, the implementation of the method on a router or an observation device can be carried out without excessive use of memory, in orders of magnitude equivalent to those of the prior art Netflow with sampling .
  • flow recordings representative of consecutive packets of the streams, and in some cases first packets of the streams are obtained for flows representing a certain proportion of the traffic.
  • the expulsion condition is determined at least by comparing the ratio between a collision counter associated with said record and a number of packets used to construct said record with a predetermined threshold.
  • a flow record in the first table which is accessed by an access index, is associated with two counters: a first counter representing the number of packets received for this stream and taken into account to construct the stream record and a second counter, called a collision counter, representative of the number of packets received previously and belonging to other streams, of identical respective access index.
  • the method comprises a step of determining a stream to be deleted from the second table and a step of expelling the stored information to another device.
  • a stream removed from the second table is a flow "mouse" compared to flows observed in the first table, that is to say a stream not having a significant activity.
  • a stream receiving a packet is placed in first position in the second table and a stream is expelled in the last position.
  • the second table being of fixed size, the waves are ordered. We group together all the packets of a stream. A stream receiving a packet is put at the head of the second table. A stream that will present little activity is thus found at the tail of the second table and can be expelled.
  • the method comprises at least one step of sending other information relating to a packet to another collection device, said packet belonging to a set of consecutive packets and having been used to construct a flow record sent to the device. collection. It is possible to transmit to another collection device (s) other information relating to the packets, such as DPI type information, for
  • Deep Packet Inspection In this type of method, it is sought to identify in the packets a particular component. This involves, for example, determining fingerprints in the application data of the packet.
  • the stream record includes a current value of an idle counter, and if the search is positive and the record found is relative to the given stream, the method includes a reset step of the current value of the inactivity counter, the previous value of the inactivity counter being stored in association with the stream record.
  • the expulsion condition is determined according to a collision counter associated with said record, a number of packets used to construct said record, previous values of the inactivity counter and previous values of a counter. 'activity.
  • the expulsion condition takes into account the activity and inactivity criteria of the flow.
  • the invention relates to an entity for observing flows transmitted through a packet communication network, comprising: means for receiving a packet belonging to a given stream: means for determining a index of access to a first table based on an identifier of the given stream, the first table including stream records; means for finding a record in the first table using the determined access index; means for determining an expulsion condition of another stream of the first table based on past collisions; means for storing information relating to the packet if the expulsion condition of the other stream is not satisfied; means for expelling a record relating to the other stream to a collection device if the expulsion condition of the other stream is satisfied and means for initializing a record relating to said given stream from the received packet and information stored in the storage means.
  • the invention relates to a device for routing packets in the communication network comprising a stream observation entity as described above.
  • the invention relates to a system for observing flows in a packet communication network, comprising at least one stream observation entity as described above and at least one stream recording collection device. transmitted by the stream observing entity.
  • the invention relates to a computer program comprising instructions for implementing the stream observation method as described previously by a stream observation entity, when this program is executed by a processor. .
  • FIG. 1 schematically represents a packet communication network; where is implemented the method according to the invention;
  • FIG. 2 represents the steps of the stream observation method according to a particular embodiment of the invention;
  • Fig. 3 shows a flow record;
  • FIG. 4 represents a stream observation entity.
  • 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. By way of nonlimiting example, subsequently, these common characteristics are the source and destination addresses, the source and destination port numbers and a protocol type.
  • FIG. 1 diagrammatically shows a packet communication network 1, for example of the IP type.
  • This network comprises a plurality of packet routing devices, denoted R1 to R4.
  • R1 to R4 the links between the routing devices R1-R4 are not shown.
  • the routing devices R1-R4 transmit stream records to the first collection device C 1.
  • a stream record 100 or flow description, as shown in FIG. 3, 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 field 104 representative of the volume in bytes of the stream; a field 105 representative of the number of packets of the stream; a collision counter 106.
  • Other fields may also be provided in the stream record, in order to memorize, for example, a type of protocol (TCP, UDP, etc.), autonomous system numbers incoming and outgoing, the nature of the network (IPv4, IPv6, MPLS, VPN, VLAN, ...), the output interface of the stream, the EP address of the next router (next-hop), ...
  • the routing devices R1-R4 also transmit information relating to packets to the second collection device C2, this information being of the DPI type, for "Deep Packet Inspection".
  • DPI means any method consisting of analyzing payload data or packet payloads to detect known traffic patterns or to classify packets into application flows, for example http application flow, P2P flow, Voice over IP application etc.
  • the DPI information therefore depends on the method used to analyze the packets: this can be simply a quintuplet composed of the source and destination addresses, the source and destination ports and the application protocol, as described in the article entitled "Statistical Traffic Identification Method Based on Flow-Level Behavior for Fair VoIP service "by T. Okabe et al.
  • the routing devices R1-R4 comprise a stream observation entity 300.
  • a stream observation entity 300 is represented in FIG. 4 and comprises two tables:
  • second table 304 of fixed size and intended to store information relating to previously received packets belonging to streams for which no record is in progress in the first table 302.
  • second table 304 may contain all or part of the received packets.
  • the stored information must include at least the information necessary to update a stream record 100. It may also include DPI type information.
  • a step EO the observation entity 300 is waiting to receive a packet.
  • the observation entity receives a packet belonging to a given stream, subsequently called incoming stream.
  • an access index allowing access to an area of the first table 302 is determined by applying a function of hash with characteristics identifying the stream in the received packet. This is for example a SHA-I function (for Secure Hash Function) or the function "Bob Hash” (defined in the program lookup.c on the site http://burtleburtle.net/bob/hash/doobs .html, "A new hash function for hash table lookup").
  • a search step E6 in the first table 302 it is sought, using the access index determined by the hash function in step E4, that is to say in the zone addressed by the result obtained by the hash function, if a stream record is recorded in the first table 302.
  • the result of the search step E6 is positive, i.e. the first table 302 contains a stream record for which the access index determined by applying the hash function to the identifier is identical to that obtained by applying the hash function to the identifier of the incoming stream, it is verified in a step E8 if the identifier of the stream record found in the first table 302 in step E6 corresponds to that of the incoming stream.
  • the first table 302 containing a stream record relating to the incoming stream in an update step E40, the stream record is updated, in particular the field 103 corresponding to the date when the last information concerning the flow was received, the 104 field representative of the volume of the flow and the field 105 representative of the number of packets received for the stream.
  • the collision counter 106 remains unchanged.
  • a step E42 it is determined whether the field 105 representative of the number of packets received has reached a predetermined value N. For example, N may be taken as two. If this is not the case, in a step E44, the observation entity 300 exports DPI-type information for the received packet to the second collection equipment C2.
  • step E8 it was determined that the first table 302 contains a stream record but that this record is relative to another stream, a collision has occurred, the application of the hash function to the respective identifiers of the stream. incoming and the other flow giving the same access index.
  • step E20 a condition is then determined for expelling the other stream from the first table 302 as a function of previous collisions. By expulsion of information from a table, it is subsequently understood that this information is deleted in the table and transmitted to a device.
  • the observation entity 300 expels the stream flow record. in the first table 302 and relating to the other stream, that is to say the deletes from the first table 302 and transmits it to the first collection device C1.
  • This record is deleted from the first table 302.
  • the observing entity 300 determines whether there exists in the second table 304 stored information relating to packets of the incoming stream, these packets having been received previously. If this is the case, in a step E34, this information is obtained.
  • the second table 304 it is possible to construct a new stream record taking into account previously received packets for the incoming stream.
  • a flow record is initialized for the incoming stream, from the received packet and information obtained from the second table 304 as appropriate.
  • the collision counter 106 is reset to zero.
  • the number of packets 105 is initialized according to the number of packets taken into account.
  • the other fields, ie the identifier of the flow 101, the date 102 of the beginning of the stream, the date 103 corresponding to the date when the last information concerning the flow was received, a field 104 representative of the volume in bytes of the stream, are also initialized according to the information stored in the second table 304 and according to the received packet.
  • the observation entity 300 transmits the other DPI type information for packets for which information has been stored in the second table 304, and for the received packet.
  • the method then returns to step EO awaiting receipt of new packets.
  • the observation entity 300 increments the collision counter 106.
  • the observation entity 300 stores in the second table 304 the information relating to the received packet. As indicated above, this is the information needed to update a record in the first table 302 and if necessary DPI type information.
  • the observation entity 300 determines whether the second table
  • the observation entity 300 determines a stream to be deleted from the second table 304. More specifically, it determines the stream to which the oldest packet information belongs and removes this information from the second table 304.
  • the deleted information may be expelled or transferred to another observation entity 300 which will re-implement the method using a different predetermined threshold.
  • the information transmitted at the output of the observation entity 300 is sampled.
  • the second table 304 groups by context all the information relating to the same stream. This may be for example an intermediate stream record. On receipt of a new packet, the context of this stream is placed first in the second table 304. In this case, in the step E28, the observation entity 300 determines a context in the last position in the second table 304 and deletes all information from this context.
  • the process then returns to the EO step awaiting reception of a packet.
  • the entity of observation 300 initializes the collision counter 106 to the value zero and the number of received packets 105 to the value one.
  • the observation entity 300 creates a stream record in the first table 302 from the received packet.
  • the observation entity 300 transmits to the second collection equipment C2 the DPI type information for the received packet.
  • the process then returns to the EO step awaiting reception of a packet.
  • the first table 302 stores stream recordings for flows, called elephant flows, presenting a large amount of traffic, relative to flows, called mouse flows, which will be eliminated or expelled from the second table 304.
  • the method allows therefore to implement sampling at the level of the flows themselves and no longer at the packet level as proposed in the prior art Netflow with sampling.
  • a stream record for a stream under observation is drawn from a set of consecutive packets, the cardinal of this set depending on the expulsion condition used.
  • the second table 304 also makes it possible to obtain the beginning of the flow.
  • the observation method thus defined makes it possible to obtain flow recordings representative of the actual traffic, for a use of memory and processor resources compatible for implementation on a packet forwarding device.
  • the implementation of the process on two levels makes it possible to provide a finer granularity as regards the filtering of the streams and the separation elephant waves and mouse streams. This makes it possible to reduce the risk of misclassification of the streams, for example an elephant stream erroneously classified as a mouse, errors that may be caused by too many collisions in the first table 302.
  • the Stream observing entity 300 can also implement stream eviction steps stored in the first table 102 not previously described and known from the prior art Netflow, such as an expulsion when the stream has remained inactive for a predetermined duration , or periodically.
  • the collision counter 106 accumulates collisions occurring for the streams of which a given combination of fields of the header of the packets is identical to the same combination of fields of the packet header of the stored stream. in the first table 302.
  • This variant finds application for example to the observation of flows by VLAN and transport protocol (UDP, TCP, SCTP ).
  • the collision counter 106 accumulates collisions intervened for flows having the same VLAN and the same transport protocol as those of the stream stored in the first table 302.
  • the stream recording also comprises a current value of an inactivity counter I.
  • the current value of the inactivity counter is incremented by one.
  • the current value of the inactivity counter is stored in the stream record and the current value is reset. the inactivity counter to zero.
  • the stream record also comprises a counter M representative of the maximum size of a "burst" packet, called activity counter thereafter.
  • activity counter a counter M representative of the maximum size of a "burst" packet, called activity counter thereafter.
  • the flow recording comprises the activity counter M and the inactivity counter I
  • Table 302 based on previous collisions as follows.
  • the expulsion condition depends on the collision counter 106 associated with the found stream record, the number of packets 105 used to construct this record, previous values of the idle counter I, and previous values of the activity counter M.
  • the following ratio is determined: where C is the collision counter 106 and P is the number of packets 105. It is a question of comparing this ratio R with a predetermined threshold between zero and one.
  • the ratio is greater than or equal to the predetermined threshold, then the other stream must be expelled from the first table 302: the expulsion condition is satisfied and the process proceeds to a step E30. If the ratio is below the predetermined threshold, then the flow record of the other stream must be continued: the expulsion condition is not satisfied and the process proceeds to a step E22.
  • the DPI type information is processed locally by the supervisory entity.
  • the stream observation entity 300 comprises:
  • a module 308 for receiving a packet belonging to a given stream a module 310 for determining an index of access to a first table as a function of an identifier of the given stream; a module 312 for searching for a stream record in the first table using the determined access index; a module 314 for determining an expulsion condition of another stream of the first table based on previous collisions; an observation data expulsion module 306, in particular a flow recording to a collection device when the expulsion condition of the other flow is satisfied, i.e. when a flow is expelled of the first table 302; a stream recording update module 316, further arranged to initialize a record relating to a given stream from the received packet and information stored in the second table.
  • the module 314 is further arranged to determine the expulsion condition by comparing the ratio of a collision counter associated with a record and a number of packets used to construct that record with a predetermined threshold.
  • the observation entity 300 furthermore comprises a module 318 for accessing the second table 304. It is arranged to determine a stream to be deleted when the second table is full and to store information relating to the packet received when the condition expulsion from the other stream is not satisfied. In a variant, it is also arranged to transmit the stored information deleted from the second table 304 to the expulsion module 306. In this case, the expulsion module 306 is further arranged to transmit this expelled information to another collection device.
  • a stream receiving a packet being placed in the first position in the second table 304, the module 318 is arranged to expel a stream in the last position.
  • the expulsion module 306 is arranged to transmit other information relating to a DPI type packet, said packet belonging to a set of consecutive packets and having been used to construct a sent stream record. to the collection device.
  • a stream record comprising a current value of an inactivity counter
  • the module 316 is arranged to reset the value current of the inactivity counter and to store the previous value of the inactivity counter in association with the flow record.
  • the stream observation entity 300 may also be provided in a network equipment such as a router, or in a traffic duplication equipment.
  • the modules 306 to 318 of the stream observation entity 300 are arranged to implement the previously described stream observation method. These are preferably software modules comprising software instructions for executing the steps of the previously described stream observation method implemented by an observation entity of the communication network.
  • the invention therefore also relates to: a program for a stream observation entity, comprising program instructions intended to control the execution of the steps of the previously described stream observation method which are executed by said entity, when said program is executed by a processor thereof; a recording medium readable by a stream observation entity of a communication network on which the stream observation entity program is recorded.
  • the software modules can be stored in or transmitted by a data carrier.
  • 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 signal, optical or radio, or a telecommunications network.
  • the invention also relates to a system for observing flows in a packet communication network, comprising at least one stream observation entity as described above and at least one stream recording collection device transmitted by the stream observing entity.
  • a packet communication network comprising at least one stream observation entity as described above and at least one stream recording collection device transmitted by the stream observing entity.
  • the particular embodiment has been described more particularly in the context of an IP type network.
  • the invention is also applicable to the observation of flows on networks of Ethernet, ATM, wireless, etc.

Landscapes

  • Engineering & Computer Science (AREA)
  • Computer Security & Cryptography (AREA)
  • Computer Networks & Wireless Communication (AREA)
  • Signal Processing (AREA)
  • Computer Hardware Design (AREA)
  • Computing Systems (AREA)
  • General Engineering & Computer Science (AREA)
  • Data Exchanges In Wide-Area Networks (AREA)

Abstract

The invention relates to a method for monitoring flows transmitted through a packet communication network (1), said method comprising, upon receiving a packet belonging to a given flow: the step of determining an access index to a first table based on a given flow identifier, the first table containing flow recordings; the step of searching a recording in the first table using the determined access index; a collision being detected if the search is positive but relates to another flow; the step of determining an expulsion condition of the other flow from the first table based on the previous collisions if the expulsion condition is not met, and the step of storing information relating to the packet in a second table; if the expulsion condition is met, the step of expelling the recording relating to the other flow towards a collecting device (C1) and the step of setting up a recording relating to said given flow based on the received packet and on information stored in the second table.

Description

Procédé d'observation de flots transmis à travers un réseau de communication par paquets Method of observing flows transmitted through a packet communication network
L'invention concerne une technique d'observation de flots transmis à travers un réseau de communication par paquets.The invention relates to a technique for observing flows transmitted through a packet communication network.
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 paquets 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 SystemsThe invention lies in the field of observation of traffic in packet communication networks. It applies to the processing of stream packets 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 features, or identifying elements, may be present in different layers of the OSI model for 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 données TCP ou UDP encapsulées dans des datagrammes IP (couche 4).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 or UDP data. encapsulated in IP datagrams (layer 4).
On connaît des techniques permettant à un dispositif du réseau de communication ou dispositif d'observation d'engendrer un enregistrement de données relatives à un flot sous observation ou enregistrement de flot, appelé également description 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 un tel dispositif reçoit un paquet contenant, pour au moins certains des éléments d'identification cités plus haut, des valeurs non connues, il initie une description de flot, comprenant des éléments d'identification du flot et différents éléments permettant de décrire une activité du flot tels que : - DPkts, contenant le nombre de paquets comptabilisés pour ce flot ;Techniques are known that enable a device of the communication network or observation device to generate a record of data relating to a stream under observation or stream recording, also called flow description. 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. When such a device receives a packet containing, for at least some of the identification elements mentioned above, unknown values, it initiates a flow description, including flow identification elements and various elements for describing an activity. of the flow such as: - DPkts, containing the number of packets counted for this flow;
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 d'un nouveau paquet appartenant à un flot pour lequel une description de flot existe, le dispositif d'observation met à jour les paramètres DPkts, DOctets et Last de la description de flot correspondante.DOctets, containing the volume in bytes of level 3 (OSI layer) in the stream packets; - First and Last, respectively corresponding to the start and end times of the flow. On receipt of a new packet belonging to a stream for which a stream description exists, the observation device updates the parameters DPkts, DOctets and Last of the corresponding stream description.
Lorsque le flot est resté inactif pendant une durée prédéterminée, ou bien de façon périodique, le dispositif d'observation transmet à un équipement de collecte l'enregistrement relatif à ce flot, qu'il a lui-même réalisé.When the stream has remained inactive for a predetermined period of time, or periodically, the observation device transmits to a collection equipment the record relating to this stream, which it has itself made.
Ces tâches d'observation peuvent induire sur les dispositifs d'observation des charges de traitement importantes. Dans le cas particulier de la mise en œuvre de cette fonction sur un routeur, il y a un risque important que le routeur ne dispose plus de ressources processeur pour réaliser sa tâche principale, à savoir acheminer des paquets.These observation tasks can induce significant processing loads on the observation devices. In the particular case of the implementation of this function on a router, there is a significant risk that the router no longer has processor resources to perform its main task, namely to route packets.
Afin de ne pas surcharger le dispositif d'observation, il est prévu un mécanisme d'échantillonnage des paquets avant l'étape de mise à jour des enregistrements. Il s'agit par exemple de prendre en compte un paquet tous les "n" paquets. En contrepartie de ce gain en charge des processeurs et des mémoires du dispositif d'observation, les enregistrements de flot permettent une estimation du trafic d'un flot au lieu d'une mesure exacte. De plus, les flots comportant un faible nombre de paquets ne sont pas observés. Des flots de ce type sont souvent utilisés par les attaques de type DoS pourIn order not to overload the observation device, there is provided a mechanism for sampling the packets before the step of updating the records. This is for example to consider a package all "n" packages. In return for this gain in charge of the processors and the memories of the observation device, the flow recordings allow an estimate of the traffic of a stream instead of an exact measurement. In addition, streams with a low number of packets are not observed. Floods of this type are often used by DoS attacks for
"Déniai of Service". En outre, un enregistrement de flot est élaboré à partir de paquets qui ne sont pas consécutifs. Or, ceci est nécessaire pour identifier l'application associée au flot et pour effectuer des mesures de performance des réseaux."Déniai of Service". In addition, a stream record is built from packets that are not consecutive. This is necessary to identify the application associated with the stream and to perform network performance measurements.
Un des buts de l'invention est de remédier à des insuffisances/inconvénients de l'état de la technique et/ou d'y apporter des améliorations.One of the aims of the invention is to remedy the shortcomings / disadvantages of the state of the art and / or to make improvements thereto.
Selon un premier aspect, l'invention a pour objet un procédé d'observation de flots transmis à travers un réseau de communication par paquets, ledit procédé comportant sur réception d'un paquet appartenant à un flot donné : une étape de détermination d'un indice d'accès à une première table en fonction d'un identifiant du flot donné, la première table comportant des enregistrements de flot ;According to a first aspect, the subject of the invention is a method for observing flows transmitted through a packet communication network, said method comprising, on reception of a packet belonging to a given stream: a step of determining a index of access to a first table based on an identifier of the given stream, the first table including stream records;
- une étape de recherche d'un enregistrement dans la première table à l'aide de l'indice d'accès déterminé ; si la recherche est positive mais l'enregistrement trouvé est relatif à un autre flot, une collision étant détectée,a step of searching for a record in the first table using the determined access index; if the search is positive but the record found is relative to another stream, a collision being detected,
-une étape de détermination d'une condition d'expulsion de l'autre flot de la première table en fonction de collisions antérieures ; -si la condition d'expulsion n'est pas satisfaite, une étape de mémorisation d'informations relatives au paquet dans une deuxième table ; -si la condition d'expulsion est satisfaite, une étape d'expulsion de l'enregistrement relatif audit autre flot vers un dispositif de collecte et une étape d'initialisation d'un enregistrement relatif audit flot donné à partir du paquet reçu et d'informations mémorisées dans la deuxième table.a step of determining an expulsion condition of the other stream of the first table as a function of previous collisions; if the expulsion condition is not satisfied, a step of storing information relating to the packet in a second table; if the expulsion condition is satisfied, a step of expelling the record relating to said other stream to a collection device and a step of initializing a record relating to said given stream from the received packet and information stored in the second table.
On appelle par la suite un enregistrement de flot ou description de flot un ensemble de données comprenant des caractéristiques identifiant le flot et des informations liées au trafic écoulé, par exemple, un nombre d'octets, un nombre de paquets,... On accède à un enregistrement de flot par un indice d'accès déterminé par exemple par application d'une fonction de hachage à des caractéristiques identifiant le flot. La fonction de hachage permet d'accéder à une première table de taille fixe. Toutefois, la fonction de hachage peut produire un même indice d'accès pour deux ou plusieurs flots d'identifiants différents. Par collision, on entend la réception d'un paquet appartenant à un autre flot que celui mémorisé dans la première table et de même indice d'accès à la première table.A stream record or flow description is subsequently called a set of data comprising characteristics identifying the stream and information related to the traffic that has passed, for example, a number of bytes, a number of packets, etc. to a flow record by an access index determined for example by applying a hash function to characteristics identifying the stream. The hash function provides access to a first table of fixed size. However, the hash function can produce the same access index for two or more streams of different identifiers. Collision means receiving a packet belonging to another stream than that stored in the first table and same access index to the first table.
On définit une condition d'expulsion du flot de la première table en fonction de collisions antérieures provoquées par des paquets reçus précédemment. Lorsqu'un nombre trop important de collisions antérieures est survenu, on décide d'expulser le flot de la première table, en supprimant l'enregistrement de flot correspondant de la première table et en transmettant l'enregistrement de flot correspondant à un dispositif de collecte. Cette expulsion en fonction de collisions antérieures permet d'utiliser une première table de taille fixe à laquelle on accède par une fonction de hachage. Il est également possible de prendre en compte les collisions antérieures qui sont intervenues pour des flots pour lesquels une combinaison donnée de champs de l'entête des paquets est identique à une combinaison des mêmes champs de l'entête du paquet du flot mémorisé dans la première table.An expulsion condition of the flow of the first table is defined based on previous collisions caused by previously received packets. When too many previous collisions have occurred, it is decided to expel the stream from the first table, removing the corresponding stream record from the first table and passing the corresponding stream record to a collection device. . This expulsion as a function of previous collisions makes it possible to use a first table of fixed size which is accessed by a hash function. It is also possible to take into account previous collisions that occurred for flows for which a given combination of fields of the header of the packets is identical to a combination of the same fields of the flow packet header stored in the first table.
Grâce à la mémorisation dans la deuxième table d'au moins une partie des informations des paquets reçus précédemment et qui n'ont pas été non pris en compte dans la première table, il est possible de créer dans la première table, suite à l'expulsion de l'autre flot, un enregistrement prenant en compte des paquets consécutifs du flot donné, pour lequel une observation démarre. En effet, la deuxième table permet de remonter dans l'historique des paquets reçus précédemment. Ainsi, les enregistrements de flot construits prennent en compte des paquets reçus consécutivement et permettent une observation plus fiable du trafic acheminé dans le réseau de communication par paquets. La deuxième table permet ainsi de compenser en partie les effets des collisions pour l'accès à un espace de mémorisation dans la première table, ces collisions étant dues à la taille fixe de la première table. On peut également ainsi observer le début d'un flot, un enregistrement de flot prenant en compte les premiers paquets du flot reçus.Thanks to the memorization in the second table of at least a part of the information of the packets received previously and which were not taken into account in the first table, it is possible to create in the first table, following the expulsion of the other stream, a record taking into account consecutive packets of the given stream, for which an observation starts. Indeed, the second table allows to go back in the history of previously received packets. Thus, the constructed stream records take into account packets received consecutively and allow more reliable observation of the traffic carried in the packet communication network. The second table thus makes it possible to partially compensate the effects of the collisions for access to a storage space in the first table, these collisions being due to the fixed size of the first table. We can also observe the start of a stream, a stream record taking into account the first packets of the stream received.
Les première et deuxième tables étant de taille fixe, la mise en œuvre du procédé sur un routeur ou un dispositif d'observation peut s'effectuer sans utilisation excessive de mémoire, dans des ordres de grandeur équivalents à ceux de la technique antérieure Netflow avec échantillonnage. Ainsi, par mise en œuvre du procédé, on obtient des enregistrements de flot représentatifs de paquets consécutifs des flots, et dans certains cas des premiers paquets des flots, pour des flots représentants une certaine proportion du trafic.The first and second tables being of fixed size, the implementation of the method on a router or an observation device can be carried out without excessive use of memory, in orders of magnitude equivalent to those of the prior art Netflow with sampling . Thus, by implementing the method, flow recordings representative of consecutive packets of the streams, and in some cases first packets of the streams, are obtained for flows representing a certain proportion of the traffic.
Avantageusement, on détermine la condition d'expulsion au moins par comparaison du rapport entre un compteur de collision associé audit enregistrement et un nombre de paquets utilisés pour construire ledit enregistrement avec un seuil prédéterminé.Advantageously, the expulsion condition is determined at least by comparing the ratio between a collision counter associated with said record and a number of packets used to construct said record with a predetermined threshold.
A un enregistrement de flot dans la première table, auquel on accède par un indice d'accès, sont associés deux compteurs : - un premier compteur représentant le nombre de paquets reçus pour ce flot et pris en compte pour construire l'enregistrement de flot et - un deuxième compteur, dit compteur de collision, représentatif du nombre de paquets reçus précédemment et appartenant à d'autres flots, d'indice d'accès respectif identique.A flow record in the first table, which is accessed by an access index, is associated with two counters: a first counter representing the number of packets received for this stream and taken into account to construct the stream record and a second counter, called a collision counter, representative of the number of packets received previously and belonging to other streams, of identical respective access index.
Par exemple, on peut décider d'expulser un flot de la première table lorsque le deuxième compteur ou compteur de collision est supérieur au premier compteur. Ceci permet d'obtenir un enregistrement de flot pour un flot représentant au moins la moitié des paquets reçus pour un indice d'accès donné. Toujours, à titre d'exemple, on peut décider d'expulser un flot de la première table lorsque le deuxième compteur est supérieur à trois fois le premier compteur. Ceci permet d'obtenir un enregistrement de flot pour un flot représentant au moins un quart des paquets reçus pour un indice d'accès donné.For example, it may be decided to expel a stream from the first table when the second counter or collision counter is greater than the first counter. This makes it possible to obtain a stream record for a stream representing at least half of the packets received for a given access index. Still, by way of example, it may be decided to expel a stream from the first table when the second counter is greater than three times the first counter. This provides a stream record for a stream representing at least a quarter of the packets received for a given access index.
En outre, dans un mode de réalisation, lorsque la deuxième table est pleine, le procédé comprend une étape de détermination d'un flot à supprimer de la deuxième table et une étape d'expulsion des informations mémorisées vers un autre dispositif.In addition, in one embodiment, when the second table is full, the method comprises a step of determining a stream to be deleted from the second table and a step of expelling the stored information to another device.
Un flot supprimé de la deuxième table est un flot "souris" par rapport à des flots observés dans la première table, c'est-à-dire un flot ne présentant pas une activité importante. Lorsqu'il est expulsé de la deuxième table, il est possible d'appliquer de nouveau le procédé, en utilisant une deuxième condition d'expulsion. On peut ainsi appliquer le procédé sur différents niveaux de traitement et obtenir également une observation des flots "souris". Il est possible d'appliquer un échantillonnage des flots expulsés de la deuxième table, afin de limiter la charge des dispositifs d'observation.A stream removed from the second table is a flow "mouse" compared to flows observed in the first table, that is to say a stream not having a significant activity. When it is expelled from the second table, it is possible to reapply the process, using a second expulsion condition. It is thus possible to apply the method on different treatment levels and also to obtain an observation of the "mouse" streams. It is possible to apply a sampling of the expelled flows from the second table, in order to limit the load of the observation devices.
De plus, dans un mode de réalisation, un flot recevant un paquet est mis en première position dans la deuxième table et on expulse un flot en dernière position.In addition, in one embodiment, a stream receiving a packet is placed in first position in the second table and a stream is expelled in the last position.
La deuxième table étant de taille fixe, on ordonne les flots. On regroupe ainsi l'ensemble des paquets d'un flot. Un flot recevant un paquet est mis en tête de la deuxième table. Un flot qui va présenter peu d'activité se retrouve ainsi en queue de la deuxième table et peut être expulsé.The second table being of fixed size, the waves are ordered. We group together all the packets of a stream. A stream receiving a packet is put at the head of the second table. A stream that will present little activity is thus found at the tail of the second table and can be expelled.
Avantageusement, le procédé comprend au moins une étape d'envoi d'autres informations relatives à un paquet vers un autre dispositif de collecte, ledit paquet appartenant à un ensemble de paquets consécutifs et ayant été utilisés pour construire un enregistrement de flot envoyé au dispositif de collecte. II est possible de transmettre à un ou des dispositifs de collecte d'autres informations relatives aux paquets, telles que des informations de type DPI, pourAdvantageously, the method comprises at least one step of sending other information relating to a packet to another collection device, said packet belonging to a set of consecutive packets and having been used to construct a flow record sent to the device. collection. It is possible to transmit to another collection device (s) other information relating to the packets, such as DPI type information, for
"Deep Packet Inspection". Dans ce type de méthode, on cherche à identifier dans les paquets une composante particulière. Il s'agit par exemple de déterminer des empreintes dans les données applicatives du paquet."Deep Packet Inspection". In this type of method, it is sought to identify in the packets a particular component. This involves, for example, determining fingerprints in the application data of the packet.
Dans un mode de réalisation, l'enregistrement de flot comprenant une valeur courante d'un compteur d'inactivité, et si la recherche est positive et l'enregistrement trouvé est relatif au flot donné, le procédé comprend une étape de remise à zéro de la valeur courante du compteur d'inactivité, la valeur précédente du compteur d'inactivité étant mémorisée en association avec l'enregistrement de flot.In one embodiment, the stream record includes a current value of an idle counter, and if the search is positive and the record found is relative to the given stream, the method includes a reset step of the current value of the inactivity counter, the previous value of the inactivity counter being stored in association with the stream record.
Il est possible d'enrichir un enregistrement de flot avec un compteur d'inactivité. On peut ainsi déterminer une durée pendant laquelle le flot a été inactif, c'est-à-dire une durée entre deux paquets reçus.It is possible to enrich a flow record with an inactivity counter. It is thus possible to determine a duration during which the stream has been inactive, that is to say a duration between two received packets.
Il est également possible de mémoriser une taille maximale d'un ensemble de paquets reçus de façon consécutive.It is also possible to store a maximum size of a set of received packets consecutively.
Toutes ces observations permettent ainsi de mieux caractériser les flots écoulés dans le réseau de communication.All these observations make it possible to better characterize the flows flowing in the communication network.
Avantageusement, on détermine la condition d'expulsion en fonction d'un compteur de collision associé audit enregistrement, d'un nombre de paquets utilisés pour construire ledit enregistrement, de valeurs précédentes du compteur d'inactivité et de valeurs précédentes d'un compteur d'activité.Advantageously, the expulsion condition is determined according to a collision counter associated with said record, a number of packets used to construct said record, previous values of the inactivity counter and previous values of a counter. 'activity.
Ainsi la condition d'expulsion prend en compte des critères d'activité et d'inactivité du flot.Thus the expulsion condition takes into account the activity and inactivity criteria of the flow.
Selon un deuxième aspect, l'invention concerne une entité d'observation de flots transmis à travers un réseau de communication par paquets, comportant : - des moyens de réception d'un paquet appartenant à un flot donné : des moyens de détermination d'un indice d'accès à une première table en fonction d'un identifiant du flot donné, la première table comportant des enregistrements de flot ; des moyens de recherche d'un enregistrement dans la première table à l'aide de l'indice d'accès déterminé ; des moyens de détermination d'une condition d'expulsion d'un autre flot de la première table en fonction de collisions antérieures ; - des moyens de mémorisation d'informations relatives au paquet si la condition d'expulsion de l'autre flot n'est pas satisfaite ; des moyens d'expulsion d'un enregistrement relatif à l'autre flot vers un dispositif de collecte si la condition d'expulsion de l'autre flot est satisfaite et des moyens d'initialisation d'un enregistrement relatif audit flot donné à partir du paquet reçu et d'informations mémorisées dans les moyens de mémorisation.According to a second aspect, the invention relates to an entity for observing flows transmitted through a packet communication network, comprising: means for receiving a packet belonging to a given stream: means for determining a index of access to a first table based on an identifier of the given stream, the first table including stream records; means for finding a record in the first table using the determined access index; means for determining an expulsion condition of another stream of the first table based on past collisions; means for storing information relating to the packet if the expulsion condition of the other stream is not satisfied; means for expelling a record relating to the other stream to a collection device if the expulsion condition of the other stream is satisfied and means for initializing a record relating to said given stream from the received packet and information stored in the storage means.
Selon un troisième aspect, l'invention concerne un dispositif d'acheminement de paquets dans le réseau de communication comportant une entité d'observation de flots telle que décrite précédemment.According to a third aspect, the invention relates to a device for routing packets in the communication network comprising a stream observation entity as described above.
Selon un quatrième aspect, l'invention concerne un système d'observation de flots dans un réseau de communication par paquets, comprenant au moins une entité d'observation de flots telle que décrite précédemment et au moins un dispositif de collecte d'enregistrements de flot transmis par l'entité d'observation de flots.According to a fourth aspect, the invention relates to a system for observing flows in a packet communication network, comprising at least one stream observation entity as described above and at least one stream recording collection device. transmitted by the stream observing entity.
Selon un cinquième aspect, l'invention concerne un programme d'ordinateur comportant des instructions pour la mise en œuvre du procédé d'observation de flots tel que décrit précédemment par une entité d'observation de flots, lorsque ce programme est exécuté par un processeur.According to a fifth aspect, the invention relates to a computer program comprising instructions for implementing the stream observation method as described previously by a stream observation entity, when this program is executed by a processor. .
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 de façon schématique un réseau de communication par paquets où est mis en œuvre le procédé selon l'invention ; la figure 2 représente les étapes du procédé d'observation de flots selon un mode particulier de réalisation de l'invention ; la figure 3 représente un enregistrement de flot ; - la figure 4 représente une entité d'observation de flots. 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. A titre d'exemple non limitatif, par la suite, ces caractéristiques communes sont les adresses source et destination, les numéros de port source et destination et un type de protocole.The invention will be better understood with the aid of the following description of a particular embodiment of the method of the invention, with reference to the appended drawings, in which: FIG. 1 schematically represents a packet communication network; where is implemented the method according to the invention; FIG. 2 represents the steps of the stream observation method according to a particular embodiment of the invention; Fig. 3 shows a flow record; FIG. 4 represents a stream observation entity. It will be noted at the outset that 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. By way of nonlimiting example, subsequently, these common characteristics are the source and destination addresses, the source and destination port numbers and a protocol type.
Sur la figure 1, on a représenté de façon schématique un réseau 1 de communication par paquets, par exemple de type IP. Ce réseau comprend une pluralité de dispositifs d'acheminement de paquets, notés Rl à R4. Afin de ne pas surcharger la figure 1, les liens entre les dispositifs d'acheminement R1-R4 ne sont pas représentés.FIG. 1 diagrammatically shows a packet communication network 1, for example of the IP type. This network comprises a plurality of packet routing devices, denoted R1 to R4. In order not to overload Figure 1, the links between the routing devices R1-R4 are not shown.
Deux dispositifs Cl, C2 de collecte de données d'observation de flots sont représentés sur la figure 1. Les dispositifs d'acheminement R1-R4 transmettent des enregistrements de flot au premier dispositif de collecte C 1.Two devices C1, C2 for collecting stream observation data are shown in FIG. 1. The routing devices R1-R4 transmit stream records to the first collection device C 1.
Un enregistrement 100 de flot ou description de flot, tel que représenté à 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 ; un champ 104 représentatif du volume en octets du flot ; un champ 105 représentatif du nombre de paquets du flot ; un compteur 106 de collision. D'autres champs peuvent également être prévus dans l'enregistrement de flot, afin de mémoriser par exemple un type de protocole (TCP, UDP,...), des numéros de système autonome entrant et sortant, la nature du réseau (IPv4, IPv6, MPLS, VPN, VLAN, ...), l'interface de sortie du flot, l'adresse EP du prochain routeur (next-hop), ... Les dispositifs d'acheminement R1-R4 transmettent également des informations relatives à des paquets au deuxième dispositif de collecte C2, ces informations étant de type DPI, pour "Deep Packet Inspection".A stream record 100 or flow description, as shown in FIG. 3, 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 field 104 representative of the volume in bytes of the stream; a field 105 representative of the number of packets of the stream; a collision counter 106. Other fields may also be provided in the stream record, in order to memorize, for example, a type of protocol (TCP, UDP, etc.), autonomous system numbers incoming and outgoing, the nature of the network (IPv4, IPv6, MPLS, VPN, VLAN, ...), the output interface of the stream, the EP address of the next router (next-hop), ... The routing devices R1-R4 also transmit information relating to packets to the second collection device C2, this information being of the DPI type, for "Deep Packet Inspection".
Par DPI, on entend toute méthode consistant à analyser les données utiles ou "payload" des paquets pour détecter des motifs de trafic connus ou pour classifier les paquets en flux applicatifs, par exemple flux applicatif http, flux P2P, application de type Voix sur IP, etc. Par exemple, dans le cas de l'utilisation des signatures pour cette analyse, il s'agit d'observer le contenu des paquets afin de retrouver des motifs prédéfinis caractéristiques des services applicatifs. Les informations DPI dépendent donc de la méthode utilisée pour analyser les paquets : cela peut être tout simplement un quintuplé composé des adresses source et destination, des ports source et destination et du protocole applicatif, comme décrit dans l'article intitulé "Statistical Traffic Identification Method Based on Flow-Level Behavior for Fair VoIP service" de T. Okabe et al. II peut s'agir également d'observations plus complexes basées sur la reconnaissance comportementale ou statistique des données utiles (ou "payload") du paquet, nécessitant de décoder des champs de niveau 7. A titre d'exemple, pour la détection des flux média de type Voix sur IP ou VoIP, il faut observer les ports dynamiques utilisés dans les connexions pour les trafics média en observant les échanges de négociation dans les messages de signalisation de SEP (INVITE, UPDATE, 200 OK,...), ce qui implique de pouvoir d'identifier les différents messages SEP.DPI means any method consisting of analyzing payload data or packet payloads to detect known traffic patterns or to classify packets into application flows, for example http application flow, P2P flow, Voice over IP application etc. For example, in the case of the use of signatures for this analysis, it is a question of observing the contents of the packets in order to find predefined patterns characteristic of the application services. The DPI information therefore depends on the method used to analyze the packets: this can be simply a quintuplet composed of the source and destination addresses, the source and destination ports and the application protocol, as described in the article entitled "Statistical Traffic Identification Method Based on Flow-Level Behavior for Fair VoIP service "by T. Okabe et al. It may also be more complex observations based on the behavioral or statistical recognition of the payload of the packet, requiring the decoding of level 7 fields. For example, for the detection of the flows Voice over IP or VoIP media, it is necessary to observe the dynamic ports used in the connections for the media traffic by observing the negotiation exchanges in the signaling messages of SEP (INVITE, UPDATE, 200 OK, ...), this which implies being able to identify the different SEP messages.
Dans le mode de réalisation décrit, les dispositifs d'acheminement R1-R4 comprennent une entité d'observation de flots 300. Une telle entité d'observation de flots 300 est représentée sur la figure 4 et comprend deux tables :In the embodiment described, the routing devices R1-R4 comprise a stream observation entity 300. Such a stream observation entity 300 is represented in FIG. 4 and comprises two tables:
- une première table 302, de taille fixe et destinée à mémoriser des enregistrements de flots 100 ;a first table 302, of fixed size and intended to store stream records 100;
- une deuxième table 304, de taille fixe et destinée à mémoriser des informations relatives à des paquets précédemment reçus et appartenant à des flots pour lesquels aucun enregistrement n'est en cours dans la première table 302. Cette deuxième table 304 peut contenir tout ou partie des paquets reçus. Les informations mémorisées doivent comprendre au moins les informations nécessaires à la mise à jour d'un enregistrement de flot 100. Elles peuvent également comprendre des informations de type DPI. Le procédé d'observation de flots, tel qu'il est mis en œuvre par une entité d'observation de flots 300, va maintenant être décrit en relation avec la figure 2.a second table 304 of fixed size and intended to store information relating to previously received packets belonging to streams for which no record is in progress in the first table 302. second table 304 may contain all or part of the received packets. The stored information must include at least the information necessary to update a stream record 100. It may also include DPI type information. The method of observing flows, as implemented by a stream observation entity 300, will now be described in relation to FIG. 2.
Dans une étape EO, l'entité d'observation 300 est en attente de réception d'un paquet. A l'étape E2, l'entité d'observation reçoit un paquet appartenant à un flot donné, appelé par la suite flot entrant. A la suite de cette étape E2, lors d'une étape E4 de détermination d'un indice d'accès, on détermine un indice d'accès permettant d'accéder à une zone de la première table 302 par application d'une fonction de hachage aux caractéristiques identifiant le flot dans le paquet reçu. Il s'agit par exemple d'une 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").In a step EO, the observation entity 300 is waiting to receive a packet. In step E2, the observation entity receives a packet belonging to a given stream, subsequently called incoming stream. Following this step E2, during a step E4 of determining an access index, an access index allowing access to an area of the first table 302 is determined by applying a function of hash with characteristics identifying the stream in the received packet. This is for example a SHA-I function (for Secure Hash Function) or the function "Bob Hash" (defined in the program lookup.c on the site http://burtleburtle.net/bob/hash/doobs .html, "A new hash function for hash table lookup").
Dans une étape E6 de recherche dans la première table 302, on recherche, à l'aide de l'indice d'accès déterminé par la fonction de hachage à l'étape E4, c'est-à-dire dans la zone adressée par le résultat obtenu par la fonction de hachage, si un enregistrement de flot est enregistré dans la première table 302.In a search step E6 in the first table 302, it is sought, using the access index determined by the hash function in step E4, that is to say in the zone addressed by the result obtained by the hash function, if a stream record is recorded in the first table 302.
Si le résultat de l'étape de recherche E6 est positif, c'est-à-dire que la première table 302 contient un enregistrement de flot pour lequel l'indice d'accès déterminé 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 E8 si l'identifiant de l'enregistrement de flot trouvé dans la première table 302 à l'étape E6 correspond à celui du flot entrant.If the result of the search step E6 is positive, i.e. the first table 302 contains a stream record for which the access index determined by applying the hash function to the identifier is identical to that obtained by applying the hash function to the identifier of the incoming stream, it is verified in a step E8 if the identifier of the stream record found in the first table 302 in step E6 corresponds to that of the incoming stream.
Si tel est le cas, la première table 302 contenant un enregistrement de flot relatif au flot entrant, dans une étape E40 de mise à jour, l'enregistrement de flot est mis à jour, notamment le champ 103 correspondant à la date où les dernières informations concernant le flot ont été reçues, le champ 104 représentatif du volume du flot et le champ 105 représentatif du nombre de paquets reçus pour le flot. Le compteur de collision 106 reste inchangé. Dans une étape E42, on détermine si le champ 105 représentatif du nombre de paquets reçus a atteint une valeur prédéterminée N. Par exemple, on peut prendre N égal à deux. Si ce n'est pas le cas, dans une étape E44, l'entité d'observation 300 exporte des informations de type DPI pour le paquet reçu au deuxième équipement de collecte C2. Il est alors possible de mettre en œuvre sur le deuxième équipement de collecte C2 des procédés visant à identifier des flux applicatifs. Dans les deux cas, le procédé retourne ensuite à l'étape EO en attente de réception d'un paquet. Si lors de l'étape E8, on a déterminé que la première table 302 contient un enregistrement de flot mais que cet enregistrement est relatif à un autre flot, une collision est survenue, l'application de la fonction de hachage aux identifiants respectifs du flot entrant et de l'autre flot donnant le même indice d'accès. On détermine alors dans une étape E20 une condition d'expulsion de l'autre flot de la première table 302 en fonction de collisions antérieures. Par expulsion d'informations d'une table, on entend par la suite suppression de ces informations dans la table et transmission vers un dispositif. Dans le mode particulier de réalisation décrit ici, il s'agit de comparer un rapport du compteur de collision 106 associé à l'enregistrement de flot trouvé et le nombre de paquets 105 utilisés pour construire cet enregistrement avec un seuil prédéterminé. Si le rapport est supérieur ou égal au seuil prédéterminé, alors l'autre flot doit être expulsé de la première table 302 : la condition d'expulsion est satisfaite et le procédé passe à une étape E30. Si le rapport est inférieur au seuil prédéterminé, alors on doit continuer à construire l'enregistrement de flot de l'autre flot : la condition d'expulsion n'est pas satisfaite et le procédé passe à une étape E22. Par exemple, on peut choisir le seuil prédéterminé égal à un, c'est-à-dire décider d'expulser un flot de la première table 302 lorsque le compteur 306 de collision est égal au nombre de paquets 105. Ceci permet d'obtenir un enregistrement de flot pour un flot représentant au moins la moitié des paquets reçus pour un indice d'accès donné. Toujours, à titre d'exemple, on peut choisir le seuil prédéterminé égal à trois. Ceci permet d'obtenir un enregistrement de flot pour un flot représentant au moins un quart des paquets reçus pour un indice d'accès donné. On voit ainsi qu'il est possible d'ajuster à l'aide du seuil prédéterminé la proportion que représente un flot observé parmi des flots de même indice d'accès dans la première table 302.If this is the case, the first table 302 containing a stream record relating to the incoming stream, in an update step E40, the stream record is updated, in particular the field 103 corresponding to the date when the last information concerning the flow was received, the 104 field representative of the volume of the flow and the field 105 representative of the number of packets received for the stream. The collision counter 106 remains unchanged. In a step E42, it is determined whether the field 105 representative of the number of packets received has reached a predetermined value N. For example, N may be taken as two. If this is not the case, in a step E44, the observation entity 300 exports DPI-type information for the received packet to the second collection equipment C2. It is then possible to implement on the second collection equipment C2 methods for identifying application flows. In both cases, the method then returns to step EO waiting to receive a packet. If during step E8, it was determined that the first table 302 contains a stream record but that this record is relative to another stream, a collision has occurred, the application of the hash function to the respective identifiers of the stream. incoming and the other flow giving the same access index. In a step E20, a condition is then determined for expelling the other stream from the first table 302 as a function of previous collisions. By expulsion of information from a table, it is subsequently understood that this information is deleted in the table and transmitted to a device. In the particular embodiment described here, it is a question of comparing a ratio of the collision counter 106 associated with the found flow record and the number of packets 105 used to construct this record with a predetermined threshold. If the ratio is greater than or equal to the predetermined threshold, then the other stream must be expelled from the first table 302: the expulsion condition is satisfied and the process proceeds to a step E30. If the ratio is below the predetermined threshold, then the flow record of the other stream must be continued: the expulsion condition is not satisfied and the process proceeds to a step E22. For example, it is possible to choose the predetermined threshold equal to one, that is to say to decide to expel a stream from the first table 302 when the collision counter 306 is equal to the number of packets 105. This makes it possible to obtain a stream record for a stream representing at least half of the packets received for a given access index. Still, by way of example, it is possible to choose the predetermined threshold equal to three. This makes it possible to obtain a flow record for a flow representing at least a quarter packets received for a given access index. It can thus be seen that it is possible to adjust, using the predetermined threshold, the proportion represented by a flow observed among flows of the same access index in the first table 302.
Si la condition d'expulsion est satisfaite, l'autre flot devant être expulsé, à l'étape E30 d'expulsion de l'enregistrement relatif à l'autre flot, l'entité d'observation 300 expulse l'enregistrement de flot contenu dans la première table 302 et relatif à l'autre flot, c'est-à-dire le supprime de la première table 302 et le transmet au premier dispositif de collecte Cl. Cet enregistrement est supprimé de la première table 302. Dans une étape E32, l'entité d'observation 300 détermine s'il existe dans la deuxième table 304 des informations mémorisées relatives à des paquets du flot entrant, ces paquets ayant été reçus précédemment. Si tel est le cas, dans une étape E34, on obtient ces informations. Ainsi, grâce à l'utilisation des informations mémorisées dans la deuxième table 304, il est possible de construire un nouvel enregistrement de flot en prenant en compte des paquets reçus précédemment pour le flot entrant. Dans une étape E36, on initialise un enregistrement de flot pour le flot entrant, à partir du paquet reçu et des informations obtenues de la deuxième table 304 le cas échéant. Le compteur de collision 106 est remis à la valeur zéro. Le nombre de paquets 105 est initialise en fonction du nombre de paquets pris en compte. Les autres champs, c'est-à-dire l'identifiant du flot 101, la date 102 de début du flot, la date 103 correspondant à la date où les dernières informations concernant le flot ont été reçues, un champ 104 représentatif du volume en octets du flot, sont également initialisés en fonction des informations mémorisées dans la deuxième table 304 et en fonction du paquet reçu.If the expulsion condition is satisfied, the other stream to be expelled, at the expulsion step E30 of the other stream record, the observation entity 300 expels the stream flow record. in the first table 302 and relating to the other stream, that is to say the deletes from the first table 302 and transmits it to the first collection device C1. This record is deleted from the first table 302. In a step E32, the observing entity 300 determines whether there exists in the second table 304 stored information relating to packets of the incoming stream, these packets having been received previously. If this is the case, in a step E34, this information is obtained. Thus, by using the information stored in the second table 304, it is possible to construct a new stream record taking into account previously received packets for the incoming stream. In a step E36, a flow record is initialized for the incoming stream, from the received packet and information obtained from the second table 304 as appropriate. The collision counter 106 is reset to zero. The number of packets 105 is initialized according to the number of packets taken into account. The other fields, ie the identifier of the flow 101, the date 102 of the beginning of the stream, the date 103 corresponding to the date when the last information concerning the flow was received, a field 104 representative of the volume in bytes of the stream, are also initialized according to the information stored in the second table 304 and according to the received packet.
Puis, dans une étape E38 d'export, l'entité d'observation 300 transmet les autres informations de type DPI pour des paquets pour lesquels des informations ont été mémorisées dans la deuxième table 304, et pour le paquet reçu.Then, in an export step E38, the observation entity 300 transmits the other DPI type information for packets for which information has been stored in the second table 304, and for the received packet.
Le procédé retourne ensuite à l'étape EO en attente de réception de nouveaux paquets.The method then returns to step EO awaiting receipt of new packets.
Si la condition d'expulsion n'est pas satisfaite, l'autre flot ne devant pas être expulsé, à l'étape E22, l'entité d'observation 300 incrémente le compteur de collision 106. Dans une étape E24, l'entité d'observation 300 mémorise dans la deuxième table 304 les informations relatives au paquet reçu. Comme indiqué précédemment, il s'agit des informations nécessaires pour la mise à jour d'un enregistrement dans la première table 302 et le cas échéant d'informations de type DPI. Dans une étape E26, l'entité d'observation 300 détermine si la deuxième tableIf the expulsion condition is not satisfied, the other stream not to be expelled, in step E22, the observation entity 300 increments the collision counter 106. In a step E24, the observation entity 300 stores in the second table 304 the information relating to the received packet. As indicated above, this is the information needed to update a record in the first table 302 and if necessary DPI type information. In a step E26, the observation entity 300 determines whether the second table
304 est pleine. Le cas échéant, dans une étape E28, l'entité d'observation 300 détermine un flot à supprimer de la deuxième table 304. Plus précisément, elle détermine le flot auquel appartiennent des informations relatives à un paquet les plus anciennes et supprime ces informations de la deuxième table 304. Optionnellement, les informations supprimées peuvent être expulsées ou transférées à une autre entité d'observation 300 qui va mettre en œuvre de nouveau le procédé en utilisant un seuil prédéterminé différent. Dans une variante de cette option, on échantillonne les informations transmises en sortie de l'entité d'observation 300.304 is full. If necessary, in a step E28, the observation entity 300 determines a stream to be deleted from the second table 304. More specifically, it determines the stream to which the oldest packet information belongs and removes this information from the second table 304. Optionally, the deleted information may be expelled or transferred to another observation entity 300 which will re-implement the method using a different predetermined threshold. In a variant of this option, the information transmitted at the output of the observation entity 300 is sampled.
Dans un mode de réalisation particulier, la deuxième table 304 regroupe par contexte l'ensemble des informations relatives à un même flot. Il peut s'agir par exemple d'un enregistrement de flot intermédiaire. A la réception d'un nouveau paquet, le contexte de ce flot est placé en première position dans la deuxième table 304. Dans ce cas, à l'étape E28, l'entité d'observation 300 détermine un contexte en dernière position dans la deuxième table 304 et supprime l'ensemble des informations de ce contexte.In a particular embodiment, the second table 304 groups by context all the information relating to the same stream. This may be for example an intermediate stream record. On receipt of a new packet, the context of this stream is placed first in the second table 304. In this case, in the step E28, the observation entity 300 determines a context in the last position in the second table 304 and deletes all information from this context.
Le procédé retourne ensuite à l'étape EO en attente de réception d'un paquet.The process then returns to the EO step awaiting reception of a packet.
Si le résultat de l'étape de recherche E6 est négatif, c'est-à-dire que la première table 302 ne contient aucun enregistrement de flot pour l'indice d'accès déterminé, dans une étape ElO, l'entité d'observation 300 initialise le compteur de collision 106 à la valeur zéro et le nombre de paquets 105 reçus à la valeur un. Dans une étape E 12, l'entité d'observation 300 crée un enregistrement de flot dans la première table 302 à partir du paquet reçu.If the result of the search step E6 is negative, i.e. the first table 302 does not contain any flow record for the determined access index, in a step ElO, the entity of observation 300 initializes the collision counter 106 to the value zero and the number of received packets 105 to the value one. In a step E 12, the observation entity 300 creates a stream record in the first table 302 from the received packet.
Puis, dans une étape E 14, l'entité d'observation 300 transmet au deuxième équipement de collecte C2 les informations de type DPI pour le paquet reçu. Le procédé retourne ensuite à l'étape EO en attente de réception d'un paquet. On constate ainsi que la première table 302 mémorise des enregistrements de flot pour des flots, dits flots éléphants, présentant un trafic important, relativement à des flots, dits flots souris, qui vont être supprimés ou expulsés de la deuxième table 304. Le procédé permet donc de mettre en œuvre un échantillonnage au niveau des flots eux-mêmes et non plus au niveau des paquets comme proposé dans la technique antérieure Netflow avec échantillonnage. Un enregistrement de flot pour un flot sous observation est élaboré à partir d'un ensemble de paquets consécutifs, le cardinal de cet ensemble dépendant de la condition d'expulsion utilisée. La deuxième table 304 permet également d'obtenir le début du flot. Le procédé d'observation ainsi défini permet d'obtenir des enregistrements de flot représentatifs du trafic réel, pour une utilisation des ressources mémoires et de processeur compatibles pour une mise en œuvre sur un dispositif d'acheminement de paquets.Then, in a step E 14, the observation entity 300 transmits to the second collection equipment C2 the DPI type information for the received packet. The process then returns to the EO step awaiting reception of a packet. It can thus be seen that the first table 302 stores stream recordings for flows, called elephant flows, presenting a large amount of traffic, relative to flows, called mouse flows, which will be eliminated or expelled from the second table 304. The method allows therefore to implement sampling at the level of the flows themselves and no longer at the packet level as proposed in the prior art Netflow with sampling. A stream record for a stream under observation is drawn from a set of consecutive packets, the cardinal of this set depending on the expulsion condition used. The second table 304 also makes it possible to obtain the beginning of the flow. The observation method thus defined makes it possible to obtain flow recordings representative of the actual traffic, for a use of memory and processor resources compatible for implementation on a packet forwarding device.
La mise en œuvre du procédé sur deux niveaux, c'est-à-dire en appliquant de nouveau le procédé sur les paquets expulsés de la deuxième table 304, permet d'apporter une granularité plus fine quant au filtrage des flots et à la séparation des flots éléphants et des flots souris. Ceci permet de diminuer le risque d'erreur de classification des flots, par exemple un flot éléphant classifié à tort comme souris, des erreurs pouvant être provoquées par un trop grand nombre de collisions dans la première table 302. II est à noter que l'entité d'observation de flots 300 peut également mettre en œuvre des étapes d'expulsion de flots mémorisés dans la première table 102 non décrites précédemment et connues de la technique antérieure Netflow, telles que une expulsion lorsque le flot est resté inactif pendant une durée prédéterminée, ou bien de façon périodique. Dans une variante au mode de réalisation décrit, le compteur de collisions 106 cumule des collisions intervenues pour les flots dont une combinaison donnée de champs de l'entête des paquets est identique à la même combinaison de champs de l'entête des paquets du flot mémorisé dans la première table 302. Cette variante trouve son application par exemple à l'observation des flots par VLAN et par protocole de transport (UDP, TCP, SCTP...). Le compteur de collisions 106 cumule des collisions intervenues pour des flots ayant le même VLAN et le même protocole de transport que ceux du flot mémorisé dans la première table 302.The implementation of the process on two levels, that is to say by applying the process again on the packets expelled from the second table 304, makes it possible to provide a finer granularity as regards the filtering of the streams and the separation elephant waves and mouse streams. This makes it possible to reduce the risk of misclassification of the streams, for example an elephant stream erroneously classified as a mouse, errors that may be caused by too many collisions in the first table 302. It should be noted that the Stream observing entity 300 can also implement stream eviction steps stored in the first table 102 not previously described and known from the prior art Netflow, such as an expulsion when the stream has remained inactive for a predetermined duration , or periodically. In a variant of the embodiment described, the collision counter 106 accumulates collisions occurring for the streams of which a given combination of fields of the header of the packets is identical to the same combination of fields of the packet header of the stored stream. in the first table 302. This variant finds application for example to the observation of flows by VLAN and transport protocol (UDP, TCP, SCTP ...). The collision counter 106 accumulates collisions intervened for flows having the same VLAN and the same transport protocol as those of the stream stored in the first table 302.
Dans une autre variante au mode de réalisation décrit, l'enregistrement de flot comprend également une valeur courante d'un compteur d'inactivité I. Lors de l'étape E22, c'est-à-dire lorsqu'il y a collision, la valeur courante du compteur d'inactivité est incrémentée de un. Lors de l'étape E40, c'est-à-dire qu'on a reçu un paquet relatif à un flot sous observation, on mémorise la valeur courante du compteur d'inactivité dans l'enregistrement de flot et on remet la valeur courante du compteur d'inactivité à zéro. Ainsi, lorsque le premier dispositif de collecte Cl reçoit l'enregistrement de flot, il obtient les valeurs successives du compteur d'inactivité, qui lui permettent de déterminer les temps inter- arrivées entre des ensembles de paquets ou "bursts" de paquets.In another variant of the embodiment described, the stream recording also comprises a current value of an inactivity counter I. During step E22, that is to say when there is a collision, the current value of the inactivity counter is incremented by one. During step E40, that is to say that a packet has been received relating to a stream under observation, the current value of the inactivity counter is stored in the stream record and the current value is reset. the inactivity counter to zero. Thus, when the first collection device C1 receives the stream record, it obtains the successive values of the inactivity counter, which enable it to determine the inter-arrival times between sets of packets or "bursts" of packets.
Dans encore une autre variante, l'enregistrement de flot comprend également un compteur M représentatif de la taille maximale d'un "burst" de paquets, appelé compteur d'activité par la suite. Lors de l'étape E40, c'est-à-dire qu'on a reçu un paquet relatif à un flot sous observation, la valeur courante du compteur d'activité est incrémentée de un. Lors de l'étape E22, c'est-à-dire lorsqu'il y a collision et que le compteur d'activité est non nul, on mémorise la valeur courante du compteur d'activité dans l'enregistrement de flot et on remet la valeur courante du compteur d'activité à zéro.In yet another variant, the stream record also comprises a counter M representative of the maximum size of a "burst" packet, called activity counter thereafter. During step E40, that is to say that we have received a packet relating to a stream under observation, the current value of the activity counter is incremented by one. During step E22, that is to say when there is a collision and the activity counter is non-zero, the current value of the activity counter is stored in the flow record and it is reset. the current value of the activity counter to zero.
Dans un mode de réalisation, dans lequel l'enregistrement de flot comprend le compteur M d'activité et le compteur I d'inactivité, on peut alors déterminer à l'étape E20 une condition d'expulsion de l'autre flot de la première table 302 en fonction de collisions antérieures de la façon suivante. Dans ce mode particulier de réalisation décrit ici, la condition d'expulsion dépend du compteur de collision 106 associé à l'enregistrement de flot trouvé, du nombre de paquets 105 utilisés pour construire cet enregistrement, de valeurs précédentes du compteur d'inactivité I et de valeurs précédentes du compteur d'activité M. On détermine le rapport suivant :
Figure imgf000017_0001
où C est le compteur de collision 106 et P est le nombre de paquets 105. II s'agit de comparer ce rapport R avec un seuil prédéterminé compris entre zéro et un. Si le rapport est supérieur ou égal au seuil prédéterminé, alors l'autre flot doit être expulsé de la première table 302 : la condition d'expulsion est satisfaite et le procédé passe à une étape E30. Si le rapport est inférieur au seuil prédéterminé, alors on doit continuer à construire l'enregistrement de flot de l'autre flot : la condition d'expulsion n'est pas satisfaite et le procédé passe à une étape E22.
In one embodiment, in which the flow recording comprises the activity counter M and the inactivity counter I, it is then possible to determine in step E20 an expulsion condition of the other flow of the first one. Table 302 based on previous collisions as follows. In this particular embodiment described here, the expulsion condition depends on the collision counter 106 associated with the found stream record, the number of packets 105 used to construct this record, previous values of the idle counter I, and previous values of the activity counter M. The following ratio is determined:
Figure imgf000017_0001
where C is the collision counter 106 and P is the number of packets 105. It is a question of comparing this ratio R with a predetermined threshold between zero and one. If the ratio is greater than or equal to the predetermined threshold, then the other stream must be expelled from the first table 302: the expulsion condition is satisfied and the process proceeds to a step E30. If the ratio is below the predetermined threshold, then the flow record of the other stream must be continued: the expulsion condition is not satisfied and the process proceeds to a step E22.
On introduit ainsi une pondération temporelle dans la condition d'expulsion. Dans le cas d'un flot inactif trop longtemps, le flot présent dans la première table 302 est expulsé. Dans un autre mode de réalisation plus simple, les informations de type DPI ne sont pas mémorisées ni exportées.We introduce a temporal weighting in the expulsion condition. In the case of an inactive flow too long, the flow present in the first table 302 is expelled. In another simpler embodiment, the DPI type information is not stored or exported.
Dans encore un autre mode de réalisation, les informations de type DPI sont traitées localement par l'entité de supervision.In yet another embodiment, the DPI type information is processed locally by the supervisory entity.
On va maintenant décrire l'entité 300 d'observation de flots en référence à la figure 4.Flow observation entity 300 will now be described with reference to FIG. 4.
L'entité 300 d'observation de flot comprend:The stream observation entity 300 comprises:
- la première table 302 décrite précédemment ;the first table 302 described above;
- la deuxième table 304 décrite précédemment ; un module 308 de réception d'un paquet appartenant à un flot donné : - un module 310 de détermination d'un indice d'accès à une première table en fonction d'un identifiant du flot donné ; un module 312 de recherche d'un enregistrement de flot dans la première table à l'aide de l'indice d'accès déterminé ; un module 314 de détermination d'une condition d'expulsion d'un autre flot de la première table en fonction de collisions antérieures ; un module 306 d'expulsion de données d'observation, en particulier un enregistrement de flot vers un dispositif de collecte lorsque la condition d'expulsion de l'autre flot est satisfaite, c'est-à-dire lorsqu'un flot est expulsé de la première table 302 ; un module 316 de mise à jour d'enregistrement de flots, agencé en outre pour initialiser un enregistrement relatif à un flot donné à partir du paquet reçu et d'informations mémorisées dans la deuxième table.the second table 304 described previously; a module 308 for receiving a packet belonging to a given stream: a module 310 for determining an index of access to a first table as a function of an identifier of the given stream; a module 312 for searching for a stream record in the first table using the determined access index; a module 314 for determining an expulsion condition of another stream of the first table based on previous collisions; an observation data expulsion module 306, in particular a flow recording to a collection device when the expulsion condition of the other flow is satisfied, i.e. when a flow is expelled of the first table 302; a stream recording update module 316, further arranged to initialize a record relating to a given stream from the received packet and information stored in the second table.
Le module 314 est en outre agencé pour déterminer la condition d'expulsion par comparaison du rapport d'un compteur de collision associé à un enregistrement et d'un nombre de paquets utilisés pour construire cet enregistrement avec un seuil prédéterminé.The module 314 is further arranged to determine the expulsion condition by comparing the ratio of a collision counter associated with a record and a number of packets used to construct that record with a predetermined threshold.
L'entité 300 d'observation comprend en outre un module 318 d'accès à la deuxième table 304. Il est agencé pour déterminer un flot à supprimer lorsque la deuxième table est pleine et pour mémoriser des informations relatives au paquet reçu lorsque la condition d'expulsion de l'autre flot n'est pas satisfaite. Dans une variante, il est également agencé pour transmettre les informations mémorisées supprimées de la deuxième table 304 au module 306 d'expulsion. Dans ce cas, le module 306 d'expulsion est en outre agencé pour transmettre ces informations expulsées à un autre dispositif de collecte.The observation entity 300 furthermore comprises a module 318 for accessing the second table 304. It is arranged to determine a stream to be deleted when the second table is full and to store information relating to the packet received when the condition expulsion from the other stream is not satisfied. In a variant, it is also arranged to transmit the stored information deleted from the second table 304 to the expulsion module 306. In this case, the expulsion module 306 is further arranged to transmit this expelled information to another collection device.
Dans un mode de réalisation particulier, un flot recevant un paquet étant mis en première position dans la deuxième table 304, le module 318 est agencé pour expulser un flot en dernière position.In a particular embodiment, a stream receiving a packet being placed in the first position in the second table 304, the module 318 is arranged to expel a stream in the last position.
Dans un autre mode de réalisation particulier, le module 306 d'expulsion est agencé pour transmettre d'autres informations relatives à un paquet de type DPI, ledit paquet appartenant à un ensemble de paquets consécutifs et ayant été utilisés pour construire un enregistrement de flot envoyé au dispositif de collecte.In another particular embodiment, the expulsion module 306 is arranged to transmit other information relating to a DPI type packet, said packet belonging to a set of consecutive packets and having been used to construct a sent stream record. to the collection device.
Dans un autre mode de réalisation particulier, un enregistrement de flot comprenant une valeur courante d'un compteur d'inactivité, si le paquet appartient à un flot pour lequel un enregistrement est trouvé, le module 316 est agencé pour remettre à zéro de la valeur courante du compteur d'inactivité et pour mémoriser la valeur précédente du compteur d'inactivité en association avec l'enregistrement de flot.In another particular embodiment, a stream record comprising a current value of an inactivity counter, if the packet belongs to a stream for which a record is found, the module 316 is arranged to reset the value current of the inactivity counter and to store the previous value of the inactivity counter in association with the flow record.
Il est également possible de prévoir dans l'entité d'observation 300 plusieurs niveaux de traitement, celle-ci comportant alors dans ce cas autant de première et de deuxième tables que de niveaux. L'entité 300 d'observation de flot peut aussi bien être prévue dans un équipement du réseau tel qu'un routeur, ou bien dans un équipement de duplication du trafic.It is also possible to provide in the observation entity 300 several processing levels, which then comprises in this case as many first and second tables as levels. The stream observation entity 300 may also be provided in a network equipment such as a router, or in a traffic duplication equipment.
Les modules 306 à 318 de l'entité d'observation de flots 300 sont agencés pour mettre en œuvre le procédé d'observation de flots précédemment décrit. Il s'agit de préférence de modules logiciels comprenant des instructions logicielles pour faire exécuter les étapes du procédé d'observation de flots précédemment décrit, mises en œuvre par une entité d'observation du réseau de communication. L'invention concerne donc aussi : - un programme pour entité d'observation de flots, comprenant des instructions de programme destinées à commander l'exécution des étapes du procédé d'observation de flots précédemment décrit qui sont exécutées par ladite entité, lorsque ledit programme est exécuté par un processeur de celle-ci ; - un support d'enregistrement lisible par une entité d'observation de flots d'un réseau de communication sur lequel est enregistré le programme pour entité d'observation de flots.The modules 306 to 318 of the stream observation entity 300 are arranged to implement the previously described stream observation method. These are preferably software modules comprising software instructions for executing the steps of the previously described stream observation method implemented by an observation entity of the communication network. The invention therefore also relates to: a program for a stream observation entity, comprising program instructions intended to control the execution of the steps of the previously described stream observation method which are executed by said entity, when said program is executed by a processor thereof; a recording medium readable by a stream observation entity of a communication network on which the stream observation entity program is recorded.
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écommunication.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 signal, optical or radio, or a telecommunications network.
L'invention concerne également un système d'observation de flots dans un réseau de communication par paquets, comprenant au moins une entité d'observation de flots telle que décrite précédemment et au moins un dispositif de collecte d'enregistrements de flot transmis par l'entité d'observation de flots. 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 à l'observation de flots sur des réseaux de type Ethernet, ATM, sans fils, ... The invention also relates to a system for observing flows in a packet communication network, comprising at least one stream observation entity as described above and at least one stream recording collection device transmitted by the stream observing entity. The particular embodiment has been described more particularly in the context of an IP type network. The invention is also applicable to the observation of flows on networks of Ethernet, ATM, wireless, etc.

Claims

REVENDICATIONS
1. Procédé d'observation de flots transmis à travers un réseau ( 1 ) de communication par paquets, ledit procédé comportant sur réception d'un paquet appartenant à un flot donné : - une étape (E4) de détermination d'un indice d'accès à une première table (302) en fonction d'un identifiant du flot donné, la première table comportant des enregistrements de flot ; une étape (E6) de recherche d'un enregistrement dans la première table à l'aide de l'indice d'accès déterminé ; - si la recherche est positive mais l'enregistrement trouvé est relatif à un autre flot, une collision étant détectée,1. A method for observing flows transmitted through a packet communication network (1), said method comprising, on reception of a packet belonging to a given stream: a step (E4) for determining an index of accessing a first table (302) according to an identifier of the given stream, the first table including stream records; a step (E6) of searching for a record in the first table using the determined access index; if the search is positive but the record found is relative to another stream, a collision being detected,
-une étape (E20) de détermination d'une condition d'expulsion de l'autre flot de la première table en fonction de collisions antérieures ;a step (E20) of determining an expulsion condition of the other flow of the first table as a function of previous collisions;
-si la condition d'expulsion n'est pas satisfaite, une étape (E24) de mémorisation d'informations relatives au paquet dans une deuxième tableif the expulsion condition is not satisfied, a step (E24) for storing information relating to the packet in a second table
(304) ;(304);
-si la condition d'expulsion est satisfaite, une étape (E30) d'expulsion de l'enregistrement relatif audit autre flot vers un dispositif de collecte (Cl) et une étape (E36) d'initialisation d'un enregistrement relatif audit flot donné à partir du paquet reçu et d'informations mémorisées dans la deuxième tableif the expulsion condition is satisfied, a step (E30) for expelling the record relating to said other stream to a collection device (C1) and a step (E36) for initializing a record relating to said stream given from the received packet and information stored in the second table
(304).(304).
2. Procédé selon la revendication 1, dans lequel on détermine la condition d'expulsion au moins par comparaison du rapport entre un compteur de collision associé audit enregistrement et un nombre de paquets utilisés pour construire ledit enregistrement avec un seuil prédéterminé. The method of claim 1, wherein the expulsion condition is determined at least by comparing the ratio between a collision counter associated with said record and a number of packets used to construct said record with a predetermined threshold.
3. Procédé selon la revendication 2, comprenant lorsque la deuxième table est pleine, une étape (E28) de détermination d'un flot à supprimer de la deuxième table et une étape d'expulsion des informations mémorisées vers un autre dispositif.3. Method according to claim 2, comprising when the second table is full, a step (E28) for determining a stream to be removed from the second table and a step of expelling the stored information to another device.
4. Procédé selon la revendication 3, dans lequel, un flot recevant un paquet est mis en première position dans la deuxième table et on expulse un flot en dernière position.4. The method of claim 3, wherein a stream receiving a packet is placed in first position in the second table and expelled a stream in the last position.
5. Procédé selon la revendication 1, comprenant au moins une étape (E14, E38, E44) d'envoi d'autres informations relatives à un paquet vers un autre dispositif de collecte (C2), ledit paquet appartenant à un ensemble de paquets consécutifs et ayant été utilisés pour construire un enregistrement de flot envoyé au dispositif de collecte.The method according to claim 1, comprising at least one step (E14, E38, E44) of sending other information relating to a packet to another collection device (C2), said packet belonging to a set of consecutive packets. and having been used to construct a flow record sent to the collection device.
6. Procédé selon la revendication 1, comprenant en outre, l'enregistrement de flot comprenant une valeur courante d'un compteur d'inactivité, et si la recherche est positive et l'enregistrement trouvé est relatif au flot donné, une étape de remise à zéro de la valeur courante du compteur d'inactivité, la valeur précédente du compteur d'inactivité étant mémorisée en association avec l'enregistrement de flot.The method of claim 1, further comprising, the stream record including a current value of an idle counter, and if the search is positive and the record found is relative to the given stream, a step of delivering to zero of the current value of the inactivity counter, the previous value of the inactivity counter being stored in association with the flow record.
7. Procédé selon la revendication 6, dans lequel on détermine la condition d'expulsion en fonction d'un compteur de collision associé audit enregistrement, d'un nombre de paquets utilisés pour construire ledit enregistrement, de valeurs précédentes du compteur d'inactivité et de valeurs précédentes d'un compteur d'activité.The method of claim 6, wherein the expulsion condition is determined based on a collision counter associated with said record, a number of packets used to construct said record, previous values of the inactivity counter, and previous values of an activity counter.
8. Entité (300) d'observation de flots transmis à travers un réseau de communication (1) par paquets, comportant : des moyens (308) de réception d'un paquet appartenant à un flot donné : - des moyens (310) de détermination d'un indice d'accès à une première table (302) en fonction d'un identifiant du flot donné, la première table comportant des enregistrements de flot ; des moyens (312) de recherche d'un enregistrement dans la première table à l'aide de l'indice d'accès déterminé ; des moyens (314) de détermination d'une condition d'expulsion d'un autre flot de la première table en fonction de collisions antérieures ; - des moyens (304) de mémorisation d'informations relatives au paquet si la condition d'expulsion de l'autre flot n'est pas satisfaite ; des moyens (306) d'expulsion d'un enregistrement relatif à l'autre flot vers un dispositif de collecte si la condition d'expulsion de l'autre flot est satisfaite et, des moyens (316) d'initialisation d'un enregistrement relatif audit flot donné à partir du paquet reçu et d'informations mémorisées dans les moyens (304) de mémorisation.An entity (300) for observing flows transmitted through a packet communication network (1), comprising: means (308) for receiving a packet belonging to a given stream: means (310) for determining an index of access to a first table (302) based on an identifier of the given stream, the first table including stream records; means (312) for searching a record in the first table using the determined access index; means (314) for determining an expulsion condition from another stream of the first table based on past collisions; means (304) for storing information relating to the packet if the expulsion condition of the other stream is not satisfied; means (306) for expelling a record relating to the other stream to a collection device if the expulsion condition of the other stream is satisfied and means (316) for initializing a record relative to said given stream from the received packet and information stored in the memory means (304).
9. Dispositif (R1-R4) d'acheminement de paquets dans le réseau de communication comportant une entité (300) d'observation de flots selon la revendication 8.Packet routing device (R1-R4) in the communication network comprising a stream observation entity (300) according to claim 8.
10. Système d'observation de flots dans un réseau de communication par paquets, comprenant au moins une entité (300) d'observation de flots selon la revendication 8 et au moins un dispositif (Cl) de collecte d'enregistrements de flot transmis par l'entité d'observation de flots.A system for observing flows in a packet communication network, comprising at least one stream observation entity (300) according to claim 8 and at least one stream data collection device (C1) transmitted by the stream observing entity.
11. Programme d'ordinateur comportant des instructions pour la mise en œuvre du procédé d'observation de flots selon la revendication 1 par une entité d'observation de flots, lorsque ce programme est exécuté par un processeur. 11. Computer program comprising instructions for implementing the stream observation method according to claim 1 by a stream observing entity, when this program is executed by a processor.
PCT/FR2009/052049 2008-11-07 2009-10-26 Method for monitoring flows transmitted through a packet communication network WO2010052406A1 (en)

Applications Claiming Priority (2)

Application Number Priority Date Filing Date Title
FR0857591 2008-11-07
FR0857591 2008-11-07

Publications (1)

Publication Number Publication Date
WO2010052406A1 true WO2010052406A1 (en) 2010-05-14

Family

ID=40602671

Family Applications (1)

Application Number Title Priority Date Filing Date
PCT/FR2009/052049 WO2010052406A1 (en) 2008-11-07 2009-10-26 Method for monitoring flows transmitted through a packet communication network

Country Status (1)

Country Link
WO (1) WO2010052406A1 (en)

Non-Patent Citations (5)

* Cited by examiner, † Cited by third party
Title
MARTIN ZÁDNIK, PETR SPRINGL, PAVEL CELEDA: "Flexible FlowMon", CESNET TECHNICAL REPORT NUMBER 36/2007, 22 October 2007 (2007-10-22), pages 1 - 24, XP002527967, Retrieved from the Internet <URL:http://www.cesnet.cz/doc/techzpravy/2007/flexible-flowmon/flexible-flowmon.pdf> [retrieved on 20090513] *
MOLINA M ET AL: "Design principles and algorithms for effective high-speed IP flow monitoring", COMPUTER COMMUNICATIONS, vol. 29, no. 10, 19 June 2006 (2006-06-19), ELSEVIER SCIENCE PUBLISHERS BV, AMSTERDAM, NL, pages 1653 - 1664, XP025089891, ISSN: 0140-3664, [retrieved on 20060619] *
YAN HU,DAH-MING CIU,FELLOW,JOHN C.S.LUI: "Entropy Based Adaptive Flow Aggregation", 9 June 2006 (2006-06-09), XP002527968, Retrieved from the Internet <URL:http://www.cse.cuhk.edu.hk/~cslui/PUBLICATION/ton_entropy.pdf> [retrieved on 20090514] *
ZADNFK M ET AL: "Network Probe for Flexible Flow Monitoring", 11TH IEEE WORKSHOP ON DESIGN AND DIAGNOSTICS OF ELECTRONIC CIRCUITS AND SYSTEMS, DDECS 2008, 16 April 2008 (2008-04-16), IEEE, PISCATAWAY, NJ, USA, pages 1 - 6, XP031269842, ISBN: 978-1-4244-2276-0 *
ZHIRUO CAO ET AL: "Flow identification for supporting per-flow queueing", 9TH INTERNATIONAL CONFERENCE ON COMPUTER COMMUNICATIONS AND NETWORKS, 2000, 16 October 2000 (2000-10-16) - 18 October 2000 (2000-10-18), LAS VEGAS, NV, USA, pages 88 - 93, XP010524492, ISBN: 978-0-7803-6494-3 *

Similar Documents

Publication Publication Date Title
EP2940960B1 (en) Method and device for scheduling packets to be routed in a network with implicit determination of the packets to be given priority treatment
US7644150B1 (en) System and method for network traffic management
US8111629B2 (en) Media session identification method for IP networks
EP1743454A1 (en) Performance measurement in a packet transmission network
WO2005122473A1 (en) Performance measurement in a packet transmission network
WO2008056041A1 (en) Method and device for providing a charge balance based on the flow
EP2548337B1 (en) Method of identifying a protocol giving rise to a data flow
FR2860369A1 (en) Communications network digital stream packet access control having detector comparing interface digital packet header/following identification generating network management system destination
WO2008050059A2 (en) Method for monitoring a plurality of equipments in a communication network
WO2007099245A2 (en) Method of collecting descriptions of streams pertaining to streams relating to at least one client network attached to an interconnection network
EP2856719B1 (en) Technique for communication in an information-centred communication network
EP2689560A1 (en) Method and device for extracting data from a data stream travelling around an ip network
WO2010052406A1 (en) Method for monitoring flows transmitted through a packet communication network
WO2018234661A1 (en) Transmission and reception of a data stream
EP3963842A1 (en) Methods and devices for measuring reputation in a communication network
EP2815547B1 (en) Technique for processing a data stream between a server and a client entity
EP1743453A1 (en) Performance measuring in a packet transmission network
EP3818676A1 (en) Identification of a protocol of a data stream
EP3627795A1 (en) Method for detecting and filtering illegal streams in a satellite communication network
Keralapura et al. Self-learning peer-to-peer traffic classifier
FR3003115A1 (en) METHOD FOR ALLOCATING RESOURCES FOR IMPLEMENTING VIRTUAL NETWORKS IN A TELECOMMUNICATION NETWORK
WO2020193902A1 (en) Method for securing the transmission of at least one data packet along a data path of a telecommunications network, corresponding computer program product and device
CA2577173A1 (en) Method for modifying a network equipment behaviour
FR3003109A1 (en) METHOD OF CONGESTION CONTROL FOR TELECOMMUNICATIONS NETWORKS
FR3131670A1 (en) CONGESTION ASSESSMENT PROTOCOL

Legal Events

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

Ref document number: 09760539

Country of ref document: EP

Kind code of ref document: A1

NENP Non-entry into the national phase

Ref country code: DE

122 Ep: pct application non-entry in european phase

Ref document number: 09760539

Country of ref document: EP

Kind code of ref document: A1