Internet DRAFT - draft-wang-tsvwg-tcp-coding

draft-wang-tsvwg-tcp-coding







tsvwg                                                            J. Wang
Internet-Draft                                                   L. Deng
Intended status: Informational                              China Mobile
Expires: April 19, 2016                                 October 17, 2015


             Combining TCP with coding in wireless network
                   draft-wang-tsvwg-tcp-coding-01.txt

Abstract

   This drat discusses combining TCP with coding in wireless network.  A
   lot of factors lead to unstable air-link in wireless network, which
   causes high bit error rate and thus high packet loss.  Since packet
   loss will degrade TCP throughput and coding can erase packet loss in
   transmission, combing TCP with coding can achieve better performance.

Status of This Memo

   This Internet-Draft is submitted 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 April 19, 2016.

Copyright Notice

   Copyright (c) 2015 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
   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.



Wang & Deng              Expires April 19, 2016                 [Page 1]

Internet-Draft                                              October 2015


Table of Contents

   1.  Introduction  . . . . . . . . . . . . . . . . . . . . . . . .   2
   2.  System architecture . . . . . . . . . . . . . . . . . . . . .   3
     2.1.  Sender side algorithm . . . . . . . . . . . . . . . . . .   3
     2.2.  Coding header . . . . . . . . . . . . . . . . . . . . . .   4
     2.3.  Receiver side algorithm . . . . . . . . . . . . . . . . .   4
   3.  Interworking with standard TCP  . . . . . . . . . . . . . . .   5
   4.  Combined with ECN . . . . . . . . . . . . . . . . . . . . . .   5
   5.  Security Considerations . . . . . . . . . . . . . . . . . . .   6
   6.  IANA Considerations . . . . . . . . . . . . . . . . . . . . .   6
   7.  References  . . . . . . . . . . . . . . . . . . . . . . . . .   6
     7.1.  Normative References  . . . . . . . . . . . . . . . . . .   6
     7.2.  Informative References  . . . . . . . . . . . . . . . . .   6
   Authors' Addresses  . . . . . . . . . . . . . . . . . . . . . . .   6

1.  Introduction

   The TCP was primarily designed for the wired network.  In wired
   networks random BER (bit error rate) is negligible and congestion is
   the main cause of packet loss.  TCP reacts to any packet losses by
   dropping its transmission (congestion) window size before
   retransmitting packets, initiating congestion control or avoidance
   mechanism (e.g., slow start).  These measures result in a reduction
   in the load on the intermediate links, thereby controlling the
   congestion in the network.

   In wireless network, there are lot of factors (e.g., weather
   conditions, urban obstacles, multi-path interferences, limited
   coverage, mobility of the handset, etc.,) leading to unstable air-
   link.  As a result, wireless links exhibit much higher BERs than
   wired links.  Since all packet losses are considered as network
   congestion in standard TCP, packet loss caused by the high BER of the
   wireless link would trigger the TCP sender to reduce its sending rate
   unnecessarily.  This leads to the drastic decrease of TCP's
   throughput in the wireless network.

   Coding has emerged as an important potential approach to the
   operation of wireless networks.  The major benefit of coding stems
   from its ability to mix data, across time and across flows.  This
   makes data transmission over lossy wireless networks robust and
   effective.  By applying coding in TCP, the data are coded before
   transmission and redundancy is introduced during the coding.  As a
   result, the lost packets in the lossy wireless link can be recovered
   at the receiver side by using redundancy.  A famous coding TCP
   prototype has been introduced by MIT, which combines TCP with network
   coding and the experiments have shown that the network coding TCP can




Wang & Deng              Expires April 19, 2016                 [Page 2]

Internet-Draft                                              October 2015


   improve throughput in wireless network significantly
   [Sundararajan011].

   This document introduces a coded TCP mechanism by introducing coding
   in the TCP layer.  The coded TCP can improve data transmission in
   lossy wireless network.  Besides, it can interwork with standard TCP
   and thus allows incremental deployment.

2.  System architecture

   The coded TCP adds the data encoding and decoding to the standard
   TCP.  The operation can be divided into sender side and receiver
   side, and a coding header is introduced.

2.1.  Sender side algorithm

   o  When data arrives from the application, first divide it into
      packets where each packet is assumed to be of fixed length.  The
      length of packet is set as MSS (Max Segment Size) minus the length
      of coding header.  If the remainder of the data is not large
      enough to form a complete packet, the packet is padded with zeros
      to ensure that all packets are of the same length.  Then deliver
      the packets to encoding buffer.  The encoding buffer is used to
      encode packets.
   o  The encoding buffer consists of coding blocks where each coding
      block contains the same number of packets.  If the remainder of
      the packets is not enough to fulfill a coding block, the coding
      block is padded with zeros to ensure that all coding blocks
      contains the same number of packets.
   o  In each coding block, the original packets are encoded by using
      coding algorithm.  Many coding algorithms can be applied and RLNC
      (Random Linear Network Coding) is one of the proved algorithms
      [Sundararajan011] [Kim013].  The algorithm generates the
      combinations of the original packets (e.g., RLNC generates the
      random linear combinations of the original packets).  The number
      of the generated combinations can be greater than the number of
      the original packets and thus the redundancy is introduced.  Each
      coding block generates the same number of the combinations.  The
      coding algorithm MUST ensure that if the number of the received
      combinations is equal or exceed to the number of the original
      packets in a coding block at the receiver side, all original
      packets in this coding block can be decoded successfully.
   o  The generated combinations are delivered to the standard TCP stack
      in order to send to receiver side.  In this case, the receiver
      side receives the encoded packets (combinations) instead of the
      original packets.





