OSI 参考模型
产生背景
- 各大IT设备厂商只支持自己的私有协议,跨厂商的设备兼容性差
- 用户购买和维护成本高
- 不利于网络技术发展
概念
OSI模型是开放式系统互联通信参考模型,是一种概念模型,由国际标准化组织提出,一个试图使各种计算机在世界范围内互连为网络的标准框架。它定义了网络中设备所遵守的层次结构
分层
- 物理层:定义了电压、接口、线缆标准、传输距离、传输介质等物理参数
- 数据链路层:MAC地址寻址
- 网络层:IP地址寻址、路由
- 传输层:
- 数据分段、建立端到端连接、维护传输可靠性
- 端口用于区分同一计算机上的不同应用程序
- TCP:可靠的传输
- UDP:不可靠传输
- 会话层:
- 建立、维护、拆除应用程序间的会话
- 区分同一个应用程序的不同访问者
- 表示层:定义数据格式、结构;数据加密、压缩
- 应用层:为应用程序进程提供网络服务
OSI 参考模型的特点
优点
- 开放的标准化接口,协议不再封闭
- 多厂商设备兼容
- 易于理解、学习和更新协议标准
- 实现模块化工程,降低开发难度
- 便于故障排除
面临的问题:划分层次过多,会话层、表示层存在意义不大。IP协议成为事实的网络层唯一协议
TCP/IP 参考模型
TCP/IP 参考模型是基于 OSI 参考模型衍生的更适合技术发展的模型,由于OSI 模型比较复杂,且TCP和IP两大协议在业界被广泛使用,所以 TCP/IP参考模型成为了互联网的主流参考模型。
它将 OSI 参考模型中的应用层、表示层和会话层整合成应用层,将数据链路层和物理层整合成网络接口层。整个模型仅有四层,相较于 OSI 参考模型更简便。
- 网络接口层:负责处理与传输介质相关的细节,包括:物理线路和接口以及保障链路层通信等。
- 网络层:负责将数据包送达正确的目的,包括数据包的路由以及路由的维护。主要协议:IP、ICMP、IGMP
- 传输层:负责提供端到端的通信,包括:数据完整性校验、差错重传、数据的重新排序等。主要协议:TCP、UDP
- 应用层:负责处理特定的应用程序细节,如:远程访问、资源共享。主要协议:Telnet、FTP/TFTP、SMTP/POP3、SNMP/HTTP
数据封装与解封装
- 封装:从上而下逐层封装,在原始数据的基础上加入一些额外信息(本层协议报头)形成新的格式
- 解封装:从下往上逐层解封装,拆除封装的额外信息,还原成原始数据
封装过程
应用层:将原始数据转化成二进制的数据流传给传输层
传输层:应用层数据前加上TCP头部,形成数据段,TCP头部存在一个端口号来标识上层数据是通过什么协议传输的
网络层:在数据段前添加一个IP头部,形成数据包,IP头部主要含有源地址和目的地址用来转发数据
数据链路层:在数据包前添加一个MAC头部,形成数据帧,MAC头部主要含有源MAC地址和目的MAC地址,用来进行物理寻址的操作
物理层:将数据帧转成比特流,后转化成为电信号,通过网卡和网线等物理设备进行传输
解封装过程
物理层:将比特流转化成二进制数据——数据帧,并传输到数据链路层
数据链路层:将数据帧拆开,检查目的MAC地址是否是自己的,若是,则将数据包向上传输给网络层;若不是,则丢弃
网络层:将数据包拆开,检查目的IP地址是否是自己的,若是,则将数据段向上传输给传输层;若不是,则丢弃
传输层:将数据段拆开,查看数据段中的TCP头部的端口号,看往哪个端口传,并将数据转化成二进制数传给应用层
应用层:将二进制数转化成数据