本文内容基于 2025 秋季《计算机网络》课程讲述,如有差错,欢迎指正
局域网#
定义与关系#
- 局域网 (LAN):从链路层角度定义,指不需要网络层技术(如路由)就可以进行数据传输的网络
- 子网 (Subnet):从网络层角度定义,指由具有相同网络地址前缀的接口组成的网络
- 结论:虽然定义角度不同,但在实际网络中,局域网 = 子网。局域网内部通信靠 MAC 地址,跨局域网通信靠 IP 地址
MAC 地址#
Mac地址是固化在网卡 (NIC) 上的 48 位 (6 字节) 标识符,用于在物理上相连的网络接口之间收发帧
- 格式:十六进制表示,如
1A-2F-BB-76-09-AD- 前 24 位:厂商标识,由 IEEE 分配
- 后 24 位:厂商内部分配的序列号
- 特性:
- 不同于 IP 的层次化,没有层次结构
- 全球唯一(理论上)
- 一般不可更改
- 广播地址:
FF-FF-FF-FF-FF-FF
在局域网内部,通过 ARP 协议,将已知的 IP 地址解析为对应的 MAC 地址,详见ARP协议 ↗
以太网#
以太网是目前最主流的有线局域网技术,其简单、价格低廉、易于扩展
以太网帧#
各个字段的作用
- Preamble(前同步码):8 字节
- 前7字节用于同步发送方与接收方之间的时钟频率
- 第8个字节作为定界符(字节填充的定界符)
- 一般算作物理层部分,不会上交给链路层
- 目的 MAC / 源 MAC:各 6 字节
- 类型 (Type):2 字节。指出上层(网络层)协议类型
- 数据 (Data):上层数据包,46 ~ 1500 字节
- MTU:最大传输单元 1500 字节
- 最小长度:46 字节
- 以太网规定最短有效帧长为 64 字节(46 + 18),小于 64 字节的帧会被认为是无效帧而丢弃
- 10Mbps以太网最大长度为2500米,最差情况下RTT约是50微秒,在这个时间内能发送500bit,加上安全余量增加至512bit,即64Bytes。详见CSMA/CD ↗
- CRC:4 字节,接收方用于校验
- 无效帧直接丢弃,不负责重传
以太网提供的是无连接、不可靠服务
- 无连接:网卡不建立连接即可发送数据
- 不可靠:接收方进行 CRC 校验,错则丢弃,不发 ACK。重传由上层 (TCP) 负责
- 多路访问控制 (CSMA/CD)
各个版本的以太网#
经典以太网
- 最高速率10Mbps
- 设备通过收发器挂接入同轴电缆(共享总线)
- 使用中继器连接多段同轴电缆

由于当时中继器的处理能力和物理条件的限制,以太网的物理规模仍有一定限制,即5-4-3原则:
- 任意两个收发器之间距离不得超过2.5km
- 任意两个收发器之间经过的中继器不能超过4个(5段电缆)
- 使用最多3种不同的以太网技术(不同介质上实现的以太网技术)
早期以太网采用半双工的工作方式(不能同时接收和发送数据),采取CSMA/CD技术进行多路访问控制,使用二进制指数后退确定等待时间
二进制指数后退( Binary exponential backoff )的CSMA/CD:
- 确定基本退避时间槽,以太网中设为512比特发送时间
- 定义重传次数 ,,即
- 从整数集合中随机地取出一个数,记为
- 等待时间就是 倍的时间槽
- 当重传达 16 次仍不能成功时即丢弃该帧
快速以太网(Fast Ethernet)
- 带宽达到100Mbps
- 单比特传输延迟(比特时间)下降到10ns
- 保留原来的工作方式(帧格式、接口、过程、规则)
- 自动协商(autonegotiation):根据另一端速度与双工模式,自动选择最高速度
千兆以太网(gigabit Ethernet)
- 1000Mbps(1Gbps)
- 保留原来的工作方式(帧格式、接口、过程、规则)
- 支持全双工方式,上下行隔离开互不冲突,可以同时收发数据,不需要CSMA/CD,但同时也兼容半双工
- 引入了流量控制和巨型帧(Jumbo frame)
- 流量控制:Pause帧
- 巨型帧:9000字节(现代线路抗干扰能力强,传更大的帧收益更大)
万兆以太网(10-Gigabit Ethernet)
- 10Gbps
- 只支持全双工,不再使用CSMA/CD
- 物理层改进,光纤技术
40G-100G以太网
- 40Gbps & 100Gbps
- 联网设备可以通过可插拔模块支持不同的物理层类型
- 采用多根线缆并行化传输

链路层数据交换技术#
在局域网内部,如何根据Mac地址来决定把帧交给哪个接收方
集线器 (Hub)#
集线器本质是一个多端口的中继器,内部所有端口用一根总线联通。从一个端口收到的比特,向所有其他端口转发
- 工作在物理层
- 所有端口属于同一个冲突域,必须使用CSMA/CD协议
- 不支持全双工

