计算机网络分层模型通俗指南 (OSI vs TCP/IP)

计算机网络分层模型通俗指南 (OSI vs TCP/IP)

如果说前面的 HTTPS 是"押运公司"的内部操作手册,那么计算机网络分层模型就是整个全球物流系统的运作标准。

为了让全世界不同厂商生产的计算机能顺畅交流,ISO(国际标准化组织)制定了 OSI 七层模型。通过将复杂的网络通信过程拆解成一层层的工序,就像把"寄快递"这件事拆解成打包、贴单、运输、路况等不同环节。

本文将通过 "CEO 寄礼物" 的类比,为你拆解这七层协议,以及现实中更常用的 TCP/IP 四层模型


一、 OSI 七层模型:CEO 寄礼物的全过程

假设 A 公司的 CEO (张三) 要送一份机密礼物给 B 公司的 CEO (李四)。这个过程需要经过公司内部的一层层处理。

1. 应用层 (Application Layer) - 第7层

  • 场景:CEO 张三说:"我要送这瓶'82年的拉菲'给李四。"
  • 作用为应用软件提供服务。直接和用户打交道,决定了你要传什么(是网页 HTTP,还是文件 FTP,还是邮件 SMTP)。
  • 常见协议:HTTP, FTP, SMTO, DNS。

2. 表示层 (Presentation Layer) - 第6层

  • 场景 :秘书小王接过酒,心想:"这酒不能直接寄,得包装一下。" 于是他把酒用精美的礼盒包好(格式化 ),并为了安全在外面贴了封条(加密 ),如果礼物太大还得压缩一下(压缩)。
  • 作用数据格式转换、加密、压缩。确保对方能看懂,且数据安全、体积小。
  • 关键词:编码, SSL/TLS (部分功能), JPEG/MPEG。

3. 会话层 (Session Layer) - 第5层

  • 场景:行政主管老赵打电话给 B 公司:"喂,我们这边有东西要发过去,你们准备好接收了吗?别到时候没人签收。"
  • 作用建立、管理和维护会话。控制两个应用程序之间的对话连接。
  • 关键词:RPC, Session 管理。
  • > 注:在实际开发中,第5、6、7层经常在代码里合在一起处理。

4. 传输层 (Transport Layer) - 第4层

  • 场景 :物流经理大刘接过包裹。
    • 他决定用"顺丰特快"(TCP):必须保证送到,如果丢了得重发,还要按顺序送(可靠传输)。
    • 或者决定用"普通平邮"(UDP):只管发出去,丢了不管,快就行(不可靠传输)。
    • 他还在单子上写了"请交给财务部前台"(端口号),区分收件人具体是哪个部门。
  • 作用端到端的传输控制。关注的是数据怎么传(可靠还是快速)以及传给谁(端口)。
  • 协议:TCP, UDP。

5. 网络层 (Network Layer) - 第3层

  • 场景 :快递分拣中心。工作人员给包裹贴上具体的地址单:"北京市朝阳区xx路xx号"(IP 地址 )。并且规划路线:"虽然要去北京,但先发到天津中转站比较快"(路由选择)。
  • 作用寻址和路由。决定数据包在网络中怎么走,从哪条路走。
  • 协议:IP, ICMP (Ping), ARP (部分)。
  • 场景 :长途货车司机。司机不管包裹里是什么,也不管最终去哪,他只负责:"我现在要把车从'上海'开到'南京'的中转站"。他关注的是两个相邻节点之间的传输,依靠车牌号(MAC 地址)识别车辆。
  • 作用相邻节点间的可靠传输。物理寻址(MAC)和错误检测。
  • 协议:Ethernet (以太网), Wi-Fi (802.11)。

7. 物理层 (Physical Layer) - 第1层

  • 场景:公路、光缆。这是最底层的物理设施,是柏油马路还是泥土路?是用光传信号还是用电传信号?
  • 作用传输比特流 (0和1)。定义电压、接口形状、线缆标准。
  • 关键词:双绞线, 光纤, 4G/5G电波。

二、 现实与理想:TCP/IP 四层模型

OSI 七层模型是教科书里的"理想模型",但在实际工业界(互联网),大家觉得分得太细太麻烦了。

于是,TCP/IP 模型(或称 DoD 模型)成为了实际的标准。它把 OSI 进行了简化和合并:

OSI 七层模型 TCP/IP 四层模型 对应关系说明 现实类比
应用层 (7) 应用层 (Application) 包含了 OSI 的应用层、表示层、会话层 CEO + 秘书 + 行政 (不用分那么细,反正都是公司内部要把货准备好)
表示层 (6) ^ ^ ^
会话层 (5) ^ ^ ^
传输层 (4) 传输层 (Transport) 对应 OSI 传输层 物流经理 (负责选顺丰还是平邮,负责分发到具体部门/端口)
网络层 (3) 网际层/网络层 (Internet) 对应 OSI 网络层 分拣中心 (负责贴地址 IP,负责规划路线)
数据链路层 (2) 网络接口层 (Network Access) 包含了 OSI 的数据链路层、物理层 司机 + 道路 (反正就是要把货运到下一站,底层硬件合在一起算)
物理层 (1) ^ ^ ^

为什么 TCP/IP 赢了?

因为在实际写代码(Socket 编程)时,程序员通常只关心:

  1. 应用层:我要发什么数据?(HTTP报文)
  2. 传输层:我要怎么发?(TCP还是UDP)
  3. 网络层:发给哪个 IP?

至于下面的硬件细节(网卡、光缆),操作系统和硬件厂商已经帮我们搞定了。


总结

  • OSI 7层:学术界的严谨标准,适合学习原理,分工极细。
  • TCP/IP 4层:工业界的实战标准,简单高效,是我们日常开发真正用到的模型。

理解这个模型,你就知道当网络不通时该怎么排查:

  • 先看网线灯亮不亮(物理层/网络接口层)?
  • 再看 Ping 不 Ping 得通 IP(网络层)?
  • 再看端口通不通(传输层)?
  • 最后看 HTTP 报文对不对(应用层)?
相关推荐
小李独爱秋2 小时前
计算机网络经典问题透视:怎样才能在自己的计算机中看见周围无线局域网的SSID?
服务器·计算机网络·信息与通信·无线网络·ssid
迎仔2 小时前
HTTPS 原理与配置参数通俗指南
redis·网络协议·https
欧洵.3 小时前
HTTP协议详解Fiddler的安装与使用
网络·网络协议·http
runner365.git3 小时前
语言接入大模型,websocket还是webrtc?
websocket·网络协议·webrtc
煤炭里de黑猫3 小时前
# TCP/IP 协议栈深度解析:从体系架构到现代应用优化
网络协议·tcp/ip·架构
头发还没掉光光3 小时前
解决TCP粘包问题,使用C++实现TCP通信的自定义协议设计
linux·网络·c++·网络协议·tcp/ip
青火coding3 小时前
ai时代下的RPC传输——StreamObserver
qt·网络协议·microsoft·rpc
枫叶丹43 小时前
【Qt开发】Qt系统(九)-> Qt TCP Socket
c语言·开发语言·网络·c++·qt·tcp/ip
Tandy12356_13 小时前
手写TCP/IP协议栈——HTTP协议实现(完结篇)
c语言·网络·网络协议·tcp/ip·计算机网络·http