# 第三章--数据链路层

\[TOC]

## 1. 概述

### 1. 基本概念

1. 参与者： 主机、路由器
2. 传输者： 链路 -- 网络中两个结点之间的`物理通道`，传输的介质主要有双绞线、光纤和微波，分为有线链路和无线链路 ==数据链路： 一种逻辑通道==
3. 帧： 数据链路层的协议数据单元，封装网络层数据报

### 2. 功能概述

1. 数据链路层在物理层提供服务的基础上向网络层提供服务,其最基本的服务是将源自网络层提供的数据==可靠==的传输到相邻结点的目标机网络层，其最主要的是==加强物理层传输原始比特流的功能==。将物理层提供的可能出错的物理连接改造为逻辑上无差错的数据链路，使之对网络层表现为一条无差错的链路
2. 无确认无连接服务:
   1. 接收方不对收到的帧进行确认
   2. 适用场景：误码率低的可靠信道；实时通信；
   3. 网络实例： 以太网
3. 有确认无连接服务:
   1. 每一帧都得到`单独`的确认
   2. 适用场景：不可靠的信道（无线信道）
   3. 网络实例： 802.11
4. 有确认面向连接服务:
   1. 适用场景：长延迟的不可靠信道

## 2. 流量控制和可靠传输机制

> 1. 定义： `较高的发送速度`和`较低的接受能力`的不匹配，会造成传输出错，因此流量控制也是数据链路层的一项重要工作
> 2. 数据链路层的流量控制是`点对点`的，而传输层的流量控制是`端到端`的
> 3. 数据链路层流量控制手段： 接收方收不下就`不回复确认`
>
> 传输层流量控制手段：接收端给发送端一个`窗口公告`

1. 流量控制的方法：

   ```mermaid
   graph LR;
   A[方法]
   B[停止等待协议]
   C[滑动窗口协议]
   D[后退 N 帧协议 &ltGBN&gt]
   E[选择重传协议 &ltSR&gt]
   F[发送窗口=1, 接收窗口=1]
   G[发送窗口>1, 接收窗口=1]
   H[发送窗口>1, 接收窗口>1]
   I[在数据链路层, 窗口大小不变]
   A-->B-->F-->I
   A-->C
   C-->D-->G-->I
   C-->E-->H-->I
   ```

### 1. 停止等待协议

> 每发送完一个帧旧停止发送，等待对方的确认，在收到确认后再发送下一个帧

![image-20220808215003676](https://typora-1311404666.cos.ap-beijing.myqcloud.com/img/20220808215003.png)

### 2. 滑动窗口协议

* 后退 N 帧协议（GBN）
* 选择重传协议 （SR）

![image-20220808215054456](https://typora-1311404666.cos.ap-beijing.myqcloud.com/img/20220808215054.png)

## 3. 媒体接入控制 MAC 子层

![image-20220812105538636](https://typora-1311404666.cos.ap-beijing.myqcloud.com/img/20220812105538.png)

## 4. 设备

### 1. 网桥

> 根据 MAC 帧的目的地址对帧进行转发和过滤。当网桥收到一个帧时，并不向所有接口转发此帧，而是先检查帧的目的 MAC 地址，然后在确定将该帧转发到那一个接口或者把它丢弃

![image-20220812145222883](https://typora-1311404666.cos.ap-beijing.myqcloud.com/img/20220812145222.png)

1. 网桥分类：
   1. 透明网桥： “透明”指以太网上的站点并不知道所发送的帧将经过那几个网桥，是一种即插即用的设备--自学习
   2. 源路由网桥： 在发送帧的时候，把详细的最佳路由信息放在帧的首部中。 方法： 源站以广播的方式向欲通信的目的张发送一个发现帧

### 2. 交换机

> 交换机就是多接口网桥

![image-20220812150941027](https://typora-1311404666.cos.ap-beijing.myqcloud.com/img/20220812150941.png)

1. 分类：
   1. 直通式交换机： 查完目的地址（6B）就立刻转发。 `延误小，可靠性低，无法支持具有不同速率的端口的交换`
   2. 存储转发式交换机： `将帧放入高速缓存中，并检查是否正确，正确则转发，错误则丢弃。`

      `延误大，可靠性高，可以支持具有不同速率的端口的交换`
2. 交换机
   1. 主要功能： MAC 地址学习、通信过滤、避免回路问题
   2. 在每个交换机内部都维护有一张 MAC 地址表，用于记录交换机上每个端口所连接主机的 MAC 地址信息，交换机收到一个数据帧后，进行识别并根据帧的目的地址，将这个帧转发到对应的某个端口上去，而不是广播到所有的端口
   3. MAC 地址表：
      1. **交换机具有MAC地址学习功能**。交换机就是通过识别数据帧的源MAC地址，学习到MAC地址和源端口的对应关系的，主要过程如下：

         > * 当**第一次**使用交换机时，**交换机MAC表为空**，此时交换机会将源MAC地址与源端口**建立交换映射**，并将其**写入交换机的MAC表**
         > * 将数据帧（含有目标MAC地址）从所有其他端口转发出去
         > * **当接受者接受到数据帧并返回信息时，交换机便记住对应的MAC地址与端口的映射，并将其对应的关系写入MAC地址表中，以便下次转发**
