数据链路层
数据链路层概述
数据链路层是OSI参考模型中的第二层,位于物理层之上,网络层之下。数据链路层的主要功能是在不可靠的物理链路上实现可靠的数据传输。
数据链路层的三个功能
- 封装成帧
- 将网络层交下的数据包添加首部和尾部,构成帧
- 帧是数据链路层的数据传输单元
- 帧定界:确定帧的边界,常用方法有字符计数法、字符填充的首尾定界符法和比特填充的首尾标志法
- 透明传输
- 确保可以传输任意比特组合的数据
- 解决方法:字符填充或比特填充
- 字符填充:在数据中的控制字符前插入转义字符
- 比特填充:连续5个1后插入0,避免与帧标志混淆
- 差错检测
- 检测数据在传输过程中是否产生错误
- 常用方法:奇偶校验、循环冗余检验(CRC)
- CRC码的生成和检测过程
差错控制技术
差错控制技术用于检测和纠正数据传输过程中产生的错误,确保数据的可靠传输。主要包括检错编码和纠错编码两大类。
检错编码
检错编码是能够自动发现差错的编码,但不能自动纠正差错。当接收端检测到错误时,通常采用反馈重传的方式来获得正确的数据。
1.奇偶校验码
最简单的检错编码,分为奇校验和偶校验两种。
- 奇校验:使整个码字中1的个数为奇数
- 偶校验:使整个码字中1的个数为偶数
示例
发送数据:1011001 - 奇校验:在数据后加1,得到10110011(1的个数为5,奇数) - 偶校验:在数据后加0,得到10110010(1的个数为4,偶数)
特点:
- 只能检测出奇数个比特错误
- 无法检测出偶数个比特错误
- 实现简单,开销小
2.循环冗余检验(CRC)
目前应用最广泛的检错编码,具有较强的检错能力。
工作原理: 1. 发送端将数据分成若干组,每组k个比特 2. 在数据后面添加n-k位的冗余码,构成n位的帧 3. 接收端进行同样的CRC检验,判断是否有错
生成多项式: 常用的CRC生成多项式有:
- CRC-16:\(G(x) = x^{16} + x^{15} + x^2 + 1\)
- CRC-CCITT:\(G(x) = x^{16} + x^{12} + x^5 + 1\)
- CRC-32:\(G(x) = x^{32} + x^{26} + x^{23} + x^{22} + x^{16} + x^{12} + x^{11} + x^{10} + x^8 + x^7 + x^5 + x^4 + x^2 + x + 1\)
检错能力:
- 能够检测出所有奇数个错误
- 能够检测出所有双比特错误
- 能够检测出所有长度小于等于生成多项式阶数的突发错误
纠错编码
纠错编码不仅能发现差错,还能自动纠正差错,无需重传。但实现复杂度较高,开销较大。
1.海明码
最经典的纠错编码,由理查德·海明提出,能够纠正单个比特错误。
基本原理:
- 在数据位中插入多个校验位
- 每个校验位负责检验特定的数据位组合
- 通过校验位的值确定错误位置
编码规则:
- 校验位位于\(2^i\)的位置(i=0,1,2,...)
- 第i个校验位检验所有位置编号二进制表示中第i位为1的数据位
示例
7位海明码(4位数据+3位校验):
- 位置:1 2 3 4 5 6 7
- 内容:P1 P2 D1 P3 D2 D3 D4
- P1检验:1,3,5,7位
- P2检验:2,3,6,7位
- P3检验:4,5,6,7位
纠错能力:
- 最小码距为3,可纠正1位错误
- 可检测2位错误(但不能纠正)
汉明距离: 两个等长码字之间不同比特的个数,是衡量编码纠错能力的重要指标。
- 要检测d个错误,最小码距需为d+1
- 要纠正d个错误,最小码距需为2d+1
应用场景
- 检错编码:适用于错误率较低、允许重传的网络环境,如以太网、互联网
- 纠错编码:适用于错误率较高或无法重传的场景,如卫星通信、深空通信、存储系统
点对点协议
PPP(Point-to-Point Protocol)是目前使用最广泛的点对点数据链路层协议,主要用于用户接入互联网。
PPP协议的特点
- 简单
- 不需要纠错,不需要序号,不需要流量控制
- 支持多种网络层协议
- 封装成帧
- 使用特殊的字符作为帧定界符
- 支持透明传输
- 支持多种网络层协议
- IP协议、IPX协议等
- 支持多种类型链路
- 串行/并行同步/异步链路
PPP协议的组成
- 一个将IP数据报封装到串行链路的方法
- 帧格式和帧定界
- 链路控制协议(LCP)
- 建立和配置数据链路连接
- 协商链路参数
- 网络控制协议(NCP)
- 支持不同的网络层协议
- 为网络层协议建立和配置连接
PPP协议的帧格式
PPP帧由以下字段组成:
- 标志字段(F):0x7E,表示帧的开始或结束
- 地址字段(A):0xFF,广播地址
- 控制字段(C):0x03,表示无编号帧
- 协议字段:2字节,标识网络层协议类型
- 数据字段:0-1500字节,包含网络层协议数据
- 帧检验序列(FCS):2字节,用于差错检测
PPP协议的工作状态
- 链路静止:链路未激活
- 链路建立:通过LCP协商建立链路
- 认证:可选的身份验证阶段
- 网络层协议:通过NCP配置网络层协议
- 链路打开:数据传输阶段
- 链路终止:关闭链路连接
使用广播信道的数据链路层
在广播信道中,多个设备共享同一通信介质,需要特殊的协议来协调通信。
局域网概述
局域网(Local Area Network,LAN)是指在较小地理范围内的计算机网络,具有以下特点:
- 地理范围有限:通常覆盖几公里范围
- 传输速率高:通常为10Mbps~10Gbps
- 误码率低:一般为10^-8~10^-11
- 多采用分布式控制:无需中央控制设备
局域网的拓扑结构
- 星形拓扑
- 所有节点连接到中心节点
- 优点:易于管理和维护
- 缺点:中心节点故障会影响整个网络
- 总线拓扑
- 所有节点共享同一传输介质
- 优点:结构简单,易于扩展
- 缺点:故障诊断困难,介质访问控制复杂
- 环形拓扑
- 节点连接成闭合环路
- 优点:传输距离长,误码率低
- 缺点:节点故障会影响整个网络
- 树形拓扑
- 星形和总线拓扑的结合
- 优点:易于扩展,故障隔离容易
信道共享技术
- 静态划分信道
- 频分复用(FDM)
- 时分复用(TDM)
- 波分复用(WDM)
- 码分复用(CDM)
- 动态媒体接入控制
- 随机接入:如CSMA/CD
- 受控接入:如轮询、令牌传递
CSMA/CD协议
CSMA/CD(Carrier Sense Multiple Access with Collision Detection)是一种随机接入协议,广泛应用于以太网。
- 多点接入:多个节点连接到同一总线
- 载波监听:发送前先检测信道是否空闲
- 碰撞检测:发送过程中检测是否发生碰撞
CSMA/CD的工作流程:
- 发送前监听信道
- 若信道空闲,则发送数据
- 若信道忙,则持续监听直到信道空闲
- 发送过程中持续检测碰撞
- 若检测到碰撞,立即停止发送
- 发送人为干扰信号,强化碰撞
- 等待随机时间后重新尝试发送
MAC地址
MAC地址(Media Access Control Address)是数据链路层地址,用于唯一标识网络设备。
- MAC地址格式
- 48位二进制数,通常表示为12位十六进制数
- 前24位为厂商标识符(OUI)
- 后24位为设备标识符
- MAC地址类型
- 单播地址:唯一标识一个设备
- 组播地址:标识一组设备
- 广播地址:FF:FF:FF:FF:FF:FF,标识所有设备
-
MAC地址与IP地址的关系
- MAC地址是数据链路层地址,工作在同一局域网内
- IP地址是网络层地址,可以跨越不同网络
- ARP协议用于实现IP地址到MAC地址的映射
- RARP协议用于实现MAC地址到IP地址的映射
ARP和RARP协议
ARP(地址解析协议):用于将IP地址解析为对应的MAC地址。当主机需要向同一局域网内的其他主机发送数据时,会通过ARP协议查询目标主机的MAC地址,从而实现数据链路层的通信。
RARP(逆地址解析协议):用于将MAC地址解析为IP地址。常用于无盘工作站等设备在启动时,通过RARP协议向网络服务器请求分配IP地址。
扩展的以太网
随着网络规模的扩大,传统的以太网需要通过各种技术进行扩展。
在物理层扩展以太网
- 使用光纤扩展
- 使用光纤中继器扩展传输距离
- 单模光纤传输距离可达几十公里
- 多模光纤传输距离可达几公里
- 使用集线器扩展
- 集线器工作在物理层,对信号进行放大和再生
- 多个集线器可以级联,扩展网络覆盖范围
- 缺点:扩大了冲突域,降低了网络性能
在数据链路层扩展以太网
- 网桥
- 工作在数据链路层,连接多个局域网段
- 根据MAC地址表转发数据帧
- 隔离冲突域,提高网络性能
- 交换机
- 多端口的网桥,是现代局域网的核心设备
- 每个端口是一个独立的冲突域
- 支持并行通信,大大提高了网络带宽
- 虚拟局域网(VLAN)
- 在逻辑上划分网络,不受物理位置限制
- 提高网络安全性和管理效率
- 减少广播风暴的影响
交换机的工作原理
- 地址学习
- 交换机通过分析收到的数据帧学习MAC地址
- 建立MAC地址表,记录MAC地址与端口的对应关系
- 帧转发/过滤
- 根据MAC地址表决定如何转发数据帧
- 单播帧:只转发到目标端口
- 广播帧:转发到所有端口(除源端口)
- 未知单播帧:转发到所有端口(除源端口)
- 避免环路
- 使用生成树协议(STP)避免网络环路
- 通过阻塞某些端口创建无环路的拓扑结构
高速局域网技术
- 快速以太网(Fast Ethernet)
- 传输速率:100Mbps
- 仍使用CSMA/CD协议
- 兼容10Mbps以太网设备
- 千兆以太网(Gigabit Ethernet)
- 传输速率:1Gbps
- 支持全双工和半双工模式
- 在全双工模式下不使用CSMA/CD协议
- 10G以太网(10 Gigabit Ethernet)
- 传输速率:10Gbps
- 只支持全双工模式
- 只使用光纤作为传输介质
高速以太网
高速以太网是指传输速率超过100Mbps的以太网技术,主要包括千兆以太网、10G以太网、40G/100G以太网等。
千兆以太网
千兆以太网(Gigabit Ethernet)是传输速率为1Gbps的以太网标准。
- 物理层标准
- 1000BASE-X:基于光纤的千兆以太网
- 1000BASE-T:基于双绞线的千兆以太网
- 1000BASE-CX:基于铜缆的千兆以太网
- MAC层改进
- 最小帧长不变,仍为64字节
- 时槽时间从512位时间扩展到512字节时间
- 支持半双工和全双工模式
- 全双工模式下不使用CSMA/CD协议
- 自动协商
- 自动检测连接设备的速率和双工模式
- 向下兼容10Mbps和100Mbps以太网
- 应用场景
- 企业骨干网络
- 数据中心服务器连接
- 高性能工作站连接
10G以太网
10G以太网(10 Gigabit Ethernet)是传输速率为10Gbps的以太网标准。
- 物理层标准
- 10GBASE-R:基于64B/66B编码的局域网标准
- 10GBASE-W:基于SONET/SDH的广域网标准
- 10GBASE-X:基于8B/10B编码的标准
- 主要特点
- 只支持全双工模式,不使用CSMA/CD协议
- 只使用光纤作为传输介质
- 帧格式与传统以太网兼容
- 最大传输距离可达40公里
- 应用场景
- 数据中心互联
- 城域网和广域网
- 高性能计算集群
40G/100G以太网
40G/100G以太网是更高速率的以太网标准,满足日益增长的网络带宽需求。
- 物理层标准
- 40GBASE-R:40Gbps速率标准
- 100GBASE-R:100Gbps速率标准
- 使用多通道并行传输技术
- 技术特点
- 采用多通道并行传输
- 使用更高效的编码技术
- 支持多种传输介质
- 向后兼容低速以太网
- 应用场景
- 大型数据中心
- 云计算平台
- 高性能计算环境
以太网的发展趋势
- 速率不断提升
- 从10Mbps发展到400Gbps甚至更高
- 满足大数据、云计算等应用需求
- 传输介质多样化
- 从铜缆到光纤
- 从单模光纤到多模光纤
- 从有线到无线
- 应用场景扩展
- 从局域网到城域网和广域网
- 从数据中心到工业控制
- 从固定设备到移动设备
- 技术融合
- 与存储网络融合(FCoE)
- 与InfiniBand融合(RoCE)
- 与无线网络融合(Wi-Fi 6/7)
高速以太网的性能优化
- 流量控制
- 802.3x流控制:基于PAUSE帧的流控制
- 优先级流控制(PFC):为不同优先级的流量提供独立流控制
- 负载均衡
- 链路聚合(LAG):将多条物理链路捆绑为一条逻辑链路
- 等价多路径(ECMP):在多条等价路径间分配流量
- 拥塞控制
- 显式拥塞通知(ECN):端到端拥塞控制机制
- 量化拥塞通知(QCN):数据中心专用拥塞控制机制
- 时间同步
- 精确时间协议(PTP):提供纳秒级时间同步
- 时间敏感网络(TSN):为实时应用提供确定性网络