This invention relates to a method of processing data packets.
In many digital communication networks, data is transmitted from a sending station to a receiving station in the form of discrete variable sized portions, commonly referred to as packets. Various communications protocols have been developed which define the procedures for sending packets of data from one station in a network to another station and which also define the procedures that determine how the packets will be processed at the sending and receiving stations. For any communication, there are many functions that may need to be performed by a protocol and in practice there are so many that a set or suite of protocols is used, each protocol in the suite handling one or more specific aspects of the communication. Perhaps the best known protocol suite is the Transmission Control Protocol/Internet Protocol (TCP/IP) which is widely used on the Internet.
A schematic representation of a simple packet 1 is shown in
The protocol suite associated with a particular packet does not define the data carried in the payload part of the packet but it does specify the format of the header, for example, the different types of fields present in the header, the length and ordering of the fields and the way in which the pattern of bits which make up the fields are to be interpreted.
Mobile telecommunications networks and the Internet are converging in terms of their functionality. It is desirable for so called third generation (3G) mobile handsets to be able to deal with Internet data packets directly, to allow mobile users access to seamless e-mail, web browsing, multimedia and other services. Protocols such as TCP/IP have been designed primarily for fixed networks where available bandwidth is relatively more plentiful then that available in wireless networks. When used to carry speech, the message overhead resulting from packet headers can take up to 75% of the total network capacity, which is unacceptable for mobile networks.
To alleviate this problem, various compression schemes have been developed for compressing packet headers prior to the packets being transmitted over the wireless interface. An example of such a scheme is the well known Van Jacobson scheme described in ‘RFC 1144’.
In previous header compression systems both the entity that performs the header compression and the entity that performs the subsequent decompression are pre-configured to have access to a stored record of the header profiles of packets associated with any of the known protocol stacks that it is anticipated that the entities may have to deal with.
A header profile is in effect, a definition of how the value of each particular field in the header varies or behaves from packet to packet. For example, a simple header, associated with a notional protocol stack Z may comprise three fields A, B and C and the profile may be ‘Field A=static, Field B=irregular and Field C=linear’ meaning that the value of field A does not vary from packet to packet, the value of field B varies randomly from packet to packet and the value of field C varies linearly from packet to packet.
Having access to header profiles allows compressors and associated de-compressors to implement compression and subsequent de-compression techniques optimised for the particular protocol suite being used. For example, on receiving packets having headers defined by notional protocol stack Z, knowing the header profile associated with protocol stack Z allows the compressor to implement a compression scheme in which for each packet, Field A is compressed using ‘Static Field Encoding’, Field B is compressed using ‘irregular Field Encoding’ and Field C is compressed using ‘Linear Field Encoding’. Likewise, knowing the header profile allows a de-compressor to implement an optimised de-compression method.
It is not uncommon for known header compressor/de-compressor systems to be expected to deal with new types of packet data in which the headers are defined by a new protocol stack (or perhaps a variation on an old protocol stack), with which the system has not dealt with before. To do this, the store of header profiles to which the system has access must first be updated with the header profile associated with the new protocol stack.
This is possible, although inconvenient, in network base to base communication, where the profile update can be performed by a network administrator but is more difficult where the communication involves a mobile station, for example, a mobile phone.
The present invention aims to overcome or at least alleviate the above mentioned problems.
According to the invention there is provided a method of processing data packets in a data stream in a communication system, the method comprising: receiving a plurality of data packets; analysing the plurality of data packets; generating in response to the analysis, profile data which indicates how one or more parts of each of the plurality of data packets varies from data packet to data packet; and making the profile data available so that a data packet compression scheme that accords with the profile data can be implemented on data packets in the data stream.
According to the invention there is also provided an apparatus for processing data packets in a communication system, the apparatus comprising: means for receiving a plurality of data packets; means for analysing the plurality of data packets; means for generating in response to the analysis, profile data which indicates how one or more parts of each of the plurality of packets varies from data packet to data packet; and means for making the profile data available for use in selecting a data packet compression scheme that accords with the profile data.
According to the invention there is also provided a system of processing data packets in a data stream in a communication network, the system comprising: receiving a plurality of data packets in the data stream; analysing the plurality of data packets to generate behaviour data that indicates how at least a part of each of the plurality of packets behaves from data packet to data packet; implementing a data packet compression scheme in accordance with the behaviour data on data packets in the data stream.
Embodiments of the present invention will now be described with reference to the accompanying drawings in which:
Referring now to
Furthermore, as is well known to those skilled in the art, mobile stations may now incorporate hardware/software that enable the station to handle data transmitted to the mobile network in which the mobile station is operating from or via public data networks such as the Internet. The data may take many forms, including for example, voice, video and text data and web pages.
In the embodiment illustrated in
The compressor 15 comprises a program stored at the base station 11 and which is executed on a processor (not shown) present in the base station to compress received packets, prior to them being transmitted to the mobile station 12. As mentioned in the introduction, suitable compression algorithms for compressing packets are well known to those skilled in the art.
Correspondingly, the mobile station 12 is provided with a de-compressor 16, for de-compressing compressed packet received from the base station 11. The de-compressor 16 comprises a programme stored at the mobile station 12 and which is executed on a processor (not shown) present in the mobile station 12 to de-compress the packets. De-compression algorithms for de-compressing packets are well known to those skilled in the art.
The base station 11 is further provided with an entity 17 which for convenience will be referred to hereinbelow as a ‘profiler’. The profiler 17 comprises software stored at the base station 11 and executed on a processor (not shown) located in the base station 11. The function of the profiler 17 is to analyse packets in a packet stream intended for the mobile station 12 to identify a profile or pattern of how the value of corresponding bit sequences in different packets behaves from packet to packet. Having identified such behaviour patterns, the profiler 17 sends this information to both the compressor 15 and also the de-compressor 16 to allow these entities to implement an optimal compression/de-compression scheme for the data packets. Thus, unlike in previous systems, the compressor 15 and de-compressor 16 need not have any a priori information about the profile of packets in a given packet stream to enable packet compression and subsequent de-compression to be achieved and are therefore able to deal with arbitrary packet streams.
Referring now to
As data packets begin arriving at the base station 11, step 20, the profiler 17 commences analysing the packets to determine how the value of equivalent fields differs from packet to packet, step 21. In step 22, enough packets have been analysed for the profiler to have determined the behaviour of at least one of the fields in the packets, and this information is sent to the compressor 15 and also to the de-compressor 16, step 23. The profiler 17 continues analysing packets as they arrive, step 24, to determine the behaviour of more of the fields, and each time the behaviour of a field is identified, this information is transmitted to the compressor 15 and the de-compressor 16, step 25. This process continues, step 26, until eventually the profiler 17 has developed a full profile of the received packets, in other words, information on the behavioural pattern of each field in the packets.
A conceptual illustration of a packet profile is shown in
The packets received at the base station 11 may have a number of fields that will either, remain static for the duration of the call connection, change in a predictable fashion, for example a linear fashion, for the duration of the connection or change irregularly for the duration of the connection. As illustrated in
Referring now to
Throughout the duration of the call connection between the base station 11 and the mobile station 12, the profiler 17 continues to analyse the behaviour of the packet fields in order to, if necessary, update the profile at the compressor 15 and also at the de-compressor 16. For instance, the profiler 17 may determine a better understanding of the behaviour of a given field, or determine that the behaviour pattern of a field has changed. In such instances, where the degree of compression is to be increased, for example if the profiler 17 has determined that a particular field is static, it is preferred to wait for this update to reach the de-compressor 16 and be acknowledged before the compressor 15 implements a refined compression scheme.
In other instances, the compressor 15 as a result of the profile generated by the profiler may be compressing packets to a greater degree then is correct. For example, the profiler 17 may have indicated to the compressor 15 that a field that had not changed for n packets is static, prompting the compressor 15 to compress that field accordingly, when subsequently the profiler 17 determines that the behaviour of that field has changed. Preferably, this change is signalled to the compressor 15 and de-compressor 16 immediately, to the de-compressor 16 using out-of band signalling or alternatively in-band signalling. For example, a profile update may be encoded as a number of additional bytes that are attached to a compressed packet sent to the mobile station 12. The same update may be persistently attached to different compressed packets until acknowledgement that the update has reached the compressor 15 is received.
Additionally, multiple types of encoding may be associated with a single field, to allow the profiler 17 to identify new types of field behaviour without necessarily overriding previously seen behaviour patterns. In order to allow the compressor 15 and de-compressor 16 to make use of this data, the profiler 17 may indicate to them the probabilities of the different encodings. Thus, for example, the profiler 17 may indicate that a field is static with high probability but has a small (non-zero) probability of changing. This should allow the compressor 15 and de-compressor 16 to manage slight deviations from expected behaviour without requiring large amounts of out-of band signalling.
In the above described example, it is assumed that the number of fields in each packet, their ordering, and the length of each field is known to the compressor 15 and the de-compressor 16, allowing the profiler 17 to analyse the packets on a field by field basis. In some instances, for example, if the communication involves a new data-type, associated with a new protocol stack, such information will not be available to these entities at connection set-up. In such instances, the profiler 17 is arranged to analyse received packets so as to identify behaviour patterns in equivalent sub-sections of the packets.
For example, as illustrated in
As with the known field length example discussed above, throughout the duration of the call connection between the base station 11 and the mobile station 12, the profiler 17 continues to analyse the behaviour of the octets in order to update the profile at the compressor 15 and also at the de-compressor 16 as and when necessary.
It will be understood that profiling packet behaviour on an octet by octet basis is given by way of example only, and the profiler 17 could be configured to profile packet behaviour on the basis of packet sub-sections of any convenient size, for example 10 bits.
A further embodiment of the invention will now be described with reference to
In either case, each time the profiler 17 determines the behaviour pattern of a given field or a given sub-section, this information is passed to the de-compressor 16 and is also transmitted from the mobile station 12 to the base station 11 where it is passed to the compressor 15. As in the examples described above, each time the profiler 17 notifies the compressor 15 of the behaviour of a given field or sub-section, the compressor is then able to use an appropriate compression technique for that field or sub-section in subsequent packets and the de-compressor is able to use an appropriate complementary de-compression technique on those packets when they are received. In this embodiment, the profiler 17 may be arranged to analyse received packets either before they are input to the de-compressor 16 or after they are output from the de-compressor 16.
A further embodiment of the invention is illustrated in
Again, the compressor 15 will initially implement a conservative compression scheme with the initial packets transmitted to the mobile station 12 not being compressed. As before, the compression scheme implemented by the compressor 15 will be enhanced and refined as and when the compressor 15 receives information from the profiler 17a detailing the behaviour of the fields (or the sub-sections) of the packets. Advantageously, since the information on the field (or sub-section) behaviour required by the de-compressor 16 in order to de-compress packets, is generated locally by the second profiler 17b there is no requirement for this information to be signalled from the base-station 11 to the mobile station 12, thereby saving on bandwidth usage. It will be appreciated by those possessed of the appropriate skills that the two profilers 17a and 17b must be kept operating in synchronisation. This may be achieved, for example, by transmitting a regular synchronisation signal from the base station 11 to the mobile station 12 on a dedicated control channel
It is to be understood that the invention has been described with reference to the Internet and a cellular mobile communications network for illustration only. The invention may find application in any communication system or combination of systems where it is desirable to compress data packets in a packet flow prior to the packets being received at a receiving station. For example, it is envisaged that the invention may find particular application in wireless local area networks.
Having thus described the present invention by reference to preferred embodiments it is to be well understood that the embodiments in question are exemplary only, and that modifications and variations such as will occur to those possessed of appropriate knowledge and skills may be made without departure from the scope of the invention as defined in the appended claims.
| Number | Date | Country | Kind |
|---|---|---|---|
| 0023766.9 | Sep 2000 | GB | national |
| 0102158.3 | Jan 2001 | GB | national |
| Filing Document | Filing Date | Country | Kind | 371c Date |
|---|---|---|---|---|
| PCT/GB01/04308 | 9/26/2001 | WO | 00 | 7/18/2003 |
| Publishing Document | Publishing Date | Country | Kind |
|---|---|---|---|
| WO02/26860 | 4/4/2002 | WO | A |
| Number | Name | Date | Kind |
|---|---|---|---|
| 4689673 | Ohki et al. | Aug 1987 | A |
| 5134478 | Golin | Jul 1992 | A |
| 5293379 | Carr | Mar 1994 | A |
| 5787253 | McCreery et al. | Jul 1998 | A |
| 5790554 | Pitcher et al. | Aug 1998 | A |
| 5870479 | Feiken et al. | Feb 1999 | A |
| 5872991 | Okamoto et al. | Feb 1999 | A |
| 5978386 | Hamalainen et al. | Nov 1999 | A |
| 6097794 | Suffern et al. | Aug 2000 | A |
| 6121903 | Kalkstein | Sep 2000 | A |
| 6134245 | Scarmalis | Oct 2000 | A |
| 6252905 | Pokrinchak et al. | Jun 2001 | B1 |
| 6370477 | Vermeer | Apr 2002 | B1 |
| 6408001 | Chuah et al. | Jun 2002 | B1 |
| 6425021 | Ghodrat et al. | Jul 2002 | B1 |
| 6542504 | Mahler et al. | Apr 2003 | B1 |
| 6557001 | Dvir et al. | Apr 2003 | B1 |
| 6618506 | Auerbach et al. | Sep 2003 | B1 |
| 6711164 | Le et al. | Mar 2004 | B1 |
| 6721333 | Milton et al. | Apr 2004 | B1 |
| 6751209 | Hamiti et al. | Jun 2004 | B1 |
| 6859455 | Yazdani et al. | Feb 2005 | B1 |
| 6999429 | Hannu et al. | Feb 2006 | B1 |
| 7155493 | Weber | Dec 2006 | B1 |
| 7788211 | Le et al. | Aug 2010 | B2 |
| 20010008556 | Bauer et al. | Jul 2001 | A1 |
| 20020026620 | Johansson et al. | Feb 2002 | A1 |
| 20020114327 | Mononen | Aug 2002 | A1 |
| 20040133702 | McCann et al. | Jul 2004 | A1 |
| 20040170198 | Meggers et al. | Sep 2004 | A1 |
| 20040202167 | Jonsson et al. | Oct 2004 | A1 |
| 20050195750 | Le et al. | Sep 2005 | A1 |
| Number | Date | Country |
|---|---|---|
| 2245797 | Jan 1992 | GB |
| 5136697 | Jun 1993 | JP |
| 0051307 | Aug 2000 | WO |
| 0150705 | Jul 2001 | WO |
| Number | Date | Country | |
|---|---|---|---|
| 20040133702 A1 | Jul 2004 | US |