25.02.2013 Views

TCP/IP Tutorial and Technical Overview - IBM Redbooks

TCP/IP Tutorial and Technical Overview - IBM Redbooks

TCP/IP Tutorial and Technical Overview - IBM Redbooks

SHOW MORE
SHOW LESS

You also want an ePaper? Increase the reach of your titles

YUMPU automatically turns print PDFs into web optimized ePapers that Google loves.

BOOTP is a draft st<strong>and</strong>ard protocol. Its status is recommended. The BOOTP<br />

specifications are in RFC 951, which has been updated by RFC1542 <strong>and</strong> RFC<br />

2132.<br />

There are also updates to BOOTP, some relating to interoperability with DHCP<br />

(see 3.7, “Dynamic Host Configuration Protocol (DHCP)” on page 130),<br />

described in RFC 1542, which updates RFC 951 <strong>and</strong> RFC 2132. The updates to<br />

BOOTP are draft st<strong>and</strong>ards with a status of elective <strong>and</strong> recommended,<br />

respectively.<br />

The BOOTP protocol was originally developed as a mechanism to enable<br />

diskless hosts to be remotely booted over a network as workstations, routers,<br />

terminal concentrators, <strong>and</strong> so on. It allows a minimum <strong>IP</strong> protocol stack with no<br />

configuration information to obtain enough information to begin the process of<br />

downloading the necessary boot code. BOOTP does not define how the<br />

downloading is done, but this process typically uses TFTP (see also 14.2, “Trivial<br />

File Transfer Protocol (TFTP)” on page 529), as described in RFC 906. Although<br />

still widely used for this purpose by diskless hosts, BOOTP is also commonly<br />

used solely as a mechanism to deliver configuration information to a client that<br />

has not been manually configured.<br />

The BOOTP process involves the following steps:<br />

1. The client determines its own hardware address; this is normally in a ROM on<br />

the hardware.<br />

2. A BOOTP client sends its hardware address in a UDP datagram to the server.<br />

Figure 3-43 on page 127 shows the full contents of this datagram. If the client<br />

knows its <strong>IP</strong> address or the address of the server, it should use them, but in<br />

general, BOOTP clients have no <strong>IP</strong> configuration data at all. If the client does<br />

not know its own <strong>IP</strong> address, it uses 0.0.0.0. If the client does not know the<br />

server's <strong>IP</strong> address, it uses the limited broadcast address (255.255.255.255).<br />

The UDP port number is 67.<br />

3. The server receives the datagram <strong>and</strong> looks up the hardware address of the<br />

client in its configuration file, which contains the client's <strong>IP</strong> address. The<br />

server fills in the remaining fields in the UDP datagram <strong>and</strong> returns it to the<br />

client using UDP port 68. One of three methods can be used to do this:<br />

– If the client knows its own <strong>IP</strong> address (it was included in the BOOTP<br />

request), the server returns the datagram directly to this address. It is<br />

likely that the ARP cache in the server's protocol stack will not know the<br />

hardware address matching the <strong>IP</strong> address. ARP will be used to<br />

determine it as normal.<br />

– If the client does not know its own <strong>IP</strong> address (it was 0.0.0.0 in the BOOTP<br />

request), the server must concern itself with its own ARP cache.<br />

126 <strong>TCP</strong>/<strong>IP</strong> <strong>Tutorial</strong> <strong>and</strong> <strong>Technical</strong> <strong>Overview</strong>

Hooray! Your file is uploaded and ready to be published.

Saved successfully!

Ooh no, something went wrong!