亚洲国产AV一区二区三区久久_乱人妻中文字幕视频_91麻豆精品国产一级_精品国产欧美另类一区

您的當前位置: 首頁>>貴州新聞中心>>行業(yè)資訊

java實現(xiàn)FTP協(xié)議,需要的數(shù)據(jù)傳輸模型和相關(guān)命令

瀏覽量(91168) 時間:2020-09-09

    FTP數(shù)據(jù)發(fā)送雙方建立控制命令通道和數(shù)據(jù)傳輸通道后,雙方就可以發(fā)送數(shù)據(jù)。在數(shù)據(jù)傳輸中,F(xiàn)TP協(xié)議又規(guī)定了三種模式,分別是流模式,塊模式和壓縮模式。

第一種流模式其實就是簡單的將要傳輸?shù)臄?shù)據(jù)比特以一種連續(xù)的非結(jié)構(gòu)化的方式在TCP協(xié)議的幫助下發(fā)送給對方,這里它就是一段數(shù)據(jù),不存在包頭或字段這類有關(guān)數(shù)據(jù)組織結(jié)構(gòu)的信息。由于被傳輸?shù)男畔⑹锹銛?shù)據(jù),沒有任何結(jié)構(gòu)化組織,因此發(fā)送的準確性完全依賴于傳輸方和下層協(xié)議的穩(wěn)定性,特別是數(shù)據(jù)傳輸完成就得依靠關(guān)閉數(shù)據(jù)通道來表示。

相比于其他兩種模式,流模式的特點是效率高,因此在協(xié)議的實現(xiàn)中使用廣泛。同時它實現(xiàn)簡單,并且它將所有要傳輸?shù)臄?shù)據(jù)進行無差別對待,別管要傳輸?shù)臄?shù)據(jù)結(jié)構(gòu)如何,它通通將其看做為字節(jié)流,因此就能隔離數(shù)據(jù)結(jié)構(gòu)的復雜性對傳輸協(xié)議實現(xiàn)的影響。由此效率高,實現(xiàn)簡單,傳輸數(shù)據(jù)復雜性隔離這三個特點使得這種傳輸模式成為FTP的實現(xiàn)主流。

第二種塊模式是指,將要傳輸?shù)臄?shù)據(jù)切割成長度固定的若干各部分,每個部分在發(fā)送時使用包頭等字段進行封裝,使得發(fā)送的數(shù)據(jù)塊相互間形成獨立的數(shù)據(jù)包。包頭含有三字節(jié)字段,分別表示塊的長度以及其他相關(guān)數(shù)據(jù)。同時還有一種特別的算法用于對數(shù)據(jù)塊進行追蹤,如果數(shù)據(jù)塊傳輸出現(xiàn)問題算法還能中斷或者重啟傳輸流程。

第三種是壓縮模式。它使用游程編碼對發(fā)送數(shù)據(jù)進行壓縮,同時將壓縮相關(guān)信息以包頭字段的方式進行組織,這樣對方收到后知道如何對數(shù)據(jù)進行解壓縮,因此壓縮模式使用包頭+數(shù)據(jù)體的方式進行數(shù)據(jù)的組織發(fā)送。壓縮模式由于實現(xiàn)的復雜性,在FTP協(xié)議中很少使用,除非在特定網(wǎng)絡(luò)條件下需要盡可能減少數(shù)據(jù)傳輸量以保證效率和準確性時,該模式才會被采用。

文件傳輸類似ctrl+c和ctrl+v,區(qū)別在于復制操作是在同一臺電腦內(nèi)將數(shù)據(jù)從一個目錄轉(zhuǎn)移到另一個目錄,文件傳輸是將數(shù)據(jù)從一臺電腦轉(zhuǎn)移到另一臺電腦。但這是這一區(qū)別產(chǎn)生了一些問題,例如在windows上文本文件的結(jié)尾使用CR+LF表示,但在Mac系統(tǒng)上文本文件結(jié)尾使用CR表示,于是把一個文本文件從Mac拷貝到windows,在文件末尾處就容易出問題,為此FTP協(xié)議在傳輸數(shù)據(jù)時對數(shù)據(jù)類型增加了若干考慮。

首先FTP協(xié)議把數(shù)據(jù)分成4種形式加以考慮,一是ASCII,也就是文本為字符形式;二是EBCDIC,這類文件也是字符形式只不過字符來自IBM的EBCDIC字符集;三是圖像,這類文件可以不用考慮不同系統(tǒng)之間的區(qū)別;四是局部形式,這類文件的特點是,一個字節(jié)長度不是由8個比特組成,某些特殊操作系統(tǒng)就有這種特性。我們在實踐中只考慮情況一和三,對于情況一,協(xié)議要負責把文件結(jié)尾的符號根據(jù)系統(tǒng)進行修改,情況二中的圖像文件不僅僅包括圖像,像zip文件這類有同一格式的文件都屬于圖像。

