networking - 发送到 NTP 服务器的 '\x1b' + 47 * '\0' 消息是什么意思?

标签 networking ntp

我正在处理 NTP 客户端。其他一些线程表明包含 "\x1b' + 47 * '\0"的消息被发送到 NTP 服务器,但这些线程都没有解释该消息的实际含义或发送的原因。我曾尝试查看 NTP RFC,但我也无法在其中找到任何有关它的信息。

最佳答案

"\x1b' + 47 * '\0"表示一个 48 字节的数据字段。 0x1B其次是 47 次0 . 48 字节是 NTP UDP 数据包的大小。第一个字节 (0x1B) 指定 LI , VN , 和 Mode .
RFC 5905 NTP Specification (7.3. Packet Header Variables)指定消息头如下:

     0                   1                   2                   3
   0 1 2 3 4 5 6 7 8 9 0 1 2 3 4 5 6 7 8 9 0 1 2 3 4 5 6 7 8 9 0 1
  +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
  |LI | VN  |Mode |    Stratum     |     Poll      |  Precision   |
  +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
将数据的第一个字节设置为 0x1B00 011 011方法
LI   = 0    (Leap indicator)
VN   = 3    (Version number)
Mode = 3    (Mode, mode 3 is client mode)
您也可以使用更新的版本 ( VN = 4 )。这将需要将第一个 header 字节设置为0x23 (00 100 011) .
模式定义为
     +-------+--------------------------+
     | Value | Meaning                  |
     +-------+--------------------------+
     | 0     | reserved                 |
     | 1     | symmetric active         |
     | 2     | symmetric passive        |
     | 3     | client                   |
     | 4     | server                   |
     | 5     | broadcast                |
     | 6     | NTP control message      |
     | 7     | reserved for private use |
     +-------+--------------------------+
指定 Mode = 3将该消息指示为客户端请求消息。
将这样的数据包发送到 NTP 服务器的 123 端口将强制服务器发送回复包。

关于networking - 发送到 NTP 服务器的 '\x1b' + 47 * '\0' 消息是什么意思?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/26937857/

相关文章:

python - Docker 撰写 : Allowing Network Interactions Between Services

ios - 应用程序启动时更改核心数据

iphone - iPhone 的网络时间协议(protocol)

time - docker 容器会自动与其主机同步时间吗?

linux - crontab - sh : ip command not found

ios - 使用 NSURLConnection 取消文件上传

c - 丢包率超过 65% 的 Echo 客户端

c - SNTP 客户端版本 4

android - 如何同步两部或多部安卓手机的系统时钟?

linux - Nagios check_ntp_peer 不工作