BWCTL August 9 th 2011, OSG Site Admin Workshop Jason Zurawski – Internet2 Research Liaison.

Slides:



Advertisements
Similar presentations
Umut Girit  One of the core members of the Internet Protocol Suite, the set of network protocols used for the Internet. With UDP, computer.
Advertisements

CCNA – Network Fundamentals
CSCI 4550/8556 Computer Networks
IS333, Ch. 26: TCP Victor Norman Calvin College 1.
Network Time Protocol (NTP) August 9 th 2011, OSG Site Admin Workshop Jason Zurawski – Internet2 Research Liaison.
OWAMP March 10 th 2011, OSG All Hands Meeting, Network Performance Jason Zurawski – Internet2.
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.
Iperf Tutorial Jon Dugan Summer JointTechs 2010, Columbus, OH.
Copyright 1999, S.D. Personick. All Rights Reserved. Telecommunications Networking II Lecture 32 Transmission Control Protocol (TCP) Ref: Tanenbaum pp:
© 2007 Cisco Systems, Inc. All rights reserved.Cisco Public 1 Version 4.0 OSI Transport Layer Network Fundamentals – Chapter 4.
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.
1 Internet Networking Spring 2002 Tutorial 10 TCP NewReno.
1 Internet Networking Spring 2004 Tutorial 10 TCP NewReno.
Department of Electronic Engineering City University of Hong Kong EE3900 Computer Networks Transport Protocols Slide 1 Transport Protocols.
1 K. Salah Module 6.1: TCP Flow and Congestion Control Connection establishment & Termination Flow Control Congestion Control QoS.
WXES2106 Network Technology Semester /2005 Chapter 8 Intermediate TCP CCNA2: Module 10.
EE 4272Spring, 2003 Chapter 17 Transport Protocols Connection-Oriented Transport Protocol  Reliable Network Service: Design Issues  Unreliable Network.
Gursharan Singh Tatla Transport Layer 16-May
Process-to-Process Delivery:
Lect3..ppt - 09/12/04 CIS 4100 Systems Performance and Evaluation Lecture 3 by Zornitza Genova Prodanoff.
1 Transport Layer Computer Networks. 2 Where are we?
2007/01/031 Bandwidth Test Controller Speaker : Po-Chou Chen Cheng-Lin Tsai Advisor : Quincy Wu Date : 2008/01/03.
BWCTL March 10 th 2011, OSG All Hands Meeting, Network Performance Jason Zurawski – Internet2.
1 Semester 2 Module 10 Intermediate TCP/IP Yuda college of business James Chen
6.1. Transport Control Protocol (TCP) It is the most widely used transport protocol in the world. Provides reliable end to end connection between two hosts.
CS332, Ch. 26: TCP Victor Norman Calvin College 1.
SMUCSE 4344 transport layer. SMUCSE 4344 transport layer end-to-end protocols –transport code runs only on endpoint hosts encapsulates network communications.
Copyright 2002, S.D. Personick. All Rights Reserved.1 Telecommunications Networking II Topic 20 Transmission Control Protocol (TCP) Ref: Tanenbaum pp:
TCP1 Transmission Control Protocol (TCP). TCP2 Outline Transmission Control Protocol.
The Transmission Control Protocol (TCP) Application Services (Telnet, FTP, , WWW) Reliable Stream Transport (TCP) Connectionless Packet Delivery.
Transport Layer Moving Segments. Transport Layer Protocols Provide a logical communication link between processes running on different hosts as if directly.
CSE679: Computer Network Review r Review of the uncounted quiz r Computer network review.
HighSpeed TCP for High Bandwidth-Delay Product Networks Raj Kettimuthu.
OWAMP August 10 th 2010, OSG Site Admin Workshop - Network Performance Jason Zurawski, Internet2.
Vertical Optimization Of Data Transmission For Mobile Wireless Terminals MICHAEL METHFESSEL, KAI F. DOMBROWSKI, PETER LANGENDORFER, HORST FRANKENFELDT,
10-Jun-2005 OWAMP (One-Way Active Measurement Protocol) Jeff Boote Network Performance Workshop.
Networking Basics CCNA 1 Chapter 11.
1 TCP - Part II Relates to Lab 5. This is an extended module that covers TCP data transport, and flow control, congestion control, and error control in.
Chapter 24 Transport Control Protocol (TCP) Layer 4 protocol Responsible for reliable end-to-end transmission Provides illusion of reliable network to.
Lecture 9 – More TCP & Congestion Control
CS640: Introduction to Computer Networks Aditya Akella Lecture 15 TCP – III Reliability and Implementation Issues.
CS640: Introduction to Computer Networks Aditya Akella Lecture 15 TCP – III Reliability and Implementation Issues.
TCP Congestion Control 컴퓨터공학과 인공지능 연구실 서 영우. TCP congestion control2 Contents 1. Introduction 2. Slow-start 3. Congestion avoidance 4. Fast retransmit.
TCP continued. Discussion – TCP Throughput TCP will most likely generate the saw tooth type of traffic. – A rough estimate is that the congestion window.
4343 X2 – The Transport Layer Tanenbaum Ch.6.
© Janice Regan, CMPT 128, CMPT 371 Data Communications and Networking Congestion Control 0.
IP1 The Underlying Technologies. What is inside the Internet? Or What are the key underlying technologies that make it work so successfully? –Packet Switching.
Peer-to-Peer Networks 13 Internet – The Underlay Network
McGraw-Hill Chapter 23 Process-to-Process Delivery: UDP, TCP Copyright © The McGraw-Hill Companies, Inc. Permission required for reproduction or display.
14-Nov-07 OWAMP (One-Way Latencies) BWCTL (Bandwidth Test Control) Jeff Boote Network Performance Tools BOF-SC07.
10-Jun-05 BWCTL (Bandwidth Test Control) Jeff Boote Network Performance Workshop.
TCP/IP1 Address Resolution Protocol Internet uses IP address to recognize a computer. But IP address needs to be translated to physical address (NIC).
Transmission Control Protocol (TCP) TCP Flow Control and Congestion Control CS 60008: Internet Architecture and Protocols Department of CSE, IIT Kharagpur.
11 CS716 Advanced Computer Networks By Dr. Amir Qayyum.
Computer Networks 1000-Transport layer, TCP Gergely Windisch v spring.
Connect communicate collaborate Performance Metrics & Basic Tools Robert Stoy, DFN EGI TF, Madrid September 2013.
BWCTL August 10 th 2010, OSG Site Admin Workshop - Network Performance Jason Zurawski, Internet2.
Samuel Wood Manikandan Punniyakotti Supervisors: Brad Smith, Katia Obraczka, JJ Garcia-Luna-Aceves
The Transport Layer Implementation Services Functions Protocols
Chapter 9: Transport Layer
Instructor Materials Chapter 9: Transport Layer
BWCTL (Bandwidth Test Control)
Introduction to Congestion Control
5. End-to-end protocols (part 1)
Transport Layer Unit 5.
(bandwidth control) Jeff Boote Internet2
BWCTL (Bandwidth Test Control)
CS4470 Computer Networking Protocols
The Transport Layer Chapter 6.
Presentation transcript:

