# Protocolo de arranque

El protocolo de arranque, conocido por las siglas BOOTP de Boot strap Protocol, es un protocolo de red UDP utilizado por los clientes de red para obtener su dirección IP automáticamente.
Originalmente está definido en el RFC 951.
Normalmente se realiza en el proceso de arranque de las computadoras o del sistema operativo.
Este protocolo permite a los ordenadores sin disco obtener una dirección IP antes de cargar un sistema operativo avanzado. Históricamente ha sido utilizado por las estaciones de trabajo sin disco basadas en UNIX (las cuales también obtenían la localización de su imagen de arranque mediante este protocolo) y también por empresas para introducir una instalación preconfigurada de Windows en Ordenador personal PC recién comprados típicamente en un entorno de red Windows.
Originalmente requería el uso de un disquete de arranque para establecer las conexiones de red iniciales, pero el protocolo se integró en la BIOS de algunas tarjetas de red (como la 3c905c) y en muchas placas base modernas para permitir el arranque directo desde la red.
DHCP es un protocolo basado en BOOTP, más avanzado, pero más difícil de implementar. Muchos servidores DHCP también ofrecen soporte BOOTP.

## Historia

El protocolo BOOTP se definió por primera vez en septiembre de 1985 en RFC 951 como reemplazo del Protocolo de resolución de direcciones inversas RARP, publicado en RFC 903 en junio de 1984. La motivación principal para reemplazar RARP con BOOTP es que RARP era un protocolo de capa de enlace. Esto dificultó la implementación en muchas plataformas de servidor y requirió que un servidor estuviera presente en cada subred de IP individual. BOOTP introdujo la innovación de los agentes de retransmisión, que reenviaban paquetes BOOTP desde la red local utilizando el enrutamiento IP estándar, de modo que un servidor BOOTP central pudiera atender hosts en muchas subredes.

## Pasos del Protocolo BOOTP

El proceso BOOTP involucra los siguientes pasos:
* El cliente determina su propia dirección de hardware; esta dirección está normalmente en una ROM en el hardware.
* Un cliente BOOTP envía su dirección hardware en un datagrama UDP al servidor. Si el cliente sabe su dirección IP y/o la dirección del servidor, debería usarlos, pero en general los clientes BOOTP no tienen datos de configuración IP del todo. Si el cliente no sabe su propia dirección IP, usa 0.0.0.0. Si el cliente no sabe la dirección IP del servidor, usa la dirección broadcast limitada (255.255.255.255). El número de puerto UDP es el 67.
* El servidor recibe el datagrama y busca la dirección hardware del cliente en su fichero de configuración, que contiene la dirección IP del cliente. El servidor rellena los campos restantes en el datagrama UDP y lo devuelve al cliente usando el puerto UDP 68.
* Cuando recibe la respuesta, el cliente BOOTP grabará su propia dirección IP (permitiendo que responda a las peticiones ARP) y comenzará el proceso de bootstrapping.

## Documentación de estándares IETF

| RFC # | Título | Fecha | Información obsoleta y actualizada |
| RFC 3942 | Reclasificación de las opciones del protocolo de configuración dinámica de host versión 4 (DHCPv4) | Nov-04 | Actualiza el RFC 2132 |
| RFC 2132 | Opciones de DHCP y extensiones de proveedor BOOTP | Mar-97 | Obsoleta a RFC 1533, Actualizado por RFC 3442, RFC 3942, RFC 4361, RFC 4833, RFC 5494 |
| RFC 1542 | Aclaraciones y Extensiones para el Protocolo Bootstrap | Oct-93 | Obsoleta a RFC 1532, Actualiza a RFC 951 |
| RFC 1534 | Interoperación entre DHCP y BOOTP | Oct-93 | |
| RFC 1533 | Opciones de DHCP y extensiones del proveedor BOOTP | Oct-93 | Obsoleta a RFC 1497, RFC 1395, RFC 1084, RFC 1048, Obsoleto por RFC 2132 |
| RFC 1532 | Aclaraciones y Extensiones para el Protocolo Bootstrap | Oct-93 | Obsoleto por RFC 1542, Actualiza a RFC 951 |
| RFC 1497 | Extensiones de información de proveedor BOOTP | Ago-93 | Obsoleta a RFC 1395, RFC 1084, RFC 1048, Obsoleto por RFC 1533, Actualiza a RFC 951 |
| RFC 1395 | Extensiones de información de proveedor BOOTP | Ene-93 | Obsoleta a RFC 1084, RFC 1048, Obsoleto por RFC 1497, RFC 1533, Actualiza a RFC 951 |
| RFC 1084 | Extensiones de información de proveedor BOOTP | Dic-88 | Obsoleta a RFC 1048, Obsoleto por RFC 1395, RFC 1497, RFC 1533 |
| RFC 1048 | Extensiones de información de proveedor BOOTP | Feb-88 | Obsoleto por RFC 1084, RFC 1395, RFC 1497, RFC 1533 |
| RFC 951 | Protocolo Bootstrap | Sep-85 | Actualizado por RFC 1395, RFC 1497, RFC 1532, RFC 1542, RFC 5494 |