文件傳輸協(xié)議(英文:File Transfer Protocol,縮寫:FTP)是用于在網(wǎng)絡上進行文件傳輸?shù)囊惶讟藴蕝f(xié)議。它屬于網(wǎng)絡傳輸協(xié)議的應用層。FTP是一個8位的客戶端-服務器協(xié)議,能操作任何類型的文件而不需要進一步處理,就像MIME或Unicode一樣。但是,F(xiàn)TP有著極高的延時,這意味著,從開始請求到第一次接收需求數(shù)據(jù)之間的時間,會非常長;并且不時的必須執(zhí)行一些冗長的登陸進程。
中文名稱 | 文件傳輸協(xié)議 |
外文名稱 | File Transfer Protocol |
簡稱 | FTP |
類型 | 文件傳送協(xié)議 |
FTP是應用層的協(xié)議,它基于傳輸層,為用戶服務,它們負責進行文件的傳輸。FTP是一個8位的客戶端-服務器協(xié)議,能操作任何類型的文件而不需要進一步處理,就像MIME或Unencode一樣。但是,F(xiàn)TP有著極高的延時,這意味著,從開始請求到第一次接收需求數(shù)據(jù)之間的時間會非常長,并且不時的必需執(zhí)行一些冗長的登陸進程。
優(yōu)點:
1.促進文件的共享(計算機程序或數(shù)據(jù))
2.鼓勵間接或者隱式的使用遠程計算機
3.向用戶屏蔽不同主機中各種文件存儲系統(tǒng)的細節(jié)
4.可靠和高效的傳輸數(shù)據(jù)
缺點:
1.密碼和文件內(nèi)容都使用明文傳輸,可能產(chǎn)生不希望發(fā)生的竊聽。
2.因為必須開放一個隨機的端口以建立連接,當防火墻存在時,客戶端很難過濾處于主動模式下的FTP流量。這個問題通過使用被動模式的FTP得到了很大解決。
3.服務器可能會被告知連接一個第三方計算機的保留端口。
FTP雖然可以被終端用戶直接使用,但是它是設(shè)計成被FTP客戶端程序所控制。
運行FTP服務的許多站點都開放匿名服務,在這種設(shè)置下,用戶不需要賬號就可以登錄服務器,默認情況下,匿名用戶的用戶名是:“anonymous”。這個賬號不需要密碼,雖然通常要求輸入用戶的郵件地址作為認證密碼,但這只是一些細節(jié)或者此郵件地址根本不被確定,而是依賴于FTP服務器的配置情況。
FTP有兩種使用模式:主動和被動。主動模式要求客戶端和服務器端同時打開并且監(jiān)聽一個端口以建立連接。在這種情況下,客戶端由于安裝了防火墻會產(chǎn)生一些問題。所以,創(chuàng)立了被動模式。被動模式只要求服務器端產(chǎn)生一個監(jiān)聽相應端口的進程,這樣就可以繞過客戶端安裝了防火墻的問題。
一個主動模式的FTP連接建立要遵循以下步驟:
1.客戶端打開一個隨機的端口(端口號大于1024,在這里,我們稱它為x),同時一個FTP進程連接至服務器的21號命令端口。此時,源端口為隨機端口x,在客戶端,遠程端口為21,在服務器。
2.客戶端開始監(jiān)聽端口(x+1),同時向服務器發(fā)送一個端口命令(通過服務器的21號命令端口),此命令告訴服務器客戶端正在監(jiān)聽的端口號并且已準備好從此端口接收數(shù)據(jù)。這個端口就是我們所知的數(shù)據(jù)端口。
3.服務器打開20號源端口并且建立和客戶端數(shù)據(jù)端口的連接。此時,源端口為20,遠程數(shù)據(jù)端口為(x+1)。
4.客戶端通過本地的數(shù)據(jù)端口建立一個和服務器20號端口的連接,然后向服務器發(fā)送一個應答,告訴服務器它已經(jīng)建立好了一個連接。
被動模式[1]:
為了解決服務器發(fā)起到客戶的連接的問題,人們開發(fā)了一種不同的FTP連接方式。這就是所謂的被動方式,或者叫做PASV,當客戶端通知服務器它處于被動模式時才啟用。
在被動方式FTP中,命令連接和數(shù)據(jù)連接都由客戶端發(fā)起,這樣就可以解決從服務器到客戶端的數(shù)據(jù)端口的入方向連接被防火墻過濾掉的問題。
當開啟一個 FTP連接時,客戶端打開兩個任意的非特權(quán)本地端口(N > 1024和N+1)。第一個端口連接服務器的21端口,但與主動方式的FTP不同,客戶端不會提交PORT命令并允許服務器來回連它的數(shù)據(jù)端口,而是提交 PASV命令。這樣做的結(jié)果是服務器會開啟一個任意的非特權(quán)端口(P > 1024),并發(fā)送PORT P命令給客戶端。然后客戶端發(fā)起從本地端口N+1到服務器的端口P的連接用來傳送數(shù)據(jù)。
對于服務器端的防火墻來說,必須允許下面的通訊才能支持被動方式的FTP:
1. 從任何大于1024的端口到服務器的21端口 (客戶端的初始化連接)
2. 服務器的21端口到任何大于1024的端口 (服務器響應到客戶端的控制端口的連接)
3. 從任何大于1024端口到服務器的大于1024端口 (客戶端初始化數(shù)據(jù)連接到服務器指定的任意端口)
4. 服務器的大于1024端口到遠程的大于1024的端口(服務器發(fā)送ACK響應和數(shù)據(jù)到客戶端的數(shù)據(jù)端口)
?。?)用戶授權(quán)
要連上 FTP 服務器(即“登陸”),必須要有該 FTP 服務器授權(quán)的賬號,也就是說你只有在有了一個用戶標識和一個口令后才能登陸FTP服務器,享受FTP服務器提供的服務。
(2)FTP地址格式
FTP地址如下: ftp://用戶名:密碼@FTP服務器IP或域名:FTP命令端口/路徑/文件名
上面的參數(shù)除FTP服務器IP或域名為必要項外,其他都不是必須的。
我們都知道,當我們需要往網(wǎng)站空間上放網(wǎng)站文件的時候,我們可以采用WEB和FTP兩種方法。在這里,我們建議直接使用FTP進行數(shù)據(jù)交換,因為不管是安全性還是快捷性來說,ftp都是很不錯的。
那么我們怎么往空間上傳送網(wǎng)站的數(shù)據(jù)文件呢,這時,我們就需要一個軟件FlashFXP或者其他FTP客戶端。這里我們以FlashFXP為例,我們?nèi)ゾW(wǎng)上下載這個軟件包并解壓出來,雙擊FlashFXP.exe這個文件,進入頁面之后,有一個閃電符號的按鈕,這是連接。單擊或者直接按F8,這是會出來一個對話框,
大多數(shù)最新的網(wǎng)頁瀏覽器和文件管理器都能和FTP服務器建立連接。這使得在FTP上通過一個接口就可以操控遠程文件,如同操控本地文件一樣。這個功能通過給定一個FTP的URL實現(xiàn),形如ftp://<服務器地址>。是否提供密碼是可選擇的,如果有密碼,則形如ftp://<login>:<password>@<ftpserveraddress>。大部分網(wǎng)頁瀏覽器要求使用被動FTP模式,然而并不是所有的FTP服務器都支持被動模式。
網(wǎng)絡協(xié)議
應用層DNS, FTP, ENRP,HTTP, IMAP, IIRC, NNTP, POP3, SIP, SMTP, SNMP, SSH, Telnet, BitTorrent, DHCP...
傳輸層DCCP, SCTP, TCP, RTP, UDP, IL, RUDP, ...
網(wǎng)絡層IPv4, IPv6...
數(shù)據(jù)鏈路層以太網(wǎng), Wi-Fi, 令牌環(huán), MPLS, PPP...
物理層RS-232, EIA-422, RS-449, EIA-485, 10BASE2, 10BASE-T...