Title: method for obtaining a set of compression rules for a data packet transmitted in a network

EP4725182A1Pending Publication Date: 2026-04-15ORANGE SA
View PDF 0 Cites 0 Cited by

Patent Information

Authority / Receiving Office
EP · EP
Patent Type
Applications
Current Assignee / Owner
Filing Date
2024-06-03
Publication Date
2026-04-15

AI Technical Summary

Technical Problem

Current data compression methods, such as the SCHC protocol, are limited by the need for static context updates and expert-defined compression rules, which are costly and inefficient, especially in dynamic contexts like LPWANs, where connected objects require energy-efficient data transmission.

Method used

A method using reinforcement learning to automatically generate and update compression rules based on a learning set of data packets, allowing for dynamic context adaptation and efficient compression without expert intervention.

Benefits of technology

Enables effective and efficient compression of data packets in various contexts, including dynamic ones, by automatically generating and updating compression rules, reducing energy and hardware consumption in networks like LPWANs.

✦ Generated by Eureka AI based on patent content.

Smart Images

  • Figure EP2024065212_12122024_PF_FP_ABST
    Figure EP2024065212_12122024_PF_FP_ABST
Patent Text Reader

Abstract

The invention relates to a method for obtaining a set (RS) of compression rules able to compress a data packet (P) transmitted in a network (NET), the packet (P) comprising sections that take respective values expressed in the form of a bit string, the packet (P) being able to be compressed by applying compression rules that are able to delete bits of a value taken by a section of the packet (P), the method comprising, for multiple given compression rules, obtaining a count (D), in relation to a set (E) of data packets, referred to as the training set, of the number of bits deleted by the rule in question applied to packets of what is referred to as the training set, followed by obtaining the set (RS) of compression rules on the basis of the obtained counts (D).
Need to check novelty before this filing date? Find Prior Art

Description

[0001] Description

[0002] Title: Method for obtaining a set of compression rules for a data packet transmitted in a network

[0003] Technical field

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

[0005] More specifically, the invention relates to a method for obtaining a set of compression rules capable of compressing a data packet transmitted in a network. In embodiments, the invention relates to a method for managing the compression and decompression of a data packet transmitted in a network.

[0006] Modern digital telecommunications operate on the principle of exchanging data packets between transmitters and receivers using protocols such as the Internet Protocol (IP). A set of data packets related to a communication is sent by the transmitter to a receiver. The packets contain the receiver's address so that they can be addressed using different routing algorithms, and the content of the communication is reconstructed by the receiver by grouping the data contained in the different packets. To achieve complete communication, many protocols must be used, each fulfilling a role, from the physical sending of bits, the atomic elements that make up digital data, to the interpretation of data for computer applications. Bits are traditionally grouped into bytes, sets of eight bits.Protocols are traditionally viewed as being organized into 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 various protocols between different layers.

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

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

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

[0010] Packet headers contain fields. A field is a continuous set of bits of either a fixed or variable length. When a field is of variable length, mechanisms are used to determine the length of the field actually transmitted. When the value in a fixed-length field is of variable length, padding bits will fill in the value up to the fixed length of the field. A field has an identifier that indicates the nature of the value in the field. 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. The size of this field is four bits. Other fields, for example, concern 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.

[0011] A packet analysis tool such as Wireshark or tcpdump can be used to capture and analyze data packets. Analysis allows a data packet exchanged over a network to be separated 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. Remember that, following the encapsulation of data packets, the typical header of a packet will consist of several concatenated headers, one for each encapsulated protocol. For example, an Ethernet frame encapsulating an IP packet will begin with the IP header, followed by the UDP header. The fields of the IP packet will therefore be followed in the frame by the fields of the UDP packet.

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

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

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

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

[0016] 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 built for each communication indicating which values ​​can be compressed, and in what manner. Senders and receivers must therefore regularly update the contexts used for header compression. This update operation is very costly, and other mechanisms will be preferred in certain usage contexts.

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

[0018] In addition, the data exchanged by these objects is often very small, and may be limited to signaling 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 headers of the data packets proportionally to the size of the payload will therefore be proportionally larger in the context of LPWANs than in other contexts. There is therefore a need for efficient compression of data packets which, in the context of LPWANs, will focus on the compression of the values ​​of the header fields.

[0019] The SCHC protocol (Static Context Header Compression), defined by the IETF in RFC 8724, was designed for use in the context of LPWANs. It is based on a static context. For a given context, for example a type of connected object deployed in a given network, compression rules will be defined. These rules group together operations that can be applied to the values ​​of fields in 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:

