4169 字
21 分钟
网络:网络接口层

在 TCP/IP 四层模型中,网络接口层负责让主机能够接入具体的网络,并在相邻节点之间传输数据。

这一层关注的是最接近网络硬件的一部分:传输介质、网卡、以太网、MAC 地址、以太网帧以及交换机的基本工作方式。理解这一层之后,才能进一步理解 IP 地址、子网和路由。

网络接口层是什么#

TCP/IP 四层模型可以简单表示为:

┌────────────────────┐
│ 应用层 │
├────────────────────┤
│ 传输层 │
├────────────────────┤
│ 网际层 │
├────────────────────┤
│ 网络接口层 │
└────────────────────┘

网络接口层位于最底部,负责:

主机
↓
接入具体网络
↓
通过网络介质传输数据

它关注的是:

数据如何真正进入网卡
↓
如何封装成链路层帧
↓
如何通过网线、光纤或无线介质发送
↓
如何被相邻设备接收

因此,这一层与硬件的关系最为密切。

可以粗略理解成:

网际层
↓
“我要把数据发往哪个 IP”
↓
网络接口层
↓
“这一跳通过什么介质、哪个接口、什么帧发出去”

需要注意:

网络接口层不是某一个具体协议,而是 TCP/IP 模型中对主机本地网络接入相关机制的抽象。

在不同教材和资料中,这一层也可能被称为:

Network Access Layer
Link Layer
网络接入层
链路层

本文主要使用:

网络接口层

这一名称。


网络通信为什么需要这一层#

假设主机 A 要向主机 B 发送数据:

主机 A
│
▼
网络
│
▼
主机 B

上层协议最终会产生:

IP Packet

但 IP Packet 本身不能直接通过网线传播。

还需要:

IP Packet
↓
封装
↓
链路层帧
↓
网卡
↓
物理介质

因此可以形成:

应用数据
↓
传输层数据
↓
IP 数据包
↓
Ethernet Frame
↓
网卡
↓
网线 / 光纤 / 无线

网络接口层真正关心的,就是最下面这部分。


网络传输介质#

网络数据最终必须通过某种介质进行传输。

常见的有:

双绞线
光纤
无线电波

可以简单分为:

有线网络
├── 双绞线
└── 光纤
无线网络
└── 无线电波

不同介质决定了:

传输距离
带宽
抗干扰能力
部署方式
成本

等特性。


双绞线#

双绞线(Twisted Pair)是以太网中非常常见的传输介质。

它由多对相互绞合的铜线组成。

可以简单理解为:

两根铜线
╲╱
╱╲
╲╱
不断绞合

之所以采用绞合结构,主要是为了降低电磁干扰以及改善传输特性。

典型网线中通常包含:

4 对双绞线
=
8 根导线

例如常见的:

Cat5e
Cat6
Cat6A
Cat7

等类别。

这些类别对应不同的传输性能和布线要求。


双绞线的分类#

常见网线类别包括:

类别常见用途
Cat5e常见千兆以太网
Cat6家庭、办公网络
Cat6A更高性能的布线环境
Cat7更高等级的屏蔽布线场景
Cat8数据中心等更高带宽场景

不过:

网线类别并不能简单等价成某一个固定速率。

实际能够达到的速率还与:

线缆
长度
接口
收发器
布线环境
连接器

等因素有关。

因此不要简单记成:

Cat6 = 某个固定速度
Cat7 = 某个固定速度

更合理的理解是:

线缆类别规定了相应的电气性能和传输能力,实际网络速率取决于整个链路。


RJ45 与网络接口#

我们日常说的:

RJ45 网口

通常指的是常见的 8P8C 模块化连接方式及其接口形态。

例如:

电脑
│
▼
┌─────────┐
│ RJ45口 │
└────┬────┘
│
│ 网线
▼
┌─────────┐
│ 交换机 │
└─────────┘

需要注意:

“RJ45”在日常使用中经常被用来泛指以太网水晶头和网口,但严格的连接器术语与以太网电气标准并不是一回事。

在学习和实际运维中,理解其作为:

铜缆以太网物理连接

即可。


光纤#

与双绞线不同,光纤使用光信号传输数据。

可以简单表示:

电信号
↓
光模块
↓
光信号
↓
光纤
↓
光模块
↓
电信号

常见的光纤可以分为:

单模光纤
多模光纤

单模光纤#

单模光纤通常具有:

传输距离长
衰减较低
适合长距离通信

因此常见于:

运营商网络
数据中心互联
园区骨干
城域网络

等场景。


多模光纤#

多模光纤通常用于较短距离的高速通信。

