1. 程式人生 > >計算機網路協議層次

計算機網路協議層次

計算機網路學習的核心內容就是網路協議的學習。網路協議是為計算機網路中進行資料交換而建立的規則、標準或者說是約定的集合。計算機網路協議同我們的語言一樣,多種多樣。

為了給網路協議的設計提供一個結構,網路設計者以分層的方式組織協議。

一個協議層能夠用軟體、硬體或者兩者的結合來實現。比如HTTP和SMTP這樣的應用層協議幾乎總是在端系統中用軟體實現的,傳輸層協議也是如此。因為物理層和資料鏈路層負責處理跨越特定鏈路的通訊,它們通常是實現在與給定的鏈路相聯絡的網路介面卡(比如以網路或WIFI介面卡)中。網路層通常是硬體和軟體實現的混合體。

1.網路層次劃分

將所有的協議綜合起來,各個層次的所有協議被稱為協議棧

。因特網的協議棧由5個層次組成:物理層、鏈路層、網路層、傳輸層和應用層。這個劃分方法稱為TCP/IP五層協議。除此之外,還有OSI七層模型和TCP/IP四層協議。它們之間的對應關係如下:

網路層次

當然比較常用的是TCP/IP五層協議。

1.1 應用層

應用層是網路應用程式以及它們的應用層協議存留的地方。因特網應用層包括許多協議,例如HTTP(Web應用的主要協議)、SMTP(郵件傳輸)和FTP(檔案傳送)等。再比如我們每天都在使用的DNS域名系統。

應用層協議分佈在多個端系統上,一個端系統中的應用程式使用協議與另外一個端系統中的應用程式交換資訊的分組。
我們把位於應用層的資訊分組稱為報文

1.2 傳輸層

因特網的傳輸層在應用程式端點之間傳送應用層報文。在因特網中,有TCP和UDP兩個傳輸層協議。

TCP向它的應用程式提供了面向連線的服務,這種服務包括了應用層報文向目的地的確保傳遞和流量控制。TCP也將長報文劃分成短報文,並提供擁塞控制機制,因此,當網路擁塞時,傳送方可以抑制其傳輸速率。

UDP協議向它的應用程式提供無連線服務。這是一種不提供不必要服務的服務,沒有可靠性,沒有流量控制,也沒有擁塞控制。

我們把傳輸層分組稱為報文段

1.3 網路層

因特網的網路層負責將稱為資料報的網路層分組從一臺主機移動到另一臺主機。在一臺源主機中的因特網傳輸層協議(TCP或者UDP)向網路層遞交傳輸層報文段和目的地址。

網路層包括著名的IP協議,該協議定義了在資料報中的各個欄位以及端系統和路由器如果作用於這些欄位。網路層也包括決定路由的路由選擇協議,它使得資料報根據該路由從源傳輸到目的地。

1.4 鏈路層

網路層通過源和目的地之間的一系列路由器路由資料報,為了將分組從一個結點移動到路徑的下一個結點,網路層必須依靠鏈路層的服務。特別是在每個結點,網路層將資料報下傳給鏈路層,鏈路層沿著路徑將資料報傳遞給下一個結點,在下一個結點,鏈路層將資料報上傳給網路層。

由鏈路層提供的服務取決於應用於該鏈路的特定的鏈路層協議,比如我們常見的乙太網,WIFI等。

因為資料報從源到目的地傳送通常要經過幾條鏈路,一個數據報可能被沿途不同鏈路上的不同鏈路層協議處理。例如,一個數據報可能被一段鏈路上的乙太網和下一段鏈路上的PPP所處理。網路層將受到來自每個不同鏈路的鏈路層協議的服務。

我們把鏈路層分組稱為

1.5 物理層

鏈路層的任務是將整個幀從一個網路元素移動到鄰近的網路元素,而物理層的任務是將該幀中的一個一個位元從一個結點移動到下一個結點。物理層的協議是和鏈路相關的,並且進一步與該鏈路的實際傳輸媒體相關。比如,乙太網具有許多物理層協議:一個是關於雙絞銅線的,另一個是關於同軸電纜的,還有是關於光纖的等等。

2.封裝

封裝

上圖顯示了這樣一條物理路徑:資料從傳送端系統的協議棧向下,經過鏈路層交換機和路由器的協議棧,進而向上到達接收端系統的協議棧。

我們需要知道的是,路由器和鏈路層交換機都是分組交換機,它們不實現協議棧中的所有層次,鏈路層交換機實現了第一層和第二層;路由器實現了第一層到第三層。這意味著,路由器能夠實現IP協議(即第三層協議),而鏈路層交換機則不能,於是鏈路層交換機不能識別IP地址,但是能夠識別第二層地址,比如MAC地址。

但是,因特網中的所有主機都實現了所有5個層次的協議。

上圖的過程也說明了一個重要的概念:封裝

在傳送主機端,一個應用層報文被傳送給傳輸層。傳輸層收到報文之後,在報文上附上附加資訊,即所謂的傳輸層首部資訊,該首部資訊將被接收端的傳輸層使用。應用層報文和傳輸層首部資訊一起構成了傳輸層報文段,傳輸層報文段因此封裝了應用層報文。

傳輸層則向網路層傳遞該報文段,網路層增加了網路層首部資訊,比如源和目的端系統的地址等,由此產生了網路層資料報

該資料報接下來被傳遞給鏈路層,鏈路層增加它自己的鏈路層首部資訊,建立了鏈路層幀

所以,我們看到在每一層,一個分組都具有兩種型別的欄位:首部欄位和有效載荷欄位。而有效載荷即來自於上一層的分組。

其實說白了,傳送端就是對應用層資料一層一層加頭的過程,到接收端後,接收端再一層一層去掉頭部資訊,然後交給對應的應用程式