3.1 数据链路层功能概述

3.1.1 数据链路层基本概念

  1. 结点:主机、路由器
  2. 链路:网络中两个结点之间的物理通道,传输介质主要有双绞线、光纤和微波。分为有线链路、无线链路两种
  3. 数据链路:网络中两个结点之间的逻辑通道,把视线控制数据传输协议的硬件和软件加到链路上就构成数据链路。
  4. 帧:链路层的协议数据单元,封装网络层数据报。

数据链路层负责通过一条链路从一个结点向另一个物理链路直接相连的相邻节点传送数据报。

3.1.2 数据链路层的主要功能

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

  • 为网络层提供服务:无确认无连接服务(通常用于实时通信即码率比较低的通信信道);有确认无连接服务(通常用于无线通信即码率比较高的通信信道);有确认面向连接服务(最安全最可靠,有连接一定有确认)。
  • 链路管理:连接的建立、维持、释放(用于面向连接的服务)。
  • 组帧
  • 流量控制。控制发送方速度
  • 差错控制:帧错与位错

    3.2 封装成帧与透明传输

    3.2.1 封装成帧

    截屏2021-04-06 下午4.08.29.png

    3.2.2 透明传输

    1. 透明传输的含义

    截屏2021-04-06 下午4.46.08.png

    2. 透明传输在组帧方面的应用

  • 字符计数法

帧首部使用一个计数字段(第一个字节,八位)来标明帧内字符数。缺点:一旦一个部位出错后面的全出错了。
截屏2021-04-08 下午11.15.59.png

  • 字符填充法

截屏2021-04-12 下午8.05.04.png
如果数据部分产生了与首尾标识符相同的字符,需要进行转义。
截屏2021-04-12 下午8.10.31.png

  • 零比特填充法

首尾的标识符一样
截屏2021-04-12 下午8.13.21.png

  • 违规编码法

