1. 程式人生 > >ISO/OSI參考模型總結

ISO/OSI參考模型總結

1、物理層:

  主要功能:利用傳輸介質為資料鏈路層提供屋裡連線,實現位元流的透明傳輸。

  作用:實現相鄰計算機節點之間位元流的透明傳輸,儘可能遮蔽掉具體傳輸介質與物理裝置的差異。使其上面的資料鏈路層不必考慮網路的具體傳輸介質是什麼。

  透明傳輸的意義就是:不管傳的是什麼,所採用的裝置只是起一個通道作用,把要傳輸的內容完好的傳到對方!

 

2、資料鏈路層:負責建立和管理節點間的鏈路。

  主要功能:通過各種控制協議,將有差錯的物理通道變為無差錯的、能可靠傳輸資料幀的資料鏈路。

  具體工作:接受來自物理層的位流形式的資料,並封裝成幀,傳送到上一層;同樣,也將來自上一層的資料幀,拆裝為位流形式的資料轉發到物理層;並且還負責處理接受端發回的確認幀的資訊,以便提供可靠的資料傳輸。

  該層通常又被分為 介質訪問控制(MAC)和邏輯鏈路控制(LLC)兩個子層:
    MAC子層的主要任務是解決共享型網路中多使用者對通道競爭的問題,完成網路介質的訪問控制。
    LLC子層的主要任務是建立和維護網路連線,執行差錯校驗、流量控制和鏈路控制。

 

3、網路層:是OSI參考模型中最複雜的一層,也是通訊子網最高的一層,它在下兩層的基礎上向資源子網提供服務。

  主要任務:通過路由演算法,為報文或分組通過通訊子網選擇最適當的路徑。該層控制資料鏈路層與物理層之間的資訊轉發,建立、維持與終止網路的連線。具體的說,資料鏈路層的資料在這一層被轉換為資料包,然後通過路徑選擇、分段組合、順序、進/出路由等控制,將資訊從一個網路裝置傳送到另一個網路裝置。

  一般的,資料鏈路層是解決統一網路內節點之間的通訊,而網路層主要解決不同子網之間的通訊。例如路由選擇問題。

  在實現網路層功能時,需要解決的主要問題如下:
    定址:資料鏈路層中使用的實體地址(如MAC地址)僅解決網路內部的定址問題。在不同子網之間通訊時,為了識別和找到網路中的裝置,每一子網中的裝置都會被分配一 個唯一的地址。由於各個子網使用的物理技術可能不同,因此這個地址應當是邏輯地址(如IP地址)
    交換:規定不同的交換方式。常見的交換技術有:線路交換技術和儲存轉發技術,後者包括報文轉發技術和分組轉發技術。
    路由演算法:當源節點和路由節點之間存在多條路徑時,本層可以根據路由演算法,通過網路為資料分組選擇最佳路徑,並將資訊從最合適的路徑,由傳送端傳送的接受端。
    連線服務

:與資料鏈路層的流量控制不同的是,前者控制的是網路相鄰節點間的流量,後者控制的是從源節點到目的節點間的流量。其目的在於防止阻塞,並進行差錯檢測

 

4、傳輸層:

  OSI的下三層的主要任務是資料傳輸,上三層的主要任務是資料處理。而傳輸層是第四層,因此該層是通訊子網和資源子網的介面和橋樑,起到承上啟下的作用。

  主要任務:向用戶提供可靠的、端到端的差錯和流量控制,保證報文的正確傳輸。

  主要作用:向高層遮蔽下層資料通訊的具體細節,即向用戶透明的傳送報文。

  傳輸層提供會話層和網路層之間的傳輸服務,這種服務從會話層獲得資料,並在必要時,對資料進行分割,然後,傳輸層將資料傳送到網路層,並確保資料能準確無誤的傳送到網路層。因此,傳輸層負責提供兩節點之間資料的可靠傳送,當兩節點的聯絡確定之後,傳輸層負責監督工作。

綜上,傳輸層的主要功能如下:

傳輸連線管理:提供建立、連線和拆除傳輸連線的功能。傳輸層在網路層的基礎上,提供“面向連線”和“面向無連線”兩種服務

處理傳輸差錯:提供可靠的“面向連線”和不可靠的“面向無連線”的資料傳輸服務、差錯控制和流量控制。在提供“面向連線”服務時,通過這一層傳輸的資料將由目標裝置確認,  如果在指定的時間內未收到確認資訊,資料將被重新發送。

監控服務質量

 

