Placement of Function in a Best Effort World. Course Logistics Update

Similar documents
Transport Layer (Congestion Control)

Congestion Collapse in the 1980s

CS419: Computer Networks. Lecture 10, Part 3: Apr 13, 2005 Transport: TCP performance

CMSC 417. Computer Networks Prof. Ashok K Agrawala Ashok Agrawala. October 25, 2018

Congestion Control. Daniel Zappala. CS 460 Computer Networking Brigham Young University

Lecture 4: Congestion Control

UNIT IV -- TRANSPORT LAYER

Outline. User Datagram Protocol (UDP) Transmission Control Protocol (TCP) Transport layer (cont.) Transport layer. Background UDP.

Page 1. Review: Internet Protocol Stack. Transport Layer Services EEC173B/ECS152C. Review: TCP. Transport Layer: Connectionless Service

Overview. TCP congestion control Computer Networking. TCP modern loss recovery. TCP modeling. TCP Congestion Control AIMD

Page 1. Review: Internet Protocol Stack. Transport Layer Services. Design Issue EEC173B/ECS152C. Review: TCP

Recap. TCP connection setup/teardown Sliding window, flow control Retransmission timeouts Fairness, max-min fairness AIMD achieves max-min fairness

Networked Systems and Services, Fall 2017 Reliability with TCP

Announcements Computer Networking. Outline. Transport Protocols. Transport introduction. Error recovery & flow control. Mid-semester grades

TCP congestion control:

Outline Computer Networking. TCP slow start. TCP modeling. TCP details AIMD. Congestion Avoidance. Lecture 18 TCP Performance Peter Steenkiste

TCP Basics : Computer Networking. Overview. What s Different From Link Layers? Introduction to TCP. TCP reliability Assigned reading

Transport layer. UDP: User Datagram Protocol [RFC 768] Review principles: Instantiation in the Internet UDP TCP

Transport layer. Review principles: Instantiation in the Internet UDP TCP. Reliable data transfer Flow control Congestion control

TCP Congestion Control

TCP Congestion Control

Networked Systems and Services, Fall 2018 Chapter 3

Outline. CS5984 Mobile Computing

CE693 Advanced Computer Networks

Outline Computer Networking. Transport Protocols. Functionality Split. Review 2 Transport Protocols

TCP over wireless links

CMSC 417. Computer Networks Prof. Ashok K Agrawala Ashok Agrawala. October 30, 2018

Internet Networking recitation #10 TCP New Reno Vs. Reno

CS519: Computer Networks. Lecture 5, Part 4: Mar 29, 2004 Transport: TCP congestion control

Congestion Control End Hosts. CSE 561 Lecture 7, Spring David Wetherall. How fast should the sender transmit data?

Multiple unconnected networks

UDP, TCP, IP multicast

Operating Systems and Networks. Network Lecture 10: Congestion Control. Adrian Perrig Network Security Group ETH Zürich

Where we are in the Course. Topic. Nature of Congestion. Nature of Congestion (3) Nature of Congestion (2) Operating Systems and Networks

Communications Software. CSE 123b. CSE 123b. Spring Lecture 3: Reliable Communications. Stefan Savage. Some slides couresty David Wetherall

CSE 461. TCP and network congestion

CS457 Transport Protocols. CS 457 Fall 2014

Flow and Congestion Control Marcos Vieira

image 3.8 KB Figure 1.6: Example Web Page

COMP/ELEC 429/556 Introduction to Computer Networks

CS 5520/ECE 5590NA: Network Architecture I Spring Lecture 13: UDP and TCP

Announcements Computer Networking. What was hard. Midterm. Lecture 16 Transport Protocols. Avg: 62 Med: 67 STD: 13.

TCP and Congestion Control (Day 1) Yoshifumi Nishida Sony Computer Science Labs, Inc. Today's Lecture

Programming Assignment 3: Transmission Control Protocol

CS 640 Introduction to Computer Networks Spring 2009

Transport Protocols and TCP

EECS 122, Lecture 19. Reliable Delivery. An Example. Improving over Stop & Wait. Picture of Go-back-n/Sliding Window. Send Window Maintenance

Transport Layer Chapter 6

TCP Review. Carey Williamson Department of Computer Science University of Calgary Winter 2018

Transmission Control Protocol. ITS 413 Internet Technologies and Applications

CSCD 330 Network Programming Winter 2015

Flow and Congestion Control (Hosts)

Outline Computer Networking. Functionality Split. Transport Protocols

Announcements. No book chapter for this topic! Slides are posted online as usual Homework: Will be posted online Due 12/6

ECE 435 Network Engineering Lecture 10

Different Layers Lecture 20

On Inter-layer Assumptions

Functionality Split Computer Networking. Transport Protocols. Overview. Multiplexing & Demultiplexing

CS 43: Computer Networks. 19: TCP Flow and Congestion Control October 31, Nov 2, 2018

Introduction to Networking. Operating Systems In Depth XXVII 1 Copyright 2017 Thomas W. Doeppner. All rights reserved.

Investigations on TCP Behavior during Handoff

Chapter 24. Transport-Layer Protocols

