Transport Layer 3-1 Chapter 3: Transport Layer Our goals: understand principles behind transport layer services: Multiplexing/ demultiplexing reliable data transfer flow control congestion control learn about transport layer protocols in the Internet: UDP: connectionless transport TCP: connection- oriented transport TCP congestion control
Our goals: understand principles behind transport layer services: Multiplexing/demultiplexing reliable data transfer flow control congestion control. learn about transport layer protocols in the Internet: UDP: connectionless transport TCP: connection-oriented transport - PowerPoint PPT Presentation
This document is posted to help you gain knowledge. Please leave a comment to let me know what you think about it! Share it to your friends and learn new things together.
Transcript
Transport Layer 3-1
Chapter 3: Transport LayerOur goals: understand
principles behind transport layer services: Multiplexing/
demultiplexing reliable data
transfer flow control congestion control
learn about transport layer protocols in the Internet: UDP: connectionless
transport TCP: connection-oriented
transport TCP congestion control
Transport Layer 3-2
Chapter 3 outline
3.1 Transport-layer services
3.2 Multiplexing and demultiplexing
3.3 Connectionless transport: UDP
3.4 Principles of reliable data transfer
3.5 Connection-oriented transport: TCP segment structure reliable data transfer flow control connection
management
3.6 Principles of congestion control
3.7 TCP congestion control
Transport Layer 3-3
Transport services and protocols provide logical
communication between app processes running on different hosts
transport protocols run in end systems send side: breaks app
messages into segments, passes to network layer
rcv side: reassembles segments into messages, passes to app layer
more than one transport protocol available to apps Internet: TCP and UDP
application
transportnetworkdata linkphysical
application
transportnetworkdata linkphysical
logical end-end transport
Transport Layer 3-4
Transport vs. network layer
network layer: logical communication between hosts
transport layer: logical communication between processes relies on, enhances, network layer services
A
B
C
DSport:4625 Dport: 80
Sport:8050 Dport: 25
Transport Layer 3-5
Internet transport-layer protocols reliable, in-order
delivery (TCP) congestion control flow control connection setup
unreliable, unordered delivery: UDP
services not available: delay guarantees bandwidth guarantees
application
transportnetworkdata linkphysical network
data linkphysical
networkdata linkphysical
networkdata linkphysical
networkdata linkphysical
networkdata linkphysical
networkdata linkphysical
application
transportnetworkdata linkphysical
logical end-end transport
Transport Layer 3-6
Chapter 3 outline
3.1 Transport-layer services
3.2 Multiplexing and demultiplexing
3.3 Connectionless transport: UDP
3.4 Principles of reliable data transfer
3.5 Connection-oriented transport: TCP segment structure reliable data transfer flow control connection
management
3.6 Principles of congestion control
3.7 TCP congestion control
Transport Layer 3-7
Multiplexing/demultiplexing
process
socket
use header info to deliverreceived segments to correct socket
demultiplexing at receiver:handle data from multiplesockets, add transport header (later used for demultiplexing)
multiplexing at sender:
transport
application
physical
link
network
P2P1
transport
application
physical
link
network
P4
transport
application
physical
link
network
P3
Transport Layer 3-8
How demultiplexing works host receives IP datagrams
each datagram has source IP address, destination IP address
each datagram carries transport-layer segment
each segment has source, destination port number
host uses IP addresses & port numbers to direct segment to appropriate socket
source port # dest port #
32 bits
applicationdata
(message)
other header fields
TCP/UDP segment format
Transport Layer 3-9
Connectionless demultiplexing (UDP)
Create a socket binding to a port number
UDP socket identified by two-tuple:
(dest IP address, dest port number)
When host receives UDP segment: checks destination port
number in segment directs UDP segment to
socket with that port number
IP datagrams with different source IP/port can be directed to same socket
Transport Layer 3-10
Connectionless demux (cont)
ClientIP:B
P2
client IP: A
P1P1P3
serverIP: C
Port: 6428
SP: 6428
DP: 9157
SP: 9157
DP: 6428
SP: 6428
DP: 5775
SP: 5775
DP: 6428
Socket tuple: (dest IP address, dest port number)Two clients’ traffic can be mixed together at server
Transport Layer 3-11
Connection-oriented demux (TCP)
TCP socket identified by 4-tuple: source IP address source port number dest IP address dest port number
recv host uses all four values to direct segment to appropriate socket Two connections cannot
mixed together at the receiver host
Server host may support many simultaneous TCP sockets: each socket identified by
its own 4-tuple Web servers have different
sockets for each connecting client Remember the fork() and
new socket generated by accept()
Transport Layer 3-12
Connection-oriented demux: example
transport
application
physical
link
network
P3transport
application
physical
link
P4
transport
application
physical
link
network
P2
source IP,port: A,9157dest IP, port: B,80
source IP,port: B,80dest IP,port: A,9157
host: IP address
A
host: IP address
C
network
P6P5P3
source IP,port: C,5775dest IP,port: B,80
source IP,port: C,9157dest IP,port: B,80
three segments, all destined to IP address: B, dest port: 80 are demultiplexed to different sockets
server: IP
address B
Transport Layer 3-13
Connection-oriented demux: example
transport
application
physical
link
network
P3transport
application
physical
link
transport
application
physical
link
network
P2
source IP,port: A,9157dest IP, port: B,80
source IP,port: B,80dest IP,port: A,9157
host: IP address
A
host: IP address
C
server: IP
address B
network
P3
source IP,port: C,5775dest IP,port: B,80
source IP,port: C,9157dest IP,port: B,80
P4
threaded server
Transport Layer 3-14
Chapter 3 outline
3.1 Transport-layer services
3.2 Multiplexing and demultiplexing
3.3 Connectionless transport: UDP
3.4 Principles of reliable data transfer
3.5 Connection-oriented transport: TCP segment structure reliable data transfer flow control connection
management
3.6 Principles of congestion control
3.7 TCP congestion control
Transport Layer 3-15
UDP: User Datagram Protocol [RFC 768]
“ no frills,” “bare bones” Internet transport protocol
“best effort” service, UDP segments may be: lost delivered out of order
to app connectionless:
no handshaking between UDP sender, receiver
each UDP segment handled independently of others
Why is there a UDP? no connection
establishment (which can add delay)
simple: no connection state at sender, receiver
small segment header no congestion control:
UDP can blast away as fast as desired UDP worm (Slammer)
Transport Layer 3-16
UDP-based Worm: Slammer Worm code flow:
Exploit code (buffer overflow)
Generate random target IP address x:
Sendto() worm code to x on udp port 1434
Fast spreading worm code (Jan. 2003) Single UDP packet: 376
bytes Average scan rate:
4000 scans/sec Infect 90% in 10 minutes ~ 100,000 infected in an
hour
Bandwidth-limited worm Severely congested
Internet Stopped ATM, Flight
checking, …
TCP-based worm is much slower TCP connection setup
• Connect() is a blocking call Multiple threads for
spreading
Transport Layer 3-17
UDP: more
often used for streaming multimedia apps loss tolerant rate sensitive
other UDP uses DNS SNMP
reliable transfer over UDP: add reliability at application layer application-specific
error recovery!
source port # dest port #
32 bits
Applicationdata
(message)
UDP segment format
length checksumLength, in
bytes of UDPsegment,including
header
Transport Layer 3-18
UDP checksum
Sender: treat segment contents
as sequence of 16-bit integers
checksum: 1’s complement of addition of segment contents
sender puts checksum value into UDP checksum field
Receiver: Add all received 16-bit
segments, including checksum
check if result is 1111 1111 1111 1111: NO - error detected YES - no error detected.
But maybe errors nonetheless? More later ….
Goal: detect “errors” (e.g., flipped bits) in transmitted segment
Transport Layer 3-19
Internet Checksum Example Note
When adding numbers, a carryout from the most significant bit needs to be added to the result
3.5 Connection-oriented transport: TCP segment structure reliable data transfer flow control connection
management
3.6 Principles of congestion control
3.7 TCP congestion control
Transport Layer 3-22
Principles of Reliable data transfer important in app., transport, link layers top-10 list of important networking topics! characteristics of unreliable channel will determine complexity of reliable data transfer
protocol (rdt)
Network layer
u
Transport Layer 3-23
Reliable data transfer: getting started
sendside
receiveside
rdt_send(): called from above, (e.g., by app.). Passed data to deliver to receiver upper layer
udt_send(): called by rdt,to transfer packet over unreliable channel to
receiver
udt_rcv(): called when packet arrives on rcv-side of channel
deliver_data(): called by rdt to deliver data to
upper
u
Transport Layer 3-24
Reliable data transfer: getting startedWe’ll: incrementally develop sender, receiver
sides of reliable data transfer protocol (rdt) consider only unidirectional data transfer
but control info will flow on both directions!
use finite state machines (FSM) to specify sender, receiver
state1
state2
event causing state transitionactions taken on state transition
state: when in this “state” next state
uniquely determined by next event
eventactions
Transport Layer 3-25
Rdt1.0: reliable transfer over a reliable channel
Assumption: underlying channel perfectly reliable no bit errors no loss of packets
separate FSMs for sender, receiver: sender sends data into underlying channel receiver read data from underlying channel