常见于:

机房
数据中心
园区内部

等环境。


双绞线与光纤对比#

对比双绞线光纤
介质铜光
抗电磁干扰相对较弱很强
常见距离短距离可从短距离到长距离
施工成本通常较低通常较高
常见场景家庭、办公室骨干、数据中心、长距离
供电能力某些以太网方案支持本身不能提供普通铜缆式供电

无线介质#

无线局域网不使用网线作为传输介质,而是利用无线电波进行通信。

可以理解为:

主机
│
▼
无线网卡
│
▼
无线电波
│
▼
无线接入点

例如 Wi-Fi。

因此网络接口层并不意味着:

必须插网线

而是:

主机通过某种具体的链路技术接入网络。

这个“具体链路”可以是:

Ethernet
Wi-Fi

等。

不过本文重点放在最常见的有线以太网。


网卡与网络接口#

什么是网卡#

主机需要通过:

NIC(Network Interface Controller)

连接网络。

日常通常直接称为:

网卡

例如:

主机
│
├── Ethernet 网卡
├── Wi-Fi 网卡
└── 虚拟网卡

Linux 中,这些网络接口最终会表现为:

eth0
ens33
enp0s3
wlan0

等网络设备。

具体接口名称会根据发行版、系统配置以及设备命名规则不同而变化。


网络接口不一定是物理网卡#

现代 Linux 中:

Network Interface

不一定对应一块真实硬件。

例如:

物理网卡
虚拟网卡
Bridge
VLAN Interface

都可以表现为网络接口。

因此:

网卡是硬件概念,而网络接口是操作系统中的抽象。

可以理解成:

物理硬件
↓
网络设备
↓
操作系统网络接口

后续学习 Linux 网络管理时,会进一步介绍:

Terminal window
ip link

等工具如何查看和管理这些接口。


MAC 地址#

什么是 MAC 地址#

以太网网络接口通常具有一个:

MAC 地址

MAC(Media Access Control)地址是链路层使用的重要地址。

常见的 48-bit Ethernet MAC 地址可以写成:

00:11:22:33:44:55

也可以写成:

00-11-22-33-44-55

本质上都是:

48 bit
=
6 Byte

MAC 地址有什么作用#

在局域网中,设备需要知道:

这一帧应该交给哪个网络接口

因此以太网帧中包含:

Source MAC
Destination MAC

例如:

主机 A
MAC = AA:AA:AA:AA:AA:AA
主机 B
MAC = BB:BB:BB:BB:BB:BB

A 发送给 B:

Source MAC
↓
AA:AA:AA:AA:AA:AA
Destination MAC
↓
BB:BB:BB:BB:BB:BB

这样链路层设备就可以根据 MAC 地址处理该帧。


MAC 地址并不是永久不变的硬件身份证#

虽然很多物理网卡出厂时具有一个硬件地址,但操作系统通常可以修改接口使用的 MAC 地址。

此外:

虚拟机
容器
虚拟网络接口
无线设备

都可能使用人为生成或动态配置的 MAC 地址。

因此:

MAC 地址更应该理解成网络接口在链路层使用的地址,而不是“设备永远不变的身份证”。


Ethernet#

什么是 Ethernet#

Ethernet(以太网)是现代局域网最常见的链路技术之一。

IEEE 802.3 系列标准定义了以太网相关的 MAC 与物理层技术。

可以简化为:

上层数据
↓
Ethernet Frame
↓
网卡
↓
双绞线 / 光纤

在现代网络中,以太网已经不仅仅是一种“网线通信方式”。

它包含:

MAC
Frame
Ethernet PHY
物理介质

等多个方面。


Ethernet Frame#

为什么需要帧#

上层得到的:

IP Packet

不能直接作为以太网介质上的传输单位。

因此需要进行封装:

IP Packet
↓
Ethernet Frame

也就是:

以太网通过 Frame(帧)承载上层数据。


Ethernet II 帧#

常见 Ethernet II 帧可以简化表示为:

┌──────────────┬──────────────┬────────────┬──────────────┐
│ 目标 MAC │ 源 MAC │ EtherType │ Payload │
│ 6 Byte │ 6 Byte │ 2 Byte │ │
└──────────────┴──────────────┴────────────┴──────────────┘

实际以太网帧还存在:

FCS

等字段。

可以更完整地表示为:

┌────────┬────────┬────────┬──────────────┬──────┐
│Dst MAC │Src MAC │Type │Payload │ FCS │
└────────┴────────┴────────┴──────────────┴──────┘

Destination MAC#

表示:

这一帧在当前链路上发送给哪个目标接口。

例如:

Dst MAC = BB:BB:BB:BB:BB:BB

Source MAC#

表示:

这一帧由哪个接口发送。

例如:

Src MAC = AA:AA:AA:AA:AA:AA

因此:

Source MAC
↓
谁发送
Destination MAC
↓
发给谁

EtherType#

EtherType 用于标识:

Payload 中封装的上层协议类型。

例如:

IPv4
IPv6

等。

可以理解为:

Ethernet Frame
│
├── MAC Header
│
├── EtherType
│ │
│ ├── IPv4
│ └── IPv6
│
└── Payload

因此同一种以太网技术能够承载不同的网络层协议。


Payload#

Payload 就是:

以太网帧真正承载的上层数据。

例如:

Ethernet Frame
│
▼
IPv4 Packet

或者:

Ethernet Frame
│
▼
IPv6 Packet

所以:

Ethernet
↓
负责在链路上承载上层数据

FCS#

FCS(Frame Check Sequence)用于帧级错误检测。

发送端:

数据
↓
计算校验值
↓
FCS

接收端:

收到帧
↓
重新检查
↓
判断是否出现传输错误

因此:

FCS 是链路层错误检测机制,不等于端到端可靠传输。


MAC 地址的通信类型#

MAC 地址除了普通的单播地址,还涉及:

单播
组播
广播

单播#

表示:

一个发送者
↓
一个目标

例如:

A ─────────► B

Destination MAC 是某一个具体接口的地址。


广播#

以太网广播地址通常为:

ff:ff:ff:ff:ff:ff

表示:

向当前广播域中的所有相关接口发送。

可以理解成:

┌── B
│
A ──► Switch ── C
│
└── D

广播帧会被交换设备在对应广播域内传播。

广播是后续理解:

广播域
VLAN

等概念的重要基础。


组播#

组播表示:

一个发送者
↓
一组接收者

与广播相比:

广播
↓
所有设备
组播
↓
加入特定组的设备

在后续学习 IPv4 / IPv6 组播时会进一步展开。


交换机#

交换机做什么#

交换机是局域网中非常常见的设备。

传统 Ethernet LAN 中,交换机主要依据:

Destination MAC

决定帧从哪个端口发出。

可以简单理解为:

┌───────────┐
│ Switch │
└─────┬─────┘
┌──────┼──────┐
│ │ │
▼ ▼ ▼
PC A PC B PC C

交换机关注的核心对象之一就是:

MAC 地址。


MAC 地址表#

交换机内部通常维护一张:

MAC Address Table

例如:

MAC Address Port
AA:AA:AA:AA:AA:AA 1
BB:BB:BB:BB:BB:BB 2
CC:CC:CC:CC:CC:CC 3

也就是建立:

MAC
↓
Port

的对应关系。

因此收到一个帧后,可以:

Destination MAC
↓
查询 MAC Table
↓
找到对应端口
↓
转发

MAC 地址学习#

交换机并不是一开始就知道所有设备在哪里。

例如:

PC A
MAC = AA

从:

Port 1

进入交换机。

交换机看到:

Source MAC = AA
Ingress Port = 1

于是可以学习:

AA → Port 1

这就是:

MAC Address Learning

随着网络通信不断发生,MAC 地址表会逐渐建立。


已知单播#

假设交换机已经知道:

BB → Port 2

此时收到:

Destination MAC = BB

交换机可以:

查表
↓
Port 2
↓
只向 Port 2 转发

因此不会把帧发送到所有端口。


未知单播#

如果交换机暂时不知道:

Destination MAC

位于哪个端口,那么可能会进行:

Flooding(泛洪)

可以简单理解成:

未知目标
│
▼
泛洪
│
├── Port 1
├── Port 2
└── Port 3

随后,如果目标主机产生响应,交换机就可以根据响应帧的 Source MAC 学习它的位置。


广播域#

理解交换机之后,还需要理解:

广播域(Broadcast Domain)

广播帧:

ff:ff:ff:ff:ff:ff

并不会无限传播到整个互联网。

它通常只会在:

当前二层广播域

中传播。

例如:

Switch
┌────┼────┐
│ │ │
▼ ▼ ▼
A B C

如果 A 发送广播:

A
│
│ Broadcast
▼
Switch
│
├── B
└── C

B、C 可以收到。

但广播不会通过普通三层路由器直接转发到另一个广播域。

因此:

交换网络中的广播范围是有限的。

后续学习 VLAN 时,这个概念会非常重要。


Ethernet、MAC 与交换机之间的关系#

到这里可以把几个概念串起来:

Ethernet
│
┌───────┴───────┐
│ │
▼ ▼
Frame MAC
│ │
└───────┬───────┘
▼
Switch
│
▼
MAC Address Table
│
▼
Port

也可以从通信过程理解:

主机 A
│
│ Ethernet Frame
│
│ Src MAC = A
│ Dst MAC = B
▼
交换机
│
│ 查 MAC Table
▼
目标端口
│
▼
主机 B

因此:

MAC
↓
标识链路层接口
Frame
↓
承载数据
Switch
↓
根据 MAC 处理帧
Port
↓
连接具体链路

一次完整的以太网通信#

假设:

主机 A
MAC = AA:AA:AA:AA:AA:AA
主机 B
MAC = BB:BB:BB:BB:BB:BB

A 要把一个 IP Packet 发送给 B。

从网络接口层来看,可以简化成:

IP Packet
│
▼
封装 Ethernet Frame
│
┌─────────┴─────────┐
│ │
▼ ▼
Src MAC = A Dst MAC = B
│
▼
网卡
│
▼
双绞线
│
▼
交换机
│
│ 查 MAC 地址表
▼
目标端口
│
▼
双绞线
│
▼
网卡 B
│
▼
接收 Frame
│
▼
取出 IP Packet

这样就可以看到:

上层
↓
IP Packet
网络接口层
↓
Ethernet Frame
物理传输
↓
网卡 + 网线

一跳通信#

网络接口层还有一个非常重要的概念:

它主要负责相邻节点之间的通信。

例如:

A ── Switch ── B

A 发给 B:

A
↓
Switch
↓
B

这是本地网络中的通信。

但如果:

A ── Router ── Router ── B

那么 A 到 B 并不是一个单独的链路层通信。

可以理解为:

A → Router 1

是一跳;

Router 1 → Router 2

又是一跳;

Router 2 → B

还是一跳。

因此网络接口层主要关注:

当前这一跳如何把数据交给相邻设备。

至于:

最终应该走哪条路径

则属于网际层的职责。


网络接口层与网际层的边界#

这一点对于后续学习非常重要。

可以先明确划分:

网络接口层
│
├── 网卡
├── 双绞线
├── 光纤
├── Wi-Fi
├── Ethernet
├── MAC
├── Frame
└── Switch

而:

网际层
│
├── IPv4
├── IPv6
├── IP 地址
├── 子网
├── CIDR
├── 路由
└── ICMP

本文不展开:

ARP

也不讨论:

IP 地址
子网
路由
默认网关
ICMP

因为这些内容放到后面的:

网际层

会更加统一。


从数据封装看网络接口层#

把整个 TCP/IP 协议栈放在一起,可以看到:

应用层
│
▼
Application Data
│
▼
传输层
│
▼
TCP Segment / UDP Datagram
│
▼
网际层
│
▼
IP Packet
│
▼
网络接口层
│
▼
Ethernet Frame
│
▼
Physical Medium

因此:

网络接口层解决的是“数据如何进入具体网络并通过当前链路传输”的问题。

它不负责决定整个互联网的路径。


网络接口层的整体模型#

现在可以把这一层浓缩成:

网络接口层
│
┌──────────────┼──────────────┐
│ │ │
▼ ▼ ▼
传输介质 网络接口 链路协议
│ │ │
┌────┼────┐ ┌──┴──┐ ┌──┴─────┐
│ │ │ │ │ │ │
双绞线 光纤 Wi-Fi 网卡 MAC Ethernet Frame
│
▼
Switch
│
▼
MAC Address Table

再进一步缩成:

数据
↓
Ethernet Frame
↓
网卡
↓
物理介质
↓
交换机
↓
相邻网络设备

所以,这一层最核心的几个概念可以概括为:

介质负责传输比特,网卡负责连接主机与网络,MAC 地址标识链路层接口,Ethernet Frame 承载上层数据,交换机根据 MAC 地址在局域网中转发帧。

理解这些之后,再往上学习:

网际层
↓
IP
↓
子网
↓
CIDR
↓
路由

就会知道:

IP
↓
解决跨网络寻址
MAC
↓
解决当前链路上的交付
Ethernet Frame
↓
真正承载这一跳的数据

这也正是 TCP/IP 分层模型存在的意义:不同层负责不同范围的问题,并通过层与层之间的接口协同完成一次完整的网络通信。

外部参考#

网络:网络接口层
https://tamakara.top/posts/学习笔记/网络网络接口层/
作者
魂辛カラ
发布于
2026-09-13
许可协议
CC BY-NC-SA 4.0