Method for managing the compression of a data packet transmitted over a network

The process of managing data packet compression through apprenticeship learning-based compression rules addresses the resource-intensive context updates in existing protocols, achieving efficient and adaptive compression in diverse network environments.

FR3153486A1Inactive Publication Date: 2025-03-28ORANGE SA
View PDF 0 Cites 0 Cited by

Patent Information

Application Number
FR2023010288
Authority / Receiving Office
FR · FR
Patent Type
Applications
Current Assignee / Owner
Filing Date
2023-09-27
Publication Date
2025-03-28
Estimated Expiration
Not applicable · inactive patent

Smart Images

  • Figure 00000000_0000_ABST
    Figure 00000000_0000_ABST
Patent Text Reader

Abstract

Method for managing the compression of a data packet transmitted over a network. The invention relates to a method for managing the compression of a data packet (P) transmitted over a network (NET), the packet (P) comprising sections taking respective values, characterized in that it comprises the following steps: the application of at least one compression operation to a section value of said data packet (P), said operation being included in a compression rule belonging to a set of compression rules (RS), said set (RS) being obtained by learning; the transmission of said data packet (P) to which said at least one compression operation has been applied and of data representative of the compression rule to which said operation belongs. Figure 1
Need to check novelty before this filing date? Find Prior Art

Description

Title of the invention: Method for managing the compression of a data packet transmitted in a network Technical field

[0001] The technical field is that of data compression and decompression.

[0002] More specifically, the invention relates to a method for managing the compression and decompression of a data packet transmitted in a network.

[0003] Modern digital telecommunications operate on the principle of exchanging data packets between transmitters and receivers using protocols such as the Internet Protocol (IP). A set of data packets relating to a communication is sent by the transmitter to a receiver. The packets contain the address of the receiver so that they can be addressed to it using different routing algorithms, and the content of the communication is reconstructed by the receiver by grouping the data contained in the different packets. To achieve complete communication, many protocols must be used, each fulfilling a role from the physical sending of bits, the atomic elements constituting digital data, to the interpretation of data for computer applications. Bits are conventionally grouped into bytes, sets of eight bits.The various protocols are classically seen as being organized in layers, with a protocol at one layer relying on a protocol at a lower layer. The OSI (Open Systems Interconnection) model and the Internet model describe the articulation of the various protocols between different layers.

[0004] For example, in a simplified version, the HTTP protocol (from the English Hypertext Transfer Protocol) is an Application layer protocol, which allows data to be transferred to or from a website. The data to be transferred is organized into data packets. The HTTP protocol uses the TCP protocol (from the English Transmission Control Protocol) which belongs to the Transport layer, for example to request the transfer of data packets representing the content of a website to a user. The TCP protocol, for example, operates in three phases: the establishment of a connection, the transfer of data, and the termination of the connection. The protocols of the Transport layer will use a protocol of the Network layer, generally the IP protocol (Internet Protocol) in one of its IPv4 or IPv6 versions.This protocol is only concerned with the transmission of data organized into packets from one address to another, without worrying about the establishment of the connection or the order of arrival of the data packets forming a transmission, these considerations being managed by the upper Transport layer protocol. The IP protocol will use a . Link layer protocol, for example the Ethernet protocol which will organize the sending of the elementary data constituting the packet, these elementary data being bits, transmitted using the Physical layer, whether using transmission by optical fiber, or by wireless communication depending on the case.

[0005] Other protocols in the Application layer will use other protocols in the lower layers to perform their functions. For example, the CoAP (Constrained Application Protocol) protocol used in the Internet of Things domain generally relies on the UDP (UserDatagram Protocol) protocol in the Transport layer.

[0006] A common point to all protocols on all layers is the organization of the data exchanged into data packets. A data packet is organized into two parts: a first part is the header of the packet which groups together the information necessary for the protocol which is responsible for processing the packet; a second part is the payload which groups together the data transported in the packet itself. At the Link layer, we speak of a frame rather than a packet, and, in addition to the header, there is a footer indicating the end of the frame.

[0007] Packet headers include fields. A field is a continuous set of bits of a fixed or variable length. When a field is of variable length, mechanisms are used to determine the length of the field actually transmitted. When the value in a fixed-length field is of variable length, padding bits will complete the value up to the fixed length of the field. A field has an identifier that indicates the nature of the value present in the field. The values ​​present in the field are used by the protocol concerned to process the packet appropriately. For example, in the header of an IP packet, a field with the identifier Version will contain the version number of the protocol used. The size of this field is four bits. Other fields concern, for example, the source and destination IP addresses of the packet.A header is therefore naturally divided into several sections, namely the header fields. The packet payload can also be divided into several sections, for example by defining sections of a constant length expressed in number of bits.

[0008] A packet analysis tool such as Wireshark or tcpdump allows you to capture and analyze data packets. Analysis allows you to separate a data packet exchanged over a network into its header and payload, and to read the information included in the header and the data included in the payload and to identify the various sections of a packet, both in its header and in its payload. We recall that, following the encapsulation of data packets, the typical header of a packet will consist of several concatenated headers, one for each encapsulated protocol. For example, an Ethernet frame encapsulating an IP packet will begin with the IP header, followed by the UDP header. The fields of the IP packet will therefore be followed in the frame by the fields of the UDP packet.

[0009] All of these elements are well known in the state of the art and will not be described further. State of the art

[0010] There is a clear need for compression of data exchanged in digital telecommunications to best save the hardware and energy resources consumed by telecommunications networks. This need explains the creation of protocols dedicated to the compression of exchanged data packets.

[0011] The exchanged data packets consist, as we have seen, on the one hand of a header containing the information necessary for the transmission of the packet and on the other hand of a payload comprising the data transmitted by the packet as such. Compression can therefore relate to the payload, or to the data packet headers. Since the values ​​of certain fields of the data packet headers will take constant or little varying values, it is possible to carry out very effective compressions of the data packets by seeking only to compress the values ​​of the fields of the data packet headers.

[0012] A first example of a protocol compressing the values ​​of the header fields of data packets is the ROHC protocol (acronym for Robust Header Compression) which is defined by the IETF (Internet Engineering Task Force) standardization body in the RFC (Request For Comments, specification documents at the base of the Internet) document number 3095. The basic idea of ​​this protocol is that certain values ​​of the header fields of the packets forming the same communication will not change from one communication to another. For example, the values ​​of the source and destination address fields will remain the same during a communication. After sending a first packet containing the values ​​of these fields, these values ​​will be erased in the headers of the following packets in order to compress the header of the packet, and therefore the packet itself, and will be inserted at reception since they are known after sending the first packet.The deletion is performed by a compression module and the insertion of the value by a decompression module. Other types of compression can be applied.

[0013] This achieves very effective compression of data packets even if the compression is limited to the headers. The ROHC protocol is used, for example, in mobile telecommunications networks. But it requires that a context be constructed for each communication indicating which values ​​can be compressed, and how. Senders and receivers must therefore regularly update the contexts used for header compression. This update operation is very costly and other mechanisms will be preferred in certain usage contexts.

[0014] The context of communication networks dedicated to connected objects imposes additional constraints. We are talking here about low-power wide area networks, also called LPWANs, an acronym for Low-Power Wide Area Networks. In such a network, we find connected objects that must save their electricity consumption as much as possible, such as meters deployed in locations without a power supply and having to use a battery for several years. These objects communicate wirelessly with a gateway that covers a wide area. Updating the context with each communication would involve high bandwidth consumption, so the ROHC header compression protocol is not suitable in this context.

[0015] In addition, the data exchanged by these objects is often very small in size, and may be limited to signaling that the object is still active, or the object may want to return a single value, such as a temperature for a thermometer, or a water level for a water meter. The size of the headers of the data packets proportionally to the size of the payload will therefore be proportionally larger in the context of LPWANs than in other contexts. There is therefore a need for efficient compression of the data packets which, in the context of LPWANs, will focus on compressing the values ​​of the header fields.

[0016] The SCHC protocol (acronym for Static Context Header Compression), defined by the IETF in RFC 8724, was designed for use in the context of LPWANs. It is based on a static context. For a given context, for example a type of connected object deployed in a given network, compression rules will be defined. These rules group together operations that can be applied to the values ​​of the fields in the packet headers. These operations can be of three types, all based on the idea that the values ​​of certain fields, or part of the values, can be erased before transmission and then reconstructed upon reception: • A first type of compression operation is erasure: the value of the field is read and will be erased by the compression module if the value is indeed the expected one. The compression module is for example located in the connected object.The deleted value will be inserted upon receipt by the decompression module, which is located in the gateway and has the same rules as the compression module. This type of operation is suitable for fields that take a constant value, such as the Version field of IP packets. If the field takes a value other than the expected one, the operation. does not apply, the compression rule is ignored, and another rule will possibly be used or the field value may be passed unchanged. • A second type of compression operation uses a dictionary: a dictionary is constructed for certain field values, and if the field value is found in the dictionary, the compression module will replace the field value with its index in the dictionary. The decompression module uses the dictionary to replace the index with the deleted value. Again, a field value outside the dictionary may be passed unchanged if no rules apply. • A third type of operation is prefix erasure: the field value is a sequence of bits, and a longer or shorter prefix can be defined in a compression operation. If the value has this prefix, the prefix will be erased during compression and inserted during decompression, or the value will be transmitted unchanged if the prefix is ​​not recognized by the operation.

[0017] For completion reasons, a fourth type of operation is defined which consists of ignoring the value of the field and transmitting it as is.

[0018] Other combinations are possible, as well as other compression / decompression actions, for example to process variable length fields.

[0019] A set of compression rules will then be defined for a given deployment context. For example, compression rules (and their symmetrical decompression rules) can be defined for a gateway managing an LPWAN network and for all the equipment connected to this network and to the Internet via the gateway. The set of rules will then be able to process in compression and decompression all the data packets that are exchanged in the LPWAN network, the compression being limited to the values ​​of the header fields. The SCHC protocol makes it possible to determine which compression rule applies when a data packet circulates in the network.

[0020] For this, each compression rule present in the set is defined for a given packet header format and will consist of a set of operations to be applied to the values ​​of the fields of the header of a packet that respects the format. Several rules can cover the same data packet header format. For example, compression rules will be defined for the format of IP packets encapsulating a UDP packet, and these rules will include operations for all the fields of an IP packet header followed by a UDP packet header.

[0021] A compression rule is part of a rule set and has a rule identifier. The rule set will seek to cover all possible data packet header formats that can be exchanged in a context given.

[0022] The SCHC compression / decompression protocol is applied by a compression module that will process a packet before sending it to a decompression module. The compression and decompression modules have the same set of rules, defined for a given context. The protocol will consist, when a data packet must be processed by the compression module, of browsing the set of rules available to the compression module in order to retain one or more rules. If a rule does not correspond to the format of the fields in the header of the processed packet, the rule is not retained. If the format of the fields corresponds, it is necessary to examine whether the values ​​of the fields correspond to all the matching operators provided in the rule. If this is not the case, the rule is again not retained. If no rule in the set corresponds, the packet is sent without processing and a non-compression indicator is prefixed to it.In any case, the packet payload is not processed by the SCHC protocol. In the context of LPWANs, packet compression limited to compressing the header field values ​​will still be effective, because the header size is proportionally large.

[0023] Here we see the benefit of the operation which consists of ignoring the value of the field and transmitting it as is. This operation makes it possible to ensure that a rule can actually be applied to all the fields of a given header: for fields which are easy to compress, an efficient compression operation will be defined, and for other fields the operation which does nothing will serve as completion.

[0024] Finally, several rules can be retained for which the format of the fields on the one hand and the values ​​of the fields on the other hand correspond. A rule is then chosen, and only one, for example the first encountered in the set of rules, or chosen randomly, at the choice of the implementation of the SCHC protocol. The operations provided for in the rule are applied by the compression module to the values ​​of the fields of the packet header. Then the packet is transmitted with the values ​​of its compressed header, as well as with the identifier of the rule that has been applied. The decompression module receives the packet whose header values ​​have been compressed; uses the identifier of the rule to find the operations that have been applied; and applies the symmetric decompression operations.For example, if for a field value the compression operation used a dictionary, the decompression module will use the passed index value to replace it with the expected value in the dictionary.

[0025] As the identifier of the rule used for compression must be transmitted, as well as certain values ​​(index of the dictionaries), there will be a limit beyond which adding new compression rules in a given context will not be more interesting because the potential gain brought by the additional rule is exceeded by the transmission cost induced by the increase in the size of the rule identifier as new rules are added. For example, beyond eight rules, the transmitted rule identifier will be encoded on three bits instead of two. If adding a ninth rule only saves on average a single bit, the addition of this ninth rule is not interesting. Likewise if an added rule involves the use of additional bits to encode dictionary indexes.

[0026] It is easy to see that the compression and decompression operations in the SCHC protocol can be lossless, that is, decompressing the header of the data packet according to the operations provided in the SCHC protocol reconstructs the header exactly as it was before compression. This is the general case even if there may be usage frameworks where this is not the case.

[0027] The sets of compression rules are therefore defined, in the SCHC protocol, for a given, static context, and correspond to the formats of the packets expected in the exchanges between transmitters and receivers. They are defined by an expert who knows that, in a given deployment context, such and such a protocol will be used, according to a given encapsulation, and who therefore knows which formats of the packet headers are expected. The expert also knows that such and such a field of the packets respecting such and such a format will take a constant value, or a value from a set of limited size, or a value which will often have the same prefix. For example, the expert knows that the IP-Version field which will appear in the headers of the packets respecting several formats (IP only, or IP encapsulating UDP packets, or other...) will be constant.Or the expert knows that the IP address values ​​present in a given field belong to a limited range and will therefore have a common prefix. This knowledge allows the expert to choose the most appropriate operation for a given field in a given format and to integrate it into the rule. The expert therefore builds a set of rules that will be deployed, for example attached to compression and decompression modules embedded in a set of connected objects and a corresponding gateway, to implement the SCHC protocol.

[0028] The SCHC protocol was initially designed in the context of LPWANs but it could be used in other contexts, such as home networks, or for compression of Ethernet frame headers. The compression operations of the SCHC protocol could also be applied to sections of the payload of a data packet and not only to the header.

[0029] In the current situation, the deployment of the SCHC protocol is slowed down by the need to create new rules for each usage context. This situation means that easily accessible compression potentials are not used. This has negative impacts on the energy and material consumption of the networks. LPWANs or those of other networks in which header compression according to the SCHC protocol could be used.

[0030] Another limitation of the current situation is that the compression rules defined for a given deployment context will no longer work as well when this context evolves. For example, if a connected object restarts, its network address may change or the port numbers it uses, and compression rules that were effective may become ineffective. This is a point that introduces inefficiency into the compressions that can be obtained.

[0031] Furthermore, it is desirable to use the compression operations defined by the SCHC protocol, which provide very efficient compression, in a maximum number of contexts. For example, these compression operations should be able to be applied to sections of the packet payload, and not just to header fields. However, there is currently no technical solution allowing the header compression principles defined in the SCHC protocol to be applied to a dynamic context, even if it is weakly dynamic. For example, if, in a deployment context, SCHC compression is applied to an IP address value, and this value changes even if at a very low frequency, the rule established in a static context becomes inoperative from the first change of IP address. Or, if a given section of a payload varies, even slightly, the rules of the SCHC protocol will not apply.

