BOOTP: Bootstrap Protocol
Protocol Description
The Bootstrap Protocol (BOOTP) is a UDP/IP-based protocol which allows a booting host to configure itself dynamically and without user supervision. BOOTP provides a means to notify a host of its assigned IP address, the IP address of a boot server host and the name of a file to be loaded into memory and executed. Other configuration information such as the local subnet mask, the local time offset, the addresses of default routers and the addresses of various Internet servers, can also be communicated to a host using BOOTP.
BOOTP uses two different well-known port numbers. UDP port number 67 is used for the server and UDP port number 68 is used for the BOOTP client. The BOOTP client broadcasts a single packet called a BOOTREQUEST packet that contains the client’s physical network address and optionally, its IP address if known. The client could send the broadcast using the address 255.255.255.255, which is a special address called the limited broadcast address. The client waits for a response from the server. If a response is not received within a specified time interval, the client retransmits the request.
The server responds to the client’s request with a BOOTREPLY packet. The request can (optionally) contain the ‘generic’ filename to be booted, for example, ‘unix’ or ‘ethertip’. When the server sends the bootreply, it replaces this field with the fully qualified path name of the appropriate boot file. In determining this name, the server may consult its own database correlating the client’s address and filename request, with a particular boot file customized for that client. If the bootrequest filename is a null string, then the server returns a filename field indicating the ‘default’ file to be loaded for that client.
In the case of clients which do not know their IP addresses, the server must also have a database relating hardware address to IP address. This client IP address is then placed into a field in the bootreply.
BOOTP is an alternative to RARP, which operates at the Data Link Layer for LAN only. BOOTP, a UDP/IP based configuration protocol, provides much more configuration information and allows dynamic configuration for an entire IP network. BOOTP and its extensions became the basis for the Dynamic Host Configuration Protocol (DHCP).
Protocol Structure
Op: The message operation code. Messages can be either BOOTREQUEST or BOOTREPLY.
Htype The hardware address type.
Hlen The hardware address length.
Xid The transaction ID.
Secs The seconds elapsed since the client began the address acquisition or renewal process.
Flags The flags. Ciaddr The client IP address.
Yiaddr The “Your” (client) IP address.
Siaddr The IP address of the next server to use in bootstrap.
Giaddr The relay agent IP address used in booting via a relay agent.
Chaddr The client hardware address.
Sname Optional server host name, null terminated string
File Boot file name, null terminated string; generic name or null in DHCPDISCOVER, fully qualified directory-path name in DHCPOFFER.
Options Optional parameters field.
No comments