网络协议深度解析-05-链路层与局域网:以太网与交换网络

全文摘要

本文将带你深入理解链路层的工作原理,帮助你掌握以太网、交换机、VLAN等局域网技术。你将学到MAC地址的作用、以太网帧的格式、交换机如何学习MAC地址、VLAN如何隔离广播域、以及WiFi无线网络的运作机制。通过阅读本文,你将理解数据如何在本地网络中传输,以及如何设计和管理局域网。

全书总结

链路层是网络协议栈中负责相邻节点间数据传输的层次,它在网络层之下,为IP协议提供传输服务。本文系统梳理了链路层的服务与功能、MAC寻址与ARP协议、以太网的技术演进、交换机的工作原理与地址学习、VLAN的划分与 trunking、以及WiFi无线网络的CSMA/CA机制。适合网络管理员、系统集成工程师、以及对局域网技术感兴趣的技术人员阅读。


一、链路层的作用:点对点传输

网络层解决了跨网络的通信问题,但它假设网络层之下有一个”理想”的点对点链路。链路层的任务就是实现这个点对点通信——把数据帧从一端传输到另一端。

flowchart TB
    subgraph Node1[主机A]
        IP1[网络层<br/>IP数据报]
        LL1[链路层]
        Phy1[物理层]
    end

    subgraph Link[链路]
        Wire[介质<br/>光纤/铜线/电波]
    end

    subgraph Node2[路由器R]
        LL2[链路层]
        Phy2[物理层]
        IP2[网络层<br/>转发数据报]
    end

    IP1 --> LL1
    LL1 -->|封装成帧| Phy1
    Phy1 -->|信号传输| Wire
    Wire --> Phy2
    Phy2 -->|接收信号| LL2
    LL2 -->|解封装| IP2

    style Node1 fill:#e3f2fd
    style Node2 fill:#fff9c4
    style Wire fill:#f3e5f5

图表讲解:这张图展示了链路层在网络协议栈中的位置——它是网络层和物理层之间的桥梁。

链路层提供的服务包括:

  • 成帧:把网络层的IP数据报封装成帧,加上帧头和帧尾
  • 寻址:使用MAC地址在局域网内寻址(不同于IP的跨网络寻址)
  • 介质访问控制:协调多个设备对共享介质的访问
  • 错误检测:检测传输中的错误(通常不纠正,交给上层处理)
  • 流量控制:在点对点链路上控制发送速率(如HDLC协议)

链路层的协议是网络特定的——不同类型的网络使用不同的链路层协议:以太网、WiFi、PPP、帧中继等等。这意味着IP数据报在不同链路上被封装成不同格式的帧。


二、MAC地址与ARP协议

在局域网中,设备使用MAC地址(Media Access Control Address,介质访问控制地址)互相标识。

MAC地址的结构

flowchart LR
    subgraph MAC[MAC地址 48位]
        direction TB
        OUI[OUI<br/>厂商标识<br/>前24位]
        NIC[网卡标识<br/>后24位]
    end

    subgraph Types[地址类型]
        U[单播地址<br/>首字节最低位=0]
        M[组播地址<br/>首字节最低位=1]
        B[广播地址<br/>FF:FF:FF:FF:FF:FF]
    end

    MAC --> U
    MAC --> M
    MAC --> B

    style OUI fill:#e3f2fd
    style NIC fill:#fff9c4
    style U fill:#c8e6c9
    style M fill:#ffd54f
    style B fill:#ef5350

图表讲解:这张图展示了MAC地址的结构和类型——MAC地址的设计体现了标准化的智慧。

MAC地址是48位(6字节)的地址,通常用十六进制表示(如00:1A:2B:3C:4D:5E)。前24位是OUI(Organizationally Unique Identifier,组织唯一标识符),由IEEE分配给网卡制造商;后24位由制造商分配,确保每个网卡有唯一地址。

