一、是什麼
OSI (Open System Interconnect)模型全稱為開放式通訊系統互連參考模型,是國際標準化組織 ( ISO ) 提出的一個試圖使各種計算機在世界範圍內互連為網路的標準框架
OSI
將計算機網路體系結構劃分為七層,每一層實現各自的功能和協議,並完成與相鄰層的介面通訊。即每一層扮演固定的角色,互不打擾
二、劃分
OSI
主要劃分了七層,如下圖所示:
應用層
應用層位於 OSI 參考模型的第七層,其作用是透過應用程式間的互動來完成特定的網路應用
該層協議定義了應用程序之間的互動規則,透過不同的應用層協議為不同的網路應用提供服務。例如域名系統 DNS
,支援全球資訊網應用的 HTTP
協議,電子郵件系統採用的 SMTP
協議等
在應用層互動的資料單元我們稱之為報文
表示層
表示層的作用是使通訊的應用程式能夠解釋交換資料的含義,其位於 OSI
參考模型的第六層,向上為應用層提供服務,向下接收來自會話層的服務
該層提供的服務主要包括資料壓縮,資料加密以及資料描述,使應用程式不必擔心在各臺計算機中表示和儲存的內部格式差異
會話層
會話層就是負責建立、管理和終止表示層實體之間的通訊會話
該層提供了資料交換的定界和同步功能,包括了建立檢查點和恢復方案的方法
傳輸層
傳輸層的主要任務是為兩臺主機程序之間的通訊提供服務,處理資料包錯誤、資料包次序,以及其他一些關鍵傳輸問題
傳輸層向高層遮蔽了下層資料通訊的細節。因此,它是計算機通訊體系結構中關鍵的一層
其中,主要的傳輸層協議是TCP
和UDP
網路層
兩臺計算機之間傳送資料時其通訊鏈路往往不止一條,所傳輸的資訊甚至可能經過很多通訊子網
網路層的主要任務就是選擇合適的網間路由和交換節點,確保資料按時成功傳送
在傳送資料時,網路層把傳輸層產生的報文或使用者資料包封裝成分組和包,向下傳輸到資料鏈路層
在網路層使用的協議是無連線的網際協議(Internet Protocol)和許多路由協議,因此我們通常把該層簡單地稱為 IP 層
資料鏈路層
資料鏈路層通常也叫做鏈路層,在物理層和網路層之間。兩臺主機之間的資料傳輸,總是在一段一段的鏈路上傳送的,這就需要使用專門的鏈路層協議
在兩個相鄰節點之間傳送資料時,資料鏈路層將網路層交下來的 IP
資料包組裝成幀,在兩個相鄰節點間的鏈路上傳送幀
每一幀的資料可以分成:報頭head
和資料data
兩部分:
- head 標明資料傳送者、接受者、資料型別,如 MAC地址
- data 儲存了計算機之間互動的資料
透過控制資訊我們可以知道一個幀的起止位元位置,此外,也能使接收端檢測出所收到的幀有無差錯,如果發現差錯,資料鏈路層能夠簡單的丟棄掉這個幀,以避免繼續佔用網路資源
物理層
作為OSI
參考模型中最低的一層,物理層的作用是實現計算機節點之間位元流的透明傳送
該層的主要任務是確定與傳輸媒體的介面的一些特性(機械特性、電氣特性、功能特性,過程特性)
該層主要是和硬體有關,與軟體關係不大
三、傳輸過程
資料在各層之間的傳輸如下圖所示:
- 應用層報文被傳送到運輸層
- 在最簡單的情況下,運輸層收取到報文並附上附加資訊,該首部將被接收端的運輸層使用
- 應用層報文和運輸層首部資訊一道構成了運輸層報文段。附加的資訊可能包括:允許接收端運輸層向上向適當的應用程式交付報文的資訊以及差錯檢測位資訊。該資訊讓接收端能夠判斷報文中的位元是否在途中已被改變
- 運輸層則向網路層傳遞該報文段,網路層增加了如源和目的端系統地址等網路層首部資訊,生成了網路層資料包
- 網路層資料包接下來被傳遞給鏈路層,在資料鏈路層資料包新增傳送端 MAC 地址和接收端 MAC 地址後被封裝成資料幀
- 在物理層資料幀被封裝成位元流,之後透過傳輸介質傳送到對端
- 對端再一步步解開封裝,獲取到傳送的資料
參考文獻
- https://zh.wikipedia.org/wiki/OSI%E6%A8%A1%E5%9E%8B
- https://zhuanlan.zhihu.com/p/32059190
- https://leetcode-cn.com/leetbook/detail/networks-interview-highlights/
- https://vue3js.cn/interview