Boot Service Discovery Protocol ( BSDP ) — это разработанное Apple , соответствующее стандартам расширение DHCP . [1] Оно позволяет компьютерам Macintosh загружаться с загрузочных образов в сети вместо локальных носителей, таких как CD , DVD или жесткий диск . Используемые параметры DHCP — это параметр «vendor-specific information» (номер 43) и параметр «vendor class identifier» (номер 60). Существует три версии BSDP, хотя обычно используется версия 1.0. Все версии позволяют клиенту выбирать из нескольких загрузочных образов, предлагаемых сервером . Эталонной реализацией BSDP является сервер Darwin BOOTP , который является частью функции NetBoot в Mac OS .
DHCP-сервер и клиент отправляют параметр класса поставщика, содержащий строку в кодировке ASCII с тремя частями, разделенными символом / . Первая часть — AAPLBSDPC , которая объявляет о возможностях BSDP. Вторая часть — архитектура клиента (« ppc » или « i386 »). Третья часть — идентификатор системы. Например, iMac на базе Intel отправляет
AAPLBSDPC/i386/iMac4,1
как его класс поставщика. Список классов поставщиков Microsoft можно найти здесь.
Опция DHCP 43 зарезервирована для информации, специфичной для поставщика. [2] Эта информация хранится в следующем формате:
Код Len Информация о поставщике +-----+-----+-----+-----+--- | 43 | н | и1 | и2 | ... +-----+-----+-----+-----+---
Если поставщик хочет передать несколько опций в этом поле опций, это делается с помощью инкапсулированных расширений, специфичных для поставщика. Инкапсулированные расширения поставщика содержат одно или несколько объединенных полей. Каждое поле состоит из:
В следующей таблице описаны возможные типы полей. Все числовые поля интерпретируются как беззнаковые и целые числа с обратным порядком байтов .
Следующий пример иллюстрирует конструкцию Vendor Encapsulated Option:
0000 01 01 02 08 04 81 00 07 e5 82 0a 4e 65 74 42 6f 6f ........ ..NetBoo 0010 74 30 30 31 t001
Первое поле здесь, 01 01 02, означает, что пакет является сообщением BSDP "SELECT". 01 объявляет, что поле определяет тип сообщения BSDP. Следующий 01 указывает, что содержимое поля имеет длину в один байт — 02 является кодом для "SELECT".
Следующий код 08 04 81 00 07 e5 означает, что выбран загрузочный образ с идентификатором 2164262885.
Наконец, 82 0a 4e 65 74 42 6f 6f 74 30 30 31 означает, что строка с 0x 0a = 10 символами, а именно «NetBoot001», является именем системы для загрузки.