一句话本质:
网络是一套规则 + 物理介质 + 硬件控制器,让多台独立设备之间,可以互相传递比特数据。
不是单纯一根网线,是分层体系。
一、什么是网络?
1、计算机网络:
将若干具有独立处理能力的计算机 / 嵌入式设备,通过通信介质、网络硬件,按照约定通信协议连接在一起,实现数据交换、资源共享的系统。
2、核心目标两点:
① 把 A 设备内存里的二进制比特,送到 B 设备;
② B 收到后,还原出原始数据,理解对方的意图。
设备可以是 PC、嵌入式 SOC、摄像头、路由器等各种网络设备。
二、经典分层:OSI 七层模型(最标准)
OSI 七层(从上往下)
1、应用层:
业务数据。HTTP、FTP、SSH、RTSP。
如: ping、wget、应用程序收发数据都在这里。
2、表示层:
数据编码、加密、格式转换(TCP/IP 体系里一般合并进应用层)
3、会话层:
建立 / 断开会话连接(TCP/IP 合并进传输层)
4、传输层:
端口、可靠 / 不可靠传输。TCP(可靠)、UDP(不可靠)。区分同一个设备上不同进程。
5、网络层:
IP 地址、路由寻址。IP 协议,负责把包从源 IP 送到目标 IP,跨网段转发。
6、数据链路层(链路层):
MAC 地址、帧封装、差错检测。GMAC MAC 控制器就工作在这一层!
- MAC:把上层 IP 包封装成以太网帧(加上源 MAC、目的 MAC、类型字段、CRC 校验)
- 帧:以太网最小传输单元
7、物理层:
比特流传输、电平、时钟、编码。
RGMII、PHY 芯片 RTL8211E、网络变压器、网线 RJ45 全部属于物理层。
只负责传输 0/1 比特,不懂帧、IP。
三、配套 TCP/IP 四层(Linux 内核实际用)
TCP/IP 四层(Linux 内核实际实现,工程最常用)
1、应用层
2、传输层
3、网际层(IP)
4、网络接口层(= 链路层 + 物理层)

四、两个核心地址
1、MAC 地址(物理地址,48bit):
固化在 PHY 或者 SOC,链路层地址。只在同一个局域网(同一根交换机下)生效。
GMAC 收发帧,依靠 MAC 地址判断这个帧是不是发给自己。
2、IP 地址(逻辑地址,32bit IPv4):
网络层地址,用来跨网段路由。软件配置,可修改。
类比:
MAC = 房间门牌号(小区内部找人);
IP = 完整收件地址(跨城市邮寄)。
五、网络的两种形态
1、局域网 LAN:
小范围,同一交换机下,比如 嵌入式开发板直连 PC,家用内网。依靠 MAC 帧转发。
2、广域网 WAN:
跨远距离,比如互联网。依靠 IP 路由,路由器转发 IP 包。
六、发包完整流程(开发板 发送 ping 包例子,从上到下)
- 应用层:执行 ping 命令,构造 ICMP 数据
- 传输层:ICMP 属于网络层,跳过 TCP/UDP
- 网络层:加上源 IP、目的 IP,生成 IP 包
- 链路层 GMAC:给 IP 包封装以太网帧头(MAC 地址)+CRC 校验,通过 RGMII 并行数字信号发给 RTL8211E
- 物理层 PHY:数字信号编码成差分模拟信号,经过网络变压器送到 RJ45 网线
- 网线传输到 PC 网卡,PC 网卡 PHY 解码,MAC 校验 CRC,逐层向上解包,最终应用收到 ping 请求。
收包就是整个流程反向。
七、小结
网络分层 ↔ 开发板 硬件 + Linux 驱动 完整映射对照表
体系:TCP/IP 四层模型(工程调试用),附带对应 OSI 七层位置,从上到下,发包数据流方向
| TCP/IP 四层 | OSI 七层对应 | 核心职责 | 开发板 平台对应的模块 / 软件 | 调试现象判断 |
|---|---|---|---|---|
| 应用层 | 应用层表示层会话层 | 业务数据;HTTP/RTSP/SSH/ping;数据格式组装解析 | Linux 用户态程序:ping、iperf、rtsp 服务、应用 APP | 底层链路正常,但业务不通;ping 通但是 iperf 丢包,多是应用 / 端口 / 防火墙问题 |
| 传输层 | 传输层 | TCP(可靠)/UDP(不可靠);端口号;流量控制、重传 | Linux 内核协议栈 net/ipv4/tcp.c udp.c |
IP 可达,但端口不通;TCP 握手失败,防火墙过滤 |
| 网际层(网络层) | 网络层 | IP 地址、ICMP、路由;分片;寻址跨网段 | Linux 内核 net/ipv4/ip.c,ip 命令配置 IP |
MAC 帧收发正常,ping 不通,大概率 IP 网段不匹配、路由错误 |
| 网络接口层 | 数据链路层 | 以太网帧封装 / 解封装;MAC 地址;CRC 校验;帧收发控制 | GMAC(MAC 控制器,SOC 内置硬件) + GMAC 驱动 | PHY 链路 up,但是收发帧计数为 0、大量 CRC 错误,MAC 层 / 时序问题 |
| 物理层 | 0/1 比特流编码解码;电平、时钟;速率自协商;差分信号 | PHY 芯片 + 网络变压器 + RJ45 网口 + 网线 | 网卡一直 down,自协商失败;寄存器读取异常;链路时断时续 |