Slides - University of Washington
Download
Report
Transcript Slides - University of Washington
Introduction to Computer Networks
Transport Layer Overview
(§6.1.2-6.1.4)
David Wetherall ([email protected])
Professor of Computer Science & Engineering
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
app
TCP
TCP
IP
IP
IP
IP
802.11
802.11
Ethernet
Ethernet
Host
CSE 461 University of Washington
Router
Host
3
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
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 (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
– 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 of Washington
8
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
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 length up to 64K
• Checksum (16 bits) for reliability
CSE 461 University of Washington
11
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 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 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)
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
Passive party
(server)
1
2
3
Time
15
Three-Way Handshake (3)
• Suppose delayed, duplicate
copies of the SYN and ACK
arrive at the server!
Active party
(client)
Passive party
(server)
– Improbable, but anyhow …
CSE 461 University of Washington
16
Three-Way Handshake (4)
• Suppose delayed, duplicate
copies of the SYN and ACK
arrive at the server!
Active party
(client)
Passive party
(server)
– Improbable, but anyhow …
• Connection will be cleanly
rejected on both sides
CSE 461 University of Washington
X
REJECT
X
REJECT
17
Topic
• How to release connections
– We’ll see how TCP does it
FIN!
FIN!
Network
CSE 461 University of Washington
18
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), 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
– 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
1
2
21