真实的国产乱ⅩXXX66竹夫人,五月香六月婷婷激情综合,亚洲日本VA一区二区三区,亚洲精品一区二区三区麻豆

成都創(chuàng)新互聯(lián)網(wǎng)站制作重慶分公司

關(guān)于sleepvb.net的信息

vb.net使用Sleep后有些代碼沒有執(zhí)行!

在VB.NET中,帶框架窗體的大小是不能為0的,要想做到高、寬都為0,需要自己重繪一個無邊框窗體,用外置圖片來繪制,配合PS做一些圖片,既可以換膚還能做的很漂亮。

站在用戶的角度思考問題,與客戶深入溝通,找到徐水網(wǎng)站設(shè)計與徐水網(wǎng)站推廣的解決方案,憑借多年的經(jīng)驗,讓設(shè)計與互聯(lián)網(wǎng)技術(shù)結(jié)合,創(chuàng)造個性化、用戶體驗好的作品,建站類型包括:網(wǎng)站設(shè)計制作、網(wǎng)站建設(shè)、企業(yè)官網(wǎng)、英文網(wǎng)站、手機端網(wǎng)站、網(wǎng)站推廣、主機域名雅安服務(wù)器托管、企業(yè)郵箱。業(yè)務(wù)覆蓋徐水地區(qū)。

按當(dāng)前代碼修改,你把下面的代碼粘回去就可以了,窗體的高和寬達(dá)到最小時,循環(huán)會自己退出,避免無限循環(huán);

Select?Case?2

Case?Is?=?1

Dim?w?As?Integer?=?Me.Width

Do

Me.Width?-=?5?:?w?-=?5

Threading.Thread.Sleep(3)

Loop?While?Me.Width?=?w

Case?Is?=?2

Dim?h?As?Integer?=?Me.Height

Do

Me.Height?-=?5?:?h?-=?5

Threading.Thread.Sleep(3)

Loop?While?Me.Height?=?h

Case?Is?=?3

Do

Me.Opacity?-=?0.05

Threading.Thread.Sleep(120)

Loop?Until?Me.Opacity?=?0

End?Select

vb.net里面怎么沒有sleep啊

它在System.Threading命名空間的Thread類中定義了

直接用 System.Threading.Thread.Sleep()方法

System.Threading.Thread.Sleep(time )‘time為整數(shù),單位毫秒

Vb.net問題 是這樣,我寫了一個坦克大戰(zhàn)游戲,我想暫停,就用了Thread.sleep()方法

暫停,就是除恢復(fù)外所有操作都無效,你可以用一變量來控制,不需掛起。

目前網(wǎng)絡(luò)時間服務(wù)有哪幾種協(xié)議?

杭州元帥;highlight=

在一個局域網(wǎng)中,許多系統(tǒng)都要求每臺計算機能夠保持時間的一致性,WIN2000系統(tǒng)提供了與主域服務(wù)器時間同步功能,即工作站只要登錄到主域服務(wù)器,工作站系統(tǒng)的時間自動與主域服務(wù)器時間一致,但接下來的問題是我們?nèi)绾问怪饔蚍?wù)器的時間同步世界標(biāo)準(zhǔn)時間。如要獲得世界標(biāo)準(zhǔn)時間,比較精確的做法是使用GPS衛(wèi)星時鐘獲得毫秒級精度的標(biāo)準(zhǔn)時間,但這是要money的哦。如果我們在時間精度上只需要秒級的,又能夠連接到Internet,則我們可以利用Internet上的標(biāo)準(zhǔn)時間服務(wù)器獲得標(biāo)準(zhǔn)時間。

事實上在Internet上有三個不同的時間服務(wù),每一個都由Request for Comment(RFC)定義為Internet日期時間標(biāo)準(zhǔn)。這三個標(biāo)準(zhǔn)分別為:RFC-867、RFC-868和RFC-1305。下面就先介紹RFC-867:

RFC867 Daytime協(xié)議(RFC867 Daytime Protocol)

本RFC規(guī)范了一個ARPA Internet community上的標(biāo)準(zhǔn)。在ARPA Internet上的所有主機應(yīng)當(dāng)采用和實現(xiàn)這個標(biāo)準(zhǔn)。

一個有用的測量和調(diào)試工具就是daytime服務(wù)。它的作用就是返回當(dāng)前時間和日期,格式是字符串格式。

* 基于TCP的daytime服務(wù)

