自拍偷在线精品自拍偷,亚洲欧美中文日韩v在线观看不卡

淺談daytime協(xié)議和時(shí)間協(xié)議

網(wǎng)絡(luò) 網(wǎng)絡(luò)管理
這里我們針對daytime協(xié)議的內(nèi)容進(jìn)行一下簡單的介紹。首先我們針對這個(gè)協(xié)議的概念進(jìn)行了分析,之后對于時(shí)間協(xié)議的內(nèi)容也做了介紹。

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

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

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

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

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

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

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

◆基于UDP的daytime協(xié)議服務(wù)

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

◆Daytime格式

對于daytime協(xié)議沒有特定的格式,建議使用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

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

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

Option Explicit

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

www.time.ac.cn為中科院國家授時(shí)中心,采用北京時(shí)間

時(shí)間格式:Mon Jul 26 09:58:57 2004

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

  1. 時(shí)間格式:53212 04-07-26 02:00:12 50 0 0 488.3 UTC(NIST) *  
  2. Private Declare Sub Sleep Lib "kernel32" (ByVal dwMilliseconds As Long)  
  3. Dim NoSrv As Boolean  
  4. Dim TimeFromNet  
  5. Private Sub Form_Load()  
  6. Winsock1.Protocol = sckTCPProtocol '采用TCP協(xié)議  
  7. NetTime "www.time.ac.cn" '首先取中科院國家授時(shí)中心時(shí)間  
  8. If NoSrv Or TimeFromNet = "" Then 

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

  1. NetTime "time.nist.gov"  
  2. If NoSrv Or TimeFromNet = "" Then 

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

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

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

  1. NetTime "time.nist.gov" 
  2. If TimeFromNet = "" Then  
  3. MsgBox "網(wǎng)絡(luò)標(biāo)準(zhǔn)時(shí)間服務(wù)器time.nist.gov超時(shí)!" 
  4. Else  
  5. TimeFromNet = Mid(TimeFromNet, 17, 8)  
  6. TimeFromNet = TimeSerial((Hour(TimeFromNet) + 8) Mod 24, Minute(TimeFromNet), Second(TimeFromNet))  
  7. Time = TimeFromNet '設(shè)置系統(tǒng)時(shí)間  
  8. End If  
  9. End If  
  10. Else 

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

  1. NetTime "www.time.ac.cn" 
  2. If TimeFromNet = "" Then  
  3. MsgBox "網(wǎng)絡(luò)標(biāo)準(zhǔn)時(shí)間服務(wù)器www.time.ac.cn超時(shí)!" 
  4. Else  
  5. Time = Mid(TimeFromNet, 12, 8) '設(shè)置系統(tǒng)時(shí)間  
  6. End If  
  7. End If  
  8. End  
  9. End Sub 

關(guān)閉Winsock子程序

  1. Private Sub Winsock1_Close()  
  2. If Winsock1.State <> sckClosed Then  
  3. Winsock1.Close  
  4. End If  
  5. End Sub 

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

  1. Private Sub Winsock1_DataArrival(ByVal bytesTotal As Long)  
  2. TimeFromNet = String(bytesTotal, " ")  
  3. Winsock1.GetData TimeFromNet, vbString, bytesTotal  
  4. End Sub 

Winsock出錯事件

  1. 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)  
  2. NoSrv = True  
  3. End Sub 

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

  1. Private Sub NetTime(TimeSrv As String)  
  2. NoSrv = False  
  3. TimeFromNet = "" 
  4. If Winsock1.State <> sckClosed Then Winsock1.Close  
  5. Winsock1.RemoteHost = TimeSrv ' "www.time.ac.cn" 或 "time.nist.gov" 
  6. Winsock1.RemotePort = 13  
  7. Winsock1.LocalPort = 0  
  8. Winsock1.Connect  
  9. Do While TimeFromNet = "" '循環(huán)等待標(biāo)準(zhǔn)時(shí)間網(wǎng)站返回時(shí)間數(shù)據(jù)  
  10. If NoSrv Then Exit Do '若Winsock出錯,則跳出循環(huán)等待  
  11. Sleep 55  
  12. DoEvents  
  13. Loop  
  14. If Winsock1.State <> sckClosed Then Winsock1.Close  
  15. End Sub 

