Transport Layer

Download Report

Transcript Transport Layer

Transport Layer
• Functions
– Services to Higher (Application) Layer
– Quality of Service
– Recover from unreliable network protocol
• Error and flow control similar to data link layer except now
end to end
– Addressing (ports, TSAP)
– Shields applications from network implementation,
issues and failures
• Resides in software on hosts
Transport Layer chapt6
1
TCP header
Transport Layer chapt6
2
Transport Layer chapt6
3
TCP Connection-oriented
services to higher layer
• connect(QOS) i.e, CR, same in Berkeley UNIX
–
–
–
–
disconnect, i.e., DR,- close() in Berkeley UNIX
send (data) – same in Berkeley UNIX
receive “
listen
“
• Receive & listen. Block while waiting
– socket in UNIX
• Create a new connection
– Bind in UNIX
• Get local address (port) for socket
Transport Layer chapt6
4
State Transition Diagram p.501
also see http://en.wikipedia.org/wiki/Image:TCP_state_diagram.png p.564 in text
for more advanced diagram
listen
CR received
CR sent
Active conn. est. pending
Passive conn. est.pending
ack sent
CR ack received
Established
Data sent and received
DR sent
DR received
Active dis. pending
Passive dis. pending
disconnect
listen
DR received
Transport Layer chapt6
5
UDP Connectionless services to
higher layer
• Send
• Receive
• Listen
Transport Layer chapt6
6
Quality of Service
• Can negotiate for required service during
connection establishment
• Examples:
–
–
–
–
–
Throughput
Delay
Residual error rate
Protection (security)
Priority (to drop or not)
Transport Layer chapt6
7
By Steve Taylor and Joanie Wexler
http://www.networkworld.com/newsletters/2003/0428fr1.html
• “Quality of service has been a prominent topic for
years, as the need to gain service-level control
over connectionless IP networks has grown
increasingly intense. And there are piles of
sophisticated QoS technologies and features out
there that, when configured just right, can prove
extremely useful to enterprises wishing to ensure
that certain application traffic gets the network
resources it requires to perform well.”
Transport Layer chapt6
8
QoS (continued)
• “At its most basic, a successful QoS deployment typically
involves the following steps:
1. Figuring out which applications need some level of
QoS.
2. Establishing a corporate traffic-treatment policy
based on the above.
3. Determining which QoS features on which devices
should be configured to support the policy.
4. Enabling the features with the appropriate
parameters.”
Transport Layer chapt6
9
QoS (continued)
Features referenced in No. 4 above include :
- Classifying traffic.
- Marking traffic with the appropriate priority.
- Setting up the desired number of priority queues in
switches and routers.
- Rate-limiting certain traffic so it doesn't hog capacity.
- Traffic shaping to smooth out peaks and bursts that can
cause temporary congestion.
- Configuring jitter buffers if voice is involved.
- Identifying packets for temporary random discard when
congestion flares up.
Transport Layer chapt6
10
Issues of unreliable media
• We never can be sure of communication
• Apply concept to disconnect in transport layer
– a) abrupt disconnect (disconnect after DR sent)
• May lose data from receiver
– b) wait for DR to be acknowledged
• If DR/Ack is lost, sender keeps connection open
– Time-out on sender and resend DR?
– But what if DR was received by receiver – then receiver has no
open connection and will not send a new DR/Ack
– c) Three way handshake on disconnect
Transport Layer chapt6
11
Transport layer anomalies (cont.)
• Duplicate “old” packets
– CR sent/delayed/ resent
• Data is sent/ connection closed
• Old duplicate CR appears
– CR sent/ack/connection est’d
• Data packet delayed/resent
• Connection is closed
• Old duplicate appears but new connection was given its ID
• Mechanisms to try to handle duplicates
• handshakes
• Large sequence space
• Time to live field; time-outs
Transport Layer chapt6
12
Addressing
• Ports (TSAP) are assigned during socket call
• How does sender determine port address of
destination?
– May be in response to message (address included)
– May be well known address (1-1023)
•
•
•
•
Telnet 23/22
ftp 21
http 80
finger, name server, process server
- Use of name (directory) server
- Use of process server
Transport Layer chapt6
13
Dynamic Buffer/window size allocation
- Maintenance of buffer pools
- Fixed or variable sized; store at sender or receiver;
share buffers over multiple connections?
- Flow control – similar to choke packets, dynamic
window size – used to throttle sender’s traffic
- Control packets may contain change or absolute value
- What if window/buffer was changed to 0 and restoring packet
is lost?
- Dead state can occur
- Should control packets be acknowledged?
Transport Layer chapt6
14
Multiplexing
- Transport layer multiplexes connections
- Upward multiplexing
- several connections are placed on same outgoing
line (TDM) – typically because outgoing line is
much faster than data being supplied by
applications; ex: FDU users on the alpha
- Downward multiplexing
- One connection is sent over multiple lines (typically
using round robin for data units) – typically to get
higher throughput; ex: 2 B channels on an ISDN line
Transport Layer chapt6
15
Crash Recovery
- If server fails
- Do we change first, then ack
- What if crash occurs and we have not received ack
- Has change been made?
- Do we ack, then change
- What if ack is received? Can we guarantee that
change was made?
- Higher layer must handle with logs and
checkpoints
Transport Layer chapt6
16
UDP
- Connectionless
- Header: (64 bits)
Source Port Destination port
Length
checksum
- No BEC, flow control, sequencing
- Used by RTP, DNS, RPC
- These applications provide their own features
as needed
Transport Layer chapt6
17
UDP
Transport Layer chapt6
18
UDP
Transport Layer chapt6
19
Remote Procedure Call (RPC)
- Client calls server (think of main program making
a procedure call)
- Suspended while server executes
- Send/receive in network provides return values in
parameter
- Implemented by client and server stubs (library
routines) that construct message to be sent
- Cannot use reference parameters
- Parameters in general must be restricted
Transport Layer chapt6
20
Real-Time Transport Protocol
(RTP)
- Used for real-time multimedia
- BEC is not feasible (delay), no acks
- Packets are numbered
- If error is found (checksum in UDP), discard and
interpolate from previous data
- Timestamps
- Destination controls jitter by buffering
- Synchronizing several input streams
- Say film with voice
Transport Layer chapt6
21
RTP Header
Transport Layer chapt6
22
RTP (RFC 3550)
- RTP Header
Version(2 bits);P(1 bit) indicates padding to 4 bytes;
X(1) indicates extension header; CC(4) - # of contributing
sources; M(1) last unit; Payload type (7) – type of data
&encoding algorithm; sequence number (16)
Timestamp
Synchronizing source ID
CC source ID (up to 16)
Optional extension headers
Transport Layer chapt6
23
More on TCP
- IP payload is limited to 65,535 bytes (note 16
bit field for size in IP header)
- Each network has a MTU (maximum transfer
unit)
- This value may be 1000 bits for X.25, 1500 bytes
(without control info) for Ethernet
- TCP software will typically break up message
into segments if it knows the MTU of entering
network and the message is larger than MTU
- Otherwise routers must fragment TPDU
Transport Layer chapt6
24
TCP pseudoheader
- Included in software checksum
- (against layering principle)
- Contains beginning of IP header
- Source address
- Destination address
- Also protocol ID (6) identifying TCP
- TPDU + header length
Transport Layer chapt6
25
TCP options
- For connection establishment
- Maximum payload
- Default of 536 bytes
- Window size
- Maintained similar to ARQ, with time-outs, acks
- Limited to 2^16
- During connection establishment
- For faster networks, longer distances, a scale can be used to fill
the pipe
- Shift up to 14 bits to the left
- Can have 2^30 – 1 in sender’s window max
- Alternatively - selective reject
Transport Layer chapt6
26
TCP connection establishment
- Three way handshake
SYN (seq=x)
SYN(seq=y,ack=x+1)
ack bit is on
data(seq=x+1,ack=y+1)
Transport Layer chapt6
27
TCP connection release
- Sender issues a FIN TPDU.
- Receiver issues a FIN /ACK TPDU.
- Sender terminates connection when ack is
received and returns ack for FIN TPDU
- Receiver terminates connection
- Timers are used (twice the packet lifetime)
to handle lost data units
Transport Layer chapt6
28
TCP congestion control
- Three windows
- Agreed upon window size
- Congestion window
- Current threshold
- When segment is sent, TCP sets timer for ack
- Congestion window initialized to first segment size
- If ack is in time, congestion window is doubled
- This repeats until congestion window reaches window
size
- If ack is late, threshold is set to half congestion window,
congestion window is initialized to one maximum segment
- Doubles until it reaches threshold
- Increases linearly until reaches window
- Called slow start
Transport Layer chapt6
29
Example of slow start
• Set maximum window size
– Assume agreed upon value of 2000 segments (high)
• Initialize threshold to 2000 segments
• Initialize congestion window to 1 segment
• Scenario: 5 acks received; 6th lost; next 10 acks received
• Congestion Window: 1, 2, 4, 8, 16, 32 (this ack was not
received)
• Threshold set to 16 (half of the last congestion window)
• Congestion Window: 1, 2, 4, 8, 16, 17, 18, 19, 20, 21, 22
• If the ack for 22 is not received, threshold is set to 11
Transport Layer chapt6
30
Wireless TCP and UDP
- Congestion control of TCP is based on time-out,
which can occur frequently due to transmission
errors in wireless
- If there is 20% error rate, throughput of 100 packets/seconds
becomes 80 packets/second
- Then if window is halved, becomes 40 packets/second
- Additional problems if a wireless (say cellular)
network is connected to a wired one
Transport Layer chapt6
31