重試無響應的 NTP 伺服器的最小間隔是多少?
ntpd
是NTP的參考實現。目前版本是 4.1.2。手冊頁似乎說,
iburst
使用時,重試無響應的 NTP 伺服器的間隔為 16 秒。http://doc.ntp.org/4.1.2/confopt.htm
iburst
當伺服器無法訪問並且在每個輪詢間隔時,發送八個數據包的突發而不是通常的一個。只要伺服器不可達,數據包之間的間隔大約為 16 秒,以允許調製解調器呼叫完成。一旦伺服器可達,數據包之間的間隔約為 2s。這旨在加速使用伺服器命令和 s 地址以及使用該
-q
選項啟動 ntpd 時的初始同步獲取。但是官方的 NTP“手冊”說重試間隔將提高到 64 秒(假設預設設置):
https://www.eecis.udel.edu/~mills/ntp/html/poll.html
對於該
iburst
選項,突發中的數據包數量為 6,這是同步時鐘通常所需的數量;對於該burst
選項,突發中的數據包數量由目前輪詢指數和最小輪詢指數之間的差值作為 2 的冪來確定。例如,預設的最小輪詢指數為 6 (64 s),只有一個每次輪詢都會發送數據包,而在輪詢指數為 9(512 秒)或更多時發送全部 8 個數據包。這確保了平均車頭時距永遠不會超過最小車頭時距。如果設計不當,突發選項可能會導致網路負載增加。這兩個選項都受到速率管理和 Kiss-o’-Death Packet 頁面上描述的規定的影響。此外,當
iburst
或burst
被啟用時,會發送突發的第一個數據包,但只有在收到對第一個數據包的回复時才會發送剩餘的數據包。如果在選項設置的超時後沒有收到回复minpoll
,則再次發送第一個數據包。這意味著,即使伺服器無法訪問,網路負載也不會超過最小輪詢間隔。我是否應該理解重試之間的間隔在使用時實際上是 64 秒
iburst
,除非該minpoll
選項也被調整?
該
iburst
設置會更改server
設置,以便在可以訪問伺服器之前,在每個輪詢間隔發送八個數據包而不是一個。(八個數據包中的每一個之間的間隔是 16 秒或 2 秒,具體取決於是否收到任何響應。)要嘗試具體回答您的問題,輪詢重試之間的間隔將至少為 64 秒,無論是否
iburst
使用。
- 不使用
iburst
時,每次伺服器輪詢重試發送一個數據包。- 使用時
iburst
,每次輪詢重試時,最多以 16 秒或 2 秒的間隔發送多達 8 個數據包。- 一旦伺服器被認為是可訪問的(因此是同步的候選者),該
iburst
標誌就沒有進一步的影響。- 要在
iburst
伺服器成為同步候選者時使用語義,請添加burst
標誌。- 允許(但不一定推薦)使用
iburst
和burst
用於同一伺服器。經過一些實驗,這就是我實際發生的事情:
- 當
iburst
指定且伺服器不回复時,每個輪詢間隔發送一個數據包。- 當
iburst
指定並且伺服器確實回复時,將發送六個數據包的初始序列,每兩秒一個。這不會在隨後的輪詢間隔中重複,並且iburst
沒有進一步的影響。這六個數據包的序列足以將伺服器標記為同步的潛在候選者(*
在左側列中ntpq -np
)。- 一旦
iburst
沒有進一步的影響,每個輪詢間隔都會發送一個數據包。- 每個成功的輪詢間隔都會將可達性增加 1(實際上將其視為按位移位寄存器,其中 1 被推入作為 LSB);一旦達到 777 - 八進制 - 對應於九個連續成功的輪詢間隔,伺服器就成為可能的同步源。
與目前文件匹配的很少!