Internet DRAFT - 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
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 (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
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
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
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
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
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
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
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
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
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
6. IANA Considerations
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)",
Sundararajan, J., Shah, D., Medard, M., Jakubczak, S.,
Mitzenmacher, M., and J. Barros, "Network Coding Meets
TCP: Theory and Implementation", March 2011.
Wang & Deng Expires April 19, 2016 [Page 6]