网络适配器

返回 计算机网络

网络适配器(Network Interface Card,NIC)是计算机连接网络的硬件接口,工作在数据链路层与物理层,负责将操作系统的数字信号转换为可在网络介质上传输的电信号、光信号或无线电波。


主要功能

功能说明
数据帧收发封装/解封装以太网帧,添加/校验 FCS
MAC 地址标识每块网卡拥有全球唯一的 48 位 MAC 地址
介质访问控制全双工直接收发;半双工通过 CSMA/CD 检测冲突
硬件卸载(Offload)将 Checksum、分段等计算从 CPU 卸载到网卡芯片
中断处理数据到达时向 CPU 发中断(或 NAPI 轮询减少中断)
流量控制802.3x 暂停帧,通知对端暂停发送

MAC 地址

格式

  00 : 1A : 2B : 3C : 4D : 5E
  └────────────┘   └────────────┘
    OUI(3 字节)    设备序号(3 字节)
   厂商唯一标识      厂商自行分配

第一字节最低两位:
  bit0 = 0 → 单播地址(Unicast)
  bit0 = 1 → 多播地址(Multicast)
  bit1 = 0 → 全局唯一(OUI 分配)
  bit1 = 1 → 本地管理地址(随机化或手动设置)
地址类型示例说明
单播00:1A:2B:3C:4D:5E标识单一网卡
广播FF:FF:FF:FF:FF:FF同一广播域所有设备接收
多播01:00:5E:xx:xx:xx多播组前缀(IPv4 多播)
随机化 MACDA:xx:xx:xx:xx:xx(bit1=1)现代手机/OS 连 Wi-Fi 时随机生成,保护隐私

MAC 地址的作用范围

主机 A(192.168.1.2)→ 路由器 → 主机 B(10.0.0.5)

  局域网段 1:
    以太网帧 [src:MAC-A | dst:MAC-路由器] → 路由器

  局域网段 2:
    以太网帧 [src:MAC-路由器出口 | dst:MAC-B] → 主机 B

MAC 地址只在当前链路段(同一广播域)有效,
经过路由器后源/目标 MAC 都被替换为新的链路段地址。

ARP:IP → MAC 的解析

同局域网内通信,必须先知道目标 IP 对应的 MAC 地址:

主机 A(192.168.1.2)想发数据给 192.168.1.5:

① ARP 请求(广播):
   "谁是 192.168.1.5?请告诉我你的 MAC"
   src:MAC-A → dst:FF:FF:FF:FF:FF:FF

② ARP 应答(单播):
   主机 B(192.168.1.5)回复:
   "我是 192.168.1.5,我的 MAC 是 00:AA:BB:CC:DD:EE"

③ 主机 A 缓存 IP→MAC 映射,直接封帧发送
# 查看本机 ARP 缓存
arp -n                     # Linux
arp -a                     # Windows
 
# 手动添加静态 ARP(防 ARP 欺骗)
arp -s 192.168.1.5 00:AA:BB:CC:DD:EE

ARP 欺骗(ARP Spoofing):攻击者伪造 ARP 应答,将网关 IP 映射到自己的 MAC,截获流量(中间人攻击)。防护:静态 ARP、动态 ARP 检测(DAI)、交换机端口安全。


网卡类型

类型接口速率说明
有线网卡(Ethernet)RJ45100M / 1G / 10G / 25G / 100G服务器/PC 主流接入
无线网卡(Wi-Fi)内置天线150Mbps~9.6GbpsIEEE 802.11 系列
光纤网卡SFP/SFP+ 槽1G / 10G / 25G / 100G插光模块接光纤
虚拟网卡软件模拟取决于宿主机Docker veth、VPN tun/tap
环回接口(lo)127.0.0.1,本机内部通信
InfiniBand专用200Gbps+高性能计算、存储网络

全双工 vs 半双工

半双工(Half-Duplex):
  收发不能同时进行,使用 CSMA/CD 避免冲突
  → 发送前先监听信道是否空闲
  → 发送中同时检测冲突(检测到冲突则停止,随机等待后重传)
  现代交换网络已基本淘汰半双工

全双工(Full-Duplex):
  收发完全独立,不存在冲突
  → 每个端口与交换机直接点对点连接,无共享信道
  → 可同时达到标称速率(如 1Gbps 收 + 1Gbps 发)

