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

圖1 工作流程
圖1中顯示了FTP進行文件傳輸?shù)幕竟ぷ髁鞒?。主要分?個階段,即建立連接階段、身份認(rèn)證階段、命令交互階段和斷開連接階段。下面對這4個階段進行介紹。
1、建立連接階段
該階段是FTP客戶端通過TCP三次握手與FTP服務(wù)器端進行建立連接??蛻舳讼騀TP服務(wù)器發(fā)出建立連接請求,F(xiàn)TP服務(wù)器對請求進行應(yīng)答。如果FTP服務(wù)器上的21端口是啟用的,可以接受來自其他主機的請求,給出應(yīng)答220,表示服務(wù)就緒,即告訴客戶端需要的FTP服務(wù)已經(jīng)準(zhǔn)備好了。返回應(yīng)答以后,F(xiàn)TP服務(wù)器需要客戶端進行身份認(rèn)證,向客戶端發(fā)送身份認(rèn)證請求。
2、身份認(rèn)證階段
身份認(rèn)證是指客戶端需要向FTP服務(wù)提供登錄所需的用戶名和密碼。FTP服務(wù)器對客戶端輸入的用戶名和密碼都會給出相應(yīng)的應(yīng)答。如果客戶端輸入的用戶名和密碼正確,將成功登錄FTP服務(wù)器,此時進入FTP會話。
3、命令交互階段
在FTP會話中,用戶可以執(zhí)行FTP命令進行文件傳輸,如查看目錄信息、上傳或下載文件等??蛻舳溯斎胍獔?zhí)行的FTP命令后,服務(wù)器同樣會給出應(yīng)答。如果輸入的執(zhí)命令正確,服務(wù)器會將命令的執(zhí)行結(jié)果返回給客戶端。執(zhí)行結(jié)果返回完成后,服務(wù)器繼續(xù)給出應(yīng)答。
4、斷開連接階段
當(dāng)客戶端不再與FTP服務(wù)器進行文件傳輸時,需要斷開連接??蛻舳讼騀TP服務(wù)器發(fā)送斷開連接請求,服務(wù)器收到斷開連接后給出相應(yīng)的應(yīng)答。
5、驗證工作流程
為了能夠更好地理解FTP客戶端與服務(wù)器的工作流程,下面以一個簡單的實例進行介紹。
已知FTP服務(wù)器的IP地址為192.168.59.135。使用一個主機作為FTP客戶端與FTP服務(wù)器進行文件傳輸。這里查看FTP服務(wù)器上目錄content中的信息。執(zhí)行命令如下:
root@daxueba:~# ftp
為了方便分析,下面將按照FIP的4個工作流程階段進行分析。
1)建立連接。
ftp> open 192.168.59.135 #客戶端請求建立連接
Connected to 192.168.59.135.220 Welcome #服務(wù)器應(yīng)答,應(yīng)答碼為220
以上輸出信息顯示客戶端向FTP服務(wù)器192.168.59.135發(fā)起了連接請求,服務(wù)器給出了對應(yīng)的應(yīng)答碼220,表示成功建立了連接。
2)身份認(rèn)證。
Name (192.168.59.135:root): sm #客戶端輸入的用戶名(明文顯示),這里為sm
331 User name ok, need password. #服務(wù)器應(yīng)答,應(yīng)答碼為331
Password: #客戶端輸入的密碼
230 User logged in, proceed. #服務(wù)器應(yīng)答,應(yīng)答碼為230
以上輸出信息顯示了客戶端輸入的用戶名和密碼,并顯示了對應(yīng)的應(yīng)答碼。用戶名的應(yīng)答碼為331,表示還需要客戶端輸入密碼;密碼的應(yīng)答碼為230,表示登錄成功。
3)命令交互。
Remote system type is UNIX.
Using binary mode to transfer files.
ftp> dir content #客戶端執(zhí)行的命令
200 Connected. #服務(wù)器應(yīng)答,應(yīng)答碼為200
150 Start of file list. #服務(wù)器應(yīng)答,應(yīng)答碼為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. #服務(wù)器應(yīng)答,應(yīng)答碼為226
以上輸出信息顯示了用戶名要執(zhí)行的命令dir content,表示顯示FTP服務(wù)器上content的目錄列表信息;服務(wù)器給出了應(yīng)答,這里給出了兩個應(yīng)答碼。應(yīng)答碼為200,表示FTP服務(wù)器可以執(zhí)行該命令;應(yīng)答碼為150,表示服務(wù)器已經(jīng)準(zhǔn)備好了目錄列表,打開數(shù)據(jù)連接,將執(zhí)行結(jié)果發(fā)送給客戶端。這里顯示的目錄列表信息可以看到content中有3個文件file-1.txt,file-2.txt和file-3.txt。輸出信息最后一行顯示了服務(wù)器的應(yīng)答碼226,表示執(zhí)行結(jié)果已經(jīng)返回。
4)斷開連接。
ftp> quit #客戶端指定的斷開FTP子命令
221 Service closing control connection. #服務(wù)器應(yīng)答,應(yīng)答碼為221
以上輸出信息顯示了客戶端執(zhí)行的斷開連接的FTP子命令quit。最后一行顯示了服務(wù)器的應(yīng)答,應(yīng)答碼為221,表示服務(wù)器確認(rèn)退出登錄。
本文由網(wǎng)上采集發(fā)布,不代表我們立場,轉(zhuǎn)載聯(lián)系作者并注明出處:http://m.zltfw.cn/shbk/38976.html