BWCTL August 9 th 2011, OSG Site Admin Workshop Jason Zurawski – Internet2 Research Liaison

Tutorial Agenda: – Network Performance Primer - Why Should We Care? (30 Mins) – Introduction to Measurement Tools (20 Mins) – Use of NTP for network measurements (15 Mins) – Use of the BWCTL Server and Client (25 Mins) – Use of the OWAMP Server and Client (25 Mins) – Use of the NDT Server and Client (25 Mins) – perfSONAR Topics (30 Mins) – Diagnostics vs Regular Monitoring (20 Mins) – Use Cases (30 Mins) – Exercises Agenda 2 – 10/18/2015, © 2011 Internet2

BWCTL is: – A command line client application – A scheduling and policy daemon – Wraps the throughput testing tools Iperf and Nuttcp.IperfNuttcp These tests are able to measure: – Maximum TCP bandwidth (with various tuning options available) – The delay, jitter, and datagram loss of a network when doing a UDP test BWCTL – What is it? 3 – 10/18/2015, © 2011 Internet2

Users want to verify available bandwidth/throughput: – Between their site and a remote resource – Between two remote resources – Validate/Verify an SLA Methodology: – Verify available bandwidth from each endpoint to points in the middle – Determine problem area(s) – Re-run tests over time – requires access to tool instead of doing a ‘one off’ test Problem Statement 4 – 10/18/2015, © 2011 Internet2

The term “throughput” is vague – Capacity: link speed Narrow Link: link with the lowest capacity along a path Capacity of the end-to-end path = capacity of the narrow link – Utilized bandwidth: current traffic load – Available bandwidth: capacity – utilized bandwidth Tight Link: link with the least available bandwidth in a path – Achievable bandwidth: includes protocol and host issues Throughput? Bandwidth? 5 – 10/18/2015, © 2011 Internet2 45 Mbps 10 Mbps 100 Mbps45 Mbps Narrow Link Tight Link sourcesink (Shaded portion shows background traffic)

Run “iperf” or similar tool on two endpoints and hosts on intermediate paths – Roadblocks: Need software on all test systems Need permissions on all systems involved (usually full shell accounts*) Need to coordinate testing with others * Need to run software on both sides with specified test parameters * Desirable features for an alternate method – ‘Daemon’ to run in the background – Protocol to exchange results/errors – Works with firewalls – Protect resources (* BWCTL was designed to help with these) Typical Solution 6 – 10/18/2015, © 2011 Internet2

