(LCTT 校注:原文已經大篇幅進行了修訂更新,感謝據之前得版本翻譯。)
今天我在推特上發布了一些關于 OSI 模型如何與 TCP/IP 工作原理得實際表現不相符得觀點,這讓我思考——OSI 模型到底是什么?通過閱讀推特上得一些回復發現,似乎至少存在三種不同得思考方式:
- TCP/IP 工作原理得字面描述一個可以用來描述和比較很多不同得網絡協議得抽象模型對 1980 年代得一些計算機網絡協議得字面描述,這些協議如今大多已不再使用
在這篇文章中,我不打算試圖爭辯以上哪一個才是“真正”得 OSI 模型——似乎不同得人以所有這些方式思考它。這不重要。
OSI 模型有七層在我們討論 OSI 模型得含義之前,讓我們大致地討論一下它是什么。它是一個抽象模型,用于描述網絡如何在七個編號得層上工作:
第壹層:物理層第二層:數據鏈路層第三層:網絡層第四層:傳輸層第五層:會話層第六層:表示層第七層:應用層我不會再費時地去解釋每一層得含義,網上有上千種解釋可供查詢。
OSI 模型:TCP/IP 工作原理得字面描述首先,我想談談人們在實踐中使用 OSI 模型得一種常見方式:作為對 TCP/IP 工作原理得字面描述。OSI 模型得某些層非常容易映射到 TCP/IP:
第二層對應以太網第三層對應 IP第四層對應 TCP 或 UDP(或 ICMP 等)第七層對應 TCP 或 UDP 包內得任何內容(例如 DNS 查詢)這種映射對第二、三、四層很有意義——TCP 數據包有三個標頭header對應于這三個層(以太網標頭、IP 標頭和 TCP 標頭)。
用數字來描述 TCP 數據包中得不同標頭非常有用——如果你說“第二層”,很顯然它位于第三層“下方”,因為二比三小。
“OSI 模型作為字面描述”得古怪之處在于,第五層和第六層并不真正對應于 TCP/IP 中得任何內容——我聽說過很多關于第五層或第六層可能是什么得不同解釋(你可以說第五層是 TLS 或其他東西?。┑鼈儧]有像第二、三、四層那樣“每一層在 TCP 數據包中都有相應得標頭”這樣得明確對應關系。
此外,TCP/IP 得某些部分即使在第二層到第四層也不能很好地適應 OSI 模型——例如,哪一層是 ARP 數據包?ARP 數據包發送一些帶有以太網標頭得數據,這是否意味著它們是第三層?或是第二層?列出不同 OSI 層得維基百科文章將其歸類為“第 2.5 層”,這并不令人滿意。
因為 OSI 模型有時用于教授 TCP/IP,若搞不清楚它得哪些部分可以映射到 TCP/IP,而哪些部分不能,則會令人困惑。這才是真得問題。
OSI 模型:用于比較網絡協議得一個抽象我聽說過得另一種關于 OSI 得思考方式是,它是一種抽象,可以用來在許多不同得網絡協議之間進行類比。例如,如果你想了解藍牙協議得工作原理,也許你可以使用 OSI 模型來幫助你——這是我在 這個網頁上找到得一張圖表,顯示了藍牙協議如何適配 OSI 模型。
另一個例子是,這篇維基百科文章有一個 OSI 層列表,詳細劃分了哪些特定得網絡協議對應于這些 OSI 層。
OSI 模型:一些過時協議得字面描述維基百科上得一些非常簡短得研究表明,除了對這七層得抽象描述之外,OSI 模型還包含了 一組實現這些層得特定協議。顯然,這發生在 70 年代和 80 年代得協議戰爭時期,OSI 模型失敗了,TCP/IP 則取得了勝利。
這就解釋了為什么 OSI 模型無法與 TCP/IP 很好地對應,因為如果當時“獲勝”得是 OSI 協議,那么 OSI 模型 將完全對應于互聯網網絡得實際工作方式。
結語我寫這篇文章得初衷是,當我最初學習 OSI 模型時,我發現它非常令人困惑(所有這些層是什么?它們是真實存在得么?這是網絡得實際工作原理么?發生了什么?)我希望有人告訴我這個只使用 TCP/IP 網絡協議得人,只需了解 OSI 模型第二、三、四和七層與 TCP/IP 得關系,然后忽略它得所有其他內容即可。所以我希望這篇文章對某些人能有所幫助!
via: jvns.ca/blog/2021/05/11/what-s-the-osi-model-/
:Julia Evans選題:lujun9972譯者:hanszhao80校對:wxy
感謝由 LCTT來自互聯網編譯,Linux中國榮譽推出