Illustrated TCP/IP Illustrated TCP/IP
by Matthew G. Naugle
Wiley Computer Publishing, John Wiley & Sons, Inc.
ISBN: 0471196568   Pub Date: 11/01/98
  

Previous Table of Contents Next


Chapter 309
Server Side

When the server receives the packet, a series of decisions takes place:

  If the UDP destination port is not set to 67, then the server will discard the packet.
  If the Server field (sname) is set to 0 or matches our name, further process the packet.
  If the server name does not match our name, but the name is local on the network, then discard the packet.
  If the server name is not on the local network, the server may choose to forward the packet to that server. Usually, this is accomplished via the BOOTP relay service (explained in a moment).
  If the Ciaddr field is 0, then the client does not know its IP address, so the server will look this up in its database If no match is found for this chaddr, then discard the packet. Otherwise, the Yiaddr field is filled in on the response packet.
  The Filename field is then checked. If this field contains a 0, then the client is either not interested in a boot file or wishes to use the default boot file. If there is a filename specified, or a default file is found, or the field contains a full-length pathname, then the File field is replaced with the full-length pathname of the selected boot file. If the field is set to a non-0 and no match is found for this field on this server, then the client is asking for a file that the server does not have, and the server will discard the packet.
  Finally, the Vend field is checked and if a recognized type of data is provided, client-specific actions should be taken and a response from these actions is placed in the Vend Data field of the Reply packet. This field, for example could contain configuration options that can be passed to the boot file that will be transmitted to the client after the BOOTP is finished.


Server Side

  The Siaddr field is set to the server’s address and the Op field is set to a BOOTREPLY. The UDP destination port is set to 68 (BOOTP client).
  If the Ciaddr address of the BOOT-REQUEST is set to a non-0 address, then the packet is IP routed back to the client. However, if the Giaddr is set to a non-0, then the BOOTREPLY is sent directly to this router and the UDP destination port is set to BOOTPS (67). Otherwise, the client is local and the BOOTREPLY is send back to the client on the local LAN.


Previous Table of Contents Next