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

Reinforcement learning-based data packet compression adapts to dynamic contexts, addressing inefficiencies in existing protocols by automatically generating and updating compression rules, enhancing energy and resource efficiency.

FR3149743A1Inactive Publication Date: 2024-12-13ORANGE SA
View PDF 0 Cites 0 Cited by

Patent Information

Application Number
FR2023005874
Authority / Receiving Office
FR · FR
Patent Type
Applications
Current Assignee / Owner
Filing Date
2023-06-09
Publication Date
2024-12-13
Estimated Expiration
Not applicable · inactive patent

AI Technical Summary

Technical Problem

Existing data compression protocols, such as ROHC and SCHC, are inefficient in dynamic contexts like LPWANs, requiring manual rule creation and failing to adapt to changes in network conditions, leading to suboptimal energy and hardware consumption.

Method used

A method for managing data packet compression using reinforcement learning to automatically generate and update compression rules, allowing adaptation to dynamic contexts without expert intervention, by applying compression operations to packet sections and transmitting rule identifiers.

Benefits of technology

Enables efficient and adaptive data packet compression that saves energy and resources by automatically updating compression rules to match changing network conditions, facilitating deployment in various contexts including dynamic environments.

✦ Generated by Eureka AI based on patent content.

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 over 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 senders and receivers using protocols such as the IP protocol (acronym for Internet Protocol). A set of data packets relating to a communication is sent by the sender to a receiver. The packets contain the receiver's address so that they can be addressed using various routing algorithms, and the content of the communication is reconstructed by the receiver by regrouping the data contained in the different packets. To achieve complete communication, numerous protocols must be used, each fulfilling a role from the physical transmission of bits, the atomic elements constituting digital data, to the interpretation of data for computer applications. Bits are typically grouped into bytes, sets of eight bits.The various protocols are classically viewed 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 (Hypertext Transfer Protocol) protocol is an Application layer protocol that 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 (Transmission Control Protocol) 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: establishing a connection, transferring data, and terminating the connection. Transport layer protocols will use a Network layer protocol, generally the IP (Internet Protocol) 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 dealing with the establishment of the connection or the order of arrival of the data packets forming a transmission; these considerations are handled by the protocol of the higher Transport layer. 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, this elementary data being bits, transmitted using the Physical layer, whether using a transmission by optical fiber, or by wireless communication depending on the case.

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

[0006] A common feature of all protocols across all layers is the organization of exchanged data into data packets. A data packet is organized into two parts: the first part is the header, which contains the information necessary for the protocol responsible for processing the packet; the second part is the payload, which contains the data transported within the packet itself. At the Data Link layer, the term frame is used rather than 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 fixed or variable length. When a field is variable in length, mechanisms exist to determine the actual length of the transmitted field. When the value in a fixed-length field is variable in length, padding bits are used to extend the value up to the field's fixed length. A field has an identifier that indicates the nature of the value it contains. The values ​​in the field are used by the relevant protocol 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. This field is four bits long. Other fields include, 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 the capture and analysis of data packets. The analysis makes it possible to separate a data packet exchanged over a network into its header and payload, and to read the information contained in the header and the data contained 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 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 prior art and will not be described further. State of the art

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

[0011] As we have seen, the exchanged data packets consist, 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 itself. Compression can therefore be applied to the payload, or to the data packet headers. Since the values ​​of certain fields in the data packet headers will take constant or only slightly variable values, it is possible to achieve very efficient compression of the data packets by focusing solely on compressing the values ​​of the fields in the data packet headers.

