BOOTP (Bootstrap Protocol) обеспечивает определение с помощью специального сервера
IP адреса клиента по его MAC адресу (например, при загрузке устройства,
не имеющего возможности хранить свой собственный IP адрес),
а также позволяет клиентам узнавать другие параметры загрузки
(например, имя программы, загружаемой затем с помощью TFTP)
и использует UDP в качестве протокола канального уровня.
Порт сервера - UDP/67 (BOOTPS), клиента - UDP/68 (BOOTPC).
Клиент делает широковещательный (255.255.255.255 - всем в локальной сети, номера которой я не знаю)
запрос bootrequest (один нефрагментированный пакет):
обязательно содержит аппаратный MAC адрес клиента и может содержать преполагаемый IP-адрес клиента,
имя сервера и обобщенное имя файла для загрузки.
Сервер отвечает пакетом bootreply (обычно unicast, т.к. MAC и IP адреса клиента ему известны):
IP-адрес клиента, обобщенное имя файла замещается на полное имя файла исходя из конфигурации сервера,
типа и адреса клиента и др. Собственно загрузка файла осуществляется клиентом с помощью протокола TFTP.
Клиент должен быть в состоянии ответить на ARP запросы, чтобы мог работать TFTP-сервер.