Title: Transport Layer
1Transport Layer
- Instructor Carey Williamson
- Office ICT 740
- Email carey_at_cpsc.ucalgary.ca
- Class Location ICT 122
- Lectures MWF 1200 1250
- Notes derived from Computer Networking A Top
Down Approach, by Jim Kurose and Keith Ross,
Addison-Wesley. -
- Slides are adapted from the books companion Web
site, with changes by Anirban Mahanti and Carey
Williamson.
2Chapter 3 Transport Layer
- 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 and demultiplexing
- reliable data transfer
- flow control
- congestion control
3Transport 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
4Transport vs. Network Layer
- transport layer logical communication between
processes - relies on, enhances, network layer services
- PDU Segment
- extends host-to-host communication to
process-to-process communication - network layer logical communication between
hosts - PDU Datagram
- Datagrams may be lost, duplicated, reordered in
the Internet best effort service
5TCP/IP Transport Layer Protocols
- reliable, in-order delivery (TCP)
- connection setup
- flow control
- congestion control
- unreliable, unordered delivery UDP
- no-frills extension of best-effort IP
- What does UDP provide in addition to IP?
- services not provided by IP (network layer)
- delay guarantees
- bandwidth guarantees
6Multiplexing/Demultiplexing
HTTP
FTP
Telnet
- Use same communication channel between hosts for
several logical communication processes - How does Mux/DeMux work?
- Sockets doors between process host
- UDP socket (dest. IP, dest. Port)
- TCP socket (src. IP, src. port, dest. IP, dest.
Port)
7Connectionless demux
- 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 addresses
and/or source port numbers directed to same socket
8Connection-oriented demux
- 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
- 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 - non-persistent HTTP will have different socket
for each request
9UDP 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
- Why use UDP?
- No connection establishment cost (critical for
some applications, e.g., DNS) - No connection state
- Small segment headers (only 8 bytes)
- Finer application control over data transmission
10UDP Segment Structure
- 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!
32 bits
source port
dest port
Length, in bytes of UDP segment, including header
checksum
length
Application data (message)
UDP segment format
11UDP checksum
- Goal detect errors (e.g., flipped bits) in
transmitted segment
- Sender
- treat segment contents as sequence of 16-bit
integers - checksum addition (1s complement sum) of
segment contents - sender puts checksum value into UDP checksum
field
- Receiver
- compute checksum of received segment
- check if computed checksum equals checksum field
value - NO - error detected
- YES - no error detected. But maybe errors
nonetheless? More later .
12Internet Checksum Example
- Note When adding numbers, a carryout from the
most significant bit needs to be added to the
result - Example add two 16-bit integers
- Weak error protection? Why is it useful?
1 1 1 1 0 0 1 1 0 0 1 1 0 0 1 1
0 1 1 1 0 1 0 1 0 1 0 1 0 1 0 1 0
1 1 1 0 1 1 1 0 1 1 1 0 1 1 1 0 1
1 1 1 0 1 1 1 0 1 1 1 0 1 1 1 1
0 0 1 0 1 0 0 0 1 0 0 0 1 0 0 0 0
1 1
wraparound
sum
checksum