檔案傳輸協定(英文:File Transfer Protocol,簡稱為FTP)是用於在網路上進行檔案傳輸的一套標準協議。
它屬於網路協定組的應用層。
FTP是一個8位元的用戶端-伺服器協定,能操作任何型式的檔案而不需要進一步處理,就像MIME或Unicode一樣。
但是,FTP有著極高的延時,這意味著,從開始請求到第一次接收需求資料之間的時間,會非常長;並且不時的必須執行一些冗長的登陸行程。
FTP服務一般執行在20和21兩個埠。埠20用於在用戶端和伺服器之間傳輸資料流,而埠21用於傳輸控制流,並且是命令通向ftp伺服器的進口。
當資料透過資料流傳輸時,控制流處於空閒狀態。而當控制流,空閒很長時間後,用戶端的防火牆,會將其會話置為超時,這樣當大量資料透過防火牆時,
會產生一些問題。此時,雖然檔案可以成功的傳輸,但因為控制會話,會被防火牆斷開;傳輸會產生一些錯誤。
FTP實作的標的:
1. 促進檔案的共享(電腦程式或資料)
2. 鼓勵間接或者隱式的使用遠端電腦
3. 向使用者遮蔽不同主機中各種檔案儲存系統(File system)的細節
4. 可靠和高效的傳輸資料
缺點:
1. 密碼和檔案內容都使用明文傳輸,可能產生不希望發生的竊聽。
2. 因為必須開放一個隨機的埠以建立連線,當防火牆存在時,用戶端很難過濾處於主動模式下的FTP流量。這個問題,透過使用被動模式的FTP,得到了很大解決。
3. 伺服器可能會被告知連線一個第三方電腦的保留埠。
4. 此方式在需要傳輸檔案數量很多的小檔案時,效能不好
FTP雖然可以被終端使用者直接使用,但是它是設計成被FTP用戶端程式所控制。
執行FTP服務的許多站點都開放匿名服務,在這種設定下,使用者不需要帳號就可以登入伺服器,
預設情況下,匿名使用者的使用者名是:「anonymous」。這個帳號不需要密碼,雖然通常要求輸入使用者的郵件位址作為認證密碼,但這只是一些細節或者此郵件位址根本不被確定,而是依賴於 FTP伺服器的配置情況。
FTP有兩種使用模式:主動和被動。主動模式要求用戶端和伺服器端同時開啟並且監聽一個埠以建立連線。在這種情況下,用戶端由於安裝了防火牆會產生一些問題。
所以,創立了被動模式。被動模式只要求伺服器端產生一個監聽相應埠的行程,這樣就可以繞過用戶端安裝了防火牆的問題。
一個主動模式的FTP連線建立要遵循以下步驟:
1. 用戶端開啟一個隨機的埠(埠號大於1024,在這裡,我們稱它為x),同時一個FTP行程連線至伺服器的21號命令埠。此時,該tcp連線的來源地埠為用戶端指定的隨機埠x,目的地埠(遠端埠)為伺服器上的21號埠。
2. 用戶端開始監聽埠(x+1),同時向伺服器發送一個埠命令(透過伺服器的21號命令埠),此命令告訴伺服器用戶端正在監聽的埠號並且已準備好從此埠接收資料。這個埠就是我們所知的資料埠。
3. 伺服器開啟20號源埠並且建立和用戶端資料埠的連線。此時,來源地的埠為20,遠端資料(目的地)埠為(x+1)。
4. 用戶端透過原生的資料埠建立一個和伺服器20號埠的連線,然後向伺服器發送一個應答,告訴伺服器它已經建立好了一個連線。
文章引用自 WIKI FTP
而SFTP主要是經由ssh連線來傳輸資料的ftp,它會將指令與資料編碼,進而保護密碼與機密資料。
而FTPS是FTP over SSL主要是利用SSL來加密連線的而SSL是網頁伺服器和瀏覽器之間以加解密方式溝通的安全技術標準
----------------------------------------------------------------------------------------
上班完第一個星期了、好多不懂好多不會... 希望自已能趕快加油、也能快點參與每天的激烈討論中
昨天還學到了一句話: 「今日事無法今日畢的傢伙,即使到了明天也無法做到。」
吾郎,你真是激勵人心!!
留言列表