Bootp vs Rarp
BOOTP and RARP both hand an IP address to a booting machine, but only one of them earned a future. The verdict on two legacy network bootstrap protocols.
The short answer
Bootp over Rarp for most cases. BOOTP carried a full configuration payload (IP, gateway, boot server, filename) over routable UDP, so it crossed subnets and became the direct ancestor of DHCP.
- Pick Bootp if studying how network bootstrap actually works, tracing DHCP's lineage, or maintaining anything that touched PXE — BOOTP is the real branch of the family tree
- Pick Rarp if reading a 1984 RFC for historical curiosity or supporting a fossilized diskless workstation that somehow still boots. Otherwise, never
- Also consider: Neither belongs in a new deployment. In practice you run DHCP, which absorbed everything BOOTP did and made RARP irrelevant. Pick these only as learning artifacts, not as live infrastructure.
— Nice Pick, opinionated tool recommendations
What they actually are
Both solve the same chicken-and-egg problem: a freshly booted, diskless machine knows its hardware (MAC) address but not its IP. RARP (Reverse ARP, RFC 903, 1984) flips the ARP question — it broadcasts 'here is my MAC, tell me my IP.' That's all it does. One answer, nothing else. BOOTP (Bootstrap Protocol, RFC 951, 1985) showed up a year later and looked at RARP's single trick with open contempt. It returns the IP plus the subnet mask, default gateway, the boot server's address, and the boot filename — a whole configuration in one exchange. RARP answers a question; BOOTP provisions a machine. Same era, same problem, wildly different ambition. One of these protocols was thinking about the next ten years and one was thinking about the next packet.
The layer-2 cage that killed RARP
RARP's fatal flaw is architectural, not cosmetic. It rides directly on top of the link layer — it is not a UDP/IP service, it is its own Ethernet frame type. That means RARP cannot be routed. A RARP request dies at the first router it meets, so every single subnet needs its own RARP server holding the MAC-to-IP table. In a building with twenty VLANs that's twenty servers and twenty hand-maintained tables. BOOTP runs over UDP/IP and supports relay agents, so one central server handles the whole network across subnet boundaries. This is the difference between a protocol that scales and a protocol that makes you copy a config file to every closet. RARP wasn't unlucky; it was built in a cage and never tried to leave.
Lineage decides it
Follow the bloodline and the argument ends. BOOTP didn't just beat RARP — it became the foundation of DHCP. DHCP is, quite literally, BOOTP with extensions: the same packet format, the same UDP ports (67/68), backward compatibility with BOOTP relays, and the 'vendor extensions' field repurposed into DHCP options. Every IP address your laptop has ever leased traces back through DHCP to the BOOTP packet structure. RARP's descendants? There are none worth naming. It was so thin that even its narrow job got swallowed whole. When you can draw a straight inheritance line from a 1985 protocol to the thing running on every network on Earth in 2026, and the competitor left no heirs at all, the comparison is not close.
When either still shows up
You will not deploy these on purpose. Where they surface is legacy: old PXE boot chains reference BOOTP semantics, some embedded and diskless-workstation firmware from the SPARC/Sun era spoke RARP, and CCNA-style coursework still drags both out to explain how DHCP got here. If you're debugging an ancient netboot setup and see RARP traffic, treat it as a sign you're in a time capsule, not a system to extend — migrate it to DHCP. BOOTP knowledge is at least transferable because DHCP inherited its shape; RARP knowledge is trivia. Learn BOOTP to understand the network you actually run. Learn RARP only to appreciate why nobody runs it anymore. Both are retired; only one retired with a legacy.
Quick Comparison
| Factor | Bootp | Rarp |
|---|---|---|
| Data returned | Full config: IP, mask, gateway, boot server, boot filename | IP address only |
| Network layer | UDP/IP — routable, supports relay agents across subnets | Link layer — cannot be routed, one server per subnet |
| Legacy / lineage | Direct ancestor of DHCP (same ports, packet format) | Dead end, no surviving descendants |
| Scalability | One central server for the whole network | Per-subnet server with hand-maintained MAC tables |
| Relevance today | Conceptually alive via DHCP and PXE | Museum-grade trivia |
The Verdict
Use Bootp if: You are studying how network bootstrap actually works, tracing DHCP's lineage, or maintaining anything that touched PXE — BOOTP is the real branch of the family tree.
Use Rarp if: You are reading a 1984 RFC for historical curiosity or supporting a fossilized diskless workstation that somehow still boots. Otherwise, never.
Consider: Neither belongs in a new deployment. In practice you run DHCP, which absorbed everything BOOTP did and made RARP irrelevant. Pick these only as learning artifacts, not as live infrastructure.
Bootp vs Rarp: FAQ
Is Bootp or Rarp better?
Bootp is the Nice Pick. BOOTP carried a full configuration payload (IP, gateway, boot server, filename) over routable UDP, so it crossed subnets and became the direct ancestor of DHCP. RARP could only return an IP, ran at the link layer, and died. One evolved; the other is a museum exhibit.
When should you use Bootp?
You are studying how network bootstrap actually works, tracing DHCP's lineage, or maintaining anything that touched PXE — BOOTP is the real branch of the family tree.
When should you use Rarp?
You are reading a 1984 RFC for historical curiosity or supporting a fossilized diskless workstation that somehow still boots. Otherwise, never.
What's the main difference between Bootp and Rarp?
BOOTP and RARP both hand an IP address to a booting machine, but only one of them earned a future. The verdict on two legacy network bootstrap protocols.
How do Bootp and Rarp compare on data returned?
Bootp: Full config: IP, mask, gateway, boot server, boot filename. Rarp: IP address only. Bootp wins here.
Are there alternatives to consider beyond Bootp and Rarp?
Neither belongs in a new deployment. In practice you run DHCP, which absorbed everything BOOTP did and made RARP irrelevant. Pick these only as learning artifacts, not as live infrastructure.
BOOTP carried a full configuration payload (IP, gateway, boot server, filename) over routable UDP, so it crossed subnets and became the direct ancestor of DHCP. RARP could only return an IP, ran at the link layer, and died. One evolved; the other is a museum exhibit.
Related Comparisons
Disagree? nice@nicepick.dev