关于我

数据链路层

第三章_数据链路层

3.1 数据链路层的功能

尽管数据链路层协议繁多,但是他们都需要解决三个基本问题:封装成帧、透明传输 和 差错检测。

3.1.1 封装成帧(组帧)

帧(Frame) 是数据链路层的协议数据单元(PDU),为了方便数据链路层对等实体间传输的管理,所以需要把网络层的 IP 数据报(分组)封装成帧。

那么封装成帧一定要解决两个问题:

  • 帧定界: 如何让“接收方”能确定帧的界限。
  • 透明传输: 无论帧的数据部分出现什么比特组合,都不会与帧定界符等控制信息相混淆。接收方在接收到帧后能够去除“帧定界”等附加信息,将帧的数据部分恢复为 SDU。

那么有以下四种组帧方法:字符计数法、字节填充法、零比特填充 和 违规编码。

3.1.1.1 字符计数法

在每个帧的开头,用一个定长计数字段表示帧长。如图所示: 字符计数法

3.1.1.2 字节填充法

采用 ASCLL表中的控制符来划分帧的起始与结尾,会遇到数据部分与控制字符相同的问题,采用加转义字符的方式解决。如图所示: 字节填充法

3.1.1.3 零比特填充

和字节填充法类似,但是采用 01111110 这样的特殊比特串表示开始和结束,同理也会出现和上述一样的问题,采用遇5个 1 加(减) 0 的方式解决问题,如图所示: 零比特填充 零比特填充也是 HDLC 协议和 PPP 协议的组帧方式,在现实生活中被广泛使用。

3.1.1.4 违规编码

违规编码是在数字信号上做文章,通过故意产生不符合编码规则的信号来表示特殊控制信息。示意图(采用曼彻斯特编码为例)如下: 违规编码

3.1.2 差错检测

如果接收方发现了帧内部的一个“位错”,可以有两种解决方案:

  • 解决方案一(检错编码):接收方发现比特错误后丢弃帧,并通知发送方重传帧。如 奇偶校验码、CRC校验码。
  • 解决方案二(纠错编码):由接收方发现并纠正比特错误,如 海明校验码。

3.1.2.1 奇偶校验码(检错编码)

奇偶校验逻辑很简单,用一个比特位(校验位)使所有 数据位 + 校验位(校验码) 中“1”的个数为奇(偶)数:

  • 奇校验: 通过设置校验位,使得 校验码中 “1” 的个数为奇数
  • 偶校验: 通过设置校验位,使得 校验码中 “1” 的个数为偶数

通常双方会事先约定好采用奇校验还是偶校验(一般使用偶校验),那么检测时只需使用异或运算,连续异或所有比特串,结果为 1 表示 数据位 + 校验位(校验码) “1” 的个数为奇数,反之为偶数。 刚好与采用偶校验,需填充的值相同。

值得注意的是,奇偶校验无法检测出偶数位错误。 示意图如下: 奇偶校验码

3.1.2.2 循环冗余校验码(检错编码)

循环冗余校验码又称 CRC 码

通常双方事先约定好生成多项式,取最高次幂作为校验位位数,将信息码左移校验位位数,低位补 0 ,再取生成多项式的各阶系数作为除数,右移后的信息位为被除数。进行模 2 除法。产生余数即为校验位。 产生校验位的过程如图所示,难点是理解模 2 除法产生校验位的过程 接收方使用同样的除数,对校验码进行模 2 除法,即可判断是否出错。值得注意的是 CRC 是有一定纠错功能的(不常用,说了解就行)。如图所示: CRC判断是否出错 上图例子中,出现两个位无法确定是谁错的情况,其实是信息位太长的问题,超出了校验位的表示范围。如果校验码没有超出校验位的表示范围,那余数与出错位之间就是一一对应的关系。 CRC纠错

3.1.2.3 海明校验码(纠错编码)

