精品国产人成在线_亚洲高清无码在线观看_国产在线视频国产永久2021_国产AV综合第一页一个的一区免费影院黑人_最近中文字幕MV高清在线视频

0
  • 聊天消息
  • 系統消息
  • 評論與回復
登錄后你可以
  • 下載海量資料
  • 學習在線課程
  • 觀看技術視頻
  • 寫文章/發帖/加入社區
會員中心
創作中心

完善資料讓更多小伙伴認識你,還能領取20積分哦,立即完善>

3天內不再提示

基于嵌入式的FTP服務器的設計、結構與工作模式介紹

電子設計 ? 來源:郭婷 ? 作者:電子設計 ? 2018-12-04 09:11 ? 次閱讀

引言

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

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

1 文件傳輸過程

1.1 FTP工作模式

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

客戶端與服務器及其連接情況如圖1所示。

1.2 FTP工作流程

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

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

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

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

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

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

基于嵌入式的FTP服務器的設計、結構與工作模式介紹

2 FTP 服務器設計

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

2.1 服務器結構

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

2.1.1 循環服務器

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

2.1.2 單線程并發服務器

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

2.1.3 多線程并發服務器

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

2.2 方案選擇

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

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

3 FTP 服務器實現

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

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

基于嵌入式的FTP服務器的設計、結構與工作模式介紹

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

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

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

基于嵌入式的FTP服務器的設計、結構與工作模式介紹

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

當前可用的默認值,如表2所示。

基于嵌入式的FTP服務器的設計、結構與工作模式介紹

(3)FTP服務命令。FTP服務命令定義了用戶請求傳送文件或者文件系統的功能,如表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以上(裸盤)。測試結果表明使用Win-dows XP 平臺的客戶端軟件進行下載速度可以達到800 KB/s以上,使用WindowsCE平臺的客戶端軟件進行下載速度可以達到300 KB/s以上。

5 結語

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

最后對該嵌入式FTP服務器的功能和性能進行簡單的測試,測試結果表明功能和性能符合期望標準。

聲明:本文內容及配圖由入駐作者撰寫或者入駐合作網站授權轉載。文章觀點僅代表作者本人,不代表電子發燒友網立場。文章及其配圖僅供工程師學習之用,如有內容侵權或者其他違規問題,請聯系本站處理。 舉報投訴
  • 協議
    +關注

    關注

    2

    文章

    598

    瀏覽量

    39182
  • 服務器
    +關注

    關注

    12

    文章

    9024

    瀏覽量

    85186
  • 操作系統
    +關注

    關注

    37

    文章

    6742

    瀏覽量

    123192
