OSI 七层模型详解及面经

最近在复习计网,故总结本文,如有错误,请评论区指出

先明确一个核心前提:OSI模型是理论框架 ,核心作用是将复杂的网络通信拆分为7个独立层次,每层只负责单一职责,下层为上层提供服务,上层依赖下层的支撑,以此降低网络通信的复杂度,实现不同设备、不同系统的互通。

补充:OSI模型常和TCP/IP模型对比,但核心还是OSI的七层分工+协议关联,本文重点讲OSI,结尾附带和TCP/IP的对应关系

文章目录

    • OSI七层模型
      • [物理层(Physical Layer)------ 网络通信的"物理载体"](#物理层(Physical Layer)—— 网络通信的“物理载体”)
      • [数据链路层(Data Link Layer)------ 相邻设备的"通信桥梁"](#数据链路层(Data Link Layer)—— 相邻设备的“通信桥梁”)
      • [网络层(Network Layer)------ 跨网络通信的"导航系统"](#网络层(Network Layer)—— 跨网络通信的“导航系统”)
      • [传输层(Transport Layer)------ 端到端通信的"可靠保障"](#传输层(Transport Layer)—— 端到端通信的“可靠保障”)
      • [会话层(Session Layer)------ 通信会话的"管理者"](#会话层(Session Layer)—— 通信会话的“管理者”)
      • [表示层(Presentation Layer)------ 数据的"翻译官"](#表示层(Presentation Layer)—— 数据的“翻译官”)
      • [应用层(Application Layer)------ 后端开发的"直接接触层"](#应用层(Application Layer)—— 后端开发的“直接接触层”)
    • OSI与TCP/IP模型的对应关系

OSI七层模型

口诀:物联网叔会使用 (物链网输会示用) (物理层→数据链路层→网络层→传输层→会话层→表示层→应用层)

重点关注「传输层、网络层、应用层

OSI七层模型图:

数据流向:

物理层(Physical Layer)------ 网络通信的"物理载体"

核心 :不涉及软件和协议,只负责物理信号的传输,是所有网络通信的基础。

核心作用:将上层传递的比特流(0和1)转换成物理信号(电信号、光信号、无线电信号),通过物理介质(网线、光纤、WiFi)传输,同时接收对方的物理信号,转换回比特流传递给上层。

协议相关:无核心协议(物理层没有严格意义上的"协议",只有接口标准)。

常见接口标准:RJ45(网线接口)、光纤接口、WiFi无线标准(802.11系列,本质是物理层+数据链路层标准)

面经:

  • 物理层的作用是什么?
    • 比特流与物理信号的转换、物理介质传输
  • 物理层和数据链路层的区别?
    • 物理层管"信号传输",数据链路层管"信号封装和相邻设备通信"

核心 :解决"相邻设备(如电脑和路由器、路由器和交换机)之间的可靠通信",给物理层的比特流"封装标识",避免传错、传丢。

核心作用:将网络层传递的数据包(Packet)封装成 帧(Frame),添加源MAC地址和目标MAC地址(设备的物理地址,唯一标识),实现相邻设备的帧传输,同时进行差错检测和重传。

核心协议:

  • 以太网协议(Ethernet):最常用的局域网协议,定义了帧的格式、MAC地址的规范,后端开发中,局域网内设备通信(比如服务器和交换机)依赖此协议。

  • PPP协议(点对点协议):用于点对点的通信(比如拨号上网、服务器之间的专线连接),无MAC地址,直接通过点对点链路传输帧。

  • HDLC协议(高级数据链路控制协议):面向连接的链路层协议,用于广域网,稳定性强,常被运营商使用。

协议关联:数据链路层的协议,依赖物理层的信号传输能力 ------没有物理层传递电信号,帧就无法在设备之间传输;同时,数据链路层为网络层提供"相邻设备可达"的服务,网络层的数据包必须通过数据链路层的帧封装,才能传递到物理层。

面经

  • MAC地址的作用?
    • 标识相邻设备,实现帧的准确转发
  • 数据链路层的封装单位是什么?
  • PPP协议和以太网协议的区别?
    • PPP用于点对点,无MAC;以太网用于局域网,依赖MAC地址

网络层(Network Layer)------ 跨网络通信的"导航系统"

核心 :解决"跨网络通信"(比如本地局域网访问互联网、不同机房服务器通信),核心是"路由选择"和"IP地址寻址"。

核心作用:将传输层的段(Segment)封装成「数据包(Packet)」,添加源IP地址和目标IP地址,通过路由器选择最优路由,将数据包从源网络传递到目标网络(跨网络转发)。

核心协议:

  • IP协议(Internet Protocol):定义了IP地址的格式 (IPv4、IPv6),负责数据包的寻址和转发,是跨网络通信的基础。后端开发中,服务器之间的通信(比如微服务调用、数据库连接),本质都是IP协议在支撑。

  • ICMP协议(Internet控制消息协议):依赖IP协议,用于传递网络故障信息(比如ping命令,就是通过ICMP协议发送请求,判断目标设备是否可达)。

  • ARP协议(地址解析协议):将IP地址转换成MAC地址------网络层知道目标IP,但数据链路层需要MAC地址才能传输帧,ARP协议就是"IP转MAC"的桥梁。面试高频:ARP的作用?(答:IP地址与MAC地址的映射,解决相邻设备寻址问题)。

  • 路由协议(RIP、OSPF):路由器之间用于交换路由信息的协议,帮助路由器选择最优转发路径

协议关联:

  • IP协议与ARP协议:IP负责跨网络寻址,ARP负责将IP转换成MAC,让数据包能在相邻设备之间传输(数据链路层需要MAC),两者协同完成跨网络+相邻设备的通信。

  • IP协议与ICMP协议:ICMP是IP的"辅助协议",IP协议只负责转发数据包,不负责检测故障;ICMP协议通过发送控制消息,反馈数据包传输中的问题(比如目标不可达、超时)。

  • 网络层与数据链路层:网络层依赖数据链路层------数据包必须封装成帧,通过数据链路层传输到相邻设备;数据链路层为网络层提供"链路服务",确保数据包能在相邻设备之间传递。

面经

  • IP地址的作用?
    • 跨网络标识设备,实现数据包的路由转发
  • ARP和ICMP的区别?
    • ARP是IP转MAC,ICMP是传递网络故障信息
  • 网络层的封装单位是什么?
    • 数据包
  • ping的原理是什么?
    • 基于ICMP协议,发送回声请求包,接收回声应答包

传输层(Transport Layer)------ 端到端通信的"可靠保障"

核心:负责"端到端"(比如本地应用和远程服务器应用)的通信,确保数据传输的可靠/高效,是应用层和网络层之间的桥梁。

核心作用:接收应用层的数据,封装成段(Segment) ,添加端口号(标识应用程序),通过协议确保数据的可靠传输(或高效传输),同时将接收端的段还原成数据,传递给应用层。

核心协议:

  • TCP协议(传输控制协议):面向连接、可靠传输、面向字节流。核心特点:三次握手建立连接、四次挥手断开连接、重传机制、流量控制、拥塞控制。

  • UDP协议(用户数据报协议):无连接、不可靠传输、面向数据报。核心特点:速度快、开销小,不保证数据有序和不丢失。适用场景:视频直播、语音通话、DNS查询(后端开发中,日志收集、实时推送也常用UDP)。

  • SCTP协议:面向连接、可靠传输,支持多路径传输,常用于电信领域。

协议关联:

  • TCP与UDP的区别:

    • 连接性(TCP连接、UDP无连接)
    • 可靠性(TCP可靠、UDP不可靠)
    • 开销(TCP大、UDP小)、
    • 适用场景(TCP用于文件传输、接口调用;UDP用于实时通信)
    • 使用场景(微服务调用用TCP,日志推送用UDP)。
  • TCP/UDP与IP协议的关系:

    • TCP/UDP依赖IP协议------传输层的段,必须封装成网络层的数据包,通过IP协议进行跨网络转发;
    • IP协议只负责数据包的转发,不负责端到端的可靠传输,可靠传输由TCP协议实现。
  • 传输层与应用层:

    • 应用层的协议(比如HTTP),必须依赖传输层的TCP/UDP协议------HTTP请求会封装成TCP段,通过TCP协议传输到目标服务器;
    • 应用层的每个应用,都对应一个端口号(比如HTTP用80端口,HTTPS用443端口),传输层通过端口号,将数据准确传递到对应应用。

面经

  • TCP三次握手的过程?
    • 客户端发SYN→服务端回SYN+ACK→客户端回ACK
  • TCP如何保证可靠传输?
    • 重传机制、流量控制、拥塞控制、序号和确认号
  • UDP的适用场景?
    • 实时性要求高、允许少量丢失的场景,比如直播、DNS
  • 端口号的作用?
    • 标识应用程序,实现端到端的应用通信

会话层(Session Layer)------ 通信会话的"管理者"

核心作用:建立、管理、终止应用程序之间的"会话连接",确保通信的连续性和同步性(比如断点续传,就是会话层的作用)。

核心协议:

  • RPC协议(远程过程调用协议):虽然RPC常和应用层关联,但本质是会话层协议,负责建立客户端和服务器之间的会话,实现远程调用(比如Java的RMI、Dubbo,都是基于RPC协议)。

  • NetBIOS协议:用于局域网内的会话管理,标识设备和应用

协议关联:

  • 会话层依赖传输层 ------会话的建立、维持,必须基于TCP/UDP协议的端到端连接
  • 会话层为表示层提供"会话服务",确保表示层的数据能在稳定的会话中传输。

面经

  • RPC协议的作用?
    • 建立远程会话,实现应用程序之间的远程调用
  • 会话层的核心功能?
    • 会话的建立、管理、终止

表示层(Presentation Layer)------ 数据的"翻译官"

核心作用:负责数据的格式转换、加密解密、压缩解压缩,让发送端和接收端的应用程序能"看懂"对方发送的数据(比如发送端的JSON格式,经过表示层转换,接收端才能解析)。

核心协议/标准:

  • ASCII、UTF-8、GBK:字符编码转换协议,确保不同设备的字符能正常显示。

  • SSL/TLS协议:加密解密协议,用于数据传输的加密(比如HTTPS,就是HTTP+SSL/TLS,SSL/TLS本质是表示层协议,负责数据加密,再通过TCP协议传输)。

  • JPEG、PNG:图片压缩协议,属于表示层,负责数据压缩,减少传输体积。

协议关联:

  • 表示层依赖会话层------加密/转换后的数据,需要通过会话层的会话连接传输;
  • 表示层为应用层提供"数据格式服务",应用层的原始数据,经过表示层的处理,才能传递给传输层。

面经:

  • SSL/TLS协议的作用?
    • 数据加密解密,保证数据传输的安全性,比如HTTPS的加密
  • 表示层的核心功能?
    • 数据格式转换、加密解密、压缩解压缩

应用层(Application Layer)------ 后端开发的"直接接触层"

核心:直接面向应用程序,所有后端开发中用到的网络应用协议,都在这一层。

核心作用:为应用程序提供具体的网络服务,接收用户的请求(比如浏览器请求、接口调用),将请求数据传递给下一层,同时接收下一层传递的数据,反馈给应用程序。

核心协议:

  • HTTP/HTTPS协议:HTTP是超文本传输协议(无加密),HTTPS是HTTP+SSL/TLS(加密),用于网页访问、接口调用(比如微服务接口、前后端交互)。

  • DNS协议:域名解析协议,将域名(比如www.baidu.com)转换成IP地址,依赖UDP协议(高效)

  • FTP协议:文件传输协议,用于服务器之间的文件传输,依赖TCP协议(可靠),部署文件、备份数据常用。

  • SMTP/POP3/IMAP协议:邮件相关协议,SMTP用于发送邮件,POP3/IMAP用于接收邮件,后端开发中,发送验证码邮件、通知邮件,会用到SMTP协议。

  • Telnet/SSH协议:远程登录协议,用于远程操作服务器,Telnet无加密(不安全),SSH有加密(常用),远程连接服务器必用SSH。

协议关联:

  • HTTP与TCP的关系:

    • HTTP是应用层协议,必须依赖TCP协议------HTTP请求会封装成TCP段,通过TCP三次握手建立连接,传输数据,四次挥手断开连接;
    • TCP协议为HTTP提供可靠传输保障,确保HTTP请求和响应不丢失、不无序。
  • HTTPS的分层关联:

    • HTTPS = HTTP(应用层) + SSL/TLS(表示层) + TCP(传输层)+ IP(网络层),层层依赖,最终实现安全的HTTP通信。
  • DNS与UDP的关系:

    • DNS查询用UDP协议,因为DNS查询数据量小,需要高效传输,UDP的无连接、低开销刚好适合;如果DNS查询数据量大,会切换到TCP协议。

面经:

  • HTTPS的加密过程?
    • 通过SSL/TLS协议,实现客户端和服务器的身份认证、数据加密
  • DNS的解析过程?
    • 客户端→本地DNS→根DNS→顶级DNS→目标DNS,最终获取IP地址

OSI与TCP/IP模型的对应关系

  • OSI应用层 + 表示层 + 会话层 → TCP/IP应用层

  • OSI传输层 → TCP/IP传输层

  • OSI网络层 → TCP/IP网络层(网际层)

  • OSI数据链路层 + 物理层 → TCP/IP网络接口层(链路层)

补充:TCP/IP是实际应用中的模型(比如我们的互联网,就是基于TCP/IP),OSI是理论模型;

相关推荐
marsh02062 小时前
14 openclaw模板引擎使用:高效渲染动态内容
java·前端·spring·ai·编程·技术
是梦终空1162 小时前
汽车电子中的Service31应用与协议详解
网络·汽车
qq_358589612 小时前
sylar 配置系统
java·c++·算法
佩奇大王2 小时前
P103 日期问题
java·开发语言·算法
颜酱2 小时前
吃透回溯算法:从框架到实战
javascript·后端·算法
czxyvX2 小时前
010-NAT-代理服务-内网穿透
网络
逸Y 仙X2 小时前
文章八:ElasticSearch特殊数据字段类型解读
java·大数据·linux·运维·elasticsearch·搜索引擎
青木川崎2 小时前
设计模式之面试题
java·开发语言·设计模式
空空潍2 小时前
Java核心基础语法:从原理到实战,夯实Java开发基石
java·开发语言