MAC地址有三种类型:

  • 单播地址:指向单个设备,首字节最低位是0
  • 组播地址:指向一组设备,首字节最低位是1
  • 广播地址:FF:FF:FF:FF:FF:FF,指向局域网内所有设备

ARP协议

当主机要发送数据给本地网络中的另一台主机时,它知道对方的IP地址,但不知道MAC地址。ARP(Address Resolution Protocol,地址解析协议)用于将IP地址解析为MAC地址。

sequenceDiagram
    participant A as 主机A<br/>需要发送数据给B
    participant L as 局域网

    A->>L: ARP请求广播<br/>"谁是192.168.1.5?"
    L-->>B: 主机B收到<br/>IP匹配
    B->>L: ARP响应单播<br/>"我是192.168.1.5<br/>MAC:00:11:22:33:44:55"

    B-->>A: A收到响应<br/>缓存IP-MAC映射

    Note over A: 后续发送直接使用缓存

图表讲解:这张时序图展示了ARP的工作流程——这是局域网通信的基础步骤。

ARP工作流程:

  1. 主机A需要发送数据给B(知道B的IP,不知道MAC)
  2. A发送ARP请求广播,询问”谁是IP地址192.168.1.5?”
  3. 局域网内所有主机都收到广播,但只有B的IP匹配
  4. B发送ARP响应(单播),告诉A自己的MAC地址
  5. A缓存这个IP-MAC映射,后续发送直接使用缓存的MAC地址

ARP缓存有超时时间(通常几分钟),因为设备可能更换网卡(MAC地址改变)。如果IP地址在本地网络中找不到,ARP请求会超时,主机返回”主机不可达”错误。


三、以太网:局域网的主流技术

以太网是最成功的局域网技术,从1980年代的10Mbps发展到今天的100Gbps,仍然是企业网络和家庭网络的首选。

以太网的演进

flowchart LR
    subgraph Classic[经典以太网]
        CS[CSMA/CD<br/>总线拓扑<br/>10Mbps]
    end

    subgraph Switched[交换式以太网]
        SW[交换机<br/>星型拓扑<br/>全双工]
    end

    subgraph Modern[现代以太网]
        G1[千兆以太网<br/>1Gbps]
        G2[万兆以太网<br/>10Gbps]
        G3[40/100G<br/>数据中心]
    end

    Classic --> Switched
    Switched --> Modern

    style Classic fill:#ffcdd2
    style Switched fill:#fff9c4
    style Modern fill:#c8e6c9

图表讲解:这张图展示了以太网的技术演进——从共享总线到交换网络。

经典以太网(1980-1990年代)使用总线拓扑,所有设备共享同一条电缆。采用CSMA/CD(载波监听多点接入/碰撞检测):

  • 载波监听:发送前监听信道,如果忙就等待
  • 碰撞检测:发送时检测碰撞,如果碰撞就立即停止,等待随机时间后重传

CSMA/CD的问题是效率随负载增加而下降——设备越多,碰撞越多。当网络负载超过30-40%时,性能急剧下降。

交换式以太网用交换机替代共享总线。交换机的每个端口都是一个独立的冲突域,设备之间可以全双工通信(同时发送和接收),不再需要CSMA/CD。现代以太网都是交换式的,CSMA/CD已经成为历史。

现代以太网速度不断提升:

  • 快速以太网:100Mbps
  • 千兆以太网:1Gbps,已成为企业网标准
  • 万兆以太网:10Gbps,用于数据中心和骨干网
  • 40/100G以太网:用于超大规模数据中心

以太网帧格式

flowchart TB
    Preamble[前导码<br/>7字节<br/>同步用] --> SFD[SFD<br/>1字节<br/>帧开始标志]
    SFD --> Dest[目的MAC<br/>6字节]
    Dest --> Src[源MAC<br/>6字节]
    Src --> Type[类型字段<br/>2字节<br/>指示上层协议]
    Type --> Data[数据<br/>46-1500字节]
    Data --> CRC[CRC校验<br/>4字节<br/>错误检测]

    Dest -.->|可选| Tag[802.1Q标签<br/>4字节<br/>VLAN ID]
    Tag --> Type

    style Preamble fill:#e3f2fd
    style Dest fill:#fff9c4
    style Src fill:#fff9c4
    style Data fill:#c8e6c9
    style Tag fill:#ba68c8

