数据链路层
数据链路层
数据链路层基本服务

数据链路层要解决的问题:分组在一个网络(或一段链路)上传输的问题。

- 帧,是链路上的数据单元。数据链路层关注3个重点问题:封装成帧,差错检测,可靠传输。
链路层提供以下服务(4个):
- 组帧。将数据封装成帧。帧头包含发送结点和接收结点的地址信息;帧尾包含用于差错检测的控制编码。

- 链路接入。两种接入方式:点对点链路、广播链路(需借助MAC协议,才可实现帧的正确传输)。
- 点对点:需关注组帧、差错控制、可靠交付3个问题。
- 广播:基于CSMA/CD协议的共享式以太网的媒体接入控制协议、基于CSMA/CA协议的802.11局域网的媒体接入控制协议
- 可靠交付。
- **差错控制。**只要有数据传输的地方,就肯定有出错的几率,故需采取降低错误的措施,如:检错重发、前向纠错,检错丢弃、反馈校验。
差错控制 100° *
概念
通过差错编码技术检测数据完整性;
通过一些措施进行差错纠正和处理;
是实现可靠传输的重要技术手段。
噪声的影响
之所以会发生传输差错,和噪声有关。
分类:随机噪声(热噪声)、冲击噪声(电闪雷鸣)。
影响:随机噪声产生随机差错,冲击噪声产生突发差错。(影响力:突发>随机)
方式:巧记:”两检,一前一反“
检错重发
发送端:对待发送的数据进行==差错编码==。
接收端:对已接收的数据进行差错检测,有误则反馈给发送端并请求重发,直至正确。
前向纠错
发送端:对待发送的数据进行纠错编码。
接收端:对已接收的数据进行差错检测,有误则直接纠错。
适用于:单工链路、或实时性高的应用。
反馈校验
发送端:直接发数据
接收端:发回已经收的数据给发送端。
发送端:检测回送的数据是否正确,有误则重发,直至正确
【考点】反馈检验无需差错编码,不建议使用,效率低,实时性差。
检错丢弃
数据有误,就丢弃。
差错编码 100° **
差错编码的基本原理:在源数据上附加一定的冗余信息,该冗余信息建立起数据信息的某种关联关系,将数据信息以及附加的冗余信息一同发送到接收端,接收端可以检测冗余信息表征的数据信息的关联关系是否存在,如果存在则没有错误,否则就有错误。

奇偶校验码
约定:待发送数据的格式为二进制位串,如1001001001101
校验方式:在待发送数据后面添加1位奇偶检验位,使得整个位串中“1”的个数为奇数(奇校验)、或偶数(偶校验),奇校验奇数个1,偶校验偶数个1。
实例:待发送的数据 101101
注:(粗体为校验位)(高亮部分为误码)
奇校验时:
1101101 → 1101100
1101101 → 0111101
偶校验时
0101101 → 0101111
0101101 →==1==001101
结论:奇变偶不变,有变就能检测出误码。
CRC循环冗余码 *
广泛使用,检错能力强,编码效率高,易于实现。
应试技巧

实现方式
- 收发双方约定好一个生成多项式G(X)
- 发送方:数据位串+冗余码(通过G(X)计算得到)
- 接收方:利用生成多项式G(X)测试数据是否产生无码。


示例:

发送端CRC计算规则 | 示例 |
---|---|
构造被除数(待发信息后面添加生成多项式最高次数个0) | 待发信息:101001,最高次数为3,则被除数为:101001000 |
构造除数(生成多项式系数构成的比特串) | G(X)=x3+x2+1,其系数构成的比特串位:1101 |
进行除法运算(异或运算) | 异或运算:同为0,异为1 |
检查余数(余数位数==生成多项式的最高次数,不足则在余数前补0) | 101001000/1101= 110101···1 ,余数为1,与生成多项式最高次不等,补0,则为001 |
多路访问控制协议(MAC协议)
MAC协议,全称Multiple Access Control Protocol,又叫多路访问控制协议。其根本任务,解决信道共享问题。
数据链路层的信道主要有:点对点信道、广播信道(需借助MAC协议来完成帧的传输)。
MAC协议有3类:
- 信道划分
- 随机访问
受控接入(过时)
信道划分MAC协议
信道划分MAC协议用的是多路复用技术,主要包括频分多路复用、时分多路复用、波分多路复用、码分多路复用。
**多路复用技术:**把多个低速信道组合成一个高速信道的技术,提高数据链路的利用率。
image-20210830200509237
频分多路复用FDM:
时分多路复用TDM:
波分多路复用WDM:光纤用的就是这个技术。
码分多路复用CDM:
随机访问MAC协议 100°
ALOHA协议 **
- 纯ALOHA协议
- 时隙ALOHA协议
纯ALOHA协议:任何站点有数据发送时,都可以直接发送数据。发送站发出数据后侦听一段时间,在侦听期间若收到接收站发来的应答信号,则说明发送成功,反之失败,则等待一个随机时间再进行重发,再冲突再等,直到发送成功为止。
时隙ALOHA
了解下它的基本思想:将时间划分成若干个相同的时间片,所有用户在时间片开始时刻同步接入网络信道,若发送冲突,则必须等到下一个时间片开始时刻再发送。

