五分鐘內(nèi)了解 OSI 模型
開放系統(tǒng)互聯(lián)(OSI)模型是一個定義計算機、服務(wù)器和用戶如何在一個系統(tǒng)內(nèi)通信的標(biāo)準(zhǔn)。它是第一個網(wǎng)絡(luò)通信標(biāo)準(zhǔn)模型,在上世紀(jì) 80 年代早期,所有主流的計算機和通信公司都采用了這個標(biāo)準(zhǔn)。
OSI 模型提供了一種用于描述網(wǎng)絡(luò)的通用語言,并以離散的塊或?qū)拥姆绞絹砻枋觥?/p>
該模型描述了計算機系統(tǒng)通過網(wǎng)絡(luò)進(jìn)行通信的七個層。
7 應(yīng)用層
6 表示層
5 會話層
4 傳輸層
3 網(wǎng)絡(luò)層
2 數(shù)據(jù)鏈路層
1 物理層
每個層都有自己的工作方式和一系列跟其他層不同的協(xié)議。本文將逐個剖析這些層級。
應(yīng)用層
應(yīng)用層是在軟件中實現(xiàn)的。它是與應(yīng)用程序交互的層級。
用發(fā)送消息作為例子。發(fā)送消息的程序與應(yīng)用層進(jìn)行交互,并發(fā)送消息。接著,應(yīng)用層向 OSI 模型的下一個層級(即表示層)發(fā)送消息。
表示層
來自應(yīng)用層的數(shù)據(jù)被轉(zhuǎn)發(fā)到表示層。表示層接收到文字、字符、字母、數(shù)字等形式的數(shù)據(jù),并把它們轉(zhuǎn)換為機器可識讀的二進(jìn)制格式數(shù)據(jù)。這個過程叫做編譯。
在此階段,ASCII(美國信息交換標(biāo)準(zhǔn)碼)字符被轉(zhuǎn)換為擴充的二進(jìn)制編碼的十進(jìn)制交換碼(EBCDIC)。轉(zhuǎn)換后的數(shù)據(jù)在繼續(xù)傳輸前,也會進(jìn)行編碼和加密過程,使用 SSL 協(xié)議進(jìn)行加密和解密。
表示層的作用是抽象化,它假設(shè)下面的層級會處理它們收到的數(shù)據(jù)。它也負(fù)責(zé)壓縮數(shù)據(jù)。數(shù)據(jù)的壓縮可能是有損的,也有可能是無損的,這取決于很多因素,這不屬于本文的討論范圍。
會話層
會話層的作用是建立和管理連接。該層級的主要工作是建立會話。例如,你登錄網(wǎng)上商城,就在你的機器和服務(wù)器之間建立了會話。
會話層的作用是實現(xiàn)數(shù)據(jù)的發(fā)送和接收,完成后連接的會話就終止了。在一個會話建立前,會進(jìn)行身份驗證。與上一層類似,會話層也假設(shè)在它的工作完成后,下面的層級也會準(zhǔn)確無誤地處理數(shù)據(jù)。
傳輸層
傳輸層的作用是管理數(shù)據(jù)傳輸和其自身的關(guān)于數(shù)據(jù)如何傳輸?shù)囊恍﹨f(xié)議。從會話層傳到這里的數(shù)據(jù)被分為更小的數(shù)據(jù)單元,這些數(shù)據(jù)單元稱為片段。這個過程叫做“分段”。每個片段包含來源端口號、目標(biāo)端口號和一個序列號。端口號用來識別發(fā)送數(shù)據(jù)的應(yīng)用程序。注意,數(shù)據(jù)以塊的形式傳輸。序列號用于把這些片段按正確的順序排列。
傳輸層負(fù)責(zé)控制流量或在給定的時間內(nèi)傳輸?shù)臄?shù)據(jù)量。它也負(fù)責(zé)錯誤控制,比如數(shù)據(jù)丟失、損壞等情況。它利用一種錯誤檢測值,通常叫做校驗和。傳輸層對每個數(shù)據(jù)片段加上校驗和,就可以檢查所發(fā)送的數(shù)據(jù)是否被正確接收。然后數(shù)據(jù)傳輸?shù)骄W(wǎng)絡(luò)層。
網(wǎng)絡(luò)層
網(wǎng)絡(luò)層的作用是跟其他網(wǎng)絡(luò)進(jìn)行通信。它把從一臺機器接收到的數(shù)據(jù)片段傳輸給另一臺位于不同網(wǎng)絡(luò)的機器。路由器是作用于網(wǎng)絡(luò)層的。
網(wǎng)絡(luò)層的功能是邏輯尋址(就是確定 IP 地址)。它為發(fā)送方和接收方分配 IP 地址,數(shù)據(jù)包附帶了這個地址,就可以被傳輸?shù)秸_的目標(biāo)機器。接著網(wǎng)絡(luò)層對數(shù)據(jù)包進(jìn)行路由。負(fù)載均衡也是在網(wǎng)絡(luò)層進(jìn)行的,旨在確保不會發(fā)生過載。下一步,數(shù)據(jù)傳輸?shù)綌?shù)據(jù)鏈路層。
數(shù)據(jù)鏈路層
數(shù)據(jù)鏈路層支持跟其他設(shè)備直接通信。
它接收到來自網(wǎng)絡(luò)層、包含發(fā)送方和接收方 IP 地址的數(shù)據(jù)包,進(jìn)行物理尋址,然后將發(fā)送方和接收方的 MAC 地址分配給數(shù)據(jù)包,形成幀。
物理層
物理層由系統(tǒng)的所有硬件和物理設(shè)備(包括網(wǎng)線、導(dǎo)航系統(tǒng)、適配器等)組成。在這里,從前面層級接收到的數(shù)據(jù)都是 0 和 1 形式的。物理層把這些數(shù)據(jù)轉(zhuǎn)換并通過各種方式(如果是光纖電纜,有電線、電信號、光信號;如果是 WIFI,則為無線電信號)傳輸至本地媒介。
注意,物理層作用于接收方的一端,把接收到的信號以幀的形式傳輸?shù)綌?shù)據(jù)鏈路層(把它轉(zhuǎn)換回二進(jìn)制數(shù)據(jù)形式)。然后幀傳輸?shù)缴厦娴膶蛹?,最終應(yīng)用層(應(yīng)用軟件)會接收到需要的數(shù)據(jù)。
結(jié)語
當(dāng)你需要描述網(wǎng)絡(luò)架構(gòu)或排除網(wǎng)絡(luò)問題時,OSI 模型的相關(guān)知識會對你有所幫助。我希望本文能令你對這個模型的方方面面有清晰的理解。