區域網路中, 如何讓各台電腦的時間同步 ? |
缺席
|
boson
中階會員 ![]() ![]() ![]() 發表:74 回覆:155 積分:85 註冊:2004-07-31 發送簡訊給我 |
我有一個程式要在區域網路上的幾台電腦上執行
但各電腦的時間必須能同步, 誤差不能超過 0.1 秒
所有的電腦作業系統都是 Windows 2003
我試著設定 Windows 本身提供的 SNTP Server, 這樣確實可以讓各電腦從 SNTP Server 取得時間值
但問題是, 取得的時間值居然跟 SNTP Server 實際的時間差了約三秒 !
這實在令人不解, 我在各電腦執行讓時間同步的指令是 w32tm /resync /rediscover
這個指令只要不到 0.1 秒就執行完畢, 照理說取得的時間值跟 Server 的時間差, 不應超過 0.1 秒才對
可是實際上居然差了有三秒 ! 實在想不透 ... 不曉得有沒有人對此有研究的 ?
有沒有辦法讓區域網路上的電腦時間全部同步, 誤差不超過 0.1 秒 ?
(我不想透過 internet 從遠端的 SNTP server 取得時間, 因為誤差可能更大)
|
暗黑破壞神
版主 ![]() ![]() ![]() ![]() ![]() ![]() 發表:9 回覆:2301 積分:1627 註冊:2004-10-04 發送簡訊給我 |
1.理論上是不會差這麼多的。所以要問你 3 秒的差是你校時多久後發生的。
校過就立刻差三秒?
2.用網路到HINET去校時。也不會差到1秒啦。因為低於1秒我就不理會了。
我實際的經驗是由美國的機房連回台灣的中央標準局校時。它跟我在台灣連過去校時的機器。
兩台機器並沒有1秒以上的誤差。因為機器是UNIX,我無法做低於1秒的判斷。
懶得去做更精確的比較。
3.你可以去買一顆GPS來用。
它的接收會每秒送入時間。以那個時間來校時。
這樣。你應不會有那麼大的誤差。 我所能想到的是這樣做囉。 -----------------------------------------------------
極度不信任 M$ 的系統........................除了在玩暗黑
|
bestlong
站務副站長 ![]() ![]() ![]() ![]() ![]() ![]() 發表:126 回覆:734 積分:512 註冊:2002-10-19 發送簡訊給我 |
|
boson
中階會員 ![]() ![]() ![]() 發表:74 回覆:155 積分:85 註冊:2004-07-31 發送簡訊給我 |
我只用兩台電腦連成區域網路, 一台當 NTP Server, 另一台連過來取得時間
使用 bestlong 建議的直接指定主機名稱的方法
校正完立刻比對兩台的時間, 結果, 誤差還是在三秒左右.... 快昏了 ! w32tm 指令執行所須時間也沒超過一秒, 為什麼誤差會達到 3 秒 ? 真是搞不懂 後來我讓兩台電腦都連到 time.windows.com 進行校時
結果校正之後, 兩台電腦時間誤差約在 0.7 至 0.8 秒之間
透過 internet 校時反而比區域網路當中校時還正確 ?? 如果沒有別的辦法降低誤差, 我只能自己寫個程式來處理了
thank you all
|
bestlong
站務副站長 ![]() ![]() ![]() ![]() ![]() ![]() 發表:126 回覆:734 積分:512 註冊:2002-10-19 發送簡訊給我 |
可以再說明你的比對作法嗎? 我是用來作檢查的
c:\w32tm /stripchart /computer:ntpsrv
Tracking ntpsrv [192.168.1.119].
The current time is 01/26/2005 下午 12:28:20 (local time).
12:28:20 d:+00.0000000s o:+01.8986317s [ | * ]
12:28:22 d:+00.0000000s o:+01.8993357s [ | * ]
12:28:24 d:+00.0156195s o:+01.9232299s [ | * ]
12:28:26 d:+00.0000000s o:+01.9011242s [ | * ]
12:28:28 d:+00.0000000s o:+01.9018282s [ | * ] 另外曾經碰到過校正時間只有處理到分的單位, 但是當時實際環境的狀況已經沒有印象了. 建議你先手動調整兩台電腦的時間差為 1m30s 然後再做校時處理.
確定有校正到秒的單位. 最好將校正指令改為, 來真正確定執行是否如期望中完成.
c:\w32tm /resync /computer:NTPServerName /soft
看一下範例執行的結果, 會不會覺得很 OOXX 呢?
C:\>w32tm /resync 傳送 resync 命令到 local computer... 命令成功完成。 C:\>w32tm /resync /soft 傳送 resync 命令到 local computer... 電腦並未 resync,因為只有過期的時間資料可用。其中第一次的執行回應結果說的 w32tm 執行成功完成, 不過可沒有說處理校正時間. 還有檢查事件檢視器的系統事件有沒有相關的訊息. 我是雪龍 發表人 - bestlong 於 2005/01/26 12:56:07
------
http://blog.bestlong.idv.tw/ http://www.bestlong.idv.tw/ http://delphi-ktop.bestlong.idv.tw/ |
boson
中階會員 ![]() ![]() ![]() 發表:74 回覆:155 積分:85 註冊:2004-07-31 發送簡訊給我 |
|
orson
中階會員 ![]() ![]() ![]() 發表:5 回覆:135 積分:58 註冊:2002-07-11 發送簡訊給我 |
引言: 謝謝諸位的協助 ! 我測試之後, 最多只能將誤差降到一秒左右, 這無法滿足我的需求 而我並不要求每部電腦都能夠與"標準時間"同步 我只要求區域網路的每部電腦, 系統時間都是相同的 因此, 我準備自己寫一小段程式, 在各電腦上執行 透過程式之間的通訊, 將 NTP server 的系統時間傳遞給各 client 端 由於區域網路的通訊非常快, 因此應該可以把時間誤差值降到 0.1 秒以下 謝謝 !http://nettime.sf.net Orson |
本站聲明 |
1. 本論壇為無營利行為之開放平台,所有文章都是由網友自行張貼,如牽涉到法律糾紛一切與本站無關。 2. 假如網友發表之內容涉及侵權,而損及您的利益,請立即通知版主刪除。 3. 請勿批評中華民國元首及政府或批評各政黨,是藍是綠本站無權干涉,但這裡不是政治性論壇! |