CS4700/CS5700 Fundamentals of Computer Networks

Does current Internet Transport work over Wireless? Reviewing the status of IETF work in this area

Lecture 5: Flow Control. CSE 123: Computer Networks Alex C. Snoeren

Chapter 3 outline. 3.5 Connection-oriented transport: TCP. 3.6 Principles of congestion control 3.7 TCP congestion control

05 Transmission Control Protocol (TCP)

User Datagram Protocol (UDP) Transmission Control Protocol (TCP)

ETSF10 Internet Protocols Transport Layer Protocols

Congestion Control. Tom Anderson

Communication Networks

Computer Networks and Data Systems

Equation-Based Congestion Control for Unicast Applications. Outline. Introduction. But don t we need TCP? TFRC Goals

No book chapter for this topic! Slides are posted online as usual Homework: Will be posted online Due 12/6

CSE 461 Module 10. Introduction to the Transport Layer

14-740: Fundamentals of Computer and Telecommunication Networks

Lecture 3: The Transport Layer: UDP and TCP

Overview. TCP & router queuing Computer Networking. TCP details. Workloads. TCP Performance. TCP Performance. Lecture 10 TCP & Routers

Intro to LAN/WAN. Transport Layer

CS 356: Introduction to Computer Networks. Lecture 16: Transmission Control Protocol (TCP) Chap. 5.2, 6.3. Xiaowei Yang

Transport Layer. -UDP (User Datagram Protocol) -TCP (Transport Control Protocol)

Reliable Transport I: Concepts and TCP Protocol

T Computer Networks

Reliable Transport II: TCP and Congestion Control

Congestion. Can t sustain input rate > output rate Issues: - Avoid congestion - Control congestion - Prioritize who gets limited resources

Network Protocols. Transmission Control Protocol (TCP) TDC375 Autumn 2009/10 John Kristoff DePaul University 1

Basic Reliable Transport Protocols

CRC. Implementation. Error control. Software schemes. Packet errors. Types of packet errors

Transport Layer TCP / UDP

CSCI-GA Operating Systems. Networking. Hubertus Franke

CNT 6885 Network Review on Transport Layer

Midterm Review. EECS 489 Computer Networks Z. Morley Mao Monday Feb 19, 2007

8. TCP Congestion Control

Transport Protocols and TCP: Review

Computer Networks (Honor Track)

Transport Protocols & TCP TCP

CSE/EE 461. TCP congestion control. Last Lecture. This Lecture. Focus How should senders pace themselves to avoid stressing the network?

Transport Layer: outline

Sequence Number. Acknowledgment Number. Data

TCP Service Model. Today s Lecture. TCP Support for Reliable Delivery. EE 122:TCP, Connection Setup, Reliability

Transcription:

Placement of Function in a Best Effort World Course Logistics Update 45 total in class. Still off target. Prioritized waitlist now available. See me after class. 1

Internet Architecture Redux The network is stateless (w.r.t. e2e connection state), for survivability The network is unreliable No guarantees; 1%ish drop rate OK; may burst to higher or have temp. outages End-hosts must do reliability/retransmission The network provides no QoS End-hosts must do congestion control Things the Transport Faces Loss Congestion, corruption, routing probs, failures Congestion? Yup: Stat mux! Finite buffers for store-andforward. Bursts or excess traffic. Queue size is tricky: Too large == too much delay, too small == bad statmux. More later Variable delay Reordering (how can this happen?) Bugs, multipath Duplication Bugs, lower-layer spurious retransmissions 2

So: TCP? A reliable, congestion-controlled, in-order bytestream As mentioned last time: Not a perfect fit for everybody. Drawbacks? Unreliable apps don t need it May delay app processing, causing CPU/memory/disk to be more bursty than necessary Known problem. Nice paper @ SIGCOMM 2006 on DCCP, datagram congestion control: Unreliable, congestion controlled datagrams Also mentioned ITP, image transport protocol: reliable *out of order* Rel to end-to-end arguments? Reliable Transfers Forward Error Correction: (redundancy in-band) Automatic Repeat request (ARQ): retransmissions. How does it know? Acknowledgements! In tcp: cumulative ACKs How do you detect a loss with ACKs? Timeout Or (diagram) notice that you re getting dup ACKs 3

TCP Gets Older V1: go-back-n retransmissions based on timeouts with a fixed-size sliding window V2: Congestion collapse! Van Jacobsen and Mike Karels congestion avoidance (congestion control), better RTT estimators (why? To set the timeout), and slow start. (Coming up later) Karn & Partridge: Retransmission Ambiguity How do you tell if an ACK is for orig or Rx packet? If you can t tell, your RTT estimator can break Next step: TCP timestamp options TCP Variants TCP Tahoe: Fast retransmission + Jacobson/Karels (slow start/cong avoid) First data-driven, not timeout-driven, Rxmit TCP Reno: Fast recovery: The now-classic sawtooth TCP NewReno: improves fast recovery to survive multiple data losses in large windows TCP SACK: Pretty close to the state of the art. Instead of just ACKing last received seq, tell sender about other recv d packets too (easier to recover from weird loss patterns) Most machines today are NewReno / SACK (Sally Floyd 2005 study) 4

