全國最多中醫師線上諮詢網站-台灣中醫網
發文 回覆 瀏覽次數:7216
推到 Plurk!
推到 Facebook!

區域網路中, 如何讓各台電腦的時間同步 ?

缺席
boson
中階會員


發表:74
回覆:155
積分:85
註冊:2004-07-31

發送簡訊給我
#1 引用回覆 回覆 發表時間:2005-01-25 01:34:53 IP:218.170.xxx.xxx 未訂閱
我有一個程式要在區域網路上的幾台電腦上執行 但各電腦的時間必須能同步, 誤差不能超過 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

發送簡訊給我
#2 引用回覆 回覆 發表時間:2005-01-25 10:33:39 IP:221.169.xxx.xxx 未訂閱
1.理論上是不會差這麼多的。所以要問你 3 秒的差是你校時多久後發生的。 校過就立刻差三秒? 2.用網路到HINET去校時。也不會差到1秒啦。因為低於1秒我就不理會了。 我實際的經驗是由美國的機房連回台灣的中央標準局校時。它跟我在台灣連過去校時的機器。 兩台機器並沒有1秒以上的誤差。因為機器是UNIX,我無法做低於1秒的判斷。 懶得去做更精確的比較。 3.你可以去買一顆GPS來用。 它的接收會每秒送入時間。以那個時間來校時。 這樣。你應不會有那麼大的誤差。 我所能想到的是這樣做囉。 ----------------------------------------------------- 極度不信任 M$ 的系統........................除了在玩暗黑
bestlong
站務副站長


發表:126
回覆:734
積分:512
註冊:2002-10-19

發送簡訊給我
#3 引用回覆 回覆 發表時間:2005-01-25 11:12:46 IP:211.22.xxx.xxx 未訂閱
如果已經確定 NTP Server 的名稱, 就直接指定主機名稱 w32tm /resync /computer:NTPServerName 我是雪龍 發表人 - bestlong 於 2005/01/25 11:21:51
------
http://blog.bestlong.idv.tw/
http://www.bestlong.idv.tw/
http://delphi-ktop.bestlong.idv.tw/
boson
中階會員


發表:74
回覆:155
積分:85
註冊:2004-07-31

發送簡訊給我
#4 引用回覆 回覆 發表時間:2005-01-26 11:15:17 IP:218.170.xxx.xxx 未訂閱
我只用兩台電腦連成區域網路, 一台當 NTP Server, 另一台連過來取得時間 使用 bestlong 建議的直接指定主機名稱的方法 校正完立刻比對兩台的時間, 結果, 誤差還是在三秒左右.... 快昏了 ! w32tm 指令執行所須時間也沒超過一秒, 為什麼誤差會達到 3 秒 ? 真是搞不懂 後來我讓兩台電腦都連到 time.windows.com 進行校時 結果校正之後, 兩台電腦時間誤差約在 0.7 至 0.8 秒之間 透過 internet 校時反而比區域網路當中校時還正確 ?? 如果沒有別的辦法降低誤差, 我只能自己寫個程式來處理了 thank you all
bestlong
站務副站長


發表:126
回覆:734
積分:512
註冊:2002-10-19

發送簡訊給我
#5 引用回覆 回覆 發表時間:2005-01-26 12:54:36 IP:211.22.xxx.xxx 未訂閱
可以再說明你的比對作法嗎?    我是用來作檢查的 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

發送簡訊給我
#6 引用回覆 回覆 發表時間:2005-01-26 13:49:40 IP:218.170.xxx.xxx 未訂閱
謝謝諸位的協助 ! 我測試之後, 最多只能將誤差降到一秒左右, 這無法滿足我的需求 而我並不要求每部電腦都能夠與"標準時間"同步 我只要求區域網路的每部電腦, 系統時間都是相同的 因此, 我準備自己寫一小段程式, 在各電腦上執行 透過程式之間的通訊, 將 NTP server 的系統時間傳遞給各 client 端 由於區域網路的通訊非常快, 因此應該可以把時間誤差值降到 0.1 秒以下 謝謝 !
orson
中階會員


發表:5
回覆:135
積分:58
註冊:2002-07-11

發送簡訊給我
#7 引用回覆 回覆 發表時間:2005-01-26 19:53:57 IP:211.74.xxx.xxx 未訂閱
引言: 謝謝諸位的協助 ! 我測試之後, 最多只能將誤差降到一秒左右, 這無法滿足我的需求 而我並不要求每部電腦都能夠與"標準時間"同步 我只要求區域網路的每部電腦, 系統時間都是相同的 因此, 我準備自己寫一小段程式, 在各電腦上執行 透過程式之間的通訊, 將 NTP server 的系統時間傳遞給各 client 端 由於區域網路的通訊非常快, 因此應該可以把時間誤差值降到 0.1 秒以下 謝謝 !
http://nettime.sf.net Orson
系統時間:2024-03-29 2:56:40
聯絡我們 | Delphi K.Top討論版
本站聲明
1. 本論壇為無營利行為之開放平台,所有文章都是由網友自行張貼,如牽涉到法律糾紛一切與本站無關。
2. 假如網友發表之內容涉及侵權,而損及您的利益,請立即通知版主刪除。
3. 請勿批評中華民國元首及政府或批評各政黨,是藍是綠本站無權干涉,但這裡不是政治性論壇!