Internet DRAFT - draft-minaburo-rohc-nemo

draft-minaburo-rohc-nemo



NEMO					          A. Minaburo,ENST-B.
Internet Draft 				          E.K. Paik, KT
Document: draft-minaburo-rohc-nemo-01.txt         L. Toutain, ENST-B.     
					         J-M. Bonnin, ENST-B.
Expires: January 2006			           July 2005


        ROHC (Robust Header Compression) in NEMO network


Status of this Memo

This document is an Internet-Draft and is in full conformance with 
all provisions of Section 3 of RFC 3667 [1].  By submitting this 
Internet-Draft, each author represents that any applicable patent or 
other IPR claims of which he or she is aware have been or will be 
disclosed, and any of which he or she becomes aware will be 
disclosed, in accordance with Section 6 of BCP 79.

Internet-Drafts are working documents of the Internet Engineering 
Task Force (IETF), its areas, and its working groups.  Note that      
other groups may also distribute working documents as Internet-
Drafts.

Internet-Drafts are draft documents valid for a maximum of six months 
and may be updated, replaced, or obsoleted by other documents at any 
time.  It is inappropriate to use Internet-Drafts as reference 
material or to cite them other than as "work in progress."

The list of current Internet-Drafts can be accessed at
     http://www.ietf.org/ietf/1id-abstracts.txt


The list of Internet-Draft Shadow Directories can be accessed at
     http://www.ietf.org/shadow.html.


This Internet-Draft will expire on January, 2006.


Copyright Notice


   Copyright (C) The Internet Society (2005).










Abstract

This document defines the use of ROHC header compression mechanisms 
for the NEMO Basic Support protocol [7]. The idea is to use both NEMO 
and ROHC as they have been defined. In the NEMO Basic Support 
protocol, the tunneling between the Mobile Router (MR) and the Home 
Agent (HA) of the MR is done over different access technologies. Some 
of these technologies are wireless (e.g. Wireless LAN, 3G or PPP) and 
have scarce resources by nature, the use of  ROHC compression can be 
useful to reduce the bandwidth consumption.
 

Conventions used in this document

In examples, "C:" and "S:" indicate lines sent by the client and 
server respectively.
The key words "MUST", "MUST NOT", "REQUIRED", "SHALL", "SHALL NOT", 
"SHOULD", "SHOULD NOT", "RECOMMENDED",  "MAY", and "OPTIONAL" in this 
document are to be interpreted as described in RFC-2119 [1].


Table of Contents

1. Introduction					2
2. The use of ROHC in NEMO			3
2.1 Basics					3
2.2 ROHC operation modes			3
2.3 ROHC compressor				4
2.4 ROHC decompressor				4
2.5 ROHC work in progress			4
3. ROHC Configuration				5
3.1 Tunneling Encapsulation			5
3.2 ROHC packet Format				6
3.3 Negotiation Header Packets			7
3.4 ROHC Parameter Values			10
3.5 ROHC Profiles				10
4. Modifications to NEMO Basic Support		10
4.1 Home Agent Operation			11
4.2 Mobile Router Operation			11
4.3 Use of Addresses				11
IANA Considerations				11
Security Considerations				11
References					11
Author's Addresses				12
Change Log					13


1. Introduction

The Network mobility (NEMO) Basic support [7] has been designed to 
manage the mobility of an entire network. A Mobile Router (MR) in 
this network manages the connectivity between different access 
networks and the mobile networks. It is responsible to change its 
point of attachment each time it is needed and to maintain a tunnel
(IP/IP) to its Home Agent (HA). This tunnel allows correspondent 
nodes and mobile nodes attached to the mobile network to act as if 
the mobile network was physically connected to its home network 
beside the HA.
Due to the IP tunneling a double header is needed between the MR and 
the HA, including the low bandwidth link between the MR and the 
access network. 
ROHCs header compression algorithms are known to be able to reduce 
the header size and to improve performance in low bandwidth links. 
This document defines how to use ROHC [2,3,4,5] mechanisms in a NEMO 
network [7] to reduce the overhead and therefore to improve the 
performance between the HA and the MR. 
The Handover produced when the MN moves does not affect the ROHC 
compression performance, the only problem that can be found is the 
disordering reception of packets, when the MN moves a new tunnel 
between the MR and the HA will be created, packets of the old tunnel 
can arrive later. 
Section 2 explains where ROHC will be used in NEMO architecture, 
section 3 describes the ROHC configuration in this context and 
section 4 describes the use of NEMO encapsulation for header 
compression.


2. The use of ROHC in NEMO