上面介紹了RFC-867標(biāo)準(zhǔn)和VB例程,顯然RFC-867標(biāo)準(zhǔn)采用返回當(dāng)前時(shí)間和日期的格式是字符串格式以及對于daytime協(xié)議沒有特定的格式(例如:中科院國家授時(shí)中心為"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點(diǎn)似乎都不是太舒服,因此我們希望Internet上的標(biāo)準(zhǔn)時(shí)間服務(wù)器***能夠返回具有標(biāo)準(zhǔn)格式的數(shù)字類型數(shù)據(jù),其實(shí)RFC在制定RFC-867標(biāo)準(zhǔn)時(shí)已經(jīng)考慮了我們的意見,因?yàn)樗瑫r(shí)還推出了RFC-868標(biāo)準(zhǔn),下面就介紹RFC-868:

RFC868 時(shí)間協(xié)議(RFC868 Time Protocol)

本RFC規(guī)范了一個(gè)ARPA Internet community上的標(biāo)準(zhǔn).在ARPA Internet上的所有主機(jī)應(yīng)當(dāng)采用和實(shí)現(xiàn)這個(gè)標(biāo)準(zhǔn).此協(xié)議提供了一個(gè)獨(dú)立于站點(diǎn)的,機(jī)器可讀的日期和時(shí)間信息.時(shí)間服務(wù)返回的是以秒數(shù),是從1900年1月1日午夜到現(xiàn)在的秒數(shù),天哪,也不小呢.設(shè)計(jì)這個(gè)協(xié)議的一個(gè)重要目的在于,網(wǎng)絡(luò)上的許多主機(jī)并沒有時(shí)間的觀念,在分布式的系統(tǒng)上,我們可以想一想,北京的時(shí)間和東京的時(shí)間如何分呢?主機(jī)的時(shí)間往往可以人為改變,而且因?yàn)闄C(jī)器時(shí)鐘內(nèi)的誤差而變得不一致,因此需要使用時(shí)間服務(wù)器通過選舉方式得到網(wǎng)絡(luò)時(shí)間,讓服務(wù)器有一個(gè)準(zhǔn)確的時(shí)間觀念.不要小看時(shí)間,這對于一些以時(shí)間為標(biāo)準(zhǔn)的分布運(yùn)行的程序簡單是太重要了.

這個(gè)協(xié)議可以工作在TCP和UDP協(xié)議下.下面是通過TCP協(xié)議工作的時(shí)間協(xié)議的工作過程:這里S代表服務(wù)器,U代表客戶.
S: 檢測端口37
U: 連接到端口37
S: 以32位二進(jìn)制數(shù)發(fā)送時(shí)間
U: 接收時(shí)間
U: 關(guān)閉連接
S: 關(guān)閉連接

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

責(zé)任編輯:佟健 來源: hi.baidu.com
相關(guān)推薦

2010-09-10 14:25:00

Daytime協(xié)議

2011-08-03 15:51:48

Objective-C 協(xié)議 委托

2011-08-24 09:56:13

網(wǎng)絡(luò)協(xié)議BOOTP協(xié)議TFTP協(xié)議

2023-03-06 08:42:45

KCP移動開發(fā)

2010-07-30 15:04:02

協(xié)議配置

2010-06-12 17:07:17

TCP IP協(xié)議

2022-09-28 11:09:38

自動化產(chǎn)品工業(yè)協(xié)議

2010-06-09 14:42:21

UDP協(xié)議TCP協(xié)議

2010-09-08 15:06:26

藍(lán)牙協(xié)議棧

2010-09-17 14:49:18

Ethereal網(wǎng)絡(luò)協(xié)

2010-07-12 17:13:12

SNMP協(xié)議管理

2010-07-05 16:51:25

NetBIOS協(xié)議

2012-09-03 09:16:50

多層次個(gè)別分層數(shù)據(jù)中心網(wǎng)絡(luò)

2010-07-02 09:28:18

IP交換機(jī)GSMP協(xié)議IFMP協(xié)議

2010-07-07 17:56:21

2010-06-12 17:28:35

協(xié)議封裝

2010-09-09 15:25:35

網(wǎng)絡(luò)協(xié)議

2010-09-17 15:12:28

2014-09-03 09:52:45

開源

2010-07-01 16:33:08

UDP協(xié)議
點(diǎn)贊
收藏

51CTO技術(shù)棧公眾號