[0020] • A first type of compression operation is erasure: the value of the field is read and will be erased by the compression module if the value is the expected one. The compression module is for example located in the connected object. The erased value will be inserted upon reception by the decompression module which is located in the gateway and which has the same rules as the compression module. This type of operation is suitable for fields which take a constant value, such as the Version field of IP packets. If the field takes a value other than the expected one, the operation does not apply, the compression rule is ignored, and another rule will possibly be used or the value of the field may be transmitted unchanged.

[0021] • A second type of compression operation uses a dictionary: a dictionary is constructed for certain field values, and if the field value is found in the dictionary, the compression module will replace the field value with its index in the dictionary. The decompression module uses the dictionary to replace the index with the deleted value. Again, a field value outside the dictionary may be passed unchanged if no rules apply.

[0022] • A third type of operation is prefix erasure: the field value is a sequence of bits, and a longer or shorter prefix can be defined in a compression operation. If the value has this prefix, the prefix will be erased during compression and inserted during decompression, or the value will be transmitted unchanged if the prefix is ​​not recognized by the operation.

[0023] For completion reasons, a fourth type of operation is defined, which consists of ignoring the field value and passing it as is. Other combinations are possible, as are other compression / decompression actions, for example, to handle variable-length fields.

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

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

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

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

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

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

[0030] Since the ID 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 interesting because the possible gain brought by the additional rule is exceeded by the transmission cost induced by the increase in the size of the rule ID as new rules are added. For example, beyond eight rules, the transmitted rule ID will be encoded on three bits instead of two. If adding a ninth rule only saves on average a single bit, adding this ninth rule is not interesting. Likewise if an added rule involves the use of additional bits to encode the dictionary indexes.

[0031] 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 in the SCHC protocol reconstructs the header exactly as it was before compression. This is the general case, although there may be usage settings where this is not the case.

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

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

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

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

[0036] Furthermore, it is desirable to use the compression operations defined by the SCHC protocol, which provide very 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 allowing the header compression principles defined in the SCHC protocol to be applied to a dynamic context, even if it is weakly dynamic. For example, if, in a deployment context, SCHC compression is applied to an IP address value, and this value changes even if at a very low frequency, the rule established in a static context becomes inoperative from the first change of IP address. Or, if a given section of a payload varies, even slightly, the rules of the SCHC protocol will not apply.

[0037] The invention improves the situation.

[0038] Statement of the invention

[0039] According to a first functional aspect, the invention relates to a method for obtaining a set of compression rules for a data packet transmitted in a network, the packet comprising sections taking respective values ​​expressed in the form of a sequence of bits, the packet being capable of being compressed by applying compression rules capable of removing bits from a value taken by a section of the packet, the method comprising, for several given compression rules, obtaining a count, relative to a set of data packets, a so-called training set, of the number of bits removed by the rule concerned applied to packets of the so-called training set followed by obtaining the set of compression rules as a function of the counts obtained.

[0040] By means of the invention, a set of compression-relevant compression rules is automatically created. The compression rules comprise compression operations that apply to values ​​taken by sections of data packets. The compression rules of the resulting set can be applied to data packets transmitted in the network in order to achieve effective and efficient compression of the transmitted data packets. The advantage of the invention is that the compression rules can change automatically when the transmission context changes and remain effective. This makes it easier to deploy compression protocols and to use them in many contexts, including dynamic contexts.

[0041] In the invention, quantities called counts are obtained from a set of packets, called a training set. This training set is representative of the expected traffic, which will have to be compressed by the set of compression rules obtained. The counts obtained make it possible to know precisely the quantities of bits that can be erased by given compression rules in this representative set and thus to guide the creation of compression rules. Obtaining exact counts of bits that can be erased by compression rules can be long and complex to achieve for large training sets. But the training sets must be large to be truly representative of the expected traffic. The challenge of the invention is to find an efficient representation of a large training set in order to be able to carry out these exact counts.

[0042] According to one embodiment, the method further comprises 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 the set of compression rules obtained, followed by 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.

[0043] With this embodiment, the obtained compression rules are applied to data packets and allow effective compressions to be performed. The data packets are compressed by applying compression operations that erase portions of value, or even complete values, taken by sections of the data packet. To reconstruct the portions of value erased upon receipt of the compressed packet, the latter must be transmitted with data representative of the compression rule that was applied to it.

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

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

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

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

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

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

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

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

