授人以鱼不如授人以渔,目的不是为了教会你具体项目开发,而是学会学习的能力。希望大家分享给你周边需要的朋友或者同学,说不定大神成长之路有博哥的奠基石。。。
共同学习成长QQ群 622368884,不喜勿加,里面有一大群志同道合的探路人
如果觉得有用,麻烦点赞收藏,您的支持是博主创作的动力。
文章目录
1.前言
NTP(Network Time Protocol)网络时间协议基于UDP,用于网络时间同步的协议,使网络中的计算机时钟同步到UTC,再配合各个时区的偏移调整就能实现精准同步对时功能。提供NTP对时的服务器有很多,比如微软的NTP对时服务器,利用NTP服务器提供的对时功能,可以使我们的设备时钟系统能够正确运行。
ESP8266也可以通过建立与NTP服务的连接,来获取实时时间。
2. NTP报文协议

NTP报文格式如上图所示,它的字段含义参考如下:
- LI 闰秒标识器,占用2个bit,为“11”时表示告警状态,时钟未被同步。为其他值时NTP本身不做处理。
- VN 版本号,占用3个bits,表示NTP的版本号,现在为3
- Mode 模式,长度为3比特,表示NTP的工作模式。不同的值所表示的含义分别是:0未定义、1表示主动对等体模式、2表示被动对等体模式、3表示客户模式、4表示服务器模式、5表示广播模式或组播模式、6表示此报文为NTP控制报文、7预留给内部使用。
- stratum(层),占用8个bits,系统时钟的层数,取值范围为1~16,它定义了时钟的准确度。层数为1的时钟准确度最高,准确度从1到16依次递减,层数为16的时钟处于未同步状态,不能作为参考时钟。
- Poll 测试间隔,占
本文介绍了如何使用ESP8266通过NTP协议进行网络时间同步,包括NTP报文协议的解析和如何利用NTPClient库获取时间。提供了自己拼接协议和使用NTPClient库的两种方法,适合物联网设备实现时间同步。
订阅专栏 解锁全文
9385