2.1 Basics

A basic approach of using ROHC in mobile networks context is to use 
ROHC to compress the header of IP packet traveling inside the 
bi-directional tunnel established between the MR and HA. This tunnel 
has some useful properties: it preserves the session continuity while 
the MR moves and headers of IP packets traveling inside the tunnel do 
not depend on the mobility of the mobile network. 
The MR has two different interfaces, the ingress interfaces are 
connected to the mobile network and the egress interfaces are 
connected to the access network. An IP tunnel (often with IPSec) is 
established between the egress interface and the HA. The HA has to 
route packets that belong to the mobile network prefix to the MR 
through the IP tunnel. The MR, on its side, has to route the packet 
issued by the mobile network to the HA through the tunnel. 
ROHC header compression is applied to packets issued by the mobile 
network just after the routing decision and before the IP 
encapsulation. The same thing is done by the HA on the other way. 

As tunneling in NEMO Basic Support [7] is bi-directional, ROHC will 
be able to perform the three operation modes and use the feedback to 
improve performance. 


Figure 1. ROHC in NEMO

         ingress +-----+egress                             +-----+
+----------+     | MR  |-----------------------------------| HA  |
| IP packet|  ---|+----| IPv6/IPsec(ESP)/ROHC or IPv6/ROHC |----+|
+----------+     ||ROHC|-----------------------------------|ROHC||
                 +-----+                                   +-----+


ROHC mechanism for RTP, UDP, IP and UDP-Lite flows works by removing 
the redundancy and transfers only changing fields. It classifies the 
header fields into static and dynamic fields. Static fields are those 
that remain constant during the lifetime of the packet and dynamic 
fields are those that keep on changing but their change pattern may 
be known.


2.2 ROHC Operation modes

ROHC has three operation modes: Unidirectional (U), bi-directional 
Optimistic (O) and bi-directional Reliable (R)(See RFC 3095 section 
4.4). The U-mode is used when the link is unidirectional or when 
feedback is not possible. For bi-directional links we can use the 
O-mode or the R-mode. The O-mode sends only negative feedbacks, 
optionally it can also send positive feedbacks but the R-mode uses 
both negative and positive feedbacks. ROHC always starts header 
compression using U-mode even if it is used in a bi-directional link. 


2.3 ROHC Compressor

The ROHC compressor removes the redundant header fields and the 
redundant information in the packet flow. ROHC compression 
communicates changing fields most of the time. While sending the 
fields that have changed, it further achieves efficiency by using an 
encoding algorithm (See RFC 3095 section 4.5) in which only the last 
significant bits are sent.
 
The ROHC compressor has three compression levels (See sections RFC 
3095 5.3, 5.4 and 5.5): Initialization and Refresh (IR), First Order 
(FO) and Second Order (SO). In IR compression level it establishes 
the static information and in FO compression level the change pattern 
of dynamic fields. In the last compression level, SO, it sends 
encoded values of Sequence Number (SN) and Timestamp (TS) forming the 
minimal size packets. With the use of this header format packet (See 
section 5.7 RFC 3095) all header fields can be generated at the other 
end of the link using the previously established change pattern. When 
some updates or errors are there, the compressor goes back to the 
upper compression levels. It only returns to the SO compression level 
after retransmitting the updated information and establishing again 
the change pattern in the decompressor.


2.4 ROHc Decompressor

The decompressor works at the receiving end of the link (See RFC 3095 
section 5.3.2) and decompresses the headers based on the header 
fields' information of the context. Both the compressor and the 
decompressor use a context to store all the information about the 
header fields.  To ensure correct decompression, the context should 
be synchronized all the time. The decompressor has three states, the 
first is No Context (NC) that is used when there is no context 
synchronization, and the second is Static Context (SC) that is 
reached if the dynamic information in the context has been lost. The 
third is Full Context (FC), reached when the decompressor has all the 
information about header fields. In FC state, the decompressor moves 
to the initial states as soon as it detects context damage. It uses 
the k out of n rule by looking at the last n packets, if CRC failures 
have occurred for at least k packets then, it assumes context damage 
and transits backward to an initial state. The decompressor also 
sends feedback according to the operation modes.

The Decompressor manages the operation mode in which the system will 
work through the use of mode transitions (See RFC 3095 section 5.6) 
that allow it to change from one mode to another, based on the link 
characteristics and the performance requirements. The decompressor 
also uses some efficient schemes to correct the context when it gets 
damaged or the synchronization gets lost. The compressor also employs 
some schemes through which it ensures the correct transmission of the 
information to the decompressor. 


