TCP Westwood(+) Protocol Implementation in ns-3

Slides:



Advertisements
Similar presentations
Michele Pagano – A Survey on TCP Performance Evaluation and Modeling 1 Department of Information Engineering University of Pisa Network Telecomunication.
Advertisements

CSCI-1680 Transport Layer II Based partly on lecture notes by David Mazières, Phil Levis, John Jannotti Rodrigo Fonseca.
TCP Variants.
Simulation-based Comparison of Tahoe, Reno, and SACK TCP Kevin Fall & Sally Floyd Presented: Heather Heiman September 10, 2002.
Different TCP Flavors CSCI 780, Fall TCP Congestion Control Slow-start Congestion Avoidance Congestion Recovery Tahoe, Reno, New-Reno SACK.
1 Transport Protocols & TCP CSE 3213 Fall April 2015.
TCP: Transmission Control Protocol Overview Connection set-up and termination Interactive Bulk transfer Timers Improvements.
1 End to End Bandwidth Estimation in TCP to improve Wireless Link Utilization S. Mascolo, A.Grieco, G.Pau, M.Gerla, C.Casetti Presented by Abhijit Pandey.
Computer Networks: TCP Congestion Control 1 TCP Congestion Control Lecture material taken from “Computer Networks A Systems Approach”, Fourth Edition,Peterson.
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.
CS215 TCP Westwood Control Model Development and Stability Analysis Hu, Kunzhong Dong, Haibo Mentor: Wang, Ren Professor:
Computer Networks: TCP Congestion Control 1 TCP Congestion Control Lecture material taken from “Computer Networks A Systems Approach”, Third Ed.,Peterson.
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.
Computer Networks : TCP Congestion Control1 TCP Congestion Control.
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.
Transport: TCP Manpreet Singh (Slides borrowed from various sources on the web)
1 Internet Networking Spring 2004 Tutorial 10 TCP NewReno.
Networks : TCP Congestion Control1 TCP Congestion Control.
Networks : TCP Congestion Control1 TCP Congestion Control Presented by Bob Kinicki.
TCP in Heterogeneous Network Md. Ehtesamul Haque # P.
Advanced Computer Networks: TCP Congestion Control 1 TCP Congestion Control Lecture material taken from “Computer Networks A Systems Approach”, Fourth.
CMPE 257 Spring CMPE 257: Wireless and Mobile Networking Spring 2005 E2E Protocols (point-to-point)
Introduction 1 Lecture 14 Transport Layer (Congestion Control) slides are modified from J. Kurose & K. Ross University of Nevada – Reno Computer Science.
COMT 4291 Communications Protocols and TCP/IP COMT 429.
Principles of Congestion Control Congestion: informally: “too many sources sending too much data too fast for network to handle” different from flow control!
CSE679: Computer Network Review r Review of the uncounted quiz r Computer network review.
TCP CUBIC in ns-3 CS577 Brett Levasseur 12/10/2013.
TCP Westwood: Efficient Transport for High-speed wired/wireless Networks 2009.
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
CS640: Introduction to Computer Networks Aditya Akella Lecture 15 TCP – III Reliability and Implementation Issues.
Computer Networking Lecture 18 – More TCP & Congestion Control.
1 CS 4396 Computer Networks Lab TCP – Part II. 2 Flow Control Congestion Control Retransmission Timeout TCP:
1 Sonia FahmyPurdue University TCP Congestion Control Sonia Fahmy Department of Computer Sciences Purdue University
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.
TCP OVER ADHOC NETWORK. TCP Basics TCP (Transmission Control Protocol) was designed to provide reliable end-to-end delivery of data over unreliable networks.
Internet Networking recitation #11
TCP Westwood: Efficient Transport for High-speed wired/wireless Networks 2008.
Fall 2004FSU CIS 5930 Internet Protocols1 TCP – Data Exchange Reading: Section 24.4.
CIS679: TCP and Multimedia r Review of last lecture r TCP and Multimedia.
 Last Class  Resource Allocation  This Class  Chapter 6.3. ~ 6.4.  TCP congestion control.
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.
TCP over Wireless PROF. MICHAEL TSAI 2016/6/3. TCP Congestion Control (TCP Tahoe) Only ACK correctly received packets Congestion Window Size: Maximum.
Sandeep Kakumanu Smita Vemulapalli Gnan
Window Control Adjust transmission rate by changing Window Size
DMET 602: Networks and Media Lab
TCP - Part II Relates to Lab 5. This is an extended module that covers TCP flow control, congestion control, and error control in TCP.
CS450 – Introduction to Networking Lecture 19 – Congestion Control (2)
Transport Layer CS 381 3/7/2017.
Chapter 3 outline 3.1 transport-layer services
Introduction to Networks
COMP 431 Internet Services & Protocols
Introduction to Congestion Control
Transmission Control Protocol (TCP)
Hojun Lee TCP enhancements Hojun Lee 11/8/2018.
Chapter 5 TCP Transmission Control
TCP - Part II Relates to Lab 5. This is an extended module that covers TCP flow control, congestion control, and error control in TCP.
Lecture 19 – TCP Performance
PUSH Flag A notification from the sender to the receiver to pass all the data the receiver has to the receiving application. Some implementations of TCP.
CS640: Introduction to Computer Networks
EE 122: Congestion Control The Sequel
Computer Science Division
Transport Layer: Congestion Control
TCP flow and congestion control
Presentation transcript:

TCP Westwood(+) Protocol Implementation in ns-3 Authors: Siddharth Fangadhar, Truc Anh N. Nguyenm Greeshma Umapathi, and James P.G. Sterbenz CS577 Brett Levasseur 10/1/2013

Outline Introduction TCP Variations ns-3 TCP Implementation ns-3 Westwood Implementation Evaluation Conclusions Remarks Questions 10/1/2013

Introduction ns-3 is a packet network simulator Successor to ns-2 Improved design, better wireless support Used by researchers around the world Has TCP implementation Lacks modern TCP variants Tahoe, Reno, NewReno Authors present Westwood(+) for ns-3 10/1/2013

TCP Tahoe Terms TCP States cwnd: Congestion Window ssthresh: Slow Start Threshold TCP States Slow-start: cwnd exponential increase Congestion Avoidance: cwnd linear increase Fast Retransmit: Half ssthresh, reset cwnd to 1 Timeouts and duplicate ACKs (DUPACK) considered congestion 10/1/2013

TCP Tahoe Congestion avoidance Timeout or 3 DUPACK ssthresh Slow start 11/7/2018

TCP Reno Tahoe vs Reno Fast Recovery Tahoe: 3 DUPACKs move to fast retransmit Reno: 3 DUPACKs half ssthresh and cwnd, move to fast recovery Fast Recovery Retransmit missing packet Wait for ACK before congestion avoidance 10/1/2013

TCP Reno Timeout or 3 DUPACK Congestion avoidance ssthresh Slow start 11/7/2018

TCP NewReno Adds partial and full ACKs Partial ACK remain in fast recovery Full ACK continues congestion avoidance Transmission Window 1 2 3 4 5 6 7 8 9 Partial ACK = 4, 6, 8 Full ACK = 9 10/1/2013

TCP Packet Corruption Lost packets considered congestion Wireless has bursty errors High wireless bit error rate confused as congestion TCP lowers cwnd needlessly Wireless loss 11/7/2018

TCP Westwood Made for wireless networks Estimates bandwidth Set cwnd based on estimate Set ssthresh based on estimate Rate of ACK and DUPACK arrivals used BWE ˆb BWA b Weight a = 0.9 Time k 10/1/2013

TCP Westwood+ ACK compression hurts Westwood estimation Westwood+ compensates Samples every RTT instead of every ACK Flow 1 ACK ACK ACK Data ACK Data ACK ACK Data Flow 2 10/1/2013

TCP in ns-3 Object oriented design Generic TCP defined TCP variants are extended from base TCP headers and buffers provided Contribution 11/7/2018

Global Variables m_cWnd Congestion window m_ssThresh Slow start threshold m_initialCWnd Initial value of m_cWnd m_inFastRec Fast recovery flag m_prevAckNo Last received ACK m_accountedFor Track number of DUPACKs during loss m_lastAck Arrival time of previous ACK m_currentBW Current bandwidth estimate m_minRTT Minimum round trip time m_lastBW Last bandwidth estimate m_lastSampleBW Total measured bandwidth m_ackedSegments Total ACKed segments for current RTT m_IsCount Flag to count for m_ackedSegments m_bwEstimateEvent Bandwidth sampling event 10/1/2013