海明校验码的四步求解步骤如下,易忘点在于理解如何确定不同校验位对应的检测组: 海明校验码 海明校验码具有一位纠错,两位检错的能力,其第四步纠错规则如下: 海明码检/纠错

3.1.3 流量控制与可靠传输

流量控制与可靠传输的概念如下图所示:

3.1.3.1 滑动窗口机制

不论是流量控制还是可靠传输,都与滑动窗口机制有关,这里简单介绍滑动窗口的概念:

  • 发送窗口内的帧允许被发送。
  • 接收窗口内的帧允许被接收。
  • 接收方通过确认机制控制发送方窗口向前移动。

示意图如下: 滑动窗口机制

3.1.3.2 停止等待协议(S-W)

停止等待协议内容如下: 停止等待协议 相关概念 首先我们来看正常的过程: S-W 正常过程 若是出现数据帧丢失情况,如下图所示: 数据帧丢失 若是出现确认帧ACK丢失的情况,如下图所示: 确认帧ACK丢失

3.1.3.3 后退 N 帧协议(GBN)

后退 N 帧协议(GBK Go-Back-N)内容如下: 注意是可以累计确认不是一定累计确认。 后退 N 帧协议内容正确的情况如下: 正常过程 若是出现数据帧丢失情况,如下图所示: 数据帧丢失 后退 N 帧协议并不是指滑动窗口往后退,而是指如遇需超时重传的帧,后面的所有发送的帧都需要退回来重新传输。

若是出现确认帧ACK丢失的情况,如下图所示: 确认帧ACK丢失 注意必须满足 Wt + Wr <= 2n,若不满足极有可能出现帧失序的情况,如下图所示: 帧失序

3.1.3.4 选择重传协议(SR)

选择重传协议(SR Selective Repeat)的内容如下: 注意,虽然发送窗口 Wt 和接收窗口 Wr 都能大于 1 ,但是除了 Wt + Wr <= 2n,还需满足 Wr <= Wt ,这样是为了提高滑动窗口的效率因为 确认帧/否认帧 一旦发出,接收方滑动窗口就能移动了,在实际中一般取 Wr == Wt。 选择重传协议内容 那么正确的过程如下: 正确的过程 若是出现数据帧丢失情况,如下图所示: 数据帧丢失 若是检测出错,且不能纠错,将其出错帧丢弃后,会发送否认帧 NAK,这是 SR 协议的特色,主动请求重传。情况如下图所示: 否认帧 NAK 若是出现确认帧ACK丢失的情况,如下图所示: 确认帧 ACK 与 GBN 相同,若不满足 Wt + Wr <= 2n,若不满足极有可能出现帧失序的情况。

3.1.3.5 三种协议的信道利用率分析

首先补充一些术语,如果题目中提到:

  • 滑动窗口协议: 指的是 GBN 或 SR,S-W不算在内。
  • ARQ 协议(自动重传请求): 指的是 S-W、GBN 和 SR 这三种协议。
  • 连续 ARQ 协议: 指的是GBN 或 SR

来看停止等待协议(S-W) 的信道利用率分析,计算方式如下: S-W信道利用率 用一个真题来练习,如下图所示: 真题

接下来看 后退 N 帧协议选择重传协议,这两个做题时,在公式方面是一样的: GBN and SR 以两道真题熟悉: 真题 真题

3.2 介质访问控制

3.2.1 信道划分介质访问控制

信道划分介质访问控制是通过复用技术,将同一传输介质上的多个设备通信隔离开来。实质是通过分时、分频、分码等方式,将一个广播信道在逻辑上划分为若不相关的子信道,主要有以下四种方法:

3.2.1.1 时分复用(TDM) 与 统计时分复用(STDM)

