TCP CUBIC in ns-3 CS577 Brett Levasseur 12/10/2013.

Slides:



Advertisements
Similar presentations
TCP Variants.
Advertisements

Simulation-based Comparison of Tahoe, Reno, and SACK TCP Kevin Fall & Sally Floyd Presented: Heather Heiman September 10, 2002.
1 TCP Vegas: New Techniques for Congestion Detection and Avoidance Lawrence S. Brakmo Sean W. O’Malley Larry L. Peterson Department of Computer Science.
1 TCP Congestion Control. 2 TCP Segment Structure source port # dest port # 32 bits application data (variable length) sequence number acknowledgement.
Congestion Control Created by M Bateman, A Ruddle & C Allison As part of the TCP View project.
Ahmed El-Hassany CISC856: CISC 856 TCP/IP and Upper Layer Protocols Slides adopted from: Injong Rhee, Lisong Xu.
CUBIC Qian HE (Steve) CS 577 – Prof. Bob Kinicki.
Transport Layer 3-1 outline r TCP m segment structure m reliable data transfer m flow control m congestion control.
Transport Layer 3-1 Fast Retransmit r time-out period often relatively long: m long delay before resending lost packet r detect lost segments via duplicate.
Explicit Congestion Notification ECN Tilo Hamann Technical University Hamburg-Harburg, Germany.
Transport Layer 3-1 Outline r TCP m Congestion control m Flow control.
CS215 TCP Westwood Control Model Development and Stability Analysis Hu, Kunzhong Dong, Haibo Mentor: Wang, Ren Professor:
CSCE 515: Computer Network Programming Chin-Tser Huang University of South Carolina.
1 Spring Semester 2007, Dept. of Computer Science, Technion Internet Networking recitation #7 TCP New Reno Vs. Reno.
1 Internet Networking Spring 2002 Tutorial 10 TCP NewReno.
CSCE 515: Computer Network Programming Chin-Tser Huang University of South Carolina.
1 TCP Transport Control Protocol Reliable In-order delivery Flow control Responds to congestion “Nice” Protocol.
1 Chapter 3 Transport Layer. 2 Chapter 3 outline 3.1 Transport-layer services 3.2 Multiplexing and demultiplexing 3.3 Connectionless transport: UDP 3.4.
TCP Westwood (with Faster Recovery) Claudio Casetti Mario Gerla Scott Seongwook Lee Saverio.
1 Internet Networking Spring 2004 Tutorial 10 TCP NewReno.
TCP in Heterogeneous Network Md. Ehtesamul Haque # P.
1 K. Salah Module 6.1: TCP Flow and Congestion Control Connection establishment & Termination Flow Control Congestion Control QoS.
Introduction 1 Lecture 14 Transport Layer (Congestion Control) slides are modified from J. Kurose & K. Ross University of Nevada – Reno Computer Science.
Much better than the old TCP Flavours 1Rajon Bhuiyan.
Improving TCP Performance over Mobile Networks Zahra Imanimehr Rahele Salari.
Implementing High Speed TCP (aka Sally Floyd’s) Yee-Ting Li & Gareth Fairey 1 st October 2002 DataTAG CERN (Kinda!)
Principles of Congestion Control Congestion: informally: “too many sources sending too much data too fast for network to handle” different from flow control!
CSE 461 University of Washington1 Topic How TCP implements AIMD, part 1 – “Slow start” is a component of the AI portion of AIMD Slow-start.
MaxNet NetLab Presentation Hailey Lam Outline MaxNet as an alternative to TCP Linux implementation of MaxNet Demonstration of fairness, quick.
BIC Control for Fast Long-Distance Networks paper written by Injong Rhee, Lisong Xu & Khaled Harfoush (2004) Presented by Jonathan di Costanzo (2009/02/18)
Lecture 9 – More TCP & Congestion Control
Transport Layer 3-1 Chapter 3 Transport Layer Computer Networking: A Top Down Approach 6 th edition Jim Kurose, Keith Ross Addison-Wesley March
Compound TCP in NS-3 Keith Craig 1. Worcester Polytechnic Institute What is Compound TCP? As internet speeds increased, the long ‘ramp’ time of TCP Reno.
Computer Networking Lecture 18 – More TCP & Congestion Control.
Lab The network simulator ns The network simulator ns Allows us to watch evolution of parameters like cwnd and ssthresh Allows us to watch evolution of.
TCP: Transmission Control Protocol Part II : Protocol Mechanisms Computer Network System Sirak Kaewjamnong Semester 1st, 2004.
1 CS 4396 Computer Networks Lab TCP – Part II. 2 Flow Control Congestion Control Retransmission Timeout TCP:
CS640: Introduction to Computer Networks Aditya Akella Lecture 15 TCP – III Reliability and Implementation Issues.
1 Transport Control Protocol for Wireless Connections ElAarag and Bassiouni Vehicle Technology Conference 1999.
1 Computer Networks Congestion Avoidance. 2 Recall TCP Sliding Window Operation.
Janey C. Hoe Laboratory for Computer Science at MIT 노상훈, Pllab.
TCP OVER ADHOC NETWORK. TCP Basics TCP (Transmission Control Protocol) was designed to provide reliable end-to-end delivery of data over unreliable networks.
TCP Westwood: Efficient Transport for High-speed wired/wireless Networks 2008.
Computer Networks Lecture 10: Transport layer Part III
CS 6401 Congestion Control in TCP Outline Overview of RENO TCP Reacting to Congestion SS/AIMD example.
TCP Timeout and Retransmission
TCP continued. Discussion – TCP Throughput TCP will most likely generate the saw tooth type of traffic. – A rough estimate is that the congestion window.
TCP transfers over high latency/bandwidth networks & Grid DT Measurements session PFLDnet February 3- 4, 2003 CERN, Geneva, Switzerland Sylvain Ravot
Fall 2004FSU CIS 5930 Internet Protocols1 TCP – Data Exchange Reading: Section 24.4.
Recap Slow start introduced cwnd Slow start introduced cwnd Can transmit up to Can transmit up to min( cwnd, offered window ) Flow control by the sender.
Transport Layer3-1 Chapter 3 outline r 3.1 Transport-layer services r 3.2 Multiplexing and demultiplexing r 3.3 Connectionless transport: UDP r 3.4 Principles.
TCP as a Reliable Transport. How things can go wrong… Lost packets Corrupted packets Reordered packets …Malicious packets…
Transmission Control Protocol (TCP) TCP Flow Control and Congestion Control CS 60008: Internet Architecture and Protocols Department of CSE, IIT Kharagpur.
@Yuan Xue A special acknowledge goes to J.F Kurose and K.W. Ross Some of the slides used in this lecture are adapted from their.
Window Control Adjust transmission rate by changing Window Size
Chapter 3 outline 3.1 transport-layer services
CUBIC Marcos Vieira.
Introduction to Networks
COMP 431 Internet Services & Protocols
TCP Westwood(+) Protocol Implementation in ns-3
TCP - Part II Relates to Lab 5. This is an extended module that covers TCP flow control, congestion control, and error control in TCP.
So far, On the networking side, we looked at mechanisms to links hosts using direct linked networks and then forming a network of these networks. We introduced.
Congestion Control in TCP
TCP Cubic CS577 Brett Levasseur 10/1/2013.
CS4470 Computer Networking Protocols
Congestion Control in TCP
TCP flow and congestion control
TCP: Transmission Control Protocol Part II : Protocol Mechanisms
Review of Internet Protocols Transport Layer
Presentation transcript:

