# 第 3 章  数据链路层
## 使用点对点信道的数据链路层
### 数据链路和帧
* 数据链路层使用的信道主要有以下两种类型：
    * 点对点信道。这种信道使用一对一的点对点通信方式。
    * 广播信道。这种信道使用一对多的广播通信方式，因此过程比较复杂。广播信道上连接的主机很多，因此必须使用专用的共享信道协议来协调这些主机的数据发 
* 数据链路层模型
* 链路(link)是一条无源的点到点的物理线路段，中间没有任何其他的交换结点。
* 数据链路(data link) 除了物理线路外，还必须有通信协议来控制这些数据的传输。若把实现这些协议的硬件和软件加到链路上，就构成了数据链路。
* 数据链路层传送的是帧
### 三个基本问题
* (1) 封装成帧
    * 将网络层传下来的分组添加首部和尾部，用于标记帧的开始和结束。
        *  
* (2) 透明传输
    * 透明表示一个实际存在的事物看起来好像不存在一样。
    * 帧使用首部和尾部进行定界，如果帧的数据部分含有和首部尾部相同的内容，那么帧的开始和结束位置就会被错误的判定。需要在数据部分出现首部尾部相同的内容前面插入转义字符。如果数据部分出现转义字符，那么就在转义字符前面再加个转义字符。在接收端进行处理之后可以还原出原始数据。这个过程透明传输的内容是转义字符，用户察觉不到转义字符的存在。
        *  
* (3) 差错控制 
    * 循环冗余检验 CRC
目前数据链路层广泛使用了循环冗余检验（CRC）来检查比特差错。
    * 帧检验序列 FCS
在数据后面添加上的冗余码称为帧检验序列 FCS (Frame Check Sequence)。
    * 冗余码的计算
        * 例子：
现在 k = 6, M = 101001。
设 n = 3, 除数 P = 1101，
被除数是 2^nM = 101001000。 
模 2 运算的结果是：商 Q = 110101，
           余数 R = 001。
把余数 R 作为冗余码添加在数据 M 的后面发送出去。发送的数据是：2^nM + R 
   即：101001001，共 (k + n) 位。 

    * 概要: CRC 是一种常用的检错方法，而 FCS 是添加在数据后面的冗余码。
FCS 可以用 CRC 这种方法得出，但 CRC 并非用来获得 FCS 的唯一方法。
## 点对点协议 PPP
### PPP 协议的特点
* 互联网用户通常需要连接到某个 ISP 之后才能接入到互联网，PPP 协议是用户计算机和 ISP 进行通信时所使用的数据链路层协议。
### PPP 协议的帧格式
* 示意图：
F 字段为帧的定界符
A 和 C 字段暂时没有意义
FCS 字段是使用 CRC 的检验序列
信息部分的长度不超过 1500
### PPP 协议的工作状态
* 过程：
当用户拨号接入 ISP 时，路由器的调制解调器对拨号做出确认，并建立一条物理连接。
PC 机向路由器发送一系列的 LCP 分组（封装成多个 PPP 帧）。
这些分组及其响应选择一些 PPP 参数，和进行网络层配置，NCP 给新接入的 PC机分配一个临时的 IP 地址，使 PC 机成为因特网上的一个主机。
通信完毕时，NCP 释放网络层连接，收回原来分配出去的 IP 地址。接着，LCP 释放数据链路层连接。最后释放的是物理层的连接。
## 使用广播信道的数据链路层
### 局域网的数据链路层
* 局域网是一种典型的广播信道，主要特点是网络为一个单位所拥有，且地理范围和站点数目均有限。
* 主要有以太网、令牌环网、FDDI 和 ATM 等局域网技术，目前以太网占领着有线局域网市场。
* 可以按照网络拓扑结构对局域网进行分类：
    * 星形网
    * 环形网
    * 总线网
    * 树形网 