[0052] According to another embodiment, which may be implemented alternatively or cumulatively with the previous embodiments, obtaining the set of compression rules comprises the implementation of a reinforcement learning algorithm.

[0053] Reinforcement learning, unlike supervised learning, does not require any expert intervention. The technical effect is that compression rules can be obtained automatically to compress data packets transmitted over the network. A first advantage is that compression rules can be obtained cheaply and quickly since this does not require expert intervention. Another advantage is that compression rules can change automatically when the transmission context changes and remain effective.

[0054] According to another embodiment, which may be implemented alternatively or cumulatively with the preceding embodiments, the reinforcement learning algorithm implemented in obtaining the set of compression rules uses as a learning set the so-called learning set, formed of data packets collected beforehand; implements an environment which comprises the so-called learning set and the set of compression rules; and the change of state in the reinforcement learning algorithm comprises the addition of a new rule to the set of compression rules.

[0055] As the invention relies in this embodiment on the use of a learning algorithm, it requires the use of a learning set which must be defined beforehand. This learning set is a set of data packets for which the learning algorithm will seek to produce a set of compression rules which compresses it as best as possible. This learning set is the so-called learning set which is used to obtain the counts of the number of bits removed by a compression rule which would be applied to packets of the so-called learning set. It is clear that the learning will be all the more relevant as the learning set is representative of the expected traffic whose data packets must be compressed.If the training set is too small, in particular, training 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.

[0056] Reinforcement learning involves evolving the learned compression rule set in an environment that includes the training set that the compression rule set is designed to compress. This evolution is done by adding a new rule to the compression rule set. The training set, however, does not evolve during the learning phase.

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

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

[0059] The advantage of this mode is therefore to specify how to run a reinforcement learning algorithm to learn a set of compression rules and how to choose relevant parameters of reinforcement learning to obtain a good compression of the packets of the training set by the set of rules resulting from the training.

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

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

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

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

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

[0065] According to another embodiment, which may be implemented alternatively or cumulatively with the previous embodiments, the obtaining method comprises the following steps executed when obtaining the set of compression rules:

[0066] • a step of selecting a rule belonging to the set of compression rules using at least one count among those obtained;

[0067] • a step of creating a new rule from the selected rule using at least one count among those obtained; adding the new rule to the set of compression rules; and, furthermore, said steps are iterated, until a stopping criterion is satisfied, using at the following iteration the set of rules modified by the addition of the new rule.

[0068] With this embodiment, obtaining a set of compression rules is guided efficiently. Indeed, obtaining can work by randomly performing state changes that will be retained or not according to a reward function. This way of proceeding could on the one hand take a lot of time and on the other hand lead to sets of compression rules comprising too many rules if the most 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 coded on a large number of bits which makes compression inefficient.

[0069] Therefore, it is necessary to guide the obtaining of compression rules. For this, exact counts of bits that can be erased by compression rules are obtained 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.

[0070] Obtaining works by iteration until a stopping criterion is satisfied, and the iteration consists of applying the same algorithm to an environment formed by the new set of compression rules (with a new rule added) and the so-called training set. To ensure that obtaining takes into account the addition of the new rule, it may be useful to calculate counts at the next iteration that take into account the addition of the new rule. This can be done by isolating in the so-called training set the subsets of packets for which the different rules apply. In this mode, the values ​​compressed by the new rule will not be taken into account in the count calculations. Counts will only be obtained for values ​​that are not compressed in the current state of the set of compression rules that is being obtained.

[0071] According to another embodiment, which may be implemented alternatively or cumulatively with the preceding embodiments, if the added rule applies to all the data packets of the so-called learning set to which the selected rule applies, then the selected rule is removed from the set of compression rules.

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

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

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

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

[0076] According to another embodiment, which may be implemented alternatively or cumulatively with the previous embodiments, the step of selecting a rule belonging to the set of compression rules uses a quantity called compression potential for a given section of packets of the so-called learning set.

[0077] In some embodiments, it may be useful to use compression potentials rather than exact counts of the amount of bits that can be erased by compression rules to guide the selection of compression rules to sections of packets not yet processed by compression rules. These compression potentials can be calculated more efficiently than exact counts and present an alternative for guiding the obtaining algorithm.According to another embodiment, which may be implemented alternatively or cumulatively with the preceding embodiments, one of the compression potentials obtained is called the field compression potential and is calculated for a given section of fixed length according to the formula NL - H) in which N is the number of times that the section appears in the so-called learning 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 H = - Z'. ie[1 K] f i log2(f i ') in which K is the number of different values that the section takes in the training set and is the frequency of occurrence of the value V t .

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

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

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

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