daytime服務(wù)是基于TCP的應(yīng)用,服務(wù)器在TCP端口13偵聽,一旦有連接建立就返回ASCII形式的日期和時間(接收到的任何數(shù)據(jù)被忽略),在傳送完后關(guān)閉連接。

* 基于UDP的daytime服務(wù)

daytime服務(wù)也可以使用UDP協(xié)議,它的端口也是13,不過UDP是用數(shù)據(jù)報傳送當(dāng)前時間的。接收到的數(shù)據(jù)被忽略。

* Daytime格式

對于daytime沒有特定的格式,建議使用ASCII可打印字符,空格和回車換行符。daytime應(yīng)該在一行上。

下面是兩種流行的格式:

一種流行的格式是:Weekday, Month Day, Year Time-Zone

例子:Tuesday, February 22, 1982 17:37:43-PST

另一種流行的格式用于SMTP中:dd mmm yy hh:mm:ss zzz

例子:02 FEB 82 07:59:01 PST

注意:對于機器來說,有用的時間采用了時間協(xié)議(Time Protocol RFC-868)

接下來我們用VB程序?qū)崿F(xiàn)通過RFC867協(xié)議設(shè)置我們自己的計算機系統(tǒng)時間,為使程序簡化,程序未進(jìn)行日期校正,只進(jìn)行時間校正。在FORM1中添加1個Winsock控件,將下面代碼剪貼到FORM1的代碼窗體中即可:

Option Explicit

'采用RFC867 Daytime協(xié)議獲取標(biāo)準(zhǔn)時間例程

'為中科院國家授時中心,采用北京時間

'時間格式:Mon Jul 26 09:58:57 2004

'time.nist.gov為美國標(biāo)準(zhǔn)技術(shù)院,采用格靈威時間

'時間格式:53212 04-07-26 02:00:12 50 0 0 488.3 UTC(NIST) *

Private Declare Sub Sleep Lib "kernel32" (ByVal dwMilliseconds As Long)

Dim NoSrv As Boolean

Dim TimeFromNet

Private Sub Form_Load()

Winsock1.Protocol = sckTCPProtocol '采用TCP協(xié)議

NetTime "" '首先取中科院國家授時中心時間

If NoSrv Or TimeFromNet = "" Then

'若未取到中科院國家授時中心時間,則取美國標(biāo)準(zhǔn)技術(shù)院時間

NetTime "time.nist.gov"

If NoSrv Or TimeFromNet = "" Then

'若不能取美國標(biāo)準(zhǔn)技術(shù)院時間,則報錯

MsgBox "檢測不到網(wǎng)絡(luò)標(biāo)準(zhǔn)時間服務(wù)器time.nist.gov!"

Else

'為使網(wǎng)絡(luò)傳輸誤差減小,第2次再取美國標(biāo)準(zhǔn)技術(shù)院時間

NetTime "time.nist.gov"

If TimeFromNet = "" Then

MsgBox "網(wǎng)絡(luò)標(biāo)準(zhǔn)時間服務(wù)器time.nist.gov超時!"

Else

TimeFromNet = Mid(TimeFromNet, 17, 8)

TimeFromNet = TimeSerial((Hour(TimeFromNet) + 8) Mod 24, Minute(TimeFromNet), Second(TimeFromNet))

Time = TimeFromNet '設(shè)置系統(tǒng)時間

End If

End If

Else

'為使網(wǎng)絡(luò)傳輸誤差減小,第2次再取中科院國家授時中心時間

NetTime ""

If TimeFromNet = "" Then

MsgBox "網(wǎng)絡(luò)標(biāo)準(zhǔn)時間服務(wù)器超時!"

Else

Time = Mid(TimeFromNet, 12, 8) '設(shè)置系統(tǒng)時間

End If

End If

End

End Sub

'關(guān)閉Winsock子程序

Private Sub Winsock1_Close()

If Winsock1.State sckClosed Then

Winsock1.Close

End If

End Sub

'Winsock接收數(shù)據(jù)事件

Private Sub Winsock1_DataArrival(ByVal bytesTotal As Long)

TimeFromNet = String(bytesTotal, " ")

Winsock1.GetData TimeFromNet, vbString, bytesTotal

End Sub

'Winsock出錯事件

Private Sub Winsock1_Error(ByVal Number As Integer, Description As String, ByVal Scode As Long, ByVal Source As String, ByVal HelpFile As String, ByVal HelpContext As Long, CancelDisplay As Boolean)

