We have discussed why RARP is a bad option. So we are going to use BOOTP and DHCP for that purpose.
BOOTP is an application layer protocol and it maps physical address to logical address.
BOOTP messages are encapsulated in UDP packets and UDP packets are itself IP packets.
One of the routers is given some special power and it knows the direct address of the BOOTP server.
Requesting device is present in the same Network of BOOTP server:
Here requesting device will broadcast a request message because the sender doesn't know the IP address of the BOOTP server.
The reply is always unicast from the BOOTP server.
CASE 2:-When Requesting device and BOOTP server are present in a different network:
Broadcast message can't pass through network boundary so the sender will first broadcast a request message and relay agent will see it. Then Relay agent will transfer that message to the BOOTP server in a unicast manner.
Reply form BOOTP server to Relay agent is UNICAST and form RELAY agent to requesting device is also UNICAST.
BOOTP is not so efficient because it uses a static mapping table.
The working of BOOTP is like this:
let's say 'A' is requesting device and when it sends it request to BOOTP server using some relay agent or directly, then BOOTP server consults a mapping table which is already created and installed. It matches the MAC address of 'A 'and then finds its IP address.
But what if machine A changes its physical location or wants a temporary IP address then BOOTP server can't handle these types of situations. So we use DHCP.