Internet DRAFT - draft-saifullah-rohc-ip-addr-comp-context-replication

draft-saifullah-rohc-ip-addr-comp-context-replication









INTERNET-DRAFT                                          Yousuf Saifullah
Date: 17 October 2003                                        Zhigang Liu
Expires: 17 April 2004                             Nokia Research Center



             IP Address Compression in Context Replication
     <draft-saifullah-rohc-ip-addr-comp-context-replication-00.txt>



Status of This Memo

   This document is an Internet-Draft and is in full conformance with
   all provisions of Section 10 of RFC2026.

   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.


Abstract

   The Context Replication (CR) mechanism [3] for Robust Header
   Compression (ROHC) uses an existing compression context for creating
   a new compression context, thus, saves sending some of the header
   information from the compressor to the decompressor during context
   initialization.  The current CR mechanism could also save sending an
   IP address from the header information.  However, it either sends a
   whole IP address or doesn't send an IP address. This Internet Draft
   enhances the CR mechanism by providing an option of sending
   compressed IP address.







Saifullah, Liu                                                  [Page 1]





INTERNET-DRAFT        IP Address Compression in CR       17 October 2003


                             Table of Contents


   Status of This Memo . . . . . . . . . . . . . . . . . . . . . . .   1

   Abstract  . . . . . . . . . . . . . . . . . . . . . . . . . . . .   1

   1. Introduction . . . . . . . . . . . . . . . . . . . . . . . . .   3

   2. IP Address Compression Technique . . . . . . . . . . . . . . .   3
      2.1. Compressor Logic  . . . . . . . . . . . . . . . . . . . .   4
      2.2. Decompressor Logic  . . . . . . . . . . . . . . . . . . .   5

   3. Protocol Changes . . . . . . . . . . . . . . . . . . . . . . .   5

   4. Security Considerations  . . . . . . . . . . . . . . . . . . .   6

   5. Intellectual Property Right Notice . . . . . . . . . . . . . .   6

   6. References . . . . . . . . . . . . . . . . . . . . . . . . . .   7

   7. Authors' Addresses . . . . . . . . . . . . . . . . . . . . . .   7

   Appendix A. Address Format  . . . . . . . . . . . . . . . . . . .   8
      A.1.  IPv4 Address Structure . . . . . . . . . . . . . . . . .   8
      A.2.  IPv6 Address Structure . . . . . . . . . . . . . . . . .   8

























Saifullah, Liu                                               [Page 2]





INTERNET-DRAFT        IP Address Compression in CR       17 October 2003


1.  Introduction

   A header compression scheme compresses the header of an IP packet
   belonging to a context.  A context is established between a
   compressor and its decompressor for a particular packet data flow.  A
   compression scheme usually requires transfer of full header from the
   compressor to the decompressor to build the context at the
   decompressor.

   The ROHC WG is also developing a Context Replication (CR) technique
   [3] that initializes the context of a new flow by using an existing
   context (base context) at the decompressor.  This allows a new packet
   flow to build its context using a context of another packet flow
   without transferring the full header. In this way CR reduces the
   amount of information transferred for building the context.

   The current CR proposal only allows either sending a full IP address
   or not sending an IP address for building a new context.  An IP
   header contains source and destination IP addresses. The structure of
   IP addresses suggests that there is a repetition of information from
   one address to another (Appendix A). For example, IPv4 Class B
   addresses have same 2 out of 4 bytes for the nodes in the same
   network. Also, IPv6 anycast addresses have same 64 bits for the nodes
   in a subnetwork, if the subnet prefix is 64 bits. Therefore, there is
   a potential for sending compressed IP addresses.

   This draft defines a technique for compressing an IP address using an
   IP address from the base context.  It enhances the CR mechanism by
   allowing sending of the compressed IP address for building the new
   context.  This enhancement improves header compression efficiency
   when packet flows carry similar (e.g. same prefix) but not exactly
   same IP addresses. In particular, the gain can be significant for
   IPv6 header compression due to the large size (16 bytes) of IPv6
   addresses.

   The IP address compression for replication is designed on top of the
   proposed CR scheme and does not introduce any change in the base CR
   mechanism.  This draft only describes the procedures and the protocol
   specific to the IP address compression for replication. It assumes
   that the reader is familiar with the ROHC and CR mechanisms.



2.  IP Address Compression Technique







Saifullah, Liu                                                  [Page 3]





INTERNET-DRAFT        IP Address Compression in CR       17 October 2003


