计算机网络 | 数据链路层

计算机网络 | 数据链路层

  • 计算机网络 | 数据链路层
    • 基本概念
    • 功能概述
    • 封装成帧与透明传输
      • 封装成帧
      • 透明传输
      • 字符计数法
      • 字符填充法
      • 零比特填充法
      • 违规编码法
      • 小结
    • 差错控制
      • 差错是什么?
      • 差错从何而来?
      • 为什么要在数据链路层进行差错控制?
      • 检错编码
        • 奇偶校验码
        • CRC 循环冗余码
      • 纠错编码——海明码
      • 小结
    • 流量控制与可靠传输机制
      • 停止-等待协议(Stop-and-Wait)
      • 后退N帧协议(GBN)
      • 选择重传协议(SR)
    • 介质访问控制
      • 信道划分介质访问控制
        • 频分多路复用(FDM)
        • 时分多路复用(TDM)
        • 波分多路复用(WDM)
        • 码分多路复用(CDM)
      • 随机访问介质访问控制
        • ALOHA 协议
        • CSMA 协议
        • CSMA/CD 协议
        • CSMA/CA 协议

参考视频:王道计算机考研 计算机网络

参考书:《2022年计算机网络考研复习指导》

计算机网络 | 数据链路层

计算机网络 | 数据链路层_第1张图片

基本概念

计算机网络 | 数据链路层_第2张图片

功能概述

  • 为网络层提供服务
  • 链路管理
  • 组帧
  • 流量控制
  • 差错控制

计算机网络 | 数据链路层_第3张图片

封装成帧与透明传输

封装成帧

封装成帧就是加将数据加头加尾,相当于将数据打包。

计算机网络 | 数据链路层_第4张图片

透明传输

透明传输就是为了防止特殊的数据无法正常传输的的情况的发生,比如说在封装成帧的过程中出现数据中的某些标记符与开始/结束标记符恰巧重复等等情况。

计算机网络 | 数据链路层_第5张图片

字符计数法

在帧的首部使用一个计数字段(第一个字节,8bit)来表明帧内字符数。

计算机网络 | 数据链路层_第6张图片

缺点:如果在某一个帧内,标记位后面的某个字节的数据丢失,那么会影响后面的帧。

比如3 1 1 和 4 2 2 2,如果前面的帧丢失变成 3 1,那么后面的4就会被补到前面变成 3 1 4导致错误。

字符填充法

就是加头加尾分别标记开始结束,和零比特填充法(见下)对比,开始和结束的对应的字符不一样。

计算机网络 | 数据链路层_第7张图片

但有可能出现数据内某段比特流数据正好与标记字段重复,从而导致误判断的情况。

解决方法:添加转义字符。

计算机网络 | 数据链路层_第8张图片

零比特填充法

计算机网络 | 数据链路层_第9张图片

违规编码法

使用高-高,低-低来定界帧的起始和终止。

因为曼彻斯特编码不使用高-高,低-低来表示,所以如果使用高-高,低-低来表示帧起始和终止就不会与数据冲突。

计算机网络 | 数据链路层_第10张图片

小结

由于字节计数法中计数字段的脆弱性(计数字段错误将带来灾难性后果)以及字符填充法实现上的复杂性和不兼容性,目前较普遍使用的帧同步法是比特填充法违规编码法

差错控制

计算机网络 | 数据链路层_第11张图片

差错是什么?

数据链路层的差错的是比特的错误。

差错从何而来?

计算机网络 | 数据链路层_第12张图片

为什么要在数据链路层进行差错控制?

因为错误可以尽早发现,不会让一个错误的数据包发送了很长时间到达最终目的地之后才被发现,从而导致网络资源的浪费。

检错编码

奇偶校验码
  • 奇校验码:添加 0/1 使得 1 的个数为奇数。
  • 偶校验码:添加 0/1 使得 1 的个数为偶数。

计算机网络 | 数据链路层_第13张图片

缺点:只能检测出1、3、5、7、… 等等奇位数错误,检测成功率位50%。

CRC 循环冗余码

用传输数据除以生成多项式得到冗余码。

简化的例子:

在这里插入图片描述

实际运算步骤:

计算机网络 | 数据链路层_第14张图片

注意:

  1. 阶数就是最高位是哪位,然后位数-1,如10011就是5-1=4,1011就是4-1=3。

  2. 异或运算就是相同得0,不同得1,比如100和101做异或,结果就是001

  3. 余数添加到要发送的数据后面,称为帧检验序列FCS

示例:

计算机网络 | 数据链路层_第15张图片

计算机网络 | 数据链路层_第16张图片

需要注意的地方:

计算机网络 | 数据链路层_第17张图片

