挑戰408 一周網路 應用層(1)

2021-09-27 13:36:49 字數 3549 閱讀 7353

c/s模式

c/s模式,即所謂的客戶端/伺服器模式。伺服器是乙個總是開啟著的主機,它服務於許多來自其他稱為客戶機的主機請求。c/s的工作模式非常簡單。

伺服器處於開啟狀態。

客戶機放出服務請求,並等待接收結果

伺服器接收到請求後處進行處理,然後返回結果給客戶機。

對此,客戶機一定要知道伺服器的位址,而伺服器不一定需要知道客戶機的位址。打個比方,我們去銀行(模擬伺服器)辦理業務。首先銀行要開門我們才能進行辦理業務。其次,我們提出我們的業務需求,銀行的工作人員才會為我們處理,並告知處理結果。這裡我們(客戶)必須需要知道銀行的具體位址。而銀行並不需要知道每個人的具體位址。它只負責幫你處理業務。

目前。大部分的網路應用程式採用此種方式。(如ftp,web,telnet,以及電子郵件)。

c/s模式下,各客戶機的地位不等,有伺服器進行統一管理,。客戶機相互之間不進行通訊。但如此一來,對伺服器的要求就相對較高。

p2p模式

c/s與p2p的對比圖

網域名稱系統dns時網際網路使用的命名系統,用來把便於人們使用的主機名字(即我們常說的網域名稱)轉換成ip位址

使用者與網際網路上某台主機通訊時,必須要知道對方的ip位址。然而使用者很難記住長達32位的二進位制主機位址,在應用層中,連線網際網路的主機都可以有乙個便於記憶的主機名(如www.google.com).dns能夠將這樣的網域名稱轉換成ip位址。

理論上講,整個網際網路可以只使用乙個網域名稱伺服器,但是由於網際網路的規模很大,這樣的網域名稱伺服器必定會由於負荷較大而崩潰。因此dns被設計為聯機分布式資料庫系統(即將龐大的網域名稱資料庫系統分開存放)。且採用c/s模式。這就使得大多數主機名都可以在本地進行解析(即轉換成ip位址)。因此dns的效率很高。

網域名稱結構

網際網路採用樹狀結構命名,這樣乙個網域名稱可以分為根網域名稱,頂級網域名稱,一級網域名稱,二級網域名稱等等。各級之間用點隔開。如下:

www.baidu.com
www 是**網域名稱,baidu是二級網域名稱,com是頂級網域名稱。網域名稱級別從左往右遞增。頂級網域名稱可以分為國家頂級網域名稱,通用頂級網域名稱。

網際網路的網域名稱空間就是乙個樹狀結構,最上層是樹根但是沒有對應的名字。網域名稱樹的樹葉就是單台計算機的名字,如下圖所示

網域名稱伺服器

上面說過,dns採用分布式資料庫的方式來存放資訊。dns伺服器的管轄單位稱為「區」,每個區設定相應的許可權伺服器,用來儲存該區中所有主機網域名稱到ip位址的對映。每乙個網域名稱伺服器只對網域名稱體系中的一部分進行管轄。採用分布式設計的dns,沒有一台網域名稱伺服器具有網際網路上所有主機的對映,因為該對映分布在所有的dns伺服器上。根據網域名稱伺服器所起的作用,可以將網域名稱伺服器分成下面四大類:

根網域名稱伺服器:根網域名稱伺服器是最高層次的網域名稱伺服器,也是最重要的網域名稱伺服器,它知道所有頂級網域名稱伺服器的網域名稱和ip位址。不管是哪乙個本地網域名稱伺服器,只要是對網際網路上任意乙個網域名稱不能進行解析,都要首先求助於根網域名稱伺服器。

頂級網域名稱伺服器:負責管理,在其頂級網域名稱伺服器下註冊的所有二級網域名稱。(比如.com網域名稱伺服器就負責管理所有***x.com的網域名稱)。

本地網域名稱伺服器:也稱為預設網域名稱伺服器。在cmd中,輸入ipconfig,回車。看到的首選dns伺服器就是本地網域名稱伺服器:

本地網域名稱伺服器離使用者很久,當要查詢的主機也在本地isp中時,本地網域名稱伺服器就可以很快的把要查詢到的主機名轉換成ip位址。

各大類的層次結構如下圖所示:

網域名稱解析過程

網域名稱的解析方式主要有兩種:遞迴查詢,迭代查詢。

