ftp端口號20和21的區別是:一個是資料端口,一個是控制端口,控制端口一般為21,而資料端口不一定是20,這和FTP的應用模式有關,如果是主動模式,應該為20,如果為被動模式,由伺服器端和客戶端協商而定。
本教學操作環境:windows7系統、Dell G3電腦。
一個是資料端口,一個是控制端口,控制端口一般為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來確認。
更多電腦相關知識,請造訪常見問題欄位!
以上是ftp埠號20和21的差別是什麼的詳細內容。更多資訊請關注PHP中文網其他相關文章!