Internet DRAFT - draft-itsumo-sip-mobility-tcp

draft-itsumo-sip-mobility-tcp










Internet Engineering Task Force                                 F. Vakil
INTERNET DRAFT                                                  A. Dutta
draft-itsumo-sip-mobility-tcp-00.txt                           J-C. Chen
Date: December 2000                                             M. Tauil
Expires: June 2001                                Telcordia Technologies

                                                                 S. Baba
                                                             N. Nakajima
                                                            Y. Shobatake
                                          Toshiba America Research, Inc.

                                                          H. Schulzrinne
                                                     Columbia University

                  Supporting Mobility for TCP with SIP
                 <draft-itsumo-sip-mobility-tcp-00.txt>

Status of this Memo

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

   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

   The distribution of this memo is unlimited.  It is filed as <draft-
   itsumo-sip-mobility-tcp-00.txt>, and expires June, 2001. Please send
   comments to farm@research.telcordia.com or sbaba@tari.toshiba.com or
   schulzrinne@cs.columbia.edu.

Copyright Notice

   Copyright (C) The Internet Society (1999).  All Rights Reserved.

ABSTRACT

   This document proposes an approach for using SIP to support mobility
   for TCP-based applications in a mobile Internet. The proposed
   approach utilizes a TCP tracking agent, dubbed as SIP_EYE, in mobile
   stations as well as SIP INFO method to spoof constant endpoints for
   mobile TCP connections and supports mobile TCP applications in a SIP
   environment without any changes to TCP.



ITSUMO Group                                                    [Page 1]

Internet-Draft    Supporting Mobility for TCP with SIP     December 2000


1. Purpose and Scope

   Along with the strong desire for ubiquitous access to integrated
   services via the Internet everywhere all the time, several wireless
   technical forums (e.g., 3GPP, 3GPP2, MWIF) have chosen Session
   Initiation Protocol (SIP) [1] as the basis of the signaling system of
   the mobile Internet. Furthermore, these forums have proposed using
   network layer protocols (e.g., Mobile IP) to support terminal
   mobility.

   SIP is expected to become an essential element of the mobile Internet
   protocol architecture, as well as to provide means of terminal
   mobility for mobile multimedia applications (see Vakil, et al. [2]
   for details).  Thus, it is desirable to devise an approach that uses
   SIP to provide means of terminal mobility to mobile TCP applications
   as well. Such an approach ensures that a mobile Internet can
   uniformly support all applications of mobile and fixed users with
   SIP.

   The objective of this document is to propose an approach that uses
   SIP to provide means of terminal mobility for TCP applications. In
   the proposed approach

   ** the mobile station (MS) is equipped with a SIP_EYE agent that
      maintains a record of its ongoing TCP connections,

   ** upon hand-off the MS sends INFO messages to the corresponding hosts
      (CH) requesting binding of the MS's old address to its new one, and

   ** MS and CH use IP encapsulation to maintain constant endpoints for
      MS's ongoing TCP connections.

   The SIP_EYE agent can be either integrated with SIP UA or remain as a
   separate entity that interacts with SIP UA within the terminal.  The
   strength of the proposed approach is that it supports TCP without any
   modifications. Its drawbacks are reduced bandwidth efficiency due to
   IP encapsulation, and the required modification of the IP stack of
   the CH for implementing SIP_EYE.

   This document is organized as follows: Our underlying assumptions are
   summarized in Section 2. Section 3 focuses on how a tracking agent,
   i.e., SIP_EYE, and the SIP INFO method are used to support mobile TCP
   applications. The functions of SIP_EYE as well as a pseudo code for
   its realization are described in Section 4. Finally, Section 5
   concludes the document with a summary and couple of open issues for
   further study.

2. Assumptions



ITSUMO Group                                                    [Page 2]