遞迴查詢的意思可以借助網域名稱的樹狀結構來理解。首先dns客戶向本地網域名稱伺服器查詢,如果本地網域名稱伺服器沒有該主機名的ip位址,那麼就向根網域名稱伺服器發起查詢請求,然後根網域名稱伺服器再向下傳送請求。直到找到對應的對映後,原路返回給dns客戶。示意圖如下:

迭代查詢與遞迴查詢不同,迭代查詢的主動發起查詢的始終是dns客戶,當根網域名稱伺服器收到dns客戶的請求的時候,要麼告訴客戶查詢的結果,要麼告訴客戶下一步該去哪查詢。接下來客戶就按返回的資訊去相應的伺服器查詢(遞迴查詢是根網域名稱伺服器替代客戶機進行查詢)。

通常,本機向本地網域名稱伺服器採用的是遞迴查詢,本地網域名稱伺服器向根網域名稱伺服器採用的是迭代查詢。

dns其他

dns傳送的請求採用udp協議封裝的資料報,每傳送一次請求或者返回乙個結果都是需要乙個udp資料報的。為了提高dns的查詢效率,通常,網域名稱伺服器中都會使用快取記憶體(類似於計算機組成原理中的cache),用來存放近期查詢過的網域名稱以及對應的ip位址。這樣查詢的順序就是先查詢快取記憶體,再查詢本地網域名稱伺服器了。

dns的傳輸層協議是udp。預設埠號是53,採用c/s模式。.

ftp是目前網際網路上應用的廣泛的檔案傳輸協議(2023年www的通訊量才超過ftp),乙個伺服器程序可以同時為多個客戶端程序提供服務,網路環境的一項基本應用就是將從一台機器複製到一台可能相距很遠的計算機。但是每台計算機的檔案系統不一致所以這並不是件容易的事。而ftp的功能就是減少或者消除不同作業系統下處理檔案的不相容性。

ftp的服務程序主要有兩大類:

ftp在工作時使用兩個並行的tcp程序,控制連線(埠號21)跟資料連線(埠號20)。在進行檔案傳輸時,ftp的客戶端和服務端建立這兩個並行的tcp連線。

控制連線(預設埠號21)

其中控制連線用來傳輸控制資訊(如建立連線,傳送請求),控制資訊以7位ascll碼格式傳輸。ftp發出的傳送請求是通過控制連線傳送到伺服器的控制程序。因為在傳送檔案過程中可能需要暫停或者終止之類的控制指令,因此,控制連線在整個傳送過程中是一直開啟的。

資料連線(預設埠號20)

資料連線顧名思義就是用來傳輸檔案的連線,它能連線伺服器端的資料傳送程序。在完成資料傳送後ftp會關閉相應的此資料連線。

ftp檔案傳送過程

當ftp客戶端程序向服務端發起建立連線請求時,便尋找伺服器熟知的21埠,同時要告訴服務端程序自己的資料連線埠號,用於建立資料連線。接著伺服器用自己熟知的20埠與客戶端的提供的資料連線埠進行連線。由於ftp採用兩個不同的埠號,所以資料傳輸不會發生混亂。

網路檔案系統nfs

挑戰408 一周網路 網路層(1)

網路層應該向運輸層提供什麼樣的服務?網際網路採用的思路是這樣的 網路層向上只提供簡單靈活的,無連線的,盡最大努力交付的資料報 這裡的資料報就是ip分組 服務。網路層不提供服務質量的承諾,也就是說,所傳送的分組可能出錯,可能丟失也可能重複或者失序。網際協議ip是是tcp ip協議中最重要的兩個協議之一...

挑戰408 一周網路 網路層(2)

ip位址空間利用率低。試想a類位址能表示 2 31 個網路位址,全球的主機數遠不止如此。每個物理網路都分配乙個網路號,會使得路由表過大。二級位址不夠靈活。劃分子網就是為了解決這些問題的。具體的思路如下 注意 劃分子網是在原來的ip位址的主機號進行劃分,而不改變ip位址原有的網路號。子網掩碼 那麼資料...

挑戰408 一周網路 運輸層(3)

tcp協議的主要特點 對比udp協議,tcp協議就要複雜很多了。對比udp協議,tcp協議有以下幾點不同 tcp是面向連線的傳輸層協議。也就是說,使用tcp協議的通訊雙方事先就要建立連線,在整個連線過程當中控制個管理連線,並在通訊之後釋放整個連線。tcp連線只能是一對一的。也就是每一條tcp連線只能...