衡阳派盒市场营销有限公司

0
  • 聊天消息
  • 系統(tǒng)消息
  • 評(píng)論與回復(fù)
登錄后你可以
  • 下載海量資料
  • 學(xué)習(xí)在線課程
  • 觀看技術(shù)視頻
  • 寫文章/發(fā)帖/加入社區(qū)
會(huì)員中心
創(chuàng)作中心

完善資料讓更多小伙伴認(rèn)識(shí)你,還能領(lǐng)取20積分哦,立即完善>

3天內(nèi)不再提示

基于嵌入式的FTP服務(wù)器的設(shè)計(jì)、結(jié)構(gòu)與工作模式介紹

電子設(shè)計(jì) ? 來(lái)源:郭婷 ? 作者:電子設(shè)計(jì) ? 2018-12-04 09:11 ? 次閱讀

引言

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

根據(jù)RFC959描述,F(xiàn)TP的目標(biāo)是:促進(jìn)程序/數(shù)據(jù)文件的共享;鼓勵(lì)(通過(guò)程序)使用遠(yuǎn)程計(jì)算機(jī);使用戶不必面對(duì)不同主機(jī)上不同文件系統(tǒng)的差異;對(duì)數(shù)據(jù)進(jìn)行高效可靠的傳輸。本文在國(guó)產(chǎn)嵌入式實(shí)時(shí)操作系統(tǒng)的平臺(tái)上,在已有TCP協(xié)議支持的基礎(chǔ)上,設(shè)計(jì)開(kāi)發(fā)滿足RFC959要求的FTP服務(wù)器,功能支持對(duì)FTP客戶端常用命令的正確響應(yīng),性能滿足嵌入式環(huán)境的要求。

1 文件傳輸過(guò)程

1.1 FTP工作模式

FTP服務(wù)采用典型的客戶端/服務(wù)器工作模式,在網(wǎng)絡(luò)遠(yuǎn)端提供FTP服務(wù)的計(jì)算機(jī)稱為FTP服務(wù)器,與用戶的客戶端通過(guò)TCP進(jìn)行鏈接。FTP服務(wù)器通過(guò)2個(gè)并行的TCP鏈接來(lái)提供服務(wù),一個(gè)是控制鏈接,一個(gè)是數(shù)據(jù)鏈接。控制鏈接始終等待客戶與服務(wù)器之間的通信,該鏈接將客戶命令從客戶端傳給服務(wù)器,并傳回服務(wù)器的應(yīng)答。數(shù)據(jù)鏈接則是每當(dāng)一個(gè)文件在客戶端和服務(wù)器之間傳輸前,才進(jìn)行創(chuàng)建,只用于數(shù)據(jù)傳輸目的。

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

1.2 FTP工作流程

在典型的FTP客戶機(jī)和服務(wù)器的鏈接建立及交互過(guò)程中,一般需要經(jīng)歷以下幾個(gè)步驟:

(1)在服務(wù)器端運(yùn)行FTP服務(wù)器端程序,等待用戶發(fā)出鏈接請(qǐng)求,在客戶端運(yùn)行FTP客戶端程序。

(2)當(dāng)FTP 客戶端發(fā)起FTP 會(huì)話嘗試鏈接服務(wù)器時(shí),客戶端首先發(fā)起建立與FTP服務(wù)器21端口之間的控制鏈接,通過(guò)該TCP鏈接發(fā)送用戶名和密碼給服務(wù)器端。

(3)客戶端為所在的數(shù)據(jù)鏈接選擇一個(gè)臨時(shí)的端口號(hào),并通過(guò)控制鏈接將該端口號(hào)發(fā)送給服務(wù)器。

(4)當(dāng)需要進(jìn)入文件傳輸階段,客戶端和服務(wù)器通過(guò)“數(shù)據(jù)鏈接”來(lái)傳輸文件,通過(guò)“控制鏈接”來(lái)傳輸命令。

(5)當(dāng)數(shù)據(jù)傳輸完畢后,關(guān)閉用于建立數(shù)據(jù)鏈接的端口,直到下次數(shù)據(jù)鏈接發(fā)起時(shí)重新打開(kāi),而控制鏈接在整個(gè)FTP會(huì)話期間一直處于打開(kāi)狀態(tài)。