时分复用就是将传输时间划分为等长的时间片,构成一个 TDM 帧,每个时间片又划分为多个时隙,对应每个用户,每个用户的对应时隙在 TDM 帧中的位置不变。 注意:TDM 帧是一段固定长度的时间间隔,与数据链路层中的 “帧” 概念不同。 如图所示: 时分复用 当某用户暂无数据发送时,其分配的时隙仍被保留,因此信道利用率降低

也因此将 TDM 进行改进得到 统计时分复用(STDM 也称异步时分复用)。STDM 不固定分配时隙,而是按需动态分配时隙。仅当用户有数据发送时,才为其分配 STDM 帧中的时隙。从而显著提高线路利用率,如图所示: 统计时分复用

3.2.1.2 频分复用(FDM)

频分复用(Frequency Division Multiplexing,FDM) 就是分频带,总带宽为 0-6000Hz,用户一用 0-2000Hz,用户二用 2500-4000Hz,用户三用 4500-6000Hz。用户之间空出来的频带就是隔离频带,如图所示: 频分复用

3.2.1.3 波分复用(WDM)

波分复用技术这里的波,指的是波长。本质和频分复用技术是一样的。因为光速恒定,不同波长自然也就对应不同频率。如图所示: 波分复用

3.2.1.4 码分复用(CDM)

在 2G、3G 网络时代,节点之间的通信常用的技术是 CDMA(Code Division Multiple Access) 技术,而 CDMA 技术的底层原理就是 码分复用(CDM Code Division Multiplexing),这里的,指的是码片,不是码元。 其过程如下: CDM过程 各个站点会提前知道各个站点的码片序列,但是要求任意两站的码片能够相互正交,以方便后续计算规格化内积,示例如图所示: CDM过程示例 在来一个难一点的例子: CDM过程示例(难度+) 上图的例子实际上来源于下图的真题: CDM真题

3.2.2 随机访问介质访问控制

随机访问介质访问控制知识发展过程总览如下: 知识总览

3.2.2.1 ALOHA 协议

ALOHA 协议分为纯 ALOHA 协议时隙 ALOHA 协议。对比如下: ALOHA对比 纯 ALOHA 协议: 纯 ALOHA 协议的基本思想是:在总线形网络中,任意一站点需要发送数据的时候,直接发送,若一段时间后没有收到 ACK ,认为发送失败,发生冲突。已经确认发生冲突后随机等待一段时间再发送,直至成功。 示意图如下: 纯 ALOHA 协议 时隙 ALOHA 协议: 为了克服纯 ALOHA 协议发生冲突概率高,协议吞吐量低这一缺点而提出时隙 ALOHA 协议。基本思想是:将时间划分为等长的时隙(Slot),并要求所有站点同步时钟,站点只能在每个时隙的起始时刻发送帧(等时间槽),且一帧的发送时间必须小于一个时隙长度。确认发生冲突后,还是随机等待一段时间再找时隙发送。 示意图如下: 时隙 ALOHA 协议

3.2.2.2 CSMA 协议

CSMA(Carrier Sense Multiple Access)协议,即载波监听多路访问协议。是在 ALOHA 协议的基础上引入了载波监听机制。即监听信道是否空闲。

CSMA 协议分为 1-坚持 CSMA非坚持 CSMAp-坚持 CSMA。1 和 p 代表的都是概率(监听发现信道空闲后即刻发送数据的概率),坚持表示若信道不空闲,是否坚持监听信道直到空闲。非坚持 CSMA 可以理解成 1-非坚持 CSMA。

三种 CSMA(1-坚持、非坚持、p-坚持)本质上都是在 “连续时间信道” 上工作的,不是时隙化信道。只有 p-坚持 CSMA 在描述算法时引入了时隙概念。

1-坚持 CSMA: 一直监听,信道一空就立刻发送。 过程图如下: 1-坚持 CSMA 非坚持 CSMA: 信道忙就随机等一段时间再监听。 过程图如下: 非坚持 CSMA p-坚持 CSMA: 一直监听,信道空闲时,以概率 p 发送。p-坚持 CSMA 就是 1-坚持 CSMA 和 非坚持 CSMA 两种方案的折中方案。 过程图如下: p-坚持 CSMA

