Bootp/dhcp
The Bootstrap Protocol (BOOTP) is an older Host Configuration Protocol which has been around much longer than Dynamic Host Configuration Protocol (DHCP). Both act very similarly except DHCP adds a few enhancements onto BOOTP. They both provide server assigned IP addressing to BOOTP/DHCP clients. DHCP includes the BOOTP protocol for backward compatibility with legacy devices. So any DHCP server can also receive BOOTP broadcast requests from legacy BOOTP only clients. BOOTP is used more so for assigning static IP addresses, whereas DHCP is used for assigning either static, or leased dynamic IP addresses.
The following is based on using Rockwell Automation's BOOTP/DHCP software v2.3.2...
When a client boots up without an IP address, and has BOOTP enabled, it will broadcast its MAC address onto the network using UDP request packets, seeking out a server to service those requests i.e. assign it an IP address. Once an IP address has been assigned, the client ceases broadcasting requests to the server.
Once a BOOTP server receives a BOOTP request, there are a couple of options as to how it assigns IP addresses.
1. Static IP addressing...
(a) Once the MAC address of the client is visible in the Request History window, you can now select Add to Relations List, and assign an IP address to the client. The relationship is now displayed in the Relation List window showing the MAC address paired with the IP address. If you now select the entry, the option to Disable BOOTP/DHCP will be available. Clicking this button will send a UDP packet back to the client to disable BOOTP. You should see a message at the bottom confirming that BOOTP has been successfully disabled. This way, when the client reboots, it will no longer broadcast its MAC address requesting an IP address from a BOOTP server. Instead, it will load the previously statically assigned IP address now stored in its own internal memory. The BOOTP/DHCP server can now be closed, without saving the Relation List entry, and the client will independently continue to use its stored static IP address.
However, not all client devices retain their static IP addresses upon reboot...
(b) For client devices that clear their static IP address from memory upon reboot - Here you assign a static IP address, but do not Disable BOOTP/DHCP. The Relation List entry must be saved so as to re-establish the relationship between the client's MAC address and the static IP address, each time it may reboot. The BOOTP server must remain open, with the Relation List loaded, and visible to the client on the network at all times should the client reboot.
2. Dynamic IP addressing...
If a client device is DHCP enabled, then within the BOOTP/DHCP software, DHCP will be working as the server to assign the IP address. A similar UDP broadcast request packet, containing the client's MAC address, is sent from the DHCP client. This time the server, recognizing the packet as a DHCP request, will lease the client a dynamic IP address from a user defined pool of addresses. This dynamic IP address will remain with the client until the lease expires. Once it has run out, the client will automatically rebind its leased IP address from the DHCP server, without any need to reboot. If the client is rebooted, then the cache is cleared, and the client resends fresh DHCP requests to the server to renew a dynamically assigned IP address. Again, the DHCP server must be running and visible on the network at all times to facilitate the clients requests.
So, depending on the device(s) broadcasting to it, BOOTP/DHCP can act as either a BOOTP, or DHCP Server, assigning either static or dynamic IP addressing.
NB: Static is the preferred IP addressing schema for deterministic automation control networks. Dynamically assigning IP addressing on such a network could lead to many problems, complications, and potentially dangerous situations.
Regards,
George