Introducción al protocolo NTP (Network Time Protocol)
El protocolo NTP, es uno de los más antiguos de internet y sigue estando en uso hoy en día. Ha estado en continuo uso desde hace más de 25 años. En un primer momento fue diseñado originalmente para sincronizar ordenadores y procesos críticos dependientes del tiempo sobre la red de internet. Fue inicialmente pensada para el sistema operativo Linux, pero luego fue migrado también a Windows, aunque sigue siendo instalado por defecto en muchos sistemas Unix y distribuciones BSD. Por este motivo, hay una gran cantidad de servidores NTP que utilizan Linux debido a su kernel especializado y sus algoritmos de tiempo.
El protocolo NTP proporciona mecanismos de sincronización con precisiones elevadas y permite estimar el error del reloj local, a la vez que se conocen las características de los relojes de referencia. El servicio que se persigue con el protocolo NTP es conseguir que todos los equipos conectados a una fuente de reloj precisa, consigan sincronizarse con ella. Así cada cliente NTP hará peticiones a varios servidores NTP y procesara las respuestas que estos le envíen. Esto le permitirá seleccionar el reloj más preciso en cada momento y sincronizarse según las muestras recibidas, un ejemplo de esto se muestra en la figura.
NTP es un protocolo basado en un sistema cliente-servidor. Prevé a los clientes con tres productos fundamentales: “clock offset, round-trip delay y referencia de dispersión”:
- Clock Offset: especifica la diferencia entre la hora del sistema local y la referencia externa de reloj.
- Round-trip delay: especifica las latencias de tiempo medidas durante la transferencia de paquetes dentro de la red.
- Referencia de dispersión: especifica el máximo número de errores asociados con la información de tiempo recibido de un reloj externo.
El protocolo tiene una estructura jerárquica. Un servidor Stratum 1, es el servidor primario de referencia y se asienta en el más alto nivel de la jerarquía.
Este servidor primario esta seguido de servidores secundarios de referencia y clientes. Un servidor NTP primario generalmente se sincroniza mediante una referencia externa de reloj, como puede ser un reloj de radio o GPS.
El protocolo NTP usa el protocolo UDP el cual es una parte integrada de la pila TCP/IP. Actualmente, la versión actual que se esta utilizando es NTP 4, y todas las versiones son compatibles entre si, la única modificación entre la versión 3 y 4 es una variación en la cabecera para acomodar Ipv6.
MODO DE OPERACION
Un servidor NTP straum 1 tiene tres modos de operación. Unicast, anycast y multicast. El cliente inicia los modos unicast y anycast, y el servidor responde con un mensaje de tiempo NTP con el que el cliente se sincroniza. Multicast es un modo de envió de mensajes a solo ciertos elementos de la red, a diferencia de broadcast, el cual habla con todos. A periodos regulares, el dominio es inundado por estos mensajes con motivos de sincronización.