* Your assessment is very important for improving the workof artificial intelligence, which forms the content of this project
Download Network Coding and Reliable Communications Group
Zero-configuration networking wikipedia , lookup
Deep packet inspection wikipedia , lookup
Distributed firewall 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
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