国产肉体XXXX裸体137大胆,国产成人久久精品流白浆,国产乱子伦视频在线观看,无码中文字幕免费一区二区三区 国产成人手机在线-午夜国产精品无套-swag国产精品-国产毛片久久国产

新聞中心

EEPW首頁 > 手機與無線通信 > 設計應用 > 一種基于PTP 協議的局域網高精度時鐘同步方法

一種基于PTP 協議的局域網高精度時鐘同步方法

作者: 時間:2011-02-11 來源:網絡 收藏

1 引言

  在分布式系統中, 常常需要一個全局時間, 用來確定系統中各種事件發(fā)生的先后、協調各種消息的傳輸等,以控制和監(jiān)視系統的狀態(tài)。這就需要將系統中各個部件的局部時間統一,進行。隨著分布式仿真系統和試驗系統在網絡上的廣泛應用,如何在網絡上提供可靠的時鐘服務成為一項重要課題。并且由于系統速度上的要求,同步的精度也成為一項重要指標。

  PTP(PrecisiON Time Protocol)協議是IEEE-1588中定義的一種精密協議,PTP 協議主要針對于相對本地化、網絡化的系統, 子網較好, 內部組件相對穩(wěn)定的環(huán)境設計的。由于PTP 協議實現簡單,占用的網絡和計算資源少等優(yōu)點使其廣泛應用于分布式系統中。

  PTP 協議可以采用硬件實現,也可以采用軟件實現。當采用硬件實現時可以達到ns 級的精度,采用軟件實現時通常可以達到ms 級的精度。當在網絡中采用軟件實現亞毫秒的精度時,存在多種因素的影響造成了時間同步的不可靠。包括網絡的不平穩(wěn)性、網卡對信息包的緩存效應以及操作系統進程調度的影響,這些因素通常不可預測并且無法控制, 造成最終的失效。

  本文中結合計算機自身的特點和PTP 協議時鐘同步機制,提出了一種純軟件實現的局域網內高精度時鐘同步方法, 通過構造高精度時鐘, 采取握手機制以及對測量結果進行處理,實現了局域網內亞毫秒精度的時間同步, 有效解決了各種因素對時鐘同步的影響
。

  2 PTP 協議時鐘同步原埋與分析

  一個簡單的基于PTP 協議時鐘同步機:制的系統包含一個主時鐘和多個從時鐘,時間同步主要通過分別在發(fā)送方和接收方對包含時間的信息打時戳, 并在接收方根據時戳計算出主從時鐘的時間偏差和時間信息在網絡中傳輸的延時來實現。為了管理這些時間信息,PTP 協議定義了四種信息類型,包括Sync(同步信息)、FollowUp(Sync 之后的跟隨信息)、DelayReq(延時校正申請信息)和DelayResp(對延時校正申請信息的響應)。

  主從時鐘的差異主要由時鐘偏差和信息包在網絡傳輸中的延遲構成,PTP 協議時鐘同步機制中, 主從時鐘的同步主要分為兩個階段, 偏移校正和延時校正階段。具體流程如圖1 所示。