CSMA 协议本身没有冲突检测功能,发生冲突后只能依赖接收方检测出错,并通过 S-W、GBN、SR 等上层可靠传输协议重发。 CSMA/CD 则可以实时检测并处理冲突。 CSMA/CA 也不检错,但是会尽量避免冲突

3.2.2.3 CSMA/CD 协议

这个协议主要用于早期的总线形以太网。早期以太网使用同轴电缆作为传输介质,自然是半双工。这个协议也是考研中爱考的点。 CSMA/CD 协议内容大纲如下: 协议内容 首先需要介绍 CSMA/CD 协议的流程,示意图如下: CSMA/CD 协议流程发送方 CSMA/CD 协议流程接收方

我们还需明确三个概念:

  1. 争用期: 争用期
  2. CSMA/CD 协议的最短帧长: 是以太网规定了的定值,为 64B,其制定逻辑如下图所示。 最短帧长
  3. CSMA/CD 协议的最长帧长: 为了防止某些结点一直占用信道,以太网将其规定为 1518B

3.2.2.4 CSMA/CA 协议

CSMA/CA 协议适用于 IEEE 802.11 无线局域网(Wi-Fi),是考研中的难点,但不是重点。 其核心要点总结如下: CSMA/CA 核心要点 首先需介绍三个概念

  • AP(Access Point): 即接入点,收集所有终端的无线信号、集中转发数据、可以管理冲突、避免碰撞(CSMA/CA + RTS/CTS)。家用路由器 = 路由器 + 以太网交换机 + AP,AP 可以看成是家用路由器上那根长长的线。
  • 隐蔽站: 无线通信中,并非所有站都能够互相侦听到对方(站的侦听范围有限),当两个互相无法侦听的站同时向同一个 AP 发送数据的时候,会在这个 AP 这里造成冲突,这两个站互为隐蔽站。
  • DIFS、PIFS 和 SIFS: DIFS(分布式协调 IFS)是最长的 IFS(帧间间隔) ,在 DCF 模式下用来发送数据帧和管理帧;PIFS(点协调 IFS)中等长度的 IFS ,在 PCF 方式中使用;SIFS(短 IFS),用于分隔同一段对话中的连续帧。不需要具体深究,只需要知道 DIFS > PIFS > SIFS ,然后记住图就行。

为什么 CSMA/CD 协议无法用于无线局域网?其原因在于:

  • 适配器收到的信号强度通常远小于其发送信号的强度,且无线信道中信号强度动态范围大,若要实现冲突检测,硬件成本过高
  • 无法解决隐蔽站问题。

CSMA/CA 协议分布式协调功能(DCF),过程如图所示: DCF CSMA/CA 协议点协调功能(PCF),这个功能可以选择是否启用,过程如图所示: PCF

3.2.3 令牌传递协议

令牌传递协议(用于令牌环网技术)实际是一个过时的协议,运用于环形拓扑结构的网络之中,在上世纪 80 年代极为流行。最终被星形结构的以太网技术淘汰。该节简单了解即可。过程如下:

以太网技术(总线形)<--竞争对手--> 令牌环网技术(环形)
     |
     |
以太网技术(星形,彻底解决总线争用问题)
     |
     |
令牌环网技术被淘汰            

令牌其实就是令牌帧,我们首先介绍 令牌帧数据帧 两个概念: 令牌帧和数据帧 令牌会在环网中不断地被传递,令牌途经不需要传输数据的节点时,修改令牌号将其传输给下一个节点。

遇到需要传输数据的节点,该节点就将就将令牌帧转化为数据帧,使其在环形网络中单向传递(一个令牌传递一帧)。

令牌帧数据帧传递过程如下: 数据帧传输过程 令牌帧传递过程

