3分鐘讓你練就網(wǎng)絡(luò)七層模型的“乾坤大挪移”
我們知道兩臺計算機直接的聯(lián)系是依靠網(wǎng)絡(luò)來完成的,但是網(wǎng)絡(luò)的信息傳遞又是依靠七層模型(即 物理層、數(shù)據(jù)鏈路層、網(wǎng)絡(luò)層、傳輸層、會話層、表示層、應(yīng)用層),我們稱之為----- OSI參考模型。但什么又是OSI模型呢?
OSI模型是解決一臺機器上的一個應(yīng)用軟件與另一個機器上的應(yīng)用軟件所進行的信息交互。因為計算機與計算機進行聯(lián)系,他們都是硬件設(shè)備,所以想要建立聯(lián)系,就必須有軟件的支持。因此,七層模型是通信基礎(chǔ)。所以,下面我們先來介紹第一個 OSI模型。
對于以上的疑問,我們就來一一對答。首先,OSI 是什么?英文名稱(Open System Interconnect)開放式系統(tǒng)互聯(lián)模型。它就是用來表示計算機通信原理的形象化表示。
OSI 模型示意圖
是不是覺得很難記,接下里教大家一個簡單的方法記憶下來各層是干嘛的。由下向上來介紹:
1. 物理層:
網(wǎng)絡(luò)的通信是需要硬件的吧,硬件大多和物理有關(guān),所以記作為 物理層。在這里這個硬件設(shè)備的作用就是將網(wǎng)絡(luò)上傳遞過來的信息轉(zhuǎn)換成數(shù)字信號,即二進制數(shù)字,0與1的數(shù)據(jù)流,在這里我們叫做比特流。所以物理層的傳輸單位是 比特流(byte)。比方說:我將信息從計算機A要傳遞到計算機B,首先物理層網(wǎng)絡(luò)傳遞過來的信息轉(zhuǎn)化為比特流。
2. 數(shù)據(jù)鏈路層
現(xiàn)在通過物理設(shè)備,這里叫做電線可以發(fā)送比特流了,我現(xiàn)在還希望用無線廣播的形式來傳輸比特流。并且我還要保證我傳輸?shù)谋忍亓髡_與否,要具有糾錯要校驗的功能。所以,數(shù)據(jù)鏈路層就誕生了,它具有糾錯和校驗以及確保數(shù)據(jù)的可靠傳輸作用。
3. 傳輸層(在這里和網(wǎng)絡(luò)層進行調(diào)換)
現(xiàn)在我可以做到了準(zhǔn)確的將比特流發(fā)送到另一臺計算機上了,但是當(dāng)我在發(fā)送音樂和電影等大量數(shù)據(jù)流的時候,就會發(fā)現(xiàn)網(wǎng)絡(luò)會經(jīng)常中斷。因此,我就要對這些數(shù)據(jù)流進行封裝,以確保準(zhǔn)確性。如圖送外賣一樣,將一份份外賣包裝起來。一個個送達(dá),貼上標(biāo)簽,提高準(zhǔn)確性。當(dāng)送一份兩份外賣,我不做標(biāo)簽還能記得要送到哪里,但當(dāng)我要送幾十份甚至是上百份外賣的時候,我就得在外賣上貼上標(biāo)簽。因此,先發(fā)明了傳輸層,怎么進行傳輸,傳輸層的作用就是要對數(shù)據(jù)進行封裝,貼上標(biāo)簽和地址。
在傳輸層我們要重點認(rèn)識到 TCP,UDP兩個重要概念:
(1)TCP 傳輸控制協(xié)議
特點:
- TCP 是面向連接的。(如圖視頻通話一般,先連接,確保接通后,然后掛斷,TCP連接才結(jié)束)
- TCP 是可靠性連接。 即自己發(fā)出去的數(shù)據(jù),一定保證誤差值,無丟包等現(xiàn)象出現(xiàn)
- TCP 的連接只能是一對一的服務(wù),比如我們兩個打電話,只能同時我們兩個人手機通話在一起。
- TCP 支持雙向通信,即你可以給我發(fā)信息,我也可以給你發(fā)信息。
(2) UDP 用戶數(shù)據(jù)協(xié)議
特點:
- UDP 多用于一對多,比如像廣播一樣傳達(dá)給很多人。也支持一對一,多對一,多對多通信。
- UDP 不需要連接
- UDP 不會發(fā)生阻塞的現(xiàn)象,比如多人會議視頻
- UDP 是面向報文的
4. 網(wǎng)絡(luò)層
上面我們說了傳輸層將數(shù)據(jù)流進行了封裝打包,但是現(xiàn)在又有一個問題了,有很多臺計算機啊,怎么才能準(zhǔn)確的發(fā)到我想要發(fā)到信息的那臺計算機呢?這個時候就得需要路由器來完成了,所以網(wǎng)絡(luò)層誕生了。因為,在現(xiàn)實中很多網(wǎng)絡(luò)選址都是由路由器來完成的。在網(wǎng)絡(luò)層里,我們應(yīng)用了IP協(xié)議這一知識點,對于IP協(xié)議有哪些理解呢?
IP協(xié)議,也叫做IP數(shù)據(jù)報,簡稱數(shù)據(jù)報。所謂的IP層就是負(fù)責(zé)將低一層次的數(shù)據(jù)包發(fā)送到更高一級別的數(shù)據(jù)包;通俗的理解就是將以太網(wǎng)的設(shè)備驅(qū)動程序發(fā)送到TCP/UDP層去,反而言之他也可以將高一層的協(xié)議內(nèi)容發(fā)送到低一層的。IP協(xié)議中包含的IP地址里面有發(fā)送信息的計算機的地址(源地址)和接收此條信息的計算機地址(目的地址)。IP協(xié)議的作用就是,計算機A要從計算機B發(fā)送信息,可以通過H,G,K,或者K,J,H等等多路徑,而哪一條是好的路徑呢,這就是網(wǎng)絡(luò)層的事,即發(fā)明了IP包,IP地址的概念。
5. 會話層
現(xiàn)在我們可以做到了可以將數(shù)據(jù)包,打包封裝好,準(zhǔn)確的發(fā)送到計算機上。但是這里面是有一個缺點的,就是我每次都要用TCP去打包,然后利用IP協(xié)議去找合適的路線發(fā)送過去?但是這些都是手動完成的,少量的數(shù)據(jù)量人工還能處理,但遇到大批量的數(shù)據(jù)量,你就得實現(xiàn)自動打包來處理了。這里要是有一個可以自動打包,尋址來發(fā)送數(shù)據(jù)流的是不是就更好了呢。對此,會話層就應(yīng)用而生了。由此,我們可以看出來,會話層的作用實現(xiàn)自動打包,發(fā)包(指IP包),然后自動尋址的功能。
6. 表示層
現(xiàn)在我已經(jīng)能夠?qū)?shù)據(jù)包打包封裝準(zhǔn)確的發(fā)送到我想要發(fā)送過去的那臺計算機了,并且此過程可以實現(xiàn)了自動完成,不需要手動完成。但是現(xiàn)在又有一個問題出現(xiàn)了,如果我要從Mac上發(fā)送信息給Windows用戶,怎么辦呢?由于是兩個系統(tǒng),很多語法,指令都不一樣,無法兼容啊。為此,我們就讓表示層來產(chǎn)生了,表示層就是讓我們解決各個系統(tǒng)之間可以流暢發(fā)送信息的過程。是應(yīng)用程序和網(wǎng)絡(luò)的翻譯官,比方你在手機APP上查詢你的銀行卡賬戶時,當(dāng)你輸入你的賬號和密碼時是要被加密的,而銀行系統(tǒng)那一端在接受你的請求時,需要將編碼解密,然后返回結(jié)果給你。表示層起到的是加密和解密的作用
7. 應(yīng)用層
應(yīng)用層就是用來封裝各種協(xié)議的,可以提供用戶更好地使用它。
OSI七層模型協(xié)議概述,主要闡述以下五種,會話層和表示層經(jīng)常被歸類到應(yīng)用層里面
闡述一下七層模型的工作原理:
例如下圖的計算機A,想要發(fā)信息給計算機B。計算機A中的應(yīng)用程序先將需要發(fā)送的信息發(fā)送到應(yīng)用層,應(yīng)用層提供網(wǎng)絡(luò)接口,信息進入Inten網(wǎng)絡(luò)中,然后傳送到表示層,表示負(fù)責(zé)將信息加密和解密。及轉(zhuǎn)化成計算機可以識別的統(tǒng)一語言,然后表示層又將信息傳送到第五層(會話層),會話層的作用就是將傳遞來的信息,進行自動打包封裝,將數(shù)據(jù)流自己尋找地址。將數(shù)據(jù)流同步和更新同步起來。
接下來,信息又被發(fā)送到第四層(傳輸層),傳輸層的作用就是將這些傳遞來的信息一個個封裝起來,貼上標(biāo)簽,貼上地址,然后傳遞到第三層網(wǎng)絡(luò),封裝成一個整體IP包,IP包里含有源站點和目的地址。然后網(wǎng)絡(luò)層再將信息轉(zhuǎn)發(fā)到第二層(數(shù)據(jù)鏈路層),數(shù)據(jù)鏈路層的作用確保將信息轉(zhuǎn)化為幀為單位,確保順序發(fā)送和差錯檢測和校驗,然后數(shù)據(jù)鏈路層又將信息發(fā)送到第一層(物理層),物理層則通過中繼器,通信設(shè)備將數(shù)據(jù)流傳送給計算機B,計算機B的物理層接收到信息,從物理層依次由下往上傳遞到應(yīng)用層,然后信息傳遞到計算機B。
兩臺計算機之間的信息流交換有啥特點呢?
- 兩個不同的計算機,都有相同的層次結(jié)構(gòu)
- 每層對應(yīng)的結(jié)構(gòu)都是通過各自的協(xié)議進行通信
- 由圖中可以看出,左邊而言上層使用下層的服務(wù),然后下層為上層提供服務(wù)。
- 不同系統(tǒng)之間都有相同的功能,創(chuàng)造一個更好地互連環(huán)境
談到這里,對于網(wǎng)絡(luò)七層模型,你是不是都記住了呢?當(dāng)所有的公司,組織,個人都遵從了OSI這樣的規(guī)范,這樣我們的網(wǎng)絡(luò)就可以互聯(lián)了,形成了互聯(lián)網(wǎng)。我們就可以相互間的進行交流了。