A. ftp伺服器的工作原理是什麼
FTP是File Transfer Protocol(文件傳輸協議)的縮寫,用來在兩台計算機之間互相傳送文件。相比於HTTP,FTP協議要復雜得多。復雜的原因,是因為FTP協議要用到兩個TCP連接,一個是命令鏈路,用來在FTP客戶端與伺服器之間傳遞命令;另一個是數據鏈路,用來上傳或下載數據。
FTP協議有兩種工作方式:PORT方式和PASV方式,中文意思為主動式和被動式。
PORT(主動)方式的連接過程是:客戶端向伺服器的FTP埠(默認是21)發送連接請求,伺服器接受連接,建立一條命令鏈路。當需要傳送數據時,客戶端在命令鏈路上用PORT命令告訴伺服器:「我打開了XXXX埠,你過來連接我」。於是伺服器從20埠向客戶端的XXXX埠發送連接請求,建立一條數據鏈路來傳送數據。
PASV(被動)方式的連接過程是:客戶端向伺服器的FTP埠(默認是21)發送連接請求,伺服器接受連接,建立一條命令鏈路。當需要傳送數據時,伺服器在命令鏈路上用PASV命令告訴客戶端:「我打開了XXXX埠,你過來連接我」。於是客戶端向伺服器的XXXX埠發送連接請求,建立一條數據鏈路來傳送數據。
B. FTP的基本原理
一、 DHCP服務是什麼
DHCP稱為動態主機配置協議。DHCP服務允許工作站連接到網路並且自動獲取一個IP地址。配置DHCP服務的伺服器可以為每一個網路客戶提供一個IP地址、子網掩碼、預設網關、一個WINS伺服器的IP地址,以及一個DNS伺服器的IP地址。
二、DHCP服務在實際應用中的常見問題
1、在一個子網內是否可以存在多台DHCP伺服器,如果存在的話,那麼該子網中的客戶機能否正確獲取地址,將會獲取哪個DHCP伺服器所分配的地址,是否能控制客戶機器能從管理人員所設置的DHCP伺服器中獲取地址而不會從一些非法用戶自建的DHCP伺服器中取得非法得IP?
2、如果網路中存在多個子網,而子網的客戶機需要DHCP伺服器提供地址配置,那麼是採取在各個子網都安裝一台DHCP伺服器,還是只在某一個子網中安裝DHCP伺服器,讓它為多個子網的客戶機分配IP地址,應該如何實現?
3、如果採取在一個子網中安裝DHCP伺服器,讓它為多個子網的客戶機分配IP地址,那麼應該需要在一台DHCP伺服器中創建多個不同范圍的作用域,而我們如何可以准確地保證相應范圍的地址分配給相應子網地主機呢?
4、如果客戶機器無法從DHCP伺服器中獲取IP地址,那麼Windows2000客戶機器將會如何處理自己的TCP/IP設置?
三、DHCP的工作原理
要解析第二點中所提的問題,首先要搞清楚DHCP的實際的工作過程及原理,下面就對此做簡單介紹:DHCP是一個基於廣播的協議,它的操作可以歸結為四個階段,這些階段是IP租用請求、IP租用提供、IP租用選擇、IP租用確認。
1、IP租用請求:在任何時候,客戶計算機如果設置為自動獲取IP地址,那麼在它開機時,就會檢查自己當前是否租用了一個IP地址,如果沒有,它就向DCHP請求一個租用,由於該客戶計算機並不知道DHCP伺服器的地址,所以會用255.255.255.255作為目標地址,源地址使用0.0.0.0,在網路上廣播一個DHCPDISCOVER消息,消息包含客戶計算機的媒體訪問控制(MAC)地址(網卡上內建的硬體地址)以及它的NetBIOS名字。
2、IP租用提供:當DHCP伺服器接收到一個來自客戶的IP租用請求時,它會根據自己的作用域地址池為該客戶保留一個IP地址並且在網路上廣播一個來實現,該消息包含客戶的MAC地址、伺服器所能提供的IP地址、子網掩碼、租用期限,以及提供該租用的DHCP伺服器本身的IP地址。
3、IP租用選擇:如果子網還存在其它DHCP伺服器,那麼客戶機在接受了某個DHCP伺服器的DHCPOFFER消息後,它會廣播一條包含提供租用的伺服器的IP地址的DHCPREQUEST消息,在該子網中通告所有其它DHCP伺服器它已經接受了一個地址的提供,其他DHCP伺服器在接收到這條消息後,就會撤銷為該客戶提供的租用。然後把為該客戶分配的租用地址返回到地址池中,該地址將可以重新作為一個有效地址提供給別的計算機使用。
4、IP租用確認: DHCP伺服器接收到來自客戶的DHCPREQUEST消息,它就開始配置過程的最後一個階段,這個確認階段由DHCP伺服器發送一個DHCPACK包給客戶,該包包括一個租用期限和客戶所請求的所有其它配置信息,至此,完成TCP/IP配置。
四、DHCP服務常見問題的解決方案
本文第二點中我們所提出的問題有四點,以下就此4個問題做相應的分析並給出我個人的一些解決方案,相信可以對學習DHCP服務的自學者會有一定的幫助,這些問題也是在實際教學中學生提出疑問最多的知識難點。
1、根據客戶計算機的IP租用原理可以知道,在一個子網內,如果存在多台DHCP伺服器來提供地址配置信息,這是不違反請求、分配原則的,因為只要中有一台客戶計算機在該子網中提出IP地址租約請求,由於請求是廣播形式的,所以在子網中可以有任意數量的特定DHCP伺服器響應一個IP租用請求,而客戶請求後選中的是這些任意特定DHCP伺服器中的某一台,這個選擇具有隨機性,但有一點要注意的是客戶只能為每一張網路介面卡接受一個租用提供,上面所謂特定的DHCP伺服器是指那些經過系統授權的DHCP伺服器,而非授權的DHCP伺服器將無法在網路中提供正常的地址分配服務,這一點非常重要,因為這樣一來客戶機器將只會在管理員設定的地址范圍中取得地址,Windows 2000操作系統的這一新增功能,通過對DHCP伺服器進行認證避免了非法DHCP伺服器分配非法IP地址造成的IP地址沖突,在實際應用中,客戶機器獲取非法的地址經常是造成網路癱瘓和無法正常通訊的一大原因。綜合上面的分析可以做出第一個問題的結論:在一個子網中可以存在多台DHCP伺服器來提供地址分配,但能夠作為地址提供的不是任意的DHCP伺服器,而應該是經過系統認證的那些,客戶機請求地址時最終從那一台經過認證機器中獲取時隨機的。此外,從另一個角度看,在相同子網上使用多個 DHCP 伺服器,將為它所服務的 DHCP 客戶機提供更強的容錯能力,如下圖所示,在一個子網內(網路號為192.168.1.0 掩碼為255.255.255.0)共用兩個 DHCP 伺服器,其中的DHCP伺服器1不可用的話,DHCP伺服器2可以取代它並繼續租用新的地址或續訂現有客戶機。可以建議採用的解決方案是使用 80/20 規則來劃分兩個 DHCP 伺服器之間的作用域地址,具體做法可以是將伺服器 1 配置成可使用大多數地址(約 80%),伺服器 2 可以配置成讓客戶機使用其他地址(約 20%)。
2、如果在一個網路中存在多個子網,而多個子網的主機都需要DHCP伺服器來提供地址配置信息,那麼我們可以採用的方法是在每一個子網中安裝一台DHCP伺服器,讓它們來為各個子網分配IP地址,但從節約資源利用出發,我們一般情況下不這樣做,可以採取在一個子網中安裝DHCP伺服器,讓它來為多個子網分配IP地址,實現多子網地址分配可以藉助DHCP的中繼代理功能實現,而作為中繼代理的設備可以是一台提供中繼代理程序的Windows2000伺服器或是一個符合RFC1542規定的路由器,具備 DHCP/ BOOTP Relay Agent 的功能(DHCP relay agent能夠把 DHCP/BOOTP 廣播信息從一個網段轉播到另一個網段上)。以管理的區域網分為三個子網,用Win2000伺服器連接。
下面是實現跨子網使用DHCP伺服器的具體解決方案:
(1)安裝DHCP中繼代理程序:在Windows2000伺服器的「路由和遠程訪問」窗口中,依次展開「本地伺服器→IP路由選擇→常規」選項,右鍵點擊「常規」選項,在彈出的菜單中選擇「新增路由協議」,然後在「新路由協議」窗口中選擇「DHCP中繼代理程序」,接著點擊「確定」按鈕。
(2)指定DHCP伺服器:右鍵點擊剛剛添加的「DHCP中繼代理程序」選項,在彈出菜單中選擇「屬性」,進入「DHCP中繼代理程序屬性」對話框,在「常規」標簽頁的「伺服器地址」欄中輸入子網1中DHCP伺服器的IP地址:192.168.1.2,然後點擊「添加」按鈕,最後點擊「確定」按鈕關閉該對話框。
(3)配置訪問介面:右鍵點擊「DHCP中繼代理程序」選項,在彈出菜單中選擇「新增介面」,然後在「DHCP中繼代理程序的新介面」對話框中的「介面」列表框中選中可以訪問子網1中的DHCP伺服器的介面,這里新增的介面應該是介面二和介面三,接著點擊「確定」按鈕。然後在彈出的「DHCP中繼站屬性」對話框中,選中「中繼DHCP數據包」選項,這樣就啟用了它的中繼功能,最後點擊「確定」按鈕。
(4)DHCP伺服器中配置一個超級作用域,其中包含三個普通作用域,作用域地址范圍可以分別設置為192.168.1.10~192.168.1.254(分配給子網1的PC使用);192.168.2.10~192.168.2.254(分配給子網2的PC使用);192.168.3.10~192.168.3.254(分配給子網3的PC使用),必須記住DHCP只能為每一個子網分配一個范圍。
完成以上配置後,子網2和子網3中的DHCP客戶機PC2及PC3就可以通過主機A的DHCP中繼代理程序訪問子網1中的DHCP伺服器。
3、解決了單台DHCP伺服器為多個子網分配IP地址後,我們還要搞清楚的一個問題是,如果某一個子網的PC如子網2中的PC2或子網3中的PC3發出地址請求信息後,主機A可以作為中繼代理對他們的請求傳達子網1中的DHCP伺服器,但該DHCP伺服器如何可以確定並准確地將作用域192.168.2.0網段的地址分給PC2而把作用域192.168.3.0網段的地址分給PC3呢?這個是多數學生可能存在的疑問,要搞清楚這個問題,可以參考以下的原理分析來找答案:以子網2中的主機PC2為例,DHCP 客戶機PC2在子網2 上廣播 DHCP/BOOTP discover 消息 (DHCPDISCOVER),廣播是將消息以 UDP (User Datagram Protocol)數據包的形式通過 67 埠發出,當中繼代理(relay agent)主機A接收到這個消息後,它檢查包含在這個消息報頭中的網關IP 地址,如果網關IP 地址為 0.0.0.0 ,則用 relay agent主機A的介面二的IP地址192.168.2.1替換它,然後將其轉發到 DHCP 伺服器所在的子網1上(主機A還擔任路由器功能)。當在子網1中的 DHCP伺服器收到這個消息後,它開始檢查消息中的網關IP地址,然後判斷該網關地址是否包含在DHCP的某一個作用域范圍內,從而決定它是否可以使用相應的作用域的地址來提供IP地址租約,當然,本例中DHCP伺服器將會從作用域192.168.2.10~192.168.2.254選取一個地址來配置PC2;也就是說DHCP客戶機的請求地址消息中的網關IP地址 (GIADDR) 將是DHCP伺服器用來確定從那個DHCP 范圍中挑選IP地址來配置客戶機的依據。
二、
環球信息網(WWW)是Internet上信息的一種具體應用與表現形式,它在整個Internet中占據著十分重要的地位。超媒體是WWW的技術基礎。
WWW服務採用客戶/伺服器工作模式:信息資源以網頁的形式存儲在Web伺服器中,用戶查詢信息時執行一個客戶端的瀏覽器程序,向Web伺服器發出請求,Web伺服器根據客戶端的請求內容,將保存在Web伺服器中的某個網頁返回給客戶端。瀏覽器接收到頁面後對其進行解釋,最終將圖、文、聲並茂的畫面呈現給用戶。
在WWW中,使用統一資源定位符(URL)來表示網頁地址。
1. 環球信息網WWW(World Wide Web) 是Internet上能滿足信息查尋或獲取要求的一種信息組織方式。
2. 超文本(Hypertext)是一種用計算機來實現連接網頁中相關文本內容的結構。
3. 超媒體=超文本+多媒體。
4. WWW伺服器
WWW伺服器也稱Web伺服器,建立WWW伺服器是Internet網點建成後要考慮的第一件事。
WWW伺服器與域名伺服器的概念與應用技術在網路系列課程中已作介紹,這里不再重復。
5. WWW客戶瀏覽器
• Web瀏覽器是最終用戶與WWW之間的前端界面
• Web瀏覽器的功能
• 常用的Web瀏覽器
Netscape Navigator(網景瀏覽器)
Internet Explorer(IE)瀏覽器
HotJava瀏覽器(JavaSoft公司推出,用Java編寫)
代理服務原理
代理伺服器有很多種,大體來說有http,ftp,socks代理三種,其中又分透明代理和不透明代理。其中透明代理一般是網關,是硬體。所以這里討論不透明代理。
當機器通過代理伺服器上網時。通訊是分兩次的,先是機器和代理伺服器通訊,再是代理伺服器和目的地址通訊。
機器和代理伺服器通訊時,目的IP是代理伺服器的IP。代理伺服器和目的地址通訊時,源IP是代理伺服器的IP,當外部的數據也是一樣的,在內網中,出現的IP數據,全是內網和代理伺服器的IP。因此,從IP包頭是看不出任何與外面通訊的信息的。只有從數據中才能看到。
例如,用http代理上網。
過程是
機器和代理伺服器建立TCP連接。
機器發出GET命令。這時GET命令中包含URL或IP地址,明文。
代理伺服器將其中的URL轉換為IP地址,可能會有DNS。將源數據包中的數據拷貝下來。去掉URL,重新組包,再發出去。
我們需要解析第一個GET包。
現在來看幾種代理方式。
http (get)
http (connect)
ftp (user user@host:port)
ftp (user user@host port)
ftp (open host)
ftp (site host)
ftp (site user@host)
socks5
socks4
這些代理方式都有一個特點。就是在連接時,都會先和代理伺服器連接,發出請求,一般為 command url,command就是get,connect,user 等。http和ftp都一樣,可以通過關鍵字來識別。而且url是明文。Socks有些特別。它不是明文的,而是十六進制數據。要獲得IP地址,還要經過轉換。
DNS服務是互聯網上非常重要和基礎的服務之一,用以確定主機名和IP地址之間的對應關系,本文介紹DNS服務
DNS記錄
一起實現DNS分布式資料庫的那些名稱伺服器存儲了從主機名到IP地址映射的資源記錄(resource record,RR)。每個DNS應答消息攜帶著一個或者多個資源記錄。在本部分與下一部分中,我們提供了對DNS資源記錄和消息的簡短介紹;DNSRFC文檔[RFC 1034,RFC 1035]中描述了更多的細節。
一個四元組的資源記錄包含了以下的欄位:
(Name,value,type,TTL)
TTL是留住資源記錄的時間:它確定了一個資源從緩存中刪除的時間。在下面給出的例子記錄中,我們將忽略TTL欄位。name和value的意義依賴於TyPe:
●如果Type=A,那麼Name是一個主機名並且value是該主機名所對應的IP地址。這樣,一個TYPE A的記錄提供了標難的主機名稱到IP地址的映射。作為例子,{relay1.bar.foo com,145.37.93.126,A}就是一個Type A的記錄。
●如果Type=NS,那麼Name就是一個域(如foo.com),並且value是一個知道如何獲得該域中主機的IP地址的權威名稱伺服器的主機名稱。這個記錄用於將DNS查詢沿著查詢的鏈式結構進行路由。作為例子,{foo.com,dns.foo.com,NS}就是一個Type NS紀錄。
●如果Type=CNAME,那麼value就是一個與主機別名NAME相對應的正規主機名。這個記錄可以給發出查詢的主機提供一個和主機名相對應的正規主機名。作為例子,{foo.com,relay1.bar.foo.com,CNAME}就是一個CNAME記錄。
●如果TYPE=MX,那麼value就是一個主機別名為NAME的郵件伺服器的主機名。作為例子,{foo.com,mail.bar.foo.com,MX}就是一個MX記錄。MX記錄使得郵件伺服器的主機名具有簡單的別名。
如果一個名稱伺服器對於一個特殊的主機名是權威的,那麼這個名稱伺服器將為這個主機名包含一個Type A記錄(即使名稱伺服器不是權威的,它也可以在它的緩存中包含一個Type A記錄)。如果一個伺服器對於一個主機名不是權威的,那麼該伺服器將為包含該主機名的域包含一個Type NS記錄:它還包含一個在該NS記錄的value欄位中提供了名稱伺服器IP地址的Type A記錄。作為例子,假設一個根伺服器對於主機gain.cs.umass.e不是權威的。那麼根伺服器將包含一個包括了主機cs.umass.e的域的記錄,例如,{umass.e,dns.umass.e,NS)。根伺服器也包含一個Type A記錄,該記錄將名稱伺服器(dns.umass.e)映射到一個IP地址上,例如,{dns.umass.e,128.119.40.111,A}。
DNS消息
在前面,我們間接提到了DNS查詢和應答消息。它們僅僅是兩種DNS消息。而且,請求和應答消息有相同的格式,如圖4所示。
圖4 DNS消息格式
一個DNS消息的各個欄位的語義如下:
●前12個子節是頭部區,它有很多欄位。第一個欄位是一個用來進行標識查詢的16比特的數字。這個標識符被拷貝到一個查詢的應答消息中,使得客戶能夠將接收到的應答和所發送的查詢相匹配。在標志欄位中包括很多標志。一個1比特的查詢/應答標志指明了該消息是查詢(0)還是應答(1)。當一個名稱伺服器對於所查詢的名稱來說是一個權威伺服器的時候,應答消息中就對一個1比特的權威標志進行了設置。當一個客戶(主機或者名稱伺服器)希望當它沒有該記錄時名稱伺服器執行遞歸的時候,就設置一個1比特的要求遞歸標志。如果名稱伺服器支持遞歸的話,就在應答中設置一個1比特的遞歸可用宇段。在頭部中,還有四個「數目」欄位。這些欄位指明了頭部之後出現的四種類型的「數據」部分的出現數目。
●問題部分包含了關於所執行的查詢的信息。這個區包括了(1)包含了被查詢的名稱的名稱欄位,(2)指明了所詢問的關於該名稱的問題類型的類型欄位(例如,與一個名稱相關的主機地址——type A,或者一個名稱的郵件服務路—type MX)。
●在一個從名稱伺服器發出的應答中,答案部分包含了最初被查詢的名稱的資源記錄。前面講過,在每個資源記錄中都有Type(例如,A,NS,CNAME和MX),value和TTL。應答可以在答案中返回多個RR,因為一個主機名稱可以有多個IP地址(例如,對於前面所討論的重復的web伺服器的情況)。
●權威部分包含了其他權威伺服器的記錄。
●補充部分包含了其他「有幫助的」記錄。例如,一個對應於MX查詢的應答中的答案欄位將包含與別名NAME相關聯的郵件伺服器的主機名。補充區將包含一個Type A記錄,該記錄提供了該郵件伺服器的正規主機名所對應的IP地址。以上的討論集中在如何從DNS資料庫中檢索數據。你可能會奇怪,最先數據是如何進入到資料庫中的呢?直到最近,每個DNS伺服器的內容都被靜態配置了,例如,由一個系統管理員創建的配置文件。更近的,為了允許從資料庫中通過DNS消息動態加入或者刪除數據,在DNS協議中加入了UPDATE選項。RFC 2136詳細說明了DNS的動態更新。
DNSNet提供了一個很好的、關於DNS的文檔集合[DNSNetl999I。網際網路軟體聯盟(Internet Software Consortium)為BIND提供了很多資源,BIND是一個流行的、Unix下的公共域名伺服器軟體,不過因其暴露出的一些安全問題,目前它正被其它競爭產品逐步替代。
C. FTP服務的工作原理是什麼
什麼是FTP呢?FTP 是 TCP/IP 協議組中的協議之一,是英文File Transfer Protocol的縮寫。該協議是Internet文件傳送的基礎,它由一系列規格說明文檔組成,目標是提高文件的共享性,提供非直接使用遠程計算機,使存儲介質對用戶透明和可靠高效地傳送數據。簡單的說,FTP就是完成兩台計算機之間的拷貝,從遠程計算機拷貝文件至自己的計算機上,稱之為「下載(download)」文件。若將文件從自己計算機中拷貝至遠程計算機上,則稱之為「上載(upload)」文件。在TCP/IP協議中,FTP標准命令TCP埠號為21,Port方式數據埠為20。FTP協議的任務是從一台計算機將文件傳送到另一台計算機,它與這兩台計算機所處的位置、聯接的方式、甚至是是否使用相同的操作系統無關。假設兩台計算機通過ftp協議對話,並且能訪問Internet, 你可以用ftp命令來傳輸文件。每種操作系統使用上有某一些細微差別,但是每種協議基本的命令結構是相同的。
FTP的傳輸有兩種方式:ASCII傳輸模式和二進制數據傳輸模式。
1.ASCII傳輸方式:假定用戶正在拷貝的文件包含的簡單ASCII碼文本,如果在遠程機器上運行的不是UNIX,當文件傳輸時ftp通常會自動地調整文件的內容以便於把文件解釋成另外那台計算機存儲文本文件的格式。
但是常常有這樣的情況,用戶正在傳輸的文件包含的不是文本文件,它們可能是程序,資料庫,字處理文件或者壓縮文件(盡管字處理文件包含的大部分是文本,其中也包含有指示頁尺寸,字型檔等信息的非列印字元)。在拷貝任何非文本文件之前,用binary 命令告訴ftp逐字拷貝,不要對這些文件進行處理,這也是下面要講的二進制傳輸。
2.二進制傳輸模式:在二進制傳輸中,保存文件的位序,以便原始和拷貝的是逐位一一對應的。即使目的地機器上包含位序列的文件是沒意義的。例如,macintosh以二進制方式傳送可執行文件到Windows系統,在對方系統上,此文件不能執行。
如果你在ASCII方式下傳輸二進制文件,即使不需要也仍會轉譯。這會使傳輸稍微變慢 ,也會損壞數據,使文件變得不能用。(在大多數計算機上,ASCII方式一般假設每一字元的第一有效位無意義,因為ASCII字元組合不使用它。如果你傳輸二進制文件,所有的位都是重要的。)如果你知道這兩台機器是同樣的,則二進制方式對文本文件和數據文件都是有效的。
5. FTP的工作方式
FTP支持兩種模式,一種方式叫做Standard (也就是 PORT方式,主動方式),一種是 Passive (也就是PASV,被動方式)。 Standard模式 FTP的客戶端發送 PORT 命令到FTP伺服器。Passive模式FTP的客戶端發送 PASV命令到 FTP Server。
下面介紹一個這兩種方式的工作原理:
Port模式FTP 客戶端首先和FTP伺服器的TCP 21埠建立連接,通過這個通道發送命令,客戶端需要接收數據的時候在這個通道上發送PORT命令。 PORT命令包含了客戶端用什麼埠接收數據。在傳送數據的時候,伺服器端通過自己的TCP 20埠連接至客戶端的指定埠發送數據。 FTP server必須和客戶端建立一個新的連接用來傳送數據。
Passive模式在建立控制通道的時候和Standard模式類似,但建立連接後發送的不是Port命令,而是Pasv命令。FTP伺服器收到Pasv命令後,隨機打開一個高端埠(埠號大於1024)並且通知客戶端在這個埠上傳送數據的請求,客戶端連接FTP伺服器此埠,然後FTP伺服器將通過這個埠進行數據的傳送,這個時候FTP server不再需要建立一個新的和客戶端之間的連接。
很多防火牆在設置的時候都是不允許接受外部發起的連接的,所以許多位於防火牆後或內網的FTP伺服器不支持PASV模式,因為客戶端無法穿過防火牆打開FTP伺服器的高端埠;而許多內網的客戶端不能用PORT模式登陸FTP伺服器,因為從伺服器的TCP 20無法和內部網路的客戶端建立一個新的連接,造成無法工作。
D. FTP的兩種工作模式的原理是什麼
主動模式
1. 客戶端打開大於1023的隨機命令埠和大於1023的隨機數據埠向服務的的21號埠發起請求
2. ==服務端==的21號命令埠響應客戶端的隨機命令埠
3. ==服務端==的20號埠==主動==請求連接客戶端的隨機數據埠
4. 客戶端的隨機數據埠進行確認
被動模式
1. 客戶端打開大於1023的隨機命令埠和大於1023的隨機數據埠向服務的的21號埠發起請求
2. 服務端的21號命令埠響應客戶端的隨機命令埠
3. ==客戶端主動==連接服務端打開的大於1023的隨機埠
4. 服務端進行確認
學Linux運維,來黑馬程序員。
E. FTP文件傳輸概念、工作原理
FTP是英語FILE TRANSFER PROTOCOL的簡稱,中文意為"文件傳送協議,用於在電腦和電腦之間傳送文件,有了這個協議,文件的傳輸就可以不受不同的電腦,不同的操作系統,甚至不同文件格式的限制,傳輸文件的一般步驟如下:
1在本地電腦上登陸到國際互聯網,
2搜索有文件共享主機或者個人電腦(一般有專門的FTP伺服器網站上公布的,上面有進入該主機或個人電腦的名稱,口令和路徑)
3當與遠程主機或者對方的個人電腦建立連接後,用對方提供的用戶名和口令登陸到該主機或對方的個人電腦.
4在遠程主機或對方的個人電腦登陸成功後,就可以上傳你想跟別人分享的東東或者下載別人授權共享的東東(這里的東東是指能放到電腦里去又能在顯示屏上看到的東東)
5完成工作後關閉FTP下載軟體,切斷連接.
為了實現文件傳輸,用戶還要運行專門的文件傳輸程序,比如網際快車就有這方面的功能,其它還有很多專門的FTP傳輸軟體,各有各的特色.
F. 傳輸協議FTP的工作原理和使用步驟
1、 簡介
在絕大多數的LINUX發行版本中都選用的是WashingtonUniversity FTP,它是一個著名的FTP伺服器軟體,一般簡稱為wu-ftp。它功能強大,能夠很好地運行於眾多的UNIX操作系統,例如:IBM AIX、FreeBSD、HP-UX、NeXTstep、Dynix、SunOS、Solaris等。所以Internet上的FTP伺服器,一大半以上採用了它。wu-ftp擁有許多強大的功能,很適於吞吐量較大的FTP伺服器的管理要求:
G. ftp伺服器的原理
FTP是File Transfer Protocol(文件傳輸協議)的縮寫,用來在兩台計算機之間互相傳送文件。相比於HTTP,FTP協議要復雜得多。復雜的原因,是因為FTP協議要用到兩個TCP連接,一個是命令鏈路,用來在FTP客戶端與伺服器之間傳遞命令;另一個是數據鏈路,用來上傳或下載數據。
FTP協議有兩種工作方式:PORT方式和PASV方式,中文意思為主動式和被動式。
PORT(主動)方式的連接過程是:客戶端向伺服器的FTP埠(默認是21)發送連接請求,伺服器接受連接,建立一條命令鏈路。當需要傳送數據時,客戶端在命令鏈路上用PORT命令告訴伺服器:「我打開了XXXX埠,你過來連接我」。於是伺服器從20埠向客戶端的XXXX埠發送連接請求,建立一條數據鏈路來傳送數據。
H. ftp伺服器的工作原理
FTP並不是應用於IP網路上的協議,而是ARPANEt網路中計算機間的文件傳輸協議, ARPANET是美國國防部組建的老網路,於1960-1980年使用。在那時, FTP的主要功能是在主機間高速可靠地傳輸文件。目前FTP仍然保持其可靠性,即使在今天,它還允許文件遠程存取。這使得用戶可以在某個系統上工作,而將文件存貯在別的系統。例如,如果某用戶運行Web伺服器,需要從遠程主機上取得HTML文件和CGI程序在本機上工作,他需要從遠程存儲站點獲取文件(遠程站點也需安裝Web伺服器)。當用戶完成工作後,可使用FTP將文件傳回到Web伺服器。採用這種方法,用戶無需使用Telnet登錄到遠程主機進行工作,這樣就使Web伺服器的更新工作變得如此的輕松。
FTP是TCP/IP的一種具體應用,它工作在OSI模型的第七層,TCP模型的第四層上,即應用層,使用TCP傳輸而不是UDP,這樣FTP客戶在和伺服器建立連接前就要經過一個被廣為熟知的"三次握手"的過程,它帶來的意義在於客戶與伺服器之間的連接是可靠的,而且是面向連接,為數據的傳輸提供了可靠的保證。
其次,FTP的連接模式有兩種,PORT和PASV。PORT模式是一個主動模式,PASV是被動模式,這里都是相對於伺服器而言的。為了讓大家清楚的認識這兩種模式,朗月繁星分別舉例說明。
PASV模式
然而,當FTP客戶以PASV模式連接伺服器時,情況就有些不同了。在初始化連接這個過程即連接伺服器這個過程和PORT模式是一樣的,不同的是,當FTP客戶發送ls、dir、get等這些要求數據返回的命令時,他不向伺服器發送PORT指令而是發送PASV指令,在這個指令中,用戶告訴伺服器自己要連接伺服器的某一個埠,如果這個伺服器上的這個埠是空閑的可用的,那麼伺服器會返回ACK的確認信息,之後數據傳輸通道被建立並返回用戶所要的信息(根據用戶發送的指令,如ls、dir、get等);如果伺服器的這個埠被另一個資源所使用,那麼伺服器返回UNACK的信息,那麼這時,FTP客戶會再次發送PASV命令,這也就是所謂的連接建立的協商過程。為了驗證這個過程我們不得不藉助CUTEFTP Pro這個大家經常使用的FTP客戶端軟體,因為微軟自帶的FTP命令客戶端,不支持PASV模式。雖然你可以使用QUOTE PASV這個命令強制使用PASV模式,但是當你用ls命令列出伺服器目錄列表,你會發現它還是使用PORT方式來連接伺服器的。現在我們使用CUTEFTP Pro以PASV模式連接伺服器
PORT模式
當FTP客戶以PORT模式連接伺服器時,他動態的選擇一個埠號(本次試驗是6015)連接伺服器的21埠,注意這個埠號一定是1024以上的,因為1024以前的埠都已經預先被定義好,被一些典型的服務使用,當然有的還沒使用,保留給以後會用到這些埠的資源服務。當經過TCP的三次握手後,連接(控制信道)被建立