Skip to content

Commit

Permalink
Add network models
Browse files Browse the repository at this point in the history
  • Loading branch information
Xunop committed Aug 28, 2024
1 parent c1522d4 commit 59c517c
Showing 1 changed file with 55 additions and 0 deletions.
55 changes: 55 additions & 0 deletions network/network-models.md
Original file line number Diff line number Diff line change
@@ -0,0 +1,55 @@
# 网络分层模型

模型这些抽象的概念,用于帮助自己理解一些网络架构,但是发现面对一些名词或者概念时总是无法对上,想整理记录一下。

## OSI 模型

OSI 模型的七层包括:

- 7. 应用程序层:由软件应用程序生成并可由其使用的数据。该层使用的主 要协议是 HTTP。
- 6. 表示层:将数据转换为应用程序可以接受的形式。一些机构认为 HTTPS 加密和解密在该层进行。
- 5. 会话层:控制计算机之间的连接(这也可以由 TCP 协议在第 4 层处理)。
- 4. 传输层:提供在两个连接设备之间传输数据以及控制服务质量的方法。这里使用的主要协议是 TCP 和 UDP。
- 3. 网络层:处理不同网络之间的数据路由和发送。该层使用的最重要协议 是 IP 和 ICMP。
- 2. 数据链路层:处理同一网络中不同设备之间的通信。如果第 3 层比作一封邮件上的地址,那么第 2 层就指明了该地址的办公室号码或公寓号码。以 太网是这里最常用的协议。
- 1. 物理层:数据包被转换为电脉冲、无线电脉冲或光脉冲,并以比特(信 息的最小单位)的形式通过电线、无线电波或电缆进行传输。

> 想起考试时背的一串 `应表会传网数物`
[Cloudflare 的一篇文章][1] 中提到:

> 请务必记住,OSI 模型是对使得 Internet 正常工作的众多流程的概念化的抽象描述,阐述模型以及将其应用到现实世界中的 Internet 时,有时是主观的。OSI 模型有助于人们讨论网络设备和协议,确定哪些协议由哪些软件和硬件使用,并大致显示 Internet 的工作方式。但它并未严格地分步定义 Internet 连接的普遍运作方式。
没必要去严格的根据分层模型去学习 Internet 的工作方式,对其有一个大致的了解即可。比如,经常会被询问到 xxx 协议属于哪一层?
我觉得这个问题不太好回答,引用[其他博客][2]中的说明:

> 我觉得这种讨论没有意义。因为我们实际上在讨论两个东西而且试图将两个概念融合在一起。即:
>
> 协议工作在几层(基于几层实现)?
> 协议为几层提供服务?
>
> 如果分开讨论,就清楚很多了。ARP 基于二层(意味着只用到了二层的功能,不需要三层的东西就可以工作)实现,为三层提供服务,帮助找到 IP 对应的 MAC 地址。
> 我们可以给很多有类似争议的协议定义:
>
> TLS 基于四层实现,为应用层提供服务;
> TCP 基于三层实现,为应用层提供服务;
> ICMP 工作在三层,为三层提供服务;
> EIGRP 和 OSPF 基于 IP 协议,为三层提供服务;
> BGP 基于四层实现,为三层提供服务(是不是很神奇?因为 BGP 通过 TCP 交换路由信息,为三层提供转发路由);
## TCP/IP 模型

- 4. 应用程序层:这大致相当于 OSI 模型中的第 7 层。
- 3. 传输层:对应于 OSI 模型中的第 4 层。
- 2. 互联网层:对应于 OSI 模型中的第 3 层。
- 1. 网络访问层:结合了 OSI 模型中第 1 层和第 2 层的过程。

## 分层的意义

- [为了让每一个协议可以处理部分的问题,不同的协议之间可以互相工作][2]
- [方便排查问题,可以将问题定位在某一层][2]

---

[1]: https://www.cloudflare.com/zh-cn/learning/network-layer/what-is-the-network-layer/ "什么是网络层?|网络与 Internet 层"
[2]: https://www.kawabangga.com/posts/6295 "理解网络的分层模型"

0 comments on commit 59c517c

Please sign in to comment.