基于嵌入式的FTP服務(wù)器的設(shè)計(jì)、結(jié)構(gòu)與工作模式介紹

2 FTP 服務(wù)器設(shè)計(jì)

選擇不同的服務(wù)器模式將會(huì)影響到整個(gè)設(shè)計(jì)和實(shí)現(xiàn)階段,并且很大程度影響著服務(wù)器的性能。FTP服務(wù)器的內(nèi)部設(shè)計(jì)可以根據(jù)需要和平臺(tái)軟硬件的性能綜合考慮,選擇設(shè)計(jì)不同的服務(wù)器模式。

2.1 服務(wù)器結(jié)構(gòu)

服務(wù)器的結(jié)構(gòu)主要有循環(huán)服務(wù)器和并發(fā)服務(wù)器2種,其中并發(fā)服務(wù)器又可以細(xì)分為單線程并發(fā)服務(wù)器和多線程并發(fā)服務(wù)器。

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

循環(huán)服務(wù)器適用于簡(jiǎn)單的應(yīng)用協(xié)議,與客戶端采用停止-等待的通信方式,使用單個(gè)線程循環(huán)運(yùn)行,每次只能處理一個(gè)客戶端的請(qǐng)求,但是它的設(shè)計(jì)、編碼、調(diào)試和后續(xù)維護(hù)相對(duì)并發(fā)服務(wù)器都比較簡(jiǎn)單。

2.1.2 單線程并發(fā)服務(wù)器

單線程并發(fā)服務(wù)器是由單個(gè)服務(wù)器線程預(yù)先為多個(gè)客戶端打開(kāi)TCP鏈接,當(dāng)有任意的客戶端請(qǐng)求到達(dá)時(shí),服務(wù)器線程由阻塞態(tài)轉(zhuǎn)為運(yùn)行態(tài)來(lái)處理該客戶端請(qǐng)求并發(fā)送響應(yīng),在此期間阻塞其他客戶端請(qǐng)求。完成一個(gè)客戶端請(qǐng)求后,服務(wù)器線程再次阻塞以等待其他的任意客戶端的請(qǐng)求。單線程并發(fā)服務(wù)器適用于操作系統(tǒng)創(chuàng)建新的線程開(kāi)銷很大的情況下。

2.1.3 多線程并發(fā)服務(wù)器

多線程并發(fā)服務(wù)器設(shè)計(jì)使用多個(gè)進(jìn)程及多個(gè)線程,服務(wù)器首先執(zhí)行一個(gè)主線程,在熟知的端口上打開(kāi)一個(gè)鏈接,等待客戶端消息,當(dāng)客戶端請(qǐng)求到來(lái)時(shí),主線程創(chuàng)建子線程來(lái)處理該客戶請(qǐng)求,此時(shí)主線程不與客戶端直接通信,而是由每個(gè)子線程并發(fā)地來(lái)與各自對(duì)應(yīng)的客戶端進(jìn)行通信。當(dāng)子線程完成客戶請(qǐng)求的響應(yīng)并發(fā)送給客戶端之后,子線程退出,而此時(shí)主線程一直在等待其他的客戶鏈接請(qǐng)求。

2.2 方案選擇

服務(wù)器結(jié)構(gòu)的方案選擇主要取決于服務(wù)器的應(yīng)用場(chǎng)景、期望達(dá)到的性能以及方案實(shí)現(xiàn)的難易程度。

循環(huán)服務(wù)器的結(jié)構(gòu)容易實(shí)現(xiàn)但是需要客戶端等待來(lái)獲取服務(wù),難以滿足多個(gè)客戶的需求,服務(wù)器效率性能低下;單線程服務(wù)器結(jié)構(gòu)需要服務(wù)器線程反復(fù)地在它打開(kāi)的鏈接上等待客戶端請(qǐng)求,需要每次循環(huán)地檢查網(wǎng)絡(luò)鏈接狀況和文件系統(tǒng)處理文件的狀態(tài),查詢完成后才能夠刷新數(shù)據(jù)顯示,因此造成不必要的延遲;多線程并發(fā)服務(wù)器同時(shí)和多個(gè)客戶端進(jìn)行通信,由操作系統(tǒng)分配各個(gè)線程的處理器時(shí)間,比較適合FTP服務(wù)器的對(duì)每個(gè)客戶端一直存在控制鏈接和需要時(shí)建立數(shù)據(jù)鏈接的特點(diǎn)。綜合上述分析,本課題中FTP服務(wù)器采用多線程并發(fā)服務(wù)器結(jié)構(gòu)的方案是比較合理的。

