【计算机网络学习笔记】—— 【三】数据链路层

本文参考《王道考研 | 计算机网络》



一、思维导图

【计算机网络学习笔记】—— 【三】数据链路层

二、数据链路层的作用

  • 数据链路层在物理层提供服务的基础上为网络层提供服务。
  • 其最基本的服务是将来自网络层的IP数据包封装成帧,可靠的传输到相邻结点的目标网络层。
  • 其主要作用是加强物理层传输原始比特流的功能,将物理层提供的可能出错的物理连接改造成为逻辑上无差错的数据链路,使之对网络层表现为一条无差错的链路

功能概述:

  • 为网络层提供服务
  • 链路管理,即连接的建立,维持,释放
  • 组帧
  • 流量控制(限制发送方)
  • 差错控制

下面具体解释这些功能

三、封装成帧&透明传输

1. 封装成帧的概念

封装成帧就是在网络层传下来的IP数据报的前后部分添加首部,尾部,这样就构成了一个帧。
接收端在收到物理层上交的比特流后,就能根据首部和尾部的标记,从收到的比特流中识别帧的开始和结束。
【计算机网络学习笔记】—— 【三】数据链路层

2. 透明传输

  • 透明传输是指不管所传数据是什么样的比特组合,都应当能够在链路上传送。
  • 当所传数据中的比特组合恰巧与某一个控制信息完全一样时,就必须采取适当的措施,使接收方不会将这样的数据误认为是某种控制信息。这样才能保证数据链路层的传输是透明的。方法如下:

3. 组帧的四种方法

字符计数法

帧首部使用一个计数字段(第一个字节)来标明帧内字符数
【计算机网络学习笔记】—— 【三】数据链路层
存在的问题:若一个帧出错,则它之后的帧都出错

字节填充法(转义符)

【计算机网络学习笔记】—— 【三】数据链路层

零比特填充法

发送端:连续5个1,则立即填入1个0
接收端:连续5个1,则立即去除后面的0
【计算机网络学习笔记】—— 【三】数据链路层

违规编码法(曼彻斯特编码)

可以用电平的 “高-高” “低-低“ 来判定帧的起始和终止
【计算机网络学习笔记】—— 【三】数据链路层

四、数据链路层的差错控制

1. 检测编码

奇偶校验码

直接举例:
比如现有数据 110011,1的个数是偶数个,采用奇校验,即在该数据前加入1个校验元1 ----> 1110011,1的个数变为奇数个,则若接收端接收到的数据中1的个数为偶数个,则出错。

奇偶校验码的特点:
只能检查出奇数个比特的错误,检测能力为50%

循环冗余码CRC

冗余码 :在数据发送之前,先按某种关系附加上一定的冗余码,当要发送的数据发送变化时,相应的冗余码位也随之变化。接收端接收时判断数据信息和冗余码是否符合,从而判断是否出错。
类似于快递买了5本书,包装上写了5本,但是收到后里面只有3本,则可判断发送过来的数据出了问题
【计算机网络学习笔记】—— 【三】数据链路层
异或相除,同1异0,即 1 /0 = 0, 1 / 1 = 1,0 / 1 = 0,0 / 0 = 1

2. 纠错编码 — 海明码

工作流程:

  • 确定校验码位数r
    【计算机网络学习笔记】—— 【三】数据链路层

  • 确定校验码和数据的位置
    【计算机网络学习笔记】—— 【三】数据链路层
    4位校验码P1,P2,P3,P4,分别放在 2^0 ,2^1 ,2^2 , 2^3这四个位置上,
    其余位置依次从高到底填入原始数据

  • 求出校验码的值
    【计算机网络学习笔记】—— 【三】数据链路层

  • 检错并纠错
    【计算机网络学习笔记】—— 【三】数据链路层
    按照上一步的逻辑进行异或运算求出一个二进制序列

    P1 异或 D1 异或 D2 异或 D4 异或 D5 = 1
    P2 异或 D1 异或 D3 异或 D4 异或 D6 = 0
    P3 异或 D2 异或 D3 异或 D4 = 1
    P4 异或 D5 异或 D6 = 0

    得出的二进制序列为 0101 = 5,由此可知第五位出错

五、流量控制&可靠传输

1. 流量控制的概念

限制发送方的发送速度,让发送发慢点发

通过滑动窗口来实现流量控制

2. 数据链路层流量控制的方法 —— ARQ协议

有些书中将这个协议放在运输层

以下三种协议都包含 自动重传请求(Automatic Repeat Request)ARQ,所以也称 ARQ 协议

传统自动重传请求分成为三种,即停等式(stop-and-wait)ARQ,回退n帧(go-back-n)ARQ,以及选择性重传(selective repeat)ARQ。后两种协议是滑动窗口技术与请求重发技术的结合,由于窗口尺寸开到足够大时,帧在线路上可以连续地流动,因此又称其为连续ARQ协议。三者的区别在于对于出错的数据报文的处理机制不同。三种ARQ协议中,复杂性递增,效率也递增。

停等协议(停等式ARQ)

  • 在停等式ARQ中,数据报文发送完成之后,发送方等待接收方的状态报告,如果状态报告报文发送成功,发送后续的数据报文,否则重传该报文。
  • 停等式ARQ,发送窗口和接收窗口大小均为1,发送方每发送一帧之后就必须停下来等待接收方的确认返回,仅当接收方确认正确接收后再继续发送下一帧。该方法所需要的缓冲存储空间最小,缺点是信道效率很低。

后退N帧协议 GBN(后退N帧的ARQ)

  • 发送窗口 >= 1,接收窗口 = 1 , 发信侧不用等待收信侧的应答,持续的发送多个帧,假如发现已发送的帧中有错误发生,那么从那个发生错误的帧开始及其之后所有的帧全部再重新发送。
  • 特点:(GBN)复杂度低,但是不必要的帧会再重发,所以大幅度范围内使用的话效率是不高的

