网络协议---NTP协议
原创
老五
老五
老五说网络
2026年10月23日 15:41
陕西
去阅读
一、NTP协议概念
NTP(Network Time Protocol,网络时间协议),用来在网络里同步计算机、交换机、AP、服务器等设备的系统时间,基于 UDP 123 端口。
核心目标:让全网设备时间统一,保证日志、认证、证书、漫游、数据库、监控等业务时间基准一致。
1、基础特点
传输层:UDP,端口123,和 TCP 不同,UDP 无连接、开销小,适合时间同步;NTP 默认源端口、目的端口都是 123。
2、分层架构(Stratum 层级),NTP 是层级式,层级数字越小越权威
- Stratum 0:原子钟、GPS 授时源(硬件基准,不对外提供 NTP 服务)
- Stratum 1:直接对接 Stratum0 的一级时间服务器(国家授时中心这类)
- Stratum 2~15:从上一级 NTP 同步,再向下提供服务(企业服务器、交换机)
- Stratum 16:未同步,时间不可用
企业内网一般:设备 → 公网 Stratum2 源(阿里云 / 国家授时中心),或者内网搭一台 NTP 服务器做中转。
3、工作模式
- 客户端 / 服务器模式(unicast,单播):最常用,设备主动向指定 NTP 服务器发请求,服务器回包。华为 / H3C 配置 ntp server 就是这个模式。
- 广播 / 组播模式:服务器周期性广播时间,内网大量终端被动接收,适合局域网。
- 对称模式:两台 NTP 服务器互相交换时间,用于上层时间服务器之间互校,企业很少用。
二、NTP 报文核心:4 个时间戳
这是 NTP 计算时间的核心,一次请求应答交互里包含 4 个时间:
- Originate Timestamp(T1):客户端发送 NTP 请求时,客户端本地时间
- Receive Timestamp(T2):NTP 服务器收到这个请求的服务器时间
- Transmit Timestamp(T3):NTP 服务器发送应答报文时的服务器时间
- Destination Timestamp(T4):客户端收到应答包时,客户端本地时间
三、报文逐条拆解(2 个包,NTPv3,UDP123)
前置信息:
- 客户端:10.20.39.122,MAC c8:ff:28:78:8e:a7
- 服务器:203.107.6.88(ntp.aliyun.com)
1、客户端发出请求包:
2、服务器发送应答包:
详解应答包中的内容:
- Flags:0x1c
- Leap Indicator:no warning。标记:无告警。代表这台阿里云 NTP 服务器自身时钟同步正常、时间可信,没有告警。
- Version:NTPv3
- Mode:server(模式 4),服务端应答报文
- [Request In:1]:Wireshark 标记,这条应答对应的请求是第 1 号包
- [Delta Time:0.045810149 s]:抓包层面看到的往返耗时 ≈45.8ms,和之前一致
- Peer Clock Stratum:2(secondary reference)
- Stratum=2,二级参考源,阿里云这台 NTP 服务器,是向上对接 Stratum1 一级授时源,再对外提供服务。
- Stratum 范围 1~15 可用,数字越大离基准时钟越远。
- Peer Polling Interval:17(2¹⁷=131072s)
- 协商轮询间隔,指数格式;由服务端回传给客户端,代表服务器支持的最大查询间隔。
- 设备稳定同步后,会在这个范围内动态调整轮询周期;iburst 阶段会短时间快速发包。
- Peer Clock Precision:0.000000 seconds
- 时钟精度,服务器上报自身硬件时钟精度,这里填充 0 占位,云 NTP 常见。
- Root Delay:0.010757 s
- 根延迟:从 Stratum0 基准时钟 → 上游 Stratum1 服务器 → 当前这台阿里云服务器,整条链路的总延迟:10.757ms。
- Root Dispersion:0.010544 s
-
根离散值:上游基准源带来的时间误差上限:10.544ms。
-
Root Delay + Root Dispersion 用来评估这个时间源本身的质量,数值越小越好。
- Reference ID:10.137.38.86
- 参考源标识:这台阿里云 NTP 自己同步的上游 NTP 服务器 IP 地址。
- Reference Timestamp:Oct 23, 2026 06:42:29.960555039 UTC
- 参考时间戳:阿里云服务器上一次和上游 10.137.38.86 完成同步的时刻。
9、四个核心时间戳
T1 = Origin Timestamp:Oct 23, 2026 06:42:50.071845899 UTC
👉 就是客户端请求包里面的 Transmit Timestamp,服务器收到请求后原样复制到 Origin 字段,用来告诉客户端:这是你发请求时自带的时间。
T2 = Receive Timestamp:Oct 23, 2026 06:42:50.337528749 UTC
👉 NTP 服务器收到客户端请求报文那一刻,服务器自己的 UTC 时间
T3 = Transmit Timestamp:Oct 23, 2026 06:42:50.337863164 UTC
👉 NTP 服务器发送这条应答报文那一刻,服务器自己的 UTC 时间
T4:客户端本地生成(Wireshark 不会在 NTP 字段里展示,是客户端收到包瞬间自己记录)
公众号:老五说网络
长按左侧二维码关注
版权声明
本站仅做备份收录,仅供研究与教学参考之用。
读者将信息用于其他用途的,全部法律及连带责任由读者自行承担,本站不承担任何责任。







评论