Internet-Draft    Supporting Mobility for TCP with SIP     December 2000


   Upon attachement or a hand-off, an MS registers with the home or
   visited network according to one of the algorithms set forward in
   Section 3 of the draft, <draft-itsumo-sip-mobility-multimedia-00.txt>
   [2].

   Furthermore, in addition to the assumptions set forward in Section 2
   of the draft, <draft-itsumo-sip-mobility-multimedia-00.txt> [2], we
   also assume that:

   a. Upon successful MS reconfigurations, DHCP dynamically updates
      the domain same server (DNS) so that the address to name mapping
      for the MS is current and up-to-date [4, 5]. As we will see later,
      this dynamic updates allows setting up new TCP connections using
      current address of the MS.

   As described in Vakil, et al. [2], in detailed messages throughout
   the rest of this document we assume that

   **  Alice (sip:Alice@MS.home.com) is the mobile user who is communicating
       with Bob (sip: Bob@CH.wondernet.com),

   **  the domain name for a visited subnet within the same administrative
       domain is still "home.com",  and

   **  the domain name for a visited network within a different administrative
       domain is denoted as "visited_adm.com".


3. SIP Mobility Support for TCP

   Internet applications that require a reliable service from the
   transport mechanism, e.g., file transfer protocol (FTP), primarily
   use TCP. Thus, it is essential that the proposed approach support
   mobile TCP applications without requiring any changes to the TCP.

   The fundamental abstraction of both SIP and TCP is the connection,
   however,  they identify it differently. A call ID identifies a SIP
   session/connection, while a pair of endpoints identifies a TCP
   connection.  Each TCP endpoint is identified with a pair of integers
   (host, port) where host is IP address of the endpoint, and port is
   the TCP port on the host. However, as a MS roams, its IP address,
   i.e., the host integer of its TCP endpoint changes.  In order to
   support TCP applications properly, the proposed approach should spoof
   constant TCP endpoints despite changes in their host integers (i.e.,
   IP addresses) due to roaming of the MSs. The spoofing process is akin
   to mobile IP with route optimization [6, 7], and its underlying idea
   is that




ITSUMO Group                                                    [Page 3]

Internet-Draft    Supporting Mobility for TCP with SIP     December 2000


   ** the MS informs the corresponding TCP endpoints about its new IP
      address,

   ** the CH(CHs) binds(bind) the initial IP address of the MS with its new
      temporary (i.e., care of address) IP address, and

   ** the CH(s) uses(use) encapsulation to send the TCP packets bearing the
      initial source and destination addresses to the current address of
      the MS.

   In order to support TCP applications in a SIP environment, without
   modifying TCP, the MS should have the capability to maintain a record
   of ongoing TCP connections and their identifiers. Such a capability
   is similar to the "netsat" facility of UNIX and Windows operating
   systems and can be built around it. Thus, the terminal should have an
   agent (referred to as SIP_EYE, hereafter) that keeps the list of
   ongoing TCP connections as well as their identifiers.  The SIP_EYE is
   either integrated with the SIP UA or kept as a separate agent that
   interacts with the SIP UA as necessary. SIP_EYE operates as follows:

    i.   It examines headers of TCP packets to monitor the birth and death
         of TCP connections as well as identify their endpoints, i.e., the
         source and destination IP addresses and port numbers of these
         connections.

    ii.  It maintains a current record of the mobile's ongoing TCP
         connections' identifiers within the MS.

    iii. SIP_EYE records a state comprising 3 integers, <original MS IP
         address, current MS IP address, original CH IP address>, per TCP
         connection. The original MS IP address is the IP address of the
         MS at the beginning of the TCP session, and current MS IP address
         is the current IP address of the MS. The original CH IP address is
         the IP address of the CH at the beginning of the TCP session.

    iv.  Upon a MS's successful registration with the visited network, its
         SIP UA sends a INFO [3] message (messages) to the SIP UA(s) of
         CH(s) to request binding of the original IP address of the MS
         with its current one. The list of necessary address bindings
         are sent within the INFO message body. The definition of an INFO
         message body for carrying the address binding list is for further
         study.

    v. The CH and the MS use IP encapsulation (either within IP [8] or
       minimal [9]) to forward the TCP information to each other.

   The signaling flow for supporting mobility for TCP with SIP is shown
   in Figure 1.



ITSUMO Group                                                    [Page 4]

