ftp協議
FTP協議將使用兩條單獨的TCP串連,一條專用於發送FTP命令,稱為控制串連,另一條則專用於傳遞資料, 稱為資料連線。
1)控制串連
用戶端希望與FTP伺服器建立上傳下載的資料轉送時,它首先向伺服器的TCP 21連接埠發起一個建立串連的請求,FTP伺服器接受來自用戶端的請求,完成串連的建立過程,這樣的串連就稱為FTP控制串連。
2)資料連線
FTP控制串連建立之後,即可開始傳輸檔案,傳輸檔案的串連稱為FTP資料連線。FTP資料連線就是FTP傳輸資料的過程,它有兩種傳輸模式
PORT(主動)方式的串連過程是:用戶端向伺服器的FTP連接埠(預設是21)發送串連請求,伺服器接受串連,建立一條命令鏈路。當需要傳送資料時,用戶端在命令鏈路上用PORT命令告訴伺服器:“我開啟了XXXX連接埠,你過來串連我”。於是伺服器從20連接埠向用戶端的XXXX連接埠發送串連請求,建立一條資料鏈路來傳送資料。(這是大多數ftp用戶端的傳輸模式)
PASV(被動)方式的串連過程是:用戶端向伺服器的FTP連接埠(預設是21)發送串連請求,伺服器接受串連,建立一條命令鏈路。當需要傳送資料時,伺服器在命令鏈路上用PASV命令告訴用戶端:“我開啟了XXXX連接埠,你過來串連我”。於是用戶端向伺服器的XXXX連接埠發送串連請求,建立一條資料鏈路來傳送資料。
樣本:
PORT模式:
圖1暫缺
在第1步中,用戶端的命令連接埠與FTP伺服器的命令連接埠建立串連,並發送命令“PORT 1027”。然後在第2步中,FTP伺服器給用戶端的命令連接埠返回一個"ACK"。在第3步中,FTP伺服器發起一個從它自己的資料連接埠(20)到用戶端先前指定的資料連接埠(1027)的串連,最後用戶端在第4步中給伺服器端返回一個"ACK"。
PASV模式:
圖2暫缺
在第1步中,用戶端的命令連接埠與伺服器的命令連接埠建立串連,並發送命令“PASV”。然後在第2步中,伺服器返回命令"PORT 2024",告訴用戶端(伺服器)用哪個連接埠偵聽資料連線。在第3步中,用戶端初始化一個從自己的資料連接埠到伺服器端指定的資料連接埠的資料連線。最後伺服器在第4 步中給用戶端的資料連接埠返回一個"ACK"響應。
----------------------------------------------------------------
主要用到的命令為:USER,PASS,TYPE,SIZE,REST,CWD,PWD,RETR,PASV,PORT,QUIT;
備忘:對於主動與被動模式的差異,在於主動伺服器管理比較方便,比較安全。能指定連接埠被外面串連,因此是常用的模式,而被動則是用戶端比較好管理。