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.
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:
This method is roughly illustrated in
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.
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.
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.
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:
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.
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.
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.
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.
This method analyses the packet right down to the application layer (e.g. HTTP state, video content).
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.
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.
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.
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.
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.
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.
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.
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.
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.
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.
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.
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.
A number of solutions to this problem will now be presented, with the following abbreviations being used:
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
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.
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 A5 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
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
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
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
A breakout handler 201 in the user plane data handling node 200 receives the user plane data, and copies B2 the user plane data to a “virtual” decompressor 202 for decompression B3. A performance measurement processor 203 then performs performance measurements B4 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 B5.
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.
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&M system, or directly from the endpoint compressor or decompressor.
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.
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).
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.
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.
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.
A filtering processor 301 in the compressor 300 selects which packets of the data stream should be compressed C1, and instructs the compression processor 302 to compress these packets C2. The data stream is then sent towards the receiving device. The user plane data handling node 310 receives the user plane data C3, and a filtering processor 312 in the user plane data handling node selects the packets for analysis using the same filter as the compressor C4. A performance measurement processor 313 then analyses the selected packets C5, 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 C6. The decompressor at the receiving endpoint also has a copy of the filter, which is used to identify the compressed packets for decompression.
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.
The CM may be implemented as part of an existing O&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.
Filing Document | Filing Date | Country | Kind |
---|---|---|---|
PCT/EP2013/062061 | 6/11/2013 | WO | 00 |
Number | Date | Country | |
---|---|---|---|
61658705 | Jun 2012 | US |