新聞中心

EEPW首頁 > 嵌入式系統(tǒng) > 設(shè)計應(yīng)用 > 嵌入式FTP服務(wù)器的設(shè)計與實現(xiàn)

嵌入式FTP服務(wù)器的設(shè)計與實現(xiàn)

作者: 時間:2010-06-11 來源:網(wǎng)絡(luò) 收藏
0引言

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

然而,有時系統(tǒng)的開發(fā)環(huán)境并不支持FTP協(xié)議(如ADSP的集成開發(fā)環(huán)境Visual DSP++),在這種情況下,利用已有的LWIP堆棧中的一些基礎(chǔ)函數(shù)來構(gòu)建一個FTP,正是本文要詳細探討的話題。

1 文件傳輸過程

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



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

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

FTP服務(wù)器的內(nèi)部結(jié)構(gòu)可根據(jù)不同的需求,選擇不同的服務(wù)器模式。因為服務(wù)器模式?jīng)Q定著結(jié)構(gòu),而不同的結(jié)構(gòu)又很大程度地影響著FTP服務(wù)器的性能。服務(wù)器的模式主要有循環(huán)服務(wù)器和并發(fā)服務(wù)器。

1.1循環(huán)服務(wù)器

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

1.2 并發(fā)服務(wù)器

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

2 FTP服務(wù)器的實現(xiàn)

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

上一頁 1 2 下一頁

評論


相關(guān)推薦

技術(shù)專區(qū)

關(guān)閉