Upload
others
View
5
Download
0
Embed Size (px)
Citation preview
Tiempo en Internet Sistemas Distribuidos I
Dr. Roberto Gómez Cárdenas 1
El tiempo en Internet
Características y funcionamiento
El tiempo (un poco historia)
Desde invención relojes mecánicos en el siglo XVII, el tiempo se ha medido de forma astronómica.En decada de 1940 se estableció que el período de rotación de la tierra no es constante.
la tierra esta disminuyendo su velocidad debido a la fricción tidal y el arrastre atmosférico
Tiempo en Internet Sistemas Distribuidos I
Dr. Roberto Gómez Cárdenas 2
El día solarCada día el sol se levanta en el este y desciende en el oeste.El momento en que el sol alcanza su punto aparentemente más alto en el cielo se llama tránsito de sol (aprox. 12hrs del día).El intervalo entre dos tránsitos consecutivos del sol se llama día solar. Puesto que existen 24 horas en un día, cada una de las cuales contiene 3,600 segundos, el segundo solar se define como 1/86,400 de un día solar.
GMT y el UTGMT: Greenwich Mean TimeEn mediados 1800 se introdujo el GMT, llamado después UT (Universal Time), basado en tiempo solar.En diferentes lugares del mundo, cientos de tiempos diferentes fueron adoptados
cada uno con su propio meridianosuperficie tierra fue divida en 24 zonas
Tiempo en Internet Sistemas Distribuidos I
Dr. Roberto Gómez Cárdenas 3
Zonas de tiempo
El UTC
Universal Coordinated Time.Estándar oficial para el tiempo actual.Basado en el concepto de segundo atómico.En 1955 se inventa el primer reloj atómico en base al cesio 133.Existen otros basados en hidrogeno.
Tiempo en Internet Sistemas Distribuidos I
Dr. Roberto Gómez Cárdenas 4
Componentes UTCUniversal
puede ser usado en cualquier lugar en el mundoes independiente de las zonas de tiempopara convertir UTC a tiempo local, se debe sumar o restar el tiempo local
Coordinatedvarias instituciones contribuyen con sus estimaciones para el cálculo del tiempo UTC se construye combinando estas estimaciones
Un segundo atómicoEn 1967, en la 13eva General Conference ofWeights and Mesures, se define la unidad de tiempo fundamental del Sistema Internacional (SI).Un segundo SI (o segundo atómico) es
la duración es de 9,192,631,770 periodos de radiación correspondientes a la transición entre dos niveles hiperfinos de estado del átomo del cesio 133la elección fue hecha para que el segundo atómico fuera igual al segundo solar promedio en el año de su introducción
Tiempo en Internet Sistemas Distribuidos I
Dr. Roberto Gómez Cárdenas 5
Calculando el UTCEn forma periódica, cada laboratorio le indica al BIPM (oficina internacional del peso y la medida) en París.El BIPM hace un promedio de lo que recibe y produce el TAI (tiempo atómico internacional)
TAI es el promedio de las marcas de los relojes cesio 133 a partir de la medianoche del 1o. enero de 1958 dividido entre 9,192,631,770
Algunas imagenes BIPM y de la USNO
reloj y labo del BIPMla sede y escudo del BIPM
reloj cesio de la USNOmodelo HP5071A
cuarto cálculo tiempo de laU.S. Naval Observatory
Tiempo en Internet Sistemas Distribuidos I
Dr. Roberto Gómez Cárdenas 6
Ejemplo tiempo BIPM
Ajustando el tiempoUTC se basa la resonancia cuantica del átomo del cesio.Rotación tierra no esta influida por la definición de un segundo UTC
se tienen 86,400 segundos UTC por día si la rotación tierra tarda más, la media noche de un día caería en el mediodía del siguientees necesario añadir o suprimir segundos extras dentro de UTC para sincronizar
Tiempo en Internet Sistemas Distribuidos I
Dr. Roberto Gómez Cárdenas 7
Segundos de ajuste (leaps seconds)
Los segundos que se añaden o suprimen se conocen como segundos de ajuste.Los segundos de ajuste pueden predecirse tanto como la rotación de la tierra.
por lo tanto, no se pueden calcular de forma simple futuras fechas UTCal menos con una precisión de segundos
Ajustando el tiempo
El uso de los segundos de ajuste se hace al final de un día UTC.
si se inserta un segundo, el tiempo en UTC se especifica como 23:59:60, es decir se requieren dos segundos para pasar de 23:59:59 a 0:00:00 en lugar de unosi un segundo es retirado entonces el tiempo va a pasar de 23:59:58 a 0:00:00 en un segundo en lugar de dos
Tiempo en Internet Sistemas Distribuidos I
Dr. Roberto Gómez Cárdenas 8
Bitacora aplicación segundos de ajuste1961 JAN 1 =JD 2437300.5 TAI-UTC= 1.4228180 S + (MJD - 37300.) X 0.001296 S1961 AUG 1 =JD 2437512.5 TAI-UTC= 1.3728180 S + (MJD - 37300.) X 0.001296 S1962 JAN 1 =JD 2437665.5 TAI-UTC= 1.8458580 S + (MJD - 37665.) X 0.0011232S1963 NOV 1 =JD 2438334.5 TAI-UTC= 1.9458580 S + (MJD - 37665.) X 0.0011232S
:::
1985 JUL 1 =JD 2446247.5 TAI-UTC= 23.0 S + (MJD - 41317.) X 0.0 S1988 JAN 1 =JD 2447161.5 TAI-UTC= 24.0 S + (MJD - 41317.) X 0.0 S1990 JAN 1 =JD 2447892.5 TAI-UTC= 25.0 S + (MJD - 41317.) X 0.0 S1991 JAN 1 =JD 2448257.5 TAI-UTC= 26.0 S + (MJD - 41317.) X 0.0 S1992 JUL 1 =JD 2448804.5 TAI-UTC= 27.0 S + (MJD - 41317.) X 0.0 S1993 JUL 1 =JD 2449169.5 TAI-UTC= 28.0 S + (MJD - 41317.) X 0.0 S1994 JUL 1 =JD 2449534.5 TAI-UTC= 29.0 S + (MJD - 41317.) X 0.0 S1996 JAN 1 =JD 2450083.5 TAI-UTC= 30.0 S + (MJD - 41317.) X 0.0 S1997 JUL 1 =JD 2450630.5 TAI-UTC= 31.0 S + (MJD - 41317.) X 0.0 S1999 JAN 1 =JD 2451179.5 TAI-UTC= 32.0 S + (MJD - 41317.) X 0.0 S
El reloj de la computadora
Tiempo es almacenado dentro de un conjunto de bits.El sumar datos a esos bits es lo que hace que el tiempo funcione.El significado del valor cero, necesita ser definido por separado
este valor se conoce como epoca
Tiempo en Internet Sistemas Distribuidos I
Dr. Roberto Gómez Cárdenas 9
Numero bits y resolución
Usar más bits puede ampliar el rango del tiempo o puede incrementar la resolución.Ejemplo
si se usan 8 bits, pueden haber 256 valores diferentesse se elige almacenar segundos, la resolución es de un segundo y el rango va de 0 a 255 segundossi se prefiere almacenar minutos entonces se pueden guardar hasta 255 minutoscon 64 bits se puede contar con una resolución de nanosegundos y con un buen rango
Haciendo funcionar el tiempoEn un reloj real el tiempo avanza automáticamente.
reloj real = pulsos de un cuarzoes independiente de los bits de tiempo
Necesario actualización del tiempodespués de n pulsos es necesario sumar algo al valor almacenado en el conjunto de bitsuna resolución de nanosegundos no sirve de mucho, si el valor es actualizado cada minuto.
Tiempo en Internet Sistemas Distribuidos I
Dr. Roberto Gómez Cárdenas 10
Actualizando el tiempo
Necesario una actualización frecuente de los bits de tiempo.En muchas casos la actualización la hace una rutina de servicio de interrupción.
la interrupción es tratada por un chip de tiempo programabledesafortunadamente el actualizar los bits del reloj, comparado con generar una interrupción, es lento
Escala tiempo computadora
Debido a requerimientos velocidad, la mayoría de los bits de tiempo usan una escala de tiempo lineal como segundos (en lugar de hh:mm:ss)Si un usuario desea el tiempo real, se lee el valor de los bits y se convierte
time(NULL) 989264388
gettimeofday() 14:39:48 del5 mayo2001
Tiempo en Internet Sistemas Distribuidos I
Dr. Roberto Gómez Cárdenas 11
Frecuencias actualizaciónEn teoría las matemáticas necesarias para actualizar el campo de bits es simple:
si se tienen dos interrupciones por hora, hay que añadir 30 minutos en cada interrupciónsi se tienen cuatro interrupciones por minuto hay que sumar 15 segundos en cada interrupciónsi se tienen 100 interrupciones por segundo, hay que añadir 10ms por interrupcion
El modelo reloj de Unix
Unidades en los bits de reloj son microsegundos.El incremento por interrupción es de 1,000,000/HZ (HZ = frecuencia interrupción).El valor añadido en cada interrupción de tiempo se conoce como tick.
Tiempo en Internet Sistemas Distribuidos I
Dr. Roberto Gómez Cárdenas 12
Algunas funciones y estructuras del tiempo en Unix
#include <time.h>
time_t time( time_t *tloc );int gettimeofday( tp, tzp );
struct timeval *tp;struc timezone *tzp;
#include <sys/times.h>
clok_t times( buffer );struct tms *buffer;
Un segundo se compone de CLK_TCK pulsos, (tics)
Algunos valores de Unix----------------------------------------------------------------------------time.h----------------------------------------------------------------------------#ifndef CLK_TCKextern long _sysconf(int); /* System Private interface to sysconf() */#define CLK_TCK _sysconf(3) /* clock ticks per second */
/* 3 is _SC_CLK_TCK */#endif----------------------------------------------------------------------------sys/time.h----------------------------------------------------------------------------extern int tick_per_msec; /* clock ticks per millisecond (may be zero) */extern int msec_per_tick; /* milliseconds per clock tick (may be zero) */extern int usec_per_tick; /* microseconds per clock tick */extern int nsec_per_tick; /* nanoseconds per clock tick */
Tiempo en Internet Sistemas Distribuidos I
Dr. Roberto Gómez Cárdenas 13
Calidad del relojResolución (resolution)
la más pequeña modificación posible en el modelo del tiempo si el reloj incrementa su valor solo una vez por segundo, la resolución es de un segundo
Precisión (precision)el más pequeño incremento posible que puede leer un programauna resolución no sirve de mucho, si no se puede leer el reloj
Calidad del reloj ...Jitter (second derivation)
cuando se lee el reloj muy repetidamente, la diferencia entre las lecturas puede variar de forma aleatoriala diferencia de estas diferencias es el jitter
Exactitud (accuracy)un reloj no solo debe poder ser leído, sino ajustadoexactitud determina que tan cerca esta el reloj de una referencia de tiempo oficial
Tiempo en Internet Sistemas Distribuidos I
Dr. Roberto Gómez Cárdenas 14
Sincronía tiempo en internet
Existen varios sistemas de sincronía para Internet, pero todos tienen en común el principio de cliente-servidor.
sistema de tiempo, que ofrece una computadora, esta sincronizado con un reloj de referencia externoel servidor envía la información de tiempo a través de Internet cada vez que una computadora (el cliente) lo solicita.
Protocolos sincronización
Rigth timesservidores ofrecen tiempo a tavés de una página webque puede ser accedida con un browser
Network Time Protocolsistema automatico de sincronia para internet
Time Protocol and Daytime ProtocolAnteriores al NTPNo soportan retardos en los tiempos transmisiónUtil solo para redes localesReferencia: RFC 868 y RFC 867
Tiempo en Internet Sistemas Distribuidos I
Dr. Roberto Gómez Cárdenas 15
Rigth timeEs una pagina www que contiene la fecha y hora en el tiempo de la transmisión de la página.
H:horas de 0 a 23T: acrónimo de la zona del tiempo
S: info day-light saving timeL: info leap second insertion.
http://www.time.gov/timezone.cgi?Central/d/-6/java
NTP: Network Time Protocol
Protocolo internet usado para sincronizar los relojes de la computadoras a alguna referencia de tiempo.Originalmente desarrollado por el Profesor David L. Mills en la universidad de Delaware.Primera implementación: alrededor 1980Referencia: RFC 1305
Tiempo en Internet Sistemas Distribuidos I
Dr. Roberto Gómez Cárdenas 16
SNTP
Simple Network Time ProtocolTambién es un NTPNo cuenta con algunos algoritmos, que no son necesarios para todos los tipos de servidores.
Características NTP
NTP necesita un reloj de referencia, que define el tiempo real para operar.
todos los relojes se ajustan a dicho tiempo reallos sistemas no solo concuerdan en el alguntiempo, sino en tiempo real definido por algunestandar
Utiliza UTC como tiempo de referenciaEs tolerante a fallas.
Tiempo en Internet Sistemas Distribuidos I
Dr. Roberto Gómez Cárdenas 17
Características NTPAutomaticamente selecciona la mejor de las fuentes de sincronización.
es posible contar con varios candidatos para minimizar el error acumulado
Es altamente escalablered sincronización puede consistir de varios relojes de referencia
Con varias fuentes de tiempo NTP puede tener una buena exactitud, usando una resolución menor a nanosegundos (2-32 sgs)
Versiones NTP
Actualmente estan disponibles las versiones tres y cuatro de implementaciones de NTPLa última versión de software liberada es NTPv4, pero la oficial es NTPv3.Algunos vendedores de sistemas operativos entregan su propia versión.Compatabilidad:
clientes con viejas versiones pueden hablar con nuevas versiones de servidores en otra dirección requiere interferencia manual.
Tiempo en Internet Sistemas Distribuidos I
Dr. Roberto Gómez Cárdenas 18
ImplementacionesSistemas Unix
existe versión disponible forma gratuitasoftware disponible en forma de código en C
WindowsWindos 2000 incluye un cliente SNTP
VMSDonde obtenerlo
http://www.eecis.udel.edu/~ntp
Principios funcionamiento
Servidor primario (stratum 1)consiste en una computadora conectada a un reloj de alta precisión, con un software NTP
Otras computadoras (stratum 2) equipadas con un software similar, automaticamentepreguntan al servidor primario.Las computadoras stratum 2 pueden sincronizar otras computadoras llamadas stratum 3.
Tiempo en Internet Sistemas Distribuidos I
Dr. Roberto Gómez Cárdenas 19
Principios funcionamiento
Esto puede continuar hasta stratum 16.Entre más lejano se este de la computadora stratum 1, la exactitud disminuye.Una computadora puede ser cliente o servidor.Cada servidor puede tener cientos de clientes.Para efectos de robustez cada cliente puede contar con más de un servidor.
en este caso NTP monitorea a los servidores para estabilidad y exactitud
Diagrama NTP
Tiempo en Internet Sistemas Distribuidos I
Dr. Roberto Gómez Cárdenas 20
Servidores NTP
Existen unos 175,000 hosts ejecutando NTP en Internet.
de estos hay unos 300 servidores válidos tipo stratum 1existen unos 20,000 servidores stratum 2existen unos 80,000 servidores stratum 3el resto son servidores de otros stratums
Algunos servidores stratum 1 (107 listados)(http://www.eecis.udel.edu/~mills/ntp/clock1.htm)
AU ntp.cs.mu.OZ.AU (128.250.36.2)Location: The University of Melbourne, Melbourne Australia
BR ntp1.rnp.br (200.19.119.69)Location: Brazilian Research Network/Rede Nacional de Pesquisa
CA clock.cmc.ec.gc.caLocation: Canadian Meteorological Centre, Dorval, Québec, Canada
FR canon.inria.fr (192.93.2.20)Location: INRIA, Rocquencourt (near Paris), France
MX cronos.cenam.mxLocation: Centro Nacional de Metrologia, Queretaro, Mexico
Tiempo en Internet Sistemas Distribuidos I
Dr. Roberto Gómez Cárdenas 21
Algunos servidores stratum 2 (136 listados)(http://www.eecis.udel.edu/~mills/ntp/clock2.htm)
AR tick.nap.com.ar (200.49.40.1)Location: Network Access Point, Buenos Aires, Argentina
AU ntp.adelaide.edu.au (129.127.40.3)Location: University of Adelaide, South Australia
CA tick.utoronto.ca (128.100.103.252)Location: University of Toronto, Toronto, Ontario, CANADA
FR ntp.obspm.frLocation: Observatoire de Paris-Meudon, Meudon, France
MX ntp2a.audiotel.com.mx (200.34.146.67)Location: Audiotel office, Mexico D.F., Mexico
Sincronización en NTP
La sincronización de un cliente con un servidor consiste en varios intercambios de paquetes.
cada paquete es un par de petición/respuestaCuando cliente envía un paquete guarda su propia hora local en el paquete enviado.Cuando servidor recibe paquete almacena su tiempo en el paquete y lo regresa.
Tiempo en Internet Sistemas Distribuidos I
Dr. Roberto Gómez Cárdenas 22
Sincronización en NTP ...
Cuando cliente recibe la respuesta, vuelve a checar su tiempo para estimar el tiempo de “viaje” del paquete.
estas diferencias de tiempo se pueden usar para estimar el tiempo que toma el paquete en ser transmitido del servidor al cliente.
El tiempo no se considera confiable hasta que diferentes paquetes han sido intercambiados.
Sincronización en NTP ...Solo si las respuestas del servidor satisfacen las condiciones definidas en el protocolo, el servidor es considerado válido.
tiempo no puede ser sincronizado a partir de un servidor considerado como inválido
Usualmente toma unos cinco minutos para que el cliente se sincronice con el servidor
esto también es verdad para referencias locales que no tienen retardos por definición
Tiempo en Internet Sistemas Distribuidos I
Dr. Roberto Gómez Cárdenas 23
Ajustando el reloj
Existen cuatro mecanismos para que el software de NTP ajuste el reloj local.Diferentes sistemas operativos proporcionan diferentes medios.Basicamente se cuenta con cuatro mecanismos (llamadas de sistema) para ajustar el reloj local.
Mecanismos ajuste reloj
settimeofday()llamada para asignar el tiempousarlo solo si el tiempo difiere más de 128ms
adjtime()cambio gradual del tiempo (slew)cambiar frecuencia reloj para hacer que este vaya más lento o más rápido hasta que la correción se termineesto puede tomar tiempo por lo que algunos sistemas Linux ajustan el tiempo en un rango de 0.5ms por segundo
Tiempo en Internet Sistemas Distribuidos I
Dr. Roberto Gómez Cárdenas 24
Mecanismos ajuste reloj ...ntp_adjtime()
para controlar diferentes parametros del software del relojajustar el offset del software del relojcontrolar el procesamiento de los segundos de ajusteleer y asignar valores relacionados con el reloj
hardpps()función que solo es llamada por un servicio de interrupción dentro del sistema operativosi se activa hardpps puede modificar frecuencia y offsetdel reloj del núcleo
Información NTP
NTP utiliza paquetes UDP para transferir datos debido a la velocidad de set-up de conexión y comunicación.El timestamp en NTP consiste en un valor binario de 64 bits con un punto implicito entre las dos mitades de 32 bits, por ejemplo:
00000000000000000000000000000001 10000000000000000000000000000000
equivale al decimal 1.5
parte entera parte fraccionaria
Tiempo en Internet Sistemas Distribuidos I
Dr. Roberto Gómez Cárdenas 25
Las epocas en NTP
La epoca para NTP empieza en 1900, mientras que para Unix empieza en 1970.Por lo que los siguientes valores corresponden a las 18:52:30.735861 del 31.08.2001:
Unix: 39aea96e.00b3a7500111001 10101110 10101001 0110111000000000 00001011 00111010 01110101
NTP: bd5927ee.bc61600010111101 01011001 00100111 1110111010111100 01100001 01100000 00000000
Otras sincronias de tiempoSistemas navegación
sistemas navegación modernos están basados en señales de radio sincronizadas con relojes atómicos receptores de estos sistemas reciben, aparte de su posición, una señal se sincronía de tiempo
Telefonoenvian información tiempo codificada como stringsgenerados una vez por segundoesto puede ser recibido por una computadora con un modem
Tiempo en Internet Sistemas Distribuidos I
Dr. Roberto Gómez Cárdenas 26
Otras sincronias de tiempoBroadcast
los primeros en ser desarrolladosestaciones de radio que transmiten solo información de tiempo y otras insertan esta información durante su programaciónel Instituto Nacional del Tiempo Estandar(NIST) opera una estación de radio de onda corta con las siglas WWV desde Fort Collings, colorado
WWV transmite un pulso corto cada segundo TUC
Sincronías tipo broadcastCanada
NRC CHU Broadcast Codes
Alemania Low-Frecuency
ItaliaIEN RAI Codified Signal
U. K.NPL MSF 60kHz Time and Date Code
U.S.A.NIST WWV Services
Tiempo en Internet Sistemas Distribuidos I
Dr. Roberto Gómez Cárdenas 27
Otros algoritmos
Algoritmo de Cristian
Algoritmo de Berkeley
Algoritmo de Cristian
Objetivo:sincronizar al resto con respecto a una máquina tiene un receptor WWV
Periódicamente cada máquina envía un mensaje al servidor preguntándole por el tiempo.Servidor responde tan rápido como puede con un mensaje que contiene su tiempo.
Tiempo en Internet Sistemas Distribuidos I
Dr. Roberto Gómez Cárdenas 28
Esquema algoritmoTi
empo
T0
T1
cliente servidor
pet
resp
tiempo deatención
Problemas del algoritmo
Tiempo no corre hacia atrásSi reloj del demandante es más rápido que el del servidor=> tiempo correrá más lento en máquina demandante
Se tiene un tiempo NO-CERO de tiempo de respuesta
Tiempo respuesta:(tiempo transmisión) + (tiempo manejo interrupción)
Tiempo en Internet Sistemas Distribuidos I
Dr. Roberto Gómez Cárdenas 29
Algoritmo BerkeleyMétodo recomendable para un sistema en el que no exista un receptor WWV.Algo. Cristian: servidor tiempo es pasivo, todas las máquinas le preguntan y el responde.
Algo. Berkeley: servidor esta activo preguntando a cada máquina la hora.El tiempo daemon (de referencia) debe ser actualizado periódicamente por el operador.
Algoritmo BerkeleyPrincipio:
Servidor pregunta al resto la horaCalcula la nueva hora en base a lo recibidoInforma a las otras computadora la nueva horaTodas las máquinas actualizan su reloj
Tiempo en Internet Sistemas Distribuidos I
Dr. Roberto Gómez Cárdenas 30
Paso 1: servidor pregunta hora a las máquinas
demoniodel tiempo
3:00
3:00
3:00
3:00
3:25 2:50
Paso 2: máquinas responden
3:25
3:00
+25
0
-10
2:50
Tiempo en Internet Sistemas Distribuidos I
Dr. Roberto Gómez Cárdenas 31
Paso 3: servidor informa ajuste a las otras máquinas
3:05
-20 +15
+5
3:05 3:05