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,多种信号复用一个信道)
四个信号,每个信号会被拆分一小段一小段的数据,在复用一个信道传输,传到目的地后再重组
网络层(Network Layer)
提供数据在逻辑单元(例如IP地址)之间的传递能力
- 路由:决定数据的下一站在哪里
- 寻址:为数据封包增加头信息(地址等,IP地址)
数据链路层(Data Link Layer)
提供数据在设备和设备之间的传输能力
- 流控制:发送者接受者之间同步数据收发速度和数据量
- 错误控制:检测数据有没有出错,并重发出错的数据
物理层(Physical Layer)
定义底层一个个位 (bit) 的数据如何变成物理信号
- 将数据链路层发生的数据传递行为转化为物理设备识别的信号
- 封装了大量底层物理设备的能力
结合实际应用思考
Story - 当Alice向Bob发微信
- Alice 提交的输入被微信存储成某种内部协议格式 -- 应用层
- 数据被转换成传输用的格式(如加密、压缩等) -- 表示层
- 微信客户端建立到服务器的连接(也可能之前就建立好了) -- 会话层
- 微信客户端向服务器传输数据 -- 传输层
- 一个个数据封包从主机传输到服务器 -- 网络层
- 数据帧在一个个设备之间传输 -- 数据链路层
- 数据最终以光电信号的形式在物理设备间传输 -- 物理层
深入思考OSI分层架构
分层架构数据视角
- 把应用分成N层
- 替换其中一层,不影响其他层工作,不需要重构整个应用
- 设计要点:
- 必要性/独立性/可替换;这三点都满足,这里可以加一层
- 层的颗粒度;考虑这层厚薄,厚 -- 颗粒度大,薄 -- 颗粒度小
- 数据可追踪性
OSI是概念模型,同时也是标准
「分层」是最常见的架构手段,但每一层都是增加软件复杂度和程序的不可追溯性
TCP/IP协议群(互联网协议群)受到OSI的影响