首頁>技術>

前面我們已經和大家講完了計算機網路裡面的一些常見裝置,大家有沒有想過,這些裝置之間是如何互相溝通的呢?它們又是怎樣能夠理解彼此的呢?別急,我慢慢和大家說。

網路互連模型

網路誕生之初,通常只有同一家廠商生產的計算機才能互相通訊,此時只能採用 DECnet 方案或者是 IBM 的方案,但是這兩個方案之間並不互通,也就是說,在那個年代,如果我們的網路已經用了 DECnet 的方案,那麼整個網路就只能用 DECnet 的方案,新增裝置也只能用這個方案。直到上個世紀七十年代末,國際標準化組織(ISO)開發了開放式系統互聯模型,也就是 OSI 參考模型,才讓不同廠商之間的裝置能夠通訊。OSI 參考模型是理想的模型,不過現實中中還是 TCP/IP 模型使用更多。但這篇文章依舊會以 OSI 參考模型的講述為主,大家理解其中一個模型,就能理解其他的模型了。

參考模型的優點

OSI 模型旨在以協議的形式幫助廠商生產可互相操作的網路裝置和軟體,讓不同廠商的網路能夠協同工作,也讓執行不同作業系統的主機之間可以互相通訊。比如說咱們辦公室,有的同事電腦是 MacOS 系統,有的是 Windows 系統,還有各種手機,執行 Linux 系統的伺服器,只要是網路可達,完全可以正常通訊。

比如我們公司會有很多部門,並有一套執行標準,規定了每個部門的任務,比如說誰去面對客戶,誰來實現客戶需求,誰負責員工保障等。每個部門就相當於 OSI 參考模型中的層,每層的工作雖然不一樣,但是都是為了同樣的戰略目標——通訊。而且每個部門無法獨立存在,必須和其他部門協同工作才可以完成任務。這套執行標準就是我們的 OSI 參考模型。這個模型並不是一個物理模型,而是一個邏輯模型,並不是說我們從物理上給分了七層,而是和我們公司的執行標準一樣,是一組指導原則,幫助我們完成工作。

使用這樣的分層模型有很多優點:每一層可以各司其職,這樣有助於元件開發;並且標準化網路元件,就不會出現我們前面所說的各個廠商之間完全無法通訊的情況;而且可以避免修改其中一層而影響其他層的狀況。

OSI 七層模型

OSI 模型是主要的網路架構模型,分為七層:

OSI 參考模型

從上到下依次為,應用層、表示層、會話層、傳輸層、網路層、資料鏈路層和物理層。

應用層就是使用者和計算機交流的場所,比如說檔案傳輸和電子郵件等應用,都是應用層的工作。僅當馬上需要訪問網路時,這一層才會發揮作用,如果是訪問本機上已儲存的檔案,是不需要用到應用層的。表示層承擔著翻譯工作,它會將來自應用層的資料轉換成所有計算機都通用的標準格式,並對資料進行加密。會話層負責建立、管理和終止會話的工作,還能將使用者資料分開。傳輸層提供端到端的資料傳輸服務,在網際網路中的傳送主機和接收主機之間建立邏輯連線,同時也會控制流量,防止流量太大而導致資料丟失的情況出現,在這一層還會區分不同的應用程式,透過埠號進行標記。網路層就是邏輯定址,確定最佳的資料傳輸路徑。資料鏈路層提供資料的物理傳輸,進行區域網內部的物理定址,並處理錯誤通知。物理層的作用就是傳送和接受原始位元流,比如說咱們第一篇文章說到的傳輸介質,就是工作在物理層。

這麼說大家會不會覺得不太好理解呢?簡單來說,越是上層就越靠近使用者,越是底層就越接近硬體。比如說應用層就是直接和使用者接觸的,物理層的位元流就可以直接透過硬體傳輸了。OSI 參考模型是在協議前設計的,具有通用性,且概念清晰,但是過於複雜了,在 TCP/IP 網路中有更加簡潔的模型。

TCP/IP 參考模型

TCP/IP 模型和 OSI 參考模型一樣,都採用的是層次結構的方式,對應關係如下圖,

TCP/IP 模型與 OSI 參考模型對應關係

相對於 OSI 來說是不是更簡單一點呢?但是 TCP/IP 模型是有了協議再定義的模型,並不適用於非 TCP/IP 網路。

訊息要經歷什麼才能送到你面前呢

以手機發訊息為例,

首先要開啟一個溝通軟體,當我們執行開啟軟體這個操作的時候,就是由應用層來完成和我們的互動。然後輸入資訊,輸入的資訊叫做使用者資料,然後這個資料會在表示層被“翻譯”成計算機可識別的 ASCII 碼。當我們按完了傳送按鈕,剩下來就是機器的事情了,在傳輸之前,需要先建立會話連線才能傳輸資料,這就是會話層的工作了。會話層建立會話,產生相應的主機程序傳給傳輸層傳輸層將以上資訊加上埠號以便目的主機辨別,得知具體應由本機的哪個任務來處理。這時候資訊還沒有發出去,被交給了網路層。在網路層加上 IP 地址使資料能確認應到達具體某個主機,選路也發生在這一層,確認應發給誰之後我們還要知道該怎麼去,也就是會查地圖,選一條最優的路。到了資料鏈路層後,資料前面會再被加上 MAC 地址,用於在區域網內部尋找具體主機,最後資料被轉成位元流資訊,從而在網路上傳輸。位元流長什麼樣呢?其實就是 010101010…… 這種,因為我們手機、電腦還有上文提到的網路裝置,裡面都是電路板,而電路板只有開合兩個狀態,對應著 0 和 1,所以只有這樣的位元流才可以透過硬體傳播。資料被網路上的各個主機接收之後,主機會看一眼是不是找自己的,如果不是就丟掉,如果是找自己的就會檢視埠號,判斷由哪個程序來處理該資訊。比如說微信發的訊息就會去找微信,不會說 QQ 收到了微信的訊息。

訊息的傳送和接受只是一瞬間,可是在這個瞬間裡面它們經歷過揉碎重組,還被加上了各種各樣的“帽子”,不能被正確接收的訊息還會被丟掉,所以說再收到訊息的時候,多少看一眼吧,畢竟它歷經千辛萬苦才被送到你面前。

我們的資料傳輸原理基礎部分已經結束了,大家是不是又產生了很多新的疑問呢?比如說為什麼有 MAC 地址又有 IP 地址,到底以哪個為準呢?有地址是不是也要有地圖才會找到目的地呢?下一篇文章會為大家講述在 OSI 參考模型的第二層,資料是怎麼找到路的。

9
最新評論
  • BSA-TRITC(10mg/ml) TRITC-BSA 牛血清白蛋白改性標記羅丹明
  • 智慧合約安全系列文章反彙編·下篇