嵌入式 NtpClient 選項用法詳解

用法:程序NtpClient[選項]
選項:
-c count count時間計數後停止(默認爲0意味直到永遠)
-d      打印診斷(功能可以在編譯時關閉)
-g 選項會導致程序NtpClient後得到的結果更準確,而不僅僅是(微秒,默認爲0意味直到永遠停止)
-h 主機名(ip地址)(強制)NTP服務器,對系統時間來衡量
-i 間隔時間 每隔一定時間檢查時間(默認值爲600)
-I 嘗試服務器使用adjtimex鎖定本地時鐘(2)
-p 端口名  鎖定本地NTP客戶端UDP端口(默認爲0表示“任何可用的”)
-q 最小延時分鐘 最小數據包的延遲交易(默認800微秒)
-r 在標準輸入重播分析代碼
-s 簡單的時鐘設置(相當於-c 1)
-t 信任網絡和服務器,沒有RFC-4330推薦使用的檢查
(用法爲本人翻譯,有些不太準確,請看下面原版英文)
時間同步服務器一般用法示例:
<p style="margin-top: 0px; margin-bottom: 0px; padding-top: 0px; padding-bottom: 0px;"><span style="line-height: 30px;"><span style="font-size: 12px;"><span class="com">#!/bin/sh</span>

<span class="com">#get params</span>
<span class="pun">.</span><span class="pln"> </span><span class="pun">/</span><span class="pln">sbin</span><span class="pun">/</span><span class="kwd">global</span><span class="pun">.</span><span class="pln">sh</span>

<span class="pln">start</span><span class="pun">()</span><span class="pln"> </span><span class="pun">{</span>
<span class="kwd">if</span><span class="pln"> </span><span class="pun">[</span><span class="pln"> </span><span class="pun">-</span><span class="pln">f </span><span class="pun">/</span><span class="pln">bin</span><span class="pun">/</span><span class="pln">ntpclient </span><span class="pun">];</span><span class="pln"> </span><span class="kwd">then</span>
<span class="pln"> echo </span><span class="str">"Starting NTP: "</span>
<span class="pln">    srv</span><span class="pun">=</span><span class="str">`nvram_get 2860 NTPServerIP`</span>
<span class="pln">    sync</span><span class="pun">=</span><span class="str">`nvram_get 2860 NTPSync`</span>
<span class="pln">    tz</span><span class="pun">=</span><span class="str">`nvram_get 2860 TZ`</span>

<span class="pln">    backup_time</span><span class="pun">=</span><span class="str">`date +%T`</span>
<span class="pln">    sync</span><span class="pun">=</span><span class="str">`expr $sync \* 3600`</span>

<span class="pln">    </span><span class="kwd">if</span><span class="pln"> </span><span class="pun">[</span><span class="pln"> </span><span class="str">"$tz"</span><span class="pln"> </span><span class="pun">=</span><span class="pln"> </span><span class="str">""</span><span class="pln"> </span><span class="pun">];</span><span class="pln"> </span><span class="kwd">then</span>
<span class="pln">        tz</span><span class="pun">=</span><span class="str">"UCT_000"</span>
<span class="pln">    </span><span class="kwd">fi</span>

<span class="pln">    echo $tz </span><span class="pun">></span><span class="pln"> </span><span class="str">/etc/</span><span class="pln">tmpTZ</span>
<span class="pln">    sed </span><span class="pun">-</span><span class="pln">e </span><span class="str">'s#.*_\(-*\)0*\(.*\)#GMT-\1\2#'</span><span class="pln"> </span><span class="pun">/</span><span class="pln">etc</span><span class="pun">/</span><span class="pln">tmpTZ </span><span class="pun">></span><span class="pln"> </span><span class="str">/etc/</span><span class="pln">tmpTZ2</span>
<span class="pln">    sed </span><span class="pun">-</span><span class="pln">e </span><span class="str">'s#\(.*\)--\(.*\)#\1\2#'</span><span class="pln"> </span><span class="pun">/</span><span class="pln">etc</span><span class="pun">/</span><span class="pln">tmpTZ2 </span><span class="pun">></span><span class="pln"> </span><span class="str">/etc/</span><span class="pln">TZ</span>
<span class="pln">    rm </span><span class="pun">-</span><span class="pln">rf </span><span class="pun">/</span><span class="pln">etc</span><span class="pun">/</span><span class="pln">tmpTZ</span>
<span class="pln">    rm </span><span class="pun">-</span><span class="pln">rf </span><span class="pun">/</span><span class="pln">etc</span><span class="pun">/</span><span class="pln">tmpTZ2</span>
<span class="pln">    date </span><span class="pun">+%</span><span class="pln">T </span><span class="pun">-</span><span class="pln">s $backup_time</span>

<span class="pln">    </span><span class="kwd">if</span><span class="pln"> </span><span class="pun">[</span><span class="pln"> </span><span class="str">"$srv"</span><span class="pln"> </span><span class="pun">!=</span><span class="pln"> </span><span class="str">""</span><span class="pln"> </span><span class="pun">];</span><span class="pln"> </span><span class="kwd">then</span>
<span class="pln"> </span><span class="pln">ntpclient </span><span class="pun">-</span><span class="pln">s </span><span class="pun">-</span><span class="pln">c </span><span class="lit">0</span><span class="pln"> </span><span class="pun">-</span><span class="pln">h $srv </span><span class="pun">-</span><span class="pln">i $sync </span><span class="pun">&</span>
<span class="pln">    </span><span class="kwd">fi</span>
<span class="kwd">fi</span>
<span class="pun">}</span>