[0032] The invention improves the situation. Statement of the invention

[0033] According to a first functional aspect, the invention relates to a method for managing the compression of a data packet transmitted in a network, the packet comprising sections taking respective values, characterized in that it comprises the following steps: • applying at least one compression operation to a section value of said data packet, said operation being included in a compression rule belonging to a set of compression rules, said set being obtained by learning; • the transmission of said data packet to which said at least one compression operation has been applied and of data representative of the compression rule to which said operation belongs.

[0034] Thanks to the invention, the compression of a data packet is done by applying operations on sections of the packet. After compression, a representative data, for example an identifier, of the rule comprising the operation is transmitted, which will make it possible to restore the packet to its original state or close to it.

[0035] Above all, the creation of compression rules is made automatic and no longer requires the participation of an expert because the set of compression rules is obtained by learning. The compression rules comprise compression operations that apply to values ​​taken by sections of data packets. The compression rules of the set obtained by learning are applied to the data packets transmitted in the network in order to achieve effective compression of the transmitted data packets. The technical effect obtained is therefore the compression of the headers of the data packets transmitted in the network, and the advantage is that the compression rules can change automatically when the transmission context changes and remain effective. This makes it easier to deploy compression protocols and to use them in many contexts, including dynamic contexts.

[0036] According to one embodiment, which may be implemented alternatively or cumulatively with the previous one, the section of the data packet to the value of which a compression operation is applied is a field of a header of the data packet.

[0037] According to another embodiment, which may be implemented alternatively or cumulatively with the preceding embodiments, the section of the data packet to the value of which a compression operation is applied is a previously defined delimitation of the load of the data packet.

[0038] These two embodiments make it possible to apply the invention to all the values ​​taken by the sections of the data packet, whether they are header fields or delimited and pre-defined parts of the packet load. In the latter case, the fact that the delimitation is pre-defined makes it easier to apply the method. A given operation, found using the transmitted representative data, will for example apply to the first 256 bits of the load, and the packet can be restored to the original using the knowledge of this definition beforehand of the delimitation. Another pre-defined delimitation may for example consist of applying to the entire packet load, or to the first or second half, or to any other pre-defined proportion.

[0039] The fields of a header are themselves pre-defined sections since the structure of the header, and therefore its delimitation into several fields, is defined by the protocol, or the stack of protocols, to which the transmitted data packet belongs.

[0040] According to another embodiment, which may be implemented alternatively or cumulatively with the previous one, the data packet to which said at least one compression operation has been applied is transmitted jointly with the data representative of the compression rule to which said compression operation belongs. pressure.

[0041] By means of this embodiment, the data packet is transmitted jointly with the data representative of the compression rule that has been applied to it. This joint transmission will facilitate the subsequent decompression operation that will be applied to the data packet, by ensuring that, when a data packet is transmitted, it is transmitted with the information that makes it possible to know the compression operation that has been applied to it.

[0042] According to another embodiment, which may be implemented alternatively or cumulatively with the preceding modes, the transmitted data packet is formed by concatenating data representative of a compression rule, said data being an identifier of the compression rule consisting of a sequence of bits, with the data packet to which at least one compression operation belonging to said compression rule which belongs to a set of compression rules obtained by learning has been applied.

[0043] Thanks to this embodiment, a precise format of the compressed data packet is defined which will facilitate its transmission. The transmitted data packet is a new data packet formed by concatenating an identifier of the compression rule, namely a sequence of bits, with the original data packet to which the compression rule has been applied. The compressed data packet is therefore transmitted jointly with an identifier of the compression rule which will make it possible to find it among the set of compression rules obtained by learning.

[0044] According to another embodiment, which may be implemented alternatively or cumulatively with the previous modes, the set of compression rules is obtained by a reinforcement learning algorithm.

[0045] Reinforcement learning, unlike supervised learning, does not require any expert intervention. The technical effect obtained is therefore that the compression rules can be obtained automatically in order to achieve the compression of data packets transmitted in the network. A first advantage is that the compression rules can be obtained at low cost and quickly since this obtaining does not require the intervention of an expert. Another advantage is that the compression rules can change automatically when the transmission context changes and remain effective.

[0046] According to another embodiment, which may be implemented alternatively or cumulatively with the preceding embodiments, the reinforcement learning algorithm uses a training set formed of data packets collected beforehand; implements an environment which comprises the training set and the set of compression rules; and the change of state in The reinforcement learning algorithm involves adding a new rule to the compression rule set.

[0047] As the invention relies on the use of a learning algorithm, it requires the use of a learning set which must be defined beforehand. This learning set is a set of data packets for which the learning algorithm will seek to produce a set of compression rules which compresses it as best as possible. It is clear that the learning will be all the more relevant if the learning set is representative of the expected traffic whose data packets must be compressed. If the learning set is too small, in particular, the learning will not be able to obtain a set of compression rules which are effective in all cases, because examples of traffic which could have been compressed are not present in the learning set.

[0048] Reinforcement learning consists of evolving the set of compression rules that is learned, in an environment comprising the training set that the set of compression rules must compress. This evolution is done by adding a new rule to the set of compression rules. The training set, for its part, does not evolve during the learning phase.

[0049] According to another embodiment, which may be implemented alternatively or cumulatively with the preceding modes, the reinforcement learning algorithm comprises a reward function which is calculated according to the compression of the packets of the training set by the compression rules belonging to the set of compression rules.

[0050] It is advantageous that several parameters of the reinforcement learning algorithm are defined in order to be able to execute it. Reinforcement learning consists of evolving an actor, here the set of compression rules that one learns, in an environment, here the union of the set of rules and the training set, and of guiding the evolutions of the actor thanks to a reward function. The reward function is the compression carried out by the set of compression rules on the packets of the training set. The better the compression carried out by the set of rules, the better this set is and therefore reinforcement learning will tend to produce a set of rules which produces better compression.As already seen, the change of state is the addition of a rule to the set of rules; the reward function will sanction whether this addition of rule is relevant or not and allows the set of compression rules to evolve towards better compression.

[0051] The advantage of this mode is therefore to specify how to execute a reinforcement learning algorithm to learn a set of com rules pressure and how to choose relevant parameters of reinforcement learning to achieve good compression of the training set packets by the resulting set of rules.

[0052] According to another embodiment, which may be implemented alternatively or cumulatively with the preceding embodiments, the learning of a set of compression rules is carried out from an initial set consisting of a single rule not carrying out any compression.

[0053] In this embodiment, the starting point is a set of rules formed by a single rule applying to all the packets in the collected training set. This set ensures that from the start, the set of rules will apply to the entire training set even if the initial rule does not perform compression on the section values ​​of the packets in the training set. In most embodiments of our invention, the set of compression rules evolves so as to ensure that, for all the packets in the training set, there exists in the set of compression rules a rule that can apply, which is indeed the case with this single rule not performing any compression.

[0054] The advantage of this embodiment is that it does not require the intervention of any expert to define the initial set of compression rules which is submitted to the learning algorithm.

[0055] According to another embodiment, which may be implemented alternatively or cumulatively with the previous embodiments, the learning of a set of compression rules is carried out from an initial set comprising a compression rule provided by an expert.

[0056] The advantage of this embodiment is that it allows an expert to ensure that a rule that seems very useful to him is indeed present in the set of compression rules. By placing it from the start of the learning, this result is obtained. The rest of the learning algorithm can be done by reinforcement, therefore without subsequent intervention from the expert. We therefore obtain here a mixed mode where the intervention of the expert is limited.

[0057] According to another embodiment, which may be implemented alternatively or cumulatively with the preceding modes, the management method comprises the following steps executed during the learning of the set of compression rules: • a step of calculating at least one quantity called compression potential from the packets of the learning set; • a step of selecting a rule belonging to the set of compression rules using at least one compression potential among those calculated; • a step of creating a new rule from the selected rule using at least one compression potential among those calculated; • adding the new rule to the compression rule set;

[0058] and, furthermore, the reinforcement learning is iterated, until a stopping criterion is satisfied, using at the next iteration the set of rules modified by the addition of the new rule.

[0059] Thanks to this embodiment, reinforcement learning of a set of compression rules is guided efficiently. Indeed, reinforcement learning can work by randomly making state changes that will be retained or not depending on the reward function. This way of proceeding could on the one hand take a lot of time and on the other hand lead to sets of compression rules comprising too many rules if the most effective rules are not created first. However, we have seen that if too many compression rules are created, this becomes an obstacle to efficient compression because the index of the rule used during compression must be transmitted with the compressed packet. Too many rules implies an index coded on a large number of bits which makes compression ineffective.

[0060] It is therefore necessary to guide the reinforcement learning of compression rules. To do this, compression potentials are calculated which will first indicate which rule is selected to create a new rule and then how to create a new rule from the selected rule.

[0061] Learning operates by iteration until a stopping criterion is satisfied, and the iteration consists of applying the same algorithm to an environment formed by the new set of compression rules (with a new rule added) and the training set. To ensure that the learning takes into account the addition of the new rule, it may be useful to calculate at the following iteration compression potentials that take into account the addition of the new rule. This can be done by isolating in the training set the subsets of packets for which the different rules apply. In this mode, the values ​​compressed by the new rule will not be taken into account in the calculations of compression potentials. The compression potentials will only be calculated for the values ​​that are not compressed in the current state of the set of compression rules that is being trained.

[0062] According to another embodiment, which may be implemented alternatively or cumulatively with the preceding modes, if the added rule applies to all the data packets of the training set to which the selected rule applies, then the selected rule is removed from the set of compression rules.

[0063] It is advantageous that the addition of the new rule ensures that the set of rules that is being learned will apply to all the packets in the learning set. This is why, in this embodiment, if the added rule does not cover all the packets covered by the selected rule from which the added rule was created, then the selected rule is retained. Since the learning algorithm can start, in certain modes, from a set comprising an initial rule applying to all the packets, it is then certain to have at the end a set of rules applying to all the packets in the learning set. However, deleting the selected rule if the added rule covers the same packets makes it possible to ensure that unnecessary rules are not retained and therefore to minimize the size of the set of compression rules resulting from the learning algorithm.

[0064] According to another embodiment, which may be implemented alternatively or cumulatively with the preceding modes, the stopping criterion is satisfied when the compression obtained on the training set by the modified set of compression rules is less than or equal to the compression obtained by the previous set of rules.

[0065] According to another embodiment, which may be implemented alternatively or cumulatively with the preceding embodiments, the stopping criterion is satisfied when the set of rules reaches a predetermined size expressed in number of rules or in number of compression operations included in the rules.

[0066] These two modes have the advantage of proposing a stopping criterion that is easy to calculate. In the first mode, the compression performed by the set of rules on the training set is calculated and the training stops when the compression no longer progresses. This will happen, for example, when all the values ​​of the sections of the packets in the training set are compressed. In this case, it is no longer possible to add a compression operation. The compression performed by the new set may be less than the compression performed by the previous set because it must be taken into account that the compression rules must be identified, and that the size of the index of the added rule may be larger than the compression performed by this rule. In the second mode, we use an absolute size criterion for the set of compression rules, either in number of rules or in number of operations.This mode ensures that the size of the set of rules obtained always remains below a certain size, which is advantageous in a context where one wants to save resources and where one wants to ensure that the indexes of the compression rules can be encoded with a limited number of bits (from two to four for example). This embodiment is particularly advantageous when the compression method is used by equipment with capacities. limited memory, which will only be able to memorize a limited number of data compression rules sent or received. The two modes can be combined, namely that learning continues as long as the compression carried out by the set of rules progresses unless a predefined maximum size is reached.

[0067] According to another embodiment, which may be implemented alternatively or cumulatively with the preceding embodiments, one of the calculated quantities is called field compression potential and is calculated for a given section of fixed length according to the formula N(L - H) in which N is the number of times that the section appears in the training set; L is the length of the section expressed in bits and H is a quantity called field entropy estimator which is calculated according to the formula log ^ans in which K is the number of different values different A'j that the section takes in the training set and f. is the frequency of occurrence of the value V,.

[0068] In many embodiments, the sections for the values ​​of which the learning algorithm will seek to produce compression operations belonging to rules are header fields. This explains the choice of the terms "field compression potential" and "field entropy estimator". However, the embodiment can be applied to header fields as well as to delimited sections in the payload of a data packet.

[0069] The calculation formula in this embodiment applies to a section whose length L, expressed in bits, is constant for all the values ​​taken by the section in the training set. We will see later that another embodiment can be applied to sections of variable size.

[0070] Using this embodiment, the field compression potential is calculated for a given section, in order to detect which is the most interesting section to compress and thus guide the learning algorithm.

[0071] To do this, we use a quantity that estimates the entropy present in a delimited section of the charges of the packets of the training set or in a given field of the headers of the packets of the training set, which we call a section in general. We recall that an entropy (in the sense of information theory) is calculated from probabilities. Here, we have a training set, therefore observed values. This is why we calculate an entropy estimator, and not an entropy itself, from the frequencies of appearance / . of the values ​​that the section considered takes. These frequencies are strictly positive and less than or equal to 1 by definition. The logarithms of the frequencies are taken in base 2 to apply to values ​​expressed in bits. The logarithms are necessarily negative or null since the frequencies are worth 1 at

[0072]

[0073]

[0074]

[0075]

[0076]

[0077] maximum. Negations make the entropy estimator necessarily positive. The entropy estimator can therefore be at least zero. This is the case when the given section has a single value in the training set. The frequency of occurrence of this single value is therefore 1; and the logarithm is 0. Furthermore, the entropy estimator will always be less than the length of the section expressed in bits. If a delimited section, or a field, takes on a large number of different values, and therefore if its entropy estimator increases, then the length of the section expressed in bits which is necessary to encode this large number of different values ​​will also increase and will always remain greater than the entropy estimator. The quantity called field compression potential is therefore always positive and will be maximal for a given section when its entropy estimator is zero. This happens when the section takes a unique value in the training set and we easily understand that a section which takes a unique value will be easy to compress. Just erase this value! The field compression potential decreases as the entropy estimator increases. If a section with a zero entropy estimator appears only a few times in the training set, or if the section length is small, another section with a higher entropy estimator but which appears more often, or whose length is greater, may be more interesting to compress than the section with the zero entropy estimator. This is why the field compression potential takes into account the number of times the section appears as well as its length. The field compression potential therefore makes it possible to effectively guide the reinforcement learning algorithm by indicating the sections of the training set whose compression will yield the most according to the reward function which is given by the compression carried out, said sections being able to be packet header fields or delimited sections of the packet payload. According to another embodiment, which may be implemented alternatively or cumulatively with the previous embodiments, the field compression potential is calculated for a given section of variable length according to the formula N (L— H) ^ans in which K is the number of different values ​​that the section takes in the training set; is the number of times that the section takes the value Vj in the training set; is the length of the value V, expressed in bits and Hj is a quantity called the partial entropy estimator of a value, which is calculated for the value Vt according to the formula ^ans which f. is the frequency of occurrence of the value Vi in the set learning.

[0078] Thanks to this embodiment, the field compression potential can be calculated for a section of variable length. Several elements will therefore be taken into account in this calculation. A value that appears frequently, but which is of short length, may contribute less to the field compression potential than a value that appears less frequently but whose length is greater. This embodiment therefore makes it possible to carry out an accurate calculation of the field compression potential even for a section of variable length. It can be noted that the formula used in this embodiment gives the same results as the formula given previously in the case where the section has a constant length L for all the values ​​taken by the section.