2.5 ROHC work in progress
ROHC for SIP [4] flows use the UDVM (Universal Decompression Virtual 
Machine) which accept any encoding code (Deflate, Huffman, Z77, EPIC, 
etc). It uses the corresponding byte-code to decompress the packet. 
ROHC for TCP [5] uses an improved compression efficiency method to 
compress TCP header fields including TCP options to generate the 
compressed format packets within the ROHC operation modes.


3. ROHC Configuration

Each ROHC entity is formed by a compressor and a decompressor, ROHC 
entity will be placed in both MR and HA, each flow will use a ROHC 
context identifier (CID). The profiles used in the tunneling will 
depend on the profiles implemented in each peer negotiated initially. 

The MNN will not be affected by the use ROHC, and it has to be 
transparent for the users in the mobile network. The MR will make 
ROHC compression after taking the routing decision and before making 
tunneling encapsulation.


3.1 Tunneling Encapsulation

Tunnels between the mobile router and the home agent can be protected 
by ensuring proper use of source addresses, and optional
cryptographic protection. When protection is requested, Home agent
and mobile router may use IPsec ESP to protect payload against 
attackers on the path of the tunnel [8,9]. The ROHC packets will be 
encapsulated as shown in figure 2. 

This document specifies a new protocol value for the IP and IPsec 
next header value to identify ROHC in the tunneling encapsulation.  


Figure 2. Tunneling Encapsulation for ROHC packets.

+----------------------------+        +----------------------------+
|IPv6 Header |Nxt. Hdr.= ROHC|        |IPv6 Header |Nxt. Hdr.= 50  |
|            +---------------|        |            +---------------|
|Src. Addr. : CoA of MR      |        |Src. Addr. : CoA of MR      |
|Dst. Addr. : HA address     |        |Dst. Addr. : HA address     |
+----------------------------|        +----------------------------|
|ROHC Packet                 |        |ESP Header  |Nxt. Hdr.= ROHC|  
|                            |        |            +---------------|
|                            |        +----------------------------+ 
|                            |        |ROHC Packet                 |
|                            |        |                            |
+----------------------------+        +----------------------------+                       


3.2 ROHC packet Format

Both Negotiation and ROHC Compressed packets will be sent with two 
extra bytes to identify the type of packet and the disorder in the 
link. Figure 3 shows the general format packet of the ROHC packets. 
The Transfer Sequence Number will be used in case of packet 
disordering in the link. 


Figure 3. General Format Packet.

0                   1                  
0 1 2 3 4 5 6 7 8 9 0 1 2 3 4 5 
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
| D | Transfer Sequence Number  |  
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+   : Variable length
:          ROHC Header          :  (For ROHC format packet see 
:              or               :   section 5.2 of RFC 3095, For 
:       Negotiation Header      :   Negotiation Header see section 
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+   3.3 )
:                               :
:          Payload              :
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ 

D 

Description Type. Two bits will be used to identify the Negotiation 
ROHC packets from ROHC compressed packets. 

00  Reserved
01  Negotiation
10  ROHC Compressed Packets
11  Reserved
Transfer Sequence Number 

ROHC was designed to work over an order delivery transmission between 
the compressor and the decompressor. When sending ROHC packets in the 
IP tunneling between the MR and the HA many hops will be crossed by 
different ways, order delivery may not be guaranteed. The Transfer 
Sequence Number will help the decompressor to identify if disordering 
has been produced in the delivery, and before making decompression of 
an early arriving packet, decompressor has to wait until the order 
delivery packet arrived or a timer expires.

The timer value is out of the scope of this draft, will need to be 
studied depending on the congestion in the network.
 

3.3 Negotiation Header Packets

There is no process of negotiation when packets are sent in a IP 
tunnel. To achieve correct compression, ROHC needs to know some 
parameters in order to be supported by both ends of the tunnel. Based 
on the RFC 3241 [6] which describes the principal parameters to be 
sent in a negotiation for the PPP link, we have created the 
negotiation packets. Compressor will start sending Negotiation 
packets (see Figure 4), when decompressor receives negotiation 
packets it will response with a feedback packet (see figure 5) to 
accept or modified the compressor parameters. 

ROHC Negotiation packets are sent only once, the first time the MR 
leave its home network.


Figure 4. ROHC Negotiation Packet Format from Compressor to 
Decompressor
 
	 0                   1                  
    0 1 2 3 4 5 6 7 8 9 0 1 2 3 4 5
	+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
	|           Length              |
	+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
	|           CID Size            |
	+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
	|             MRRU              |
	+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
	:          sub options          :
	+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+

