tcp: reno vs cubic matt kane, ryan chu. ● brief history of congestion control o reno o cubic ●...
TRANSCRIPT
- Slide 1
- TCP: Reno vs Cubic Matt Kane, Ryan Chu
- Slide 2
- Brief history of congestion control o reno o cubic Experiment description Results Agenda
- Slide 3
- In the late 80s, the internet suffered major performance issues caused by high volume of packets being sent o after a certain amount of packets offered to the network, the amount of goodput (useful packets) dropped dramatically o One internet backbone dropped from 32kbits/s to 40 bits/s Van Jacobson is said to have saved the internet from congestion collapse o Introduced congestion control principles in TCP Tahoe/Reno (1988-1990) ie congestion window Upon receiving 3 duplicate ACKS, Reno halves the congestion window, sets the slow-start threshold to the new cwnd, perform fast retransmit, entering fast recovery phase. Reno
- Slide 4
- Derived from BIC o BIC was more aggressive o BIC was more complex o BIC was not as TCP fair/friendly TCP congestion-control algorithm for high bandwidth networks with high latency The congestion window is a cubic function of time since the last congestion event Cubic
- Slide 5
- Reno vs Cubic
- Slide 6
- Upload a large file (multiple GBs) using both reno and cubic and measure the throughput. Which will have a higher throughput? Initial thought: cubic Experiment
- Slide 7
- Find out and modify Linux congestion control: /proc/sys/net/ipv4/tcp_available_congestion_control o shows all congestion control algorithms that can be used o cubic reno /proc/sys/net/ipv4/tcp_congestion_control o shows CURRENT congestion control algorithm o to change, write cubic or reno o cubic is default from version 2.6.19 NOTE: need root permission to change Linux congestion control
- Slide 8
- Changing TCP congestion control Method 1: setsockopt() Method 2: iperf -Z reno -Z cubic #include... if (setsockopt(msgsock, IPPROTO_TCP, TCP_CONGESTION, optval, optlen) < 0) { perror("setsockopt"); return 1; }
- Slide 9
- Results Trouble sending more than 1.4GB results were inconsistent Using setsockopt()
- Slide 10
- Results Using iperf
- Slide 11
- Why was there no difference in throughput? Ideas: - Is iperf actually changing the congestion control algorithm? - Network is not fast enough for cubic to make a difference - max out ~100 MB/sec Discussion
- Slide 12
- Questions