ftp20和21端口的區別有哪些?
ftp20和2(′▽?zhuān)?1端口的端口的區區別有哪些?
一個(gè)??是數(shu)據端口,一個(gè)是端口的區控制端口,控制(zhi)端口一般為21,端口的區而數(′?_?`)(shu)據端口不一定是端口的??區20,這和FTP的端口的區應用模式有關(guān),如果是端口的區主動(dòng)模式,應該為20,端口的區如果為被動(dòng)模式,端口的區由服務(wù)器端和客戶(hù)端協(xié)商而定
當你對一個(gè)FTPヽ(′ー`)ノ問(wèn)題進(jìn)行排錯時(shí)候,ヾ(′▽?zhuān)??端口的區你首先要問(wèn)的端口的區一個(gè)問(wèn)題是使用的是port模(?_?;)式的還是pa??ssive 模式。因為這兩種行為迥異,端口的區所以這兩種模式引起的端口的區問(wèn)題也不同;在過(guò)去,客戶(hù)端缺省為active(port)模式;近來(lái),端口的區由于Port模式的端口的區安全問(wèn)題,許多客(ke)戶(hù)端的端口的區FTP應用缺省為Passive模式。
>>2.1 FTP Port模式
Port模式??的ヾ(^-^)ノFTP步驟如(′_ゝ`)下:
2、 服務(wù)器端發(fā)送SYN ACK(同步確認)包??給客戶(hù)端,源端口為21,目的端口為客戶(hù)端上使用的暫時(shí)端口;
3、 客戶(hù)端發(fā)送一個(gè)ACK(確認)包;客戶(hù)端使用這個(gè)連??接來(lái)發(fā)(╯‵□′)╯送FTP命令,服務(wù)器端使用這個(gè)連接來(lái)發(fā)送FTP應答;
4、 當用戶(hù)請求一個(gè)列表(List)請求或者發(fā)起一個(gè)要求發(fā)送或ヾ(^-^)ノ者接受文件的請求,客戶(hù)端軟件使用PORT命令,這個(gè)命令包含了一(′?`)個(gè)暫時(shí)的端( ?° ?? ?°)口,客戶(hù)端希望服務(wù)器在打開(kāi)一個(gè)數據連接時(shí)候使用這個(gè)暫時(shí)端口;PORT命令也(′▽?zhuān)?包含了一個(gè)IP地址,這個(gè)IP地址通常是客戶(hù)自己的IP地址,而且FTP也支持第三方(third-party)模式,第三方模式是客戶(hù)端告訴服務(wù)器端打開(kāi)與另臺主機的連接;
6、 客戶(hù)端以源端口為暫時(shí)端口,目的端??ヾ(′ω`)?口為20發(fā)送一個(gè)SYN ACK包;
7、 服務(wù)器端發(fā)送一個(gè)ACK包;
8、 發(fā)送數據的主機以這個(gè)連接來(lái)發(fā)送數據,數據以TCP段(注:segment,第4層的PDU)形式發(fā)送(一些命令,如STOR表示客戶(hù)端要??發(fā)送數據,R(???)ETR表示服務(wù)器段發(fā)送數據),這些TCP段都需要對方進(jìn)行ACK確認(注:因??為T(mén)CP協(xié)議是一個(gè)面向連接的協(xié)議)
9、 當數據傳輸完成以后,發(fā)送數據的主機以一個(gè)(′-ι_-`)FIN命令來(lái)結束數據連接,這個(gè)FIN命令需要另一臺主機以ACK確認,另一臺主機也發(fā)送一個(gè)FIN命令,這個(gè)FIN命令同樣需要發(fā)(′ω`)送數據的主機以ACK確認;
10、 客戶(hù)端能在控制連接上發(fā)送更多的命令,這可以打開(kāi)和關(guān)閉另外的數據連接;有時(shí)候客戶(hù)端結束后,客戶(hù)端以FIN命令來(lái)關(guān)閉一個(gè)控制連接,服務(wù)器端( ?ヮ?)以ACK包來(lái)確認客戶(hù)端的FIN,服務(wù)器同樣也發(fā)送它的FIN,客戶(hù)端用ACK來(lái)確認。
