小男孩‘自慰网亚洲一区二区,亚洲一级在线播放毛片,亚洲中文字幕av每天更新,黄aⅴ永久免费无码,91成人午夜在线精品,色网站免费在线观看,亚洲欧洲wwwww在线观看

分享

淺析FTP的工作原理

 wuxyu 2008-04-10
淺析FTP的工作原理 FTP協(xié)議概述 起初, FTP并不是應(yīng)用于IP網(wǎng)絡(luò)上的協(xié)議,而是ARPANEt網(wǎng)絡(luò)中計算機間的文件傳輸協(xié)議, ARPANET是美國國防部組建的老網(wǎng)絡(luò),于1960-1980年使用。在那時, FTP的主要功能是在主機間高速可靠地傳輸文件。目前FTP仍然保持其可靠性,即使在今天,它還允許文件遠程存取。這使得用戶可以在某個系統(tǒng)上工作,而將文件存貯在別的系統(tǒng)。例如,如果某用戶運行Web服務(wù)器,需要從遠程主機上取得HTML文件和CGI程序在本機上工作,他需要從遠程存儲站點獲取文件(遠程站點也需安裝Web服務(wù)器)。當用戶完成工作后,可使用FTP將文件傳回到Web服務(wù)器。采用這種方法,用戶無需使用Telnet登錄到遠程主機進行工作,這樣就使Web服務(wù)器的更新工作變得如此的輕松。 FTP是TCP/IP的一種具體應(yīng)用,它工作在OSI模型的第七層,TCP模型的第四層上,即應(yīng)用層,使用TCP傳輸而不是UDP,這樣FTP客戶在和服務(wù)器建立連接前就要經(jīng)過一個被廣為熟知的"三次握手"的過程,它帶來的意義在于客戶與服務(wù)器之間的連接是可靠的,而且是面向連接,為數(shù)據(jù)的傳輸提供了可靠的保證。 下面,讓我們來看看,一個FTP客戶在和服務(wù)器連接是怎么樣的一個過程(以標準的FTP端口號為例)。 首先,F(xiàn)TP并不像HTTP協(xié)議那樣,只需要一個端口作為連接(HTTP的默認端口是80,F(xiàn)TP的默認端口是21),F(xiàn)TP需要2個端口,一個端口是作為控制連接端口,也就是21這個端口,用于發(fā)送指令給服務(wù)器以及等待服務(wù)器響應(yīng);另一個端口是數(shù)據(jù)傳輸端口,端口號為20(僅PORT模式),是用來建立數(shù)據(jù)傳輸通道的,主要有3個作用 從客戶向服務(wù)器發(fā)送一個文件。 從服務(wù)器向客戶發(fā)送一個文件。 從服務(wù)器向客戶發(fā)送文件或目錄列表。 其次,F(xiàn)TP的連接模式有兩種,PORT和PASV。PORT模式是一個主動模式,PASV是被動模式,這里都是相對于服務(wù)器而言的。為了讓大家清楚的認識這兩種模式,朗月繁星分別舉例說明。 PORT模式 當FTP客戶以PORT模式連接服務(wù)器時,他動態(tài)的選擇一個端口號(本次試驗是6015)連接服務(wù)器的21端口,注意這個端口號一定是1024以上的,因為1024以前的端口都已經(jīng)預(yù)先被定義好,被一些典型的服務(wù)使用,當然有的還沒使用,保留給以后會用到這些端口的資源服務(wù)。當經(jīng)過TCP的三次握手后,連接(控制信道)被建立(如圖1和圖2)?,F(xiàn)在用戶要列出服務(wù)器上的目錄結(jié)構(gòu)(使用ls或dir命令),那么首先就要建立一個數(shù)據(jù)通道,因為只有數(shù)據(jù)通道才能傳輸目錄和文件列表,此時用戶會發(fā)出PORT指令告訴服務(wù)器連接自己的什么端口來建立一條數(shù)據(jù)通道(這個命令由控制信道發(fā)送給服務(wù)器),當服務(wù)器接到這一指令時,服務(wù)器會使用20端口連接用戶在PORT指令中指定的端口號,用以發(fā)送目錄的列表(如圖3)。當完成這一操作時,F(xiàn)TP客戶也許要下載一個文件,那么就會發(fā)出get指令,請注意,這時客戶會再次發(fā)送PORT指令,告訴服務(wù)器連接他的哪個"新"端口,你可以先用netstat -na這個命令驗證,上一次使用的6044已經(jīng)處于TIME_WAIT狀態(tài)(如圖4)。當這個新的數(shù)據(jù)傳輸通道建立后(在微軟的系統(tǒng)中,客戶端通常會使用連續(xù)的端口,也就是說這一次客戶端會用6045這個端口),就開始了文件傳輸?shù)墓ぷ鳌? PASV模式 然而,當FTP客戶以PASV模式連接服務(wù)器時,情況就有些不同了。在初始化連接這個過程即連接服務(wù)器這個過程和PORT模式是一樣的,不同的是,當FTP客戶發(fā)送ls、dir、get等這些要求數(shù)據(jù)返回的命令時,他不向服務(wù)器發(fā)送PORT指令而是發(fā)送PASV指令,在這個指令中,用戶告訴服務(wù)器自己要連接服務(wù)器的某一個端口,如果這個服務(wù)器上的這個端口是空閑的可用的,那么服務(wù)器會返回ACK的確認信息,之后數(shù)據(jù)傳輸通道被建立并返回用戶所要的信息(根據(jù)用戶發(fā)送的指令,如ls、dir、get等);如果服務(wù)器的這個端口被另一個資源所使用,那么服務(wù)器返回UNACK的信息,那么這時,F(xiàn)TP客戶會再次發(fā)送PASV命令,這也就是所謂的連接建立的協(xié)商過程。為了驗證這個過程我們不得不借助CUTEFTP Pro這個大家經(jīng)常使用的FTP客戶端軟件,因為微軟自帶的FTP命令客戶端,不支持PASV模式。雖然你可以使用QUOTE PASV這個命令強制使用PASV模式,但是當你用ls命令列出服務(wù)器目錄列表,你會發(fā)現(xiàn)它還是使用PORT方式來連接服務(wù)器的。現(xiàn)在我們使用CUTEFTP Pro以PASV模式連接服務(wù)器(如圖5),請注意連接LOG里有這樣幾句話: COMMAND:>PASV 227 Entering Passive Mode (127,0,0,1,26,108) COMMAND:>LIST STATUS:> Connecting ftp data socket 127.0.0.1: 6764... 125 Data connection already open; Transfer starting. 226 Transfer complete. 其中, 227 Entering Passive Mode (127,0,0,1,26,80). 代表客戶機使用PASV模式連接服務(wù)器的26x256+108=6764端口。(當然服務(wù)器要支持這種模式) 125 Data connection already open; Transfer starting.說明服務(wù)器的這個端口可用,返回ACK信息。 再讓我們看看用CUTEFTP Pro以PORT模式連接服務(wù)器的情況。其中在LOG里有這樣的記錄: COMMAND:>PORT 127,0,0,1,28,37 200 PORT command successful. COMMAND:>LIST 150 Opening ASCII mode data connection for /bin/ls. STATUS:> Accepting connection: 127.0.0.1:20. 226 Transfer complete. STATUS:> Transfer complete. 其中, PORT 127,0,0,1,28,37告訴服務(wù)器當收到這個PORT指令后,連接FTP客戶的28x256+37=7205這個端口。 Accepting connection: 127.0.0.1:20表示服務(wù)器接到指令后用20端口連接7205端口,而且被FTP客戶接受。 比較分析 在這兩個例子中,請注意: PORT模式建立數(shù)據(jù)傳輸通道是由服務(wù)器端發(fā)起的,服務(wù)器使用20端口連接客戶端的某一個大于1024的端口;在PASV模式中,數(shù)據(jù)傳輸?shù)耐ǖ赖慕⑹怯蒄TP客戶端發(fā)起的,他使用一個大于1024的端口連接服務(wù)器的1024以上的某一個端口。如果從C/S模型這個角度來說,PORT對于服務(wù)器來說是OUTBOUND,而PASV模式對于服務(wù)器是INBOUND,這一點請?zhí)貏e注意,尤其是在使用防火墻的企業(yè)里,比如使用微軟的ISA Server 2000發(fā)布一個FTP服務(wù)器,這一點非常關(guān)鍵,如果設(shè)置錯了,那么客戶將無法連接。 最后,請注意在FTP客戶連接服務(wù)器的整個過程中,控制信道是一直保持連接的,而數(shù)據(jù)傳輸通道是臨時建立的。 在本文中,朗月繁星把重點放到了FTP的連接模式,沒有涉及FTP的其他內(nèi)容,比如FTP的文件類型(Type),格式控制(format control)以及傳輸方式(Transmission mode)等。不過這些規(guī)范大家可能不需要花費過多的時間去了解,因為現(xiàn)在流行的FTP客戶端都可以自動的選擇正確的模式來處理,對于FTP服務(wù)器端通常也都做了一些限制,如下 類型:A S C I I或圖像。 格式控制:只允許非打印。 結(jié)構(gòu):只允許文件結(jié)構(gòu)。 傳輸方式:只允許流方式 至于這些內(nèi)容,限于篇幅朗月繁星在這里就不想再介紹了。希望這篇文章能對大家有些幫助,特別是正在學(xué)習ISA Server2000的朋友和一些對FTP不很了解的朋友。 OK,就此駐筆了,希望大家與我交流。 本文出自WinMag論壇,朗月繁星

    本站是提供個人知識管理的網(wǎng)絡(luò)存儲空間,所有內(nèi)容均由用戶發(fā)布,不代表本站觀點。請注意甄別內(nèi)容中的聯(lián)系方式、誘導(dǎo)購買等信息,謹防詐騙。如發(fā)現(xiàn)有害或侵權(quán)內(nèi)容,請點擊一鍵舉報。
    轉(zhuǎn)藏 分享 獻花(0

    0條評論

    發(fā)表

    請遵守用戶 評論公約

    類似文章 更多