TCP Principles Don t retransmit early; aoid spurious retransmissions A response to congestion collapse. Part of cong. collapse was Rx of packets that were queued, not lost. Conserve packets Don t blast network with extra traffic during retransmissions. General technique: Count # dup acks to know how many packets have left the network. Timers How do you know when packets were lost? If no other ACKs, must timeout. How long to wait? Well, depends on the RTT. Easy to measure: segment -> ACK Problems: Variable delay, variable processing times at receiver Solution: Averaging 5

EWMA Exponential Weighted Moving Averages A low-pass filter by another name Srtt = alpha * r + (1 alpha)*srtt R is the current sample Srtt is the smoothed average TCP uses alpha = 1/8. Doesn t matter too much. Great! We re done. Or not. EWMA is great to put in your toolbox Variance If we use srtt, then half of our transmissions are spurious. TCP early solution: Beta * srtt (beta =~ 2) But what if the path has high variance? Real solution: RTO = srtt + 4 * rttdev Rttdev = mean linear deviation (>= stddev) = rttdev = gamma * dev + (1-gamma) * rttdev Dev = r srtt. TCP uses gamma = ¼ Final note: What to do on timeout? Exponential backoff (another good toolkit thing) 6

Using more information: Fast Retransmission Data-driven retransmission What happens on loss? Duplicate ACKs Imagine you sent: 1:1000, 1001:1700, 2501:3000, 3001:4000, 4001:4576 And got ACKs 1001 1701 1701 1701 1701 Clear that something s going wrong! Wither dup acks Why DUP acks? Window updates: TCP receivers have limited space in socket buffer, so they can tell the source to shut up (flow control) Segment loss Or segment re-ordering TCP says three dupacks == not re-ordered Works pretty well, but now forces network design to abide by it because it works pretty well! Per-packet load balancing 7

Congestion Control Okay. Great. We know we had a loss because of a timeout or dup ACKs. What do we do? 1: Retransmit 2: Adjust our congestion window TCP isn t just doing reliability The basics Slow start: Ramp up Congestion avoidance: Be conservative when you re near the limit 8

Fast Recovery There s still more information floating in the net. If you did fast recovery, you got dup ACKs, and will probably keep getting more. Retransmit lost packet. Cut cong window in half. Wait until half of the window has been ACKed, and then send _new_ data. Basic idea in TCP Reno. TCP NewReno adds more tricks to deal with multiple losses in a window, which kills Reno. SACK You can get still more information! 1:1000 1001:1700 2501:3000 3001:4000 4577:5062 6000:7019 Send ACKs 1001 1701 1701 [2501-3000] 1701 [2501-4000] 1701 [4577-5062; 2501-4000] etc. Aimed at Long Fat Networks (LFNs; pronounced Elephants ). Standardized in RFC2018 after years of debate. SACK isn t perfect! If TCP window is very small, not enough Rx to deal with it. 9

Other tricks in TCP Three way handshake: Establishes the sequence # space with both sender and receiver Segment size: How big can the network support? Path MTU discovery Set IP Don t Fragment bit. Routers with smaller MTU send back ICMP error message containing their MTU Low-bandwidth links: TCP Header Compression. Most fields in TCP header stay the same. Can be compressed on a link-by-link basis. 40 byte TCP+IP header in ~3-6 bytes. ALF Example: Streaming video protocol Consider MPEG: Reference frames Difference frames (for simplicity, vs previous frame) Problem: Propagation of errors 10

Video over TCP? Completely reliable delivery. Solves the problem! But we talked about the problems with this earlier. Common issue: Real-time or quasi-real-time playback... Even in delayed playback, need larger buffers A better way Some packets need to be more reliable (e.g., reference frames): Selective Recovery Eliminate delays: Out of order delivery Option 1: custom protocol over UDP. Painful! Option 2: Hack TCP to do out-of-order Hard! Remember byte-stream abstraction. No way for TCP to communicate about what part of data it s providing 11

Ergo, ALF and ADUs Every application can define some kind of ADU Some are a bit awkward: telnet Better examples: Movie frames, JPEG 8x8 pixel units, file blocks Make the protocol data unit the same TCP s PDU is a byte. Not the same. ALF and ADUs are a very powerful way to think about protocols that need out of order / selective reliability ALF in the real world Hard to do in-kernel while getting the interface right. (Application naming, etc., all very tied together) In practice: A library Best example: RTP, the Real-time Transport Protocol Used for audio, video, whiteboarding, etc. Modern example: DCCP (These are all post-alf protocols) 12

Benefits of ALF Application defines namespace Can send and receive data in units meaningful to the application But: Library provides things like Congestion control / flow control Reliability as needed Multiplexing/demultiplexing Path MTU discovery Summary Internet architecture forces smart endpoints. TCP is the grab bag: in-order, reliable, duplex, byte-stream. Timer-driven and data-driven retransmissions. Congestion control. ALF is a principle for how you might structure a transport protocol aimed at non-bytestream applications. 13