應用層之FTP
1.FTP是什麼
ftp是一個應用層的檔案傳輸協議。在一個典型的ftp會話中,使用者可以一臺主機箱另一臺主機傳輸(或接受來自遠端主機)的檔案。
2.建立一個典型的ftp會話需要什麼
使用者通過一個ftp使用者代理與ftp互動
1.該使用者首先要提供遠端主機的主機名,使本地主機的ftp客戶端程序建立一個到遠端主機ftp伺服器程序的tcp連線
2.接著使用者需要提供使用者名稱和密碼作為ftp命令的一部分在該tcp連線上傳送
若使用者名稱和密碼是正確的,則使用者就可以將存放在本地檔案系統中的一個或多個檔案複製到遠端檔案系統中(反之亦然)。
3.ftp與http的異同
相同點:
1.兩者都是應用層上的檔案傳輸協議
2.兩者都是執行在tcp上的
區別:
1.ftp使用了兩個並行的tcp連線,http只有一個tcp連線。
ftp是用的兩個tcp連線,一個是控制連線,一個是資料連線。
控制連線用於在兩主機之間傳送控制資訊。如使用者名稱標識、口令、“存放(put)”和“獲取(get)”檔案的命令等。
資料連線用於實際傳輸一個檔案。
http協議是在傳輸檔案的同一個tcp連線中傳送請求和響應首部行的。
4.ftp傳輸檔案
使用者主機與遠端主機開始一個ftp會話時,ftp的客戶端首先在伺服器21號埠與伺服器端發起一個用於控制的tcp連線。客戶端可以通過該控制連線傳送控制命令
當伺服器端從控制連線收到一個檔案傳輸的命令後,就發起一個到客戶端的資料連線用於傳輸檔案,檔案傳輸完畢後該資料連線就關閉了,但是控制連線不關閉。
當有一個新的檔案傳輸命令後,就又建立一個新的資料連線。
5.常見ftp命令
USER username :向伺服器傳送使用者標識
PASS password:用於向伺服器傳送使用者口令
LIST: 向伺服器請求當前遠端目錄中的所有檔案列表,該檔案列表是經過一個新的資料連線返回給客戶端的
RETR filename : 獲取檔案
STOR filename: 向伺服器端上傳檔案