IP Header compression in UMTS network Thesis Work Presentation 14.02.2006 Jukka Raunio

advertisement
IP Header compression in UMTS network
Thesis Work Presentation 14.02.2006
Author: Jukka Raunio
Supervisor: Prof. Raimo Kantola
Instructor: M. Sc. Antti Lehtonen
Content






Background
Objectives & methodology
Header Compression in UMTS network
Header Compression mechanisms
DSP processor
Results
Background




The main service provided to the mobile users have
traditionally been only speech
Currently the mobile equipment supports also the use
of the Internet
IP telephony has also gained momentum thanks to
improved technical solutions
The problem in packet switched connections over the
radio interface of the mobile network is the poor
bandwidth efficiency caused by the header overhead
-for example a common size of TCP segments for
bulk transfers over medium-speed links is 512
octets and when this packet tunneled over
IPv6, the IPv6/IPv6/TCP header is 100 octets
leading to header overhead of 19,5%
Objectives & methodology
Objectives:
 Study the header compression mechanism
 Implement the Internet Protocol Header Compression
[RFC2507] mechanism on DSP
 Study the effects of the mechanism on the DSP
Methodology:
 Literature study based on the essential RFCs, the 3GPP
specifications and other available material.
 Measuring the implemented mechanism on the DSP
Header compression fundamentals


Header compression can be done because:
-much of the header information stays the same over the lifetime of a
packet stream
-some changing fields change with a small or a predictable
value and thus
incremental coding can be used e.g. TCP
sequence number
-only fields that change often and randomly need to be carried
in every
packet e.g. checksums
-values of some fields can be inferred for example from the link
layer
implementation
e.g. the length of
the packet
The general principle of header compression is to occasionally
send a packet with a full header; subsequent compressed
headers refer to the context established by the full header and
may contain incremental changes to the context.
Header compression fundamentals


The context is basically the uncompressed version of the last
header sent (compressor) or received (decompressor) over the
link.
A context identifier (CID) is a small unique number identifying
the context that should be used to decompress a compressed
header an it is carried in full headers and compressed headers.
Header compression benefits





Improve interactive response time
-achieved by sending smaller packets
Allow using small packets for bulk data with good line efficiency
-This is important when interactive (for example Telnet) and
bulk traffic (for example FTP) is mixed because the bulk data
should be carried in small packets to decrease the waiting time
when a packet with interactive data is caught behind a bulk
data packet
Allow using small packets for delay sensitive low data-rate
traffic
-Header compression can reduce the bandwidth needed for
headers significantly
Decrease header overhead
Reduce packet loss rate over lossy links
-Fewer bits are sent per packet and thus the packet loss rate
will be lower for a given bit-error rate
Header compression in UMTS network


In UMTS network the header compression is performed between the
User Equipment and the Radio Network Controller
The reason why the header compression is not done for example in the
node B is that the data encryption and the Macro Diversity Combining
(MDC) are done in the RNC.
Header compression mechanisms


UMTS network user plane protocol stack:
3GPP specifies two different header compression
mechanisms to be used on the Packet Data Convergence
Protocol (PDCP) layer:
-Internet Protocol Header Compression (IPHC)
-RObust Header Compression (ROHC) specified
Internet Protocol Header Compression




Specified in the RFC 2507
Can be applied to of IPv6 base and extension headers, IPv4
headers, TCP and UDP headers, and encapsulated IPv6 and
IPv4 headers
More simple of the two header compression mechanisms
The packets are classified into five categories:
-FULL_HEADER is used when a context is generated or
updated in the decompressor. The packet is similar to a
normal full header except that it contains a CID coded into
the length field of the IP header
-COMPRESSED_NON_TCP indicates a non-TCP packet with
compressed header
Internet Protocol Header Compression
-COMPRESSED_TCP packet contains a compressed
TCP packet containing a CID, a flag octet telling which
fields have changed since the previous compressed
packet, and the changed values encoded as a
difference from the previous value
-COMPRESSED_TCP_NO_DELTA indicates a packet
with a compressed TCP header where all fields that
are normally sent as the difference to the previous
value are instead sent as they are in the original
header.
-CONTEXT_STATE is a packet that may be used to
speed up the repair of the TCP streams over a links
where the decompressor can send packets to the
compressor.
Example compression of a IPv4/TCP
packet

