WO2009068822A2 - Procede et dispositif de tri de paquets - Google Patents
Procede et dispositif de tri de paquets Download PDFInfo
- Publication number
- WO2009068822A2 WO2009068822A2 PCT/FR2008/052046 FR2008052046W WO2009068822A2 WO 2009068822 A2 WO2009068822 A2 WO 2009068822A2 FR 2008052046 W FR2008052046 W FR 2008052046W WO 2009068822 A2 WO2009068822 A2 WO 2009068822A2
- Authority
- WO
- WIPO (PCT)
- Prior art keywords
- packet
- value
- data
- sorting
- graph
- Prior art date
- Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
- Ceased
Links
Classifications
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L63/00—Network architectures or network communication protocols for network security
- H04L63/02—Network architectures or network communication protocols for network security for separating internal from external traffic, e.g. firewalls
- H04L63/0227—Filtering policies
- H04L63/0263—Rule management
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L69/00—Network arrangements, protocols or services independent of the application payload and not provided for in the other groups of this subclass
- H04L69/22—Parsing or analysis of headers
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L63/00—Network architectures or network communication protocols for network security
- H04L63/02—Network architectures or network communication protocols for network security for separating internal from external traffic, e.g. firewalls
- H04L63/0227—Filtering policies
- H04L63/0236—Filtering by address, protocol, port number or service, e.g. IP-address or URL
Definitions
- the invention relates to the field of telecommunications networks and in particular to a method and a device for sorting packets.
- sorting is used in this document in its broadest sense: the sorting of a set of packets corresponds to the fact of distributing a set of packets into several groups or categories. Sorting does not involve scheduling.
- Certain telecommunication network equipment incorporating routers or firewall type modules, implement network access control functions by means of ordered lists of rules, called “access control list” (ACL) or checklist. access according to the English terminology.
- ACL access control list
- Each of the rules of such a list includes a description of the frames - called pattern -, in terms of possible values for the header fields of that frame, and an associated processing, for example "pass” or “throw”.
- the values contained in the header fields of this frame are compared with the values defined by the patterns defined in the rules of the list in order to determine what is the treatment to be performed for this frame.
- the number of rules of an ACL can be very high, of the order of several hundreds or even thousands of rules. It is therefore extremely expensive in computing time to compare the header fields of a frame with each of the rules of an ACL.
- bit-by-bit processing of the frames assumes the use of operations to mask the bytes of the frames to be processed, in order to access the different bits of data to be analyzed.
- the use of a binary decision tree assumes the implementation of a bit test function for each node of the tree, which complicates the writing of a software implementing the automaton corresponding.
- the construction of such a tree is tedious and very memory consuming as soon as the number of rules in the list increases.
- this solution requires specific hardware to try to minimize performance issues.
- One of the aims of the invention is to remedy the shortcomings and drawbacks of the state of the art and / or to make improvements thereto.
- the object of the invention is, according to a first aspect, a method of sorting data packets according to an ordered list of at least one sorting rule, comprising a determination step for each data packet. to deal with an associated package category,
- a said sorting rule defining, on the one hand, a criterion relating to at least one data field present in the packets to be sorted and, on the other hand, a category of packet intended to be associated with a packet whose said at least one field of data contains a value satisfying the criterion
- the category associated with a packet is identified by a sort value determined in a predetermined number NB of iterations from an initial sorting value and as a function of NB data blocks of the packet to be processed,
- all of said NB data blocks including the data field or fields used for defining the rules of said list, the size of said data blocks being chosen from a set of several block sizes,
- an iteration comprising a step of determining a current sort value from the sorting value obtained at the previous iteration and the value contained in the ith data block, the order in which said data blocks are considered to be predetermined.
- the processing time of a packet is reduced to the processing time of these NB data blocks.
- the time required to determine the action associated with a packet is independent of the content of this packet.
- the size of the blocks used to process a packet can be selected from different sizes, including block sizes greater than or equal to 2 bits. This means that the number of iterations needed to process a packet can be reduced to one packet iteration by choosing a sufficiently large block size. In addition, when the block size chosen is 8, 16 or 24 bits, it becomes unnecessary to apply bit masking operations to proceed with the processing of a packet. The processing time of a packet is reduced compared to known prior solutions.
- the invention thus teaches that it is possible to implement packet sorting by processing these block packets in block, with any block size and in a predetermined number of iterations, which is a function of the block size chosen. . She teaches a method of processing sorting rules to implement such a technique of sorting packets.
- a current sort value is determined by reading, in a table identified by the sorting value obtained at the iteration previous, of the sort value associated with the value of the i th data block of the packet concerned.
- the processing time of a data packet is therefore equal to NB times the reading time of a value in a table. It is reduced to a minimum.
- the method according to the invention comprises a step of generating from said list of an acyclic directed graph at NB depth levels, said graph being representative of a state machine, a said sorting value identifying a state of said automaton, said initial sorting value identifying the initial state of said automaton, the transition table of a state of level p-1 of the automaton, where p is an integer such that l ⁇ p ⁇ NB, being a function between the set of possible values of the f th data block and the set of p-level state identifiers.
- the ordered list of rules used to sort the packets is transformed into a unit representation, in the form of a graph at NB depth levels, regardless of the number of rules in the list.
- This graph represents a state machine which is the one implemented for the automated processing of the packets to be filtered. This results in a high efficiency of packet processing, since even when the number of rules in the list is high, the depth of the graph is limited to NB levels.
- the method according to the invention further comprises a step of constructing a list degenerate graph at NB depth levels from each of the rules of said list, said acyclic oriented graph being obtained by meeting the Degenerate graphs constructed, a degenerate graph in list representing a state machine and NB transitions.
- the method according to the invention comprises in which said meeting is an iterative process, each iteration comprising a step of obtaining a current graph by meeting a degenerate graph in list with the graph obtained at a time. previous iteration and a step of minimizing said current graph.
- the method according to the invention comprises comprising a step of translating the criterion of each sorting rule of said list into a list of NB sets of data block values, such that a packet of data satisfies this criterion if and only if for each integer p such that l ⁇ p ⁇ NB, the value contained in the p th block of data of this packet is included in the p th set of values, the p th set of values comprising the value or values which a transition between the condition th and p th state of the automaton represented by the graph degenerate list obtained from the rule concerned.
- Each of the rules of the ordered list of rules is thus simply translated into a degenerate graph into a list, by identifying the different sets of values respectively associated with the blocks of data to be processed. This results in a possible automation of the process of generating the degenerate graphs in associated list.
- the invention also relates to a device for sorting data packets according to an ordered list of at least one sorting rule, comprising determination means for each data packet to be processed of an associated packet category.
- a said sorting rule defining, on the one hand, a criterion relating to at least one data field present in the packets to be sorted and, on the other hand, a category of packet intended to be associated with a packet whose said at least one field of data contains a value satisfying the criterion
- said means being designed to determine a sort value identifying the category associated with a packet in a predetermined number NB of iterations from an initial sorting value and as a function of NB data blocks of the packet to be processed, all of said NB data blocks including the data field or fields used for defining the rules of said list, the size of said data blocks being chosen from a set of several block sizes,
- an iteration comprising a step of determining a current sort value from the sorting value obtained at the previous iteration and the value contained in the ith data block, the order in which said data blocks are considered to be predetermined.
- said means are designed to determine, during the ith iteration, where i is an integer between 1 and NB, a current sort value is determined by reading, in a table identified by the sorting value obtained. at the previous iteration, of the value of sorting) associated with the value of the ith data block of the packet concerned.
- the various steps of the method according to the invention are implemented by software or computer program, this software comprising software instructions intended to be executed by a data processor of a packet sorting device. and designed to control the execution of the different steps of this process.
- the invention is also directed to a program that can be executed by a computer or a data processor, which program includes instructions for controlling the execution of the steps of a method as mentioned above.
- This program can use any programming language, and be in the form of source code, object code, or intermediate code between source code and object code, such as in a partially compiled form, or in any other form desirable shape.
- a hardware or firmware implementation is also possible.
- the invention also relates to a data carrier readable by a computer or data processor, and comprising instructions of a program as mentioned above.
- the information carrier may be any entity or device capable of storing the program.
- the medium may comprise a means of storage, such as a ROM, for example a CD ROM or a microelectronic circuit ROM, or a magnetic recording means, for example a floppy disk or a hard disk.
- the information medium may be a transmissible medium such as an electrical or optical signal, which may be conveyed via an electrical or optical cable, by radio or by other means.
- the program according to the invention can be downloaded in particular on an Internet type network.
- the information carrier may be an integrated circuit in which the program is incorporated, the circuit being adapted to execute or to be used in the execution of the method in question.
- FIG. 1 schematically represents a data packet to be filtered according to the method according to the invention
- FIG. 2 is a flowchart of an embodiment of a first phase of the method according to the invention.
- FIG. 3 is a flow chart of an embodiment of a second phase of the method according to the invention.
- FIG. 4 represents a list degenerate graph obtained from a sorting rule
- FIGS. 5A to 5F represent different graphs obtained from an ordered list of rules at different stages of processing during the implementation of the method according to the invention
- FIG. 6 is a curve illustrating the performances of the method according to the invention.
- FIG. 7 represents a graph obtained from an ordered list of rules.
- the invention is described in more detail in the case of its application to the sorting of data packets in the form of IP frames.
- the invention is however applicable to any other format of data packets and whatever the communication protocol used for the transmission of these packets.
- the packet 100 of data comprises, in its header, various data fields in FIG. according to the values of which the sorting of the frames is carried out according to an ordered list of rules, forming access control list.
- These data fields are as follows:
- a first field 100A comprising a protocol identifier making it possible to identify a protocol from a list of possible protocols, this list comprising, for example, Transmission Control Protocol (TCP), User Datagram Protocol (UDP), Internet Protocol (IP); this field is coded on a byte identified by the reference 101;
- TCP Transmission Control Protocol
- UDP User Datagram Protocol
- IP Internet Protocol
- a second field 100B comprising a source address, identifying a device transmitting the packet; this field is coded on 4 bytes identified respectively by references 102, 103, 104 and 105;
- a third field 100C comprising a destination address, identifying an equipment destination of the packet; this field is coded on 4 bytes identified respectively by references 106, 107, 108 and 109; a fourth field 100D comprising a source communication port identifier, relative to the equipment transmitting the packet; this field is coded on 2 bytes identified respectively by the references 1 10 and 1 1 1;
- a fifth field 100E comprising a destination communication port identifier, relative to the destination equipment of the packet; this field is coded on 2 bytes identified respectively by the references 1 12 and 1 13.
- the size in number of bits of these different fields is variable: usually the first data field is coded on 8 bits (ie one byte), the second and third fields are each coded on 32 bits (ie 4 bytes), while the fourth and fifth fields are coded on 16 bits (ie 2 bytes).
- the size of these data fields does not matter, the method according to the invention processing the header of a block-by-block packet, for example byte-by-byte, using a block size of data possibly different, and therefore independent, from the size of the data fields used to interpret the values contained in these blocks. Indeed, the method according to the invention implements an automated processing of the values taken by these different fields, this treatment does not require interpretation of these values.
- the order in which these data fields are stored in a packet may be different, and therefore independent, of the order in which these data fields are processed by the method according to the invention.
- the different data blocks of the header of a packet will be processed in order in which they are recorded in this packet, so as to make linear, and therefore fast, the reading of these data blocks for processing.
- ACL Access Control List
- Each of the rules of such a list defines a criterion for at least one of the header fields of a packet and an associated action, which action is to be applied to the packet - or to the data stream to which this packet belongs - whose or the values of the data field or fields concerned satisfy this criterion.
- a rule defines a category of packet to assign to a packet or stream that satisfies the criterion defined by that rule.
- Permit tcp anygt 1023 10.2.3.4 eq 80 log means that the "permit-log" category (meaning that the flow is allowed to pass through the equipment implementing packet sorting) is assigned to any data flow using the protocol "tcp", from any source address ('any'), from a source port that is strictly greater than 1023 and sent to the address
- the packet category to which a packet is assigned also depends on the semantics used as well as the order in which the rules of a list of rules are scanned and tested for that packet.
- the order of the list of rules defines whether this list is traversed starting with the first rule (order called “top-down" in the English terminology) or by the last rule (called order
- rule list is traversed rule by rule until the processed packet checks the criterion defined by the current rule; we say in this case that we apply a so-called "first match” semantics according to the English terminology, in that it is the first rule for which there is verification of the criterion which defines the category to which this packet is affected;
- the process according to the invention comprises two phases.
- the first phase is the generation, from an ordered list of rules, of data representative of an acyclic oriented graph (DAG), modeling a finite state automaton (DFA).
- DAG acyclic oriented graph
- DFA finite state automaton
- a graph is composed of nodes, represented here by rectangles, and arcs between these nodes, represented here by arrows.
- Such a graph is used to schematically represent the behavior of a finite state machine, each state of the automaton being represented by a node of the graph, a transition between two states being represented by an arc between the corresponding nodes.
- NB number of blocks of data of size SB to be processed x value contained in the ith block of data of a packet where i is an integer between 1 and NB V, set of possible values of the i th data block of a packet (O .. 2 SB -1)
- Z state machine G oriented graph acyclic modeling the Z controller
- the set of values indicated next to each arrow connecting two rectangles respectively representing a state indicates for which data block values a transition between these two states is possible. For example, between the state E (0, 0) and the state E (1, 1) a transition is possible for a block value of '6'. Between the state E (0, 0) and the state E (1, 2) a transition is possible for all the block values included in the set: [0 ... 5] u [7 ... 16 ] u [18 ... 255].
- the choice, among the possible transitions, of the current transition to be used to change from a state of depth (p-1) to the next state of depth p is a function of invention, the value contained in the p- th data block of the processed data packet.
- a deterministic automaton is constructed, that is to say an automaton for which the possible transitions from a state are unambiguously defined, that is to say that only one transition is possible for a data block value.
- the constructed graph is an oriented graph (ie the transitions are made only in one direction, so one can not return to the initial state) and acyclic (ie the transitions between states do not allow to browse the graph in a loop, but only in the direction of the final states of the graph).
- the graph used in the invention also has other properties: on the one hand, it comprises a single initial state; on the other hand the number of transitions to be made to reach one of the final states from this unique initial state is constant, regardless of the transitions made to traverse the graph.
- the depth in the graph of a state is equal to the number of transitions required to reach that state from the initial state.
- the initial state is at depth O, and the depth is increasing by one at each new transition.
- Such a DAG graph is a minimization of a tree.
- the invention shows that it is possible to construct such a graph to represent all the rules of an ordered list of rules, while taking into account the semantics used when applying the rules to a data packet.
- the graph is traversed from the initial state, the transition used to pass from a state of level p- 1 to level p (where l ⁇ p ⁇ NB) being determined by the value contained in the p th data block of a packet.
- This mode of the graph leads to one of the final states of the graph, the final state with which a category of packet is associated.
- This category of packet serves for example to identify an action to be performed on the packet concerned: a memory zone in which to store the packet or the data stream to which the packet belongs, a particular treatment to be performed on the packet or the data stream to which belongs the package, etc. It is thus possible to treat in a differentiated manner the different packets or data streams received, on the basis of the identifier of the final state which resulted in the flow of the graph for the packet concerned.
- an identifier E (p, q) is assigned to each of the states of the graph, where p is the level of depth at which this state is located in the graph and q an index to distinguish the different states located at a level of given depth.
- the identifier of a state is a datum used in the invention as a sort value, since such an identifier is used to determine a category of packet to which the processed packet must be assigned .
- the transition from one state to another, from a given state of depth p is a function of the value of the block x p of the packet to be processed.
- the value contained in the block x p of the packet to be processed determines what is the next state, of level p + 1, in the path of the graph.
- association function representing the transition table T E (P q) of a state E (p, q).
- the set V p of the possible values for this block is the set of values 0 to 255.
- an identifier whose value is indicative of a nonexistent transition for example a null value identifier is used in the transition table T E ( P q ).
- transition table The function of a transition table being to allow the sorting of the packets to be processed, such a table is also named here sorting table.
- the first phase of the method according to the invention corresponds to the generation, from an ordered list LR of NR rules, of an acyclic oriented graph, representative of a PLC allowing the sorting of packets.
- This phase corresponds to the steps S200 to S260 represented on the flowchart of FIG. 2.
- the block size SB to be used is selected from a set of possible values. It is preferably chosen greater than or equal to 2 bits and less than or equal to a maximum useful size equal to the sum of the sizes of the data fields used in the definition of the rules of the list LR. It is possible to choose a larger size, but this will be detrimental to the performance of the algorithm and will increase the total memory size necessary for the storage of the data used to represent the graph G.
- the curve shown in FIG. 6 illustrates the influence of the choice of block size on the time and memory complexity of the graph construction algorithm.
- the vertical axis represents the calculation time and the horizontal axis the amount of memory required.
- the larger the block size the higher the amount of memory needed to build the graph, but the lower the build time of this graph.
- block size SB is chosen to be equal to 8 bits, this value making it possible to obtain a good compromise between the quantity of memory used and the necessary calculation time.
- 8-bit block size makes it possible to process the data byte by byte, which is adapted to the design of a computer data processor. Indeed, such a processor is designed to perform very quickly operations on bytes, or on data blocks of size multiple of 8.
- a block size of less than 8 bits or not a multiple of 8 implies the use of bit masking functions when processing the data fields of the packet, which increases the time required for the packet. packet processing.
- the header of a packet is processed byte byte and the number NB of blocks of data to be processed for each packet is therefore equal to 13.
- step S200 The order in which the data blocks are processed is also predetermined and chosen in step S200. It is assumed here that the different data blocks of the header of a packet will be processed in the order in which they are recorded in this packet, so as to make linear, and hence fast, the reading of these data blocks by view of their treatment.
- the set of NB data blocks to be processed comprises at least the set of data fields used for the definition of the rules.
- this set of blocks corresponds exactly to all the fields considered.
- the set of fields considered is not a multiple of this size of chosen block, it is necessary to choose a sufficient number of blocks for all the considered fields to be included in this set of blocks.
- the total number of bits of the set of blocks is greater than the total number of bits of the fields considered, the bits of the data blocks corresponding to no field can then take any values.
- the method is applicable also in this case, since it suffices to define adequately (see step S210) the sets of values associated with each block.
- the block denoted Xi, of reference 101 corresponds to the field 100A (protocol);
- references 1 10 to 1 1 1 correspond to the field 100D (source port);
- references 1 12 to 13 correspond to the field 100E (destination port).
- each rule R k of the list LR is translated into a list of NB sets of values encoded on a number of bits equal to at the block size chosen in step S200.
- Each set of values is associated with a block of data to be processed and contains possible values for that block.
- the data sets are such that a data packet satisfies the sorting criterion defined by the rule R k if and only if for each integer p such that l ⁇ p ⁇ NB the value contained in the p th data block of this packet is included in the same set of values.
- the sorting rule R k expressed by the following expression:
- 10.2.3.4 eq 80 log (R k ) means that the "permit-log" category (meaning that the stream is allowed to pass through the equipment implementing packet filtering) is assigned to any stream using the "tcp" protocol, from any source address ('any'), from a source port that is strictly greater than 1023 and sent to the address 10.2.3.4 on the destination port 80.
- Data block Xi [6]
- Data block X 2 [0 ... 255]
- Data block X 6 [10]
- Data block X 7 [2]
- Data block X 11 [0 ... 255]
- Data block X 12 [0]
- the associated set is therefore the set of integer values from 0 to 255;
- step S220 a list degenerate graph is constructed for each rule R k , from the list LR, from the sequence of NB sets of values obtained in step S210 for this rule.
- This degenerate graph in list represents the rule R k .
- This graph includes an initial state denoted E k (0,0) and NB other states denoted E k (p, 0) successively connected to each other, where p is an integer between 1 and NB identifying the depth of the state in the graph, depth whose value is determined from the initial state in increments of 1 at each transition to the next state.
- This graph represents an automaton associated with the rule R k .
- the degenerate list graph obtained from the rule R k given as an example above, is shown schematically in FIG. 4.
- transition from a state E k (p, 0) to the following state E k (p + 1, 0) is defined by a transition table T E (p 0) associated with the state E k (p, 0), where for
- This transition table T Ek (p 0) defines an association function between the set of possible values of the data block x p and the set of identifiers of the states of level p + 1 of the degenerate graph in list. the case of this degenerate graph in list, there exists a transition to the state E k (p + 1, 0) from the state E k (p, 0) only for the data block values included in the set of data block values associated with the block x p , this set having been determined in step S210.
- the transition table T E (p 0) associated with the state E k (p, 0) therefore contains, for the data block values included in the set of data block values associated with the block X p , the identifier of the state E k (p + 1, 0) and for the other data block values, an identifier whose value is indicative of a nonexistent transition, for example an identifier of zero value.
- the different degenerate graphs in the list are combined into a single graph G.
- a simple union of the degenerate graphs of connecting all these graphs to the same initial state results in the construction of a graph representing an automaton which is non-deterministic in terms of meaning that several transitions are possible from the initial state.
- the method according to the invention provides for combining these degenerate graphs so as to obtain a final graph representative of a deterministic automaton.
- step S235 the first two degenerate graphs representative of the first two rules of the rule list to be processed are combined.
- Step S250 is executed following step S235.
- step S235 the degenerate list graph obtained from the next rule in the rule list is combined with the graph obtained in step S260 previous.
- step S250 the graph obtained in the previous step S235 is minimized.
- the process of minimizing a graph that is applied in the invention consists in merging two equivalent states into a single state, whenever two equivalent states are detected in the graph.
- the process is applied successively to each level of depth, and independently level by level (states belonging to different levels of depth can not be equivalent).
- the highest level of depth is first treated, i.e. by the final states because this significantly reduces the processing time required for minimization.
- Two final states are equivalent if the actions associated with them are identical.
- Two non-final states are equivalent if they have the same transition table, that is, they point to the same states for the same block values.
- the merging of two states during the minimization process returns, in known manner, to delete one of the two states and to keep the other, then to point the states of next higher levels, which initially pointed to the deleted state, to the preserved state.
- Such a merge operation does not require processing of the transition tables since they are identical.
- step S260 is executed in which it is determined whether all the degenerate graphs in the list have been processed. If so, the first phase of the method according to the invention ends. Otherwise, step S235 is executed for the next list generated graph corresponding to the next rule in the rule list LR.
- the graph obtained is that of figure 7.
- most of the states have a simple transition table, since for all the values of the set [0 ... 255] a single state is possible: the one to which point the arrow starting from the rectangle representing this state.
- transition tables For states for which several states are possible depending on the value of the block, the transition tables are as follows:
- the data packet sorting process corresponds to the second phase of the method according to the invention. It is described with reference to FIG. 3. This phase consists in implementing an automaton Z whose graph G, obtained following the last execution of step S260, forms a representation. This process is implemented by a device, in the form of software or hardware, which simulates the transitions of the graph for each of the states of this graph G.
- step S300 the initial current state of the device is the state identified by E (0, 0) constituted by the identifier of the initial state of the automaton Z, irrespective of the data packet. sorting.
- the sorting process is then an iterative process, each of the subsequent steps S310 of the sorting process of simulating a transition from the current state to a new current state.
- each of the steps S310 consists in determining the identifier of the new current state from the identifier of the current state.
- the sorting process comprises exactly NB iterations, that is to say NB steps 310.
- the time required to obtain the sort value (and therefore the category) to be assigned to this packet is constant, equal to the time required to perform NB read operations in a table.
- the packet processing time is therefore very low and constant, in this case minimized because it reduces the reading of NB values, and therefore negligible compared to the processing time required to process a packet rule by rule.
- the different values of the data blocks are processed successively, identically, regardless of the packet, regardless of the block of data to be processed.
- an identifier whose value is indicative of a nonexistent transition for example an identifier of zero value
- signaling of the error for example by display, recording in a file, with indication of the last state identifier to which the flow of the graph has resulted, application of a rule "by default ", execution of a default action or assignment to a default category.
- the sorting process ends when the NB data block values x p , for 1 ⁇ p ⁇ NB, have been processed or when a null status identifier is found.
- step S235 The process of joining two graphs implemented during the execution of step S235 is described in more detail below.
- This process makes it possible to join the two graphs so as to obtain a single graph representative of a deterministic automaton.
- Such a process is known from the state of the art and described for example in John E. Hopcroft's paper, Rajeev Motwani, Rotwani and Jeffrey D. Ullman, entitled “Introduction to Automata Theory, Languages and Computability", (Addison- Wesley Longman Publishing Co., Inc., Boston, MA, 2000).
- this known process is adapted to take into account the semantics used in the exploitation and the definition of the list of rules to be processed.
- FIGS. 5A-5F A simplified example of joining two graphs is described here with reference to FIGS. 5A-5F.
- an access control list comprising the following two rules R A and R B , relating to the source address of a packet:
- the transition from the state E A (3.0) to the state E A (4.0) is possible only when the value of the fourth byte of the source address is '1'; in other words the table of transition T E (30) associated with the state E A (3.0) defines an association function of the set [0 ... 255] in the set of state identifiers such as:
- the transition from the state E 8 (0, 0) to the state E B (1, 0) is possible only when the value of the first byte of the source address is' 57 '; in other words, the transition table T E (00) associated with the state E B (0,0) defines an association function of the set [0 ... 255] in the set of identifiers d state such as:
- the transition from the state E B (2.0) to the state E B (3.0) is possible whatever the value of the third byte of the source address; in other words, the transition table T E e (2fi) associated with the state E B (2.0) defines an association function of the set [0 ... 255] in the set of identifiers of state such as:
- transition table T EB (X0) associated with the state E B (3.0) defines an association function of the set [0 ... 255] in the set of identifiers d state such as:
- the state E (0, 0) is a non-deterministic state in that in the graph thus obtained, as represented in FIG. 5B, when in the state E (0,0) one is either in the state state E A (0, 0), ie in the state E B (0,0).
- the state E (0,0) will be made deterministic by comparing and merging the two transition tables T E ⁇ m and T E ⁇ m , associated with the states E A (0,0) and E 8 (0, 0) to from which the state E (0, 0) has been created, into a new transition table T E (0> 0) . In this way, for each value of the first byte of the source address, only one transition will be possible and not two.
- the process of merging two transition tables TA and TB into a transition table T is as follows: for each of the values v of the set [0 ... 255], the two state identifiers TA (v) are examined. and TB (v) defined by TA and TB respectively, and:
- a new non-deterministic state E (1, 0) is thus created by merging the two states E A (1, 0) and E B (1, 0), which is illustrated in FIG. 5C.
- transition tables T E ⁇ lfi) and T E s ⁇ m are merged into a transition table T (1, 0) associated with the state ⁇ (1, 0) such that:
- the state associated with the first processed rule is preferred, i.e. the transition table TA.
- the graph shown in FIG. 5F can be used to sort a packet according to the two rules R A and R B defined below, by using the sorting process described with reference to FIG.
- the method according to the invention allows an efficient classification of the packets into different categories, in particular a minimum and constant time, independent of the number of rules or the packet. It can handle byte-by-byte data packets or any data block size that is appropriate given the data processor or data processing device being used. It applies to any list of rules defining sorting criteria relating to the values of the data fields to be processed.
Landscapes
- Engineering & Computer Science (AREA)
- Computer Security & Cryptography (AREA)
- Computer Networks & Wireless Communication (AREA)
- Signal Processing (AREA)
- Business, Economics & Management (AREA)
- General Business, Economics & Management (AREA)
- Computer Hardware Design (AREA)
- Computing Systems (AREA)
- General Engineering & Computer Science (AREA)
- Data Exchanges In Wide-Area Networks (AREA)
Abstract
Description
Claims
Priority Applications (2)
| Application Number | Priority Date | Filing Date | Title |
|---|---|---|---|
| US12/741,860 US20100262684A1 (en) | 2007-11-16 | 2008-11-13 | Method and device for packet classification |
| CN200880116478A CN101861722A (zh) | 2007-11-16 | 2008-11-13 | 用于对分组进行归类的方法和装置 |
Applications Claiming Priority (2)
| Application Number | Priority Date | Filing Date | Title |
|---|---|---|---|
| FR0759124 | 2007-11-16 | ||
| FR0759124 | 2007-11-16 |
Publications (2)
| Publication Number | Publication Date |
|---|---|
| WO2009068822A2 true WO2009068822A2 (fr) | 2009-06-04 |
| WO2009068822A3 WO2009068822A3 (fr) | 2009-07-23 |
Family
ID=39539648
Family Applications (1)
| Application Number | Title | Priority Date | Filing Date |
|---|---|---|---|
| PCT/FR2008/052046 Ceased WO2009068822A2 (fr) | 2007-11-16 | 2008-11-13 | Procede et dispositif de tri de paquets |
Country Status (3)
| Country | Link |
|---|---|
| US (1) | US20100262684A1 (fr) |
| CN (1) | CN101861722A (fr) |
| WO (1) | WO2009068822A2 (fr) |
Families Citing this family (14)
| Publication number | Priority date | Publication date | Assignee | Title |
|---|---|---|---|---|
| FR2935058A1 (fr) * | 2008-08-13 | 2010-02-19 | Inst Nat Rech Inf Automat | Outil de verification informatique |
| US8447849B2 (en) * | 2010-11-09 | 2013-05-21 | Cisco Technology, Inc. | Negotiated parent joining in directed acyclic graphs (DAGS) |
| US10599697B2 (en) | 2013-03-15 | 2020-03-24 | Uda, Llc | Automatic topic discovery in streams of unstructured data |
| US10698935B2 (en) | 2013-03-15 | 2020-06-30 | Uda, Llc | Optimization for real-time, parallel execution of models for extracting high-value information from data streams |
| US9600550B2 (en) * | 2013-03-15 | 2017-03-21 | Uda, Llc | Optimization for real-time, parallel execution of models for extracting high-value information from data streams |
| US10204026B2 (en) | 2013-03-15 | 2019-02-12 | Uda, Llc | Realtime data stream cluster summarization and labeling system |
| US10430111B2 (en) | 2013-03-15 | 2019-10-01 | Uda, Llc | Optimization for real-time, parallel execution of models for extracting high-value information from data streams |
| CN108574679B (zh) * | 2017-03-13 | 2021-03-30 | 华为技术有限公司 | 处理分组的方法和网络设备 |
| WO2019133928A1 (fr) | 2017-12-30 | 2019-07-04 | Uda, Llc | Modèles hiérarchiques, parallèles pour extraire en temps réel des informations de valeur élevée à partir de flux de données et système et procédé de création associés |
| DE102018221346A1 (de) * | 2018-12-10 | 2020-06-10 | Robert Bosch Gmbh | Verfahren und Vorrichtung zum Klassifizieren von Datenpaketen |
| CN110837642B (zh) * | 2019-11-14 | 2023-10-13 | 腾讯科技(深圳)有限公司 | 恶意程序分类方法、装置、设备及存储介质 |
| CN112598385A (zh) * | 2020-12-24 | 2021-04-02 | Oppo(重庆)智能科技有限公司 | 物料选配方法及装置、计算机可读介质和电子设备 |
| US20220217120A1 (en) * | 2021-01-04 | 2022-07-07 | Fastly Inc. | Minimization optimizations for web application firewalls |
| CN113507631B (zh) * | 2021-09-07 | 2021-11-12 | 深圳佳力拓科技有限公司 | 一种提高信息安全的数字电视信号发送方法和装置 |
Family Cites Families (27)
| Publication number | Priority date | Publication date | Assignee | Title |
|---|---|---|---|---|
| SE513828C2 (sv) * | 1998-07-02 | 2000-11-13 | Effnet Group Ab | Brandväggsapparat och metod för att kontrollera nätverksdatapakettrafik mellan interna och externa nätverk |
| US6282317B1 (en) * | 1998-12-31 | 2001-08-28 | Eastman Kodak Company | Method for automatic determination of main subjects in photographic images |
| US6651096B1 (en) * | 1999-04-20 | 2003-11-18 | Cisco Technology, Inc. | Method and apparatus for organizing, storing and evaluating access control lists |
| US7072863B1 (en) * | 1999-09-08 | 2006-07-04 | C4Cast.Com, Inc. | Forecasting using interpolation modeling |
| US20020075805A1 (en) * | 2000-09-22 | 2002-06-20 | Narad Networks, Inc. | Broadband system with QOS based packet handling |
| US7164678B2 (en) * | 2001-06-25 | 2007-01-16 | Intel Corporation | Control of processing order for received network packets |
| US7443401B2 (en) * | 2001-10-18 | 2008-10-28 | Microsoft Corporation | Multiple-level graphics processing with animation interval generation |
| US6891976B2 (en) * | 2002-03-12 | 2005-05-10 | Intel Corporation | Method to decode variable length codes with regular bit pattern prefixes |
| US7224185B2 (en) * | 2002-08-05 | 2007-05-29 | John Campbell | System of finite state machines |
| US7554980B1 (en) * | 2002-10-18 | 2009-06-30 | Alcatel Lucent | Packet classification using relevance scoring |
| US20040177139A1 (en) * | 2003-03-03 | 2004-09-09 | Schuba Christoph L. | Method and apparatus for computing priorities between conflicting rules for network services |
| US7251651B2 (en) * | 2003-05-28 | 2007-07-31 | International Business Machines Corporation | Packet classification |
| US7146361B2 (en) * | 2003-05-30 | 2006-12-05 | International Business Machines Corporation | System, method and computer program product for performing unstructured information management and automatic text analysis, including a search operator functioning as a Weighted AND (WAND) |
| US8284752B2 (en) * | 2003-10-15 | 2012-10-09 | Qualcomm Incorporated | Method, apparatus, and system for medium access control |
| US7644085B2 (en) * | 2003-11-26 | 2010-01-05 | Agere Systems Inc. | Directed graph approach for constructing a tree representation of an access control list |
| US7606263B1 (en) * | 2004-03-30 | 2009-10-20 | Extreme Networks, Inc. | Packet parser |
| US7325183B2 (en) * | 2004-07-21 | 2008-01-29 | Hewlett-Packard Development Company, L.P. | Error correction code generation method and apparatus |
| US8126870B2 (en) * | 2005-03-28 | 2012-02-28 | Sybase, Inc. | System and methodology for parallel query optimization using semantic-based partitioning |
| US7373475B2 (en) * | 2005-06-21 | 2008-05-13 | Intel Corporation | Methods for optimizing memory unit usage to maximize packet throughput for multi-processor multi-threaded architectures |
| CN100421369C (zh) * | 2005-06-21 | 2008-09-24 | 西南交通大学 | 复数旋转码的迭代大数逻辑译码方法 |
| US7784094B2 (en) * | 2005-06-30 | 2010-08-24 | Intel Corporation | Stateful packet content matching mechanisms |
| US7853205B2 (en) * | 2005-11-02 | 2010-12-14 | Texas Instruments Incorporated | Methods for improving transmission efficiency of control channels in communication systems |
| JP2010504018A (ja) * | 2006-09-15 | 2010-02-04 | コーニンクレッカ フィリップス エレクトロニクス エヌ ヴィ | 自動パケットタグ付け |
| US20080089333A1 (en) * | 2006-10-17 | 2008-04-17 | Kozat Ulas C | Information delivery over time-varying network topologies |
| SE531947C2 (sv) * | 2006-11-03 | 2009-09-15 | Oricane Ab | Förfarande, anordning och system för flerfältsklassificering i ett datakommunikationsnätverk |
| US7933282B1 (en) * | 2007-02-08 | 2011-04-26 | Netlogic Microsystems, Inc. | Packet classification device for storing groups of rules |
| US7782859B2 (en) * | 2007-05-07 | 2010-08-24 | Cisco Technology, Inc. | Enhanced packet classification |
-
2008
- 2008-11-13 CN CN200880116478A patent/CN101861722A/zh active Pending
- 2008-11-13 US US12/741,860 patent/US20100262684A1/en not_active Abandoned
- 2008-11-13 WO PCT/FR2008/052046 patent/WO2009068822A2/fr not_active Ceased
Also Published As
| Publication number | Publication date |
|---|---|
| CN101861722A (zh) | 2010-10-13 |
| WO2009068822A3 (fr) | 2009-07-23 |
| US20100262684A1 (en) | 2010-10-14 |
Similar Documents
| Publication | Publication Date | Title |
|---|---|---|
| WO2009068822A2 (fr) | Procede et dispositif de tri de paquets | |
| US11237897B2 (en) | Detecting and responding to an anomaly in an event log | |
| EP0639013B1 (fr) | Procédé et dispositif d'analyse d'informations contenues dans des structures de données | |
| FR2891075A1 (fr) | Circuit de memoire pour automate de reconnaissance de caracteres de type aho-corasick et procede de memorisation de donnees dans un tel circuit | |
| US10691942B2 (en) | Unsupervised land use and land cover detection | |
| EP1030493B1 (fr) | Procédé pour associer des références d'acheminement à des paquets de données au moyen d'une mémoire TRIE, et dispositif de traitement de paquets appliquant ce procédé | |
| WO2010065418A1 (fr) | Recherche de données basée sur un graphique | |
| WO2021152262A1 (fr) | Procede de surveillance de donnees echangees sur un reseau et dispositif de detection d'intrusions | |
| FR2842970A1 (fr) | Procede de reconnaissance et d'analyse de protocoles dans des reseaux de donnees | |
| CN108028807A (zh) | 用于在线自动识别网络流量模型的方法和系统 | |
| CA2297276C (fr) | Procede et dispositif de reception et pretraitement de messages | |
| EP3818676A1 (fr) | Identification de protocole d'un flux de données | |
| WO2021260312A1 (fr) | Procédé d'ordonnancement de tâches dans un système de traitement, dispositif d'ordonnancement associé | |
| WO2004051965A1 (fr) | Procede et systeme informatique pour declencher une action sur des donnees de communications numerique | |
| Khosravian et al. | QoS-aware service composition based on context-free grammar and skyline in service function chaining using genetic algorithm | |
| FR3116917A1 (fr) | Procédé de détermination de classifieurs pour la détection d’attaques dans un réseau de communication, dispositif de détermination associé | |
| EP2225853B1 (fr) | Moniteur de système de communication par messages amélioré | |
| WO2018104557A1 (fr) | Procédé d'émission d'un message, procédé de réception, dispositif d'émission, dispositif de réception et système de communication associés | |
| WO2005052812A1 (fr) | Dispositif de memoire de type trie avec mecanisme de compression | |
| WO2010018313A1 (fr) | Outil de vérification informatique | |
| FR3084183A1 (fr) | Procede et dispositif de detection d'anomalie | |
| FR2892847A1 (fr) | Procede de memorisation de donnees dans un circuit de memoire pour automate de reconnaissance de caracteres de type aho-corasick et citcuit de memorisation correspondant. | |
| WO2025224129A1 (fr) | Procédé de gestion d'un ensemble de règles de compression de paquets de données | |
| Alouf | Parameter estimation and performance analysis of several network applications | |
| EP2153359A1 (fr) | Procede de classification d'un ensemble de documents electroniques |
Legal Events
| Date | Code | Title | Description |
|---|---|---|---|
| WWE | Wipo information: entry into national phase |
Ref document number: 200880116478.3 Country of ref document: CN |
|
| 121 | Ep: the epo has been informed by wipo that ep was designated in this application |
Ref document number: 08854269 Country of ref document: EP Kind code of ref document: A2 |
|
| WWE | Wipo information: entry into national phase |
Ref document number: 12741860 Country of ref document: US |
|
| NENP | Non-entry into the national phase |
Ref country code: DE |
|
| 122 | Ep: pct application non-entry in european phase |
Ref document number: 08854269 Country of ref document: EP Kind code of ref document: A2 |