查ICP網:全新的綜合網站備案信息查詢網
Copyright ? 2008-2028 www.mshuangcha.com [ 查icp] All Rights Reserved.
ftp20和21端口的區別有哪些?
一個是數據端口,一個是控制端口,控制端口一般為21,而數據端口不一定是20,這和FTP的應用模式有關,如果是主動模式,應該為20,如果為被動模式,由服務器端和客戶端協商而定
FTP Port模式和FTP Passive模式
當你對一個FTP問題進行排錯時候,你首先要問的一個問題是使用的是port模式的還是passive 模式。因為這兩種行為迥異,所以這兩種模式引起的問題也不同;在過去,客戶端缺省為active(port)模式;近來,由于Port模式的安全問題,許多客戶端的FTP應用缺省為Passive模式。
>>2.1 FTP Port模式
Port模式的FTP步驟如下:
1、 客戶端發送一個TCP SYN(TCP同步)包給服務器段眾所周知的FTP控制端口21,客戶端使用暫時的端口作為它的源端口;
2、 服務器端發送SYN ACK(同步確認)包給客戶端,源端口為21,目的端口為客戶端上使用的暫時端口;
3、 客戶端發送一個ACK(確認)包;客戶端使用這個連接來發送FTP命令,服務器端使用這個連接來發送FTP應答;
4、 當用戶請求一個列表(List)請求或者發起一個要求發送或者接受文件的請求,客戶端軟件使用PORT命令,這個命令包含了一個暫時的端口,客戶端希望服務器在打開一個數據連接時候使用這個暫時端口;PORT命令也包含了一個IP地址,這個IP地址通常是客戶自己的IP地址,而且FTP也支持第三方(third-party)模式,第三方模式是客戶端告訴服務器端打開與另臺主機的連接;
5、 服務器端發送一個SYN包給客戶端的暫時端口,源端口為20,暫時端口為客戶端在PORT命令中發送給服務器端的暫時端口號;
6、 客戶端以源端口為暫時端口,目的端口為20發送一個SYN ACK包;
7、 服務器端發送一個ACK包;
8、 發送數據的主機以這個連接來發送數據,數據以TCP段(注:segment,第4層的PDU)形式發送(一些命令,如STOR表示客戶端要發送數據,RETR表示服務器段發送數據),這些TCP段都需要對方進行ACK確認(注:因為TCP協議是一個面向連接的協議)
9、 當數據傳輸完成以后,發送數據的主機以一個FIN命令來結束數據連接,這個FIN命令需要另一臺主機以ACK確認,另一臺主機也發送一個FIN命令,這個FIN命令同樣需要發送數據的主機以ACK確認;
10、 客戶端能在控制連接上發送更多的命令,這可以打開和關閉另外的數據連接;有時候客戶端結束后,客戶端以FIN命令來關閉一個控制連接,服務器端以ACK包來確認客戶端的FIN,服務器同樣也發送它的FIN,客戶端用ACK來確認。