有趣生活

当前位置:首页>科技>计算机网络osi参考模型分为几层计算机网络通信的

计算机网络osi参考模型分为几层计算机网络通信的

发布时间:2026-07-25阅读(0)

导读今天这篇的标题是“扫盲”,也就是说:即使那些完全不懂IT领域,也不懂CT领域的读者,依然能看懂(至少能看懂一部分)。为了做到这点,我会尽量使用通俗的比喻,并....

今天这篇的标题是“扫盲”,也就是说:即使那些完全不懂 IT 领域,也不懂CT领域的读者,依然能看懂(至少能看懂一部分)。为了做到这点,我会尽量使用通俗的比喻,并适当加一些示意图。

另外,就算你已经比较了解网络通信领域,本文中提到的某些部分,也可能是你所不知道的。也就是说:懂行的同学,看看此文,也会有帮助。本文的标题特地强调了【系统性】——我希望这篇教程能帮助读者对“计算机网络通信”这个领域进行系统性学习(何为“系统性学习”?)为了做到【系统性】这个目的,这篇教程很长。建议大伙儿慢慢看,不要着急。

★基本概念

为了足够通俗,我先要介绍一些基本概念。

◇信道(channel)

这是通讯领域非常基本的概念,肯定要先聊聊它。通俗地说,信道就是“传送信息的通道”。

◇信道的类型

首先,信道可以从广义上分为“物理信道 & 逻辑信道”。顾名思义,“物理信道”就是直接使用某种【物理介质】来传送信息;至于“逻辑信道”——是基于“物理信道”之上抽象出来的玩意儿(待会儿讲到“协议栈”的时候再聊)。

◇信道的带宽

“带宽”指的是:某个信道在单位时间内最大能传输多少比特的信息。请注意:电气领域 & 计算机领域都有“带宽”这个概念,但两者的定义不太一样。电气领域所说的“带宽”指的是“模拟带宽”,单位是“赫兹/Hz”;计算机领域所说的“带宽”指“数字带宽”,单位是“比特率”或“字节率”。后续章节提到“带宽”,都是指计算机领域的术语。

◇带宽的单位——容易把外行绕晕

“比特率”或“字节率”很容易搞混淆。用英文表示的话——大写字母 B 表示【字节】;小写字母 b 表示【比特】。

由于带宽的数字通常很大,要引入“K、M、G”之类的字母表示数量级,于是又引出一个很扯蛋的差异——“10进制”与“2进制”的差异。【10进制】的 K 表示 1000;M 表示 1000×1000(1百万)【2进制】的 K 表示 1024(2的10次方);M 表示 1024×1024(2的20次方)为了避免扯皮,后来国际上约定了一个规矩:对【2进制】的数量级要加一个小写字母 i。比如说:Ki 表示 1024;Mi 表示 1024×1024 …… 以此类推。举例:1Kbps 表示“1000比特每秒”1KiBps 表示“1024字节每秒”

◇信道的工作模式:单工 VS 半双工 VS 全双工

再来说说信道的工作模式。大致可以分为如下三种。为了让大伙儿比较好理解,我对每一种都举相应的例子。

单工(simplex)比如“电台广播”就是典型的【单工】。“电台”可以发信号给“收音机”,但“收音机”【不能】发信号给“电台”。

半双工(half-duplex)比如“单条铁路轨道”,就是典型的【半双工】。火车在单条铁轨上,可以有两种运行方向;但对于同一个瞬间,只能选其中一个方向(否则就撞车了)。

全双工(full-duplex)比如“光纤”就是典型的【全双工】。在同一根光导纤维中,可以有多个光束【同时相向】传播,互相不会干扰对方。

◇端点

为了叙述方便,我把参与通讯的对象(主体)称作“通讯端点”,简称“端点”。这里的“端点”是广义的,可以是硬件(比如某个网卡),也可以是软件(比如某个应用程序)。

◇单播、组播/多播、广播、选播

对于“网络通讯”,至少得有 N 个端点参与,并且【N ≥ 2】才有意义。当 N 个端点构成一个网络,这时候就会涉及到“单播、组播、广播”这几个概念。通俗地说:单播(unicast)——发送给网络中的指定的【单个】端点组播/多播(multicast)——发送给网络中的指定的【多个】端点广播(broadcast)——发送给网络中的【所有】端点选播(anycast)——发送给网络中随机选择的【单个】端点

◇通讯协议(protocol)

所谓的“通讯协议”就是:参与通讯的各方所采用的某种【约定】。只有大家都遵守这个约定,才有可能相互传递信息。打个比方:如果两个人要用自然语言交流,前提是:双方使用相同(或相互兼容)的自然语言。“通讯协议”就类似某种自然语言,参与通讯的多个端点,都必须能理解这个语言。

★从“分层”到“参考模型”◇分层

在聊“分层”之前,先说说“分工”。比如在一个公司中,通常设有不同的工种/岗位,这就是【分工】。对于网络通讯也是如此,不太可能用一种通讯协议完成所有的信息传递任务(注:对于特别简单的网络,或许有可能只用单一协议;但如今的网络通讯已经很复杂,用【单个】通讯协议包办所有事情,已经不太可能)一旦采用了多种通讯协议,这几种协议之间,该如何配合捏?在网络通讯领域,采用的是【分层】的设计思路。多个层次的协议在一起协同工作,技术上称作“协议栈”(洋文叫做“protocol stack”)。