[0012] A first example of a protocol compressing the values ​​of data packet header fields is the ROHC (Robust Header Compression) protocol, defined by the IETF (Internet Engineering Task Force) standards body in RFC (Request For Comments, the Internet's foundational specification document) number 3095. The basic idea of ​​this protocol is that certain header field values ​​within the same communication will not change from one communication to the next. For example, the source and destination address field values ​​will remain the same during a communication. After sending the first packet containing the values ​​of these fields, these values ​​will be erased from the headers of subsequent packets to compress the packet header, and therefore the packet itself, and will be inserted upon reception since they are known after the first packet has been sent.Erasure is performed by a compression module and insertion of the value by a decompression module. Other types of compression can be applied.

[0013] This results in very efficient compression of data packets even if the compression is limited to the headers. The ROHC protocol is used, for example, in mobile telecommunications networks. However, 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 expensive, and other mechanisms will be preferred in certain usage contexts.

[0014] The context of communication networks dedicated to connected objects imposes additional constraints. This refers to low-power wide area networks, also known as LPWANs. In such a network, connected objects must minimize their power consumption, such as meters deployed in locations without access to mains electricity and requiring battery power for several years. These objects communicate wirelessly with a gateway that covers a wide area. Updating the context with each communication would result in high bandwidth consumption, making the ROHC header compression protocol unsuitable in this context.

[0015] Furthermore, the data exchanged by these objects is often very small and may be limited to indicating that the object is still active, or the object may want to report a single value, such as a temperature for a thermometer or a water level for a water meter. The size of the data packet headers relative to the payload size will therefore be proportionally larger in the context of LPWANs than in other contexts. Consequently, there is 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 device deployed in a given network, compression rules are 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 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 field value 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 device.The erased value will be inserted upon reception by the decompression module, which is located in the gateway and operates under the same rules as the compression module. This type of operation is suitable for fields that take a constant value, such as the IP packet version field. If the field takes a value other than expected, the operation... If this 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 built 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 rule applies. • A third type of operation involves prefix removal: the field value is a sequence of bits, and a prefix of varying length can be defined during a compression operation. If the value does indeed have this prefix, the prefix will be removed during compression and inserted during decompression; otherwise, 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 deal with fields of variable length.

[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 devices connected to this network and to the Internet via the gateway. The rule set can then handle compression and decompression of all data packets exchanged in the LPWAN network, with compression limited to the values ​​of the header fields. The SCHC protocol determines which compression rule applies when a data packet travels through the network.

[0020] To this end, each compression rule in the set is defined for a given packet header format and consists of a set of operations to be applied to the values ​​of the header fields of a packet that conforms to 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 set of rules and has a rule identifier. The set of rules will seek to cover all possible formats of data packet headers that can be exchanged in a context given.

[0022] The SCHC compression / decompression protocol is applied by a compression module, which processes a packet before forwarding it to a decompression module. The compression and decompression modules share the same set of rules, defined for a given context. When a data packet is to be processed by the compression module, the protocol scans the set of rules available to the compression module to select one or more rules. If a rule does not match the format of the header fields of the processed packet, the rule is discarded. If the field format matches, the protocol examines whether the field values ​​correspond to all the matching operators defined in the rule. If not, the rule is again discarded. If no rule in the set matches, the packet is sent without processing. In all cases, the packet's payload is not processed by the SCHC protocol.In the context of LPWANs, packet compression limited to compressing the values ​​of the header fields will still be effective, because the size of the headers is proportionally important.

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

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

[0025] Since the identifier of the rule used for compression must be transmitted, as well as certain values ​​(dictionary indexes), there will be a limit beyond which adding new compression rules in a given context will no longer be worthwhile because the potential gain provided by the additional rule is outweighed by The transmission cost is incurred by increasing the size of the rule identifier as new rules are added. For example, beyond eight rules, the transmitted rule identifier will be encoded using three bits instead of two. If adding a ninth rule saves only one bit on average, adding this ninth rule is not worthwhile. The same applies if adding a rule requires using 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 data packet header according to the operations provided for in the SCHC protocol reconstructs the header exactly as it was before compression. This is the general case, although there may be use cases where this is not the case.

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

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

[0029] In the current situation, the deployment of the SCHC protocol is slowed by the need to create new rules for each use case. This situation means that readily available compression potential is not being used. This has negative impacts on the energy and hardware consumption of LPWANs or other networks in which header compression according to the The SCHC protocol could be used.

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

[0031] Furthermore, it is desirable to use the compression operations defined by the SCHC protocol, which provide highly efficient compression, in as many contexts as possible. 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 for applying the header compression principles defined in the SCHC protocol to a dynamic context, even a weakly dynamic one. For example, if, in a deployment context, SCHC compression is applied to an IP address value, and this value changes even if very infrequently, the rule established in a static context becomes inoperative as soon as the IP address changes. 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. Description 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: • the application of 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 to sections of the packet. After compression, a representative piece of 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 or near-original state.

[0035] Most importantly, the creation of compression rules is made automatic and does not require Furthermore, expert input is required because the compression rule set is obtained through machine learning. The compression rules comprise compression operations applied to values ​​taken by sections of data packets. The compression rules from this machine-learned set are applied to data packets transmitted over the network to achieve effective compression. The resulting technical effect is the compression of the headers of the data packets transmitted over the network, and the advantage is that the compression rules can automatically adapt to changing transmission contexts while remaining effective. This facilitates the deployment of compression protocols and their use in a wide range of contexts, including dynamic ones.

[0036] According to one embodiment, which may be implemented alternatively or cumulatively with the preceding 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 pre-defined delimitation of the data packet load.

[0038] These two embodiments allow the invention to be applied to all the values ​​taken by the sections of the data packet, whether they are header fields or pre-defined and delimited portions of the packet's payload. In the latter case, the fact that the delimitation is pre-defined facilitates the application of the method. A given operation, recovered using the transmitted representative data, will, for example, be applied to the first 256 bits of the payload, and the packet can be restored to its original state using the knowledge of this pre-defined delimitation. Another pre-defined delimitation could, for example, consist of applying to the entire payload of the packet, or to the first or second half, or to any other pre-defined proportion.

[0039] The fields of a header are themselves predefined 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 together with the data representative of the compression rule to which said compression operation belongs.

[0041] Thanks to this embodiment, the data packet is transmitted together with the data representing 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 allows the compression operation applied to it to be known.

[0042] According to another embodiment, which may be implemented alternatively or cumulatively with the preceding embodiments, the transmitted data packet is formed by concatenating a 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 has been applied, which belongs to a set of compression rules obtained by learning.

[0043] Thanks to this embodiment, a precise format for the compressed data packet is defined, which facilitates its transmission. The transmitted data packet is a new data packet formed by concatenating a compression rule identifier, namely a sequence of bits, with the original data packet to which the compression rule was applied. The compressed data packet is therefore transmitted together with a compression rule identifier that allows the rule to be retrieved from the set of compression rules obtained through learning.

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

[0045] Reinforcement learning, unlike supervised learning, requires no expert intervention. The resulting technical effect is that compression rules can be automatically generated to compress data packets transmitted over the network. A primary advantage is that compression rules can be generated quickly and at low cost, as this process does not involve expert input. Another advantage is that compression rules can automatically adapt to changing transmission contexts while remaining 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 consisting of pre-collected data packets; implements an environment that includes the training set and the set of compression rules; and the state change in the reinforcement learning algorithm includes the addition of a new rule to the set of compression rules.

[0047] Since the invention relies on the use of a learning algorithm, it requires the use of a training set that must be defined beforehand. This training set is a set of data packets for which the learning algorithm will attempt to produce a set of compression rules that compresses them as efficiently as possible. Clearly, the more representative the training set is of the expected traffic for which the data packets need to be compressed, the more relevant the learning will be. If the training set is too small, in particular, the learning algorithm will not be able to obtain a set of compression rules that are effective in all cases, because examples of traffic that could have been compressed are not present in the training set.Reinforcement learning involves evolving the set of compression rules being learned within an environment that includes the training set that the compression rule set is meant to compress. This evolution occurs by adding a new rule to the compression rule set. The training set itself does not evolve during the learning phase.

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

[0049] It is advantageous to define several parameters of the reinforcement learning algorithm in order to execute it. Reinforcement learning consists of developing an actor, here the set of compression rules being learned, within an environment, here the union of the rule set and the training set, and guiding the actor's development using a reward function. The reward function is the compression performed by the compression rule set on the packets in the training set. The better the compression performed by the rule set, the better the rule set, and therefore reinforcement learning will tend to produce a rule set that provides better compression.As already seen, the change of state is the addition of a rule to the set of rules; the reward function will penalize whether this addition of rule is relevant or not and does indeed allow the compression rule set to evolve towards better compression.

[0050] The advantage of this mode is therefore to specify how to execute a reinforcement learning algorithm to learn a set of compression rules and how to choose relevant reinforcement learning parameters to obtain good compression of the packets in the set learning through the set of rules resulting from the learning.

[0051] 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 that does not perform any compression.

[0052] In this embodiment, the starting point is a set of rules consisting of a single rule that applies to all packets in the collected training set. This set ensures that from the outset, the rule set will apply to the entire training set, even if the initial rule does not compress the section values ​​of the packets in the training set. In most embodiments of our invention, the compression rule set evolves to ensure that, for all packets in the training set, there exists an applicable rule within the compression rule set, which is indeed the case with this single rule that does not perform any compression.

[0053] 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.

[0054] 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 comprising a compression rule provided by an expert.

[0055] The advantage of this embodiment is that it allows an expert to ensure that a rule they deem very useful is indeed present in the compression rule set. By placing it at the start of the learning process, this result is achieved. The rest of the learning algorithm can then proceed by reinforcement learning, thus without further intervention from the expert. This results in a mixed method where the expert's intervention is limited.

[0056] According to another embodiment, which may be implemented alternatively or cumulatively with the preceding embodiments, the management process includes the following steps executed during the learning of the compression rule set: • a step of calculating at least one quantity called compression potential from the packets of the training 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;

[0057] and, moreover, reinforcement learning is iterated, until a stopping criterion is satisfied, using in the next iteration the rule set modified by the addition of the new rule.

[0058] Thanks to this embodiment, reinforcement learning of a set of compression rules is efficiently guided. Indeed, reinforcement learning can work by randomly performing state changes that will be retained or not depending on the reward function. This approach could, on the one hand, be very time-consuming and, on the other hand, lead to sets of compression rules containing too many rules if the most efficient 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 encoded on a large number of bits, which makes compression inefficient.

[0059] Learning must therefore be guided by reinforcement of compression rules. To this end, 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.

[0060] The learning process operates iteratively until a stopping criterion is met. Each iteration involves applying the same algorithm to an environment consisting of the new set of compression rules (with a new rule added) and the training set. To ensure that the learning process properly accounts for the addition of the new rule, it can be useful to calculate compression potentials in the next iteration that fully account for the addition of the new rule. This can be done by isolating, within the training set, the subsets of packets to which the different rules apply. In this mode, the values ​​compressed by the new rule will not be included in the compression potential calculations. Compression potentials will only be calculated for values ​​that are not compressed in the current state of the compression rule set being trained.

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

[0062] It is advantageous that the addition of the new rule ensures that the set of rules being learned will indeed apply to all packets of the training set. Therefore, in this embodiment, if the added rule does not cover all the packages covered by the selected rule from which the added rule was created, then the selected rule is retained. Since the learning algorithm can, in some modes, start with a set including an initial rule applying to all packages, we can be sure that at the end we have a set of rules applying to all packages in the training set. However, removing the selected rule if the added rule covers the same packages ensures that unnecessary rules are not retained and thus minimizes the size of the resulting compression rule set from the learning algorithm.

[0063] According to another embodiment, which may be implemented alternatively or cumulatively with the preceding embodiments, 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.

[0064] 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.

[0065] These two modes have the advantage of offering an easy-to-calculate stopping criterion. In the first mode, the compression performed by the rule set on the training set is calculated, and training stops when the compression no longer progresses. This will happen, for example, when all the values ​​in the sections of the packets in the training set are compressed. In this case, it is no longer possible to add another 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 that rule. In the second mode, an absolute size criterion for the compression rule set is used, either in terms of the number of rules or the number of operations.This mode ensures that the size of the resulting rule set always remains below a certain limit, which is advantageous in contexts where resource conservation is desired and where it is essential to ensure that the compression rule indexes can be encoded with a limited number of bits (from two to four, for example). This embodiment is particularly advantageous when the compression process is used by equipment with limited memory capacity, which can only store a limited number of compression rules for transmitted or received data. The two modes can be combined, namely... that learning continues as long as the compression performed by the rule set progresses unless a predefined maximum size is reached.

[0066] According to another embodiment, which may be implemented alternatively or cumulatively with the preceding embodiments, one of the calculated quantities is called the 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 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 / / — _ log [f J ^ans where K is the number of different values ​​^1 that the section takes in the training set and f. is the frequency of occurrence of the value V,.

[0067] In many embodiments, the sections for whose values ​​the learning algorithm will attempt to produce rule-based compression operations are header fields. This explains the choice of the terms "field compression potential" and "field entropy estimator." However, the embodiment can be applied to both header fields and delimited sections within the payload of a data packet.

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

[0069] Thanks to 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.

[0070] To this end, we use a quantity that estimates the entropy present in a delimited section of the packet charges of the training set or in a given field of the packet headers of the training set, which we generally call a section. Recall that entropy (in the information theory sense) is calculated from probabilities. Here, we have a training set, and therefore observed values. This is why we calculate an entropy estimator, and not entropy itself, from the frequencies f of occurrence of the values ​​Vj that the section under consideration 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 zero since the frequencies are at most 1. Negations make the entropy estimator necessarily positive.

[0071] The entropy estimator can therefore be at least zero. This is the case when the The given section contains only one value in the training set. The frequency of occurrence of this single value is therefore 1; and the logarithm is 0.

[0072] Furthermore, the entropy estimator will always be less than the length of the section expressed in bits. If a bounded 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 that is required to encode this large number of different values ​​will also increase and will always remain greater than the entropy estimator.

[0073] The quantity known as field compression potential is therefore always positive and will be maximum for a given section when its entropy estimator is zero. This occurs when the section takes a unique value in the training set, and it is easy to understand that a section taking a unique value will be easy to compress. Simply erase this value! The field compression potential decreases as the entropy estimator increases.

[0074] If a section with a zero entropy estimator appears only a few times in the training set, or if the section's length is short, another section with a higher entropy estimator but which appears more frequently, or whose length is greater, may be more advantageous to compress than the section with a zero entropy estimator. This is why the field compression potential takes into account both the number of times the section appears and its length.

[0075] The field compression potential therefore makes it possible to efficiently guide the reinforcement learning algorithm by indicating the sections of the training set whose compression will yield the most according to the reward function given by the compression performed, said sections being able to be header fields of the packets or delimited sections of the packet payload.

[0076] According to another embodiment, which may be implemented alternatively or cumulatively with the preceding embodiments, the field compression potential is calculated for a given section of variable length according to the formula N-(L-- H ) where K is the number of different values ​​Æ'] that the section takes in the training set; Nj is the number of times that the section takes the value V, in the training set; L, is the length of the value V, expressed in bits and is a quantity called partial entropy estimator of a value, which is calculated for the value V{ according to the formula pj, _ - f ]og where f. is the frequency of occurrence of the value Vt in the training set.

[0077] 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. This is taken into account in this calculation. A value that appears frequently but is short will contribute less to the field compression potential than a value that appears less frequently but is longer. This embodiment therefore allows for a precise calculation of the field compression potential even for a cross-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 cross-section has a constant length L for all values ​​taken by the cross-section.

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

[0079] 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 cross-section has a fixed length.

[0080] 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 in which a is a strictly constant positive.

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

[0082] According to another embodiment, which may be implemented alternatively or cumulatively with the preceding embodiments, the field compression potential is called the corrected compression potential and is calculated for a given section by multiplying the field compression potential by a correction factor j 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, fi and V are chosen positive coefficients.

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

[0084] To correct this defect, we introduce a correction factor that allows us to obtain a corrected compression potential. The coefficients a, fi, and f are preferably positive to ensure that the correction factor influences the compression potential in the desired direction. The idea is that a section exhibiting entirely different values ​​should be disadvantaged compared to a section exhibiting a seemingly less random observation.

[0085] According to another embodiment, which may be implemented alternatively or cumulatively with the preceding embodiments, the positive coefficients a, fi, and P are chosen to take constant values. According to a particular embodiment of this latter embodiment, which may be implemented alternatively or cumulatively with the preceding embodiments, the positive coefficients a, fi, and X take the values ​​a - 1, fi - 0, and y = 0.

[0086] Thanks to this latter mode, the correction factor takes the value ]_A] and is therefore zero when all the values ​​of the section are different and 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 efficiently. The correction factor will then cancel the field compression potential for this section. When a section takes a single value, the correction factor is ]_JL] and the corrected correction potential is therefore reduced compared to the initial value of the field correction potential, but is ultimately reduced very little.

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

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