Execution ACK arrives at sender ACKs counted Bandwidth is estimated Immediate in Westwood After RTT timeout in + Optional use of Tustin filter (user choice) Off: Measured BW On: Estimate BW 11/7/2018

Count ACK Need total number of bytes sent Count TCP segments received cumul_ack = Current ACK number – m_prevAckNo m_prevAckNo = 6 cumul_ack = 10 - 6 4 Packets received ACK = 10 10/1/2013

Count ACK Take DUPACKs into account If cumul_ack = 0 then current ACK is a duplicate Else check m_accountedFor for number of DUPACKs m_prevAckNo = 6 cumul_ack = 6 - 6 DUPACK ACK = 6 m_prevAckNo = 6 cumul_ack = 9 - 6 m_accountedFor = 1 ACKed 3 > 1 DUPACK 3 – 1 = 2 received m_prevAckNo = 6 cumul_ack = 7 - 6 m_accountedFor = 2 ACKed 1 < 2 DUPACK cumul_ack = 1 ACK = 9 ACK = 7 10/1/2013

Estimate Bandwidth Westwood Westwood+ Bytes since last ACK Time since last ACK Last known RTT 10/1/2013

Tustin Filtering Off – Measure bandwidth assumed current On – Estimate current bandwidth w1 w2 10/1/2013

Tustin Filtering ? w1 w2 From ns-3 source code (version 3.18): (alpha * m_lastBW) + ((1 - alpha) * ((sample_bwe + m_lastSampleBW) / 2)); w1 w2 Source code and Westwood equation use addition Equation 4 uses multiplication so probably a typo 10/1/2013

Westwood Cont For new ACK adjust variables same as Reno After receiving set number of DUPACKs Adjust slow start threshold If retransmit timeout Adjust slow start threshold the same as previous Cwnd set to one TCP segment size If m_cWnd > m_ssThresh Then m_cWnd = m_ssThresh 10/1/2013

Westwood Evaluation Simulate original TCP Westwood study Wireless Link 10/1/2013

Packet Error Rate Westwood samples bandwidth on every ACK Westwood+ samples every RTT Westwood+ takes longer to stabilize As error rate increases Westwood+ performs worse 10/1/2013

Packet Error Rate ns-3 Simulation Westwood Paper Authors claim this is validation of their work 10/1/2013

Bottleneck Delay PER = 0.005 Westwood(+) attempt to fill the pipe Other variants conservative 10/1/2013

Bottleneck Delay ns-3 Simulation Westwood Paper TCP Reno appears to behave differently in ns-3 vs ns-2 10/1/2013

Bottleneck Bandwidth PER = 0.005 Delay = 0.01ms Westwood(+) attempt to fill the pipe Other variants conservative 10/1/2013

Bottleneck Bandwidth ns-3 Simulation Westwood Paper 10/1/2013

Delayed ACK Delayed ACK Timeout = 200ms Westwood and Westwood+ perform better than Reno when ACKs are delayed. They have a higher average throughput and less variance than Reno. Delayed ACK Timeout = 200ms 11/7/2018

MTU Size Larger MTU sizes perform better. Westwood and Westwood+ outperform Reno being able to handle higher error rates with less variability. 11/7/2018

Cwnd Size PER = 0.005 Samples every 3sec 10/1/2013

Westwood+ Evaluation Simulation designed to create ACK compression 10/1/2013

ACK Compression Westwood overestimates bandwidth Westwood vastly overestimates bandwidth Westwood overestimates bandwidth 11/7/2018

Conclusions Created Westwood(+) for ns-3 Validated similar to original Westwood work Westwood+ better when ACK compression present Working on TCP SACK and Vegas implementations 10/1/2013

Remarks Inconsistency in Reno implementation Tests did not emphasize Westwood+ strengths Comparison to original Westwood work is not as conclusive as author’s suggest Typo in the Westwood equation 10/1/2013

Questions 10/1/2013

References S. Gangadhar, T. Nguyen, G. Umapathi, and J. Sterbenz. TCP Westwood(+) protocol implementation in ns-3. In ICST 2013, pages 167-175. S. Mascolo, C. Casetti, M. Gerla, M. Sanadidi, and R. Wang. TCP westwood: Bandwidth estimation for enhanced transport over wireless links. In MOBICOM 2001, pages 287–297. 10/1/2013