999精品在线视频,手机成人午夜在线视频,久久不卡国产精品无码,中日无码在线观看,成人av手机在线观看,日韩精品亚洲一区中文字幕,亚洲av无码人妻,四虎国产在线观看 ?

嵌入式FTP服務器的設計與實現

2013-04-12 00:00:00郝玉鍇
現代電子技術 2013年14期

摘 要: FTP服務是目前廣泛應用的因特網應用服務之一,為了在國產嵌入式實時操作系統平臺上開發FTP服務,采用多線程并發服務器的體系結構設計了一種嵌入式FTP服務器,實現了包括對RFC959標準定義的訪問控制命令、傳輸參數命令和FTP服務命令在內的常用命令的處理和響應功能,并且對該嵌入式FTP服務器的功能和性能進行了測試。測試結果表明功能正常,性能符合預期標準。

關鍵詞: 嵌入式系統; 文件傳輸協議; FTP服務器; 設計與實現

中圖分類號: TN911?34 文獻標識碼: A 文章編號: 1004?373X(2013)14?0055?03

Design and realization of embedded FTP server

HAO Yu?kai

(Aeronautical Computing Technique Research Institute, Xi’an 710119, China)

Abstract: FTP service is one of the widely used application services on Internet. Multi?threaded concurrent server architecture is adopted to design an embedded FTP server in order to develop FTP service on the domestic embedded real?time operating system platform. The processing and responding functions of the common commands such as access control commands, transmission parameter commands and FTP service commands defined for RFC959 were implemented. The test results of the embedded FTP server function and performance show that the function is normal, and the performance is satisfied to the expected standards.

Keywords: embedded system; file transfer protocol; FTP server; design and ralization

FTP(文件傳輸協議)是一種用于從網絡中一臺主機向另外一臺主機傳輸文件的協議,屬于Internet上最早提供的應用服務之一,通常將文件傳輸服務稱為FTP服務。FTP服務不受計算機類型及操作系統的限制,只要建立FTP鏈接的雙方都支持FTP協議,就可以方便地通過網絡進行遠程文件的下載、上傳和刪除等操作。

根據RFC959描述[1],FTP的目標是:促進程序/數據文件的共享;鼓勵(通過程序)使用遠程計算機;使用戶不必面對不同主機上不同文件系統的差異;對數據進行高效可靠的傳輸。本文在國產嵌入式實時操作系統的平臺上,在已有TCP協議支持的基礎上,設計開發滿足RFC959要求的FTP服務器,功能支持對FTP客戶端常用命令的正確響應,性能滿足嵌入式環境的要求。

1 文件傳輸過程

1.1 FTP工作模式

FTP服務采用典型的客戶端/服務器工作模式,在網絡遠端提供FTP服務的計算機稱為FTP服務器,與用戶的客戶端通過TCP進行鏈接。FTP服務器通過2個并行的TCP鏈接來提供服務,一個是控制鏈接,一個是數據鏈接[2?3]。控制鏈接始終等待客戶與服務器之間的通信,該鏈接將客戶命令從客戶端傳給服務器,并傳回服務器的應答。數據鏈接則是每當一個文件在客戶端和服務器之間傳輸前,才進行創建,只用于數據傳輸目的[4]。客戶端與服務器及其連接情況如圖1所示。

1.2 FTP工作流程

在典型的FTP客戶機和服務器的鏈接建立及交互過程中,一般需要經歷以下幾個步驟:

(1)在服務器端運行FTP服務器端程序,等待用戶發出鏈接請求,在客戶端運行FTP客戶端程序。

(2)當FTP客戶端發起FTP會話嘗試鏈接服務器時,客戶端首先發起建立與FTP服務器21端口之間的控制鏈接,通過該TCP鏈接發送用戶名和密碼給服務器端。

(3)客戶端為所在的數據鏈接選擇一個臨時的端口號,并通過控制鏈接將該端口號發送給服務器。

(4)當需要進入文件傳輸階段,客戶端和服務器通過“數據鏈接”來傳輸文件,通過“控制鏈接”來傳輸命令。

(5)當數據傳輸完畢后,關閉用于建立數據鏈接的端口,直到下次數據鏈接發起時重新打開,而控制鏈接在整個FTP會話期間一直處于打開狀態[5]。

圖1 客戶端與服務器及其連接情況

2 FTP服務器設計

選擇不同的服務器模式將會影響到整個設計和實現階段,并且很大程度影響著服務器的性能。FTP服務器的內部設計可以根據需要和平臺軟硬件的性能綜合考慮,選擇設計不同的服務器模式。