NoSrv = True

End Sub

'從互聯(lián)網(wǎng)上標(biāo)準(zhǔn)時間提供網(wǎng)站獲取標(biāo)準(zhǔn)時間

Private Sub NetTime(TimeSrv As String)

NoSrv = False

TimeFromNet = ""

If Winsock1.State sckClosed Then Winsock1.Close

Winsock1.RemoteHost = TimeSrv ' "" 或 "time.nist.gov"

Winsock1.RemotePort = 13

Winsock1.LocalPort = 0

Winsock1.Connect

Do While TimeFromNet = "" '循環(huán)等待標(biāo)準(zhǔn)時間網(wǎng)站返回時間數(shù)據(jù)

If NoSrv Then Exit Do '若Winsock出錯,則跳出循環(huán)等待

Sleep 55

DoEvents

Loop

If Winsock1.State sckClosed Then Winsock1.Close

End Sub

搜索更多相關(guān)主題的帖子: internet 標(biāo)準(zhǔn)

上面介紹了RFC-867標(biāo)準(zhǔn)和VB例程,顯然RFC-867標(biāo)準(zhǔn)采用返回當(dāng)前時間和日期的格式是字符串格式以及對于daytime沒有特定的格式(例如:中科院國家授時中心為"Mon Jul 26 09:58:57 2004",而美國標(biāo)準(zhǔn)技術(shù)院為"53212 04-07-26 02:00:12 50 0 0 488.3 UTC(NIST)"),這2點似乎都不是太舒服,因此我們希望Internet上的標(biāo)準(zhǔn)時間服務(wù)器最好能夠返回具有標(biāo)準(zhǔn)格式的數(shù)字類型數(shù)據(jù),其實RFC在制定RFC-867標(biāo)準(zhǔn)時已經(jīng)考慮了我們的意見,因為他同時還推出了RFC-868標(biāo)準(zhǔn),下面就介紹RFC-868:

RFC868 時間協(xié)議

(RFC868 Time Protocol)

本RFC規(guī)范了一個ARPA Internet community上的標(biāo)準(zhǔn)。在ARPA Internet上的所有主機應(yīng)當(dāng)采用和實現(xiàn)這個標(biāo)準(zhǔn)。

此協(xié)議提供了一個獨立于站點的,機器可讀的日期和時間信息。時間服務(wù)返回的是以秒數(shù),是從1900年1月1日午夜到現(xiàn)在的秒數(shù),天哪,也不小呢。

設(shè)計這個協(xié)議的一個重要目的在于,網(wǎng)絡(luò)上的許多主機并沒有時間的觀念,在分布式的系統(tǒng)上,我們可以想一想,北京的時間和東京的時間如何分呢?主機的時間往往可以人為改變,而且因為機器時鐘內(nèi)的誤差而變得不一致,因此需要使用時間服務(wù)器通過選舉方式得到網(wǎng)絡(luò)時間,讓服務(wù)器有一個準(zhǔn)確的時間觀念。不要小看時間,這對于一些以時間為標(biāo)準(zhǔn)的分布運行的程序簡單是太重要了。

這個協(xié)議可以工作在TCP和UDP協(xié)議下。下面是通過TCP協(xié)議工作的時間協(xié)議的工作過程:這里S代表服務(wù)器,U代表客戶。

S: 檢測端口37

U: 連接到端口37

S: 以32位二進(jìn)制數(shù)發(fā)送時間

U: 接收時間

U: 關(guān)閉連接

S: 關(guān)閉連接

服務(wù)器在端口37上監(jiān)聽連接。當(dāng)連接建立后,服務(wù)器返回一個32位的時間值,然后關(guān)閉連接。這個過程也不難,如果服務(wù)器不能決定現(xiàn)在是什么時間,服務(wù)器會拒絕連接或不發(fā)送任何數(shù)據(jù)而直接關(guān)閉連接。

下面我們看看使用UDP協(xié)議的情況:這里S代表服務(wù)器,U代表客戶。

S: 檢測端口37

U: 發(fā)送一個空數(shù)據(jù)報到端口37

S: 接收這個空數(shù)據(jù)報

S: 發(fā)送包含32位二進(jìn)制數(shù)(用于表示時間)的數(shù)據(jù)報

U: 接收時間數(shù)據(jù)報

