Distributed Systems 8. Transport Layer Simon Razniewski Faculty of Computer Science Free University of Bozen-Bolzano A.Y. 2014/2015.

Slides:



Advertisements
Similar presentations
1 Transport Protocols & TCP CSE 3213 Fall April 2015.
Advertisements

Prentice HallHigh Performance TCP/IP Networking, Hassan-Jain Chapter 2 TCP/IP Fundamentals.
Computer Networks, Fifth Edition by Andrew Tanenbaum and David Wetherall, © Pearson Education-Prentice Hall, 2011 The Transport Layer Chapter
Chi-Cheng Lin, Winona State University CS 313 Introduction to Computer Networking & Telecommunication Chapter 6 Transport Layer.
Computer Networks NYUS FCSIT Spring 2008 Milos STOLIC, Bs.C. Teaching Assistant
Chapter 6 The Transport Layer.
Transport Layer – TCP (Part2) Dr. Sanjay P. Ahuja, Ph.D. Fidelity National Financial Distinguished Professor of CIS School of Computing, UNF.
Transmission Control Protocol (TCP)
Guide to TCP/IP, Third Edition
IS333, Ch. 26: TCP Victor Norman Calvin College 1.
Transport Layer – TCP (Part1) Dr. Sanjay P. Ahuja, Ph.D. Fidelity National Financial Distinguished Professor of CIS School of Computing, UNF.
1 TCP CSE May TCP Services Flow control Connection establishment and termination Congestion control 2.
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.
Transport Layer 3-1 Outline r TCP m Congestion control m Flow control.
CMPE 150- Introduction to Computer Networks 1 CMPE 150 Fall 2005 Lecture 26 Introduction to Computer Networks.
The Transport Layer Chapter 6. The Transport Service Services Provided to the Upper Layers Transport Service Primitives Berkeley Sockets An Example of.
The Transport Layer Chapter 6. The Transport Service Services Provided to the Upper Layers Transport Service Primitives Berkeley Sockets An Example of.
Computer Networks Transport Layer. Topics F Introduction  F Connection Issues F TCP.
Department of Electronic Engineering City University of Hong Kong EE3900 Computer Networks Transport Protocols Slide 1 Transport Protocols.
Transport Layer Chapter 6
3-1 Transport services and protocols r provide logical communication between app processes running on different hosts r transport protocols run in end.
Gursharan Singh Tatla Transport Layer 16-May
Process-to-Process Delivery:
The Transport Layer.
1 Transport Layer Computer Networks. 2 Where are we?
Computer Networks, Fifth Edition by Andrew Tanenbaum and David Wetherall, © Pearson Education-Prentice Hall, 2011 The Transport Layer Chapter 6.
TCOM 509 – Internet Protocols (TCP/IP) Lecture 04_b Transport Protocols - TCP Instructor: Dr. Li-Chuan Chen Date: 09/22/2003 Based in part upon slides.
SMUCSE 4344 transport layer. SMUCSE 4344 transport layer end-to-end protocols –transport code runs only on endpoint hosts encapsulates network communications.
Transport Layer Natawut Nupairoj, Ph.D. Department of Computer Engineering Chulalongkorn University.
The Transport Layer.
ECE453 – Introduction to Computer Networks Lecture 14 – Transport Layer (I)
Transport Layer Chapter 6 CN5E by Tanenbaum & Wetherall, © Pearson Education-Prentice Hall and D. Wetherall, 2011 Transport Service Elements of Transport.
The Transport Layer Chapter 6. The Transport Service The transport layer is the heart of the whole protocol hierarchy It provides reliable data transport.
TCP1 Transmission Control Protocol (TCP). TCP2 Outline Transmission Control Protocol.
CSE679: Computer Network Review r Review of the uncounted quiz r Computer network review.
(from Tanenabaum: “Computer Networks” Chapter 1) and
Networking Basics CCNA 1 Chapter 11.
Transport Layer Chapter 6 CN5E by Tanenbaum & Wetherall, © Pearson Education-Prentice Hall and D. Wetherall, 2011 Transport Service Elements of Transport.
The Transport Layer Chapter 6 12/14/2015www.ishuchita.com1.
1 CS 4396 Computer Networks Lab TCP – Part II. 2 Flow Control Congestion Control Retransmission Timeout TCP:
Transport Layer Chapter 6 CN5E by Tanenbaum & Wetherall, © Pearson Education-Prentice Hall and D. Wetherall, 2011 Transport Service Elements of Transport.
ECE 4110 – Internetwork Programming
4343 X2 – The Transport Layer Tanenbaum Ch.6.
IP1 The Underlying Technologies. What is inside the Internet? Or What are the key underlying technologies that make it work so successfully? –Packet Switching.
1 Computer Communication & Networks Lecture 23 & 24 Transport Layer: UDP and TCP Waleed Ejaz
McGraw-Hill Chapter 23 Process-to-Process Delivery: UDP, TCP Copyright © The McGraw-Hill Companies, Inc. Permission required for reproduction or display.
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.
Chapter 5 Peer-to-Peer Protocols and Data Link Layer Timing Recovery.
The Transport Layer Dr. ir. S.S. Msanjila RIS 251.
Distributed Systems 12. Transport Layer Simon Razniewski Faculty of Computer Science Free University of Bozen-Bolzano A.Y. 2015/2016.
3. END-TO-END PROTOCOLS (PART 1) Rocky K. C. Chang Department of Computing The Hong Kong Polytechnic University 22 March
Distributed Systems 11. Transport Layer
Chapter 6 The Transport Layer
The Transport Layer Congestion Control & UDP
Fast Retransmit For sliding windows flow control we waited for a timer to expire before beginning retransmission of a packet TCP uses an additional mechanism.
Unit-7 The Transport Layer.
COMP 431 Internet Services & Protocols
PART 5 Transport Layer Computer Networks.
Congestion Control, Internet transport protocols: udp
Transport Layer Unit 5.
Transport Layer Chapter 6
Lecture 19 – TCP Performance
Chapter 6 The Transport Layer The Transport Service & Elements of Transport Protocols.
Congestion Control, Internet Transport Protocols: UDP
Transport Protocols: TCP Segments, Flow control and Connection Setup
The Transport Layer Chapter 6.
Transport Protocols: TCP Segments, Flow control and Connection Setup
Computer Networks Protocols
Presentation transcript:

Distributed Systems 8. Transport Layer Simon Razniewski Faculty of Computer Science Free University of Bozen-Bolzano A.Y. 2014/2015

Transport Layer 1.Transport Service 2.Elements of Transport Protocols 3.Congestion Control 4.Internet Protocols – UDP 5.Internet Protocols – TCP

The Transport Layer Responsible for delivering data across networks with the desired reliability or quality Physical Link Network Transport Application

8.1. Transport Service Services Provided to the Upper Layer Transport Service Primitives

Services Provided to the Upper Layers (1) Transport layer adds reliability to the network layer Offers connectionless (e.g., UDP) and connection- oriented (e.g, TCP) service to applications

Services Provided to the Upper Layers (2) Transport layer sends segments in packets (in frames) Segment

Transport Service Primitives (1) Primitives that applications might call to transport data for a simple connection-oriented service: Client calls CONNECT, SEND, RECEIVE, DISCONNECT Server calls LISTEN, RECEIVE, SEND, DISCONNECT Segment

Transport Service Primitives (2) State diagram for a simple connection-oriented service Solid lines (right) show client state sequence Dashed lines (left) show server state sequence Transitions in italics are due to segment arrivals.

8. Transport Layer 1.Transport Service 2.Elements of Transport Protocols 3.Congestion Control 4.Internet Protocols – UDP 5.Internet Protocols – TCP

Elements of Transport Protocols Addressing Connection establishment Connection release Error control and flow control Multiplexing

