Previous Page | Next Page

  1. Introduction
  2. Network Topology
  3. Hardware Connections
  4. TCP/IP Ports and Addresses
  5. Network Protocol Levels
  6. Data Link Layer and IEEE
  7. Network Protocol Categories
  8. Repeaters, Bridges, Routers
  9. ARP and RARP Address Translation
  10. Basic Addressing
  11. IP (Network)
  12. TCP (Transport)
  13. UDP (Transport)
  14. ICMP
  15. Hardware Cabling
  16. Wireless media
  17. Outside Connections
  18. Ethernet
  19. Token Ring
  20. ARCnet
  21. AppleTalk
  22. FDDI
  23. IPX/SPX
  24. NetBEUI
  25. AppleTalk
  26. SNA
  27. Others
  28. Simple Routing
  29. More Complex Routing
  30. IP Masquerading
  31. Firewalls
  32. Domain Name Service (DNS)
  33. Virtual Private Networking
  34. DHCP
  35. BOOTP
  36. RPC and NFS
  37. Broadcasting and Multicasting
  38. IGMP
  39. Dynamic Routing Protocols
  40. Simple Mail Transfer Protocol (SMTP)
  41. Simple Network Management Protocol
  42. Network Services
  43. Installing Drivers
  44. Network Operating Systems
  45. Applications
  46. Wide Area Networks
  47. Backing up the network
  48. Fault Tolerance
  49. Troubleshooting
  50. Commonly used Network Ports
  51. Networking Terms and Definitions
  52. Networking RFCs and Protocols
  53. Further Reading
  54. Credits

BOOTP

BOOTP (Boot Protocol) may be used to boot remote computers over a network. BOOTP messages are encapsulated inside UDP messages and therefore its requests and replies are forwarded by routers. BOOTP is defined by RFCs 951 and 1542. The drawing below illustrates the data encapsulation:

BOOTP data encapsulation

The diskless system reads its unique hardware address from its network interface card then sends a BOOTP request. The table below shows the BOOTP package format from most significant bit to least significant bit.

Bit range# of BitsNameDescription
0-78Op codeTells if the message is a BOOTP request or reply. Request=1, reply=2
8-158Hardware typeIndicates the type of hardware (link level). A value of 6 indicates ethernet
16-238Hardware address lengthTells the length in bytes of the hardware address number. Ethernet addresses are 6 bytes long.
23-318Hop countInitially set to 0. Incremented each time it is forwarded.
32-6332Transaction IDA random number set by the client and returned by the server. Used to match replies with requests
64-7916Number of secondsThe time since the client started trying to bootstrap. Used to tell if a backup BOOTP server should respond.
80-9516unusednot used
96-12732Clients IP addressThe clients IP address. If a request, it is normally 0.0.0.0
128-15932IP address for clientThe server sets this in the reply message.
160-19132Server IP addressFilled in by the server.
192-22332Gateway IP addressReturned by the server.
224-351128Clients hardware addressProvided by the client.
352-13751024Server hostnameA null terminated string optionally filled in by the server.
1376-34232048Boot filenameA fully qualified boot file name with path information, terminated with a null. Supplied by the server.
3424-44471024Vendor informationUsed for various options to BOOTP including the subnet mask to the client.

The BOOTP server uses port 67 and the BOOTP client uses port 68. The following is a brief explanation of what happens when a remote client boots:

  1. BOOTP request. The client sends a BOOTP request from 0.0.0.0.68 to 255.255.255.255.67 with its ethernet address and number of second's fields filled in.
  2. BOOTP reply. The server responds with the client's IP address, the server's IP address (it's own), and the IP address of a default gateway.
  3. ARP request. The client issues an ARP to tell if the IP address it just received is being used. It uses 0.0.0.0 as it's own address
  4. ARP request. The client waits 0.5 seconds and repeats the same ARP request.
  5. ARP request. The client waits another 0.5 seconds and repeats the ARP request with it's own address as the senders address.
  6. BOOTP request. The client waits 0.5 seconds and sends another BOOTP request with its own IP address in the IP header
  7. BOOTP reply. The server sends the same BOOTP reply it sent the last time.
  8. ARP request. The client outputs an ARP request for the server hardware address
  9. ARP reply. The server replies with its own ethernet address.
  10. TFTP read request. The client sends a TFTP read request asking for its specified boot file.