多協議模擬器設計論文
時間:2022-12-16 10:23:00
導語:多協議模擬器設計論文一文來源于網友上傳,不代表本站觀點,若需要原創文章可咨詢客服老師,歡迎參考。
摘要:目前,很多網絡工具在遇到新的網絡協議出現的時候,很難將新的協議快速集成到現有的網絡工具中,從而給用戶造成很多使用上的不方便。本文設計的一種網絡協議模擬器PRT-GET可以很好的解決上述問題,PRT-GET按照自定義的協議工作說明書工作,它可以方便的把新協議加入到PRT-GET中,從而方便用戶使用新的網絡協議來完成通信工作。
關鍵詞:網絡協議動態鏈接庫協議工作說明書
一、引言
PRT-GET定義為一個協議模擬器,所謂協議模擬器就是通過某種途徑模擬各式各樣的網絡通信協議從而可以進行具體而實際的網絡通信,最終達到同時支持多種通信協議的目的。PRT-GET不同于現今網上存在的各種網絡工具,使用它可以編寫基本上所有的基于Socket應用層的通信協議,PRT-GET的設計解決了用戶使用網絡工具時難以支持新出現的協議的問題。
二、PRT-GET的特點
作為一個優秀的協議模擬器,PRT-GET具備以下的幾個特點:
1.PRT-GET是一個動態鏈接庫。考慮到應用程序的擴展極其的不方便,所以沒有把PRT-GET設計成應用程序的形式,而采用動態鏈接庫的方式,該方式可以方便地進行二次開發,也方便擴展軟件的功能。
2.PRT-GET是完全面向對象的。PRT-GET是一個可二次開發的動態鏈接庫,所以面向對象的設計模式能令二次開發更加高效。
3.PRT-GET的代碼擴展性高。使用PRT-GET時,如果PRT-GET本身提供的功能不夠,那么用戶可以通過擴展PRT-GET中對應的類,以實現自定義的功能。
4.PRT-GET支持自定義協議。PRT-GET的最大特色就是支持用戶自定義應用層協議,通過用戶編寫的協議工作說明書,PRT-GET忠實地執行用戶在說明書中指定的每一個操作,也就是說,用戶無需編寫任何一句代碼就可以使PRT-GET支持自定義協議。
5.PRT-GET的使用方便。PRT-GET使用時只需要調用動態鏈接庫就可以輕松地使用其中的協議控制類。
三、PRT-GET的設計
1.PRT-GET的工作層次
PRT-GET設計為一個動態鏈接庫,它為系統應用程序提供中間層服務,使得應用程序無需了解網絡通信的具體邏輯,只需把網絡的內容當作本地的內容操作即可,從這點看起來PRT-GET也是一個協議,而且更是一個能提供很多協議服務的協議支持軟件。PRT-GET在網絡中的工作層次如圖1所示。
對于使用PRT-GET作為網絡通信協議的應用程序來說,用戶可以指定PRT-GET使用哪個協議進行工作,因為PRT-GET是在需要使用時才加載協議內容的,所以用戶可以隨時動態指定PRT-GET使用的協議,甚至可以動態修改PRT-GET使用的協議內容。當協議組里面包含的協議不滿足用戶要求時,用戶還可以添加新的協議,這只需要添加一個協議工作說明書到協議組里面就可以了。
應用程序
計算機
PRT-GET
協議組
協議內容
服務器
服務程序
用戶
圖1PRT-GET工作層次
PRT-GET工作時根據用戶指定的協議加載協議工作說明書,然后再依照協議說明書內容與遠端服務器/客戶端協作工作。對于PRT-GET來說,遠端機器是透明的,PRT-GET的機器透明性是基于工作在TCP協議上的Socket的,所以對于PRT-GET來說沒有機器的差別,沒有平臺的差別。
2.PRT-GET的幾個概念
在PRT-GET中,有一些基本概念貫穿于整個PRT-GET的設計和實現過程中。
(1)協議
PRT-GET中的協議對應著一個網絡協議。協議在PRT-GET程序中只是一個邏輯的存在,并沒有具體的某個協議的實現,所以如果要使PRT-GET支持某個協議的話,需要編寫一個具體的協議工作說明書與PRT-GET相配合。也就是說協議工作說明書是PRT-GET的具體協議的載體,也是PRT-GET支持協議的體現。
(2)元素
元素是PRT-GET的一個新概念。所有的協議都是一些基本通信單元的組合,而PRT-GET就是通過將協議分解成一個個的基本單元從而做到支持各種協議的。這種基本單元就是元素。元素是PRT-GET中協議構成的基本單位,一個PRT-GET的協議本質上就是一些PRT-GET的元素序列,同樣的,對元素的不同組合可以生成不同的協議,這就是PRT-GET可以支持不同協議的本質原因。
程序中的一個元素類的對象對應著協議工作說明書的實際一行,也就是代表著通信交互中的一個基本交互單元。協議工作說明書中指定了每一個通信單元應當使用的元素類,并執行相應動作實現對應的通訊單元。
為更好的實現通訊單元的分割和減少通信協議工作說明書的編寫難度,定義了動作元素和輔助元素這兩個概念。
動作元素:對應著一個通訊基本操作,它指明了對于本次操作應該如何進行。
輔助元素:對動作單元進行輔助處理的單元,它是從屬于動作單元,一個動作元素可以有零個或多個輔助元素。
動作元素和輔助元素指定了協議的一個通信單元的工作方式,而本次通信的內容就由內容項指定了。一個元素由動作元素和輔助元素、內容三項組成,其結構如下:
動作單元[輔助單元]*[內容]
(3)分析器
PRT-GET中并沒有協議的實體存在,代替的是用協議工作說明書作為協議的載體,而協議工作說明書只是一個文本文件,如何將這個協議工作說明書的內容加載到內存并轉變為一個一個對應的元素,這個工作是由分析器來解決的。
分析器有協議分析器和元素分析器兩種,分別用于不同用途。
協議分析器:協議分析器主要的工作是分析協議工作說明書并創建該說明書對應的元素序列,輔助Protocol實體的創建。
元素分析器:元素分析器的工作是從一個字符串中分解出輔助元素和內容,以支持元素類的動作。
PRT-GET工作流程
PRT-GET的使用非常的方便,只需要使用URL創建出具體的一個協議對象則可以與主機通信,而此URL的要求為“protocol://host:port/file”格式,其中port并不是必須的,如果沒有指定的話就會使用對應協議的協議工作說明書中指定的默認端口。
PRT-GET工作時,將會根據用戶提交的協議名檢查其協議說明書庫中是否有該協議,如果發現對應的協議不存在則拋出一個異常提示用戶。找到指定協議后,PRT-GET將創建一個協議對象以實現通信,并將協議工作說明書加載進內存中,分析生成一個元素序列,最后就執行元素序列以實現實際通信目的,其工作流程如圖2所示。
是
讀取
否
開始
結束
查找協議工作說明書
協議組
協議存在
拋出異常
創建協議對象
分析工作說明書
執行元素動作
圖2PRT-GET工作流程圖
四、主要包的設計
對PRT-GET的設計采用按功能結構分包的方式,將功能相近的類放置在一起,并按邏輯位置將其放在不同的命名空間之中。
PRT-GET中最核心的三個包分別是Element(元素包)、Analyze(分析工具包)和Util(其他工具包),此外,還有ProtocolManager和Protocol兩個核心類。
PRT-GET將網絡操作分為基本的單元——元素,在程序中的體現就是元素(Element對象),PRT-GET將所有的元素類都放置在Element包中,并通過接口IElement實現元素動作的統一。
Analyze包是一個存放存放分析器的包。PRT-GET經常需要對協議工作說明文件進行分析,這就需要一個分析器專門對協議中的字符串進行分析,Analyze包中的類就是負責此類工作。
PRT-GET在進行一些處理時經常會用到一些方法,為增加代碼的重用率,將所有經常使用到的方法或操作封裝為類存放在Util包中。
五、協議工作說明書
協議工作說明書是協議的真正載體,它以“協議名+.prt”為文件名存放在PRT-GET動態鏈接庫目錄的“protocol”文件夾下,PRT-GET加載協議時到這查找該協議是否存在,當查找到時就會加載為一個協議實體。
1.協議工作說明書的組成
網絡通信主要是發送內容和接收內容,PRT-GET的主要作用就是屏蔽了這一層中繁瑣的通信,使得用戶可以直接對通信的有用內容進行處理。
基于網絡通信只有發送和接收兩種情況,協議工作說明書也只有兩種基本元素:Send和Receive。Send發送數據,而發送的數據可以是在協議說明書中指定的常量,也可以是用戶動態加載的內容。Receive同樣也可以接收常量,或者接收到內存中對應的元素的Data數據中。除了這兩種基本元素外,PRT-GET還擴展了另外兩種元素:Skip和Repeat。Skip能忽略用戶不感興趣的內容,Repeat的作用就是重復進行用戶的一些煩瑣的操作,這些對提高用戶的工作效率有很大的幫助。此外,還有其它一些輔助元素可以指定各種動作元素的具體操作內容。
2.協議工作說明書編寫要求
編寫協議工作說明書必須滿足以下格式:
Port端口號
(Element名[輔助元素名]*內容)*
協議說明書的最開始應該是端口號說明,而后出現的是元素字符串。元素字符串由三部分組成,其中元素名是指該動作元素的名稱;輔助元素指定了動作元素的一些要求,一個動作元素可以有幾個輔助元素的存在;第三個部分就是內容,內容可以是常量內容,也可以是變量,也就是用戶指定的數據。
一個協議說明書只能由一個端口號,但是卻可以有多個元素,不同元素之間用換行隔開即可。定義一個協議說明書必須以該協議名稱加上“.prt”為協議工作說明書名稱,并將其放置在PRT-GET的動態鏈接庫目錄下的protocol文件夾內。
六、應用實例
多協議服務器是一個使用PRT-GET作為通信層的服務器軟件,以文件映射作為虛擬路徑管理手段。通過該服務器軟件可以設置虛擬目錄,用戶可以指定訪問需要使用的網絡協議(如HTTP),當有客戶端請求時,服務器調用PRT-GET創建一個協議實體執行通信,并由服務器解釋請求的URL,將其映射為相關系統文件,客戶端可以和服務器進行通信,請求服務器上的文件資源如圖3所示。
圖3利用PRT-GET模擬HTTP通信
七、結語
本文討論了多協議模擬器PRT-GET的設計思路和方法,并通過實例模擬HTTP協議驗證了文中所提設計方案的可行性。由于PRT-GET目前的版本設計中輔助元素還不夠多,模擬器的交互設計還有所欠缺,下一步將增加輔助元素的設計,豐富模擬器的功能,增強其應用的靈活性。
參考文獻
[1]陳富春.中XML數據與關系數據的交互技術.現代計算機.2005(04):P35-37
[2]羅軍舟,黎波濤,楊明等.TCP/IP協議及網絡編程技術.北京:清華大學出版社,2004
[3]陳嫻,劉開文,王蓉玲等.項目開發實踐.北京:中國鐵道出版社,2003
- 上一篇:計算機取證技術研究論文
- 下一篇:醫院信息系統管理研究論文