Transcript Transport

CMPE 150 – Winter 2009
Lecture 15
February 26, 2009
P.E. Mantey
CMPE 150 -- Introduction to
Computer Networks






Instructor: Patrick Mantey
[email protected]
http://www.soe.ucsc.edu/~mantey/
Office: Engr. 2 Room 595J
Office hours: Tues 3-5 PM, Mon 5-6 PM*
TA: Anselm Kia [email protected]
Web site: http://www.soe.ucsc.edu/classes/cmpe150/Winter09/
Text: Tannenbaum: Computer Networks
(4th edition – available in bookstore, etc. )
Syllabus

Problem Assignment #6

On class web page this afternoon

Due Tuesday, March 3
Today’s Agenda







Intro to Transport Layer
 Connections
 Berkeley Sockets
 QOS
Addressing / TSAP (of TPDU)
Flow Control / Buffering
Protocols
 UDP
 RTP
 TCP
Congestion management
Timers / RTT estimates
Exponential backoff
Text Readings

Today:


Chapter 6, Sections 6.1.1-6.1.3, 6.2.1-6, 6.36.5 (TCP)
Tuesday

Chapter 6, Section 6.6 (TCP Performance)
Internet Layering
Level 5
Level 4
Level 3
Level 2
Level 1
-- Application Layer
(rlogin, ftp, SMTP, POP3, IMAP, HTTP..)
-- Transport Layer(a.k.a Host-to-Host)
(TCP, UDP)
-- Network Layer (a.k.a. Internet)
(IP, ICMP, ARP)
-- (Data) Link Layer / MAC sub-layer
(a.k.a. Network Interface or
Network Access Layer)
-- Physical Layer
Types of Transport Services
• Connection-less versus connectionoriented.
– Connection-less service: no logical
connections, no flow or error control.
– Connection-oriented:
• Based on logical connections: connection setup, data
transfer, connection teardown.
• Flow and error control.
Quality of Service
• User may specify QoS parameters at the
transport layer.
– At connection setup time, user may define
preferred, acceptable, and minimum values for
various service parameters.
– Transport layer determines whether it’s possible to
provide required service based on available
network service(s).
Transport-Layer QoS
Parameters 1
• Connection establishment delay: time to
establish connection.
• Connection establishment failure
probability: probability connection is not
established within maximum
establishment time.
• Throughput: bytes transferred per second
measured over a time interval.
Transport-Layer QoS
Parameters 2
• Transit delay: time between sending a message
and receiving it on the other side (measured by
the transport entities).
• Residual error ratio: ratio of messages in error
to total messages sent.
• Priority: way for user to indicate that some
connections are more important.
• Resilience: probability connection is terminated
due to congestion, etc.
Transport Layer QoS
• Only few transport protocols provide QoS
parameters.
• Most just try to minimize residual error rate.
• QoS parameters specified by transport user
when connection is setup.
– Desired and minimum acceptable values can
be specified.
– Service negotiation.
Transport Service Primitives
• Allow transport users (e.g.,
application programs) to access
transport service.
• Example: connection-oriented
transport service primitives.
PRIMITIVE
TPDU Sent Meaning
LISTEN
CONNECT
SEND
(none)
listen for connection
Connection Req. try to establish connection
DATA
send data
RECEIVE
(none)
waits for data
DISCONNECT
Disc. Req.
try to release connection
TPDU
• Transport protocol data unit.
• Messages sent between transport entities.
• TPDUs are contained in network-layer
packets, which in turn are contained in
DLL frames.
Frame
header
Packet
header
TPDU
header
TPDU payload
Transport Service Primitives (3)
A state diagram for a simple connection management scheme.
Transitions labeled in italics are caused by packet arrivals. The
solid lines show the client's state sequence. The dashed lines show
the server's state sequence.
Berkeley Sockets 1
• Set of transport-level primitives made available
by Berkeley UNIX.
• Server side:
• SOCKET: create new communication end point.
• BIND: attach local address to socket (once
server binds address, clients can connect to it).
• LISTEN: listen for connection (non-blocking).
• ACCEPT: accept new connection.
• SEND, RECEIVE: send and receive data.
• CLOSE: release connection.
Berkeley Sockets 2
• Client side:
• SOCKET: create socket.
• CONNECT: try to establish connection.
• SEND, RECEIVE: send and receive data.
• CLOSE: release connection (symmetric release).
Transport Layer Addressing
• Transport Layer Address
– Port (TSAP)
• Network Layer Address
– IP address (NSAP)
Addressing
TSAPs, NSAPs and transport connections.
Transport Protocol Issues:
Addressing
• Address of the transport-level entity.
• TSAP: transport service access point
(analogous to NSAP).
– Internet TSAP: (IP address, local port).
– Internet NSAP: IP address.
– There may be multiple TSAPs on one host.
– Typically, only one NSAP.
_______________________________________
Transport Service Access Point / Network Service Access Point
Example 1
• Finding the time of day from a time-of-day
server.
– Time-of-day server process on host 2 attaches itself
to TSAP 122 and waits for requests (e.g., through
LISTEN).
– Application process (TSAP 6) on host 1 wants to
find out the time-of-day; issues CONNECT
specifying TSAP 6 as source and TSAP 122 as
destination.
Example 2
– Transport entity on host 1 tries to establish transport
connection between its TSAP 6 and the TSAP 122
on host 2.
– Transport entity on host 2 contacts process on
TSAP 122; if it agrees, transport connection
established.
Finding Services 1
• Well-known TSAP.
– Time-of-day server has been using TSAP 122
forever so every users know it.
• Initial connection protocol: special
process server that proxies for less
well-known services.
– Process server listens to set of ports at the same
time.
– Users CONNECT to a TSAP, and if there are no
servers, process server is likely to be listening. It
them spawns requested server.
Finding Services 2
• Name or directory service.
– Name server listens to well-known TSAP.
– User sends service name and name server
responds with service’s TSAP.
– New services need to register with name
server.
• Finding the server’s network address.
– Hierarchical addresses solve this problem,
i.e., the NSAP is part of the TSAP.
Connection Establishment
• CONNECTION REQUEST and
CONNECTION ACCEPTED TPDUs.
• Problem: delayed duplicates.
– Duplicates can re-appear and be taken as the
real messages.
• Solution: messages age and are
discarded after some time; need to
discard ack’s.
– Maximum hop count.
– Timestamp.
Avoiding Duplicates 1
• Solution by Tomlinson (1975) + Sunshine
and Dalal (1978).
• 2 identically numbered TPDUs are never
outstanding at the same time.
• Bounded packet lifetime.
• Each host has its clock.
– Clock as a counter that increments itself.
– #bits(counter)>= #bits(sequence number).
– Clocks don’t “crash”.
Avoiding Duplicates 2
• When connection setup, low-order k bits
of clock used as initial sequence number.
• Each connection starts numbering its
TPDUs with different sequence number.
• Sequence number space need to be such
that by the time sequence numbers wrap
around, old TPDUs with same sequence
numbers have aged.
Sequence Numbers versus
Time 1
Seq.
#’s
. Linear relation between time
and initial sequence number.
Time
Sequence Numbers versus
Time 2
Seq.
#’s
80
T
Forbidden
region
. Host crash: when it comes
up, it doesn’t know where it
were in the sequence # space.
. Example: T=60 sec and
clock ticks once per second.
. At t=30s, TPDU on connection
5 gets seq.# 80.
Time
30
80
. Host crashes and comes up.
. At t=60s, reopens connections 0~4.
. At t=70s, reopens connection 5 and at t=80s, sends TPDU 80.
. Old TPDU 80 still valid, and one would look like a duplicate.
. To prevent this, check if it’s in the “forbidden region” and delay
sequence number.
Three-Way Handshake
• Solves the problem of getting 2 sides to
agree on initial sequence number.
1
2
CR (seq=x)
ACK(seq=y,ACK=x)
DATA(seq=x, ACK=y)
CR: connection
request.
3-Way Handshake: Delayed
Duplicates 1
2
1
*
CR(seq=x)
ACK(seq=y, ACK=x)
REJECT(ACK=y)
. Old duplicate CR.
. The ACK from host 2 tries
to verify if host 1 was trying to
open a new connection with
seq=x.
. Host 1 rejects host 2’s attempt
to establish.
Host 2 realizes it was a duplicate
CR and aborts connection.
3-Way Handshake: Duplicates 2
2
1
*
CR(seq=x)
ACK(seq=y, ACK=x)
DATA(seq=x,
ACK=z)
REJECT(ACK=y)
. Old duplicate CR and ACK
to connection accepted.
Campus and CENIC Networks
Mark Boolootian, Network Engineer, Information
Technology Services
– Campus network overview: “Hub and spokes”,
1 Gbps links, redundant architecture.
– QoS – now for telephone call setup
– Routing, performance monitoring
– External connections: ISP, CENIC (DC, HPR),
peering
• costs / cost avoidance
Campus /CENIC web pages
• UCSC http://newnoc.ucsc.edu/
• CENIC http://calren2.ucsc.edu/nrg/
– http://www.cenic.net/operations/maps/
• Boolootian et al. on “Traffic Management”
http://calren2.cenic.org/ASN/reports/bactac_files/frame.htm
• http://www.cenic.net/operations/maps/