Introduction to Computer Networks Transport Layer Overview 6

  • Slides: 21
Download presentation
Introduction to Computer Networks Transport Layer Overview (§ 6. 1. 2 -6. 1. 4)

Introduction to Computer Networks Transport Layer Overview (§ 6. 1. 2 -6. 1. 4) David Wetherall (djw@uw. edu) Professor of Computer Science & Engineering

Where we are in the Course • Starting the Transport Layer! – Builds on

Where we are in the Course • Starting the Transport Layer! – Builds on the network layer to deliver data across networks for applications with the desired reliability or quality Application Transport Network Link Physical CSE 461 University of Washington 2

Recall • Transport layer provides end-to-end connectivity across the network app TCP IP IP

Recall • Transport layer provides end-to-end connectivity across the network app TCP IP IP 802. 11 Ethernet Host CSE 461 University of Washington Router Host 3

Recall (2) • Segments carry application data across the network • Segments are carried

Recall (2) • Segments carry application data across the network • Segments are carried within packets within frames Segment 802. 11 IP TCP App, e. g. , HTTP Packet Frame CSE 461 University of Washington 4

Transport Layer Services • Provide different kinds of data delivery across the network to

Transport Layer Services • Provide different kinds of data delivery across the network to applications Unreliable Reliable Messages Datagrams (UDP) Bytestream Streams (TCP) CSE 461 University of Washington 5

Comparison of Internet Transports • TCP is full-featured, UDP is a glorified packet TCP

Comparison of Internet Transports • TCP is full-featured, UDP is a glorified packet TCP (Streams) Connections Bytes are delivered once, reliably, and in order Arbitrary length content Flow control matches sender to receiver Congestion control matches sender to network CSE 461 University of Washington UDP (Datagrams) Datagrams Messages may be lost, reordered, duplicated Limited message size Can send regardless of receiver state Can send regardless of network state 6

User Datagram Protocol (UDP) • Used by apps that don’t want reliability or bytestreams

User Datagram Protocol (UDP) • Used by apps that don’t want reliability or bytestreams – Voice-over-IP (unreliable) – DNS, RPC (message-oriented) – DHCP (bootstrapping) (If application wants reliability and messages then it has work to do!) CSE 461 University of Washington 7

Datagram Sockets Client (host 1) Time Server (host 2) request reply CSE 461 University

Datagram Sockets Client (host 1) Time Server (host 2) request reply CSE 461 University of Washington 8

Datagram Sockets (2) Client (host 1) Time Server (host 2) 4: sendto request 1:

Datagram Sockets (2) Client (host 1) Time Server (host 2) 4: sendto request 1: socket 2: bind 3: recvfrom* 5: recvfrom* reply 6: sendto 1: socket 7: close CSE 461 University of Washington 7: close *= call blocks 9

UDP Buffering Application App App Ports Transport (TCP) Message queues Network (IP) CSE 461

UDP Buffering Application App App Ports Transport (TCP) Message queues Network (IP) CSE 461 University of Washington Port Mux/Demux packet 10

UDP Header • Uses ports to identify sending and receiving application processes • Datagram

UDP Header • Uses ports to identify sending and receiving application processes • Datagram length up to 64 K • Checksum (16 bits) for reliability CSE 461 University of Washington 11

Topic • How to set up connections – We’ll see how TCP does it

Topic • How to set up connections – We’ll see how TCP does it SYNACK! SYN! ACK! Network CSE 461 University of Washington 12

Connection Establishment • Both sender and receiver must be ready before we start the

Connection Establishment • Both sender and receiver must be ready before we start the transfer of data – Need to agree on a set of parameters – e. g. , the Maximum Segment Size (MSS) • This is signaling – It sets up state at the endpoints – Like “dialing” for a telephone call CSE 461 University of Washington 13

Three-Way Handshake • Used in TCP; opens connection for data in both directions Active

Three-Way Handshake • Used in TCP; opens connection for data in both directions Active party (client) Passive party (server) • Each side probes the other with a fresh Initial Sequence Number (ISN) – Sends on a SYNchronize segment – Echo on an ACKnowledge segment • Chosen to be robust even against delayed duplicates CSE 461 University of Washington 14

Three-Way Handshake (2) • Three steps: – – Active party (client) Client sends SYN(x)

Three-Way Handshake (2) • Three steps: – – Active party (client) Client sends SYN(x) Server replies with SYN(y)ACK(x+1) Client replies with ACK(y+1) SYNs are retransmitted if lost • Sequence and ack numbers carried on further segments CSE 461 University of Washington 1 Passive party (server) SYN (S EQ=x) 2 SYN x+1) = K C A y, (SEQ= (SEQ 3 =x+1 , ACK =y+1 ) Time 15

Three-Way Handshake (3) • Suppose delayed, duplicate copies of the SYN and ACK arrive

Three-Way Handshake (3) • Suppose delayed, duplicate copies of the SYN and ACK arrive at the server! Active party (client) Passive party (server) SYN (SEQ =x) – Improbable, but anyhow … (SEQ=x+1 , ACK=z+1) CSE 461 University of Washington 16

Three-Way Handshake (4) • Suppose delayed, duplicate copies of the SYN and ACK arrive

Three-Way Handshake (4) • Suppose delayed, duplicate copies of the SYN and ACK arrive at the server! Active party (client) SYN (SEQ =x) ) – Improbable, but anyhow … • Connection will be cleanly rejected on both sides CSE 461 University of Washington Passive party (server) X SYN (S REJECT x+1 = K C A Q=y, E (SEQ=x+1 , ACK=z+1) X REJECT 17

Topic • How to release connections – We’ll see how TCP does it FIN!

Topic • How to release connections – We’ll see how TCP does it FIN! Network CSE 461 University of Washington 18

Connection Release • Orderly release by both parties when done – Delivers all pending

Connection Release • Orderly release by both parties when done – Delivers all pending data and “hangs up” – Cleans up state in sender and receiver • Key problem is to provide reliability while releasing – TCP uses a “symmetric” close in which both sides shutdown independently CSE 461 University of Washington 19

TCP Connection Release • Two steps: Active party Passive party – Active sends FIN(x),

TCP Connection Release • Two steps: Active party Passive party – Active sends FIN(x), passive ACKs – Passive sends FIN(y), active ACKs – FINs are retransmitted if lost • Each FIN/ACK closes one direction of data transfer CSE 461 University of Washington 20

TCP Connection Release (2) • Two steps: – Active sends FIN(x), passive ACKs –

TCP Connection Release (2) • Two steps: – Active sends FIN(x), passive ACKs – Passive sends FIN(y), active ACKs – FINs are retransmitted if lost • Each FIN/ACK closes one direction of data transfer CSE 461 University of Washington Active party Passive party FIN (SEQ=x 1 ) =x+1) , ACK (SEQ=y x+1) ACK= EQ=y, FIN (S 2 (SEQ=x+1 , ACK=y+ 1) 21