Internet-Draft    Supporting Mobility for TCP with SIP     December 2000


     MS                        Proxies                     CH
     |                            |                        |
     |    +------------------+    |                        |
     |----| MS Reconfigures  |    |                        |
     |    | (Figure 1,       |    |                        |
     |    |   Section 2,     |    |                        |
     |    |   Reference [3]) |    |                        |
     |    +------------------+    |                        |
     |                            |                        |
     |    +------------------+    |                        |
     |----| Exp/Comp Reg.    |    |                        |
     |    | (Figures 2/5     |    |                        |
     |    |   Section 3,     |    |                        |
     |    |   Reference [3]) |    |                        |
     |    +------------------+    |                        |
     |                            |                        |
     |            INFO            |         F1             |
     |---------------------------------------------------->|
     |                            |                        |
     |           200 OK           |         F2             |
     |<----------------------------------------------------|
     |                            |                        |

   Figure 1. Signaling flow for TCP support

*** Message Details for Figure 1

   F1 INFO MS --> CH

      INFO sip:Alice@MS.home.com SIP2/0
      Via: SIP/2.0/UDP ara.visited_adm.com:5060
      From: Alice <Alice@MS.home.com>
      To: Bob <Bob@CH.wondernet.com>
      Call-ID: 567987@ara.visited.com
      Cseq: 1 INFO
      Contact:Alice@10.15.20.25
      Content-Type:Application/binding
      Content-Length: ...

      Original-IP-Addr: 9.10.11.12
      New-IP-Addr:10.15.20.25
      .
      .

   F2 200 OK CH --> MS

      Via: SIP/2.0/UDP ara.visited_adm.com:5060
      From: Alice <Alice@MS.home.com>



ITSUMO Group                                                    [Page 5]

Internet-Draft    Supporting Mobility for TCP with SIP     December 2000


      To: Bob <Bob@CH.wondernet.com>
      Call-ID: 567987@ara.visited.com
      Cseq: 1 INFO
      Contact:Alice@10.15.20.25
      Content-Length: 0


   Although the above example shows only one ongoing TCP connection, the
   body of the INFO message can contain original endpoints of several
   TCP connections, and more address bindings.

   The key advantage of this approach is that TCP stays as is; though
   the required IP encapsulation reduces the bandwidth efficiency of the
   channel, and the realization of the SIP_EYE requires modifying the IP
   stack of the CH.

   Since the DHCP interacts with DNS to dynamically update the name to
   address and address to name mappings, new TCP connections will be
   established using the current address of the MS. Another alternative
   for name to address mapping and vice-versa is that instead of a
   dynamic DNS, one develops a new protocol that allows applications to
   use SIP registrar for name to address and address to name mappings.
   The need for such an alternative, its specifications, and its
   comparison with a dynamic DNS scheme require further study, and is
   beyond the scope of this document.

4. The SIP_EYE Agent

   The whole premise of the SIP_EYE agent is to ensure that HMMP
   supports TCP as is without any modifications to TCP. SIP_EYE is a
   simple TCP tacking/monitoring agent (similar to "netstat") with small
   footprint residing within the MSs and CHs. SIP_EYE can be either part
   of the SIP UA or be a separate entity within a MS (or CH) that
   interacts with its SIP UA as necessary. Its functions are to

   ** identify and track ongoing TCP connections of a mobile station, and

   ** maintain a list of ongoing TCP connection identifiers and their
      respective corresponding hosts so that the SIP user agent of the
      mobile sends them INFO messages to bind the original IP address of
      the mobile with its current one.


   The SIP_EYE agent tracks both the transmitted and received TCP
   packets concurrently to create and update the list of ongoing TCP
   connections in the MS. It runs two concurrent monitoring and updating
   processes, one for tracks the transmitted packets, and the other
   received ones. The role of SIP_EYE in hand-off of TCP connections has



ITSUMO Group                                                    [Page 6]