[0089] Thanks to this latter mode, the correction factor takes the value ] _ A_L and is therefore exactly 1 when the section takes a single value, that is, for K — 1. Conversely, the correction factor does not vanish when K — N, which can be in This is interesting because it maintains a non-zero field compression potential even on a section that appears to be highly random, since all the values ​​taken by the section in the training set are different. Thus, with a non-zero field compression potential, the learning algorithm can, in certain contexts, add one or more compression rules specific to the section.

[0090] According to another embodiment, which can be implemented alternatively or cumulatively with the previous embodiments, the positive coefficients a, / ? and V are chosen as a function of K and N.

[0091] This embodiment allows for obtaining other values ​​of the correction factor to refine its selection according to the sizes of the samples observed in the training set. For example, by taking μ = 1, θ = 0.5 and y = N, we obtain a correction factor equal to |μ_n, which exhibits a differentiated influence depending on the sample size of the values ​​observed for the section whose corrected compression potential is being calculated.

[0092] 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 of a given section according to the formula N(L - where N is the number of times that the value V appears in the training set; L is the length of the value V, in bits; and Hj is a quantity called the partial entropy estimator of a value which is calculated according to the formula / f. — _ y log where f. is the frequency of occurrence of the value Vi.

[0093] 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 charge.

[0094] It can be noted that this value compression potential is expressed according to the length of the value and is therefore suitable for a section of variable length. A short value that appears frequently may have a higher compression potential than a longer value that appears less frequently. This potential will also guide the creation of compression rules by indicating which values ​​should be compressed first. It will therefore not necessarily be the value that 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.

[0095] As seen previously, the frequency of occurrence of a value is strictly positive and equals 1 at most. The partial entropy estimator of a value will therefore also be positive and equal to 0 for a value that happens to be the unique value taken by a section in the training set and which would then have a frequency of occurrence equal to 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 maximal for a value that is the unique value observed for a given section and minimal for the value that is observed least often in that section in the training set.

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

[0097] Thanks to this embodiment, an alternative formula is given for calculating a compression potential of value.

[0098] 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 f varying from 0 to L - 1, L being the minimum length of the values ​​taken by the section in the training set, said length L being expressed in number of bits, and said quantity is calculated according to the formula \ - Hibb' in which H(b,) is a quantity called the entropy estimator of a field bit which is calculated according to the formula = (1- / .). / ^(1- / .)), said formula, conventionally valued at 0 when f. is 0 or 1, formula in which the values ​​taken by the section in the training set are expressed as ordered bit sequences and in which / . 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.

[0099] 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 with 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.

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

[0101] For frequencies of 0.25 and 0.75 for a given rank, the base-2 logarithms are respectively -2 and -0.415. 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.

[0102] We can see again how the compression potential, here for the ranks of the sections whose values ​​are expressed as a sequence of bits, will allow the learning algorithm to be guided 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.

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

[0104] In this embodiment, field compression potentials are used to select a rule from the set of compression rules being trained. The training set is partitioned by assigning to a given rule the subset for which the rule performs 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.

[0105] Since the starting point of the reinforcement learning algorithm is a set consisting of a single rule that applies to all values ​​(ignoring them) and does not perform compression, this rule will be initially selected during the first iteration of the algorithm. A rule will then be created from this initial rule, which will, for example, delete a value that frequently occurs for a field. The rule created will therefore be the one that performs the best compression for packets containing this value, since it deletes it, whereas the rule The initial rule does nothing. The rule's compression potential is then calculated by taking into account the deletion performed for that value. The initial rule, which does nothing, can be selected later because it has some compression potential for packets that do not contain the value deleted by the created rule.

[0106] 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.

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

[0108] 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 retaining the maximum of the field compression potentials for the remaining sections of the identified subset.

[0109] In this mode, rather than adding the field compression potentials, the rule that exhibits a maximum is retained. This variant of the calculation can be more efficient in computational operation, and faster, while also providing good guidance for the learning algorithm.

[0110] 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 is carried out by randomly drawing a rule from the set of compression rules.

[0111] This embodiment provides an alternative to the embodiment that consists of calculating a compression potential for each rule. The advantage of this embodiment is that it offers a simpler alternative to implement.

[0112] 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 retaining a rule from among the candidate rules created according to the efficiency of the compression performed by this rule on packages from the training set.

[0113] Thanks to this latter embodiment, reinforcement learning is indeed guided by a reward function linked to the compression performed by the set of compression rules being trained. A rule is selected, from which one or more candidate rules will be created, and it is the rule that performs the most efficient compression that is added to the set of compression rules. One possibility is to apply the already existing compression rules to the packets in the training set before evaluating the Compression performed. This allows the learning of the compression rule set to progress by being guided by a reward for improving compression, and by avoiding the creation of the same rules by applying the compressions of the selected rule before evaluating the compression of the candidate rules.

[0114] According to another embodiment, which may be implemented alternatively or cumulatively with the previous 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.

[0115] Thanks to this embodiment, a reinforcement learning algorithm is defined, which allows the creation of compression rules from a selected rule, 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 a compression operation to the selected rule that applies to the values ​​taken by the section in question. The most efficient rule among the candidate rules will be retained.

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

[0117] Thanks to 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 value compression potentials, which, as we have seen, take into account the potentially variable length of the values ​​taken by the section.

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

[0119] Thanks to this embodiment, another type of candidate rule is created, or improved, which consists of replacing a value with a dictionary index. While the operation of deleting a value is efficient in a context where a section very frequently takes a given value, the operation of replacing it with an index Dictionary search may be more effective for values ​​whose frequency of occurrence is more evenly distributed.

[0120] According to another embodiment, which may be implemented alternatively or cumulatively with the preceding embodiments, a compression operation added to the selected rule is a prefix deletion operation up to a rank i, the rank i being determined by multiplying together the field bit compression potentials of the chosen section 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.

[0121] Thanks to this embodiment, another type of candidate rule is created which consists of removing prefixes from the values ​​taken by a given section. Field bit compression potentials make it possible to detect prefixes common to many values.

[0122] Through all these embodiments, a reinforcement learning algorithm is defined, which allows the creation of compression rules from a selected rule, guided by the compression potentials. The algorithm can create candidate rules at each step, each rule corresponding to one of the main compression operations defined by the SCHC protocol.

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

[0124] A first candidate rule consists of adding 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.

[0125] A second rule consists of adding a dictionary index replacement operation to the selected rule. If the selected rule already includes a dictionary index replacement operation for that 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 is only meaningful for at least two values, the created dictionary will include the two values ​​with the highest value compression potentials.

[0126] Finally, a third rule consists of adding a bit prefix deletion operation. To define the rule, it is important to decide up to what rank to delete the bit prefix. For this, we use the bit compression potentials of field. If a bit compression potential is 1 for a given rank, this means that the values ​​for that rank all have the same bit, either 0 or 1. Starting from the first rank, and multiplying the bit compression potentials together, we 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 that rank is zero, and the product will be zero. The product falling below a threshold is therefore obvious, and the created rule will indeed remove the prefix for the first two ranks but not for the third.By choosing that the product must remain at least equal to one, the algorithm will only create candidate prefix deletion rules for prefixes that take the same value expressed in bit sequences up to the rank for which the product is less than 1.

[0127] The advantage of this latter embodiment, compared to an embodiment where, for example, candidate rules are created randomly, is that it ensures that compression potentials guide the creation of new rules. In this way, the compression rule set will be of limited size because the most efficient compression rules will be created first and added to the rule set.

[0128] According to another embodiment, which may be implemented alternatively or cumulatively with the preceding embodiments, a predefined order is applied allowing the choice of the candidate rule to be added in case of equality between the compressions performed by candidate rules.

[0129] 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.

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

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

[0132] Thanks to 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 this is the A reward function will ensure that learning progresses towards an acceptable result. The advantage of this approach is that it offers a simpler variant to implement.

[0133] 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 protocol stacking, and characterized in that reinforcement learning of a set of compression rules is applied separately to the subsets of the training set before grouping the rule sets obtained for the subsets into a single rule set.

[0134] Thanks to this embodiment, reinforcement learning can be used on a training set consisting of several distinct subsets, each corresponding to packets having a given header format, this format itself corresponding to a given protocol stack. Training is then performed for a given header format, and the different sets of compression rules are then combined into a single set. This provides an efficient way to cover a deployment context of compression rules applicable to packets of several protocols.

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

[0136] Thanks to this embodiment, the objective of providing a machine learning technique for compression rules for the SCHC protocol is successfully achieved. The technical problem of having a means of deploying the SCHC protocol without requiring an expert to define the compression rules is effectively solved.

[0137] 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: • the reception of 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 of a data representative of the compression rule to which said operation belongs; • the application to said data packet of at least one symmetric decompression operation of at least one compression operation applied to a section value of said packet.

[0138] Thanks to this second functional aspect of the invention, the packet is restored to its original form as it was before the compression operation was applied to the value taken by one of its sections. The compression operations considered generally consist of erasing a given value, or a prefix common to several values, or replacing it with a dictionary index. When a packet has been compressed in this way and is then received, the data representing the compression rule will allow the erased value, or the value corresponding to the dictionary index, to be recovered. It is therefore easy to restore the packet to its original form by applying the symmetrical decompression operation of the applied compression operation, which was recovered using the data representing the compression rule.For example, if a given value held by a given section is erased, and the received packet includes an erased value for that section, the symmetric decompression operation will simply consist of reinserting the erased value into that section.

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

[0140] Thanks to this embodiment, the data packet is received together with the data representing the compression rule that has been applied to it. The joint reception of the packet and the representative data facilitates the decompression operation applied to the data packet, by ensuring that, when a data packet is received, the information that allows the compression operation applied to it to be known is also available with the data packet, thus enabling its immediate reconstruction through the symmetric decompression operation.

[0141] According to another embodiment, which may be implemented alternatively or cumulatively with the preceding embodiments, the received data packet is formed by the concatenation of a 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 has been applied, which belongs to a set of compression rules obtained by learning.

[0142] Thanks to this embodiment, a precise format for the compressed data packet is defined, which will facilitate its reception. The rule identifier of The compression is stored at the beginning of the received packet. This allows the applied compression rule to be immediately retrieved, and therefore the symmetrical decompression to be applied to the received packet to obtain the original packet.

[0143] According to another embodiment, which may be implemented alternatively or cumulatively with the preceding embodiments, 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.

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

[0145] 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: • Prior learning of a set of compression rules including compression operations that can be applied to the values ​​taken by the sections of said data packet; • the application of 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 a data representative of the compression rule to which said operation belongs; • the receipt of said data packet and said representative data; • the application to said data packet of at least one symmetric decompression operation of at least one compression operation applied to a section value of said data packet.

[0146] Thanks to this aspect of the invention, a complete data packet transmission is achieved by transmitting the compressed data packet. Learning the compression rules makes the process automatic, without expert intervention. Transmitting the data representative of the compression rule that was applied to the transmitted packet makes it possible to recover this rule and therefore the compression operations contained within the rule, and to restore the original packet by applying the symmetrical decompression operations.

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

[0148] According to one embodiment, which may be implemented alternatively or cumulatively with the previous embodiment, the method further includes a preliminary step of collecting transmitted packets from the network to form a training set used during the training step of a set of compression rules and a step of synchronously deploying the compression rule set obtained by training to the network nodes.

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

[0150] The prior training of the compression rule set generally uses a training set. This can be provided by an expert or generated automatically according to predefined constraints. However, the preferred embodiment is one in which the training set is collected from packets transmitted in the network. Training is then performed with a training set directly representative of packet traffic in the network, and the resulting compression rules will therefore be much more appropriate. Once the compression rule set has been obtained through training, it must be deployed synchronously to the network nodes so that a node receiving a compressed packet and the data representing the compression rule used can retrieve that rule and apply the symmetric decompression operation.

[0151] Moreover, thanks to this embodiment, the method can be implemented continuously. The collection of data packets used to train the learning set is continuous and allows for the capture of context changes during ongoing packet transmission. An initial set of compression rules may already be deployed, and if the context changes, for example, if the IP addresses of the network nodes change, the compression rules become ineffective. However, the collected packets allow the compression rules to be retrained with a new learning set, and the deployment of a new set of compression rules then allows adaptation to the new context, enabling effective compression to be performed again.The deployment must be synchronized to ensure that the node receiving a compressed packet is aware of the compression rule that was applied, so that it can perform the symmetric decompression operation to restore the data packet.

[0152] According to another embodiment, which may be implemented alternatively or cumulatively with the preceding embodiments, 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.

[0153] Thanks to this embodiment, the SCHC protocol can be deployed in dynamic contexts. The compression rule sets will be updated as the protocol learns, 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 thus made suitable for dynamic contexts through the use of reinforcement learning to create the compression rule sets.

[0154] According to a first material aspect, the invention relates to a management entity for the compression 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: • an application module of 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 transmission module for a data packet to which at least one compression operation has been applied and a data representative of the compression rule to which said operation belongs.

[0155] According to a second material aspect, the invention relates to a management entity for 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 receiving module for 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 a representative data of the compression rule to which said operation belongs; • an application module to a data packet of at least one symmetric decompression operation of a compression operation applied to a section value of said packet.

[0156] According to a third material aspect, the invention relates to a data packet formed by concatenating a data point representing a compression rule, said data point being a compression rule identifier consisting of a sequence of bits, with a data packet to which at least one compression operation belonging to said compression rule has been applied, which belongs to a set of compression rules obtained by learning.

[0157] According to a fourth material aspect, the invention relates to network equipment comprising a compression management entity according to the invention.

[0158] According to a fifth material aspect, the invention relates to network equipment comprising a decompression management entity according to the invention.

[0159] 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 including compression operations that can be applied to the values ​​taken by sections of a data packet; • an application module of 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 transmission module for a data packet to which a compression operation has been applied and a representative data point of a compression rule to which said compression operation belongs; • a module for receiving a data packet and a representative data point of a compression rule; • an application module to a data packet of a symmetric decompression operation of a compression operation applied to a section value of said data packet.

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

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

[0162] Data carriers can be any entity or device capable of storing programs. For example, the carriers can include 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 drive. On the other hand, the carriers can be transmissible media such as an electrical or optical signal, which can be transmitted via an electrical or optical cable, by radio, or by other means. The programs according to the invention can, in particular, be downloaded from a network such as the Internet. Alternatively, the information carrier can 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 process in question. Brief description of the figures

[0163] The invention will be better understood upon reading the following description, given by way of example, and made with reference to the accompanying drawings in which:

[0164] [Fig-1] 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.

[0165] [Fig 2] represents an example of the 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 stages.

[0166] [Fig.3] represents an example of field compression potential calculation explaining the advantage of using a corrected field compression potential.

[0167] [Fig.4] represents an example of calculating compression potentials of ex values impliciting the difference between a compression potential of a value and its frequency of occurrence.

[0168] [Fig.5] 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.

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

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

[0171] The two entities managing compression 100 and decompression 200 appear- They belong to the same NET network, which is a communication network using data packet transmission protocols (P). The data packet P comprises sections taking respective values. The two entities managing compression (100) and decompression (200) have the same set of compression rules (RS). This set includes compression rules that themselves comprise compression operations applied to the values ​​taken by the sections of a data packet P.

[0172] The compression management entity 100 includes 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 compression rules RS, said set RS being obtained by learning.

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

[0174] The decompression management entity 200 includes 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 a data representative of the compression rule to which said operation belongs.

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

[0176] The transmission of the data packet P by module 102, and the reception of the same packet P by module 201, is represented by an arrow connecting module 102 to module 201, labeled with packet P. The transmission and reception of the data representing the compression rule applied to packet P are not shown in [Fig. 1]. In some embodiments, the data packet P and the representative data are transmitted and received together.

[0177] Since the compression management entity 100 and the decompression management entity 200 have the same set of RS compression rules obtained through learning, the decompression management entity 200 can use the data representing the compression rule applied to packet P to retrieve it. It is then easy to determine the symmetric decompression operation. Module 202, which applies a symmetric decompression operation, then restores the data packet P to its state before the compression operation was applied.

[0178] The data packet P was therefore transmitted over the network after one or more compression operations were applied to the values ​​of the sections of packet P by the compression management entity 100. Transmitting the compressed packet P results in significant savings of energy and material resources. The packet P is then restored by the decompression management entity 200 for later use. Since the compression rule set RS is obtained through learning, the process does not require expert intervention and can adapt to changing contexts by iterating the learning algorithm to obtain context-appropriate compression rule sets RS.

[0179] Figure 2, for its part, represents an example of the execution of an embodiment of learning a set of compression rules according to an embodiment of the method of the invention. Figure 2 is subdivided into four subfigures (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.

[0180] Figure 2.A corresponds to the initial state S0 of the learning process and to the first step.

[0181] The training set E consists of N=10000 packets. These N=10000 packets contain a header consisting, in our example, of four fields C1, C2, C3, C4. In our example, each of the fields C1, C2, C3, C4 has a length of 8 bits, indicated by the notation L=8.

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

[0183] For the second field C2, the N=10000 packets of the training set E have three values ​​y^, V? and y| which are again unspecified. Only the frequencies of occurrence of these three values ​​are specified. They are 80%, 10% and 10% respectively.

[0184] For the third field C3, the N=10000 packets of the training set have four values ​​v\, V|, y^ and y* which appear in the training set with the same frequency of 25%. The values ​​are specified as a sequence of 8 bits, and it can be seen that they are differentiated by the prefix.

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

[0186] This example is, of course, fictitious and chosen to illustrate the operation of the compression rule learning algorithm. The different frequencies of occurrence and values ​​taken will illustrate the various 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 attempt to compress the values ​​taken by the fields C1, C2, C3, and C4 of the data packet headers and not delimited sections of the packet payloads, but the principles would remain the same if one were to try to learn compression rules that apply to sections of the packet payloads.

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

[0188] The frequencies of occurrence are presented as percentages 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.

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

[0190] 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), where N is the number of times 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 [] log f, where K is the number of different values ​​that the section takes in the training set and is the frequency of occurrence of the value Vi.

[0191] 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. That's good the case in this example, with a length L equal to 8 bits for the four fields Cl, C2, C3, C4.

[0192] For the Cl field, the calculation therefore gives the following result: [0i93] PCC(CI) = 10000^8-( - / {log2( / ])) = 10000^8-(-1*0)) = 80000

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

