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, . 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]