OSI 模型层:介绍指南

开放系统互连 (OSI) 模型详解

开放系统互连 (OSI) 模型是软件开发者和供应商设计可互操作且安全软件方案的重要参考框架。这个模型详细阐述了数据在网络中的流动方式,包括TCP等通信协议,以及各种工具和技术之间的差异。

尽管有人对OSI模型各层的实用性提出质疑,但在当今网络安全至关重要的时代,它的价值依然不容忽视。深入理解OSI模型各层,有助于评估与应用程序和系统相关的技术漏洞和风险。此外,它还可以帮助团队明确数据的位置、物理访问权限,并制定相应的安全策略。

本文将深入探讨OSI模型的各个层次,并阐述它们对用户和企业的重要性。

什么是开放系统互连 (OSI) 模型?

开放系统互连 (OSI) 模型是一个由七层组成的参考模型,计算机系统和应用程序利用该模型通过网络与其他系统进行通信。 它将数据传输的过程、标准和协议分解为七个独立的层,每一层都负责特定的数据发送和接收任务。

国际标准化组织 (ISO) 于 1984 年制定了OSI模型,它首次确立了系统如何在网络中进行通信的标准参考。 随后,所有主流电信和计算机公司都采用了此模型。

OSI模型呈现了一种视觉架构,其中各层相互叠加,下层为上层提供服务。 用户交互时,数据会从源设备开始,依次通过这些层向下流动,然后到达接收设备,层层向上。

OSI 模型涵盖了各种应用程序、网络硬件、协议和操作系统等,使系统能够通过光纤、双绞线铜缆、Wi-Fi等物理介质在网络中传输信号。

这个概念框架旨在指导开发人员和供应商创建可互操作的软件应用程序和产品,从而帮助您理解系统之间的关系。 同时,它也为描述电信和网络系统的功能提供了一个统一的框架。

为什么需要了解 OSI 模型?

在软件开发中,了解OSI模型至关重要,因为每个应用程序和系统都基于其中的某一层或多层工作。IT网络专业人员利用OSI模型来理解数据如何在网络中流动。这种知识不仅对软件供应商和开发人员有价值,对那些准备参加思科认证网络助理 (CCNA) 等考试的学生也同样重要。

学习OSI模型各层的一些优势:

  • 理解数据流: OSI 模型使网络管理员能够轻松理解数据如何在网络中传输。 这有助于他们了解硬件和软件如何协同工作,从而构建更安全、更具弹性的系统。
  • 简化故障排除: 由于网络被划分为具有独立功能和组件的七个层,故障排除变得更加容易。 专业人员可以更快地诊断问题,通过确定发生故障的网络层,将注意力集中在该层。
  • 促进互操作性: 开发人员可以创建与其他供应商产品轻松交互的可互操作的软件系统和设备,从而增强这些系统的功能,并使用户能够更高效地工作。

您还可以明确您的产品必须使用的组件和部件。 这也有助于您与最终用户沟通您的产品和系统在网络中的运作层级,无论是跨技术堆栈还是仅在特定层。

不同的 OSI 模型层

物理层

物理层是OSI模型的最底层,也是第一层,它描述了系统的物理和电气特性。

它涉及电缆类型、引脚布局、射频链路、电压、信号类型、连接设备使用的连接器等。 它负责不同网络节点之间的无线或物理电缆连接,促进原始数据的传输,并控制比特率。

在这一层中,位 (0 和 1) 的原始数据被转换为信号并进行交换。 为确保数据的顺利传输,发送端和接收端必须同步。 物理层为不同的设备、传输介质和网络拓扑类型提供接口。 传输模式的类型也在物理层定义。

使用的网络拓扑可以是总线型、环型或星型,而传输模式可以是单工、全双工或半双工。 物理层使用的设备包括以太网电缆连接器、中继器和集线器等。

当检测到网络问题时,网络专业人员首先会检查物理层的一切是否正常,例如电缆连接是否正确、电源是否已连接到系统 (如路由器) 以及其他相关步骤。

物理层的主要功能是:

  • 定义物理拓扑、设备和系统在给定网络中的排列方式。
  • 定义数据在网络中两个连接设备之间流动的传输模式。
  • 在位级别控制接收器和发送器的时钟,以实现位同步。
  • 控制数据传输的比特率。

数据链路层

数据链路层位于物理层之上。它用于在网络中两个连接的节点之间建立和终止连接。该层将数据包分割成不同的帧,然后从源传输到目标。

数据链路层分为两部分:

  • 逻辑链路控制 (LLC):检测网络协议、同步帧并检查错误。
  • 媒体访问控制 (MAC):利用 MAC 地址链接设备并控制数据传输权限。