◇协议栈的原理

对于多层次的协议栈。每个层次都有各自的“端点”(进行通讯的主体)。处于【同一层次】的两个端点会使用该层次的协议进行通讯(注:同一个层次的协议,可能只有一个,也可能有多个)。除了最顶层,每个层次的端点会向其【直接】上层提供“服务”;除了最底层,每个层次的端点会调用【直接】下层提供的“服务”(这里所说的“服务”指某种“编程接口”,技术行话叫 API)。

(“协议栈”的示意图)

(“服务”与“协议”之间的关系)

◇逻辑信道

(前一个小节说了)每个层次会向上一个层次提供服务(API 调用)。对上层而言,调用下层提供的 API 发送信息,其效果相当于在使用某种【信道】进行通讯,这也就是我在 ★基本概念 那个章节所说的“逻辑信道”。

(“逻辑信道”示意图)

◇数据格式的原理

大部分协议会把要传送的数据切割为 N 份,每一份就是一个数据包。通常来说,数据包的格式有如下三部分:

头部身体(也称作“有效载荷”)尾部(注:很多协议没有尾部)

如果你收过快递,可以把“网络数据包”与“快递包裹”作一个对照——数据包的“头/尾”,就类似于快递包裹的【包装袋】。数据包的“身体”,就类似于快递包裹里面的东西。

对于【相邻】两层的协议,【下】层包含【上】层。也就是说:下层协议的【载荷】就是上层协议的【整体】。还是以快递举例:假设你从网上买了一台笔记本电脑。电脑出厂时,电脑厂商肯定会提供一个包装盒。快递公司在寄送这台笔记本的时候,又会在笔记本的盒子外面再加一个包装袋。对应到网络协议——“快递公司的包装袋”相当于【下层】协议;“电脑厂商的包装盒”,相当于【上层】协议。

(上下层协议的格式及包含关系)

◇网络分层的参考模型

上述所说的“分层 & 协议栈”只是一个抽象的(笼统的)思路。具体要分几层?每一层要干啥事儿?这些都是很有讲究滴!网络技术发展了几十年,已经有很多牛人提出了各种不同的划分方案,称之为“网络分层的参考模型”(为了打字省力,以下简称“模型”)。在各种模型中,名气最大的当然是“OSI 模型”(洋文称作“OSI model”)。在后续的章节中,我会以这个模型为主体,进行介绍。除了“OSI 模型”还有一个很出名的模型是“TCP/IP 模型”(因为互联网很成功,它才跟着出名)。对“TCP/IP 模型”的分层,不同的文章或书籍,说法不太一样(“3层、4层、5层”皆有),这就引发了一些争议。包括几位热心读者也在博客留言,表达不同意见。为了避免一家之言,贴出XX百科的“”,其中给出了几种比较有名的说法。另外,我想提醒一下:由于本文是基于【OSI 模型】进行展开。对于 TCP/IP 模型到底算几层,这方面的争论【不】影响本文后续的内容。

★OSI 概述◇OSI 的历史

“OSI”的全称是“Open System Interconnection”。先说说它的历史。上世纪70年代,“国际电信联盟”(ITU)想对各国的电信系统(电话/电报)建立标准化的规格;与此同时,“国际标准化组织”(ISO)想要建立某种统一的标准,使得不同公司制造的大型主机可以相互联网。后来,这两个国际组织意识到:“电信系统互联”与“电脑主机互联”的性质差不多。于是 ISO 与 ITU 就决定合作,两家一起干。这2个组织的2套班子,从上世纪70年代开始搞,搞来搞去,搞了很多年,一直到1984年才终于正式发布 OSI 标准。

◇OSI 标准的两个组成部分

严格来讲,OSI 包括两大部分——其一,抽象的概念模型,也就是前面提到的【OSI model】;其二,针对这个概念模型的具体实现(具体的通讯协议),洋文叫做【OSI protocols】。

(前面说了)OSI 是由 ISO & ITU 联手搞出来滴。这两个国际组织里面的人,要么是来自各国的电信部门,要么是来自各国的高校学者。总而言之,既有严重的官僚风气,又有明显的学究风气。(正是因为这两种风气叠加,所以搞了很多年,才搞出 OSI)OSI 的协议实现(OSI protocols),不客气地说,就是一堆垃圾——据说把 OSI protocols 所有的协议文档,全部打印成 A4 纸,摞起来得有一米多高!是不是很吓人?协议搞得如此复杂,严重违背了 IT 设计领域的 KISS 原则。由于 OSI protocols 实在太复杂,后来基本没人用。但 OSI model 反而广为流传,并且成为“网络分层模型”中名气最大,影响力最广的一个。因此,本文后续章节中,凡是提到 OSI,指的是【OSI model】。

◇OSI 模型的7层

OSI 模型总共分7层,示意图参见如下表格:

相关文章

    Copyright © 2024 有趣生活 All Rights Reserve吉ICP备19000289号-5 TXT地图HTML地图XML地图