/**
本篇博客由汗青ZJF整理并發布, 轉載請注明出處:
http://blog.csdn.net/zjf280441589/article/category/1854365
*/
TCP/IP中的利用層
域名系統是基于描寫名字-地址映照的散布式計算機系統的實現,其作用是提供主機名和IP 地址間的映照關系。
名字到IP地址的解析是由若干個域名Server組成的, 域名Server程序在專設的結點上運行, 運行這些程序的機器成為域名服務器(Domain Server);
1)層次域名空間
Internet采取了層次樹狀結構的命名方法, 任何1個連接在因特網上的主機或路由器都有1個唯1的層次結構的名字, 即域名;
域名的結構由標號序列組成, 各標號之間用點分隔開:
… . 3級域名 . 2級域名 . 頂級域名
各標號分別代表不同級別的域名;
域名只是個邏輯概念, 其實不代表計算機的物理位置, 變長的域名和使用有助于記憶的字符串來便于人們使用. 而IP地址是定長的32位2進制數字則非常便于計算機處理;
2)域名服務器
負責域名到IP地址的解析。使用TCP與UDP端口號都是53,主要使用UDP,服務器之間備份使用TCP。
域名服務器的4種類型
1)根域名服務器: 最高層次的域名服務器。記錄著所有的頂級域名服務器的域名和IP地址。不論是哪個本地域名服務器,若要對因特網上任何1個域名進行解析,只要自己沒法解析,就首先求助于根域名服務器。在因特網上共有13組根域名服務器;
2)頂級域名服務器: 負責管理在該頂級域名服務器注冊的所有2級域名。當收到 DNS 查詢要求時,就給出相應的回答(多是最后的結果,也多是下1步應當找的域名服務器的 IP 地址)。
3)權限域名服務器: 是負責1個區域的域名服務器。當1個權限域名服務器還不能給出最后的查詢回答時,就會告知發出查詢要求的DNS客戶,下1步應當找哪個權限域名服務器。
4)本地域名服務器: 當1個主機發出 DNS查詢要求時,這個查詢要求報文就發送給本地域名服務器。每個因特網服務提供者ISP,或1個大學,乃至1個大學里的系,都可以具有1個本地域名服務器,這類域名服務器有時也稱為默許域名服務器。
3)域名的解析進程
(1)客戶利用程序調用客戶端1個稱為解析器的庫函數,將目的主機的域名作為參數傳給解析器;
(2)解析器通過網絡向本地域名服務器53號端口發送1個以UDP數據報封裝的 DNS 要求報文,詢問與該域名對應的IP地址;
(3)本地域名服務器查找自己的域名數據庫(映照文件),將域名對應的IP地址組成1個以 UDP 數據報封裝的 DNS 響應報文,返回給解析器;若在本地域名數據庫中查不到,則此域名服務器就暫時成為全球 DNS 中的1個客戶,并向其它域名服務器發出查詢要求,直至找到能回答要求的域名服務器為止,并將解析結果響應給本地域名服務器;本地域名服務器再將解析結果返回給客戶端解析器;
(4)客戶端解析器終究收到響應報文后,再將解析得到的IP地址返回給利用程序。
3種查詢方式:
1)迭代查詢
2)遞歸查詢(少用)
3)遞歸與迭代相結合(經常使用)
4)域名高速緩存
每一個域名服務器都保護1個高速緩存,寄存最近用過的名字和從何處取得名字映照信息的記錄。可大大減輕根域名服務器的負荷,使因特網上的 DNS 查詢要求和回答報文的數量大為減少。
為保持高速緩存中的內容正確,域名服務器應為每項內容設置計時器,并處理超過公道時間的項。當權限域名服務器回答1個查詢要求時,在響應報文中都指明綁定有效存在的時間值。
FTP(File Transfer Protocol,文件傳輸協議)使用客戶/服務器模式。1個 FTP 服務器進程可同時為多個客戶進程提供服務。FTP 的服務器進程由兩大部份組成:1個主進程,負責接受新的要求;另外有若干個從屬進程,每一個從屬進程負責為1個客戶進行FTP服務。
FTP 使用兩條TCP連接來完成文件傳輸,1條是控制連接,另外一條是數據連接。平時控制鏈接總在端口21等待客戶的連接要求,當用戶需要傳輸文件時,客戶首先主動與服務器端口21建立1個控制連接,用來傳送客戶的命令和服務器的應對。客戶還會告知服務器自己將用的數據端口號, 控制鏈接會1直保持到客戶與服務器FTP全部通訊結束為止。
當客戶發出文件下載、文件上傳、列目錄的數據傳輸要求時,服務器端口20主動與客戶端告知的數據端口建立數據連接,并在其上傳輸數據,在該次數據傳輸終了后立即關閉數據傳輸連接。
使用兩個連接1方面使協議更加簡單和更容易實現;另外一方面在傳輸文件時還可以同時利用控制連接與服務器進行交互(如客戶發送要求終止文件傳輸)。
關于FTP服務器的詳細配置信息,請參考我的博客
http://blog.csdn.net/zjf280441589/article/details/18868343
TFTP
TFTP(Trivial File Transfer Protocol,簡單文件傳輸協議)也是用于在遠端服務器和本地主機之間傳輸文件的,相對FTP,TFTP沒有復雜的交互存取接口和認證控制,適用于客戶端和服務器之間不需要復雜交互的環境。TFTP協議的運行基于UDP協議,使用UDP端口69進行數據傳輸。
FTP與TFTP的不同 | |
傳輸協議不同 | FTP是基于TCP, TFTP是基于UDP |
端口號不同 | FTP是用21,20, TFTP是69 |
速度和安全 | FTP在速度慢但安全性好, TFTP速度快但是安全性不如FTP高 |
WWW以客戶/服務器方式工作。使用端口80. 閱讀器就是在用戶計算機上的WWW客戶程序。WWW文檔所駐留的計算機則運行服務器程序,也稱為WWW服務器。客戶程序向服務器程序發出要求,服務器程序向客戶程序送回客戶所要的WWW文檔。
在萬維網客戶程序與萬維網服務器程序之間進行交互所使用的協議是超文本傳送協議 HTTP (Hyper Text Transfer Protocol), HTTP使用TCP 連接進行可靠的傳送。HTTP 是面向事務的利用層協議,它是萬維網上能夠可靠地交換文件(包括文本、聲音、圖象等各種多媒體文件)的重要基礎。
WWW使用統1資源定位符 URL (Uniform Resource Locator)來標志萬維網上的各種文檔,使每個文檔在全部因特網的范圍內具有唯1的標識符 URL。URL的1般格式
<協議>://<主機>:<端口號>/<路徑>
超文本標記語言 HTML (Hyper Text Markup Language)使得萬維網頁面的設計者可以很方便地用1個超鏈接從本頁面的某處鏈接到因特網上的任何1個萬維網頁面,并且能夠在自己的計算機屏幕上將這些頁面顯示出來。
萬維網的工作進程:
<設 URL 為 http://www.tmtpost.com/99682.html>用戶點擊鼠標后所產生的事件:
(1) 閱讀器分析超鏈指向頁面的 URL。
(2) 閱讀器向 DNS 要求解析 www.tmtpost.com 的 IP 地址。
(3) 域名系統 DNS 解析出鈦媒體服務器的 IP 地址。
(4) 閱讀器與服務器建立 TCP 連接
(5) 閱讀器發出取文件命令: GET /99682.html
(6) 服務器給出響應,把文件 99682.html 發給閱讀器。
(7) TCP 連接釋放。
(8) 閱讀器顯示鈦媒體相干網頁文件 99682.html 中的所有文本。
HTTP主要特點
HTTP是面向事務的客戶服務器協議。
HTTP 協議是無狀態的(stateless),即不需要記憶交互確當前狀態,由于進程簡單。
HTTP 1.0協議是非延續連接。建立TCP連接后,1個HTTP要求過去,1個HTTP響應過來,然后就斷開TCP連接。
HTTP 使用了面向連接的 TCP 向上提供的服務。但 HTTP 協議本身是無連接的。
延續連接
不同于HTTP/1.0,HTTP/1.1 協議使用延續連接。
萬維網服務器在發送響應后依然在1段時間內保持這條連接,使同1個客戶(閱讀器)和該服務器可以繼續在這條連接上傳送后續的 HTTP 要求報文和響應報文。而且這其實不局限于傳送同1個頁面上鏈接的文檔,而是只要這些文檔都在同1個服務器上就行。
目前1些流行的閱讀器(如IE 6.0)的默許設置就是使用 HTTP/1.1。
延續連接的兩種工作方式
非流水線方式:客戶在收到前1個響應后才能發出下1個要求。雖然這比非延續連接的兩倍 RTT 的開消節省了建立 TCP 連接所需的1個 RTT 時間,但服務器在發送完1個對象后,其 TCP 連接就處于空閑狀態,浪費了服務器資源。
流水線方式:客戶在收到 HTTP 的響應報文之前就可以夠接著發送新的要求報文。1個接1個的要求報文到達服務器后,服務器便可連續發回響應報文。使用流水線方式時,客戶訪問所有的對象只需花費1個 RTT時間,使 TCP 連接中的空閑時間減少,提高了下載文檔效力
HTTP要求報文格式
所謂“方法”就是對所要求的對象進行的操作,因此這些方法實際上也就是1些命令。而且,要求報文的類型是由它所采取的方法決定的。
HTTP響應報文格式
響應報文的開始行是狀態行, 狀態行包括3項內容,即 HTTP 的版本,狀態碼,和解釋狀態碼的簡單短語.
注: 本系列博客的打包下載地址:http://download.csdn.net/download/hanqing280441589/8574157