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

OSI 模型

OSI 模型的七层包括:

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

想起考试时背的一串 应表会传网数物

Cloudflare 的一篇文章 中提到:

请务必记住,OSI 模型是对使得 Internet 正常工作的众多流程的概念化的抽象描述,阐述模型以及将其应用到现实世界中的 Internet 时,有时是主观的。OSI 模型有助于人们讨论网络设备和协议,确定哪些协议由哪些软件和硬件使用,并大致显示 Internet 的工作方式。但它并未严格地分步定义 Internet 连接的普遍运作方式。

没必要去严格的根据分层模型去学习 Internet 的工作方式,对其有一个大致的了解即可。比如,经常会被询问到 xxx 协议属于哪一层?
我觉得这个问题不太好回答,引用其他博客中的说明:

我觉得这种讨论没有意义。因为我们实际上在讨论两个东西而且试图将两个概念融合在一起。即:

协议工作在几层(基于几层实现)?
协议为几层提供服务?

如果分开讨论,就清楚很多了。ARP 基于二层(意味着只用到了二层的功能,不需要三层的东西就可以工作)实现,为三层提供服务,帮助找到 IP 对应的 MAC 地址。
我们可以给很多有类似争议的协议定义:

TLS 基于四层实现,为应用层提供服务;
TCP 基于三层实现,为应用层提供服务;
ICMP 工作在三层,为三层提供服务;
EIGRP 和 OSPF 基于 IP 协议,为三层提供服务;
BGP 基于四层实现,为三层提供服务(是不是很神奇?因为 BGP 通过 TCP 交换路由信息,为三层提供转发路由);

TCP/IP 模型

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

分层的意义