TranslateProject/published/202207/20210511 What is the OSI model.md
2022-08-01 16:23:45 +08:00

94 lines
5.5 KiB
Markdown
Raw Permalink Blame History

This file contains ambiguous Unicode characters

This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.

[#]: subject: (What is the OSI model?)
[#]: via: (https://jvns.ca/blog/2021/05/11/what-s-the-osi-model-/)
[#]: author: (Julia Evans https://jvns.ca/)
[#]: collector: (lujun9972)
[#]: translator: (hanszhao80)
[#]: reviewer: (wxy)
[#]: publisher: (wxy)
[#]: url: (https://linux.cn/article-14786-1.html)
OSI 模型是什么?
======
![](https://img.linux.net.cn/data/attachment/album/202207/02/153620k7nwc6nn2b6n6p2c.jpg)
LCTT 校注:作者原文已经大篇幅进行了修订更新,本文据之前的版本翻译。)
今天我在推特上发布了一些关于 OSI 模型如何与 TCP/IP 工作原理的实际表现不相符的观点这让我思考——OSI 模型到底是什么?通过阅读推特上的一些回复发现,似乎至少存在三种不同的思考方式:
1. TCP/IP 工作原理的字面描述
2. 一个可以用来描述和比较很多不同的网络协议的抽象模型
3. 对 1980 年代的一些计算机网络协议的字面描述,这些协议如今大多已不再使用
在这篇文章中,我不打算试图争辩以上哪一个才是“真正”的 OSI 模型——似乎不同的人以所有这些方式思考它。这不重要。
### OSI 模型有七层
在我们讨论 OSI 模型的含义之前,让我们大致地讨论一下它是什么。它是一个抽象模型,用于描述网络如何在七个编号的层上工作:
- 第一层:物理层
- 第二层:数据链路层
- 第三层:网络层
- 第四层:传输层
- 第五层:会话层
- 第六层:表示层
- 第七层:应用层
我不会再费时地去解释每一层的含义,网上有上千种解释可供查询。
### OSI 模型TCP/IP 工作原理的字面描述
首先,我想谈谈人们在实践中使用 OSI 模型的一种常见方式:作为对 TCP/IP 工作原理的字面描述。OSI 模型的某些层非常容易映射到 TCP/IP
- 第二层对应以太网
- 第三层对应 IP
- 第四层对应 TCP 或 UDP或 ICMP 等)
- 第七层对应 TCP 或 UDP 包内的任何内容(例如 DNS 查询)
这种映射对第二、三、四层很有意义——TCP 数据包有三个<ruby>标头<rt>header</rt></ruby>对应于这三个层以太网标头、IP 标头和 TCP 标头)。
用数字来描述 TCP 数据包中的不同标头非常有用——如果你说“第二层”,很显然它位于第三层“下方”,因为二比三小。
“OSI 模型作为字面描述”的古怪之处在于,第五层和第六层并不真正对应于 TCP/IP 中的任何内容——我听说过很多关于第五层或第六层可能是什么的不同解释(你可以说第五层是 TLS 或其他东西!)但它们没有像第二、三、四层那样“每一层在 TCP 数据包中都有相应的标头”这样的明确对应关系。
此外TCP/IP 的某些部分即使在第二层到第四层也不能很好地适应 OSI 模型——例如,哪一层是 ARP 数据包ARP 数据包发送一些带有以太网标头的数据,这是否意味着它们是第三层?或是第二层?列出不同 OSI 层的维基百科文章将其归类为“第 2.5 层”,这并不令人满意。
因为 OSI 模型有时用于教授 TCP/IP若搞不清楚它的哪些部分可以映射到 TCP/IP而哪些部分不能则会令人困惑。这才是真的问题。
### OSI 模型:用于比较网络协议的一个抽象
我听说过的另一种关于 OSI 的思考方式是,它是一种抽象,可以用来在许多不同的网络协议之间进行类比。例如,如果你想了解蓝牙协议的工作原理,也许你可以使用 OSI 模型来帮助你——这是我在 [这个网页][1] 上找到的一张图表,显示了蓝牙协议如何适配 OSI 模型。
![][2]
另一个例子是,[这篇维基百科文章][3] 有一个 OSI 层列表,详细划分了哪些特定的网络协议对应于这些 OSI 层。
### OSI 模型:一些过时协议的字面描述
维基百科上的一些非常简短的研究表明除了对这七层的抽象描述之外OSI 模型还包含了 [一组实现这些层的特定协议][4]。显然,这发生在 70 年代和 80 年代的 [协议战争][5] 时期OSI 模型失败了TCP/IP 则取得了胜利。
这就解释了为什么 OSI 模型无法与 TCP/IP 很好地对应,因为如果当时“获胜”的是 OSI 协议,那么 OSI 模型 _将_ 完全对应于互联网网络的实际工作方式。
### 结语
我写这篇文章的初衷是,当我最初学习 OSI 模型时,我发现它非常令人困惑(所有这些层是什么?它们是真实存在的吗?这是网络的实际工作原理吗?发生了什么?)我希望有人告诉我这个只使用 TCP/IP 网络协议的人,只需了解 OSI 模型第二、三、四和七层与 TCP/IP 的关系,然后忽略它的所有其他内容即可。所以我希望这篇文章对某些人能有所帮助!
--------------------------------------------------------------------------------
via: https://jvns.ca/blog/2021/05/11/what-s-the-osi-model-/
作者:[Julia Evans][a]
选题:[lujun9972][b]
译者:[hanszhao80](https://github.com/hanszhao80)
校对:[wxy](https://github.com/wxy)
本文由 [LCTT](https://github.com/LCTT/TranslateProject) 原创编译,[Linux中国](https://linux.cn/) 荣誉推出
[a]: https://jvns.ca/
[b]: https://github.com/lujun9972
[1]: https://flylib.com/books/en/4.215.1.116/1/
[2]: https://jvns.ca/images/bluetooth.gif
[3]: https://en.wikipedia.org/wiki/List_of_network_protocols_(OSI_model)
[4]: https://en.wikipedia.org/wiki/OSI_protocols
[5]: https://en.wikipedia.org/wiki/Protocol_Wars