FTP與大多數Internet服務一樣,使用的也是“客戶端/服務器”模式。用戶通過一個支持FTP協議的客戶機程序,連接在遠程主機上的FTP服務器程序。通過在客戶端向服務器端發送FTP命令,服務器執行該命令,并將執行結果返回給客戶端。由于“控制連接”的因素,客戶端發送的FTP命令,服務器都會有對應的應答。FTP工作流程如圖1所示。


圖1 工作流程
圖1中顯示了FTP進行文件傳輸的基本工作流程。主要分為4個階段,即建立連接階段、身份認證階段、命令交互階段和斷開連接階段。下面對這4個階段進行介紹。
1、建立連接階段
該階段是FTP客戶端通過TCP三次握手與FTP服務器端進行建立連接??蛻舳讼騀TP服務器發出建立連接請求,FTP服務器對請求進行應答。如果FTP服務器上的21端口是啟用的,可以接受來自其他主機的請求,給出應答220,表示服務就緒,即告訴客戶端需要的FTP服務已經準備好了。返回應答以后,FTP服務器需要客戶端進行身份認證,向客戶端發送身份認證請求。
2、身份認證階段
身份認證是指客戶端需要向FTP服務提供登錄所需的用戶名和密碼。FTP服務器對客戶端輸入的用戶名和密碼都會給出相應的應答。如果客戶端輸入的用戶名和密碼正確,將成功登錄FTP服務器,此時進入FTP會話。
3、命令交互階段
在FTP會話中,用戶可以執行FTP命令進行文件傳輸,如查看目錄信息、上傳或下載文件等??蛻舳溯斎胍獔绦械腇TP命令后,服務器同樣會給出應答。如果輸入的執命令正確,服務器會將命令的執行結果返回給客戶端。執行結果返回完成后,服務器繼續給出應答。
4、斷開連接階段
當客戶端不再與FTP服務器進行文件傳輸時,需要斷開連接??蛻舳讼騀TP服務器發送斷開連接請求,服務器收到斷開連接后給出相應的應答。
5、驗證工作流程
為了能夠更好地理解FTP客戶端與服務器的工作流程,下面以一個簡單的實例進行介紹。
已知FTP服務器的IP地址為192.168.59.135。使用一個主機作為FTP客戶端與FTP服務器進行文件傳輸。這里查看FTP服務器上目錄content中的信息。執行命令如下:
root@daxueba:~# ftp
為了方便分析,下面將按照FIP的4個工作流程階段進行分析。
1)建立連接。
ftp> open 192.168.59.135 #客戶端請求建立連接
Connected to 192.168.59.135.220 Welcome #服務器應答,應答碼為220
以上輸出信息顯示客戶端向FTP服務器192.168.59.135發起了連接請求,服務器給出了對應的應答碼220,表示成功建立了連接。
2)身份認證。
Name (192.168.59.135:root): sm #客戶端輸入的用戶名(明文顯示),這里為sm
331 User name ok, need password. #服務器應答,應答碼為331
Password: #客戶端輸入的密碼
230 User logged in, proceed. #服務器應答,應答碼為230
以上輸出信息顯示了客戶端輸入的用戶名和密碼,并顯示了對應的應答碼。用戶名的應答碼為331,表示還需要客戶端輸入密碼;密碼的應答碼為230,表示登錄成功。
3)命令交互。
Remote system type is UNIX.
Using binary mode to transfer files.
ftp> dir content #客戶端執行的命令
200 Connected. #服務器應答,應答碼為200
150 Start of file list. #服務器應答,應答碼為150
-rwxrwxrwx 1 ftp ftp 18 Sep 11 14:47 file-3.txt #目錄列表信息
-rwxrwxrwx 1 ftp ftp 18 Sep 11 14:47 file-1.txt #目錄列表信息
-rwxrwxrwx 1 ftp ftp 18 Sep 11 14:47 file-2.txt #目錄列表信息
226 Transfer complete. #服務器應答,應答碼為226
以上輸出信息顯示了用戶名要執行的命令dir content,表示顯示FTP服務器上content的目錄列表信息;服務器給出了應答,這里給出了兩個應答碼。應答碼為200,表示FTP服務器可以執行該命令;應答碼為150,表示服務器已經準備好了目錄列表,打開數據連接,將執行結果發送給客戶端。這里顯示的目錄列表信息可以看到content中有3個文件file-1.txt,file-2.txt和file-3.txt。輸出信息最后一行顯示了服務器的應答碼226,表示執行結果已經返回。
4)斷開連接。
ftp> quit #客戶端指定的斷開FTP子命令
221 Service closing control connection. #服務器應答,應答碼為221
以上輸出信息顯示了客戶端執行的斷開連接的FTP子命令quit。最后一行顯示了服務器的應答,應答碼為221,表示服務器確認退出登錄。
版權聲明:本文內容由互聯網用戶自發貢獻,該文觀點僅代表作者本人。本站僅提供信息存儲空間服務,不擁有所有權,不承擔相關法律責任。如發現本站有涉嫌抄襲侵權/違法違規的內容, 請發送郵件至 舉報,一經查實,本站將立刻刪除。