图表讲解:这张图展示了以太网帧的格式——每个字段都有其特定用途。

以太网帧的关键字段:

  • 前导码+SFD:用于接收方时钟同步,不算是帧的一部分
  • 目的/源MAC地址:各6字节,标识发送方和接收方
  • 类型字段:指示上层协议(0x0800是IPv4,0x86DD是IPv6,0x0806是ARP)
  • 数据:46-1500字节。如果小于46字节,需要填充到46字节
  • CRC:循环冗余校验,检测传输错误

802.1Q标签是可选的,用于VLAN。包含4字节:2字节的TPID(0x8100标识这是 tagged帧)和2字节的TCI(包含3位的VLAN priority、1位的CFI、12位的VLAN ID)。Tag让交换机能够识别帧属于哪个VLAN。


四、交换机与自学习算法

交换机是现代局域网的核心设备,它能够智能地转发帧,提高网络性能。

交换机的工作原理

flowchart TB
    subgraph Switch[交换机]
        direction TB
        Ingress[接收帧<br/>从端口1]
        Learn[学习MAC地址<br/>源MAC-端口1]
        Lookup[查找转发表<br/>目的MAC在哪个端口?]
        Forward{转发决策}
        Flood[泛洪<br/>广播到所有端口<br/>除了源端口]
        Unicast[单播<br/>发送到目标端口]
        Filter[过滤<br/>丢弃<br/>目的MAC=源MAC]
    end

    Learn --> Lookup
    Lookup --> Forward
    Forward -->|未知单播| Flood
    Forward -->|已知单播| Unicast
    Forward -->|同端口| Filter

    style Switch fill:#e3f2fd
    style Learn fill:#fff9c4
    style Flood fill:#ffcdd2
    style Unicast fill:#c8e6c9

图表讲解:这张图展示了交换机的转发逻辑——自学习算法让它能自动构建MAC地址表。

交换机维护一个转发表(MAC地址表),记录MAC地址到端口的映射。转发表通过自学习算法自动构建:

  1. 交换机从端口1收到一个帧,源MAC是AA:BB:CC:DD:EE:FF
  2. 交换机学习:AA:BB:CC:DD:EE:FF在端口1方向
  3. 检查目的MAC,如果转发表中有,就转发到相应端口;如果没有,就泛洪

这种设计让交换机”即插即用”——不需要人工配置,连接后就能工作。交换机的自学习是动态的,如果设备移动到另一个端口,转发表会自动更新(旧条目超时后删除)。

交换机与集线器的区别

特性集线器交换机
工作层次物理层链路层
转发方式广播到所有端口智能转发到目标端口
带宽共享所有端口共享每端口独享
冲突域一个大的冲突域每端口一个冲突域
双工半双工全双工
价格稍高

集线器是”傻瓜”设备,收到什么就广播什么,所有设备共享带宽,冲突域大。交换机是”智能”设备,学习MAC地址,智能转发,每个端口独占带宽,冲突域小。现代网络都用交换机,集线器已经被淘汰。


五、VLAN:虚拟局域网

VLAN(Virtual Local Area Network,虚拟局域网)允许在物理交换机上创建多个逻辑网络。

flowchart TB
    subgraph Physical[物理交换机]
        direction TB
        P1[端口1<br/>VLAN 10]
        P2[端口2<br/>VLAN 10]
        P3[端口3<br/>VLAN 20]
        P4[端口4<br/>VLAN 20]
    end

    subgraph Logical[逻辑视图]
        direction TB
        VLAN10[VLAN 10<br/>部门A]
        VLAN20[VLAN 20<br/>部门B]
    end

    P1 -.->|逻辑上| VLAN10
    P2 -.->|属于| VLAN10
    P3 -.->|逻辑上| VLAN20
    P4 -.->|属于| VLAN20

    P1 <-->|物理上不能<br/>直接通信| P3
    P2 <-->|需要路由器| P4

    style P1 fill:#e3f2fd
    style P2 fill:#e3f2fd
    style P3 fill:#fff9c4
    style P4 fill:#fff9c4
    style VLAN10 fill:#90caf9
    style VLAN20 fill:#ffe082

