tcp: reno vs cubic matt kane, ryan chu. ● brief history of congestion control o reno o cubic ●...

Download TCP: Reno vs Cubic Matt Kane, Ryan Chu. ● Brief history of congestion control o reno o cubic ● Experiment description ● Results Agenda

If you can't read please download the document

Upload: ashlie-francis

Post on 18-Dec-2015

218 views

Category:

Documents


4 download

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