Addressing Transport layer adds TSAPs Multiple clients and servers can run on a host with a single network (IP) address TSAPs are ports for TCP/UDP

Connection Establishment (1) Key problem is to ensure reliability even though packets may be lost, corrupted, delayed, and duplicated Don’t treat an old or duplicate packet as new (Use ARQ and checksums for loss/corruption) Approach: Don’t reuse sequence numbers within twice the MSL (Maximum Segment Lifetime) of 2T=240 secs Three-way handshake for establishing connection

Problem? Old packets on the network Example: Online-banking

Connection Establishment (2) Three-way handshake used for initial packet Since no state from previous connection Both hosts contribute fresh seq. numbers CR = Connect Request

Connection Establishment (3) Three-way handshake protects against odd cases: a)Duplicate CR. Spurious ACK does not connect b)Duplicate CR and DATA. Same plus DATA will be rejected (wrong ACK). a) b) X X X

Connection Release (1) Key problem is to ensure reliability while releasing Asymmetric release (when one side breaks connection) is abrupt and may lose data X

Connection Release (2) Symmetric release (both sides agree to release) can’t be handled solely by the transport layer Two-army problem shows pitfall of agreement Attack?

Connection Release (3) Normal release sequence, initiated by transport user on Host 1 DR=Disconnect Request Both DRs are ACKed by the other side

Connection Release (4) Error cases are handled with timer and retransmission Final ACK lost, Host 2 times out Lost DR causes retransmissions Extreme: Many lost DRs cause both hosts to timeout

Error Control and Flow Control (1) Foundation for error control is a sliding window (from Link layer) with checksums and retransmissions Flow control manages buffering at sender/receiver Issue is that data goes to/from the network and applications at different times Window tells sender available buffering at receiver Makes a variable-size sliding window

Error Control and Flow Control (3) Flow control example: A’s data is limited by B’s buffer B’s Buffer

Multiplexing Kinds of transport / network sharing that can occur: Multiplexing: connections share a network address Inverse multiplexing: addresses share a connection Multiplexing Inverse Multiplexing

8. Transport Layer 1.Transport Service 2.Elements of Transport Protocols 3.Congestion Control 4.Internet Protocols – UDP 5.Internet Protocols – TCP

8.3. Congestion Control Two layers are responsible for congestion control: −Transport layer, controls the offered load [here] −Network layer, experiences congestion [previous lecture] Desirable bandwidth allocation Regulating the sending rate Wireless issues

Desirable Bandwidth Allocation (1) Efficient use of bandwidth gives high goodput, low delay Delay begins to rise sharply when congestion sets in Goodput rises more slowly than load when congestion sets in

Desirable Bandwidth Allocation (2) Fair use gives bandwidth to all flows (no starvation) Max-min fairness gives equal shares of bottleneck Bottleneck link

Desirable Bandwidth Allocation (3) We want bandwidth levels to converge quickly when traffic patterns change Flow 1 slows quickly when Flow 2 starts Flow 1 speeds up quickly when Flow 2 stops

Regulating the Sending Rate (1) Sender may need to slow down for different reasons: Flow control, when the receiver is not fast enough Congestion, when the network is not fast enough A fast network feeding a low-capacity receiver  flow control is needed

Regulating the Sending Rate (2) Our focus is dealing with this problem – congestion A slow network feeding a high-capacity receiver  congestion control is needed

Regulating the Sending Rate (3) Different congestion signals the network may use to tell the transport endpoint to slow down (or speed up)

Regulating the Sending Rate (3) If two flows increase/decrease their bandwidth in the same way when the network signals free/busy they will not converge to a fair allocation +/– percentage + /– constant