图表讲解:这张图展示了VLAN的概念——同一个交换机上的设备被逻辑隔离。

VLAN的作用:

  • 安全隔离:不同VLAN的设备默认不能直接通信
  • 广播控制:广播帧只在VLAN内传播,减少不必要的流量
  • 管理便利:设备移动不需要重新布线,只需要改变VLAN配置

VLAN的Access端口连接终端设备,属于一个VLAN,发送和接收不带标签的帧。交换机内部给帧打上VLAN标签,从Access端口发出时去掉标签。

VLAN的Trunk端口连接交换机之间或交换机与路由器,可以传输多个VLAN的帧,帧带VLAN标签。Trunk让VLAN可以跨越多个交换机。

不同VLAN之间的通信需要路由

  • 传统方法:路由器的一个物理接口连接一个VLAN
  • 现代方法:单臂路由(Router-on-a-stick),路由器的一个物理接口通过Trunk连接交换机,用子接口对应不同VLAN
  • 最佳实践:三层交换机,内置路由功能,线速转发

六、WiFi:无线局域网

WiFi(IEEE 802.11)是最成功的无线网络技术,让设备摆脱了网线的束缚。

CSMA/CA:无线介质的访问控制

flowchart TB
    Start[需要发送] --> Listen[监听信道]
    Listen --> Busy{信道忙?}
    Busy -->|是| Wait[等待IFS<br/>然后退避随机时间]
    Busy -->|否| RTS[可选:发送RTS<br/>请求发送]
    Wait --> Listen
    RTS --> CTS[接收方CTS<br/>清除发送]
    CTS --> Send[发送数据]
    Send --> ACK[接收方ACK]
    ACK --> Success{成功?}
    Success -->|否| Backoff[指数退避]
    Success -->|是| Done[完成]

    style Busy fill:#ffcdd2
    style Send fill:#c8e6c9
    style Backoff fill:#fff9c4

图表讲解:这张图展示了WiFi的CSMA/CA机制——无线环境不能像有线那样检测碰撞,所以采取了”避免碰撞”的策略。

WiFi不能像以太网那样检测碰撞(因为隐藏站问题——发送方可能听不到其他站的发送),所以采用CSMA/CA(碰撞避免)而非CSMA/CD:

  1. 载波监听:发送前监听信道,如果忙就等待
  2. 虚拟载波监听:通过RTS/CTS(请求发送/清除发送)预约信道,让其他站知道信道将被占用
  3. 退避:等待DIFS(分布式帧间间隔)后,选择一个随机退避时间
  4. 发送:退避计数器到0后开始发送
  5. 确认:接收方正确接收后返回ACK,发送方收到ACK表示发送成功

RTS/CTS是可选的,主要用于长帧(避免长帧碰撞浪费大量带宽)。对于短帧,可能直接发送,不用RTS/CTS。

WiFi的世代演进

标准年份频段理论速率特点
802.11b19992.4GHz11Mbps早期WiFi
802.11a19995GHz54Mbps高频,干扰少
802.11g20032.4GHz54Mbps兼容b,速率提升
802.11n20092.4/5GHz600MbpsMIMO,双频
802.11ac20135GHz6.93Gbps千兆WiFi
802.11ax20192.4/5GHz9.6GbpsWiFi 6,高效率

WiFi 6(802.11ax)引入了OFDMA(正交频分多址),允许多个设备同时发送,提高了密集环境下的效率。WiFi 6E将频段扩展到6GHz,减少了干扰。


结语

