编织世界:网络通天塔,OSI七重神域

本文最后更新于 2026年5月19日 晚上

上次说到,TCP/IP在实践中胜出,成为了计算机通信的通用语言。而在它背后,还有一套更为理论化、系统化的模型——OSI参考模型。

首先,OSI协议与OSI参考模型并不相同。OSI协议是由ISO和ITU-T共同推进其标准化的的一种网络结构体系。OSI协议根据OSI参考模型制定各分层与端口的标准。遵循OSI协议的产品叫OSI产品,他们遵循的通信就叫OSI通信。借助OSI模型可以加深我们对其他协议的理解。

OSI参考模型将通信中必要的功能分成了7层,使复杂的网络协议简单化。在OSI模型中每个分层都接受下层提供的特定服务,并为上层提供特定的服务,而上下层之间在交互时所遵循的约定叫做接口,同层之间则叫做协议。

必须注意的是,OSI参考模型是理想化的模型,希望实现从第一层到第七层的约定,并组合成网络通信。分层的一个好处是各分层独立运作,即使有些分层发生变化也不会波及整个系统。因此可以构造拓展性和灵活性强的系统。此外,OSI参考模型通过细分通信功能,可以很容易实现每个分层的协议,界定各分层的责任与义务。但同时,由于其分层过于严格和理想化,导致了协议处理效率低下,并且有时会使不同层级需要实现类似的功能,造成冗余。

学习OSI参考模型是计算机网络初学者通往成功的第一步。但是OSI参考模型终究只是一个模型,对各层只做了粗略的界定并不详细,对学习和设计协议只起引导作用。许多协议可以对应OSI参考模型的某层,因此可以通过对应的层来了解大致作用。如果想要了解协议的更多细节,还是得看相应的规范说明书。

我们以打电话来说明OSI参考模型是如何运作的。我们首先只考虑语言和设备。假设有A和B两人在通话,A通过听筒听到B的声音,而A的声音又通过听筒传给B。在这一过程中,A和B说同一种语言,即遵循同一种协议,汉语协议。而手机和手机又遵循同一种协议。声音通过手机转化成电波信号传给B,B的设备又将电波信号转化为声音给B。其实A和B是通过语言层和设备层的接口完成的对话。如果A所发出的电波信号并没能转化成B手机相同的频率,或者B听到的声音与A的原句相去甚远,那说明,两人使用了不同类型的协议。

如果将设备层更换呢?比如将手机换成座机,但只要设备使用的是相同的协议,就可以实现相互通信。如果讲的是英语而不是中文呢?但只要说话的两人遵循的协议相同,即都使用英语协议,便可以相互通信。

可以看出,在OSI参考模型之中,每个分层都有相对应的协议。当然这只是一个简单的例子,权当做对OSI参考模型的便利解释。

那么,真正的OSI参考模型长什么样呢?

OSI参考模型共分为7层,从上到下分别是应用层、表示层、会话层、传输层、网络层、数据链路层、物理层。下面一个一个的介绍,我们以发邮件为例。

首先是应用层。用户A要发一封内容为“早上好”,收件人为用户B的电子邮件。收发邮件这款软件大概可以分为两部分,一部分与通信无关,另一部分有关。在键盘上输入“早上好”这一行为就属于无关,而将邮件发送给B则与通信有关。在这一过程中,输入“早上好”并发送给对方就属于应用层。

从A点击“发送”那一刻,通信便进入应用层协议处理阶段,协议会将所传输的内容加上“首部”,标明内容和收件人,传给B。B计算机上的收信功能接受邮件,计算机便开始根据A发来的数据分析其首部和内容,并将数据储存在硬盘或者其他非易失性存储器,例如闪存,以备处理。而如果B因为邮箱已满,或是其他原因导致B没有收到A的邮件,应用层协议这时就要返回一个错误给A。对于异常的处理也属于应用层要解决的问题。