服務(wù)器在端口37上監(jiān)聽數(shù)據(jù)包。當(dāng)一個數(shù)據(jù)包來后,服務(wù)器返回一個包含32位的時間的數(shù)據(jù)包。這個過程也不難,如果服務(wù)器不能決定現(xiàn)在是什么時間,服務(wù)器會拋棄接收到的數(shù)據(jù)報而不作出任何應(yīng)答。

* 時間

時間是由32位表示的,是自1900年1月1日0時到當(dāng)前的秒數(shù),我們可以計算一下,這個協(xié)議只能表示到2036年就不能用了。(但是我們也知道計算機發(fā)展速度這么快,可能到時候就會有更好的協(xié)議代替這個協(xié)議,或者有已經(jīng)想出有效的解決辦法了。)

下面是些例子:

the time 2,208,988,800 corresponds to 00:00 1 Jan 1970 GMT,

2,398,291,200 corresponds to 00:00 1 Jan 1976 GMT,

2,524,521,600 corresponds to 00:00 1 Jan 1980 GMT,

2,629,584,000 corresponds to 00:00 1 May 1983 GMT,

以及 -1,297,728,000 corresponds to 00:00 17 Nov 1858 GMT.

接下來我們用VB程序?qū)崿F(xiàn)通過RFC868協(xié)議設(shè)置我們自己的計算機系統(tǒng)時間,為使程序簡化,程序未進(jìn)行日期校正,只進(jìn)行時間校正。不過這個例程比上面的程序要完善得多,首先他可以讀取全球20個標(biāo)準(zhǔn)時間服務(wù)器的時間數(shù)據(jù),第二他采用了網(wǎng)絡(luò)延時的補償,第三對網(wǎng)絡(luò)延時超過3秒的標(biāo)準(zhǔn)時間服務(wù)器進(jìn)行了過濾。在FORM1中添加1個Winsock控件,將下面代碼剪貼到FORM1的代碼窗體中即可:

Option Explicit

'時間協(xié)定(RFC-868)提供了一個32位元的數(shù)字,用來表示從1900年1月1日至今的秒數(shù)。

'該時間是UTC(不考慮字母順序,它表示世界時間座標(biāo)(CoordinatedUniversalTime)),

'它類似於所謂的格林威治標(biāo)準(zhǔn)時間(GreenwichMeanTime)或者GMT-英國格林威治時間。

'用TCP獲得準(zhǔn)確時間的程式應(yīng)該有如下步驟:

'1 連結(jié)到提供此服務(wù)的端口37;

'2 接收32位元的時間;

'3 關(guān)閉連結(jié)。

Private Declare Sub Sleep Lib "kernel32" (ByVal dwMilliseconds As Long)

Dim NoSrv As Boolean

Dim TimeFromNet '存放從時間網(wǎng)站讀取的秒數(shù)

Dim TimeURL(19) As String '20個時間提供網(wǎng)站的URL

'程序入口

Private Sub Form_Load()

Dim i As Long, T0 As Single

Dim HH As Integer, MM As Integer, SS As Integer '時、分、秒

Me.Show

CDec (TimeFromNet) '轉(zhuǎn)換為 Decimal 子類型,28位整數(shù)

TimeURL(0) = "" '首先取中科院國家授時中心時間

TimeURL(1) = "time.nist.gov" '美國標(biāo)準(zhǔn)技術(shù)院

TimeURL(2) = "time-a.timefreq.bldrdoc.gov"

TimeURL(3) = "nist1.datum.com"

TimeURL(4) = "nist1-dc.glassey.com"

TimeURL(5) = "nist1-ny.glassey.com"

TimeURL(6) = "nist1-sj.glassey.com"

TimeURL(7) = "utcnist.colorado.edu"

TimeURL(8) = "time-b.timefreq.bldrdoc.gov"

TimeURL(9) = "time-c.timefreq.bldrdoc.gov"

TimeURL(10) = "time-a.nist.gov"

TimeURL(11) = "time-b.nist.gov"

TimeURL(12) = "nist1.aol-va.truetime.com"

TimeURL(13) = "nist1.aol-ca.truetime.com"

TimeURL(14) = "time-nw.nist.gov"

TimeURL(15) = "Time-b.timefreq.bldrdoc.gov"

TimeURL(16) = "Time-c.timefreq.bldrdoc.gov"

TimeURL(17) = "ptbtime1.ptb.de"

TimeURL(18) = "clock.cmc.ec.gc.ca"

TimeURL(19) = "chronos.csr.net"

