FTP協議學習筆記

2021-08-23 12:06:19 字數 2220 閱讀 9761

好吧,蛋疼了幾個星期專案終於有點起色了。現在總算高階到應用層ftp資料的統計分析了,可是ftp感覺平常用得不多,原理啥的真不清楚,就乘機學習學習吧!

ftp是另乙個常見的應用程式,屬於網路協議組的應用層,用於檔案傳輸的 i n t e r n e t標準。與te l n e t類似,f t p最早的設計是用於兩台不同的主機,這兩個主機可能執行在不同的作業系統下、使用不同的檔案結構、並可能使用不同字符集。

ftp與一般應用不同,它採用兩個 t c p連線來傳輸乙個檔案。

1) 控制連線以通常的客戶伺服器方式建立。伺服器以被動方式開啟眾所周知的用於f t p的埠(21) ,等待客戶的連線。客戶則以主動方式開啟 t c p埠2 1,來建立連線。控制連線始終等待客戶與伺服器之間的通訊。該連線將命令從客戶傳給伺服器,並傳回伺服器的應答。由於命令通常是由使用者鍵入的,所以 i p對控制連線的服務型別就是「最大限度地減小遲延」 。

2) 每當乙個檔案在客戶與伺服器之間傳輸時,就建立乙個資料連線。 (其他時間也可以建立,後面我們將說到) 。由於該連線用於傳輸目的,所以i p對資料連線的服務特點就是「最大限度提高吞吐量」 。資料連線有以下三大用途:從客戶向伺服器傳送乙個檔案、從伺服器向客戶傳送乙個檔案、從伺服器向客戶傳送檔案或目錄列表。

上圖描述了客戶與伺服器以及它們之間的連線情況。從圖中可以看出,互動式使用者通常不處理在控制連線中轉換的命令和應答。這些細節均由兩個協議直譯器來完成。標有「使用者介面」的方框功能是按使用者所需提供各種互動介面(全螢幕選單選擇,逐行輸入命令,等等) ,並把它們轉換成在控制連線上傳送的 f t p命令。類似地,從控制連線上傳回的伺服器應答也被轉換成使用者所需的互動格式。從圖中還可以看出,正是這兩個協議直譯器根據需要啟用檔案傳送功能。

ftp有兩種使用模式:主動和被動。主動模式要求客戶端和伺服器端同時開啟並且監聽乙個埠以建立連線。在這種情況下,客戶端由於安裝了防火牆會產生一些問題。所以,一般選擇被動模式。被動模式只要求伺服器端產生乙個監聽相應埠的程序,這樣就可以繞過客戶端安裝了防火牆的問題。

一般來講,控制連線一直保持到客戶-伺服器連線的全過程,但資料連線可以根據需要隨時開啟和結束。而通用的傳輸方式( u n i x環境下唯一的傳輸方式)是流方式,並且檔案結尾是以關閉資料連線為標誌。這意味著對每乙個檔案傳輸或目錄列表來說都要建立乙個全新的資料連線。乙個典型的主動方式的過程如下:

1) 客戶端開啟乙個隨機的埠(埠號大於1024,在這裡,我們稱它為x),同時乙個ftp程序連線至伺服器的21號命令埠。此時,源埠為客戶端隨機埠x,遠端埠為伺服器21。正由於是客戶發出命令要求建立資料連線,所以資料連線是在客戶的控制下建立的。

2) 客戶通常在客戶端主機上為所在資料連線端選擇乙個臨時埠號。客戶從該埠發布乙個被動的開啟。

3) 客戶使用port命令從控制連線上把埠號(資料連線)發向伺服器。

4) 伺服器在控制連線上接收埠號,並向客戶端主機上的埠發布乙個主動的開啟。伺服器的資料連線端一直使用埠20。

為了跟了解ftp的工作機制,啟用wireshark進行抓包得到如下的結果:

圖中亮起的一行是本機37875埠向伺服器的ftp-data(20)埠傳送結束資料傳輸連線的【fin,ack】請求(在前面幾行還可以見到連線同步請求syn)。

控制連線的兩個埠號分別是40938和ftp(21)。

主動連線 port和被動連線 pasv 方式 他們的區別就是在連線上伺服器之後建立資料通道的時候:

port 模式是建立從伺服器高階口連到客戶端20埠資料連線pasv 模式是建立客戶高階口連到伺服器返回的資料埠的資料連線port(主動)方式的連線過程是:客戶端向伺服器的ftp埠(預設是21)傳送連線請求,伺服器接受連線,建立一條命令鏈路。當需要傳送資料時,伺服器從20埠向客戶端的空閒埠傳送連線請求,建立一條資料鏈路來傳送資料。

pasv(被動)方式的連線過程是:客戶端向伺服器的ftp埠(預設是21)傳送連線請求,伺服器接受連線,建立一條命令鏈路。當需要傳送資料時,客戶端向伺服器的空閒埠傳送連線請求,建立一條資料鏈路來傳送資料。

ftp僅僅提供了建立在ipv4上進行資料通訊的能力,它基於網路位址是32位這一假設。比如原來的port命令格式如下port n1 ,n2 ,n3 ,n4 ,n5 ,n6 那麼有客戶端i p位址(n1 .n2 .n3 .n4)和埠(n5×2 5 6 +n6)。但是,當ipv6出現以後,位址就比32位長許多了。原來對ftp進行的擴充套件在多協議環境中有時會失敗。針對ipv6對ftp再次進行擴充套件,兩個ftp命令port和pasv通過擴充套件後,我們稱它們為eprt和epsv。

FTP學習筆記

1 我使用serv u作為ftp伺服器,這個工具使用很簡單,開始時會叫你設定你的網域名稱,你可以給乙個網域名稱給它,這個應該是其它ip訪問你的ftp裡就可以直接使用網域名稱或直接使用ip。2 設定serv u監聽的ip和埠等資訊,設定了這個後,其它使用者請求ftp服務時,那就由serv u給它服務。...

系統學習 FTP協議原理

主動模式 被動模式 三次握手建立控制連線,客戶端的埠是隨機的,目標埠是21 控制連線建立完成之後,客戶端進行驗證,協商資料連線採用的模式 主動模式 隨後客戶端會向ftp服務端傳送port報文,表明自己的ip位址及埠號資訊 等待ftp服務端20埠主動地發起資料連線請求 服務端傳送資料連線請求,連線建立...

計算機網路學習筆記 FTP協議

tcp ip協議族中的乙個用來在客戶機與伺服器之間進行簡單檔案傳輸的協議,提供不複雜 開銷不大的檔案傳輸服務 檔案傳輸協議file transfer protocol,ftp是應用層的乙個檔案傳輸協議,使用 tcp 傳輸而不是 udp,客戶在和伺服器建立連線前要經過乙個 三次握手 的過程,保證客戶與...