Boot Service Discovery Protocol
   HOME

TheInfoList



OR:

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 ancestor, ' ...
-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 kind ...
, or hard disk. 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 implementation
of BSDP is Darwin'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 part ...
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 "M ...
'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 transistorsIntel Intel Corporation is an American multinational corporation and technology company headquartered in Santa Clara, California. It is the world's largest semiconductor chip manufacturer by revenue, and is one of the developers of the x86 seri ...
-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 it ...
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
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 documentation
from Apple's bootpd * several conversations captured with
Wireshark Wireshark is a free and open-source packet analyzer. It is used for network troubleshooting, analysis, software and communications protocol development, and education. Originally named Ethereal, the project was renamed Wireshark in May 2006 d ...
*
Source code In computing, source code, or simply code, is any collection of code, with or without comments, written using a human-readable programming language, usually as plain text. The source code of a program is specially designed to facilitate the w ...
of Darwin'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 part ...
server, https://github.com/apple-oss-distributions/bootp


References

{{Reflist Network booting Application layer protocols