数据链路层介绍
- 数据链路层的功能:物理寻址,封装成帧,透明传输,流量控制,差错检测
- 使用的信道
- 点对点信道:
- 协议:PPP
- 广播信道
- 协议:CSMA/CD(有线局域网),CSMA/CA 协议(无线局域网)
- 点对点信道:
- 链路 / 物理链路:相邻节点之间的物理线路
- 数据链路 / 逻辑链路:链路 + 实现相关协议的硬件和软件
- 介质访问控制 / MAC 子层:物理寻址,组帧拆帧,透明传输,差错检测
- 逻辑链路控制 / LLC 子层:向上提供服务,流量控制,建立和释放数据链路层的逻辑连接,给帧加序号
- 帧:协议数据单元
- TIP:数据链路层的协议的功能包括:定义数据帧的格式,提供节点之间的可靠传输,控制物理传输介质的访问
向上层提供服务
- 无确认无连接服务
- 场景:以太网
- 有确认无连接服务
- 场景:无线通信
- 有确认面向连接服务
- 阶段:建立链路,传输帧,释放链路
TIP:不存在无确认面向连接的服务
封装成帧
- 封装成帧的方法:字符计数法,字节填充法,零比特填充法(常用),违规编码法(常用)
字符计数法
-
方式:帧首部中使用计数字段记录该帧包含的字节数(包含自身)
-
特点:帧之间是连续传输的,计数字段出错则 game over
字节填充法
- 方式:使用特定字符定界帧的开始与结束,控制字符 SOH 放在最前面表示帧的开始,控制字符 EOT 表示帧的结束,控制字符 ESC 表示转义
零比特填充法
- 方式:使用比特串 01111110 标志一个帧的开始与结束,每遇到5个连续的1,后面插入一个0
TIP:HDLC 协议就是使用的这个
违规编码法
- 方式:例如在曼彻斯特编码过程中 “高-高” 电平和 “低-低” 电平没有使用,可以作为定义帧的开始和结束
差错控制
检错编码
- 检错编码包括:奇偶校验码,循环冗余码
-
奇偶校验码:计算 1 的数量是校验位需要算进去
- 奇校验码:附加校验位,表明 1 的个数为奇数,只能检测奇数位错误
- 偶校验码:附加校验位,表明 1 的个数为偶数,只能检测偶数位错误
-
循环冗余码 Cyclic Redundancy Code / CRC
- 生成多项式:约定多项式(最高和最低必为1),例如 x3 + x2 + 1表示 1101
- 计算冗余码
- 校验冗余码(接收方):模 2 除 = 0 则 ok
-
冗余码的计算:
- 加 0:多项式的阶为 r,则在数据后面加上 r 个0
- 模 2 除:得到 r 位的冗余码
-
冗余码计算示例
-
例如数据 M = 101001,除数 G(x) = 1101,即 r = 3
-
发送的数据为:101001 001
-
TIP:CRC 具有纠错的能力,参考https://blog.youkuaiyun.com/limaodx/article/details/116559204
纠错编码:海明码
-
TIP:纠错 d 位,码距 2d + 1, 检错 d 位, 码距 d + 1
-
海明码的计算:以数据 1010 为例,记:D4D3D2D1
-
确当海明码的位数:设 n 为有效信息的位数,k 为检验位的位数,则 n + k <= 2k - 1,根据本数据计算 k = 3,记 P3P2P1,对应的海明码记 H7H6H5H4H3H2H1
-
确定海明码的分布:2i-1,其中 i 从 0 开始
- P1:20 = 1
- P2:21 = 2
- P3:22 = 4
对应关系如下
H7 H6 H5 H4 H3 H2 H1
D4 D3 D2 P3 D1 P2 P1
-
分组检验:被检验的数据位号等于检验该数据的海明位号的和,检验位不被检验
-
检验位取值:Pi 的值为第 i 组所有位异或(同 0 异 1)
所以 1010 对应的海明码为 1010010 -
检验:
S3S2S1 = 000,则说明无错,这个数字就是错误位的位号,即 001 表示H1 出错
TIP:注意次序
-
流量控制与可靠传输
-
流量控制的方法:停止-等待流量控制,滑动窗口流量控制
-
停止-等待流量控制
- 方式:接收方每接收一个帧都要反馈应答信号,在接收到反馈信号之前发送方不能发送数据,定时器超时后重发该数据
-
滑动窗口流量控制:
-
方式:发送方维持发送窗口,接受方维持接收窗口,发送方每次收到一个按序确认的帧,发送窗口将向前移动一格,接收方每接收一个在接收窗口之内的帧就收下(不在窗口里的丢弃),然后将接收窗口向前移动一格,
-
特点:
- 只有接收窗口移动,发送窗口才有可能移动
- 接收窗口为 1,可以保证帧的有序传输
- 数据链路层的滑动窗口协议,窗口大小在传输过程中是固定的,与传输层不同(传输层需要进行拥塞控制,需要监听网络的拥塞情况和接收方反馈的信息动态调整发送窗口的大小)
- 关系
- 停止-等待协议中 发送窗口 WT = 1,接收窗口 WR = 1
- 后退 N 帧协议中 发送窗口 WT > 1,接收窗口 WR = 1
- 选择重传协议中 发送窗口 WT > 1,接收窗口 WR > 1
- n 比特编号(后两种协议),则 WT + WR <= 2n
-
-
可靠传输的机制:确认和超时重传
-
自动重传请求 ARQ:采用上面这两种机制的可靠传输协议
- 数据帧和确认帧必须编号
- 停止-等待协议 Stop-And_wait / S-W,后退 N 帧协议 Go-back-N / GBN,选择重传协议 Selective Repeat / SR 都属于 ARQ
-
停止-等待协议 S-W:
- 特点:1 个比特编号
-
后退 N 帧协议 GBN:
-
方式:发送方发送 N 的帧,但是这 N 个帧的前一个帧在定时器超时时没有收到确认信息,发送方需要重传出错帧和随后的 N 个帧
-
累计确认:允许接收方连续接收多个正确的数据帧后对最后一个数据帧进行确认,表示该数据帧及之前的数据帧都正确接收
-
帧编号问题:采用 n 比特编号,发送窗口应满足 1 < WT <= 2n - 1,接收窗口 WR = 1
-
-
选择重传协议 SR:
- 特点:检测到数据帧出错,发送一个否定帧 NAK,要求发送方立即重发指定的数据帧
- 特点:检测到数据帧出错,发送一个否定帧 NAK,要求发送方立即重发指定的数据帧
-
信道利用率
-
停止-等待协议
-
ARQ
-
TIP:对于窗口大小为 n 的滑动窗口,最多可以有 n - 1 个帧发送但没有确认(这里的窗口大小表示总窗口数量)
介质访问控制
-
介质访问控制 Medium Access Control / MAC 子层:用来决定广播信道中信道分配的协议
-
介质访问控制方法:信道划分介质访问控制(静态),随机访问介质访问控制(动态),轮询介质访问控制(动态)
信道划分介质访问控制
-
频分复用 Frequency Division Multiplexing / FDM
- 特点:每个子信道分配带宽可以不同,总合小于信道总带宽,适合模拟信号,共享时间不共享空间
- 特点:每个子信道分配带宽可以不同,总合小于信道总带宽,适合模拟信号,共享时间不共享空间
-
时分复用 Time Division Multiplexing / TDM
- 特点:每个用户占用固定序号的时隙,用户数越多速率越低,适合数字信号,不共享时间共享空间
- 统计时分复用 / 异步时分复用 Statistic TDM / STDM
- 特点:时隙按序分配,用户的最高速率可达到线路的数据传输速率
- 特点:每个用户占用固定序号的时隙,用户数越多速率越低,适合数字信号,不共享时间共享空间
-
波分复用 Wavelength Division Multiplexing / WDM
- 特点:光的频分复用,传输不同波长的光信号,共享时间不共享空间
-
码分复用 Code Division Multiplexing / CDM 或 码分多址 Code Division Multiple Access / CDMA
-
特点:向量表示,不同站点码片序列向量两两正交,与自身的规格化内积为1,与自身反码规格化内积为-1,共享时间共享空间
-
示例:
假设 A 站码片序列为S = 00011011, 则 A 站发送 00011011 表示发送 1,发送反码(11100100)表示发送 0,通常向量表示中用 -1 代表 0,则 A 站的码片序列为(-1 -1 -1 +1 +1 -1 +1 +1),假设 B 的码片序列为 T = 00101110 / (-1 -1 +1 -1 +1 +1 +1 -1), 则:
S * T = ST / m = 0
S * S = S2 / m = 1,m 是 1 的个数
假设 A 发送 1,即向量表示(-1 -1 -1 +1 +1 -1 +1 +1)
同时 B 发送 0,即向量表示(+1 +1 -1 +1 -1 -1 -1 +1)
信道上进行叠加得到(0 0 -2 2 0 -2 0 2)
如果 C 站要得到 A 站的数据,则将上述叠加结果与 A 的码片序列进行规格化内积得到数据 1,(-1 代表 0)
-
随机访问介质访问控制
-
ALOHA 协议
-
纯 ALOHA 协议
- 特点:随时发送数据不需要检测,冲突后等随机时间再发送
- 特点:随时发送数据不需要检测,冲突后等随机时间再发送
-
时隙 ALOHA 协议
- 特点:只能在每个时隙开始时才能发送数据,并且发送数据的时间不大于时隙长度
- 特点:只能在每个时隙开始时才能发送数据,并且发送数据的时间不大于时隙长度
-
-
载波监听多路访问 / CSMA 协议
- 1-坚持 CSMA
- 信道空闲立即发送数据,信道忙则一直监听直至空闲
- 非坚持 CSMA
- 信道空闲立即发送数据,信道忙则随机一个时间后再监听
- p-坚持 CSMA
- 信道空闲以概率 p 发送数据,以 1 - p 的概率推迟到下个时隙继续监听,信道忙则一直监听直至空闲
- 1-坚持 CSMA
-
载波监听多路访问/冲突检测 / CSMA/CD 协议
- 场景:总线型网络,半双工网络
- 检测方式:电压变化
- 争用期 / 冲突窗口:2ţ(最远两端传播时延的 2 倍)
- 最短帧长:传播时延 * 2 * 传输速率
- 截断二进制指数退避算法:
- 确定退避时间:一般为争用期,即 2ţ
- 从整数集合 [0,1,···,(2k - 1) ] 取一个数字 r,推迟重传的时间为 r 倍的退避时间,k <= 10
- 第一次重传时 k = 1,集合 {0,1},第二次重传时 k = 2,集合 {0,1,2,3} ···
- 最大重传次数 16,如果仍失败则认为不可达
-
载波监听多路访问/冲突避免 / CSMA/CA 协议
-
场景:无线局域网 802.11a/b/g/n
-
检测方式:能量检测、载波检测、能量载波混合检测
-
虚拟载波监听:发送方需要占用信道的时间通过 AP(包括 ACK 帧的时间)告知其他站点,其他站点在改时间段内不发送数据
-
特点:无线信道通信质量比有线要差得多,链路层使用 ARQ(确认/重传)方案,(有线信道通信质量较好是可以不使用 ARQ 的),每次发送完毕后需要间隔一段时间,称为帧间间隔 InterFrame Space / IFS
-
SIFS 帧:短,分割每次对话的帧,包括 ACK 帧,CTS 帧,数据帧,AP 探询帧等
-
PIFS 帧:中,PCF 操作中使用
-
DIFS 帧:长,作为异步帧竞争访问的时延
-
发送数据帧:第一个数据帧不使用退避算法,其后的数据帧使用退避算法
-
隐蔽站
-
信道预约
-
请求发送控制帧 Request To Send / RTS
- 谁发出:源站
- 请求的时间范围:RTS 发送完毕到接收到 ACK,即 SIFS + CTS + SIFS + 数据帧 + SIFS + ACK
-
允许发送控制帧 Clear To Send / CTS
-
谁发出:目的站(AP)
-
让源站可以发送数据
-
告知其他站,这段时间不要发送数据
-
声明占用时间范围:CTS 发送完毕到发送完 ACK,即 SIFS + 数据帧 + SIFS + ACK
-
-
-
轮询介质访问控制(令牌传递协议)
- 特点:无冲突
- 过程:
- 网络空闲时,令牌帧循环传递
- 令牌帧到达有数据发送的站点时,修改令牌的标志位,并附加自己的数据,如果没有要发送的数据立即交给向下传递
- 到达目的地址,复制该数据帧
- 回到源站点,检查是否传输出错,重新生成令牌
局域网
- 特性决定要素:拓扑结构,传输介质,介质访问控制方式(最重要)
- 常见局域网拓扑结构:星形,环形,总线形,星形 + 总线
- 常见传输介质:铜线,双绞线(主流),光纤
- 常用的介质访问控制协议:CSMA/CD,令牌总线协议,令牌环协议
- 连接方式:广播信道(普遍)
- 着重点:数据传输
- 特殊的局域网
- 以太网:逻辑拓扑上是总线形,物理拓扑是星形
- 令牌环 Token Ring(IEEE 802.5):逻辑拓扑是环形,物理拓扑是星形
- 光纤分布数字接口 FDDI(IEEE 802.8):逻辑拓扑是环形,物理拓扑是双环形
以太网
-
介绍
- 以太网规约的第一个版本:DIX V1
- 第一个局域网规约:DIX Eternet V2(是 IEEE 802.3 的基础)
-
介质访问控制方式:CSMA/CD
-
通信特点:无连接(无数据帧编号,不发送确认),提供不可靠服务
-
编码:曼彻斯特编码
-
传输介质:
-
网络适配器 Adapter / NIC:
- 工作层:数据链路层
- 功能:与局域网串行通信,与计算机 I/O 并行通信,最重要的功能是实现串并转换
-
以太网的 MAC 地址:
- 物理地址 / MAC 地址: 48位,全球唯一,固化在适配器的 ROM 中
-
以太网的 MAC 帧:
- 不需要结束定界符,以太网传送帧之间有一定的间隙(10BASE-T:9.6us)
- 目的地址:目的 MAC 地址
- 源地址:源 MAC 地址
- 类型:交给上层的哪个协议处理,如 IP
- 数据
- FCS:CRC 校验码(除了前导码,全校验)
- MAC 帧格式如下,只有类型和长度域的区别
-
高速以太网
- 定义:速率大于等于 100Mb/s 的以太网
- 定义:速率大于等于 100Mb/s 的以太网
IEEE 802.11 WIFI
-
IEEE 802.11
- 拓扑结构:星形
-
分类:有固定基础设施的无线局域网(有固定基站),无固定基础设施移动自组织网络
-
有固定基础设施的无线局域网
- 中心:接入点 Access Point / AP(即基站 base station)
- 无线局域网最小构件:基本服务集 Basic Service Set / BSS
- 服务集标识符 Service Set IDentifier / SSID:小于等于32B
- 基本服务区 Basic Service Area / BSA:基本服务集覆盖范围
- 扩展服务集 Extended Service Set / ESS:通过分配系统连接另一个基本服务集
-
无固定基础设施移动自组织网络
- 无 AP
- 无 AP
-
无线局域网 MAC 帧
-
类型:数据帧,控制帧,管理帧
-
数据帧:
- MAC 首部
- 帧主体
- FCS
-
地址字段:
节点的通信经过 AP,假设通信路径 A - AP - B
首先 A 发往 AP,此时地址1 = AP 的 MAC,地址2 = A 的MAC,地址3 = B 的 MAC
AP 转发给 B,此时地址1 = B 的 MAC,地址2 = AP 的 MAC,地址3 = A 的 MAC
-
虚拟局域网 VLAN
- 作用:隔离冲突域和广播域
- 划分方式:基于接口,基于 MAC 地址,基于 IP 地址
- 802.1Q 帧:插入 VLAN 标签的帧
- 标准:802.3ac
- 长度:1522B
- 优点:
- 共享资源
- 简化网络管理
- 提高网络安全性
广域网
-
任务:长距离运送主机发送的数据
-
特点:广域网各节点交换机的链路都是高速链路,广域网考虑通信容量要大
-
与局域网的关系:局域网可以通过广域网与另一个较远的局域网通信
-
连接方式:点对点连接(普遍)
-
着重点:资源共享
-
广域网和局域网的关系图
-
点对点 Point-to-Point / PPP 协议:
-
地位:最流行的点对点链路控制协议
-
应用:PPP 协议是用户计算机和 ISP 通信使用的数据链路层协议,广泛用于广域网路由器之间的专用线路
-
组成
- 链路控制协议 LCP:建立,配置,测试数据链路连接
- 网络控制协议 NCP:为网络层协议建立和配置逻辑连接
- 将 IP 数据报封装到串行链路的方式:
-
实现透明传输的方式:当 PPP 异步传输时采用字节填充法,当 PPP 同步传输时采用零比特填充法
-
单位:字节,因此 PPP 帧的长度都是整数个字节
-
帧格式
-
F:表示帧的开始和结束
-
协议:0x0021 表示信息字段是 IP 数据报,0xC021 表示信息字段是 LCP 的数据
-
信息部分:0-1500B,因为 PPP 是点对点的,不使用 CSMA/CD 协议,也就没有最短帧长的限制
-
-
状态图
-
特点:
- 提供有连接的不可靠服务
- 只支持全双工的点对点链路
- PPP 的两端可以使用不同的网络层协议
- 面向字节
-
数据链路层设备
-
主要设备:网桥,以太网交换机
-
网桥:
- 冲突域和广播域:分割冲突域,不分割广播域
-
以太网交换机
-
工作层:数据链路层
-
本质:多端口网桥
-
冲突域和广播域:分割冲突域,不分割广播域
-
带宽:用户独占带宽(N 个接口的交换机总带宽容量为 N * 带宽,也是交换机的最大优点)
-
特点:
- 交换机接口直接与主机或其他交换机连接时,可以工作在全双工方式,无冲突即可以不使用 CSMA/CD 协议
- 交换机连接集线器时,只能工作在半双工方式,使用 CSMA/CD 协议
- 即插即用,自学习
- 交换速率高
- 独占介质的带宽
- 可以互连不同的物理层,不同的 MAC 子层和不同速率的以太网
-
自学习功能
-
交换表 switch table:至少包含 <MAC地址,端口>
-
学习过程
- 假设 A 发往 B,查找交换表但不存在 B 的 MAC 地址,将 A 的 MAC 地址和端口写入交换表,并向除了 A 对应端口的其他所有端口转发
- 假设 B 发往 A,查找交换表存在 A 的 MAC 地址,即从对应的端口转发,并将 B的 MAC 地址和端口写入交换表
- ···
TIP:每个表项都有一定的有效时间,过期删除
-
-