FTP文件傳輸協議是應用層實現的一種通過網絡傳輸文件的協議,這種協議采用C/S架構(即客戶端/服務器模式)。
C/S架構
FTP采用雙連接的方式來進行文件的傳輸(TCP或UDP連接均可):
控制連接用于服務器和客戶端之間命令的交互以及響應,而數據連接則用于文件數據的傳輸。
一個FTP控制連接的建立過程通常如下:
文件傳輸中的處理過程
模式選擇
文本格式以ASCII碼形式在數據連接中傳輸。這就要求發送方将本地文件轉換為ASCII碼形式,而接收方 再将ASCII碼還原成本地文件。采用ASCII碼形式傳輸,每一行都帶有一個回車字符,而後是一個換行符。這就意味着接收方需要掃描每一個字節,查找CR,LF對。
數據發送呈現為一個連續的比特流。通常用于傳輸二進制文件。
格式控制--
文件不含有垂直格式信息。
結構--
文件被認為是一個連續的字節流,不存在内部的文件結構。
傳輸方式--
文件以字節流的形式傳輸。對于文件結構,發方尾提示關閉數據連接。對于記錄結構,有專用的兩字節序列碼标志記錄結束和文件結束。
FTP命令
命令和應答在客戶和服務器的控制連接上以ASCII碼形式傳送。以下為常用的FTP命令:
FTP命令
FTP應答
應答都是ASCII碼形式的3位數字,并跟有報文選項。其原因是軟件系統需要根據數字代碼來決定如何應答,而選項串是面向人工處理的。由于客戶通常需要輸出數字應答和報文串,一個可以交互的用戶可以通過閱讀報文串來确定應答的含義。
下圖是應答代碼第1位和第2位的含義。
FTP應答報文解析
第3位數字給出差錯報文的附加含義。以下是一些典型的應答:
如果需要産生一條多行應答,第1行在3為數字應答代碼之後包含一個連字号,而不是空格。如:
報文示例
連接管理
數據連接有以下三大用途:
FTP把文件列表從數據連接上發回,而不是從控制連接上多行發回,這就避免了行的有限性對目錄大小的限制,而且更易于客戶将目錄列表以文件形式保存,而不是把列表顯示在終端上。
在上面的介紹中,我們簡單叙述了一個FTP控制連接的建立過程,下面介紹FTP數據連接的建立過程。
由于通用的傳輸方式是采用流方式進行傳輸,這種傳輸方式的特點是結尾以關閉數據連接為标志。這就意味着每一個文件和文件列表的傳輸都要建立一個全新的數據連接。其過程一般如下:
下圖是這個過程的簡單示例:
控制連接過程
服務器總是執行數據連接的主動打開。通常也執行數據連接的主動關閉,除非當客戶端向服務器發送流形式的文件時,需要客戶來關閉連接(它給服務器一個文件結束的通知)。
,更多精彩资讯请关注tft每日頭條,我们将持续为您更新最新资讯!