Internet DRAFT - draft-li-tsvwg-tcp-service-migration

draft-li-tsvwg-tcp-service-migration






Internet Engineering Task Force                                    C. Li
Internet-Draft                                                      UCLA
Intended status: Informational                                     B. Li
Expires: May 9, 2013                                             C. Peng
                                                                W. Zhang
                                                                  Huawei
                                                                   S. Lu
                                                                    UCLA
                                                        November 5, 2012


   A TCP Service Migration Protocol for Single User multiple Devices
                draft-li-tsvwg-tcp-service-migration-00

Abstract

   This document describes a new transport protocol TSMP, which seeks to
   support data transfer for the emerging usage paradigm of "single
   user, multiple device" in a TCP compatible manner.  Through its novel
   proxy-based design, TSMP is able to retain the current client and
   server protocol operations of the legacy TCP protocol and TCP-based
   applications while placing new functions at the proxy.

Status of this Memo

   This Internet-Draft is submitted to IETF in full conformance with the
   provisions of BCP 78 and BCP 79.

   Internet-Drafts are working documents of the Internet Engineering
   Task Force (IETF).  Note that other groups may also distribute
   working documents as Internet-Drafts.  The list of current Internet-
   Drafts is at http://datatracker.ietf.org/drafts/current/.

   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."

   This Internet-Draft will expire on May 9, 2013.

