DHCP stands for Dynamic Host Control Protocol.
Static IP addresses are useful during application development, but they are impractical for product deployment because:
- They need to be hard coded either in the executable binary or external flash memory.
- IP addresses cannot be pre-assigned to products without prior knowledge of the network environment in which the products will be deployed.
- There is no prior knowledge of how many nodes will exist on the network, or indeed how many of the possible total number of nodes will be active at any one time.
If ipconfigUSE_DHCP is set to 1 in FreeRTOSIPConfig.h then FreeRTOS+TCP will attempt to obtain its IP address from a DHCP server, and only revert to using a static IP address (AutoIP is also on the roadmap) if a DHCP server cannot be contacted.
The device running FreeRTOS+TCP can register its hostname with the DHCP server. See the ipconfigDHCP_REGISTER_HOSTNAME configuration constant for more information.
Expert users can influence the DHCP process using an application DHCP hook (or ‘callback’) function.