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