Boot Service Discovery Protocol (BSDP) is an
Apple
An apple is an edible fruit produced by an apple tree (''Malus domestica''). Apple trees are cultivated worldwide and are the most widely grown species in the genus '' Malus''. The tree originated in Central Asia, where its wild ances ...
-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 cli ...
.
It allows
Macintosh
The Mac (known as Macintosh until 1999) is a family of personal computers designed and marketed by Apple Inc. Macs are known for their ease of use and minimalist designs, and are popular among students, creative professionals, and software en ...
computers to
boot from bootable images on a
network
Network, networking and networked may refer to:
Science and technology
* Network theory, the study of graphs as a representation of relations between discrete objects
* Network science, an academic field that studies complex networks
Mathematics ...
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 kin ...
, 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 platters coated with mag ...
. 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 valuabl ...
to choose from several bootable images offered by a
server.
Th
reference implementationof BSDP is
Darwin
Darwin may refer to:
Common meanings
* Charles Darwin (1809–1882), English naturalist and writer, best known as the originator of the theory of biological evolution by natural selection
* Darwin, Northern Territory, a territorial capital city i ...
's
BOOTP
The Bootstrap Protocol (BOOTP) is a computer networking protocol used in
Internet Protocol networks to automatically assign an IP address to network devices from a configuration server. The BOOTP was originally defined in RFC 951.
While some p ...
server, which is part of
Mac OS
Two major famlies of Mac operating systems were developed by Apple Inc.
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, rebranded " ...
'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 ( ), abbreviated from American Standard Code for Information Interchange, is a character encoding standard for electronic communication. ASCII codes represent text in computers, telecommunications equipment, and other devices. Because ...
-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 80386 and later renamed i386, is a 32-bit microprocessor introduced in 1985. The first versions had 275,000 transistors[Intel
Intel Corporation is an American multinational corporation and technology company headquartered in Santa Clara, California, Santa Clara, California. It is the world's largest semiconductor chip manufacturer by revenue, and is one of the devel ...]
-based
iMac
iMac is a family of all-in-one Mac desktop computers designed and built by Apple Inc. It has been the primary part of Apple's consumer desktop offerings since its debut in August 1998, and has evolved through seven distinct forms.
In i ...
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
According to the DHCP Option carrying the number 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
In computing, endianness, also known as byte sex, is the order or sequence of bytes of a word of digital data in computer memory. Endianness is primarily expressed as big-endian (BE) or little-endian (LE). A big-endian system stores the mos ...
integers
An integer is the number zero (), a positive natural number (, , , etc.) or a negative integer with a minus sign ( −1, −2, −3, etc.). The negative numbers are the additive inverses of the corresponding positive numbers. In the language ...
.
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 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
*
Source code
In computing, source code, or simply code, is any collection of code, with or without comment (computer programming), comments, written using a human-readable programming language, usually as plain text. The source code of a Computer program, p ...
of
Darwin
Darwin may refer to:
Common meanings
* Charles Darwin (1809–1882), English naturalist and writer, best known as the originator of the theory of biological evolution by natural selection
* Darwin, Northern Territory, a territorial capital city i ...
's
BOOTP
The Bootstrap Protocol (BOOTP) is a computer networking protocol used in
Internet Protocol networks to automatically assign an IP address to network devices from a configuration server. The BOOTP was originally defined in RFC 951.
While some p ...
server, https://github.com/apple-oss-distributions/bootp
References
{{Reflist
Network booting
Application layer protocols