<span class="pln">stop</span><span class="pun">()</span><span class="pln"> </span><span class="pun">{</span>
<span class="pln"> echo </span><span class="str">"Stopping NTP: "</span>
<span class="pln">    killall </span><span class="pun">-</span><span class="pln">q ntpclient</span>
<span class="pun">}</span>

<span class="kwd">case</span><span class="pln"> </span><span class="str">"$1"</span><span class="pln"> </span><span class="kwd">in</span>
<span class="pln">        start</span><span class="pun">)</span>
<span class="pln">            start</span>
<span class="pln">            </span><span class="pun">;;</span>

<span class="pln">        stop</span><span class="pun">)</span>
<span class="pln">            stop</span>
<span class="pln">            </span><span class="pun">;;</span>

<span class="pln">        restart</span><span class="pun">)</span>
<span class="pln">            stop</span>
<span class="pln">            start</span>
<span class="pln">            </span><span class="pun">;;</span>

<span class="pln">        </span><span class="pun">*)</span>
<span class="pln">            echo $</span><span class="str">"Usage: $0 {start|stop|restart}"</span>
<span class="pln">            </span><span class="kwd">exit</span><span class="pln"> </span><span class="lit">1</span>
<span class="kwd">esac</span></span></span></p>

Usage: ntpclient [options]
options:
-c count     stop after count time measurements (default 0 means go forever)
-d           print diagnostics (feature can be disabled at compile time)
-g goodness  causes ntpclient to stop after getting a result more accurate
                   than goodness (microseconds, default 0 means go forever)