[0195] PCÇ(d) -10000*(8- ( - / >>&( / ) - / 108,( / ) ) ) - W000*('8 -(0.8*0.3219+0.1*3322 + 0.1*3.322)) = 10000*( 8-0.92192) =70781

[0196] 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:

[0197] PCC(C3) = 10000*(8- ( - / log / / ) - / log,( / ) - / ^( / ) - / 1°¾ ( / ) ) ) = W000«(8- (4*0.25*2) ) = 60000 = PCC(C4)

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

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

[0200] The reinforcement learning algorithm for the compression rule set RS begins by selecting a rule from the set RS. Since the set RS only contains rule R0 at this stage, it is this rule R0 that will be selected. Later steps will show how the selection can be performed when there are multiple rules in the compression rule set RS.

[0201] Starting from rule R0, several candidate rules will be created in the example embodiment presented here. The first step in creating the candidate rules in our example consists of choosing a field from among the fields Cl, C2, C3, and C4. To do this, the learning algorithm implementation uses the field compression potentials PCC(Cl), PCCC(C2), PCC(C3), and PCC(C4). In general, the algorithm will choose a section using the field compression potentials for all the sections whose values ​​we are trying to compress.

[0202] This calculation of the PCC field compression potentials must take into account the compressions performed by the compression rules present in the compression rule set RS. One possible embodiment of this is to partition the training set E according to the compression rules of the RS set, and to calculate the PCC field compression potentials for each rule of the RS set using the subsets of the training set E assigned to each rule. At this initial stage, only rule R0, which does not No compression is present. The calculation of the PCC field compression potentials is therefore the one presented above.

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

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

