1. 程式人生 > 實用技巧 >最強圖解OSI模型

最強圖解OSI模型

最強圖解OSI模型

文章目錄


首先,如果可以科學上網的同學,我強烈建議大家去看原視訊,真的是 牆裂推薦!!

視訊連結在這裡:https://www.youtube.com/watch?v=vv4y_uOneC0&ab_channel=TechTerms

參考資料: OSI七層模型詳解

如果不能或者看完的同學也可以看一下,下面的講解(如有錯誤之處請在評論區批評指正:happy:)

為什麼有OSI模型?

我們知道網際網路其實就是很多計算機成為結點連成的計算機網路,現在我們考慮最簡單的情況,兩臺計算的的通訊,這兩臺計算機通過網線進行連線(插口是RJ45,使用網路介面控制器(NIC)進行解析),在兩臺計算的系統是一樣的情況下,由於同一系統所用的介面都是一樣的,所以可以很容易的進行通訊,傳遞資料。就像A、B兩個人都是說的中文,那麼兩個人很好交流。
在這裡插入圖片描述
在這裡插入圖片描述

在這裡插入圖片描述

圖源:百度百科-RJ45

那如果一臺是WINDOWS,另外一臺是MAC OS,該怎麼傳遞資料呢?類比剛剛的例子,現在就像是A是說的中、B是說的英文,而且他們都自聽得懂自己所說的語言,那麼A和B就有溝通障礙了,這時候要是有個翻譯官就好了。那麼用誰來充當這兩臺電腦的翻譯官呢,OSI模型就是,通過這個協議將兩者的資料統一,那麼就可以通訊了。

在這裡插入圖片描述

how there two computers are going to communicate successfully with each other?

OSI模型

OSI(Open System Interconnect),即開放式系統互聯。 一般都叫OSI參考模型,是ISO(國際標準化組織)組織在1984年研究的網路互連模型。ISO為了更好的使網路應用更為普及,推出了OSI參考模型。其含義就是推薦所有公司使用這個規範來控制網路。這樣所有公司都有相同的規範,就能互聯了。

image-20201020234902281

image-20201020235943518

圖源: OSI七層模型詳解

OSI Model is Protocols

image-20201020235006496

Application Layer

應用層(Application Layer)是OSI參考模型的最高層,它是計算機使用者,以及各種應用程式和網路之間的介面,其功能是直接向用戶提供服務,完成使用者希望在網路上完成的各種工作。它在其他6層工作的基礎上,負責完成網路中應用程式與網路作業系統之間的聯絡,建立與結束使用者之間的聯絡,並完成網路使用者提出的各種網路服務及應用所需的監督、管理和服務等各種協議。此外,該層還負責協調各個應用程式間的工作。
應用層為使用者提供的服務和協議有:

檔案服務、目錄服務、檔案傳輸服務(FTP)、遠端登入服務(Telnet)、電子郵件服務(E-mail)、列印服務、安全服務、網路管理服務、資料庫服務等。上述的各種網路服務由該層的不同應用協議和程式完成,不同的網路作業系統之間在功能、介面、實現技術、對硬體的支援、安全可靠性以及具有的各種應用程式介面等各個方面的差異是很大的。

應用層的主要功能如下:

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

image-20201020235228190

Presentation Layer

表示層(Presentation Layer)是OSI模型的第六層,它對來自應用層的命令和資料進行解釋,對各種語法賦予相應的含義,並按照一定的格式傳送給會話層。其主要功能是“處理使用者資訊的表示問題,如編碼、資料格式轉換和加密解密”等。

表示層的具體功能如下:

  • 資料格式處理(Translation):協商和建立資料交換的格式,解決各應用程式之間在資料格式表示上的差異。
  • 資料的編碼:處理字符集和數字的轉換。例如由於使用者程式中的資料型別(整型或實型、有符號或無符號等)、使用者標識等都可以有不同的表示方式,因此,在裝置之間需要具有在不同字符集或格式之間轉換的功能。
  • 壓縮和解壓縮(Data Compression):為了減少資料的傳輸量,這一層還負責資料的壓縮與恢復。
  • 資料的加密和解密(Encryption/Decryption):可以提高網路的安全性。

image-20201021000024430

image-20201021000309332

Data Compression can make data transmission done very fast. Thus data compression is very helpful in real-time video and audio-streaming

image-20201021000705419

image-20201021000205639

資料的加密和解密Encryption/Decryption

image-20201021000933388

Session Layer

想象一下,你像舉辦一次Party,你僱了幫手來幫你保證這次party能圓滿的、不出意外的進行。你需要他們佈置場地、打掃衛生、提供酒水、招待客人。

image-20201021001026051

Session Layer 也是和舉辦party一樣,有兩個幫手APIs、NETBIOS

image-20201021001427748

