OSI 参考模型和 TCP/IP 模型
学习网络时,会遇到 OSI 参考模型和 TCP/IP 模型这两个词。
它们都是为了把通信机制分成层来理解的模型。与其把通信看成一个巨大的机制,不如按角色分开,这样更容易整理哪里发生了什么。
思考匿名性时,这种分层视角也很有用。
IP 地址、TCP、UDP、TLS、HTTP、DNS、、浏览器信息,不是同一位置的问题。分开看每一层中什么可见,就更容易理解“ 改变什么”“HTTPS 保护什么”“为什么 Cookie 是另一个问题”。
本文整理 OSI 参考模型和 TCP/IP 模型的基本。更详细的层级说明会在“什么是网络分层模型”中介绍。
什么是 OSI 参考模型
OSI 参考模型是把通信分成 7 层来思考的模型。
与其说它原样表示现实互联网实现,不如说它常被用作整理通信角色的思路。
| 层 | 主要作用 | 例 |
|---|---|---|
| 第 7 层 应用层 | 应用的通信 | HTTP、DNS |
| 第 6 层 表示层 | 数据格式和表示 | 字符编码、压缩、加密的思路 |
| 第 5 层 会话层 | 通信会话管理 | 会话管理的思路 |
| 第 4 层 传输层 | 数据的送达方式 | TCP、UDP |
| 第 3 层 网络层 | 向目标投递 | IP、路由 |
| 第 2 层 数据链路层 | 同一区间内的通信 | Ethernet、Wi-Fi |
| 第 1 层 物理层 | 作为信号承载 | 电信号、无线电、光 |
OSI 参考模型作为学习用地图很方便。
不过,在实际互联网中,用 TCP/IP 模型说明更容易理解的场景也很多。
什么是 TCP/IP 模型
TCP/IP 模型常用于理解互联网的实际通信。
一般整理为 4 层。
| 层 | 主要作用 | 例 |
|---|---|---|
| 应用层 | 应用之间的通信规则 | HTTP、DNS、SMTP |
| 传输层 | 数据的送达方式 | TCP、UDP |
| 互联网层 | 用 IP 地址送到目标 | IP |
| 网络接口层 | 通过实际通信介质承载 | Wi-Fi、Ethernet、光线路 |
查看网页时,浏览器创建 HTTP 请求,TCP 或 UDP 处理送达方式,IP 朝目标前进,Wi-Fi 或有线 LAN 实际通信。
按层查看时,可以分开各自的角色。
两个模型的关系
OSI 参考模型和 TCP/IP 模型并不完全一一对应。
但是,可以大致对应起来。
| OSI 参考模型 | TCP/IP 模型 | 匿名性中看的例子 |
|---|---|---|
| 应用层、表示层、会话层 | 应用层 | HTTP、DNS、Cookie、登录状态 |
| 传输层 | 传输层 | TCP、UDP、端口号 |
| 网络层 | 互联网层 | IP 地址、路由 |
| 数据链路层、物理层 | 网络接口层 | Wi-Fi、Ethernet、无线电、光 |
学习时,可以把 OSI 理解为细分角色的地图,把 TCP/IP 理解为更容易说明实际互联网的地图。
在匿名性中看层级的意义
在匿名性中,区分正在处理哪一层的信息很重要。
HTTPS 会用 TLS 保护 HTTP 的交互。在 TCP/IP 模型中,它常被当作应用层侧的机制处理,但把 TLS 理解为位于 HTTP 和 TCP 之间的保护层,也更容易理解。IP 地址是互联网层投递所需的信息。Cookie 和登录状态是应用层的问题。
| 信息 | 主要相关层 | 注意点 |
|---|---|---|
| IP 地址 | 互联网层 | 为了送达通信目标所必需 |
| TCP/UDP 端口 | 传输层 | 成为通信类型或服务的线索 |
| HTTP 内容 | 应用层 | HTTPS/TLS 会保护通信途中的正文,但连接目标、Cookie、登录状态是另一个问题 |
| Cookie | 应用层 | 即使改变 IP,也会被当作同一浏览器 |
| Wi-Fi 连接 | 网络接口层 | 与现场记录和管理员有关 |
有了这种视角,就更容易理解“VPN 不会删除 Cookie”“HTTPS 不会消除连接目标 IP”“ 也不会消除发帖内容”等点。
常见混淆
不了解分层模型时,容易试图用同一个对策解决不同层的问题。
| 误解 | 为什么不同 |
|---|---|
| HTTPS 就匿名 | 它保护 HTTP 内容,但连接目标和登录会留下 |
| VPN 会消除 Cookie | VPN 是通信路径,Cookie 是浏览器保存区域 |
| 隐藏 IP,发帖内容也安全 | 发帖内容是应用层信息 |
| 换 Wi-Fi 就能切断过去行为 | Cookie 和账号会留下 |
| 加密 DNS 就全部隐藏 | DNS 是域名查询的问题 |
在匿名性中,需要看对策作用于哪一层。
混淆不同层的问题,会遗漏没有被保护的部分。
学习顺序
OSI 参考模型和 TCP/IP 模型不需要一开始就背诵。
先以 Web 访问为例,查看浏览器、DNS、HTTP、TCP/UDP、IP、Wi-Fi 分别在哪里相关。之后再确认 VPN、Tor、HTTPS、Cookie 作用于哪一层的问题。
| 顺序 | 查看内容 |
|---|---|
| 1 | Web 页面显示的流程 |
| 2 | DNS 把名称转换为 IP 的流程 |
| 3 | 用 IP 送到目标的机制 |
| 4 | TCP/UDP 送达方式不同的原因 |
| 5 | HTTP/HTTPS 和 Cookie 的位置 |
| 6 | VPN 和 Tor 改变哪种可见方式 |
按这个顺序学习,就不容易过度评价匿名性对策。
例如,HTTPS 会保护 HTTP 内容,但 Cookie 和登录状态会到达连接目标。VPN 会改变连接路径,但不会改变应用层的发帖内容。分层模型有助于这种切分。
总结
OSI 参考模型和 TCP/IP 模型,是为了按层理解通信的思路。
OSI 参考模型分为 7 层,TCP/IP 模型主要整理为 4 层。
理解现实互联网通信时,TCP/IP 模型更容易理解的场景很多。另一方面,OSI 参考模型作为细分角色来思考的地图也有帮助。
在匿名性中,区分信息关系到哪一层很重要。
如果把 IP、TCP/UDP、HTTP、TLS、Cookie、Wi-Fi 当作同一种东西处理,就会选错对策。
分层模型是整理通信中哪里能看到什么、哪种对策作用于哪里的基础。