圖1 PTP 協議時鐘同步原理

  在偏移校正階段, 即圖中的A 階段, 首先由主時鐘在1 TM 時刻發(fā)出Sync 信息到從時鐘,在Sync 信息中包含了一個時間戳, 描述了數據發(fā)出的預計時間。由于信息包含的是預計的發(fā)出時間而不是真實的發(fā)出時間, 所以Sync 信息真實的發(fā)出時間被測量后在隨后的FollowUp信息中發(fā)出。在從時鐘一方,記錄下Sync 信息真實的接收時間TS1 , 由TM1 和TS1 可以計算出從時鐘相對于主時鐘的時間偏差offset :


  可由該時間偏差來校正從時鐘。但由此計算出來的結果仍然包含有時間信息在網絡中傳輸造成的延時,因此還需要進行延時校正。

  在延時校正階段, 即圖中的B 階段, 首先由從時鐘發(fā)出Del ayReq 信息到主時鐘,從時鐘記錄下發(fā)送的準確時間TS2 ,主時鐘記錄下接收的準確時間2 TM ,并將該時間通過DelayResp 返回到從時鐘。從時鐘通過這兩個時間計算出網絡延時delay :


  從時鐘利用該值來進行校正。此時經過偏移校正和延時校正, 主從時鐘達到同步。

  但在實際應用中, 尤其是在網絡中采用純軟件實現時,簡單采用上述流程進行時鐘同步并不能達到亞毫秒的同步精度。這主要是由于網卡的緩存效應、網絡的不平穩(wěn)性以及操作系統進程調度等多方面的影響。

  網絡中在進行信息傳輸時,信息首先送到本地網卡的緩沖區(qū),并在網絡空閑時發(fā)送到接收方網卡的緩沖區(qū)。這樣在發(fā)送方連續(xù)發(fā)送多個信息到接收方時,信息首先在緩沖區(qū)緩存,包括發(fā)送方網卡的緩存和接收方網卡的緩存,在接收方接收信息時可能會同時收到所有的信息。這直接導致了信息接收時間測量不準確,造成時間同步的失效。

表1 時鐘偏差測量( 單位: u s 間隔: 1 s )


  相對于網卡的緩存效應,網絡的不平穩(wěn)性和操作系統的進程調度則更復雜一些,因為這兩個因素具有不確定性,而且是無法控制的。網絡的不平穩(wěn)性導致了信息包在網絡中傳輸的延遲不可預測, 影響了同步的精度。

  而操作系統采用時間片輪轉機制對進程進行調度,使得無法控制時間同步進程何時被調度, 何時停止, 造成了軟件延時的不可預測。例如, 表1 中的數據是在局域網中測得的幾組數據, 表示的是主時鐘和從時鐘的偏差,單位為us。在測試過程中主時鐘每隔1s 向從時鐘連續(xù)發(fā)送10 個偏移校正時間信息,為了保證網絡處于一定的活躍狀態(tài),網絡中的一些計算機開啟FTP 下載。從表1中的數據可以看出, 每組中連續(xù)發(fā)送的數據相對穩(wěn)定,相對偏差約幾十u s , 但會出現一些差異較大的特殊值,而組與組之間的數據則差異較大,從幾ms 到幾百ms 不等, 這樣無法斷定哪些數據對于時鐘同步是可靠的。

  經過以上分析可知, 必須對上述因素進行相應處理, 否則無法達到高精度的時鐘同步。

  3 基于 PTP 協議的高精度時鐘同步方法

  高精度時鐘是實現高精度時鐘同步的基礎, 因此本方法首先構造高精度時鐘。在此基礎上,通過對PTP 協議的分析,為了解決網卡的緩存效應、網絡的不平穩(wěn)性和操作系統進程調度對時鐘同步精度造成的影響, 在PTP 協議基礎上引入握手機制, 同時, 采用過濾和直線擬合的方法, 實現亞毫秒精度的時鐘同步。

  3.1 高精度時鐘的構造

  對于一個系統來說, 時鐘可分為兩種, 物理時鐘和邏輯時鐘。物理時鐘又稱為絕對時鐘或者墻上時鐘,對應于現實世界中的時間。通常通過計算機內置的時鐘芯片可以獲得ms 級別的物理時鐘。相對時鐘是指系統獨有的時鐘,獨立于物理時鐘,但和物理時鐘有一定的換算關系。

  當系統與外界無相互作用時, 系統內的時鐘可以采用邏輯時鐘來實現。邏輯時鐘實現簡單,方法多樣,并且可以滿足大多數場合的要求,許多系統中都采用了邏輯時鐘。

  為了實現高精度的定時,例如微秒級別的定時,一般采用高頻率的晶振實現。其實計算機CPU 本身就帶有一個高精度的時鐘,對于一個2GHz 的CPU 來說,這個時鐘的定時精度可達0.5ns。并且Windows 系統提供了一些接口來獲取CPU 的震蕩頻率和計算機開機以后定時器的計數值,因此可以通過這些API 接口來構造一個高精度的邏輯時鐘, 并且可向物理時間單位進行轉換。

  在這里使用t0 表示CPU 定時器的計數值, △t 表示邏輯時間相對于CPU 計數的偏差,當前邏輯時間t 可由下式構造:


  并且當前邏輯時間t 的修改可通過修改Dt 來實現。

  當需要使用物理時間單位來度量邏輯時間時, 可進行相應的轉換。轉換公式如下:


  其中t’為以us 為單位的邏輯時間, f 為CPU 時鐘震蕩頻率,該值可由windows 提供的API 來獲得。

  雖然CPU 的時鐘頻率很高,但由于獲取CPU 的計數值也需要消耗時間, 所以并不能達到CPU 時鐘級別的精度。經實驗表明,由該方法構造的邏輯時鐘可以達到1us 的精度。這可以滿足大多數場合的需要。

  3.2 握手機制

  對于網卡的緩存效應,通過增大兩次傳輸之間的時間間隔并不能有效解決。間隔小起不到隔離兩次傳輸的作用,間隔大,時鐘同步又將受到網絡的不平穩(wěn)性和操作系統進程調度的較大影響。而采用握手機制和阻塞的SOCKET套接字可有效解決這個問題。即在接收方收到信息后返回一個確認信息,而發(fā)送方只有在收到接收方的確認信息以后才發(fā)送下一條信息。這樣將兩次信息傳輸進行了隔離,使得接收方不會一下收到發(fā)送方的所有信息。

  3.3 時鐘同步的時間要求

  網絡的不平穩(wěn)性和操作系統進程調度的影響可能會造成時鐘同步的失效。但通過分析發(fā)現, 盡管存在這些因素, 實現高精度的時鐘同步是可能的。在下面表2 中列出了5 組數據(共測試了10 組,從中隨機選擇了5 組數據), 測試環(huán)境與表1 中數據測試環(huán)境是相同的, 同樣都采用了握手機制以避免網卡的緩存效應, 只是在測試過程中主時鐘向從時鐘發(fā)送兩組數據的間隔為10mS。

  從表中的數據可看出,除去一些差異較大的奇異值,測得的主從時鐘偏差是穩(wěn)定的, 大約幾十us 左右,這表明在這一段時間內完成0.1ms 精度時鐘同步是可以實現的。