选择重传协议 SR(选择性重传ARQ)

  • 发送窗口 >= 1,接收窗口 >= 1 , 发信侧不用等待收信侧的应答,持续的发送多个帧,假如发现已发送的帧中有错误发生,那么发信侧将只重新发送那个发生错误的帧。
  • 特点:相对于GBN 复杂度高,但是不需要发送没必要的帧,所以效率高。

3. 可靠传输

发送端发送什么,接收端原封不动接收什么

六、介质访问控制

1. 传播数据使用的两种信道/链路

点对点信道

一对一通信。

因为不会发生碰撞,因此也比较简单,使用 PPP 协议进行控制。常用于广域网

广播式信道

一对多通信,一个节点发送的数据能够被广播信道上所有的节点接收到。

所有的节点都在同一个广播信道上发送数据,因此需要有专门的控制方法进行协调,避免发生冲突(冲突也叫碰撞)。

主要有两种控制方法进行协调,一个是使用信道复用技术(静态划分信道),一是使用 CSMA/CD 协议。

详细控制方法如下

2. 介质访问控制的概念

介质访问控制 就是采取一定的措施,使得 广播式链路中 两对节点之间的通信不会发生互相干扰的情况
【计算机网络学习笔记】—— 【三】数据链路层

3. 静态划分信道

【计算机网络学习笔记】—— 【三】数据链路层

频分多路复用 FDM

【计算机网络学习笔记】—— 【三】数据链路层

频分复用如何避免各路信号间的干扰:
频分复用要求总频率宽度大于各个子信道频率之和,同时为了保证各子信道中所传输的信号互不干扰,应在各子信道之间设立隔离带(也就是保护频带,即插入一些 空白的频段 ),这样就保证了各路信号互不干扰。

时分多路复用 TDM

【计算机网络学习笔记】—— 【三】数据链路层
在一个TDM帧内:A先发送na比特,接着B发送nb比特,C发送nc比特,最后D发送nd比特
下一个TDM帧同样如此

波分多路复用 WDM

就是光的频分多路复用
【计算机网络学习笔记】—— 【三】数据链路层

码分多路复用 CDM

【计算机网络学习笔记】—— 【三】数据链路层

4. 动态划分信道

a. 轮询访问介质访问控制

令牌传递协议

【计算机网络学习笔记】—— 【三】数据链路层

b. 随机访问介质访问控制

所有用户可随机发送信息,发送信息时占全部带宽

ALOHA协议 不听就说

不监听信道
【计算机网络学习笔记】—— 【三】数据链路层
【计算机网络学习笔记】—— 【三】数据链路层

CSMA协议 先听再说

载波监听多路访问

发送信息前先监听信道
【计算机网络学习笔记】—— 【三】数据链路层

CSMA/CD协议 先听再说,边听边说

载波监听多点接入/碰撞检测

适配器边发送数据边检测信道上信号电压的变化情况,以便判断是否有人也在发送信号。

发送碰撞后采用 截断二进制指数规避算法 确定重传时机
【计算机网络学习笔记】—— 【三】数据链路层

CSMA/CA协议

载波监听多点接入/碰撞避免
【计算机网络学习笔记】—— 【三】数据链路层

七、局域网 LAN

局域网是一种典型的广播信道,主要特点是网络为一个单位所拥有,且地理范围和站点数目均有限。

1. 局域网分类

  • 以太网
  • 令牌环网
  • FDDI
  • ATM
  • 无线局域网 WLAN

2. 局域网拓扑结构

【计算机网络学习笔记】—— 【三】数据链路层

3. MAC子层和LLC子层

MAC子层和物理层对接,LLC子层和网络层对接
【计算机网络学习笔记】—— 【三】数据链路层

八、以太网

以太网是一种星型拓扑结构局域网。

早期使用集线器进行连接,集线器是一种物理层设备, 作用于比特而不是帧,当一个比特到达接口时,集线器重新生成这个比特,并将其能量强度放大,从而扩大网络的传输距离,之后再将这个比特发送到其它所有接口。如果集线器同时收到两个不同接口的帧,那么就发生了碰撞。

目前以太网使用交换机替代了集线器,交换机是一种链路层设备,它不会发生碰撞,能根据 MAC 地址进行存储转发。

以太网提供 无连接,不可靠 的服务

MAC地址

MAC 地址是链路层地址,长度为 6 字节(48 位),用于唯一标识网络适配器(网卡)。

一台主机拥有多少个网络适配器就有多少个 MAC 地址。例如笔记本电脑普遍存在无线网络适配器和有线网络适配器,因此就有两个 MAC 地址。

九、PPP协议

互联网用户通常需要连接到某个 ISP(互联网服务提供商) 之后才能接入到互联网,PPP 协议是用户计算机和 ISP 进行通信时所使用的数据链路层协议。
用户使用拨号电话接入因特网一般都使用PPP协议。

只支持全双工链路

十、链路层设备

隔离冲突域,不隔离广播域
【计算机网络学习笔记】—— 【三】数据链路层

1. 网桥

网桥:根据MAC帧的目的地址对帧进行转发和过滤。当网桥收到一个帧的时候,并不向所有接口转发此帧(集线器),而是先检查此帧的母的MAC地址,然后再确定该帧转发到哪一个接口,或者是把他丢弃

网桥的功能在延长网络跨度上类似于中继器/集线器,然而它能提供智能化连接服务,即根据帧的终点地址处于哪一网段来进行转发和滤除
【计算机网络学习笔记】—— 【三】数据链路层

2. 交换机(多接口网桥)

【计算机网络学习笔记】—— 【三】数据链路层