OSI七层模型

115 阅读3分钟

OSI模型简介

OSI七层模型 (ISO/IEC 7498-1)

  • 开放式系统互联模型 Open System Interconnection Model
  • 世界范围内的网络标准 概念模型
  • ISO的努力让互联网协议逐渐走向标准化

ISO(国际标准化组织)源起于欧洲,把互联网做大的是美国,中国在第四次工业革命中受益

OSI模型分七层:应表会传网数物

应用层(Application Layer)

应用层目标:提供高级API

  • 定义了网络主机提供的方法和接口(业务协议、高级协议等)
  • 往往直接对应用户行为
  • 应用层协议例如:HTTP、FTP(用来共享文件)、SMTP(用来收发邮件)等

表示层/展示层(Presentation Layer)

  • 也被称作语法层(Syntax Layer)
  • 将Application Layer中的数据转化为传输格式,保留语义(如:序列化、加密解密、字符串编码解码等)
  • 确保数据发送出去后可被接受者理解

会话层(Session Layer)

  • 提供管理会话的方法(Open/Close/ReOpen/检查状态等)
  • 会话层要向上面隐藏细节。提供对底层连接断续的隐藏;甚至对多种底层流的隐藏(提供数据同步点)

传输层(Transport Layer)

提供主机到主机(host-to-host)到数据通信能力

  • 建立连接保证数据封包发送、接收到的顺序一致
  • 提供可靠性(发送者知道数据有没有被完整送达)
  • 提供流控制(发送者和接收者同步速率)
  • 提供多路复用(「多工」,Multiplexing,多种信号复用一个信道)

image-20220320164441826.png

四个信号,每个信号会被拆分一小段一小段的数据,在复用一个信道传输,传到目的地后再重组

网络层(Network Layer)

提供数据在逻辑单元(例如IP地址)之间的传递能力

  • 路由:决定数据的下一站在哪里
  • 寻址:为数据封包增加头信息(地址等,IP地址)

数据链路层(Data Link Layer)

提供数据在设备和设备之间的传输能力

  • 流控制:发送者接受者之间同步数据收发速度和数据量
  • 错误控制:检测数据有没有出错,并重发出错的数据

物理层(Physical Layer)

定义底层一个个位 (bit) 的数据如何变成物理信号

  • 将数据链路层发生的数据传递行为转化为物理设备识别的信号
  • 封装了大量底层物理设备的能力

结合实际应用思考

Story - 当Alice向Bob发微信

  • Alice 提交的输入被微信存储成某种内部协议格式 -- 应用层
  • 数据被转换成传输用的格式(如加密、压缩等) -- 表示层
  • 微信客户端建立到服务器的连接(也可能之前就建立好了) -- 会话层
  • 微信客户端向服务器传输数据 -- 传输层
  • 一个个数据封包从主机传输到服务器 -- 网络层
  • 数据帧在一个个设备之间传输 -- 数据链路层
  • 数据最终以光电信号的形式在物理设备间传输 -- 物理层

深入思考OSI分层架构

分层架构数据视角

image-20220320170656330.png

  • 把应用分成N层
  • 替换其中一层,不影响其他层工作,不需要重构整个应用
  • 设计要点:
    • 必要性/独立性/可替换;这三点都满足,这里可以加一层
    • 层的颗粒度;考虑这层厚薄,厚 -- 颗粒度大,薄 -- 颗粒度小
    • 数据可追踪性

OSI是概念模型,同时也是标准

「分层」是最常见的架构手段,但每一层都是增加软件复杂度和程序的不可追溯性

TCP/IP协议群(互联网协议群)受到OSI的影响