收藏 人收藏

    評論

    相關推薦

    基于H264的嵌入式視頻服務器的設計

    基于H264的嵌入式視頻服務器的設計摘要! 本文介紹了基于的嵌入式視頻服務器的設計重點闡述了嵌入式
    發表于 06-25 10:50

    嵌入式FTP服務器能實現什么功能?

    FTP服務是目前廣泛應用的因特網應用服務之一,為了在國產嵌入式實時操作系統平臺上開發FTP服務,
    發表于 03-11 08:27

    嵌入式linux下ftp服務是怎樣移植的

    嵌入式linux下ftp服務移植前言使用ftp可以將文件快速的上傳到ftp服務器或者下載文件,很
    發表于 10-28 07:41

    如何實現對嵌入式WEB服務器系統的控制設計

    ......摘要工程實踐教學環節是為了學生能夠更好地鞏固和實踐所學專業知識而設置的,在本次工程實踐中,我們以ARM體系結構與編程課程中所學知識為基礎,對基于ARM的簡單嵌入式WEB服務器系統進行了
    發表于 11-09 08:47

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

    概況,工作原理,軟硬件設計及其在遠程溫度監控系統中的應用作了一個較為系統的研究.首先介紹嵌入式Web服務器的原理與應用,然后針對嵌入式We
    發表于 11-09 08:41

    介紹嵌入式Web服務器工作原理

    嵌入式Web 服務器工作原理1、服務器軟件(BOA)始終在HTTP 端口守候客戶端的連接請求,當客戶端向服務器發起一個連接請求后,客戶端和
    發表于 12-16 07:12

    如何使用Apache FtpServer實現嵌入式FTP服務器

    1.Apache FtpServer是一個純Java實現的FTP服務器2.既可以作為一個完整的FTP服務器單獨使用,也可以在Java程序中調用3.使用Apache FtpServer實
    發表于 12-27 06:49

    嵌入式Web 服務器的分析與研究

    首先介紹嵌入式Web 服務器的發展背景。然后,詳細討論嵌入式Web 服務器的支撐技術,并提出瘦Web服務
    發表于 05-14 14:35 ?20次下載

    GM8180的嵌入式視頻服務器設計

    GM8180的嵌入式視頻服務器設計摘要:詳細介紹了一種基于臺灣智原科技公司GM8180芯片的嵌入式視頻服務器設計。描述了該
    發表于 04-03 11:06 ?1769次閱讀
    GM8180的<b class='flag-5'>嵌入式</b>視頻<b class='flag-5'>服務器</b>設計

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

    隨著嵌入式設備的不斷發展,其對通信也提出了越來越高的要求。FTP(File Transfer Protocol)作為internet上最早提供的服務之一,至今仍然被人們廣泛使用,FTP
    發表于 06-14 06:50 ?1473次閱讀
    <b class='flag-5'>嵌入式</b><b class='flag-5'>FTP</b><b class='flag-5'>服務器</b>的設計與實現

    基于DSP的嵌入式FTP服務器實現方法介紹

    隨著嵌入式設備的不斷發展,其對通信也提出了越來越高的要求。FTP(File Transfer Protocol)作為internet上最早提供的服務之一,至今仍然被人們廣泛使用,FTP
    發表于 11-15 08:35 ?1502次閱讀
    基于DSP的<b class='flag-5'>嵌入式</b><b class='flag-5'>FTP</b><b class='flag-5'>服務器</b>實現方法<b class='flag-5'>介紹</b>

    基于ARM的嵌入式Web服務器的設計方案

    網絡通信時,應用程序使用C/S(客戶/服務器模式進行信息交互。傳統的服務器程序一般運行在大型的擁有高級操作系統的服務器的計算機上,這樣服務器
    發表于 07-08 18:12 ?27次下載
    基于ARM的<b class='flag-5'>嵌入式</b>Web<b class='flag-5'>服務器</b>的設計方案

    嵌入式linux下ftp服務移植

    嵌入式linux下ftp服務移植前言使用ftp可以將文件快速的上傳到ftp服務器或者下載文件,很
    發表于 10-21 12:51 ?8次下載
    <b class='flag-5'>嵌入式</b>linux下<b class='flag-5'>ftp</b><b class='flag-5'>服務</b>移植

    嵌入式web服務器系統設計,基于-ARM簡單嵌入式WEB服務器系統設計.doc

    ......摘 要工程實踐教學環節是為了學生能夠更好地鞏固和實踐所學專業知識而設置的,在本次工程實踐中,我們以ARM體系結構與編程課程中所學知識為基礎,對基于ARM的簡單嵌入式WEB服務器系統
    發表于 11-03 20:06 ?21次下載
    <b class='flag-5'>嵌入式</b>web<b class='flag-5'>服務器</b>系統設計,基于-ARM簡單<b class='flag-5'>嵌入式</b>WEB<b class='flag-5'>服務器</b>系統設計.doc

    嵌入式web服務器系統,嵌入式Web服務器的設計與實現

    概況,工作原理,軟硬件設計及其在遠程溫度監控系統中的應用作了一個較為系統的研究.首先介紹嵌入式Web服務器的原理與應用,然后針對嵌入式We
    發表于 11-04 11:06 ?27次下載
    <b class='flag-5'>嵌入式</b>web<b class='flag-5'>服務器</b>系統,<b class='flag-5'>嵌入式</b>Web<b class='flag-5'>服務器</b>的設計與實現