引言 WDTU是一種實(shí)現無(wú)線(xiàn)數據傳輸的終端設備,目前在工業(yè)控制、監控、安保等領(lǐng)域應用廣泛,F有的WDTU實(shí)現了將采集到的數據通過(guò)GPRS/CDMA網(wǎng)絡(luò )接入到Internet,最終將數據傳送到以太網(wǎng)內的數據中心。但是對數據中心有特別的要求:該數據中心必須具有公網(wǎng)的IP或是被上一級路由器/交換機映射成具有特定的端口。這使該設備的適用要求提高,降低了產(chǎn)品的適用范圍。為了提高產(chǎn)品的實(shí)用性,更加方便用戶(hù)使用,筆者在原有系統上,利用ASIX OS豐富的協(xié)議資源,對當中的DNS協(xié)議部分作適當的移植和修改,基于A(yíng)SIX OS設計和添加了DNS功能。本文將重點(diǎn)介紹DNS實(shí)現的相關(guān)內容,其他部分只作簡(jiǎn)單說(shuō)明。 1 背景知識 WDTU系統主要有處理器、串口、電源、無(wú)線(xiàn)模塊、以太網(wǎng)口等組成。以太網(wǎng)口是為了功能擴展的需要而設置的,便于接入以太網(wǎng)。在本設計中只簡(jiǎn)單說(shuō)明以太網(wǎng) DNS,目的是為了與無(wú)線(xiàn)設備的DNS功能相區別。本設計重點(diǎn)討論無(wú)線(xiàn)DNS功能的實(shí)現。系統的硬件結構如圖1所示。 ![]() UART2是數據接收端口,與外設數據源設備相連。而UART1是作為無(wú)線(xiàn)模塊的接口,與無(wú)線(xiàn)模塊的子板相連。系統的工作原理是:系統上電啟動(dòng)以后,使用 PPP協(xié)議撥號上線(xiàn),與運營(yíng)商服務(wù)中心建立連接,然后服務(wù)中心的網(wǎng)關(guān)連接到指定IP或域名的數據中心主機上,此時(shí)就可以實(shí)現UART 2與以太網(wǎng)上的數據中心的數據傳輸。ASIX OS是基于μITRON3.0,為16/32位Garfield微處理器家族開(kāi)發(fā)的實(shí)時(shí)操作系統。它包含了豐富的操作系統內核和協(xié)議簇的多種API,能滿(mǎn)足用戶(hù)基本的網(wǎng)絡(luò )應用需求。 2 DNS功能的設計方案 DNS(Domain Name Server)用于實(shí)現Internet上IP地址與域名的一一對應。域名使用方便,而計算機內部只處理IP地址,所以必須由域名服務(wù)器來(lái)進(jìn)行兩者的轉換,這一過(guò)程就稱(chēng)為域名解析。本設計中使用的是花生殼(Peanut Hull)的一款完全免費的客戶(hù)端軟件,它提供了桌面域名管理和動(dòng)態(tài)域名解析的功能。首先在花生殼網(wǎng)站上注冊域名,然后在主機上運行該客戶(hù)端軟件,這樣就將用戶(hù)注冊的域名與該主機的IP地址綁定,形成映射。該軟件實(shí)現了特定的域名與變化的主機IP地址間的實(shí)時(shí)映射,為網(wǎng)外設備方便地訪(fǎng)問(wèn)該主機提供了可能。 由DNS協(xié)議的要求知道:一個(gè)域名服務(wù)器負責一個(gè)或多個(gè)區域,而每個(gè)區域的管理者必須為該區域提供一個(gè)主域名服務(wù)器和至少一個(gè)從域名服務(wù)器,且兩者必須是獨立和冗余的。在實(shí)際使用中,由于受條件、實(shí)用性、成本等的限制,不使用主、從服務(wù)器。如果直接接入以太網(wǎng),則沒(méi)有可用的DNS服務(wù)器,那么就使得第一級的域名解析不能進(jìn)行,從而使最終的域名解析失敗。而本設計是基于無(wú)線(xiàn)網(wǎng)絡(luò )的,網(wǎng)絡(luò )接口層是通過(guò)串行通信協(xié)議:PPP(點(diǎn)對點(diǎn)協(xié)議)接入運營(yíng)商的服務(wù)中心,再接入互聯(lián)網(wǎng)。 PPP協(xié)議本身分為3個(gè)子協(xié)議:LCP(Link ControlProtocol)、NCP(Net Control Protocol)、PPP擴展協(xié)議(用于身份驗證),而與網(wǎng)絡(luò )設置相關(guān)的主要是NCP協(xié)議。NCP協(xié)議用于終端設備連接到運營(yíng)商的中心服務(wù)器,若終端設置了固定的有效IP,則終端將設定的IP封裝在配置請求數據包里,告知運營(yíng)商端的服務(wù)器,建立連接;否則將IP設為全0,則服務(wù)器端隨機為WDTU終端設備分配一個(gè)動(dòng)態(tài)IP,該IP每次復位后將改變。NCP的一個(gè)獨特之處是,它可以向服務(wù)器申請動(dòng)態(tài)分配DNS服務(wù)器。由于沒(méi)有人工添加DNS解析的服務(wù)器,所以正是利用NCP的該功能,獲得實(shí)現DNS功能必需的DNS解析服務(wù)器。這也正是本設計的一大特點(diǎn)。 3 DNS功能的實(shí)現 3.1 必要的初始化 系統首先要完成一系列必要的初始化,包括協(xié)議棧和設備的初始化。對DNS的初始化主要包括:一,創(chuàng )建DNS服務(wù)器鏈表(服務(wù)器鏈表的大小可以根據實(shí)際需要開(kāi)辟,本設計中使用5個(gè)),此時(shí)該鏈表是空的;二,創(chuàng )建DNS主機緩存,可以將一些常用的域名與IP映射信息存放在緩存中,供終端設備直接查找。 當完成上述的初始化以后,接下來(lái)進(jìn)行PPP撥號,向運營(yíng)商的服務(wù)中心發(fā)送LCP、NCP連接配置請求的數據包。其中NCP向服務(wù)中心發(fā)送請求分配DNS解析服務(wù)器的配置請求數據包,根據NCP的幀格式進(jìn)行封裝。代碼實(shí)現的流程如圖2所示。 ![]() 3.2 域名解析的實(shí)現 最終WDTU連接到登錄花生殼客戶(hù)端的主機,與之實(shí)現數據傳輸;ㄉ鷼た蛻(hù)端會(huì )將登錄主機的IP與申請的該域名的映射信息返回給花生殼公司的DNS服務(wù)器。而運營(yíng)商與這些提供域名解析服務(wù)的公司之間建立聯(lián)系,提供DNS服務(wù)的公司通過(guò)直接或間接的連接,將本公司的DNS服務(wù)器域名信息系統與運營(yíng)商的服務(wù)中心相連接,這樣,運營(yíng)商就使得移動(dòng)終端實(shí)現了域名的解析。DNS功能有多種類(lèi)型,但主要的是兩種:由域名得到IP地址和根據IP地址得到相映射的域名。實(shí)際應用中主要是需要根據域名查找到與之相對應的IP地址。因此,本設計也是針對這種類(lèi)型介紹的。 該過(guò)程分為兩個(gè)階段:查找終端的緩存,如果終端本身的緩存中已經(jīng)有該域名的信息,則該過(guò)程完成,不需要后續的操作;若沒(méi)有該域名的信息,則需要進(jìn)一步向上一級的DNS解析服務(wù)器查詢(xún)該域名的信息,即DNS解析(resolve)。域名解析的核心正是在于向上一級的DNS解析器發(fā)出解析請求,解析器得到相匹配的IP以后,返回給終端設備,從而整個(gè)過(guò)程完成。由DNS協(xié)議的特點(diǎn)可知,為了方便后續域名查詢(xún),提高后續的域名解析的效率,該協(xié)議規定,將新解析到的映射信息加入到高速緩存中。下列部分代碼說(shuō)明了。DNS解析的過(guò)程: ![]() DNS解析的功能是向上一級的DNS服務(wù)器(運營(yíng)商服務(wù)中心動(dòng)態(tài)分配的DNS服務(wù)器)發(fā)出請求,令其幫助查找該域名的映射信息。在DNS協(xié)議里,查詢(xún)信息的方法有兩種:遞歸查詢(xún)和迭代查詢(xún)。大多數情況下,為了使用上的方便,默認的都是遞歸查詢(xún)。這樣對于運營(yíng)商的DNS服務(wù)器而言,其解析域名的過(guò)程跟 WDTU終端查詢(xún)域名的方法相同:先查詢(xún)服務(wù)器自身的緩存,若查到則過(guò)程完成,否則再向服務(wù)器的上一級DNS服務(wù)器查詢(xún)域名信息。而花生殼公司的服務(wù)器地址會(huì )直接或間接地存放在運營(yíng)商的服務(wù)器鏈表中(這一部分由運營(yíng)商和花生殼公司合作實(shí)現),從而可以從花生殼公司的服務(wù)器數據系統中得到該域名的映射IP。運營(yíng)商的DNS服務(wù)器得到花生殼返回的數據包以后,過(guò)程完成。最后再從運營(yíng)商動(dòng)態(tài)分配的DNS服務(wù)器返回的DNS應答數據包中提取IP地址信息。DNS系統整體的工作原理如圖3所示。 ![]() 結語(yǔ) 由于工業(yè)對于借助無(wú)線(xiàn)網(wǎng)絡(luò )實(shí)現遠距離數據傳輸的要求和應用越來(lái)越多,而傳統的數據傳輸必須有固定的公網(wǎng)IP,這使得成本要求較高,限制了產(chǎn)品的使用范圍。本設計的創(chuàng )新點(diǎn)在于,使WDTU無(wú)線(xiàn)終端實(shí)現了DNS功能,這樣任意一臺主機都可作為“具有公網(wǎng)IP”的傳統數據中心主機使用,使產(chǎn)品的應用成本降低,對于提高產(chǎn)品的整體功能,促進(jìn)產(chǎn)品的推廣具有重要的現實(shí)意義。 參考文獻 1. 關(guān)宇東,陳學(xué)泉,朱偉明.嵌入式單片機PPP協(xié)議的應用研究[D].哈爾濱:哈爾濱工業(yè)大學(xué),2008. 2. Albitz Paul,Liu Cricket.DNS與 BIND[M].4版.北京:中國電力出版社,2002. 3. Forouzan Behrouz A,Fegan Sophia Chung.TCP/IP協(xié)議族[M].謝希仁,等譯.3版.北京:清華大學(xué)出版社,2006. 作者:東南大學(xué) 王兆富 張萌 劉昊 來(lái)源:《單片機與嵌入式系統應用 》 2009(8) |