第三章 数据链路层

161 阅读13分钟

数据链路层概述

  • 链路(Link)就是从一个结点到相邻结点的一段物理线路,而中间没有任何其他的交换结点。
  • 数据链路 (Data Link)是指把实现通信协议的硬件和软件加到链路上,就构成了数据链路。
  • 数据链路层以帧为单位传输和处理数据。

image.png

  • 数据链路层的三个重要问题: 封装成帧、 差错检测、 可靠传输

封装成帧

  • 封装成帧是指数据链路层给上层交付的协议数据单元添加帧头和帧尾使之成为帧。

    • 帧头和帧尾中包含有重要的控制信息。
    • 帧头和帧尾的作用之一就是帧定界
  • 透明传输是指数据链路层给上层交付的传输数据没有任何限制,就好像数据链路层不存在一样。

    • 面向字节的物理链路使用字节填充(或称字符填充)的方法实现透明传输。

image.png

    • 面向比特的物理链路使用比特填充的方法实现透明传输。

image.png

  • 为了提高帧的传输效率,应当使帧的数据部分的长度尽可能大些
  • 考虑到差错控制等多种因素,每一种数据链路层协议都规定了顿的数据部分的长度上限,即最大传送单元MTU(Maximum Transfer Unit)

image.png

差错检测

  • 实际的通信链路都不是理想的,比特在传输过程中可能会产生差错,1可能变成0,而0可能变成1。这称为比特差错
  • 在一段时间内,传输错误的比特占所传输比特总数的比特率成为误码率BER(Bit Error Rate)。
  • 使用差错检测码来检测数据在传输过程中是否产生了比特差错,是数据链路层所需要解决的重要问题之一。

image.png

  • 奇偶校验
    • 在待发送的数据后面添加1位奇偶校验位,使整个数据(包括所添加的校验位在内)中**“1”的个数**为奇数 (奇校验)或偶数 (偶校验)。
    • 如果有奇数个位发生误码,则奇偶性发生变化,可以检查出误码;
    • 如果有偶数个位发生误码,则奇偶性不发生变化,不能检查出误码 (漏检);

image.png

  • 循环冗余校验CRC(Cyclic Redundancy Check)
    • 收发双方约定好一个生成多项式G(x);
    • 发送方基于待发送的数据和生成多项式计算出差错检测码(冗余码),将其添加到待传输数据的后面一起传输;
    • 接收方通过生成多项式来计算收到的数据是否产生了误码;

image.png

【循环冗余校验CRC举例】

【发送方】

image.png

【接送方】

image.png

  • 检错码只能检测出帧在传输过程中出现了差错,但是不能定位错误,因此无法纠正错误
  • 要想纠正传输中的差错,可以使用冗余信息更多的纠错码进行前向纠错。但纠错码的开销比较大,在计算机网络中较少使用
  • 循环元余校验CRC有很好的检错能力(漏检率非常低),虽然计算比较复杂,但非常易于用硬件实现,因此被广泛应用于数据链路层
  • 在计算机网络中通常采用我们后续课程中将要讨论的检错重传方式来纠正传输中的差错或者仅仅是丢弃检测到差错的帧,这取决于数据链路层向其上层提供的是可靠传输服务还是不可靠传输服务。

可靠传输

1.可靠传输的基本概念

  • 使用差错检测技术(例如循环冗余校验CRC),接收方的数据链路层就可检测出帧在传输过程中是否产生了误码(比特错误)。
  • 数据链路层向上层提供的服务类型
    • 不可靠传输服务:仅仅丢弃有误码的帧,其他什么也不做;
    • 可靠传输服务:想办法实现发送端发送什么,接收方就收到什么。
  • 般情况下,有线链路的误码率比较低,为了减小开销,并不要求数据链路层向上提供可靠传输服务。即使出现了误码,可靠传输的问题由其上层处理。
  • 无线链路易受干扰,误码率比较高,因此要求数据链路层必须向上层提供可靠传输服务。
  • 比特差错只是传输差错中的一种。
  • 从整个计算机网络体系结构来看,传输差错还包括分组丢失分组失序以及分组重复
  • 分组丢失、分组失序以及分组重复这些传输差错,一般不会出现在数据链路层,而会出现在其上层。
  • 可靠传输服务并不仅局限于数据链路层,其他各层均可选择实现可靠传输。

image.png

  • 可靠传输的实现比较复杂,开销也比较大,是否使用可靠传输取决于应用需求。