* 数据链路层的两个子层 
    * 逻辑链路控制 LLC (Logical Link Control)子层
    * 媒体接入控制 MAC (Medium Access Control)子层。
    * 概要: 与接入到传输媒体有关的内容都放在 MAC子层，而 LLC 子层则与传输媒体无关，不管采用何种协议的局域网对 LLC 子层来说都是透明的
所以以后一般不考虑 LLC 子层 
* 适配器
    * 网络接口板又称为通信适配器(adapter)或网络接口卡 NIC (Network Interface Card)，或“网卡”。
        * 适配器的重要功能：
            * 进行串行/并行转换。
            * 对数据进行缓存。
            * 在计算机的操作系统安装设备驱动程序。
            * 实现以太网协议。 
###     CSMA/CD 协议
* CSMA/CD 表示载波监听多点接入 / 碰撞检测。
    * 多点接入 ：说明这是总线型网络，许多主机以多点的方式连接到总线上。
    * 载波监听 ：每个主机都必须不停地监听信道。在发送前，如果监听到信道正在使用，就必须等待。
    * 碰撞检测 ：在发送中，如果监听到信道已有其它主机正在发送数据，就表示发生了碰撞。虽然每个主机在发送数据之前都已经监听到信道为空闲，但是由于电磁波的传播时延的存在，还是有可能会发生碰撞。
* 具体内容
    * 记端到端的传播时延为 τ，最先发送的站点最多经过 2τ 就可以知道是否发生了碰撞，称 2τ 为 争用期 。只有经过争用期之后还没有检测到碰撞，才能肯定这次发送不会发生碰撞。
    * 当发生碰撞时，站点要停止发送，等待一段时间再发送。这个时间采用 截断二进制指数退避算法 来确定。从离散的整数集合 {0, 1, .., (2k-1)} 中随机取出一个数，记作 r，然后取 r 倍的争用期作为重传等待时间。
    * 概要: 示意图
## 使用广播信道的以太网
### 使用集线器的星形拓扑
* 传统以太网最初是使用粗同轴电缆，后来演进到使用比较便宜的细同轴电缆，最后发展为使用更便宜和更灵活的双绞线。
这种以太网采用星形拓扑，在星形的中心则增加了一种可靠性非常高的设备，叫做集线器(hub)  
### 以太网的信道利用率
* 一个帧从开始发送，经可能发生的碰撞后，将再重传数次，到发送成功且信道转为空闲(即再经过时间 τ  使得信道上无信号在传播)时为止，是发送一帧所需的平均时间。 
* 发送一帧占用线路的时间是 T0 +  τ ，而帧本身的发送时间是 T0。于是我们可计算出理想情况下的极限信道利用率 Smax为： 
###  以太网的 MAC 层
* MAC 地址是链路层地址，长度为 6 字节（48 位），用于唯一标识网络适配器（网卡）。
* 一台主机拥有多少个网络适配器就有多少个 MAC 地址。例如笔记本电脑普遍存在无线网络适配器和有线网络适配器，因此就有两个 MAC 地址。
### 以太网帧格式：
* 类型 ：标记上层使用的协议；
数据 ：长度在 46-1500 之间，如果太小则需要填充；
FCS ：帧检验序列，使用的是 CRC 检验方法；
## 扩展的以太网
### 在物理层扩展以太网
* 用多个集线器可连成更大的局域网
    * 用集线器组成更大的局域网都在一个碰撞域中
        * 优点
            * 使原来属于不同碰撞域的局域网上的计算机能够进行跨碰撞域的通信。
            * 扩大了局域网覆盖的地理范围。
        * 缺点
            * 碰撞域增大了，但总的吞吐量并未提高。
            * 如果不同的碰撞域使用不同的数据率，那么就不能用集线器将它们互连起来。
### 在数据链路层扩展以太网
* 在数据链路层扩展局域网是使用网桥。
    * 网桥工作在数据链路层，它根据 MAC 帧的目的地址对收到的帧进行转发。
