网络模型

返回 计算机网络

网络模型用分层思想把复杂的网络通信拆解为独立的职责层,每层只与相邻层交互,降低耦合、便于实现和替换。


OSI 七层模型

OSI(Open Systems Interconnection)是 ISO 制定的参考模型,理论完整但实际使用较少,主要用于学习和排障时的概念定位。

层级名称PDU主要协议 / 设备核心职责
7应用层数据(Data)HTTP、HTTPS、DNS、FTP、SMTP、SSH为应用程序提供网络服务接口
6表示层数据(Data)TLS/SSL、JPEG、ASCII、UTF-8数据格式转换、加解密、压缩
5会话层数据(Data)NetBIOS、RPC、PPTP建立、维护、同步会话(对话控制)
4传输层报文段(Segment)/ 数据报(Datagram)TCP、UDP端到端可靠传输,端口寻址,流量/拥塞控制
3网络层数据包(Packet)IP、ICMP、OSPF、BGP、路由器逻辑寻址(IP),路由选择,跨网段转发
2数据链路层帧(Frame)Ethernet、802.11、MAC、交换机相邻节点间帧传输,MAC 寻址,差错检测(FCS)
1物理层比特(Bit)网线、光纤、Hub、网卡比特流的物理传输,信号编码与调制

PDU(Protocol Data Unit):各层数据的称呼。数据向下封装时名称随之改变。


TCP/IP 四层模型

实际互联网使用的模型,是 OSI 的工程化简化版,由 ARPANET 演化而来:

层级名称对应 OSI 层主要协议
4应用层5 + 6 + 7HTTP/HTTPS、DNS、SMTP、FTP、SSH、WebSocket
3传输层4TCP、UDP、QUIC
2网络层(网际层)3IPv4、IPv6、ICMP、ARP
1网络接口层1 + 2Ethernet、Wi-Fi(802.11)、PPP

OSI vs TCP/IP

维度OSITCP/IP
层数7 层4 层
定位理论参考模型实际实现标准
表示/会话层独立分层合并进应用层
先有协议还是模型先有模型再设计协议先有协议(TCP/IP)再归纳模型
实际使用排障概念框架互联网实际运行

数据封装与解封装

数据从发送方应用层向下逐层封装头部(和尾部),经网络传输,接收方从底层向上逐层剥除,最终交给应用:

发送方(浏览器发 HTTP 请求):

  应用层      [HTTP Header | HTTP Body]
               ↓ 加 TCP 头
  传输层      [TCP Header | HTTP Header | HTTP Body]           ← Segment
               ↓ 加 IP 头
  网络层      [IP Header | TCP Header | HTTP Header | Body]    ← Packet
               ↓ 加以太网帧头+尾
  数据链路层  [ETH Header | IP Header | TCP | HTTP | Body | FCS] ← Frame
               ↓ 转换为电/光信号
  物理层      0101011001...                                    ← Bits

接收方(服务器)逆序剥除各层头部,直到应用层得到 HTTP 数据

帧格式(以太网 Ethernet II)

 7B          1B    6B      6B     2B         46~1500B      4B
┌─────────┬──────┬───────┬───────┬──────────┬──────────┬─────┐
│Preamble │ SFD  │目标MAC│源 MAC │EtherType │  Payload │ FCS │
└─────────┴──────┴───────┴───────┴──────────┴──────────┴─────┘
  前导码    帧起始                  0x0800=IP            帧校验序列
                                   0x0806=ARP
                                   0x86DD=IPv6

IP 数据包格式(IPv4 头部,20字节固定+可选)

 4bit   4bit    8bit       16bit
┌──────┬──────┬──────────┬───────────────────────┐
│版本  │首部长│服务类型DS│        总长度           │
├──────┴──────┴──────────┼───────────┬───────────┤
│         标识            │  标志     │ 片偏移    │
├─────────────────────────┼───────────┼───────────┤
│   TTL(生存时间)        │  协议     │ 首部校验和 │
├─────────────────────────┴───────────┴───────────┤
│                  源 IP 地址                       │
├──────────────────────────────────────────────────┤
│                  目标 IP 地址                     │
└──────────────────────────────────────────────────┘

TTL(Time To Live):每经过一台路由器减 1,归零则丢弃并回 ICMP 超时,防止包在网络中无限循环。traceroute 正是利用 TTL 逐跳递增来探测路径。


各层关键设备

设备工作层寻址依据说明
Hub(集线器)L1 物理层广播所有端口,已淘汰
交换机(Switch)L2 数据链路层MAC 地址精准转发帧,支持 VLAN
三层交换机L2+L3MAC + IP硬件加速的路由器+交换机
Router(路由器)L3 网络层IP 地址跨网段转发,连接不同网络
防火墙L3~L7IP/端口/内容包过滤、状态跟踪、应用检测
负载均衡器L4 或 L7IP+端口 / HTTP分发流量到后端集群
WAFL7 应用层HTTP 内容过滤恶意 Web 请求
代理(Proxy)L7HTTP/HTTPS正向/反向代理,缓存加速

端口号(传输层)

端口号(0~65535)是传输层用来区分同一主机上不同应用进程的标识:

范围类型说明
0~1023熟知端口由 IANA 分配给标准服务
1024~49151注册端口常用应用程序
49152~65535动态/私有端口客户端临时使用
端口协议应用
20/21TCPFTP(数据/控制)
22TCPSSH
25TCPSMTP
53UDP/TCPDNS
80TCPHTTP
443TCPHTTPS
3306TCPMySQL
5432TCPPostgreSQL
6379TCPRedis
27017TCPMongoDB

一次 HTTP 请求的完整层次旅程

以浏览器访问 https://example.com/api 为例:

浏览器
  [应用层]  构造 HTTP GET 请求报文
  [传输层]  加 TCP 头(源端口:随机, 目标端口:443)
  [网络层]  加 IP 头(源IP:本机, 目标IP:DNS解析结果)
  [链路层]  加以太网帧(源MAC:本机网卡, 目标MAC:网关MAC)
  [物理层]  转为电信号发往网线
       ↓
默认网关(路由器)
  [链路层]  收帧,剥以太网头
  [网络层]  查路由表,决定下一跳
  [链路层]  重新封装以太网帧(目标MAC换为下一跳路由器MAC)
  [物理层]  转发
       ↓
…经过若干路由器…
       ↓
服务器
  [物理层]  收到比特流
  [链路层]  还原帧,校验 FCS
  [网络层]  还原 IP 包,检查目标 IP 是否本机
  [传输层]  还原 TCP 段,交给监听 443 端口的进程
  [应用层]  TLS 解密 → Nginx / Spring Boot 处理 HTTP 请求

网络分层的意义

替换自由:Wi-Fi 换成有线,应用层无需感知
独立演进:HTTP/2 升级不影响 TCP 层
故障隔离:ping 通但网页打不开 → L3 正常,L7 故障
标准互操作:不同厂商设备只要遵循同层协议即可互通

相关

  • TCP — 可靠传输、三次握手
  • UDP — 无连接、QUIC
  • IP与路由 — 网络层,IP 地址与路由选择
  • 交换机 — 数据链路层核心设备,MAC 转发与 VLAN
  • 网络适配器 — 数据链路层与物理层硬件
  • 光纤 — 物理层传输介质,骨干网与家庭宽带基础
  • WLAN — 物理层与数据链路层无线接入
  • HTTP — 应用层最常用协议
  • HTTPS — 应用层 HTTP 的安全访问方式
  • TLS — 表示层/会话层安全协议
  • 通信协议 — 各层协议总览