2.可靠传输的实现机制停止———等待协议SW(Stop-and-Wait)

  接收方收不到数据分组,就不会发送ACK或NAK。如果不采取其他措施,发送方就会一直处于等待接收方ACK或NAK的状态。
  为解决该问题,可以在发送方发送完一个数据分组时启动一个超时计时器。若到了超时计时器所设置的重传时间而发送方仍收不到接收方的任何ACK或NAK,则重传原来的数据分组,这就叫做超时重传。一般可将重传时间选为略大于“从发送方到接收方的平均往返时间”。
  为避免分组重复这种传输错误,必须给每个分组带上序号。对于停止-等待协议,由于每发送一个数据分组就停止等待只要保证每发送一个新的数据分组,其发送序号与上次发送的数据分组的序号不同就可以了,因此用一个比特来编号就够了

image.png

【注意事项】

  • 接收端检测到数据分组有误码时,将其丢弃井等待发送方的超时重传。但对于课码率较高的点对点链路,为使发送方尽早重传,也可给发送方发送NAK分组
  • 为了让接收方能够判断所收到的数据分组是否是重复的,需要给数据分组编号。由于停止-等待协议的停等特性,只需1个比特编号就够了,即编号0和1。
  • 为了让发送方能够判断所收到的AK分组是否是重复的,需要给ACK分组编号,所用比特数量与数据分组编号所用比特数量一样,数据链路层一般不会出现ACK分组迟到的情况,因此在数据链路层实现停止-等待协议可以不用给ACK分组编号
  • 超时计时器设置的重传时间应仔细选择。一般可将更传时间选为略大于“从发送方到接收方的平均往返时间”。
    • 在数据链路层点对点的往返时间比较确定,重传时间比较好设定。
    • 然而在运输层,由于端到端往返时间非常不确定,设置合适的重传时间有时并不容易。

image.png

可靠传输的实现机制—回退N帧协议GBN(Go-Back-N)

image.png

image.png

image.png

  • 回退N顿协议在流水线传验的基础上利用发送窗口来限制发送方连续发送数据分组的数量,是一种连续ARQ协议。
  • 在协议的工作过程中发送窗口和接收窗口不断向前滑动,因此这类协议又称为滑动窗口协议。
  • 由于回退N顿协议的特性,当通信线路质量不好时,其信道利用率并不比停止-等待协议高。

可靠传输的实现机制—选择重传协议SR(Selective Request)

  • 回退N帧协议的接收窗口尺寸WRW_R只能等于1,因此接收方只能按序接收正确到达的数据分组
  • 一个数据分组的误码就会导致其后续多个数据分组不能被接收方按序接收而丢弃 (尽管它们无乱序和误码)。这必然会造成发送方对这些数据分组的超时重传,显然这是对通信资源的极大浪费。
  • 为了进一步提高性能,可设法只重传出现误码的数据分组。因此,接收窗口的尺寸WRW_R不应更等于1 (而应大于1),以便接收方先收下失序到达但无误码并且序号落在接收窗口内的那些数据分组,等到所缺分组收齐后再一并送交上层。这就是选择重传协议

注意:
  选择重传协议为了使发送方仅重传出现差错的分组,接收方不能再采用累积确认,而需要对每个正确接收到的数据分组进行逐一确认!

image.png

image.png

 点对点协议PPP

  • 点对点协议PPP(Point-to-Point Protocol)是目前使用最广泛的点对点数据链路层协议。
  • PPP协议是因特网工程任务组IETF在1992年制定的。经过1993年和1994年的修订,现在的PPP协议已成为因特网的正式标准[RFC1661RFC1662]。

image.png

  • PPP协议为在点对点链路传输各种协议数据报提供了一个标准方法,主要由以下三部分构成:
    • 对各种协议数据报的封装方法(封装成帧)
    • 链路控制协议LCP      用于建立、配置以及测试数据链路的连接
    • 一套网络控制协议NCPs   其中的每一个协议支持不同的网络层协议

image.png

  • 点对点协议PPP  帧格式

image.png

  • 点对点协议PPP  透明传输

image.png

  • 点对点协议PPP  透明传输———面向字节的异步链路采用插入转义字符的字节填充法

image.png

  • 点对点协议PPP  透明传输———面向比特的同步链路采用插入比特0的比特填充法

image.png

  • 点对点协议PPP  差错检测

image.png

  • 点对点协议PPP  工作状态

image.png

媒体接入控制

  • 媒体接入控制的基本概念
    • 共享信道要着重考虑的一个问题就是如何协调多个发送和接收站点对一个共享传输媒体的占用,即媒体接入控制MAC(Medium Access Control)。