[0079] According to another embodiment, which may be implemented alternatively or cumulatively with the previous modes, the field compression potential is calculated according to the formula in which a is a strictly positive constant.

[0080] This embodiment provides a variant for obtaining a field compression potential. In this formula, the potential is indeed maximal when the entropy estimator is zero. The positive constant ensures the definition of the field compression potential in this case. This variant is suitable for the case where the section is of fixed length.

[0081] According to another embodiment, which may be implemented alternatively or cumulatively with the preceding embodiments, the field compression potential is calculated according to the formula y a? in which a is a strictly constant ^riHj+a positive.

[0082] This embodiment takes up the previous variant but adapts it to the case where the section is of variable length.

[0083] According to another embodiment, which may be implemented alternatively or cumulatively with the preceding embodiments, the field compression potential is called corrected compression potential and is calculated for a given section in mul-the field compression potential by a correction factor where N is the number of times the section appears in the training set; K is the number of different values ​​the section takes in the training set; and a, and V are chosen positive coefficients.

[0084] In our experience, the field compression potential helps guide the learning algorithm but has the following defect: when a section has different values ​​distributed uniformly, the entropy estimator increases too slowly as new values ​​are observed in the training set. As long as it has a large length, a section which presents values ​​each time different in the training set may have a better field compression potential than a section with few values ​​but a smaller size. However, in practice, it is this section with few values ​​for which we wish to create one or more compression rules which will apply to the few observed values. Whereas the very long section with all observed values ​​different will be of little interest because it is likely that in practice, the values ​​which will appear in this section will still be new values, and therefore values ​​which will not be compressed by the compression rules learned on a training set where they do not appear.

[0085] To correct this defect, we introduce a correction factor that allows us to obtain a corrected compression potential. The coefficients a, fi and V are preferably positive to ensure that the correction factor causes the compression potential to evolve in the desired direction. The idea is that a section that presents completely different values ​​must be disadvantaged compared to a section presenting an observation that seems less random.

[0086] According to another embodiment, which may be implemented alternatively or cumulatively with the preceding modes, the positive coefficients a, fi and Y are chosen to take constant values. According to a particular embodiment of this latter mode, which may be implemented alternatively or cumulatively with the preceding modes, the positive coefficients a, fi and V take the values ​​a — 1, P — 0 and y = 0.

[0087] Thanks to this last mode, the correction factor takes the value ] _ Æ and is therefore zero when all the values ​​of the section are different and we have K = N. Such an observation in the training set of a section whose values ​​are all different strongly indicates that the values ​​outside the training set will also be different, and that such a section cannot be compressed effectively. The correction factor will then cancel the field compression potential for this section. When a section takes a single value, the correction factor is equal to ] _ -1 and the corrected correction potential is therefore reduced compared to the initial value of the field correction potential, but is ultimately very little reduced.

[0088] Other constant values ​​can of course be taken to refine the correction provided by the correction factor.

[0089] According to another embodiment, which may be implemented alternatively or cumulatively with the preceding modes, the positive coefficients a, fi and f take the values ​​« = 1, fi = 1 and y = 0.

[0090] Thanks to this last mode, the correction factor takes the value ] _ A_1 and is therefore worth exactly 1 when the section takes a single value, that is to say for K — 1. Conversely, the correction factor does not cancel out when K = N which can be interesting to maintain a non-zero field compression potential even on a section which still seems to be very random since all the values ​​taken by the section in the training set are different. Thus, the field compression potential being non-zero, the learning algorithm will be able in certain contexts to add one or more compression rules relating to the section.

[0091] According to another embodiment, which may be implemented alternatively or cumulatively with the preceding modes, the positive coefficients a, fi and V are chosen as a function of K and N.

[0092] This embodiment makes it possible to obtain other values ​​of the correction factor to refine its choice according to the sizes of the samples observed in the training set. For example, by taking « = 1, fi = 0.5^ and y = N, we obtain a correction factor which is worth ] _ .9^. and which presents a differentiated influence according to the size of the sample of the values ​​observed for the section for which the corrected compression potential is calculated.

[0093] According to another embodiment, which may be implemented alternatively or cumulatively with the preceding embodiments, one of the calculated quantities is called the value compression potential and is calculated for a value V; of a given section according to the formula N(L - H,) in which N is the number of times that the value V{ appears in the learning set; L is the length of the value in bits; and H, is a quantity called the partial entropy estimator of a value which is calculated according to the formula _ f \qv j in which f. is the frequency of appearance of the value Vh

[0094] This embodiment constructs, according to the same model as that seen previously for the field compression potential, and using the same quantities, a compression potential adapted to the values ​​that a given section takes in the training set, knowing that a section can be a field of a packet header or a delimited section of a packet payload.

[0095] It can be noted that this value compression potential is expressed according to the length of the value V, and is therefore adapted to a section of variable length. A value of short length but which appears frequently may have a compression potential greater than a longer value but which appears less frequently. This potential will also guide the creation of compression rules by indicating the values ​​which are to be compressed as a priority. It will therefore not necessarily be the value which appears most frequently since, in the case of a section of variable length, the effective length of the value taken by the section is taken into account and can compensate for a lower frequency of occurrence.

[0096] As seen previously, the frequency of appearance of a value is strictly positive and is worth 1 at most. The partial entropy estimator of a value will therefore also be positive and will be worth 0 for a value which would be the unique value taken by a section in the training set and which would then have a frequency of appearance which would be worth 1. The partial entropy estimator of a value will always be strictly less than 1. The compression potential of a value will therefore always be positive and will be maximum for a value which would be the unique value observed for a given section and will be minimum for the value which is observed least often in this section in the training set.

[0097] According to another embodiment, which may be implemented alternatively or cumulatively with the preceding embodiments, the value compression potential is calculated according to the formula in which a is a strictly positive constant.

[0098] By this embodiment, an alternative formula is given for calculating a value compression potential.

[0099] According to another embodiment, which may be implemented alternatively or cumulatively with the preceding embodiments, one of the calculated quantities is called the field bit compression potential and is calculated for a rank i of a given section, the ranks i varying from 0 to L - 1, L being the minimum length of the values ​​taken by the section in the learning set, said length L being expressed in number of bits, and said quantity is calculated according to the formula 1 - in which H(bj) is a quantity called the entropy estimator of a field bit which is calculated according to the formula H^) = - (fJog2 ( / . ) + ( 1 - f. )J.Og2 ( 1 - f. ) )' said formula being by convention 0 when f. is 0 or 1, formula in which the values ​​taken by the section in the training set are expressed in ordered bit sequences and in which f. is the frequency of occurrence of one of the values ​​0 or 1 for the bit of rank i among the values ​​taken by the section in the training set.

[0100] This embodiment constructs, according to the models seen previously, a compression potential to measure the compression potential of the bits of a section in a given rank. As for the potentials already seen, this quantity is calculated for a section which can be a header field or a delimited load section, and the term “field bit compression potential” is retained because it is used, in many embodiments, to apply to a header field.

[0101] The principle here again is to note the frequencies of appearance, here the frequencies of the bit values ​​0 or 1 for a given rank of the section. If this frequency is 1, This means that, for a given rank, it is always the same bit value that appears, and the entropy estimator will then be minimal and will be worth 0 by convention. The field bit compression potential for this rank will then be worth 1, and this is the maximum value that this quantity can take. For a frequency of 0.5, the logarithm to base 2 is worth -1 and the entropy estimator is worth 1, which gives a field bit compression potential for this rank which will be worth 0, which is the minimum value that this quantity can take.

[0102] For frequencies of 0.25 and 0.75 for a given rank, the base 2 logarithms are -2 and -0.415 respectively. The field bit entropy estimator is then - (0.25.(-2)+0.75.(-0.415) ) = - (-0.5-0.31125) =0.81125 and the field bit compression potential is then 0.18875, well between 0 and 1.

[0103] We can also see how the compression potential, here for the ranks of the sections whose values ​​are expressed in a sequence of bits, will make it possible to guide the learning algorithm by indicating the most interesting values ​​to compress, taking into account here the representation of the values ​​in the form of a sequence of bits.

[0104] According to another embodiment, which may be implemented alternatively or cumulatively with the preceding embodiments, the step of calculating at least one quantity called compression potential comprises, for a section of the packet taking respective values ​​expressed in the form of a sequence of bits, counting the number of bits which would be erased following the application of a prefix erasure rule on the values ​​taken by the section in the learning set.

[0105] With this embodiment, rather than using a notion based on entropy to calculate the compression potentials, a count of the bits that would be erased in the training set if a given prefix erasure rule were applied to it will be carried out. In this way, the compression potentials are calculated from actual data.

[0106] According to another embodiment, which may be implemented cumulatively with the previous embodiment, the step of calculating at least one quantity called compression potential comprises, for a section of the packet taking respective values ​​expressed in the form of a sequence of bits, the following steps: • a creation of a binary tree representing all the values ​​that can be taken by a sequence of bits, the root of the tree representing an empty sequence of bits, the nodes of the tree being worth 0 or 1, and a node of the tree of depth n representing a sequence of bits of length n whose value is that of the sequence of 0s and 1s encountered from the root of the tree to reach said node of depth n, an edge of said tree being labeled by the number of values ​​taken by the section having as a prefix the sequence of bits represented by the node to which the edge leads; • a multiplication of the labels of the edges of the binary tree created by the depth of the node to which the edge leads, which carries out a count of the bits which would be erased in the training set (E) by the application of prefix erasure rules of the values ​​taken by the section expressed in the form of a sequence of bits;

[0107] and the step of creating a new rule comprises creating a prefix erasure rule for the values ​​taken by a section expressed as a sequence of bits, the erased prefix being the one for which the count of erased bits is the largest.

[0108] With this embodiment, another example of calculating compression potentials is proposed which uses a count of the bits that can be erased by a prefix erasure rule if it is applied to the training set, and not the use of a notion of entropy. This example is directly attached to the definition of a compression rule guided by the calculated compression potentials. This example can be used in combination or as an alternative to the other examples presented so far. In this mode, for a given section, all the values ​​taken by the section in the training set are presented in the form of a sequence of bits and then arranged in a binary tree. The root of the tree corresponds to the start of the values ​​taken by the section. Depending on whether the first bit of the values ​​is 0 or 1, the corresponding edge will be labeled by the number of values ​​taken by the section whose first bit is 0 or 1.This arrangement is performed for the entire set of values, and then the edge labels are multiplied by their depth to give compression potentials. These numbers correspond to the amount of bits that can be erased by a compression rule that erases the prefix corresponding to the path in the tree. Choosing the largest amount of potentially erased bits in the training set and therefore the maximum compression potential then allows us to construct a prefix erasure compression rule. This rule is the one that erases the largest number of bits among the prefix erasure rules for this section if applied to the training set, and it will therefore be potentially effective when applied to real traffic.

[0109] According to another embodiment, which may be implemented alternatively or cumulatively with the preceding embodiments, the step of selecting a rule belonging to the set of compression rules comprises the partitioning of the training set into subsets attributed to a rule of the set of compression rules; the calculation of a compression potential for the rules of the set of compression rules and the selection of the rule according to its compression potential, the compression potential of a rule being calculated from compression potentials field pressures calculated on the subset of the training set assigned to the compression rule.

[0110] With this embodiment, the field compression potentials are used to select a rule from the set of compression rules that is being trained. The training set is partitioned by assigning to a given rule the subset for which the rule achieves the best compression. The field compression potentials are calculated for the fields not compressed by the rule in question and then summed for all the packets in the training set. In this way, all other things being equal, reinforcement learning will seek to improve a rule that applies to more headers than another and will also avoid recreating rules that have already been created.

[0111] Since the starting point of the reinforcement learning algorithm is a set formed by a single rule that applies to all values ​​(ignoring them) and that does not compress, this rule will be selected initially during the first iteration of the algorithm. A rule will then be created from this initial rule, which will, for example, erase a value that occurs frequently for a field. The created rule will therefore be the one that achieves the best compression for packets with this value, since it erases it, while the initial rule does nothing. The compression potential of the rule is then calculated by taking into account the erasure achieved for this value. The initial rule, which does nothing, can be selected later because it has a certain compression potential for packets that do not have the value erased by the created rule.

[0112] According to another embodiment, which may be implemented alternatively or cumulatively with the preceding embodiments, the calculation of a compression potential for a rule is carried out by adding the field compression potentials for the remaining sections of the identified subset.

[0113] Thanks to this embodiment, all the compression potentials remaining to be exploited are taken into account since it is their sum which indicates which rule will be the most interesting to select.

[0114] According to another embodiment, which may be implemented alternatively or cumulatively with the preceding modes, the calculation of a compression potential for a rule is carried out by retaining the maximum of the field compression potentials for the remaining sections of the identified subset.

[0115] In this mode, rather than performing an addition of the field compression potentials, the rule which presents a maximum is retained. This calculation variant can be more efficient in calculation operation, and faster, while providing good guidance for the learning algorithm.

[0116] According to another embodiment, which may be implemented alternatively or cumulatively with the previous modes, the step of selecting a rule belonging to the set of compression rules is carried out by a random drawing of a rule from the set of compression rules.

[0117] This embodiment provides an alternative to the embodiment which consists of calculating a compression potential for each rule. The advantage of this embodiment is to provide a simpler alternative to implement.

[0118] According to another embodiment, which may be implemented alternatively or cumulatively with the preceding embodiments, the step of creating a new rule from the selected rule is carried out by creating one or more candidate rules and by retaining a rule from among the candidate rules created according to the effectiveness of the compression carried out by this rule on packets of the learning set.

[0119] Thanks to this last embodiment, reinforcement learning is well guided by a reward function linked to the compression achieved by the set of compression rules which is being learned. A rule is selected, from which one or more candidate rules will be created, and it is indeed the rule which achieves the most effective compression which is added to the set of compression rules. One possibility is to apply the already existing compression rules to the packets of the learning set before evaluating the compression achieved. This makes it possible to advance the learning of the set of compression rules by being guided by a reward for improving the compression, and by avoiding falling back on the creation of the same rules by applying the compressions of the selected rule before evaluating the compression of the candidate rules.

[0120] According to another embodiment, which may be implemented alternatively or cumulatively with the preceding embodiments, the step of creating a new rule from the selected rule is carried out by choosing a section according to its field compression potential and by creating candidate rules formed by adding to the selected rule a compression operation applying to the values ​​taken by the section.

[0121] By this embodiment, a reinforcement learning algorithm is defined, which makes it possible to create compression rules from a selected rule by being guided by the compression potentials. Once the rule is selected, one or more candidate rules are created, first by selecting a section according to its field compression potential and then by adding to the selected rule a compression operation which applies to the values ​​taken by the section in question. The most effective rule among the candidate rules will be retained.

[0122] According to another embodiment, which may be implemented alternatively or cumulatively with the previous modes, a compression operation added to the selected rule is a value erasure operation, the value being chosen according to the value compression potentials of the values ​​taken by the chosen section.

[0123] Using this embodiment, a first candidate rule is created, which adds a very efficient compression operation, namely the deletion of a value. The value is chosen using the value compression potentials, which we have seen take into account the potentially variable length of the values ​​taken by the section.