2.1 服務器結構

服務器的結構主要有循環服務器和并發服務器2種,其中并發服務器又可以細分為單線程并發服務器和多線程并發服務器[6]。

2.1.1 循環服務器

循環服務器適用于簡單的應用協議,與客戶端采用停止?等待的通信方式,使用單個線程循環運行,每次只能處理一個客戶端的請求,但是它的設計、編碼、調試和后續維護相對并發服務器都比較簡單。

2.1.2 單線程并發服務器

單線程并發服務器是由單個服務器線程預先為多個客戶端打開TCP鏈接,當有任意的客戶端請求到達時,服務器線程由阻塞態轉為運行態來處理該客戶端請求并發送響應,在此期間阻塞其他客戶端請求。完成一個客戶端請求后,服務器線程再次阻塞以等待其他的任意客戶端的請求。單線程并發服務器適用于操作系統創建新的線程開銷很大的情況下。

2.1.3 多線程并發服務器

多線程并發服務器設計使用多個進程及多個線程,服務器首先執行一個主線程,在熟知的端口上打開一個鏈接,等待客戶端消息,當客戶端請求到來時,主線程創建子線程來處理該客戶請求,此時主線程不與客戶端直接通信,而是由每個子線程并發地來與各自對應的客戶端進行通信。當子線程完成客戶請求的響應并發送給客戶端之后,子線程退出,而此時主線程一直在等待其他的客戶鏈接請求。

2.2 方案選擇

服務器結構的方案選擇主要取決于服務器的應用場景、期望達到的性能以及方案實現的難易程度。

循環服務器的結構容易實現但是需要客戶端等待來獲取服務,難以滿足多個客戶的需求,服務器效率性能低下;單線程服務器結構需要服務器線程反復地在它打開的鏈接上等待客戶端請求,需要每次循環地檢查網絡鏈接狀況和文件系統處理文件的狀態,查詢完成后才能夠刷新數據顯示,因此造成不必要的延遲;多線程并發服務器同時和多個客戶端進行通信,由操作系統分配各個線程的處理器時間,比較適合FTP服務器的對每個客戶端一直存在控制鏈接和需要時建立數據鏈接的特點。綜合上述分析,本課題中FTP服務器采用多線程并發服務器結構的方案是比較合理的。

3 FTP服務器實現

根據上述設計方案的描述,本課題中FTP服務器的程序架構進行如下設計:

系統上電操作系統運行之后,ftpdInit函數在默認的端口上創建一個FTP服務器控制鏈接,并且調用ftpdTask創建一個FTP服務進程來響應多個用戶的請求。其中ftpdTask使用ftpdWorkTask為每個不同的用戶在各自需要時分別創建一個服務進程進行響應,如圖2所示。

圖2 FTP服務器進程結構

ftpdWorkTask完成FTP服務器的主要協議處理功能,該進程分析每個客戶端請求命令,做出響應并且回復給客戶端。函數的主體是一個循環結構,分析客戶端請求命令的功能由簡單的strncmp函數來實現,如果經過分析之后命令符合有效命令的格式,ftpdWorkTask將調用響應的處理函數并且將處理結果返回給客戶端。

根據RFC959,FTP服務器需要響應的命令分為訪問控制命令、傳輸參數命令和服務命令[1]。本課題設計的FTP服務器實現了對以下命令的響應。

(1)訪問控制命令。訪問控制命令如表1所示。

表1 訪問控制命令

(2)傳輸參數命令。所有的數據傳輸參數都有默認值,只有在默認值需要改變的時候才需要命令去指定傳送數據傳輸參數。默認值是最后一次指定的值,如果未被指定,則是標準默認值。這意味著服務器必須“記住”當前可用的默認值,如表2所示。

表2 傳輸參數命令

(3)FTP服務命令。FTP服務命令定義了用戶請求傳送文件或者文件系統的功能,如表3所示。

表3 FTP服務命令

4 功能及性能測試

在完成設計、編碼及交叉編譯之后,對嵌入式FTP服務器在目標機上的運行的情況進行功能和簡單的性能測試。

4.1 功能測試

功能測試的目的是驗證FTP服務器是否能夠正常處理協議所要求的功能,測試工具為FTP客戶端軟件包括WindowsXP命令行中的FTP命令,FlashFXP以及在WindowsCE操作系統下開發的專用FTP客戶端軟件。

4.2 性能測試