image.png

  • 静态划分信道
    【信道复用】
    • 复用(Multiplexing)是通信技术中的一个重要概念。复用就是通过一条物理线路同时传输多路用户的信号。
    • 当网络中传输媒体的传输容量大于多条单一信道传输的总通信量时,可利用复用技术在一条物理线路上建立多条通信信道来充分利用传输媒体的带宽。

image.png

频分复用FDM

image.png

时分复用TDM

image.png

波分复用WDM

image.png

码分复用CDM

  • 码分复用CDM是另一种共享信道的方法。实际上,由于该技术主要用于多址接入,人们更常用的名词是码分多址CDMA(Code Division Multiple Access)。
  • 同理,频分复用FDM和时分复用TDM同样可用于多址接入,相应的名词是频分多址FDMA(Frequency Division Multiple Access)和时分多址TDMA(Time Division Multiple Access)。
  • 在本课程中,我们不严格区分复用与多址的概念。可简单理解如下:
    • 复用是将单一媒体的频带资源划分成很多子信道,这些子信道之间相互独立,互不干扰。从媒体的整体频带资源上看, 每个子信道只占用该媒体频带资源的一部分。
    • 多址(更确切地应该称为多点接入)处理的是动态分配信道给用户。这在用户仅仅暂时性地占用信道的应用中是必须的,而所有的移动通信系统基本上都属于这种情况。相反,在信道永久性地分配给用户的应用中,多址是不需要的 (对于无线广播或电视广播站就是这样)。
    • 某种程度上,FDMA、TDMA、CDMA可以分别看成是FDM、TDM、CDM的应用。
  • 码分复用CDM是另一种共享信道的方法。实际上,由于该技术主要用于多址接入,人们更常用的名词是码分多址CDMA(Code Division Multiple Access)。
  • 与FDM和TDM不同,CDM的每一个用户可以在同样的时间使用同样的频带进行通信
  • 由于各用户使用经过特殊挑选的不同码型,因此各用户之间不会造成干扰
  • CDM最初是用于军事通信的,因为这种系统所发送的信号有很强的抗干扰能力,其频谱类似于白噪声,不易被敌人发现。
  • 随着技术的进步,CDMA设备的价格和体积都大幅度下降,因而现在已广泛用于民用的移动通信中。

image.png

image.png

动态接入控制 — 随机接入 — CSMA/CD 协议

image.png

image.png

image.png

image.png

image.png

image.png

image.png

image.png

image.png

image.png

image.png

image.png

动态接入控制 — 随机接入 — CSMA/CA 协议

image.png

image.png image.png image.png

image.png image.png image.png image.png

image.png image.png image.png

MAC地址、IP地址、ARP协议

image.png

MAC地址

image.png

  • 当多个主机连接在同一个广播信道上,要想实现两个主机之间的通信,则每个主机都必须有一个唯一的标识即一个数据链路层地址;
  • 在每个主机发送的帧中必须携带标识发送主机和接收主机的地址。由于这类地址是用于媒体接入控制MAC(Media Access Control),因此这类地址被称为MAC地址; image.png

MAC地址一般被固化在网卡(网络适配器)的电可擦可编程只读存储器EEPROM中,因此MAC地址也 被称为硬件地址image.png MAC地址有时也被称为物理地址。请注意: 这并不意味着MAC地址属于网络体系结构中的物理层!

  • 一般情况下,用户主机会包含两个网络适配器: 有局域网适配器(有线网卡)和无线局域网适配器(无线网卡)。每个网络适配器都有一个全球唯一的MAC地址。而交换机和路由器往往拥有更多的网络接口,所以会拥有更多的MAC地址。综上所述,严格来说,MAC地址是对网络上各接口的唯一标识,而不是对网络上各设备的唯一标识

image.png image.png image.png image.png image.png image.png

IP地址

image.png image.png image.png

ARP协议

image.png image.png image.png image.png

【总结】

image.png

集线器和交换机的区别

image.png image.png image.png image.png image.png image.png

 以太网交换机自学习和转发帧的流程

  • 以太网交换机工作在数据链路层 (也包括物理层)
  • 以太网交换机收到帧后,在帧交换表中查找帧的目的MAC地址所对应的接口号,然后通过该接口转发帧。
  • 以太网交换机是一种即插即用设备,刚上电启动时其内部的帧交换表是空的。随着网络中各主机间的通信以太网交换机通过自学习算法自动逐渐建立起帧交换表

image.png image.png

以太网交换机的生成树协议STP

image.png image.png

 虚拟局域网VLAN

虚拟局域网VLAN概述

image.png image.png image.png image.png

虚拟局域网VLAN的实现机制

image.png image.png image.png image.png image.png 【总结】

image.png