[0124] According to another embodiment, which may be implemented alternatively or cumulatively with the preceding modes, a compression operation added to the selected rule is an operation of replacing a value taken by the chosen section by an index of a dictionary in which, if the selected rule already comprises, for the chosen section, an operation of replacing a value by an index of a dictionary, the value whose value compression potential is the highest is added to the dictionary; otherwise, a dictionary is created comprising the two values ​​whose value compression potential is the highest.

[0125] With this embodiment, another kind of candidate rule is created, or improved, which consists of replacing a value with a dictionary index. While the operation of erasing a value is effective in a context where a section very frequently takes a given value, the operation of replacing with a dictionary index may be more effective for values ​​whose frequency of occurrence is more distributed.

[0126] According to another embodiment, which may be implemented alternatively or cumulatively with the preceding modes, a compression operation added to the selected rule is a prefix erasure operation up to a rank i, the rank i being determined by multiplying together the field bit compression potentials of the chosen section starting from rank 0 up to the maximum rank, until the product is less than a given threshold, for example as soon as the product becomes strictly less than 1.

[0127] With this embodiment, another kind of candidate rule is created which consists of erasing the prefixes of the values ​​taken by a given section. The field bit compression potentials make it possible to detect prefixes common to many values.

[0128] Thanks to all of these embodiments, a reinforcement learning algorithm is defined, which makes it possible to create compression rules from a selected rule while being guided by the compression potentials. The algorithm can create candidate rules at each step, each rule being able to correspond to a compression operation among the main operations defined by the SCHC protocol.

[0129] To create the candidate rules, the learning algorithm begins by se Select the section with the strongest field compression potential. The candidate rules created will apply to one or more values ​​in this section.

[0130] A first candidate rule includes an addition of a value deletion operation to the selected rule. The deleted value is simply the one with the highest value compression potential, which is not necessarily the most frequent value in the case of a variable length section.

[0131] A second rule includes adding a dictionary index value replacement operation to the selected rule. If the selected rule already includes a dictionary index replacement operation for this section, the modification will consist of adding a new dictionary reference for the value with the highest compression potential. Otherwise, the modification will create a dictionary index replacement operation; and since this operation only makes sense for at least two values, the created dictionary will include the two values ​​with the highest value compression potentials.

[0132] Finally, a third rule includes adding a bit prefix erasure operation. To define the rule, it is important to decide up to which rank to erase the bit prefix. For this, we use the field bit compression potentials. If a bit compression potential is 1 for a given rank, this means that the values ​​for this rank all have the same bit 0 or 1. Starting from the first rank, and multiplying the bit compression potentials with each other, the result will decrease and the algorithm consists of choosing to stop when a given threshold is crossed by the product. If the values ​​for the first two ranks, for example, all have the same bit, the product of the bit compression potentials will be 1. If the next rank has a frequency of 0.5 for bits 0 and 1, the bit compression potential for this rank is zero, and the product will cancel.The passage of the product below a threshold is therefore obvious, and the created rule will indeed erase the prefix for the first two ranks and not for the third. By choosing that the product must remain at least equal to one, the algorithm will only create candidate prefix erasure rules for prefixes which indeed take the same value expressed in sequences of bits up to the rank for which the product is worth less than 1.

[0133] Also, as already seen, a prefix erasure rule can be created according to the compression potentials counting the bits that can be erased by a prefix erasure rule, these compression potentials based on counts being obtained by counting the values ​​taken by a section on a binary tree, by labeling the edges of this tree by the number of corresponding values ​​and by multiplying the labels of the edges by their depth.

[0134] The advantage of these embodiments, compared to an embodiment where, for For example, candidate rules would be created randomly, is to ensure that compression potentials guide the creation of new rules. This way, the compression rule set will be limited in size because the most effective compression rules will be created first to be added to the compression rule set.

[0135] According to another embodiment, which may be implemented alternatively or cumulatively with the previous modes, a predefined order is applied making it possible to choose the candidate rule to be added in the event of equality between the compressions carried out by candidate rules.

[0136] According to another embodiment, which may be implemented alternatively or cumulatively with the preceding embodiments, the predefined order for choosing the candidate rule consists of favoring the candidate rule performing a value deletion, then the candidate rule performing a replacement by a dictionary index, then the candidate rule performing a prefix deletion.

[0137] Thanks to these embodiments, a predefined order makes it possible to ensure that a choice will be made between the candidate rules in the event of equality of the compression achieved by these rules.

[0138] According to another embodiment, which may be implemented alternatively or cumulatively with the previous modes, the candidate rules are created by randomly adding or modifying a compression operation to the selected rule.

[0139] With this mode, a variant of the algorithm is proposed that does not use guidance by compression potentials. Reinforcement learning can also work using random state changes, and it is the reward function that will ensure that learning progresses towards an acceptable result. The advantage of this embodiment is that it provides a variant that is simpler to implement.

[0140] According to another embodiment, which may be implemented alternatively or cumulatively with the preceding embodiments, the training set is separated into several subsets of data packets, the packets grouped in a subset all having the same header format corresponding to a stack of protocols, and characterized in that the reinforcement learning of a set of compression rules is applied separately to the subsets of the training set before grouping the sets of rules obtained for the subsets into a single set of rules.

[0141] With this embodiment, reinforcement learning can be used on a training set formed of several distinct subsets, each corresponding to packets having a given header format, this format cor itself responding to a given stack of protocols. The training is then done for a given header format, then the different sets of compression rules are combined into one. This provides an efficient way to cover a deployment context of compression rules applying to packets of several protocols.

[0142] According to another embodiment, which may be implemented alternatively or cumulatively with the preceding modes, the compression rules of the set of compression rules obtained by learning and the compression operations included in said compression rules are compression rules and operations as defined in the SCHC protocol.

[0143] Thanks to this embodiment, the objective of proposing a technique for automatic learning of compression rules for the SCHC protocol is well met. The technical problem of having a means of deploying the SCHC protocol without requesting an expert to define the compression rules is well solved.

[0144] According to a second functional aspect, the invention relates to a method for managing the decompression of a data packet transmitted in a network, the packet comprising sections taking respective values, characterized in that it comprises the following steps: • receiving said data packet to which at least one compression operation has been applied to a section value of said packet, said operation being included in a compression rule belonging to a set of compression rules, said set being obtained by learning, and data representative of the compression rule to which said operation belongs; • applying to said data packet at least one symmetrical decompression operation of the at least one compression operation applied to a section value of said packet.

[0145] Thanks to this second functional aspect of the invention, the packet is restored to its original form that it had before the compression operation was applied to the value taken by one of its sections. The compression operations considered generally consist of operations of erasure of a given value, or of a prefix common to several values, or of replacement by a dictionary index. When a packet has been compressed in this way, then is received, the data representative of the compression rule will make it possible to find the erased value, or the value corresponding to the dictionary index. It is therefore easy to restore the packet to its original form by applying to it the decompression operation symmetrical to the compression operation applied which was found thanks to the data representative of the compression rule. For example, if a value data taken by a given section is erased, and the received packet includes an erased value for this section, the symmetric decompression operation will simply consist of reinserting the erased value into this section.

[0146] According to a first embodiment, which may be implemented alternatively or cumulatively with the previous mode, the data packet to which said at least one compression operation has been applied is received jointly with the data representative of the compression rule to which said compression operation belongs.

[0147] By means of this embodiment, the data packet is received together with the data representative of the compression rule that has been applied to it. The joint reception of the packet and the representative data makes it possible to facilitate the decompression operation applied to the data packet, by ensuring that, when a data packet is received, the information that makes it possible to know the compression operation that has been applied to it is also available with the data packet, which makes it possible to reconstruct it immediately thanks to the symmetrical decompression operation.

[0148] According to another embodiment, which may be implemented alternatively or cumulatively with the preceding modes, the received data packet is formed by the concatenation of data representative of a compression rule, said data being an identifier of the compression rule consisting of a sequence of bits, with the data packet to which at least one compression operation belonging to said compression rule which belongs to a set of compression rules obtained by learning has been applied.

[0149] Thanks to this embodiment, a precise format of the compressed data packet is defined which will facilitate its reception. The compression rule identifier is at the head of the received packet. It makes it possible to immediately find the compression rule applied and therefore to apply symmetric decompression to the received packet to obtain the original packet.

[0150] According to another embodiment, which may be implemented alternatively or cumulatively with the preceding modes, the compression rules of the set of compression rules obtained by learning, the compression operations included in said compression rules, and the symmetrical decompression operations are compression and decompression rules and operations as defined in the SCHC protocol.

[0151] Thanks to this embodiment, it is possible to deploy a very efficient data packet compression protocol, namely SCHC, while avoiding the need to mobilize an expert to define the compression rules since the set of compression rules is obtained by learning.

[0152] According to a third functional aspect, the invention relates to a method for managing the transmission of a data packet in a network, the packet comprising sections taking respective values, characterized in that it comprises the following steps: • Pre-learning a set of compression rules comprising compression operations which can be applied to the values ​​taken by the sections of said data packet; • applying at least one compression operation to a section value of said data packet, said operation being included in a compression rule belonging to said set of compression rules obtained by learning; • the transmission of said data packet and of data representative of the compression rule to which said operation belongs; • the reception of said data packet and said representative data; • applying to said data packet at least one symmetrical decompression operation of the at least one compression operation applied to a section value of said data packet.

[0153] Thanks to this aspect of the invention, a complete transmission of a data packet is carried out, by transmitting the compressed data packet. Learning the compression rules makes it possible to make the process automatic, without expert intervention. The transmission of the data representative of the compression rule which was applied to the transmitted packet makes it possible to find this rule and therefore the compression operations included in the rule, and to restore the original packet by applying the symmetrical decompression operations.

[0154] A compressed packet was therefore transmitted instead of the original packet, which allows very significant savings in terms of hardware and energy resources. Since the compression rules are obtained by learning, there is no need to involve an expert, which makes it very easy to deploy the efficient transmission according to the invention.

[0155] According to one embodiment, which may be implemented alternatively or cumulatively with the previous embodiment, the method further comprises a prior step of collecting transmitted packets in the network to form a learning set used during the step of learning a set of compression rules and a step of synchronized deployment in the nodes of the network of the set of compression rules obtained by learning.

[0156] Thanks to this embodiment, the transmission of packets in the network is done by taking into account the packets actually transmitted.

[0157] The pre-training of the compression rule set uses a general training set. This can be provided by an expert, or generated automatically according to predefined constraints. But the preferred embodiment is where the training set is collected from packets transmitted in the network. The training is then done with a training set directly representative of the packet traffic in the network and the compression rules obtained will therefore be much more suitable. Once the set of compression rules is obtained by training, it must be deployed in the network nodes in a synchronized manner so that a node that receives a compressed packet, and the data representative of the compression rule used, will be able to find this rule and apply the symmetric decompression operation.

[0158] Furthermore, thanks to this embodiment, the method can be implemented permanently. The collection of data packets used to form the training set is permanent and makes it possible to capture context changes in the ongoing transmission of packets. A first set of compression rules can already be deployed and, if the context changes, for example if the IP addresses of the network nodes change, the compression rules become ineffective. But the collected packets make it possible to restart the training of the compression rules with a new training set, and the deployment of a new set of compression rules then makes it possible to adapt to the new context, and to carry out effective compressions again.The deployment must be synchronized to ensure that the node receiving a compressed packet knows the compression rule that was applied so that it can perform the symmetric decompression operation to restore the data packet.

[0159] According to another embodiment, which may be implemented alternatively or cumulatively with the preceding modes, the compression rules of the set of compression rules obtained by learning, the compression operations included in said compression rules, and the symmetrical decompression operations are compression and decompression rules and operations as defined in the SCHC protocol.

[0160] With this embodiment, the SCHC protocol can be deployed in dynamic contexts. The compression rule sets will be updated as learning takes place using new training sets representative of the traffic between different points in a network, and changes in the headers of packets actually circulating. The SCHC protocol is therefore made suitable for application in dynamic contexts through the use of reinforcement learning to create the compression rule sets.

[0161] According to a first material aspect, the invention relates to an entity for managing the compression of a data packet transmitted in a network, the packet comprising sections taking respective values, characterized in that the management entity

[0162]

[0163]

[0164]

[0165]

[0166] includes the following modules: • a module for applying at least one compression operation to a section value of a data packet, said operation being included in a compression rule belonging to a set of compression rules, said set being obtained by learning; • a module for transmitting a data packet to which at least one compression operation has been applied and data representing the compression rule to which said operation belongs. According to a second material aspect, the invention relates to an entity for managing the decompression of a data packet transmitted in a network, the packet comprising sections taking respective values, characterized in that the management entity comprises the following modules: • a module for receiving a data packet to which at least one compression operation has been applied to a section value of said packet, said operation being included in a compression rule belonging to a set of compression rules, said set being obtained by learning, and data representative of the compression rule to which said operation belongs; • a module for applying to a data packet at least one symmetrical decompression operation of a compression operation applied to a section value of said packet. According to a third material aspect, the invention relates to a data packet formed by concatenating data representative of a compression rule, said data being an identifier of the compression rule consisting of a sequence of bits, with a data packet to which at least one compression operation belonging to said compression rule which belongs to a set of compression rules obtained by learning has been applied. According to a fourth material aspect, the invention relates to network equipment comprising a compression management entity according to the invention. According to a fifth material aspect, the invention relates to network equipment comprising a decompression management entity according to the invention. According to a sixth material aspect, the invention relates to a system for managing the transmission of a data packet in a network, the packet comprising sections taking respective values, characterized in that the system comprises the following modules: • a pre-learning module of a set of compression rules comprising compression operations that can be applied to the values ​​taken by the sections of a data packet; • a module for applying at least one compression operation to a section value of a data packet, said operation being included in a compression rule belonging to a set of compression rules obtained by learning; • a module for transmitting a data packet to which a compression operation has been applied and data representing a compression rule to which said compression operation belongs; • a module for receiving a data packet and data representing a compression rule; • a module for applying to a data packet a symmetrical decompression operation of a compression operation applied to a section value of said data packet.

[0167] According to one embodiment, the transmission management system further comprises: • a module for collecting transmitted data packets in the network to form a training set used by a module for training a set of compression rules; • a module for the synchronized deployment in the network nodes of a set of compression rules obtained by learning.

[0168] Finally, according to another material aspect, the invention relates to data media on which are recorded computer programs comprising sequences of instructions for implementing the methods for managing the compression, decompression and transmission of a data packet in a network defined above.

[0169] The data carriers may be any entity or device capable of storing the programs. For example, the carriers may comprise a storage means, such as a ROM, for example a CD ROM or a microelectronic circuit ROM, or a magnetic recording means such as a hard disk. Furthermore, the carriers may be transmissible media such as an electrical or optical signal, which may be conveyed via an electrical or optical cable, by radio or by other means. The programs according to the invention may in particular be downloaded from a network such as the Internet. Alternatively, 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. Brief description of the figures

[0170] The invention will be better understood upon reading the following description, given as a example, and made with reference to the attached drawings in which:

[0171] [Fig.l] represents an entity for managing the compression of a data packet transmitted in a network and an entity for managing the decompression of a data packet.

