Что означает сообщение '\x1b' + 47 * '\0', отправленное на NTP-сервер?

Я работаю над клиентом NTP. Несколько других потоков указывают, что сообщение, содержащее "\x1b' + 47 * '\0", отправляется на сервер NTP, но ни один из этих потоков не дает объяснения того, что на самом деле означает это сообщение или почему оно отправляется. Я пытался посмотреть NTP RFC, но не смог найти там никакой информации об этом.


person utterfool    schedule 14.11.2014    source источник


Ответы (1)


"\x1b' + 47 * '\0" представляет собой поле данных размером 48 байт. 0x1B, а затем 47 раз 0. 48 байт — это размер пакета NTP UDP. Первый байт (0x1B) определяет LI, VN и Mode.

RFC 5905 Спецификация NTP (7.3. Переменные заголовка пакета) определяет заголовок сообщения следующим образом. :

     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   |
  +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+

Установка первого байта данных в 0x1B или 00 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 указывает, что сообщение является сообщением запроса клиента.

Отправка такого пакета на порт 123 NTP-сервера заставит сервер отправить ответный пакет.

person Arno    schedule 14.11.2014