Wrapping Up IP + The Transport Layer EE 122, Fall 2013 Sylvia Ratnasamy Material thanks to Ion Stoica, Scott Shenker,

Slides:



Advertisements
Similar presentations
Introduction 1 Lecture 13 Transport Layer (Transmission Control Protocol) slides are modified from J. Kurose & K. Ross University of Nevada – Reno Computer.
Advertisements

Data Communications and Computer Networks Chapter 3 CS 3830 Lecture 16 Omar Meqdadi Department of Computer Science and Software Engineering University.
1 CS492B Project #2 TCP Tutorial # Jin Hyun Ju.
Winter 2008CS244a Handout #61 CS244a: An Introduction to Computer Networks Handout 6: The Transport Layer, Transmission Control Protocol (TCP), and User.
BZUPAGES.COM 1 User Datagram Protocol - UDP RFC 768, Protocol 17 Provides unreliable, connectionless on top of IP Minimal overhead, high performance –No.
OSI 7-Layer Model. Implementation of UDP and TCP CS587x Lecture 2 Department of Computer Science Iowa State University.
Copyright 1999, S.D. Personick. All Rights Reserved. Telecommunications Networking II Lecture 32 Transmission Control Protocol (TCP) Ref: Tanenbaum pp:
EEC-484/584 Computer Networks Lecture 12 Wenbing Zhao (Part of the slides are based on Drs. Kurose & Ross ’ s slides for their Computer.
EEC-484/584 Computer Networks Lecture 14 Wenbing Zhao (Part of the slides are based on Drs. Kurose & Ross ’ s slides for their Computer.
EEC-484/584 Computer Networks Lecture 12 Wenbing Zhao (Part of the slides are based on Drs. Kurose & Ross ’ s slides for their Computer.
EEC-484/584 Computer Networks Lecture 14 Wenbing Zhao (Part of the slides are based on Drs. Kurose & Ross ’ s slides for their Computer.
Lecture 7 Transport Protocols: UDP, TCP
1 Link Layer & Network Layer Some slides are from lectures by Nick Mckeown, Ion Stoica, Frans Kaashoek, Hari Balakrishnan, and Sam Madden Prof. Dina Katabi.
1 Reliability & Flow Control Some slides are from lectures by Nick Mckeown, Ion Stoica, Frans Kaashoek, Hari Balakrishnan, and Sam Madden Prof. Dina Katabi.
TCP. Learning objectives Reliable Transport in TCP TCP flow and Congestion Control.
2: Application Layer 1 1DT066 Distributed Information System Chapter 3 Transport Layer.
3-1 Transport services and protocols r provide logical communication between app processes running on different hosts r transport protocols run in end.
IP-UDP-RTP Computer Networking (In Chap 3, 4, 7) 건국대학교 인터넷미디어공학부 임 창 훈.
Gursharan Singh Tatla Transport Layer 16-May
Computer Networks Switching Professor Hui Zhang
IP Routers CS 168, Fall 2014 Kay Ousterhout (standing in for Sylvia Ratnasamy) Material thanks to Ion Stoica, Scott.
What Can IP Do? Deliver datagrams to hosts – The IP address in a datagram header identify a host IP treats a computer as an endpoint of communication Best.
Process-to-Process Delivery:
Ch 3. Transport Layer Myungchul Kim
1 Chapter 1 OSI Architecture The OSI 7-layer Model OSI – Open Systems Interconnection.
Introduction to Networks CS587x Lecture 1 Department of Computer Science Iowa State University.
TCP : Transmission Control Protocol Computer Network System Sirak Kaewjamnong.
26-TCP Dr. John P. Abraham Professor UTPA. TCP  Transmission control protocol, another transport layer protocol.  Reliable delivery  Tcp must compensate.
Fundamentals of Computer Networks ECE 478/578 Lecture #19: Transport Layer Instructor: Loukas Lazos Dept of Electrical and Computer Engineering University.
Computer Networking Lent Term M/W/F 11-midday LT1 in Gates Building Slide Set 4 Andrew W. Moore February
TCP1 Transmission Control Protocol (TCP). TCP2 Outline Transmission Control Protocol.
Networked & Distributed Systems TCP/IP Transport Layer Protocols UDP and TCP University of Glamorgan.
The Transport Layer CS168, Fall 2014 Scott Shenker (understudy to Sylvia Ratnasamy) Material thanks to Ion Stoica,
Transport Layer3-1 Chapter 3: Transport Layer Our goals: r understand principles behind transport layer services: m multiplexing/demultipl exing m reliable.
Transport Layer Moving Segments. Transport Layer Protocols Provide a logical communication link between processes running on different hosts as if directly.
Internetworking Internet: A network among networks, or a network of networks Allows accommodation of multiple network technologies Universal Service Routers.
Networking Fundamentals. Basics Network – collection of nodes and links that cooperate for communication Nodes – computer systems –Internal (routers,
Lec 17. 4/2/14 Anthony D. Joseph CS162 ©UCB Spring 2014 CS162 S ECTION 8.
81 Sidevõrgud IRT 0020 loeng okt Avo Ots telekommunikatsiooni õppetool, TTÜ raadio- ja sidetehnika inst.
CS/ECE 4381 Concepts Reverse-path forwarding Regular routing protocols compute shortest path tree, so forward multicast packets along “reverse” of this.
Chapter 3 Transport Layer Tami Meredith. A protocol defines: 1. Message Format (Syntax) 2. Rules of Communication (Semantics) 3. Synchronisation and other.
Transport Layer 3-1 Internet Transport Layer Lecture 8 Dr. Najla Al-Nabhan.
Transport Protocols.
Transport Layer: Sliding Window Reliability
1 Transport Layer: Basics Outline Intro to transport UDP Congestion control basics.
CS/EE 145A Reliable Transmission over Unreliable Channel II Netlab.caltech.edu/course.
© Janice Regan, CMPT 128, CMPT 371 Data Communications and Networking Principles of reliable data transfer 0.
CS162 Operating Systems and Systems Programming Lecture 15 Reliability, Transport Protocols March 16, 2011 Ion Stoica
IP1 The Underlying Technologies. What is inside the Internet? Or What are the key underlying technologies that make it work so successfully? –Packet Switching.
TCP Flow Control – an illustration of distributed system thinking David E. Culler CS162 – Operating Systems and Systems Programming
CSE/EE 461 Sliding Windows and ARQ. 2 Last Time We finished up the Network layer –Internetworks (IP) –Routing (DV/RIP, LS/OSPF) It was all about routing:
EE 122: Transport Protocols Kevin Lai October 16, 2002.
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).
1 TCP ProtocolsLayer name DNSApplication TCP, UDPTransport IPInternet (Network ) WiFi, Ethernet Link (Physical)
Computer Networking Lecture 16 – Reliable Transport.
Ch 3. Transport Layer Myungchul Kim
Ch 3. Transport Layer Myungchul Kim
CS162 Operating Systems and Systems Programming Lecture 11 Reliability, Transport Protocols October 5, 2011 Anthony D. Joseph and Ion Stoica
TCP.
TCP.
Introduction of Transport Protocols
Transport Layer Our goals:
Process-to-Process Delivery:
EE 122: Lecture 7 Ion Stoica September 18, 2001.
The Transport Layer Reliability
Process-to-Process Delivery: UDP, TCP
Computer Networks Protocols
Review of Internet Protocols Transport Layer
Presentation transcript:

Wrapping Up IP + The Transport Layer EE 122, Fall 2013 Sylvia Ratnasamy Material thanks to Ion Stoica, Scott Shenker, Jennifer Rexford, Nick McKeown, and many other colleagues

Last Lecture: IP Routers N N N N Linecards (input) Interconnect Fabric Route/Control Processor Linecards (output)

Shared Memory (1 st Generation) Route Table CPU Buffer Memory Line Interface MAC Line Interface MAC Line Interface MAC Limited by rate of shared memory Shared Backplane Line card CPU Memory (* Slide by Nick McKeown, Stanford Univ.)

Shared Bus (2 nd Generation) Route Table CPU Line Card Buffer Memory Line Card MAC Buffer Memory Line Card MAC Buffer Memory Fwding Cache Fwding Cache Fwding Cache MAC Buffer Memory Limited by shared bus (* Slide by Nick McKeown)

Point-to-Point Switch (3 rd Generation) Line Card MAC Local Buffer Memory CPU Card Line Card MAC Local Buffer Memory Switched Backplane Line Interface CPU Memory Fwding Table Routing Table Fwding Table (*Slide by Nick McKeown)

© Nick McKeown 2006 NxRNxR 3 rd Gen. Router: Switched Interconnects This is called an “output queued” switch

© Nick McKeown rd Gen. Router: Switched Interconnects This is called an “input queued” switch

Two challenges with input queuing 1) Need an internal fabric scheduler!

© Nick McKeown 2006 Fabric Scheduler 3 rd Gen. Router: Switched Interconnects

Two challenges with input queuing 1) Need an internal fabric scheduler! 2) Must avoid “head-of-line” blocking

Head of Line Blocking HoL blocking limits throughput to approximately 58% of capacity

“Virtual Output Queues”

© Nick McKeown x R Fabric Scheduler 3 rd Gen. Router: Switched Interconnects

Reality is more complicated Commercial (high-speed) routers use combination of input and output queuing complex multi-stage switching topologies (Clos, Benes) distributed, multi-stage schedulers (for scalability) We’ll consider one simpler context de-facto architecture for a long time and still used in lower-speed routers

Context Crossbar fabric Centralized scheduler Input ports Output ports

Scheduling Goal: run links at full capacity, fairness across inputs Scheduling formulated as finding a matching on a bipartite graph Practical solutions look for a good maximal matching (fast) Input ports Output ports

The Transport Layer

From Lecture#3: Transport Layer Layer at end-hosts, between the application and network layer Transport Network Datalink Physical Transport Network Datalink Physical Network Datalink Physical Application Host A Host B Router

Why a transport layer? IP packets are addressed to a host but end-to- end communication is between application processes at hosts Need a way to decide which packets go to which applications (multiplexing/demultiplexing)

Why a transport layer? Transport Network Datalink Physical Transport Network Datalink Physical Application Host A Host B

Why a transport layer? Transport Network Datalink Physical Application Host A Host B Datalink Physical browser telnet mmedia ftp browser IP many application processes Drivers +NIC Operating System

Why a transport layer? Host A Host B Datalink Physical browser telnet mmedia ftp browser IP many application processes Datalink Physical telnet ftp IP HTTP server Transport Communication between hosts (  ) Communication between processes at hosts

Why a transport layer? IP packets are addressed to a host but end-to- end communication is between application processes at hosts Need a way to decide which packets go to which applications (mux/demux) IP provides a weak service model (best-effort) Packets can be corrupted, delayed, dropped, reordered, duplicated No guidance on how much traffic to send and when Dealing with this is tedious for application developers

Role of the Transport Layer Communication between application processes Mux and demux from/to application processes Implemented using ports

Role of the Transport Layer Communication between application processes Provide common end-to-end services for app layer [optional] Reliable, in-order data delivery Well-paced data delivery too fast may overwhelm the network too slow is not efficient

Role of the Transport Layer Communication between processes Provide common end-to-end services for app layer [optional] TCP and UDP are the common transport protocols also SCTP, MTCP, SST, RDP, DCCP, …

Role of the Transport Layer Communication between processes Provide common end-to-end services for app layer [optional] TCP and UDP are the common transport protocols UDP is a minimalist, no-frills transport protocol only provides mux/demux capabilities

Role of the Transport Layer Communication between processes Provide common end-to-end services for app layer [optional] TCP and UDP are the common transport protocols UDP is a minimalist, no-frills transport protocol TCP is the whole-hog protocol offers apps a reliable, in-order, bytestream abstraction with congestion control but no performance guarantees (delay, bw, etc.)

Role of the Transport Layer Communication between processes mux/demux from and to application processes implemented using ports

Context: Applications and Sockets Socket: software abstraction by which an application process exchanges network messages with the (transport layer in the) operating system socketID = socket(…, socket.TYPE) socketID.sendto(message, …) socketID.recvfrom(…) will cover in detail after midterm Two important types of sockets UDP socket: TYPE is SOCK_DGRAM TCP socket: TYPE is SOCK_STREAM

Ports Problem: deciding which app (socket) gets which packets Solution: port as a transport layer identifier 16 bit identifier OS stores mapping between sockets and ports a packet carries a source and destination port number in its transport layer header For UDP ports (SOCK_DGRAM) OS stores (local port, local IP address)  socket For TCP ports (SOCK_STREAM) OS stores (local port, local IP, remote port, remote IP)  socket

4-bit Version 4-bit Header Length 8-bit Type of Service (TOS) 16-bit Total Length (Bytes) 16-bit Identification 3-bit Flags 13-bit Fragment Offset 8-bit Time to Live (TTL) 8-bit Protocol 16-bit Header Checksum 32-bit Source IP Address 32-bit Destination IP Address Options (if any) Payload

4 5 8-bit Type of Service (TOS) 16-bit Total Length (Bytes) 16-bit Identification 3-bit Flags 13-bit Fragment Offset 8-bit Time to Live (TTL) 8-bit Protocol 16-bit Header Checksum 32-bit Source IP Address 32-bit Destination IP Address Payload

4 5 8-bit Type of Service (TOS) 16-bit Total Length (Bytes) 16-bit Identification 3-bit Flags 13-bit Fragment Offset 8-bit Time to Live (TTL) 6 = TCP 17 = UDP 16-bit Header Checksum 32-bit Source IP Address 32-bit Destination IP Address Payload

4 5 8-bit Type of Service (TOS) 16-bit Total Length (Bytes) 16-bit Identification 3-bit Flags 13-bit Fragment Offset 8-bit Time to Live (TTL) 6 = TCP 17 = UDP 16-bit Header Checksum 32-bit Source IP Address 32-bit Destination IP Address Payload 16-bit Source Port16-bit Destination Port More transport header fields ….

Recap: Multiplexing and Demultiplexing Host receives IP packets Each IP header has source and destination IP address Each Transport Layer header has source and destination port number Host uses IP addresses and port numbers to direct the message to appropriate socket

More on Ports Separate 16-bit port address space for UDP and TCP “Well known” ports (0-1023): everyone agrees which services run on these ports e.g., ssh:22, helps client know server’s port Ephemeral ports (most ): given to clients

UDP: User Datagram Protocol Lightweight communication between processes Avoid overhead and delays of ordered, reliable delivery UDP described in RFC 768 – (1980!) Destination IP address and port to support demultiplexing Optional error checking on the packet contents ( checksum field = 0 means “don’t verify checksum”) SRC port DST port checksumlength DATA

Why a transport layer? IP packets are addressed to a host but end-to- end communication is between application processes at hosts Need a way to decide which packets go to which applications (mux/demux) IP provides a weak service model (best-effort) Packets can be corrupted, delayed, dropped, reordered, duplicated

Announcements The next 2-3 weeks will be the hardest of this class Project#1 due; Project #2 out HW#2 out Midterm If you’re struggling, ask for help early ! Attend TA’s extra office hours close to project deadlines

Reliable send send wait for wait for packets In a perfect world, reliable transport is easy

Reliable Transport In a perfect world, reliable transport is easy All the bad things best-effort can do a packet is corrupted (bit errors) a packet is lost a packet is delayed (why?) packets are reordered (why?) a packet is duplicated (why?)

Dealing with Packet Corruption Time SenderReceiver   ack nack

Dealing with Packet Corruption Time SenderReceiver 1 1   ack(1) What if the ACK/NACK is corrupted? Packet #1 or #2? 2 P(2) P(1) Data and ACK packets carry sequence numbers

Dealing with Packet Loss Time SenderReceiver 1 1  ack(1) P(1) Timer-driven loss detection Set timer when packet is sent; retransmit on timeout Timeout P(2)

Dealing with Packet Loss Time SenderReceiver 1 1  ack(1) P(1) Timeout P(2) duplicate!

Dealing with Packet Loss Time SenderReceiver ack(1) P(1) Timer-driven retx. can lead to duplicates Timeout P(2) duplicate! ack(1)

Components of a solution (so far) checksums (to detect bit errors) timers (to detect loss) acknowledgements (positive or negative) sequence numbers (to deal with duplicates)

A Solution: “Stop and Wait” We have a correct reliable transport protocol! Probably the world’s most inefficient send packet(I); (re)set timer; wait for ack If (ACK) I++; repeat If (NACK or TIMEOUT) send packet(I); (re)set timer; wait for ack If (ACK) I++; repeat If (NACK or TIMEOUT) wait for packet if packet is OK, send ACK else, send NACK wait for packet if packet is OK, send ACK else, send NACK repeat

50 Stop & Wait is Inefficient ACK DATA Sender Receiver RTT Inefficient if TRANS << RTT Inefficient if TRANS << RTT TRANS

Sliding Window window = set of adjacent sequence numbers The size of the set is the window size; assume window size is n General idea: send up to n packets at a time Sender can send packets in its window Receiver can accept packets in its window Window of acceptable packets “slides” on successful reception/acknowledgement

Sliding Window Let A be the last ack’d packet of sender without gap; then window of sender = {A+1, A+2, …, A+n} Let B be the last received packet without gap by receiver, then window of receiver = {B+1,…, B+n} n B Received and ACK’d Acceptable but not yet received Cannot be received n A Already ACK’d Sent but not ACK’d Cannot be sent sequence number 

Acknowledgements w/ Sliding Window Two common options cumulative ACKs: ACK carries next in-order sequence number that the receiver expects

Cumulative Acknowledgements (1) At receiver n B Received and ACK’d Acceptable but not yet received Cannot be received After receiving B+1, B+2 n B new = B+2 Receiver sends ACK(B new +1)

Cumulative Acknowledgements (2) At receiver n B Received and ACK’d Acceptable but not yet received Cannot be received After receiving B+4, B+5 n B Receiver sends ACK(B+1)

Acknowledgements w/ Sliding Window Two common options cumulative ACKs: ACK carries next in-order sequence number the receiver expects selective ACKs: ACK individually acknowledges correctly received packets Selective ACKs offer more precise information but require more complicated book-keeping

Sliding Window Protocols Two canonical approaches Go-Back-N Selective Repeat Many variants that differ in implementation details

Go-Back-N (GBN) Sender transmits up to n unacknowledged packets Receiver only accepts packets in order discards out-of-order packets (i.e., packets other than B+1) Receiver uses cumulative acknowledgements i.e., sequence# in ACK = next expected in-order sequence# Sender sets timer for 1 st outstanding ack (A+1) If timeout, retransmit A+1, …, A+n

Sliding Window with GBN Let A be the last ack’d packet of sender without gap; then window of sender = {A+1, A+2, …, A+n} Let B be the last received packet without gap by receiver, then window of receiver = {B+1,…, B+n} n A Already ACK’d Sent but not ACK’d Cannot be sent n B Received and ACK’d Acceptable but not yet received Cannot be received sequence number 

GBN Example w/o Errors Time Window size = 3 packets SenderReceiver 1 {1} 2 {1, 2} 3 {1, 2, 3} 4 {2, 3, 4} 5 {3, 4, 5} Sender Window Receiver Window 6 {4, 5, 6}

GBN Example with Errors Window size = 3 packets SenderReceiver Timeout Packet

Selective Repeat (SR) Sender: transmit up to n unacknowledged packets Assume packet k is lost, k+1 is not Receiver: indicates packet k+1 correctly received Sender: retransmit only packet k on timeout Efficient in retransmissions but complex book-keeping need a timer per packet

SR Example with Errors Time SenderReceiver ACK=5 Window size = 3 packets {1} {1, 2} {1, 2, 3} {2, 3, 4} {3, 4, 5} {4, 5, 6} {7, 8, 9} ACK=6 {4,5,6} Timeout Packet 4 ACK=4

Observations With sliding windows, it is possible to fully utilize a link, provided the window size is large enough. Throughput is ~ (n/RTT) Stop & Wait is like n = 1. Sender has to buffer all unacknowledged packets, because they may require retransmission Receiver may be able to accept out-of-order packets, but only up to its buffer limits Implementation complexity depends on protocol details (GBN vs. SR)

Recap: components of a solution Checksums (for error detection) Timers (for loss detection) Acknowledgments cumulative selective Sequence numbers (duplicates, windows) Sliding Windows (for efficiency) Reliability protocols use the above to decide when and what to retransmit or acknowledge

What does TCP do? Most of our previous tricks + a few differences Sequence numbers are byte offsets Sender and receiver maintain a sliding window Receiver sends cumulative acknowledgements (like GBN) Sender maintains a single retx. timer Receivers do not drop out-of-sequence packets (like SR) Introduces fast retransmit : optimization that uses duplicate ACKs to trigger early retx (next time) Introduces timeout estimation algorithms (next time)

Next Time Wrap up reliability in TCP TCP congestion control