ftp實驗原理
A. 什麼是ftpFTP工作原理
FTP本來是一種文件傳輸協議,後來用做直接點下載。
一般下個cuteftp就可以,要求不是很高。
B. 什麼是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埠發送連接請求,建立一條數據鏈路來傳送數據。
C. FTP文件傳輸概念、工作原理
FTP是英語FILE TRANSFER PROTOCOL的簡稱,中文意為"文件傳送協議,用於在電腦和電腦之間傳送文件,有了這個協議,文件的傳輸就可以不受不同的電腦,不同的操作系統,甚至不同文件格式的限制,傳輸文件的一般步驟如下:
1在本地電腦上登陸到國際互聯網,
2搜索有文件共享主機或者個人電腦(一般有專門的FTP伺服器網站上公布的,上面有進入該主機或個人電腦的名稱,口令和路徑)
3當與遠程主機或者對方的個人電腦建立連接後,用對方提供的用戶名和口令登陸到該主機或對方的個人電腦.
4在遠程主機或對方的個人電腦登陸成功後,就可以上傳你想跟別人分享的東東或者下載別人授權共享的東東(這里的東東是指能放到電腦里去又能在顯示屏上看到的東東)
5完成工作後關閉FTP下載軟體,切斷連接.
為了實現文件傳輸,用戶還要運行專門的文件傳輸程序,比如網際快車就有這方面的功能,其它還有很多專門的FTP傳輸軟體,各有各的特色.
D. FTP的原理和命令
FTP原理
FTP(File Transfer Protocol)是文件傳輸協議的簡稱。
FTP的作用
正如其名所示:FTP的主要作用,就是讓用戶連接上一個遠程計算機(這些計算機上運行著FTP伺服器程序)察看遠程計算機有哪些文件,然後把文件從遠程計算機上拷到本地計算機,或把本地計算機的文件送到遠程計算機去。
FTP工作原理
拿下傳文件為例,當你啟動FTP從遠程計算機拷貝文件時,你事實上啟動了兩個程序:一個本地機上的FTP客戶程序:它向FTP伺服器提出拷貝文件的請求。另一個是啟動在遠程計算機的上的FTP伺服器程序,它響應你的請求把你指定的文件傳送到你的計算機中。FTP採用「客戶機/伺服器」方式,用戶端要在自己的本地計算機上安裝FTP客戶程序。FTP客戶程序有字元界面和圖形界面兩種。字元界面的FTP的命令復雜、繁多。圖形界面的FTP客戶程序,操作上要簡潔方便的多。
簡單地說,支持FTP協議的伺服器就是FTP伺服器,下面介紹一下什麼是FTP協議(文件傳輸協議)
一般來說,用戶聯網的首要目的就是實現信息共享,文件傳輸是信息共享非常重要的一個內容之一。Internet上早期實現傳輸文件,並不是一件容易的事,我們知道 Internet是一個非常復雜的計算機環境,有PC,有工作站,有MAC,有大型機,據統計連接在Internet上的計算機已有上千萬台,而這些計算機可能運行不同的操作系統,有運行Unix的伺服器,也有運行Dos、Windows的PC機和運行MacOS的蘋果機等等,而各種操作系統之間的文件交流問題,需要建立一個統一的文件傳輸協議,這就是所謂的FTP。基於不同的操作系統有不同的FTP應用程序,而所有這些應用程序都遵守同一種協議,這樣用戶就可以把自己的文件傳送給別人,或者從其它的用戶環境中獲得文件。
與大多數Internet服務一樣,FTP也是一個客戶機/伺服器系統。用戶通過一個支持FTP協議的客戶機程序,連接到在遠程主機上的FTP伺服器程序。用戶通過客戶機程序向伺服器程序發出命令,伺服器程序執行用戶所發出的命令,並將執行的結果返回到客戶機。比如說,用戶發出一條命令,要求伺服器向用戶傳送某一個文件的一份拷貝,伺服器會響應這條命令,將指定文件送至用戶的機器上。客戶機程序代表用戶接收到這個文件,將其存放在用戶目錄中。
在FTP的使用當中,用戶經常遇到兩個概念:"下載"(Download)和"上載"(Upload)。"下載"文件就是從遠程主機拷貝文件至自己的計算機上;"上載"文件就是將文件從自己的計算機中拷貝至遠程主機上。用Internet語言來說,用戶可通過客戶機程序向(從)遠程主機上載(下載)文件。
使用FTP時必須首先登錄,在遠程主機上獲得相應的許可權以後,方可上載或下載文件。也就是說,要想同哪一台計算機傳送文件,就必須具有哪一台計算機的適當授權。換言之,除非有用戶ID和口令,否則便無法傳送文件。這種情況違背了Internet的開放性,Internet上的FTP主機何止千萬,不可能要求每個用戶在每一台主機上都擁有帳號。匿名FTP就是為解決這個問題而產生的。
匿名FTP是這樣一種機制,用戶可通過它連接到遠程主機上,並從其下載文件,而無需成為其注冊用戶。系統管理員建立了一個特殊的用戶ID,名為anonymous, Internet上的任何人在任何地方都可使用該用戶ID。
通過FTP程序連接匿名FTP主機的方式同連接普通FTP主機的方式差不多,只是在要求提供用戶標識ID時必須輸入anonymous,該用戶ID的口令可以是任意的字元串。習慣上,用自己的E-mail地址作為口令,使系統維護程序能夠記錄下來誰在存取這些文件。
值得注意的是,匿名FTP不適用於所有Internet主機,它只適用於那些提供了這項服務的主機。
當遠程主機提供匿名FTP服務時,會指定某些目錄向公眾開放,允許匿名存取。系統中的其餘目錄則處於隱匿狀態。作為一種安全措施,大多數匿名FTP主機都允許用戶從其下載文件,而不允許用戶向其上載文件,也就是說,用戶可將匿名FTP主機上的所有文件全部拷貝到自己的機器上,但不能將自己機器上的任何一個文件拷貝至匿名FTP主機上。即使有些匿名FTP主機確實允許用戶上載文件,用戶也只能將文件上載至某一指定上載目錄中。隨後,系統管理員會去檢查這些文件,他會將這些文件移至另一個公共下載目錄中,供其他用戶下載,利用這種方式,遠程主機的用戶得到了保護,避免了有人上載有問題的文件,如帶病毒的文件。
作為一個Internet用戶,可通過FTP在任何兩台Internet主機之間拷貝文件。但是,實際上大多數人只有一個Internet帳戶,FTP主要用於下載公共文件,例如共享軟體、各公司技術支持文件等。 Internet上有成千上萬台匿名FTP主機,這些主機上存放著數不清的文件,供用戶免費拷貝。實際上,幾乎所有類型的信息,所有類型的計算機程序都可以在Internet上找到。這是Internet吸引我們的重要原因之一。
匿名FTP使用戶有機會存取到世界上最大的信息庫,這個信息庫是日積月累起來的,並且還在不斷增長,永不關閉,涉及到幾乎所有主題。而且,這一切是免費的。
匿名FTP是Internet網上發布軟體的常用方法。Internet之所以能延續到今天,是因為人們使用通過標准協議提供標准服務的程序。像這樣的程序,有許多就是通過匿名FTP發布的,任何人都可以存取它們。
Internet中的有數目巨大的匿名FTP主機以及更多的文件,那麼到底怎樣才能知道某一特定文件位於哪個匿名FTP主機上的那個目錄中呢?這正是Archie伺服器所要完成的工作。Archie將自動在FTP主機中進行搜索,構造一個包含全部文件目錄信息的資料庫,使你可以直接找到所需文件的位置信息。
FTP命令詳解
FTP命令是Internet用戶使用最頻繁的命令之一,不論是在DOS還是UNIX操作系統下使用FTP,都會遇到大量的FTP內部命令。熟悉並靈活應用FTP的內部命令,可以大大方便使用者,並收到事半功倍之效。
FTP的命令行格式為:ftp -v -d -i -n -g [主機名],其中
-v顯示遠程伺服器的所有響應信息;
-n限制ftp的自動登錄,即不使用;
.n etrc文件;
-d使用調試方式;
-g取消全局文件名。
ftp使用的內部命令如下(中括弧表示可選項):
1.![cmd[args]]:在本地機中執行交互shell,exit回到ftp環境,如:!ls*.zip.
2.$ macro-ame[args]:執行宏定義macro-name.
3.account[password]:提供登錄遠程系統成功後訪問系統資源所需的補充口令。
4.append local-file[remote-file]:將本地文件追加到遠程系統主機,若未指定遠程系統文件名,則使用本地文件名。
5.ascii:使用ascii類型傳輸方式。
6.bell:每個命令執行完畢後計算機響鈴一次。
7.bin:使用二進制文件傳輸方式。
8.bye:退出ftp會話過程。
9.case:在使用mget時,將遠程主機文件名中的大寫轉為小寫字母。
10.cd remote-dir:進入遠程主機目錄。
11.cp:進入遠程主機目錄的父目錄。
12.chmod mode file-name:將遠程主機文件file-name的存取方式設置為mode,如:chmod 777 a.out。
13.close:中斷與遠程伺服器的ftp會話(與open對應)。
14.cr:使用asscii方式傳輸文件時,將回車換行轉換為回行。
15.delete remote-file:刪除遠程主機文件。
16.debug[debug-value]:設置調試方式,顯示發送至遠程主機的每條命令,如:deb up 3,若設為0,表示取消debug。
17.dir[remote-dir][local-file]:顯示遠程主機目錄,並將結果存入本地文件local-file。
18.disconnection:同close。
19.form format:將文件傳輸方式設置為format,預設為file方式。
20.get remote-file[local-file]:將遠程主機的文件remote-file傳至本地硬碟的local-file。
21.glob:設置mdelete,mget,mput的文件名擴展,預設時不擴展文件名,同命令行的-g參數。
22.hash:每傳輸1024位元組,顯示一個hash符號(#)。
23.help[cmd]:顯示ftp內部命令cmd的幫助信息,如:help get。
24.idle[seconds]:將遠程伺服器的休眠計時器設為[seconds]秒。
25.image:設置二進制傳輸方式(同binary)。
26.lcd[dir]:將本地工作目錄切換至dir。
27.ls[remote-dir][local-file]:顯示遠程目錄remote-dir,並存入本地文件local-file。
28.macdef macro-name:定義一個宏,遇到macdef下的空行時,宏定義結束。
29.mdelete[remote-file]:刪除遠程主機文件。
30.mdir remote-files local-file:與dir類似,但可指定多個遠程文件,如:mdir *.o.*.zipoutfile
31.mget remote-files:傳輸多個遠程文件。
32.mkdir dir-name:在遠程主機中建一目錄。
33.mls remote-file local-file:同nlist,但可指定多個文件名。
34.mode[modename]:將文件傳輸方式設置為modename,預設為stream方式。
35.modtime file-name:顯示遠程主機文件的最後修改時間。
36.mput local-file:將多個文件傳輸至遠程主機。
37.newer file-name:如果遠程機中file-name的修改時間比本地硬碟同名文件的時間更近,則重傳該文件。
38.nlist[remote-dir][local-file]:顯示遠程主機目錄的文件清單,並存入本地硬碟的local-file。
39.nmap[inpattern outpattern]:設置文件名映射機制,使得文件傳輸時,文件中的某些字元相互轉換,如:nmap $1.$2.$3[$1,$2].[$2,$3],則傳輸文件a1.a2.a3時,文件名變為a1,a2。該命令特別適用於遠程主機為非UNIX機的情況。
40.ntrans[inchars[outchars]]:設置文件名字元的翻譯機制,如ntrans 1R,則文件名LLL將變為RRR。
41.open host[port]:建立指定ftp伺服器連接,可指定連接埠。
42.passive:進入被動傳輸方式。
43.prompt:設置多個文件傳輸時的交互提示。
44.proxy ftp-cmd:在次要控制連接中,執行一條ftp命令,該命令允許連接兩個ftp伺服器,以在兩個伺服器間傳輸文件。第一條ftp命令必須為open,以首先建立兩個伺服器間的連接。
45.put local-file[remote-file]:將本地文件local-file傳送至遠程主機。
46.pwd:顯示遠程主機的當前工作目錄。
47.quit:同bye,退出ftp會話。
48.quote arg1,arg2...:將參數逐字發至遠程ftp伺服器,如:quote syst.
49.recv remote-file[local-file]:同get。
50.reget remote-file[local-file]:類似於get,但若local-file存在,則從上次傳輸中斷處續傳。
51.rhelp[cmd-name]:請求獲得遠程主機的幫助。
52.rstatus[file-name]:若未指定文件名,則顯示遠程主機的狀態,否則顯示文件狀態。
53.rename[from][to]:更改遠程主機文件名。
54.reset:清除回答隊列。
55.restart marker:從指定的標志marker處,重新開始get或put,如:restart 130。
56.rmdir dir-name:刪除遠程主機目錄。
57.runique:設置文件名唯一性存儲,若文件存在,則在原文件後加後綴..1,.2等。
58.send local-file[remote-file]:同put。
59.sendport:設置PORT命令的使用。
60.site arg1,arg2...:將參數作為SITE命令逐字發送至遠程ftp主機。
61.size file-name:顯示遠程主機文件大小,如:site idle 7200。
62.status:顯示當前ftp狀態。
63.struct[struct-name]:將文件傳輸結構設置為struct-name,預設時使用stream結構。
64.sunique:將遠程主機文件名存儲設置為唯一(與runique對應)。
65.system:顯示遠程主機的操作系統類型。
66.tenex:將文件傳輸類型設置為TENEX機的所需的類型。
67.tick:設置傳輸時的位元組計數器。
68.trace:設置包跟蹤。
69.type[type-name]:設置文件傳輸類型為type-name,預設為ascii,如:type binary,設置二進制傳輸方式。
70.umask[newmask]:將遠程伺服器的預設umask設置為newmask,如:umask 3。
71.user user-name[password][account]:向遠程主機表明自己的身份,需要口令時,必須輸入口令,如:user anonymous my@email。
72.verbose:同命令行的-v參數,即設置詳盡報告方式,ftp伺服器的所有響應都將顯示給用戶,預設為on.
73.?[cmd]:同help。
E. 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下的公共域名伺服器軟體,不過因其暴露出的一些安全問題,目前它正被其它競爭產品逐步替代。
F. FTP的工作原理是怎樣的
FTP會話時包含了兩個通道,一個叫控制通道,一個叫數據通道。控制通道:控制通道是和FTP伺服器進行溝通的通道,連接FTP,發送FTP指令都是通過控制通道來完成的。數據通道:數據通道是和FTP伺服器進行文件傳輸或者列表的通道。FTP協議中,控制連接均有客戶端發起,而數據連接有兩種工作方式:PORT方式和PASV方式PORT模式(主動方式) FTP 客戶端首先和FTP Server的TCP 21埠建立連接,通過這個通道發送命令,客戶端需要接收數據的時候在這個通道上發送PORT命令。 PORT命令包含了客戶端用什麼埠(一個大於1024的埠)接收數據。在傳送數據的時候,伺服器端通過自己的TCP 20埠發送數據。 FTP server必須和客戶端建立一個新的連接用來傳送數據。PASV模式(被動方式) 在建立控制通道的時候和PORT模式類似,當客戶端通過這個通道發送PASV 命令的時候,FTP server打開一個位於1024和5000之間的隨機埠並且通知客戶端在這個埠上傳送數據的請求,然後FTP server 將通過這個埠進行數據的傳送,這個時候FTP server不再需要建立一個新的和客戶端之間的連接傳送數據。如果從C/S模型這個角度來說,PORT對於伺服器來說是OUTBOUND,而PASV模式對於伺服器是INBOUND,這一點請特別注意,尤其是在使用防火牆的企業里,這一點非常關鍵,如果設置錯了,那麼客戶將無法連接。參考: http://www.linuxdiyf.com/viewarticle.php?id=20118 →Nebula№☆ 2008-08-18 15:44 檢舉您覺得這個答案好不好?好(0)不好(0) 相關問題 FTP工作原理是怎樣的? FTP工作原理是什麼 ftp伺服器的工作原理其他答案拿下傳文件為例,當你啟動FTP從遠程計算機拷貝文件時,它向FTP伺服器提出拷貝文件的請求。啟動在遠程計算機的上的FTP伺服器程序,它響應你的請求把你指定的文件傳送到你的計算機中。 網站: http://www.skyhosting.com.cn 總想。。。 2008-08-18 15:41 檢舉上下傳 上頁,下頁. 2008-08-18 15:44 檢舉雖然我沒用過它,但大多數的lonux發行版本中都選用的是Washington University FTP,它是一個著名的FTP伺服器軟體,一般簡稱為wu-ftp. 它是一個很好的服委務軟體, 原理呀,網上有得查呀。下次我去看看有關那個的原理再告訴你吧。你自己也要去看看那方面有關的書呀, : 起做曖 2008-08-18 15:50 檢舉我來告訴你FTP伺服器工作流程: 建立Socket 偵聽 21 埠 收到連接請求後建立新埠與客戶端連接 繼續偵聽 21 埠 負責與客戶端連接的模塊要解釋處理大概10多條標準的FTP命令 根據不同命令為客戶返回不同的信息或做不同的事 關於這些標准FTP命令如 USER PASS REST PWD CWD PASV SIZE TYPE LIST RETR 等等的我不全知道 你要自己去查資料。拿下傳文件為例,當你啟動FTP從遠程計算機拷貝文件時,你事實上啟動了兩個程序:一個本地機上的FTP客戶程序:它向FTP伺服器提出拷貝文件的請求。另一個是啟動在遠程計算機的上的FTP伺服器程序,它響應你的請求把你指定的文件傳送到你的計算機中。FTP採用「客戶機/伺服器」方式,用戶端要在自己的本地計算機上安裝FTP客戶程序。FTP客戶程序有字元界面和圖形界面兩種。字元界面的FTP的命令復雜、繁多。圖形界面的FTP客戶程序,操作上要簡潔方便的多。
G. 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無法和內部網路的客戶端建立一個新的連接,造成無法工作。
H. 簡述FTP協議的工作原理,數據連接和控制連接,主動模式與被動模式
FTP是基於TCP的應用層上的協議,用於文件傳輸
客戶端通過發送命令和服務端進行通信,比如
客戶端發送「USER abc」,表示用戶名為abc
服務端返回"331 Password required for abc.",表示abc這個賬戶需要密碼
客戶端在請求服務端發送文件或者上傳文件時,有主動模式和被動模式的分別(詳細的可以查看網路的「FTP」詞條)
對於被動模式(PASV),服務端會給出一個埠號,讓客戶端去連接。這也是多數FTP客戶端的預設模式。
對於主動模式(PORT),客戶端必須給出一個埠號,服務端會通過它的20埠來連接客戶端給出的埠。
如果客戶處於路由器之後,那麼伺服器不能直接連接客戶,主動模式就會失效,只能採用被動模式;反之如果伺服器處於路由之後,則只能採用主動模式。