Bootstrap Protocol (BOOTP) –protokół komunikacyjny typuUser Datagram Protocol (UDP) umożliwiającykomputerom wsieci uzyskanie odserwera danych konfiguracyjnych, na przykładadresu IP. Rozwinięciem i następcą protokołu BOOTP jestDynamic Host Configuration Protocol (DHCP).
BOOTP jest zdefiniowany w RFC 951[1].
- Klient formułuje i wysyła zapytanie BOOTP na adresbroadcast (port docelowy 67, port źródłowy 68). Operacje wykonywane przed wysłaniem:
- Klient ustawia „liczbę skoków” na 0. Każdy pośrednirouter będzie zwiększał tę liczbę o 1. Jeśli wartość ta przekroczy skonfigurowane na serwerze maksimum, pakiet zostanie odrzucony.
- Klient ustawia „liczbę sekund” na 0. Jeśli nie otrzyma odpowiedzi, klient ponawia zapytanie, ustawiając pole, ponownie wpisując liczbę sekund, jaka upłynęła od czasu wysłania pierwszego pakietu BOOTREQUEST.
- Klient ustawia „adres IP bramki” na 0. Serwer BOOTP po odczytaniu tak wypełnionego pola wpisuje w nie swój adres.
- Jeśli klient zna swój adres IP, wypełnia pole „adres IP klienta”.
- Serwer, po odebraniu pakietu, sprawdza, czy posiada konfigurację dla klienta. Jeśli tak jest, wysyła odpowiedni pakiet BOOTREPLY do klienta zawierający wymagane informacje konfiguracyjne lub nazwę pliku, który klient pobiera z serwera, wykorzystującTFTP.
- Jeśli serwer nie posiada konfiguracji dla klienta, sprawdza, czy posiada dla niego informację o przekazaniu zapytania do innego serwera BOOTP. Jeśli tak nie jest, pakiet jest odrzucany. W przeciwnym wypadku serwer sprawdza, czy:
- „liczba skoków” przekroczyła skonfigurowane maksimum
- „liczba sekund” przekroczyła dopuszczalną wartość
- Jeśli którykolwiek z warunków jest spełniony, pakiet zostaje odrzucony. Jeśli żaden nie jest spełniony, serwer przekazuje zapytanie do innego serwera BOOTP zgodnie z konfiguracją.
- Kroki 2, 3 są powtarzane dopóty, dopóki nie znajdzie się serwer gotowy udzielić odpowiedzi klientowi lub nie zostanie spełniony jeden z warunków odrzucenia pakietu.
UWAGA: Z użyciem protokołu BOOTP maszyna może wystartować poprzez bramkę, istotne jednak jest, aby serwer BOOTP zawierający informację o przekazaniu zapytania BOOTREQUEST znajdował się po tej samej stronie bramki co klient.
| 00-07 | 08-15 | 16-23 | 24-31 |
| operacja | typ sprzętu | długość adresu sprzętowego | liczba skoków |
| xid (identyfikator transakcji) |
| liczba sekund | nie używane |
| adres IP klienta |
| przydzielony adres IP klienta |
| adres IP serwera |
| adres IP bramki |
| adres sprzętowy klienta (16oktetów) |
| nazwa serwera (64 oktety) |
| plik startowy (128 oktetów) |
| opcje producenta (64 oktety) |
- operacja
- kod operacji, możliwe wartości to: BOOTREQUEST [1], BOOTREPLY [2]
- typ sprzętu
- liczba z zakresu 1-28 oznaczająca typ sprzętu (karty sieciowej). Dla sieci ethernetowej przyjmuje wartość 1.
- długość HA
- długość adresu sprzętowego używanego do identyfikacji urządzeń sieciowych
- liczba skoków
- zliczanie pośrednich ruterów biorących udział w transmisji pakietu
- xid
- wybierany losowo przez klienta identyfikator (w sytuacji, gdy serwer nie będzie w stanie 'zrozumieć' adresu sprzętowego klienta (wyśle odpowiedź nabroadcast),xid będzie jedynym sposobem rozpoznania odpowiedzi kierowanej do klienta)
- liczba sekund
- mierzony w sekundach czas, jaki upłynął od momentu pierwszego wysłania przez klienta wiadomości typu BOOTREQUEST
- flagi
- zdefiniowane w RFC 1542[2]
- adres IP klienta
- ustawia klient, jeśli zna
- przydzielony adres IP
- ustawia serwer
- adres IP serwera
- ustawia serwer
- adres IP bramki
- ustawia serwer
- adres sprzętowy klienta
- ustawia klient
- nazwa serwera
- ustawia serwer
- plik startowy
- ustawia serwer
- ↑W.J.W.J. Croft W.J.W.J.,J.J. Gilmore J.J.,Bootstrap Protocol,RFC 951,IETF, wrzesień 1985,DOI: 10.17487/RFC0951,ISSN2070-1721,OCLC 943595667 (ang.).
- ↑W.W. Wimer W.W.,Clarifications and Extensions for the Bootstrap Protocol,RFC 1542,IETF, październik 1993,DOI: 10.17487/RFC1542,ISSN2070-1721,OCLC 943595667 (ang.).