FTP(File Transfer Protocol)的縮寫,即文件傳輸協(xié)議,
細(xì)說FTP技術(shù)
。其是TCP/IP協(xié)議族中的一種具體應(yīng)用,它工作在OSI模型的第七層,即應(yīng)用層上,其使用TCP協(xié)議傳輸,即FTP傳輸?shù)乃形募际峭ㄟ^三次握手實現(xiàn),也就是說當(dāng)客戶端與服務(wù)器端之間的數(shù)據(jù)包傳輸,一旦出現(xiàn)丟包現(xiàn)象,會重新傳輸,以保證數(shù)據(jù)的可靠。FTP協(xié)議要使用兩個TCP連接傳送數(shù)據(jù),一個是命令連接,用來在FTP客戶端與服務(wù)器之間傳遞命令;另一個是數(shù)據(jù)連接,用來上傳或下載數(shù)據(jù)。這就直接導(dǎo)致FTP需要2個端口,一個端口用于控制連接,即21端口,發(fā)送指令給服務(wù)器以及等待服務(wù)器響應(yīng);另一個端口是數(shù)據(jù)傳輸端口,端口號為20,是用來建立數(shù)據(jù)傳輸通道。FTP的連接模式有兩種,PORT(主動模式)和PASV(被動模式),主動模式的連接過程是:客戶端動態(tài)的選擇一個端口(這個端口號一定是1024以上的,因為1024以前的端口都已經(jīng)預(yù)先被定義好)向服務(wù)器端的FTP端口(默認(rèn)是21)發(fā)送連接請求,服務(wù)器接受連接,建立一個命令連接,電腦資料
《細(xì)說FTP技術(shù)》(http://m.dameics.com)。當(dāng)需要傳送數(shù)據(jù)時或者列出服務(wù)器的文件列表時(通常使用ls或dir命令),客戶端通過命令連接告訴服務(wù)器(使用PORT命令):我已經(jīng)打開了XX端口,請你過來連接。于是服務(wù)器使用20端口向客戶端的XX端口發(fā)送連接請求,建立一條數(shù)據(jù)連接來傳送數(shù)據(jù)。被動模式:客戶端首先使用與主動連接模式相同的方法與服務(wù)器建立命令連接。當(dāng)需要傳送數(shù)據(jù)時,客戶端通過命令連接告訴服務(wù)器(使用PASV命令)我要連接你的XX端口,請問是否空閑,如果恰好該端口空閑,服務(wù)器會告訴客戶端:你請求的端口空閑,可以建立連接(ACK確認(rèn)信息),否則服務(wù)器會說該端口已經(jīng)占用,請換個端口(UNACK信息)。如果客戶端得到的是空閑的提示,就會利用該端口建立連接,否則就換個端口重新嘗試,這也就是所謂的連接建立的協(xié)商過程。區(qū)分主動模式和被動模式的主要目的是:并不是所有的FTP服務(wù)都支持這兩種連接模式,例如:微軟自帶的FTP命令客戶端就不支持被動模式,如果設(shè)置錯了客戶將無法連接。