表示层是将固有网络格式和标准网络格式互换的一层。有时,因为软件的不同,导致数据的表现形式也不同,比如有的文件只能由特定软件才能打开,不然会形成乱码。如果发邮件时遇到这样的问题,就需要用到表示层。

利用表示层将A计算机特定的格式转化为网络标准格式后发送,再由B的表示层将标准格式转化成A计算机的特定格式。表示层的作用便是进行“统一的网络数据格式”与“某一计算机或某一款软件特有的数据格式”之间转换的分层。

拿“早上好”来说,进入表示层后根据其编码形式被转化成了统一的网络数据格式。而一段简单的文字流,也拥有UTF-8、UTF-16、GB2312等编码格式,如果未按照特定格式编码,接收方就会收到一堆乱码。

而表示层将数据转化完成后,为了识别编码格式,也会附加首部信息。之后,传给下一层,会话层。

会话层负责建立和断开通信连接,并管理传输层一下的分层。假设A用户新建了5封邮件发给B。那么是选择发一次邮件建立一次连接,还是选择建立一次连接发送5封邮件,还是同时建立5个链接,同时发送5封邮件。决定如何链接,便是会话层的任务。

会话层只对格式建立连接,何时发送数据等问题进行管理,实际进行传输的另有其人。而实际的数据传输工作则由会话层下的三层负责。

在两个计算机之间建立逻辑上的通信是传输层的主要任务。主机A确保与主机B之间的通信并准备发送数据,这一过程叫做“建立连接”。而在连接过程中数据没有到达目标地址,它就会负责进行重发。保证数据的可靠性是传输层的一个重要作用,为了确保可靠性,传输层也会为传输的数据附加首部以识别这一分层的数据。

将主机A的数据传输给主机B是网络层的任务。在发送数据时,目标地址即IP地址至关重要。这个地址是唯一的,就像计算机的“身份证”,一但确定了目标地址,就可以找到对应的计算机发送数据。只要有了地址和网络层的包发送处理,就可以将数据发送到世界上任何一台互联设备。

有时网络层并不能保证数据的可达性,这时就需要传输层进行确认。网络层和传输层相互协作,保证数据实现可靠传输。

网络层将上层收到的数据和地址一并发给数据链路层。通信传输最终是通过物理传输介质实现的。数据链路层便是在这些传输介质互连的设备之间进行数据处理。我们拿寄信来举例,数据链路层只负责相邻两站的运输,而网络层则规划全局路线。因此,网络层负责将整个数据发送给最终目标地址,而数据链路层只负责一个分段内的数据。

物理层中,将0、1转化为电压和脉冲光传输给物理的传输介质,而相互直连的设备之间使用地址实现传输。这一地址叫做MAC地址,也被叫做物理地址或硬件地址。如果把IP地址比作身份证,那么MAC地址则是DNA。MAC地址在硬件层面是唯一的,通常由设备制造商固化在网卡中,但在软件层面可以被修改。但应注意MAC地址属于数据链路层,为了识别连接到同一个传输介质上的设备。因此,这一分层将包含MAC地址信息的首部附加到从网络层转发的数据上,将其发送到网络。

对于主机B来说,数据的处理流程正好是相反的,它从物理层开始向上处理,并最终使B收到A发来的邮件。

OSI模型清晰地勾勒出网络通信的七层蓝图。然而,确保数据在这七层中穿行无误,并最终抵达唯一终点的,则依赖于一套精密的寻址机制。从本地传输的MAC地址到全球定位的IP地址,它们如何协同勾勒出数据的路径,正是网络世界有序运行的深层逻辑。

据《图解TCP/IP》第一章网络基础知识 1.5协议分层与OSI参考模型 1.6OSI参考模型通信处理举例 整理

后记(2026.05.17)

我记得当时让AI给我起一个十分中二的标题,但是感觉其实这个标题不怎么中二,当时我就想吐槽这个标题了,什么鬼名字啊,太尴尬了。