TCP/IP
Support Protocols and Technologies
Gail Hopkins
TCP/IP
Introduction
Address Resolution Protocol (ARP)
For Binding protocol addresses to hardware addresses
Internet Control Message Protocol (ICMP)
Error reporting mechanism
Dynamic Host Configuration Protocol (DHCP)
For allocating IP addresses during bootstrapping
Network Address Translation (NAT)
For allowing multiple computers at a site to share a single, globally valid IP address
Part 4 – Internetworking Using TCP/IP
Binding Protocol Addresses
An Internet packet passes through a series
of routers
Each hop takes it over a particular network, either to a specific computer on that network or to the next router
In either case, the sending router has to map between the protocol (IP) address and a hardware address
This called address resolution
Part 4 – Internetworking Using TCP/IP
Address Resolution
• Address resolution is local to a network
From Comer, 2009
Part 4 – Internetworking Using TCP/IP
Address Resolution Protocol
(ARP)
TCP/IP defines the Address Resolution
Protocol (ARP) which defines the format of resolution requests and responses
This technique is usually combined with
local caching of hardware addresses
Part 4 – Internetworking Using TCP/IP
ARP (2)
Consider scenario:
Computer A wants to resolve address of Computer B
A sends broadcast message: “I’m looking for the MAC address of the computer that has IP address B”
Broadcast message only travels across one network
When C receives a copy of the request it sends one message back “I’m the computer with IP address B and my MAC address is M”
Part 4 – Internetworking Using TCP/IP
ARP (3)
Request message reaches all computers on a network...
....Reply doesn’t From Comer, 2009
Part 4 – Internetworking Using TCP/IP
ARP Message Format
Most implementations of ARP are used to
bind IP addresses to Ethernet addresses But the protocol is designed to be used to bind
arbitrary high-level addresses to arbitrary hardware addresses
Designers have included
A fixed-size field at the beginning of an ARP message to specify the size of hardware addresses being used
An address length field to specify size of protocol addresses
Part 4 – Internetworking Using TCP/IP
ARP Encapsulation
Frame type field specifies that data contains an ARP message
Same type used for ARP requests and responses... ...receiver must therefore examine OPERATION field to determine if a request or response From Comer, 2009
Part 4 – Internetworking Using TCP/IP
ARP Caching and Message
Processing
Sending an ARP request for each datagram is
inefficient
Also, most computer communication involves
a sequence of packets
ARP software therefore caches responses
ARP maintains a small table of bindings in
memory
An entry is replaced when a response arrives
Oldest entry removed when table runs out of space or after entry hasn’t been updated for a long time
Part 4 – Internetworking Using TCP/IP
The Conceptual Address
Boundary
From Comer, 2009
Part 4 – Internetworking Using TCP/IP
Internet Control Message
Protocol (ICMP)
IP offers a best-effort communication
service
But it does still try to avoid errors and report them when they occur
E.g. Use of header checksum to detect transmission errors
Also, TIME TO LIVE field used to prevent a datagram circulating forever
If checksum error – datagram is discarded immediately
TCP/IP
ICMP (2)
For problems that are less severe than
checksum errors:
ICMP used to report errors back to sender
ICMP and IP co-dependent
IP depends on ICMP to report errors
ICMP uses IP to carry error messages
TCP/IP
Key ICMP Messages
Number Type Purpose
0 Echo Reply Used by the ping program
3 Dest. Unreachable Datagram could not be delivered
5 Redirect Host must change a route
8 Echo Used by the ping program
11 Time Exceeded TTL expired or fragments timed out
12 Parameter Problem IP header is incorrect
30 Traceroute Used by the traceroute
program
From Comer, 2009
Part 4 – Internetworking Using TCP/IP
ICMP Message Format and
Encapsulation
From Comer, 2009
Part 4 – Internetworking Using TCP/IP
Protocol Software, Parameters
and Configuration
How does protocol software in a host or
router begin operation? Router:
Manager must specify initial values, e.g. IP address of each network connection, protocol software to run, initial values for a forwarding table
Host configuration: Done during Bootstrapping
Part 4 – Internetworking Using TCP/IP
Dynamic Host Configuration Protocol
(DHCP)
Special DHCP server that assigns IP
addresses to hosts
Newly booted machine broadcasts a DHCP
Discover packet
DHCP server sends back Reply with an IP
address – configured to provide either: Permanent IP addresses
Manually assigned by administrator
Automatic IP address from a pool of addresses to be allocated on demand
Leased for a finite period of time
Part 4 – Internetworking Using TCP/IP
DHCP Operation with Relays
DHCP server does not need to be on the same
Part 4 – Internetworking Using TCP/IP
Network Address Translation
(NAT)
Allows multiple computers at a site to share
a single, globally valid IP address Transparent communication
A host at a site appears to have a normal Internet connection
A host in the Internet always appears to receive communication from a single computer rather than from one of many computers at a site
NAT provides this illusion
Part 4 – Internetworking Using TCP/IP
NAT (2)
Hosts at a site using NAT run conventional
TCP/IP software and applications
NAT is placed on the connection between
the Internet and the site
NAT is often embedded in a device
e.g. Wi-Fi wireless access point or an Internet router
Part 4 – Internetworking Using TCP/IP
NAT Conceptual Architecture
From Comer, 2009
Part 4 – Internetworking Using TCP/IP
Basic NAT Translation
NAT Translation Table From Comer, 2009
Part 4 – Internetworking Using TCP/IP
Transport-Layer NAT (NAPT)
Basic version of NAT doesn’t handle:
When two hosts at a site attempt to communicate with the same remote server
When two or more applications on a given host at a site attempt simultaneous communication with different destinations on the Internet
NAPT allows a site to have arbitrary numbers
of applications running on arbitrary hosts, all communicating simultaneously with arbitrary destinations on the Internet
Part 4 – Internetworking Using TCP/IP
NAPT (2)
NAPT uses protocol port numbers to
distinguish among services:
TCP/IP
Summary
Address resolution (ARP) and assignment
(DHCP)
ICMP error reporting mechanism
Network Address Translation
Reading:
Chapter 23, Computer Networks and Internets, Comer, 5th Edition, 2009