计算机网络模型指的是用分层结构来描述网络通信过程的抽象模型,主要有两个重要模型。
| 模型名称 | 层数 | 说明 |
|---|---|---|
| OSI 七层模型 | 7 层 | 理论模型,由 ISO 提出 |
| TCP/IP 五层模型 | 5 层 | 实际工程中广泛使用,简化版 |
OSI七层模型(理论为主)
从上到下:
7. 应用层(Application)
- 用户应用程序的接口(HTTP、FTP、SMTP、DNS)
- 表示层(Presentation)
- 数据格式转换(加密、解码、压缩)
- 会话层(Session)
- 建立、管理和终止会话(如登录系统保持连接)
- 传输层(Transport)
- 端到端通信(TCP、UDP)
- 网络层(Network)
- IP地址与路由(IP、ICMP)
- 数据链路层(Data Link)
- MAC地址、帧结构(以太网、ARP)
- 物理层(Physical)
- 电信号或光信号传输(二进制)
TCP/IP五层模型(实际用得最多)
TCP/IP模型是对OSI模型的简化、删去了表示层和会话层,更符合实际应用
| 层级 | 功能 | 典型协议 |
|---|---|---|
| 应用层 | 提供网络服务(HTTP、FTP、DNS) | HTTP、DNS、SMTP |
| 传输层 | 提供主机之间的数据传输 | TCP、UDP |
| 网络层 | IP寻址和路由转发 | IP、ICMP、ARP |
| 数据链路层 | 负责帧的传输和差错检测 | 以太网、PPP |
| 物理层 | 传输比特流 | 网线、Wi-Fi、光纤 |
安全层(Security Layer)
安全层通常是指在网络通信协议中,为了保证数据传输的保密性、完整性和身份验证,引入的加密和认证机制所在的一层。这个概念虽然不是TCP/IP原始分层中的一层,但在现代网络中非常重要,通常位于应用层和传输层之间
安全层的主要功能
| 功能 | 说明 |
|---|---|
| 加密(Encryption) | 防止中间人窃听数据内容(保密性) |
| 完整性校验(Integrity Check) | 确保数据未被篡改 |
| 身份认证(Authentication) | 验证对方身份是可信的 |
| 防止重放攻击 | 确保数据不是旧的或伪造的请求 |
典型协议:TLS(Transport Layer Security)
什么是TLS
- 是应用层和传输层之间的一种协议(介于HTTP与TCP之间)
- HTTPS就是HTTP + TLS
TLS的核心机制:
握手阶段(TLS Handshake)
- 协商加密算法
- 交换证书
- 生成共享密钥(对称加密)
数据传输阶段
- 使用协商的密钥对数据进行加密和验证
示例:访问https://example.com 时
1.输入URL,浏览器准备发起HTTP请求
2.浏览器先建立TLS连接(握手,验证证书)
3.TLS握手成功 → 建立安全的加密通道
4.然后HTTP请求数据在TLS内部被加密
5.加密后的数据通过TCP/IP发送到服务器
6.服务器解密后,再处理HTTP请求
游戏开发中每层的作用
| 层级 | 应用场景 |
|---|---|
| 应用层 | HTTP 请求、WebSocket 聊天、在线商城接口 |
| 传输层 | TCP(稳定同步)、UDP(实时对战) |
| 网络层 | IP 定位客户端 / 服务端 |
| 链路层 | WiFi / 网卡通信 |
| 物理层 | 实体网络传输,比特级无感知 |
HTTP请求的穿越过程
一、HTTP请求穿过的每一层(以OSI模型为例)
应用层(HTTP)
表示层(加密、编码)
会话层(会话控制)
传输层(TCP)
网络层(IP)
数据链路层(以太网)
物理层(电信号)
二、HTTP请求流程详解
以你从浏览器访问一个网页为例
应用层(HTTP)
- 浏览器构造HTTP请求,例如
GET/index.html HTTP/1.1 - 添加头部字段(如Host、User-Agent等)
- 请求交给下一层处理
传输层(TCP)
- 浏览器通过Socket调用操作系统建立TCP连接(三次握手)
- 把HTTP请求封装在TCP段中
- TCP负责确保数据可靠传输(重传、确认等)
网络层(IP)
- TCP段封装在IP包中
- 添加源IP、目标IP(从DNS解析得知目标地址)
- 网络层负责选择合适的路由路径把包送往目标机器
数据链路层(以太网、Wi-Fi等)
- IP包封装在以太网帧中
- 添加源MAC、目标MAC(局域网中根据ARP解析)
- 负责物理网络上传输数据帧
物理层
- 数据帧转化为电信号(或无线电波)通过网线或无线网络发送出去
三、穿过网络设备的过程
请求在网络上传播,会经过多个中间设备
| 网络组件 | 所起作用 |
|---|---|
| 路由器 | 转发 IP 包,基于目标 IP 选择下一跳 |
| 网关 | 在不同网络协议间进行转换(如内网到公网) |
| 交换机 | 在局域网中基于 MAC 地址转发帧 |
| 防火墙 | 检查和过滤数据包 |
| 负载均衡 | 将请求分发到多台服务器 |
四、到达服务器后的过程
1.服务器网络层:接收IP包
2.服务器传输层:重组TCP段
3.服务器应用层:将重组好的HTTP请求交给Web Server(如Nginx、Apache)
4.Web应用处理:例如PHP、Node.js、ASP.NET解析请求,生成响应
5.HTTP响应沿原路径返回
五、图解
[浏览器]
↓
HTTP 请求(应用层)
↓
TCP 连接(三次握手)
↓
IP 包 -> MAC 帧 -> 信号
↓
[路由器/防火墙/...]
↓
[互联网]
↓
[服务器网络接口]
↓
Web 服务器处理请求
↓
响应生成 -> 反向传回
六、穿透特殊网络环境(如内网)
- NAT(地址转换):公网无法直接访问内网主机,需端口映射
- 反向代理:例如Nginx代理内网服务
- VPN/隧道/STUN/TURN:用于内网穿透
协议
协议(Protocol)是网络通信中一组约定和规则,比如:
- 数据如何封装
- 怎么传输
- 出错怎么处理
- 如何建立和关闭连接
协议在网络模型中的分布(以TCP/IP四层模型为例)和一些重要协议介绍
| TCP/IP 层 | 常见协议 | 作用 |
|---|---|---|
| 应用层 | HTTP, HTTPS, FTP, DNS, SMTP | 提供应用服务,如网页、邮件、域名 |
| 传输层 | TCP, UDP | 提供端到端的连接与数据传输 |
| 网络层 | IP, ICMP, ARP | 路由寻址,IP 包传输 |
| 链路层 | Ethernet, PPP, 802.11 | 在局域网中传输帧,物理地址识别 |
应用层协议
HTTP/HTTPS 超文本传输协议(Secure是加密版),用于Web交互
GET/index.html HTTP/1.1DNS 把域名解析成IP地址
FTP/SMTP/POP3等 文件传输、邮件收发等
传输层协议
TCP(传输控制协议) 面向连接,可靠传输 例如:三次握手、流量控制、重传机制
UDP(用户数据报协议) 无连接,不保证可靠性 例子:实时视频、游戏
网络层协议
IP(互联网协议) 提供主机到主机的寻址和转发
ICMP(Internet Control Message Protocol) 网络错误和状态报告(如ping指令)
ARP(地址解析协议) 将IP地址转换为MAC地址(局域网中)
数据链路层协议
Ethernet(以太网协议) 定义了帧结构和MAC地址通信
802.11(Wi-Fi) 无线通信协议,属于链路层
分层思想
为什么要分层?抽象&解耦
分层思想是计算机网络最核心的设计理念之一,它让复杂的网络通信系统变得结构清晰、易于维护和扩展。
什么是分层思想
分层思想是指:将复杂的系统划分为若干层级,每一层专注于一个独立功能,仅与上下相邻的层交互
将其类比成快递系统:
| 快递过程 | 类比网络 |
|---|---|
| 快递员只管送快递 | 每一层只管自己的任务 |
| 包裹分发、运输、接收分层处理 | 数据传输也分层处理 |
| 不关心包裹内容 | 底层不关心应用层的具体数据 |
为什么要分层
| 优点 | 解释 |
|---|---|
| 高内聚、低耦合 | 每一层职责单一,易于管理和测试 |
| 模块化 | 更容易替换或升级某一层 |
| 简化设计与实现 | 每一层只需要理解与相邻层的接口 |
| 跨平台兼容 | 协议标准化,不同厂商设备也能互通 |
数据传输中的分层协作(封装与解封装)
客户端发送数据时:
- 应用层:构造HTTP请求数据
- 传输层:加上TCP头
- 网络层:加上IP头
- 链路层:加上MAC头 → 发送帧
服务器接收数据时(反向):
- 链路层:检查MAC
- 网络层:检查IP
- 传输层:重组TCP流
- 应用层:读取HTTP请求并响应
这种过程叫做:
封装(Encapsulation):往下层传数据时加上控制信息
解封装(Decapsulation):往下层取出数据时剥离控制信息
分层 -> 将复杂系统拆成功能明确的模块
封装 -> 每层加自己的协议头
解封装 -> 每层拆掉协议头并处理
接口 -> 层与层之间通过接口通信,不越层
分层是为了解耦,解耦是为了更好地演化系统
传输介质
它是所有网络通信的“物理载体”
定义
传输介质是指:用于在网络设备之间传输比特(0和1)信号的物力材料或信道
- 它位于OSI模型的第1层:物理层
- 它负责将电信号、光信号、无线信号在两个设备之间传递
传输介质分类(根据物理形态)
1.有线介质
| 类型 | 说明 | 特点 |
|---|---|---|
| 双绞线(Twisted Pair) | 如网线(Cat5/6) | 便宜,布线方便,常用于局域网 |
| 同轴电缆(Coaxial Cable) | 如电视信号线 | 抗干扰强,早期局域网用(现在少见) |
| 光纤(Optical Fiber) | 用光信号传输 | 超高速、远距离、抗干扰,贵但越来越普及 |
2.无线介质
| 类型 | 说明 | 特点 |
|---|---|---|
| 无线电波(Radio) | Wi-Fi、蓝牙、4G/5G | 穿透力强,易部署,易受干扰 |
| 微波(Microwave) | 点对点通信、卫星通信 | 高频、视距要求高,延迟低 |
| 红外(Infrared) | 遥控器、短距通信 | 近距离、无穿透性,角度敏感 |
| 介质类型 | 带宽 | 成本 | 抗干扰 | 典型应用 |
|---|---|---|---|---|
| 双绞线(Cat6) | 中等 | 低 | 一般 | 家用网线、企业局域网 |
| 光纤 | 高 | 高 | 极强 | 数据中心、骨干网络、5G 回传 |
| 无线电波(Wi-Fi) | 中 | 低 | 易受干扰 | 居家上网、移动设备 |
| 微波 | 高 | 中 | 一般 | 城市之间骨干链路、卫星通信 |
信号在介质中的表现(物理层的角度)
1.双绞线/同轴线:传输电信号
2.光纤:传输光信号(激光)
3.无线:传输电磁波(通过空气)
常见物理层问题
- 信号衰减:距离越远,信号越弱
- 噪声干扰:比如电磁噪声、无线信号冲突
- 延迟:光比电快,电比无线快
RFC(Request for Comments)
RFC是互联网技术的核心文档体系,它是用来定义、描述、讨论互联网协议、标准、系统、实验性技术等内容的正式文档
RFC结构
一个表针的RFC文档通常包括:
标题与编号:如RFC 7230: Hypertext Transfer Protocol(HTTP/1.1)
状态(Status)
- Proposed Standard(提议)
- Draft Standard(草案)
- Internet Standard(正式标准)
- Experimental / Informational(试验或信息类)
作者和日期
摘要(Abstract):简述协议作用
正文内容:定义术语、数据格式、流程、状态码、错误处理
参考文献
附录:示例、历史兼容说明等
重要性
| 原因 | 说明 |
|---|---|
| 是最权威的协议规范文档 | 所有程序员、协议实现者、浏览器厂商、操作系统都照着实现 |
| 是网络知识的根源 | 源于真实需求,由互联网发展推动产生 |
| 是开放的知识资产 | 任何人都可以免费阅读、引用、翻译 |
| 是技术进步的记录 | 看得懂 RFC,就能明白“为什么协议这么设计” |
- RFC是建议、规范、描述性文档,不是强制法律
- 是否采用取决于社区和厂商
- 但如果一个RFC被广泛采用并长期存在,它就变成了事实标准
RFC是互联网协议的说明书,是程序员、工程师、技术人心中的“互联网圣经”