For i = 0 To 19

Me.Caption = "正在聯(lián)接—" TimeURL(i)

NetTime TimeURL(i) '首次讀取授時中心時間

If (Not NoSrv) And TimeFromNet 0 Then '如果時間讀取成功

'為使網(wǎng)絡(luò)傳輸誤差減小,二次再取授時中心時間

T0 = Timer '為減小網(wǎng)絡(luò)延時引起的誤差,先讀取當(dāng)前時間

NetTime TimeURL(i) '二次讀取授時中心時間

If (Not NoSrv) And TimeFromNet 0 Then '如果第二次時間讀取成功

TimeFromNet = TimeFromNet + Int((Timer - T0) / 2 + 0.5) '加上網(wǎng)絡(luò)延時補償(延時/2為延時補償)

TimeFromNet = TimeFromNet - 86400 * Int(TimeFromNet / 86400) '以天取模(86400秒)

SS = TimeFromNet Mod 60 '取秒

TimeFromNet = TimeFromNet 60

MM = TimeFromNet Mod 60 '取分

HH = ((TimeFromNet 60) + 8) Mod 24 '取小時(北京時間+8)

' MsgBox "網(wǎng)絡(luò)延時:" (Timer - T0)

Time = TimeSerial(HH, MM, SS) '設(shè)置系統(tǒng)時間

Exit For '取時完畢,退出循環(huán)

End If

End If

Next i

If i 19 Then

MsgBox "無法取得網(wǎng)絡(luò)時間!"

End If

End

End Sub

'關(guān)閉Winsock事件

Private Sub Winsock1_Close()

If Winsock1.State sckClosed Then

Winsock1.Close

End If

End Sub

'Winsock接收數(shù)據(jù)事件

Private Sub Winsock1_DataArrival(ByVal bytesTotal As Long)

Dim TmpData

Winsock1.GetData TmpData

TimeFromNet = TmpData(3) + TmpData(2) * 256 + TmpData(1) * 256 * 256 + TmpData(0) * 256 * 256 * 256

End Sub

'Winsock出錯事件

Private Sub Winsock1_Error(ByVal Number As Integer, Description As String, ByVal Scode As Long, ByVal Source As String, ByVal HelpFile As String, ByVal HelpContext As Long, CancelDisplay As Boolean)

NoSrv = True

End Sub

'從互聯(lián)網(wǎng)上標(biāo)準(zhǔn)時間提供網(wǎng)站獲取標(biāo)準(zhǔn)時間

Private Sub NetTime(TimeSrv As String)

Dim i As Integer '超時計數(shù)器

i = 0

NoSrv = False

TimeFromNet = 0

If Winsock1.State sckClosed Then Winsock1.Close

Winsock1.RemoteHost = TimeSrv '時間提供網(wǎng)站的URL

Winsock1.RemotePort = 37 '時間協(xié)定(RFC-868)指定端口

Winsock1.LocalPort = 0

Winsock1.Connect

Do While TimeFromNet = 0

i = i + 1

If NoSrv Or i 50 Then Exit Do '若Winsock出錯或超時約3秒,則時間獲取失敗

Sleep 55

DoEvents

Loop

If Winsock1.State sckClosed Then Winsock1.Close

End Sub

Edited by: 杭州元帥

最精確的網(wǎng)絡(luò)時間協(xié)議應(yīng)該是RFC 1305—NTP(Network Time Protocol)了,它能夠1-50 ms 的時間精確度,但該協(xié)議非常復(fù)雜,另外很抱歉我手頭沒有RFC 1305中文翻譯資料,不過后來RFC又出了一個RFC1769 —SNTP(Simple Network Time Protocol),簡化了一些RFC 1305要求的操作和使用范圍,下面就介紹RFC1769 —SNTP:

Network Working Group D. Mills

Request for Comments: 1769 University of Delaware

Obsoletes: 1361 March 1995

Category: Informational

(RFC1769 ——Simple Network Time Protocol)

本備忘錄的狀況:

本備忘錄為Internet community提供了信息,但不規(guī)定任何一種類型的 Internet 標(biāo)準(zhǔn)。 本備忘錄的分發(fā)沒有限制。

概要