MAC 地址是分配给网络中每个系统的唯一地址,用于识别系统。这些 12 位数字在网络数据链路层的物理寻址系统中起监督作用,并控制各种网络组件如何访问物理介质。

示例:MAC 地址可以包含 6 个八位字节,例如 00:5e:53:00:00:af,其中前三个数字对应于组织唯一标识符 (OUI),而后三个数字对应于网络接口控制器 (NIC)。

数据链路层的主要功能是:

  • 错误检测: 错误检测发生在该层,而错误纠正则发生在传输层。有时,在数据信号中会出现称为错误位的干扰信号。为了消除错误,必须先使用校验和和循环冗余校验 (CRC) 等方法检测错误。
  • 流量控制: 接收方和发送方通过媒体传输数据的速度必须一致。如果发送帧的速度快于接收器接收数据的速度,可能会丢失部分数据。为了解决这个问题,数据链路层会使用一些流量控制方法来保持数据传输线上的速度一致。这些方法包括:
    • 滑动窗口方法:两端确定必须传输的帧的数量,在传输过程中节省时间和资源。
    • 停止等待机制:发送方在数据传输后停止,并等待接收方确认已收到数据。
  • 启用多路访问: 数据链路层还允许访问多个设备和系统,通过同一传输介质传输数据而不会发生冲突。为此,它使用载波侦听多路访问或冲突检测协议 (CSMA/CD)。
  • 数据同步: 在数据链路层,共享数据的设备两端必须保持同步,以保证数据的顺利传输。

数据链路层还使用网桥和二层交换机等设备。网桥是连接到不同局域网的 2 端口设备,充当转发器,过滤不需要的数据,并将其发送到目标端点,利用相同协议连接网络。另一方面,二层交换机根据系统的 MAC 地址将数据转发到下一层。

网络层

网络层位于数据链路层之上,是OSI模型底部的第三层。它利用网络地址(如IP地址),将数据包路由到在不同或相同协议和网络上运行的接收节点。

它主要执行以下两个任务:

  • 在目标节点重新组装网络包时,将网段划分为不同的网络数据包。
  • 发现物理网络中的最佳路径,并相应地路由数据包。

最佳路径是指该层使用交换机、路由器以及各种错误检测和处理方法,在发送方和接收方之间找到最短、最省时和最简单的数据传输路径。

为此,网络层使用逻辑网络地址和网络的子网划分设计。无论设备是否在同一网络上,是否使用相同协议,或是否工作在相同的拓扑上,该层都会使用逻辑IP地址和路由器将数据从源路由到目标。因此,它的主要组成部分是IP地址、子网和路由器。

  • IP地址: 这是一个全球唯一的32位数字,分配给每个设备,作为逻辑网络地址。它分为主机地址和网络地址两部分。IP 地址通常由用句点分隔的四个数字表示,例如 192.0.16.1。
  • 路由器: 在网络层,路由器用于在不同广域网 (WAN) 中运行的设备之间进行数据通信。用于数据传输的路由器不了解确切的目标地址,因此数据包会被路由。

它们只知道网络位置的信息,并利用路由表中收集的数据。这有助于路由器找到传递数据的路径。当数据最终传递到目标网络时,它会被发送到网络中的目标主机。

  • 子网掩码: 子网掩码由 32 位逻辑地址组成,路由器可以使用这些逻辑地址以及 IP 地址来查找目标主机的位置,以便传递数据。这非常重要,因为主机和网络地址不足以找到位置,无论它位于远程网络还是子网络中。子网掩码的示例可以是 255.255.255.0。

通过查看子网掩码,您可以找出网络地址和主机地址。因此,当数据包从源端到达并计算出目标地址时,系统会接收数据并将其传输到下一层。与二层不同,该层不需要发送方等待接收方的确认。

传输层

传输层是OSI模型中倒数第四层。它从网络层获取数据并将其传递到应用层。在这一层中,数据被称为“段”,该层的主要功能是传递完整的消息。它还会在数据传输成功时进行确认。如果有任何错误,它会重新发送数据。

除此之外,传输层还执行流量控制,以与接收设备相同的速度传输数据,实现平稳传输,管理错误,并在发现错误后再次请求数据。

以下是每一端会发生的事情:

  • 在发送端,当从OSI模型中的更高层接收到格式化数据后,传输层执行分段。然后,它实施流量和错误控制技术,以实现流畅的数据传输。接下来,它会在标头中添加源和目标的端口号,并将段传递到网络层。
  • 在接收端,传输层会查看报头以识别端口号,然后将接收到的数据发送到目标应用程序。它还会对分段数据进行排序和重组。

