Journeys

Booting a machine with no disk

How a computer with nothing but a hardware address learns who it is on the network, from ARP and RARP through BOOTP and DHCP to DHCPv6.

  1. 01

    Find your neighbours ARP

    Before any host can send an IP packet on Ethernet it has to turn the destination IP address into a hardware address. ARP does that by asking the whole segment, and RARP reuses its packet format.

    RFC 826 ARP

  2. 02

    Ask for your own address RARP

    A machine that knows only its hardware address broadcasts a request and a server that holds a hardware-to-IP table answers. It works on one network segment and returns only an address.

    RFC 903 RARP

  3. 03

    Make it routable BOOTP

    BOOTP carries the same idea over UDP and IP so requests can be relayed across routers, and the reply can also name a server and a boot file. RFC 1542 clarified how BOOTP behaves across relays.

    RFC 951 BOOTPRFC 1542 BOOTP Clarifications

  4. 04

    Fetch the boot image TFTP

    With an address and a boot file name in hand, a diskless machine typically downloads its operating system image over TFTP, a deliberately tiny file-transfer protocol that fits in a boot ROM.

    RFC 1350 TFTP

  5. 05

    Leases and options DHCP

    DHCP grew out of BOOTP. It hands out addresses for a limited time, so they can be reclaimed, and carries a long list of options such as gateway, DNS servers and domain name.

    RFC 2131 DHCPRFC 2132 DHCP Options

  6. 06

    The IPv6 successor DHCPv6

    IPv6 hosts can configure themselves, but DHCPv6 still hands out addresses and options where administrators want control. DHCPv6 was revised as RFC 8415 and then again as RFC 9915.

    RFC 9915 DHCPv6 (current)RFC 8415 DHCPv6 (previous revision)