Internet-Draft    Supporting Mobility for TCP with SIP     December 2000


   already been discussed in detail. The following pseudo-code describes
   the basic TCP tracking operation of the SIP_EYE agent for the
   simplest case.


       // SA: Source address of a packet.
       // DA: Destination address of a packet.
       // SYN: Synchronization code bit
       // ACKB: Acknowledgment code bit
       // FIN: Sender end of byte stream code bit
       // SEQ: Sequence number
       // ACKN: Acknowledgement number

       // Auxiliary variables
       //  CL_ID: Connection Label ID
       //  STAT: Connection Status
       //     STATUS takes values, Setup_Req, Setup_Prog, Established,
       //     Release_Req, Release Ack, Release Accept, Disconnect)
       //
       // The TX SIP_EYE Entity.

   for (;;) {
                  Capture the header of transmitted TCP packets;
      if (SYN = 1 & ACKB = 0) {
       Add a TCP entry as follows to the temporary list of connections
            <    original mobile IP address = SA;
                 current mobile IP address = SA;
                 original corresponding IP address = DA;
                 CL_ID = SEQ;
                 STAT = Setup_Req; >
                 }
       else if (ACKB = 1 & SYN =0) {
         Get the STAT of the TCP entry,
                 < original mobile IP address = SA;
                   current mobile IP address = SA;
                   original corresponding IP address = DA;
                   CL_ID = ACKN-1;
                   STAT  =   **; >
                   if  ( STAT = Setup Prog ) Set STAT = Established;

       // A TCP connection is added to the table of ongoing connections.
                   if else (STAT = Release_Ack) {
                   Set STAT = Disconnect;
                   Remove the TCP entry from the table of ongoing connections.
                   }
                   else
                   Error!;
         }



ITSUMO Group                                                    [Page 7]

Internet-Draft    Supporting Mobility for TCP with SIP     December 2000


       else if { ACKB =1 & FIN = 1 ) {
        Reset the CL_ID and STAT of the ongoing TCP entry,
        < original mobile IP address = SA;
          current mobile IP address = current IP address of the mobile;
          original corresponding IP address = DA;
          CL_ID = ** ;
          STAT = Established; >
       to
          CL_ID = SEQ;
          STAT = Release_Req;
         }
    }



        // The RX SIP_EYE Entity. It is similar to TX entity and they
        // both run concurrently to manage a single TCP connection list.

   for(;;) {
      Capture the header of  received TCP packets;
        if (SYN = 1 & ACKB = 1) {
          Reset the STAT of the TCP entry ;
          < original mobile IP address = DA;
            current mobile IP address = DA;
            original corresponding IP address = SA;
            CL_ID = ACKN-1;
            STAT = Setup_Req; >
      to
            STAT =  Setup_prog;
            }
        else if (SYN = 0 & ACKB =1) {
          Reset the STAT of  TCP_entry;
           < original mobile IP address = DA;
             current mobile IP address = DA;
             original corresponding IP address = SA;
             CL_ID = ACKN-1;
             STAT = Release_Req; >
       to
             STAT = Release_Ack;
         }
         else if { ACKB =1 & FIN = 1) {
         Reset the STAT of TCP entry
           < original mobile IP address = DA;
             current mobile IP address = current IP address of the mobile;
             original corresponding IP address = SA;
             CL_ID = ACKN-1;
             STAT = Release_Ack; >
      to



ITSUMO Group                                                    [Page 8]

Internet-Draft    Supporting Mobility for TCP with SIP     December 2000


             STAT = Release_ACK;
          }

     }

       // Update of ongoing TCP connection list upon hand-off.
       // new  mobile IP address: The new address that has been assigned to the
       // mobile upon hand-off.

   if (hand-off) {
     while (!eof ongoing list) {
     <  original mobile IP address = original mobile IP address;
        current mobile IP address = new mobile IP address;
        original corresponding IP address = original corresponding IP address;
        CL_ID = **;
        STAT = Established;
     }



   The preceding pseudo-code describes the basic operation of SIP_EYE in
   an environment whose packet error or loss ratio is negligible and no
   connection set-up message of TCP is lost or corrupted. It shall be
   refined further so that it becomes robust enough for use in a
   wireless environment that has relatively (compared to wireline
   networks) high packet loss and error and TCP set up messages may be
   lost or corrupted.  Furthermore, the interactions of the SIP_EYE
   agent with the entities of current SIP user agent as well as its
   integration within the SIP user agent require further study.

   In practice, the SIP_EYE agent can be built around either the
   "netstat" utility of the MS operating system or an SNMP agent in the
   MS. Further study is required to select one of these alternatives for
   the realization of the SIP_EYE.

5. Summary and Open Issues

   We have proposed an approach for supporting mobile TCP applications
   in a SIP environment. The proposed approach uses a SIP_EYE tracking
   agent as well as the SIP INFO method to spoof constant endpoints for
   ongoing TCP connections. Further studies are needed to

   ** define the INFO message body for carrying address binding list, and

   ** design the SIP_EYE agent using SNMP or "netstat".

6. Acknowledgments




ITSUMO Group                                                    [Page 9]

Internet-Draft    Supporting Mobility for TCP with SIP     December 2000


   The authors wish to acknowledge the contributions of other members of
   the ITSUMO(TM) team from Telcordia (P. Agrawal, S. Das, D. Famolari,
   A. McAuley, P. Ramanathan, and R. Wolff) and Toshiba America Research
   Incorporated (T. Kodama, and Y. Ohba).

   (TM): ITSUMO (Internet Technology Supporting Universal Mobile
   Operation) is a trademark of Telcordia. It is a joint research
   project of Telcordia Technologies and Toshiba America Research Inc.
   (TARI). It envisions an end-to-end wireless/wireline IP platform for
   supporting real-time and non-real-time multimedia services in the
   future.  Its goal is to use IP and third generation wireless
   technologies to design a wireless platform that allows mobile users
   to access multimedia services on a next generation Internet. In
   Japanese, ITSUMO means anytime, always.

7. References

   1. M. Handley, H. Schulzrinne, E. Schooler, and J. Rosenberg,
      "SIP: Session Initiation Protocol", RFC 2543, March 1999.

   2. F. Vakil, A. Dutta, J-C. Chen, S. Baba, N. Nakajima, Y. Shobatake,
      and H. Schulzrinne, "Supporting Mobility for Multimedia with SIP",
      <draft-itsumo-sip- mobility-multimedia-00.txt>, work in progress,
      December 2000.

   3. S. Donovan, "The SIP INFO Method", RFC 2976, October 2000.

   4. P. Vixie, Editor, S. Thomson, Y. Rekhter, and J. Bound, "Dynamic
      Updates in the Domain Name System (DNS UPDATE)", RFC 2136,
      April 1997.

   5.  M. Stapp, and Y. Rekhter, "Interaction between DHCP and DNS",
       <draft-ietf-dhc-dhcp-dns-12.txt>, work in progress, March 2000.

   6. C. Perkins, "IP Mobility Support", RFC 2002, October 1996.

   7. C. Perkins, and D. B. Johnson, "Route Optimization in Mobile IP",
       <draft-ietf-mobileip-optim-08.txt>, February 25, 1999.

   8. C. Perkins, "IP Encapsulation within IP", RFC 2003, October 1996.

   9. C. Perkins, "Minimal Encapsulation within IP", RFC 2004, October
       1996.

8. Authors' Addresses

   Faramak Vakil
   Telcordia Technologies, Rm 1C-135B



ITSUMO Group                                                   [Page 10]

Internet-Draft    Supporting Mobility for TCP with SIP     December 2000


   445 South Street, Morristown,  NJ  07960-6438
   farm@research.telcordia.com

   Ashutosh Dutta
   Telcordia Technologies, Rm 1C-227B
   445 South Street, Morristown,  NJ  07960-6438
   adutta@research.telcordia.com

   Jyh-Cheng Chen
   Telcordia Technologies, Rm 1G-236B
   445 South Street, Morristown,  NJ  07960-6438
   jcchen@research.telcordia.com

   Miriam Tauil
   Telcordia Technologies, Rm 1E-209R
   445 South Street, Morristown,  NJ  07960-6438
   miriam@research.telcordia.com

   Shinichi Baba
   Toshiba America Research Inc. (TARI)
   P. O. BOX 136
   Convent Station, NJ 07961-0136
   sbaba@tari.toshiba.com

   Nobuyasu Nakajima
   Toshiba America Research Inc. (TARI)
   P. O. BOX 136
   Convent Station, NJ 07961-0136
   nobuyasu@tari.research.telcordia.com

   Yasuro Shobatake
   Toshiba America Research Inc. (TARI)
   P. O. BOX 136
   Convent Station, NJ 07961-0136
   yasuro.shobatake@toshiba.co.jp

   Henning Schulzrinne
   Department of Computer Science
   Columbia University
   1214 Amsterdam Avenue, MC 0401
   New York, NY, 10027
   schulzrinne@cs.coumbia.edu









ITSUMO Group                                                   [Page 11]