本文是筆者在學習《圖解TCPIP(第5版).烏尼日其其格》后的個人總結和轉述
OSI是什么
OSI是一個開放式系統互聯通信參考模型(Open System Interconnection Reference Model),一種概念模型,由國際標准化組織提出,一個試圖使各種計算機在世界范圍內互連為網絡的標准框架。
先上一張原書中的圖
可能還是有些懵吧,我再來講一下我自己對每一層的理解,這也是這篇博客的主要內容
-
應用層:軟件、應用層面的操作。(如郵件軟件中的郵件的收發,實現郵件的存儲)
-
表示層:關注數據的具體表現形式,如把某個計算機的“特定數據格式”轉換為“網絡通用的標准數據格式”,也可以逆向轉換,保持異構機型間的數據一致性。會在首部信息中附加編碼格式。(文字轉碼)
-
會話層:決定如何傳輸,會在首部信息中附加數據傳送順序的信息。(發5封郵件,每發一次建立一次連接,或者用一個連接發5封)
-
傳輸層:真正開始負責在網絡上傳輸數據是從這一層開始。進行建立連接或斷開連接,在兩個主機之間創建邏輯上的通信是其主要作用。確認數據得到達,負責進行重發。會在首部信息中附加所要傳輸的數據以識別。
-
網絡層:在網絡互連的環境中,將數據從發送端主機發送到接收端主機。網絡層會將其從上層收到的數據和地址信息一起發送給下面的數據鏈路層,進行后面的處理。
-
數據鏈路層、物理層:物理層中,將數據的0、1轉換為電壓和脈沖光傳給物理的傳輸介質,而相互直連的設備之間使用地址實現傳輸(MAC地址,即物理或硬件地址),在這一層中將把包含MAC地址信息的首部附加到網絡層轉發來的數據上,將其發送到網絡。
-
注:網絡層與數據鏈路層都是基於目標地址將數據發送給接收端的,但是網絡層負責將整個數據發送給最終目標地址,而數據鏈路層則只負責發送一個分段內的數據。
上邊有說到的“首部”這個東西,就有點像我們在http請求中的請求頭和相應頭,里面包括一些類似文字編碼,客戶端類型等數據,“首部”中的信息就是在這些層次中加上的。(如下為一次網絡通信的流程圖)
發送方從第7層、第6層到第1層由上至下按照順序傳輸數據,而接收端則從第1層、第2層到第7層由下至上向每個上一級分層傳輸數據。每個分層上,在處理由上一層傳過來的數據時可以附上當前分層的協議所必須的“首部”信息。然后接收端對收到的數據進行數據“首部”與“內容”的分離,再轉發給上一分層,並最終將發送端的數據恢復為原狀。
OSI與TCP/IP的比較
- OSI有7層,而TCP/IP簡化了高層協議,減少通信的層次為4層,提升了通信效率。
- OSI是一種理想化的模型,它先定義參考模型,然后才是協議,這樣就會比較難實現。而TCP/IP是先定義協議,於是迅速成為實際的主流網絡協議標准。(OSI就像世界語,TCP/IP就像英語。)
- 通過因特網與其他計算機通信就必須遵守TCP/IP協議。