Copyright Notice

   Copyright (c) 2012 IETF Trust and the persons identified as the
   document authors.  All rights reserved.

   This document is subject to BCP 78 and the IETF Trust's Legal
   Provisions Relating to IETF Documents
   (http://trustee.ietf.org/license-info) in effect on the date of



Li, et al.                 Expires May 9, 2013                  [Page 1]

Internet-Draft       TCP Service Migration for SUMD        November 2012


   publication of this document.  Please review these documents
   carefully, as they describe your rights and restrictions with respect
   to this document.  Code Components extracted from this document must
   include Simplified BSD License text as described in Section 4.e of
   the Trust Legal Provisions and are provided without warranty as
   described in the Simplified BSD License.


Table of Contents

   1.  Introduction  . . . . . . . . . . . . . . . . . . . . . . . . . 3
   2.  Terminology . . . . . . . . . . . . . . . . . . . . . . . . . . 3
   3.  Single User Multiple Devices  . . . . . . . . . . . . . . . . . 4
     3.1.  An Example Scenario . . . . . . . . . . . . . . . . . . . . 4
     3.2.  System Requirements . . . . . . . . . . . . . . . . . . . . 5
   4.  TCP Service Migration Protocol  . . . . . . . . . . . . . . . . 5
     4.1.  Architecture  . . . . . . . . . . . . . . . . . . . . . . . 6
     4.2.  Proxy-based Solution  . . . . . . . . . . . . . . . . . . . 6
       4.2.1.  Control Plane . . . . . . . . . . . . . . . . . . . . . 6
       4.2.2.  Data Plane  . . . . . . . . . . . . . . . . . . . . . . 7
     4.3.  TCP Migration . . . . . . . . . . . . . . . . . . . . . . . 7
       4.3.1.  Transient Pause Phase . . . . . . . . . . . . . . . . . 7
       4.3.2.  Resumption Phase  . . . . . . . . . . . . . . . . . . . 8
   5.  IANA Considerations . . . . . . . . . . . . . . . . . . . . . . 9
   6.  Security Considerations . . . . . . . . . . . . . . . . . . . . 9
   7.  Informative References  . . . . . . . . . . . . . . . . . . . . 9
   Authors' Addresses  . . . . . . . . . . . . . . . . . . . . . . . . 9
























Li, et al.                 Expires May 9, 2013                  [Page 2]

Internet-Draft       TCP Service Migration for SUMD        November 2012


1.  Introduction

   In this document, we design protocol solutions to an emerging usage
   scenario of "single user, multiple devices."  In recent years, it has
   become increasingly popular that a user owns multiple devices with
   networking capabilities.  In an example scenario, a user has a laptop
   in the office, a desktop at home, while carrying an iPhone or iPad
   wherever (s)he goes.  This emerging single-user, multi-device setting
   opens new venue for networking protocol design and operations.

   TCP has been the dominant transport protocol for most Internet
   applications, and many popular applications such as web-based video
   streaming, and Instant messaging (e.g., MSN) are based on its
   operation.  In the single-user, multiple-device context, there are
   two main design challenges.  First, the protocol operations should
   support TCP-based data transfer among multiple devices of the same
   user.  TCP sessions should seamlessly migrate among the devices owned
   by the same user.  For example, a user uses instant messaging or
   video streaming on his laptop when he is in his office.  When he
   walks out for lunch, he proceeds the ongoing messaging or video
   session via his iPhone or iPad.  Second, users can continue to run
   the legacy TCP and applications with minimal changes at both sides of
   the client and the server while supporting the notion of single-user,
   multiple-device during data communication.  This will enable reuse of
   most existing Internet applications.  Existing protocols can achieve
   one of these two goals, but not both.

   In this document, we describe a novel solution, called TCP Service
   Migration Protocol (TSMP), which supports "single-user, multi-device"
   TCP communications.  The TCP connection is associated with the user
   and can seamlessly migrate among devices belonging to the same user.
   A key innovation in TSMP is the proxy bridging the client and the
   server in the current client-server communication model.  The proxy
   offers two critical services of naming and TCP control/data plane
   functions.  By carefully designing the proxy, TSMP is able to reuse
   existing TCP and TCP-based applications at both the client and the
   server without changes.


2.  Terminology

   This document uses the following terms to refer to the entities or
   functions that are required in service migration protocol.  Readers
   are expected to be familiar with RFC 3753 "Mobility Related
   Terminology" [RFC3753].






Li, et al.                 Expires May 9, 2013                  [Page 3]

Internet-Draft       TCP Service Migration for SUMD        November 2012


   Instant Messaging (IM):  A form of real-time, direct, text-based
      chatting communication between two or more people.

   TCP Service Migration Protocol (TSMP):  A protocol that can be used
      to migrate an ongoing TCP service from one device to another.
      Both devices belong to the same owner.

   TCP Service Migration Protocol Server (TSMPS):  A system that
      maintains a global namespace, and performs namespace management
      and namespace resolution.

   TCP Service Migration Protocol Proxy (TSMPP):  A system that is
      interposed between the server and the client to support TSMP via
      coordinating control signaling and forwarding data.

   TCP Service Migration Protocol Application (TSMPA):  An application
      that is installed on each TSMP-enabled device.

   Migration From Request (MFR):  A control message that is used to
      issue the request of service migration by the originator device.

   Migration To Request (MTR):  A control message that is used to inform
      the target device regarding the request of service migration.


3.  Single User Multiple Devices

   This section illustrates an example scenario of single-user, multi-
   device, the requirements for our design, and the applications to
   which our protocol can be applied.

3.1.  An Example Scenario

   Bob has three networking devices: PC at home, Laptop in the office,
   and Smartphone that he uses while roaming.  He chats with his friend,
   Alice, over an IM application using his smartphone while he is on his
   way back home.  Meanwhile, Alice wants to share video clips with Bob
   using HTTP streaming from her web server running on her PC.  After
   arriving at home, Bob switches both the IM session and the HTTP
   progressive downloading of the remaining videos to his home PC
   because of its larger screen size and network bandwidth.  Bob then
   chats with Alice and watches the latter part of the video on his PC.
   Moreover, the service migration among Bob's devices is transparent to
   Alice.







Li, et al.                 Expires May 9, 2013                  [Page 4]

Internet-Draft       TCP Service Migration for SUMD        November 2012


3.2.  System Requirements

   In the above scenario, we need to address the following two issues.

   o  How to keep the intended connection open during migration and
      prevent the end that is not involved from perceiving the
      migration?

   o  How to transfer TCP connection states from one device to another
      and make the overhead incur as little impact as possible on the
      connection?

   The system needs to consider both control and data planes to support
   service migration.  The control plane is used to coordinate the
   operation of service migration, including triggering the migration
   process, discovering the device to which the service is migrated, and
   informing the new device to accept the migration.  During service
   migration, the data plane should be able to cache the transient
   packets that have been sent by the sender but have not been
   acknowledged, and make these packets as few as possible to reduce
   potential overhead.  Once the migration is completed, it sends all
   cached packets to the new receiver and resumes the original TCP
   connection.  Another important task is to avoid retransmission
   timeout to retain the same value of Congestion_Threshold.  Service
   migration may happen from one device with low bandwidth to another
   with high bandwidth or from the latter to the former.  In the former
   case, we need to make the Congestion_Threshold value as large as
   possible so that the sender's Congestion_Window grows quickly with
   the slow-start algorithm, to reach the appropriate size associated
   with the larger bandwidth setting.  If the Congestion_Threshold value
   becomes too small, the size of Congestion_Window would increase very
   slowly because it increases linearly with the additive increase/
   multiplicative decrease mechanism once exceeding the threshold.
   However, the Congestion_Threshold cannot increase without data
   transmission; therefore, a feasible option is to retain the same
   value of Congestion_Threshold.  As for the latter case, the
   Congestion_Window can shrink quickly to the appropriate size due to
   the multiplicative decrease mechanism.


4.  TCP Service Migration Protocol

   In this section, we first present the protocol architecture, and then
   describe our proxy-based solution to TCP migration.







Li, et al.                 Expires May 9, 2013                  [Page 5]

Internet-Draft       TCP Service Migration for SUMD        November 2012


4.1.  Architecture

   We employed a proxy-based solution to achieving TCP service
   migration.  As shown in Figure 1, the TSMP architecture is composed
   of three main components: TSMP Proxy (TSMPP), TSMP Server (TSMPS),
   and TSMP Application (TSMPA).  TSMPP is interposed between the client
   and the server to relay packets from either side to the other and
   mediate the sub-connections of each TCP connection.  To avoid
   modification of the existing systems and applications, it
   collaborates with TSMPS and TSMPA to support the service migration
   process.  TSMPA provides users an interface to make use of the TSMP
   service.  It offers a channel for TSMPP to interact with the TCP-
   based applications at devices.  TSMPS provides the service of DNS-
   like name resolution and enables the proxy to locate devices.


     +------------------------+       +------------------------------+
     |       TSMP Server      |       |      TSMP-enable Device      |
     | +--------------------+ |       | +--------------------------+ |
     | |     Resolution     | |       | |     TSMP Application     | |
     | |   Service Module   | |       | | +----------------------+ | |
     | +----------+---------+ |   +---+-+-|  TSMP Service Module | | |
     +------------+-----------+   |   | | +-----------+----------+ | |
                  |  +------------+   | +-------------+------------+ |
     +------------+--+-----------+    |               |              |
     | TSMP  +----+--+-+ +------+|    | +-------------+------------+ |
     | Proxy | Control | | Data ++----+-|  TCP-based Applications  | |
     |       |  Plane  | | Plane||    | +--------------------------+ |
     |       +---------+ +------+|    |                              |
     +---------------------------+    +------------------------------+



                       Figure 1: TSMP Architecture.

4.2.  Proxy-based Solution

   TSMPP consists of both the control plane and the data plane.  The
   former coordinates the service migration process.  The latter
   forwards packets between two ends, and emulates as a TCP sender to
   set up a new sub-connection to the new receiver upon TCP migration
   request.

4.2.1.  Control Plane

   The control plane coordinates the operation of service migration
   using two control messages: Migration From Request (MFR) and
   Migration To Request (MTR).  MFR is always sent by TSMPA to request



Li, et al.                 Expires May 9, 2013                  [Page 6]

Internet-Draft       TCP Service Migration for SUMD        November 2012


   TSMPP to migrate a TCP connection from the device where it resides to
   another device.  It includes both the identity of the intended device
   and the information of the migrated connection so that TSMPP can
   resolve the device's IP address by querying TSMPS and identify the
   connection.  The other control message, MTR, is used by TSMPP to let
   TSMPA invoke its local application and set up a connection to TSMPP.
   TSMPP then hooks up this new sub-connection to the old sub-connection
   of the other end, thus recovering the migrated TCP connection.

4.2.2.  Data Plane

   TSMPP bridges between the two ends for each TCP connection by
   forwarding packets from one end to the other.  Each connection is
   divided into two sub-connections that are glued by a mapping table in
   TSMPP.  The mapping entry of a connection contains two-tuple of each
   end: IP address and port number.  When TSMPP receives packets from
   one end's sub-connection, it replaces the source and destination
   information with the TSMPP address and the other end's address,
   respectively, and then forwards them to the other sub-connection.

4.3.  TCP Migration

   When TSMPP receives a MFR request, it starts the migration process of
   the requested TCP connection.  The main concept is that, it
   temporarily halts the TCP flow until the connection between the new
   device and TSMPP is established, and then resumes it.  The process
   hence consists of two phases: transient pause phase and resumption
   phase.  The pause phase freezes the sending process, caches all
   outstanding packets that have not be forwarded by TSMPP, and keeps
   the value of Congestion_Threshold unchanged to prevent unnecessary
   congestion control invocations at the sender.  The goal of the former
   two actions is to minimize transient loss and keep the connection
   open, whereas the last action seeks to decrease the overhead of
   increasing Congestion_Window to the appropriate size of the new sub-
   connection after the migration completes.  In the resumption phase,
   TSMPP emulates a TCP end to set up a connection to the new device,
   flushes the cached packets to it, and then recovers the sending
   process.  After the connection is resumed, TSMPP continues the
   forwarding process and the old sub-connection is halted.

4.3.1.  Transient Pause Phase

   This phase is launched once MFR is received by TSMPP.  It does not
   end until the migration is complete.  It is mainly composed of three
   tasks: advertising the size of the receiver's window to be zero,
   stopping forwarding data packets but caching all of them, and
   responding to the zero-window probing.




Li, et al.                 Expires May 9, 2013                  [Page 7]

Internet-Draft       TCP Service Migration for SUMD        November 2012


   In the TCP flow control mechanism, the receiver can advertise its
   window with the size zero to stop the sender from sending data.

   The sender does not resume sending until the advertised window is
   larger than zero.  We leverage this feature to stop the sending
   process by resetting the window size of the TCP headers to be zero in
   the ACK packets that are forwarded once this phase begins.  TSMPP
   keeps on forwarding the ACK packets that acknowledge the data packets
   it has forwarded to the old receiver before this phase.  The sender
   thus halts its sending process, and does the zero-window probing by
   sending at least one octet of new data periodically.  Its purpose is
   to attempt recovery and ensure that re-opening of the window can be
   reliably reported.  During the migration period, TSMPP should
   generate and send an ACK packet, which shows the next expected
   sequence number and zero window size, in response to each probe
   segment.  Therefore, the TCP sender would allow the connection to
   stay open and temporarily freeze the sending process without
   shrinking the value of Congestion_Threshold.  We can use the maximum
   sequence number of the cached packets plus one to be the expected
   sequence number.

   Another task for this phase is to cache the transient packets that
   have not been forwarded.  TSMPP starts to cache data packets and
   stops forwarding them once this phase begins.  These cached data
   packets have been sent out by the sender so that the retransmission
   timeout would be triggered if they were not acknowledged.
   Accordingly, TSMPP needs to generate and send their ACK packets to
   the sender in advance on behalf of the new receiver.  These ACKs
   should also contain the same information of the expected sequence
   number and the window size.  TSMPP needs to ensure that it caches the
   data segments with all the sequence numbers between the expected
   sequence number and the acknowledge number of the last ACK packet
   that the old receiver sends.  There may be a case that the old
   receiver does not acknowledge all its received packets before tearing
   down its connection.  However, these packets would not be cached by
   TSMPP because they have been forwarded.  Intuitively, TSMPP can just
   send ACKs to trigger retransmission at the sender and cache them, but
   the side effect is that Congestion_Threshold will be reduced.  We may
   enable TSMPP to cache a certain amount of packets to handle this case
   no matter whether it is in the migration state or not.  If there are
   still missing packets, relying on the retransmission would not be
   avoided.  We can estimate the cache size based on half of the RTT
   between the sender and the receiver.

4.3.2.  Resumption Phase

   When the new device requests for a new connection due to its TSMPA's
   invocation, the resumption phase begins.  TSMPP emulates a TCP end to



Li, et al.                 Expires May 9, 2013                  [Page 8]

Internet-Draft       TCP Service Migration for SUMD        November 2012


   conduct three-way handshaking with the device, and starts to send its
   cached packets to it.  As a TCP sender, TSMPP maintains some
   connection states: Congestion_Window, and Congestion_Threshold, etc.
   It uses the slow-start algorithm when the sending process is
   initialized or the connection times out, and employs the AIMD
   algorithm after Congestion_Window reaches Congestion_Threshold.
   TSMPP does not forward their ACK packets to the sender.  After all
   cached packets are acknowledged, TSMPP resumes the sender's sending
   process by forwarding the new receiver's last ACK it receives.  The
   transmission is thus recovered due to the last ACK with a non-zero
   receive window.  TSMPP then returns to the normal forwarding phase,
   and discards the emulated TCP states.  An issue we need to address is
   that the initial sequence number that is chosen at random may result
   in different sequence number systems between the old sub-connection
   and the new sub-connection.  For this reason, TSMPP should add the
   mapping information of their sequence numbers into the mapping entry
   of this connection, and modify each packet's sequence number before
   forwarding it.


5.  IANA Considerations

   This memo includes no request to IANA.


6.  Security Considerations

   The security aspects of the proxy-based applications also apply to
   this memo.  TBC.


7.  Informative References

   [RFC3753]  Manner, J. and M. Kojo, "Mobility Related Terminology",
              June 2004, <RFC 3753>.


Authors' Addresses

   Chi-Yu Li
   UCLA
   4681 Boelter Hall
   Los Angeles, CA  90095
   USA

   Phone: +1 323 528 1039
   Email: lichiyu@cs.ucla.edu




Li, et al.                 Expires May 9, 2013                  [Page 9]

Internet-Draft       TCP Service Migration for SUMD        November 2012


   Bojie Li
   Huawei
   Shenzhen,
   P.R.C.

   Phone: +86 755 2878 0808
   Email: libojie@huawei.com


   Chenghui Peng
   Huawei
   Shenzhen,
   P.R.C.

   Phone: +86 755 2878 0808
   Email: pengchenghui@huawei.com


   Wei Zhang
   Huawei
   Shenzhen,
   P.R.C.

   Phone: +86 755 2878 0808
   Email: wendy.zhangwei@huawei.com


   Songwu Lu
   UCLA
   4731C Boelter Hall
   Los Angeles, CA  90095
   USA

   Phone: +1 310 794 9289
   Email: slu@cs.ucla.edu
















Li, et al.                 Expires May 9, 2013                 [Page 10]