[0082] The entropy estimator can therefore be at least zero. This is the case when the given section has a single value in the so-called learning set. The frequency of occurrence of this single value is therefore 1; and the logarithm is 0.

[0083] Furthermore, the entropy estimator will always be less than the length of the section expressed in bits. If a delimited section, or a field, takes a large number of different values, and therefore if its entropy estimator increases, then the length of the section expressed in bits that is necessary to encode this large number of different values ​​will also increase and will always remain greater than the entropy estimator. The quantity called field compression potential is therefore always positive and will be maximum for a given section when its entropy estimator is zero. This happens when the section takes a single value in the training set and it is easy to understand that a section that takes a single value will be easy to compress. Just erase this value! The field compression potential decreases as the entropy estimator increases.

[0084] If a section with a zero entropy estimator appears only a few times in the training set, or if the section length is small, another section with a higher entropy estimator but which appears more often, or whose length is greater, may be more interesting to compress than the section with a zero entropy estimator. This is why the field compression potential takes into account the number of times the section appears as well as its length.

[0085] The field compression potential therefore makes it possible to effectively guide the obtaining algorithm by indicating the sections of the training set whose compression will yield the most according to the reward function which is given by the compression carried out, said sections being able to be header fields of the packets or delimited sections of the packet payload.

[0086] However, this guidance is less accurate than that provided by exact counts of the number of bits that can be erased by specific compression operations. These exact counts are obtained by a calculation different from that used, in some embodiments, to obtain the compression potentials.