本備忘錄描述簡單網(wǎng)絡(luò)時間協(xié)議(SNTP),這是網(wǎng)絡(luò)時間協(xié)議(NTP) 的一個改寫本,NTP協(xié)議適用于同步因特網(wǎng)上的計算機時鐘。當(dāng)不須要實現(xiàn)RFC 1305 所描述的NTP完全功能的情況下,可以使用SNTP。它能用單播方式(點對點)和廣播方式(點對多點)操作。它也能在IP 多播方式下操作(可提供這種服務(wù)的地方)。SNTP與當(dāng)前及以前的NTP版本并沒有大的不同。但它是更簡單,是一個無狀態(tài)的遠(yuǎn)程過程調(diào)用(RPC),其準(zhǔn)確和可靠性相似于UDP/TIME 協(xié)議在RFC868描述中所預(yù)期的。

本備忘錄淘汰相同的標(biāo)題的RFC 1361。它的目的是解釋用廣播方式操作的協(xié)議模式,提供某些地方的進(jìn)一步說明并且改正一些印刷上的錯誤。在NTP版本3 RFC 1305中說明的工作機理對SNTP的實現(xiàn)不是完全需要的。本備忘錄的分發(fā)沒有限制。

目錄

1. 介紹

2. 工作模式與地址分配

3. NTP時間戳格式

4. NTP 報文格式

5. SNTP 客戶端操作

6. SNTP 服務(wù)器操作

7. 參考資料

8. 安全考慮

9. 作者的地址

1. 介紹

RFC 1305 [MIL92] 指定網(wǎng)絡(luò)時間協(xié)議(NTP)來同步因特網(wǎng)上的計算機時鐘。它提供了全面訪問國家時間和頻率傳播服務(wù)的機制,組織時間同步子網(wǎng)并且為參加子網(wǎng)每一個地方時鐘調(diào)整時間。 在今天的因特網(wǎng)的大多數(shù)地方, NTP 提供了1-50 ms 的精確度,精確度的大小取決于同步源和網(wǎng)絡(luò)路徑等特性。

RFC 1305 指定了NTP協(xié)議機制中的事件,狀態(tài),傳輸功能和操作,另外,還有可選擇的算法,它改進(jìn)測時質(zhì)量并且減少了一些同步源中可能存在的錯誤。為了獲得因特網(wǎng)上主要路徑的延時精確到毫秒級,使用一些復(fù)雜的算法或者他們的等價算法是必要的。但是,在許多場合這樣的精確度是不要求,或許精確到秒已足夠了。在這樣的情況下,更簡單的協(xié)議例如“時間協(xié)議”[POS83 ]已被使用。這些協(xié)議通過基于RPC交換:客戶端請求此刻時間,然后服務(wù)器回傳從某個已知時間點到現(xiàn)在的秒鐘數(shù)。

NTP被設(shè)計成了性能差異很大的客戶端及服務(wù)器均能適用,且適用于客戶端及服務(wù)器所在網(wǎng)路有大范圍的網(wǎng)絡(luò)延遲和抖動的情況。今天的因特網(wǎng)上的NTP同步子網(wǎng)的大多數(shù)用戶使用一個軟件包包括了一整套的NTP 的選擇和算法,是一個比較復(fù)雜,實時的應(yīng)用系統(tǒng)。軟件要適用于多種硬件平臺:從巨型計算機到個人計算機。要在這樣的范圍都適用,它的龐大尺寸和復(fù)雜性就不適合于很多應(yīng)用了。按照要求,探求一些可供選擇的訪問策略( 使用適合于精確度要求不是

很嚴(yán)格的簡單軟件)是有用的。

本備忘錄描述簡單網(wǎng)絡(luò)時間協(xié)議(SNTP),它是一個簡化了的NTP服務(wù)器和NTP客戶端策略。SNTP在協(xié)議實現(xiàn)上沒有什么更改,在最近也不會有什么變動。 訪問范例與UDP/TIME 協(xié)議是一致的,實際上,SNTP應(yīng)該更容易適用于使用個人計算機的 UDP/TIME 客戶。而且,SNTP 也被設(shè)計在一個專門的服務(wù)器( 包括一臺集成的無線電時鐘)里操作。由于在系統(tǒng)里的那些各種各樣反應(yīng)機制的設(shè)計和控制,交付調(diào)節(jié)時間精確到微秒是可能的。這樣的專門設(shè)計是切實可行的。