表2 時鐘偏差測量( 單位: u s 間隔: 1 0ms )


  通過以上分析可知, 為了在網絡和操作系統相對平穩(wěn)的情況下完成時鐘同步操作,需要同步消耗的時間盡可能的短, 但是為了得到穩(wěn)定可靠的數據, 又需要有足夠的數據以供分析處理。

  3.4 數據處理算法

  為了從測量的數據中獲取有效的數據, 需要對數據進行處理。首先, 數據中存在一些差異較大的值, 這需要查找到這部分數據并予以過濾以消除影響。另外, 為了使剩余有效數據的方差最小, 還需要對這些數據進行擬合。

  假設Data [1 : N ]為測量的N 個數據, Data '[1 : M ]為過濾后的數據, 過濾處理過程可按下式進行。其中M = N - m - n。


  fm,n首先對數據進行排序, 這樣差異較大的值就排在了數組的兩邊, 剔除m 個小值和n 個大值, 即可實現對數據的過濾處理。m 和n 為可變參數,根據數據量的大小和數據的穩(wěn)定程度確定。

  由于數據Data '[1 : M ]趨向于一條水平直線,可利用直線y = C 對數據進行最小二乘直線擬合。在這里即是對這些數據進行均值處理。擬合可按下式進行。


  這樣從N 數據中獲得最佳擬合值C 。

  3.5 時鐘同步完整步驟

  根據以上的結論, 并結合PTP 協議時鐘同步機制,可設計出一種性能可靠的時鐘同步方案,具體流程如下圖所示。

  (1) 主時鐘在TM1[1]發(fā)送Sync 信息到從時鐘,并記錄下發(fā)送的準確時刻TM1[1],隨后在Fol lowUp 信息中將Sync信息發(fā)送的時刻TM1[1]發(fā)送到從時鐘。從時鐘接收到Syn c 信息后記錄下準確的接收時刻TS1[1],并返回確認信息OK。

  (2) 重復上述過程 N 次,這樣從時鐘得到N 個時鐘信息的發(fā)送和接收時刻TM1[1 : N]和 TS1[1 :N ],將TM1[1 : N]和 TS1[1 :N ]做差,得到主從時鐘的N 個偏移值Offset [1 : N ]。

  (3) 對Offset [1 : N ]進行過濾處理和直線擬合,得到一個對所有數據的最佳擬合值offset ,并利用該值對從時鐘進行偏移校正, 即圖中的A 階段。

  (4) 由從時鐘發(fā)送 DelayReq 信息到主時鐘,并記錄下準確的發(fā)送時刻TS2[1],主時鐘收到DelayReq 信息后記錄下準確的接收時刻TM2[1],并在隨后的DelayResp中將TM2[1]返回給從時鐘。

  (5) 重復第4 步中的過程M 次,從時鐘得到2M個時鐘信息, TM2[1 :N ]和TS2[1 : N],對兩個數組做差得到M 個主從時鐘的延時信息Delay [1 : M ] 。

  (6) 對延時信息 Delay [1 : M ] 進行過濾處理和直線擬合, 得到一個對延時信息的最佳擬合值delay , 并利用該值對從時鐘進行延時校正,即圖中的B 階段。