3 FTP 服務(wù)器實(shí)現(xiàn)

根據(jù)上述設(shè)計(jì)方案的描述,本課題中FTP服務(wù)器的程序架構(gòu)進(jìn)行如下設(shè)計(jì):

系統(tǒng)上電操作系統(tǒng)運(yùn)行之后,ftpdInit函數(shù)在默認(rèn)的端口上創(chuàng)建一個(gè)FTP服務(wù)器控制鏈接,并且調(diào)用ftpd-Task創(chuàng)建一個(gè)FTP服務(wù)進(jìn)程來(lái)響應(yīng)多個(gè)用戶的請(qǐng)求。其中ftpdTask使用ftpdWorkTask為每個(gè)不同的用戶在各自需要時(shí)分別創(chuàng)建一個(gè)服務(wù)進(jìn)程進(jìn)行響應(yīng),如圖2所示。

基于嵌入式的FTP服務(wù)器的設(shè)計(jì)、結(jié)構(gòu)與工作模式介紹

ftpdWorkTask 完成FTP 服務(wù)器的主要協(xié)議處理功能,該進(jìn)程分析每個(gè)客戶端請(qǐng)求命令,做出響應(yīng)并且回復(fù)給客戶端。函數(shù)的主體是一個(gè)循環(huán)結(jié)構(gòu),分析客戶端請(qǐng)求命令的功能由簡(jiǎn)單的strncmp函數(shù)來(lái)實(shí)現(xiàn),如果經(jīng)過(guò)分析之后命令符合有效命令的格式,ftpdWorkTask將調(diào)用響應(yīng)的處理函數(shù)并且將處理結(jié)果返回給客戶端。

根據(jù)RFC959,FTP服務(wù)器需要響應(yīng)的命令分為訪問(wèn)控制命令、傳輸參數(shù)命令和服務(wù)命令。本課題設(shè)計(jì)的FTP服務(wù)器實(shí)現(xiàn)了對(duì)以下命令的響應(yīng)。

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

基于嵌入式的FTP服務(wù)器的設(shè)計(jì)、結(jié)構(gòu)與工作模式介紹

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

當(dāng)前可用的默認(rèn)值,如表2所示。

基于嵌入式的FTP服務(wù)器的設(shè)計(jì)、結(jié)構(gòu)與工作模式介紹

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

基于嵌入式的FTP服務(wù)器的設(shè)計(jì)、結(jié)構(gòu)與工作模式介紹

4 功能及性能測(cè)試

在完成設(shè)計(jì)、編碼及交叉編譯之后,對(duì)嵌入式FTP服務(wù)器在目標(biāo)機(jī)上的運(yùn)行的情況進(jìn)行功能和簡(jiǎn)單的性能測(cè)試。

4.1 功能測(cè)試

功能測(cè)試的目的是驗(yàn)證FTP服務(wù)器是否能夠正常處理協(xié)議所要求的功能,測(cè)試工具為FTP客戶端軟件包括WindowsXP 命令行中的FTP 命令,F(xiàn)lashFXP 以及在WindowsCE操作系統(tǒng)下開(kāi)發(fā)的專用FTP客戶端軟件。

4.2 性能測(cè)試

嵌入式FTP服務(wù)器運(yùn)行在MPC755處理器子卡上,處理器為PowerPC755,處理器工作頻率為266 MHz,局部總線頻率為66 MHz,1路10M/100M以太網(wǎng)接口。存儲(chǔ)設(shè)備為大容量存儲(chǔ)器子卡,存儲(chǔ)容量為128 GB,讀/寫訪問(wèn)速度5 MB/s以上(裸盤)。測(cè)試結(jié)果表明使用Win-dows XP 平臺(tái)的客戶端軟件進(jìn)行下載速度可以達(dá)到800 KB/s以上,使用WindowsCE平臺(tái)的客戶端軟件進(jìn)行下載速度可以達(dá)到300 KB/s以上。

5 結(jié)語(yǔ)