Wang & Deng              Expires April 19, 2016                 [Page 3]

Internet-Draft                                              October 2015


2.2.  Coding header

   In coded TCP, a coding header is added to each generated combination.
   The coding header contains the information for the receiver side to
   decode.  Both coding header and the combination are assumed to be the
   TCP payload.  The payload is delivered to the standard TCP stack to
   send to the receiver side.

   The coding header is shown as follows:

   [block seqno, orig number, combination number, coding coefficients,
   block padding, packet padding]

   o  block seqno: indicates the sequence number of the coding block,
      where the combination is generated.
   o  orig number: the number of original packets in the coding block.
   o  combination number: the number of generated combinations in the
      coding block.
   o  coding coefficients: the coefficients of original packets involved
      in the combination.  The coding coefficients are generated by the
      coding algorithm and are used by the receiver side to decode.
   o  block padding: the number of the padding packets in the coding
      block.
   o  packet padding: the number of the padding bytes in the last non-
      padding packet in the coding block.

2.3.  Receiver side algorithm

   o  When packet arrives from the IP stack, get the coding header from
      the packet.  The receiver side records the number of received
      combinations in each coding block.  If the number of received
      combinations is less than the number of the original packets which
      is indicated in the coding header, the receiver side invokes the
      standard TCP stack to reply ack.  In this case, the original
      packets of the coding block cannot be decoded and receiver side
      needs to receive more combinations; if the number of received
      combinations is equal to the number of the original packets, the
      receiver side acknowledges that all combinations generated in the
      coding block are received.  In this case, the original packets of
      the coding block can be decoded and no need to receive more
      combinations.
   o  The received packet is kept in the decoding buffer.  In each
      coding block, if the number of the received combinations is equal
      to the number of the original packets, the received combinations
      are calculated by using coding/decoding algorithm.  The original
      packets can be decoded and sent to the application.
   o  The key point of the receiver side algorithm is that in each
      coding block it can decode the original packets and acknowledges



Wang & Deng              Expires April 19, 2016                 [Page 4]

Internet-Draft                                              October 2015


      receiving all combinations if the number of received combinations
      is equal to the number of original packets.  In this case, the
      coding can erase the packet loss in the wireless link and thus
      improve TCP throughput in the wireless network.

3.  Interworking with standard TCP

   The coded TCP transmits the combinations and cannot interwork with
   standard TCP which transmits original packets.  The coded TCP SHOULD
   be able to choice whether or not enabling coding dynamically.  If
   coding is disabled, coded TCP behaves like the standard TCP.  This
   section proposes a mechanism for coded TCP to interwork with standard
   TCP.  One bit in the reserved field of the TCP header is defined to
   identify whether transport uses the coded TCP or standard TCP.
   Setting the bit (called as coding bit) as "1" means that the
   transport uses coded TCP, otherwise the transport uses standard TCP.
   The sender and the receiver negotiate at the TCP three-way handshake
   stage when TCP connection is setting up.  The steps are illustrated
   as follows:

   o  Both sender and receiver use coded TCP: the sender sets the coding
      bit in the TCP sync message to identify that the sender supports
      coded TCP.  The receiver sets the coding bit in the TCP sync ack
      message to identify that the receiver supports coded TCP.  In this
      case, both sender and receiver know that the peer supports coded
      TCP.  Thus, the sender and receiver communicate using coded TCP.
   o  The sender uses coded TCP and the receiver uses standard TCP: the
      sender sets the coding bit in the TCP sync message to identify
      that the sender supports coded TCP.  The receiver is the standard
      TCP and replies the TCP sync ack without setting coding bit.  In
      this case, the sender knows that the peer is the standard TCP and
      thus the sender and receiver communicate using standard TCP.
   o  The sender uses standard TCP and the receiver uses coded TCP: the
      sender is the standard TCP and thus sends the TCP sync message
      without setting the coding bit.  The receiver knows that the
      sender is the standard TCP and thus communicates with sender with
      standard TCP.

4.  Combined with ECN

   The coded TCP SHOULD be combined with ECN (Explicit Congestion
   Notification).  By using ECN, the coded TCP sender can adjust
   congestion window timely when congestion occurs.








Wang & Deng              Expires April 19, 2016                 [Page 5]

Internet-Draft                                              October 2015


5.  Security Considerations

   TBA

6.  IANA Considerations

   None.

7.  References

7.1.  Normative References

   [RFC2119]  Bradner, S., "Key words for use in RFCs to Indicate
              Requirement Levels", BCP 14, RFC 2119,
              DOI 10.17487/RFC2119, March 1997,
              <http://www.rfc-editor.org/info/rfc2119>.

7.2.  Informative References

   [Kim013]   Kim, M., Cloud, J., ParandehGheibi, A., Urbina, L., Fouli,
              K., leith, D., and M. Medard, "Network Coded TCP (CTCP)",
              2013.

   [Sundararajan011]
              Sundararajan, J., Shah, D., Medard, M., Jakubczak, S.,
              Mitzenmacher, M., and J. Barros, "Network Coding Meets
              TCP: Theory and Implementation", March 2011.

Authors' Addresses

   Jinzhu Wang
   China Mobile

   Email: wangjinzhu.ietf@outlook.com


   Lingli Deng
   China Mobile

   Email: denglingli@chinamobile.com











Wang & Deng              Expires April 19, 2016                 [Page 6]