close
NTP(Network Time Protocol;網路時間協定)概述與常見問題

07 / 12 / 2007

一、前言

電腦常常在使用一段時間後系統時間變快或變慢,除了維持 BIOS 設定值的電池電力快消耗殆盡外,另外亦有可能為主機板上負責計算時間的石英震盪器,因為製作過程中的些許誤差,導致產生的震盪頻率不完全準確,或是震盪器故障所引起。

以目前而言,電腦已成為人們生活中不可或缺的一部份,而準確的電腦系統時間在某些部分也相形地顯得越來越重要。例如:公司主機的資料備份、差勤系統的管理、網路技術的開發以及電子商務的運用。為了讓電腦時間能夠藉由網路達到校準的功能,因此 NTP 也因應而生。

NTP(Network Time Protocol)網路時間協定,是由美國德拉瓦大學 David L. Mills 教授於 1985 年提出,並於該年 9 月由 IETF(Internet Engineering Task Force)組織制訂為 RFC(Request for Comment) 958。目前已成標準的版本為 NTP Version 3,於 1992 年 3 月訂定為 RFC 1305。而 NTP Version 4 相較於先前版本有顯著的變革且目前正在發展中,也因此還未制訂成 RFC 標準。現今微軟作業系統使用的是 SNTP(Simple Network Time Protocol)。SNTP 是架構在 NTP Version 3,但卻簡化用戶端與伺服端之間的存取,並可透過網際網路來完成時間校準功能。


二、運作原理

NTP 的功能是基於 Client-Server 架構。由電腦連接到網路上某一台 NTP 伺服器來完成高精準電腦校時。而 NTP 伺服器是以階層式的架構來形成時間追溯體系。如下圖所示,位於階層最頂層(Stratum 1)的伺服器直接追溯國家標準時間,而第二層(Stratum 2)伺服器則透過最頂層伺服器間接追溯國家標準時間。每台伺服器均以本身的時鐘來維持某精準度的時間,並自動在固定的週期向上一層伺服器發出校時需求。



也因此,Stratum 1 伺服器的用途,主要是作為 Stratum 2 伺服器的來源時間伺服器。Stratum 1 伺服器也可能可以提供任務關鍵性的時間服務。有些 Stratum 1 伺服器,可能會有限制存取原則。

Stratum 2 伺服器的用途,主要是用來滿足一般的 SNTP 時間服務需要。Stratum 2 伺服器通常允許公開存取。一般建議使用 Stratum 2 伺服器來提供 SNTP 時間伺服器設定,因為它們通常位於近端的網路,因此能夠更快執行更新。

NTP 用戶端向 NTP 伺服器發出請求執行時間校準的過程如下圖所示:




T1-T0:為用戶端向 NTP 伺服器要求提供對時服務的時間,包括網路傳輸的時間。
T2-T1:NTP 伺服器處理對時服務的作業時間。
T3-T2:為 NTP 伺服器回覆用戶端對時服務的時間資料,包括網路傳輸時間。
T3-T0:總共花費的時間。

所以用戶端從伺服器上取得的時間與 NTP server 時間約延遲 (delay)T3-T2 至 T3-T1 之間。


NTP 的工作可分為三種模式:

1. Multicast / Broadcast Mode(多播/廣播模式):


此 種模式適用於高速的區域網路上,利用一個或是多個伺服器在固定週期向某個多播位址(Multicast address)做廣播,或是直接利用區域網路廣播的功能,使得用戶端在接收到資料後可以藉此校正時間。此一模式是預設網路傳輸速度非常快,使得網路的資 料傳輸延遲很小,小到可以忽略。但是因為現今網路傳輸速度可能因為其他用戶在傳送或接收資料而造成速度減緩,所以此種模式的精確度並不高,但在許多應用上 應已足夠。

2. Procedure-Call Mode(程序呼叫模式):

此模式為有一個準確性較高的主要伺服器在較低階層接受其他伺服器的請求,並答覆現在的時間。程序呼叫模式的準確度比多播模式高,適用於需高精確度或是無多播硬體支援的場合。

3. Symmetric Mode(對稱模式):
兩個以上的伺服器相互交換時間訊息,可以互相校正彼此的時間,以維持整個子網路的用戶端時間一致性。


三、相關常見問題

問題1. 如何設定網際網路時間?

(1) 以 Windows XP 為例,可以點開在桌面右下角系統時鐘的圖示。




(2) 選擇網際網路時間




(3) 勾選自動與網際網路時間伺服器同步化,由下拉式選單選擇時間伺服器來源,並按下立即更新

(4) 更新完成可在第四項看到完成更新的日期與時間。

(5) 第五項可看到下次自動更新的日期與時間,預設週期為一星期。




問題2. 無法更新網際網路時間?

若出現「當Windows 與 time.windows.com(或是 time.nist.gov)同步處理時,發生錯誤」的訊息,如下圖所示,可能發生原因有下列幾點:

(1) 電腦未連接至網際網路
處理方式:請將電腦連線至網際網路即可。

(2) 透過防火牆或寬頻分享器連線至網際網路或是電腦防毒軟體內建防火牆功能
處理方式:因為 NTP 是使用 UDP 的通訊協定,並透過埠號為 123 的連接埠。因此需在防火牆、分享器或是防毒軟體中開啟UDP通訊協定 123 連接埠的例外處理。

(3) 該時間伺服器停止運作
處理方式:可在命令提示字元下輸入 ping 或 tracert 來判斷是否為該伺服器或是網路節點問題。若是,則可稍後等該伺服器運作後再行更新。

(4) 電腦系統時間與網際網路時間伺服器目前的時間差距太大
處理方式:若是電腦系統時間與時間伺服器目前的時間偏離 15 小時以上,網際網路時間伺服器則可能無法同步處理電腦系統時間。此時透過手動方式調整電腦系統時間接近於目前時間再行更新。




問題3. 為何在系統時鐘裡看不到網際網路時間的選項?

如下圖所示,在系統時鐘內並無「網際網路時間」的項目,這是因為在 Windows XP 架構下的電腦,若為網域成員則在系統時鐘裡並不會顯示「網際網路時間」的索引標籤,「網際網路時間」只有在工作群組的環境下才可以使用。相關訊息可參閱微軟知識庫 KB289689




問題4. 若網域中有一授權的時間伺服器,則網域內部電腦如何與其做時間同步?

在此,內部的時間伺服器以「LC2000」的名稱為例。

(1) 首先開啟命令提示字元,輸入net time /setsntp:[時間伺服器的電腦名稱],按下 enter 鍵。若出現「命令執行成功」則表示已設定授權時間伺服器。




(2) 接著繼續輸入 net time /set,按下enter 鍵。




(3) 接著在(Y/N) [Y]:的部分輸入 Y,然後按下 enter 鍵即可。

arrow
arrow
    全站熱搜
    創作者介紹
    創作者 Estar007 的頭像
    Estar007

    Never give up!永不放棄

    Estar007 發表在 痞客邦 留言(0) 人氣()