Протокол BootP. Предназначение и функциониране. Използвани портове
Протоколът BOOTP беше предназначен да замени протокола RARP. Освен извличането на адресна информация, бездисковият хост също така можеше да отправи запитване за получаване на отдалечен файл за начално зареждане (boot file) от TFTP сървър или някои друг отдалечен сървър за начално зареждане. Всички BOOT сървъри поддържат локална статична таблица, асоциираща хардуерни адреси с валидни IP адреси. BOOTP използва за доставяне услугите на UDP и IP. При BOOTP маршрутизаторите могат да препращат BOOTP запитвания и отговори. Това позволява BOOTP сървърите да бъдат разполагани стратегически из мрежата, без да е необходим BOOTP сървър във всеки мрежов сегмент.
Код на операция
Това еднобайтово поле задава типа на изпращаната BOOTP дейтаграма. Стойност 1 означава BOOTP запитване (изпращано от клиенти), а стойност 2 означава BOOTP отговор (изпращан от сървъри)
Тип на хардуера
Това еднобайтово поле показва типа на хардуера, като Ethernet, Token Ring или някакъв друг тип мрежа. Например Ethernet има стойност 1 записана в това поле.
Дължина на хардуерен адрес
Това еднобайтово поле показва дължината в байтове на хардуерния адрес, който BOOTP очаква като резултат от преобразуването на адреси. Тази стойност варира в зависимост от типа на хардуера.
Скокове
Това еднобайтово незадължително поле показва, че клиентът извлича отдалечена информация за първоначално зареждане, която преминава през един или повече маршрутизатори. В него са записани броя на скоковете, които трябва да направи тази дейтаграма. Клиентът първоначално задава на това поле стойност 0. Шлюзовете инкрементират тази стойност с единица всеки път, когато препращат BOOTP запитване.
Идентификатор на транзакция
Въпреки че BOOTP е без установяване на връзка, той имплементира стойност на идентификатор на транзакция. Това позволява на клиента да постигне съответствие между своето запитване и отговора на сървър. Клиентът избира стойността на идентификатора случайно. Това поле има 4 байта.
Секунди
При инициализация всеки клиент задава тази стойност на таймер, определяйки по този начин колко дълго ще чака за отговор от BOOTP сървър. Полето за секунди има 2 байта. Неизползвано BOOTP не използва това 2-байтово поле.
IP адрес на клиент
При първото първоначално зареждане на клиента, стойността на това поле съдържа само нули. Ако клиентът е бездисков, това поле винаги ще има стойност нула, защото клиентът няма място за съхраняване на използваните преди това параметри. Ако клиентът не е бездисков и е съхранил тази информация, това поле ще съдържа оригиналния IP адрес, зададен от BOOTP сървъра, който клиентът е съхранил и иска да използва отново.
Вашият IP адрес
В ВООТР запитване, изпратено от клиент, са възможни следните ситуации:
- Ако предишното поле (IP адрес на клиент) съдържа само нули, това поле не се използва. Клиентът никога не е получавал адрес от BOOTP сървър.
- Ако клиентът знае своя IP адрес и иска да продължи да използва този адрес, това поле ще съдържа същата стойност (оригиналния IP адрес, зададен от сървъра).
- В BOOTP отговора тази стойност ще бъде IP адреса, зададен от BOOTP сървъра на този клиент.
IP адрес на сървър
Ако клиентът не знае адреса на сървъра, това поле ще съдържа само нули. Само нули ще имаме когато клиентът се инициализира за първи път или е бездисков клиент без област за съхраняване. Ако BOOTP клиентът преди това е получил своята конфигурация от отдалечен BOOTP сървър и е съхранил тази информация, това поле ще съдържа IP адреса на сървъра, които е използвал преди това.
IP адрес на шлюз
Когато нов хост изпраща своето първоначално запитване, това поле трябва да съдържа само нули. Ако BOOTP клиент знае, че трябва да препрати това запитване през локален шлюз и знае адреса на шлюза или препредаващия агент, той добавя тази информация. Ако клиентът не знае тази информация (може би това е първото му първоначално зареждане), той предава бродкастно запитването, след което шлюзът или препредаващият агент, препращащи тази дейтаграма, добавят своя IP адрес. Ако клиентът е съхранил тази информация от предишното първоначално зареждане, това поле ще съдържа IP адреса на шлюза или препредаващия агент, който клиентът е използвал преди това.
Хардуерен адрес на клиента
Това поле идентифицира хардуерния адрес на BOOTP клиента. Например ако BOOTP клиентът има хардуерен Ethernet адрес, това поле ще съдържа 6-байтов или 48-битов уникален адрес, записан в постоянната памет на мрежовия контролер. Това поле може да има до 16 байта.
Име на сървър
Тази незадължителна стойност идентифицира BOOTP сървъра по име. Стойността указва, че конкретен BOOTP сървър може да отговори. Ако тази стойност е оставена празна, всеки сървър може да отговори. Полето може да има до 64 байта. Име на файла за първоначално зареждане Тази незадължителна стойност идентифицира името на файла за първоначално зареждане, който BOOTP клиентът може да поиска от BOOTP сървъра, за да извлече конфигурационна информация, пренасяща параметри за отдалечена инициализация на хоста. Когато сървърът отговори, той идентифицира пълния път до файла за първоначално зареждане. Ако клиентът остави това поле празно, сървърът се опитва да свали подразбиращия се файл за първоначално зареждане за клиента. Ако не съществува подразбиращ се файл и това поле е празно, сървърът връща на клиента само основни параметри, като IP адрес и адрес на шлюз, но не и файл за първоначално зареждане. Това поле може да има до 128 байта.
Поле на производителя
Това поле съдържа списък от специфични опции, за които клиентът отправя запитвания или му биват задавани. Конкретните параметри варират в зависимост от имплементацията на производителя.



