• 
    

    
    

      99热精品在线国产_美女午夜性视频免费_国产精品国产高清国产av_av欧美777_自拍偷自拍亚洲精品老妇_亚洲熟女精品中文字幕_www日本黄色视频网_国产精品野战在线观看

      ?

      變電站監(jiān)控系統(tǒng)NTP對(duì)時(shí)精度的提高策略

      2019-01-23 06:32:48李照國潘洪湘
      浙江電力 2019年1期
      關(guān)鍵詞:客戶機(jī)內(nèi)核數(shù)據(jù)包

      李照國 ,潘洪湘 ,張 婷

      (1.南瑞集團(tuán)公司(國網(wǎng)電力科學(xué)研究院),南京 211106;2.國電南瑞科技股份有限公司,南京 211106;3.智能電網(wǎng)保護(hù)和運(yùn)行控制國家重點(diǎn)實(shí)驗(yàn)室,南京 211106)

      0 引言

      電力系統(tǒng)是與時(shí)間相關(guān)的系統(tǒng),各子系統(tǒng)應(yīng)基于統(tǒng)一的時(shí)間基準(zhǔn)運(yùn)行,以滿足時(shí)間一致性的要求[1-4]。隨著電力系統(tǒng)時(shí)間同步監(jiān)測(cè)功能的推廣,對(duì)變電站監(jiān)控系統(tǒng)的對(duì)時(shí)精度也提出了更高的要求,站內(nèi)時(shí)間同步監(jiān)測(cè)精度應(yīng)小于3 ms。

      NTP(網(wǎng)絡(luò)時(shí)間協(xié)議)是由RFC 1305定義的時(shí)間同步協(xié)議,用來在分布式時(shí)間服務(wù)器和客戶端之間進(jìn)行時(shí)間同步[5]。NTP基于UDP(用戶數(shù)據(jù)報(bào)協(xié)議)報(bào)文進(jìn)行傳輸,使用的UDP端口號(hào)為123。使用NTP的目的是對(duì)網(wǎng)絡(luò)內(nèi)所有具有時(shí)鐘的設(shè)備進(jìn)行同步,使網(wǎng)絡(luò)內(nèi)所有設(shè)備的時(shí)鐘保持一致,從而使設(shè)備能夠提供基于統(tǒng)一時(shí)間的多種應(yīng)用[6-9]。對(duì)于運(yùn)行NTP的本地系統(tǒng),既可以接受來自其他時(shí)鐘源的同步,又可以作為時(shí)鐘源同步其他時(shí)鐘,并且可以和其他設(shè)備互相同步。

      目前,大部分變電站監(jiān)控系統(tǒng)通過NTP實(shí)現(xiàn)時(shí)間同步,監(jiān)控系統(tǒng)主要采用Linux操作系統(tǒng),因此本文的策略針對(duì)Linux系統(tǒng)。在互聯(lián)網(wǎng)上,通過NTP同步的2臺(tái)機(jī)器之間的典型精度在幾毫秒之內(nèi)。在局域網(wǎng)上,通過優(yōu)化NTP的對(duì)時(shí)過程,其精度通??梢赃_(dá)到幾十微秒,如果使用硬件時(shí)間戳或硬件參考時(shí)鐘,也可以達(dá)到亞微秒級(jí)的精度。

      1 計(jì)算機(jī)的時(shí)鐘模型

      計(jì)算機(jī)時(shí)間以各種方式表示,具體取決于硬件功能、操作系統(tǒng)和系統(tǒng)時(shí)鐘模型。

      1.1 Linux系統(tǒng)保持時(shí)間的基本策略

      Linux系統(tǒng)實(shí)際上有2個(gè)時(shí)鐘,分別為硬件時(shí)鐘和系統(tǒng)時(shí)鐘。硬件時(shí)鐘,也叫做RTC或者CMOS時(shí)鐘,由主板電池進(jìn)行驅(qū)動(dòng)。當(dāng)操作系統(tǒng)關(guān)機(jī)時(shí),計(jì)算機(jī)使用硬件時(shí)鐘來保持時(shí)間,但是運(yùn)行時(shí)的操作系統(tǒng)是不用這個(gè)時(shí)間的。系統(tǒng)時(shí)鐘,也叫做內(nèi)核時(shí)鐘或者軟件時(shí)鐘,是由軟件根據(jù)時(shí)鐘中斷來進(jìn)行計(jì)數(shù)的,系統(tǒng)時(shí)鐘在操作系統(tǒng)關(guān)機(jī)的情況下是不存在的,因此,操作系統(tǒng)啟動(dòng)時(shí),系統(tǒng)時(shí)鐘通過讀取硬件時(shí)鐘的時(shí)間進(jìn)行初始化。系統(tǒng)時(shí)間是指當(dāng)前系統(tǒng)時(shí)鐘的時(shí)間。

      時(shí)鐘由1個(gè)振蕩器和1個(gè)振蕩器計(jì)數(shù)器組成,用于記錄在給定時(shí)間內(nèi)相對(duì)某個(gè)初始值的增量。時(shí)鐘中斷是由計(jì)算機(jī)的計(jì)時(shí)電路產(chǎn)生的。計(jì)時(shí)電路按照一定的計(jì)數(shù)方式對(duì)晶體振蕩器產(chǎn)生的輸入脈沖進(jìn)行計(jì)數(shù)操作,每次計(jì)數(shù)到期,計(jì)時(shí)電路就產(chǎn)生1個(gè)時(shí)鐘中斷。操作系統(tǒng)利用時(shí)鐘中斷維護(hù)系統(tǒng)時(shí)鐘的正常工作,每次時(shí)鐘中斷,操作系統(tǒng)的時(shí)間計(jì)數(shù)變量就加1。

      1.2 影響計(jì)算機(jī)時(shí)鐘誤差的因素

      在使用NTP進(jìn)行對(duì)時(shí)的計(jì)算機(jī)系統(tǒng)中,影響計(jì)算機(jī)時(shí)鐘誤差的3個(gè)主要因素分別為:不對(duì)稱的網(wǎng)絡(luò)延遲;計(jì)算機(jī)硬件和軟件的潛在因素;時(shí)鐘振蕩器的漂移。文獻(xiàn)[10]給出了計(jì)算機(jī)時(shí)鐘和理想時(shí)鐘誤差的計(jì)算公式:

      式中:t為當(dāng)前時(shí)間;t0為上一次更新時(shí)間;T為時(shí)間偏差;R為頻率偏差;D為時(shí)鐘振蕩器的漂移偏差;x為隨機(jī)誤差。

      式(1)中前三項(xiàng)偏差有一定的規(guī)律,可以進(jìn)行修正。時(shí)鐘振蕩器的漂移偏差,通??梢员粫r(shí)間偏差和頻率偏差進(jìn)行控制。NTP協(xié)議可以對(duì)前兩項(xiàng)偏差進(jìn)行預(yù)測(cè)。

      2 對(duì)時(shí)間進(jìn)行采樣

      2.1 獲取系統(tǒng)時(shí)鐘的分辨率

      分辨率是一個(gè)時(shí)鐘讀數(shù)與另一個(gè)時(shí)鐘讀數(shù)的區(qū)別程度。系統(tǒng)時(shí)鐘分辨率定義為用戶態(tài)下獲得的系統(tǒng)時(shí)鐘的最小增量,可以為1 ns,1μs,1 ms,10 ms等,最壞情況下也不會(huì)超過1 s。

      使用操作系統(tǒng)函數(shù)gettimeofday()獲取系統(tǒng)時(shí)鐘的分辨率,過程如圖1所示?,F(xiàn)在商用計(jì)算機(jī)的時(shí)鐘分辨率可以達(dá)到微秒級(jí)。

      圖1 獲取時(shí)鐘分辨率流程

      2.2 網(wǎng)絡(luò)熱身

      NTP客戶端第一次向NTP服務(wù)端發(fā)送報(bào)文時(shí),有一個(gè)地址解析過程。以太網(wǎng)上每一個(gè)網(wǎng)絡(luò)接口都有其硬件地址,在硬件層次上進(jìn)行的數(shù)據(jù)幀交換必須有正確的接口地址。Linux內(nèi)核必須知道目的端的硬件地址才能發(fā)送數(shù)據(jù),獲取目的端硬件地址的工作由ARP(地址解析協(xié)議)完成,其過程如圖2所示。

      圖2 地址解析過程

      因此,客戶端應(yīng)該首先向服務(wù)端發(fā)1幀ECHO報(bào)文,以使內(nèi)核緩存IP地址和硬件地址之間進(jìn)行映射,在下次發(fā)送報(bào)文時(shí),直接使用該映射,減少中間環(huán)節(jié)。同時(shí),該操作也促使內(nèi)核把客戶端程序加載到內(nèi)存中,加快指令執(zhí)行速度。

      2.3 采樣數(shù)據(jù)的初步篩選

      本文中的NTP對(duì)時(shí)方式采用客戶機(jī)/服務(wù)器方式。其工作原理為:客戶機(jī)首先向服務(wù)器發(fā)送1個(gè)NTP包,其中包含了該包離開客戶機(jī)的時(shí)間戳T1(以客戶時(shí)間為參照);當(dāng)服務(wù)器接收到該包時(shí),依次填入包到達(dá)的時(shí)間戳T2、包離開的時(shí)間戳T3(以服務(wù)器時(shí)間為參照),然后立即把包返回給客戶機(jī);客戶機(jī)在接收到響應(yīng)包時(shí),記錄包返回的時(shí)間戳T4(以客戶時(shí)間為參照)。

      客戶機(jī)使用上述4個(gè)時(shí)間戳可以計(jì)算出路徑時(shí)延: d=(T4-T1)-(T3-T2), 客戶機(jī)相對(duì)服務(wù)器的時(shí)間偏差: offset=[(T2-T1)+(T3-T4)]/2。

      客戶機(jī)在對(duì)服務(wù)器時(shí)間的連續(xù)采樣中,需要檢查數(shù)據(jù)包的有效性,以便做進(jìn)一步的處理。有效性檢查需要經(jīng)過如下6個(gè)步驟:

      (1)復(fù)制數(shù)據(jù)包檢查。防止本包數(shù)據(jù)是上一包數(shù)據(jù)的完全復(fù)制,消除對(duì)同一包數(shù)據(jù)處理2次的可能性。

      (2)連貫性檢查。收到的數(shù)據(jù)包里所包含的時(shí)間戳T1,必須和客戶機(jī)最近發(fā)出去的數(shù)據(jù)包里T1保持一致。連貫性檢查保證服務(wù)器回復(fù)的是客戶機(jī)最近一次的請(qǐng)求,這將保證接收數(shù)據(jù)包的順序,同時(shí)可以防止偽造的數(shù)據(jù)包。

      (3)正確初始化檢查。檢查時(shí)間戳T1和T2是否為零,防止客戶機(jī)和服務(wù)器沒有進(jìn)行正確的初始化。

      (4)路徑時(shí)延檢查。在變電站的網(wǎng)絡(luò)結(jié)構(gòu)下,客戶機(jī)和服務(wù)器之間的路徑時(shí)延必須小于20 ms,否則丟棄該數(shù)據(jù)包。當(dāng)站內(nèi)網(wǎng)絡(luò)擁堵時(shí),客戶機(jī)計(jì)算出的路徑時(shí)延就會(huì)比較大。

      (5)路徑時(shí)延變化率檢查。檢查本次采樣中的路徑時(shí)延與采樣庫中最小的路徑時(shí)延之比,如果大于2,則丟棄本次數(shù)據(jù)包。

      (6)路徑時(shí)延增長量檢查。檢查本次采樣中的路徑時(shí)延與采樣庫中最小的路徑時(shí)延之差,應(yīng)該小于采樣庫里路徑時(shí)延標(biāo)準(zhǔn)差的10倍,否則丟棄本次數(shù)據(jù)包。

      只有數(shù)據(jù)包通過這些有效性檢查后,才可進(jìn)行進(jìn)一步的統(tǒng)計(jì)處理。

      3 馴服計(jì)算機(jī)時(shí)鐘

      通過NTP不僅要同步計(jì)算機(jī)時(shí)間,同時(shí)要計(jì)算出計(jì)算機(jī)時(shí)間的誤差范圍。時(shí)間偏差為客戶機(jī)/服務(wù)器的查詢時(shí)間之差與服務(wù)器/客戶機(jī)的響應(yīng)時(shí)間之差的和的一半。通過記錄數(shù)據(jù)包到達(dá)和離開服務(wù)器的時(shí)間、離開和到達(dá)客戶機(jī)的時(shí)間,可以計(jì)算出這些差值。路徑時(shí)延為從客戶機(jī)請(qǐng)求到接收應(yīng)答的時(shí)間,并減去服務(wù)器處理請(qǐng)求的時(shí)間,因?yàn)榉?wù)器的處理時(shí)間是和網(wǎng)絡(luò)問題無關(guān)的。在處理NTP采樣數(shù)據(jù)時(shí),必須考慮時(shí)間偏差、路徑時(shí)延和誤差因素。誤差因素主要反映了讀時(shí)鐘操作和時(shí)鐘頻率的公差。

      3.1 采樣的回歸分析

      本策略中最大的采樣數(shù)設(shè)置為64個(gè)采樣點(diǎn),通過循環(huán)的方式進(jìn)行更新,每次丟棄時(shí)間最久的采樣點(diǎn)。新的采樣點(diǎn)的T4時(shí)間如果小于最近一次采樣點(diǎn)的T4時(shí)間,說明服務(wù)器或者本地時(shí)間進(jìn)行了調(diào)整,這時(shí)需要清空采樣庫,重新開始積累采樣。

      一元線性回歸方程的模型表示如下:

      式中:Yt為因變量;Xt為自變量;Ut為隨機(jī)誤差;b為截距項(xiàng);a為回歸系數(shù)。

      以T4為自變量,時(shí)間偏差為因變量,使用最小方差線性擬合技術(shù)估算出回歸系數(shù)和截距,回歸系數(shù)為客戶機(jī)與服務(wù)器之間的頻差,截距為客戶機(jī)與服務(wù)器之間的相差。

      NTP算法假設(shè)在服務(wù)器與客戶機(jī)通信過程中,請(qǐng)求報(bào)文和應(yīng)答報(bào)文經(jīng)歷的路徑時(shí)延相等。但在變電站監(jiān)控系統(tǒng)的網(wǎng)絡(luò)環(huán)境中,NTP服務(wù)器到客戶機(jī)(監(jiān)控系統(tǒng))方向上的網(wǎng)絡(luò)報(bào)文遠(yuǎn)遠(yuǎn)多于客戶機(jī)(監(jiān)控系統(tǒng))到NTP服務(wù)器方向上的網(wǎng)絡(luò)報(bào)文,因此請(qǐng)求報(bào)文與應(yīng)答報(bào)文往返時(shí)延并不相等,此外路徑時(shí)延還受到操作系統(tǒng)協(xié)議棧時(shí)延、網(wǎng)絡(luò)鏈路時(shí)延、路由器處理和排隊(duì)時(shí)延的影響。在時(shí)間采樣數(shù)據(jù)的篩選中對(duì)路徑時(shí)延的大小、變化率、增長量進(jìn)行檢查,并丟掉不合格的數(shù)據(jù)包,這些數(shù)據(jù)不再參與回歸分析。

      對(duì)采樣數(shù)據(jù)進(jìn)行加權(quán)處理,可以減少不對(duì)稱的往返路徑時(shí)延對(duì)對(duì)時(shí)精度的影響,從而提高監(jiān)控系統(tǒng)對(duì)時(shí)精度。本策略中根據(jù)路徑時(shí)延的大小對(duì)采樣數(shù)據(jù)進(jìn)行加權(quán),路徑時(shí)延越小其所占權(quán)重越大。同時(shí),在線性回歸的計(jì)算中,對(duì)殘差進(jìn)行分析,根據(jù)其是否均勻分布,多次對(duì)該組采樣數(shù)據(jù)進(jìn)行回歸計(jì)算,每次計(jì)算中去掉該組數(shù)據(jù)中的一個(gè)采樣點(diǎn),最終取殘差最好的一組值計(jì)算出客戶機(jī)與服務(wù)器之間的頻差、相差。

      3.2 內(nèi)核時(shí)間調(diào)整

      Linux內(nèi)核使用David L.Mill的時(shí)鐘調(diào)整算法,系統(tǒng)調(diào)用adjtimex()讀取和可選地設(shè)置該算法的調(diào)整參數(shù)。它以一個(gè)指向結(jié)構(gòu)體timex指針為參數(shù),更新內(nèi)核參數(shù)相應(yīng)的值,并且通過相同的結(jié)構(gòu)體來返回內(nèi)核當(dāng)前的值。該算法的目標(biāo)是將計(jì)時(shí)精度提高到1μs,最終達(dá)到1 ns。

      內(nèi)核將系統(tǒng)時(shí)鐘實(shí)現(xiàn)為64位邏輯時(shí)鐘,在每個(gè)硬件中斷或時(shí)鐘滴答時(shí)其值遞增。通過循環(huán)地對(duì)時(shí)鐘滴答增加或減少某個(gè)值調(diào)整時(shí)鐘頻率,其范圍為-0.5‰~0.5‰。在可用的情況下,一個(gè)稱為處理器周期計(jì)數(shù)器的輔助計(jì)數(shù)器用于在時(shí)鐘滴答中斷之間插值。每秒結(jié)束時(shí)系統(tǒng)時(shí)鐘校正例程重新計(jì)算,并確定新的相位調(diào)整和頻率調(diào)整,在接下來的一秒中,時(shí)鐘調(diào)整例程在每個(gè)時(shí)鐘滴答中斷處分?jǐn)傔@些調(diào)整。

      Adjtimex()函數(shù)適用于時(shí)間變量以秒和納秒以及以秒和微秒表示的內(nèi)核。無論哪種情況,當(dāng)必要的硬件支持可用時(shí),系統(tǒng)時(shí)鐘分辨率都是納秒級(jí)。即使硬件時(shí)鐘的分辨率僅為微秒級(jí),該函數(shù)也能提供大量信號(hào)進(jìn)行整飾和平均,以最大限度地減少讀取和舍入誤差。雖然時(shí)鐘校正在NTP中每次應(yīng)答執(zhí)行一次,但在內(nèi)核算法中每次時(shí)鐘中斷處都執(zhí)行。

      4 結(jié)語

      使用NTP對(duì)時(shí)的計(jì)算機(jī),其時(shí)間波動(dòng)主要是由于網(wǎng)絡(luò)和操作系統(tǒng)延遲造成的,其頻率波動(dòng)主要是由溫度變化造成的。商業(yè)計(jì)算機(jī)沒有明確的手段來控制環(huán)境溫度,因此在一天的正常運(yùn)行中,振蕩器頻率可能會(huì)在百萬分之幾之間變化。為了進(jìn)一步提高對(duì)時(shí)精度,可以根據(jù)溫度對(duì)頻率進(jìn)行調(diào)節(jié),由于振蕩器在物理上與CPU(中央處理單元)芯片接近,因此可以根據(jù)CPU的溫度對(duì)頻率進(jìn)行調(diào)節(jié)。此外,也可以使用驅(qū)動(dòng)程序或硬件時(shí)間戳,進(jìn)一步提高監(jiān)控系統(tǒng)對(duì)時(shí)精度,但這需要介入內(nèi)核驅(qū)動(dòng)或網(wǎng)絡(luò)接口程序。

      猜你喜歡
      客戶機(jī)內(nèi)核數(shù)據(jù)包
      Reducing the global cancer burden with gastrointestinal screening: China’s 30 years practice
      萬物皆可IP的時(shí)代,我們當(dāng)夯實(shí)的IP內(nèi)核是什么?
      強(qiáng)化『高新』內(nèi)核 打造農(nóng)業(yè)『硅谷』
      基于嵌入式Linux內(nèi)核的自恢復(fù)設(shè)計(jì)
      Linux內(nèi)核mmap保護(hù)機(jī)制研究
      SmartSniff
      基于Libpcap的網(wǎng)絡(luò)數(shù)據(jù)包捕獲器的設(shè)計(jì)與實(shí)現(xiàn)
      視覺注意的數(shù)據(jù)包優(yōu)先級(jí)排序策略研究
      移動(dòng)IPV6在改進(jìn)數(shù)據(jù)包發(fā)送路徑模型下性能分析
      瘦客戶機(jī):安全與便捷的選擇
      西充县| 孝感市| 乌兰察布市| 武宁县| 双牌县| 南昌市| 海伦市| 商水县| 罗田县| 泾川县| 和政县| 翁牛特旗| 黄梅县| 顺昌县| 嘉荫县| 赤峰市| 固阳县| 宁化县| 崇左市| 柏乡县| 修文县| 广河县| 辽阳市| 绥阳县| 仁怀市| 闽清县| 永和县| 许昌市| 云浮市| 乌拉特后旗| 唐河县| 加查县| 宁陵县| 沅江市| 镇巴县| 常山县| 禄劝| 广昌县| 安平县| 辽阳县| 永登县|