在介绍 MAU 的概念以方便理解令牌环网技术,如图所示: MAU

3.3 局域网

3.3.1 局域网基本概念和体系结构

首先先介绍什么是 IEEE,IEEE 是电子电气工程师学会,所谓 IEEE 802 委员会是 IEEE 内部为推动局域网技术标准化而成立。而在局域网发展过程中有很多优秀的局域网技术。IEEE 802 委员会为其专门成立了各个小组以推动其标准化,如:

  • IEEE 802.3 工作组: 以太网技术。
  • IEEE 802.5 工作组(已解散): FDDI 光纤分布数字接口。
  • IEEE 802.8 工作组(已解散): 令牌环网技术。
  • IEEE 802.11 工作组: Wi-Fi 技术。

关于局域网的基本概念和体系结构如下图所示,图片很大,耐心观看: 局域网基本概念和体系结构

3.3.2 以太网 和 IEEE 802.3

以太网是一种局域网技术。它本质上是一套涵盖物理层和数据链路层的局域网技术规范。

两种以太网标准(极其相似):

  • IEEE 802.3 标准: LLC 层 + MAC 层 + 物理层
  • DIX Ethernet V2 标准(发明以太网的三家公司制定): MAC 层 + 物理层

这两种标准先有,后来才总结出来了 OSI 网络模型。 其中 MAC (Media Access Control)称为介质访问控制层;LLC(Logical Link Control)成为逻辑链路控制层

3.3.2.1 以太网标准(物理层)

首先介绍 IEEE 802.3 工作组推出的以太网标准的物理层IEEE 802.3 以太网标准 当使用双绞线作为传输介质的时候,使用交换机连接的终端节点默认都能够进行全双工通信。而使用集线器的连接的节点仅支持半双工通信。如图所示: 双绞线以太网

3.3.2.2 以太网标准(MAC(介质访问控制) 层)

IEEE 802.3 标准中的 MAC 层 + LLC 层 与 DIX Ethernet V2 标准的 MAC 层都可以视作 OSI 网络模型中的数据链路层

注意:MAC 层对应的是数据链路层,MAC 帧也是数据链路层的。

接下来介绍两种以太网标准的 MAC 层标准,我们只需要了解这两种标准在“”的格式上的区别。DIX Ethernet V2 标准与 IEEE 802.3 标准MAC 帧格式非常相似。只在两个字节表示的含义不同。 如图所示: MAC 帧的不同

3.3.2.3 单播帧与广播帧

单播帧和广播帧的概念如下图所示: 单播帧和广播帧 进而能够引出冲突域和广播域的概念,我们以一道真题来熟悉: 冲突域和广播域

3.3.3 VLAN

VLAN(Virtural LAN)即虚拟局域网,由 IEEE 802.1Q 工作组负责进行推进。

VLAN 的作用是在逻辑上划分广播域,每个 VLAN 就是一个广播域。若是没有 VLAN 整个局域网就是一个极大的广播域,不利于信息的保密与安全隔离,甚至容易出现广播风暴。如图所示: VLAN概念 关于 VLAN 的划分方式有三种:基于接口(端口)、基于 MAC 地址、基于 IP 地址。如下图所示:

  • 基于接口(端口): 基于接口(端口)
  • 基于 MAC 地址: 基于 MAC 地址
  • 基于 IP 地址: 这种划分方式能够让 VLAN 跨越路由器,让多个局域网的主机组成一个 VLAN (需要网络层的功能支持)。 基于 IP 地址

那么各个交换机之间是怎么知道该帧属于哪个 VLAN 呢,当然,对于每个以太网帧都需要在其中添加 VID 和进行重新计算 CRC 校验码。这样的帧称之为 802.1Q 帧,格式如下: 802.1Q帧

3.3.4 无线局域网 和 IEEE 802.11