2.1.  Compressor Logic

   The compressor performs compression on a source and destination IP
   address of a new context by using the corresponding source and
   destination IP address from a base context.  Let's assume that an IP
   address in the base context is called base_addr and the corresponding
   IP address of a new context is called new_addr.  The compressor logic
   performs two main steps.

   Step-1:  Decision for the compression of new_addr.

   Step-2:  Actual Compression of new_addr using base_addr.

   Step-1 is done by recognizing the similarity between the base_addr
   and new_addr. This recognition is implementation dependent, and does
   not need to be standardized. This draft suggests a bit-wise XOR
   operation between the two addresses. If the result has:

   -  all zeroes, a Full Match is identified.

   -  zeroes in some of the leading bits, a Prefix Match is identified

   -  zeroes in the trailing bits, a Suffix Match is identified

   -  anything else, No Match is identified

   In the case of Prefix and Suffix Match, the compressor also evaluates
   whether the compressed address is smaller than the uncompressed
   address. Specifically, the number of leading/trailing zeroes should
   be greater than the overhead to encode the number. The overhead, i.e.
   the size of the   matched length (see format in section 3), is 5 bits
   for IPv4 and 7 bits for IPv6.

   Step-2 performs a simple compression method of encoding only the
   length of the matched bits. The matched length is followed by the
   unmatched bits. For the Prefix Match, the matched length indicates
   the leading matched bits. For the Suffix Match, the matched length
   indicates the trailing matched bits.

   The compressor sends the type of the match along with the following
   information, for both the source and destination IP addresses, to the
   decompressor:

   -  For "Full Match", don't send the new_addr

   -  For "Prefix/Suffix Match", send the compressed new_addr (matched
      length followed by the unmatched bits)




Saifullah, Liu                                                  [Page 4]





INTERNET-DRAFT        IP Address Compression in CR       17 October 2003


   -  For "No Match", send the uncompressed new_addr


2.2.  Decompressor Logic

   The decompressor, after receiving a packet for context initialization
   using CR mechanism, determines the type of match for the source and
   destination IP addresses. Based on the type of match, it uses the
   base_addr from the referred base context to generate new_addr for the
   new context.


3.  Protocol Changes

   The CR mechanism has defined an IR-REPLICATE packet for sending
   reduced header information during context initialization.  The
   compressed IP address is also sent in the IR-REPLICATE packet.  The
   packet contains a set of indicator flags to indicate the header
   fields present in the packet.  The format of the IR-REPLICATE packet
   is still under determination.  This section describes the protocol
   changes using the formats described in [3], which makes use of
   indicator flags.  The proposed changes can be incorporated into any
   other format, e.g. indicator code format.

   The compressor should define flags in the IR-REPLICATE header to send
   type of Match for the decompressor. It uses two bits each for the
   source and the destination IP addresses.  The bits are called Source
   Address Match (SAM) for the source IP address, and Destination
   Address Match (DAM) for the destination IP address.

   *  SAM/DAM = 00 - No Match; IR-REPLICATE carries full
      source/destination IP address

   *  SAM/DAM = 01 - Full Match; IR-REPLICATE carries no
      source/destination IP address

   *  SAM/DAM = 10 - Prefix Match; IR-REPLICATE carries compressed
      source/destination IP address

   *  SAM/DAM = 11 - Suffix Match; IR-REPLICATE carries compressed
      source/destination IP address


   A compressed source/destination IP address is carried in the
   following format:






Saifullah, Liu                                                  [Page 5]





INTERNET-DRAFT        IP Address Compression in CR       17 October 2003


   +------------+---------------+
   | matched-len| unmatched-bits|
   +------------+---------------+


   *  matched-len: the length, in units of bits, of the prefix/suffix
      that are same between the base_addr and new_addr.  The size of
      this field is 5 bits for IPv4 and 7 bits for IPv6.  The compressed
      IP address is only sent when the number of matched bits is greater
      than the matched-len size. Therefore, matched-len can be offset by
      5 (IPv4) or 7 (IPv6). In other words, for IPv4 a value of 0 means
      6 bits match, a value of 1 means 7 bits match, and so on.

   *  unmatched-bits: the (N - matched-len) bits in new_addr, where N is
      the total length of an IP address in units of bits. N = 32 for
      IPv4 and N = 128 for IPv6. These are leading bits in the case of
      suffix match, and are trailing bits in the case of prefix match.
      This field could be followed by some padding bits for the byte
      alignment.

   The formatting should also consider the available unused bits and
   byte alignment in the IR-REPLICATE packet for further compacting the
   compressed IP address. For example, 5 bits of the IPv4 matched-len
   field could be placed in a field which has 5 unused bits. Also, the
   matched-len could be coded in bytes instead of bits. In this case, we
   need only 2 bits for IPv4 and 4 bits for IPv6. These bits could be
   placed in a field which has 2 or 4 unused bits.


   4.  Security Considerations

      This draft does not bring any new security considerations for the
      ROHC mechanisms including CR.


   5.  Intellectual Property Right Notice

      Nokia has a pending patent applications that may be relevant to
      this draft. Please refer to <http://www.ietf.org/ietf/IPR/Nokia>
      for more information.