強烈建議SNTP 僅僅在同步子網(wǎng)的末端被使用。 SNTP 客戶端應(yīng)該僅在子網(wǎng)的葉子( 最高的階層) 操作并在配置過程中沒有依靠其它NTP或者SNTP客戶端來同步。SNTP 服務(wù)器應(yīng)該僅在子網(wǎng)的根( 階層1) 操作并在配置過程中,除一臺可靠的無線電時鐘外中沒有其它同步源。只有使用了有冗余的同步源及不同的子網(wǎng)路徑及整套NTP實現(xiàn)中的crafted 算法,主服務(wù)器通常期望的可靠性才有可能達(dá)到。這種做法使主同步源在無線電時鐘通信失敗或者交付了錯誤時間時,還能用到其它幾個無線電時鐘和通向其它主要服務(wù)器的備份路徑。因此,應(yīng)該仔細(xì)考慮客戶端中SNTP的使用,而不是在主服務(wù)器里的NTP的使用。

2. 工作模式與地址分配

象NTP一樣,SNTP 能在單播(點向點) 或者廣播(點對多點) 模式中操作。單播客戶端發(fā)送請求到服務(wù)器并且期望從那里得到答復(fù),并且(可選的),得到有關(guān)服務(wù)器的往返傳播延遲和本地時鐘補償。廣播服務(wù)器周期性地送消息給一指定的IP 廣播地址或者IP多播地址,并且通常不期望從客戶端得到請求,廣播客戶端監(jiān)聽地址但通常并不給服務(wù)器發(fā)請求。一些廣播服務(wù)器可能選擇對客戶端作出反應(yīng)請求以及發(fā)出未經(jīng)請求廣播消息;同時一些廣播客戶端可能會送請求僅為了確定在服務(wù)器和客戶端之間的網(wǎng)絡(luò)傳播延遲。

在單播方式下,客戶端和服務(wù)器的IP 地址按常規(guī)被分配。在廣播方式下,服務(wù)器使用一指定的IP播送地址或者IP多播地址,以及指明的媒介訪問播送地址,客戶端要在這些地址上幀聽。為此,IP 廣播地址將限制在一個單獨的IP子網(wǎng)范圍,因為路由器不傳播IP廣播數(shù)據(jù)報。就以太網(wǎng)而論,例如,以太網(wǎng)媒介訪問廣播地址(主機部分全部為1) 被用于表示IP廣播地址。

另一方面,IP 多播地址將廣播的潛在有效范圍擴展到整個因特網(wǎng)。其真實范圍,組會員和路由由因特網(wǎng)組管理協(xié)議(IGMP) 確定 [DEE89 ],對于各種路由協(xié)議,超出了這份資料的討論范圍。 就以太網(wǎng)而論,例如,以太網(wǎng)媒介訪問播送地址(全部為1)要和分配的224.0.1.1 的IP 多播地址合用。 除了IP 地址規(guī)范和IGMP,在服務(wù)器操作IP廣播地址或者IP多播地址沒有什么不同。

廣播客戶端幀聽廣播地址,例如在以太網(wǎng)情況下主機地址全部為1的。就廣播地址的IP而論,沒有更進(jìn)一步規(guī)定的必要了。在IP多組廣播情況下,主機可能需要實現(xiàn)IGMP,為的是讓本地路由器把消息攔截后送到224.0.1.1 多播組。這些考慮不屬于這份資料的討論范圍。

就當(dāng)前指定的SNTP而論,其真正的弱點是多目廣播客戶端可能被一些行為不當(dāng)或者敵對的在因特網(wǎng)別處的SNTP/NTP 多播服務(wù)器攻擊而癱瘓,因為目前全部這樣服務(wù)器使用相同的IP 多播地址:224.0.1.1 組地址。 所以有必要,存取控制要基于那些以客戶端信任的服務(wù)器源地址,即客戶端選擇僅僅為自己所知的服務(wù)器?;蛘撸凑諔T列和非正式協(xié)議,全部NTP多播服務(wù)器現(xiàn)在在每條消息內(nèi)應(yīng)包括已用MD5加密的加密位,以便客戶端確定消息沒有在傳輸中被修改。SNTP 客戶端能實現(xiàn)那些必要加密和密鑰分發(fā)計劃在原則上是可能的,但是這在SNTP被設(shè)計成的那些簡單的系統(tǒng)里不可能被考慮。

考慮到?jīng)]有一個完整的SNTP規(guī)范,故IP 廣播地址將使用在IP子網(wǎng)和局域網(wǎng)部分(指有完整功能的NTP服務(wù)器和SNTP客戶端在同一子網(wǎng)上的局域網(wǎng)),而對于IP 多播地址來說,將只能用在為達(dá)到以上相同目而設(shè)計的特例中。尤其,只有服務(wù)器實現(xiàn)了RFC 1305 描述的NTP認(rèn)證時(包括支持MD5消息位的算法),在SNTP 服務(wù)器里的IP 多播地址才被使用。

