Introduction to Transport Layer
Download
Report
Transcript Introduction to Transport Layer
Introduction to Transport Layer
Web
Browser
Transport Layer: Motivation
FTP
Client
Transport
Network
Network
Link
Link
Physical
Physical
A
Network
Link
Physical
R1
Transport
Network
Network
Link
Link
Physical
Physical
Network
Link
Physical
R2
C
Web
Server
FTP
Server
Transport
Network
Network
Link
Link
Physical
Physical
Recall that NL is responsible for forwarding a packet
from one HOST to another HOST
But it is the applications that communicate!
How do you make applications on HOSTs to communicate?
Need a new layer, called the “Transport Layer”
Responsible for providing communication between applications
running in different hosts
A Web Browser talking to a Web Server
B
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: UDP, TCP, SCTP
application
transport
network
data link
physical
network
data link
physical
network
data link
physical
network
data link
physical
network
data link
physical
network
data link
physical
application
transport
network
data link
physical
Transport vs. network layer
network layer: logical
communication
between hosts
transport layer: logical
communication
between processes
relies on, enhances,
network layer services
Household analogy:
12 kids sending letters to
12 kids
processes = kids
app messages = letters
in envelopes
hosts = houses
transport protocol =
Ann and Bill
network-layer protocol
= postal service
Transport Layer Functions
Demultiplexing to upper layer -- Obligatory
Deliver an incoming packet to the correct
application
Define Delivery Sematics and Implement them
Reliable vs. unreliable
Unicast vs. multicast
Ordered vs. unordered
Flow control -- Optional
Do not allow sender to overrun receiver’s buffer
resources
Congestion control -- Optional
Do not allow the sender to overrun the network
capacity
Internet transport-layer protocols
User Datagram Protocol (UDP)
unreliable (“best-effort”),
unordered
unicast or multicast delivery
no flow, no congestion control
Transmission Control Protocol (TCP)
reliable
in-order
unicast
flow & congestion control
Stream Control Transport Protocol (SCTP) (will not cover in class)
RFC 2960
reliable
optional ordering
unicast
flow & congestion control
Multiplexing/demultiplexing – Why?
Why need demultiplexing?
Assume you are running 3 network
applications all using the same transport
protocol, e.g., TCP
• FTP Server, Telnet Client, Web Browser
When a packet arrives at a host, it moves
up the protocol stack until it reaches the
transport layer, e.g., TCP
Now, the transport layer needs a way to
determine which application the packet
needs to be delivered. This is the
demultiplexing problem.
Recall that all protocol layers perform
multiplexing/demultiplexing:
• e.g., IP needs to determine which transport
protocol a given packet needs to be
delivered, UDP or TCP?
P1
P2
P3
transport
network
link
physical
Demultiplexing
P1
P2
P3
transport
network
link
physical
Multiplexing
Demultiplexing: How?
host receives IP datagrams
each datagram has source IP
address, destination IP
address
each datagram carries 1
transport-layer segment
each segment has source,
destination port number
(well-known port numbers for
specific applications)
Port #s: 16 bits
• 65535 ports
• 0-1023 are called well-known
and are reserved
– HTTP uses port 80
– Telnet uses port 23
– RFC 1700 lists the reserved
ports
32 bits
source port #
dest port #
other header fields
application
data
(message)
TCP/UDP segment format