局域网与广域网协议
以太网(IEEE 802.3)
以太网是目前应用最广泛的局域网技术,由 Xerox、Intel 和 DEC 于 1975 年联合开发,后由 IEEE 802.3 委员会标准化。
MAC 地址
MAC 地址(Media Access Control Address)是数据链路层使用的物理地址,用于在局域网中唯一标识一个网络接口。MAC 地址长度为 48 位(6 字节),通常表示为 12 个十六进制数,如 00:1A:2B:3C:4D:5E。
MAC 地址的结构:
- 前 24 位(OUI,Organizationally Unique Identifier):厂商代码,由 IEEE 分配给设备制造商
- 后 24 位:厂商分配的设备序列号
特殊 MAC 地址:
- 广播地址:
FF:FF:FF:FF:FF:FF,表示局域网内所有站点 - 组播地址:第一字节最低位为 1,表示一组站点
- 单播地址:第一字节最低位为 0,表示单个站点
以太网帧结构(Ethernet II 格式)
| 前导码(Preamble) | SFD | 目的MAC | 源MAC | 类型/长度 | 数据(Payload) | FCS |
| 7字节 |1字节| 6字节 | 6字节 | 2字节 | 46~1500字节 |4字节|
各字段说明:
- 前导码(Preamble):7 字节,交替的 0 和 1(
10101010),用于接收方同步时钟 - 帧起始定界符(SFD, Start Frame Delimiter):1 字节,
10101011,标志帧的开始 - 目的 MAC 地址:6 字节,接收方的物理地址
- 源 MAC 地址:6 字节,发送方的物理地址
- 类型/长度字段:2 字节
- 值 ≥ 1536(0x0600)时表示类型(如 0x0800 表示 IPv4,0x0806 表示 ARP,0x86DD 表示 IPv6)
- 值 ≤ 1500 时表示长度(802.3 原始格式)
- 数据字段:46~1500 字节。不足 46 字节时需要填充(Padding),这是因为以太网最小帧长为 64 字节(14 字节首部 + 46 字节数据 + 4 字节 FCS)
- FCS(Frame Check Sequence):4 字节,使用 CRC-32 校验,用于检错
以太网的 MTU(Maximum Transmission Unit,最大传输单元)为 1500 字节,即数据字段最大为 1500 字节。如果网络层要传输的分组超过 1500 字节,需要在网络层进行分片。
以太网的演进
| 标准 | 速率 | 传输介质 | 名称由来 |
|---|---|---|---|
| 10BASE5 | 10 Mbps | 粗同轴电缆 | 最大段长 500 m |
| 10BASE2 | 10 Mbps | 细同轴电缆 | 最大段长约 200 m(实际 185 m) |
| 10BASE-T | 10 Mbps | 双绞线 | T = Twisted Pair |
| 100BASE-TX | 100 Mbps | 5类双绞线 | 快速以太网 |
| 1000BASE-T | 1 Gbps | 5e类双绞线 | 千兆以太网 |
| 10GBASE-T | 10 Gbps | 6a类双绞线 | 万兆以太网 |
现代以太网几乎全部使用交换机和双绞线(或光纤),工作在全双工模式下,不再使用 CSMA/CD。
虚拟局域网(VLAN)
VLAN(Virtual LAN)是在物理局域网的基础上,通过交换机配置逻辑地划分出多个独立的广播域。
- 作用:隔离广播域,提高网络安全性和性能
- 实现方式:在以太网帧中插入 4 字节的 VLAN 标签(802.1Q 标签),包含 VLAN ID(12 位,0~4095)
- Trunk 端口:交换机之间连接的端口,传输带 VLAN 标签的帧
- Access 端口:连接终端设备的端口,只属于一个 VLAN,收发不带标签的帧
无线局域网(IEEE 802.11)
无线局域网(WLAN)使用无线电波作为传输介质,最常见的标准是 IEEE 802.11 系列(商业名称为 Wi-Fi)。
802.11 标准演进
| 标准 | 发布年份 | 频段 | 最大速率 | 说明 |
|---|---|---|---|---|
| 802.11 | 1997 | 2.4 GHz | 2 Mbps | 原始标准 |
| 802.11b | 1999 | 2.4 GHz | 11 Mbps | 第一个广泛使用的标准 |
| 802.11a | 1999 | 5 GHz | 54 Mbps | 不与 b 兼容 |
| 802.11g | 2003 | 2.4 GHz | 54 Mbps | 向下兼容 b |
| 802.11n (Wi-Fi 4) | 2009 | 2.4/5 GHz | 600 Mbps | MIMO 技术 |
| 802.11ac (Wi-Fi 5) | 2014 | 5 GHz | 3.5 Gbps | 更宽信道,更多 MIMO |
| 802.11ax (Wi-Fi 6) | 2019 | 2.4/5 GHz | 9.6 Gbps | OFDMA,更高密度 |
802.11 帧结构
802.11 帧比以太网帧复杂,包含最多 4 个地址字段(因为无线环境中需要区分发送方、接收方、源、目的):
| 帧控制 | 持续时间/ID | 地址1 | 地址2 | 地址3 | 序列控制 | 地址4 | 数据 | FCS |
| 2字节 | 2字节 | 6字节 | 6字节 | 6字节 | 2字节 | 6字节 | 可变 | 4字节|
- 地址1:接收方地址(RA,Receiver Address)
- 地址2:发送方地址(TA,Transmitter Address)
- 地址3:源地址(SA)或目的地址(DA),取决于帧类型
- 地址4:仅在无线分布式系统(WDS)中使用
工作模式
- 基础设施模式(Infrastructure Mode):所有站点通过 AP(Access Point,接入点)通信,AP 连接有线网络。这是最常见的模式。
- 自组织模式(Ad Hoc Mode):站点之间直接通信,不需要 AP。也称为 IBSS(Independent BSS)。
WiFi 安全
- WEP(Wired Equivalent Privacy):最早的加密标准,使用 RC4 算法,已被破解,不安全
- WPA(Wi-Fi Protected Access):WEP 的改进版,使用 TKIP 加密
- WPA2:目前的主流标准,使用 AES 加密(CCMP),安全性高
- WPA3:最新标准,进一步增强安全性,支持 192 位加密
广域网协议
PPP 协议(Point-to-Point Protocol)
PPP 是在点对点链路上传输网络层数据的数据链路层协议,广泛用于拨号上网、DSL、专线等场景。
PPP 是一种面向字节的数据链路层协议,用于在两个节点之间的点对点链路上传输数据。它支持多种网络层协议(IP、IPX 等),提供身份验证、压缩和差错检测功能。
PPP 帧结构
| 标志(Flag) | 地址(Addr) | 控制(Ctrl) | 协议(Protocol) | 数据(Payload) | FCS | 标志(Flag) |
| 1字节 | 1字节 | 1字节 | 2字节 | 可变 | 2字节| 1字节 |
- 标志字段:
0x7E,帧的定界符(与 HDLC 相同) - 地址字段:
0xFF,广播地址(PPP 是点对点,无实际意义) - 控制字段:
0x03,无编号帧(UI) - 协议字段:指示数据字段的协议类型(如
0x0021= IPv4,0xC021= LCP,0x8021= IPCP) - FCS:通常 2 字节(也可协商为 4 字节),CRC 校验
PPP 的工作阶段
PPP 链路的建立和维护分为四个阶段:
- 链路建立阶段(Link Establishment):使用 LCP(Link Control Protocol,链路控制协议) 协商链路参数,如最大接收单元(MRU)、认证协议、压缩协议等
- 身份验证阶段(Authentication):可选阶段,使用 PAP(Password Authentication Protocol) 或 CHAP(Challenge Handshake Authentication Protocol) 进行身份验证
- PAP:两次握手,明文传输密码,安全性低
- CHAP:三次握手,使用 MD5 哈希,不传输明文密码,安全性高
- 网络层协议阶段(Network Layer Protocol):使用 NCP(Network Control Protocol) 为每种网络层协议配置参数。例如 IPCP(IP Control Protocol)用于分配 IP 地址
- 数据传输阶段(Network Layer Protocol):正常传输网络层数据
- 链路终止阶段(Link Termination):使用 LCP 终止链路
PPP 的设计非常灵活:LCP 负责链路层参数协商,NCP 负责网络层参数协商,两者解耦。这使得 PPP 可以支持任意网络层协议,只需定义对应的 NCP。
HDLC 协议(High-level Data Link Control)
HDLC 是 ISO 制定的面向比特的数据链路层协议,是许多其他链路层协议(如 PPP、LAPB、LAPD)的基础。
HDLC 帧结构
| 标志(Flag) | 地址(Addr) | 控制(Ctrl) | 信息(Info) | FCS | 标志(Flag) |
| 1字节 | 1字节 | 1字节 | 可变 | 2字节| 1字节 |
- 标志字段:
0x7E(01111110),使用比特填充法保证数据中不出现该模式 - 地址字段:标识从站地址(多点连接时),点对点时通常为
0xFF - 控制字段:标识帧类型和序号
- FCS:2 字节或 4 字节,CRC 校验
HDLC 帧类型
根据控制字段的格式,HDLC 帧分为三类:
-
信息帧(I 帧,Information):控制字段第 1 位为 0
- 携带用户数据
- 包含发送序号 N(S) 和接收序号 N(R)
- 可捎带确认(N(R) 表示期望收到的下一帧序号)
-
监控帧(S 帧,Supervisory):控制字段前 2 位为
10- 不携带数据,用于流量控制和差错控制
- 四种类型:RR(接收就绪,ACK)、RNR(接收未就绪)、REJ(拒绝,GBN)、SREJ(选择拒绝,SR)
-
无编号帧(U 帧,Unnumbered):控制字段前 2 位为
11- 不包含序号,用于链路管理
- 如 SABM(设置异步平衡模式)、UA(无编号确认)、DISC(断开连接)等
HDLC 工作模式
- 正常响应模式(NRM, Normal Response Mode):主从模式,从站只有在收到主站的询问后才能发送
- 异步响应模式(ARM, Asynchronous Response Mode):从站可以主动发送,但仍由主站管理链路
- 异步平衡模式(ABM, Asynchronous Balanced Mode):对等模式,两个站地位平等,都可以发起传输。PPP 就使用类似 ABM 的模式
数据链路层设备
网桥(Bridge)
- 工作在数据链路层,基于 MAC 地址转发帧
- 通常只有 2 个端口,用于连接两个局域网段
- 自学习 MAC 地址表,隔离冲突域
- 存储转发方式,转发速度较慢
交换机(Switch)
- 工作在数据链路层(二层交换机),本质上是多端口网桥
- 基于 MAC 地址转发帧,每个端口是一个独立的冲突域
- 支持存储转发和直通转发(Cut-through)两种方式
- 支持 VLAN、QoS、端口聚合等高级功能
- 是现代局域网的核心设备
注意区分:集线器(Hub)工作在物理层,所有端口共享一个冲突域,半双工;交换机(Switch)工作在数据链路层,每个端口是独立的冲突域,全双工。
典型例题
例题1:以太网帧填充计算
一个以太网帧的数据字段只有 20 字节,请问需要填充多少字节?该帧的总长度是多少?
- 以太网数据字段最小为 46 字节(保证最小帧长 64 字节)
- 当前数据为 20 字节,需要填充: 字节
- 以太网帧首部(目的MAC+源MAC+类型)= 6+6+2 = 14 字节
- FCS = 4 字节
- 总长度 = 14(首部)+ 46(数据+填充)+ 4(FCS)= 64 字节
注意:前导码(7字节)和 SFD(1字节)通常不计入帧长。
答案:需要填充 26 字节,帧总长度为 64 字节(最小帧长)。
例题2:PPP 协议分析
PPP 链路建立过程中,LCP 和 NCP 分别负责什么?如果一个 PPP 连接只传输 IPv4 数据,需要哪些协议参与?
-
LCP(Link Control Protocol):负责数据链路层的参数协商和链路管理,包括:
- 最大接收单元(MRU)协商
- 认证协议协商(PAP/CHAP)
- 压缩协议协商
- 链路质量监控
- 链路建立和终止
-
NCP(Network Control Protocol):负责网络层参数的配置,每种网络层协议对应一个 NCP:
- IPCP(IP Control Protocol):配置 IP 地址、DNS 等
- IPXCP:配置 IPX 协议
- IPv6CP:配置 IPv6
-
如果只传输 IPv4,需要的协议:
- LCP:链路层参数协商
- 认证协议(可选):PAP 或 CHAP
- IPCP:IP 地址分配和配置
- IPv4:数据传输
答案:LCP 负责链路层参数协商,NCP 负责网络层参数配置。只传 IPv4 时需要 LCP、(可选的认证协议)、IPCP 和 IPv4。
例题3:MAC 地址与广播
一个以太网帧的目的 MAC 地址为 FF:FF:FF:FF:FF:FF,这是什么类型的地址?该帧会被哪些站点接收?
FF:FF:FF:FF:FF:FF是广播地址(所有位全为 1)。- 广播帧会被同一个广播域内的所有站点接收和处理。
- 在传统的共享式以太网(集线器连接)中,所有站点都在同一个广播域和冲突域中。
- 在交换式以太网中,交换机默认会将广播帧从除接收端口外的所有端口泛洪(Flooding),因此所有连接在同一台交换机(或同一 VLAN)上的站点都会收到。
- 路由器不会转发广播帧(路由器隔离广播域),因此广播帧不会跨网段传播。
答案:这是广播地址,会被同一广播域内的所有站点接收。路由器不转发广播帧,因此广播仅限于本地网段。
练习题
练习1
比较 PPP 和 HDLC 协议的异同。
相同点:
- 都是数据链路层协议,都支持点对点连接
- 都使用
0x7E作为帧定界符,使用比特填充(PPP 异步模式也支持字符填充) - 都提供差错检测(FCS/CRC)
- 帧结构相似(标志、地址、控制、数据、FCS)
不同点:
- 面向方式:PPP 面向字节,HDLC 面向比特
- 复杂度:PPP 简单灵活,HDLC 功能更强大但更复杂
- 连接类型:PPP 主要支持点对点,HDLC 支持点对点和多点
- 身份验证:PPP 支持 PAP/CHAP 身份验证,HDLC 不支持
- 多协议支持:PPP 通过 NCP 支持多种网络层协议,HDLC 不关心网络层协议
- 序号机制:HDLC 有完整的序号和确认机制(I帧/S帧),PPP 默认不提供可靠传输(可选的可靠传输模式)
- 应用场景:PPP 用于拨号、DSL、专线等;HDLC 用于早期的专线网络和 Cisco 路由器的串行链路(Cisco HDLC)
练习2
以太网交换机和集线器的主要区别是什么?为什么交换机取代了集线器?
主要区别:
- 工作层次:集线器工作在物理层,交换机工作在数据链路层
- 冲突域:集线器所有端口共享一个冲突域,交换机每个端口是独立的冲突域
- 工作模式:集线器只能半双工,交换机支持全双工
- 转发方式:集线器将信号广播到所有端口,交换机基于 MAC 地址表转发到特定端口
- 带宽:集线器所有端口共享总带宽,交换机每个端口有独立带宽
- 功能:集线器只有信号放大和转发功能,交换机支持 MAC 地址学习、VLAN、QoS 等
交换机取代集线器的原因:
- 性能更高:全双工、独立冲突域、并行传输,大大提高了网络吞吐量
- 减少冲突:每个端口独立冲突域,避免了 CSMA/CD 的冲突开销
- 安全性更好:单播帧只转发到目标端口,其他端口无法窃听
- 功能更丰富:支持 VLAN 隔离广播域、QoS 优先级、端口聚合等
- 成本下降:随着技术发展,交换机的价格降到了可接受的水平
术语对照表
| 中文术语 | 英文术语 | 缩写 | 说明 |
|---|---|---|---|
| 介质访问控制地址 | Media Access Control Address | MAC | 48位物理地址 |
| 以太网 | Ethernet | - | 最广泛的局域网技术 |
| 帧校验序列 | Frame Check Sequence | FCS | CRC校验字段 |
| 最大传输单元 | Maximum Transmission Unit | MTU | 数据字段最大长度 |
| 虚拟局域网 | Virtual LAN | VLAN | 逻辑划分广播域 |
| 接入点 | Access Point | AP | 无线局域网中心设备 |
| 点对点协议 | Point-to-Point Protocol | PPP | 点对点链路层协议 |
| 链路控制协议 | Link Control Protocol | LCP | PPP链路参数协商 |
| 网络控制协议 | Network Control Protocol | NCP | PPP网络层参数协商 |
| 挑战握手认证协议 | Challenge Handshake Auth Protocol | CHAP | PPP安全认证 |
| 高级数据链路控制 | High-level Data Link Control | HDLC | 面向比特的链路层协议 |
| 服务集标识符 | Service Set Identifier | SSID | WiFi网络名称 |
| 载波监听多路访问/冲突避免 | CSMA with Collision Avoidance | CSMA/CA | 无线局域网MAC协议 |
| 网桥 | Bridge | - | 二层转发设备(2端口) |
| 交换机 | Switch | - | 多端口二层转发设备 |
| 集线器 | Hub | - | 物理层共享设备 |
| 前导码 | Preamble | - | 以太网帧同步字段 |
| 帧起始定界符 | Start Frame Delimiter | SFD | 以太网帧开始标志 |
