1. 程式人生 > >計算機網路之一 應用層(DNS和http)

計算機網路之一 應用層(DNS和http)

應用層協議:為了解決某一類應用問題,通過位於不同主機中的多個應用程序之間的通訊和協同工作來完成的。

應用層的具體內容:規定應用程序在通訊時所遵循的協議。

一、域名系統(DNS)

1、域名系統概述

       域名系統(DomainName System)用來把便於人們使用的機器名字轉換為IP地址。

       許多應用層軟體經常直接使用域名系統DNS(Domain Name System),但計算機的使用者只是間接而不是直接使用域名系統。

       名字到IP 地址的解析是由若干個域名伺服器程式完成的。域名伺服器程式在專設的結點上執行,執行該程式的機器稱為域名伺服器。 

       2、因特網的域名結構

       3、域名伺服器

       域名體系是抽象的,具體實現域名系統則是使用分佈在各地的域名伺服器。一個伺服器所負責管轄的(或有許可權的)範圍叫做區(zone)。各單位根據具體情況來劃分自己管轄範圍的區。但在一個區中的所有節點必須是能夠連通的。每一個區設定相應的許可權域名伺服器,用來儲存該區中的所有主機的域名到IP地址的對映。DNS伺服器的管轄範圍不是以“域”為單位,而是以“區”為單位。

       域名伺服器有以下四種型別:根域名伺服器、頂級域名伺服器、許可權域名伺服器和本地域名伺服器。

       (1)根域名伺服器:根域名伺服器是最重要的域名伺服器。所有的根域名伺服器都知道所有的頂級域名伺服器的域名和IP 地址。不管是哪一個本地域名伺服器,若要對因特網上任何一個域名進行解析,只要自己無法解析,就首先求助於根域名伺服器。

(2)頂級域名伺服器:這些域名伺服器負責管理在該頂級域名伺服器註冊的所有二級域名。當收到DNS查詢請求時,就給出相應的回答(可能是最後的結果,也可能是下一步應當找的域名伺服器的IP地址)。

       (3)許可權域名伺服器:當一個許可權域名伺服器還不能給出最後的查詢回答時,就會告訴發出查詢請求的DNS 客戶,下一步應當找哪一個許可權域名伺服器。

       (4)本地域名伺服器:本地域名伺服器對域名系統非常重要。當一個主機發出DNS 查詢請求時,這個查詢請求報文就傳送給本地域名伺服器。

       域名的解析過程:

主機向本地域名伺服器的查詢一般都是採用遞迴查詢。如果主機所詢問的本地域名伺服器不知道被查詢域名的IP 地址,那麼本地域名伺服器就以 DNS 客戶的身份,向其他根域名伺服器繼續發出查詢請求報文。

       本地域名伺服器向根域名伺服器的查詢通常是採用迭代查詢。當根域名伺服器收到本地域名伺服器的迭代查詢請求報文時,要麼給出所要查詢的IP 地址,要麼告訴本地域名伺服器:“你下一步應當向哪一個域名伺服器進行查詢”。然後讓本地域名伺服器進行後續的查詢。

       名字的快取記憶體

       每個域名伺服器都維護一個快取記憶體,存放最近用過的名字以及從何處獲得名字對映資訊的記錄。可大大減輕根域名伺服器的負荷,使因特網上的DNS 查詢請求和回答報文的數量大為減少。為保持快取記憶體中的內容正確,域名伺服器應為每項內容設定計時器,並處理超過合理時間的項(例如,每個專案只存放兩天)。當權限域名伺服器回答一個查詢請求時,在響應中都指明繫結有效存在的時間值。增加此時間值可減少網路開銷,而減少此時間值可提高域名轉換的準確性。

       相關問題:

       1、網際網路公司為什麼需要多個IP地址?

網際網路公司因為有大量的訪問流量,所以需要很多的伺服器,為了能夠更好的為使用者提供服務,很多伺服器是不在同一地點的,這也是為了備份容災。單一地點或者伺服器勢必造成網路的癱瘓。

相關概念:

負載均衡:解析的IP地址是負載均衡伺服器的地址。

閘道器:閘道器實質上是一個網路通向其他網路的IP地址

CDN全稱是ContentDelivery Network,即內容分發網路。CDN系統能夠實時地根據網路流量和各節點的連線、負載狀況以及到使用者的距離和響應時間等綜合資訊將使用者的請求重新導向離使用者最近的服務節點上。其目的是使使用者可就近取得所需內容,解決Internet網路擁擠的狀況,提高使用者訪問網站的響應速度。