截屏2021-04-12 下午8.14.55.png

  • 比较:由于字节计数法中count字段的脆弱性(其值若有差错将导致灾难性后果)及字符填实现上的复杂性和不兼容性,目前较普遍使用的帧同步法是比特填充和违规编码法。

    3.3 差错控制

    3.3.1 差错的成因

  1. 全局性:由于线路本身电气特性所产生的随机噪声,是信道固有的,随机存在的。(解决办法:提高信噪比来减少或避免干扰,对传感器下手)
  2. 局部性:外加特定的短暂原因所造成的的冲击噪声,是产生差错的主要原因。解决办法:通常利用编码技术来解决。

    1. ![截屏2021-04-12 下午8.24.00.png](https://cdn.nlark.com/yuque/0/2021/png/12943861/1618230243369-6d3a6791-7b03-44c2-8b05-edc6780c2a9d.png#align=left&display=inline&height=201&margin=%5Bobject%20Object%5D&name=%E6%88%AA%E5%B1%8F2021-04-12%20%E4%B8%8B%E5%8D%888.24.00.png&originHeight=201&originWidth=475&size=52074&status=done&style=none&width=475)<br />数据链路层的差错控制针对的问题是比特错。检错编码只能判断出有错,纠错编码能判断出错的位置。<br />![截屏2021-04-12 下午8.30.01.png](https://cdn.nlark.com/yuque/0/2021/png/12943861/1618230606095-3b21b674-3463-4f0c-8441-9df5d1520bca.png#align=left&display=inline&height=294&margin=%5Bobject%20Object%5D&name=%E6%88%AA%E5%B1%8F2021-04-12%20%E4%B8%8B%E5%8D%888.30.01.png&originHeight=294&originWidth=570&size=79719&status=done&style=none&width=570)<br />数据链路层的编码与物理层的编码区别:
  • 物理层的编码针对的是单个比特,解决传输问题中比特的同步等问题,如曼彻斯特编码。
  • 数据链路层的编码针对的是一组比特,它通过冗余码的技术实现一组二进制比特串在传输过程中是否出现了差错。

    3.3.2 纠错编码——奇偶校验码

    截屏2021-04-12 下午8.34.17.png
    特点:

  • 只能检查出奇数个比特错误,检错能力为50%

    3.3.3 纠错编码——CRC循环冗余码

    image.png
    image.png
    截屏2021-04-12 下午9.57.14.png

    3.3.4 检错编码——海明码

    发现双比特错,纠正单比特错。
    工作原理:动一发而牵全身。
    截屏2021-04-12 下午10.00.15.png

  1. 确定校验码位数

截屏2021-04-12 下午10.02.06.png

  1. 确定校验码和数据的位置

截屏2021-04-12 下午10.05.13.png

  1. 求出校验码的值

截屏2021-04-12 下午10.09.17.png

  1. 检错并纠错

截屏2021-04-12 下午10.11.37.png

3.4 流量控制与可靠传输机制

3.4.1 数据链路层的流量控制

较高的发送速度和较低的接受能力不匹配,会造成传输出错。
链路层的流量控制是点对点的,传输层的流量控制是端到端的。
链路层的流量控制手段:接收方收不下就不回复确认(确认帧);传输层流量控制手段:接收端给发送端一个窗口公告。

3.4.2 流量控制方法

截屏2021-04-12 下午10.25.52.png
截屏2021-04-12 下午10.27.01.png

3.4.3 停止-等待协议

截屏2021-04-12 下午10.35.19.png

应用情况:

  1. 无差错情况

截屏2021-04-12 下午10.37.27.png

  1. 有差错情况

截屏2021-04-12 下午10.41.35.png
等到发送端收到确认帧之后副本才会清除。
出错与丢失是一样的,出错之后确认端发现错误并不返回确认帧,发送端在等待一个超时计时器后重新发送该帧。
截屏2021-04-12 下午10.45.19.png
截屏2021-04-12 下午10.47.31.png

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

确认帧不包含数据,只包含控制信息。
截屏2021-04-12 下午10.50.31.png

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

截屏2021-04-12 下午10.54.17.png

3.4.4 后退N帧协议(GBN)

GBN过程:

截屏2021-04-12 下午11.04.10.png

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

截屏2021-04-12 下午11.08.06.png
由于累积确认机制,接收方可以隔一段确认一次,不用每个帧都确认,确认的帧包括该帧以及之前的所有帧,所以一般看最大的确认帧即可。

GBN接收方要做的事:

截屏2021-04-12 下午11.12.58.png

运行中的GBN的一个例子:

假设发送窗口的尺寸为4
截屏2021-04-12 下午11.15.27.png
截屏2021-04-13 上午10.44.51.png窗口为4,所以0、1、2、3帧可以按顺序都发了,接收端接收0帧并发送确认帧ack0、接收1帧并发送确认帧ack1,发送端收到ack0就滑动窗口发送4帧,接收到ack1就滑动窗口发送5帧;2帧在发送过程中丢失,接收端维护了一个expectedseqnum(值为2)一直在等这个值,然而收到的3、4、5帧全都不是2,所以全部丢弃发送目前的最大值ack1;发送端发现一直没有收到2帧的确认,即2帧超时,就将2、3、4、5帧重传。

滑动窗口的长度:

截屏2021-04-12 下午11.23.08.png

GBN总结:

  • 累积确认(偶尔稍待确认,即接收方会同时给发送方发送一些数据捎带着确认信息一块发送)
  • 接收方只按序接收帧,不按序无情丢弃
  • 确认序列号最大的、按序到达的帧
  • 发送方窗口最大为2-1,接收窗口大小为1

    GBN协议性能分析:

  • 优点:因连续发送数据帧而提高了信道利用率

  • 缺点:在重传时必须把原来已经正确传送的数据帧重传(批量重传),使得传送效率降低。

    3.4.5 选择重传协议(SR)

    SR中的滑动窗口

    截屏2021-04-13 上午10.26.12.png

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

    截屏2021-04-13 上午10.31.35.png

SR中接收方要做的事:

截屏2021-04-13 上午10.35.17.png

运行中的SR:

假设发送窗口和接收窗口尺寸都为4
截屏2021-04-13 上午10.45.27.png
发送端发送0,1,2,3帧,接收端接收0帧发送ack0并右移,接收1帧发送ack1并右移,发送端收到ack0与ack1并右移发送4帧和5帧;由于2帧在路上丢失,接收端接收3、4、5帧需要缓存(没有收到2帧不能右移)并发送ack3、ack4、ack5,发送方发现2帧超时并重传2帧,接收方接收2帧发送ack2,此时2-5帧都收到了确认然后右移窗口。

滑动窗口的长度

截屏2021-04-13 上午10.57.44.png
截屏2021-04-13 上午10.57.30.png 此案例中窗口应为2(3会出现二义性)编号数量的一半
截屏2021-04-13 上午10.59.10.png

SR总结:

  • 对数据帧逐一确认,收一个确认一个
  • 只重传出错帧
  • 接收方有缓存

    3.5 介质访问控制技术

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

    点对点链路:两个相邻节点通过一个链路相连,没有第三者。PPP协议,广域网。
    广播式链路:所有主机共享通信介质。早期的总线以太网、无线局域网。拓扑结构:总线型、星型(逻辑总线型)

    介质访问控制分类

    截屏2021-04-13 下午1.41.29.png

    3.5.1 信道划分介质访问控制

    截屏2021-04-13 下午12.40.25.png

    1. 频分多路复用FDM截屏2021-04-13 下午1.16.12.png

    2. 时分多路复用TDM截屏2021-04-13 下午1.18.09.png

    改进的时分复用-统计时分复用STDM截屏2021-04-13 下午1.20.47.png

    3. 波分多路复用WDM

    波分多路复用就是光的频分多路复用,在一根光纤中传输多种不同波长(频率)的光信号,由于波长(频率)不同,所以各路光信号互不干扰,最后再用波长分解复用器将各路波长分解出来。
    截屏2021-04-13 下午1.24.11.png

    4. 码分多路复用CDM

    image.png

    3.5.2 随机访问介质访问控制

    1. ALOHA协议

    分为纯ALOHA协议和时隙ALOHA协议

  • 纯ALOHA协议

截屏2021-04-13 下午1.46.35.png

  • 时隙ALOHA协议

截屏2021-04-13 下午1.53.55.png
对比:

  • 纯ALOHA比时隙ALOHA吞吐量更低,效率更低。
  • 纯ALOHA想发就发,时隙ALOHA只有在时间片段开始时才能发

    2. CSMA协议

    截屏2021-04-13 下午1.59.12.png
    1-坚持CSMA
    截屏2021-04-13 下午2.01.51.png
    非坚持CSMA
    截屏2021-04-13 下午2.03.56.png
    p-坚持CSMA(忙则持续监听到下一个时隙)
    截屏2021-04-13 下午2.12.24.png
    比较:
1-坚持CSMA 非坚持CSMA p-坚持CSMA
信道空闲 马上发 马上发 p概率马上发,1-p概率等到下一个时隙再发送
信道忙 继续坚持监听 放弃监听,等一个随机时间再监听 继续持续监听到下一个时隙

3. CSMA-CD协议

截屏2021-04-13 下午2.32.58.png
争用期、冲突窗口、碰撞窗口
截屏2021-04-13 下午2.47.39.png

3.6 点对点协议PPP与HDLC协议

3.6.1 点对点协议PPP

1. PPP协议特点

PPP是目前使用最广泛的数据链路层协议,用户使用拨号电话接入因特网时一般都是用PPP协议。只支持全双工链路。

2. 满足的要求

截屏2021-04-13 下午3.59.30.png

3. 组成部分

截屏2021-04-13 下午4.01.27.png

4. 状态图

截屏2021-04-13 下午4.03.02.png

5. 帧格式

截屏2021-04-13 下午4.05.14.png
C是控制字段,FCS是帧检验序列(CRC计算出来的)

3.6.2 HDLC协议

1. HDLC特点

截屏2021-04-13 下午4.07.55.png

2. HDLC的三种站

截屏2021-04-13 下午4.08.33.png

3. HDLC帧格式

截屏2021-04-13 下午4.10.35.png

3.6.3 PPP协议与HDLC协议的异同

截屏2021-04-13 下午4.12.50.png

3.7 MAC地址

截屏2021-04-13 下午4.16.38.png

3.7.1 MAC地址的含义

使用点对点信道的数据链路层不需要使用地址(就两个主机),使用广播信道的数据链路层必须使用地址来区分主机(有很多个主机)
截屏2021-04-13 下午4.20.20.png
截屏2021-04-13 下午4.22.58.png

3.7.2 IEEE 802局域网的MAC地址格式

截屏2021-04-13 下午4.25.42.png
截屏2021-04-13 下午4.30.04.png
以太网接口、wifi接口、蓝牙接口都分配有全球单播的MAC地址

3.7.3 MAC地址发送顺序

字节发送顺序:第一字节至第六字节
字节内的比特发送顺序:b0至b7

3.7.4 单播MAC地址:

截屏2021-04-13 下午4.34.34.png

3.7.5 广播MAC地址:

截屏2021-04-13 下午4.35.42.png

3.7.6 多播MAC地址:

截屏2021-04-13 下午4.37.59.png

3.7.7 数据包转发过程

截屏2021-04-13 下午4.47.21.png