嵌入式FTP服務器運行在MPC755處理器子卡上,處理器為PowerPC755,處理器工作頻率為266 MHz,局部總線頻率為66 MHz,1路10M/100M以太網接口。存儲設備為大容量存儲器子卡,存儲容量為128 GB,讀/寫訪問速度5 MB/s以上(裸盤)。測試結果表明使用Windows XP平臺的客戶端軟件進行下載速度可以達到800 KB/s以上,使用WindowsCE平臺的客戶端軟件進行下載速度可以達到300 KB/s以上。

5 結 語

本文介紹了FTP協議的工作模式和工作流程,介紹了FTP服務器的典型結構,即循環服務器、單線程并發服務器和多線程并發服務器,并且分析了這三種FTP服務器結構的優缺點,根據課題項目需要,選擇多線程并發服務器的結構為設計方案進行詳細設計。實現的功能包括對RFC959標準定義的訪問控制命令、傳輸參數命令和FTP服務命令在內的常用命令的處理和響應。最后對該嵌入式FTP服務器的功能和性能進行簡單的測試,測試結果表明功能和性能符合期望標準。

參考文獻

[1] POSTEL J, REYNOLDS J. RFC959 [EB/OL]. [1985?10?22]. http://www.ietf.org/rfc/rfc959.

[2] STEVENS W R. TCP/IP illustrated, Volume 1: the protocols [M].北京:機械工業出版社,2000.

[3] COMER D E, STEVENS D L. TCP/IP網絡互聯技術(卷3) [M].北京:清華大學出版社,2004.

[4] HALL E A. Internet核心協議權威指南[M].北京:中國電力出版社,2002.

[5] COMER D E . Internetworking with TCP/IP principles, protocols and architecture [M].北京:人民郵電出版社,2006.

[6] 蔡勇.FTP服務器技術研究及實現[D].成都:電子科技大學,2005.

主站蜘蛛池模板: 欧美精品黑人粗大| 成人福利一区二区视频在线| 欧美日韩精品一区二区视频| 2020国产精品视频| 精品国产黑色丝袜高跟鞋| 亚洲永久色| 伊人91在线| 亚洲欧洲日韩久久狠狠爱| 澳门av无码| 在线精品亚洲一区二区古装| 久久99久久无码毛片一区二区| 国模极品一区二区三区| 国产精品久久久久久影院| 亚洲高清国产拍精品26u| 久久激情影院| 91毛片网| 日本黄色不卡视频| 亚洲欧美一级一级a| 国产精品亚洲欧美日韩久久| 欧美视频在线播放观看免费福利资源 | 欧美日韩中文国产| 亚洲精品卡2卡3卡4卡5卡区| 欧美成人一级| 亚洲国产欧美目韩成人综合| 亚洲视频在线观看免费视频| 亚洲日韩AV无码一区二区三区人| 国产丝袜第一页| 欧美成人看片一区二区三区 | 国产内射一区亚洲| 国产精品.com| 99九九成人免费视频精品| 这里只有精品在线| 国产亚洲欧美在线专区| 欧美日本在线| 波多野结衣久久精品| 9999在线视频| 992tv国产人成在线观看| 亚洲中文字幕久久无码精品A| 在线欧美日韩| 欧美日韩免费观看| 国产va视频| 国产主播一区二区三区| 色天堂无毒不卡| 国产精品亚洲精品爽爽| 亚洲人成网站色7777| 欧美第九页| 亚洲一区免费看| 一本综合久久| 成人免费网站久久久| 午夜丁香婷婷| 国产精品九九视频| 亚洲精品欧美日韩在线| 99久久亚洲精品影院| 国产一区二区影院| 九色免费视频| 夜色爽爽影院18禁妓女影院| 狠狠做深爱婷婷综合一区| 青草视频网站在线观看| 美女黄网十八禁免费看| 午夜国产大片免费观看| 正在播放久久| 91麻豆国产视频| 国产免费怡红院视频| 亚洲一级毛片在线观| 97狠狠操| 最新国产精品第1页| 超清无码一区二区三区| 2020精品极品国产色在线观看| 国产精品嫩草影院视频| 性欧美精品xxxx| 久久中文电影| 91精品国产福利| 尤物国产在线| 久久国产乱子伦视频无卡顿| 国产精品网址你懂的| 国产尤物jk自慰制服喷水| 国产91小视频在线观看| 69视频国产| 在线观看av永久| 免费一极毛片| 91极品美女高潮叫床在线观看| 成年女人18毛片毛片免费|