時鐘同步完整步驟

圖2 時鐘同步完整步驟。

  在網絡相對平穩(wěn), 計算機負載不大的情況下取M = N = 10,m = n = 2 即可滿足亞毫秒精度要求。

  經過以上六步, 即完成了一次主從時鐘同步, 為了避免時鐘累積誤差對系統同步精度的影響,可周期進行上述過程, 保持系統同步。

  4 實驗結果與分析

  測試中采用了4 臺配置相同的計算機, 采用交換機搭建成局域網, 其中1 臺作為主時鐘,其余作為從時鐘。

  邏輯時鐘采用了利用上述原理構造的高精度時鐘,CPU頻率為1.79553GHz,可利用式t,= t * 106 / f 轉換成以u s 為單位的邏輯時鐘。為了獲取一定數量的數據, 取M = N = 10,m = n = 2 。為了保持網絡處于一定的活躍狀態(tài), 在計算機上開啟F T P 下載, 交換機負載在5MB/ s 左右。

  測試與時鐘同步過程類似,在主從時鐘同步之后,由主時鐘發(fā)送Sync 信息到從時鐘,并在隨后的FollowUp信息中將Sync 信息發(fā)送的準確時刻TM 發(fā)送過來,從時鐘記錄下Sync 信息準確的接收時間TS 。因為此時時鐘已經同步,所以TS - TM 即為時間信息在傳輸中的延時delay T ,將此值delay T 與延時校正中延時信息的最佳擬合值delay 進行比較, 即可得出主從時鐘的同步效果。

  在表3 中列出了隨機選取的10 組數據。

表3 測試結果

測試結果

  從表3 測試結果中可以看出, 最大的絕對誤差為-25.3us,平均誤差僅為-4.23us。實現了主從時鐘0.1ms的同步精度。這表明通過握手機制、對數據進行過濾和直線擬合處理,有效解決了各種因素對時鐘同步精度造成的影響。

  5 結束語

  本文通過分析主從時鐘之間時間信息傳輸的特點,在PTP 時鐘同步機制的基礎之上,設計出了一種可以達到亞毫秒精度的時鐘同步方案。并且經過測試,該方案切實可行。

  目前該時鐘同步方法已成功在所在研究所的通用試驗仿真平臺中用于為平臺中傳輸的各種信息打時戳,以及虛擬串行通訊設備中用于協調消息傳輸。



關鍵詞: PTP協議 時鐘同步

評論


相關推薦

技術專區(qū)

關閉