Length
>= 10

The length depends on the number of sub options in the negotiation 
packet 


CID Size

0003 (hex) when small CID is used
0005 (hex) when large CID is used


MRRU

It indicates the maximum reconstructed reception unit, (see RFC 3095,
section 5.1.1).

Suggested value = 0


Sub options

See RFC 3241 section 2.1, and 2.2 for suboptions description.
The Profile suboption MUST be supplied.

Figure 5. ROHC Negotiation Feedback Format from Decompressor to 
Compressor

   0     1     2     3     4     5     6     7
+-----+-----+-----+-----+-----+-----+-----+-----+
|Ack. Type  |   Mode    |                       |
+-----+-----+-----+-----+                       +
|             Transfer Seq. Number              |
+           +-----+-----+-----+-----+-----+-----+
|           :       Feedback Options            :
+-----+-----+-----+-----+-----+-----+-----+-----+


In order to receive the acknowledge or the modification of compressed
parameters, the Decompressor will used a Feedback type 2 (see RFC 
3095 section 5.7.6


Ack. Type

See RFC 3095 section 5.7.6.1 

Mode

  0 = Negotiation Response

This is a modification made to RFC 3095 will be the identification 
for Negotiation Response. The other values are as RFC 3095 has 
defined.


Feedback Options

A new feedback option is introduced, in order to modified the 
negotiation configuration. When the configuration of compressor is 
accepted there is no feedback options.


  0   1   2   3   4   5   6   7
        +---+---+---+---+---+---+
        |Opt. Type = 9  |Option | (See RFC3095 section 5.7.6.2)
+---+---+---+---+---+---+---+---+
|Len.= 4|CIDSize|p00|p01|p02|p03| ROHC Profiles
+---+---+---+---+---+---+---+---+   
|p04|p05|p06|p07|P08| reserved  |
+---+---+---+---+---+---+---+---+
|                               |
+             MRRU              +
|                               |
+---+---+---+---+---+---+---+---+


CID Size 

 00 Reserved
 01 Small CID
 10 Large CID
 11 Reserved


Profiles
 
 Each bit represent a supported profile, when the bit is 1 the 
profile is supported when it is 0 the profile is not supported.
The p-value represents the Profile of ROHC. When any profile is 
matching at both sizes profile 0 is used. 

p00 Profile 0. Without Compression
p01 Profile 1. IP/UDP/RTP
p02 Profile 2. IP/UDP
p03 Profile 3. IP/ESP
p04 Profile 4. IP
p05 Profile 5. LLA for U/O-mode
p06 Profile 6. LLA for R mode
p07 Profile 7. IP/UDP-Lite/RTP
p08 Profile 8. IP/UDP-Lite

MRRU

The maximum reconstructed unit supported by decompressor.


3.4 ROHC Parameter Values

A number of ROHC parameters must be set correctly for good 
compression over the IP tunnel. The compression approach, the timers 
of unidirectional mode, the k1, n1, k2, n2 and the timer for 
disordering waiting has to be studied and are out of scope of this 
document.


3.5 ROHC Profiles

All the other ROHC profiles can be used, it depends on the 
MNN traffic and the profile supported by MR and HA ROHC 
compressor/decompressor.



4. Modifications to NEMO Basic Support

4.1 Home Agent Operation

When HA intercepts packets which are destined to mobile router, HA 
should be able to apply ROHC header compression to packets just after 
the routing decision and before the IP encapsulation.

HA should be able to execute ROHC compressor and decompressor.


4.2 Mobile Router Operation

When packets are issued by the mobile network, MR should be able to 
apply ROHC header compression to packets just after the routing 
decision and before the IP encapsulation.

MR should be able to execute ROHC compressor and decompressor.


4.3 Use of Addresses

To support NEMO, MR uses two types of addresses: the home addresses 
which are static and they are used when MR is at its home networking 
and the care-of addresses which are dynamic and they change with the 
attachment point. The HA will keep a binding cache for MR.
While MR is in its home networking header compression will not be
used.

The addresses used for ROHC will be the MNN (Mobile Network Node) as 
source address and the CN (Corresponding Node) as destination 
address. The Address will not change while the MN moves around.


IANA Considerations

This document defines a new IPv6 protocol and IPsec protocol, the 
ROHC Next Header, described in Section 3.1.


Security Considerations

This document by it self does not add any security risk to the use of 
ROHC and NEMO as they have already been defined in [2] and [7].


References


1  Bradner, S., "IETF Rights in Contributions", BCP 78, RFC 3667, 
   February 2004.

2  Bormann, C., Burmeister, C., Degermark, M., Fukushima, H.,
   Hannu, H., Jonsson, L-E., Hakenberg, R., Koren, T., Le, K.,
   Liu, Z., Martensson, A., Miyazaki, A., Svanbro, K., Wiebke, T.,
   Yoshimura, T. and H. Zheng, "RObust Header Compression (ROHC): 
   Framework and four profiles: RTP, UDP, ESP, and uncompressed", 
   RFC 3095, July 2001.

3  Jonsson, L-E., Pelletier, G., "RObust Header Compression (ROHC): 
   A Compression Profile for IP", RFC 3843, June 2004.

4  Pelletier, G., "RObust Header Compression (ROHC): Profiles for 
   User Datagram Protocol (UDP) Lite", RFC 4019, April 2005.

5  Pelletier, G., Jonsson, L-E., West, M., Price, R., Sandlund, K., 
   "Robust Header Compression (ROHC): A Profile for TCP/IP 
   (ROHC-TCP)", <draft-ietf-rohc-tcp-08.txt>, October 2004.

6  Bormann, C., "RObust Header Compression (ROHC) over PPP", RFC 
   3241, April 2002.  
 
7  Devarapalli, V., Wakikawa, R., Petrescu, A., Thubert, P.,"Network 
   Mobility (NEMO) Basic Support Protocol", rfc3963, 2005.

8  Johnson, D., Perkins, C., Arkko, J., "Mobility Support In IPv6", 
   RFC 3775, 2004.

9  Arkko, J., Devarapalli, V., Dupont, F.,"Using IPSec to Protect 
   Mobile IPv6 Signaling Between Mobile Nodes and Home Agents", 
   RFC3776, 2004.


Author's Addresses

Ana Minaburo
ENST-Bretagne
2 rue de la Chataigneraie - CS 17607
35576 Cesson Sevigne Cedex
Phone: (+33) 299 127054
Email: anacarolina.minaburo@enst-bretagne.fr

Eun Kyoung Paik
KT
Portable Internet Team, Convergence Lab., KT
17 Woomyeon-dong, Seocho-gu
Seoul 137-792
Korea
Phone: +82-2-526-5233
Fax:   +82-2-526-5200
Email: euna@kt.co.kr
URI:   http://mmlab.snu.ac.kr/~eun/ 

Laurent Toutain
ENST-Bretagne
2 rue de la Chataigneraie - CS 17607
35576 Cesson Sevigne Cedex
Phone: (+33) 299 127026
Email: laurent.toutain@enst-bretagne.fr
URI:   http://www.rennes.enst-bretagne.fr/~toutain/

Jean-Marie Bonnin
ENST-Bretagne
2 rue de la Chataigneraie - CS 17607
35576 Cesson Sevigne Cedex
Phone: (+33) 299 127026
Email: jm.bonnin@enst-bretagne.fr


Change Log

Changes from draft-minaburo-rohc-nemo-00 to 01:

  * Restructuring of Section 2:

    +  Divide in sections the ROHC description.
 
  * Restructuring of Section 3:
      
    + Added section 3.1 Tunneling Encapsulation

	 + Added section 3.2 ROHC Packet Format

         + Added section 3.3 Negotiation Header Format

	 + Moved part of section 3 to section 3.4 ROHC parameters

	 + Added ROHC Profiles

  * Restructuring of Section 4:

    + Re-named section title 'NEMO addresses' to 'Modifications to NEMO Basic Support '

    + Added section 4.1 Home Agent Operation

    + Added section 4.2 Mobile Router Operation

    + Moved section '4.1 Addresses for header compression' to section '4.3 Use of Addresses'


Copyright Statement


"Copyright (C) The Internet Society (2005). This document is subject
to the rights, licenses and restrictions contained in BCP 78, and
except as set forth therein, the authors retain all their rights."


"This document and the information contained herein are provided on 
an "AS IS" basis and THE CONTRIBUTOR, THE ORGANIZATION HE/SHE 
REPRESENTS OR IS SPONSORED BY (IF ANY), THE INTERNET SOCIETY AND THE 
INTERNET ENGINEERING TASK FORCE DISCLAIM ALL WARRANTIES, EXPRESS OR 
IMPLIED, INCLUDING BUT NOT LIMITED TO ANY WARRANTY THAT THE USE OF 
THE INFORMATION HEREIN WILL NOT INFRINGE ANY RIGHTS OR ANY IMPLIED
WARRANTIES OF MERCHANTABILITY OR FITNESS FOR A PARTICULAR PURPOSE."