TCP CUBIC in ns-3 CS577 Brett Levasseur 12/10/2013

Outline Introduction CUBIC CUBIC in Linux ns-3 Implementation Results Conclusions 12/10/2013

Introduction TCP grows cwnd too slowly for large bandwidth connections New TCP Variant needed Almost 1.4 hours to take up ½ possible cwnd 1,250 byte packets ssthresh ~ 8000 bytes 100ms RTT 12/10/2013

CUBIC BIC was first attempt CUBIC simplified and improved upon BIC Grow cwnd slower around loss events 12/10/2013

CUBIC Basics cwnd growth Packet loss C CUBIC parameter t Elapsed time from the last window reduction K Time period to increase W to Wmax W Current cwnd Wmax cwnd at last window reduction β Window decrease constant 12/10/2013

CUBIC Basics At loss event set Wmax, reduce cwnd by β and calculate K W(t=0) At loss event set Wmax, reduce cwnd by β and calculate K 12/10/2013

CUBIC Basics cwnd grows back to K when t = K K W(t=K) W(t=2) W(t=1) 12/10/2013

CUBIC in Linux Not implemented as in the CUBIC paper cwnd grows in increments of segment sizes Custom method for calculating cube roots Checks for error conditions Unit scaling 12/10/2013

Growing cwnd Linux only grows cwnd by full segments CUBIC can grow cwnd less than full segment Same impact by increasing amount of time between updates 1 0.25 2 0.5 3 0.75 4 4 1 12/10/2013

