Para que un ordenador, que actúa como cliente, pueda arrancar por red, el servidor deberá pasarle la siguiente información:
Si tenemos una red formada por ordenadores sin disco (DC-Diskeless Computer) teniendo estos una ROM para arrancar por red, se diferenciarán unos de otros gracias a la dirección Ethernet.
Un ejemplo de intercambio sería el siguiente:
DC:Hola, mi dirección hardware es 00:60:08:C7:A3:D8, por favor, dame mi dirección IP.
Servidor DHCP: (busca la dirección en su base de datos) Tu nombre es host1, tu dirección IP es 192.168.1.2, tu servidor es 192.168.1.1. En el caso que necesite un fichero del que se supone que debe arrancar se alojará en /tftpboot/.
La petición de DHCP se realiza en forma de broadcast dentro de la red local, de forma que cualquier servidor de DHCP que pudiera responder a la petición, lo haría.
Después de obtener la dirección IP, el DC debe conseguir la imagen del sistema operativo y lanzarlo a ejecución. En esta fase, se usa otro protocolo TCP/IP, TFTP (Trivial File Transfer Protocol).Éste es una versión reducida del FTP (File Transfer Protocol). El TFTP no contempla autentificación, trabaja a través de UDP (User Datagram Protocol) en vez de TCP (Transmisión Control Protocol).
La implementación de UDP en un ordenador de arranque sin disco puede ser suficientemente reducida como para caber en una ROM. Existe la posibilidad de simular esta ROM a través de un disquete. Debido a que UDP es un protocolo orientado a la transmisión por bloques la transferencia se realiza bloque a bloque, de la siguiente forma:
DC: Dame el bloque 1 de /tftpboot/maquina1
TFTP servidor: Aquí lo tienes
DC: Dame el bloque 2, y así en adelante, hasta que se transfiere el fichero completo para almacenarlo en RAM.El funcionamiento consiste, básicamente, en el reconocimiento de cada bloque, y la pérdida de paquetes se soluciona mediante su retransmisión al cabo de un tiempo establecido. Cuando todos los bloques han sido recibidos, la ROM de arranque de la red pasa el control a la imagen del sistema operativo.
Finalmente, para poner en funcionamiento un sistema operativo, se le debe proporcionar un sistema de ficheros raíz. El protocolo utilizado por Linux y otros sistemas UNIX es normalmente NFS (Network File System), aunque no es el único.
En este caso el código no necesita estar grabado en la ROM, sino que forma parte del sistema operativo que acabamos de cargar. El sistema operativo debe ser capaz de ejecutarse con un sistema de ficheros raíz NFS, en vez de un disco real.