Usuario:RaulSantosRecio/Taller
Descripción
[editar]También los sistemas operativos macOS y Windows utilizan actualmente este protocolo para obtener el Tiempo universal coordinado (UTC) mediante procesos de sistema simples que funcionan vía internet.
Descripción del paquete
[editar]Root Delay
- refleja el retardo de ida y vuelta entre el servidor y la fuente primaria de reloj. Proporciona una estimación aproximada del error de transferencia de tiempo en el peor de los casos entre un cliente y un servidor.
Root Dispersion
- es una estimación de la cantidad total de error/variación entre un servidor y la hora correcta. La forma en que se calcula es simple: cada servidor NTP obtiene su hora de un reloj externo o de otro servidor NTP.
- Si un servidor obtiene su hora de un reloj externo, su dispersión raíz es el error máximo estimado de ese reloj. Si obtiene su tiempo de otro servidor NTP, su dispersión raíz es la dispersión raíz de ese servidor más la dispersión agregada por el enlace de red entre ellos.
Reference Identifier
- es una cadena de 4 caracteres que indica el tipo de fuente.
- Algunos de los identificadores son:
Código | Fuente de referencia externa |
---|---|
LOCL | reloj local no calibrado |
CESM | reloj de cesio calibrado |
RBDM | reloj de rubidio calibrado |
PPS | reloj de cuarzo calibrado u otra fuente de pulso por segundo |
IRIG | Grupo de Instrumentación Inter-Range |
ACTS | Servicio de módem telefónico NIST |
USNO | Servicio de módem telefónico USNO |
LORC | Sistema de radionavegación LORAN-C |
OMEG | Sistema de radionavegación OMEGA |
GPS | Servicio de posicionamiento global |
Estratos de reloj
[editar]![](http://upload.wikimedia.org/wikipedia/commons/thumb/c/c9/Network_Time_Protocol_servers_and_clients.svg/220px-Network_Time_Protocol_servers_and_clients.svg.png)
NTP tiene una estructura jerárquica por niveles, cada uno de estos niveles recibe el nombre de estrato. Estos niveles determinan la distancia desde el reloj de referencia.
El reloj de referencia es el dispositivo superior de la jerarquía, este se encuentra en el estrato cero, veremos a continuación este estrato de forma más detallada.
Existe un máximo de niveles de estrato, concretamente hasta 15 estratos, a medida que aumenta en número de estrato los dispositivos se vuelven menos precisos. Los servidores de un estrato pueden conectarse entre sí para mejorar la sincronización interna. También para combatir inexactitudes, y hacer el sistema de estrato más fiable, cada cliente puede consultar varios servidores del estrato superior.
A continuación se detallan los estratos superiores:
Estrato 0
[editar]Los dispositivos de este estrato también se conocen como relojes de referencia, estos tienen muy poco o ningún tiempo de retardo. Distribuyen Tiempo universal coordinado (UTC) a otros dispositivos a través de una red. Todos los dispositivos que reciben hora de un servidor 0 estrato se conocen como clientes.
Como ejemplos podemos destacar los relojes atómicos o los relojes de radio.
Estrato 1
[editar]Son aquellos servidores conectados directamente a un reloj de referencia, recibiendo directamente la señal directamente la señal Tiempo universal coordinado (UTC). Se sincroniza en pocos microsegundos.
Estrato 2
[editar]Corresponde a aquellos servidores que están sincronizados con uno o más servidores del estrato 1, por lo que es de estos servidores de los que reciben su tiempo.
Posteriormente estos servidores del estrato 2 actuarán como servidores para el estrato 3, y así sucesivamente hasta llegar al estrato final.
Intercambio de mensajes
[editar]El proceso de intercambio de mensajes que realiza el protocolo NTP es el siguiente:
![](http://upload.wikimedia.org/wikipedia/commons/thumb/3/37/Intercambio_de_mensajes_NTP.png/450px-Intercambio_de_mensajes_NTP.png)
- Se envía una petición de sincronización en un instante T0 de parte del cliente para verificar si el tiempo de desfase entre servidor y cliente es mayor de 17 minutos.
- Esta petición la recibe el servidor en el instante T1. En este momento podemos encontrar dos escenario:
- Si el desfase es menor que 17 minutos el servidor envía un mensaje en el instante T2.
- Si el desfase es mayor que 17 minutos se terminará el proceso y no habrá sincronización.
- En el instante T3 el cliente recibirá el paquete de parte del servidor. En este momento cada minuto se realizará un ajuste gradual del tiempo hasta aproximarse a 128ms del tiempo del servidor. A partir de un desfase mayor a 128ms, cada 17 minutos el desfase se va precisando.
Esquema flujo de mensajes de NTP.
El desfase (θ) entre ambos relojes se calcula mediante la siguiente fórmula:
![](http://upload.wikimedia.org/wikipedia/commons/thumb/6/6e/F%C3%B3rmula_desfase.png/220px-F%C3%B3rmula_desfase.png)
SNTP
[editar]El método SNTP fue desarrollado para computadoras más pequeñas y menos poderosas y necesita menos memoria y recursos de CPU que NTP. También es parte de TCP/IP y usa el puerto UDP 123. Aunque sirve para lo mismo, es más simple que el NTP debido a que tiene menos pasos y solo ajusta el tiempo periódicamente, lo que conlleva a una menor precisión. El contenido del paquete con el que se comunica con el servidor omite muchas de las funcionalidades del procedimiento NTP. La mayor desventaja de este protocolo es su vulnerabilidad ante posibles ataques, ya que no utiliza método de cifrado, proporcionando una baja seguridad.
En los siguientes casos sí es interesante el uso del SNTP:
- Equipos en los que la sincronización del tiempo no sea determinante.
- Dispositivos simples, como microcontroladores y ordenadores pequeños, con poca memoria.
OpenNTPD
[editar]Es una implementación de NTP desarrollada principalmente por Henning Brauer en 2004 como una parte del proyecto de OpenBSD. Es fácil de utilizar, y ofrece la capacidad de sincronizar el reloj local con servidores NTP remotos.
A pesar de estar más enfocado a las necesidades genéricas más sencillas de los usuarios de OpenBSD , también proporciona algunas mejoras de seguridad de protocolo.
Algunas características de esta implementación son:
- Base de código simple y fácilmente comprensible.
- Separación de privilegios que aísla el código de red sin privilegios del código de configuración de tiempo privilegiado.
- Soporte de DNS separado por privilegios que funciona dinámicamente durante el tiempo de ejecución, lo que permite una resolución tardía aunque la red esté inactiva al inicio.
Ntimed
[editar]Es otra implementación de NTP orientada al alto rendimiento y alta seguridad. Fue diseñado por Poul-Henning Kamp como una implementación de referencia de NTP reemplazando la anterior porque era de gran tamaño. Se compone de tres paquetes:
- ntimed-client: ejecutado en “nodos hoja” y dedicado a hablar con los servidores NTP ascendentes y a ajustar el reloj local.
- ntimed-slave: ejecutado en las “capas intermedias” y su trabajo es consultar a los servidores ascendentes, ajustar el reloj local y ofrecer tiempoo a los clientes descendientes.
- ntimed-master: ejecutado en la capa superior cuyo trabajo es hablar con relojes de referencia y proporcionar tiempo a clientes y esclavos.
Network Time Security
[editar]Es un mecanismo de seguridad criptográfico para la sincronización de tiempo de red. Se proporciona una especificación completa para la aplicación de NTS al modo cliente-servidor del Network Time Protocol (NTP) [RFC 5905].
Los objetivos de NTS son:
- Identidad: Se establece la identidad de las partes con las que se comunican mediante una clave pública X.509.
- Autenticación: verificación criptográfica de los paquetes, para asegurar que su origen está identificado y no han sido modificados en durante la transmisión.
- Confidencialidad: NTS incluye soporte para encriptar campos de extensión NTP.
- Prevención de reproducción: detección de los paquetes de sincronización de tiempo duplicados.
- Consistencia de solicitud-respuesta: verificación por parte del cliente de que un paquete de sincronización de tiempo recibido de parte del servidor corresponde con una solicitud del cliente previa.
- Escalabilidad: El servidor puede servir a un gran número de clientes.
- Rendimiento: El cifrado y la autenticación utilizados cuando se transfiere el tiempo deben ser mínimo.
Últimas versiones
[editar]La versión actual es la NTPv4 (version 4) esta se introdujo en 2010 en el RFC 5905. Surgió como evolución de la versión 3. Esta versión es compatible versiones anteriores, entre ellas la versión NTPv3 basada en el RFC 1305.
Esta última versión mejoró los algoritmos de mitigación y disciplina que mejoran la precisión a decenas de microsegundos en soporte de estaciones de trabajo, computadoras portátiles, dispositivos de mano y LAN. NTPv4 también tiene una función de descubrimiento de servidores que simplifica la identificación de la configuración de un servidor.
Comparativa NTPv3 vs NTPv4
[editar]Las principales diferencias entre estas versiones son:
- Permite, además del direccionamiento IPv4, el direccionamiento IPv6 entre clientes y servidores.
- Permite incorporar seguridad en las comunicaciones, esto se logra ya que NTPv4 admite criptografía de clave pública y certificados X509 estándar.
- Permite reducir el tamaño de los paquetes y aumentar el rango de valores disponibles, modificando el tipo de datos de 64 bits de formato fijo a 64 bits en coma flotante.
- Mejora la compatibilidad con DNS, de manera que con NTPv4 si configura un nombre de host para sincronizar, el dispositivo busca el nombre de host almacenándolo en la configuración y también almacena la dirección IP en la configuración. A diferencia de NTPv3 que el nombre de host no era almacenado.