Please Whitelist This Site?

I know everyone hates ads. But please understand that I am providing premium content for free that takes hundreds of hours of time to research and write. I don't want to go to a pay-only model like some sites, but when more and more people block ads, I end up working for free. And I have a family to support, just like you. :)

If you like The TCP/IP Guide, please consider the download version. It's priced very economically and you can read all of it in a convenient format without ads.

If you want to use this site for free, I'd be grateful if you could add the site to the whitelist for Adblock. To do so, just open the Adblock menu and select "Disable on tcpipguide.com". Or go to the Tools menu and select "Adblock Plus Preferences...". Then click "Add Filter..." at the bottom, and add this string: "@@||tcpipguide.com^$document". Then just click OK.

Thanks for your understanding!

Sincerely, Charles Kozierok
Author and Publisher, The TCP/IP Guide


NOTE: Using software to mass-download the site degrades the server and is prohibited.
If you want to read The TCP/IP Guide offline, please consider licensing it. Thank you.

The Book is Here... and Now On Sale!

Get The TCP/IP Guide for your own computer.
The TCP/IP Guide

Custom Search







Table Of Contents  The TCP/IP Guide
 9  TCP/IP Application Layer Protocols, Services and Applications (OSI Layers 5, 6 and 7)
      9  TCP/IP Network Configuration and Management Protocols (BOOTP, DHCP, SNMP and RMON)
           9  Host Configuration and TCP/IP Host Configuration Protocols (BOOTP and DHCP)
                9  TCP/IP Bootstrap Protocol (BOOTP)

Previous Topic/Section
BOOTP Overview, History and Standards
Previous Page
Pages in Current Topic/Section
1
23
Next Page
BOOTP Detailed Operation
Next Topic/Section

BOOTP Client/Server Messaging and Addressing
(Page 1 of 3)

While BOOTP can be used for a variety of devices, one of the prime motives behind its creation was to provide a way to automatically configure “dumb” devices that have no storage. Most of these devices are relatively limited in their capabilities, and so requiring them to support a fancy boot protocol would not make sense. BOOTP is thus an uncomplicated protocol, which accomplishes host configuration without a lot of fancy concepts or implementation requirements.

BOOTP Clients and Servers

Like so many other TCP/IP protocols, BOOTP is client/server in nature. The operation of the protocol consists of a single exchange of messages between a BOOTP client and a BOOTP server. A BOOTP client can be any type of device that needs to be configured. A BOOTP server is a network device that has been specially set up to respond to BOOTP client requests, and has been programmed with addressing and other information it can provide to clients when required.

The BOOTP server maintains a special set of information about the clients it serves. One key part of this is a table that maps the hardware (layer two, data link layer) addresses of each client to an assigned IP address for that device. The client specifies its hardware address in its request, and the server uses that address to look up the client's IP address and return it to the client. (Other techniques can also be used, but a mapping table is most common.)

Messaging and Transport

BOOTP messaging uses the User Datagram Protocol (UDP) as its layer four transport protocol, for a couple of reasons. First, UDP is a lot less complex than the other layer-four transport protocol (TCP) and is ideal for simple “request/reply” protocols like BOOTP. Second, since the client obviously doesn't know the address of a BOOTP server, the request is broadcast on its local network; UDP supports broadcasts while TCP does not.

UDP uses a special well-known (reserved) port number for BOOTP servers: UDP port 67. BOOTP servers “listen” on port 67 for these broadcast BOOTP requests sent by clients. After processing the request, the server sends a reply back to the client. How this is handled depends on whether the client knows its own address or not:

  • Client Knows Its Address: There are some cases where the BOOTP client already knows its own address. In this case, the address can be used by the BOOTP server to send back its reply directly.

  • Client Does Not Know Its Own Address: BOOTP is of course often used to provide an IP address to a client that doesn't know its address. This is sometimes called a “chicken and egg” problem, because it represents a “loop” of sorts like the old conundrum of “which came first, the chicken or the egg”. To resolve this dilemma, the BOOTP server has two choices. If the operating system supports it, the server can use the client's hardware address to create an ARP entry for the device, and then use a layer-two unicast to deliver the reply. Otherwise, it must send the reply as a broadcast as well on the local network.

Previous Topic/Section
BOOTP Overview, History and Standards
Previous Page
Pages in Current Topic/Section
1
23
Next Page
BOOTP Detailed Operation
Next Topic/Section

If you find The TCP/IP Guide useful, please consider making a small Paypal donation to help the site, using one of the buttons below. You can also donate a custom amount using the far right button (not less than $1 please, or PayPal gets most/all of your money!) In lieu of a larger donation, you may wish to consider purchasing a download license of The TCP/IP Guide. Thanks for your support!
Donate $2
Donate $5
Donate $10
Donate $20
Donate $30
Donate: $



Home - Table Of Contents - Contact Us

The TCP/IP Guide (http://www.TCPIPGuide.com)
Version 3.0 - Version Date: September 20, 2005

© Copyright 2001-2005 Charles M. Kozierok. All Rights Reserved.
Not responsible for any loss resulting from the use of this site.