5、會話層:是OSI參考模型的第五層,是使用者應用程式和網路之間的介面

  主要任務:向兩個實體的表示層提供建立和使用連線的方法。將不同實體之間的表示層的連線稱為會話。因此會話層的任務就是組織和協調兩個會話程序之間的通訊,並對資料交換進行管理。

  使用者可以按照半雙工、單工和全工的方式建立會話。當建立會話時,使用者必須提供他們想要連線的遠端地址。而這些地址與MAC(介質訪問控制子層)地址或網路層的邏輯地址不同,他們是為使用者專門設計的,更便於使用者記憶。域名(DN)就是網路上使用的遠端地址。

會話層的具體功能如下:

會話管理:允許使用者在兩個實體裝置之間建立、維持和終止會話,並支援它們之間的資料交換。例如提供單方向會話或雙向同時會話,並管理會話中的傳送順序,以及會話所佔用時間的長短。

會話流量控制:提供流量控制和交叉會話功能。  

定址:使用遠端地址建立會話連線。      

出錯控制:從邏輯上講,會話層主要負責資料交換的建立、保持和終止,但實際的工作卻是接收來自傳輸層的資料,並負責糾錯。會話控制和遠端過程呼叫均屬於這一層的功能。但應注意,此層檢查的錯誤不是通訊介質的錯誤,而是磁碟空間、印表機缺紙等高階類的錯誤。

 

6、表示層:

  表示層是OSI模型的第六層,它對來自應用層的命令和資料進行解釋,對各種語法賦予相應的含義,並按照一定的格式傳送給會話層。
  其主要功能是“處理使用者資訊的表示問題,如編碼、資料格式轉換和加密解密”等。
  表示層的具體功能如下:
    資料格式處理:協商和建立資料交換的格式,解決各應用程式之間在資料格式表示上的差異。
    資料的編碼:處理字符集和數字的轉換。例如由於使用者程式中的資料型別(整型或實型、有符號或無符號等)、使用者標識等都可以有不同的表示方式,因此,在裝置之間需要具有在不同字符集或格式之間轉換的功能。
    壓縮和解壓縮:為了減少資料的傳輸量,這一層還負責資料的壓縮與恢復。
    資料的加密和解密:可以提高網路的安全性。

 

7、應用層

  應用層是OSI參考模型的最高層,它是計算機使用者,以及各種應用程式和網路之間的介面。

  主要功能:直接向用戶提供服務,完成使用者希望在網路上完成的各種工作。它在其他6層工作的基礎上,負責完成網路中應用程式與網路作業系統之間的聯絡,建立與結束使用者之間的聯絡,並完成網路使用者提出的各種網路服務及應用所需的監督、管理和服務等各種協議。此外,該層還負責協調各個應用程式間的工作。
  應用層為使用者提供的服務和協議有:檔案服務、目錄服務、檔案傳輸服務(FTP)、遠端登入服務(Telnet)、電子郵件服務(E-mail)、列印服務、安全服務、網路管理服務、資料庫服務等。上述的各種網路服務由該層的不同應用協議和程式完成,不同的網路作業系統之間在功能、介面、實現技術、對硬體的支援、安全可靠性以及具有的各種應用程式介面等各個方面的差異是很大的。

應用層的主要功能如下:
    使用者介面:應用層是使用者與網路,以及應用程式與網路間的直接介面,使得使用者能夠與網路進行互動式聯絡。
    實現各種服務:該層具有的各種應用程式可以完成和實現使用者請求的各種服務。

 

OSI 7層模型的小結
由於OSI是一個理想的模型,因此一般網路系統只涉及其中的幾層,很少有系統能夠具有所有的7層,並完全遵循它的規定。
在7層模型中,每一層都提供一個特殊的網路功能。

從網路功能的角度觀察:

下面4層(物理層、資料鏈路層、網路層和傳輸層)主要提供資料傳輸和交換功能,即以節點到節點之間的通訊為主;

第4層作為上下兩部分的橋樑,是整個網路體系結構中最關鍵的部分;

而上3層(會話層、表示層和應用層)則以提供使用者與應用程式之間的資訊和資料處理功能為主。

簡言之,下4層主要完成通訊子網的功能,上3層主要完成資源子網的功能。

 

一個很容易理解OSI 七層模型的例子:

OSI七層模式簡單通俗理解

這個模型推出的最開始,是因為美國人有兩臺機器之間進行通訊的需求。

