Skip to content

OSI(Open Systems Interconnection,开放式系统互联)模型

OSI 模型将复杂的网络通信过程划分为七个独立的层级,从底层的物理硬件一直到高层的用户应用。每一层都负责特定的功能,并且只与它相邻的上下层进行交互。

第一层:物理层 (Physical Layer)

核心职责:负责通过物理介质传输最基础的比特流(0 和 1)。

  • 功能描述: 物理层是 OSI 模型的最底层,也是唯一涉及真实物理连接的层。它定义了网络通信的硬件标准,包括线缆的类型(如网线、光纤)、接头的物理形状、引脚的功能,以及传输数据所需的电压电平、无线电频率和传输速率等。
  • 数据单位: 比特 (Bit)
  • 相关设备: 网线(双绞线、同轴电缆)、光纤、网卡接口、集线器 (Hub)、中继器、调制解调器 (Modem)。
  • 形象比喻: 就像是运送包裹的交通工具和道路(汽车、火车、公路等)。

核心职责:在局域网(LAN)内的相邻节点之间建立可靠的连接,并处理物理寻址。

  • 功能描述: 物理层只负责传输 0 和 1,难免会发生错误。数据链路层将这些比特组装成有意义的“帧(Frame)”,并在帧中加入发送方和接收方的物理地址(MAC 地址)。它还负责错误检测(确保数据在传输过程中没有损坏)和流量控制。通常分为两个子层:逻辑链路控制(LLC)和介质访问控制(MAC)。
  • 数据单位: 帧 (Frame)
  • 常见协议: 以太网 (Ethernet)、Wi-Fi (IEEE 802.11)、PPP、ARP。
  • 相关设备: 交换机 (Switch)、网桥 (Bridge)、网卡 (NIC)。

第三层:网络层 (Network Layer)

核心职责:负责不同网络之间的路由选择和逻辑寻址(IP 地址)。

  • 功能描述: 如果说数据链路层负责局域网内的通信,那么网络层就负责将数据从一个网络发送到另一个网络。它将数据封装成“数据包(Packet)”,并使用逻辑地址(即 IP 地址)来标识发送方和最终目的地。网络层最重要的功能是“路由”,即决定数据包到达目的地应该走哪条最佳路径。
  • 数据单位: 数据包 (Packet)
  • 常见协议: IP (IPv4, IPv6)、ICMP (如 ping 命令)、IPsec、OSPF、BGP。
  • 相关设备: 路由器 (Router)、三层交换机。

第四层:传输层 (Transport Layer)

核心职责:提供端到端(主机到主机)的可靠或不可靠的数据传输,并处理分段与重组。

  • 功能描述: 传输层从会话层接收数据,将其分割成更小的“数据段(Segment)”,然后交给网络层发送。到达接收端后,传输层负责将这些数据段按正确的顺序重组。它还负责流量控制和差错恢复,确保数据完整无误地送达。通过端口号,传输层能区分同一台计算机上运行的不同网络应用程序。
  • 数据单位: 数据段 (Segment) 或 数据报 (Datagram)
  • 常见协议: TCP(传输控制协议,提供可靠连接)、UDP(用户数据报协议,提供快速但不可靠的传输)。

第五层:会话层 (Session Layer)

核心职责:建立、管理和终止两台设备应用程序之间的通信会话。

  • 功能描述: 就像打电话一样,会话层负责“拨通”和“挂断”。它管理两个应用程序何时开始通信,谁在发送数据,发送多久,以及何时结束。如果网络中断,会话层还提供检查点机制,允许数据从断点处恢复传输,而不需要从头开始。
  • 数据单位: 数据 (Data)
  • 常见协议: NFS、SMB、RPC、NetBIOS。

第六层:表示层 (Presentation Layer)

核心职责:处理数据的格式、加密和解密、压缩和解压缩。

  • 功能描述: 表示层是网络的“翻译官”。不同的计算机系统可能使用不同的数据表示方式。表示层确保发送方发送的数据能够被接收方理解。它负责将应用层的数据转换为适合网络传输的通用格式,并在接收端将其转换回应用层能理解的格式。常见的数据加密(如 SSL/TLS)和数据压缩通常也在这一层处理。
  • 数据单位: 数据 (Data)
  • 常见格式/协议: JPEG、MPEG、ASCII、JSON、SSL/TLS。

第七层:应用层 (Application Layer)

核心职责:直接为用户的软件应用程序提供网络服务。

  • 功能描述: 应用层是最靠近用户的一层,它是用户和网络之间交互的接口。你需要注意的是,应用层不是指软件本身(比如 Chrome 浏览器或 Outlook),而是指这些软件用来在网络上通信的协议。当我们想要浏览网页、发送电子邮件或传输文件时,都是由应用层的协议来处理请求并准备数据的。
  • 数据单位: 数据 (Data)
  • 常见协议: HTTP/HTTPS(网页浏览)、FTP(文件传输)、SMTP/POP3/IMAP(电子邮件)、DNS(域名解析)、Telnet。

OSI 模型中数据是如何传输的?

数据在 OSI 模型中的传输过程被称为封装(Encapsulation)解封装(De-encapsulation)

  1. 发送数据(自顶向下): 当你在应用层发送一条信息(例如发一封邮件),数据会从第 7 层一直往下传递到第 1 层。在每一层,都会在数据前加上该层特有的控制信息(头部 Header)。就像寄快递时一层层包装并贴上各种标签。最终,在物理层变成比特流发送出去。
  2. 接收数据(自底向上): 接收端在物理层收到比特流后,数据会从第 1 层向上层层传递。每一层都会读取并剥离属于自己那一层的头部信息,执行相应的处理,然后将剩余的数据传给上一层。最终,应用层收到原始的信息。

为什么 OSI 模型很重要?

虽然现代互联网实际运行的基础是 TCP/IP 模型(它将 OSI 的七层简化为了四层或五层),但 OSI 模型仍然极其重要:

  • 标准化的语言: 它为网络通信提供了一套全世界通用的词汇和概念。当工程师们讨论“这是一个三层的问题”时,大家都知道这与路由器或 IP 地址有关。
  • 清晰的故障排查: 这种分层结构非常适合用于诊断问题。如果用户打不开网页(第 7 层),工程师可以通过“自下而上”的方法排查:先检查网线插好没(第 1 层),再检查有没有获取到 IP 地址(第 3 层),依此类推,从而快速定位故障点。
  • 解耦与模块化设计: 分层设计意味着网络硬件或软件的开发商可以专注于其中某一层。例如,只要网卡遵守了物理层和数据链路层的规范,它就可以与任何厂商的路由器或任何操作系统的应用层协议配合工作。