Using NetLogger and Web100 for TCP analysis Data Intensive Distributed Computing Group Lawrence Berkeley National Laboratory Brian L. Tierney.

Slides:



Advertisements
Similar presentations
Martin Suchara, Ryan Witt, Bartek Wydrowski California Institute of Technology Pasadena, U.S.A. TCP MaxNet Implementation and Experiments on the WAN in.
Advertisements

Congestion Control and Fairness Models Nick Feamster CS 4251 Computer Networking II Spring 2008.
Click to edit Master title style Click to edit Master text styles –Second level Third level –Fourth level »Fifth level 1 List of Nominations Whats Good.
Appropriateness of Transport Mechanisms in Data Grid Middleware Rajkumar Kettimuthu 1,3, Sanjay Hegde 1,2, William Allcock 1, John Bresnahan 1 1 Mathematics.
Tuning and Evaluating TCP End-to-End Performance in LFN Networks P. Cimbál* Measurement was supported by Sven Ubik**
Simulation-based Comparison of Tahoe, Reno, and SACK TCP Kevin Fall & Sally Floyd Presented: Heather Heiman September 10, 2002.
IS333, Ch. 26: TCP Victor Norman Calvin College 1.
BZUPAGES.COM 1 User Datagram Protocol - UDP RFC 768, Protocol 17 Provides unreliable, connectionless on top of IP Minimal overhead, high performance –No.
Congestion Control Created by M Bateman, A Ruddle & C Allison As part of the TCP View project.
Restricted Slow-Start for TCP William Allcock 1,2, Sanjay Hegde 3 and Rajkumar Kettimuthu 1,2 1 Argonne National Laboratory 2 The University of Chicago.
Presentation by Joe Szymanski For Upper Layer Protocols May 18, 2015.
Computer Networks: TCP Congestion Control 1 TCP Congestion Control Lecture material taken from “Computer Networks A Systems Approach”, Fourth Edition,Peterson.
Introduction 1 Lecture 14 Transport Layer (Transmission Control Protocol) slides are modified from J. Kurose & K. Ross University of Nevada – Reno Computer.
- Reliable Stream Transport Service
Congestion Control Tanenbaum 5.3, /12/2015Congestion Control (A Loss Based Technique: TCP)2 What? Why? Congestion occurs when –there is no reservation.
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.
Week 9 TCP9-1 Week 9 TCP 3 outline r 3.5 Connection-oriented transport: TCP m segment structure m reliable data transfer m flow control m connection management.
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.
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.
Computer Networks Transport Layer. Topics F Introduction  F Connection Issues F TCP.
Advanced Computer Networks: TCP Congestion Control 1 TCP Congestion Control Lecture material taken from “Computer Networks A Systems Approach”, Fourth.
TCP Congestion Control
TCP: flow and congestion control. Flow Control Flow Control is a technique for speed-matching of transmitter and receiver. Flow control ensures that a.
Lect3..ppt - 09/12/04 CIS 4100 Systems Performance and Evaluation Lecture 3 by Zornitza Genova Prodanoff.
Development of network-aware operating systems Tom Dunigan
3: Transport Layer3b-1 Principles of Congestion Control Congestion: r informally: “too many sources sending too much data too fast for network to handle”
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.
TFRC: TCP Friendly Rate Control using TCP Equation Based Congestion Model CS 218 W 2003 Oct 29, 2003.
TCP CS 168 Discussion Week 6 Many thanks to past EE 122 GSIs.
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.
27th, Nov 2001 GLOBECOM /16 Analysis of Dynamic Behaviors of Many TCP Connections Sharing Tail-Drop / RED Routers Go Hasegawa Osaka University, Japan.
HighSpeed TCP for High Bandwidth-Delay Product Networks Raj Kettimuthu.
CS640: Introduction to Computer Networks Aditya Akella Lecture 15 TCP – III Reliability and Implementation Issues.
Computer Networking Lecture 18 – More TCP & Congestion Control.
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:
1 TCP Timeout And Retransmission Chapter 21 TCP sets a timeout when it sends data and if data is not acknowledged before timeout expires it retransmits.
CS640: Introduction to Computer Networks Aditya Akella Lecture 15 TCP – III Reliability and Implementation Issues.
1 Computer Networks Congestion Avoidance. 2 Recall TCP Sliding Window Operation.
Advance Computer Networks Lecture#09 & 10 Instructor: Engr. Muhammad Mateen Yaqoob.
ECE 4110 – Internetwork Programming
NET100 Development of network-aware operating systems Tom Dunigan
TCP continued. Discussion – TCP Throughput TCP will most likely generate the saw tooth type of traffic. – A rough estimate is that the congestion window.
UT-BATTELLE U.S. Department of Energy Oak Ridge National Laboratory Net100: developing network-aware operating systems New (9/01) DOE-funded (Office of.
Congestion Control CS 168 Discussion Week 7. RECAP: How does TCP set rate? How much data can be outstanding? – min{RWND, CWND} RWND: do not overload the.
TCP as a Reliable Transport. How things can go wrong… Lost packets Corrupted packets Reordered packets …Malicious packets…
TCP/IP1 Address Resolution Protocol Internet uses IP address to recognize a computer. But IP address needs to be translated to physical address (NIC).
TCP over Wireless PROF. MICHAEL TSAI 2016/6/3. TCP Congestion Control (TCP Tahoe) Only ACK correctly received packets Congestion Window Size: Maximum.
Chapter 3 outline 3.1 transport-layer services
Chapter 3 outline 3.1 Transport-layer services
Transport Protocols over Circuits/VCs
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
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.
Brian L. Tierney, Dan Gunter
CS640: Introduction to Computer Networks
Lecture 18 – More TCP & Congestion Control
CS4470 Computer Networking Protocols
TCP Congestion Control
Transport Layer: Congestion Control
Chapter 3 outline 3.1 Transport-layer services
TCP flow and congestion control
Anant Mudambi, U. Virginia
TCP: Transmission Control Protocol Part II : Protocol Mechanisms
Using NetLogger and Web100 for TCP analysis
Presentation transcript:

Using NetLogger and Web100 for TCP analysis Data Intensive Distributed Computing Group Lawrence Berkeley National Laboratory Brian L. Tierney

The Problem The Problem: –TCP throughput on very high-speed networks is often disappointing. Why is this? What is the cause? Using tuned TCP buffers, txqueuelen, and see no loss, but performance is still poor. Why!? –Want to test a modification to TCP (eg.: HS-TCP, Fast TCP,etc) What are the effects of this modification? The Solution –Instrumented TCP and analysis tools

Short TCP overview Congestion window (CWND) = the number of packets the sender is allowed to send –The larger the window size, the higher the throughput Throughput = Window size / Round-trip Time CWND slow start: exponential increase congestion avoidance: linear increase packet loss time retransmit: slow start again timeout

Web100 + NetLogger Web100 (PSC + NCAR) provides –Ability to instrument TCP stack in detail NetLogger (LBNL) provides –Ability to correlate data from varies sources based on time –Easy way to collect data from multiple clients/servers reliably –Visualization and analysis tools

Important Web100 Variables for understanding TCP TCP throughput directly related to the Congestion Window size (CWND) The following may restrict/reduce CWND –CongestionSignals (includes Retransmits, FastRetransmits, & ECN) –MaxRwinRcvd: receiver advertised maximum –SendStall: Interface queue is full (txqueuelen) –X_OtherReductionsCV: TCP Congestion Window Validation (RFC2861). Reduce CWND when the actual window is smaller than CWND for more than 1 RTT –X_OtherReductionsCM: Linux CWND Moderation (explained below) These variables indicate if the throughput is limited by the sender, the receiver, or the network –SndLimTimeRwin –SndLimTimeCwnd –SndLimTimeSender

Net100 pyWAD WAD = Work Around Daemon –pyWAD: python version implemented by Jason Lee, LBNL Originally conceived as a tuning daemon –E.g: auto-tune TCP buffer size, etc. –Can also be used for transparent instrumentation, and can generate derived events Sample Configuration file [monitor iperf_client] src_addr: # all source addresses src_port: 0 # any source port dst_addr: # any destination address dst_port: 5005 # all traffic on port 5555 [NetLogger] web100.CongestionSignals: CongestionSignals web100.SendStall: SendStall web100.CurCwnd: CurCwnd web100.SmoothedRTT: SmoothedRTT web100.OtherReductions: OtherReductions AveBW1: (DataBytesOut*8)/(SndLimTimeRwin + SndLimTimeCwnd + SndLimTimeSender) [PyWAD] outputdest: file:///tmp/iperf.test.2.log polltime: 0.5

Normal Plot: Standard TCP

SC02 Test Environment LBL test host 1.4 GHz NERSC test host 2 x 1 Ghz ANL test host 1.13 GHz SC02 test host 2 x 1.4 GHz NIKHEF test host 2.4 GHz 900 Mbps 580 Mbps 900 Mbps 780 Mbps Network speed = Measured UDP throughput

With Net100 Mods: HS-TCP + IFQ Amsterdam to SC02

Uneven Parallel Streams Amsterdam to LBNL Note variation of smoothedRTT varies on slow stream

Coloration of Sack and OtherReductionsCM CWND drops SACKs OtherReductionsCM

Linux OtherReductionsCM Code /* CWND moderation, preventing bursts due to too big ACKs in dubious situations. */ static __inline__ void tcp_moderate_cwnd(struct tcp_opt *tp) { tp->snd_cwnd = min(tp->snd_cwnd, tcp_packets_in_flight(tp)+tcp_max_burst(tp)); tp->snd_cwnd_stamp = tcp_time_stamp; } /* Slow start with delack produces 3 packets of burst */ static __inline__ __u32 tcp_max_burst(struct tcp_opt *tp) { return 3; } /* This determines how many packets are "in the network" to the best of our knowledge. Read this equation as: * "Packets sent once on transmission queue" MINUS * "Packets left network, but not honestly ACKed yet" PLUS * "Packets fast retransmitted" */ static __inline__ unsigned int tcp_packets_in_flight(struct tcp_opt *tp) { return tp->packets_out - tp->left_out + tp->retrans_out; }

Linux TCP Bug Path = Amsterdam to LBL This happens when CWND gets too large

Conclusions and Recommendations Web100 + NetLogger provide a very useful method for analyzing Linux TCP behavior Parallel streams may be a bad idea with well tuned streams Recommendation: –All Linux-based TCP testing be based on the Web100 kernel, and always run pyWAD to collect TCP instrumentation data during all tests –This will can always help answer the question: Why did that happen?

For More Information Web100: NetLogger: pyWAD:

Extra Slides

Summary Results Things to note: –TCP was typically 5 times slower than UDP –Parallel streams VERY uneven on paths 1 and 2 –Parallel streams slower than single stream on path 1 –SendStalls were only seen on paths 1 and 2, so net100 IFQ setting will only effect these paths –Floyd High-Speed TCP helped on paths 3 and 4 –Large standard deviation on all measurements

SendStalls Reducing CWND Amsterdam to SC02; HS-TCP

Bursty Sender Oakland to SC02 Send bursts due to large txqueuelen on send host

Uneven Parallel Streams Amsterdam to SC02 Note variation of smoothedRTT varies on different streams

Zoom on Slow Start ANL to SC02

Zoom on Parallel Streams LBL to SC02