今天我在推特上發(fā)布了一些關(guān)于 OSI 模型如何與 TCP/IP 工作原理的實(shí)際表現(xiàn)不相符的觀點(diǎn),這讓我思考——OSI 模型到底是什么?通過閱讀推特上的一些回復(fù)發(fā)現(xiàn),似乎至少存在三種不同的思考方式:


(資料圖片僅供參考)

TCP/IP 工作原理的字面描述一個(gè)可以用來(lái)描述和比較很多不同的網(wǎng)絡(luò)協(xié)議的抽象模型對(duì) 1980 年代的一些計(jì)算機(jī)網(wǎng)絡(luò)協(xié)議的字面描述,這些協(xié)議如今大多已不再使用

在這篇文章中,我不打算試圖爭(zhēng)辯以上哪一個(gè)才是“真正”的 OSI 模型——似乎不同的人以所有這些方式思考它。這不重要。

OSI 模型有七層

在我們討論 OSI 模型的含義之前,讓我們大致地討論一下它是什么。它是一個(gè)抽象模型,用于描述網(wǎng)絡(luò)如何在七個(gè)編號(hào)的層上工作:

第一層:物理層第二層:數(shù)據(jù)鏈路層第三層:網(wǎng)絡(luò)層第四層:傳輸層第五層:會(huì)話層第六層:表示層第七層:應(yīng)用層

我不會(huì)再費(fèi)時(shí)地去解釋每一層的含義,網(wǎng)上有上千種解釋可供查詢。

OSI 模型:TCP/IP 工作原理的字面描述

首先,我想談?wù)勅藗冊(cè)趯?shí)踐中使用 OSI 模型的一種常見方式:作為對(duì) TCP/IP 工作原理的字面描述。OSI 模型的某些層非常容易映射到 TCP/IP:

第二層對(duì)應(yīng)以太網(wǎng)第三層對(duì)應(yīng) IP第四層對(duì)應(yīng) TCP 或 UDP(或 ICMP 等)第七層對(duì)應(yīng) TCP 或 UDP 包內(nèi)的任何內(nèi)容(例如 DNS 查詢)

這種映射對(duì)第二、三、四層很有意義——TCP 數(shù)據(jù)包有三個(gè)標(biāo)頭header對(duì)應(yīng)于這三個(gè)層(以太網(wǎng)標(biāo)頭、IP 標(biāo)頭和 TCP 標(biāo)頭)。

用數(shù)字來(lái)描述 TCP 數(shù)據(jù)包中的不同標(biāo)頭非常有用——如果你說“第二層”,很顯然它位于第三層“下方”,因?yàn)槎热 ?/p>

“OSI 模型作為字面描述”的古怪之處在于,第五層和第六層并不真正對(duì)應(yīng)于 TCP/IP 中的任何內(nèi)容——我聽說過很多關(guān)于第五層或第六層可能是什么的不同解釋(你可以說第五層是 TLS 或其他東西?。┑鼈儧]有像第二、三、四層那樣“每一層在 TCP 數(shù)據(jù)包中都有相應(yīng)的標(biāo)頭”這樣的明確對(duì)應(yīng)關(guān)系。

此外,TCP/IP 的某些部分即使在第二層到第四層也不能很好地適應(yīng) OSI 模型——例如,哪一層是 ARP 數(shù)據(jù)包?ARP 數(shù)據(jù)包發(fā)送一些帶有以太網(wǎng)標(biāo)頭的數(shù)據(jù),這是否意味著它們是第三層?或是第二層?列出不同 OSI 層的維基百科文章將其歸類為“第 2.5 層”,這并不令人滿意。

因?yàn)?OSI 模型有時(shí)用于教授 TCP/IP,若搞不清楚它的哪些部分可以映射到 TCP/IP,而哪些部分不能,則會(huì)令人困惑。這才是真的問題。

OSI 模型:用于比較網(wǎng)絡(luò)協(xié)議的一個(gè)抽象

我聽說過的另一種關(guān)于 OSI 的思考方式是,它是一種抽象,可以用來(lái)在許多不同的網(wǎng)絡(luò)協(xié)議之間進(jìn)行類比。例如,如果你想了解藍(lán)牙協(xié)議的工作原理,也許你可以使用 OSI 模型來(lái)幫助你——這是我在這個(gè)網(wǎng)頁(yè)上找到的一張圖表,顯示了藍(lán)牙協(xié)議如何適配 OSI 模型。

OSI 模型:一些過時(shí)協(xié)議的字面描述

維基百科上的一些非常簡(jiǎn)短的研究表明,除了對(duì)這七層的抽象描述之外,OSI 模型還包含了一組實(shí)現(xiàn)這些層的特定協(xié)議?。顯然,這發(fā)生在 70 年代和 80 年代的協(xié)議戰(zhàn)爭(zhēng)時(shí)期,OSI 模型失敗了,TCP/IP 則取得了勝利。

這就解釋了為什么 OSI 模型無(wú)法與 TCP/IP 很好地對(duì)應(yīng),因?yàn)槿绻?dāng)時(shí)“獲勝”的是 OSI 協(xié)議,那么 OSI 模型將完全對(duì)應(yīng)于互聯(lián)網(wǎng)網(wǎng)絡(luò)的實(shí)際工作方式。

結(jié)語(yǔ)

我寫這篇文章的初衷是,當(dāng)我最初學(xué)習(xí) OSI 模型時(shí),我發(fā)現(xiàn)它非常令人困惑(所有這些層是什么?它們是真實(shí)存在的嗎?這是網(wǎng)絡(luò)的實(shí)際工作原理嗎?發(fā)生了什么?)我希望有人告訴我這個(gè)只使用 TCP/IP 網(wǎng)絡(luò)協(xié)議的人,只需了解 OSI 模型第二、三、四和七層與 TCP/IP 的關(guān)系,然后忽略它的所有其他內(nèi)容即可。所以我希望這篇文章對(duì)某些人能有所幫助!

標(biāo)簽: