El hecho de que los servidores BOOTP se vean en la necesidad de devolver un broadcast al cliente exige algunos cambios en la manera en la cual la mayoría de protocolos TCP/IP usan los puertos cliente. Normalmente, el cliente en una transacción cliente/servidor que usa UDP o TCP genera un número de puerto temporal o efímero que usa como puerto origen en su solicitud. El servidor envía la respuesta de vuelta a la dirección IP del cliente usando ese número de puerto temporal. Los puertos temporales tienen que ser únicos para una dirección IP particular, pero podrían no ser necesariamente únicos a través de todos los dispositivos de una red. Por ejemplo, el dispositivo A podría estar usando el puerto temporal número 1248 para una solicitud HTTP a un servidor Web, mientras que un dispositivo B podría estar usando ese mismo puerto en su pila TCP/IP para enviar una solicitud DNS.
Un servidor BOOTP no puede hacer un envío seguro a un puerto temporal debido a que usa broadcast (no se está dirigiendo a un dispositivo particular con una transmisión unicast). Otro servidor en la red podría haber seleccionado el mismo puerto temporal para alguna otra transacción y podría confundir la respuesta del servidor BOOTP como una siendo enviada para sí. Para evitar esto, otro número de puerto muy conocido se usa solo para clientes BOOTP: el puerto UDP 68. Los clientes “escuchan” este puerto en espera de transmisiones broadcast o unicast, mientras que los dispositivos que no han enviado una solicitud BOOTP lo ignorarán.
No hay comentarios:
Publicar un comentario