[0172] [Fig 2] represents an example of execution of a learning algorithm for learning a set of compression rules. [Fig 2] is subdivided into four sub-figures 2.A, 2.B, 2.C and 2.D, corresponding to four learning steps.

[0173] [Fig.3] represents an example of calculation of ex field compression potentials pleading the interest of using a corrected field compression potential.

[0174] [Fig.4] represents an example of calculation of compression potentials of ex values pliciting the difference between a value's compression potential and its frequency of occurrence.

[0175] [Fig.5] represents another example of calculation of compression potentials obtained by counting the values ​​taken by a section by arranging them according to a binary tree.

[0176] [Fig.6] represents an example of a data packet transmission system according to the invention, showing the deployment of such a system in a network comprising a gateway and two terminals.

[0177] [Fig.7] represents another example of a packet transmission system of data according to the invention, showing the deployment of such a system in a network comprising two routers. Detailed description

[0178] [Fig. 1] represents a compression management entity 100 of a data packet P transmitted in a network NET and a decompression management entity 200 of a data packet P.

[0179] The two compression 100 and decompression 200 management entities belong to the same network NET which is a communication network using protocols for transmitting data packets P. The data packet P comprises sections taking respective values. The two compression 100 and decompression 200 management entities have the same set of compression rules RS, this set comprising compression rules which themselves comprise compression operations which apply to values ​​taken by the sections of a data packet P.

[0180] The compression management entity 100 comprises a module 101 for applying at least one compression operation to a section value of a data packet P, said operation being included in a compression rule belonging to a set of RS compression rules, said RS set being obtained by learning.

[0181] The compression management entity 100 comprises a module 102 for transmitting a data packet P to which at least one compression operation has been applied and data representative of the compression rule to which said operation belongs.

[0182] The decompression management entity 200 comprises a module 201 for receiving a data packet P to which at least one compression operation has been applied to a section value of said packet P, said operation being included in a compression rule belonging to a set of compression rules RS, said set RS being obtained by learning, and data representative of the compression rule to which said operation belongs.

[0183] The decompression management entity 200 comprises a module 202 for applying to a data packet P at least one symmetrical decompression operation of a compression operation applied to a section value of said packet P.

[0184] The transmission of the data packet P by the module 102, and the reception of the same packet P by the module 201, is represented by an arrow connecting the module 102 to the module 201, labeled by the packet P. The transmission and reception of the data representative of the compression rule applied to the packet P are not represented in [Fig.l]. In certain embodiments, the data packet P and the representative data are transmitted and received jointly.

[0185] Since the compression management entity 100 and the decompression management entity 200 have the same set of compression rules RS obtained by learning, the decompression management entity 200 will be able to use the data representative of the compression rule applied to the packet P to find it. It is then easy to determine the symmetrical decompression operation. The module 202 for applying a symmetrical decompression operation then makes it possible to restore the data packet P as it was before the application of a compression operation.

[0186] The data packet P has therefore been transmitted in the network after application to the values ​​taken by the sections of the packet P of one or more compression operations by the compression management entity 100. The transmission of the packet P once compressed makes it possible to achieve significant savings in energy and hardware resources. The packet P is then restored by the decompression management entity 200 for subsequent use. Since the set of compression rules RS is obtained by learning, the method does not require intervention by an expert, and it can adapt to changing contexts by repeating the learning algorithm to have sets of compression rules RS adapted to the context.

[0187] [Fig 2], for its part, represents an example of execution of an embodiment of learning a set of compression rules according to an embodiment of the method of the invention. [Fig 2] is subdivided into four sub-figures (2.A, 2.B, 2.C and 2.D) which correspond to four steps S0, S1, S2 and S2' of the learning according to this embodiment.

[0188] [Fig 2].A corresponds to the initial state S0 of the learning and to the first step.

[0189] The learning set E consists of N=10000 packets. These N=10000 packets contain a header formed, in our example, of four fields Cl, C2, C3, C4. In our example, each of the fields Cl, C2, C3, C4 has a length of 8 bits, indicated by the mention L=8.

[0190] For the first field Cl, the N=10000 packets of the training set E all have the same unspecified value yj. The frequency fl of occurrence of the value y^ is therefore 100%.

[0191] For the second field C2, the N=10000 packets of the training set E have three values ​​y*, y^ and y^ which are again unspecified. Only the frequencies of appearance f1, and y3 of these three values ​​are specified. They are respectively 80%, 10% and 10%.

[0192] For the third field C3, the N=10000 packets in the training set have four values ​​y', y^ y| and y^ that appear in the training set with the same frequency of 25%. The values ​​are specified as a sequence of 8 bits, and we see that they are differentiated by the prefix.

[0193] For the fourth field C4, the N=10000 packets in the training set have four values ​​y|, y^ y^ and y* which also appear in the training set with the same frequency of 25%. The values ​​are specified as a sequence of 8 bits, but here, unlike the values ​​in the C4 field, these four values ​​have an identical prefix on the first 6 bits.

[0194] This example is of course fictitious, and chosen to illustrate the operation of the compression rule learning algorithm. The different frequencies of appearance and values ​​taken will make it possible to illustrate the different compression operations that can be added to the compression rules during learning according to one embodiment. In the example presented here, the compression will only seek to compress the values ​​taken by the fields C1, C2, C3 and C4 of the headers of the data packets and not the delimited sections of the packet payloads, but the principles would remain the same in the case where one would seek to learn compression rules that apply to sections of the packet payloads.

[0195] It is assumed that the frequencies of occurrence of the different values ​​are independent pendant to each other. For example, we assume that in the 8000 packets of the training set E for which the field C2 takes the value y?, the four values ​​of the fields C3 and C4 appear in an equiprobable manner, as in the complete training set E. These values ​​therefore each appear respectively in 2000 packets of the 8000 packets where the field C2 takes the value y^. We assume that this property is also true when combining the different field values. For example, in the 2000 packets for which both the field C2 takes the value y^ and the field C3 takes the value y|, then the frequencies of appearance of the values ​​of the field C4 are also equiprobable, and we therefore find 500 packets for each of these four values. This assumption will allow us to simplify the presentation of an embodiment of the algorithm without losing generality.

[0196] The frequencies of occurrence are presented as a percentage in [Fig 2].A and following, but, for the calculations to follow, the frequencies are strictly positive quantities, less than or equal to 1. A percentage of 100% corresponds to a quantity of 1; a percentage of 80% to 0.8; a percentage of 25% to 0.25 and a percentage of 10% to 0.1.

[0197] It is possible to calculate PCC field compression potentials for the four fields C1, C2, C3 and C4.

[0198] According to one embodiment of the invention, the field compression potential PCC is calculated, for a given section, according to the formula N(L - H), in which N is the number of times that the section appears in the training set; L is the length of the section expressed in bits and H is a quantity called the field entropy estimator which is calculated according to the formula ]] — y ( f ) ^ans ^aclue^e K is the number of different values ​​^'1 that the section takes in the training set and / . is the frequency of occurrence of the value Vu

[0199] In this embodiment and in this example, the formula is used in which the section, here one of the four fields C1, C2, C3 or C4, is of fixed length. This is indeed the case in this example, with a length L equal to 8 bits for the four fields C1, C2, C3, C4.

[0200] For the Cl field, the calculation therefore gives the following result:

[0201] PCC( Cl) = 10000^8-(-yjlogQ( / }))= 10000*(8-(- l*o)) = 80000

[0202] For field C2, the calculation therefore gives the following result:

[0203] = 10000*(8- ( ) - / |l <l%d) -.C’CC ) ) = 10000*(8- (0.8*0.3219 + 0.1*3.322 + 0.1*3.322)) = 10000*( 8-0.92192) = 70781

[0204] For fields C3 and C4, the calculation gives the same result because the frequencies of occurrence of the values ​​are the same in both fields. The result is given below:

[0205] PCC(C3) = 10000*(8- ( -. / >§,( / ]) -, / >g2( / ') - / >g2(. / t) ) ) = 10000*(8- (4*0.25*2) ) = 60000 = PCC (C4)

[0206] In step S0, in the embodiment presented here, the set of compression rules RS is initialized with a single rule R0. This rule is a rule that matches all possible values ​​of all fields of the packets of the training set E, but does not apply any compression to these values.

[0207] These elements correspond to the initial state of the learning algorithm. We will now detail the first step of the reinforcement learning algorithm of the RS compression rule set, for one embodiment among several. This first step is also represented in [Fig 2].A.

[0208] The reinforcement learning algorithm for the RS compression rule set begins with the selection of a rule from the RS set. Since the RS set only includes rule R0 at this stage, it is this rule R0 that will be selected. We will see in later steps how the selection can be carried out when there are several rules in the RS compression rule set.

[0209] From the rule R0, several candidate rules will be created in the exemplary embodiment presented here. The first step to create the candidate rules consists in our example of choosing a field from among the fields Cl, C2, C3, C4. For this, the embodiment of the learning algorithm uses the field compression potentials PCC(Cl), PCCC(C2), PCC(C3) and PCC(C4). In general, the algorithm will here choose a section using the field compression potentials for all the sections whose taken values ​​are sought to be compressed.

[0210] This calculation of the PCC field compression potentials must take into account the compressions carried out by the compression rules present in the set of compression rules RS. For this, a possible embodiment is to carry out a partition of the training set E according to the compression rules of the set RS, and to calculate the PCC field compression potentials for each rule of the set RS using the subsets of the training set E attributed to each rule. At this initial stage, only the rule R0, which does not carry out any compression, is present. The calculation of the PCC field compression potentials is therefore that which was presented above.

[0211] Since the field compression potential PCC(Cl) is the largest among the four potentials PCC(Cl), PCC(C2), PCC(C3) and PCC(C4), it is this field Cl which will be chosen to create the candidate rules from the selected rule R0.

[0212] In our exemplary embodiment, three candidate rules will be created, corresponding to the addition to the selected rule R0 of three possible compression operations on the values ​​taken by the field Cl in the packets of the training set E.

[0213] The first candidate rule created consists of adding a delete operation. To select the value to be erased, in our implementation example, value compression potentials PCV are calculated. In this case, as the field Cl takes a single value y^ in the training set E, it is of course this value that will be erased.

[0214] The second candidate rule created consists of adding a replacement operation by an index of a dictionary. In this case, since there is only one value taken by the Cl field, the added operation consists of replacing this single value yj by a dictionary index. Since the dictionary in question would be used for a single value, it would only include a single bit.

[0215] The third candidate rule created consists of adding an operation to erase the prefixes common to the values ​​taken by the field. Here, as there is only one value taken by the Cl field, the added operation consists of erasing the value itself, since all the prefix bits are obviously common for this single value.

[0216] The next step of the learning algorithm will consist of retaining a rule from among the candidate rules created to add it to the set of compression rules RS. For this, the reward function used in our embodiment is the compression performed by the candidate rules on the packets of the training set E.

[0217] The first candidate rule would achieve the erasure of the value yj taken by the field CL As this field has a length of 8 bits, and the value yt appears in the 10000 packets of the training set E (its frequency of appearance is 100%), the compression achieved by this candidate rule is 8*10000, or 80000 bits.

[0218] The second candidate rule would replace the value y| taken by the Cl field with an index of a dictionary. Since this index is one bit long, the compression achieved by this rule for a packet would not be 8 bits, but only 7 bits. Multiplying by the 10,000 packets in the training set, the compression achieved by this candidate rule is 70,000 bits.

[0219] The third candidate rule would perform the erasure of the prefix common to the values ​​taken by the CL field. As the Cl field, in the training set E, only takes the value y*, then all of this value would be erased by the operation of erasing the common prefix. This third candidate rule therefore performs the same compression as the first candidate rule, namely 80000 bits.

[0220] In our embodiment, the chosen candidate rule is the one that achieves the best compression. In the event of a tie, a selection criterion can be defined. In our embodiment, the erase operation is favored over the replacement by an index, itself in front of the common prefix deletion operation. It is therefore this compression rule RI, noted ^1)1' Va added to the RS set of compression rules. The notation uses the acronym ns for the English not sent to indicate a value not transmitted. A compression rule is noted in our figures as a sequence of operations placed in brackets.

[0221] At this stage of the learning algorithm, the set of compression rules RS therefore comprises two rules, the initial rule RO and the rule RI which has just been added to it.

[0222] In the embodiment presented here, when an added rule applies to all the data packets of the training set to which the selected rule applies, then the selected rule is removed from the set of compression rules. This is indeed the case here: the initial rule RO, which does not perform any compression, applies to all the packets of the training set E and this is also the case for the rule RI which erases the value yj, since this value is taken by 100% of the Cl fields of the packets of the training set E.

[0223] The initial rule R0 is therefore removed from the set RS, which is represented in [Fig 2].A by the crossed-out box placed on it.

[0224] We will discuss the stopping criteria of reinforcement learning in our embodiment later, and we assume that the learning algorithm will continue well. We will therefore now see the execution of the next step SI of reinforcement learning in our embodiment, represented by sub-[Fig 2].B.

[0225] [Fig 2].B corresponds to the SI state of learning, after the first step, and to the second step of reinforcement learning according to one embodiment.

[0226] The training set E is not modified, and still includes 10000 packets, which include 4 fields Cl, C2, C3, C4 of a length L of 8 bits each.

[0227] However, the set of compression rules RS being learned has been modified and now includes the rule RI for erasing the value yj, rule noted RI: Vj) J This has an influence on the calculation of the compression potentials of PCC field in our embodiment, and is represented in [Fig 2].B by the square box crossing out the entire Cl field in the training set E.

[0228] The calculation of the field compression potentials PCC uses the formula N(L - H), in which N is the number of times the field appears in the training set. To take into account the modification of the set of compression rules, it is sufficient, in an exemplary embodiment, to apply the compression rules of the set RS to the training set E. Here, the application of the rule RI will erase all occurrences of the Cl field, since this Cl field takes a unique value yj erased by the RI compression rule. Therefore, the calculation of the field compression potential PCC(Cl) taking into account the addition of the RI rule to the RS compression rule set will use a quantity N=0. We therefore have PCC(Cl) = 0 in the SI step.

[0229] It is easy to understand that, since the unique value taken by the field Cl is erased by the rule RI for all the packets of the training set E, this field no longer has any compression potential. This intuition is well captured by the calculation of the field compression potential according to the embodiment presented here.

[0230] We see that the formula for calculating a field compression potential PCC can be applied to several contexts and in particular here take into account the evolution of the set of compression rules RS during the successive learning stages.

[0231] The other calculations of field compression potentials PCC(C2), PCC(C3) and PCC(C4) are unchanged compared to the calculations carried out in the first step S0, since the rule RI does not carry out any operation on the values ​​taken by the fields C2, C3 and C4.

[0232] We will see in the description of the following steps how calculations of field compression potentials PCC taking into account the compression rules belonging to the RS set make it possible to select a rule from the RS set of compression rules in order to create candidate rules. As the RS set only includes a single RI rule at this SI step, it is this RI rule which is selected in our example.

[0233] As seen previously, once the RI rule has been selected, a field must be selected to create one or more candidate rules. In our embodiment, the field with the highest PCC compression potential is chosen, and this is therefore field C2.

