作者
Chrystal R. China
Writer, automation & ITOps
Michael Goodwin
Editorial lead, Automation & ITOps
什么是 OSI 模型?
开放式系统互连 (OSI) 模型(也称为 OSI 参考模型)是一个概念模型,它将网络通信和互操作性划分为七个抽象层。它提供了一个标准化模型,使不同的应用程序、计算机系统和网络能够进行通信。
OSI 模型是作为世纪之交左右使用的各种网络协议之间的通信不兼容问题的解决方案而出现的。OSI 的各层为开发人员和工程师提供了一个框架,通过提供一种分类的联网方法,用于构建跨网络可互操作的硬件和软件。
在堆栈的每一层(通常以相反的顺序显示,以说明数据如何在网络中移动),OSI 模型为网络组件及其独特的计算功能提供了指导和标准。
这些层包括:
第 7 层:应用层发起与网络的通信,包括将计算机可读网络数据转换为用户可读响应的协议和数据操作过程。
第 6 层:表示层为应用程序层准备数据,包括数据转换、压缩和加密。
第 5 层:会话层启动和终止在网络上交互的两台设备之间的连接,确保资源既不会被过度使用也不会未得到充分利用。
第 4 层:传输层于在网络上交互的两台设备之间传输端到端数据,确保数据不会丢失、配置错误或损坏。
第 3 层:网络层为跨不同网络交互的设备处理数据寻址、路由和转发过程。如果设备位于同一网络上,则它们的交互不需要网络层。
第 2 层:与网络层不同,数据链路层管理同一网络上两个交互设备之间的数据路由。
第 1 层:物理层包括物理资产(如路由器和 USB 电缆),可将数据转换为由 1 和 0 组成的字符串,以便传输到更高层。
OSI 模型侧重于为工程师提供构建网络架构每一层时需要完成的任务列表,而不是指定各层之间的通信协议。其理论方法使开发人员能够可视化和构建高度复杂的计算网络,即使事先不了解网络系统本身也是如此。它还可以帮助团队更好地了解数据如何遍历网络,并通过特定于层的编码来定制网络功能。
最新的 AI 新闻 + 洞察分析
在每周的 Think 时事通讯中,发现专家精选的有关 AI、云等的洞察分析和新闻。
立即订阅
OSI 模型源自何处?
尽管 OSI 模型不是现代计算机网络技术的直接基础,但它对计算标准的发展产生了深远的影响,帮助塑造了当代对网络架构的理解。
20 世纪 70 年代末到 80 年代初,计算机系统的互联程度不断提高,但制造商往往开发自己的网络解决方案,形成由专有且不互操作的系统组成的杂乱体系。
早期的几项网络工作试图解决与 ARPANET(奠定了现代互联网基础)和 TCP/IP 协议套件(由美国国防部委托)的兼容性问题。两者都代表了重大进步,但也凸显出对一种更全面、受普遍接受的方法的需求。
认识到网络日益增长的重要性和对通用框架的需求,国际标准化组织 (ISO) 和国际电报和电话咨询委员会 (CCITT) 开始开发标准化网络模型。
ISO 于 1984 年正式发布了 OSI 模型,这是开发可互操作网络解决方案的开创性框架。与以前的标准化尝试不同,OSI 的分层配置使相异的系统能够进行通信,尽管它们的底层架构和协议存在差异。
AI 学院
利用混合云实现 AI 就绪
本课程由 IBM 资深思想领袖带领,旨在帮助企业领导者获得所需的知识,以便划分可以推动增长的 AI 投资的优先级。
转到视频集
OSI 是如何工作的?
即使科技不断发展、新模型不断出现,OSI 模型仍然是理解网络架构不可或缺的一部分。无论团队是在设计简单的局域网 (LAN) 还是管理复杂的全球网络,OSI 模型的原理都为网络连接提供了清晰、结构化的方法。
OSI 模型包括七个不同的层。应用层(第 7 层)、表示层(第 6 层)和会话层(第 5 层)构成 OSI 的软件层,所有进出软件应用程序(包括操作系统和实用程序,例如 Web 浏览器和电子邮件客户端)的传输都发生在这些层。
传输层(第 4 层)是“OSI 的核心”,处理网络和系统之间的所有数据通信。最后,网络层(第 3 层)、数据层(第 2 层)和物理层(第 1 层)构成了 OSI 的硬件层,数据在处理时会通过网络的物理组件移动。
数据通过 OSI 模型双向移动;堆栈的每一层都与堆栈中位于其下方和上方的层进行通信。此外,发送设备和接收设备都通过数据层传输数据;发送者和接收者经常会在此过程中互换角色。
例如,如果想要向其他人发送电子邮件,则用户将首先编写电子邮件并发送。当用户按下“发送”键时,他们的电子邮件会转到应用层,应用层选择正确的协议(通常是 SMTP)并将电子邮件发送到表示层。然后,表示层压缩消息数据并将其发送到会话层,会话层启动通信会话并将数据发送到传输层进行分段。
由于电子邮件要发送到另一个网络,因此电子邮件数据必须去往网络层,在那里被分成数据包,然后到达数据链路层,在那里进一步分解成数据帧。这些帧随后通过物理层(收件人的 Wi-Fi)传输,此时收件人的设备会接收比特流,而电子邮件数据则反向遍历相同层。在流程的最后,电子邮件数据到达收件人设备的应用层,并以人类可读的形式发送到收件人的收件箱。
OSI 模型有哪 7 层?
OSI 模型是协议开发的基础,框架的每一层都管理特定的网络进程。
第 7 层:应用层
应用层是 OSI 最接近最终用户的层。它直接向用户应用程序提供网络服务,并促进 API 端点和 OSI 模型较低层之间的通信。换句话说,软件应用程序使用应用程序层来启动与网络的通信,并将数据发送到表示层。
应用程序本身不是该层的一部分。相反,应用层提供使软件能够发送和接收数据的协议(例如 HTTP、FTP、DNS 和 SMTP)。它负责以下流程:
文件传输。应用层从用户的设备中获取人类可读的数据文件,并将其传输到表示层。
通信和身份验证。应用层确保接收设备可以接受数据,以及传输所需的通信接口存在。它还可用于验证参与传输的设备。
远程访问。应用程序层使用户能够从不同地理位置访问 Web 浏览器、电子邮件客户端和其他服务。它还允许用户访问和管理远程计算机上的文件。
目录服务。应用层提供目录服务,即网络设备和用户信息的共享数据库,以促进网络资源管理。
第 6 层:表示层
表示层将数据转换为应用层可以接受的格式,以便通过网络传输(例如,从 EBCDIC 编码的文本文件转换为 ASCII 编码的文件)。由于在将数据和图形转换为应用层的可显示格式方面的作用,它有时被称为语法层。
它支持安全套接字层/传输层安全 (SSL/TLS) 协议、JPEG 协议(用于图像压缩)和 MPEG 协议(用于视频压缩)。表示层将数据转换为应用层可以接受并通过网络传输的格式(例如,将 EBCDIC 编码文本文件转换为 ASCII 编码文件)。由于在将数据和图形转换为应用层的可显示格式方面的作用,它有时被称为语法层。
它支持安全套接字层/传输层安全 (SSL/TLS) 协议、JPEG 协议(用于图像压缩)和 MPEG 协议(用于视频压缩)。表示层负责:
数据转换。当传出消息沿着协议堆栈从发送方移动到接收方时,表示层在封装过程中将数据转换为正确的格式(由应用层指定)。
数据加密和解密。表示层对数据进行加密以确保安全传输,并在交付时进行解密。
数据压缩。表现层会缩小数据流的大小,以便传输和解压缩后使用。
有时,在解封装过程中,格式化和转换会被逆转,因为传入的消息会沿着协议堆栈向上移动。在这种情况下,传出消息在封装期间转换为指定格式,而传入消息在解封装期间进行相反的转换。
第 5 层:会话层
会话层负责会话管理,即在两台或多台计算机之间建立、管理和终止连接(称为“会话”)的过程。它发起本地和远程应用程序之间的连接,使会话保持足够长的时间以传输必要的数据,并在完成后关闭会话以保护网络资源。
会话层的关键功能包括:
会话交互。会话层管理用户登录(建立)和用户注销(终止),包括集成到客户端软件中的任何身份验证协议。
同步。会话层有助于确保数据流正确同步并处理恢复点(如果中断,允许设备从特定点恢复会话的检查点)。
会话恢复。会话层管理会话故障,并在出现网络问题时重建连接。
它还建立了相关数据流(例如网络会议中的音频和视频)之间的连接和断开会话的协议。因此,会话层通常在利用远程过程调用的网络环境中显式实现。
第 4 层:传输层
传输层使用传输控制协议 (TCP) 和用户数据报协议 (UDP) 等协议来管理完整消息的端到端交付。它从会话层获取消息并将其分解为更小的单元(称为“段”),每个单元都有一个关联的报头。在目标处,传输层按正确的顺序重新组合段以重新构造原始消息。
传输层还负责处理:
服务点寻址。传输层通过附加传输层报头(包括服务点或端口地址)来帮助确保消息传递到正确的进程。
流控制。传输层可防止数据溢出并管理网络上交互的两个设备之间的数据传输速率,确保发送设备以适当的速度将数据传输到接收设备(反之亦然)。
多路复用。传输层允许多个网络应用程序同时使用同一个连接。
在发送者端,传输层从上层接收格式化数据,执行分段并实施流量和错误控制,以确保准确的数据传输。它将源端口号和目标端口号添加到报头中,然后将分段数据转发到网络层。
在接收端,传输层从报头中读取端口号,并将接收到的数据转发给适当的应用程序。它还处理分段数据的排序和重新组装,并在发现错误时重新传输数据。
传输层提供两种类型的服务。
面向连接的服务由连接建立、数据传输和终止(或断开)三个过程组成,数据接收方会在数据包送达后向发送方发送接收确认。然而,无连接服务只涉及数据传输。接收方不确认接收,这加快了通信速度,但可能不如面向连接的服务可靠。
第 3 层:网络层
OSI 模型的网络层负责辅助数据从一个节点跨不同网络传输到另一个节点。网络层确定数据在节点之间传输的最佳路径(路由)。如果段太大,网络层会将它们分解成更小的“数据包”进行传输,并在接收端重新组装它们。
网络充当多个节点(每个节点都有唯一的地址)可以连接的媒介。网络层允许节点通过提供消息内容和目标地址将消息发送到其他网络上的节点,并让网络确定最佳传递路径(可能涉及通过中间节点进行路由)。
网络层主要使用 Internet Protocol v4 (IPv4) 和 IPv6,负责:
数据包分段和重组。网络层将大数据包(超出数据链路层的大小限制的数据包)拆分为较小的数据包进行传输,并在目的地重新组装它们。
流量管制。网络层对网络流量进行管理,以防止出现拥塞并保障高效的数据流。
网络层的可靠性无法保证;虽然许多网络层协议提供可靠的消息传递,但有些协议则不提供。此外,错误报告在 OSI 的这一层不是强制性的,因此数据发送者可能会也可能不会收到送达确认。
第 2 层:数据链路层
数据链路层的主要功能是管理同一网络中交互的多个设备之间的无差错数据传输。
DLL 分为两个子层。
逻辑链路控制 (LLC) 层用作媒体访问控制 (MAC) 层和网络层之间的接口,负责处理流控制、同步和多路复用(其中两个或多个数据流共享到主机的单个连接)。MAC 层 控制设备如何访问网络介质和传输数据。
当 DLL 接收到来自网络层的数据包时,它会根据网络接口卡 (NIC) 的帧大小将数据包划分为数据“帧”,并使用其 MAC 地址将其传输到主机。
DLL 功能包括:
成帧。DLL 允许发送方通过在帧的开头和结尾附加特殊的位模式来传输一组对接收方有意义的位(数据)。
物理寻址。DLL 使用地址解析协议 (ARP) 将 IP 地址转换为 MAC 地址,然后在成帧完成后将发送者和接收者的 MAC 地址添加到每个帧的报头。
错误控制。DLL 检测损坏或丢失的帧并管理重传(如有必要)以确保数据完整性。
流控制。为了防止损坏,DLL 规定了发送方在收到送达确认之前可以发送多少数据,从而保持双方的数据速率一致。
访问控制。当多个设备共用一个通信信道时,MAC 子层决定在给定时刻哪个设备可以控制该信道。
第 1 层:物理层
物理层包括负责在设备(例如连接器、路由器、中继器和光缆)和物理介质(如 Wi-Fi)之间传输原始数据(以“位”或 1 和 0 的字符串的形式)的物理网络组件。
物理层负责:
比特率控制。物理层定义数据传输速率,通常以比特每秒为单位。
位同步。物理层对比特流施加一个时钟,确保发送方和接收方在位级同步。
传输模式。物理层定义数据在连接的设备之间流动的方式(单工、半双工或全双工传输)。
物理拓扑。物理层指定网络设备和节点的位置(例如总线、星型或网状拓扑结构)。USB、蓝牙和以太网等标准包括物理层规范。
物理层还定义了如何在物理信号上进行编码(例如,使用电压、无线电或光脉冲)。
OSI 与 TCP/IP
OSI 参考模型提供了理论基础,可帮助工程师和开发人员了解网络通信的复杂性。不过,它有时也会与另一种网络模型进行比较:传输控制协议/互联网协议 (TCP/IP) 模型。
与 OSI 模型不同,TCP/IP 模型基于在实际网络中广泛直接实施的标准化协议。它由四层(而不是七层)组成,但每一层都对应于 OSI 模型的一个或多个层。
网络接入层。TCP/IP 网络的网络接入层也称为数据链路层或物理层,包括与网络介质连接所需的硬件和软件组件,结合了 OSI 模型的物理层和数据链路层。它使用以太网(用于 LAN)和 ARP 协议处理同一网络上的设备之间的物理数据传输。
互联网层。与 OSI 模型的网络层类似,互联网层负责逻辑寻址、路由和数据包转发。它主要依赖于 IP 协议和互联网控制消息协议,后者管理在不同网络中数据包的寻址和路由。
传输层。TCP/IP 传输层的功能与 OSI 模型的传输层相同;它能够实现上下层之间可靠的数据传输。它还使用 TCP 和 UDP 协议,提供错误检查和流量控制机制。
应用层。TCP/IP 的应用层包含 OSI 模型的会话层、表示层和应用层。它使用 HTTP、FTP、Post Office Protocol 3 (POP3)、SMTP、DNS 和 SSH 协议直接为应用程序提供网络服务,并管理支持用户应用程序的所有协议。
OSI 模型的主要价值在于其教育实用性,以及它作为设计新协议的概念框架的作用,从而确保这些协议能与现有系统和技术进行互操作。
但是,TCP/IP 模型的实际侧重点和实际适用性使其成为了现代网络的支柱。其强大、可扩展的设计和水平分层方法推动了互联网的爆炸式发展,从而可支持数十亿台设备和海量数据流量。
OSI 模型的优点
加速研发
其抽象的垂直分层网络方法支持模块化协议设计,每个层都可以独立开发和更新。
OSI 模型的模块化有助于加快协议开发的创新,因为软件工程师可以集成新科技,而无需彻底改造整个网络堆栈。
它还使开发人员能够抽象模型的较低层,以简化开发。
简化的知识共享
软件工程师可以分离每个网络组件的操作层,并根据它们在网络中的主要角色对其进行组织。这种可分解性使开发人员能够更轻松地概念化网络并在开发团队之间分享简化的模型。
简化故障诊断
当网络上的设备出现故障或应用程序断开连接时,OSI 模型允许团队查明和隔离问题层,以处理任何安全问题或网络漏洞,且无需中断整个框架。