• 
    

    
    

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

      ?

      基于mDNS協(xié)議的LXI網(wǎng)絡(luò)發(fā)現(xiàn)功能設(shè)計(jì)

      2012-08-07 07:52:44徐澤君黃建國郭艷輝馬敏
      電子測試 2012年2期
      關(guān)鍵詞:端口號(hào)數(shù)據(jù)包儀器

      徐澤君,黃建國,郭艷輝,馬敏

      (電子科技大學(xué)自動(dòng)化工程學(xué)院 四川成都 611731)

      0 引言

      基于LXI總線的儀器已經(jīng)成為當(dāng)前電子測試領(lǐng)域研究的熱門方向。LXI(LAN eXtensions for Instrumentiation)是以著名的工業(yè)標(biāo)準(zhǔn)以太網(wǎng)(Ethernet)技術(shù)為基礎(chǔ),構(gòu)成了一種適用于自動(dòng)測試系統(tǒng)的新一代模塊化儀器平臺(tái)標(biāo)準(zhǔn)[4]。利用成熟的計(jì)算機(jī)網(wǎng)絡(luò)技術(shù),可以很方便地組建基于LXI總線的分布式測試系統(tǒng)。然而由此帶來的問題就是主控制器如何快速簡便地發(fā)現(xiàn)網(wǎng)絡(luò)上的儀器設(shè)備。

      在LXI 1.1標(biāo)準(zhǔn)中,LXI標(biāo)準(zhǔn)要求所有LXI儀器必須支持VXI-11網(wǎng)絡(luò)發(fā)現(xiàn)協(xié)議,該協(xié)議以O(shè)NC/RPC為基礎(chǔ),解決了分布式測試系統(tǒng)中儀器的網(wǎng)絡(luò)發(fā)現(xiàn)問題[5]。但是隨著測試系統(tǒng)的不斷擴(kuò)充升級,該協(xié)議的缺點(diǎn)也日益顯現(xiàn)出來。VXI-11協(xié)議屬于一種被動(dòng)的查詢模式,系統(tǒng)內(nèi)的儀器需要等待主控制器發(fā)來的查詢信息,然后返回應(yīng)答信息,這樣主控制器才能發(fā)現(xiàn)儀器存在于本系統(tǒng)中,如果中途有新的儀器加入系統(tǒng),主控制器并不能立即感應(yīng)到新儀器,只有重新查詢才能發(fā)現(xiàn)新的儀器設(shè)備[6],而且當(dāng)系統(tǒng)中儀器較多時(shí),這樣的查詢過程會(huì)很慢,會(huì)影響測試系統(tǒng)整體的測試效率。

      針對以上VXI-11協(xié)議的不足,LXI聯(lián)盟在 1.1之后的版本中提出了新的網(wǎng)絡(luò)發(fā)現(xiàn)協(xié)議——基于mDNS的網(wǎng)絡(luò)發(fā)現(xiàn)協(xié)議。通過mDNS協(xié)議,LXI設(shè)備可以進(jìn)行更加高效,便捷的發(fā)現(xiàn)操作。

      1 mDNS協(xié)議

      mDNS是由IETF Zeroconf和DNS 擴(kuò)展工作組成員共同努力的成果,mDNS對DNS做了最小化的更改,能夠?yàn)楸镜匦⌒途W(wǎng)絡(luò)提供類似DNS的服務(wù)。mDNS協(xié)議使用和DNS協(xié)議一樣的編程接口,運(yùn)行語義和數(shù)據(jù)包格式[3]。DNS協(xié)議是一種標(biāo)準(zhǔn)的網(wǎng)絡(luò)協(xié)議,mDNS協(xié)議只是增加了DNS協(xié)議所沒有的多播模式,因此開發(fā)基于mDNS協(xié)議的程序比較簡單。

      在本地組建的小型網(wǎng)絡(luò)內(nèi),比如分布式的測試系統(tǒng),如果想要實(shí)現(xiàn)域名解析的功能,需要為該網(wǎng)絡(luò)配備一臺(tái)DNS服務(wù)器,這樣做不僅成本昂貴而且需要的技術(shù)復(fù)雜,因此mDNS的出現(xiàn)彌補(bǔ)了這一缺陷。使用mDNS技術(shù)使網(wǎng)絡(luò)內(nèi)每臺(tái)設(shè)備都具備DNS服務(wù)器的功能,從而不必為網(wǎng)絡(luò)單獨(dú)配備一臺(tái)DNS服務(wù)器,大大節(jié)約了成本。

      mDNS協(xié)議是一種端到端的名稱服務(wù),當(dāng)設(shè)備加入網(wǎng)絡(luò)時(shí),主動(dòng)向多播地址(224.0.0.251)和端口號(hào)(5353)通告自己的主機(jī)名和能夠提供的服務(wù)[3],這樣使得主控器和其他設(shè)備能夠立刻感應(yīng)到新的設(shè)備。

      2 DNS-SD協(xié)議

      DNS-SD協(xié)議是一種以mDNS協(xié)議為基礎(chǔ)的服務(wù)發(fā)現(xiàn)協(xié)議,通過該協(xié)議LXI設(shè)備可以向本地網(wǎng)絡(luò)通告自身所能提供的服務(wù)名稱。DNS-SD協(xié)議利用DNS協(xié)議中的PTR、SRV和TXT記錄來聲明所能提供的服務(wù),它工作在單播和多播兩種模式下[1]。SRV記錄通告發(fā)現(xiàn)的主機(jī)名和端口號(hào),PTR記錄保存LXI設(shè)備的服務(wù)名稱。通過PTR記錄查找一個(gè)具體的服務(wù)類型列表來實(shí)現(xiàn)服務(wù)發(fā)現(xiàn)的功能,所以僅通過查找?guī)в蟹?wù)類型標(biāo)簽的PTR記錄就可以找到相應(yīng)的服務(wù)。PTR記錄僅包含一條信息,那就是服務(wù)名稱,和SRV記錄的命名方式類似。SRV資源記錄把服務(wù)名字映射為提供服務(wù)的服務(wù)器名字,其中包含了服務(wù)器的域名和端口號(hào)[2]。

      在某些情況下網(wǎng)絡(luò)發(fā)現(xiàn)需要獲得除了IP地址和端口號(hào)之外的更多信息,TXT記錄就是用來保存域名的附加文本信息,其內(nèi)容要按照一定的格式編寫。TXT記錄里名稱和值成對出現(xiàn),最大長度不超過255個(gè)字節(jié),并且任何服務(wù)名稱都有一個(gè)“txtvers”記錄,該記錄指明版本號(hào),總是放在首位,例如“txtvers=1”。TXT記錄的結(jié)尾沒有結(jié)束符,包含的字節(jié)總數(shù)要少于1300,以適應(yīng)網(wǎng)絡(luò)單幀所能發(fā)送的字節(jié)數(shù)。特別的是主機(jī)名和端口號(hào)必須保存在SRV記錄中,不能“key=value”的形式存在于TXT記錄中。圖1是TXT記錄的一種組成形式[3]:

      圖1 TXT記錄的組成形式

      其中附加信息之前的數(shù)字表示的是附加信息的字符串長度。

      LXI協(xié)議要求支持DNS-SD協(xié)議的設(shè)備至少可以通告如圖2所示的服務(wù)信息。

      其中針對HTTP服務(wù),TXT關(guān)鍵字部分的內(nèi)容是:

      _http._tcp txtvers=1 path=/

      針對LXI服務(wù),TXT關(guān)鍵字部分的內(nèi)容是:

      LXI服務(wù)的TXT記錄中保存的信息有生產(chǎn)廠商,型號(hào),串號(hào),固件版本號(hào),這與向儀器發(fā)送*IDN?命令之后返回的信息是一致的。

      圖2 LXI基本服務(wù)

      3 mDNS協(xié)議程序設(shè)計(jì)

      mDNS實(shí)現(xiàn)由兩部分組成,一部分是上位機(jī)mDNS客戶端,另一部分是儀器內(nèi)部mDNS 服務(wù)器端。

      3.1 上位機(jī)mDNS客戶端

      上位機(jī)mDNS客戶端的作用是實(shí)現(xiàn)發(fā)現(xiàn)網(wǎng)絡(luò)上的儀器和進(jìn)行資源管理,功能類似于Agilent公司提供的IO Libraries。APPLE公司在mDNS協(xié)議的實(shí)現(xiàn)應(yīng)用上已經(jīng)比較成熟,其mDNS協(xié)議的實(shí)現(xiàn)被稱為Bonjour。支持Bonjour的設(shè)備在網(wǎng)絡(luò)中自動(dòng)傳播它們自己的服務(wù)信息并聆聽其它設(shè)備的服務(wù)信息,Bonjour使局域網(wǎng)中的系統(tǒng)和服務(wù)在沒有網(wǎng)絡(luò)管理員的情況下很容易被找到。

      Bonjour顯示局域網(wǎng)內(nèi)支持組播域名協(xié)議的設(shè)備和應(yīng)用的名稱,采用multicast DNS來解決區(qū)域網(wǎng)內(nèi)設(shè)備命名沖突。目前Bonjour可以支持多種系統(tǒng)平臺(tái),包括Windows、MAC OS X、Linux和VxWorks等。Linux中廣泛使用的mDNS協(xié)議實(shí)現(xiàn)是Avahi,同樣是一種zeroconf協(xié)議的實(shí)現(xiàn)。

      在這里使用APPLE公司的軟件Bonjour(Windows版本)作為上位機(jī)mDNS客戶端,該軟件不僅能夠?qū)崿F(xiàn)網(wǎng)絡(luò)發(fā)現(xiàn)主機(jī)名和服務(wù)名,而且會(huì)在IE瀏覽器下安裝一個(gè)Bonjour插件,該插件可以自動(dòng)顯示網(wǎng)絡(luò)中支持mDNS協(xié)議的并提供WEB服務(wù)的設(shè)備主機(jī)名。

      瀏覽器左邊的列表框用來顯示網(wǎng)絡(luò)中儀器的主機(jī)名。當(dāng)支持mDNS協(xié)議的儀器加入到網(wǎng)絡(luò)中時(shí),列表中就會(huì)自動(dòng)顯示儀器的主機(jī)名。

      3.2 儀器內(nèi)部mDNS服務(wù)器端

      儀器內(nèi)部mDNS服務(wù)器的主要功能是向多播地址224.0.0.251和端口號(hào)5353發(fā)送數(shù)據(jù)包聲明本地的主機(jī)名和服務(wù)名,并且解決主機(jī)名和服務(wù)器名沖突的問題。程序流程圖如圖3所示。

      圖3 服務(wù)器端程序設(shè)計(jì)流程圖

      在儀器啟動(dòng)時(shí),mDNS服務(wù)器端程序?qū)@取本地主機(jī)名、服務(wù)器名、IP地址和端口號(hào)等信息,建立本地DNS數(shù)據(jù)庫,然后組建mDNS數(shù)據(jù)包,主機(jī)名和端口號(hào)包含在SRV記錄中,服務(wù)名稱包含在PTR記錄中,TXT記錄包含生產(chǎn)廠商等附加信息。組建完數(shù)據(jù)包之后向多播地址224.0.0.251和5353端口發(fā)送該數(shù)據(jù)包,本機(jī)的儀器信息將會(huì)在本地局域網(wǎng)內(nèi)傳播,凡是加入到該多播組的設(shè)備都能收到該數(shù)據(jù)包。主控制器收到儀器發(fā)送過來的數(shù)據(jù)包之后就能夠提取出儀器的主機(jī)名和IP地址等信息,進(jìn)而通過這些信息獲取儀器信息。

      為了避免網(wǎng)絡(luò)中的主機(jī)名發(fā)生沖突,引起設(shè)備混淆。在聲明本地信息的同時(shí),儀器還在監(jiān)聽5353端口,看是否收到其他設(shè)備發(fā)來的具有相同格式信息的數(shù)據(jù)包。如果收到其他設(shè)備發(fā)來的數(shù)據(jù)包,那將數(shù)據(jù)包內(nèi)的儀器的主機(jī)名提取出來,與本地的主機(jī)名進(jìn)行比較,假如一樣,那就發(fā)生了名字沖突,本地的設(shè)備將會(huì)修改本機(jī)的名稱,修改的方法是在原來名稱的后面加上數(shù)字來加以區(qū)別,例如本地主機(jī)名為“mydevice”,那將會(huì)修改為“mydevice_1”,這樣就避免了主機(jī)名沖突。

      如果本地主機(jī)名因?yàn)槊Q沖突而改變,那么該主機(jī)名將不會(huì)輕易再改變,即使在儀器重啟之后,本地主機(jī)名仍然是修改后的名稱。除非用戶重新設(shè)置主機(jī)名,或者啟動(dòng)LAN配置重啟機(jī)制,那么主機(jī)名將會(huì)恢復(fù)到出廠設(shè)置的主機(jī)名。如果服務(wù)名稱也由于名稱沖突而改變,其處理方法與處理主機(jī)名沖突的方法一致。

      如果監(jiān)聽端口沒有收到其它儀器發(fā)送過來的mDNS數(shù)據(jù)包,那么該儀器將繼續(xù)組建包含本機(jī)信息的mDNS數(shù)據(jù)包并且持續(xù)向多播地址發(fā)送。用戶需要停止mDNS功能時(shí)候,可以讓儀器在停止之前發(fā)送停止數(shù)據(jù)包,告知網(wǎng)絡(luò)上的其他設(shè)備本機(jī)將停止提供mDNS服務(wù)功能,這樣主控器收到停止數(shù)據(jù)包后將會(huì)把列表中的儀器主機(jī)名刪除。如果用戶重新啟用儀器的mDNS服務(wù),主控制器的列表中就會(huì)重新出現(xiàn)儀器的主機(jī)名。

      4 測試結(jié)果

      為了與DNS名稱解析域相區(qū)分,運(yùn)行mDNS協(xié)議的設(shè)備都位于“.local”域中,表明要訪問的設(shè)備在本地網(wǎng)絡(luò)中。如果用戶想要使用主機(jī)名來訪問設(shè)備主頁,那么用戶可以在瀏覽器的地址欄輸入主機(jī)名加“.local”的方式來訪問。假如設(shè)備主機(jī)名為“mydevice”,那么就可以在IE瀏覽器地址欄輸入“mydevice.local”,然后瀏覽器同樣會(huì)向多播地址224.0.0.251和端口號(hào)5353發(fā)送DNS請求數(shù)據(jù)包,然后儀器端的mDNS服務(wù)器程序就會(huì)解析該請求,并且將儀器的IP地址和端口號(hào)返回給瀏覽器,這樣瀏覽器就可以訪問設(shè)備主頁了。

      打開主控電腦的IE瀏覽器,將主控電腦與LXI設(shè)備同時(shí)連接到交換機(jī)上,打開設(shè)備,IE瀏覽器內(nèi)的Bonjour插件的窗口上就會(huì)自動(dòng)顯示網(wǎng)絡(luò)中支持mDNS協(xié)議并且提供WEB服務(wù)的設(shè)備名。如圖4所示。

      圖4 Bonjour列表

      在上圖中,雙擊Bonjour列表里的設(shè)備名“UESTC_LXI”,則瀏覽器自動(dòng)去訪問“uestc_lxi.local”,并且打開設(shè)備的主頁。

      實(shí)現(xiàn)HTTP服務(wù)發(fā)現(xiàn)功能還可以通過另外一種形式,那就是可以在命令行提示符下輸入命令[7]:

      dns-sd-Z _http._tcp local

      通過此命令可以看到mDNS數(shù)據(jù)包中各種記錄的詳細(xì)內(nèi)容,如圖5所示。

      圖5 HTTP服務(wù)發(fā)現(xiàn)結(jié)果

      同樣的方法,在命令行下輸入命令:

      dns-sd-Z _lxi._tcp local

      通過此命令來發(fā)現(xiàn)LXI服務(wù),返回的儀器信息與向儀器發(fā)送*IDN?命令所返回的信息是一致的。如圖6所示。

      圖6 LXI服務(wù)發(fā)現(xiàn)結(jié)果

      5 小結(jié)

      VXI-11協(xié)議是LXI儀器的基本的網(wǎng)絡(luò)發(fā)現(xiàn)協(xié)議,mDNS協(xié)議的出現(xiàn)彌補(bǔ)了VXI-11協(xié)議速度慢,更新不及時(shí)的缺點(diǎn),實(shí)現(xiàn)了快速簡潔的網(wǎng)絡(luò)發(fā)現(xiàn)功能。本文基于LXI 1.3版本對mDNS協(xié)議的規(guī)定,實(shí)現(xiàn)了HTTP服務(wù)和LXI服務(wù)名的發(fā)現(xiàn)功能,并且解決了名稱沖突問題。在組建復(fù)雜的LXI測試系統(tǒng)中,mDNS協(xié)議將會(huì)在網(wǎng)絡(luò)發(fā)現(xiàn)方面發(fā)揮很好的作用。

      [1]王巖,王雄,曾鵬.零配置網(wǎng)絡(luò)協(xié)議的研究[J].計(jì)廣東通信技術(shù),20075,3(12):1685-1687.

      [2]王彪. LXI關(guān)鍵技術(shù)研究[D].哈爾濱:哈爾濱工業(yè)大學(xué),2009.

      [3]Ashley Butterworth,Matthew Xavier Mora.Device Discovery with mDNS and DNS-SD [P].Apple Inc,2009.

      [4]馬敏,陳光礻禹.一種基于以太網(wǎng)的新型儀器平臺(tái)——LXI[J].電測與儀表,2006,43(1):57-59.

      [5]LXI Standard Rev.1.3[S]. LXI Consortium, Inc.,October30.2008.

      [6]鐘世春,馬敏,王厚軍. LXI儀器中VXI-11協(xié)議的研究與實(shí)現(xiàn)[J].電子科技大學(xué)學(xué)報(bào),2010,39(4):65-66.

      [7]趙濤,于月芬,李建剛. LXI總線網(wǎng)絡(luò)發(fā)現(xiàn)機(jī)制研究[J].電測與儀表,2008,45(510):31-34.

      猜你喜歡
      端口號(hào)數(shù)據(jù)包儀器
      《現(xiàn)代儀器與醫(yī)療》2022年征訂回執(zhí)
      《現(xiàn)代儀器與醫(yī)療》2022年征訂回執(zhí)
      在Docker容器中安裝應(yīng)用程序
      SmartSniff
      我國古代的天文儀器
      淺談以java為基礎(chǔ)的Socket通信簡介及實(shí)現(xiàn)
      青春歲月(2017年5期)2017-04-20 18:34:23
      基于Libpcap的網(wǎng)絡(luò)數(shù)據(jù)包捕獲器的設(shè)計(jì)與實(shí)現(xiàn)
      Winsock編程在《計(jì)算機(jī)網(wǎng)絡(luò)基礎(chǔ)》教學(xué)中的應(yīng)用
      基于Android系統(tǒng)的互動(dòng)展示APP的研究與設(shè)計(jì)
      視覺注意的數(shù)據(jù)包優(yōu)先級排序策略研究
      建水县| 钟祥市| 宝鸡市| 读书| 宜春市| 自贡市| 垣曲县| 恩平市| 彩票| 灯塔市| 舟山市| 信宜市| 辛集市| 宝山区| 卢龙县| 格尔木市| 阜平县| 循化| 勃利县| 沙湾县| 丰县| 栾城县| 津南区| 长宁区| 那坡县| 嵊泗县| 永兴县| 栖霞市| 瑞安市| 巴青县| 新津县| 咸丰县| 舒城县| 惠水县| 民权县| 塔城市| 苏尼特左旗| 台湾省| 易门县| 云和县| 额济纳旗|