[0234] As seen previously, three candidate rules will be created, adding to the RI rule a compression operation on the selected C2 field. The first will be a value deletion operation, this value being chosen according to the value compression potentials. As the C2 field is of fixed length, the value compression potentials give the same rankings as the frequency of occurrence. The value will be the one that appears most frequently and therefore will be the value y* which appears with a frequency of 80%. The second candidate rule will consist of the addition of a dictionary operation. As there is no dictionary operation for the C2 field, it is therefore a creation which will replace two values ​​taken by the C2 field, namely the value v\, whose value compression potential is the most high and one of the two values ​​y* and y whose value compression potentials are equal. Let us assume that the value y^ is chosen randomly. The third candidate rule consists of adding a prefix erasure operation, and it is assumed that the values ​​taken by the C2 field are similar to those taken by the C3 field, and therefore do not have a common prefix.

[0235] The next step of the learning algorithm will consist of retaining a rule from among the candidate rules created to add it to the set of compression rules RS. For this, the reward function used in our embodiment is the compression carried out by the candidate rules on the packets of the training set E.

[0236] The first candidate rule performs the erasure of the value \ / \ which has a length of 8 bits, and which appears in 8000 packets of the training set E. The compression performed by this candidate rule is therefore 64000 bits.

[0237] The second candidate rule replaces the values ​​y^ and y^ with an index of a dictionary, which must therefore use at least one bit. The second candidate rule therefore replaces a value with a length of 8 bits with an index of one bit. It therefore performs a compression of 7 bits for each packet where it is applied. In this case, this second rule is applied for 9000 packets, those for which the value of the C2 field is taken by or y^. The compression achieved is therefore 7*9000 = 63000 bits.

[0238] The first candidate rule therefore achieves better compression than the second.

[0239] It is assumed that the third candidate rule is not effective because the values ​​taken by the C2 field do not have a common prefix.

[0240] It is therefore the first candidate rule which will be retained and added to the set of compression rules RS, giving the rule R2. This is noted in figure 2.B as follows: R2: [ / 75 ( Vj ) + in order to show that the operation of erasing the value V^, noted y^), is added to the operation of erasing the value yj which was already present in RL We recall that the rule R2 was created by selecting the rule RI and adding a compression operation to it, here erasing the value y?.

[0241] In this step SI, unlike step S0, the rule R2 which has just been added to the set RS of compression rules does not apply to all the packets of the training set E to which the rule RL applies. Indeed, the rule RI applies to all the packets of the training set E, whereas the rule R2 only applies to the 8000 packets of the training set E in which the field C2 takes the value yz|. For this reason, in the embodiment presented here, the rule RI is not deleted from the set RS of compression rules which will now include both rules RI and R2.

[0242] In the embodiment presented in this example, the reinforcement learning algorithm will use a partition of the training set E by assigning subsets of the training set E to the compression rules of the set RS. As long as there was only one rule RO then RI in the set RS, this was not important. Here, we will assign the 8000 packets of the training set E for which the rule R2 applies to it, and create a dedicated subset, and assign the residue of 2000 packets to the rule RI.

[0243] This assignment of packets from the training set E to rules from the RS set is done in our exemplary embodiment at the time of adding a new rule to the RS set of compression rules, at the time of deciding whether or not to delete the selected rule from the RS set. Since the created rule is created from the selected rule by adding a compression operation to it, the created rule will necessarily apply to a subset of the packets to which the selected rule applies and is assigned. If the created rule applies to all packets to which the selected rule applied, the learning algorithm will assign all packets of the selected rule to the created rule, and it is not necessary to keep the selected rule in the RS set of compression rules.If the created rule does not apply to all packets of the selected rule, the created rule is assigned the packets to which it applies and the created rule is kept in the RS set of compression rules and assigned the residue of packets to which the created rule does not apply.

[0244] This partition will allow us to refine the calculation of field compression potentials as we will see in the next steps.

[0245] We again assume that a stopping criterion is not satisfied and will present the next step of the reinforcement learning algorithm.

[0246] [Fig 2].C corresponds to the state S2 of learning, as obtained after the second step, and to the third step of reinforcement learning according to one embodiment.

[0247] At this stage S2, the set RS of compression rules comprises two rules RI and R2. To make a selection from these two rules in order to create candidate rules, a possible embodiment uses the calculation of field compression potentials PCC according to a partition of the training set E into subsets attributed to the rules RI and R2. We have seen previously, during the description of the end of the second stage, how to carry out this partition.

[0248] In our embodiment, 8000 packets of the training set E have been assigned to rule R2, those for which rule R2 applies, and the residue of 2000 packets is assigned to rule RI. The field compression potentials PCC(Cl), PCC(C2), PCC(C3) and PCC(C4) are then calculated for the two subsets realizing the partition of the training set E, by applying to these packets the compression rule assigned to them.

[0249] For the field Cl, whether in the 2000 packets assigned to the rule RI or the 8000 packets assigned to the rule R2, the respective application of the rules RI and R2 will erase the value yj taken by the field Cl. The field Cl therefore does not appear in any packet of the two subsets, and the quantity N used in the formula for calculating the field compression potential PCC(Cl) is therefore zero in both cases. In other words, whether for the packets assigned to the rule RI or for those assigned to the rule R2, the field compression potential PCC of the field Cl is zero. This is easy to understand, since these two rules RI and R2 erase the unique value V* taken by the field CL

[0250] For the field C2, it is necessary to make a differentiated calculation of the field compression potential PCC(C2) for the two subsets attributed respectively to the rule RI and to the rule R2.

[0251] For rule RI, the packets of the training set E which are attributed to it are those to which rule R2 does not apply. These are therefore the 2000 packets in which the field C2 does not take the value y^ but, in an equiprobable manner, takes one of the two values ​​y^ or y^. In these 2000 packets, the field C2 does appear, and the quantity N is therefore 2000 here. The formula for calculating the field compression potential PCC(C2) is therefore: PCC(C2) =N*(l-( - / ,'log2(^) ) ) = 2000*(8-( -0.5(-1) -0.5(-1) ) ) =2000*7= 14000

[0252] For rule R2, however, the 8000 packets of the training set E which are assigned to it are those to which rule R2 applies, a rule which includes the compression operation consisting of erasing the value y^. The field C2 is therefore completely erased in the subset of packets assigned to rule R2. In other words, the field C2 does not appear in this subset and here we have a zero magnitude N and therefore a zero field compression potential PCC(C2).

[0253] The two values ​​for the field compression potential PCC(C2) are present in [Fig 2].C, namely 14000 for the subset attributed to rule RI and 0 for the subset attributed to rule R2.

[0254] For the calculation of the field compression potentials PCC(C3) and PCC(C4), we saw above that we made the assumption that the frequencies of appearance of the different values ​​taken by the fields C3 and C4 are the same in the two subsets attributed to the rule RI and to the rule R2. For four equiprobable values, the quantity H(C) - is -(4*(0.25*(-2)), or 2. In other words, for the rule RI, which was assigned to 2000 packets, the field compression potentials PCC(C3) and PCC(C4) are worth 2000*(8-2), or 12000; whereas for rule R2, which was assigned to 8000 packets, the field compression potentials PCC(C3) and PCC(C4) are worth 8000*(8-2), or 48000. These two values ​​are well presented in [Fig 2].C.

[0255] All of these field compression potentials are used to determine the selected rule.

[0256] One possible embodiment is to add the PCC field compression potentials for a given rule. In this case, rule RI would be assigned a PCC field compression potential of 0 + 14000 + 12000 + 12000 = 38000 while rule R2 would be assigned a PCC field compression potential of 0 + 0 + 48000 + 48000 = 96000. In this case, rule R2 would be selected.

[0257] Another possible embodiment is to calculate the PCC field compression potential of a rule by taking the maximum of the PCC field compression potentials for this rule rather than by performing the sum. This embodiment also leads us to select rule R2.

[0258] The creation of candidate rules will therefore be done from rule R2.

[0259] For rule R2, the two fields C3 and C4 have the same communication potential field pressure PCC(C3) = PCC(C4) = 48000 while fields Cl and C2 have zero PCC field compression potential. In these cases of equality, the selection between fields C3 and C4 to decide which candidate rules will be created can be done randomly or by following another criterion, for example order of occurrence. Suppose that field C3 is selected.

[0260] Three candidate rules are then created by starting from rule R2 and adding a compression operation working on the values ​​taken by field C3. We recall that the four values ​​taken by field C3 are equiprobable and do not have common prefixes, as can be seen in [Fig 2].C. The candidate rule consisting of the deletion of a common prefix will therefore have no compression efficiency.

[0261] For the candidate rule which consists of adding to rule R2 an operation of erasing a value taken by the field C3, as the values ​​are equiprobable and the four values ​​have the same length, because the field C3 is of fixed length, they will therefore have the same value compression potentials. Any value can therefore be selected to be erased. Here again, an embodiment in the event of equality can be to make a random draw or to take the first or the last value to occur or any other method of choice.

[0262] Similarly, for the candidate rule which consists of adding to rule R2 an operation of replacing a value by an index of a dictionary, the value compression potentials will not guide the choice of values ​​to be replaced by a dictionary index. Two values ​​will be selected randomly or according to an order criterion.

[0263] The compression achieved by the erasure operation is calculated for the 8000 packets to which rule R2 applies. Whatever the value erased, it appears in a quarter of the 8000 packets, therefore 2000 packets. The compression achieved by the erasure operation would therefore be 2000 * 8 = 16000 bits.

[0264] The compression achieved by the dictionary index replacement operation is also calculated for the 8000 packets to which rule R2 applies. Two values ​​are replaced; that is, for half of the packets in question. The compression achieved by the dictionary index replacement operation is therefore 4000 * 7 = 28000 bits. Since the index is 1 bit, the compression for each packet is 7 bits, and not 8 bits as for an erasure.

[0265] The best compression is that achieved by the operation of replacing by an index. In Figure 2.C, such an erasure operation is noted 'c The term "map" comes from the English mapping. We assume that the random drawing of the two values ​​to be replaced by a dictionary index gave the two values ​​y' and The complete R3 rule therefore includes three operations, namely the two deletion operations already present in R2 to which we add the new operation, and is noted as follows: : ( y} ) + ns(^) + map(Vt V|)]-

[0266] Rule R3 is therefore added to the set of compression rules RS. It applies to 4000 packets from the training set E (half of those to which rule R2 applied) which will be assigned to it for the calculation of the PCC field compression potentials in the next step. Rule R2 retains 4000 packets, those to which compression rule R3 does not apply, and is not removed from the set of compression rules RS. Finally, the 2000 packets assigned to rule RI remain assigned to it.

[0267] [Fig 2].D corresponds to the state S2' of learning. This state corresponds to the state obtained after the second step. We have seen that, in this state, the rule R2 is selected to create candidate rules, and that, for this rule, the fields C3 and C4 have the same field compression potential, namely PCC(C3) = PCC(C4) = 48000.

[0268] We saw in the previous step described in [Fig 2].C how the learning algorithm worked if the candidate rules constructed from rule R2 sought to compress field C3. We will see here the progress of the algorithm learning according to an example of realization if it is the C4 field which is chosen instead, knowing that these two fields have the same PCC field compression potential.

[0269] In this case, we recall that the four values ​​taken by the field C4 are equiprobable, and that the compression achieved by the candidate rules is estimated on the 8000 packets attributed to the selected rule R2.

[0270] The first candidate rule will be rule R2 to which is added an operation of erasing a value. Knowing that the four values ​​taken by the field C4 are equiprobable, the value compression potentials will be equal. By choosing any of the four equiprobable values, the addition of an erasure operation would lead to an erasure of a value of length 8 bits appearing in 2000 packets (a quarter of the 8000 packets allocated to R2), i.e. a compression of 16000 bits.

[0271] The second candidate rule will be rule R2 to which is added a value replacement operation by a dictionary index. As seen for [Fig 2].C, the compression achieved by the replacement operation by a dictionary index is calculated for the 8000 packets to which rule R2 applies. Two values ​​are replaced; that is, for half of the packets in question. The compression achieved by the replacement operation by a dictionary index is therefore 4000 * 7 = 28000 bits. Since the index is 1 bit, the compression for each packet is 7 bits, and not 8 bits as for an erasure.

[0272] The third candidate rule will be rule R2 to which is added an operation of erasing a common prefix. This candidate rule is an opportunity to illustrate the operation of field bit compression potentials.

[0273] These potentials are calculated for the 8 ranks numbered from 0 to 7, for the values ​​taken by the field C4 in the relevant packets of the training set. These four values ​​y^, y^, y^ and y^ are equiprobable and have the same value for the first 6 bits, which are all worth 1. The frequency of appearance of bit 1 at rank 0 is therefore worth 1, and conversely, the frequency of appearance of bit 0 at rank 0 is 0. As a logarithm of a zero frequency is not defined, the entropy estimator of a field bit calculated according to the formula - [f..log2(f.)+ ( 1- / ,). log^ 1 - / .)) is by convention 0 in this case, and the field bit compression potential for rank 0 is then 1.

[0274] The field bit compression potentials are also worth 1 for the first 6 ranks, since the bits of the first six ranks of the values ​​taken by the C4 field are identical in all the packets considered. In this case, the bits are all worth 1, but the result is the same, if, for a given rank, all the bits are worth 0.

[0275] For ranks 7 and 8, bits 0 and 1 are equiprobable since the four values ​​y^, y?, V4 and y* are also equiprobable. The field bit compression potentials for these ranks 7 and 8 are then:

[0276] 1- (-(o.5*log20.5 + (1-0.5) *log2( 1-0.5) )) = 1- (-(0.5*(-l) + 0.5*(-l) )) = 1-1 = 0

[0277] The field bit compression potential is in fact cancelled for a rank where bits 0 and 1 are equiprobable.

