基于A(yíng)RM的嵌入式SMTP遠程控制設計
配置模塊使系統管理員可以遠程使用郵件的方式設置設備的參數,在系統啟動(dòng)中定義的配置環(huán)境變量包括設備的臨界值,狀態(tài)報告周期,Socket端口等網(wǎng)絡(luò )參數,設備的啟動(dòng)停止時(shí)間,工作周期等。
網(wǎng)絡(luò )遠程設備的配置和控制信息的訪(fǎng)問(wèn)是安全保護的重點(diǎn)。安全模塊通過(guò)在服務(wù)器上定義安全域和對每個(gè)安全域定義的用戶(hù)名/密碼實(shí)現對敏感信息的保護。還可以對請求控制動(dòng)作及數據采取加密措施實(shí)現安全保護功能。系統主要通過(guò)ESMTP來(lái)實(shí)現保護措施。ESMTP為擴展的SMTP協(xié)議,是郵件服務(wù)器系統為了限制非本系統的正式用戶(hù)利用本系統散發(fā)垃圾郵件或其他不當行為而開(kāi)設的一項安全認證服務(wù)。
應用程序接口模塊實(shí)現和嵌入式控制系統的控制及數據交換。在本系統中,應用程序接口與嵌入式操作系統通信,通過(guò)設備的驅動(dòng)程序實(shí)現對嵌入系統的配置、監視和控制,是系統控制的核心。監控程序模塊使用CGI(Common Gateway Interface)的方式實(shí)現。
2. SMTP通訊模塊設計
通過(guò)電子郵件來(lái)與網(wǎng)絡(luò )嵌入式系統通信有如下優(yōu)點(diǎn):(1) 用戶(hù)接口是日常使用的標準電子郵件客戶(hù)程序,對技術(shù)要求較低;(2) 有現成的協(xié)議用于從各種設備(桌面電腦、手持設備及網(wǎng)絡(luò )電話(huà))發(fā)送電子郵件并在因特網(wǎng)上傳輸;(3) 只需稍加處理,便可對嵌入式設備上回復的電子郵件以HTML格式進(jìn)行編碼,使數據的表現形式更為豐富和易讀;(4) 電子郵件客戶(hù)程序有自己的存檔日志,便于進(jìn)行數據歸檔備份[3]。
系統中實(shí)現的是一個(gè)簡(jiǎn)化的SMTP Server。僅僅是根據基本的SMTP交互協(xié)議實(shí)現郵件接收和郵件轉儲。不提供郵件轉發(fā),也不需要考慮多用戶(hù)的郵件并發(fā)連接。該SMTP Server僅僅為單用戶(hù)提供專(zhuān)用連接,并按自己的特定格式接收。
因此,該SMTP Server實(shí)現的核心是實(shí)現最簡(jiǎn)單的SMTP鎖步協(xié)議對話(huà)機,并從郵件中析取出命令及附件數據。在分析標準SMTP協(xié)議后,程序中僅實(shí)現符合應用需求的最簡(jiǎn)潔的SMTP對話(huà)機制。Server只是對客戶(hù)命令有效的發(fā)出每一個(gè)對話(huà)的響應碼及固定信息,然后接收客戶(hù)機的應答。在應答消息中也僅僅分析應答的字符命令是否正確,而不理睬其他信息。在郵件處理過(guò)程中,只查找主題并判斷,然后從郵件中判斷出附件的標志并從附件開(kāi)始處接收數據然后解碼。
2.1 SMTP通訊基本流程
為實(shí)現設備的遠程控制及狀態(tài)響應,將SMTP軟件的結構模塊化。分為套接字通訊模塊、E-mail編碼模塊、E-mail解析模塊、SMTP/ESMTP協(xié)議模塊、附件解析模塊。其基本結構如圖2。本文引用地址:http://dyxdggzs.com/article/152450.htm
圖2: 嵌入式SMTP遠程控制流程
2.2 套接字通訊模塊
網(wǎng)絡(luò )套接字模塊負責與遠端客戶(hù)機、服務(wù)器建立TCP連接,發(fā)送和接收從客戶(hù)端發(fā)送的命令和數據以及向其他SMTP服務(wù)器端返回郵件數據。這些都是基于TCP/IP棧通過(guò)Linux操作系統的標準Socket機制來(lái)實(shí)現的。在網(wǎng)絡(luò )模塊中,為便于升級,考慮到了IPv4到IPv6過(guò)渡。在用戶(hù)設置服務(wù)器地址的時(shí)候,可以支持IP地址輸入和域名輸入兩種方式,這樣給用戶(hù)帶來(lái)很大方便。
在該模塊中,提供一個(gè)TCP流套接字服務(wù)器。在端口25上綁定套接字,最多可以提供一個(gè)連接,支持5個(gè)等待。一旦服務(wù)器接受一個(gè)連接,該套接字被傳給SMTP/ESMTP協(xié)議模塊,來(lái)處理SMTP協(xié)議實(shí)現交互。處理完后關(guān)閉套接字,然后可以等待另一個(gè)請求。
2.3 E-mail編碼模塊
在系統中,遠程設備需要周期性的將設備運行狀態(tài)及各參數發(fā)送給管理者,以及在管理者發(fā)送查詢(xún)指令時(shí)將查詢(xún)的關(guān)鍵值發(fā)送給管理者。這需要設備能夠根據運行的參數構造標準結構的E-mail并發(fā)送。
tcp/ip相關(guān)文章:tcp/ip是什么
評論