Está en la página 1de 12

+

NTP
Sistemas Distribuidos Rodrigo Santamara

+ NTP
! ! !

NTP Fase 2 FAQ

NTP
!!

Protocolo de tiempos en red, para determinar los tiempos de deriva entre distintas mquinas Tres modos de sincronizacin
!!

!!

Multidifusin !! Reparto peridico del tiempo por los servidores


!!

Pensado para LAN de alta velocidad

!!

Llamada a procedimiento remoto (RPC) !! Similar al algoritmo de Cristian Simtrico !! Sincronizacin entre servidores

!!

NTP
Estimacin
t t1 t2
*En (t-t)/2, si t y t " 0, la diferencia es mxima cuando t=0 o t=0. Si t=0 " (t - 0)/2 = (0+t)/2 = di/2 Si t=0 " (0 - t)/2 = - (t +0)/2 = -di/2

t0
!!

t3

Los mensajes llegan tras un tiempo de transmisin (t y t) y con desplazamiento de B respecto a A (offset o)
!! t1=t0+t+o

t3=t2+t-o

!!

Sumando las dos ecuaciones obtenemos el retardo (delay) di:


!!

di=t+t=(t1-t0)+(t3-t2)

!!

Restando las dos ecuaciones obtenemos el desplazamiento (offset) o:


!! !!

o = (t1-t0 + t2-t3)/2 + (t-t)/2 = oi + (t-t)/2 Se deduce* que oi - di/2 ! o ! oi + di/2 !! oi es una estimacin del desplazamiento y di una medida de la precisin de dicha estimacin

NTP
Ejemplo
t1=3.4 t2=3.6 t=0.4 t=0.6 o=2 t0=1 t1=t0+t+o " t=t1-t0-o t3=t2+t-o " t=t3-t2+o t3=2.2 conocidos desconocidos estimados

t+t=di=t1-t0+t3-t2=1.0 t-t=t1-t0+t2-t3-2o " o = oi + (t-t)/2 oi - di/2 ! o ! oi + di/2 1.9 0.5 ! o ! 1.9 + 0.5
oi = (3.4-1 + 3.6-2.2) / 2 di/2 = (3.4-1 + 2.2-3.6) / 2

NTP
Algoritmo de filtrado de pares
!!

Realizamos 8 estimaciones
!! !!

Obtenemos 8 pares <oi,di> Utilizamos el par que tenga el valor mnimo de di

+ NTP
! ! !

NTP Fase 2 FAQ

Fase 2
!!

Implementar el algoritmo de filtrado de pares de NTP en un despliegue con tres mquinas


!! !!

Cada mquina ejecutar un proceso Servidor Una de las mquinas ejecutar un proceso NTP, estimando el offset y delay de las otras dos respecto a ella (o1, d1, o2 y d2)
!! !!

El offset y delay respecto a s misma es cero Imprimir el offset y delay de cada mquina por pantalla

Fase 2
Proceso Servidor
!!

Posible interfaz e implementacin del proceso Servidor


{tiempo1, tiempo2} pedirTiempo() t1 <- tiempo() sleep(aleatorio) t2 <- tiempo() devolver(t1,t2) terminar() terminarEjecucin

10

Fase 2
Proceso NTP
!!

Mtodo en el proceso NTP (ejecutar 8 veces)


para cada (mquina) para cada (repeticin) determinar(t0) {t1,t2} <- mquina.pedirTiempo() determinar(t3) o <- determinarOffset(t0,t1,t2,t3) d <- determinarDelay (t0,t1,t2,t3) si ( d < par.d ) fin para cada mquina.terminar() fin para cada par <- (d,o)

+ NTP
! ! !

NTP Fase 2 FAQ

11

12

También podría gustarte