OSI 与 TCP/IP 分层模型

网络协议繁杂,如果不分层将无从设计与排障。OSI 七层模型与 TCP/IP 四层模型是理解网络的"两把尺子":前者是理论参考模型,后者是互联网真正使用的协议栈。面试高频题是"分层的意义、每层职责、数据在各层叫什么名字"。

为什么要分层

把庞大的网络问题按功能拆成若干层,每层只解决一类问题:

  • 每层职责单一,可独立实现与演进;
  • 层间通过标准接口通信,替换某一层实现不影响其他层(如换网卡不影响上层应用);
  • 排障时可逐层定位,缩小问题范围。

OSI 七层模型

OSI 七层与 TCP/IP 四层 国际标准化组织(ISO)提出的参考模型,自下而上为:物理层、数据链路层、网络层、传输层、会话层、表示层、应用层。

层次核心职责代表协议/设备
应用层面向用户的网络服务HTTP、FTP、SMTP、DNS
表示层数据格式转换与加密JPEG、加密编码
会话层建立与管理会话会话同步
传输层端到端可靠传输TCP、UDP
网络层寻址与路由选择IP、路由器
数据链路层相邻节点间成帧传输以太网、交换机
物理层比特流的物理传输网线、集线器

OSI 是"理想蓝图",实际并未完全落地,主要价值在理论教学与对照。

TCP/IP 四层模型

TCP/IP 是互联网实际使用的协议栈,自上而下为:应用层、传输层、网络层、网络接口层。它与 OSI 的对应关系如下:

OSI 七层                     TCP/IP 四层
应用层 ┐
表示层 ├─> 应用层             应用层(HTTP/DNS…)
会话层 ┘
传输层                        传输层(TCP/UDP)
网络层                        网络层(IP)
数据链路层 ┐
物理层   ┘─> 网络接口层        网络接口层(以太网)

可见 OSI 的会话层、表示层功能被并入应用层;而传输层独立成层,是 TCP/IP 把"进程到进程的通信"从网络层中抽离出来的关键设计。

数据在各层的名字

同一份用户数据,经过每一层会加上该层的头,称呼也随之变化,这是面试必考点:

所在层数据单元名称
应用层报文(数据,message/data)
传输层TCP 段 segment / UDP 数据报 datagram
网络层分组/数据报 packet
链路层帧 frame

封装与解封装

发送端自顶向下逐层加头(封装),接收端自底向上逐层去头(解封装),如同套信封:

发送过程:
  应用数据
  → [TCP头 | 应用数据]        加传输层头
  → [IP头 | TCP头 | 应用数据]  加网络层头
  → [帧头 | IP头 | … | 帧尾]   链路层成帧后发到线缆

接收过程: 逐层剥头,最终把应用数据交给上层进程

各模型怎么选

  • 背 OSI:回答"为什么分层"与理论题时引用。
  • 用 TCP/IP:分析真实报文、抓包、协议栈工作时以它为准。
  • 面试表述:讲清两者对应关系,强调 TCP/IP 更贴近现实即可。

小结:OSI 七层用于理论学习,TCP/IP 四层才是现实标准。记牢每层职责、数据单元名称与"加头/剥头"的封装流程,网络知识就有了清晰骨架。

笔记加载中…