交换机 (Switch)#
交换机是现在链路层的核心,又称网桥,内部通过高速背板连接所有端口。在收到帧后,检查 MAC 地址,有选择地转发。
- 工作在链路层
- 每个端口是一个独立的冲突域
- 可以实现并行传输
- 支持全双工(无冲突,不需要 CSMA/CD)

交换机内部维护了一张Mac地址表,对于每一个进来的帧,都会通过查表来确定转发端口,不需要像集线器一样广播
交换机对于网络中的站点是透明的,站点无需感受到交换机的存在
- 即插即用:无需人工配置 IP 或路由表,自动学习
逆向学习与转发#
交换机维护一张 MAC 地址表:(MAC 地址, 接口, TTL)。
考虑一个简单的场景,初始地址表为空

学习过程:
- 假设主机向主机发送一个帧,集线器会向所有端口广播,交换机从端口1收到该帧
- 交换机检查该帧的源 MAC 地址和接收到该帧的端口1,在表中记录/更新
(MAC: A, 接口: 1),设定一个老化时间 - 当某个表项的老化时间已到就会删除表项
转发:
- 假设交换机从端口 收到一个发往主机 的帧,交换机查询 MAC 表
- 情况 1 (命中):如果 的接口是 (且 ),则单播转发到
- 情况 2 (过滤):如果 的接口是 (目的地和源在同侧),则丢弃
- 情况 3 (泛洪):如果表中找不到 或者目的MAC是广播地址,则向除 以外的所有接口泛洪
现代局域网中,可以直接使用交换机连接所有主机,这样不会产生冲突域,也就不再需要CSMA/CD协议

虚拟局域网(VLAN)#
VLAN 本质上是想要在同一套物理设备上(交换机)构建出多张网络。这样可以隔绝一些ARP或DHCP广播,保护隐私性的同时提高网络效率
实现方式#
基于端口的方法:
将交换机的端口分为不同组,每一组如同一个独立的交换机,即一个VLAN。端口可以进行动态配置

交换机还需要维护一个VLAN Table,记录着每个VLAN ID 对应的端口。在转发时,只向属于相同VLAN的端口进行转发
VLAN之间的数据交换需要通过路由器进行,就如同两个独立局域网一样
基于MAC地址的方法:
- 交换机记录每个MAC地址所属的VLAN ID,然后再通过VLAN ID进行转发
- 可能不够灵活,比如MAC地址变动
基于协议的方法:
- 基于网络层的协议来区分不同虚拟局域网
- 打破了网络的分层结构,还需要主机参与
基于子网的方法:
- 根据子网IP转发
- 设备需要网络层能力
跨越多台交换机的VLAN#
当VLAN的范围很大,一台交换机无法满足要求时,就需要多台交换机协作。 为了识别所属的VLAN,我们需要在帧头部添加额外标签(802.1Q协议)

通过VLAN ID识别出不同子网,然后再进行VLAN转发
生成树协议#
环路问题#
为了提高网络可靠性,减少故障带来的影响,网络中通常存在冗余链路,但这样会导致环路产生
- 对于广播帧来说,环路会产生广播风暴,无限循环,占用网络带宽
- 对于单播帧来说,环路可能导致重复帧的产生
- 重复帧来自不同端口,会导致交换机MAC表不断修改

STP 算法#
这个算法比较复杂,我们这里简单说一下
- 目标:在物理上有环路的网络中,逻辑上切断某些链路,构建一棵无环的生成树
- 机制:
- 选举根桥(树根节点)、根端口(交换机距离根最近的端口,父指针)、指定端口(网段距离根最近的端口,子指针)
- 一个网段上只会有一个指定端口,对于非指定端口进来的不会进行广播
- 动态恢复:当某个链路故障时,STP 会重新计算,激活之前的备用链路
其他局域网技术与协议#
前面所说的以太网是一个无连接的协议,下面这两个是在链路层实现面向连接的技术
PPP#
PPP协议广泛用于将用户接入运营商网络(流量计费),简单、灵活、面向连接
- 特点:
- 封装:提供在同一链路上支持不同的网络层协议;既支持字节链路,也支持面向比特的比特链路
- LCP (链路控制协议):用来建立、配置和测试数据链路的链路控制协议,通信双方可协商一些选项
- NCP (网络控制协议):针对不同的网络层协议提供配置
- 身份认证
PPPoE#
建立在以太网上的面向连接协议
- 虽然以太网廉价且普及,但是运营商需要 PPP 的认证和计费功能。
- 将 PPP 帧封装在以太网帧的数据部分,提供了基于用户的访问控制、计费、业务类型分类等功能
- 基于Client/Server 模型,客户端与PPPoE服务器进行通讯
Hub、Switch、Router 对比#
| 设备 | 层次 | 核心功能 | 广播域 | 冲突域 | 寻址依据 |
|---|---|---|---|---|---|
| 集线器 (Hub) | 物理层 | 信号放大、盲目转发 | 1个 | 1个 | 无 |
| 交换机 (Switch) | 链路层 | 自学习、存储转发 | 1个 (VLAN除外) | N个 (每个端口1个) | MAC 地址 |
| 路由器 (Router) | 网络层 | 路由计算、分组转发 | N个 | N个 | IP 地址 |