在傳輸ASCII文件時,發(fā)送方每讀取一行內(nèi)容后就在后面添加字符CR+LF,接收方讀取到這兩個字符組合后知道這是一行結(jié)束,然后根據(jù)當前所在系統(tǒng)修改,如果接收方是Mac系統(tǒng),那么就將這兩個字符改為CR。由于FTP會對傳輸數(shù)據(jù)進行修改,因此在傳輸一定不能把”圖像“類型的文件設(shè)置成ASCII類型,要不然”圖像“類型文件中的二進制字符被修改后在接收方就無法打開文件。

接下來我們看看協(xié)議的數(shù)據(jù)包格式,特別是控制命令的數(shù)據(jù)包格式。FTP的控制命令有3種,第一種是接入控制命令,他對應(yīng)用戶登錄和認證。第二種是傳輸控制命令,它用于雙方協(xié)定數(shù)據(jù)如何傳輸,例如設(shè)置傳輸文件的類型,設(shè)定主動或被動傳輸模式;第三是FTP服務(wù)命令,這些命令用于發(fā)起數(shù)據(jù)傳輸,修改或刪除文件等等。FTP在傳輸控制命令時使用Telnet協(xié)議,因此命令會以純字符的形式進行發(fā)送,下面我們以列表方式對命令內(nèi)容進行描述:
命令碼     命令     描述
USER     用戶名     在建立連接時發(fā)生用戶名
PASS     密碼     在用戶登錄時提供密碼
ACCT     賬戶類型     用于設(shè)定用戶權(quán)限,通常FTP貴州服務(wù)器會根據(jù)用戶名來直接指定其權(quán)限
CWD     更改當前目錄     設(shè)定用戶登錄后對應(yīng)的貴州服務(wù)器目錄
CDUP     回到上一層目錄     將當前目錄的上一層目錄作為數(shù)據(jù)傳輸目錄
SMNT     結(jié)構(gòu)掛載     讓貴州服務(wù)器掛載上新的文件系統(tǒng)以便讀取特定文件
REIN     重新初始化     將連接重啟,他會將當前控制參數(shù)全部清除,類似于系統(tǒng)重啟
QUIT     退出登錄     當數(shù)據(jù)發(fā)送完畢后用戶退出登錄

接下來我們看看控制命令相關(guān)說明:
命令碼     命令     描述
PORT     建立數(shù)據(jù)傳輸端口     這個端口將被客戶端用于和服務(wù)器建立數(shù)據(jù)傳輸連接
PASV     消極模式     該命令讓客戶端向服務(wù)器主動發(fā)起連接
TYPE     文件類型     用于設(shè)定要傳輸?shù)奈募愋?br/>STRU     文件結(jié)構(gòu)     通常情況下該命令不會被使用
MODE     傳輸模式     設(shè)定數(shù)據(jù)如何傳輸,是以流模式,塊模式,還是壓縮模式

接下來我們看看服務(wù)命令的說明:
命令碼     命令     描述
RETR     獲取數(shù)據(jù)     通知服務(wù)器向客戶端發(fā)送文件數(shù)據(jù)
STOR     存儲     客戶端要發(fā)送文件給服務(wù)器
STOU     唯一存儲     要求服務(wù)器在確保當前目錄下所傳輸?shù)奈募荒苡幸环?br/>APPEN     內(nèi)容添加     如果當前傳輸?shù)奈募谀夸浵掠型募?,那么將傳輸?shù)膬?nèi)容添加到同名文件末尾而不是覆蓋同名文件
ALLO     分配內(nèi)存     要求服務(wù)器為將要發(fā)送的文件提前分配存儲空間
REST     重啟     重啟文件傳輸流程,該命令只用在塊傳輸或壓縮傳輸方式
RNFR     重命名文件     指定將要被重命名的文件名
RNTO     文件重命名     將指定文件改名為指定名稱
ABOR     取消命令     通知服務(wù)器取消執(zhí)行上一次發(fā)送的命令
DELE     刪除     通知服務(wù)器刪除某個文件
RMD     刪除目錄     通知服務(wù)器刪除整個目錄
MKD     創(chuàng)建目錄     通知服務(wù)器創(chuàng)建一個新目錄
PWD     顯示當前目錄     通知服務(wù)器告知用戶當前所在目錄
LIST     列表     獲得當前目錄的所有文件名以及文件相關(guān)信息例如修改時間等
NLST     命名列表     僅僅獲得當前目錄下的文件名
SYST     系統(tǒng)     要求服務(wù)器返回它所在的操作系統(tǒng)信息
STAT     狀態(tài)     要求服務(wù)器返回指定文件的當前狀態(tài)或是當前數(shù)據(jù)傳輸?shù)臓顟B(tài)
HELP     幫助     要求服務(wù)器返回幫助信息以便客戶端決定如何使用服務(wù)器
NOOP     無操作     該命令表示什么操作都不做,服務(wù)器會返回”O(jiān)K"命令從而確保連通正常

以上文章來源于網(wǎng)絡(luò),如有侵權(quán)請聯(lián)系創(chuàng)一網(wǎng)的客服處理。謝謝!

最新文章