网络与信息安全技术 第 5 篇:链路层协议与以太网交换技术
全文摘要
本文将带你深入理解数据链路层的差错控制机制和多路访问协议。你将学到数据链路层的功能与服务、差错编码的原理与计算方法、多路访问协议的分类与工作机制、MAC地址与ARP协议、以太网帧结构与CSMA/CD机制、交换机的工作原理与MAC地址表学习、VLAN虚拟局域网技术,以及PPP点对点协议。通过阅读本文,你将掌握数据链路层的核心技术,理解局域网的构建原理和交换技术。
一、数据链路层的基本服务
数据链路层是TCP/IP协议栈的第二层,负责在直连的两个节点之间传输数据帧。网络层负责端到端的数据传输,而数据链路层负责单跳(hop-by-hop)的数据传输。
数据链路层的位置与作用
数据链路层介于物理层和网络层之间:
- 对网络层:数据链路层提供将网络层分组(IP数据报)封装成帧(frame)并通过链路传输的服务
- 对物理层:数据链路层使用物理层的比特传输服务,在比特流的基础上实现可靠的数据传输
数据链路层的核心功能
组帧(Framing):将网络层的分组封装成数据链路层的帧,添加头部和尾部。头部包含控制信息(如MAC地址、帧类型),尾部包含差错检测信息。
差错控制(Error Control):检测并纠正传输过程中产生的比特错误。通过校验和、CRC等差错编码实现。
流量控制(Flow Control):防止发送方发送太快,淹没接收方。通过滑动窗口机制实现。
可靠传输:有些数据链路层协议(如HDLC)提供可靠传输,通过确认和重传机制实现。以太网不提供可靠传输,由上层(如TCP)处理。
介质访问控制(Medium Access Control,MAC):协调多个设备对共享传输介质的访问,避免冲突。
链路与网络
数据链路层协议运行在链路(link)上。链路是连接两个节点的通信路径,可以是有线(如双绞线、光纤)或无线(如WiFi)。
网络由多个链路和中间节点(路由器、交换机)组成。数据从源主机到目的主机需要经过多个链路,每跳的数据链路层协议可以不同(如光纤链路用PPP,以太网链路用以太网协议)。
二、差错控制
物理层的信号传输可能受到干扰导致比特错误,数据链路层需要检测并纠正这些错误。
差错编码的基本原理
差错编码通过添加冗余信息检测或纠正错误。发送方在原始数据中添加冗余位,接收方通过解码检测错误。
差错检测(Error Detection):可以发现传输错误,但不能纠正。常用的检测方法有奇偶校验、校验和、循环冗余校验(CRC)。如果检测到错误,通常请求重传。
差错纠正(Error Correction):不仅能发现错误,还能纠正。常用的纠错方法是汉明码(Hamming Code)。纠错编码添加更多冗余,可以纠正一定数量的错误,不需要重传。
奇偶校验
奇偶校验是最简单的差错检测方法。在数据后添加一个校验位,使得整个数据中1的个数为奇数(奇校验)或偶数(偶校验)。
示例:数据1011001
- 奇校验:数据中有4个1,偶数,校验位为1,使得1的总数为5(奇数)
- 偶校验:数据中有4个1,偶数,校验位为0,保持1的总数为4(偶数)
接收方重新计算校验位,如果与收到的校验位不同,说明检测到错误。
奇偶校验只能检测奇数个比特错误,如果偶数个比特同时出错,无法检测。奇偶校验的检错能力有限,但实现简单,开销小。
循环冗余校验(CRC)
CRC是数据链路层最常用的差错检测方法,广泛应用于以太网、WiFi、PPP等协议。
CRC的工作原理:
- 发送方和接收方约定一个生成多项式G(x)
- 发送方在数据后添加r个0(r是G(x)的次数),将整个数据串视为多项式D(x)
- 用D(x)除以G(x),得到余数R(x)
- 将R(x)附加到原始数据后发送
- 接收方用收到的数据除以G(x),如果余数为0,说明没有错误
示例:假设数据是1011,生成多项式是G(x)=x³+x+1(对应二进制1011)
- 在数据后添加3个0:1011000
- 用1011000除以1011
- 余数是010
- 发送1011010
CRC的检错能力取决于生成多项式。如果选择得当,CRC可以检测所有单比特错误、双比特错误、奇数个错误、突发错误(长度不超过r+1)。以太网使用32位CRC(CRC-32),检错能力很强。
汉明码
汉明码是一种纠错编码,不仅可以检测错误,还可以纠正单个比特错误。
汉明距离(Hamming Distance):两个等长字符串对应位置不同字符的个数。例如,10101和11100的汉明距离是2(第2位和第4位不同)。
汉明码的纠错原理:如果要纠正t个错误,编码的汉明距离至少是2t+1。如果要检测t个错误,编码的汉明距离至少是t+1。
汉明码编码: 在数据中插入校验位,每个校验位负责某些位置的校验。校验位的位置是2的幂次(1、2、4、8、…),数据位填充其他位置。每个校验位校验其位置加上所有其位置作为二进制和包含该位置的位。
示例:4位数据d1d2d3d4编码成7位汉明码p1p2d1p3d2d3d4
- p1校验位置1、3、5、7(二进制末位为1)
- p2校验位置2、3、6、7(二进制倒数第二位为1)
- p3校验位置4、5、6、7(二进制倒数第三位为1)
接收方计算校验位,如果某个校验位错误,说明其校验的位置中有错。根据哪些校验位报错,可以定位出错的位,然后纠正。
三、多路访问控制协议
当多个设备共享同一条传输介质时,需要协调访问,避免冲突。多路访问控制协议(Medium Access Control,MAC协议)解决这个问题。
多路访问协议的分类
多路访问协议分为三类:
信道划分协议(Channel Partitioning):将信道划分为多个子信道,每个设备分配一个子信道。包括FDMA(频分多址)、TDMA(时分多址)、CDMA(码分多址)。
随机访问协议(Random Access):允许设备随机发送,通过冲突检测和恢复机制处理冲突。包括ALOHA、CSMA、CSMA/CD等。
受控访问协议(Controlled Access):设备按某种规则顺序访问信道,避免冲突。包括轮询(Polling)、令牌传递(Token Passing)。
信道划分协议
FDMA(Frequency Division Multiple Access,频分多址):将频谱划分为多个频段,每个用户分配一个频段。FM广播是FDMA的例子,每个电台使用不同的频率。
TDMA(Time Division Multiple Access,时分多址):将时间划分为时隙(slot),每个用户分配一个时隙。GSM蜂窝网络使用TDMA。
CDMA(Code Division Multiple Access,码分多址):每个用户分配一个独特的编码,所有用户同时使用整个频谱,接收方通过编码区分用户。3G蜂窝网络使用CDMA。
CDMA的工作原理:
- 每个比特被分成多个码片(chip),使用扩频码
- 不同用户的扩频码正交,内积为0
- 发送方将数据与扩频码相乘,接收方将收到的信号与扩频码相乘恢复数据
- 由于扩频码的正交性,其他用户的信号被滤除
CDMA的优点:抗干扰能力强(扩频增益)、容量大(所有用户同时使用整个频谱)、保密性好(不知道扩频码难以解码)、软容量(增加用户导致性能逐渐下降,而不是硬性限制)。
随机访问协议
ALOHA是最早的随机访问协议,用于夏威夷大学的无线网络。ALOHA允许设备随时发送,如果发生冲突,随机等待后重传。
纯ALOHA:设备随时发送,冲突概率高,效率约18%。
时隙ALOHA:将时间划分为时隙,设备只能在时隙开始时发送。冲突概率降低,效率约37%。
CSMA(Carrier Sense Multiple Access,载波侦听多路访问):设备发送前先侦听信道,如果信道忙则等待。CSMA减少了冲突,但无法完全避免(两个设备同时侦听到信道空闲并同时发送)。
CSMA/CD(Carrier Sense Multiple Access with Collision Detection,载波侦听多路访问/冲突检测):用于总线型以太网。设备发送时持续侦听信道,如果检测到冲突,立即停止发送,发送干扰信号确保所有设备知道冲突,然后随机等待后重传。
CSMA/CD的工作流程:
- 侦听信道,如果信道忙则持续侦听
- 信道空闲后立即发送
- 发送时持续检测冲突
- 如果检测到冲突,停止发送,发送干扰信号
- 执行指数退避:选择随机等待时间,等待后重新侦听
CSMA/CA(Carrier Sense Multiple Access with Collision Avoidance,载波侦听多路访问/冲突避免):用于无线网络(如WiFi)。无线设备无法同时发送和侦听(半双工),无法检测冲突。CSMA/CA通过虚拟载波侦听、RTS/CTS机制避免冲突。
受控访问协议
轮询(Polling):主节点轮流询问从节点是否有数据要发送。优点是无冲突,缺点是轮询开销大,主节点故障导致整个系统失效。
令牌传递(Token Passing):令牌在节点间传递,持有令牌的节点可以发送数据。优点是无冲突,公平性好,缺点是令牌丢失或重复会严重影响系统。
四、局域网技术与以太网
局域网(Local Area Network,LAN)是在较小地理范围(如办公室、校园)内连接计算机的网络。以太网是最流行的局域网技术。
MAC地址
每个网络接口有一个全球唯一的MAC地址(Media Access Control Address),也称物理地址、硬件地址。MAC地址是48位二进制数,通常用十六进制表示(如00:1A:2B:3C:4D:5E)。
MAC地址的结构:前24位是厂商识别码(OUI),由IEEE分配给网卡制造商;后24位是厂商分配的序列号。
MAC地址有三种类型:
- 单播地址:首位字节的最低位为0,标识单个设备
- 组播地址:首位字节的最低位为1,标识一组设备
- 广播地址:全1(FF:FF:FF:FF:FF:FF),标识所有设备
ARP协议
ARP(Address Resolution Protocol,地址解析协议)将IP地址解析为MAC地址。设备在以太网中发送数据时需要知道目的设备的MAC地址,ARP提供这个映射。
ARP的工作过程:
- 主机A要发送数据给主机B,知道B的IP地址但不知道MAC地址
- A广播ARP请求,包含B的IP地址
- B收到ARP请求(其他主机也收到但忽略),发送ARP响应,包含B的MAC地址
- A收到ARP响应,将B的IP-MAC映射缓存到ARP表中
- A使用B的MAC地址发送数据
ARP表有超时时间(通常几分钟),超时后需要重新解析。为提高效率,主机可以主动发送ARP请求(无偿ARP),告诉其他主机自己的IP-MAC映射。
以太网帧结构
以太网帧由以下字段组成:
目的MAC地址(6字节):接收方的MAC地址,可以是单播、组播或广播。
源MAC地址(6字节):发送方的MAC地址。
类型/长度(2字节):标识上层协议(如IPv4=0x0800,IPv6=0x86DD)或帧长度。
数据(46-1500字节):上层协议的数据。如果数据不足46字节,需要填充到46字节(最小帧长64字节)。
CRC(4字节):循环冗余校验,检测帧传输错误。
以太网帧的最小长度是64字节(14字节头部+46字节数据+4字节CRC),最大长度是1518字节(14字节头部+1500字节数据+4字节CRC)。巨型帧(Jumbo Frame)可以超过这个限制。
CSMA/CD与以太网
早期以太网使用总线型拓扑,多个设备共享同一条总线,使用CSMA/CD协议避免冲突。
CSMA/CD的要求:
- 最小帧长:帧必须足够长,确保发送方在发送完整个帧之前能够检测到冲突。对于10Mbps以太网、2500米、5个中继器,最小帧长是64字节
- 争用期:冲突窗口的最大时间,以太网的争用期是51.2μs(512位时间)
- 指数退避:冲突后选择随机等待时间,重传次数越多,随机范围越大(2ⁿ-1,n≤10)
现代以太网:使用交换机连接设备,每个端口独占带宽,不再需要CSMA/CD。交换机可以同时转发多个帧,全双工通信(同时发送和接收)。现代以太网更可靠、高效。
五、交换机的工作原理
交换机是数据链路层的核心设备,根据MAC地址转发帧。
交换机的基本功能
MAC地址学习:交换机通过检查收到的帧的源MAC地址,学习MAC地址与端口的对应关系。交换机维护一个MAC地址表(也叫转发表),记录MAC地址、端口、时间戳。
帧转发:交换机收到帧后,检查目的MAC地址:
- 如果地址表中有该地址,转发到对应端口(单播)
- 如果地址表中没有该地址,广播到所有端口(泛洪)
- 如果目的地址是广播或组播,广播到所有端口
过滤:交换机不转发帧到输入端口,避免环路。
交换机的工作过程
- 初始状态:交换机MAC地址表为空
- 主机A发送帧给主机B:
- 帧从端口1进入交换机
- 交换机学习到A的MAC地址在端口1
- 查找B的MAC地址,未找到,泛洪到所有端口
- 主机B响应A:
- 帧从端口2进入交换机
- 交换机学习到B的MAC地址在端口2
- 查找A的MAC地址,知道在端口1,只转发到端口1
- 后续A与B的通信:交换机知道A在端口1,B在端口2,直接单播转发,不泛洪
MAC地址表项有超时时间(通常几分钟),超时后删除。如果主机移动到另一个端口,超时后学习到新位置。
交换机的转发方式
存储转发(Store-and-Forward):交换机接收完整的帧,校验CRC,检查目的地址,然后转发。优点是可以过滤错误帧,缺点是延迟较大。
直通转发(Cut-Through):交换机只读取帧的目的地址(前6字节),立即转发。优点是延迟小,缺点是无法过滤错误帧。
无分片转发(Fragment-Free):交换机读取帧的前64字节(确保不是冲突帧),然后转发。折中方案。
交换机的性能指标
转发速率(Forwarding Rate):交换机每秒可以转发的帧数,单位是帧/秒(fps)。线速转发(Wire Speed)是指交换机能够以端口带宽速率连续转发。
背板带宽(Switching Fabric Bandwidth):交换机内部交换结构的总带宽,决定了所有端口同时转发的总容量。
端口密度:交换机支持的端口数量,端口越多,可连接的设备越多。
VLAN支持:交换机支持划分虚拟局域网的能力,VLAN隔离广播域,提高安全性和管理性。
六、VLAN虚拟局域网
VLAN(Virtual LAN,虚拟局域网)将物理网络的设备逻辑地划分为多个广播域,不受物理位置限制。
VLAN的基本概念
传统局域网是一个广播域,广播帧(如ARP请求、DHCP请求)会被所有设备接收。大型广播域有以下问题:
- 广播风暴:大量广播消耗带宽和设备资源
- 安全性差:任何设备都可以监听其他设备的通信
- 管理复杂:增加、移动、修改设备需要重新配置网络
VLAN将设备逻辑分组,每个VLAN是一个独立的广播域。VLAN之间的通信需要通过路由器或三层交换机。
VLAN的实现方式
基于端口的VLAN:最常用的VLAN实现方式,将交换机端口分配给不同VLAN。例如,端口1-10属于VLAN 10(销售部),端口11-20属于VLAN 20(技术部)。
基于MAC地址的VLAN:根据设备的MAC地址分配VLAN。设备移动到不同端口时仍属于原VLAN,管理更灵活但配置更复杂。
基于协议的VLAN:根据网络层协议(如IP、IPX)分配VLAN。现在很少使用。
基于子网的VLAN:根据IP子网分配VLAN。需要IP地址和VLAN的对应关系。
VLAN标记
当VLAN跨交换机时,需要标记帧属于哪个VLAN。IEEE 802.1Q定义了VLAN标记格式,在以太网帧中插入4字节的VLAN标签:
- 2字节TPID(标签协议标识符):0x8100,标识这是VLAN标签
- 2字节TCI(标签控制信息):
- 3位优先级:用于QoS(服务质量)
- 1位CFI(标准格式指示符):0表示以太网
- 12位VLAN ID:标识VLAN编号(1-4094)
VLAN标签插入在源MAC地址和类型字段之间。不支持VLAN的设备会丢弃带标签的帧,支持VLAN的设备可以识别和处理标签。
VLAN间路由
不同VLAN的设备通信需要三层设备(路由器或三层交换机)进行路由。实现方式有:
路由器物理接口:每个VLAN连接路由器的一个物理接口。简单但浪费接口。
路由器子接口(Router-on-a-Stick):路由器的一个物理接口划分多个逻辑子接口,每个子接口对应一个VLAN,通过802.1Q标签区分VLAN。
三层交换机:交换机具有路由功能,VLAN间在交换机内部路由。性能好,是现代网络的常用方案。
七、PPP点对点协议
PPP(Point-to-Point Protocol,点对点协议)是广泛使用的点对点链路层协议,用于路由器之间、主机与ISP之间的连接。
PPP的帧格式
PPP帧由以下字段组成:
- 标志(1字节):0x7E,标识帧的开始和结束
- 地址(1字节):0xFF,标准广播地址(PPP没有地址字段,所有站点接收所有帧)
- 控制(1字节):0x03,无序号的帧(PPP默认不提供可靠传输)
- 协议(2字节):标识上层协议(如IPv4=0x0021,IPv6=0x0057,LCP=0xC021,NCP=0x8021)
- 信息(可变长度):上层协议的数据
- FCS(2或4字节):帧校验序列,检测传输错误
PPP的工作阶段
- 链路死(Link Dead):物理层未激活
- 链路建立(Link Establishment):PPP发送LCP(链路控制协议)配置请求,协商参数(如最大接收单元、认证协议、魔术字等)
- 认证(Authentication):如果协商了认证,进行身份认证。常用协议有PAP(密码认证协议)和CHAP(挑战握手认证协议)
- 网络层配置(Network Layer Configuration):PPP发送NCP(网络控制协议)配置请求,协商网络层参数(如IPCP协商IP地址、压缩方式等)
- 链路打开(Link Open):可以传输网络层数据
- 链路终止(Link Termination):任一方可以发送LCP终止请求,关闭链路
PPP的认证协议
PAP(Password Authentication Protocol):用户名和密码以明文发送,安全性低。
CHAP(Challenge-Handshake Authentication Protocol):
- 认证方发送随机挑战(challenge)
- 被认证方用密码和挑战计算响应(response),发送回认证方
- 认证方用相同的密码和挑战计算响应,如果匹配则认证成功
- CHAP定期重新认证,防止会话劫持
CHAP比PAP安全,密码不在线路上传输,但认证方需要存储明文密码或可验证的哈希。
PPPoE
PPPoE(PPP over Ethernet)是在以太网上运行PPP的协议,广泛用于DSL接入。PPPoE发现阶段找到接入集中器(AC),PPPoE会话阶段运行PPP协议(认证、IP地址分配等)。
八、知识总结表
| 协议/技术 | 主要功能 | 适用场景 | 优缺点 |
|---|---|---|---|
| 奇偶校验 | 简单差错检测 | 内存、简单存储 | 优点:简单、开销小 缺点:检错能力弱 |
| CRC | 强大的差错检测 | 以太网、WiFi、存储 | 优点:检错能力强 缺点:不能纠错 |
| 汉明码 | 单比特纠错 | 内存、存储系统 | 优点:可纠错 缺点:开销大 |
| CSMA/CD | 冲突检测与恢复 | 总线型以太网 | 优点:分布式 缺点:效率随负载下降 |
| CSMA/CA | 冲突避免 | 无线网络(WiFi) | 优点:适合半双工 缺点:效率低 |
| 以太网 | 局域网技术 | 有线局域网 | 优点:成熟、廉价 缺点:距离限制 |
| VLAN | 逻辑划分广播域 | 大型网络 | 优点:灵活、安全 缺点:需要三层设备路由 |
| PPP | 点对点链路协议 | 广域网、接入网 | 优点:简单、通用 缺点:开销大 |
常见问题解答
Q1:为什么需要数据链路层,网络层不够吗?
答:网络层提供端到端的数据传输服务,但需要在不同的链路上传输。
每条链路可能有不同的技术(如光纤、以太网、WiFi),需要不同的链路层协议适配。网络层分组在不同链路上的传输方式不同(如分片、成帧),需要链路层处理。
此外,网络层使用IP地址寻址,在单一链路上需要MAC地址寻址。差错检测、流量控制等功能在链路层实现更高效。
总之,数据链路层适配具体的物理介质,为网络层提供统一的服务接口,实现异构网络的互连。
Q2:以太网帧为什么要规定最小长度64字节?
答:以太网最小帧长64字节(512位)是为了确保CSMA/CD正常工作。
如果帧太短,发送方在发送完整个帧之前可能无法检测到远端的冲突(冲突信号传播到发送方需要时间),导致发送方认为发送成功,实际帧在中间被破坏。
对于10Mbps以太网、2500米、5个中继器,争用期(冲突窗口)是51.2μs,对应512位。因此,最小帧长是512位(64字节)。
现代交换机以太网使用全双工通信,不再需要CSMA/CD,但最小帧长保持不变以兼容旧设备。如果数据不足46字节,需要填充到46字节(加上14字节头部和4字节CRC,共64字节)。
Q3:交换机和集线器有什么区别?
答:集线器是物理层设备,收到信号后简单放大并广播到所有端口,所有设备共享带宽,冲突域包含所有设备。
交换机是数据链路层设备,根据MAC地址智能转发帧,每个端口独占带宽,隔离冲突域。集线器是半双工的,同一时间只能一个设备发送;交换机可以全双工,端口同时发送和接收。集线器不学习地址,无法过滤帧;交换机学习MAC地址,可以单播转发。
集线器便宜但效率低,已被交换机取代。现代网络几乎都使用交换机。
Q4:什么是生成树协议(STP),为什么需要它?
答:生成树协议(Spanning Tree Protocol,STP)防止网络中的二层环路。
网络中可能有冗余链路提高可靠性,但环路会导致广播风暴(广播帧无限循环)、MAC地址表震荡(交换机学习到错误的MAC-端口映射)、帧重复。
STP通过阻塞某些端口构造无环的生成树,确保任意两台设备之间只有一条活动路径。
STP选举根桥(根交换机),每个非根桥选择根端口(到根桥最近的端口),每个网段选择指定端口(到根桥最近的端口),其他端口阻塞。如果链路故障,STP重新计算生成树,激活阻塞端口,恢复连通性。STP的改进版本RSTP(快速生成树)和MSTP(多生成树)收敛更快。
Q5:VLAN如何提高网络安全性和管理性?
答:VLAN将设备逻辑分组,隔离广播域,提高了安全性。
不同VLAN的设备无法直接通信(需要三层路由),可以限制敏感数据的访问范围。例如,财务部门的VLAN与其他VLAN隔离,防止未授权访问。
VLAN还简化了管理,设备移动到不同位置但保持VLAN成员资格,不需要重新布线和配置IP地址。VLAN还支持基于策略的访问控制,可以限制VLAN间的访问。
在大型网络中,VLAN减少广播流量,提高网络性能。VLAN还可以将访客隔离到独立的VLAN,限制其访问内部网络。
更新时间:2026年3月2日 系列:网络与信息安全技术 标签:#数据链路层 以太网 交换机 VLAN CD ARP MAC地址