8.8.8.8(8.8.4.4):8.8.8.8是一個IP地址,是Google提供的免費DNS伺服器的IP地址。

Windows hosts檔案:包含IP地址和Hostname(主機名)的對映關係,是一個對映IP地址和Hostname(主機名)的規定;在網路上訪問網站,要先通過DNS伺服器把網路域名解析成IP地址後,我們的計算機才能訪問。要是對於每個域名請求我們都要等待域名伺服器解析後返回IP資訊,這樣訪問網路的效率就會降低,而Hosts檔案就能提高解析效率。根據Windows系統規定,Hosts的請求級別比DNS高。在進行DNS請求以前,Windows系統會先檢查自己的Hosts檔案中是否有這個地址對映關係,如果有則呼叫這個IP地址對映,如果沒有再向已知的DNS伺服器提出域名解析。

二、   全球資訊網 WWW

1、全球資訊網概述

全球資訊網WWW (World Wide Web)並非某種特殊的計算機網路。全球資訊網是一個大規模的、聯機式的資訊儲藏所。全球資訊網用連結的方法能非常方便地從因特網上的一個站點訪問另一個站點,從而主動地按需獲取豐富的資訊。這種訪問方式稱為“連結”。

       全球資訊網是分散式超媒體(hypermedia)系統,它是超文字(hypertext)系統的擴充。

全球資訊網以客戶伺服器方式工作。瀏覽器就是在使用者計算機上的全球資訊網客戶程式。全球資訊網文件所駐留的計算機則執行伺服器程式,因此這個計算機也稱為全球資訊網伺服器。

2、統一資源定位符URL

統一資源定位符URL 是對可以從因特網上得到的資源的位置和訪問方法的一種簡潔的表示。

       URL 的一般形式是:

                 

              通過埠尋找某一主機上的程序。

2、超文字傳輸協議HTTP

(1)   HTTP的操作過程

從層次的角度看,HTTP是面向事務的(transaction-oriented)應用層協議,它是全球資訊網上能夠可靠地交換檔案(包括文字、聲音、影象等各種多媒體檔案)的重要基礎。

              (1) 瀏覽器分析超鏈指向頁面的URL。

              (2) 瀏覽器向DNS 請求解析 www.tsinghua.edu.cn 的IP 地址。

              (3) 域名系統DNS 解析出清華大學伺服器的 IP 地址。

              (4) 瀏覽器與伺服器建立TCP 連線

              (5) 瀏覽器發出取檔案命令:

               GET/chn/yxsz/index.htm。

              (6) 伺服器給出響應,把檔案index.htm 發給瀏覽器。

              (7) TCP 連線釋放。

              (8) 瀏覽器顯示“清華大學院系設定”檔案index.htm 中的所有文字

(2)HTTP1.1持續連線

全球資訊網伺服器在傳送響應後仍然在一段時間內保持這條連線,使同一個客戶(瀏覽器)和該伺服器可以繼續在這條連線上傳送後續的HTTP 請求報文和響應報文。這並不侷限於傳送同一個頁面上鍊接的文件,而是隻要這些文件都在同一個伺服器上就行。目前一些流行的瀏覽器(例如,IE6.0)的預設設定就是使用 HTTP/1.1。

(3)代理伺服器

代理伺服器(proxyserver)又稱為全球資訊網快取記憶體(Web cache),它代表瀏覽器發出HTTP 請求。全球資訊網快取記憶體把最近的一些請求和響應暫存在本地磁碟中。當與暫時存放的請求相同的新請求到達時,全球資訊網快取記憶體就把暫存的響應傳送出去,而不需要按URL 的地址再去因特網訪問該資源。 

                           

                         

(4)HTTP的報文結構

HTTP有兩類報文:請求報文——從客戶向伺服器傳送請求報文。

                                   響應報文——從伺服器到客戶的回答。

(5)狀態碼

1xx表示通知資訊的,如請求收到了或正在進行處理。

       2xx 表示成功,如接受或知道了。

       3xx 表示重定向,表示要完成請求還必須採取進一步的行動。

       4xx 表示客戶的差錯,如請求中有錯誤的語法或不能完成。

       5xx 表示伺服器的差錯,如伺服器失效無法完成請求。