自动协商(Auto-Negotiation)

网卡与交换机通过 Fast Link Pulse(FLP)自动协商速率和双工模式:

网卡能力广播:[1000BASE-T / 100BASE-TX / 10BASE-T] [全双工 / 半双工]
交换机返回:  选择双方支持的最高能力
结果:        1000BASE-T 全双工

常见问题:一端设为强制 1000M 全双工,另一端自动协商,
          可能协商到 100M 半双工导致性能极差(Duplex Mismatch)

硬件卸载(Offload)

高流量下 TCP/IP 栈的 CPU 负担很重,网卡提供硬件卸载特性:

特性说明
Checksum Offload网卡计算 TCP/UDP/IP 校验和,免去 CPU 计算
TSO(TCP Segmentation Offload)将大 TCP 段分割交由网卡完成,减少 CPU 分段次数
GRO(Generic Receive Offload)接收时将多个小包合并成大包再交给协议栈
RSS(Receive Side Scaling)多队列网卡,将不同流分发到不同 CPU 核,提升并行度
DPDK绕过内核协议栈直接由用户态驱动处理包,极致低延迟
# 查看/修改 offload 特性(Linux ethtool)
ethtool -k eth0             # 查看所有 offload 状态
ethtool -K eth0 tso off     # 关闭 TSO(排障时用)
ethtool -K eth0 gro off     # 关闭 GRO

常用命令

Linux

# 查看所有网络接口(含 MAC、状态)
ip link show
ip link show eth0           # 单个接口
 
# 查看 IP 地址(含子网掩码)
ip addr show
ip addr show eth0
 
# 查看路由表
ip route show
 
# 启用 / 禁用网卡
ip link set eth0 up
ip link set eth0 down
 
# 临时设置 IP
ip addr add 192.168.1.100/24 dev eth0
 
# 查看收发包统计(errors/dropped/overrun)
ip -s link show eth0
 
# 查看网卡详细信息(速率、双工、自协商状态)
ethtool eth0
 
# 持续监控网卡流量
watch -n1 'cat /proc/net/dev'

Windows

# 查看网卡信息(含 MAC、IP)
ipconfig /all
 
# 查看 MAC 地址
getmac /v
 
# 查看 ARP 缓存
arp -a
 
# 释放 / 重新获取 IP(DHCP)
ipconfig /release
ipconfig /renew
 
# 刷新 DNS 缓存
ipconfig /flushdns
 
# 查看网络接口统计
netstat -e

虚拟网络接口(Linux)

类型说明典型场景
veth pair成对虚拟网卡,一端发数据另一端收到Docker 容器网络(容器内 eth0 ↔ 宿主机 vethXXX)
bridge虚拟二层交换机,连接多个接口Docker bridge 网络、KVM 虚拟机网络
tun三层虚拟接口(传递 IP 包)VPN(OpenVPN、WireGuard)
tap二层虚拟接口(传递以太网帧)QEMU/KVM 虚拟机完整以太网模拟
bond多网卡聚合,提升带宽或冗余服务器双网卡主备 / 负载均衡
VLAN 子接口eth0.10,在单网卡上承载多 VLAN一块网卡对接多个 VLAN 的 Trunk 口
macvlan在一块物理网卡上创建多个 MAC 地址容器直接接入物理网络,获得独立 MAC/IP
ipvlan共享 MAC,独立 IP容器网络,MAC 受限的环境
# 创建 bridge
ip link add br0 type bridge
ip link set eth0 master br0
ip link set br0 up
 
# 创建 veth pair
ip link add veth0 type veth peer name veth1
 
# 创建 VLAN 子接口(VLAN 10)
ip link add link eth0 name eth0.10 type vlan id 10
ip link set eth0.10 up

相关

  • 网络模型 — 网络适配器工作在数据链路层与物理层
  • IP与路由 — ARP 将 IP 地址解析为网卡 MAC 地址,NAT 修改 IP
  • 交换机 — 交换机根据网卡 MAC 地址转发数据帧
  • WLAN — 无线网卡是连接 Wi-Fi 的硬件基础
  • 光纤 — 光纤网卡通过 SFP 光模块接入光纤网络
  • 网络通信 — 网卡是网络通信的硬件基础
  • 网络安全 — ARP 欺骗、MAC 欺骗攻击与防护