Boot Service Discovery Protocol
Boot Service Discovery Protocol (BSDP) is an Apple-developed, standards-conforming extension of DHCP. It allows Macintosh computers to boot from bootable images on a network instead of local storage media such as CD, DVD, 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 to choose from several bootable images offered by a server. The reference implementation of BSDP is Darwin's BOOTP server, which  is part of Mac OS's NetBoot feature. Description. Contents of DHCP Vendor Class Identifier. The DHCP server and client send a vendor class option that contains an ASCII-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 third part is a system identifier. For example, an Intel-based iMac sends as its vendor class. A list of Microsoft vendor classes can be found 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: 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. 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.