Jede BOOTP-Nachricht beginnt mit dem 8 Bit langen op-Feld, das den Typ der Operation bzw. der Nachricht definiert. Bei Anfragen durch den Client wird an dieser Stelle der Wert 1 (für BOOTREQUEST) gesetzt, während die Antworten des Servers den Wert 2 (für BOOTREPLY) aufweisen. Es folgen jeweils 8 Bit, die den Typ („htype“) sowie die Länge der Hardware-Adresse („hlen“) kennzeichnen. Das ebenfalls 8 Bit lange Feld „hops“ gibt die Zahl an Zwischenstationen an, die das Paket auf dem Weg zum Empfänger durchquert. Bei Client-Anfragen ist der Wert immer 0.
Der nächste Block enthält eine zufällige, 32 Bit lange Transaktions-ID, die vom Client generiert und später auch in der Antwort des Servers verwendet wird, damit der Client diese eindeutig zuordnen kann. Der Client füllt außerdem das Feld „secs“ (16 Bit) aus, das die Sekunden angibt, die seit dem Bootversuch des Clients vergangen sind. Den Abschluss der einleitenden Informationen bildet ein weiteres 16-Bit-Feld, das gänzlich leer bleibt. Bei den weiteren Einträgen des BOOTP-Pakets handelt es sich nun um die eigentlichen Netzwerkinformationen, die in der folgenden Auflistung näher erläutert werden:
- IP-Adresse des Clients (ciaddr): Mit dem Label „ciaddr“ (client ip address) wird das 32-Bit-Feld ausgezeichnet, in das der Client seine eigene IP-Adresse einträgt, sofern er diese bereits kennt. Ist dies nicht der Fall, erhält das Feld den Wert 0.
- IP-Adresse des Clients (yiaddr): Das Feld „yiaddr“ (your ip address) ist ebenfalls für die IP-Adresse des Clients reserviert. Im Gegensatz zu dem zuvor genannten Abschnitt des Pakets wird dieses 32-Bit-Feld jedoch durch den Server ausgefüllt, falls der Client seine IP-Adresse zum Zeitpunkt der Erstellung der Netzwerkabfrage nicht kannte.
- IP-Adresse des Servers (siaddr): In der 32-Bit-Sequenz „siaddr“ (server ip address) teilt der BOOTP-Server dem Client seine eigene IP-Adresse mit.
- IP-Adresse des Gateways (giaddr): Ist ein Gateway (z. B. ein Router) in den Kommunikationsprozess eingebunden, wird dessen Adresse in das Feld „giaddr“ (gateway ip address) eingetragen.
- Hardware-Adresse des Clients (chaddr): Die Hardware-Adresse (128 Bit) zählt zu den Pflichtangaben des Clients beim Austausch von Bootstrap-Protocol-Nachrichten. Ohne diese auch Geräte- oder MAC-Adresse genannte ID kann der Server dem Client weder die richtige Adresse noch die passenden Netzwerkparameter zuordnen.
- Hostname des Servers (sname): Optional kann der Server in der BOOTP-Antwort außerdem seinen Hostnamen angeben. Hierfür steht ein bis zu 512 Bit großes Feld zur Verfügung, in das er eine entsprechende nullterminierte Zeichenkette (ein Nullzeichen markiert das Ende der Kette) einfügen kann.
- Name der Bootdatei (file): Ebenfalls optional ist die Angabe einer konkreten Bootdatei, die der Client zum Starten des Betriebssystems auf dem jeweiligen Terminal bzw. der jeweiligen Workstation benötigt. Auch dieses Feld sieht eine nullterminierte Zeichenkette vor, die in diesem Fall den vollständigen Verzeichnis-Pfad der Datei wiedergibt. Die Zeichensequenz kann dabei bis zu 1024 Bit lang sein. In der Request des Clients steht hier entweder der Wert 0 oder ein generischer Name.
- Herstellerspezifische Informationen (vend): Den potenziellen Abschluss der BOOTP-Protokoll-Nachricht bilden herstellerspezifische Informationen, die nicht durch das Protokoll abgedeckt werden. Dabei kann es sich beispielsweise um die Angabe spezieller Hardware-Typen und -Seriennummern handeln. Ferner kann dieser 512 Bit lange Informationsbereich für einen dritten Bootstrap- oder Kernelprozess reserviert werden.
Insgesamt können die BOOTP-Nachrichten also eine Länge von bis zu 2400 Bit (300 Bytes) haben. Das komplette UDP/IP-Datagramm inklusive eingebundener Bootstrap-Protocol-Anfrage bzw. -Antwort hat folgenden Aufbau: