Download Network Coding and Reliable Communications Group

Survey
yes no Was this document useful for you?
   Thank you for your participation!

* Your assessment is very important for improving the workof artificial intelligence, which forms the content of this project

Document related concepts

Zero-configuration networking wikipedia , lookup

IEEE 1355 wikipedia , lookup

Deep packet inspection wikipedia , lookup

Distributed firewall wikipedia , lookup

Net bias wikipedia , lookup

Wake-on-LAN wikipedia , lookup

Network tap wikipedia , lookup

Piggybacking (Internet access) wikipedia , lookup

Computer network wikipedia , lookup

Airborne Networking wikipedia , lookup

Recursive InterNetwork Architecture (RINA) wikipedia , lookup

Internet protocol suite wikipedia , lookup

Cracking of wireless networks wikipedia , lookup

TCP congestion control wikipedia , lookup

Transcript
Network Coding and Reliable
Communications Group
Modeling Network Coded TCP Throughput:
A Simple Model and its Validation
MinJi Kim*, Muriel Médard*, João Barros‡
*Massachusetts Institute of Technology
‡University of Porto
Network Coding and Reliable
Communications Group
TCP in Wireless
• TCP: the dominant protocol in today’s network
• TCP’s 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
Network Coding and Reliable
Communications Group
Network 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 (>1) random linear
combinations of buffered packets to IP
Redundancy
factor
Network Coding and Reliable
Communications Group
Main 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.
Network Coding and Reliable
Communications Group
Example: No losses
sender
window
sender
window
TCP
p1 p2 p3
p1
p2
p3
p4 p5 p6 p7
p4
p5
p6
p7
ACK(p1)
ACK(p2)
ACK(p3)
p1 p2 p 3
p4 p 5 p6 p7
ACK(p5)
ACK(p5)
ACK(p6)
ACK(p7)
• Increment window by 1
• Sliding window
TCP/NC
Σp
Σp
Σp
Σp
Σp
Σp
Σp
SEEN(1)
SEEN(2)
SEEN(3)
SEEN(4)
SEEN(5)
SEEN(6)
SEEN(7)
When no losses, network
coding doesn’t provide benefits
(erasure correction)
Network Coding and Reliable
Communications Group
Example: Random losses (Triple-Duplicate ACKs)
sender
window
p1 p2 p3 p4
p2 p3 p4 p5
sender
window
TCP
p1
p2
p3
p4
ACK(p1)
ACK(p1)
ACK(p1)
p5
p2 p3
Window closing:
W ← W/2
p1 p2 p 3 p4
p4 p5 p6 p7
ACK(p1)
Triple-duplicate
ACKs!
• Can’t increment window by 1
• Partial sliding window
TCP/NC
Σp
Σp
Σp
Σp
Σp
Σp
Σp
Σp
p7 p8 p9 p10 p11
SEEN(1)
SEEN(2)
SEEN(3)
SEEN(4)
SEEN(5)
SEEN(6)
SEEN(7)
p8 p9 p10 p11 p12
Prevents random losses being
interpreted as congestion!
There is a lag in the “SEEN”
acks: To avoid lag, introduce
redundancy!
Network Coding and Reliable
Communications Group
Example: Congestion/Correlated losses (Time-outs)
sender
window
p1 p2 p3 p4
sender
window
TCP
p1
p2
p3
p4
p2 p3 p4 p5
p2
Window closing:
W←1
ACK(p1)
Waiting…
Time-out!
p1 p2 p 3 p4
TCP/NC
Σp
Σp
Σp
Σp
p2 p 3 p4 p5
p2
Window closing:
W←1
SEEN(1)
Waiting…
Time-out!
Still allows congestion control
while masking random losses!
Network Coding and Reliable
Communications Group
Analysis 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.
≥1/(1-p)
theoretically
4
End-to-end lossRrate
p=(1-q)
optimal, which we verify
experimentally as well.
Network Coding and Reliable
Communications Group
Analysis 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 j+r
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:
Network Coding and Reliable
Communications Group
Analysis 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)
Network Coding and Reliable
Communications Group
Simulations 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
Network Coding and Reliable
Communications Group
Throughput Gains Using TCP/NC
TCP/NC is able to
grow its throughput
and maintain high
rate despite losses.
TCP’s window size
is larger compared
to its actual
throughput – TCP
sender is waiting
for ACKs.
Network Coding and Reliable
Communications Group
Redundancy 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))
Network Coding and Reliable
Communications Group
Congestion 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!
Network Coding and Reliable
Communications Group
Conclusions
• 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.
Network Coding and Reliable
Communications Group
Extra Slides
Network Coding and Reliable
Communications Group
TCP using network coding
Redundancy
factor
•
•
Coding layer buffers packets given by TCP
For every packet coming from TCP, coding layer transmits R (>1) 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]
Network Coding and Reliable
Communications Group
TCP using Network Coding