引言
WDTU是一種實現無線數據傳輸的終端設備,目前在工業控制、監控、安保等領域應用廣泛。現有的WDTU實現了將采集到的數據通過GPRS/CDMA網絡接入到Internet,最終將數據傳送到以太網內的數據中心。但是對數據中心有特別的要求:該數據中心必須具有公網的IP或是被上一級路由器/交換機映射成具有特定的端口。這使該設備的適用要求提高,降低了產品的適用范圍。為了提高產品的實用性,更加方便用戶使用,在原有系統上,利用ASIX OS豐富的協議資源,對當中的DNS協議部分作適當的移植和修改,基于ASIX OS設計和添加了DNS功能。本文將重點介紹DNS實現的相關內容,其他部分只作簡單說明。
1 背景知識
WDTU系統主要有處理器、串口、電源、無線模塊、以太網口等組成。以太網口是為了功能擴展的需要而設置的,便于接入以太網。在本設計中只簡單說明以太網DNS,目的是為了與無線設備的DNS功能相區別。本設計重點討論無線DNS功能的實現。系統的硬件結構如圖1所示。
UART2是數據接收端口,與外設數據源設備相連。而UART1是作為無線模塊的接口,與無線模塊的子板相連。系統的工作原理是:系統上電啟動以后,使用 PPP協議撥號上線,與運營商服務中心建立連接,然后服務中心的網關連接到指定IP或域名的數據中心主機上,此時就可以實現UART 2與以太網上的數據中心的數據傳輸。ASIX OS是基于μITRON3.0,為16/32位Garfield微處理器家族開發的實時操作系統。它包含了豐富的操作系統內核和協議簇的多種API,能滿足用戶基本的網絡應用需求。
2 DNS功能的設計方案
DNS(Domain Name Server)用于實現Internet上IP地址與域名的一一對應。域名使用方便,而計算機內部只處理IP地址,所以必須由域名服務器來進行兩者的轉換,這一過程就稱為域名解析。本設計中使用的是花生殼(Peanut Hull)的一款完全免費的客戶端軟件,它提供了桌面域名管理和動態域名解析的功能。首先在花生殼網站上注冊域名,然后在主機上運行該客戶端軟件,這樣就將用戶注冊的域名與該主機的IP地址綁定,形成映射。該軟件實現了特定的域名與變化的主機IP地址間的實時映射,為網外設備方便地訪問該主機提供了可能。
由DNS協議的要求知道:一個域名服務器負責一個或多個區域,而每個區域的管理者必須為該區域提供一個主域名服務器和至少一個從域名服務器,且兩者必須是獨立和冗余的。在實際使用中,由于受條件、實用性、成本等的限制,不使用主、從服務器。如果直接接入以太網,則沒有可用的DNS服務器,那么就使得第一級的域名解析不能進行,從而使最終的域名解析失敗。而本設計是基于無線網絡的,網絡接口層是通過串行通信協議:PPP(點對點協議)接入運營商的服務中心,再接入互聯網。
PPP協議本身分為3個子協議:LCP(Link ControlProtocol)、NCP(Net Control Protocol)、PPP擴展協議(用于身份驗證),而與網絡設置相關的主要是NCP協議。NCP協議用于終端設備連接到運營商的中心服務器,若終端設置了固定的有效IP,則終端將設定的IP封裝在配置請求數據包里,告知運營商端的服務器,建立連接;否則將IP設為全0,則服務器端隨機為WDTU終端設備分配一個動態IP,該IP每次復位后將改變。NCP的一個獨特之處是,它可以向服務器申請動態分配DNS服務器。由于沒有人工添加DNS解析的服務器,所以正是利用NCP的該功能,獲得實現DNS功能必需的DNS解析服務器。這也正是本設計的一大特點。
3 DNS功能的實現
3.1 必要的初始化
系統首先要完成一系列必要的初始化,包括協議棧和設備的初始化。對DNS的初始化主要包括:一,創建DNS服務器鏈表(服務器鏈表的大小可以根據實際需要開辟,本設計中使用5個),此時該鏈表是空的;二,創建DNS主機緩存,可以將一些常用的域名與IP映射信息存放在緩存中,供終端設備直接查找。
當完成上述的初始化以后,接下來進行PPP撥號,向運營商的服務中心發送LCP、NCP連接配置請求的數據包。其中NCP向服務中心發送請求分配DNS解析服務器的配置請求數據包,根據NCP的幀格式進行封裝。代碼實現的流程如圖2所示。
3.2 域名解析的實現
最終WDTU連接到登錄花生殼客戶端的主機,與之實現數據傳輸。花生殼客戶端會將登錄主機的IP與申請的該域名的映射信息返回給花生殼公司的DNS服務器。而運營商與這些提供域名解析服務的公司之間建立聯系,提供DNS服務的公司通過直接或間接的連接,將本公司的DNS服務器域名信息系統與運營商的服務中心相連接,這樣,運營商就使得移動終端實現了域名的解析。DNS功能有多種類型,但主要的是兩種:由域名得到IP地址和根據IP地址得到相映射的域名。實際應用中主要是需要根據域名查找到與之相對應的IP地址。因此,本設計也是針對這種類型介紹的。
該過程分為兩個階段:查找終端的緩存,如果終端本身的緩存中已經有該域名的信息,則該過程完成,不需要后續的操作;若沒有該域名的信息,則需要進一步向上一級的DNS解析服務器查詢該域名的信息,即DNS解析(resolve)。域名解析的核心正是在于向上一級的DNS解析器發出解析請求,解析器得到相匹配的IP以后,返回給終端設備,從而整個過程完成。由DNS協議的特點可知,為了方便后續域名查詢,提高后續的域名解析的效率,該協議規定,將新解析到的映射信息加入到高速緩存中。下列部分代碼說明了。DNS解析的過程:
DNS解析的功能是向上一級的DNS服務器(運營商服務中心動態分配的DNS服務器)發出請求,令其幫助查找該域名的映射信息。在DNS協議里,查詢信息的方法有兩種:遞歸查詢和迭代查詢。大多數情況下,為了使用上的方便,默認的都是遞歸查詢。這樣對于運營商的DNS服務器而言,其解析域名的過程跟 WDTU終端查詢域名的方法相同:先查詢服務器自身的緩存,若查到則過程完成,否則再向服務器的上一級DNS服務器查詢域名信息。而花生殼公司的服務器地址會直接或間接地存放在運營商的服務器鏈表中(這一部分由運營商和花生殼公司合作實現),從而可以從花生殼公司的服務器數據系統中得到該域名的映射IP。運營商的DNS服務器得到花生殼返回的數據包以后,過程完成。最后再從運營商動態分配的DNS服務器返回的DNS應答數據包中提取IP地址信息。DNS系統整體的工作原理如圖3所示。
結語
由于工業對于借助無線網絡實現遠距離數據傳輸的要求和應用越來越多,而傳統的數據傳輸必須有固定的公網IP,這使得成本要求較高,限制了產品的使用范圍。本設計的創新點在于,使WDTU無線終端實現了DNS功能,這樣任意一臺主機都可作為“具有公網IP”的傳統數據中心主機使用,使產品的應用成本降低,對于提高產品的整體功能,促進產品的推廣具有重要的現實意義。
責任編輯:gt
-
以太網
+關注
關注
40文章
5385瀏覽量
171161 -
交換機
+關注
關注
21文章
2624瀏覽量
99285 -
數據中心
+關注
關注
16文章
4700瀏覽量
71970
發布評論請先 登錄
相關推薦
評論