网桥具有过滤帧的功能。当网桥收到一个帧时，并不是向所有的接口转发此帧，而是先检查此帧的目的 MAC 地址，然后再确定将该帧转发到哪一个接口 。
        * 优点
            * 过滤通信量。 
            * 扩大了物理范围。
            * 提高了可靠性。
            * 可互连不同物理层、不同 MAC 子层和不同速率（如10 Mb/s 和 100 Mb/s 以太网）的局域网。
        * 缺点
            * 存储转发增加了时延。 
            * 在MAC 子层并没有流量控制功能。 
            * 具有不同 MAC 子层的网段桥接在一起时时延更大。
            * 网桥只适合于用户数不太多(不超过几百个)和通信量不太大的局域网，否则有时还会因传播过多的广播信息而产生网络拥塞。这就是所谓的广播风暴。  
    * 交换机
        * 交换机具有自学习能力，学习的是交换表的内容，交换表中存储着 MAC 地址到接口的映射。
正是由于这种自学习能力，因此交换机是一种即插即用设备，不需要网络管理员手动配置交换表内容。
            * 下图中，交换机有 4 个接口，主机 A 向主机 B 发送数据帧时，交换机把主机 A 到接口 1 的映射写入交换表中。为了发送数据帧到 B，先查交换表，此时没有主机 B 的表项，那么主机 A 就发送广播帧，主机 C 和主机 D 会丢弃该帧，主机 B 回应该帧向主机 A 发送数据包时，交换机查找交换表得到主机 A 映射的接口为 1，就发送数据帧到接口 1，同时交换机添加主机 B 到接口 2 的映射。
### 虚拟局域网
* 虚拟局域网可以建立与物理位置无关的逻辑组，只有在同一个虚拟局域网中的成员才会收到链路层广播信息。
* 例如下图中 (A1, A2, A3, A4) 属于一个虚拟局域网，A1 发送的广播会被 A2、A3、A4 收到，而其它站点收不到。
* 使用 VLAN 干线连接来建立虚拟局域网，每台交换机上的一个特殊接口被设置为干线接口，以互连 VLAN 交换机。IEEE 定义了一种扩展的以太网帧格式 802.1Q，它在标准以太网帧上加进了 4 字节首部 VLAN 标签，用于表示该帧属于哪一个虚拟局域网。
## 高速以太网
###  100BASE-T 以太网
* 速率达到或超过 100 Mb/s 的以太网称为高速以太网
* 可在全双工方式下工作而无冲突发生。因此，不使用 CSMA/CD 协议。
### 吉比特以太网
* 允许在 1 Gb/s 下全双工和半双工两种方式工作。
* 在半双工方式下使用 CSMA/CD 协议（全双工方式不需要使用 CSMA/CD 协议）。
### 10 吉比特以太网
* 10 吉比特以太网只工作在全双工方式
* 也不使用 CSMA/CD 协议。
### 使用高速以太网进行宽带接入
* 以太网接入的重要特点是它可提供双向的宽带通信，并且可根据用户对带宽的需求灵活地进行带宽升级。
* 采用以太网接入可实现端到端的以太网传输，中间不需要再进行帧格式的转换。这就提高了数据的传输效率和降低了传输的成本。  
## 其他类型的高速局域网接口
## 集线器在转发帧时，不对传输媒体进行检测。
网桥在转发帧之前必须执行 CSMA/CD 算法。

![picture](https://github.com/SSHeRun/CS-Xmind-Note/blob/master/%E8%AE%A1%E7%AE%97%E6%9C%BA%E7%BD%91%E7%BB%9C/%E7%AC%AC%203%20%E7%AB%A0%20%20%E6%95%B0%E6%8D%AE%E9%93%BE%E8%B7%AF%E5%B1%82/%E7%AC%AC%203%20%E7%AB%A0%20%20%E6%95%B0%E6%8D%AE%E9%93%BE%E8%B7%AF%E5%B1%82.png)