链路层是网络的基础设施,它把抽象的IP数据报变成能够在具体介质上传输的信号。从以太网到WiFi,链路层技术在不断演进,但核心使命不变——可靠、高效地传输数据帧。

理解链路层的工作原理,能帮助你:

  • 设计局域网:划分VLAN、部署交换机、规划WiFi覆盖
  • 排查网络故障:MAC地址冲突、环路检测、端口协商问题
  • 优化网络性能:调整MTU、启用链路聚合、配置QoS

接下来的文章将深入物理层,看看比特如何变成信号。


常见问题解答

Q1:为什么需要MAC地址,只用IP不行吗?

:IP地址和MAC地址服务不同层次的需求,不能互相替代。

IP地址是网络层地址,用于跨网络寻址,有层次结构(网络+主机),便于路由。

MAC地址是链路层地址,用于本地网络寻址,是平面的,便于在局域网内唯一标识设备。

每一跳的转发都需要MAC地址——路由器根据IP决定下一跳,然后用ARP找到下一跳的MAC地址。如果只用IP,需要在每个IP包中携带所有中间路由器的信息,这是不现实的。

分层是网络设计的核心原则,每层解决自己的问题,不要让下层知道上层的事情。


Q2:交换机和路由器有什么区别?

:交换机和路由器是不同层次的设备。

交换机工作在链路层(传统上),根据MAC地址转发帧,用于连接局域网内的设备。

路由器工作在网络层,根据IP地址转发数据报,用于连接不同的网络。

现代交换机也有三层功能(三层交换机),可以路由IP包,但主要用于局域网内部。路由器主要用于网络之间,支持复杂的路由协议、NAT、防火墙等功能。

简单来说:交换机连接设备(如办公室的电脑),路由器连接网络(如办公室和互联网)。


Q3:什么是STP,为什么需要它?

:STP(Spanning Tree Protocol,生成树协议)用于防止交换网络中的环路。

环路是危险的——广播帧会无限循环(广播风暴),MAC地址表会震荡,交换机会不堪重负。

STP通过阻塞某些端口,把有环路的物理拓扑变成无环路的逻辑树(生成树),确保任意两台设备之间只有一条路径。

STP的代价是阻塞链路的带宽被浪费。现代替代方案如RSTP(快速生成树)收敛更快,MSTP(多生成树)可以针对不同VLAN计算不同的生成树,提高链路利用率。

在小型网络中,也可以通过设计不配置冗余链路来避免环路,不需要STP。


Q4:WiFi信道是什么,如何选择?

:WiFi信道是频谱的划分。

2.4GHz有14个信道(1-11是中国可用),每个信道20MHz宽,相邻信道有重叠。实际上只有1、6、11完全不重叠,所以这三个信道最常用。

5GHz有更多信道,重叠更少,干扰更少。

选择信道的原则:

(1)选择干扰最少的信道,可以用WiFi分析工具扫描周围的WiFi信号,选择使用最少的信道。

(2)2.4GHz优先用1、6、11,避免使用部分重叠的信道。

(3)5GHz优先,因为干扰少、速度快。

在公寓楼等密集环境,2.4GHz非常拥挤,5GHz是更好的选择。


Q5:什么是以太网链路聚合?

:链路聚合(Link Aggregation,也叫LACP或Port Channel)是把多条物理链路组合成一条逻辑链路,提高带宽和可靠性。

例如,把两条1Gbps的链路聚合成一条2Gbps的逻辑链路。

好处:

(1)增加带宽:多条链路同时工作,总带宽是所有链路之和。

(2)冗余:一条链路故障,流量自动切换到其他链路,提高可靠性。

(3)负载均衡:流量可以根据规则(源/目的MAC/IP、哈希等)分布到不同链路。

注意链路聚合的流量分布是按流的,不是按包的——单个流的带宽不会超过单条链路的带宽。对于大流量服务器(如存储服务器),链路聚合是常用的优化手段。


更新时间:2026年3月2日 作者:网络技术专栏 标签:#以太网 交换机 VLAN WiFi 链路层