[0278] Using the method where the field bit compression potentials are multiplied together, starting from the rank 0 bit, and using a threshold, we see how it is possible to detect that packets have common prefixes for certain fields. In this case, in the example presented here, the product of the field bit compression potentials goes from 1 to 0 between rank 6 and rank 7. It is therefore easy to see that the candidate rule created by adding a prefix erasure operation to rule R2 will consist of erasing the first six bits of the values ​​taken by field C4. This rule R3 is noted as follows: R3: [ns( + ns( V2) + ws7?(C4,6)]' the acronym "msb" meaning most significant bits, that is to say the English term to indicate the prefix bits, C4 indicating that the rule applies to the values ​​taken by the field C4 and 6, that the first 6 bits are concerned.

[0279] The compression achieved by this candidate rule is the deletion of six bits of the values ​​taken by the field C4 in the 8000 packets allocated to the rule R2, since the common 6-bit prefix is ​​present for the four values ​​taken by the field C4. The compression achieved by this third candidate rule is therefore 8000*6 = 48000 bits and it is indeed this rule R3 which is added to the set of compression rules RS in this step S2', which differs from step S2 in that the creation of a candidate rule is done by targeting the field C4 instead of the field C3.

[0280] After step S2' as after step S2, other steps of the learning algorithm of the set of compression rules RS can take place which will add compression operations taking into consideration the remaining compression potentials to finally obtain an effective compression of the learning set E.

[0281] As for stopping the learning algorithm, several possibilities exist.

[0282] The first possibility is to calculate the compression achieved by a new rule added to the RS compression rule set and to add it and iterate the learning algorithm again only if the addition of this new rule improves the compression achieved on the packets in the training set. One might think that adding a compression rule to the RS compression rule set will necessarily improve the compression achieved on the training set E, but it must be taken into account that an identifier of the compression rule used to compress a data packet header must be transmitted at the same time as the compressed packet in order to perform the decompression. For a set RS comprising two compression rules, a single bit is sufficient to identify the compression rule used. For four rules, two bits are necessary, and so on. We did not take this effect into account when we specified compression calculations to select among the candidate rules, but this effect must be taken into account when determining a stopping criterion for the training algorithm.Furthermore, this effect is retroactive, i.e., compression calculations that are performed when the RS set of compression rules includes four rules, which can be designated by two bits, must be repeated for all compression rules when the RS set increases to five rules, which therefore requires a designation of all rules by at least three bits.

[0283] Another possibility is to give a maximum size to the RS compression rule set. For example, it may be decided to limit the size of the RS set to 8 compression rules, in order to ensure that it is possible to identify the compression rules used to compress data packet headers with only 3 bits.

[0284] These two possibilities can be combined, namely that a maximum number of compression rules can be defined, but the learning algorithm can stop before this maximum number is reached because the compression achieved by the last added rule is zero or less than a given threshold.

[0285] [Fig.3], for its part, represents another example of a calculation step of the reinforcement learning algorithm which illustrates the interest of calculating a field compression potential corrected by a factor.

[0286] In the example of [Fig.3], we are at step S0 of the reinforcement learning algorithm. The training set E comprises N = 100 packets. The headers of these 100 packets are formed by two fields Cl and C2 of different lengths, unlike the example of [Fig 2] where the four fields were of the same length. The Cl field is of length L = 2; the C2 field is of length L = 10, the two lengths being expressed in number of bits. As in the previous example, the sections of packets that we will seek to compress are the two fields Cl and C2.

[0287] As for the values ​​taken by the fields in the training set E, the field Cl takes a single value, so the frequency of appearance of this value vj is worth f1 = 100% - For the field C2, on the other hand, it presents a different value in the 100 packets from the training set E. For the field C2, we therefore have 100 training frequencies which are all worth 1%, which is noted in figure 3: 4=4=-=400^

[0288] We recall that, in our exemplary embodiment, the formula for calculating a field compression potential PCC is: PCC — N(L - H) where N is the size of the set, L the length of the section and H an estimator of the entropy. The formula for calculating the entropy estimator is: [Og j in which K is the number of different values ​​[r] that the section takes in the training set and f. is the frequency of occurrence of the value Vh

[0289] The entropy estimator seeks, as its name indicates, to estimate the entropy that the values ​​taken by the section seem to manifest in view of the learning set E. The lower the entropy, the more the values ​​taken by the section will be ordered and therefore the easier it will be to compress them, for example with a rule for erasing the value, and therefore the more the section is of interest to be compressed, and therefore the more interesting it is for the learning algorithm to seek to create candidate rules for this section, the best rule being added to the set of compression rules RS.

[0290] For example, when a section takes a single value in the training set E, the frequency of appearance of this single value is therefore 100%, or 1, the logarithm of this frequency is therefore 0 and the entropy estimator also. The entropy estimator is therefore at its minimum. The field compression potential is then PCC = N * L, as is the case for the field Cl in the example of [Fig.3]. Here we have: PCC(Cl) = 100 * 2 = 200, which is the maximum potential for a field of length 2 which appears in 100 packets. Indeed, the compression of the field Cl will be done by an erasure rule of the single value taken by Cl in the training set E, i.e. a maximum compression of 200 bits.

[0291] A defect of the entropy estimator, which appears in the example of [Fig.3], is that this quantity grows at too low a rate even in the presence of maximum entropy. This is what we see in the field C2. The entropy taken by the values ​​of the field C2 in the training set E is maximum, since here we have 100 different values ​​for the 100 packets, the 100 values ​​therefore have the same frequency of appearance, namely 1%, that is to say 0.01. The logarithm of this frequency is -6.644. The calculation of the field compression potential is detailed in the figure and we see that the entropy estimator is finally worth 6.644, which is the maximum value that it can take in a training set E of 100 packets. But since the field C2 is of length 10, the field compression potential of C2 is PCC(C2) = 100 * (10 - 6.644) = 335.6 which is therefore greater than the field compression potential pressure of the Cl field, PCC(Cl), which is 200. The entropy estimator does not grow enough to compensate for the effect of the greater length of the C2 field compared to that of the Cl field.

[0292] It can be noted that if the length of the field C2 were L = 8 bits instead of being 10, then the field compression potential of C2 would be PCC(C2) = 100 * (8 -6.644) = 135.6, which is less than the field compression potential PCC(Cl) = 200. In other words, the low score of the entropy estimator would not be counterbalanced by the length of the field here, while the field C2 would still be 8 bits long, compared to the 2-bit length of Cl.

[0293] In the case where the length of the field C2 is 10 bits, using the field compression potential PCC as with its initial formula would therefore lead to valuing the field C2, which would be ineffective, because the compression brought about by a first rule would be for example a rule of replacement by the index of a dictionary, which would therefore replace two values ​​of 10 bits by an index of one bit, i.e. a compression of 18 bits in the training set E for the two values ​​concerned by the dictionary taken by the field C2, among the 100 values ​​taken, to be compared to the 200 bits of compression obtained by the rule of erasure of the unique value y' taken by the field Cl.

[0294] To correct for this effect, it is preferable to introduce a correction factor CORR to the field compression potential taking into account the number K of different values ​​that the field C takes. The simplest formula for the correction factor CORR is CORR = 1 - K / N, where K is the number of different values ​​taken by the field and N the size of the set concerned. Rather than using the field compression potential PCC as given by the formula to select the field to be compressed, we will multiply it by the correction factor CORR.

[0295] For the field Cl, as this field takes a unique value in the training set E, the correction factor CORR is 1 - 1 / 100 or 0.99 and the corrected compression potential PCC(Cl) * CORR is 198.

[0296] For the field C2, as this field takes 100 different values ​​in the 100 packets of the training set E, the correction factor CORR is worth 1 -100 / 100 or 0 and the corrected compression potential PCC(C2) * CORR is also cancelled.

[0297] [Fig.3] finally shows the impact of the choice of whether or not to apply the CORR correction factor to the learning algorithm. We are at the initial stage S0 where the set of compression rules only includes rule R0 which does not apply any compression operation to the packets of the set E.

[0298] If the choice is made not to use a CORR correction factor, which is indicated in [Fig.3] by the No-corr line, we will see that after selecting the R0 rule, It is the field C2 that will be selected to create the candidate rules. Then, if we assume that no significant common prefix appears among the 100 values ​​taken by the field C2 in the training set E, the best RI rule among the candidates will be that of creating a dictionary and replacing two values ​​by their indexes.

[0299] If the choice is made instead to use the correction factor CORR, which is indicated in Figure 3 by the line Corr, it is indeed the field Cl which will be selected, and the added rule RI' will be that of erasing the unique value y J taken by the field Cl. In this case, as for the calculation example of [Fig 2], the rule RO can be removed from the training set because all the packets processed by the rule RO are also processed by RI'. This is indicated by the crossed-out box placed on the rule RO in the definition of the set of compression rules RS.

[0300] We have seen an example of a formula for calculating the correction factor CORR but many other examples are possible. For example, we can say in general that the correction factor CORR is worth j in which N is the number of times that the section appears in the training set; K is the number of different values ​​that the section takes in the training set; and a, and F are chosen positive coefficients. The example seen previously where CORR is 1 - K / N is then obtained for the values ​​a = 1, = 0 and y = 0.

[0301] Other choices of values ​​are possible for the positive coefficients a, and F which can take for example the values ​​a=l,^=lety = 0.

[0302] In this case, the correction factor takes the value ] _ and is therefore exactly 1 when the section takes a single value, i.e. for K = 1. Conversely, the correction factor does not cancel out when K — N which can be interesting to maintain a certain compression potential even on a section which still seems to be very random since all the values ​​taken by the section in the learning set are different.

[0303] More complex, non-affine formulas can be used to define the correction factor CORR by taking into account the values ​​K and N, ensuring that the correction factor CORR always remains positive, preferably between 0 and 1, and remains lower when the number K of different values ​​taken by the section among the N packets is large.

[0304] [Fig.4], for its part, represents another example of a calculation step of the learning algorithm which illustrates the impact of the size of the values ​​on the compression potential of each value.

[0305] In the example presented here, the training set E comprises N = 100 packets. The section we are interested in is a field C, which happens to be of length variable. Field C takes three values ​​VI, V2 and V3 in the training set E.

[0306] The value V1 is of length L1 = 2 bits. It has an occurrence frequency of 80%, so it appears in NI = 80 packets of the training set E.

[0307] The value V2 is of length L2 = 100 bits. It has a frequency of occurrence of 15%, so it appears in N2 = 15 packets of the training set E.

[0308] The value V3 is of length L3 = 1000 bits. It has a frequency of occurrence of 5%, so it appears in N3 = 5 packets of the training set E.

[0309] The general formula for calculating a value compression potential PCV according to the invention is PCV = N * (L - H) where H is a partial entropy estimator which is the product of the frequency of occurrence of the value and its logarithm to base 2. As the field C is of variable length, the length of each value VI, V2 and V3 taken by the field C must be used.

[0310] [Fig.4] gives the calculation of the three compression potentials of value PCV(Vl), PCV(V2) and PCV(V3) for the three values ​​VI, V2 and V3. We see that the highest potential is that of V3. The greater length L3 = 1000 bits makes this value more interesting to compress, for example by erasing it, than the other values, even if V3 is the value with the lowest frequency of occurrence.

[0311] This simple calculation example shows that it is indeed the length of the value which can be erased by a compression operation which is the main determinant of the value compression potential, and therefore that it is indeed an effective compression potential which is used in the learning algorithm according to the invention and not simple frequencies of appearance.

[0312] The calculation example also shows the importance of the training set E reflecting the actual traffic that needs to be compressed. With a very low frequency, a very long value will still be selected as having good compression potential. If the number of compression rules deployed is limited, and this very long value is ultimately almost never present, the compression rule that concerns it may end up taking the place of another compression rule that applies to a shorter but more frequent value, so that effective compressions will not be achieved due to the poor estimation of the frequencies in the training set E.

[0313] [Fig.5], for its part, represents another example of calculating compression potentials and defining a compression rule using these potentials. This other example can be used in combination with the examples detailed so far or alternatively.

[0314] The calculations of compression potentials presented so far used a notion of entropy. The example presented here uses a count of the values ​​taken by a given section in the training set.

[0315] To perform this count, we assume that the values ​​are known as a sequence of bits. To count them, we will arrange them according to a binary tree.

[0316] The left-hand tree in [Fig.5] gives an example of this arrangement. We are interested here in a section of fixed length. All the values ​​taken by this section in the training set E are sequences of 4 bits. The root of the binary tree, labeled S, corresponds to the beginning of the sequences of bits corresponding to the values ​​taken by the section in the training set E. The nodes of the binary tree are labeled by 0 or 1. A path in the tree from the root to one of the nodes then corresponds to a sequence of bits of maximum length 4. The edges of the tree are labeled by the number of values ​​taken by the section in the training set E whose prefix in terms of sequence of bits is that corresponding to the node to which the edge leads.

[0317] To take the example of the left tree in [Fig.5], it represents 140 values ​​taken by a given section in the training set. If we look at the first two edges coming from the root of the tree S, these indicate that, of these 140 values, 126 start with bit 1 and 14 start with bit 0. If we then look at the two edges which start from the first node 1, these indicate that, of the 126 values ​​whose first bit is 1, the second bit will be 1 in 94 cases and 0 in 32 cases. If we look at the two edges starting from the first node 0, on the other hand, we find a label 6 leading to node 1 and a label 8 leading to node 0. These numbers indicate that, of the 14 values ​​whose first bit is 0, the second bit will be 1 in 6 cases and 0 in the other 8 cases.

[0318] If we summarize these edges of depth 2, we deduce that, out of the 140 values ​​taken by the section in the training set E: • 94 have a prefix 11; • 32 have a prefix 10; • 6 have a 01 prefix; and, • 8 have a 00 prefix.

[0319] The tree represents all the values ​​taken by the section, and by going to the end of the reading of the tree in depth, and starting from the top, we obtain the following results: • the section takes 28 times the value 1111; • the section takes 28 times the value 1100; • the section takes 38 times the value 1101; • the section takes the value 1100 zero times; • the section takes 8 times the values ​​1011, 1010, 1001 and 1000; • the section takes the values ​​YES, 0110 and 0101 once; • the section takes 3 times the value 0100; • the section takes 8 times the value 0011; • and the section takes the values ​​0010, 0001 and 0000 zero times.

[0320] We check that the sum of the values ​​taken gives us 140.

[0321] The right-hand tree of [Fig.5] then shows the calculation of the compression potentials, which are in fact counts of the number of bits that prefix erasure rules would erase in the training set E. The calculation is very simple: it consists of multiplying the edge labels by their depth, that is, in the example of [Fig.3] by a number ranging from 1 (for the first two edges on the left) to 4 (for the 16 edges arriving at the 16 deepest nodes of the tree). The highest compression potential (188) is obtained by the depth-2 edge which corresponds to the 94 values ​​taken by the section that have prefix 11 in the training set E. A prefix 11 erasure rule applied to the 140 values ​​taken by this section would be used 94 times to erase prefix 11, which would correspond to a compression of 188 bits.This figure is indeed the count of the number of bits that would be erased by the prefix erasure rule 11 for this section in the training set E. .

[0322] This calculation of compression potentials therefore effectively guides the creation of a candidate compression rule. In this case, it will be a rule for erasing prefixes 11 for the values ​​of the section considered.

[0323] [Fig.6], for its part, represents a complete SYS system for transmitting data packets in a NET network according to the invention.

[0324] The SYS system has an architecture where several network devices are found, namely a GW gateway and two terminals DVC1 and DVC2. The SYS transmission system according to the invention is formed of these three devices GW, DV1 and DVC2.

[0325] These network devices are connected by the NET network. This may be, for example, a local network where the GW gateway allows DVC1, DVC2 terminals to access other wider networks, such as the Internet. The communication protocols between the GW, DVC1, DVC2 network devices may be of any type as long as they are based on the transmission of data packets P, P'. The NET network may therefore be a local home network using a WiFi communication link, or a network for deploying connected objects of the LPWAN type using a LoRa communication link or any other link suitable for connected objects, or a mobile network where the GW gateway is a base station and the DVC1, DVC2 terminals are mobile terminals.

[0326] The GW gateway comprises a compression management entity 100; a decompression management entity 200; as well as specific modules, namely a APP learning module, a COL collection module, and a DEP deployment module.

[0327] The DVC1 terminal comprises a compression management entity 100 and a decompression management entity 200.

[0328] The DVC2 terminal, for its part, only comprises a compression management entity 100 and no decompression management entity 200. It may have been decided, during the construction of the SYS system, that the DVC2 terminal almost exclusively transmitted P packets and received almost none. To save the memory size necessary for the construction of the DVC2 terminal, it may therefore have been decided not to integrate a decompression management entity 200 in the DVC2 terminal. It will therefore not be possible to transmit to the DVC2 terminal a compressed P packet according to the invention, because it could not decompress it and therefore restore it.

[0329] We see that the transmission system SYS includes the following modules: • at least one APP learning module of a set of RS compression rules, present in the GW gateway; • at least one module 101 for applying a compression operation to a section value of a data packet P, the module 101 not being shown in [Fig.5] but included in a compression management entity 100 present in the gateway GW or the terminals DVC1, DVC2; • at least one module 102 for transmitting a data packet P, the module 102 also being included in a management entity 100; • at least one module 201 for receiving a data packet P, the module 201 not being shown in [Fig.5] but included in a decompression management entity 200 present in the gateway GW or the terminal DVC1; • at least one module 202 for applying a decompression operation, the module 202 also being included in a management entity 200; • at least one collection module COL in the network NET of packets P, P' to form a learning set E, present in the gateway GW; • at least one DEP deployment module synchronized in the network nodes of a set of RS compression rules, present in the GW gateway.

[0330] The gateway GW uses its compression management entity 100 to compress and then transmit to the terminal DVC1 a data packet P. The packet P has been compressed using a compression rule whose identifier is I. In the embodiment illustrated here, the compression management entity jointly transmits the identifier I of the compression rule and the compressed packet P, which is illustrated by the arrow labeled I+P between the compression management entity 100 belonging to the GW gateway and the decompression management entity 200 belonging to the DVC1 terminal.

[0331] The DVC2 terminal, for its part, addresses a compressed packet P', which has been compressed using a rule whose identifier is I'. The compression management entity 100 of the DVC2 terminal therefore addresses a concatenation I'+P' to the decompression management entity 200 of the GW gateway.

[0332] Since all the compression 100 and decompression 200 management entities present in the system SYS have the same set of compression rules RS, it is easy for the network equipment which receives it to reestablish a compressed packet P, P' by applying to it the decompression operations symmetrical to the compression operations which were applied to the values ​​taken by the sections of the data packet P, P'. The identifiers I, I' transmitted jointly with the packets P, P' make it possible to find the rule and therefore the compression operations which were applied.

[0333] In the architecture of the SYS system presented in [Fig.5], the GW gateway has a collection module COL which allows the GW gateway to gather the data packets P, P' which pass through the GW gateway. In a local network type architecture, such as the one presented here, the GW gateway is ideally placed to see all the packets P, P' passing through the NET network.

[0334] The packets P, P' collected by the COL module will make it possible to create a learning set E which will be used by the APP learning module also present in the GW gateway. The APP learning module learns the RS compression rule set using P, P' packets actually collected in the NET network by the COL collection module, which is a point making it possible to greatly improve the relevance of the learning and the RS compression rule set. The DEP deployment module will then synchronously deploy the RS compression rule set in the GW gateway and the DVC1, DVC2 terminals of the SYS system.

[0335] According to one embodiment, the compression 100 and decompression 200 management entities may have several sets of compression rules. This makes it possible to facilitate the synchronized deployment of new sets of RS compression rules by making it possible to use several sets of RS compression rules concurrently until all the equipment present in the NET network has received the new sets of RS compression rules.

[0336] The collection module COL will of course transmit to the learning module APP packets P, P' restored in their integrity, and not compressed packets, because only restored packets make it possible to learn the information on the values ​​of most interesting sections to compress.

[0337] The training set E will not necessarily be constructed with all the packets P, P' collected by the COL module. Sampling strategies can be used to construct training sets that are as representative as possible of the traffic in the NET network, according to the transmission times or according to the actions of the terminals DVC1, DVC2 and the gateway GW.

[0338] The transmission system SYS therefore fulfills the expected technical objective, namely the application of very effective compression rules to the packets P, P' by using a learning module APP to carry out the automatic learning of the set of compression rules RS. The collection module COL to feed the learning module APP with a learning set E representative of the traffic present in the network NET and the deployment module DEP in a synchronized manner of the set of compression rules RS obtained by learning make it possible to ensure that this very effective compression of the packets P, P' is obtained on the one hand without human intervention and on the other hand will adapt in the event of a change of context in the network NET, for example in the event of a change of IP addresses of the network equipment GW, DVC1, DVC2 or in the event of the addition of new equipment in the network.

[0339] The placement of the COL collection, APP learning and DEP deployment modules in the GW gateway provides an efficient architecture where the learning-related functions are centralized in the GW gateway. This architecture is efficient because the GW gateway sees all the packets of the NET network transit and also has a direct link with the DVC1, DVC2 terminals present in the NET network. However, other architectures are possible.

[0340] [Fig.7], for its part, represents a complete SYS system for transmitting data packets in a NET network according to the invention, but presenting a different architecture from that seen in [Fig.6].

[0341] The SYS system here comprises three network devices, namely two routers RTR1 and RTR2 and a separate server SRV. The NET network can here be for example an IP core network and the two routers RTR1, RTR2 can form a branch of a long-distance network connecting two points. The communication link can then be on a very high-speed optical fiber, and the underlying protocol can be for example Gigabit Ethernet often used in the core network, or any other suitable protocol.

[0342] The two routers RTR1, RTR2 each comprise a compression 100 and decompression 200 management entity which enable the exchange of packets P, P', transmitted jointly with identifiers I, F of compression rules belonging to the set RS.

[0343] We saw in the presentation of [Fig.6] how the transmission of packets P, P' worked. We just note here that the transmission system SYS includes an SRV server dedicated to learning the set of compression rules RS. The router RTR1 includes a COL collection module which will address packets PI, P2, P3 to the SRV server. A COL collection module can be placed in a single router RTR1 since it sees, in transmission or reception, all the packets transiting on the network NET. But we can also have several COL collection modules, one in each router RTR1, RTR2, depending on the practicality of this deployment. If the SRV server is co-located with the router RTR1 in the same data center or the same network room, it will be much more efficient to deploy a COL collection module only in the router RTR1 and not in the router RTR2 which can be very far away in the case of a long-distance transmission.

[0344] The SRV server is dedicated to learning the RS compression rule set. It includes an APP module which will carry out the actual learning according to the invention of the RS compression rule set. The DEP deployment module ensures the synchronized deployment of the RS compression rule set in the two routers RTR1 and RTR2.

[0345] It can be seen that the invention lends itself to very wide use, in all kinds of network architectures. Other architectures of the SYS transmission system are possible to adapt to other architectures of the NET network, for example a star architecture, or a ring architecture. Similarly, the protocols that can be optimized thanks to the compression presented here are very numerous, both in the core network or for local networks or for mobile networks.

[0346] Finally, let us point out here that, in the present text, the term “module” can correspond to a software component as well as to a hardware component or a set of hardware and software components, a software component itself corresponding to one or more computer programs or sub-programs or, more generally, to any element of a program capable of implementing a function or a set of functions as described for the modules concerned. In the same way, a hardware component corresponds to any element of a hardware assembly capable of implementing a function or a set of functions for the module concerned (integrated circuit, smart card, memory card, etc.).

Claims

Claims

1. Method for managing the compression of a data packet (P) transmitted in a network (NET), the packet (P) comprising sections taking respective values, characterized in that it comprises the following steps: • the application of at least one compression operation to a section value of said data packet (P), said operation being included in a compression rule belonging to a set (RS) of compression rules, said set (RS) being obtained by learning; • the transmission of said data packet (P) to which said at least one compression operation has been applied and of data representative of the compression rule to which said operation belongs.

2. Method for managing the compression of a data packet (P) according to claim 1, characterized in that the set (RS) of compression rules is obtained by a reinforcement learning algorithm.

3. Method for managing the compression of a data packet (P) according to claim 2, characterized in that the reinforcement learning algorithm uses a training set (E) formed of previously collected data packets; implements an environment which comprises the training set (E) and the set (RS) of compression rules; and the change of state in the reinforcement learning algorithm comprises the addition of a new rule to the set (RS) of compression rules.

4. Method for managing the compression of a data packet (P) according to one of claims 2 or 3, characterized in that the reinforcement learning algorithm comprises a reward function which is calculated according to the compression of the packets of the training set (E) by the compression rules belonging to the set (RS) of compression rules.

5. Method for managing the compression of a data packet (P) according to one of claims 2 to 4, characterized in that it comprises the following steps executed during the learning of the set (RS) of compression rules: • a step of calculating at least one quantity called compression potential (PC) from the packets of the learning set (E); • a step of selecting a rule belonging to the set (RS) of compression rules using at least one compression potential (PC) from those calculated; • a step of creating a new rule from the selected rule using at least one compression potential (PC) from those calculated; • adding the new rule to the set (RS) of compression rules; and in that the reinforcement learning is iterated, until a stopping criterion is satisfied, using at the following iteration the set (RS) of rules modified by the addition of the new rule.

6. Method for managing the compression of a data packet (P) according to claim 5, characterized in that one of the calculated quantities is called field compression potential (PCC) and is calculated for a given section of fixed length according to the formula N(L - H) in which N is the number of times that the section appears in the training set; L is the length of the section expressed in bits and H is a quantity called field entropy estimator which is calculated according to the formula j in which K is the number of different values ​​VA | that the section takes in the training set (E) and f. is the frequency of appearance of the value Vh

7. Method for managing the compression of a data packet (P) according to one of claims 5 or 6, characterized in that one of the calculated quantities is called field compression potential (PCC) and is calculated for a given section of variable length according to the formula N (L -H) ^ans ^aclueUe K is the number of different values ​​zc] that the section takes in the training set (E); N, is the number of times that the section takes the value V, in the training set (E); is the length of the value expressed in bits and H, is a quantity called entropy estimator partial of a value, which is calculated for the value V, according to the formula _ - f ]og ( j in which f. is the frequency of occurrence of the value V; in the training set (E).

8. Method for managing the compression of a data packet (P) according to one of claims 5 to 7, characterized in that one of the calculated quantities is called corrected compression potential and is calculated for a given section by multiplying the field compression potential (PCC) by a correction factor 1 K 11 ) in which N is the N+y / number of times that the section appears in the training set (E); K is the number of different values ​​that the section takes in the training set (E); and a, fi and P are chosen positive coefficients.

