1. TCP/IP Protocol Suite 1
16.2 DHCP
The Dynamic Host Configuration Protocol (DHCP) provides static and
dynamic address allocation that can be manual or automatic.
The topics discussed in this section include:
Static Address Allocation
Dynamic Address Allocation
Manual and Automatic Configuration
Packet Format
Transition States
Exchanging Messages
2. TCP/IP Protocol Suite 2
DHCP basics
Bootp is static, but DHCP is dynamic (but it can also be static).
DHCP has a pool of available addresses. When a request
arrives, DHCP pulls out the next available address and assigns
it to the client for a negotiable time period.
When a request comes in from a client, the DHCP server first
consults the static table.
DHCP is great when devices and IP addresses change.
4. TCP/IP Protocol Suite 4
DHCPMessageFi
eld
Description
Operation Code
Specifies the type of the Dynamic Host Configuration Protocol (DHCP) message. Set to 1 in messages sent by a client (requests)
and 2 in messages sent by a server (response).
Hardware Type Specifies the network LAN architecture. For example, the ethernet type is specified when htype is set to 1.
Hardware Address
Length
Link-layer address length (in bytes); defines the length of hardware address in the chaddr field. For Ethernet, this value is 6.
Hops Number of relay agents that have forwarded this message.
Transaction
identifier
Used by clients to match responses from servers with previously transmitted requests.
seconds Elapsed time (in seconds) since the client began theDynamic Host Configuration Protocol (DHCP)process.
Flags Flags field is called the broadcast bit, can be set to 1 to indicate that messages to the client must be broadcast
ciaddr Client’s IP address; set by the client when the client has confirmed that its IP address is valid.
yiaddr Client’s IP address; set by the server to inform the client of the client’s IP address.
siaddr
IP address of the next server for the client to use in the configuration process (for example, the serverto
contact for TFTP download of an operating system kernel).
giaddr
Relay agent (gateway) IP address; filled in by the relay agent with the address of the interface through which Dynamic Host
Configuration Protocol (DHCP) message was received.
chaddr Client’s hardware address. (Layer 2 address)
sname Name of the next server for client to use in the configuration process.
file
Name of the file for the client to request from the next server (for example the name of the file that contains the operating
system for this client).
5. 16.1 BOOTP
BOOTP(Bootstrap Protocol) is
client/server protocol designed to provide
the information for a diskless computer or
a computer that is booted for the first
time
RARP provides only the IP address and not
the other information
If we use BOOTP, we do not need RARP
RARP is not implemented in most systems, it
is totally removed from TCP/IP version 6
7. BOOTP (cont’d)
Operation
Steps involved in use of
the BOOTP protocol
1) BOOTP server uses UDP port 67
and waiting for a client
2) The client sends a BOOTP request
message to the server. The client uses
0s as the source address and all 1s as the
destination address.
3) The server replies to the client with
either a broadcast or a unicast message
using UDP destination port 68.
8. BOOTP (cont’d)
UDP Ports
BOOTP is the client’s use of the well-known
port 68 instead of an ephemeral port
if two hosts with same well-known port 68
use BOOTP at the same time in case of
broadcasting the reply, both hosts receive
the message.
In this case, transaction ID is used
Using TFTP
If a client needs more information for
booting, the client can use the pathname of
a file sent by server which the client can
find complete booting information.
9. BOOTP (cont’d)
Relay agent
In case that does not include a BOOTP sever
in each LAN, a remote BOOTP server may
serve several LANs
If a client needs to be booted, it cannot
reach the remote sever using the broadcast
address because an address of all 1s has only
local jurisdiction.
So, a relay agent is used to send local
requests to remote severs
12. BOOTP (cont’d)
Operation code : request(1) or reply (0)
Transaction ID : set by the client and used
to match a reply with the request
Number of seconds : indicating the
number of seconds elapsed since the time
the client started to boot
Your IP address : client address filled by
server (in the client message)
Server IP address : in a reply message
13. BOOTP (cont’d)
Server name : the domain name of the
server in a reply packet
Boot filename : the full pathname of the
boot in a reply packet (128-byte)
Options : used in a reply message (64-
byte)
carrying either additional information (such as the
network mask or default router address) or some
specific vendor information