[0205] The first candidate rule created consists of adding an erasure operation. To select the value to be erased, in our example embodiment, PCV value compression potentials are calculated. In this case, since the field Cl takes only one value y1 in the training set E, it is of course this value that will be erased.

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

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

[0208] The next step of the learning algorithm will consist of retaining one rule from among the candidate rules created to add it to the RS compression rule set. 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.

[0209] The first candidate rule would erase the value yj taken by the CL field. Since this field has a length of 8 bits, and the value yj appears in the 10000 packets of the training set E (its frequency of occurrence y' is 100%), the compression performed by this candidate rule is 8*10000, or 80000 bits.

[0210] The second candidate rule would replace the value y' taken by the field Cl with an index from a dictionary. Since this index has a length of one bit, the compression performed by this rule for a packet would not be 8 bits, but only 7 bits. Multiplying by the 10000 packets in the training set, the compression achieved by this candidate rule is 70000 bits.

[0211] The third candidate rule would perform the deletion of the common prefix for the values ​​taken by the field Cl. Since the field Cl, in the training set E, only takes the value y-, then this entire value would be deleted by the common prefix deletion operation. This third candidate rule therefore performs the same compression as the first candidate rule, namely 80,000 bits.

[0212] In our embodiment, the chosen candidate rule is the one that achieves the best compression. In case of a tie, a selection criterion can be defined. In our embodiment, the deletion operation is preferred over the index replacement operation, which is itself preferred over the common prefix deletion operation. Therefore, this RI compression rule, denoted ^i)]', will ^tre added to the RS set of compression rules. The notation y* uses The acronym ns stands for "not sent" to indicate a value that was not transmitted. A compression rule is denoted in our figures as a sequence of operations placed between square brackets.

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