9. Method for managing the compression of a data packet (P) according to one of claims 5 to 8, characterized in that one of the calculated quantities is called value compression potential (PCV) and is calculated for a value V) of a given section according to the formula N(L - H fi in which N is the number of times that the value Vj appears in the training set (E); L is the length of the value V{ in bits; and Ht is a quantity called partial entropy estimator of a value which is calculated according to the formula _ y jOg ^yj in which / . is the frequency of appearance of the value V i.

10. Method for managing the compression of a data packet (P) according to one of claims 5 to 9, characterized in that one of the calculated quantities is called field bit compression potential (PCB) and is calculated for a rank i of a given section, the ranks i varying from 0 to L - 1, L being the minimum length of the values ​​taken by the section in the training set (E), said length L being expressed in number of bits, and said quantity (PCB) is calculated according to the formula 1 - H(bfi, in which H(bfi is a quantity called entropy estimator of a field bit which is calculated according to the formula / / (*,)= - (fJog2(f.)+ conventionally worth 0 when f. is 0 or 1, formula in which the values ​​taken by the section in the training set (E) are expressed in ordered bit sequences and in which / . is the frequency of appearance of one of the values ​​0 or 1 for the bit of rank i among the values ​​taken by the section in the training set (E).

11. Method for managing the compression of a data packet (P) according to one of claims 5 to 10, characterized in that the step of selecting a rule belonging to the set (RS) of compression rules comprises the partitioning of the training set (E) into subsets assigned to a rule of the set (RS) of compression rules; the calculation of a compression potential (PC) for the rules of the set (RS) of compression rules and the selection of the rule according to its compression potential (PC), the compression potential (PC) of a rule being calculated from field compression potentials (PCC) calculated on the subset of the training set (E) assigned to the compression rule.

12. Method for managing the compression of a data packet (P) according to one of claims 5 to 11, characterized in that the step of creating a new rule from the selected rule is carried out by creating one or more candidate rules and by retaining a rule from among the candidate rules created according to the effectiveness of the compression carried out by this rule on packets of the learning set (E).

13. Method for managing the compression of a data packet (P) according to one of claims 5 to 12, characterized in that the step of calculating at least one quantity called compression potential (PC) comprises, for a section of the packet (P) taking respective values ​​expressed in the form of a sequence of bits, counting the number of bits which would be erased following the application of a prefix erasure rule on the values ​​taken by the section in the learning set (E).

14. Method for managing the compression of a data packet (P) according to claim 13, characterized in that the step of calculating at least one quantity called compression potential (PC) comprises, for a section of the packet (P) taking respective values ​​expressed in the form of a sequence of bits, the following steps: • a creation of a binary tree representing the set of values ​​that can be taken by a sequence of bits, the root of the tree representing an empty sequence of bits, the nodes of the tree being equal to 0 or 1, and a node of the tree of depth n re- presenting a sequence of bits of length n whose value is that of the sequence of 0s and 1s encountered from the root of the tree to reach said node of depth n, an edge of said tree being labeled by the number of values ​​taken by the section having as a prefix the sequence of bits represented by the node to which the edge leads; • a multiplication of the labels of the edges of the binary tree created by the depth of the node to which the edge leads, which carries out a count of the bits which would be erased in the training set (E) by the application of prefix erasure rules of the values ​​taken by the section expressed in the form of a sequence of bits; and characterized in that the step of creating a new rule comprises creating a prefix erasure rule for the values ​​taken by a section expressed as a sequence of bits, the erased prefix being the one for which the count of erased bits is the largest.

15. Method for managing the compression of a data packet (P) according to one of claims 5 to 14, characterized in that the step of creating a new rule from the selected rule is carried out by choosing a section according to its field compression potential (PCC) and by creating candidate rules formed by adding to the selected rule a compression operation applying to the values ​​taken by the section.

16. Method for managing the decompression of a data packet (P) transmitted in a network (NET), the packet (P) comprising sections taking respective values, characterized in that it comprises the following steps: • receiving said data packet (P) to which at least one compression operation has been applied to a section value of said packet (P), said operation being included in a compression rule belonging to a set (RS) of compression rules, said set (RS) being obtained by learning, and data representative of the compression rule to which said operation belongs; • the application to said data packet (P) of at least one symmetrical decompression operation of the at least one compression operation applied to a section value of said packet (P).

17. Management entity (100) for the compression of a data packet (P) transmitted in a network (NET), the packet (P) comprising sections taking respective values, characterized in that the management entity (100) comprises the following modules: • a module (101) for applying at least one compression operation to a section value of a data packet (P), said operation being included in a compression rule belonging to a set (RS) of compression rules, said set (RS) being obtained by learning; • a module (102) for transmitting a data packet (P) to which at least one compression operation has been applied and data representative of the compression rule to which said operation belongs.

18. Management entity (200) for the decompression of a data packet (P) transmitted in a network (NET), the packet (P) comprising sections taking respective values, characterized in that the management entity (200) comprises the following modules: • a module (201) for receiving a data packet (P) to which at least one compression operation has been applied to a section value of said packet (P), said operation being included in a compression rule belonging to a set (RS) of compression rules, said set (RS) being obtained by learning, and data representative of the compression rule to which said operation belongs; • a module (202) for applying to a data packet (P) at least one symmetrical decompression operation of a compression operation applied to a section value of said packet (P).

19.

20. Network equipment (GW, DVC1, DVC2, RTR1, RTR2) comprising a compression management entity (100) according to claim 17. Network equipment (GW, DVC1, DVC2, RTR1, RTR2) comprising a decompression management entity (200) according to claim 18.