atitit ftp
原理與解決方案
deodeo sh shmayama ..search ftp..
1. http和ftp都只是通訊協議,就是只管傳輸那一塊的,
那為什麼不能使用
ftp來顯示網頁??1
1.1.
ftphtml
即可。。
11.2.
最主要原因是效能原因(小檔案http效率更高)
11.3.
ftp設計複雜度高
11.4.此外
3.與防火牆工作不協調2
2. http和ftp的區別
22.1.
二、複雜點兒
22.1.1.
1.ftp
23.
ftp在傳輸小檔案時候,效率較低
3最主要的區別是ftp協議比
協議複雜,因為
ftp要面臨多種文件以及體積比較大,所以協議控制比較複雜。。
而網頁,往往體積較小,格式單一。。所以使用了專門發明了http協議來做這個事情。轉用協議當然要比通用的效能高,速度快,但是適用領域小。。
ftp和http處於osi同一層
。但是,ftp在開始握手和登陸較為複雜,一旦開始傳輸效率明顯比http高。ftp的設計思想在於分開的控制連線和傳輸連線,這和http完全不同。
在檔案傳輸協議(ftp)誕生在網路位址轉換(nat)和防火牆之前,那時的網路還不存在惡意攻擊。今天大多數終端使用者的ipv4位址已不可路由,這是因為防火牆的使用和ipv4位址的短缺。
2.1.1.1.(1)ftp比
複雜
ftp和
一樣都是
internet
上廣泛使用的協議,用來在兩台計算機之間互相傳送檔案。相比於
,ftp
協議要複雜得多。複雜的原因,是因為
ftp協議要用到兩個
tcp連線,乙個是命令鏈路,用來在
ftp2.1.1.2.(2)ftp協議有兩種工作方式:
port
方式和pasv
方式,中文意思為主動式和被動式。
port(主動)方式的連線過程是:客戶端向伺服器的
ftp埠(預設是
21)傳送連線請求,伺服器接受連線,建立一條命令鏈路。當需要傳送資料時,
客戶端在命令鏈上用port命令告訴
伺服器:「我開啟了
***x
埠,你過來連線我
」。於是
伺服器從20埠向客戶端的
***x
埠傳送連線請求,建立一條資料鏈路來傳送資料。
pasv(被動)方式的連線過程是:客戶端向伺服器的
ftp埠(預設是
21)傳送連線請求,伺服器接受連線,建立一條命令鏈路。當需要傳送資料時,
伺服器在命令鏈上用pasv命令告訴
客戶端:「我開啟了
***x
埠,你過來連線我
」。於是
客戶端向伺服器的***x埠
傳送連線請求,建立一條資料鏈路來傳送資料。
從上面可以看出,兩種方式的命令鏈路
連線方法
是一樣的,而資料鏈路的
建立方法
就完全不同。而ftp的複雜性就在於此。
.ftp協議效率低下
從ftp伺服器上檢索乙個檔案,包含繁複的交換握手步驟:
客戶端建立到ftp伺服器端控制埠的tcp socket鏈結,並等待tcp握手完成
客戶端等待伺服器端傳送回執
客戶端向伺服器端傳送使用者名稱並等待響應
客戶端向伺服器端傳送密碼並等待響應
客戶端向伺服器端傳送syst命令並等待響應
客戶端向伺服器端傳送type i命令並等待響應
如果使用者需要在伺服器端切換目錄,客戶端仍然傳送命令並等待響應
主動模式下,客戶端需要傳送port命令到伺服器端,然後等待響應(被動模式與主動模式相反)
建立資料傳輸鏈結(需要經過三次握手,建立一條tcp socket連線)
通過鏈結傳輸資料
客戶端等待伺服器端從控制連線傳送2xx指令,以確保資料傳輸成功
客戶端傳送quit命令,並等待伺服器響應
同樣的情形,我們來看看http協議:
http客戶端向http伺服器端建立一條tcp socket連線
http客戶端向http伺服器端傳送get命令,包含url、http協議版本、虛擬主機名等等,並等待響應
http伺服器端的響應包含了所有想要的資料,完成!
傳輸乙個檔案,ftp需要往復10次,而http只需要2次!編輯
ftp是乙個
8位的客戶端
-伺服器協議,能操作任何型別的檔案而不需要進一步處理,就像
mime
或unicode
一樣。但是,
ftp有著極高的延時,這意味著,從開始請求到第一次接收需求資料之間的時間,會非常長;並且不時的必須執行一些冗長的登陸程序
編輯ftp支援兩種模式:
standard (port
方式,主動方式),
passive (pasv
,被動方式)。
port模式
ftp
客戶端首先和伺服器的tcp 21埠建立連線,用來傳送命令,客戶端需要接收資料的時候在這個通道上傳送
port
命令。port
命令包含了客戶端用什麼埠接收資料。在傳送資料的時候,伺服器端通過自己的
tcp 20
埠連線至客戶端的指定埠傳送資料。
ftp server
必須和客戶端建立乙個新的連線用來傳送資料。
passive模式
建立控制通道和standard模式類似,但建立連線後傳送
pasv
命令。伺服器收到
pasv
命令後,開啟乙個臨時埠(埠號大於
1023
小於65535
)並且通知客戶端在這個埠上傳送資料的請求,客戶端連線
ftp伺服器此埠,然後
ftp伺服器將通過這個埠傳送資料。
很多防火牆
在設定的時候都是不允許接受外部發起的連線的,所以許多位於防火牆後或內網的ftp伺服器不支援
pasv
模式,因為客戶端無法穿過防火牆開啟
ftp伺服器的高階埠;而許多內網的客戶端不能用
port
模式登陸
ftp伺服器,因為從伺服器的
tcp 20
無法和內部網路的客戶端建立乙個新的連線,造成無法工作
參考資料
http和ftp的區別 - 蘋果園 - 部落格頻道 - csdn.net.html
檔案傳輸協議(ftp)必將消亡 - 開源中國社群.html
作者:: 綽號:
老哇的爪子
(全名::
attilax
akbar al rapanui 阿提拉克斯 阿克巴 阿爾 拉帕努伊 )
漢字名:
艾提拉(
艾龍),
email:[email protected]
atiend
Atitit ftp原理與解決方案
atitit ftp 原理與解決方案 deodeo sh shmayama search ftp.1.http和ftp都只是通訊協議,就是只管傳輸那一塊的,那為什麼不能使用 ftp來顯示網頁?1 1.1.ftphtml 即可。11.2.最主要原因是效能原因 小檔案http效率更高 11.3.ftp設...
Atitit RSA非對稱加密原理與解決方案
atitit rsa 非對稱加密原理與解決方案 1.1.一 一點歷史 1 1.2.八 加密和解密 2 1.3.二 基於rsa的訊息傳遞機制 3 1.4.基於rsa的授權驗證機器碼 4 1.5.為減少計算量,在傳送資訊時,常採用傳統加密方法與 公開金鑰 加密方法相結合的方式,41.6.rsa演算法是第...
Android Tinker的問題與解決方案
android n 混合編譯問題 內聯問題 pre verify問題 補丁類與引用類放在同乙個dex中 tinker等全量合成方案突破了此限制。在apk安裝的時候,虛擬機會將dex優化成odex後才拿去執行。在這個過程中會對所有class乙個校驗。校驗方式 假設a該類在它的static方法,priv...