介绍
七层模型,亦称OSI(Open System Interconnection)。参考模型是国际标准化组织(ISO)制定的一个用于计算机或通信系统间互联的标准体系,一般称为OSI参考模型或七层模型。
分层
应用层
提供高级api
- 定义了网络主机提供的方法和接口(业务协议、高级协议等)
- 往往直接对应用户行为
- 例如:HTTP、FTP、SMTP等
展示层
- 也被称作语法层
- 将pplication Layer中的数据转化为传输格式,保留语义(如:序列化、加密解密、字符串编码解码等)
- 确保数据发送取出后可以被接受者理解
会话层
- 提供管理会话的方法(open、close、reopen、检查状态等 )
- 提供对底层连续断断续续的隐藏,甚至对多种底层流的隐藏(提供数据同步点)
传输层
提供主机到主机的数据通信能力
- 建立连接保证数据封包发送、接受到的顺序一致
- 提供可靠性(发送者知道数据有没有被完整送达)
- 提供流控制(发送者和接受者同步速率)
- 提供多路复用(多工,多种信号复用一个信道)
网络层
提供数据在逻辑单元例如IP地址之间的传递能力
- 路由:决定数据的下一站在哪里
- 寻址:为数据封包增加头信息(地址等)
数据链路层
提供数据在设备和设备间的传输能力
- 流控制:发送者接受者之间同步数据收发速度和数据量
- 错误控制:检测有没有出错,并重发出错的数据
物理层
定义底层一个个位(bit)的数据如何变成物理信号
- 将数据链路层发生的数据传递行为转化为物理设备识别的信号
- 封装了大量底层物理设备的能力
结合实际案例思考
当Jim想Bob发微信
- Jim提交的输入被微信存储成某种内部协议格式 -- 应用层
- 数据被转换成为传输用的格式 (如加密 、压缩等)-- 表示层
- 微信客户端建立到服务器的连接(也可能是之前建立好了)-- 会话层
- 微信客户端向服务器传输数据 -- 传输层
- 一个个数据封包从主机传输到服务器 -- 网路层
- 数据帧在一个个设备之间传输 -- 数据链路层
- 数据最终以光电信号的形式在物理设备间传输 -- 物理层
分层架构的意义
- 把应用分成N层
- 替换其中一层不影响其它层的工作,不需要重构整个应用
- 设计要点
- 必要性、独立性、可替换
- 层的颗粒度
- 数据可追踪性