FTP文件傳輸協(xié)議的基本模式
今天我們來向大家介紹一種協(xié)議叫做FTP文件傳輸協(xié)議。那么它是范術(shù)語TCP IP當(dāng)中的一個(gè)應(yīng)用。也是我們進(jìn)行傳輸?shù)幕緟f(xié)議之一。現(xiàn)在我們就來了解一下它的基本概念和鏈接模式吧。
1. FTP文件傳輸協(xié)議概述
FTP是文件傳輸協(xié)議(File Transfer Protocol )的簡(jiǎn)稱。FTP是TCP IP的一種具體應(yīng)用,它工作在OSI模型的第七層,TCP模型的第四層上,即應(yīng)用層,使用TCP傳輸而不是UDP,FTP連接是可靠的,而且是面向連接,為數(shù)據(jù)的傳輸提供了可靠的保證。
FTP工作模式與客戶/服務(wù)器模式相似。與大多數(shù)的其他TCP應(yīng)用不相同的是,FTP在客戶與服務(wù)器之間使用兩個(gè)TCP連接――控制連接和數(shù)據(jù)連接,控制連接在客戶與服務(wù)器交互的整個(gè)過程中一直存在,而數(shù)據(jù)連接只在有文件或目錄傳輸?shù)臅r(shí)候才被創(chuàng)建,用完了后就被關(guān)閉了。控制連接用于發(fā)送指令給服務(wù)器以及等待服務(wù)器響應(yīng);數(shù)據(jù)連接是用來建立數(shù)據(jù)傳輸通道的。
2.FTP文件傳輸協(xié)議的Port模式
根據(jù)是使用Port模式還是Passive模式,FTP使用不同的TCP端口號(hào)。
FTP Port模式
Port模式的FTP文件傳輸協(xié)議步驟如下:
1、 客戶端發(fā)送一個(gè)TCPSYN(TCP同步)包給服務(wù)器段眾所周知的FTP控制端口21,客戶端使用暫時(shí)的端口作為它的源端口;
2、 服務(wù)器端發(fā)送SYN ACK(同步確認(rèn))包給客戶端,源端口為21,目的端口為客戶端上使用的暫時(shí)端口;
3、 客戶端發(fā)送一個(gè)ACK(確認(rèn))包;客戶端使用這個(gè)連接來發(fā)送FTP文件傳輸協(xié)議命令,服務(wù)器端使用這個(gè)連接來發(fā)送FTP應(yīng)答;
4、 當(dāng)用戶請(qǐng)求一個(gè)列表(List)請(qǐng)求或者發(fā)起一個(gè)要求發(fā)送或者接受文件的請(qǐng)求,客戶端軟件使用PORT命令,這個(gè)命令包含了一個(gè)暫時(shí)的端口,客戶端希望服 務(wù)器在打開一個(gè)數(shù)據(jù)連接時(shí)候使用這個(gè)暫時(shí)端口;PORT命令也包含了一個(gè)IP地址,這個(gè)IP地址通常是客戶自己的IP地址,而且FTP也支持第三方 (third-party)模式,第三方模式是客戶端告訴服務(wù)器端打開與另臺(tái)主機(jī)的連接;
5、 服務(wù)器端發(fā)送一個(gè)SYN包給客戶端的暫時(shí)端口,源端口為20,暫時(shí)端口為客戶端在PORT命令中發(fā)送給服務(wù)器端的暫時(shí)端口號(hào);
6、 客戶端以源端口為暫時(shí)端口,目的端口為20發(fā)送一個(gè)SYN ACK包;
7、 服務(wù)器端發(fā)送一個(gè)ACK包;
8、 發(fā)送數(shù)據(jù)的主機(jī)以這個(gè)連接來發(fā)送數(shù)據(jù),數(shù)據(jù)以TCP段(注:segment,第4層的PDU)形式發(fā)送(一些命令,如STOR表示客戶端要發(fā)送數(shù)據(jù),RETR表示服務(wù)器端發(fā)送數(shù)據(jù)),這些TCP段都需要對(duì)方進(jìn)行ACK確認(rèn)(注:因?yàn)門CP協(xié)議是一個(gè)面向連接的協(xié)議);
9、 當(dāng)數(shù)據(jù)傳輸完成以后,發(fā)送數(shù)據(jù)的主機(jī)以一個(gè)FIN命令來結(jié)束數(shù)據(jù)連接,這個(gè)FIN命令需要另一臺(tái)主機(jī)以ACK確認(rèn),另一臺(tái)主機(jī)也發(fā)送一個(gè)FIN命令,這個(gè)FIN命令同樣需要發(fā)送數(shù)據(jù)的主機(jī)以ACK確認(rèn);
10、 FTP文件傳輸協(xié)議中規(guī)定,客戶端結(jié)束后,客戶端以FIN命令來關(guān)閉一個(gè)控制連接,服務(wù)器端以ACK包來確認(rèn)客戶端的FIN,服務(wù)器同樣也發(fā)送它的FIN,客戶端用ACK來確認(rèn)。