Network Time Protocol

De Wikipedia, la enciclopedia libre
Saltar a: navegación, búsqueda
Network Time Protocol (NTP)
Familia Familia de protocolos de Internet
Función Sincronización de relojes de sistemas informáticos
Puertos 123/UDP
Ubicación en la pila de protocolos
Aplicación NTP
Transporte UDP
Red IP
Estándares

RFC 1305

RFC 4330 (SNTP)

Network Time Protocol (NTP) es un protocolo de Internet para sincronizar los relojes de los sistemas informáticos a través del enrutamiento de paquetes en redes con latencia variable. NTP utiliza UDP como su capa de transporte, usando el puerto 123. Está diseñado para resistir los efectos de la latencia variable.

Descripción[editar]

NTP utiliza el Algoritmo de Marzullo con la escala de tiempo UTC, incluyendo soporte para características como segundos intercalares. NTPv4 puede mantenerse sincronizado con una diferencia máxima de 10 milisegundos (1/100 segundos) a través de Internet, y puede llegar a acercarse hasta 200 microsegundos (1/5000 segundos) o más en redes de área local sobre condiciones ideales.

NTP es uno de los protocolos de internet más viejos que siguen en uso (desde antes de 1985). NTP fue diseñado originalmente por David L. Mills de la Universidad de Delaware, el cual lo sigue manteniendo, en conjunto con un equipo de voluntarios.

El demonio NTP de Unix es un proceso de nivel de usuario que se ejecuta continuamente en la máquina que soporta NTP, y la mayor parte del protocolo está implementado en este proceso de usuario. Para obtener el mejor rendimiento de NTP, es importante tener un reloj NTP estándar con lazo de seguimiento de fase implementado en el kernel del Sistema operativo, en vez de sólo usar la intervención de un demonio NTP externo: todas las versiones actuales de GNU/Linux y Solaris soportan esta característica.

NTP utiliza un sistema de jerarquía de estratos de reloj, en donde los sistemas de estrato 1 están sincronizados con un reloj externo tal como un reloj GPS ó algún reloj atómico. Los sistemas de estrato 2 de NTP derivan su tiempo de uno ó más de los sistemas de estrato 1, y así consecutivamente (cabe mencionar que esto es diferente de los estrato de reloj utilizados en los sistemas de telecomunicaciones).

Las estampas de tiempo utilizadas por NTP consisten en un segundo de 32-bit y una parte fraccional de 32-bit, dando con esto una escala de 232 segundos (136 años), con una resolución teórica de 2−32 segundos (0.233 nanosegundos). Aunque las escalas de tiempo NTP se redondean cada 232 segundos, las implementaciones deberían desambiguar el tiempo NTP utilizando el tiempo aproximado de otras fuentes. Esto no es un problema en la utilización general ya que esto solamente requiere un tiempo cercano a unas cuantas décadas.

Los detalles operacionales de NTP se encuentran ilustrados en el RFC 778, RFC 891, RFC 956, RFC 958 y RFC 1305. (NTP no debe ser confundido con daytime (RFC 867) ó los protocolos de tiempo (RFC 868)). La versión actual de NTP es la versión 4; hasta el 2005, sólo las versiones superiores a la versión 3 han sido documentadas en los RFCs. El grupo de trabajo de NTP IETF ha sido formado para estandarizar el trabajo de la comunidad de NTP desde RFC 1305.

Hay una forma menos compleja de NTP que no requiere almacenar la información respecto a las comunicaciones previas que se conoce como Protocolo Simple de Tiempo de Red' ó SNTP. Ha ganado popularidad en dispositivos incrustados y en aplicaciones en las que no se necesita una gran precisión. Véase el RFC 1361, RFC 1769, y RFC 2030.

Descripción del paquete[editar]

Descripción del formato del paquete de la versión 4 de NTP/SNTP, que sigue después de las cabeceras de IP y de UDP.

0 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31
LI VN Mode Stratum Poll Precisión
Root Delay
Root Dispersion
Reference Identifier
Reference Timestamp (64)
Originate Timestamp (64)
Receive Timestamp (64)
Transmit Timestamp (64)
Key Identifier (optional) (32)
Message Digest (optional) (128)
Leap Indicator (LI)
código de 2 bits que sirve para indicar que al último minuto del presente día se le añadirá/quitará un segundo.
LI Valor Significado
00 0 sin modificación
01 1 el último minuto tiene 61 segundos
10 2 el último minuto tiene 59 segundos
11 3 condición de alarma (reloj no sincronizado)
Version Number (VN)
Entero de 3 bits que indica el número de versión. La versión 3, indica la versión 3 (sólo IPv4) y la 4 para la versión 4 (IPv4, IPv6 y OSI). Si es necesario distinguir entre IPv4, IPv6 y OSI, se debe examinar el contexto encapsulado.
Mode
entero de tres bits que sirve para indicar el modo, definidos de la siguiente manera:
Mode Significado
0 reservado
1 simétrico activo
2 simétrico pasivo
3 cliente
4 servidor
5 broadcast
6 reservado para mensajes de control de NTP
7 reservado para uso privado
Stratum
Es un entero sin signo de 8 bits que indica el nivel (stratum) del servidor local, los valores definidos son los siguientes:
Stratum Significado
0 no especificado o no disponible
1 referencia primaria (ej., radio clock)
2-15 referencia secundaria (vía NTP o SNTP)
16-255 reservado
Poll Interval
es un entero de 8 bits con signo que indica el intervalo máximo de tiempo entre dos mensajes sucesivos, expresado en segundo y como la potencia de 2 más cercana. La mayoría de las aplicaciones usan el rango que va desde 6 bits (64") a 10 (1024")
Precisión
es un entero con signo que indica la precisión del reloj local expresado en segundo a la potencia de 2 más cercana.

Véase también[editar]

Enlaces externos[editar]

Software relacionado con NTP