计算机网络研究的是「如何把地理上分散的计算机连接起来,可靠、高效地交换数据」。它的核心思想只有一个:分层(Layering)——把复杂的通信问题拆成若干层,每层只解决自己的问题,并为上层提供服务。
一句话定位
计算机网络 = 分层模型 + 每层的协议。学它的关键在于理解「数据从应用层一路封装到物理层,再在对端一层层解封装」的全过程。
知识体系
flowchart TD A[计算机网络] --> B[分层模型] A --> C[各层协议] A --> D[核心机制] subgraph B [分层模型] B1["OSI 七层模型"] B2["TCP/IP 四层模型"] end subgraph C [各层协议] C1["物理层: 比特流传输"] C2["数据链路层: 以太网 / MAC / ARP"] C3["网络层: IP / ICMP / 路由"] C4["传输层: TCP / UDP"] C5["应用层: HTTP / DNS / SMTP"] end subgraph D [核心机制] D1["封装与解封装"] D2["可靠传输: 确认 / 重传 / 滑动窗口"] D3["拥塞控制: 慢启动 / 拥塞避免"] D4["三次握手 / 四次挥手"] D5["分组交换与路由选择"] end B1 -.-> B2 C3 -.-> D5 C4 -.-> D2 C4 -.-> D3 C4 -.-> D4
分层对照
| 层次 | OSI 七层 | TCP/IP 四层 | 典型协议 |
|---|---|---|---|
| 上 | 应用层 / 表示层 / 会话层 | 应用层 | HTTP、HTTPS、DNS、SMTP |
| 中 | 传输层 | 传输层 | TCP、UDP |
| 中 | 网络层 | 网络层 | IP、ICMP、ARP、路由协议 |
| 下 | 数据链路层 | 网络接口层 | 以太网、MAC、PPP |
| 下 | 物理层 | 网络接口层 | 双绞线、光纤、无线 |
核心要点
- 物理层:解决 0/1 比特如何在介质上传输(电压、光、电磁波),关注带宽、时延、编码。
- 数据链路层:把比特流组织成「帧」,负责差错检测与 MAC 寻址,典型是以太网。
- 网络层:解决「跨网络寻址与路由」,核心是 IP 协议;IP 只尽力而为,不保证送达。
- 传输层:
- TCP:面向连接、可靠、有序,靠三次握手建连、确认重传、流量控制和拥塞控制。
- UDP:无连接、不可靠、开销小,适合实时音视频和高频小包。
- 应用层:直接面向用户业务,HTTP 是 Web 的基础,DNS 负责域名解析。
TCP vs UDP
| 维度 | TCP | UDP |
|---|---|---|
| 连接 | 面向连接 | 无连接 |
| 可靠性 | 可靠、有序 | 不可靠、可能乱序 |
| 开销 | 头 20 字节起 | 头仅 8 字节 |
| 场景 | 文件传输、网页、邮件 | 直播、游戏、DNS 查询 |
相关
从通用网络到车载通信
计算机网络中的分层、封装、寻址与可靠传输思想,可以帮助理解车载网络,但不能把以太网/TCP/IP 与 CAN 协议简单等同。
- 底层系统基础:计算机组成原理、操作系统。
- 嵌入式运行环境:RTOS、MCU。
- 车载软件架构:AUTOSAR 学习入口、AUTOSAR 软件架构。
- 通信栈模块:COM、PduR、CanIf、TcpIp。
- 工程验证:通信栈工程实战与 CANoe 验证。
学习时可以沿“网络分层与封装 → 具体协议 → AUTOSAR 模块职责 → 配置与报文验证”逐层推进。