Title: Modeling Network Coded TCP Throughput: A Simple Model and its Validation
1Modeling Network Coded TCP ThroughputA Simple
Model and its Validation
MinJi Kim, Muriel Médard, João
Barros Massachusetts Institute of
Technology University of Porto
2TCP in Wireless
- TCP the dominant protocol in todays network
- TCPs congestion control
- Designed for wireline
- Mistakes erasures/fading in wireless as
congestion, leading to performance degradation in
wireless setting - Use network coding to improve performance
Loss rate
3Network Coding with TCP (TCP/NC)
- Random linear network coding masks link losses
from TCP in order to prevent unnecessary
back-off. - Translates the losses as longer round trip time.
- ACK design that accounts for mixing (coding) of
packets with each other. - ACK every innovative linear combination, even if
it does not reveal a packet immediately. - For every packet coming from TCP, coding layer
transmits R (gt1) random linear combinations of
buffered packets to IP
Redundancy factor
4Main Idea of TCP/NC
- TCP mistakes losses as congestion Window closing
due to - Triple-duplicate ACKs.
- Time-out.
- TCP/NC substitutes the lost packets with
subsequent packets avoiding window closing.
5Example No losses
sender window
TCP
TCP/NC
sender window
p1
Sp
p1 p2 p3
p1 p2 p3
Sp
p2
ACK(p1)
SEEN(1)
Sp
p3
ACK(p2)
SEEN(2)
ACK(p3)
SEEN(3)
p4 p5 p6 p7
p4 p5 p6 p7
p4
Sp
p5
ACK(p5)
SEEN(4)
Sp
p6
ACK(p5)
SEEN(5)
Sp
p7
ACK(p6)
SEEN(6)
Sp
ACK(p7)
SEEN(7)
- Increment window by 1
- Sliding window
When no losses, network coding doesnt provide
benefits (erasure correction)
6Example Random losses (Triple-Duplicate ACKs)
sender window
TCP
TCP/NC
sender window
p1
Sp
p1 p2 p3 p4
p1 p2 p3 p4
Sp
p2
ACK(p1)
SEEN(1)
Sp
p3
p4
Sp
ACK(p1)
SEEN(2)
SEEN(3)
ACK(p1)
p4 p5 p6 p7
p2 p3 p4 p5
p5
Sp
SEEN(4)
Sp
ACK(p1)
SEEN(5)
Sp
SEEN(6)
Sp
p2 p3
SEEN(7)
Triple-duplicate ACKs!
p7 p8 p9 p10 p11
Window closingW ? W/2
p8 p9 p10 p11 p12
Prevents random losses being interpreted as
congestion!
- Cant increment window by 1
- Partial sliding window
There is a lag in the SEEN acks To avoid lag,
introduce redundancy!
7Example Congestion/Correlated losses (Time-outs)
sender window
TCP
TCP/NC
sender window
p1
Sp
p1 p2 p3 p4
p1 p2 p3 p4
Sp
p2
ACK(p1)
SEEN(1)
Sp
p3
p4
Sp
p2 p3 p4 p5
p2 p3 p4 p5
Waiting
Waiting
p2
p2
Time-out!
Time-out!
Window closingW ? 1
Window closingW ? 1
Still allows congestion control while masking
random losses!
8Analysis and Simulations
- Based on Padhye et al.s model (correlated losses
to model congestion).
Degrades super-linearly
If redundancy R appropriately chosen, scales
with window size. R 1/(1-p) theoretically
optimal, which we verify experimentally as well.
End-to-end loss rate p(1-q)4
9Analysis for TCP
- TD triple-duplicate ACKs
- TO timeout
- Each round consists of
- Sender sends packets in its cwnd
- Sender waits for ACKs
- Sender receives at least one ACK for the packets
sent
- Consider two loss (TD or TO) events e.g. round
j to round jr - Expected of successfully sent packets in those
r rounds (given p) is - Expected value of r is
- By taking into account the time-out period and
exponential back-offs
10Analysis for TCP/NC
Network coding allows out of order packets to be
delivered as consecutive degrees of freedom ?
effectively allowing Selective ACKs (SACK)
- Window progresses despite loss events
- Every round, expected window growth is
- The expected throughput is average of per round
throughput (expected window/RTT)
11Simulations using NS-2
p
assume lossless links
- Max achievable throughput (per flow) 0.5 Mbps
- Each plot/data point is averaged over 100
simulation runs, each 1000 seconds long - Erasures only at last hop, i.e. wireless
- End-to-end encoding
- There can be further throughput and energy
benefits by using re-encoding
12Throughput Gains Using TCP/NC
TCP/NC is able to grow its throughput and
maintain high rate despite losses.
TCPs window size is larger compared to its
actual throughput TCP sender is waiting for
ACKs.
13Redundancy Factor R
- p 0.0963 ? 1/(1-p) 1.107
- Throughput increases dramatically, and the
connection stabilizes when R 1.12 (which is
only 1 more than 1/(1-p))
14Congestion Control with TCP/NC
- p 0.0963, R 1.2
- Capacity 0.9 Mbps
- Two connections NC0 and NC1 share the connection
fairly (each 0.37 Mbps) - TCP/NC allows congestion control while masks
erasure!
15Conclusions
- For TCP
- random losses (e.g. wireless) have similar effect
as correlated/bursty losses, since TCP treats any
losses as congestion. - For TCP/NC
- throughput decreases proportional to loss rate
- when there are enough correlated losses, TCP/NC
would time-out and reduce rate to avoid
congestion. - Therefore, TCP/NC is able to maintain high
throughput in lossy networks making it suitable
for reliable communication in wireless networks.
16Extra Slides
17TCP using network coding
Redundancy factor
- Coding layer buffers packets given by TCP
- For every packet coming from TCP, coding layer
transmits R (gt1) random linear combinations of
buffered packets to IP - Acknowledgment ACK a packet upon seeing it (even
before it is decoded) - Can do this at intermediate nodes as well in a
daisy chain (tandem) network - Optional feature Re-encoding at intermediate
nodes. - We shall focus on no re-encoding today
end-to-end coding. Sundararajan et al. 09 10
18TCP using Network Coding