3. NTP時間戳格式

sntp使用在RFC 1305 及其以前的版本所描述標(biāo)準(zhǔn)NTP時間戳的格式。與因特網(wǎng)標(biāo)準(zhǔn)標(biāo)準(zhǔn)一致, NTP 數(shù)據(jù)被指定為整數(shù)或定點小數(shù),位以big-endian風(fēng)格從左邊0位或者高位計數(shù)。除非不這樣指定,全部數(shù)量都將設(shè)成unsigned的類型,并且可能用一個在bit0前的隱含0填充全部字段寬度。

因為SNTP時間戳是重要的數(shù)據(jù)和用來描述協(xié)議主要產(chǎn)品的,一個專門的時間戳格式已經(jīng)建立。 NTP用時間戳表示為一64 bits unsigned 定點數(shù),以秒的形式從1900 年1月1 日的0:0:0算起。整數(shù)部分在前32位里,后32bits(seconds Fraction)用以表示秒以下的部分。在Seconds Fraction 部分,無意義的低位應(yīng)該設(shè)置為0。這種格式把方便的多精度算法和變換用于UDP/TIME 的表示(單位:秒),但使得轉(zhuǎn)化為ICMP的時間戳消息表示法(單位:毫秒)的過程變得復(fù)雜了。它代表的精度是大約是200 picoseconds,這應(yīng)該足以滿足最高的要求了。

0 1 2 3 4 5 6 7 8 9 0 1 2 3 4 5 6 7 8 9 0 1 2 3 4 5 6 7 8 9 0 1

+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+

| Seconds |

+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+

| Seconds Fraction (0-padded) |

+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+

注意,從1968 年起,最高有效位(整數(shù)部分的0 bit位) 已經(jīng)被確定,64 位比特字段在2036 年將溢出。 如果NTP或者SNTP在2036 年還在使用的話,一些外部方法將有必要用來調(diào)整與1900年及2036 年有關(guān)的時間 (136 年的其它倍數(shù)也一樣)。 用這樣的限制使時間戳數(shù)據(jù)變得很講究(要求合適的方法可容易地被找到)。從今以后每136 年,就會有200picosecond 的間隔,會被忽略掉,64 個比特字段將全部置為0 ,按照慣列它將被解釋為一個無效的或者不可獲得的時間戳。

4. NTP 報文格式

NTP 和SNTP 是用戶數(shù)據(jù)報協(xié)議( UDP) 的客戶端 [POS80 ],而UDP自己是網(wǎng)際協(xié)議( IP) [DAR81 ] 的客戶端. IP 和UDP 報頭的結(jié)構(gòu)在被引用的指定資料里描述,這里就不更進(jìn)一步描述了。UDP的端口是123,UDP頭中的源斷口和目的斷口都是一樣的,保留的UDP頭如規(guī)范中所述。

以下是SNTP 報文格式的描述,它緊跟在IP 和UDP 報頭之后。SNTP的消息格式與RFC-1305中所描述的NTP格式是一致的,不同的地方是:一些SNTP的數(shù)據(jù)域已被風(fēng)裝,也就是說已初始化為一些預(yù)定的值。NTP 消息的格式被顯示如下。

1 2 3

0 1 2 3 4 5 6 7 8 9 0 1 2 3 4 5 6 7 8 9 0 1 2 3 4 5 6 7 8 9 0 1

+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+

|LI | VN |Mode | Stratum | Poll | Precision |

+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+

| 根延遲 |

+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+

| 根差量 |

+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+

| 參考標(biāo)識符 |

+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+

| |

| 參考時間戳(64) |

| |

+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+

| |

| 原始時間戳(64) |

| |

+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+

| |

| 接受時間戳 (64) |

| |

+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+

| |

| 傳送時間戳(64) |

| |

+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+

| |

| |

| 認(rèn)證符(可


當(dāng)前名稱:關(guān)于sleepvb.net的信息
網(wǎng)站URL:http://weahome.cn/article/ddddgdg.html

其他資訊

在線咨詢

微信咨詢

電話咨詢

028-86922220(工作日)

18980820575(7×24)

提交需求

返回頂部