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

时间:2014-11-14 19:56:11

标签: networking ntp

我正在开发NTP客户端。一些其他线程表明包含“\ x1b'+ 47 *'\ 0”的消息被发送到NTP服务器,但这些线程都没有解释此消息的实际含义或发送原因。我已经尝试过查看NTP RFC,但我无法在那里找到任何有关它的信息。

1 个答案:

答案 0 :(得分:3)

"\x1b' + 47 * '\0"表示48字节的数据字段。 0x1B接着是47次 0。 48字节是NTP UDP数据包的大小。第一个字节(0x1B)指定LIVNMode

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)。这将需要将第一个头字节设置为 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将强制服务器发送回复包。