需求1:
科學家要解決的第一個問題是,兩個硬體之間怎麼通訊。具體就是一臺發些位元流,然後另一臺能收到。
於是,科學家發明了物理層:
主要定義物理裝置標準,如網線的介面型別、光纖的介面型別、各種傳輸介質的傳輸速率等。它的主要作用是傳輸位元流(就是由1、0轉化為電流強弱來進行傳輸,到達目的地後在轉化為1、0,也就是我們常說的數模轉換與模數轉換)。這一層的資料叫做位元。

需求2:
現在通過電線我能發資料流了,但是,我還希望通過無線電波,通過其它介質來傳輸。然後我還要保證傳輸過去的位元流是正確的,要有糾錯功能。
於是,發明了資料鏈路層:
通過各種控制協議,將有差錯的物理通道變為無差錯的、能可靠傳輸資料幀的資料鏈路。

需求3:

現在我可以在兩臺計算機之間傳送資料了,那麼如果我要在多臺計算機之間傳送資料呢?怎麼找到我要發的那臺?或者,A要給F發信息,中間要經過B,C,D,E,但是中間還有好多節點如K.J.Z.Y。我怎麼選擇最佳路徑?這就是路由要做的事。
於是,發明了網路層。             

通過路由演算法,為報文或分組通過通訊子網選擇最適當的路徑。該層控制資料鏈路層與物理層之間的資訊轉發,建立、維持與終止網路的連線。具體的說,資料鏈路層的資料在這一層被轉換為資料包,然後通過路徑選擇、分段組合、順序、進/出路由等控制,將資訊從一個網路裝置傳送到另一個網路裝置。一般的,資料鏈路層是解決統一網路內節點之間的通訊,而網路層主要解決不同子網之間的通訊。例如路由選擇問題。

需求4:               

現在我能發正確的發位元流資料到另一臺計算機了,但是當我發大量資料時候,可能需要好長時間,例如一個視訊格式的,網路會中斷好多次(事實上,即使有了物理層和資料鏈路層,網路還是經常中斷,只是中斷的時間是毫秒級別的)。那麼,我還須要保證傳輸大量檔案時的準確性。於是,我要對發出去的資料進行封裝。就像發快遞一樣,一個個地發。
於是,先發明瞭傳輸層。
向用戶提供可靠的、端到端的差錯和流量控制,保證報文的正確傳輸。提供建立、連線和拆除傳輸連線的功能。傳輸層在網路層基礎上,提供“面向連線”和“面向無連線”兩種服務。例如TCP,是用於發大量資料的,我發了1萬個包出去,另一臺電腦就要告訴我是否接受到了1萬個包,如果缺了3個包,就告訴我是第1001,234,8888個包丟了,那我再發一次。這樣,就能保證對方把這個視訊完整接收了。
例如UDP,是用於傳送少量資料的。我發20個包出去,一般不會丟包,所以,我不管你收到多少個。在多人互動遊戲,也經常用UDP協議,因為一般都是簡單的資訊,而且有廣播的需求。如果用TCP,效率就很低,因為它會不停地告訴主機我收到了20個包,或者我收到了18個包,再發我兩個!如果同時有1萬臺計算機都這樣做,那麼用TCP反而會降低效率,還不如用UDP,主機發出去就算了,丟幾個包你就卡一下,算了,下次再發包你再更新。

需求5:
現在我們已經保證給正確的計算機,傳送正確的封裝過後的資訊了。但是使用者級別的體驗好不好?難道我每次都要呼叫TCP去打包,然後呼叫IP協議去找路由,自己去發?當然不行,所以我們要建立一個自動收發包,自動定址的功能。
於是,發明了會話層。           

會話層的作用就是建立和管理應用程式之間的通訊。允許使用者在兩個實體裝置之間建立、維持和終止會話,並支援它們之間的資料交換。例如提供單方向會話或雙向同時會話,並管理會話中的傳送順序,以及會話所佔用時間的長短。

需求6:
現在我能保證應用程式自動收發包和定址了。但是我要用Linux給window發包,兩個系統語法不一致,就像安裝包一樣,exe是不能在linux下用的,shell在window下也是不能直接執行的。於是需要表示層,幫我們解決不同系統之間的通訊語法問題。

需求7:
OK,現在所有必要條件都準備好了,我們可以寫個android程式,web程式去實現需求把。


 

TCP/IP四層模型與OSI七層模型的對應關係

TCP/IP與OSI最大的不同在於OSI是一個理論上的網路通訊模型,而TCP/IP則是實際執行的網路協議。