coreSNTP
适用于小型 IoT设备( MCU 或小型 MPU)的 SNTP C 客户端库
简介
coreSNTP 库提供简单网络时间协议 (SNTP) 客户端,
允许设备将其系统时钟与时间服务器同步。此库实现了
RFC 4330 中定义的 SNTPv4 规范。SNTP 客户端
可以向 NTP 和 SNTP 服务器请求时间。
该库提供了两个 API 层,为应用开发者提供不同程度的开发灵活性。
应用程序开发者可以使用这两层中的任何一层,
在他们的应用程序中创建一个 SNTP 客户端:
- 序列化器/反序列化器和和实用程序——这一层提供了序列化 SNTP 时间请求
和反序列化 SNTP 响应数据包的功能,以及一些实用程序函数,
对于在应用程序中设置 SNTP 客户端时很有帮助。
- 客户端——这一层为网络操作提供了额外的托管
功能,包括 DNS 解析、通过 UDP 发送和接收 SNTP 数据包、
验证服务器的安全性(如果启用)、通知系统用服务器的信息修正其时间,
以及处理服务器对时间请求的拒绝。该层调用序列化器/反序列化器层,
对网络上发送和接收的 SNTP 数据包进行序列化和反序列化。(注:本层
通过库所暴露的接口的用户定义实现来执行网络和认证操作
。)
序列化器/反序列化器层不依赖于任何接口。它可以被集成到一个应用程序中按原样使用,
而客户端层通过暴露网络 I/O、
加密计算以及获取和更新系统时间的接口操作与平台特定的调用解耦。如果
针对客户端层进行开发,必须为平台实现这些接口。关于接口的更多信息,
请参阅移植指南。
此库以 C 编写,设计符合 ISO C90 和
MISRA C: 2012 标准。除标准 C 库以外,该库不依赖于其他库。经证明,
该库可安全使用内存且不执行堆分配,
适用于 IoT 微控制器,也可以完全移植到其他平台。
当您在您的应用程序中设计一个用于时间同步的 SNTP 客户端时,
我们建议您使用验证来与您选择的 SNTP/NTP 服务器进行通信。相互身份验证可防止对服务器响应的恶意修改或欺骗,
从而防止设备中时间的恶意破坏。关于
使用 coreSNTP 库的验证的例子,请参阅 coreSNTP 演示。
此库可免费使用,且根据 MIT 开源许可发布。
core_sntp_client.c | 1.5K | 1.2K |
core_sntp_serializer.c | 1.0K | 0.8K |
总估计值 | 2.5K | 2.0K |
Copyright (C) Amazon Web Services, Inc. or its affiliates. All rights reserved.