纠错编码——海明码

纠错编码:发现错误、找到位置、纠正错误。

工作流程:

计算机网络 | 数据链路层_第18张图片

海明距离:

计算机网络 | 数据链路层_第19张图片

一般而言,要检测 d 位错,码距至少要 d+1 位;要纠正 d 位错,码距至少要 2d+1 位。

第一步:确认校验码位数r

设有效数据有 m 位,校验码有 r 位。

海明不等式:2r ≥ m + r + 1

计算机网络 | 数据链路层_第20张图片

第二步:确定校验码和数据的位置

规定校验码 Pi 在海明位号为 2i-1 的位置上,其余各位为信息位。

计算机网络 | 数据链路层_第21张图片

第三步:求出校验码的值

分组以形成校验关系:

  • 校验码 P1:对应 x1,二进制为 001,负责所有形如 1** 的数据位的校验(不包含校验位)。
  • 校验码 P2:对应 x2,二进制为 010,负责所有形如 *1* 的数据位的校验(不包含校验位)。
  • 校验码 P3:对应 x4,二进制为 100,负责所有形如 **1 的数据位的校验(不包含校验位)。

校验位取值:

校验位 Pi 的值为第 i 组(由该校验位校验的数据位)所有值求异或。

计算机网络 | 数据链路层_第22张图片

第四步:检测并纠错

每个校验组分别利用校验位和参与形成该校验位的信息位进行奇偶校验检查:

计算机网络 | 数据链路层_第23张图片

纠错方法1:找到不满足奇偶校验的分组取交集,再与满足奇偶校验的分组取差集,得到的就是错误位。

计算机网络 | 数据链路层_第24张图片

例如,4号校验码和1号校验码出错,取交集得5、7位中有错误,再因为2号校验码正确,7位无错,所以错误位是5。

纠错方法2:校验位和参与形成该校验位的信息位全部异或,校验方程S3S2S1的计算结果就是错误位的位号。

在这里插入图片描述

小结

计算机网络 | 数据链路层_第25张图片

流量控制与可靠传输机制

数据链路层的流量控制只针对发送方,由接收方来控制(控制方法:收不下就不回复确认),只限制发送方的帧的发送速率。

流量控制是为了让传输过程中的发送速度和接受速度匹配,减少传输出错与资源浪费。

流量控制方法:

计算机网络 | 数据链路层_第26张图片

窗口大小:

  • 停止-等待协议:发送窗口大小 = 1,接收窗口大小 = 1。
  • 后退N帧协议(GBN):发送窗口大小 ≥ 1,接收窗口大小 = 1。
  • 选择重传协议(SR):发送窗口大小 > 1,接收窗口大小 > 1。

注:这三个协议的窗口大小都是固定的。

可靠传输:发送端发送什么,接收端就要接收到什么。

数据链路层的可靠传输使用确认超时重传两种机制来完成。

计算机网络 | 数据链路层_第27张图片

注:数据链路层的流量控制是点到点的,而传输层的流量控制是端到端的。

停止-等待协议(Stop-and-Wait)

计算机网络 | 数据链路层_第28张图片

停止-等待协议的无差错情况:

计算机网络 | 数据链路层_第29张图片

停止-等待协议的有差错情况:

  1. 数据帧丢失或出错
    计算机网络 | 数据链路层_第30张图片
  2. ACK丢失
    计算机网络 | 数据链路层_第31张图片
  3. ACK迟到
    计算机网络 | 数据链路层_第32张图片

停止-等待协议的特点:

  1. 简单
  2. 信道利用率低。大部分时间数据都在路上,发送方很长时间闲置,资源浪费

停止-等待协议的性能分析:

计算机网络 | 数据链路层_第33张图片

信道利用率 & 信道吞吐率 :

计算机网络 | 数据链路层_第34张图片

后退N帧协议(GBN)

滑动窗口:

计算机网络 | 数据链路层_第35张图片

发送方必须响应的三件事:

  1. 上层调用
  2. 收到了一个 ACK
  3. 超时事件

计算机网络 | 数据链路层_第36张图片

累计确认:就是收到一个确认帧,那么它和它之前的所有帧都默认已收到。反之,如果某个确认帧没收到,那么它和它之后的所有帧都默认丢失(即使收到了也丢掉),进行重传。

接收方要做的事:

  • 若按顺序正确收到 n 号帧,窗口前移一个位置,并为 n 号帧发回一个 ACK。
  • 若收到的数据帧落在接收窗口之外,一律丢弃,并为最近按序接收的帧重新发送 ACK。

计算机网络 | 数据链路层_第37张图片

示例:

计算机网络 | 数据链路层_第38张图片

