跳到主要内容

网络模型

问题

OSI 七层模型和 TCP/IP 四层模型是什么?各层有哪些常见协议?

答案

网络模型是对网络通信过程的抽象分层,帮助理解和设计网络协议。

模型对比


OSI 七层模型

层次名称功能协议/设备
7应用层为应用提供网络服务HTTP、HTTPS、DNS、FTP、SMTP
6表示层数据格式转换、加密SSL/TLS、JPEG、ASCII
5会话层建立、管理会话NetBIOS、RPC
4传输层端到端传输TCP、UDP
3网络层路由和寻址IP、ICMP、路由器
2数据链路层帧传输、差错检测Ethernet、MAC、交换机
1物理层比特流传输网线、光纤、集线器

数据封装过程


TCP/IP 四层模型

实际应用中更常用 TCP/IP 模型。

层次名称OSI 对应协议
4应用层5-7 层HTTP、DNS、FTP、SSH
3传输层4 层TCP、UDP
2网络层3 层IP、ICMP、ARP
1网络接口层1-2 层Ethernet、Wi-Fi

各层详解

应用层

// 常见应用层协议
const applicationProtocols = {
// Web
HTTP: { port: 80, description: '超文本传输协议' },
HTTPS: { port: 443, description: '安全 HTTP' },

// 域名
DNS: { port: 53, description: '域名解析' },

// 邮件
SMTP: { port: 25, description: '发送邮件' },
POP3: { port: 110, description: '接收邮件' },
IMAP: { port: 143, description: '接收邮件' },

// 文件传输
FTP: { port: 21, description: '文件传输' },
SFTP: { port: 22, description: '安全文件传输' },

// 远程
SSH: { port: 22, description: '安全远程登录' },
Telnet: { port: 23, description: '远程登录' },

// 实时通信
WebSocket: { port: 80/443, description: '全双工通信' }
};

传输层

// TCP vs UDP
const transportProtocols = {
TCP: {
connection: '面向连接',
reliability: '可靠',
order: '有序',
use: 'HTTP、FTP、SMTP'
},
UDP: {
connection: '无连接',
reliability: '不可靠',
order: '无序',
use: 'DNS、视频流、游戏'
}
};

网络层

// IP 协议
interface IPPacket {
version: 4 | 6; // IPv4 或 IPv6
sourceIP: string; // 源 IP
destinationIP: string; // 目标 IP
ttl: number; // 生存时间
protocol: number; // 上层协议(6=TCP, 17=UDP)
payload: Buffer; // 数据
}

// ICMP 协议(网络诊断)
// ping 命令使用 ICMP Echo Request/Reply

数据链路层

// 以太网帧
interface EthernetFrame {
destinationMAC: string; // 目标 MAC 地址
sourceMAC: string; // 源 MAC 地址
type: number; // 上层协议类型
payload: Buffer; // 数据
fcs: number; // 帧校验序列
}

// MAC 地址
// 48 位,如 00:1A:2B:3C:4D:5E
// 前 24 位是厂商代码(OUI)
// 后 24 位是设备标识

网络设备与层次

设备工作层次功能
集线器物理层信号放大,广播
交换机数据链路层MAC 地址转发
路由器网络层IP 路由
负载均衡传输层/应用层流量分发
防火墙多层安全过滤

前端相关协议栈

// 前端开发者需要了解的协议

// 应用层
interface FrontendProtocols {
HTTP: 'GET/POST/PUT/DELETE 请求';
HTTPS: 'HTTP + TLS 加密';
WebSocket: '全双工通信';
DNS: '域名解析';
HTTP2: '多路复用、头部压缩';
HTTP3: 'QUIC + UDP';
}

// 这些协议直接影响:
// - 接口设计
// - 性能优化
// - 安全实践

数据包分析

使用 Wireshark

// 抓包分析 HTTP 请求

// 以太网帧
Ethernet II, Src: aa:bb:cc:dd:ee:ff, Dst: 11:22:33:44:55:66

// IP 包
Internet Protocol Version 4, Src: 192.168.1.100, Dst: 93.184.216.34

// TCP 段
Transmission Control Protocol, Src Port: 54321, Dst Port: 80

// HTTP 请求
GET /index.html HTTP/1.1
Host: example.com

使用浏览器 DevTools

// Network 面板可以看到:
// - 请求/响应头
// - 时间线(DNS、TCP、TLS、请求、响应)
// - 协议版本(h2, h3)
// - 状态码

常见面试问题

Q1: OSI 七层模型各层的作用?

答案

作用记忆方法
应用层应用程序接口用户直接接触
表示层数据格式转换翻译
会话层会话管理主持人
传输层端到端传输快递员
网络层路由寻址导航
数据链路层帧传输道路
物理层比特传输车辆

Q2: TCP/IP 模型与 OSI 模型的区别?

答案

区别OSITCP/IP
层数7 层4 层
来源理论模型实践模型
应用教学为主实际使用
设计先有模型先有协议

Q3: 各层使用什么地址?

答案

地址类型示例
应用层URL/域名www.example.com
传输层端口号80、443
网络层IP 地址192.168.1.1
数据链路层MAC 地址00:1A:2B:3C:4D:5E

Q4: 数据包从发送到接收经历了什么?

答案

发送方(封装)

  1. 应用层:生成数据
  2. 传输层:添加端口号(TCP/UDP 头)
  3. 网络层:添加 IP 地址(IP 头)
  4. 数据链路层:添加 MAC 地址(以太网头)
  5. 物理层:转换为比特流

接收方(解封装)

  1. 物理层:接收比特流
  2. 数据链路层:去除以太网头,验证 MAC
  3. 网络层:去除 IP 头,验证 IP
  4. 传输层:去除 TCP/UDP 头
  5. 应用层:处理数据

Q5: 前端开发需要了解哪些网络知识?

答案

层级知识点应用场景
应用层HTTP/HTTPS、WebSocketAPI 设计、实时通信
应用层HTTP/2、HTTP/3性能优化
应用层DNS预解析、CDN
传输层TCP 三次握手理解连接建立
安全TLS、证书HTTPS 配置

相关链接