Abstract:
A method of handling user plane data in a packet switched network. A packet inspection node determines a compression ratio and/or content information for the user plane data, and sends said compression ratio and/or content information towards a user plane data handling node. The user plane data handling node receives the compression ratio and/or content information, and handles the user plane data in dependence upon the compression ratio and/or content information.

Description:
BACKGROUND 
       [0001]    In mobile networks, data compression is often used to reduce the bandwidth required for data transfer. Data compression solutions are often implemented between end points which lie outside the radio access network (RAN). For example, data may be compressed at a user equipment sending a data stream, and decompressed at the receiving user equipment. This compression prevents nodes in the RAN from accurately measuring and analysing data flows in the network. The compressed packets may have variable compression rates, and so the actual data transferred to the receiver cannot be accurately estimated from monitoring the compressed packets alone. Furthermore, the compression obscures the content of the packets, and makes it impossible for the RAN to determine what type of services are being delivered, e.g. to employ traffic shaping. 
         [0002]    One example of data compression is de-duplication, which is based on shortening repeated data patterns in a data stream. An example method of de-duplication is as follows:
       1. The compressor identifies a repeated data pattern (denoted Gi) in the data stream.   2. The compressor replaces each occurrence of Gi with a pointer Ni. The pointer is a reference to the pattern Gi in a compression table (also referred to as a “code book” or state table).   3. The compressor repeats steps 1 and 2 for each repeated data pattern.   4. The compressor sends the data stream to the decompressor with each Gi replaced by the corresponding Ni. The compressor also sends the compression table (or any changes to the compression table) to the decompressor.   5. The decompressor receives the data stream, and replaces each occurrence of a pointer Ni by the corresponding Gi.   6. The data stream is then read by the receiver.       
 
         [0009]    This method is roughly illustrated in  FIG. 1 . More advanced compression technology may include transformations to increase the probability that a duplicate can be found for a given sequence. Advanced compression technologies include header compression, e.g. Robust Header Compression (RoHC). 
         [0010]    In practical applications, the compressor will not act on the entire media stream at once. Instead, the compressor will continually compress the stream as it is transmitted, identifying and compressing repeated data patterns as it goes along. This allows the stream to be transmitted in real time. However, when the compressor is first initialised, it must “learn” the repeated patterns for the data that flows through it, and so the compression algorithm takes significant time to converge (i.e. approach maximum efficiency). These solutions are normally executed on the network user plane, and do not rely on the control plane. 
         [0011]    To ensure a good end-user experience, it is important for the network to be able to monitor the data traffic, and use the results of the monitoring to make Radio Resource Management (RRM) decisions. Systems in the RAN constantly perform measurements on the data passing through the RAN, which can be used for external analysis, or internal decision making. The radio network implements a number of RRM algorithms, which are used to control end-user performance. For example, in order for a packet data scheduler to make good decisions, it must have correct information about the quality of service (e.g. bit rate, packet loss, etc.) that the users in the cell are experiencing. 
         [0012]    The radio network also includes a large number of monitoring nodes. These are used to measure end-user performance, and the results are used to understand the overall performance of the network and identify potential improvements. 
         [0013]    The RAN (including the RRM algorithms) can be made more efficient if it can determine the types of services and applications being used. For example, this knowledge may be used to prioritise certain “real time” services, such as streaming voice and video, compared to “non real time” services such as file downloads. This data can be collected by the use of packet inspection (PI). The term “packet inspection” is used herein for packet analysis at different levels, from simple monitoring the IP header classification, to deep packet inspection (DPI), which monitors the whole contents of the packet. A brief description of the levels of inspection and analysis is given below: 
       IP Header Classification (A.K.A. 5-Tuple Inspection) 
       [0014]    This method inspects a section of the packet known as the “5-tuple”, which comprises the data in the packet up the to internet layer. The 5-tuple consists of the source IP address, source port, destination IP address, destination port, and (transport layer) protocol. 
         [0015]    IP header classification is used to discriminate between traffic from certain domains, e.g. the Internet, or virtual private networks (VPNs). One example may be to implement a certain QoS for Internet traffic. Another example may be to implement special security protocols for VPN traffic. 
       Shallow Inspection 
       [0016]    This method analyses the transport layer of the packet, by inspecting the protocol header (TCP, UDP etc.). For example, this could include analysis TCP header flags such a SYN, ACK, and FIN to monitor the state of the connection. 
         [0017]    Shallow inspection is used to trigger link layer algorithms from sequences of higher layer protocol interaction, when the algorithms do not need to know what content is being carried by the packets. An example of such use to is decrease terminal battery consumption by allowing lower layer protocol states to follow higher later protocols. 
       Deep Packet Inspection (DPI) 
       [0018]    This method analyses the packet right down to the application layer (e.g. HTTP state, video content). 
         [0019]    A common example of DPI use is caching, where the HTTP request is analysed to identify which content to fetch from the cache. Link layer algorithms may also make use of DPI to react to specific types of content or applications. 
       Heuristic Detection 
       [0020]    This method involves pattern detection or other statistical analysis methods on application layer data. This is typically used to classify services with encrypted content, or which otherwise try to avoid identification. 
         [0021]    With the exception of heuristic detection, which is often unreliable, none of these methods will work consistently on compressed packets, and therefore the measurements made in the RAN will not reflect the performance experienced by the end user. One possible solution to the problem would be to decompress the data within the monitoring node, perform the measurements, recompress the data and then send it on to the destination. However, the increased latency, processor load, and expenditure which result from implementing such a system may make this unfeasible for financial or performance reasons. 
       SUMMARY 
       [0022]    According to an aspect of the present invention, there is provided an apparatus configured to operate as a packet inspection node. The apparatus comprises a data analysis processor and a sender. The data analysis processor is for determining a compression ratio and/or content information for user plane data. The sender is for sending the compression ratio and/or content information to a user plane data handling node. 
         [0023]    According to a further aspect of the present invention, there is provided an apparatus configured to operate as a node in a radio access network. The apparatus comprises a content information receiver and a user plane data handling processor. The content information receiver is for receiving a compression ratio and/or content information associated with user plane data. The user plane data handling processor is for handing the user plane data in dependence upon the compression ratio and/or content information. 
         [0024]    According to a yet further aspect of the present invention, there is provided an apparatus configured to act as a node ( 200 ) in a radio access network. The apparatus comprises a breakout handler, a decompressor, a performance measurement processor, and a user plane data handling processor. The breakout handler is for receiving user plane data, and copying said user plane data. The decompressor is for decompressing the copied user plane data. The performance measurement processor is for performing performance measurements on the decompressed copied user plane data. The user plane data handling processor is for handling the user plane data in dependence upon results of the performance measurements. 
         [0025]    According to a yet further aspect of the present invention, there is provided an apparatus configured to act as a compressor in a packet switched network. The apparatus comprises a filtering processor and a compression processor. The filtering processor is configured to select packets of user plane data for compression in dependence upon a compression filter. The compression processor is configured to compress the selected packets. 
         [0026]    According to a yet further aspect of the present invention, there is provided an apparatus configured to act as a node in a radio access network. The apparatus comprises a receiver, a filtering processor, a performance measurement processor, and a user plane data handling processor. The receiver is for receiving user plane data. The filtering processor is configured to select packets of the user plane data for analysis in dependence upon a filter. The performance measurement processor is for performing performance measurements on the selected packets of the user plane data. The user plane data handling processor is for handling the user plane data in dependence upon results of the performance measurements. 
         [0027]    According to a yet further aspect of the present invention, there is provided a method of handling user plane data in a packet switched network. A packet inspection node determines a compression ratio and/or content information for the user plane data, and sends said compression ratio and/or content information towards a user plane data handling node. The user plane data handling node receives the compression ratio and/or content information, and handles the user plane data in dependence upon the compression ratio and/or content information. 
         [0028]    According to a yet further aspect of the present invention, there is provided a method of handling user plane data in a packet switched network. A user plane data handling node receives the user plane data, makes a copy of the user plane data and decompresses the copied user plane data. The user plane data handling node then performs performance measurements on the decompressed copied user plane data and handles the user plane data in dependence upon results of the performance measurements. 
         [0029]    According to a yet further aspect of the present invention, there is provided a method of handling user plane data in a packet switched network. A compressor selects packets of the user plane data for compression in dependence upon a compression filter, and sends said user plane data towards a receiving device. A user plane data handling node receives the user plane data and selects packets of the user plane data for analysis in dependence upon the compression filter. The user plane data handling node then performs performance measurements on the selected user plane data packets and handles the user plane data in dependence upon results of the performance measurements. 
         [0030]    According to a yet further aspect of the present invention, there is provided a computer program comprising computer readable code which, when run on an apparatus, causes it to behave as an apparatus or perform a method according to any of the previous aspects. The computer program may be stored on a non-transitory computer readable medium. 
     
    
     
       BRIEF DESCRIPTION OF THE DRAWINGS 
         [0031]      FIG. 1  shows a method of compressing data; 
           [0032]      FIG. 2  is a flowchart of a method according to a first solution; 
           [0033]      FIG. 3  is a schematic illustration of a packet inspection node according to a first solution; 
           [0034]      FIG. 4  is a schematic illustration of a user plane data handling node according to a first solution; 
           [0035]      FIG. 5  shows an example of an informational element in a packet header; 
           [0036]      FIG. 6  shows a system according to one alternative implementation of the first solution; 
           [0037]      FIG. 7  shows a system according to a further alternative implementation of the first solution; 
           [0038]      FIG. 8  shows a system according to a yet further alternative implementation of the first solution; 
           [0039]      FIG. 9  shows a system according an implementation of a second solution; 
           [0040]      FIG. 10  illustrates a user plane data handling node according to the second solution; 
           [0041]      FIG. 11  is a flowchart of the method of the second solution; 
           [0042]      FIG. 12  illustrates schematically a user plane data handling node according to the second solution; 
           [0043]      FIG. 13  shows a system according to an implementation of a third solution; 
           [0044]      FIG. 14  shows an alternative view of the system of  FIG. 13 ; 
           [0045]      FIG. 15  is a flowchart showing a filter update procedure according to the third solution; 
           [0046]      FIG. 16  is a flowchart showing a method according to the third solution; 
           [0047]      FIG. 17  illustrates schematically a compressor according to the third solution; 
           [0048]      FIG. 18  illustrates schematically a user plane data handling node according to the third solution; 
           [0049]      FIG. 19  is a flowchart further illustrating the method according to the third solution. 
       
    
    
     DETAILED DESCRIPTION 
       [0050]    A number of solutions to this problem will now be presented, with the following abbreviations being used:
   DPI Deep Packet Inspection   MPTCP Multi Path Transmission Control Protocol   O&amp;M Operations &amp; Maintenance   RAN Radio Access Network   RNC Radio Network Controller   RRM Radio Resource Management   TCP Transmission Control Protocol   UDP User Datagram Protocol   UE User Equipment   
 
         [0060]    A first solution involves including data about the compression ratio and/or content of the packets within the compressed data stream. A flowchart of the method of this solution is shown in  FIG. 2 , and apparatus for implementing the solution is illustrated in  FIGS. 3 and 4 . The compression ratio and/or content information is determined A 1  by a data analysis processor  101  in the compressor, or in a node which handles the data prior to compression  100 . This data is then sent A 2  to the user plane data handling node(s)  110  in the RAN either together with the user plane data, or via a separate channel. The user plane data handling node  110  receives the compression ratio and/or content information A 3 /A 4 , and the user plane data handling processor  112  uses the compression ratio and/or content information to determine how to handle to user plane data. This forgoes the need for decompression and recompression at the user plane data handling node. 
         [0061]    The compression ratio is calculated by comparing the number of bits before and after compression, and the content information is determined by analysing the packet using DPI. If this is performed in the compressor, then the same DPI process may be used both to determine the content information, and to perform the actual compression. 
         [0062]    First, consider the case where the user plane data is sent together with the compression ratio and/or content information. The compression ratio and/or content information is sent as information elements within the ordinary compressed data packets. These information elements must then be detected and interpreted by the user plane data handler, and may be removed A 5  by the user plane data handling node prior to the handling node forwarding the user plane data towards the destination. This prevents the receiving device from potentially misinterpreting the packets due to the extra data. An example of the information elements could be to utilise the GTP-U Private Extension Information Element (3GPP TS 29.060) as shown in  FIG. 5 , which is used to convey vendor specific information. Of course, if this element is added prior to compression, then the compressor should be configured to ignore the element so that it is not compressed. 
         [0063]    The compression ratio and/or content information may be determined on a per-packet or per-session basis. If the information is determined on a per-packet basis, then one information element is associated with each packet, as shown in  FIG. 6 . Alternatively, one information element may be associated with multiple packets (and contain information about each of the packets). When the packets are compressed, multiple uncompressed packets may be compressed into a single compressed packet, therefore the content information may include details of each of the original packets. There may be one information element associated with each of the uncompressed packets, with each of the compressed packets, or with multiple compressed packets. If the information is associated with an uncompressed packet, it will indicate which compressed packet contains the uncompressed packet. Alternatively, the compression ratio and/or content information may be determined on a per-session basis, and there may be one information element associated with each (e.g.) TCP/UDP session. Each session carries a certain type of content, and the overall compression ratio for the session can be calculated. This approach is shown in  FIG. 7 . 
         [0064]    Alternatively, the compression ratio and/or content information may be conveyed over a separate information flow, with each information element containing a reference to the packet or session to which it refers. The new information flow will need to be synchronised such that the compression ratio and/or content information arrives in time to be used to make decisions regarding the associated packets. This approach is shown in  FIG. 8 . 
         [0065]    A second solution involves making a copy of the compressed user plane data in the user plane data handling node, decompressing the copy, and performing measurements, and using the results of the measurements to handle to compressed user plane data. This solution avoids having to recompress data at the user plane data handling node. An illustration of a system implementing the solution is shown in  FIG. 9 , and a schematic of the user plane data handler is shown in  FIG. 10 . A flowchart of the method of this solution is shown in  FIG. 11 , and apparatus suitable for implementing the solution is illustrated in  FIG. 12 . 
         [0066]    A breakout handler  201  in the user plane data handling node  200  receives the user plane data, and copies B 2  the user plane data to a “virtual” decompressor  202  for decompression B 3 . A performance measurement processor  203  then performs performance measurements B 4  on the copied user plane data, such as determining the content type, bit rate, or packet loss, and the results are passed to a user plane data handling processor  204  which uses the results to determine how to handle the user plane data B 5 . 
         [0067]    The breakout handler  201  may be external to the monitoring node. This may allow compatibility with legacy systems, which can be given the copied, decompressed user plane data as input, and the results from the systems can be used to determine how to handle the compressed user plane data. 
         [0068]    The virtual decompressor in the user plane data handling node must be synchronised to match the real endpoint decompressor. This can be achieved either by monitoring all communication between the end point compressor and decompressor, in order to build up the correct compression table, or by explicitly requesting the compression table, e.g. through the O&amp;M system, or directly from the endpoint compressor or decompressor. 
         [0069]    An example implementation of the virtual decompressor would be to implement the decompressor on a virtual machine which emulates the end-point, helping the ensure synchronisation. However, the virtual decompressor may also be implemented as conventional software or hardware. 
         [0070]    The decompressed, copied data may be measured by a combination of DPI and other techniques. The DPI used may be part of the virtual decompressor itself, which may also implement some monitoring functions. The content information is retrieved together with indications as to which packets and/or sessions it refers to, and is used to direct the handling of those packets and/or session, and/or to determine improvements in the handling of future packets and/or sessions. The data flow may include both compressed and uncompressed data, and the breakout handler may copy only the compressed data, or the entire data stream (with only the compressed data being decompressed). 
         [0071]    The original traffic flow may be buffered while the copied user plane data is decompressed and analysed. The user plane data handler then takes action on the buffered packets according to the retrieved information. Alternatively, the flow may not be buffered, and the retrieved information may be used to handle future packets of the session, or stored for later analysis to determine possible network improvements. This will not ensure that the first few packets of a session are treated correctly, but will reduce the latency caused by the user plane data handler. 
         [0072]    After the analysis has been performed, and the results acted upon and/or stored, the copied user plane data can be deleted. No further recompression is required. This approach may be deployed at multiple points in the RAN, as appropriate, for example to monitor each technology in a multi-access transmission, or each stream in a multi-path transmission. 
         [0073]    The third solution uses a dynamic filter to identify packets which are to be sent uncompressed. The user plane data handling node then examines the uncompressed packets, and handles the user plane data stream on the basis of the results from the uncompressed packets.  FIGS. 13 and 14  show a system for implementing such a solution. A flowchart of the solution is shown in  FIG. 15 , and a more detailed flowchart of the filtering process is shown in  FIG. 16 .  FIGS. 17 and 18  illustrate apparatus suitable for implementing the solution.  FIG. 19  is a flowchart showing the overall process. 
         [0074]    A filtering processor  301  in the compressor  300  selects which packets of the data stream should be compressed C 1 , and instructs the compression processor  302  to compress these packets C 2 . The data stream is then sent towards the receiving device. The user plane data handling node  310  receives the user plane data C 3 , and a filtering processor  312  in the user plane data handling node selects the packets for analysis using the same filter as the compressor C 4 . A performance measurement processor  313  then analyses the selected packets C 5 , using e.g. DPI. This will normally involve analysing the uncompressed packets, but some information about the compressed packets may also be gathered, in order to estimate the compression ratio and/or bit rate. A user plane data handling processor  314  then uses the results of the analysis to make decisions regarding handling the user plane data C 6 . The decompressor at the receiving endpoint also has a copy of the filter, which is used to identify the compressed packets for decompression. 
         [0075]    The filter may be updated, either by the user plane data handling node directly sending and updated filter to the compressor, or by a central management (CM) node sending an updated filter to the user plane data handling node and the compressor. The CM node may determine the updated filter based on monitoring or bandwidth requirements, or requests from user plane data handling nodes in the network. The more packets are sent uncompressed, the greater the accuracy of the monitoring, the fewer packets are sent uncompressed, the greater the bandwidth savings in the network. Therefore, the filter may be changed regularly to balance these considerations in response to the current network situation. 
         [0076]    The CM may be implemented as part of an existing O&amp;M system, as a function in an existing node, or as a stand-alone node. Requests for content to intercept may be communicated to the CM from the user plane data handling nodes via proprietary or standardised interfaces, and the updated filters may likewise be transmitted to the compressor, decompressor, and user plane data handling nodes via proprietary or standardised interfaces.