[0087] According to another embodiment, which may be implemented alternatively or cumulatively with the previous embodiments, the field compression potential is calculated for a given section of variable length according to the formula in which K is the number of different values ​​j 6[1 ] that the section takes in the so-called learning set; N t is the number of times the section takes the value V t in the so-called learning set; L L is the length of the value V texpressed in bits and H, is a quantity called partial entropy estimator of a value, which is calculated for the value V t following the formula = -filog2(.fd in which fi is the frequency of occurrence of the value V t in the so-called learning set.

[0088] With this embodiment, the field compression potential can be calculated for a section of variable length. Several elements will therefore be taken into account in this calculation. A value that appears frequently, but is of short length, may contribute less to the field compression potential than a value that appears less frequently but is of longer length. This embodiment therefore makes it possible to carry out an accurate calculation of the field compression potential even for a section of variable length. It can be noted that the formula used in this embodiment gives the same results as the formula given previously in the case where the section has a constant length L for all the values ​​taken by the section. According to another embodiment, which can be implemented alternatively or cumulatively with the previous modes, the field compression potential is calculated according to the formula N - in which

[0089] H +aa is a strictly positive constant.

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

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

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

[0093] 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 a(l — in which N is the number of times that the section appears in the so-called learning set; K is the number of different values ​​that the section takes in the so-called learning set; and a, p and y are chosen positive coefficients.

[0094] In our experience, the field compression potential can guide the obtaining algorithm in certain embodiments, as an alternative to obtaining exact counts but has the following defect: when a section has different values ​​distributed uniformly, the entropy estimator increases too slowly as new values ​​are observed in the so-called training set. As long as it has a large length, a section that has different values ​​each time in the so-called training set may have a better field compression potential than a section with few values ​​but a smaller size. However, in practice, it is this section with few values ​​for which we wish to create one or more compression rules 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 use, the values ​​that appear in this section will still 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.

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

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

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

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

[0099] According to another embodiment, which may be implemented alternatively or cumulatively with the previous modes, the positive coefficients a, p and y take the values ​​a = 1, p = 1 and y = 0.

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

[0101] According to another embodiment, which may be implemented alternatively or cumulatively with the previous modes, the positive coefficients a, p and y are chosen as a function of K and N.

[0102] This embodiment allows obtaining other values ​​of the correction factor to refine its choice according to the sizes of the samples observed in the training set. For example, by taking a =

[0103] . 0.5 / <

[0104] 1, p = 0.5K and y = IV, we obtain a correction factor which is worth 1 — — and which has an influence differentiated according to the size of the sample of the values ​​observed for the section for which the corrected compression potential is calculated. According to another embodiment, which may be implemented alternatively or cumulatively with the preceding modes, the step of obtaining a count comprises, for a section of the packet taking respective values ​​expressed in the form of a sequence of bits, the count of the number of bits which would be erased following the application of a prefix erasure rule on the values ​​taken by the section in the so-called learning set.

[0105] With this embodiment, a count of the bits that would be erased in the training set if a given prefix erasure rule were applied to it will be carried out. In this way, the algorithm for obtaining a set of compression rules is guided by exact counts of the sequences of bits that can be erased in the so-called training set by given compression rules.

[0106] According to another embodiment, which may be implemented cumulatively with the previous embodiment, the step of obtaining a count comprises, for a section of the packet taking respective values ​​expressed in the form of a sequence of bits, the following steps:

[0107] • a creation of a binary tree representing all the values ​​that can be taken by a sequence of bits, the root of the tree representing an empty sequence of bits, the nodes of the tree being worth 0 or 1, and a node of the tree of depth n representing a sequence of bits of length n whose value is that of the sequence of 0 and 1 encountered from the root of the tree to reach said node of depth n, an edge of said tree being labeled by the number of values ​​taken by the section having as a prefix the sequence of bits represented by the node to which the edge leads;

[0108] • a multiplication of the labels of the edges of the created binary tree by the depth of the node to which the edge leads, which performs a count of the bits which would be erased in the so-called learning set by the application of prefix erasure rules for the values ​​taken by the section expressed in the form of a sequence of bits; and the step of creating a new rule comprises the creation of a prefix erasure rule for the values ​​taken by a section expressed in the form of a sequence of bits, the erased prefix being the one for which the count of erased bits is the largest.

[0109] With this embodiment, counting the bits that can be erased by a prefix erasure rule if applied to the training set is done efficiently by using a clever data structure. This embodiment is directly attached to the definition of a compression rule including the erasure of a given section prefix when it takes a given value. This example can be used in combination with or as an alternative to the other examples presented so far. In this mode, for a given section, all the values ​​taken by the section in the training set are presented as a sequence of bits and then arranged in a binary tree. The root of the tree corresponds to the beginning of the values ​​taken by the section. Depending on whether the first bit of the values ​​is 0 or 1, the corresponding edge will be labeled by the number of values ​​taken by the section whose first bit is 0 or 1.This arrangement is performed for the entire set of values, then the edge labels are multiplied by their depth. These numbers correspond to the amount of bits that can be erased by a compression rule that erases the prefix corresponding to the path in the tree. This multiplication therefore corresponds to an exact count. Choosing the largest amount of potentially erased bits in the training set then allows us to construct a prefix erasure compression rule. This rule is the one that erases the largest number of bits among the prefix erasure rules for this section if applied to the training set, and it will therefore be potentially effective when applied to real traffic.

[0110] 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 and the compression operations included in said compression rules are compression rules and operations as defined in the SCHC protocol.

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

[0112] According to another 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:

[0113] • obtaining in advance a set of compression rules comprising compression operations which can be applied to the values ​​taken by the sections of said data packet;

[0114] • applying at least one compression operation to a section value of said data packet, said operation being included in a compression rule belonging to said set of compression rules obtained;

[0115] • the transmission of said data packet and of data representative of the compression rule to which said operation belongs;

[0116] • the reception of said data packet and said representative data;

[0117] • applying to said data packet at least one symmetrical decompression operation of the at least one compression operation applied to a section value of said data packet.

[0118] With this aspect of the invention, a complete data packet transmission is achieved by transmitting the compressed data packet. Obtaining the compression rules makes it possible to make 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 find this rule and therefore the compression operations included in the rule, and to restore the original packet by applying the symmetrical decompression operations.

[0119] A compressed packet was therefore transmitted instead of the original packet, which allows very significant savings in terms of hardware and energy resources. Since the compression rules are obtained automatically, there is no need to involve an expert, which makes it very easy to deploy the efficient transmission according to the invention. According to one embodiment, which may be implemented alternatively or cumulatively with the previous mode, the method further comprises a preliminary step of collecting transmitted packets in the network to form a so-called learning set used during the step of obtaining a set of compression rules and a step of synchronized deployment in the nodes of the network of the set of compression rules obtained.

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

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

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

[0123] 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, the compression operations included in said compression rules, and the symmetric decompression operations are compression and decompression rules and operations as defined in the SCHC protocol.

[0124] With this embodiment, the SCHC protocol can be deployed in dynamic contexts. The compression rule sets will be updated as they are obtained using new so-called training sets representative of the traffic between the different points of a network, and changes in the headers of packets actually circulating. The SCHC protocol is therefore made suitable for application in dynamic contexts thanks to the use of reinforcement learning to create the compression rule sets.According to a first material aspect, the invention relates to an entity for managing the obtaining of a set of compression rules capable of compressing a data packet transmitted in a network, the packet comprising sections taking respective values ​​expressed in the form of a sequence of bits, the packet being capable of being compressed by applying compression rules capable of removing bits from a value taken by a section of the packet, characterized in that the management entity comprises the following modules:.

[0125] • a module for obtaining, for several given compression rules, a count, relative to a set of data packets, known as the learning set, of the number of bits deleted by the rule concerned applied to packets of the learning set;

[0126] • a module for obtaining the set of compression rules based on the counts obtained.

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

[0128] According to another material aspect, the invention relates to network equipment comprising an entity for managing the obtaining of a set of compression rules according to the invention.

[0129] According to another 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:

[0130] • a module for obtaining in advance a set of compression rules comprising compression operations which can be applied to the values ​​taken by the sections of a data packet;

[0131] • a module for applying at least one compression operation to a section value of a data packet, said operation being included in a compression rule belonging to a set of compression rules obtained;

[0132] • a module for transmitting a data packet to which a compression operation has been applied and data representing a compression rule to which said compression operation belongs;

[0133] • a module for receiving a data packet and data representing a compression rule;

[0134] • a module for applying to a data packet a symmetrical decompression operation of a compression operation applied to a section value of said data packet.

[0135] According to one embodiment, the transmission management system further comprises: • a module for collecting transmitted data packets in the network to form a so-called learning set used by a module for obtaining a set of compression rules;

[0136] • a synchronized deployment module in the network nodes of a set of compression rules obtained.

[0137] Finally, according to another material aspect, the invention relates to data media on which are recorded computer programs comprising sequences of instructions for implementing the methods defined above.

[0138] The data carriers may be any entity or device capable of storing the programs. For example, the carriers may comprise a storage means, such as a ROM, for example a CD ROM or a microelectronic circuit ROM, or a magnetic recording means such as a hard disk. On the other hand, the carriers may be transmissible media such as an electrical or optical signal, which may be conveyed via an electrical or optical cable, by radio or by other means. The programs according to the invention may in particular be downloaded from a network such as the Internet. Alternatively, the information carrier may be an integrated circuit in which the program is incorporated, the circuit being adapted to execute or to be used in the execution of the method in question.

[0139] Brief description of the figures

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

[0141] [Fig 1] represents an entity for obtaining a set of compression rules as well as 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.

[0142] [Fig 2] represents an example of obtaining a count of the values ​​taken by a section by arranging them according to a binary tree.

[0143] [Fig 3] 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.

[0144] [Fig 4] 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

[0145] Figure 1 represents an entity 300 for obtaining a set RS of compression rules as well as an entity for managing the compression 100 of a data packet P transmitted in a network NET and an entity for managing the decompression 200 of a data packet P.

[0146] The entity 300 for obtaining a set RS of compression rules comprises a module 301 for obtaining a count D relative to the values ​​taken by the sections of data packets belonging to a set E of data packets, a so-called learning set, as well as a module APP for obtaining the set RS of compression rules as a function of the counts D obtained.

[0147] In exemplary embodiments, the APP module implements a learning algorithm to obtain the RS set of compression rules.

[0148] In addition to the obtaining entity 300, FIG. 1 describes two entities for managing the compression 100 and the decompression 200 of a data packet P in order to illustrate the use of the set RS of compression rules obtained by the implementation of the method by the obtaining entity 300.

[0149] The two compression 100 and decompression 200 management entities belong to the same network NET which is a communication network using data packet transmission protocols P. In the exemplary embodiment described in FIG. 1, the obtaining entity 300 belongs to the same network NET but in other exemplary embodiments, the obtaining entity 300 may belong to different networks or even be isolated from the network NET. The set RS of compression rules obtained by the obtaining entity 300 may be deployed in the compression 100 and decompression 200 management entities by any means. The data packet P comprises sections taking respective values.The two compression 100 and decompression 200 management entities have the same set of compression rules RS, this set comprising compression rules which themselves comprise compression operations which apply to values ​​taken by the sections of a data packet P. The set RS of compression rules was obtained by the implementation of an obtaining algorithm by the entity 300.

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

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

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

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

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

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

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

[0157] Figure 2, on the other hand, represents an example of an exact count obtained to define a compression rule using these counts.

[0158] The example presented here uses a count of the values ​​taken by a given section in the so-called learning set. This exact count makes it possible to very precisely guide the definition of compression rules. The embodiment presented here makes it possible to carry out these exact counts efficiently. In other exemplary embodiments, it is possible to use compression potentials, obtained using a notion of entropy, to guide the obtaining of compression rules. These quantities are less precise than the exact counts presented here but can provide alternative or complementary guidance to the exact counts. To carry out this count, it is assumed that the values ​​are known as a sequence of bits. To count them, in our example, we will arrange them according to a binary tree.

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

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

[0161] If we summarize these edges of depth 2, we deduce that, out of the 140 values ​​taken by the section in the so-called learning set E:

[0162] • 94 have a prefix 11;

[0163] • 32 have a prefix 10;

[0164] • 6 have a 01 prefix; and,

[0165] • 8 have a 00 prefix.

[0166] The tree represents all the values ​​taken by the section, and by going to the end of the reading of the tree in depth, and starting from the top, we obtain the following results:

[0167] • the section takes 28 times the value 1111;

[0168] • the section takes 28 times the value 1100;

[0169] • the section takes 38 times the value 1101;

[0170] • the section takes the value 1100 zero times;

[0171] • the section takes 8 times the values ​​1011, 1010, 1001 and 1000;

[0172] • the section takes the values ​​0111, 0110 and 0101 once;

[0173] • the section takes 3 times the value 0100;

[0174] • the section takes 8 times the value 0011;

[0175] • and the section takes the values ​​0010, 0001 and 0000 zero times. We check that the sum of the values ​​taken gives us 140.

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

[0177] This calculation of counts therefore effectively guides the creation of a candidate compression rule. In this case, it will be a rule for deleting prefixes 11 for the values ​​in the section under consideration.

[0178] Figure 3, for its part, represents a complete SYS system for transmitting data packets in a NET network which uses a set RS of compression rules obtained by a method according to the invention.

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

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

[0181] The GW gateway comprises a compression management entity 100; a decompression management entity 200; as well as an obtaining entity 300 (not shown in the figure) which comprises a module 301 for obtaining a count D (not shown in the figure), a module APP for obtaining a set RS of compression rules, a collection module COL, and a deployment module DEP.

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

[0183] We see that the SYS transmission system includes the following modules:

[0184] • at least one APP module for obtaining a set of RS compression rules, present in the GW gateway;

[0185] • at least one module 101 for applying a compression operation to a section value of a data packet P, the module 101 not being shown in FIG. 5 but included in a compression management entity 100 present in the gateway GW or the terminals DVC1, DVC2;

[0186] • at least one module 102 for transmitting a data packet P, the module 102 also being included in a management entity 100;

[0187] • at least one module 201 for receiving a data packet P, the module 201 not being shown in FIG. 5 but included in a decompression management entity 200 present in the gateway GW or the terminal DVC1;

[0188] • at least one module 202 for applying a decompression operation, the module 202 also being included in a management entity 200;

[0189] • at least one collection module COL in the network NET of packets P, P' to form a learning set E, present in the gateway GW;

[0190] • at least one DEP deployment module synchronized in the network nodes of a set of RS compression rules, present in the GW gateway.

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

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

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

[0194] In the SYS system architecture shown in Figure 5, the GW has a COL collection module that allows the GW to gather the P, P' data packets that pass through the GW. In a local network architecture, such as the one shown here, the GW is ideally placed to see all the P, P' packets passing through the NET network.

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

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

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

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

[0199] The SYS transmission system therefore fulfills the expected technical objective, namely the application of highly effective compression rules to the P, P' packets using an APP obtaining module to perform automatic learning of the RS compression rule set. The COL collection module to feed the APP obtaining module with a so-called learning set E representative of the traffic present in the NET network and the DEP deployment module in a synchronized manner of the RS compression rule set obtained make it possible to ensure that this highly effective compression of the P, P' packets is obtained on the one hand without human intervention and on the other hand will adapt in the event of a change of context in the NET network, for example in the event of a change of IP addresses of the GW, DVC1, DVC2 network equipment or in the event of the addition of new equipment in the network.The placement of the COL collection, APP acquisition and DEP deployment modules in the GW gateway allows for an efficient architecture where the learning-related functions are centralized in the GW gateway. This architecture is efficient because the GW gateway sees all the packets of the NET network transit and also has a direct link with the DVC1, DVC2 terminals present in the NET network. However, other architectures are possible.

[0200] Figure 4, for its part, represents a complete SYS system for transmitting data packets in a NET network according to the invention, but presenting a different architecture from that seen in Figure 3.

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

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

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

[0204] The SRV server is dedicated to learning the RS compression rule set. It includes a obtaining entity 300 (not shown in the figure) which includes an APP module which will carry out the actual learning according to the invention of the RS compression rule set. The DEP deployment module ensures the synchronized deployment of the RS compression rule set in the two routers RTR1 and RTR2.

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

[0206] Finally, it should be noted here that, in this text, the term "module" can correspond to a software component as well as to a hardware component or a set of hardware and software components, a software component itself corresponding to one or more computer programs or sub-programs or, more generally, to any element of a program capable of implementing a function or a set of functions as described for the modules concerned. In the same way, a hardware component corresponds to any element of a hardware assembly capable of implementing a function or a set of functions for the module concerned (integrated circuit, smart card, memory card, etc.).

Claims

Claims 1. Method for obtaining a set (RS) of compression rules capable of compressing a data packet (P) transmitted in a network (NET), the packet (P) comprising sections taking respective values ​​expressed in the form of a sequence of bits, the packet (P) being capable of being compressed by applying compression rules capable of removing bits from a value taken by a section of the packet (P), the method comprising, for several given compression rules, obtaining a count (D), relative to a set (E) of data packets, a so-called learning set, of the number of bits removed by the rule concerned applied to packets of the so-called learning set followed by obtaining the set (RS) of compression rules as a function of the counts (D) obtained.

2. Method for obtaining a set (RS) of compression rules according to claim 1, characterized in that it comprises the following steps executed when obtaining the set (RS) of compression rules: • a step of selecting a rule belonging to the set (RS) of compression rules using at least one count (D) among those obtained; • a step of creating a new rule from the selected rule using at least one count (D) among those obtained; • adding the new rule to the set (RS) of compression rules; and in that said steps are 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.

3. Method for obtaining a set (RS) of compression rules according to one of claims 1 or 2, characterized in that the step of obtaining a count (D) comprises, for a section of the packet (P) taking respective values ​​expressed in the form of a sequence of bits, the count of the number of bits which would be erased following the application of a prefix erasure rule on the values ​​taken by the section in the so-called learning set (E).

4. Method for obtaining a set (RS) of compression rules according to claim 3, characterized in that the step of obtaining a count (D) comprises, for a section of the packet (P) taking respective values ​​expressed in the form of a sequence of bits, the following steps: • a creation of a binary tree representing all the values ​​that can be taken by a sequence of bits, the root of the tree representing an empty sequence of bits, the nodes of the tree being worth 0 or 1, and a node of the tree of depth n representing a sequence of bits of length n whose value is that of the sequence of 0 and 1 encountered from the root of the tree to reach said node of depth n, an edge of said tree being labeled by the number of values ​​taken by the section having as a prefix the sequence of bits represented by the node to which the edge leads; • a multiplication of the labels of the edges of the binary tree created by the depth of the node to which the edge leads, which performs a count of the bits which would be erased in the so-called set learning (E) by applying rules for erasing prefixes of the values ​​taken by the section expressed in the form of a sequence of bits; and characterized in that the step of creating a new rule comprises the creation of a prefix erasure rule for the values ​​taken by a section expressed in the form of a sequence of bits, the erased prefix being the one for which the count of erased bits is the largest.

5. Management entity (300) for obtaining a set (RS) of compression rules capable of compressing a data packet (P) transmitted in a network (NET), the packet (P) comprising sections taking respective values ​​expressed in the form of a sequence of bits, the packet (P) being capable of being compressed by applying compression rules capable of removing bits from a value taken by a section of the packet (P), characterized in that the management entity (300) comprises the following modules: • a module (301) for obtaining, for several given compression rules, a count (D), relative to a set (E) of data packets, a so-called learning set, of the number of bits deleted by the rule concerned applied to packets of the so-called learning set; • a module (APP) for obtaining the set (RS) of compression rules based on the counts (D) obtained.

6. Management entity (300) according to claim 5 further comprising the following modules: • a module (COL) for collecting data packets transmitted in the network (NET) to form a training set (E) used to obtain the set (RS) of compression rules; • a module (DEP) for synchronized deployment in the network nodes (NET) of the set (RS) of compression rules 7. Network equipment (GW, DVC1, DVC2, RTR1, RTR2) comprising a management entity (300) for obtaining a set (RS) of compression rules according to claim 5.

8. Computer program capable of being implemented by a management entity (300), the program comprising code instructions which, when executed by a processor, performs the steps of the obtaining method defined in claim 1.

9. Data medium on which is recorded a computer program comprising a sequence of code instructions for implementing the obtaining method according to claim 1 when it is loaded into and executed by a processor.