-h hostname  (mandatory) NTP server, against which to measure system time
-i interval  check time every interval seconds (default 600)
-l           attempt to lock local clock to server using adjtimex(2)
-p port      local NTP client UDP port (default 0 means "any available")
-q min_delay minimum packet delay for transaction (default 800 microseconds)
-r           replay analysis code based on stdin
-s           simple clock set (implies -c 1)
-t           trust network and server, no RFC-4330 recommended cross-checks
以下爲google翻譯:
程序NtpClient NTP(RFC-1305,RFC-4330)客戶端的UNIX相似的計算機。
它的功能的一小部分XNTPD,但恕我直言執行
更好的(或至少是有可能更好地運作)內
有限的範圍內。由於它是遠小於xntpd命令,它是
瞭解更多相關的嵌入式計算機。
程序NtpClient版權所有1997年,1999年,2000年,2003年,2006年,2007年拉里?杜利特爾,
並可以自由複製和修改的GNU的條款
通用公共許可證第2版。如果您要分發的程序NtpClient
在其他條款,請與我聯繫。我可能會同意一些其他的安排,
如果你跟我_before_啓動違反GPL條款。
程序NtpClient主頁:http://doolittle.icarus.com/ntpclient/
約阿希姆?尼爾森創造的一個分支,程序NtpClient,他堅持在
http://vmlinux.org/jocke/ntpclient.shtml。我們不具有相同的
修的,並建立系統的感情,有些人可能更喜歡他的。
特別是,他已經將他的守護程序和系統日誌程序NtpClient。
兩個版本的基本功能應該是相同的。
要在Linux上構建,輸入“make”。 Solaris和其他Unix用戶
可能需要稍微調整的Makefile。這並不複雜。
爲了改變系統時鐘頻率,只在Linux adjtimex(2)
接口,在這個時候實施。非Linux系統只能
測量時間的差異和設置系統時鐘,使用程序NtpClient
POSIX 1003.1-2001標準程序clock_gettime()和
clock_settime()。還可以看到“錯誤”,在下面。
有幾個編譯時配置可能的,這需要
編輯Makefile。無論是做或不定義
??ENABLE_DEBUG
??ENABLE_REPLAY
??USE_OBSOLETE_GETTIMEOFDAY
??PRECISION_SIOCGSTAMP
首先嚐試沒有更改默認:這會給你一個全
功能程序NtpClient,採用現代POSIX時間的功能,工作
合理的任何Linux內核。有在ntpclient.c評論
你應該讀之前嘗試與PRECISION_SIOCGSTAMP。
有些老,但以其他方式(幾乎)維修的Linux系統(例如,紅帽
EL-3.0和Ubuntu 4.10)有一個完全打破:POSIX clock_settime()
實施。如果你獲得“clock_settime的:無效的參數”當你
運行程序NtpClient-S,重建與DUSE_OBSOLETE_GETTIMEOFDAY。 Linux系統
更老的甚至不會編譯沒有這種開關的設置。
用法:程序NtpClient[選項]
選項:
-c count count時間計數後停止(默認爲0意味直到永遠)
-d      打印診斷(功能可以在編譯時關閉)
-g 選項會導致程序NtpClient後得到的結果更準確,而不僅僅是(微秒,默認爲0意味直到永遠停止)
-h 主機名(強制)NTP服務器,對系統時間來衡量
-i 間隔時間 每隔一定時間檢查時間(默認值爲600)
-I 嘗試服務器使用adjtimex鎖定本地時鐘(2)
-p 端口名  鎖定本地NTP客戶端UDP端口(默認爲0表示“任何可用的”)
-q 最小延時分鐘 最小數據包的延遲交易(默認800微秒)
-r 在標準輸入重播分析代碼
-s 簡單的時鐘設置(相當於-c 1)
-t 信任網絡和服務器,沒有RFC-4330推薦使用的檢查
死機的用戶可以使用該程序進行監控,但沒有時鐘設置
(與-s或-l開關)。 -l開關被設計成強大的
在任何網絡環境中,但已經看到了最廣泛的測試,
低時延(小於2 ms)以太網環境中。在其他的用戶
環境研究程序NtpClient的行爲,並準備調整
內部調整參數。如何和爲什麼要使用一個長的描述
程序NtpClient的HOWTO文件。程序NtpClient始終將數據包發送到
服務器的UDP端口123。
通常需要調整參數鎖定模式是min_delay,
最短的往返交易時間。這可以設置與
命令行-q開關。默認情況下爲800微秒的歷史
良好的本地以太網硬件在幾年前。如果定得太高,
在時間鎖定時,你會得到很多的“不一致”日誌文件中的行
(-l開關)。唯一真正的面向未來的值是0,但會導致
本地時間比它應該多走。我使用我的工作站上200。
test.dat的文件有200行的樣本輸出。它的第幾行,
-d選項時,將顯示與輸出列標題
選擇是:
?日第二次經過的攤位歪斜分散頻率
36765 00180.386 1398.0 40.3 953773.9 793.5 -1240000
36765 00780.382 1358.0 41.3 954329.0 915.5 -1240000
36765 01380.381 1439.0 56.0 954871.3 915.5 -1240000
一天,第二:時間的測量,UTC,相對於NTP的時代(1900年1月1日)
經過:從查詢響應的總時間(微秒)
攤主:服務器報告的要求,它坐在(微秒)
歪斜:區別本地時間和服務器時間(微秒)
分散性:服務器報告的信息,請參閱RFC-1305(微秒)
頻率:本地時鐘頻率調整(僅限於Linux,PPM * 65536)
一個相對較新的功能,是一個系列的完整性檢查
UDP數據包,一般建議由RFC-4330。如果
失敗這些測試之一,上述的線被替換
36765 01380.381拒絕包
或者,如果ENABLE_DEBUG在編譯時,被選擇的一個
36765 01380.381拒絕數據包:李== 3
36765 01380.381拒絕的數據包:VN <3
36765 01380.381拒絕數據包:MODE = 3
=發送36765 01380.381拒絕數據包:ORG!
36765 01380.381拒絕數據包:XMT == 0
36765 01380.381拒絕數據包:ABS(DELAY)> 65536
36765 01380.381拒絕數據包:ABS(DISP)> 65536
36765 01380.381拒絕數據包:地層== 0
要查看被拒絕的數據包的實際價值,與啓動程序NtpClient
-d選項,這將會給人類可讀的打印接收的每一個數據包,
包括拒絕的。要跳過這些檢查,使用-t開關。
TEST.DAT是合適的管道到程序NtpClient-R的。我有超過200000
樣品(系)存檔的學習,我不包括在這裏。
他們一般間隔10分鐘,超過三
年的數據記錄(從各種機器,而不是連續的,
不幸的是)。
作爲一種特殊的,額外的獎勵,我也有我的adjtimex(1)程序。
有關詳細信息,請參閱手冊頁和HOWTO文件。
信封是一個perl腳本,我用我的鎖研究。
這是一個黑客攻擊的,不值得記錄在這裏。
廣泛分佈的ntpclient_2000_345版本的變化,因爲:
? - 新的-g選項(已有限的測試)
? - 改變最大91 ppm的頻率調整到150 ppm的
? - 固定的“不一致”的錯誤引發的大頻率誤差在phaselock.c
? - 新的文件:HOWTO,adjtimex.c,adjtimex.1,rate.awk,log2date.pl
? - 小源代碼清理
? - 源是現在爲64位,乾淨,實用,在Alpha測試
? - 可選的補丁提供的安迪華納,看到andyw.patch
? - 由Linksys提供的可選的補丁,請參閱linksys.patch
? - 刪除不合理的偏移15020天在日期列(XNTPD有這個的
??????偏移量,這將天以來-1900-劃時代到修正的儒略日)
廣泛分佈的ntpclient_2003_194版本的變化,因爲:
? - 默認的構建是現在,性病= C99,C89窗臺的作品了
? - 交換機的默認編譯的gettimeofday()到POSIX clock_gettime()
? - 更多的檢查NTP應答報文,參考RFC-4330
? - 在調試輸出的分數第二次印刷改變傳統的十進制
? - 新的-f開關來設置初始頻率
? - 工程同時指定-s和-L,將相位鎖定,然後再設置
? - 錯誤修復程序選擇()錯誤處理,由於沃爾特?哈姆斯
? - 新的手冊頁,由沃爾特?哈姆斯貢獻
? - 最子程序是靜態的編譯器標記
? - 結構性變化的代碼,如新的ntpclient.h文件
? - 下降(主要)過時的補丁,Linksys和安迪?華納
自ntpclient_2006_318變化:
? - min_delay參數可調,使用的是硬編碼的800微秒
? - 移除無用的聽()調用,由於亞歷山大Indenbaum的
? - 固定長度傳遞給recvfrom(),由於亞歷山大Indenbaum的
? - 收拾的32位整數聲明,敦促下布賴恩?麥卡利斯特
? - 增值rate2.awk,貢獻婁Sortman
? - 提供簡單的方式,覆蓋15 MIN_INTERVAL在編譯時
? - 放鬆MIN_INTERVAL執行一次性的使用,這要感謝米哈伊?布哈
自ntpclient_2007_365變化:
? - 固定式的sa_xmit_len,感謝vapier
? - 下降下劃線的拼寫adjtimex(2),可能使uClibc的更快樂
? - 包括netdb.h中的和總是定義_BSD_SOURCE的拿到的樣機herror
? - 輕微的格式,以配合Nilsson的叉
? - 附加FNO嚴格的混疊所需要的傳統的網絡編碼風格
錯誤:
? - 不明白李(閏年第二個指標)領域的NTP包
? - 不與adjtimex(2)狀態值
? - 無法查詢多個服務器
? - 僅限IPv4
? - 需要Linux風格的選擇()的語義,超時值被修改
? - 總是返回成功(0)
遵守RFC-4330第10章,最佳做法:
?1。強制執行,除非有人動手腳的源代碼
?2。沒有退避,但不重;這不是TCP
?3。不在範圍之內的上游源
?4。不在範圍之內的上游源
?5。不在範圍之內的上游源
?6。支持
?7。不支持
?8。不支持(嚇人的機會到DOS的_client_),
原文:
ntpclient is an NTP (RFC-1305, RFC-4330) client for unix-alike computers.
Its functionality is a small subset of xntpd, but IMHO performs
better (or at least has the potential to function better) within
that limited scope.  Since it is much smaller than xntpd, it is
also more relevant for embedded computers.
ntpclient is Copyright 1997, 1999, 2000, 2003, 2006, 2007 Larry Doolittle,
and may be freely copied and modified according to the terms of the GNU
General Public License, version 2.  If you want to distribute ntpclient
under other terms, contact me.  I might agree to some other arrangement,
if you talk to me _before_ you start violating GPL terms.
ntpclient home page: http://doolittle.icarus.com/ntpclient/
Joachim Nilsson created a fork of ntpclient that he maintains at
http://vmlinux.org/jocke/ntpclient.shtml.  We don't have the same
maintainance and build system sensibilities; some people may prefer his.
In particular, he has converted his ntpclient to daemon and syslog.
The basic functionality of the two versions should be identical.
To build on Linux, type "make".  Solaris and other Unix users will
probably need to adjust the Makefile slightly.  It's not complex.
For changing the system clock frequency, only the Linux adjtimex(2)
interface is implemented at this time.  Non-Linux systems can only
use ntpclient to measure time differences and set the system clock,
by way of the POSIX 1003.1-2001 standard routines clock_gettime() and
clock_settime().  Also see "Bugs", below.
There are a few compile-time configurations possible, which require
editing the Makefile.  Either do or don't define
  ENABLE_DEBUG
  ENABLE_REPLAY
  USE_OBSOLETE_GETTIMEOFDAY
  PRECISION_SIOCGSTAMP