[0214] In the embodiment presented here, when an added rule applies to all data packets in the training set to which the selected rule applies, then the selected rule is removed from the compression rule set. This is indeed the case here: the initial rule R0, which performs no compression, does apply to all packets in the training set E, and this is also the case for rule RI, which clears the value y', since this value is taken by 100% of the Cl fields of the packets in the training set E.

[0215] 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.

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

[0217] The [Fig 2].B corresponds to the SI state of learning, after the first step, and to the second step of reinforcement learning according to an embodiment mode.

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

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

[0220] The calculation of the PCC field compression potentials uses the formula N(L - H), where N is the number of times the field appears in the training set. To account for the modification of the compression rule set, it suffices, in one embodiment, to apply the compression rules of the RS set to the training set E. Here, applying the RI rule 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 PCC(Cl) field compression potential, taking into account the addition of the RI rule to the RS compression rule set, will use a quantity N=0. Thus, PCC(Cl) = 0 in step SI.

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

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

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

[0224] The description of the following steps will show how calculations of PCC field compression potentials, taking into account the compression rules belonging to the RS set, allow the selection of a rule from the RS set of compression rules in order to create candidate rules. Since the RS set contains only one RI rule at this SI step, it is this RI rule that is selected in our example.

[0225] As seen previously, once the RI rule is 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 therefore in this case, it is field C2.

[0226] As seen previously, three candidate rules will be created, adding a compression operation to the selected field C2 to the RI rule. The first will be a value deletion operation, this value being chosen according to the value compression potentials. Since field C2 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 yJ, which appears with a frequency of 80%. The second candidate rule will consist of adding a dictionary operation. Since there is no dictionary operation for field C2, this is a creation that will replace two values ​​taken by field C2, namely the value with the highest value compression potential and one of the two values ​​y|ct whose value compression potentials are equal. Let's say that the value y| is chosen randomly.The third candidate rule consists of adding a prefix deletion operation, and it is assumed that the values ​​taken by field C2 are similar to those taken by field C3, and therefore do not have a common prefix.

[0227] The next step of the learning algorithm will consist of retaining one rule from among the candidate rules created to add it to the RS compression rule set. 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.

[0228] The first candidate rule performs the erasure of the value y* 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.

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

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

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

[0232] It is therefore the first candidate rule that will be retained and added to the set of compression rules RS, giving rule R2. This is denoted in Figure 2.B as follows: R2: yja^n to show that the operation The deletion of the value y*, denoted y^j, is added to the deletion operation of the value yj which was already present in RI. We recall that rule R2 was created by selecting rule RI and adding a compression operation to it, in this case, the deletion of the value y*.

[0233] 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 in the training set E to which the rule RI applies. Indeed, the rule RI applies to all packets in the training set E, whereas the rule R2 applies only to the 8000 packets in the training set E in which the field C2 takes the value y^. For this reason, in the embodiment presented here, the rule RI is not removed from the set RS of compression rules, which will now include both the rules RI and R2.

[0234] 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 R0 and 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, create a dedicated subset, and assign the remaining 2000 packets to the rule RI.

[0235] In our example embodiment, this allocation of packets from the training set E to rules in the RS set is performed when a new rule is added to the RS set of compression rules, at the time of deciding whether or not to remove the selected rule from the RS set. Since the created rule is generated from the selected rule by adding a compression operation, 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 retain the selected rule in the RS set of compression rules.If the created rule does not apply to all packages in the selected rule, the created rule is assigned the packages to which it applies, and the created rule is kept in the RS set of compression rules, and the residual packages to which the created rule does not apply are assigned to it.

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

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

[0238] The [Fig 2].C corresponds to the S2 state of learning, as obtained after the second stage, and to the third stage of reinforcement learning according to an embodiment mode.

[0239] At this stage S2, the set RS of compression rules comprises two rules RI and R2. To perform a selection among these two rules in order to create candidate rules, one possible embodiment uses the calculation of PCC field compression potentials according to a partition of the training set E into subsets assigned to the rules RI and R2. We saw previously, in the description of the end of the second step, how to proceed with this partition.

[0240] In our embodiment, 8000 packets from the training set E were assigned to rule R2, those for which rule R2 applies, and the remaining 2000 packets were 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.

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

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