Applications – Daemon (bwctld) – Client (bwctl) Open Source License & Development – Modified BSD ( ) – Mailing lists for developer communication – come join us! Protocol Abstraction Library – Will support development of new clients – Add custom ‘hooks’ into the policy (e.g. add authentication via OpenID or similar) Implementation 7 – 10/18/2015, © 2011 Internet2

bwctld on each test host – Accepts requests for “iperf” tests including time slot and parameters for test – Responds with a tentative reservation or a denied message – Reservations by a client must be confirmed with a “start session” message – Acts as the “Resource Broker” – Runs the test – Both “sides” of test get results Server Functionality (bwctld) 8 – 10/18/2015, © 2011 Internet2

bwctl client application makes requests to both endpoints of a test – Communication can be “open”, “authenticated”, or “encrypted” (encrypted reserved for future use) – Requests include a request for a time slot as well as a full parameterization of the test – “Third party” requests – run a test on two distributed hosts – If no server is available on the localhost, client handles test endpoint – *Mostly* the same command line options as testers (e.g. iperf, nuttcp – read the help or man pages to be sure…) Client Functionality (bwctl) 9 – 10/18/2015, © 2011 Internet2

Measures TCP Achievable Bandwidth – Measurement includes the end system – Sometimes called “memory-to-memory” tests – Set expectations for well coded application Limits of what we can measure – TCP hides details – In hiding the details it can obscure what is causing errors Many things can limit TCP throughput – Loss – Congestion – Buffer Starvation – Out of order delivery TCP Measurements 10 – 10/18/2015, © 2011 Internet2

Data Packet – Contains some header overhead, and the broken up chunk of user data ACK Packet – Acknowledge the receipt of a data packet, “cumulative” in nature SACK Packet – Selective acknowledgement for a specific missing segment MSS – Maximum segment size (largest size of packets on a given network segment) Congestion Control – Process of self regulating flow speed due to loss in the network (e.g. making it fair) Slow Start – Avoid sending more data than the network is capable of consuming. Goal is to reach a loss (establishes window size by relying on acks) TCP – Quick Overview 11 – 10/18/2015, © 2011 Internet2

Congestion Avoidance – Additive-increase/Multiplicative-decrease [AIMD] scheme to find a fair speed for a TCP flow by adjusting the sending window. Starts low (2 x MSS) and increase Fast Retransmit – Retransmit a single segment after receiving duplicate ACKs for the prior numbered segment Fast Recovery – Re-send packets in a window after a timeout Bandwidth Delay Product – The amount of “in flight” data allowed for a TCP connection – BDP = bandwidth * round trip time – Example: 1Gb/s cross country, ~100ms 1,000,000,000 b/s *.1 s = 100,000,000 bits 100,000,000 / 8 = 12,500,000 bytes 12,500,000 bytes / (1024*1024) ~ 12MB TCP – Quick Overview 12 – 10/18/2015, © 2011 Internet2

Congestion Control Algorithms (selectable in the Linux Kernel) – RENO (Slow Start, Cong. Avoidance, Fast Retransmit, Fast Recovery) – Cubic (Optimized for LFN [Long Fat Networks] with large latency, Cubic growth pattern) – HTCP (still additive-increase/multiplicative-decrease [AIMD], more agressive as loss decreases on high BDP paths) TCP – Quick Overview 13 – 10/18/2015, © 2011 Internet2

General Operational Pattern – Sender buffers up data to send into segments (respect the MSS) and numbers each – The ‘window’ is established and packets are sent in order from the window – The flow of data and ACK packets will dictate the overall speed of TCP for the length of the transfer TCP – Quick Overview 14 – 10/18/2015, © 2011 Internet2

TCP – Quick Overview (Typical Sawtooth) 15 – 10/18/2015, © 2011 Internet2

General Operational Pattern – cont – TCP starts slow, until it can establish the available resources on the network. – The idea is to grow the window until a loss is observed – This is the signal to the algorithm that it must limit the window for the time being, it can slowly build it back up TCP – Quick Overview 16 – 10/18/2015, © 2011 Internet2

TCP – Quick Overview (Slow Start) 17 – 10/18/2015, © 2011 Internet2

