Todos los productos
Search
Centro de documentos

IoT Platform:Servicio NTP

Última actualización: Sep 05, 2026

IoT Platform ofrece el servicio Network Time Protocol (NTP). De este modo, IoT Platform sincroniza la hora del servidor con dispositivos embebidos de recursos limitados.

Funcionamiento

El servicio NTP se basa en el protocolo NTP. IoT Platform actúa como servidor NTP. A continuación se describe el proceso de calibración de hora de alta precisión.

  1. Un dispositivo envía un mensaje a IoT Platform mediante un topic específico. El mensaje incluye el parámetro deviceSendTime.

  2. Al recibir el mensaje, IoT Platform devuelve una respuesta que incluye los parámetros serverRecvTime y serverSendTime.

  3. Al recibir la respuesta, el dispositivo genera el parámetro deviceRecvTime según su hora local.

  4. El dispositivo calcula la diferencia horaria respecto a IoT Platform y obtiene el valor del parámetro Time, que indica la hora del sistema del servidor.

Importante

La hora del sistema de un dispositivo solo puede calibrarse mediante el servicio NTP si está conectado a IoT Platform.

Si el dispositivo no está conectado a IoT Platform, no podrá obtener una hora precisa al encenderse. Cuando establezca una conexión basada en TSL con IoT Platform, fallará la verificación de la marca de tiempo del certificado.

Topics

Topic de solicitud: /ext/ntp/${YourProductKey}/${YourDeviceName}/request

Topic de respuesta: /ext/ntp/${YourProductKey}/${YourDeviceName}/response

${YourProductKey} y ${YourDeviceName} especifican los valores de ProductKey y DeviceName del certificado del dispositivo. Consulte el certificado del dispositivo en la página Device Details de la consola de IoT Platform .

Conexión del dispositivo

Configure el servicio NTP únicamente con Link SDK for C. Para descargar el código de ejemplo, consulte Obtain and use Link SDK for C.

Para obtener información sobre cómo configurar el servicio NTP en un dispositivo, consulte NTP service.

A continuación se describe cómo usar el servicio NTP mediante topics específicos:

  1. El dispositivo envía un mensaje QoS 0 al topic /ext/ntp/${YourProductKey}/${YourDeviceName}/request. El mensaje incluye una marca de tiempo en milisegundos que indica la hora actual del dispositivo. Por ejemplo:

    {
        "deviceSendTime":"1571724098000"
    }
    Nota
    • El tipo de dato de la marca de tiempo puede ser Long o String. De forma predeterminada, se usa el tipo Long.

    • El servicio NTP solo admite mensajes QoS 0.

  2. El dispositivo recibe una respuesta de IoT Platform a través del topic /ext/ntp/${YourProductKey}/${YourDeviceName}/response. El siguiente fragmento muestra un ejemplo:

    {
        "deviceSendTime":"1571724098000",
        "serverRecvTime":"1571724098110",
        "serverSendTime":"1571724098115"
    }
  3. El dispositivo calcula la hora actual exacta en formato de marca de tiempo UNIX.

    El dispositivo registra como ${deviceRecvTime} la marca de tiempo al recibir la respuesta del servidor NTP. La hora actual exacta se calcula con la siguiente fórmula: (${serverRecvTime} + ${serverSendTime} + ${deviceRecvTime} - ${deviceSendTime})/2.

Ejemplos

Nota

Las marcas de tiempo enviadas por el dispositivo y el servidor NTP deben tener el mismo tipo de dato. Por ejemplo, si la marca de tiempo enviada por el dispositivo es de tipo STRING, la devuelta por el servidor NTP también será de tipo STRING.

En este ejemplo, la marca de tiempo del dispositivo es 1571724098000 y la del servidor NTP es 1571724098100. La latencia del enlace es de 10 milisegundos. El servidor NTP envía una respuesta 5 milisegundos después de recibir el mensaje del dispositivo.

Operación

Hora del dispositivo (milisegundos)

Hora del servidor (milisegundos)

El dispositivo envía un mensaje

1571724098000 (deviceSendTime)

1571724098100

El servidor NTP recibe el mensaje

1571724098010

1571724098110 (serverRecvTime)

El servidor NTP envía una respuesta

1571724098015

1571724098115 (serverSendTime)

El dispositivo recibe la respuesta

1571724098025 (deviceRecvTime)

1571724098125

El dispositivo calcula la hora actual exacta mediante la siguiente fórmula: (1571724098110 + 1571724098115 + 1571724098025 - 1571724098000)/2 = 1571724098125.

Si el dispositivo usa la marca de tiempo 1571724098115 devuelta por IoT Platform, el cálculo no incluirá la latencia de enlace de 10 milisegundos entre el dispositivo e IoT Platform.