Try it first without changing the default: that will give you a full-
featured ntpclient, that uses modern POSIX time functions, and works
reasonably with any Linux kernel.  There are comments in ntpclient.c
that you should read before experimenting with PRECISION_SIOCGSTAMP.
Some older but otherwise (almost) serviceable Linux systems (e.g., Red Hat
EL-3.0 and Ubuntu 4.10) have a totally broken POSIX clock_settime()
implementation.  If you get "clock_settime: Invalid argument" when you
run ntpclient -s, rebuild with -DUSE_OBSOLETE_GETTIMEOFDAY.  Linux systems
that are even older won't even compile without that switch set.
Usage: ntpclient [options]
options:
-c count     stop after count time measurements (default 0 means go forever)
-d           print diagnostics (feature can be disabled at compile time)
-g goodness  causes ntpclient to stop after getting a result more accurate
                   than goodness (microseconds, default 0 means go forever)
-h hostname  (mandatory) NTP server, against which to measure system time
-i interval  check time every interval seconds (default 600)
-l           attempt to lock local clock to server using adjtimex(2)
-p port      local NTP client UDP port (default 0 means "any available")
-q min_delay minimum packet delay for transaction (default 800 microseconds)
-r           replay analysis code based on stdin
-s           simple clock set (implies -c 1)
-t           trust network and server, no RFC-4330 recommended cross-checks
Mortal users can use this program for monitoring, but not clock setting
(with the -s or -l switches).  The -l switch is designed to be robust
in any network environment, but has seen the most extensive testing in
a low latency (less than 2 ms) Ethernet environment.  Users in other
environments should study ntpclient's behavior, and be prepared to adjust
internal tuning parameters.  A long description of how and why to use
ntpclient is in the HOWTO file.  ntpclient always sends packets to the
server's UDP port 123.
One commonly needed tuning parameter for lock mode is min_delay, the
shortest possible round-trip transaction time.  This can be set with the
command line -q switch.  The historical default of 800 microseconds was
good for local Ethernet hardware a few years ago.  If it is set too high,
you will get a lot of "inconsistent" lines in the log file when time locking
(-l switch).  The only true future-proof value is 0, but that will cause the
local time to wander more than it should.  I use 200 on my workstation.
The test.dat file has 200 lines of sample output.  Its first few lines,
with the output column headers that are shown when the -d option is
chosen, are:
day   second     elapsed    stall     skew  dispersion  freq
36765 00180.386    1398.0     40.3  953773.9    793.5  -1240000
36765 00780.382    1358.0     41.3  954329.0    915.5  -1240000
36765 01380.381    1439.0     56.0  954871.3    915.5  -1240000
day, second: time of measurement, UTC, relative to NTP epoch (Jan 1, 1900)
elapsed:     total time from query to response (microseconds)
stall: time the server reports that it sat on the request (microseconds)
skew:        difference between local time and server time (microseconds)
dispersion:  reported by server, see RFC-1305 (microseconds)
freq:        local clock frequency adjustment (Linux only, ppm*65536)
A relatively new feature is a series of sanity checks on
UDP packets received, generally as recommended by RFC-4330.  If it
fails one of these tests, the line described above is replaced by
36765 01380.381  rejected packet
or, if ENABLE_DEBUG was selected at compile time, one of
36765 01380.381  rejected packet: LI==3
36765 01380.381  rejected packet: VN<3
36765 01380.381  rejected packet: MODE!=3
36765 01380.381  rejected packet: ORG!=sent
36765 01380.381  rejected packet: XMT==0
36765 01380.381  rejected packet: abs(DELAY)>65536
36765 01380.381  rejected packet: abs(DISP)>65536
36765 01380.381  rejected packet: STRATUM==0
To see the actual values of the rejected packet, start ntpclient with the
-d option; this will give a human-readable printout of every packet received,
including the rejected ones.  To skip these checks, use the -t switch.
test.dat is suitable for piping into ntpclient -r.  I have over 200000
samples (lines) archived for study, that I don't include here.
They are generally spaced 10 minutes apart, representing over three
years of data logging (from a variety of machines, and not continuous,
unfortunately).
As a special, added bonus, I also include my adjtimex(1) program.
See its man page and the HOWTO file for more information.
envelope is a perl script that I have used for my lock studies.
It's kind of a hack and not worth documenting here.
Changes since the widely distributed ntpclient_2000_345 version:
-- new -g option (has had limited testing)
-- changed max frequency adjustment from 91 ppm to 150 ppm
-- fixed "inconsistent" bug in phaselock.c triggered by large freq errors
-- new files: HOWTO, adjtimex.c, adjtimex.1, rate.awk, log2date.pl
-- minor source code cleanups
-- source is now as 64-bit clean as practical; tested on Alpha
-- optional patches provided by Andy Warner, see andyw.patch
-- optional patches provided by Linksys, see linksys.patch
-- removed unreasonable 15020 day offset in date column (xntpd has this
      offset, which turns days-since-1900-epoch into Modified Julian Day)