无线局域网分为两类:有固定基础设施的无线局域网无固定基础设施的移动自组织网络(不属于考纲重点)。

采用 IEEE 802.11 标准的无线局域网通常称为 Wi-Fi,类似于以太网是基于 IEEE 802.3 标准的局域网技术。

Wi-Fi 与 以太网相比,最大的不同在于介质的不同,其采用同一网络分层模型(OSI/ TCP-IP思想),也有 MAC 层。帧也叫做 MAC 帧

3.3.4.1 有固定基础设施的无线局域网

其基本概念及术语如下: 有固定基础设施的无线局域网

3.3.4.2.无固定基础设施的移动自组织网络

概念如下图所示: 注意:手机当热点实现自组织网络,其他手机连他。属于 有固定基础设施的无线局域网,这时候,该手机充当 AP,而 无固定基础设施的移动自组织网络 不需要 AP,所有站点地位平等并直接通信。 无固定基础设施的移动自组织网络

3.3.4.3 802.11 局域网数据帧(无线 MAC 帧)

802.11 帧分为三种:

  • 数据帧
  • 控制帧:如 ACK、RST 和 CTS。
  • 管理帧:如 探测请求/探测响应帧。

802.11 局域网数据帧(无线MAC帧) 格式如下: 无线MAC帧 我们以一道真题来熟悉: 802.11 帧真题

3.4 广域网

3.4.1 广域网的基本概念

广域网的概念存在感很低,不用过多了解,示意图如下: 广域网

3.4.2 PPP 协议

点对点协议(Point-to-Point Protocol,PPP) 是目前最流行的点对点链路控制协议。主要有两种应用场景:

  1. 用户接入互联网时与 ISP 之间的通信。即用户家庭路由器 <—> ISP 边缘设备(接入路由器/BRAS/OLT/CMTS 等)
  2. 两台网络设备之间通过直连专线通信。

其协议内容如下: 协议内容 其 PPP 协议的工作过程如下图所示,主要在于理解其 LCP 和 NCP 两个子协议的工作过程: PPP协议工作过程

3.5 数据链路层设备

3.5.1 以太网交换机

以太网交换机的内容如下图所示: 以太网交换机内容 交换机作用过程如下:

  1. 学习源 MAC 地址:交换机读取帧的源 MAC 地址,并将 {MAC 地址,入端口} 写入或更新到交换表。这一过程称为自学习,可使交换机动态掌握各主机的连接位置。
  2. 查看目的 MAC 地址:交换机解析帧的目的 MAC 地址,并根据其类型(单播、广播或组播)采取相应的转发策略。
  3. 决策与转发: 为单播帧(目的 MAC 地址为普通主机地址)时,交换机在交换表中查找该目的地址:若找到对应表项(已知目的地址),则仅从该表项所指端口转发,实现精准交付;若未找到对应表项(未知目的地址),则执行未知单播帧泛洪(或称洪泛),即将帧从除接收端口外的所有其他活动端口转发出去,确保目标主机能收到。 为广播帧(目的 MAC 地址为 FF:FF:FF:FF:FF:FF)时,交换机不查询转发表,直接将帧泛洪到除接收端口外的所有其他活动端口。 为组播帧(目的地址为组播 MAC 地址)时,交换机通常也默认执行泛洪处理。

自学习功能: 交换机具有自学习功能,通过自学习算法构建并维护转发表。 注意:只有节点通过以太网交换机进行发送数据,以太网交换机的交换表才会记录其 mac 地址对应端口号。对于目的 mac 地址不在交换表上的情况,只能通过广播帧(发往所有端口(除了入端口)的形式进行发送。 自学习机制 为了防止终端节点因改编端口(拔线跑路)而造成的交换表地址错误,通常会设置“过期自动作废”的机制。如图所示: 过期自动作废

交换机内部交换方式: 交换机在内部具有两种交换方式,如下图所示: 交换机内部交换数据

总是在探索未知