General Operational Pattern – cont – Receiver will acknowledge packets as they arrive ACK Each (old style) Cumulative ACK (“I have seen everything up to this segment” Selective ACK (sent to combat a complete retransmit of the window) – TCP relies on loss to a certain extent – it will adjust it’s behavior after each loss Congestive (e.g. reaching network limitation, or due to traffic) Non-congestive (due to actual problems in the network) – Congestion avoidance stage follows slow start, window will remain a certain size and data rates will increase/decrease based on loss in the network – Congestion Control algorithms modify the behavior over time Control how large the window may grow Control how fast to recover from any loss TCP – Quick Overview 18 – 10/18/2015, © 2011 Internet2

TCP – Quick Overview (Cong. Avoidance) 19 – 10/18/2015, © 2011 Internet2

Use TCP auto tuning if possible – Linux 2.6, Mac OS X 10.5, FreeBSD 7.x, and Windows Vista – Allow the OS to decide how large the window needs to be based on current resources and performance The –w option can be used to request a particular buffer size. – Use this if your OS doesn’t have TCP auto tuning – This sets both send and receive buffer size. – The OS may need to be tweaked to allow buffers of sufficient size. – See for more detailshttp://fasterdata.es.net/fasterdata/host-tuning/ Parallel transfers may help as well, the –P option can be used for this To get full TCP performance the TCP window needs to be large enough to accommodate the Bandwidth Delay Product TCP Performance: Window Size 20 – 10/18/2015, © 2011 Internet2

Parallel streams can help in some situations TCP attempts to be “fair” and conservative – Sensitive to loss, but more streams hedge bet – Circumventing fairness mechanism 1 bwctl stream vs. n background: bwctl gets 1/(n+1) X bwctl streams vs. n background: bwctl gets x/(n+x) Example: 2 background, 1 bwctl stream: 1/3 = 33% Example: 2 background, 8 bwctl streams: 8/10 = 80% How? – The –P option sets the number of streams/threads to use – There is a point of diminishing returns TCP Parallel Streams 21 – 10/18/2015, © 2011 Internet2

TCP breaks the stream into pieces transparently Longer writes often improve performance – Let TCP “do it’s thing” – Fewer system calls How? – -l (lower case ell) – Example –l 128K UDP doesn’t break up writes, don’t exceed Path MTU TCP Performance: Read/Write Buffer Size 22 – 10/18/2015, © 2011 Internet2

UDP provides greater transparency We can directly measure some things TCP hides – Loss – Jitter – Out of order delivery Use -b to specify target bandwidth – Default is 1M – Two sets of multipliers k, m, g multipliers are 1000, , K, M, G multipliers are 1024, , – Eg, -b 1m is 1,000,000 bits per second UDP Measurements 23 – 10/18/2015, © 2011 Internet2

Example 24 – 10/18/2015, © 2010 Internet2

BWCTL GUIs 25 – 10/18/2015, © 2011 Internet2

BWCTL GUIs 26 – 10/18/2015, © 2011 Internet2

Each connection is “classified” (authentication) Each classification is hierarchical and has an associated set of hierarchical limits: – Connection policy (allow_open_mode) – Bandwidth (allow_tcp,allow_udp,bandwidth) – Scheduling (duration,event_horizon,pending) A time slot is simply a time-dependent resource that needs to be allocated just like any other resource. It therefore follows the resource allocation model. Resource Allocation 27 – 10/18/2015, © 2011 Internet2

3 rd Party Testing 28 – 10/18/2015, © 2011 Internet2

Iperf version 2.0.x NTP (ntpd) synchronized clock on the local system – Used for scheduling – More important that errors are accurate than the clock itself Firewalls: – Lots of ports for communication and testing – see the web for specifics End hosts must be tuned! – – General Requirements 29 – 10/18/2015, © 2011 Internet2

Source Code – All modern Unix distributions (Free BSD/Linux) – OS X Packages – Support for CentOS 5.5 (x86) – Packages have been shown to operate on similar systems (CentOS, Fedora, RHEL, and x86_64 architecture) Supported Systems 30 – 10/18/2015, © 2011 Internet2

DoS source – Imagine a large number of compromised BWCTLD servers being used to direct traffic DoS target – Someone might attempt to affect statistics web pages to see how much impact they can have Resource consumption – Time slots – Network bandwidth Security Considerations 31 – 10/18/2015, © 2011 Internet2

Restrictive for UDP – Allow between peers – Limit bandwidth, and time of tests More liberal for TCP tests – Open for all (or peers) – Limit length of tests Protect AES keys! – If being used Policy Approaches 32 – 10/18/2015, © 2011 Internet2

Currently available – – Mail lists: – – announce announce Availability 33 – 10/18/2015, © 2011 Internet2

BWCTL August 9 th 2011, OSG Site Admin Workshop Jason Zurawski – Internet2 Research Liaison For more information, visit 34 – 10/18/2015, © 2011 Internet2

Iperf is primary “tester” – Well known – widely used Problems integrating exec’d tool – Server initialization (port number allocation) – error conditions – No indication of partial progress (How full was the send buffer when the session was killed?) thrulay/nuttcp are available also Tester Applications 35 – 10/18/2015, © 2011 Internet2

Testing with no “Local” Server 36 – 10/18/2015, © 2010 Internet2