为网络层提供的服务
Q: 数据链路层提供的“无连接无确认”服务, 其典型例子是什么?
A: 以太网
Q: 数据链路层提供的“无连接有确认”服务, 其典型例子是什么?
A: 无线局域网 (802.11)
Q: 数据链路层提供的“有连接有确认”服务, 其典型例子是什么?
A: HDLC (高级数据链路控制)
封装成帧
零比特填充法
选定一个特定的比特串来标志一帧的开始和结束
例如 01111110 (六个连续的 1)
如果在要传递的数据流中存在五个连续的 1
则{在后面增加一个 0}, 使得数据字段中不可能出现 01111110
Q: HDLC (高级数据链路控制, High-level Data Link Control) 使用哪种组帧方法?
A: 零比特填充法
差错控制
检错编码
奇偶检验码
- 奇检验码: 附加一个检验位后, 码长为 n 的码字中”1”的个数为{奇数}
- 偶检验码: 附加一个检验位后, 码长为 n 的码字中”1”的个数为{偶数}
奇偶校验码的局限性
只能够检验出{奇数}(奇偶性) 个比特的错误
Q: CRC 循环冗余码对于约定的多项式有什么要求?
A: 双方约定生成多项式 G (x), 最高位和最低位必须为 1
CRC 循环冗余码计算过程:
- 加 0: 根据生成多项式 G (x) 的阶数 r, 在原始数据末尾添加 {c1:: r 个 0}。
- 相除: 用数据和 0 组成的长串, 对 G (x) 对应的二进制码进行 {c2:: 模 2 除法}。
- 取余: 得到的余数即为 {c3:: FCS (帧检验序列)}, 也就是循环冗余码。
Q: 使用 CRC 冗余码进行检错
如何判断传输的帧是正确的还是有错误?
A: 将帧除以多项式 G (x) 所对应的二进制码
如果余数为 0, 则正确
Q: 使用 CRC 冗余码进行检错
检验码的位数与多项式 G (x) 有关吗?
A: 检验码的位数=多项式 G (x) 的阶数
CRC 检验码可以检测出所有{c1:: 单比特}错误。
纠错编码
海明码位数公式
设 n 为信息位的位数, k 为检验位的位数, 能够纠错位数为 1 位
流量控制与可靠传输
停止-等待协议, 后退 N 帧协议和选择重传协议只在发送窗口大小与接收窗口大小上有所差别
停止-等待协议: 发送窗口
后退 N 帧协议: 发送窗口
选择重传协议: 发送窗口
若采用 n 比特对帧编号
后退 N 帧协议与选择重传协议还需要满足{
Q: 如何保证帧一定是有序接收的?
A: 接受滑动窗口大小为 1 (
Q: 停止等待协议 (S-W) 是如何实现可靠传输的?
A: 停止等待协议
接受 0 号帧后, 发送一个 ACK0, 或者 ACK=1
Q: 选择重传协议的发送窗口
A:
Q: 什么是累计确认? 以发送方收到 0,2,3 号帧的确认为例
A: 接收方对按序到达的最后一个分组发送确认
因此本题中收到 3 的确认帧就表示编号为 0,1,2,3 的帧已接收
而此时发送方未收到 1 号帧的确认不代表 1 号帧未到达接收方, 只能代表确认帧在返回的过程中丢失
在 GBN (后退 N 帧) 协议中, 接收方一般采用{c1:: 累积}确认的方式。
发送方式的信道利用率分析
停止等待 (S-W) 协议下信道的利用率
连续 ARQ 协议下信道的利用率
Q: 连续 ARQ 协议下信道的利用率有可能到 1 吗?
A: 仅在理论下有可能
如果
则, 可以达到最高的信道利用率 1
Q: 帧序号位数为 8 比特,
GBN 协议和 SR 协议, 在不出差错的情况下, 谁的最大信道利用率比较高?
A: GBN 协议, 信道利用率最高
信道利用率公式为:
帧序号位数同为 8 比特, SR 的接收窗口一般大于 1, 而 GBN 的接收窗口等于 1, 接收窗口数+发送窗口数
因此, SR 协议发送窗口的一般小于 GBN 协议
导致信道利用率公式中的 n 较小, 信道利用率较低
介质访问控制
信道划分
介质访问控制方法可以分为静态和动态两种:
- {c1:: 信道划分}方法属于静态分配信道。
- {c2:: 随机访问}和{c3:: 轮询访问}方法属于动态分配信道。
Q: 频分复用 (FDM) 是如何划分信道的?
A: 将信道划分为不同的频段。所有用户在同一时间占用不同频段, 即在空间上分割信道。
Q: 时分复用 (TDM) 是如何划分信道的?
A: 将时间划分为等长的时间片, 轮流分配给每个用户。所有用户在同一时间占用相同频段, 即在时间上分割信道。
Q: 波分复用 (WDM) 是如何划分信道的?
A: 本质上是光的频分复用, 在光纤中根据波长的不同划分出多条并行信道, 即在空间上分割信道。
Q: 码分复用 (CDM) 是如何划分信道的?
A: 为每个用户分配一个唯一的、相互正交的码片序列。所有用户可以在同一时间、同一频段发送数据, 通过码片序列来区分和恢复各自的信号。它同时利用了时间和空间。
Q: 码分复用的具体实现, 发送方
A: 给每个发送方一个向量, 所有向量两两正交
发送 1, 则发送分配的向量, 发送 0, 则取反分配的向量, 再发送
多个发送方的发送内容在信道上直接叠加, 由接收方处理
Q: 码分复用的具体实现, 接收方
A: 给 A 发送方分配 a 向量, B 发送方分配 b 向量, C 发送方分配 c 向量
接收方 D 收到 t 向量
如果想要知道 A 发送的值, 利用正交向量的特性
将 a 向量与接受到的 t 向量进行规格化内积
随机访问介质访问控制
ALOHA
Q: 纯 ALOHA 协议与时隙 ALOHA 协议的区别 (发送与冲突处理)
A: - 发送:
纯 ALOHA 协议: 在任何时候都可以发送
时隙 ALOHA 协议: 只有在时隙 slot 的开始可以发送, 且发送时延不能超过时隙的长度
- 冲突处理
纯 ALOHA 协议: 等待随机时间后发送
时隙 ALOHA 协议: 等待整数个时隙的时间后发送
Q: ALOHA 协议是如何判断是否发生冲突的?
A: ALOHA 协议要求接收方一定要有确认
若在一段时间内未收到确认, 则该站点就认为传输过程中发生了冲突
CSMA
Q: CSMA 协议是如何判断是否发生冲突的?
A: 相较于 ALOHA 协议多了一个载波监听装置 (Carrier Sense)
Q: 几种 CSMA 协议处理信道空闲与信道忙的区别
1-坚持 CSMA
非坚持 CSMA
P 坚持 CSMA
A: - 空闲
1-坚持 CSMA: 立即发送数据
非坚持 CSMA: 立即发送数据
P 坚持 CSMA: 以 p 的概率发送数据, 以 1-p 的概率推迟发送
- 忙
1-坚持 CSMA: 持续监听直至信道空闲
非坚持 CSMA: 放弃监听, 等待一个随机的时间后再监听
P 坚持 CSMA: 持续监听直至信道空闲
Q: 信道忙的情况下, p 坚持 CSMA 与 1-坚持 CSMA 的持续监听直至信道空闲
有什么区别?
A: p 坚持 CSMA 只能用在时隙信道, 到下一个时隙的开始时, 监听信道
而 1-坚持 CSMA 不要求是时隙信道, 可以一直监听信道
CSMA/CD
Q: 全双工需要使用 CSMA/CD 协议吗?
A: 不需要
CSMA/CD 协议会进行冲突检测
然而全双工有发送和接受两个信道, 不存在冲突
Q: 相较于 CSMA 协议, 为什么 CSMA/CD 协议要引入冲突检测 (Collision Detection) 功能?
A: CSMA 没有冲突处理机制, 如果发生冲突将导致时间和信道资源的浪费
Q: 为什么使用了 CSMA 仍然有可能发生冲突?
A: 如果一条信道承担了双向传输的功能
有可能出现, 发送的时候, 两边都认为信道是空闲的
两边同时向对方发送数据, 发生冲突
CSMA/CD 只能进行{半双工}(单工, 半双工, 全双工) 的通信
最短帧长的计算公式
最短帧长={RTT (争用期)*传输速率}
Q: CSMA/CD 如果发生冲突, 则使用截断二进制指数退避算法
具体是如何操作的?
A: 1. 确定单位退避时间, 为 RTT
2. 确定退避时间倍数, 随机从
3. 限定最大重传, 一般为 16. 如果重传超过 16 次, 则认为该帧永远无法传出, 并向高层报错
Q: CSMA/CD 使用截断二进制指数退避算法
如果重传次数超过了 10 次, 那么退避时间倍数的取值范围是多少?
A:
退避时间倍数取值范围为
Q: 使用二进制退避算法的 CSMA/CD 发生冲突的概率与重传的次数有关系吗?
A: 有的
重传次数在十次以内的帧, 重传次数越多, 发生冲突的概率越低
CSMA/CA
CSMA/CD 协议一般用在{c1: 有线连接的局域网}
CSMA/CA 协议一般用在{c1: 无线连接的局域网}
Q: 为什么无线连接的局域网不使用冲突检测, 而使用冲突避免的介质访问策略?
A: 无线网中, 进行冲突检测是困难的
无线传输本身的不确定性, 隐蔽站的存在等等
而且发生冲突的成本过高
只能采用冲突避免的方法减少冲突
Q: 在 CSMA/CA 中, 最短的帧间间隔 (SIFS, Short IFS) 有什么用途?
A: 用于分隔一次对话内部的连续帧 (如数据帧与确认帧), 拥有最高优先级。
Q: 在 CSMA/CA 中, 点协调功能帧间间隔 (PIFS, Point Coordination IFS) 有什么用途?
A: 在 PCF 操作模式中, 由接入点 (AP) 使用来优先抢占信道, 发送信标帧或轮询站点。
Q: 在 CSMA/CA 中, 分布式协调功能帧间间隔 (DIFS, Distributed IFS) 有什么用途?
A: 在 DCF 模式下, 普通站点在发送新的数据帧前必须等待的基本空闲时间, 用于竞争信道。
Q: CSMA/CA 中的三种帧间间隔 (SIFS, PIFS, DIFS) 的长度关系是什么?
A: SIFS < PIFS < DIFS
Q: CSMA/CA 的信道状态(空闲与忙碌) 处理
A: - 判断信道状态
空闲信道: 等待 DIFS 时间后, 如果信道依然空闲, 进行退避, 直到退避计时器为 0, 发送数据, 等待确认
忙碌信道: 进行等待, 已有退避计时器则暂停, 直到信道空闲
Q: CSMA/CA 的退避计时器什么情况下暂停?
A: 如果检测到信道变为忙碌, 则暂停退避计时器
Q: 使用 RTS (Request-To-Send) 与 CTS (Clear-To-Send) 解决隐蔽站问题的过程 (预约机制)
A: 请求方 A 广播一个 RTS
AP 收到 RTS 后, 判断是否能够预约
若能, 则广播一个 CTS
让除了 A 以外的所有设备在接下来的一段时间内不要向 AP 发送数据
A 收到 CTS: 等待 SIFS (短帧间间隔, Short IFS) 后, 向 AP 发送数据
其他收到 CTS: 在接下来的一段时间内 (根据 CTS 中的值) 不向 AP 发送数据
Q: CSMA/CA 协议一定要处理隐蔽站问题吗?
A: 隐蔽站处理不是强制要求的
没有也可以
Q: CSMA/CD 与 CSMA/CA 是否有确认机制?
A: CSMA/CD 没有, CSMA/CA 有确认机制
令牌环网
令牌环网络中, 当一个站点收到自己发出去的数据帧后, 它将{回收该帧, 并重新产生一个令牌}
令牌环网中{c1:: 不可能}有冲突发生。
局域网
以太网
MAC 地址为{48}位
以太网 MAC 帧
最小长度:{64}B
最大长度:{1518}B
Q: 以太网 MAC 帧的组成
A: - 目的地址: 目的的 MAC 地址
- 源地址: 源头的 MAC 地址
- 类型: 通知上层使用哪种协议处理
- FCS: 检验码, 检验目的地址, 源地址, 类型,数据, 不检验前导码
Q: 以太网帧为什么不需要帧结束定界符?
A: 太网帧在传输的过程中, 各帧之间一定会有天然的间隙
Q: 以太网帧比 MAC 帧多了哪部分?
A: 多了 7B 的前同步码与 1B 的帧开始定界符
以太网参考模型一般只包括 OSI 模型中的{物理, 数据链路}层
Q: 以太网默认的物理层比特流编码方式是?
A: 曼彻斯特编码
以太网的 MAC 协议 (Media Access Control,媒体访问控制子层协议) 提供的是{无连接不可靠服务}(连接与可靠)
Q: 为什么以太网的 MAC 协议 (Media Access Control,媒体访问控制子层协议) 提供的是无连接不可靠服务
A: 考虑到局域网中信道质量良好, 以太网选择提供无连接不可靠服务, 使得数据传输更加便捷
无线局域网 IEEE802.11
Q: 无线局域网 IEEE802.11 MAC wifi 帧地址字段的两种常见情况
A:
Q: IEEE802.11MAC 帧 (Wi-Fi 帧) 中 MAC 首部的地址字段指的是 IP 地址还是 MAC 地址?
A: MAC 地址
MAC 帧位于数据链路层 (layer2.)
而 IP 地址位于网络层 (layer3.)
不可能是 IP 地址
Vlan
Vlan MAC 帧
最小长度:{c1:64}B
最大长度:{c1:1522}B
Q: 为什么 vlan MAC 帧最大长度为 1522B, 而不是以太网的 1518B?
A: IEEE 802.1Q 标准对以太网帧格式进行了修改, 在源 MAC 地址字段和协议类型字段之间加入 4 字节的 802.1Q Tag.
Device!
中继器 (Repeater) / 集线器 (Hub):
- 所属层: {c1:: 物理层}
- 隔离冲突域: {c2:: 否}
- 隔离广播域: {c3:: 否}
网桥 (Bridge) / 交换机 (Switch):
- 所属层: {c1:: 数据链路层}
- 隔离冲突域: {c2:: 是}
- 隔离广播域: {c3:: 否}
路由器 (Router):
- 所属层: {c1:: 网络层}
- 隔离冲突域: {c2:: 是}
- 隔离广播域: {c3:: 是}