Regulating the Sending Rate (4) The AIMD (Additive Increase Multiplicative Decrease) control law does converge to a fair and efficient point! TCP uses AIMD for this reason User 1’s bandwidth User 2’s bandwidth Let’s try it. 0/100, +10/*0,8

MIAD Does it work?

Wireless Issues Wireless links lose packets due to transmission errors Do not want to confuse this loss with congestion Or connection will run slowly over wireless links! Strategy: Wireless links use ARQ, which masks errors

8. Transport Layer 1.Transport Service 2.Elements of Transport Protocols 3.Congestion Control 4.Internet Protocols – UDP 5.Internet Protocols – TCP

8.4 Internet Protocols – UDP Introduction to UDP Real-Time Transport

Introduction to UDP (1) UDP (User Datagram Protocol) is a shim over IP Header has ports (TSAPs), length and checksum.

Wireshark…

Real-Time Transport (1) RTP (Real-time Transport Protocol) provides support for sending real-time media over UDP Often implemented as part of the application

Real-Time Transport (2) RTP header contains fields to describe the type of media and synchronize it across multiple streams

Real-Time Transport (3) Buffer at receiver is used to delay packets and absorb jitter so that streaming media is played out smoothly Packet 8’s network delay is too large for buffer to help Constant rate Variable rate Constant rate

Real-Time Transport (3) High jitter, or more variation in delay, requires a larger playout buffer to avoid playout misses Propagation delay does not affect buffer size Buffer Misses

8. Transport Layer 1.Transport Service 2.Elements of Transport Protocols 3.Congestion Control 4.Internet Protocols – UDP 5.Internet Protocols – TCP

8.5. Internet Protocols – TCP The TCP service model The TCP segment header TCP connection establishment TCP connection state modeling TCP sliding window TCP timer management TCP congestion control

The TCP Service Model (1) TCP provides applications with a reliable byte stream between processes; it is the workhorse of the Internet Popular servers run on well-known ports

The TCP Service Model (2) Applications using TCP see only the byte stream [right] and not the segments [left] sent as separate IP packets Four segments, each with 512 bytes of data and carried in an IP packet 2048 bytes of data delivered to application in a single READ call

The TCP Segment Header TCP header includes addressing (ports), sliding window (seq. / ack. number), flow control (window), error control (checksum) and more.

Wireshark…

TCP Connection Establishment TCP sets up connections with the three-way handshake Release is symmetric, also as described before

TCP Connection State Modeling (1) The TCP connection finite state machine has more states than our simple example from earlier.

TCP Connection State Modeling (2) Solid line is the normal path for a client. Dashed line is the normal path for a server. Light lines are unusual events. Transitions are labeled by the cause and action, separated by a slash. Task: Model a connection lifecycle

TCP Sliding Window (1) TCP adds flow control to the sliding window as before ACK + WIN is the sender’s limit

TCP Timer Management TCP estimates retransmit timer from segment RTTs Tracks both average and variance (for Internet case) Timeout is set to average plus 4 x variance LAN case – small, regular RTT Internet case – large, varied RTT

TCP Congestion Control (1) TCP uses AIMD with loss signal to control congestion Implemented as a congestion window (cwnd) for the number of segments that may be in the network Congestion window controls the sending rate Rate is cwnd / RTT; window can stop sender quickly ACK clock (regular receipt of ACKs) paces traffic and smoothes out sender bursts ACKs pace new segments into the network and smooth bursts

TCP Congestion Control (2) Slow start grows congestion window exponentially by sending increasing cwnd with every ACK Increment cwnd for each new ACK

TCP Congestion Control (3) ACK Additive increase grows cwnd slowly Adds 1 every RTT

TCP Congestion Control (4) Slow start followed by additive increase (TCP Tahoe) Threshold is half of previous loss cwnd Loss causes timeout; so slow-start again Is this AIMD?

TCP Congestion Control (7) SACK (Selective ACKs) extend ACKs with a vector to describe received segments and hence losses Allows for more accurate retransmissions / recovery No way for us to know that 2 and 5 were lost with only ACKs Negotiated at connection setup, whether both hosts support it

Take home TCP versus UDP Flow-control AIMD 3-way-handshake to avoid spurious connections

I'd tell you a UDP joke, but you might not get it.