Boot Service Discovery Protocol (BSDP) is an
Apple
An apple is a round, edible fruit produced by an apple tree (''Malus'' spp.). Fruit trees of the orchard or domestic apple (''Malus domestica''), the most widely grown in the genus, are agriculture, cultivated worldwide. The tree originated ...
-developed, standards-conforming extension of
DHCP
The Dynamic Host Configuration Protocol (DHCP) is a network management protocol used on Internet Protocol (IP) networks for automatically assigning IP addresses and other communication parameters to devices connected to the network using a clie ...
.
It allows
Macintosh
Mac is a brand of personal computers designed and marketed by Apple Inc., Apple since 1984. The name is short for Macintosh (its official name until 1999), a reference to the McIntosh (apple), McIntosh apple. The current product lineup inclu ...
computers to
boot
A boot is a type of footwear. Most boots mainly cover the foot and the ankle, while some also cover some part of the lower calf. Some boots extend up the leg, sometimes as far as the knee or even the hip. Most boots have a heel that is clearl ...
from bootable images on a
network instead of local storage media such as
CD,
DVD
The DVD (common abbreviation for digital video disc or digital versatile disc) is a digital optical disc data storage format. It was invented and developed in 1995 and first released on November 1, 1996, in Japan. The medium can store any ki ...
, or
hard disk
A hard disk drive (HDD), hard disk, hard drive, or fixed disk is an electro-mechanical data storage device that stores and retrieves digital data using magnetic storage with one or more rigid rapidly rotating hard disk drive platter, pla ...
. The DHCP options used are the "vendor-specific information" option (number 43) and the "vendor class identifier" option (number 60).
There are three versions of BSDP, though usually version 1.0 is used. All versions enable a
client
Client(s) or The Client may refer to:
* Client (business)
* Client (computing), hardware or software that accesses a remote service on another computer
* Customer or client, a recipient of goods or services in return for monetary or other valuable ...
to choose from several bootable images offered by a
server
Server may refer to:
Computing
*Server (computing), a computer program or a device that provides requested information for other programs or devices, called clients.
Role
* Waiting staff, those who work at a restaurant or a bar attending custome ...
.
Th
reference implementationof BSDP is
Darwin's
BOOTP server, which is part of
Mac OS
Mac operating systems were developed by Apple Inc. in a succession of two major series.
In 1984, Apple debuted the operating system that is now known as the classic Mac OS with its release of the original Macintosh System Software. The system ...
's
NetBoot feature.
Description
Contents of DHCP Vendor Class Identifier
The DHCP server and client send a vendor class option that contains an
ASCII
ASCII ( ), an acronym for American Standard Code for Information Interchange, is a character encoding standard for representing a particular set of 95 (English language focused) printable character, printable and 33 control character, control c ...
-encoded string with three parts delimited by a ''/'' character. The first part is ''AAPLBSDPC'', which advertises BSDP capability. The second part is the client's architecture ("
ppc" or "
i386
The Intel 386, originally released as the 80386 and later renamed i386, is the third-generation x86 architecture microprocessor from Intel. It was the first 32-bit processor in the line, making it a significant evolution in the x86 archite ...
"). The third part is a system identifier. For example, an
Intel
Intel Corporation is an American multinational corporation and technology company headquartered in Santa Clara, California, and Delaware General Corporation Law, incorporated in Delaware. Intel designs, manufactures, and sells computer compo ...
-based
iMac
The iMac is a series of all-in-one computers from Apple Inc., sold as part of the company's Mac (computer), Mac family of computers. First introduced in 1998, it has remained a primary part of Apple's consumer desktop offerings since and evol ...
sends
AAPLBSDPC/i386/iMac4,1
as its vendor class. A list of Microsoft vendor classes can be foun
here
Contents of DHCP Vendor Specific Information Options
DHCP Option 43 is reserved for vendor specific information. This information is stored in the following format:
Code Len Vendor-specific information
+-----+-----+-----+-----+---
, 43 , n , i1 , i2 , ...
+-----+-----+-----+-----+---
If the vendor wants to convey multiple options within this option field, this is done with encapsulated vendor-specific extensions. Vendor encapsulated extensions contain one or more concatenated fields. Each field consists of:
The following table describes the possible field types. All numeric fields are interpreted as unsigned and
Big Endian
'' Jonathan_Swift.html" ;"title="Gulliver's Travels'' by Jonathan Swift">Gulliver's Travels'' by Jonathan Swift, the novel from which the term was coined
In computing, endianness is the order in which bytes within a word (data type), word of d ...
integers
An integer is the number zero (0), a positive natural number (1, 2, 3, ...), or the negation of a positive natural number (−1, −2, −3, ...). The negations or additive inverses of the positive natural numbers are referred to as negative in ...
.
Example
The following example illustrates the construction of the Vendor Encapsulated Option:
The first field here, 01 01 02, means that the packet is a BSDP "SELECT" message. The 01 declares that field specifies the BSDP Message Type. The next 01 indicates that the field contents are one byte long — 02 is the code for "SELECT".
The following 08 04 81 00 07 e5 means that the boot image with the ID 2164262885 is selected.
Finally, 82 0a 4e 65 74 42 6f 6f 74 30 30 31 means that a
string
String or strings may refer to:
*String (structure), a long flexible structure made from threads twisted together, which is used to tie, bind, or hang other objects
Arts, entertainment, and media Films
* ''Strings'' (1991 film), a Canadian anim ...
with
0x0a = 10 characters, namely "NetBoot001", is the name of the system to boot.
Sources
BSDP documentationfrom Apple's bootpd
* several conversations captured with
Wireshark
Wireshark is a Free and open-source software, free and open-source packet analyzer. It is used for computer network, network troubleshooting, analysis, software and communications protocol development, and education. Originally named Ethereal, ...
*
Source code
In computing, source code, or simply code or source, is a plain text computer program written in a programming language. A programmer writes the human readable source code to control the behavior of a computer.
Since a computer, at base, only ...
of
Darwin's
BOOTP server, https://github.com/apple-oss-distributions/bootp
References
{{Reflist
Network booting
Application layer protocols