Transcript PPT

Transport Protocols
Relates to Lab 5. An overview of the transport protocols of the TCP/IP
protocol suite. Also, a short discussion of UDP.
1
Orientation
• We move one layer up and look at the transport layer.
User
Process
User
Process
User
Process
TCP
User
Process
Application
Layer
UDP
Transport
Layer
ICMP
IP
IGMP
Network
Layer
ARP
Hardware
Interface
RARP
Link Layer
Media
2
Orientation
• Transport layer protocols are end-to-end protocols
• They are only implemented at the hosts
HOST
HOST
Application
Application
Transport
Transport
Network
Data Link
Network
Data Link
Network
Data Link
Data Link
3
Transport Protocols in the Internet
• The two major transport protocols of the Internet are
•
•
•
•
•
•
UDP - User Datagram Protocol
datagram oriented
unreliable, connectionless
simple
unicast and multicast
useful only for few applications,
e.g., multimedia applications
used a lot for services
– network management
(SNMP), routing (RIP),
naming (DNS), etc.
•
•
•
•
•
TCP - Transmission Control
Protocol
stream oriented
reliable, connection-oriented
complex
only unicast
used for most Internet
applications:
– web (http), email (smtp), file
transfer (ftp), terminal (telnet),
etc.
4
UDP Format
IP header UDP header
20 bytes
UDP data
8 bytes
Source Port Number
Destination Port Number
UDP message length
Checksum
DATA
0
15 16
31
• Port numbers identify sending and receiving applications (processes).
Maximum port number is 216-1= 65,535
• Message Length is at least 8 bytes (I.e., Data field can be empty) and at
most 65,535
• Checksum is for header (of UDP and some of the IP header fields)
5
Format of TCP segments
• TCP segments have a min. 20 byte header with ≥ 0 bytes of data.
IP header TCP header
20 bytes
TCP data
20 bytes
0
15 16
Source Port Number
31
Destination Port Number
Sequence number (32 bits)
header
length
0
Flags
TCP checksum
20 bytes
Acknowledgement number (32 bits)
window size
urgent pointer
Options (if any)
DATA
6
Port Numbers
• UDP (and TCP) use port numbers to identify applications
• A globally unique address for applications consists of
<IP address, type of protocol, port number>
• 65,535 ports per protocol
User
Process
User
Process
User
Process
TCP
User
Process
User
Process
UDP
IP
User
Process
Demultiplex
based on
port number
Demultiplex
based on
Protocol field in IP
header
7
UDP - User Datagram Protocol
• UDP is supports unreliable transmissions of datagrams
• UDP merely extends the host-to-to-host delivery service of IP
datagram to an application-to-application service
• The only thing that UDP adds to IP datagrams is multiplexing
and demultiplexing (by adding port numbers)
Applications
Applications
UDP
UDP
IP
IP
IP
IP
IP
8
New Transport Protocols
• New Transport Protocols were added:
– DCCP (2006): Datagram Congestion Control Protocol
– SCTP (2000): Stream Control Transmission Protocol
User
Process
User
Process
User
Process
User
Process
Application
Layer
DCCP
SCTP
TCP
UDP
Transport
Layer
ICMP
IP
IGMP
Network
Layer
ARP
Hardware
Interface
RARP
Link Layer
Media
9
DCCP and SCTP
• Provide more service than UDP, but less than TCP
•
•
•
•
•
•
•
•
•
SCTP
“TCP for datagrams”
connection-oriented (full duplex)
more delivery options than TCP
Message-oriented
– preserves message boundaries
Supports multiple flows (“streams” per
connection)
unreliable or reliable
ordered or partially ordered
congestion control
support for multi-homing
Used for signaling in telephone
networks
DCCP
“UDP with congestion control”
“TCP without reliable byte stream”
•
•
•
•
•
connection-oriented
message-oriented
unreliable
unordered
congestion control
•
Intended for applications that transfer
large volumes of data
10
SCTP Format
IP header
SCTP
header
20 bytes
12 bytes
SCTP data
Source Port
Destination Port
Verification tag
Checksum
Type
Flags
Chunk 1
• Many different chunk
types
– Data chunks
– Control chunks
• Each chunk has a typedependent header
Length
Data
...
Type
Chunk N
Flags
Length
Data
0
15 16
31
11
DCCP Format
DCCP
header
IP header
20 bytes
0
DCCP data
12 or 16
bytes
15 16
Source Port Number
31
Destination Port Number
Data offset CCVal CsCov
0
type X
0
Checksum
Sequence number
Options (if any)
DATA
12