载波监听多址接入协议(CSMA协议) 100° *

分类:
非坚持CSMA 100° | 1-坚持CSMA 100° | P-坚持CSMA | |
---|---|---|---|
数据发送前 | 先侦听信道 | 先侦听信道 | 先侦听信道 |
信道空闲时 | 立即发送数据 | 立即发送数据 | P概率:在最近时隙发送, 1-P概率:延迟到下一个时隙发 |
信道忙时 | 等一个随机时间后重发 | 继续侦听直至空闲 | 等下一个时隙并重新发送 |
有冲突时 | 等一个随机时间后重发 | 等一个随机时间后重发 |
注意:他们实现原理必考,注意理解掌握。
带冲突检测的载波监听多址接入协议(CSMA/CD协议) 100° **

工作原理:通信站发送数据时,若检测到冲突,则立即停止发送数据,并发出一个冲突强化信号,用于告知其他通信站此时信道忙碌。
工作状态:
- 传输状态:当信道被占用时,其他通信站禁止使用。
- 竞争状态:所有通信站都有权尝试获取信道使用权。
- 空闲状态:没有通信站使用信道。
使用CSMA/CD协议实现多路访问控制时,通过共享通信信道的两个通信站之间相距的最远距离D、信号传播速度v、数据帧长度L、信道信息传输速率R需满足以下约束:传输时延≥2倍的传播时延,因此可得结论:CSMA/CD存在冲突的主要原因是因为信号的传播时延。
$$
\frac{L_m}{R} ≥ \frac{2D_m} {v}
$$
【说明】Lm 数据帧最小长度; R 信息传输速率; Dm 两通信站之间的最远距离 ;v 信号传播速度
载波监听多址接入/碰撞监测 即 CSMA/CD 。
CSMA/CD 帧发送流程

CSMA/CD 帧接收流程

受控接入MAC协议
用户不可随意接入信道,必须服从控制。受控接入MAC分:集中式控制、分散式控制。
局域网 100° *
ARP协议 100°
(一般考简答)
地址解析协议,将IP地址解析为对应的MAC地址。
作用:根据本网目的主机或默认网关的IP地址获取其MAC地址。
基本思想:每台主机都设有专用内存区,用于存放一张ARP表,该表存储了该主机与所在局域网内其他主机和路由器的IP地址与MAC地址的映射关系,ARP表更新频繁。ARP是通过广播ARP来询问目的IP地址对应的MAC地址。
虚拟局域网(VLAN)
虚拟局域网

划分虚拟局域网有3种方式: 100°
- 基于交换机端口
- 基于MAC地址
- 基于上层协议类型或地址划分
冲突域、广播域
冲突域:冲突域是指在一个局域网内,如果任意两个结点同时向物理介质中发送信号,这两路信号一定会在物理介质中相互叠加或干扰,从而导致数据发送的失败,则这两个结点位于同一个冲突域。
广播域:广播域是指任一结点如果发送链路层广播帧(即目的 MAC 地址为 FF-FF-FF-FF-FF-FF)的话, 接收该广播帧的所有结点与发送结点同属于一个广播域。
交换机
基本概念:
工作原理 100°
当一帧到达时,交换机首先决策将该帧丢弃还是转发,如果是转发,则需要进一步决策将该帧转发到哪个端口,决策依据是以帧的目的MAC地址为主键,查询交换表,若表中有帧的目的MAC地址对应的交换表项,且端口与接收该帧的端口相同,则丢弃该帧,否则向指定端口转发该帧。若交换表中没有帧的目的MAC地址对应的交换表项,则开始泛洪。
工作方式


点对点链路协议

PPP协议 100° **
PPP是使用最多的点对点链路协议,其功能有三类:
- 成帧
- 链路控制协
- 网络控制协议
PPP数据帧结构:

PPP的字节填充技术
控制转移字节**“01111101”**用来解决信息中的01111110 与标志字段01111110重复的问题。
**PPP的透明传输 **
首先,弄懂什么是透明传输:通过处理数据比特组合中恰巧与控制信息一致的比特串,以保证传输是透明的。

PPP实现透明传输是通过字节填充实现。在帧的首尾分别添加0111110,PPP会对边界内的内容进行scan,当内容里存在0111110时,在该字节**前面添加01111111,以标识该字节为数据的比特串而非控制信息的比特串。如:0010111110**→001011111110111110
HDLC协议 100°
HDLC协议是面向位的协议,既适用于点对点,也适用于点对多点的链路。
HDLC有3种类型的帧:
- 信息帧
- 管理帧
- 无序号帧
HDLC数据帧结构:
标志位 | 地址位 | 控制位 | 数据 | 校验和 | 标志位 |
---|---|---|---|---|---|
01111110 | 01111110 |
HDLC的透明传输
为避免数据中的比特串与控制信息的比特串相同,HDLC采用**位填充**方式区分HDLC帧的边界,发送端会对边界内的内容进行scan,只要发现5个连续的1(11111),就在第5个1后面插入一个0,如:0111110 → 发现5个连续的1 → 011111010。以此区分数据比特串与控制信息比特串。