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