I am working on an NTP Client. A few other threads indicate that the a message containing "\x1b' + 47 * '\0" is sent to the NTP server, but none of these threads give an explanation about what this message actually means or why it is sent. I've tried looking at the NTP RFC but I was unable to find any information about it in there either.
What does the '\x1b' + 47 * '\0' message sent to an NTP server mean?
2.3k views Asked by utterfool At
1
"\x1b' + 47 * '\0"
represents a data field of 48 bytes.0x1B
followed by 47 times0
. 48 bytes is the size of an NTP UDP packet. The first byte (0x1B) specifiesLI
,VN
, andMode
.RFC 5905 NTP Specification (7.3. Packet Header Variables) specifies the message header as follows:
Setting the first byte of the data to
0x1B
or00 011 011
meansYou may also use the more recent version (
VN = 4
). This would require the first header byte to be set to0x23 (00 100 011)
.The modes are defined as
Specifying
Mode = 3
indicates the message as a client request message.Sending such a packet to port 123 of an NTP server will force the server to send a reply package.