新聞中心

        EEPW首頁 > 嵌入式系統 > 設計應用 > 嵌入式FTP服務器的設計與實現

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

        作者: 時間:2010-06-11 來源:網絡 收藏
        0引言

        隨著設備的不斷發展,其對通信也提出了越來越高的要求。(File Transfer Protocol)作為internet上最早提供的服務之一,至今仍然被人們廣泛使用,文件傳輸服務的最主要的規范。當需要考慮到文件傳輸安全、傳輸質量、訪問控制等諸多因素時,就成了解決文件傳輸問題的關鍵所在。

        然而,有時系統的開發環境并不支持FTP協議(如ADSP的集成開發環境Visual DSP++),在這種情況下,利用已有的LWIP堆棧中的一些基礎函數來構建一個FTP,正是本文要詳細探討的話題。

        1 文件傳輸過程

        FTP協議與一般的Intemet協議不同。Intemet協議通常采用一個TCP連接來傳送信息(如HTTP協議);而FTP協議則采用兩個TCP連接來文件的傳輸,其中一個用來為文件傳輸下命令,另一個則真正的傳輸過程。圖1所示是FTP文件傳輸的原理圖。



        客戶端想要獲取存放在上的文件時,應先通過一個預定義的端口號21主動與服務器建立連接,服務器收到請求后,通過3次握手,就可在進行FTP命令處理的用戶協議解釋器(PI)和服務器協議解釋器之間建立一條TCP連接。該連接始終等待用戶和服務器之間的通信,并傳輸用戶輸入的所有FTP命令和服務器的應答,即FTP傳輸中的命令連接。

        當客戶通過交互式用戶界面向FTP服務器發出要下載服務器上某一文件的命令時,該命令即被送到用戶協議解釋器,并由用戶協議解釋器進行處理。FTP將在服務器端口號20上打開一個數據TCP連接。在數據連接上傳送完本次請求需傳送的文件之后,它將關閉數據連接,直到再有文件傳送請求時再重新打開。因此,在FTP中,控制連接在整個用戶會話期間一直打開著,而數據連接則是一條臨時連接,當且僅當執行文件傳輸過程時才被創建。

        FTP服務器的內部結構可根據不同的需求,選擇不同的服務器模式。因為服務器模式決定著結構,而不同的結構又很大程度地影響著FTP服務器的性能。服務器的模式主要有循環服務器和并發服務器。

        1.1循環服務器

        循環服務器只適應于最簡單的應用協議,它采用客戶輪流等待的工作方式。但它的、編程、調試和修改都比較簡單,在其響應時間可以滿足需求的條件下(這個時間可以在本地或全局網絡中進行測試),可以采用循環服務器模式。

        1.2 并發服務器

        如果構建一個響應需要大量的I/O操作,且各個請求所需要的處理時間差別非常大,或服務器在一臺多處理器的計算機上運行,則可引入并發性方法來縮短響應時間。大多數并發服務器使用多個進程以及多個線程。其線程可分為兩類:主服務器線程和從服務器線程。然而,在有些情況下,一些操作系統創建一個線程的開銷很大,服務器無法承擔為每個請求或每個連接都創建一個線程的重負時,可采用單線程的并發模式。

        2 FTP服務器的實現

        圖2所示是以ADSP-BF537為核心的嵌入式系統的硬件組成框圖。圖中,基于Blackfin處理器的ADSP--BF537具有接口豐富,性能優良,價格低廉等特點,并具有強大的多媒體數據處理能力。ADSP的集成開發環境Visual DSP++中嵌入了實時操作系統內核VDK,適合于多任務多線程的嵌入式操作。此外,ADI還提供了一個用于Blackfin系列嵌入式處理器的LwIP協議棧端口,利用它可以快速將一個獨立的嵌入式應用聯網。圖2中的BF537可通過網絡芯片LAN8187實現與上位機之間的網絡通信,同時利用自身的PPI口實現與存儲陣列的通信和管理。
        linux操作系統文章專題:linux操作系統詳解(linux不再難懂)

        上一頁 1 2 下一頁

        評論


        相關推薦

        技術專區

        關閉
        主站蜘蛛池模板: 库伦旗| 方城县| 石棉县| 明水县| 凉城县| 夏津县| 泗洪县| 武功县| 昔阳县| 高唐县| 德昌县| 福贡县| 离岛区| 唐山市| 永嘉县| 永新县| 金川县| 灌阳县| 望谟县| 同仁县| 循化| 阿拉善右旗| 金川县| 南丰县| 淅川县| 丹东市| 额尔古纳市| 昌图县| 泉州市| 平遥县| 加查县| 兖州市| 榆林市| 庐江县| 女性| 蒙阴县| 达州市| 镇远县| 耿马| 海门市| 定南县|