吳鵬1,華宇,張旭海1
?
NTP服務(wù)器的響應(yīng)閾值測試軟件設(shè)計
吳鵬1,2,3,華宇1,2,張旭海1,2,3
(1. 中國科學(xué)院 國家授時中心,西安 710600;2. 中國科學(xué)院 精密導(dǎo)航定位與定時技術(shù)重點實驗室,西安 710600;3. 中國科學(xué)院大學(xué),北京 100049)
時間同步技術(shù)是現(xiàn)代網(wǎng)絡(luò)應(yīng)用的核心技術(shù),網(wǎng)絡(luò)時間協(xié)議NTP(network time protocol)是時間同步的重要工具。在廣域網(wǎng)和局域網(wǎng)中,處在較高層級或重要節(jié)點的NTP服務(wù)器對整個網(wǎng)絡(luò)的時間同步都起到了重要作用,對服務(wù)器的運(yùn)行狀態(tài)進(jìn)行評估則變得尤為重要。設(shè)計了一款檢測NTP服務(wù)器響應(yīng)能力的軟件,并進(jìn)行了測試。對測試結(jié)果的分析證實了該軟件的有效性和實用性。
時間同步;NTP;響應(yīng)閾值測試
網(wǎng)絡(luò)時間協(xié)議NTP(network time protocol)是設(shè)備在互聯(lián)網(wǎng)中進(jìn)行時間同步的標(biāo)準(zhǔn)協(xié)議[1-2],它的用途是將計算機(jī)的時間同步到某些時間標(biāo)準(zhǔn),適應(yīng)在各種規(guī)模、速度和連接通路狀況的互聯(lián)網(wǎng)環(huán)境下工作,因此NTP是公認(rèn)的互聯(lián)網(wǎng)上的時間同步工具。然而,隨著NTP服務(wù)需求的增加[3],對NTP服務(wù)器的性能提出了更高的要求,也需要對NTP服務(wù)器性能進(jìn)行合理的評估。本文通過軟件設(shè)計實現(xiàn)了對NTP服務(wù)器單位時間內(nèi)響應(yīng)閾值的測試與評估。
NTP是由美國Delaware大學(xué)的D. L. Mills教授設(shè)計提出的[4]。NTP基于UDP報文傳輸,使用UDP端口號為123,在其報文中包含4個重要的時間戳,,,,其中,分別為客戶端發(fā)送和接收報文的時間點(以客戶端時間為參照),,分別為服務(wù)器接收和發(fā)送報文的時間點(以服務(wù)器時間為參照)[5]。其工作原理如圖1所示。為原始時間戳(Originate timestamp),為接收時間戳(Receive timestamp),為傳送時間戳(Transmit timestamp),為到達(dá)時間戳(Destination timestamp),為數(shù)據(jù)包上行傳送時延,為數(shù)據(jù)包下行傳送時延,為數(shù)據(jù)包往返傳送時延,為客戶端與服務(wù)器之間的時間偏差。
圖1 客戶端/服務(wù)器方式下NTP工作原理
假設(shè)數(shù)據(jù)包上行與下行時延相等,即可得
。 (2)
NTP報文中,Leap indicator(LI)為閏秒指示,長度為2 bits,值為“11”時警告時間未被同步,其他數(shù)值時本身不做處理。Version number(VN)為NTP版本號,長度為3 bits。目前最高版本為版本4,但是還沒有一個正式描述這個版本的RFC文件。本設(shè)計基于版本3。Mode為NTP的工作模式,長度為3bits,在客戶端/服務(wù)器模式中,當(dāng)客戶端發(fā)送請求時設(shè)定為3,服務(wù)器回復(fù)請求時設(shè)定為4;在廣播/組播模式中,服務(wù)器設(shè)定為5。Stratum為系統(tǒng)時鐘的層數(shù),取值范圍為1~16,數(shù)值越小表示層數(shù)越高,即時間的準(zhǔn)確度越高。Poll為輪詢時間,設(shè)定相繼兩個消息的最大時間間隔,單位為秒,以2的冪數(shù)表示,理論上的范圍為4(16 s)~14(16 284 s),大多數(shù)實際應(yīng)用范圍為6(64 s)~10(1 024 s)[6]。Precision為系統(tǒng)時間精度,表示本地時鐘的精確性。Root delay為根延遲,表示報文從本地到參考時鐘源的往返時間。Root dispersion為根差量,表示本地時鐘相對于主參考時鐘源的最大時間偏差。Reference identifier為參考時鐘標(biāo)識,識別特殊的參考時間源。Reference timestamp為參考時間戳,表示系統(tǒng)最后一次被設(shè)定或校正的時間。Originate timestamp為原始時間戳,表示NTP報文離開客戶端時客戶端的本地時間。Receive timestamp為接收時間戳,表示NTP報文達(dá)到服務(wù)器時服務(wù)器的本地時間。Transmit timestamp為發(fā)送時間戳,表示NTP報文離開服務(wù)器時服務(wù)器的本地時間。Authenticator為驗證信息。NTP報文格式如圖2所示。
LIVNModeStratum(8 bits)Poll(8 bits)Precision(8 bits) Root delay (32 bits) Root dispersion(32 bits) Reference identifier(32 bits) Reference timestamp(64 bits) Originate timestamp(64 bits) Receive timestamp(64 bits) Transmit timestamp(64 bits) Authenticator(optional 96 bits)
NTP服務(wù)器的性能主要體現(xiàn)在短時間內(nèi)對大量訪問請求的應(yīng)答能力??梢酝ㄟ^軟件模擬這一過程,主要流程為在短時間內(nèi)創(chuàng)建并向服務(wù)器發(fā)送大量NTP請求包,同時監(jiān)測服務(wù)器的響應(yīng),根據(jù)發(fā)包數(shù)量與響應(yīng)數(shù)量定量地確定服務(wù)器的性能指標(biāo)。下面介紹軟件具體實現(xiàn)方法。
軟件采用C語言編寫,調(diào)用C標(biāo)準(zhǔn)庫,運(yùn)行于2.6內(nèi)核的Linux平臺上。軟件通過多線程方式在某一時間段內(nèi)對目標(biāo)NTP服務(wù)器發(fā)出若干個NTP請求,并接收其返回的數(shù)據(jù)包,通過返回數(shù)據(jù)包形式判斷通信成功與否,以此方式探測目標(biāo)服務(wù)器的抗壓能力,結(jié)束后返回在設(shè)定時間內(nèi)產(chǎn)生的鏈接數(shù)與響應(yīng)數(shù),實現(xiàn)對目標(biāo)服務(wù)器抗壓能力的評估。
軟件主流程如圖3所示。
圖3 軟件主流程
按照NTP協(xié)議構(gòu)建數(shù)據(jù)包,建立UDP通信,程序內(nèi)限定發(fā)送時間為1 s,在限定時間內(nèi)通過循環(huán)不斷創(chuàng)建線程,超出限定時間后停止創(chuàng)建線程。
創(chuàng)建新線程的流程如圖4所示。
圖4 創(chuàng)建新線程流程
通過線程向目標(biāo)服務(wù)器發(fā)送NTP包,并采用阻塞超時的方式等待響應(yīng),收到有效響應(yīng)返回為有效結(jié)果,超時返回為無效結(jié)果。
軟件輸入及輸出的命令行如圖5所示。
圖5 請求輸入命令行
命令格式為NTP_Stress_Test[IP Address][Connection Number],如圖6所示。
圖6 結(jié)果輸出命令行
結(jié)果顯示在End time與Start time之間的最大有效連接數(shù)與創(chuàng)建的線程數(shù)。
本文所述的軟件,其設(shè)計意義在于測定服務(wù)器在實際工作中的響應(yīng)閾值,若要求其對報文的處理能力保持正常,應(yīng)將用戶數(shù)量控制在某一個閾值之下,或者通過更換硬件設(shè)備加大響應(yīng)閾值。由于測試環(huán)境中構(gòu)建的鏈接關(guān)系越簡單直接,越能減少鏈路環(huán)境對應(yīng)答次數(shù)的影響,因此測試環(huán)境的設(shè)備連接關(guān)系較為簡單,如圖7所示。
測試平臺??????路由器??????被測服務(wù)器
測試程序運(yùn)行于一臺安裝Linux系統(tǒng),包含4GB系統(tǒng)內(nèi)存的主機(jī)上,設(shè)置系統(tǒng)線程棧空間最大值為256kbytes。被測對象為由Microsemi公司生產(chǎn)的型號為SyncServer S350的NTP服務(wù)器,該服務(wù)器采用 OCXO(oven controlled crystal oscillator恒溫晶體振蕩器)保持時鐘準(zhǔn)確,可以采用GPS衛(wèi)星進(jìn)行校時。路由器采用H3C公司的er3100,該路由器傳輸速率為10/100mbit/s,采用500MHz主頻的CPU和64MB內(nèi)存。
實驗中使用該軟件對NTP服務(wù)器進(jìn)行了3組測試,每組測試為1 s內(nèi)對服務(wù)器發(fā)送固定數(shù)量的服務(wù)請求并記錄下有效響應(yīng)次數(shù),每組連續(xù)采樣20次,每次間隔10 s。3組測試的請求數(shù)量分別為500次/s、5 000次/s、10 000次/s。每組測試獲得的響應(yīng)次數(shù)數(shù)據(jù)分別如圖8,圖9和圖10所示。
圖10 請求數(shù)為10 000次/s的服務(wù)器響應(yīng)狀態(tài)
圖8至圖10中,橫坐標(biāo)代表采樣次數(shù),縱坐標(biāo)代表收到NTP服務(wù)器有效響應(yīng)次數(shù)。多組測試結(jié)果表明,當(dāng)訪問并發(fā)數(shù)較小的情況下,被測NTP服務(wù)器在單位時間內(nèi)返回的有效響應(yīng)次數(shù)能夠穩(wěn)定地維持在90%左右,然而當(dāng)測試并發(fā)數(shù)設(shè)置進(jìn)一步增加后,服務(wù)器的抗壓能力閾值最終被定格在每秒5 500次左右。
經(jīng)多次實驗及結(jié)果分析得出,在測試過程中每組數(shù)據(jù)丟失的響應(yīng)次數(shù),與鏈路及連接設(shè)備的復(fù)雜程度有關(guān)。隨著復(fù)雜程度增加,即在實驗中增加路由器的個數(shù)甚至通過連接廣域網(wǎng)進(jìn)行測試,網(wǎng)絡(luò)通信的性能會隨之降低,響應(yīng)丟失的比率也隨之增高。因此使用該軟件進(jìn)行測試時,連接關(guān)系應(yīng)保持相對的簡單。
本論文在分析NTP協(xié)議的基礎(chǔ)上,介紹了一種NTP服務(wù)器響應(yīng)閾值測試的方法,并通過程序設(shè)計實現(xiàn)并對時間服務(wù)器進(jìn)行了測試和分析。通過實際運(yùn)行表明該軟件有效,滿足測試需求,并為進(jìn)一步全面評估NTP服務(wù)器的服務(wù)質(zhì)量提供了參考依據(jù)。
[1] MILLS D L. Network time protocol (Version 3) specification[S]. United States: Implementation and Analysis-RFC1305,1992.
[2] MILLS D L. Internet time synchronization: the network time protocol[J]. IEEE Transaction on Communications, 1991, 39(10): 1482-1493.
[3] 費振豪. 基于NTP的地鐵綜合監(jiān)控系統(tǒng)時鐘同步技術(shù)的研究[D]. 西安: 西南交通大學(xué), 2004.
[4] MILLS D L. Adaptive hybrid clock discipline algorithm for the network time protocol[J]. IEEE/ACM Transactions on Networking, 1998, 6(5): 505-514.
[5] 趙英, 劉冬梅, 郭樹印, 等. 基于NTP的網(wǎng)絡(luò)時間服務(wù)測量[J]. 計算機(jī)工程與應(yīng)用, 2006(S1): 99-100, 119.
[6] 宋妍, 朱爽. 基于NTP的網(wǎng)絡(luò)時間服務(wù)系統(tǒng)的研究[J]. 計算機(jī)工程與應(yīng)用, 2003, 36(39): 147-149, 152.
Design of software for testing response threshold of NTP server
WU Peng1,2,3, HUA Yu1,2, ZHANG Xu-hai1,2,3
(1. National Time Service Center, Chinese Academy of Sciences, Xi’an 710600, China; 2. Key Laboratory of Precision Navigation and Timing Technology, National Time Service Center, Chinese Academy of Sciences, Xi’an 710600, China; 3. University of Chinese Academy of Sciences, Beijing 100049, China)
Time Synchronization Technology is the core technique of modern network application, and NTP (network time protocol) is an important tool for time synchronization. In LAN and WAN, the NTP server at high level or key node plays an important role in time synchronization, so the assessment for the state of server is particularly important.A software is designed to test the response capability of NTP server, and the test is completed. The analysis of the test results confirms the validity and practicability of the software.
time synchronization; NTP; response threshold test
TP393
A
1674-0637(2017)01-0036-07
10.13875/j.issn.1674-0637.2017-01-0036-07
2016-05-16
中國科學(xué)院“西部之光”人才培養(yǎng)計劃資助項目(2012LH01)
吳鵬,男,碩士,主要從事NTP網(wǎng)絡(luò)時間服務(wù)器授時質(zhì)量的測量與評估的研究。