本文介紹了FTP協(xié)議的工作模式和工作流程,介紹了FTP服務(wù)器的典型結(jié)構(gòu),即循環(huán)服務(wù)器、單線程并發(fā)服務(wù)器和多線程并發(fā)服務(wù)器,并且分析了這三種FTP服務(wù)器結(jié)構(gòu)的優(yōu)缺點(diǎn),根據(jù)課題項(xiàng)目需要,選擇多線程并發(fā)服務(wù)器的結(jié)構(gòu)為設(shè)計(jì)方案進(jìn)行詳細(xì)設(shè)計(jì)。實(shí)現(xiàn)的功能包括對(duì)RFC959標(biāo)準(zhǔn)定義的訪問(wèn)控制命令、傳輸參數(shù)命令和FTP服務(wù)命令在內(nèi)的常用命令的處理和響應(yīng)。

最后對(duì)該嵌入式FTP服務(wù)器的功能和性能進(jìn)行簡(jiǎn)單的測(cè)試,測(cè)試結(jié)果表明功能和性能符合期望標(biāo)準(zhǔn)。

聲明:本文內(nèi)容及配圖由入駐作者撰寫或者入駐合作網(wǎng)站授權(quán)轉(zhuǎn)載。文章觀點(diǎn)僅代表作者本人,不代表電子發(fā)燒友網(wǎng)立場(chǎng)。文章及其配圖僅供工程師學(xué)習(xí)之用,如有內(nèi)容侵權(quán)或者其他違規(guī)問(wèn)題,請(qǐng)聯(lián)系本站處理。 舉報(bào)投訴
  • 協(xié)議
    +關(guān)注

    關(guān)注

    2

    文章

    606

    瀏覽量

    39342
  • 服務(wù)器
    +關(guān)注

    關(guān)注

    12

    文章

    9306

    瀏覽量

    86069
  • 操作系統(tǒng)
    +關(guān)注

    關(guān)注

    37

    文章

    6896

    瀏覽量

    123749
