lecture 7: transport control protocollecture 7: transport control protocol! tcp connection...
TRANSCRIPT
! TCP Connection Managementu Starting a TCP connectionu Graceful, symmetric closeu The TIME_WAIT state
! Connecting links together to form networksu Hubs/repeatersu Switching
2
Lecture 7 Overview
CSE 123 – Lecture 7: TCP
Connection Establishment! Both sender and receiver must be ready before we
start to transfer the datau Sender and receiver need to agree on a set of parametersu Most important: sequence number space in each directionu Lots of other parameters: e.g., the Maximum Segment Size
! Handshake protocols: setup state between two oblivious endpointsu Need to deal with delayed and reordered packets
3CSE 123 – Lecture 7: TCP
Two-way handshake?
Active participant(client)
Passive participant(server)
SYN, SequenceNum = x
SYN, SequenceNum = y
+data
What’s wrong here?
4CSE 123 – Lecture 7: TCP
Two-way handshake?
Active participant(client)
Passive participant(server)
Old SYN, SequenceNum = x
SYN, SequenceNum = y
+data
Delayed old SYNNew SYN, SequenceNum = q
Rejected
5CSE 123 – Lecture 7: TCP
Client and server do not agree they are starting the same connection
Three-Way Handshake! Opens both directions for transfer
Active participant(client)
Passive participant(server)
SYN, SequenceNum = x
SYN + ACK, SequenceNum = y,
ACK, Acknowledgment = y + 1
Acknowledgment = x + 1
+data
6CSE 123 – Lecture 7: TCP
Again, with States
Active participant(client)
Passive participant(server)
SYN, SequenceNum = x
SYN + ACK, SequenceNum = y,
ACK, Acknowledgment = y + 1
Acknowledgment = x + 1
+data
LISTEN
SYN_RCVD
SYN_SENT
ESTABLISHED
ESTABLISHED
7CSE 123 – Lecture 7: TCP
Three-Way Handshake! Opens both directions for transfer
Active participant(client)
Passive participant(server)
SYN, SequenceNum = x
SYN + ACK, SequenceNum = y,
ACK, Acknowledgment = y + 1
Acknowledgment = x + 1
+data
8CSE 123 – Lecture 5: Flow Control
Some Comments! We could abbreviate this setup, but it was chosen to
be robust, especially against delayed duplicatesu Three-way handshake from Tomlinson 1975
! Choice of changing initial sequence numbers (ISNs) minimizes the chance of hosts that crash getting confused by a previous incarnation of a connection
! How to choose ISNs?u Maximize period between reuseu Minimize ability to guess (why?)
9CSE 123 – Lecture 6: Transport Protocols
CLOSED
LISTEN
SYN_RCVD SYN_SENT
ESTABLISHED
CLOSE_WAIT
LAST_ACKCLOSING
TIME_WAIT
FIN_WAIT_2
FIN_WAIT_1
Passive open Close
Send/ SYNSYN/SYN + ACK
SYN + ACK/ACK
SYN/SYN + ACK
ACK
Close /FIN
FIN/ACKClose /FIN
FIN/ACK
Timeout after two segment lifetimesFIN/ACK
ACK
ACK
ACK
Close /FIN
Close
CLOSED
Active open/SYN
TCP State Transitions
10CSE 123 – Lecture 6: Transport Protocols
Again, with States
Active participant(client)
Passive participant(server)
SYN, SequenceNum = x
SYN + ACK, SequenceNum = y,
ACK, Acknowledgment = y + 1
Acknowledgment = x + 1
+data
LISTEN
SYN_RCVD
SYN_SENT
ESTABLISHED
ESTABLISHED
11CSE 123 – Lecture 6: Transport Protocols
Connection Teardown! Orderly release by sender and receiver when done
u Delivers all pending data and “hangs up”
! Cleans up state in sender and receiver
! TCP provides a “symmetric” closeu Both sides shutdown independently
12CSE 123 – Lecture 7: TCP
TCP Connection Teardown
Server Client
FIN
ACK
ACK
FIN
FIN_WAIT_1
CLOSE_WAIT
LAST_ACKFIN_WAIT_2TIME_WAIT
CLOSEDCLOSED…
13CSE 123 – Lecture 7: TCP
The TIME_WAIT State! We wait 2*MSL (maximum segment) before
completing the close! Maximum segment lifetime is usually 60 seconds
(longest period of time packet can be stuck in network)u Why?
! ACK might have been lost and so FIN will be resentu Could interfere with a subsequent connection
! Real life: Abortive closeu Don’t wait for 2*MSL, simply send Reset packet (RST)u Why?
14CSE 123 – Lecture 7: TCP
Lots of Icky Details! Window probes! Silly Window Syndrome! Nagle’s algorithm! PAWS! Etc…
! Steven’s books “TCP/IP Illustrated (vol 1,2)” is a great source of information on this
15CSE 123 – Lecture 7: TCP
Lots of Icky Details! Nagle’s algorithm! Window probes! Silly Window Syndrome! Nagle’s algorithm! PAWS! Etc…
! Steven’s books “TCP/IP Illustrated (vol 1,2)” is a great source of information on this
16CSE 123 – Lecture 7: TCP
Jumping back down
17
HTTP
TCP
IP
Ethernetinterface
HTTP
TCP
IP
Ethernetinterface
IP IP
Ethernetinterface
Ethernetinterface
SONETinterface
SONETinterface
host host
router router
Application Layer
Transport Layer
Link Layer
Network Layer
CSE 123 – Lecture 6: Transport Protocols
! One shared link (a bus) limits scale in terms of:u Distance (e.g., 2500 m for Ethernet)u Number of nodes (1024 nodes)u Performance (Capacity shared across all nodes)
! Often called a Local Area Network (LAN)
! A better alternative is to have multiple bussesu Each bus is of a limited size, scale, number of hosts, etc.
! Need the ability to connect multiple busses togetheru In other words move frames from one wire to another
18
So far, just one link
CSE 123 – Lecture 7: TCP