Changes since the widely distributed ntpclient_2003_194 version:
-- default build is now -std=c99, but c89 sill works too
-- switch default compile from gettimeofday() to POSIX clock_gettime()
-- more sanity checking on the NTP reply packet, reference RFC-4330
-- fractional second printing in debug output changed to traditional decimal
-- new -f switch to set initial frequency
-- works to specify both -s and -l, will jump-set first and then phase lock
-- bug fix for select() error handling, thanks to Walter Harms
-- new man page, contributed by Walter Harms
-- most subroutines are now flagged static to the compiler
-- structural changes to the code, such as the new ntpclient.h file
-- dropped (mostly) obsolete patches from Linksys and Andy Warner
Changes since ntpclient_2006_318:
-- adjustable min_delay parameter, used to be hard-coded 800 microseconds
-- remove useless listen() call, thanks to Alexander Indenbaum
-- fix length passed to recvfrom(), thanks to Alexander Indenbaum
-- tidy up 32-bit integer declarations, prodding from Brian McAllister
-- added rate2.awk, contributed by Lou Sortman
-- provide easy way to override 15 second MIN_INTERVAL at compile time
-- relax MIN_INTERVAL enforcement for one-shot use, thanks to Mihai Buha
Changes since ntpclient_2007_365:
-- fixed type of sa_xmit_len, thanks vapier
-- dropped underscores in spelling of adjtimex(2), might make uClibc happier
-- include netdb.h and always define _BSD_SOURCE to get prototype for herror
-- minor formatting to align with Nilsson's fork
-- add -fno-strict-aliasing as needed by traditional network coding style
Bugs:
-- Doesn't understand the LI (Leap second Indicator) field of an NTP packet
-- Doesn't interact with adjtimex(2) status value
-- Can't query multiple servers
-- IPv4 only
-- Requires Linux-style select() semantics, where timeout value is modified
-- Always returns success (0)
Adherence to RFC-4330 chapter 10, Best practices:
1.  enforced, unless someone tinkers with the source code
2.  no backoff, but no retry either; this isn't TCP
3.  not in scope for the upstream source
4.  not in scope for the upstream source
5.  not in scope for the upstream source
6.  supported
7.  not supported
8.  not supported (scary opportunity to DOS the _client_)
       - Larry Doolittle  <[email protected]
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章