1. 程式人生 > >人人都必需懂的OSI參考模型,到底是什麽玩意兒

人人都必需懂的OSI參考模型,到底是什麽玩意兒

一個 路由器 路由交換 hci 應用層 模型 上啟 方向 保密

在很久很久以前,企業級通訊設備的協議是不互通的。HP,IBM等廠商都根據自己的協議生產了不同的軟硬件。這樣做也是因為數據通訊的保密性,但是這樣做有一個弊端,就是不同品牌的設備之間相互通訊非常困難。
  
  舉個例子,以前的中國,閻錫山為了做山西土皇帝,山高皇帝遠,在自己勢力範圍內建造窄軌鐵路,蔣介石國軍的火車無法進入山西境內,無法便利調動軍隊、物資,實現一人獨大的軍閥割據格局。以互聯網的眼光看,如果標準軌道鐵路網是一個互聯網,那閻錫山的窄軌鐵路就是一個自我封閉的局域網,為了打破這種非標準化的私有標準,需要制定一個大家都遵守的國際標準。
  
  為了解決“各自為戰”的局面,國際標準化組織(ISO)和國際電報電話咨詢委員會(CCITT),發起了國際通訊協議標準。初衷是為了讓各大廠商之間的設備遵循這個規定,生產出的設備可以暢通無阻地互相通信。
  
  這個統一的協議稱之為:OSI參考模型
  
  OSI參考模型分為七層

  技術分享圖片
  每一層都有他的目的和作用,下面我們逐一介紹一下。
  
  應用層

  
  這裏說的是提供應用程序進程的網絡接口。首先要理解接口的定義。這裏的接口不是指路由器交換機這種設備的物理接口,而是指邏輯上的。舉個例子,如果你使用瀏覽器,瀏覽器上會有標簽頁,刷新,收藏等按鈕。如果你想打開一個新標簽頁,就可以點擊加號。

  技術分享圖片
  這種叫UI(User Interface)用戶接口。意思是用戶和機器交互的接口。
  
  如果我想要做某個操作,我需要電腦能夠給我提供操作的空間,例如我想打開新的標簽頁,我就需要瀏覽器這個程序上有個加號。
  

  同樣的,我的應用程序想要通過網絡傳輸一些數據,也是需要類似的“接口”的。這個接口由應用層提供。典型的例如HTTP就是應用層協議。它可以讓網頁的內容在服務器和客戶端之間傳輸。
  
  表示層

  
  這裏表示層的主要作用是協商數據傳輸時使用的編碼。我們還是拿HTTP這種常用的協議來舉例子。在瀏覽網頁時,我們可以查看網頁上的各種信息,像圖片,文字,視頻等。
  
  那麽在傳輸時,瀏覽器是如何知道圖片以及文字的表達形式呢,傳過來的那麽多信息,程序是如何知道傳的是圖片還是文字還是視頻呢?
  
  這就依靠我們表示層給出的信息來識別。我們一起來看一下網頁的源代碼。

  技術分享圖片
  這邊可以在第五行看到這樣一段代碼:charset=utf-8

  
  簡單介紹一下UTF-8
  
  這是一種字符的編碼方式,它支持英文,簡中,繁重,日文韓文等不同國家的語言,使他們能夠正常在網頁中顯示,這都是表示層的功勞。
  
  會話層

  
  會話層的作用很簡單,在程序間建立,管理和結束會話。何為會話呢?我打開QQ和朋友聊天這是一種會話,聊天的同時我還在使用瀏覽器看視頻,這是另一種會話。
  
  這兩種會話的流量都是通過網絡傳輸過來的,那麽如何保證聊天的流量不會發送給瀏覽器,視頻的流量又不會發給QQ呢?這一般是操作系統層面去實現的事情。
  
  每個應用程序都有屬於自己的PID(進程號)這些號碼在系統中是唯一的,所以系統根據進程號來區分不同的會話。
  
  傳輸層

  
  主要是提供端到端的通信,可靠的傳輸以及流控。上面的三層我們一般也統稱應用層。因為都是應用程序或者操作系統幫我們完成的,跟網絡沒有什麽太大的關系。而傳輸層起到一個承上啟下的作用。
  
  網絡層
  

  網絡層主要的作用是路由數據包,選擇一條最佳的路徑以及提供邏輯地址去選路。典型的像IP地址就是一種邏輯地址,是人為規定的,可以隨意更改。
  
  數據鏈路層

  
  這裏不太好理解給出的定義是接入媒體,可以把這裏的Media理解為硬件,接入硬件,需要提供一個接入硬件的方式。
  
  例如在以太網中,數據鏈路層使用MAC地址,而MAC地址是每個以太網設備在被制造出來時都會有的一個硬件地址,這便是接入硬件的意義。因為最終數據還是要發送到設備上的某個接口的,光靠三層的邏輯地址是不夠的。
 
  物理層
  
  這裏物理層主要是定義電器特性,比方說線速,電壓等等物理特性。
  
  以上就是OSI參考模型
  
  總的來說它將網絡通信這個復雜的過程通過分層給模塊化了,每一層都有自己的任務,就像寄快遞一樣。

  
  總結

  
  先將要寄的東西打包,這是應用層的數據。那麽現在到了傳輸層,主要是提供一種傳輸方式。類似我們在寄快遞的時候選擇空運或者陸運。空運比較貴嘛,但是快,陸運便宜但是慢。這邊只是一個比喻,實際肯定沒有這麽簡單。
  
  傳輸層主要會使用TCP和UDP兩種協議。那麽在選擇完了傳輸方式後,就需要填寫發件人(源地址)和收件人(目標地址)了。填寫完畢以後交給快遞公司,他們會把快遞由一個轉運中心發往另一個轉運中心,並不是直接從源發往目標。這裏的轉運中心其實就到二層了。
  
  在傳輸過程中,像以太網中的MAC地址,是會不停變化的,就像一個快遞由上海發往武漢,會先到上海的某個集散中心,然後發往武漢,然後又在武漢的集散中心轉幾圈,最後發往離目標最近的快遞點,然後才開始配送,最終送到收件人手上。
技術分享圖片

技術分享圖片
  
  本文作者:Lee Xu
  
  HCIE-R&S、CCIE-R&S
  
  擅長路由交換、安全、無線等技術
  
  湖北省職業院校計算機網絡賽項獲獎指導老師
  
  主要技術方向Cisco和Huawei
  
  講授課程:HCIE、CCNA、CCNP、HCNA、HCNP等

人人都必需懂的OSI參考模型,到底是什麽玩意兒