<meter id="pryje"><nav id="pryje"><delect id="pryje"></delect></nav></meter>
          <label id="pryje"></label>

          新聞中心

          EEPW首頁 > 嵌入式系統(tǒng) > 設(shè)計應(yīng)用 > 基于STM32控制器的SNTP授時服務(wù)器的研究與設(shè)計

          基于STM32控制器的SNTP授時服務(wù)器的研究與設(shè)計

          作者: 時間:2012-08-07 來源:網(wǎng)絡(luò) 收藏

          2 SNTP協(xié)議分析
          SNTP即簡單,它是一個用于局域網(wǎng)子網(wǎng)末端的協(xié)議,其要求在操作過程中只允許存在一個可靠的同步時鐘源,是
          NTP協(xié)議的一個簡化版本。
          2.1 SNTP的同步原理
          SNTP協(xié)議主要通過同步算法來交換時間服務(wù)器和客戶端的時間戳,從而估算出數(shù)據(jù)包在網(wǎng)絡(luò)上的往返延遲,進(jìn)而獨(dú)立地估算系統(tǒng)的時鐘偏差。它的原理的傳輸模型如圖2所示。

          2b.JPG


          圖2中,T1為客戶方發(fā)送查詢請求時間(以客戶方時間系統(tǒng)為參照),T2為服務(wù)器收到查詢請求時間(以服務(wù)器時間系統(tǒng)為參照),T3為服務(wù)器回復(fù)時間信息包時間(以服務(wù)器時間系統(tǒng)為參照),T4為客戶方收到時間信息包時間(以客戶方時間系統(tǒng)為參照),D1為請求信息在網(wǎng)上傳播所消耗的時間,D2為回復(fù)信息在網(wǎng)上傳播所消耗的時間。假設(shè)請求和回復(fù)在網(wǎng)上的傳播時間相同,即:δ1=δ2,則可得出如下公式:
          2c.JPG
          式中,θ為客戶端時間與標(biāo)準(zhǔn)時間之差,δ為信息在網(wǎng)上傳播的時間??梢钥吹?,θ、δ只與T2、T1的差值和T4、T3的差值相關(guān),而與T2、T3的差值無關(guān),即最終的結(jié)果與服務(wù)器處理請求所需的時間無關(guān)。據(jù)此,客戶端(CLIENT)即可通過T1、T2、T3、T4十算出的時差0去調(diào)整本地時鐘。
          2.2 SNTP協(xié)議格式
          SNTP消息一般封裝在UDP報文中,UDP的端口號是123,UDP頭中的源端口和目的端口是一樣的。SNTP消息緊跟在IP和UDP報頭之后,其協(xié)
          議格式如圖3所示。

          2d.JPG


          圖3中,U為跳躍指示器,可警告在當(dāng)月最后一天的最終時刻插入的迫近閨秒(閨秒)。VN表示版本號。Mode為模式,該字段包括以下值:
          O(預(yù)留);1(對稱行為);3(客戶機(jī));4(服務(wù)器);5(廣播);6(NTP控制信息)。Stratum用于對本地時鐘級別的整體識別。Poll表示有符號整
          數(shù)表示連續(xù)信息間的最大間隔。Precision表示有符號整數(shù),表示本地時鐘精確度。Root Delay為有符號固定點(diǎn)序號,表示主要參考源的總延遲,如很短時間內(nèi)的15到16間的分段點(diǎn)。Root Dispersion為無符號固定點(diǎn)序號表示相對于主要參考源的正常差錯,如很短時間內(nèi)的位15到16間的分段點(diǎn)。



          評論


          相關(guān)推薦

          技術(shù)專區(qū)

          關(guān)閉
          看屁屁www成人影院,亚洲人妻成人图片,亚洲精品成人午夜在线,日韩在线 欧美成人 (function(){ var bp = document.createElement('script'); var curProtocol = window.location.protocol.split(':')[0]; if (curProtocol === 'https') { bp.src = 'https://zz.bdstatic.com/linksubmit/push.js'; } else { bp.src = 'http://push.zhanzhang.baidu.com/push.js'; } var s = document.getElementsByTagName("script")[0]; s.parentNode.insertBefore(bp, s); })();