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