出现超时:发送方重传所有已发送但未被确认的帧。

滑动窗口的长度:

计算机网络 | 数据链路层_第39张图片

发送窗口不能无限大,与使用的编号的比特数有关。

很简单,就是1比特编号0和1,同理2比特编号0-3。如果用1比特编号,却要4个窗口长度,那么窗口内数据编号都编不过来,直接乱套了。

后退N帧协议(GBN)的优缺点:

  • 优点:提高了信道利用率
  • 缺点:因为重传机制的原因导致已经收到数据却需要强行丢弃而造成浪费

例题:

计算机网络 | 数据链路层_第40张图片

计算机网络 | 数据链路层_第41张图片

选择重传协议(SR)

为了解决GBN的缺点,我们选择只重传错误的帧,这样的话就不用浪费资源将已经收到的帧重传一次了。

计算机网络 | 数据链路层_第42张图片

和GBN相比,选择重传协议(SR)的发送方和接收方都有滑动窗口,和GBN的区别其实就是做了一个数据缓存,已经收到的帧不用扔了,等待之前因意外丢失的帧收到的时候确认即可,但是只能缓存窗口尺寸内的包含的帧。

选择重传协议(SR)的滑动窗口:

计算机网络 | 数据链路层_第43张图片

发送方必须响应的三件事:

  1. 上层调用
  2. 收到了一个 ACK
  3. 超时事件

计算机网络 | 数据链路层_第44张图片

接收方要做的事:

计算机网络 | 数据链路层_第45张图片

示例:

计算机网络 | 数据链路层_第46张图片

因为编号的问题,发送窗口不能无限大。

窗口过大会导致二义性(在极端情况下接收方不知道接收的帧是新帧还是旧帧)。

发送窗口最后和接收窗口大小相同,这样利用率比较高。

滑动窗口的长度:

设窗口有 2n 个编号(0、1、…、2n-1),需要满足条件:发送窗口 + 接收窗口 ≤ 2n,最好是发送窗口 = 接收窗口 = 2n-1

计算机网络 | 数据链路层_第47张图片

例题:

计算机网络 | 数据链路层_第48张图片

介质访问控制

传输数据使用的两种链路:

  • 点对点链路:应用于PPP协议,常用于广域网。
  • 广播式链路:应用于早期的以太网、(无线)局域网。典型拓扑结构:总线型、星型(逻辑总线型)。

介质访问控制的目的:让节点之间的通信不会进行相互干扰。

计算机网络 | 数据链路层_第49张图片

信道划分介质访问控制

信道划分介质访问控制:静态划分信道。

虽然使用一条共享信道,但是通过多路复用技术组合进行传输,提高了信道的利用率。

计算机网络 | 数据链路层_第50张图片

频分多路复用(FDM)

共享时间,不共享空间。

计算机网络 | 数据链路层_第51张图片

时分多路复用(TDM)

共享空间,不共享时间。

计算机网络 | 数据链路层_第52张图片

改进:统计时分多路复用(STDM,又称异步时分多路复用)

计算机网络 | 数据链路层_第53张图片

波分多路复用(WDM)

实质:光的频分多路复用。

计算机网络 | 数据链路层_第54张图片

码分多路复用(CDM)

采用不同的编码来区分各路原始信号。

既共享信道的频率,又共享时间。

计算机网络 | 数据链路层_第55张图片

随机访问介质访问控制

随机访问介质访问控制协议又称为争用型协议。

核心思想:胜利者通过争用获得信道,从而获得信息的发送权。

实质:将广播信道转化为点对点信道。

ALOHA 协议

纯 ALOHA 协议:

计算机网络 | 数据链路层_第56张图片

纯 ALOHA 协议太随性了,导致纯 ALOHA 网络的吞吐量很低。

改进:时隙 ALOHA 协议

计算机网络 | 数据链路层_第57张图片

CSMA 协议
名称 描述 优点 缺点
1-坚持CSMA 发送信息时监听信道,一空闲下来就立即传输,信道忙也一直监听,如果发送时冲突就等待随机时长之后再监听 立即发送,利用率高 如果多台设备同时监听,那么会发生冲突
非坚持CSMA 发送信息时监听信道,如果空闲就立即传输,信道忙就随机等待一段时间后再监听 冲突发生的几率减少 因为需要等待,所以利用率不高
p-坚持CSMA 发送信息时监听信道,空闲时以概率p进行传输,概率1-p不传输。信道忙就随机等待一段时间后再监听 冲突减少的同时效率也比较高 即使发生冲突也要坚持发送数据,资源被浪费
CSMA/CD 协议
CSMA/CA 协议

你可能感兴趣的:(计算机网络,计算机网络)