Saifullah, Liu                                                  [Page 6]





INTERNET-DRAFT        IP Address Compression in CR       17 October 2003


   6.  References

      [1]       R. Hinden, S. Deering, "Internet Protocol Version 6
                (IPv6) Addressing Architecture", RFC3513, April 2003

      [2]       Postel, J., "Internet Protocol", STD 5, RFC 791,
                September 1981.

      [3]       Ghyslain Pelletier, "RObust Header Compression (ROHC):
                Context Replication for ROHC Profiles", Internet Draft,
                June 2003.

   7.  Authors' Addresses


      Yousuf Saifullah
      Nokia Research Center
      6000 Connection Drive
      Irving, TX 75039
      USA
      Phone:  +1 972 894-6966
      E-mail: yousuf.saifullah@nokia.com


      Zhigang Liu
      Nokia Research Center
      6000 Connection Drive
      Irving, TX 75039
      USA
      Phone:  +1 972 894-5935
      E-mail: zhigang.c.liu@nokia.com




















Saifullah, Liu                                                  [Page 7]





INTERNET-DRAFT        IP Address Compression in CR       17 October 2003


   Appendix A. Address Format

   This appendix describes the format of IPv4 and IPv6 addresses, so
   that the reader could get familiar with the redundancy in an IP
   address. The details of the formats are described in [1] and [2].

   A.1.  IPv4 Address Structure

      The IPv4 address is usually expressed as four decimal numbers,
      each representing a byte, separated by periods.  IPv4 defines an
      address format based on the following four classes. The first few
      bits are used for indicating the class type:

      *  Class A 0 Network address (7 bits) Local address (24 bits).
         Class A addresses are for large networks with many devices.

      *  Class B 10 Network address (14 bits) Local address (16 bits).
         Class B addresses are for medium-sized networks.

      *  Class C 110 Network address (21 bits) Local address (8 bits).
         Class C addresses are for small networks (fewer than 256
         devices).

      *  Class D 1110 Multicast address (28 bits).


   A.2.  IPv6 Address Structure

      IPv6 has 16 byte addresses. It has three types of addressing:
      unicast, anycast, and multicast.

      *  Unicast address is an identifier for a single interface.

         |    n bits     |   128-n bits   |
         +---------------+----------------+
         | subnet prefix | interface ID   |
         +---------------+----------------+

         The subnet prefix field identifies a subnetwork. The interface
         ID identifies an interface on a link, they are unique for a
         subnet prefix.  There are many derivative formats of the
         unicast address for different uses as explained in [2], e.g.
         global unicast address.  All of them have potential for having
         leading bits of the address similar to another.

      *  Anycast address is an address that is assigned to a set of
         interfaces, with the property that a packet sent to an anycast
         address is routed to the "nearest" interface having that



Saifullah, Liu                                                  [Page 8]





INTERNET-DRAFT        IP Address Compression in CR       17 October 2003


         address.  The Subnet-Router anycast address is as follows:

         |     n bits    |   128-n bits   |
         +---------------+----------------+
         | subnet prefix | 00000000000000 |
         +---------------+----------------+


      *   Multicast Address is an address for a group of interfaces
         (typically on different nodes).  An interface may belong to any
         number of multicast groups. Multicast Addresses have the
         following format:

         |   8    |  4 | 4  |                112 bits                |
         +------ -+----+----+----------------------------------------+
         |11111111|flgs|scop|                group ID                |
         +--------+----+----+----------------------------------------+


         11111111 at the start of the address indicates a multicast
         address.

         flgs identifies whether the address is a permanently-assigned
         or a non-permanently-assigned by  the Internet Assigned Number
         Authority (IANA)

         scop is a  multicast scope value used to limit the scope of the
         multicast group, in terms of site-local, organization-local,
         etc.

         group ID identifies a multicast group.





   This Internet-Draft expires on April 17, 2003.














Saifullah, Liu                                                  [Page 9]