Referencia del Archivo SNTP.h

Declaracion del protocolo SNTP.
. Más...

Gráfico de los archivos que directa o indirectamente incluyen a este archivo:


Definiciones

#define SNTP_PORT_V   123
#define SNTP_PORT_H_V   (SNTP_PORT_V>>8)
#define SNTP_PORT_L_V   (SNTP_PORT_V&0xff)
#define SNTP_DATALENGTH   48

Funciones

void SNTP_step (void)
 ejecuta un paso de la maquina de estados de SNTP
void SNTP_init (void)
 inicializa banderas de la maquina de estados de SNTP
evita que se ejecute por error (p.e on_process=0)
void SNTP_start (void)
 arranca la maquina de estados de SNTP
void SNTP_send_request (BYTE *rxtx_buffer)
 Genera y envia un paquete de peticion de fecha/hora
.
void timestamp_to_date ()
void SNTP_error (void)
 lleva a SNTP a un estado de error
lo utilizan los procesos externos para "notificar" de errores (p.e. timeout)

Descripción detallada

Declaracion del protocolo SNTP.
.

El Simple Network Time Protocol es una simplificacion del NTP. Utiliza simplemente un paquete de la respuesta del servidor al envio del request de NTP por lo que hay un error que se debe al retardo en la comunicacion del orden de milisegs. Por esto, solo se utiliza la timestamp de segundos y no la de fracciones de segundos para calcular fecha y hora. El timestamp contiene una cuenta de segundos transcurridos desde 1/1/1900 por lo que debe ser convertido a un formato mas amigable.


Documentación de las definiciones

#define SNTP_DATALENGTH   48

#define SNTP_PORT_H_V   (SNTP_PORT_V>>8)

#define SNTP_PORT_L_V   (SNTP_PORT_V&0xff)

#define SNTP_PORT_V   123


Documentación de las funciones

void SNTP_error ( void   ) 

lleva a SNTP a un estado de error
lo utilizan los procesos externos para "notificar" de errores (p.e. timeout)

void SNTP_init ( void   ) 

inicializa banderas de la maquina de estados de SNTP
evita que se ejecute por error (p.e on_process=0)

void SNTP_send_request ( BYTE rxtx_buffer  ) 

Genera y envia un paquete de peticion de fecha/hora
.

por un tema de seguridad, habria que mandarlo con un timestamp propio y checkear que la respuesta tenga dicho timestamp para de esa forma evitar que alguien me mande un udp simulando ser el server que me confunda. igual esto es de paranoico ya que si chequeo que el sender ip y el sender MAC sean del server, ya estaria cubierto.

La estructura que se utilizara para el almacenado de fechas y horas. Permite guardar la informacion de una manera mas amigable que el timestamp de NTP en un campo de 32 bits.

La peticion se realiza a la MAC e IP que han sido preasignadas.

Parámetros:
rxtx_buffer es un puntero al buffer temporal

Gráfico de llamadas para esta función:

void SNTP_start ( void   ) 

arranca la maquina de estados de SNTP

void SNTP_step ( void   ) 

ejecuta un paso de la maquina de estados de SNTP

Gráfico de llamadas para esta función:

void timestamp_to_date (  ) 

Para la conversion, se divide (de forma entera) entre 60 (o 24) sucesivamente, almacenando los restos para obtener segundos, minutos, horas y dias. La cuenta de dias desde 1900 se convierte al formato dia/mes/año utilizando un algoritmo derivado del algoritmo de conversion entre calendarios Juliano y Gregoriano. Solo se almacenan 2 digitos del año ya que dada la longitud del timestamp, el protocolo solo puede contar 136 años desde 1900 y no trabajaremos con fechas "negativas".


Generado el Wed Jul 2 09:20:59 2008 para TCP/IP por  doxygen 1.5.6