传输层在网络中的设备或主机之间提供无错误的端到端连接。它为内部和内部子网络提供数据段。

为了在网络中启用端到端通信,每个设备都必须具有传输服务访问点 (TSAP) 或端口号。这有助于主机通过远程网络的端口号识别对等主机。它通常是手动或默认找到的,因为大多数应用程序使用默认端口号 80。

传输层使用两种协议:

  • 传输控制协议 (TCP): 这是一种可靠的协议,在开始数据传输之前首先建立主机之间的连接。它需要接收方发送确认信息以表明已收到数据。收到确认后,它会发送第二批数据。它还监控传输速度和流量控制并纠正错误。
  • 用户数据报协议 (UDP): 它被认为是不可靠且不是面向连接的。在主机之间传输数据后,它不需要接收方发送确认信息,而是继续发送数据。因此,它容易受到 UDP 泛洪等网络攻击。它通常用于在线游戏和视频流等。

传输层的一些功能包括:

  • 服务点寻址: 传输层具有称为端口地址或服务点地址的地址,有助于将消息传递给正确的接收者。
  • 错误检测和控制: 该层提供错误检测和控制功能。当段或数据存储在路由器的内存中时,可能会发生错误,即使数据在通过链路移动时没有发现任何错误。如果发生错误,数据链路层将无法检测到它。此外,并非所有链路都是安全的,因此需要在传输层进行错误检测。它通过以下两种方法完成:
    • 循环冗余校验
    • 校验和生成器和检查器

会话层

会话层是OSI模型底部的第五层。它用于在不同设备之间创建通信通道,也称为会话。它执行以下任务:

  • 建立连接。
  • 断开连接。
  • 在数据传输时保持连接处于活动状态。
  • 提供不同应用程序之间的对话同步,促进接收端无丢失的无缝数据传输。

会话层可以创建检查点以确保安全的数据传输。万一会话中断,所有设备将从上一个检查点恢复传输。该层允许使用不同平台的用户在它们之间建立活动的通信会话。

表示层

自下而上的第六层是表示层或翻译层。它用于准备要发送到上层(应用层)的数据。它以用户可以理解的格式向最终用户呈现数据。

表示层描述了网络中的两个设备必须如何压缩、加密和编码数据,以便接收器正确接收数据。该层使用从应用层传输并发送到会话层的数据。

表示层处理语法,因为发送方和接收方可能使用不同的通信模式,这可能导致不一致。该层使系统能够在同一网络上轻松地相互通信和理解。

第六层执行以下任务:

  • 在发送方加密数据。
  • 在接收方解密数据。
  • 翻译数据,例如将ASCII格式转换为EBCDIC格式。
  • 在传输前压缩多媒体数据。

该层将包含字符和数字的数据分解为位,然后传输。它还以所需格式为网络转换数据,并以可接受的格式为不同设备(如智能手机、平板电脑和PC等)转换数据。

应用层

应用层是OSI模型中的第七层,也是最顶层。最终用户使用的软件和应用程序,如电子邮件客户端和Web浏览器,都使用该层。

应用层提供协议,允许软件系统传输数据,并向最终用户提供有意义的信息。

示例:应用层协议包括著名的超文本传输​​协议 (HTTP)、简单邮件传输协议 (SMTP)、域名系统 (DNS) 和文件传输协议 (FTP) 等。

TCP/IP 与 OSI 模型:差异

TCP/IP和OSI模型的主要区别在于:

  • TCP/IP是由美国国防部 (DoD) 创建的,是一个比OSI模型更早的概念。
  • TCP/IP功能模型是为解决特定的通信问题而建立的,它基于标准协议。而OSI模型是一个与协议无关的通用模型,用于定义网络通信。
  • TCP/IP模型比OSI模型更直接,层数更少。它有四层:
    • 网络接入层,它结合了OSI的第1层和第2层。
    • 互联网层,在OSI模型中称为网络层。
    • 传输层。
    • 应用层,它结合了OSI的第5、6和7层。
  • OSI模型有七层:物理层、数据链路层、网络层、传输层、会话层、表示层和应用层。
  • 使用TCP/IP的应用程序会利用所有层,但在OSI模型中,大多数应用程序不会利用其全部七层。实际上,第1-3层对于数据传输是强制性的。

结论

理解OSI模型能够帮助开发人员和供应商创建可互操作且安全的软件应用程序和产品。它还可以帮助区分不同的通信工具和协议以及它们如何协同工作。如果您是一名正在准备参加网络考试(如CCNA认证)的学生,了解OSI模型将对您大有裨益。