收藏 人收藏

    評(píng)論

    相關(guān)推薦

    基于H264的嵌入式視頻服務(wù)器的設(shè)計(jì)

    基于H264的嵌入式視頻服務(wù)器的設(shè)計(jì)摘要! 本文介紹了基于的嵌入式視頻服務(wù)器的設(shè)計(jì)重點(diǎn)闡述了嵌入式
    發(fā)表于 06-25 10:50

    嵌入式FTP服務(wù)器能實(shí)現(xiàn)什么功能?

    FTP服務(wù)是目前廣泛應(yīng)用的因特網(wǎng)應(yīng)用服務(wù)之一,為了在國(guó)產(chǎn)嵌入式實(shí)時(shí)操作系統(tǒng)平臺(tái)上開(kāi)發(fā)FTP服務(wù)
    發(fā)表于 03-11 08:27

    嵌入式linux下ftp服務(wù)是怎樣移植的

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

    如何實(shí)現(xiàn)對(duì)嵌入式WEB服務(wù)器系統(tǒng)的控制設(shè)計(jì)

    ......摘要工程實(shí)踐教學(xué)環(huán)節(jié)是為了學(xué)生能夠更好地鞏固和實(shí)踐所學(xué)專業(yè)知識(shí)而設(shè)置的,在本次工程實(shí)踐中,我們以ARM體系結(jié)構(gòu)與編程課程中所學(xué)知識(shí)為基礎(chǔ),對(duì)基于ARM的簡(jiǎn)單嵌入式WEB服務(wù)器系統(tǒng)進(jìn)行了
    發(fā)表于 11-09 08:47

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

    概況,工作原理,軟硬件設(shè)計(jì)及其在遠(yuǎn)程溫度監(jiān)控系統(tǒng)中的應(yīng)用作了一個(gè)較為系統(tǒng)的研究.首先介紹嵌入式Web服務(wù)器的原理與應(yīng)用,然后針對(duì)嵌入式We
    發(fā)表于 11-09 08:41

    介紹嵌入式Web服務(wù)器工作原理

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

    如何使用Apache FtpServer實(shí)現(xiàn)嵌入式FTP服務(wù)器

    1.Apache FtpServer是一個(gè)純Java實(shí)現(xiàn)的FTP服務(wù)器2.既可以作為一個(gè)完整的FTP服務(wù)器單獨(dú)使用,也可以在Java程序中調(diào)用3.使用Apache FtpServer實(shí)
    發(fā)表于 12-27 06:49

    嵌入式Web 服務(wù)器的分析與研究

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

    GM8180的嵌入式視頻服務(wù)器設(shè)計(jì)

    GM8180的嵌入式視頻服務(wù)器設(shè)計(jì)摘要:詳細(xì)介紹了一種基于臺(tái)灣智原科技公司GM8180芯片的嵌入式視頻服務(wù)器設(shè)計(jì)。描述了該
    發(fā)表于 04-03 11:06 ?1798次閱讀
    GM8180的<b class='flag-5'>嵌入式</b>視頻<b class='flag-5'>服務(wù)器</b>設(shè)計(jì)

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

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

    基于DSP的嵌入式FTP服務(wù)器實(shí)現(xiàn)方法介紹

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

    基于ARM的嵌入式Web服務(wù)器的設(shè)計(jì)方案

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

    嵌入式linux下ftp服務(wù)移植

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

    嵌入式web服務(wù)器系統(tǒng)設(shè)計(jì),基于-ARM簡(jiǎn)單嵌入式WEB服務(wù)器系統(tǒng)設(shè)計(jì).doc

    ......摘 要工程實(shí)踐教學(xué)環(huán)節(jié)是為了學(xué)生能夠更好地鞏固和實(shí)踐所學(xué)專業(yè)知識(shí)而設(shè)置的,在本次工程實(shí)踐中,我們以ARM體系結(jié)構(gòu)與編程課程中所學(xué)知識(shí)為基礎(chǔ),對(duì)基于ARM的簡(jiǎn)單嵌入式WEB服務(wù)器系統(tǒng)
    發(fā)表于 11-03 20:06 ?21次下載
    <b class='flag-5'>嵌入式</b>web<b class='flag-5'>服務(wù)器</b>系統(tǒng)設(shè)計(jì),基于-ARM簡(jiǎn)單<b class='flag-5'>嵌入式</b>WEB<b class='flag-5'>服務(wù)器</b>系統(tǒng)設(shè)計(jì).doc

    嵌入式web服務(wù)器系統(tǒng),嵌入式Web服務(wù)器的設(shè)計(jì)與實(shí)現(xiàn)

    概況,工作原理,軟硬件設(shè)計(jì)及其在遠(yuǎn)程溫度監(jiān)控系統(tǒng)中的應(yīng)用作了一個(gè)較為系統(tǒng)的研究.首先介紹嵌入式Web服務(wù)器的原理與應(yīng)用,然后針對(duì)嵌入式We
    發(fā)表于 11-04 11:06 ?27次下載
    <b class='flag-5'>嵌入式</b>web<b class='flag-5'>服務(wù)器</b>系統(tǒng),<b class='flag-5'>嵌入式</b>Web<b class='flag-5'>服務(wù)器</b>的設(shè)計(jì)與實(shí)現(xiàn)
    365在线投注| 大世界娱乐| 百家乐斗地主下载| 唐人街百家乐官网的玩法技巧和规则 | 百家乐官网网络娱乐场开户注册| 百家乐官网微心打法| 德州扑克读牌| 百家乐路子技巧| 24山向吉凶水法| 百家乐官网推筒子| 沅陵县| 大发888新网址| 钱隆百家乐的玩法技巧和规则| 百家乐软件官方| 百家乐官网2号程序| 百家乐官网注码技巧| 最好的棋牌游戏| 威尼斯人娱乐棋牌| BB百家乐HD| 百家乐如何视频| 香港百家乐官网赌场娱乐网规则| 威尼斯人娱乐场内幕| 网上百家乐哪家较安全| 永利博百家乐现金网| 大上海百家乐官网的玩法技巧和规则| 百家乐官网群柏拉图软件 | 东方太阳城招聘| 太阳城百家乐客户端| 千亿娱百家乐官网的玩法技巧和规则| 百家乐官网偷码| 百家乐官网游戏开发技术| 岳阳市| 伟易博娱乐城| 德州扑克比赛视频| 威尼斯人娱乐场骗人| 百家乐双峰县| 百家乐单跳| 筹码百家乐500| 在线百家乐有些一| 24山入门| 太阳百家乐官网管理网|