The classification of the IPv4/TCP
header fields:
Internet Protocol Header Compression

The summarized gain of the header compression on
the IPHC:
Packet type
Header
size
(octets)
Minimum
compressed header
size (octets)
Max. compression gain [%]
IPv4/TCP
40
4
90.00
IPv4/UDP
28
2
92.86
IPv6/TCP
60
4
93.33
IPv6/UDP
68
4
91.67
Internet Protocol Header Compression

Summary of the pros and cons of the
IPHC
Pros
Cons
Easy to implement
Compression of IP/TCP
headers
Not robust enough in a case
of a packet loss
No direct support for the
compression of RTP packets
Relies on the use underlying
link layer to give the length of
the packet
Robust Header Compression





ROHC is specified in RFC 3095
Supports currently the compression of IP/UDP,
IP/UDP/RTP and IP/ESP packets
ROHC is meant to be used mainly with streams
containing real-time data and it is developed to be fault
tolerant even in links with higher error rates
The robustness is achieved with efficient communication
between the compressor and the decompressor
ROHC can be characterized as an interaction between
two state machines, the compressor machine and the
decompressor machine
Robust Header Compression




ROHC contains three different operational
modes: Unidirectional, Optimistic Bidirectional
and Reliable Bidirectional mode. The mode
specifies the way that the compressor and
decompressor states transitions are made.
Compressor and decompressor each have
three different states that control what kind
of packets are transmitted in each.
Compressor states: Initialization and Refresh
(IR), First Order (FO) and Second Order (SO).
Decompressor states: No Context, Static
Contexts and Full Context
Robust header Compression
Robust Header Compression

Pros and cons of Robust Header Compression
Pros
Cons
Robustness
Quick context
resynchronization
Improved
encoding scheme
for dynamical
header fields
Complexity
Requires significant
processing/memory
resources (compared
to IPHC)
Emerging standard
Measurements



The aim of the measurements was study the feasibility of the IPHC
mechanism on a Digital Signal Processor
The implementation and the measurements of the IPHC was done on
the Freescale MSC8101 DSP
The implementation was coded with the C-language
Measurements

The execution time measurements. The values of the all measurements
are scaled as a relative difference to the smallest value
3.5
3
2.5
2
compress
decompress
1.5
1
0.5
0
ipv4/udp
ipv4/tcp
ipv6/udp
ipv6/tcp
Measurements
Packet size effects on the execution time
3.5
3
2.5
Execution Time

2
1.5
1
0.5
0
0
200
400
600
800
1000
1200
Packet Size [bytes]
IPv4/TCP
IPv4/UDP
IPv6/TCP
IPv6/UDP
1400
1600
Measurements

Compiler optimization results
3.5
3
2.5
2
Compress
Decompress
1.5
1
0.5
0
0
1
2
Optimization Level
3
Level 0 code is not optimized at all and so the
code produced is linear assembly.
Level 1 option performs all target
independent optimizations, such as function
inlining.
Level 2 optimization is the first optimization
level that produces parallel assembly
language code. Parallel assembly code is code
where instructions are performed in parallel,
when it is possible. Parallelization is possible
only when there are no dependencies
between the instructions. All other target
specific optimizations are also used.
Level 3 uses the same optimizations as level
2, but now global register allocation is used.
Register allocation is an optimization that
allocates the virtual registers to physical
registers or memory slots, attempting to
minimize the transfers from memory to
registers.
Measurements

Memory optimization is a way to optimize the code by locating parts
of the code either in the internal or the external memory.
2.5
1.
2
2.
1.5
Compress
Decompress
1
3.
0.5
0
1
2
3
Memory Arrangement
4
4.
The code and libs are completely
in the external memory
Libs are located in the internal
memory, code in the external
Libs and compress and
decompress files in internal
memory, others in the external
memory
Everything in the internal
memory
Thank you!
Download