會話層(Session Layer)是OSI模型的第5層,是使用者應用程式和網路之間的介面,主要任務是:向兩個實體的表示層提供建立和使用連線的方法。將不同實體之間的表示層的連線稱為會話。因此會話層的任務就是組織和協調兩個會話程序之間的通訊,並對資料交換進行管理。
使用者可以按照半雙工、單工和全雙工的方式建立會話。當建立會話時,使用者必須提供他們想要連線的遠端地址。而這些地址與MAC(介質訪問控制子層)地址或網路層的邏輯地址不同,它們是為使用者專門設計的,更便於使用者記憶。域名(DN)就是一種網路上使用的遠端地址例如:www.baidu.com就是一個域名。

會話層的具體功能如下:

  • 會話管理:允許使用者在兩個實體裝置之間建立、維持和終止會話,並支援它們之間的資料交換。例如提供單方向會話或雙向同時會話,並管理會話中的傳送順序,以及會話所佔用時間的長短。
  • 會話流量控制:提供會話流量控制和交叉會話功能。
  • 定址:使用遠端地址建立會話連線。l
  • 出錯控制:從邏輯上講會話層主要負責資料交換的建立、保持和終止,但實際的工作卻是接收來自傳輸層的資料,並負責糾正錯誤。會話控制和遠端過程呼叫均屬於這一層的功能。但應注意,此層檢查的錯誤不是通訊介質的錯誤,而是磁碟空間、印表機缺紙等型別的高階錯誤。

會話管理:這裡是與伺服器會話的建立

image-20201021001648201

當你與伺服器建立連線後,你想要下載一個檔案或者訪問一些資源,那麼伺服器會判斷你是否有這個許可權,這也是會話層的任務。

image-20201021001716048

image-20201021001736091

image-20201021001823568

image-20201021002006749

image-20201021002112301

Transport Layer

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

其主要任務是:

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

一般地,資料鏈路層是解決同一網路內節點之間的通訊,而網路層主要解決不同子網間的通訊。例如在廣域網之間通訊時,必然會遇到路由(即兩節點間可能有多條路徑)選擇問題。

在實現網路層功能時,需要解決的主要問題如下:

  • 定址:資料鏈路層中使用的實體地址(如MAC地址)僅解決網路內部的定址問題。在不同子網之間通訊時,為了識別和找到網路中的裝置,每一子網中的裝置都會被分配一個唯一的地址。由於各子網使用的物理技術可能不同,因此這個地址應當是邏輯地址(如IP地址)。

  • 交換:規定不同的資訊交換方式。常見的交換技術有:線路交換技術和儲存轉發技術,後者又包括報文交換技術和分組交換技術。

  • 路由演算法:當源節點和目的節點之間存在多條路徑時,本層可以根據路由演算法,通過網路為資料分組選擇最佳路徑,並將資訊從最合適的路徑由傳送端傳送到接收端。

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

image-20201021002210019

Segmentation

image-20201021002427364

image-20201021002533692

image-20201021002630854

image-20201021002749295

image-20201021002809799

image-20201021002850416

image-20201021002921524

image-20201021003138020

image-20201021003008337

image-20201021003050274

image-20201021003249923

image-20201021003343968

image-20201021003307055

image-20201021003515407

image-20201021003637108

Data Link Layer

資料鏈路層(Data Link Layer)是OSI模型的第二層,負責建立和管理節點間的鏈路。

該層的主要功能是:通過各種控制協議,將有差錯的物理通道變為無差錯的、能可靠傳輸資料幀的資料鏈路。
在計算機網路中由於各種干擾的存在,物理鏈路是不可靠的。因此,這一層的主要功能是在物理層提供的位元流的基礎上,通過差錯控制、流量控制方法,使有差錯的物理線路變為無差錯的資料鏈路,即提供可靠的通過物理介質傳輸資料的方法。
該層通常又被分為介質訪問控制(MAC)和邏輯鏈路控制(LLC)兩個子層。

MAC子層的主要任務是解決共享型網路中多使用者對通道競爭的問題,完成網路介質的訪問控制;

LLC子層的主要任務是建立和維護網路連線,執行差錯校驗、流量控制和鏈路控制。
資料鏈路層的具體工作是接收來自物理層的位流形式的資料,並封裝成幀,傳送到上一層;同樣,也將來自上層的資料幀,拆裝為位流形式的資料轉發到物理層;並且,還負責處理接收端發回的確認幀的資訊,以便提供可靠的資料傳輸。

image-20201021003726095

image-20201021003803498

image-20201021003850372

image-20201021003914548

image-20201021004048066

image-20201021004318203

image-20201021004237629

Physical Layer

在OSI參考模型中,物理層(Physical Layer)是參考模型的最低層,也是OSI模型的第一層。
物理層的主要功能是:利用傳輸介質為資料鏈路層提供物理連線,實現位元流的透明傳輸。
物理層的作用是實現相鄰計算機節點之間位元流的透明傳送,儘可能遮蔽掉具體傳輸介質和物理裝置的差異。使其上面的資料鏈路層不必考慮網路的具體傳輸介質是什麼。“透明傳送位元流”表示經實際電路傳送後的位元流沒有發生變化,對傳送的位元流來說,這個電路好像是看不見的。

image-20201021004541235