什么是OSI模型
OSI(开放式系统互联)模型由国际标准化组织(ISO)于1984年制定,将网络通信划分为七个层级,目的是让不同厂商的设备和软件能够顺利互通。与其说它是一套会被原样实现的协议栈,不如说它更像是一张用来理解和排查网络通信过程的概念地图:数据在发送端沿着各层向下传递时,每一层都会加上自己的头部信息(封装);到达接收端后,再沿着各层向上传递,逐层剥离头部信息(解封装),直到第七层。
第1层:物理层
物理层是最底层,负责将比特(0和1)转换成实际的信号——铜缆中的电压、光纤中的光脉冲,或Wi-Fi中的无线电波。网线、接口、集线器和中继器都属于这一层;这一层只负责传输信号,完全不涉及地址或含义的概念。
第2层:数据链路层
数据链路层利用MAC地址,将数据以帧的形式传送给同一局域网内的另一台设备。以太网和Wi-Fi标准都工作在这一层,交换机根据MAC地址表把帧转发到正确端口,也是这一层的工作。这一层会检测传输错误,但无法将数据路由到远端网络。
第3层:网络层
网络层利用IP地址在不同网络之间寻找路径,以数据包(packet)为单位传送数据。IP协议本身和路由器就是典型的第三层组件——路由器读取目标IP地址,查询路由表,决定下一步该把数据包转发到哪里,这正是数据包能够跨越互联网、经过多个跳转最终到达目的地的原因。ping所使用的ICMP协议也属于这一层。
第4层:传输层
传输层是TCP和UDP工作的层级,通过端口号让同一台设备上的多个应用程序能够独立通信,并负责数据传输的可靠性。TCP通过顺序控制和重传保证可靠传输,而UDP则牺牲部分可靠性以换取速度。
第5层:会话层
会话层负责在两台设备之间建立、维持并终止一次"会话"。在现代互联网协议中,这一概念性的职责大多已被TLS或应用层自身的会话管理(如Cookie、会话令牌)所吸收,因此很少再作为一个独立的实现层出现。
第6层:表示层
表示层负责对数据进行格式转换、加密和压缩,使其成为应用层能够理解的形式。字符编码转换、JPEG或MP4等格式的压缩解压,以及SSL/TLS加密,在概念上都属于这一层的职责。但在实际的互联网协议栈中,它并没有像OSI模型那样被清晰地独立实现出来——比如TLS实际上是运行在传输层之上的。
第7层:应用层
应用层是最上层,是用户实际使用的浏览器、邮件客户端、即时通讯软件等应用程序进行通信的层级。HTTP/HTTPS(网页)、SMTP/IMAP(邮件)、FTP(文件传输)、DNS(域名解析)等协议都工作在这一层。由于它是离用户最近的一层,"网速慢""打不开"这类日常感受到的问题,很多时候实际根源出在更底层,比如第三层的路由问题或第一层的信号质量问题。
OSI模型与TCP/IP模型的区别
现实中的互联网并不是严格按照OSI七层运行的,而是基于更简化的四层TCP/IP模型:网络接入层(大致对应OSI第1~2层)、网络层(第3层)、传输层(第4层)、应用层(整合第5~7层)。设备文档和技术标准在实务中大多以TCP/IP的四层模型为基准,但在教学和故障排查中,更细分的OSI七层模型至今仍被广泛引用。