Scaling in CUBIC Most scaling is related to time Variable ‘t’ measured with TCP timestamps Timestamps use clock cycles to increment Units are called jiffies in the Linux Kernel Number of milliseconds in a jiffy depends on the CPU’s clock Scaling required to get time units correct 12/10/2013

ns-3 Implementation Object oriented design Generic TCP defined TCP variants are extended from base TCP headers and buffers provided Added TcpCubic object tcp-cubic.cc tcp-cubic.h 12/10/2013

ns-3 Methods NewAck – called for every new ACK received Normal cwnd updates in slow start CUBIC updates otherwise DupAck – called for every duplicate ACK received Normal operation when < 3 duplicates For 3 duplicate ACKs reduce cwnd 12/10/2013

CUBIC Methods CubicRoot – Find the cubic root of a number Based on Linux Kernel implementation CubicUpdate – Calculate the cwnd target for CUBIC CubicTcpFriendliness – Change the cwnd target for TCP Friendliness CubicReset – Reset CUBIC parameters 12/10/2013

Recommended cwnd growth CUBIC Flow NewAck CubicUpdate CubicRoot CubicTcp Friendliness If outside slow start Set K for loss event Check TCP Friendliness Recommended cwnd growth 12/10/2013

Issues ns-3 does not have TCP timestamps Simulation clock used instead Requires adjustments to calculating ‘t’ due to different units Could remove the use of jiffy code but much of the Linux implementation relies on scaling factors based on the system clock 12/10/2013

Results Compare to real world CUBIC example Examine simulation results Verify cwnd reduction Verify cwnd growth in relation to Wmax Compare simulated CUBIC to simulated NewReno 12/10/2013

Simulation Scenario Simple sender and sink topology Packet sizes 536 bytes Transmission rate 1Mbps Delay 40ms Error rate – Causes lost packets at the receiver 12/10/2013

Measurements Measurement and simulation have similar CUBIC curve Number of segments similar 12/10/2013

Packet Loss Before loss cwnd = 216 After loss cwnd = 172 β = 819 BICTCP_BETA_SCALE = 1024 12/10/2013

CUBIC Growth Before and after additional scaling of ‘t’ convex concave & convex concave Before and after additional scaling of ‘t’ More work is needed for using simulator clock with ‘t’ 12/10/2013

NewReno Comparison Same simulation run with CUBIC and NewReno Both increment the same under slow start CUBIC grows cwnd faster CUBIC handles packet loss better than NewReno 12/10/2013

Conclusions Created a CUBIC implementation in ns-3 Similar cwnd growth to actual CUBIC measurements Current version outperforms NewReno Scaling adjustments required 12/10/2013

Questions 12/10/2013