[0243] For rule RI, the packets in the training set E assigned 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, equally likely, takes one of the two values ​​y| or y^. In these 2000 packets, the field C2 does indeed appear, and the quantity N is therefore 2000. The formula for calculating the field compression potential PCC(C2) is thus: PCC{C2) =N*{L-( - / ;log4 / ;) = 2000*(8-( -0.5(-1 ) -0.5(-1)) ) = 2000*7 = 14000

[0244] For rule R2, however, the 8000 packets in the training set E that 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 C2 field does not appear in this subset and we have here a quantity N of zero and therefore a field compression potential PCC(C2) of zero.

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

[0246] For the calculation of the field compression potentials PCC(C3) and PCC(C4), we saw above that we assumed that the frequencies of occurrence of the different values ​​taken by the fields C3 and C4 are the same in the two subsets assigned to the RI rule and the R2 rule. For four equiprobable values, the quantity '(4*(0.25*( -2)), or 2. In other words, for the For rule RI, which was assigned to 2000 packets, the field compression potentials PCC(C3) and PCC(C4) are 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 8000*(8-2), or 48000. These two values ​​are clearly shown in [Fig 2].C.

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

[0248] One possible embodiment consists of adding 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.

[0249] 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 that rule rather than by summing them. This embodiment also leads us to select rule R2.

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

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

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

[0253] For the candidate rule that consists of adding to rule R2 an operation to erase a value taken from field C3, since the values ​​are equiprobable and the four values ​​have the same length (because field C3 is of fixed length), they will therefore have the same value compression potentials. Any value can thus be selected for erasure. Again, one embodiment in case of a tie could be to perform a random draw, or to take the first or last value that occurred, or any other selection method.

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

[0255] The compression achieved by the deletion operation is calculated for the 8000 packets to which rule R2 applies. Regardless of the value deleted, it appears in one-quarter of the 8000 packets, therefore 2000 packets. The compression achieved by the deletion operation would thus be 2000 * 8 = 16000 bits.

[0256] 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 with erasure.

[0257] The best compression is achieved by the index replacement operation. In Figure 2.C, such an erasure operation is denoted map^V^, the term "map" coming from the English word mapping. It is assumed that the random selection of the two values ​​to be replaced by a dictionary index yielded the two values ​​v and V^. The complete rule R3 therefore comprises three operations, namely the two erasure operations already present in R2 plus the new operation, and is denoted as follows: #3 ; y]) + ns( y* ) + map(y'^ y2'J

[0258] Rule R3 is therefore added to the RS compression rule set. It applies to 4000 packets from the training set E (half of those to which rule R2 applied), which will be allocated to it for calculating 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 RS compression rule set. Finally, the 2000 packets assigned to the RI rule remain assigned to it.

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

[0260] In the previous step described in [Fig 2].C, we saw how the learning algorithm proceeded if the candidate rules constructed from rule R2 sought to compress field C3. Here, we will see the progress of the learning algorithm according to an example implementation if field C4 is chosen instead, knowing that these two fields have the same PCC field compression potential.

[0261] In this case, it is recalled that the four values ​​taken by the field C4 are equiprobable, and that the compression carried out by the candidate rules is estimated on the 8000 packets assigned to the selected rule R2.

[0262] The first candidate rule will be rule R2 with the addition of a value deletion operation. Since the four values ​​taken by field C4 are equally probable, the value compression potentials will be equal. By choosing any one of the four equally probable values, adding a deletion operation would result in the deletion of an 8-bit value appearing in 2000 packets (a quarter of the 8000 packets allocated to R2), resulting in a compression of 16000 bits.

[0263] The second candidate rule will be rule R2, to which a value replacement operation using a dictionary index is added. As seen in [Fig. 2].C, the compression achieved by the dictionary index replacement operation 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 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 with erasure.

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

[0265] These potentials are calculated for the 8 ranks numbered from 0 to 7, for the values ​​taken by the C4 field in the relevant packets of the training set. These four values ​​y|, y*, fC and l are equiprobable and have the same value for the first 6 bits, which are all 1. The frequency of occurrence of bit 1 at rank 0 is Therefore, 1, and conversely, the frequency of occurrence of bit 0 at position 0 is 0. Since a logarithm of a zero frequency is undefined, the entropy estimator of a field bit calculated according to the formula H(bt)= - (fJog2( f.) + ( 1 - f.) 10g2( 1 - f. )) is by convention 0 in this case, and the field bit compression potential for rank 0 is then 1.

[0266] The bit compression potentials of the field are all equal to 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 equal to 1, but the result is the same if, for a given rank, all the bits are equal to 0.

[0267] For ranks 7 and 8, bits 0 and 1 are equally probable since the four values ​​y|, y^ and y^ are also equally probable. The field bit compression potentials for these ranks 7 and 8 are then:

[0268] i- (-(0.5*log20.5+ (1-0.5) *log,( 1-0.5) )) = 1-(-(0.5*(-l) + 0.5*(-1))) = 1-1 = 0

[0269] The field bit compression potential is indeed zero for a rank where bits 0 and 1 are equiprobable.

[0270] By using the method where the field bit compression potentials are multiplied together, starting from bit 0, and using a threshold, it can be seen how it is possible to detect that packets have common prefixes for certain fields. In the example shown here, the product of the field bit compression potentials changes from 1 to 0 between bit 6 and bit 7. It is therefore easy to see that the candidate rule created by adding a prefix deletion operation to rule R2 will consist of deleting the first six bits of the values ​​taken by field C4. This rule R3 is noted as follows: Æ3: [jw( Vj) + ns( Vj) + msl^C4^ 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.

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

[0272] After step S2' as after step S2, other steps of the RS compression rule set learning algorithm may take place which will add compression operations taking into account the remaining compression potentials to finally obtain efficient compression of the training set E.

[0273] Regarding stopping the learning algorithm, several possibilities exist.

[0274] 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 adding this new rule improves the compression performed 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 performed 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 along with the compressed packet in order to perform the decompression. For an RS set containing two compression rules, a single bit is sufficient to identify the compression rule used. For four rules, two bits are required, and so on.We did not take this effect into account when specifying compression calculations to select among the candidate rules, but this effect must be considered when determining a stopping criterion for the learning algorithm. Furthermore, this effect is retroactive; that is, compression calculations performed when the RS set of compression rules comprises four rules, which can be designated by two bits, must be repeated for all compression rules when the RS set increases to five rules, thus requiring all rules to be designated by at least three bits.

[0275] Another possibility is to give a maximum size to the set of RS compression rules. 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.

[0276] 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 performed by the last rule added is zero or less than a given threshold.

[0277] Fig. 3, meanwhile, represents another example of a calculation step in the reinforcement learning algorithm which illustrates the interest of calculating a field compression potential corrected by a factor.

[0278] In the example in [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 consist of two fields, C1 and C2, of different lengths, unlike the example in [Fig 2] where all four fields were the same length. Field C1 has a length of L = 2; field C2 has a length of L = 10, both lengths being expressed as the number of bits. As in the previous example, the packet sections that we will attempt to compress are the two fields C1 and C2.

[0279] As for the values ​​taken by the fields in the training set E, the field Cl takes only one value, so the frequency of occurrence of this value y J is fl = 100%. For the field C2, on the other hand, it presents a different value in the 100 packets of the training set E. For the field C2, we therefore have 100 training frequencies which are all equal to 1%, which is noted in Figure 3:

[0280] It is recalled that, in our example embodiment, the formula for calculating a field compression potential PCC is: PCC — N(L - H) where N is the size of the assembly, L the length of the section, and H an entropy estimator. The formula for calculating the entropy estimator is: j in which K is the number of different values ​​ / <| that the section takes in the training set and f. is the frequency of occurrence of the value V{.

[0281] The entropy estimator seeks, as its name indicates, to estimate the entropy that the values ​​taken by the section seem to exhibit with regard to the training set E. The lower the entropy, the more ordered the values ​​taken by the section will be and therefore the easier it will be to compress them, for example with a value deletion rule, and therefore the more interesting the section is 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 compression rule set RS.

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

[0283] A defect in the entropy estimator, which appears in the example in [Fig. 3], is that this quantity grows at too slow a rate even in the presence of maximum entropy. This is what we see in the C2 field. The entropy taken by the values ​​of the C2 field in the training set E is maximum, since we have 100 different values ​​for the 100 packets; the 100 values ​​therefore have the same frequency of occurrence, namely 1%, that is, 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 ultimately 6.644, which is the maximum value it can take in a training set E of 100 packets. But since the C2 field has a length of 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 of Cl, 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.

[0284] It can be noted that if the length of the C2 field were L = 8 bits instead of 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 offset here by the field length, even though the C2 field would still be 8 bits long, compared to the 2-bit length of CL.

[0285] In the case where the length of field C2 is 10 bits, using the PCC field compression potential as defined by its initial formula would therefore lead to an over-valuation of field C2, which would be inefficient, because the compression resulting from a first rule would be, for example, a replacement rule using the index of a dictionary, which would thus replace two 10-bit values ​​with a one-bit index, i.e., 18-bit compression in the training set E for the two values ​​from the dictionary taken by field C2, out of the 100 values ​​taken, compared to the 200 bits of compression obtained by the rule of erasing the single value yj taken by field CL

[0286] To correct 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 is 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, it will be multiplied by the correction factor CORR.

[0287] For the Cl field, 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.

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

[0289] Figure 3 finally shows the impact of choosing 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 applies no compression operation to the packets in set E.

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

[0291] If, on the contrary, the choice is made to use the CORR correction factor, as indicated in Figure 3 by the Corr line, then the Cl field will be selected, and the added rule RI' will be the one that erases the unique value yj taken by the Cl field. In this case, as in the calculation example in [Fig 2], the R0 rule can be removed from the training set because all packets processed by the R0 rule are also processed by RI'. This is indicated by the crossed-out box placed on the R0 rule in the definition of the RS compression rule set.

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

[0293] Other choices of values ​​are possible for the positive coefficients a, fi and F which can take for example the values ​​« — 1, fi = 1 and y = 0.

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

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

[0296] Fig. 4, meanwhile, represents another example of a calculation step in the learning algorithm that illustrates the impact of the size of the values ​​on the compression potential of each value.

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

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

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

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

[0301] The general formula for calculating a compression potential of value 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 base 2 logarithm. Since the field C is of variable length, the length of each value VI, V2 and V3 taken by the field C must be used.

[0302] Figure 4 shows the calculation of the three compression potentials of values ​​PCV(V1), PCV(V2), and PCV(V3) for the three values ​​V1, V2, and V3. It can be seen that the highest potential is that of V3. The largest length L3 = 1000 bits makes this value more attractive to compress, for example by erasure, than the other values, even though V3 is the value with the lowest frequency of occurrence.

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

[0304] The computational example also demonstrates the importance of the training set E accurately reflecting the actual traffic that needs to be compressed. Even 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 which concerns it may end up taking the place of another compression rule which applies to a shorter but more frequent value, so that effective compressions will not be achieved as a result of the poor estimation of frequencies in the training set E.

[0305] Fig. 5 represents a complete SYS system for transmitting data packets in a NET network according to the invention.

[0306] The SYS system has an architecture comprising several network devices, namely a gateway GW and two terminals DVC1 and DVC2. The SYS transmission system according to the invention consists of these three devices GW, DVC1 and DVC2.

[0307] These network devices are connected via the NET network. This could be, for example, a local area network (LAN) where the gateway GW allows DVC1 and DVC2 terminals to access other, larger networks, such as the Internet. The communication protocols between the network devices GW, DVC1, and DVC2 can be of any type, provided they are based on the transmission of P and P' data packets. The NET network could therefore be a home LAN using a Wi-Fi connection, or an LPWAN-type deployment network for connected objects using a LoRa connection or any other connection suitable for connected objects, or a mobile network where the gateway GW is a base station and the DVC1 and DVC2 terminals are mobile devices.

[0308] The GW gateway includes a compression management entity 100; a decompression management entity 200; and specific modules, namely an APP learning module, a COL collection module, and a DEP deployment module.

[0309] The DVC1 terminal includes a compression management entity 100 and a decompression management entity 200.

[0310] The DVC2 terminal, on the other hand, includes only 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 would almost exclusively transmit P packets and receive very few. To save the memory space required for the construction of the DVC2 terminal, it may therefore have been decided not to integrate a decompression management entity 200 into the DVC2 terminal. It will therefore not be possible to transmit a P packet compressed according to the invention to the DVC2 terminal, because it would not be able to decompress it and thus restore it.

[0311] It can be seen that the SYS transmission system 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 applying a compression operation to a section value of a data packet P, module 101 not being represented in [Fig.5] but included in a compression management entity 100 present in the gateway GW or the terminals DVC1, DVC2; • at least one 102 module for transmitting a data packet P, the 102 module being likewise included in a management entity 100; • at least one 201 module for receiving a data packet P, the 201 module not being represented in [Fig.5] but included in a decompression management entity 200 present in the GW gateway or the DVC1 terminal; • at least one module 202 for applying a decompression operation, module 202 being likewise included in a management entity 200; • at least one COL collection module in the NET network of packets P, P' to form a training 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.

[0312] 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 was compressed using a compression rule whose identifier is I. In the embodiment illustrated here, the compression management entity transmits jointly 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 gateway GW and the decompression management entity 200 belonging to the terminal DVC1.

[0313] 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 sends a concatenation I'+P' to the decompression management entity 200 of the gateway GW.

[0314] Since all compression management entities (100) and decompression entities (200) in the SYS system have the same set of RS compression rules, it is easy for the receiving network equipment to restore a compressed packet P, P' by applying decompression operations that are symmetric to the compression operations applied to the values ​​taken by the data packet sections P, P'. The identifiers I, F transmitted along with the packets P, P' allow the rule, and therefore the compression operations that were applied, to be retrieved.

[0315] In the SYS system architecture shown in [Fig. 5], the GW gateway It has a COL collection module that allows the GW gateway to gather the P and P' data packets that pass through it. In a local area network architecture, such as the one shown here, the GW gateway is ideally positioned to receive all the P and P' packets passing through the NET network.

[0316] The packets P, P' collected by the COL module will be used to create a training set E, which will be used by the APP training module, also present in the GW gateway. The APP training module learns the RS compression rule set using packets P, P' actually collected from the NET network by the COL collection module. This significantly improves the relevance of the training and the RS compression rule set. The DEP deployment module will then synchronously deploy the RS compression rule set to the GW gateway and the DVC1 and DVC2 terminals of the SYS system.

[0317] According to one embodiment, the compression 100 and decompression 200 management entities can have several sets of compression rules. This facilitates the synchronized deployment of new RS compression rule sets by allowing the concurrent use of several RS compression rule sets while all equipment in the NET network has received the new RS compression rule sets.

[0318] The COL collection module will of course transmit to the APP learning module packets P, P' restored in their integrity, and not compressed packets, because only restored packets allow learning the information on the most interesting section values ​​to compress.

[0319] 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 DVC1, DVC2 terminals and the GW gateway.

[0320] The SYS transmission system thus fulfills the expected technical objective, namely the application of highly efficient compression rules to packets P, P' by using a learning module APP to perform automatic learning of the RS compression rule set. The COL collection module, which feeds the APP learning module with a training set E representative of the traffic present in the NET network, and the DEP deployment module, which synchronously deploys the RS compression rule set obtained through learning, ensure that this highly efficient compression of packets P, P' is achieved, firstly, without human intervention, and secondly, that it adapts in the event of a change in the NET network context, for example, in the event of a change IP addresses of network equipment GW, DVC1, DVC2 or in case of adding new equipment to the network.

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

[0322] Fig. 6 represents a complete SYS system for transmitting data packets in a NET network according to the invention, but with a different architecture from that seen in Fig. 5.

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

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

[0325] We saw in the presentation of [Fig. 5] how the transmission of packets P, P' worked. We simply note here that the SYS transmission system includes an SRV server dedicated to learning the RS compression rule set. Router RTR1 includes a COL collection module that 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 all packets passing through the NET network, both transmitted and received. However, several COL collection modules can also be used, one in each router RTR1 and RTR2, depending on the practicality of this deployment. If the SRV server is co-located with router RTR1 in the same data center or network room, it will be much more efficient to deploy a COL collection module only in router RTR1 and not in router RTR2, which may be very far away in the case of long-distance transmission.

[0326] The SRV server is dedicated to learning the RS compression rule set. It includes an APP module that performs the actual learning of the RS compression rule set according to the invention. The DEP deployment module ensures the synchronized deployment of the RS compression rule set. in both routers RTR1 and RTR2.

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

[0328] Finally, it should be noted here that, in this text, the term "module" can refer to a software component, a hardware component, or a set of hardware and software components. A software component itself corresponds to one or more computer programs or subprograms, or more generally to any element of a program capable of implementing a function or set of functions as described for the modules concerned. Similarly, a hardware component corresponds to any element of a hardware assembly capable of implementing a function or 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 the entropy estimator of a field bit which is calculated according to the formula / / (*,)= - (fJog2(f.)+ conventionally equal to 0 when f. is equal to 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 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.

14. 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 compression to which the said operation belongs; • applying to said data packet (P) at least one symmetrical decompression operation of the at least one compression operation applied to a section value of said packet (P).

15. 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.

16. 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 package (P).

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

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