【计算机网络详解】——数据链路层(学习笔记)

news2024/11/28 10:34:19

📖 前言:数据链路层提供了一种在不可靠的物理介质上传输数据的方式,并负责在网络层和物理层之间提供一个可靠的通信连接。本文将对数据链路层进行详细的介绍,包括数据链路层的定义、协议、功能和应用等方面。

在这里插入图片描述


目录

  • 🕒 0. 思维导图
  • 🕒 1. 概述
  • 🕒 2. 封装成帧
  • 🕒 3. 差错检测
    • 🕘 3.1 奇偶校验
    • 🕘 3.2 循环冗余校验CRC(Cyclic Redundary Check)☆
  • 🕒 4. 可靠传输
  • 🕒 5. 点对点协议PPP
    • 🕘 5.1 特点
    • 🕘 5.2 组成
      • 🕤 5.2.1 帧格式
      • 🕤 5.2.2 透明传输
        • 🕞 5.2.2.1 字节填充
        • 🕞 5.2.2.2 零填充
      • 🕤 5.2.3 差错检测
    • 🕘 5.3 工作状态
  • 🕒 6. 媒体接入控制
    • 🕘 6.1 基本概念
    • 🕘 6.2 静态划分信道
      • 🕤 6.2.1 频分复用FDM
      • 🕤 6.2.2 时分复用TDM
      • 🕤 6.2.3 波分复用WDM
      • 🕤 6.2.4 码分复用CDM
        • 🕞 6.2.4.1 直接序列扩频DSSS
    • 🕘 6.3 动态接入控制(随机接入)
      • 🕤 6.3.1 CSMA/CD协议
        • 🕞 6.3.1.1 争用期(碰撞窗口)
        • 🕞 6.3.1.2 最小帧长
        • 🕞 6.3.1.3 最大帧长
        • 🕞 6.3.1.4 截断二进制指数退避算法
        • 🕞 6.3.1.5 极限信道利用率
      • 🕤 6.3.2 CSMA/CA
        • 🕞 6.3.2.1 引入
        • 🕞 6.3.2.2 概念
        • 🕞 6.3.2.3 帧间间隔IFS
        • 🕞 6.3.2.4 工作原理
        • 🕞 6.3.2.5 退避算法
        • 🕞 6.3.2.6 信道预约
        • 🕞 6.3.2.7 虚拟载波监听
  • 🕒 7. MAC地址
    • 🕘 7.1 MAC地址格式
  • 🕒 10. 集线器与交换机
    • 🕘 10.1 概念
    • 🕘 10.2 区别
    • 🕘 10.3 以太网交换机自学习和转发帧的流程
    • 🕘 10.4 以太网交换机的生成树协议STP
      • 🕤 10.4.1 概述
      • 🕤 10.4.2 原理
  • 🕒 11. 虚拟局域网VLAN
    • 🕘 11.1 概述
      • 🕤 11.1.1 广播帧
      • 🕤 11.1.2 分割广播域的方法
    • 🕘 11.2 实现机制(拓展)
  • 🕒 12. 高速以太网
    • 🕘 12.1 100BASE-T 以太网
    • 🕘 12.2 吉比特以太网
    • 🕘 12.3 10 吉比特以太网 (10GE)
  • 🕒 13. 课后习题

🕒 0. 思维导图

🕒 1. 概述

物理层发出去的信号需要通过数据链路层才知道是否到达目的地;才知道比特流的分界线。

在这里插入图片描述

链路(Link):就是从一个结点到相邻结点的一段物理线路,而中间没有任何其他的交换结点。

数据链路(Data Link):是指把实现通信协议的硬件和软件加到链路上,就构成了数据链路。

数据链路层以为单位传输和处理数据

🕒 2. 封装成帧

在这里插入图片描述
定义:封装成帧是指数据链路层给上层交付的协议数据单元添加帧头和帧尾使之成为

  • 帧头和帧尾中含有重要的控制信息;
  • 帧头帧尾的作用之一就是帧定界(变成比特传输后据此区分每个帧的起始和结束)
  • 为了提高帧的传输效率,应当使帧的数据部分长度尽可能大
  • 考虑到差错控制等多种因素,每一种数据链路层协议都规定了帧的数据部分的长度上限,即最大传送单元MTU(Maximum Transfer Unit)

透明传输:数据链路层对上层交付的传输数据没有任何限制,就好像数据链路层不存在一样(即保证接收方接到的数据是完整的数据)

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

    • 转义字符:在数据里与定界符相同的字符前填充一个转义字符,在数据其它原有转义字符前也加一个转义字符。
  • 面向比特的物理链路使用比特填充的方法实现透明传输

    • 零比特填充:在发送前,对帧的数据部分进行扫描,每5个连续的比特1后就插入1个比特0,防止其与首部尾部的标志位混淆。接收方接收时将每5个连续的比特1后面的0剔除即可

高级数据链路控制协议HDLC采用帧头和帧尾中的标志字段作为帧定界符,其值为01111110;

类型字段:指明应用于帧数据字段的协议

🕒 3. 差错检测

实际的通信链路都不是理想的,比特在传输过程中可能会产生差错:1可能变成0,0可能变成1。这叫比特差错

在一段时间内,传输错误的比特占所传输比特总数的比率称为误码率BER(Big Error Rate)。

使用差错检测码(如Mac帧尾的FCS)来检测数据在传输过程中是否产生了比特差错,是数据链路层所要解决的重要问题之一。

🕘 3.1 奇偶校验

在待发送的数据后面添加1位奇偶校验位,使整个数据(包括所添加的校验位在内)中“1”的个数为奇数(奇校验)或偶数(偶校验)。

  • 如果有奇数个位发生误码,则奇偶性发生变化,可以检查出误码
  • 如果有偶数个位发生误码,则奇偶性不发生变化,不能检查出误码(漏检)。

在这里插入图片描述

🕘 3.2 循环冗余校验CRC(Cyclic Redundary Check)☆

  • 收发双方约定好一个生成多项式 G(x);

生成多项式举例:
G ( x ) = x 4 + x 2 + x + 1 = 1 ⋅ x 4 + 0 ⋅ x 3 + 1 ⋅ x 2 + 1 ⋅ x 1 + 1 ⋅ x 0 \begin{array}{l} G(x)=x^{4}+x^{2}+x+1 \\ =1 \cdot x^{4}+0 \cdot x^{3}+1 \cdot x^{2}+1 \cdot x^{1}+1 \cdot x^{0} \end{array} G(x)=x4+x2+x+1=1x4+0x3+1x2+1x1+1x0
生成多项式各项系数构成的比特串:10111

常用的生成多项式:
C R C − 16 = x 16 + x 15 + x 2 + □ CRC-CCITT  = x 16 + x 12 + x 5 + 1 C R C − 32 = x 32 + x 26 + x 23 + x 22 + x 16 + x 12 + x 11 + x 10 + x 8 + x 7 + x 5 + x 4 + x 2 + x + 1 \begin{array}{l} C R C-16=x^{16}+x^{15}+x^{2}+\square \\ \text {CRC-CCITT }=x^{16}+x^{12}+x^{5}+1 \\ CRC-32=x^{32}+x^{26}+x^{23}+x^{22}+x^{16}+x^{12}+x^{11}+x^{10}+x^{8}+x^{7}+x^{5}+x^{4}+x^{2}+x+1 \\ \end{array} CRC16=x16+x15+x2+CRC-CCITT =x16+x12+x5+1CRC32=x32+x26+x23+x22+x16+x12+x11+x10+x8+x7+x5+x4+x2+x+1

注:算法要求生成多项式必须包含最低次项

  • 发送方基于待发送的数据和生成多项式计算出差错检测码(冗余码),将其添加到待传输数据的后面一起传输;
  • 接收方通过生成多项式来计算收到的数据是否产生了误码。

在这里插入图片描述

例1:待发送的信息为101001,生成多项式为 G ( x ) = x 3 + x 2 + 1 G(x)= x^3+ x^2+ 1 G(x)=x3+x2+1,计算余数。

计算步骤

  1. 构造被除数:待发送信息后面添加生成多项式最高次数个0。
  2. 构造除数:生成多项式各项系数构成的比特串。
  3. 做“除法”
  4. 检查余数:余数的位数应与生成多项式最高次数相同,如果位数不够,则在余数前补0来凑足位数。

在这里插入图片描述
得到的 101001001 就可以发送了。

例2:接收到的信息为101101001,生成多项式为 G ( x ) = x 3 + x 2 + 1 G(x)= x^3+ x^2+ 1 G(x)=x3+x2+1,判断传输是否误码?
在这里插入图片描述
计算方法同上,最后检查余数,余数不为0,表明传输过程产生误码!

小结:

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

🕒 4. 可靠传输

不可靠传输服务:仅仅丢弃有误码的帧,其他什么也不做
可靠传输:想办法实现发送端发送什么,接收端就收到什么

  • 一般情况下,有线链路的误码率比较低,为了减小开销,并不要求数据链路层向上提供可靠传输服务。即使出现了误码,可靠传输的问题由其上层处理。

  • 无线链路易受干扰,误码率比较高,因此要求数据链路层必须向上层提供可靠传输服务。

  • 传输差错可分为两大类:

    • 比特差错;
    • 传输差错:帧丢失、帧重复或帧失序等。但一般不会出现在数据链路层,而会出现在其上层。
  • 在数据链路层使用 CRC 检验,能够实现无比特差错的传输,但这还不是可靠传输,且并不提供对差错的纠正。

  • 要做到可靠传输,还必须再加上帧编号、确认和重传等机制。

  • 可靠传输服务并不仅局限于数据链路层,其他各层均可选择实现可靠传输。
    在这里插入图片描述

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

🕒 5. 点对点协议PPP

🕘 5.1 特点

用户计算机与ISP进行通信时,所使用的数据链路层协议通常就是点对点协议PPP(Point-to-Point Protocol)。PPP协议是目前使用最广泛的点对点数据链路层协议,也广泛应用于广域网路由器之间的专用线路。

在1999年公布的在以太网上运行的PPPoE协议,它使得lSP可以通过ADSL、电路调制解调器、以太网等宽带接入技术以太网接口的形式为用户提供接入服务。

在这里插入图片描述

PPP(Point-to-Point Protocol)和PPPoE(Point-to-Point Protocol over Ethernet)是两种不同的协议。
PPP 是一种用于在两个点之间进行通信的协议,常用于 dial-up 网络和 VPN 连接。PPP 协议提供了多种功能,包括身份验证、数据压缩和加密等,但是它不提供路由功能。
PPPoE 则是一种在以太网上运行 PPP 的协议。它使用了以太网帧来封装 PPP 数据包,并使用一种特殊的服务器/客户端模型来管理 PPP 连接。PPPoE 常用于 ADSL、光纤宽带等拨号上网方式,也可以用于小区宽带网络中。
因此,PPPoE 可以看作是在以太网上运行 PPP 的一种方式,而 PPP 则是一种通用的协议,不仅可以在以太网上运行,也可以在其他类型的网络上运行。

🕘 5.2 组成

PPP协议为在点对点链路传输各种协议数据报提供了一个标准方法,主要由以下三部分构成:

  • 对各种协议数据报的封装方法(封装成帧)
  • 链路控制协议LCP 用于建立、配置以及测试数据链路的连接
  • 一套网络控制协议NCPs 其中的每一个协议支持不同的网络层协议

在这里插入图片描述

🕤 5.2.1 帧格式

在这里插入图片描述

🕤 5.2.2 透明传输

在这里插入图片描述

🕞 5.2.2.1 字节填充

面向字节的异步链路采用插入转义字符的字节填充法

在这里插入图片描述

发送方:

  • 如PPP帧的标志字段取值为7E(16进制),如果数据中出现7E则需要在数据前插入转义字符7D(16进制),并将原来的7E减20(16进制),所以7E在数据中最终会变成7D,5E
  • 如果数据中有转义字符7D怎么办呢?可以在转义字符7D前再加一个转义字符7D,并将数据的7D减20(16进制),于是转义字符7D在数据中最终会变成7D,5D
  • 数据中出现的每一个ASCII码控制字符(数值小于0x20的字符),则在该字符前面插入一个7D字节,同时将该字符的编码加上0x20

接收方:进行反变换即可恢复出原来的帧的数据部分。

🕞 5.2.2.2 零填充

面向比特的同步链路采用插入比特0的比特填充法

在这里插入图片描述
发送方:对帧的数据部分进行扫描(一般由硬件实现)。只要发现5个连续的比特1,则立即填充1个比特0
接收方:对帧的数据部分进行扫描(一般由硬件实现)。只要发现5个连续的比特1,就把其后的1个比特0删除

🕤 5.2.3 差错检测

在这里插入图片描述

接收方每收到一个PPP帧,就进行CRC检验(多项式)。若CRC检验正确,就收下这个帧;反之就丢弃这个帧(不可靠传输服务)。检验由尾部的FCS实现

用于检验的多项式为
C R C − C C I T T = x 16 + x 12 + x 5 + 1 CRC-CCITT =x^{16}+x^{12}+x^{5}+1 CRCCCITT=x16+x12+x5+1

🕘 5.3 工作状态

在这里插入图片描述
更多信息见博客:🔎 数据链路层协议详解

🕒 6. 媒体接入控制

🕘 6.1 基本概念

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

在这里插入图片描述

随着技术的发展,交换技术的成熟和成本的降低,具有更高性能的使用点对点链路和链路层交换机的交换式局域网在有线领域已完全取代了共享式局域网,但由于无线信道的广播天性,无线局域网仍然使用的是共享媒体技术。

🕘 6.2 静态划分信道

信道复用

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

在这里插入图片描述

🕤 6.2.1 频分复用FDM

频分复用的所有用户同时占用不同的频带资源并行通信。

在这里插入图片描述

🕤 6.2.2 时分复用TDM

时分复用的所有用户在不同的时间占用同样的频带宽度。

在这里插入图片描述

🕤 6.2.3 波分复用WDM

在这里插入图片描述

🕤 6.2.4 码分复用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的应用。

  • 与FDM和TDM不同,CDM的每一个用户可以在同样的时间使用同样的频带进行通信。

  • 由于各用户使用经过特殊挑选的不同码型,因此各用户之间不会造成干扰

  • CDM最初是用于军事通信的,因为这种系统所发送的信号有很强的抗干扰能力,其频谱类似于白噪声,不易被敌人发现。

  • 随着技术的进步,CDMA设备的价格和体积都大幅度下降,因而现在已广泛用于民用的移动通信中。

码片序列实现了扩频,扩频通常有 2 大类:

  • 直接序列扩频 DSSS (Direct Sequence Spread Spectrum)
  • 跳频扩频 FHSS (Frequency Hopping Spread Spectrum)

🕞 6.2.4.1 直接序列扩频DSSS

①在CDMA中,每一个比特时间再划分为m个短的间隔,称为码片(Chip)。通常m的值是64或128。为了简单起见,在后续的举例中,我们假设m为8。

②使用CDMA的每一个站被指派一个唯一的m bit码片序列(Chip Sequence)。

  • 一个站如果要发送比特1,则发送它自己的m bit码片序列;

  • 一个站如果要发送比特0,则发送它自己的m bit码片序列的二进制反码

【举例】指派给CDMA系统中某个站点的码片序列为00011011
发送比特1:发送自己的码片序列00011011
发送比特0:发送自己的码片序列的二进制反码11100100

为了方便,我们按惯例将码片序列中的0写为-1,将1写为+1。则该站点的码片序列是(-1 -1 -1 +1+1 -1 +1+1)。

③码片序列的挑选原则如下:

  • 分配给每个站的码片序列必须各不相同,实际常采用伪随机码序列。

  • 分配给每个站的码片序列必须相互正交(规格化内积为0)。

    • 令向量S表示站S的码片序列,令向量T表示其他任何站的码片序列。
    • 两个不同站S和T的码片序列正交,就是向量S和T的规格化内积为0 S ⋅ T ≡ 1 m ∑ i = 1 m S i T i = 0 S \cdot T \equiv \frac {1}{m} \sum^m_{i=1}S_i T_i=0 STm1i=1mSiTi=0
    • 任何一个码片向量和其它各站码片反码的向量的内积是0 S ⋅ T ˉ ≡ 0 S\cdot \bar{T} \equiv 0 STˉ0
    • 任何一个码片向量和该码片向量自己的规格化内积是1 S ⋅ S ≡ 1 S\cdot S \equiv 1 SS1
    • 任何一个码片向量和该码片反码的向量的内积是-1 S ⋅ S ˉ ≡ − 1 S\cdot \bar{S} \equiv -1 SSˉ1

【习题1】假设给站S分配的码片序列为01011101,给站T分配的码片序列为10111000,这样的分配正确吗?
检查码片序列是否各不相同:满足
检查码片序列是否相互正交:不满足
根据题意可知,用向量S表示站S的码片序列(-1+1-1+1+1+1-1+1),用向量T表示站T的码片序列(+1-1+1+1+1-1-1-1)

S ⋅ T ≡ ( − 1 ) ( + 1 ) + ( + 1 ) ( − 1 ) + ( − 1 ) ( + 1 ) + ( + 1 ) ( + 1 ) + ( + 1 ) ( + 1 ) + ( + 1 ) ( − 1 ) + ( − 1 ) ( − 1 ) + ( + 1 ) ( − 1 ) 8 = − 1 − 1 − 1 + 1 + 1 − 1 + 1 − 1 8 ≠ 0 S \cdot T \equiv \frac{(-1)(+1)+(+1)(-1)+(-1)(+1)+(+1)(+1)+(+1)(+1)+(+1)(-1)+(-1)(-1)+(+1)(-1)}{8}=\frac{-1-1-1+1+1-1+1-1}{8} \neq 0 ST8(1)(+1)+(+1)(1)+(1)(+1)+(+1)(+1)+(+1)(+1)+(+1)(1)+(1)(1)+(+1)(1)=8111+1+11+11=0

在这里插入图片描述
【2014年题37】站点A、B、C通过CDMA共享链路,A、B、C的码片序列分别是
(1,1,1,1) 、(1,-1,1,-1)和(1,1,-1,-1)。若C从链路上收到的序列是(2,0,2,0,0,-2,0,-2,0,2,0,2),则C收到A发送的数据是()
A.000
B.101
C.110
D.111
【解析】由于题目所给各站的码片序列为4位,因此将站点C收到的序列分成三部分,每部分也由4位组成:
(2,0,2,0) , (0,-2,0,-2) , (0,2,0,2)
将站点A的码片序列(1,1,1,1)分别与上述三个部分进行内积运算,根据结果可判断出A发送的数据(1,1,1,1)·(2,0,2,0)= (1×2 + 1x0 + 1x2+ 1×0) ÷ 4 = 1 (发送比特1)
(1,1,1,1)-(0,-2,0,-2)= (1x0 + 1x(-2)+ 1x0 +1×(-2)) ÷ 4 = -1(发送比特0)
(1,1,1,1)·(0,2,0,2)= (1x0 +1x2+1x0 +1×2)÷4= 1(发送比特1)
综上选B

🕘 6.3 动态接入控制(随机接入)

多个主机连接到一根总线上,当信息同一时间传送相遇时就会发生碰撞,如何协调各主机的工作,使信息避免碰撞是很重要的。

通常有两种接入方式:

  • 随机接入:所有的用户可随机地发送信息。
  • 受控接入:用户必须服从一定的控制。如轮询(polling)。

🕤 6.3.1 CSMA/CD协议

CSMA/CD协议曾经用于各种总线结构以太网和双绞线以太网的早期版本中。
现在的以太网基于交换机和全双工连接,不会有碰撞,因此没有必要使用CSMA/CD协议。

载波监听多址接入/碰撞检测 CSMA/CDCarrier Sense Multiple Access/Collision Detection)【不用于无线网络】

多址接入MA:多个站连接在一条总线上,竞争使用总线。

载波监听CS:每一个站在发送帧之前先要检测一下总线上是否有其他站点在发送帧(先听后说

  • 若检测到总线空闲96比特时间,则发送这个帧;
  • 若检测到总线忙,则继续检测并等待总线转为空闲96比特时间,然后发送这个帧。

96比特时间是指发送96比特所需要的时间,也称为帧间最小间隔。其作用是是接收方可以检测出一个帧的结束,同时也使得其他站点都能有机会平等竞争信道并发送帧

碰撞检测CD:每一个正在发送帧的站边发送边检测碰撞(边说边听

  • 一旦发现总线上出现碰撞,则立即停止发送,退避一段随机时间后再次发送(一旦冲突,立即停说,等待时机,重新再说)。

在这里插入图片描述

小结:先听后发、边发边听、冲突停发、延迟重发

🕞 6.3.1.1 争用期(碰撞窗口)

在这里插入图片描述
①为什么 τ − δ 2 \tau - \dfrac{\delta}{2} τ2δ时刻发送碰撞?

D开始发送的时,A已经走了 τ − δ \tau - \delta τδ时间,所以剩下路程所需要的时间是 δ \delta δ
又因为AD发送速度是相同的,因此对于 δ \delta δ时间的路程,每人只需要走 δ 2 \dfrac{\delta}{2} 2δ时间就会相遇,即碰撞。
碰撞时刻 = τ − δ + δ 2 = τ − δ 2 =\tau - \delta +\dfrac{\delta}{2}=\tau -\dfrac{\delta}{2} =τδ+2δ=τ2δ

②为什么 t = τ t=\tau t=τ时,D检测到碰撞?

根据上边推论,发现D走了 δ 2 \dfrac{\delta}{2} 2δ的时间路程后就发送了碰撞,此时它开始返回,经过同样的时间可以回到D

检测到碰撞时间 = δ 2 + δ 2 = δ =\dfrac{\delta}{2}+\dfrac{\delta}{2}=\delta =2δ+2δ=δ

③为什么 2 τ − δ 2\tau - \delta 2τδ时,A检测到碰撞?

D检测到碰撞同理,A走了 τ − δ 2 \tau -\dfrac{\delta}{2} τ2δ时间,因此往回走也是这么多时间
A检测到碰撞时间 = τ − δ 2 + τ − δ 2 = 2 τ − δ =\tau -\dfrac{\delta}{2}+\tau -\dfrac{\delta}{2}=2\tau - \delta =τ2δ+τ2δ=2τδ

得出结论:

  • 主机最多经过 2 τ 2\tau 2τ(即 δ → 0 \delta→0 δ0)的时长就可以检测到本次发送是否遭受了碰撞
  • 因此,以太网的端到端往返传播时延 2 τ 2\tau 2τ称为争用期碰撞窗口期(或冲突检测时间)
  • 经过争用期这段时间还没有检测到碰撞,才能肯定这次发送不会发生碰撞
  • 每一个主机在自己发送帧之后的一小段时间内,存在着遭遇碰撞的可能性。这一小段时间是不确定的。它取决于另一个发送帧的主机到本主机的距离,但不会超过总线的端到端往返传播时延,即一个争用期时间
  • 显然,在以太网中发生帧的主机越多,端到端往返传播时延越大,发生碰撞的可能性就越大。因此,共享式以太网不能连接太多的主机,使用的总线也不能太长
    • 10 M b / s 10Mb/s 10Mb/s以太网把争用期定为 512 b i t 512bit 512bit发送时间,即 51.2 μ s 51.2μs 51.2μs,因此其总线长度不能超过 5120 m 5120m 5120m,但考虑到其他一些因素,如信号衰减等,以太网规定总线长度不能超过 2500 m 2500m 2500m

🕞 6.3.1.2 最小帧长

Q:为什么需要规定最小帧长?
A:假设A向D发送帧,如果帧很短的话,在 2 τ 2\tau 2τ内就会将帧发送完毕,帧发送完毕后不会进行碰撞检测,而此时依然有发生碰撞的可能。所以必须保证在 2 τ 2\tau 2τ时间内帧不会被发送完,在这段时间里能够保持碰撞检测

  • 以太网规定最小帧长为64字节,即512比特(512比特即争用期)
    • 如果要发送的数据非常少,那么必须加入一些填充字节,使帧长不小于64字节
  • 以太网的最小帧长保证了主机可在帧发送完成之前就检测到该帧的发送过程中是否遭遇了碰撞
    • 如果在争用期没有检测到碰撞,那么后续发送的数据就一定不会发生碰撞
    • 如果在争用期检测到碰撞就立即中止发送,这时已经发送出去的数据一定小于64字节,因此凡长度小于64字节的帧都是由于碰撞检测而异常中止的无效帧

【单选题】长度为10km,数据传输率为10Mb/s的CSMA/CD以太网,信号传播速率为200m/μs。那么该网络的最小帧长是
A、20bit
B、200bit
C、100bit
D、1000bit
解析:争用期 2 τ = 10 k m 200 m / μ s × 2 = 1 0 − 4 s 2\tau = \frac{10km}{200m/ \mu s} \times 2=10^{-4} s 2τ=200m/μs10km×2=104s
最短帧长=数据传输速率×争用期2 τ \tau τ = 10 M b / s × 1 0 − 4 s = 1000 b 10Mb/s \times 10^{-4}s = 1000b 10Mb/s×104s=1000b

🕞 6.3.1.3 最大帧长

当帧过长时,其他线路会迟迟得不到资源,同时也可能导致接收方缓冲区溢出,因此帧的最大长度也有规定。

在这里插入图片描述

🕞 6.3.1.4 截断二进制指数退避算法

当帧发送碰撞后会停止发送,隔一段时间后再次发送,而具体隔多少时间再发送需要根据退避算法得出

在这里插入图片描述

  • 若连续多次发生碰撞,就表明可能有较多的主机参与竞争信道。但使用上述退避算法可使重传需要推迟的平均时间随重传次数而增大(这也称为动态退避),因而减小发生碰撞的概率,有利于整个系统的稳定。
  • 当重传达16次仍不能成功时,表明同时打算发送帧的主机太多,以至于连续发生碰撞,则丢弃该帧,并向高层报告。

🕞 6.3.1.5 极限信道利用率

考虑以下这种理想情况:

  • 各主机发送帧都不会产生碰撞
  • 总线一旦空闲就有某个主机立即发送帧
  • 每帧的发送时延为 T 0 T_0 T0 ,传播时延为 τ \tau τ,占用信道的时间为 T 0 + τ T_0+\tau T0+τ

极限信道利用率 S m a x = T 0 T 0 + τ = 1 1 + τ T 0 S_{max}=\dfrac{T_0}{T_0+\tau}=\dfrac{1}{1+\dfrac{\tau}{T_0}} Smax=T0+τT0=1+T0τ1

为了令 S m a x S_{max} Smax尽量大,所以应该让 τ T 0 \dfrac{\tau}{T_0} T0τ尽量小,即 τ \tau τ尽量小(以太网端到端距离收到限制)或 T 0 T_0 T0尽量大(以太网帧尽量长)

帧发送流程
在这里插入图片描述

帧接收流程

在这里插入图片描述

【2009年题37】在一个采用CSMA/CD协议的网络中,传输介质是一根完整的电缆,传输速率为1Gbps,电缆中的信号传播速度是200 000km/s。若最小数据帧长度减少800比特,则最远的两个站点之间的距离至少需要()
A.增加160m
B.增加80m
C.减少160m
D.减少80m
【解析】设最远两个站点之间的距离为d(m),最小帧长为l(bit);
最小帧长=争用期×数据传输速率
l = ( d 200000 × 1 0 3 × 2 ) × 1 0 9 l=\left(\frac{d}{200000 \times 10^{3}} \times 2\right) \times 10^{9} l=(200000×103d×2)×109
得出 d = l 10 d=\frac{l}{10} d=10l
很显然,若最小帧长减少800 bit,最远的两个站点之间的距离至少会减少80m

【2010年 题47】某局域网采用CSMA/CD协议实现介质访问控制,数据传输速率为10Mbps,主机甲和主机乙之间的距离为2km,信号传播速度是200 000km/s。请回答下列问题,要求说明理由或写出计算过程。
(1)如主机甲和主机乙发送数据时发生冲突,则从开始发送数据时刻起,到两台主机均检测到冲突时刻止,最短需经过多长时间?最长需经过多长时间(假设主机甲和主机乙发送数据过程中,其他主机不发送数据)?
在这里插入图片描述

两主机同时发送数据,才能使得它们从开始发送数据时刻起,到它们都检测到冲突时刻止,所经过的时间最短。
这段时间包括主机发送的数据信号传播到距离中点处所耗费的传播时延,以及发生碰撞后的碰撞信号传播回主机所耗费的时间(与之前的传播时延相等)。即两主机间单程的传播时延2km÷200 000km/s = 0.01ms
在这里插入图片描述
甲发送的帧信号传播到无限接近乙的某个时刻,乙也要发送帧,它检测到信道空闲(但信道此时并不空闲),就立刻开始发送帧,这必然会导致碰撞。乙会首先检测到碰撞,一段时间后甲也会检测到碰撞。
从开始发送数据时刻起,到两台主机均检测到碰撞时刻止,最长需要经过的
时间为两台主机间信号传播的往返时延(争用期)(2km÷200 000km/s ) × 2= 0.02ms

🕤 6.3.2 CSMA/CA

🕞 6.3.2.1 引入

既然CSMA/CD协议已经成功地应用于使用广播信道的有线局域网,那么同样使用广播信道的无线局域网能不能也使用CSMA/CD协议呢?

  • 在无线局域网中,仍然可以使用载波监听多址接入CSMA,即在发送帧之前先对传输媒体进行载波监听。若发现有其他站在发送帧,就推迟发送以免发生碰撞。

  • 在无线局域网中,不能使用碰撞检测CD,原因如下:

    • 由于无线信道的传输条件特殊,其信号强度的动态范围非常大,无线网卡上接收到的信号强度往往会远远小于发送信号的强度(可能相差百万倍)。如果要在无线网卡上实现碰撞检测CD,对硬件的要求非常高。
    • 即使能够在硬件上实现无线局域网的碰撞检测功能,但由于无线电波传播的特殊性(存在隐蔽站问题),进行碰撞检测的意义也不大。

在这里插入图片描述

🕞 6.3.2.2 概念

载波监听多点接入/碰撞避免(CSMA/CA)(Carrier Sense Multiple Access/Collision Avoidance)【用于无线网络】

  • 802.11无线局域网使用CSMA/CA协议,在CSMA的基础上增加了一个碰撞避免CA功能,而不再实现碰撞检测功能。

  • 由于不可能避免所有的碰撞,并且无线信道误码率较高,802.11标准还使用了数据链路层确认机制(停止-等待协议)来保证数据被正确接收。

  • 802.11的MAC层标准定义了两种不同的媒体接入控制方式:

    • 分布式协调功能DCF(Distributed Coordination Function)。在DCF方式下,没有中心控制站点,每个站点使用CSMA/CA协议通过争用信道来获取发送权,这是802.11定义的默认方式。
    • 点协调功能PCF(Point Coordination Function)。PCF方式使用集中控制的接入算法(一般在接入点AP实现集中控制),是802.11定义的可选方式,在实际中较少使用

🕞 6.3.2.3 帧间间隔IFS

802.11标准规定,所有的站点必须在持续检测到信道空闲一段指定时间后才能发送帧,这段时间称为帧间间隔IFS(InterFrame Space)

帧间间隔的长短取决于该站点要发送的帧的类型:

  • 高优先级帧需要等待的时间较短,因此可优先获得发送权
  • 低优先级帧需要等待的时间较长。若某个站的低优先级帧还没来得及发送,而其他站的高优先级帧已发送到信道上,则信道变为忙态,因而低优先级帧就只能再推迟发送了。这样就减少了发送碰撞的机会。

常用的两种帧间间隔如下:

  • 短帧间间隔SIFS(28 μ s \mu s μs)。这是最短的帧间间隔,用来分隔开属于一次对话的各帧。一个站点应当能够在这段时间内从发送方式切换到接收方式。使用SIFS的帧类型由ACK帧、CTS帧、由过长的MAC帧分片后的数据帧、以及所有回答AP探询的帧和在PCF方式中接入点AP发送出的任何帧。
  • DCF帧间间隔DIFS(128 μ s \mu s μs)。它比短帧间间隔SIFS要长得多,在DCF方式中用来发送数据帧和管理帧。

🕞 6.3.2.4 工作原理

在这里插入图片描述

①为什么源站检测到信道空闲后,还需要等待DIFS时间才将帧发送呢?

因为其他站此时可能有优先级更高的帧需要发送,因此有DIFS时间进行缓冲,若这个时间内没有高优先级的帧要发送,则说明信道是真正的空闲。

②为什么目的站接收到帧后还需要等到SIFS时间才返回ACK确认帧呢?

SIFS是最短的帧间间隔,用来分割一次对话的各帧,在这个时间里由发生方式切换到接收方式。

③当其他站要发送数据,但是发现此时信道正忙时就会退避一段时间,等信道不忙后再进行操作,接着等待DIFS时间(与①同理),但为什么等待了DIFS时间后还要退避一段随机时间呢?

因为可能有多个站点在信道忙时都想发送帧,因此它们都会被搁置直至信道不忙,在DIFS时间后他们会同时发送,而实际上多个站点同时发送数据会碰撞。因此需要一个随机时间将他们进行错峰发送。

🕞 6.3.2.5 退避算法

概念:多个站点发送冲突时,各个站点需要退避一段随机时间再进行操作。

当站点检测到信道是空闲的,并且所发送的数据帧不是成功发送完上一个数据帧之后立即连续发送的数据帧,则不使用退避算法。

以下情况必须使用退避算法

  • 在发送数据帧之前检测到信道处于忙状态时;
  • 在每一次重传一个数据帧时;
  • 在每一次成功发送后要连续发送下一个帧时(这是为了避免一个站点长时间占用通道)

过程:

  • 在执行退避算法时,站点为退避计时器设置一个随机的退避时间:
    • 当退避计时器的时间减小到0,就开始发送数据;
    • 当退避计时器的时间还未减小到0时信道又转变为忙状态,这时就冻结退避计时器的数值,重新等待信道变为空闲,再经过DIFS后,继续启动退避计时器;
  • 在进行第i次退避时,退避时间在时隙编号 { 0 , 1 , . . , 2 i + 1 − 1 } \{0,1,..,2^{i+1}-1\} {0,1,..,2i+11}中随机选择一个,然后乘以基本退避时间(也就是一个时隙的长度)就可以得到随机的退避时间。这样做时为了使不同站点选择相同退避时间的概率减少。当时隙编号达到255时(对应第6次退避)就不再增加了。

在这里插入图片描述

🕞 6.3.2.6 信道预约

概念:为了尽可能减少碰撞的概率和降低碰撞的影响,802.11标准允许要发送数据的站点对信道进行预约

  1. 源站在发送数据帧之前先发送一个短的控制帧,称为请求发生RTS(Request To Send),它包括源地址、目的地址以及这次通信(包括相应的确认帧)所需的持续时间。
  2. 若目的站正确收到源站发来的RTS帧,且媒体空闲,就发送一个响应控制帧,称为允许发送CTS(Clear To Send),它也包括这次通信所需的持续时间(从RTS帧中将此持续时间复制到CTS帧中)。
  3. 源站收到CTS帧后,再等待一段时间SIFS后,就可发送其数据帧
    • 如果RTS帧发送碰撞,源站就收不到CTS帧,需执行退避算法重传RTS帧。
    • 由于RTS帧和CTS帧很短,发生碰撞的概率、碰撞产生的开销及本身的开销都很小。而对于一般的数据帧,其发送时延往往大于传播时延(因为是局域网),碰撞的概率很大,且一旦发生碰撞而导致数据帧重发就会浪费很多时间,因此用很小的代价对信道进行预约往往是值得的。802.11标准规定了3种情况供用户选择
      • 使用RTS帧和CTS帧
      • 不使用RTS帧和CTS帧
      • 只有当数据帧的长度超过某一数值时才使用RTS帧和CTS帧
  4. 若目的站正确收到了源站发来的数据帧,在等待时间SIFS后,就向源站发送确认帧ACK。
  5. 除源站和目的站以外的其他各站,在收到CTS帧(或数据帧)后就推迟接入到无线局域网中。这样就保证了源站和目的站之间的通信不会收到其他站的干扰。

在这里插入图片描述

🕞 6.3.2.7 虚拟载波监听

概念:除RTS帧和CTS帧会携带通信需要持续的时间,数据帧也能携带通信需要持续的时间,这称为802.11的虚拟载波监听机制

由于利用虚拟载波监听机制,站点只要监听到RTS帧、CTS帧或数据帧中的任何一个,就能知道信道被占用的持续时间,而不需要真正监听到信道上的信号,因此虚拟载波监听机制能减少隐蔽站带来的碰撞问题

如下图,A与C虽然互相覆盖不到,但是C可收到B发出的关于A的CTS帧,从而得知A需要占用信道的时间。在这段时间里,C不发送数据,从而解决隐蔽站带来的碰撞问题

在这里插入图片描述

【2011年 题36】下列选项中,对正确接收到的数据帧进行确认的MAC协议是( )
A.CSMA
B.CDMA
C.CSMA/CD
D.CSMA/CA
【解析】
CSMA是指载波监听多址接入,并不使用确认机制;
CSMA/CD是指载波监听多址接入/碰撞检测,是对CSMA的改进,是早期共享信道以太网使用的信道访问控制协议,并不使用确认机制;
CSMA/CA是指载波监听多址接入/碰撞避免,是802.11局域网采用的无线信道访问控制协议。802.11局域网在使用CSMA/CA的同时,还使用停止-等待协议。这是因为无线信道的信质量远不如有线信道,因此无线站点每发送完一个数据帧后,要等到收到对方的确认帧后才能继续发送下一帧;
CDMA是指码分多址,属于静态划分信道,是物理层的信道复用技术,而不属于MAC协议
因此选D。

【2013年题36】下列介质访问控制方法中,可能发生冲突的是()
A.CDMA
B.CSMA
C.TDMA
D.FDMA
【解析】
CDMA(Code Division Multiplex Access)是指码分多址;
TDMA(Time Division Multiplex Access)是指时分多址;
FDMA(Frequency Division Multiplex Access)是指频分多址;
CSMA(Carrier Sense Multiple Access)是指载波监听多址接入;
TDMA,FDMA,CDMA是常见的物理层信道复用技术,属于静态划分信道用于多用户共享信道,不会发生冲突。
CSMA属于争用型的媒体接入控制协议,连接在同一媒体上的多个站点使用该协议以竞争方式发送数据帧,可能出现冲突(也称为碰撞)
因此选B。

🕒 7. MAC地址

MAC地址是以太网的MAC子层所使用的地址

  • 只有一条路径的信道不需要地址,因为没得选;
  • 当多个主机连接在同一个广播信道上,要想实现两个主机之间的通信,则每个主机都必须有一个唯一的标识,即一个数据链路层地址;
  • 在每个主机发送的帧中必须携带标识发送主机和接收主机的地址。由于这类地址是用于媒体接入控制MAC(Media Access Control),因此这类地址被称为MAC地址
    • MAC地址一般被固化在网卡(网络适配器)的电可擦可编程只读存储器EEPROM中,因此MAC地址也被称为硬件地址
      在这里插入图片描述

    • MAC地址有时也被称为物理地址。但是MAC地址不属于物理层而是属于数据链路层

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

🕘 7.1 MAC地址格式

在这里插入图片描述
查看已分配的组织唯标识符OUI:🔎 IEEE官网
🔎 MAC地址查询
在这里插入图片描述
在这里插入图片描述

字节发送顺序:第一字节第六字节
字节内的比特发送顺序: b 0 b_0 b0 b 7 b_7 b7

单播地址、广播地址与多播地址

  • 单播MAC地址即明确的目的MAC地址。将此地址填入帧的目的地址栏中,接收到该帧的主机将此地址与自身MAC地址进行匹配,若相同则接收,不同则丢弃;
  • 广播MAC地址FF-FF-FF-FF-FF-FF,将此地址填入帧的目的地址栏中,接收到该帧的主机检索该地址发现是广播地址,因此接收该帧;
  • MAC地址中第一字节后4比特(即第2位)十六进制数不能整除2(即为1,3,5,7,9,B,D,F)时,MAC地址是多播地址。将此地址填入帧的目的地址栏中,接收到该帧的主机将此多播地址与自己多播组列表中的地址进行逐一配对,如果有匹配的项,则接收,否则丢弃。举例:A发送多播帧给多播地址是07-E0-12-F6-2A-D8,则07中的7(二进制为0111)不能整除2,符合条件。

随机MAC地址:现已支持绝大多数设备,以减少被跟踪的可能。

🕒 10. 集线器与交换机

🕘 10.1 概念

集线器HUB:主要功能是对接收到的信号进行再生整形放大,以扩大网络的传输距离,同时把所有节点集中在以它为中心的节点上。

  • 使用集线器的以太网在逻辑上仍是一个总线网,各站共享总线资源,使用的还是CSMA/CD协议
  • 集线器只工作在物理层,它的每个接口仅简单地转发比特,不进行碰撞检测(由各站网卡检测);
  • 集线器一般都有少量的容错能力和网络管理功能。例如,若网络中某个网卡出了故障,不停地发送帧。此时,集线器可以检测到这个问题,在内部断开与出故障网卡的连线,使整个以太网仍然能正常工作;
  • 集线器是半双工模式,收发不能同时进行,收到帧后会广播到除本身接口外的各个接口

交换机SWITCH:一种负责转发信号的网络设备,可以为接入交换机的任意两个网络节点提供独享的电信号通路,它的前身是网桥

接下来的举例忽略ARP过程,并假设交换机的帧交换表已“学习好了”

在这里插入图片描述

  • 以太网交换机通常由多个接口,因此也称为多端口网桥,每个接口都可以直接与一台主机或另一个以太网交换机相连。一般都工作在全双工方式
  • 以太网交换机具有并行性,能同时连通多对接口,使多对主机能同时通信,无碰撞(不使用CSMA/CD协议)
  • 以太网交换机一般都具有多种速率的接口;
  • 以太网交换机工作在数据链路层(也包括物理层),它收到帧后,在帧交换表中查找帧的目的MAC地址所对应的接口号,然后通过该接口转发帧;
  • 以太网交换机是一种即插即用的设备,其内部的帧交换表是通过自学习算法自动地逐渐建立起来的
  • 帧的两种转发方式:
    • 存储转发
    • 直通交换:采用基于硬件的交叉矩阵(交换时延非常小,但不检查是否有差错)
  • 交换机每个接口是一个独立的碰撞域

在这里插入图片描述

🕘 10.2 区别

集线器HUB

  • 早期以太网的互连设备;
  • 工作在OSI体系结构的物理层对接收到的信号进行放大、转发;
  • 使用集线器作为互连设备的以太网仍然属于共享总线式以太网。集线器互连起来的所有主机共享总线带宽,属于同一个碰撞域和广播域。

交换机SWITCH

  • 目前以太网中使用最广泛的互连设备;
  • 工作在OSI体系结构的数据链路层(也包括物理层)根据MAC地址对帧进行转发;
  • 使用交换机作为互连设备的以太网,称为交换式以太网。交换机可以根据MAC地址过滤帧,即隔离碰撞域;
  • 交换机的每个接口是一个独立的碰撞域;
  • 交换机隔离碰撞域但不隔离广播域(VLAN除外);

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

假设各主机知道网络中其他各主机的MAC地址(无需进行ARP)

请添加图片描述

以太网交换机进行自学习时使用的PDU(Protocol Data Unit,协议数据单元)地址是源物理地址,进行转发决策时使用的PDU地址是目的物理地址

小结:

  • 以太网交换机自学习和转发帧的流程:
    • 收到帧后进行登记。登记的内容为帧的源MAC地址及进入交换机的接口号;
    • 根据帧的目的MAC地址和交换机的帧交换表对帧进行转发,有以下三种情况:
      • 明确转发:交换机知道应当从哪个(或哪些)接口转发该帧(单播、多播、广播
      • 盲目转发:交换机不知道应当从哪个端口转发帧(或转发表是空的),只能将其通过除进入交换机的接口外的其他所有接口转发(也称为泛洪)。
      • 明确丢弃:交换机知道不应该转发该帧,将其丢弃。
  • 帧交换表中的每条记录都有自己的有效时间,到期删除。原因如下:
    • 交换机的接口改接了另一台主机;
    • 主机更换了网卡。

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

🕤 10.4.1 概述

添加冗余链路可以提高以太网的可靠性,但是,冗余链路也会带来负面效应——形成网络环路

网络环路会带来以下问题:

  • 广播风暴:如右下图发送一个广播帧会顺时针和逆时针转发一遍,大量消耗网络资源,使得网络无法正常转发其他数据帧;
  • 主机收到重复的广播帧:大量消耗主机资源
  • 交换机的帧交换表震荡(漂移/内容不断更新)

在这里插入图片描述

因此,以太网交换机使用生成树协议STP(Spanning Tree Protocol),可以在增加冗余链路来提高网络可靠性的同时又避免网络环路带来的各种问题

🕤 10.4.2 原理

  • 不论交换机之间采用怎样的物理连接,交换机都能够自动计算并构建一个逻辑上没有环路的网络,其逻辑拓扑结构必须是树型的(无逻辑环路);
  • 最终生成树的逻辑拓扑要确保连通整个网络
  • 当首次连接交换机或网络物理拓扑发生变化时(有可能是人为改变或故障),交换机都将进行生成树重新计算

在这里插入图片描述

工作原理见博客数据链路层协议

🕒 11. 虚拟局域网VLAN

🕘 11.1 概述

🕤 11.1.1 广播帧

一种将局域网内的设备划分成与物理位置无关的逻辑组的技术,这些逻辑组具有某些共同的需求,每个VLAN就是一个独立的广播域

为什么需要VLAN?

随着交换式以太网规模的扩大,广播域相应扩大,而巨大的广播域会带来很多弊端

  1. 广播风暴:如数台交换机连接了数台主机,当主机A要向主机B发送数据帧,此时各交换机的MAC表均为空,因此帧每到一个交换机就会进行泛洪,由于网络巨大,因此泛洪的范围也巨大
  2. 难以管理和维护:传统的以太网交换机在转发数据时,通过自学习形成转发表,然后依据此表进行以太网帧的转发,整个转发的过程自动完成,所有端口都可以互访,维护人员无法控制端口之间的转发。
  3. 潜在的安全风险

网络中会频繁出现广播信息

  • TCP/IP协议栈中的很多协议都会使用广播:
    • 地址解析协议ARP(已知IP地址,找出其相应的MAC地址)
    • 路由信息协议RIP(一种小型的内部路由协议)
    • 动态主机配置协议DHCP(用于自动配置IP地址)
  • NetBEUI:Widnows下使用的广播型协议
  • IPX/SPX:Novell网络的协议栈
  • Apple Talk:Apple公司的网络协议栈

🕤 11.1.2 分割广播域的方法

  • 使用路由器可以隔离广播域:但路由器的成本较高,大规模使用不现实
  • 虚拟局域网VLAN(Virtual Local Area Network):是一种将局域网内的设备划分成与物理位置无关的逻辑组的技术,这些逻辑组具有某些共同的需求

在这里插入图片描述

🕘 11.2 实现机制(拓展)

更多信息见博客:🔎 数据链路层协议详解

🕒 12. 高速以太网

🕘 12.1 100BASE-T 以太网

定义:速率达到或超过 100 Mbit/s 的以太网称为高速以太网,也称为快速以太网(fase Ethernet)。(IEEE 802.3u)

特点:

  • 可在全双工方式下工作而无冲突发生。在全双工方式下工作时,不使用 CSMA/CD 协议
  • MAC 帧格式仍然是 802.3 标准规定的。
  • 保持最短帧长不变,但将一个网段的最大电缆长度减小到100 m
  • 帧间时间间隔变短10倍,从原来的9.6us改为现在的0.96us。
名称媒体网段最大长度特点
100BASE-TX铜缆100 m两对 UTP 5 类线或屏蔽双绞线STP
100BASE-T4铜缆100 m4 对 UTP 3 类线或 5 类线
100BASE-FX光缆2000 m2 根光纤,发送和接收各用一根

🕘 12.2 吉比特以太网

定义:允许在 1 Gbit/s 下以全双工和半双工两种方式工作。

特点:在半双工方式下使用CSMA/CD 协议,全双工方式不使用CSMA/CD 协议。

名称媒体网段最大长度特点
1000BASE-SX光缆550 m多模光纤(50 和 62.5 μ \mu μm)
1000BASE-LX光缆5000 m单模光纤(10 mm)多模光纤(50 和 62.5 μ \mu μm)
1000BASE-CX铜缆25 m使用 2 对屏蔽双绞线电缆 STP
1000BASE-T铜缆100 m使用 4 对 UTP 5 类线

吉比特以太网工作在半双工方式时,就必须进行碰撞检测。为保持 64 字节最小帧长度,以及 100 米的网段的最大长度,吉比特以太网增加了两个功能载波延伸分组突发,但在全双工方式下不是这两个功能。

  • 载波延伸(carrier extension)
    • 使最短帧长仍为 64 字节(这样可以保持兼容性),同时将争用时间增大为 512 字节。
    • 凡发送的MAC帧长度不足512字节时,就用一些特殊字符填充在帧的后面,使MAC帧的发送长度增大到512字节。接收端在收到以太网的MAC帧后,要将所填充的特殊字符删除后才向高层交付。

在这里插入图片描述

  • 分组突发(packet bursting)
    • 当很多短帧要发送时,第一个短帧要采用载波延伸方法进行填充,随后的一些短帧则可一个接一个地发送,只需留有必要的帧间最小间隔即可。这样就形成可一串分组的突发,直到达到 1500 字节或稍多一些为止。

在这里插入图片描述
当吉比特以太网工作在全双工方式时,不使用载波延伸和分组突发。

🕘 12.3 10 吉比特以太网 (10GE)

特点:

  • 万兆比特。
  • 与 10、100 Mbit/s 和 1 Gbit/s 以太网的帧格式完全相同。
  • 保留了 IEEE 802.3 标准规定的以太网最小和最大帧长。
  • 只使用光纤作为传输媒体。
  • 只工作在全双工方式,没有争用问题,不使用 CSMA/CD 协议。
名称媒体网段最大长度特点
10GBASE-SR光缆300 m多模光纤(0.85 μ \mu μm)
10GBASE-LR光缆10 km单模光纤(1.3 μ \mu μm)
10GBASE-ER光缆40 km单模光纤(1.5 μ \mu μm)
10GBASE-CX4铜缆15 m使用 4 对双芯同轴电缆 (twinax)
10GBASE-T铜缆100 m使用 4 对 6A 类 UTP 双绞线

🕒 13. 课后习题

  1. 【判断题】连接企业网络各区域,处于核心位置的交换机称为汇聚交换机。

  2. 【单选题】从表面上看,FDM比TDM能更好地利用信道的传输能力,但现在计算机网络更多地使用TDM而非FDM,其原因是( )。
    A、FDM实际能力更差
    B、TDM可用于数字传输而FDM不行
    C、FDM技术不成熟
    D、TDM能更充分地利用带宽

  3. 【单选题】下列属于数据链路层互连设备的是
    A、集线器
    B、网桥和交换机
    C、路由器
    D、网关

  4. 【单选题】以下关于数据链路层的基本概念的描述中错误的是()。
    A、相邻高层是网络层
    B、可以在释放物理连接之后建立数据链路
    C、采用差错控制与流量控制方法使有差错的物理线路变成无差错的数据链路
    D、数据链路层的数据传输单元是帧

  5. 【单选题】网卡实现的主要功能在
    A、物理层和数据链路层
    B、数据链路层和网络层
    C、物理层和网络层
    D、数据链路层和应用层

  6. 【单选题】数据链路层协议的功能不包括( )。
    A、定义数据格式
    B、提供结点之间的可靠传输
    C、控制对物理传输介质的访问
    D、为终端结点隐蔽物理传输的细节

  7. 【单选题】某个数据链路层协议使用下列字符编码:
    字符A的编码为01000111
    字符B的编码为11100011
    字符ESC的编码为11100000
    字符FLAG的编码为01111110
    是使用字符FLAG作为帧定界符,字符ESC作为转义字符。现在要将待传输的4个字符A、B、ESC、FLAG封装成帧。若物理链路是面向字符的,则封装出的帧的二进制位序列是
    A、11100000 01000111 11100011 11100000 01111110 11100000
    B、01111110 01000111 11100011 11100000 01111110 01111110
    C、01111110 01000111 11100011 11100000 11100000 11100000 01111110 01111110
    D、11100000 01000111 11100011 11100000 11100000 11100000 01111110 11100000

  8. 【判断题】异步传输中,字节内的比特传输不需要同步。

  9. 【单选题】CSMA/CD以太网发生冲突时,采用截断二进制指数退避算法进行处理。下列数据帧重传时再次发生冲突的概率最低的是( )
    A、首次重传的帧
    B、发生两次重传的帧
    C、发生三次重传的帧
    D、发生四次重传的帧

  10. 【单选题】CSMA/CD以太网采用截断二进制指数退避算法,在12次碰撞之后,站点会在0~( )倍的基本退避时间之间选择一个随机数
    A、255
    B、511
    C、1023
    D、2047

  11. 【单选题】以下几种CSMA协议中,( )协议在监听到介质空闲时仍可能不发送。
    A、1-坚持CSMA
    B、非坚持CSMA
    C、p-坚持CSMA
    D、以上都不是

  12. 【单选题】假设一个采用CSMA/CD协议的1000Mbps局域网,最小帧长为256B,则在一个冲突域内两个站点之间的单向传播延时最多是()
    A、1.024μs
    B、2.048μs
    C、4.096μs
    D、8.192μs

  13. 【单选题】在CSMA的非坚持协议中,当媒体忙时,则( )直到媒体空闲。
    A、延迟一个固定的时间单位再侦听
    B、继续侦听
    C、延迟一个随机的时间单位再侦听
    D、放弃侦听

  14. 【单选题】使用CSMA/CD的以太网,若提高数据传输速率,为了不影响碰撞检测,可以使用的解决方法是
    A、增加最短帧长或增加传输介质长度
    B、减少最短帧长或增加传输介质长度
    C、增加最短帧长或减少传输介质长度
    D、减少最短帧长或减少传输介质长度

  15. 【单选题】下面有关CSMA/CA协议的描述中,错误的是
    A、CA是碰撞避免的意思
    B、DCF帧间间隔DIFS用来分隔开属于一次对话的各帧
    C、使用RTS帧和CTS帧进行信道预约
    D、使用信道预约机制也不可能完全避免碰撞

  16. 【2020年 题37】某IEEE 802.11无线局域网中主机H与AP之间发送或接收CSMA/CA帧的过程如下图所示,在H或AP发送帧前所等待的帧间间隔时间(IFS)中最长的是
    在这里插入图片描述
    A、IFS1
    B、IFS2
    C、IFS3
    D、IFS4

  17. 【2020年 题35】下图所示的网络冲突域和广播域的个数分别是
    在这里插入图片描述
    A、2, 2
    B、2, 4
    C、4, 2
    D、4, 4

  18. 【单选题】下列关于中继器和集线器的说法中,不正确的是( )。
    A、二者都工作在OSI参考模型的物理层
    B、二者都可以对信号进行放大和整形
    C、通过中继器或集线器互联的网段数量不受限制
    D、中继器通常只有2个端口,而集线器通常有4个或更多端口

  19. 【单选题】公司有用户反映在使用网络传输文件时,速度非常低,管理员在网络中使用Wireshark软件抓包发现了大量
    重复的帧,下面关于可能的原因或解决方案描述正确的是()。
    A、交换机在MAC地址表中查不到数据帧的目的MAC地址时,会泛洪该数据帧
    B、公司网络的交换设备必须进行升级改造
    C、网络在二层存在环路
    D、网络中没有配置VLAN

  20. 【单选题】下图中,交换机S1刚刚启动,此时收到一个从PC4发往PC5的数据帧,则S1会将该帧( )。
    在这里插入图片描述
    A、转发到PC1
    B、丢弃
    C、泛洪广播
    D、退回到Hub0

  21. 【单选题】以下有关虚拟局域网VLAN的说法中,错误的是()
    A、虚拟局域网是一种新型结构的局域网
    B、虚拟局域网技术可以用来分割广播域
    C、虚拟局域网是一种将局域网内的设备划分成与物理位置无关的逻辑组的技术
    D、不同虚拟局域网中的主机之间不能直接通信

  22. 【多选题】虚拟局域网的划分策略包括()。
    A、基于端口
    B、基于MAC地址
    C、基于IP网段
    D、基于协议

  23. 【单选题】对于1000Base-T以太网交换机,当输出端口无排队,以直通交换方式转发一个以太网帧(不包括前导码)时,引入的转发延迟至少是
    A、0μs
    B、0.048μs
    C、5.12μs
    D、121.44μs

  24. 【单选题】一个信道的数据传输率为4kb/s,单向传播时延为30ms,如果使停止-等待协议的信道最大利用率达到80%,那么要求的数据帧长度至少为( )。
    A、160bit
    B、320bit
    C、560bit
    D、960bit

答案:1.×
2.B(解析:TDM与FDM相比,抗干扰能力强,可以逐级再生整形,避免干扰的积累,而且数字信号比较容易实现自动转换,所以根据FDM和TDM的工作原理,FDM适合于传输模拟信号, TDM适合于传输数字信号。)
3.B(解析:集线器属于物理层互连设备,网桥和交换机属于数据链路层互连设备,路由器属于网络层互连设备,网关一般属于应用层互连设备)
4.B(解析:因为在建立数据链路之前,必须要建立物理连接。在数据链路的使用结束后,需要释放数据链路,同时也会释放物理连接。)
5.A(解析:通常情况下,网卡是用来实现以太网协议的。网卡不仅能实现与局域网传输介质之间的物理连接和电信号匹配,还涉及帧的发送与接收、帧的封装与解封、介质访问控制、数据的编码与解码以及数据缓存等功能,因而实现的功能主要在物理层和数据链路层。)
6.D(解析:数据链路层的主要功能包括组帧,组帧即定义数据格式,数据链路层在物理层提供的不可靠的物理连接上实现结点到结点的可靠性传输,控制对物理传输介质的访问由数据链路层的介质访问控制(MAC)子层完成,数据链路层不必考虑物理层如何实现比特传输的细节,因此D错误。)
7.C(解析:由于物理链路是面向字符的,因此采用字符填充法来实现透明传输。未实现透明传输所封装出的帧为 FLAG A B ESC FLAG FLAG,带下划线部分为待传输的4个字符,但其中出现了与帧定界符FLAG以及转义字符ESC相同的字符,需要在它们之前插入转义字符来实现透明传输,结果为 FLAG A B ESC ESC ESC FLAG FLAG,再将题目给定的每个字符的编码对应写出即可。)
8.× 9.D 10.C
11.C(解析;p-坚持CSMA协议是1-坚持CSMA协议和非坚持CSMA协议的折中。p-坚持CSMA在检测到信道空闲后,以概率p发送数据,以概率1-p推迟到下一个时隙,目的是降低1-坚持CSMA中多个结点检测到信道空闲后同时发送数据的冲突概率;采用坚持“侦听”的目的,是试图克服非坚持CSMA中由于随机等待造成延迟时间较长的缺点。)
12.A(解析:若让一个冲突域内两个站点之间的单向传播延时最大,应将这两个站点设置在冲突域的两端,使它们之间的距离最大。以太网规定最小帧长应满足帧的发送时延等于最远两个站点间信号的往返传播时延。题目给定最小帧长为256B,则帧的发送时延TD(最远两个站点间信号的往返传播时延)可计算如下:
T D = 256 × 8 b 1000 M b / s = 2.048 μ s T_D=\frac{256 \times 8b}{1000Mb/s}=2.048 \mu s TD=1000Mb/s256×8b=2.048μs
在一个冲突域内两个站点之间的单向传播时延最多为:
T D 2 = 2.048 μ 2 = 1.024 μ s \frac{T_D}{2}=\frac{2.048\mu}{2}=1.024 \mu s 2TD=22.048μ=1.024μs
13.C(解析:非坚持CSMA站点在发送数据前先监听信道,若信道忙则放弃监听,则等待一个随机时间后再监听,若信道空闲则发送数据。)
14.C(解析:以太网的最短帧长确保了站点可在帧发送完成之前就检测到该帧在发送过程中是否遭遇了碰撞。最短帧长=数据传输速率×争用期=数据传输速率×(总线传播时延x 2)
当数据传输速率提高时,为了有效检测到碰撞,可采取的方法是:①减少争用期(即减少总线传播时延),以维持最短帧长不变。而减少总线传播时延,需要减少总线长度。②若不改变总线长度,则需要增加最短帧长。)
15.B(解析:短帧间间隔SIFS用来分隔开属于一次对话的各帧,DCF帧间间隔DIFS比SIFS要长很多。在DCF方式中,DIFS用来发送数据帧和管理帧。)
16.A(解析:DIFS帧间隔较长)
17.C(解析:在这里插入图片描述
18.C(解析:中继器和集线器均工作在物理层,集线器本质上是一个多端口中继器,它们都能对信号进行放大和整形。因为中继器不仅传送有用信号,而且也传送噪音和冲突信号,因而互相串联的个数只能在规定的范围内进行,否则网络将不可用。注意“5-4-3规”。)
19.C(解析:A选项会引起的重复帧不会大量存在)
20.C
21.A(解析:虚拟局域网VLAN只是在局域网上实现的一种分割广播域的技术,但VLAN本身并不是一种新物理拓扑的局域网。)
22.ABCD
23.B(解析:在这里插入图片描述
24.D(解析:设C为数据传输率,L为帧长,R为单程传播时延。停止-等待协议的信道最大利用率为(L/C)/(L/C+ 2R)= L/(L + 2RC) = L/(L + 2x30msx4kb/s)= 80%,得出L = 960bit。)


OK,以上就是本期知识点“数据链路层”的知识啦~~ ,感谢友友们的阅读。后续还会继续更新,欢迎持续关注哟📌~
💫如果有错误❌,欢迎批评指正呀👀~让我们一起相互进步🚀
🎉如果觉得收获满满,可以点点赞👍支持一下哟~

❗ 转载请注明出处
作者:HinsCoder
博客链接:🔎 作者博客主页

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/537682.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

Jenkins持续集成之jenkins安装入门教学

Jenkins安装 1、下载jenkins;官方地址:https://www.jenkins.io/ 2、点击Download 3、下载windows版本的安装包后缀为msi; 4、双击安装;如下图 5、安装到指定的盘;再点击next 6、勾选第一个框;再点击next 7…

《Netty》从零开始学netty源码(五十八)之NioEventLoop.execute()

目录 NioEventLoop.execute()addTask()startThread()NioEventLoop.run()select()处理keys与执行任务processSelectedKeys()处理AbstractNioChannelselectAgain() runAllTasks()fetchFromScheduledTaskQueue()runAllTasksFrom()afterRunningAllTasks() 带截止时间的runAllTasks(…

国考省考行测:图形推理题1,2平移,旋转,翻转

国考省考行测:图形推理题1,2平移,旋转,翻转 2022找工作是学历、能力和运气的超强结合体! 公务员特招重点就是专业技能,附带行测和申论,而常规国考省考最重要的还是申论和行测,所以大家认真准备吧&#xff…

[数据结构 -- C语言] 栈(Stack)

目录 1、栈 1.1 栈的概念及结构 2、栈的实现 2.1 接口 3、接口的实现 3.1 初始化 3.2 入栈/压栈 3.3 出栈 3.4 获取栈顶元素 3.5 获取栈中有效元素个数 3.6.1 bool 类型接口 3.6.2 int 类型接口 3.7 销毁栈 4、完整代码 5、功能测试 1、栈 1.1 栈的概念及结构 …

软件测试工程师简历要怎么写,才能让HR看到

作为软件测试的从业者,面试或者被面试都是常有的事。 可是不管怎样,和简历有着理不清的关系,面试官要通过简历了解面试者的基本信息、过往经历等。】、 如果你不知道软件测试简历怎么写,可以看看这个视频是怎么写的,…

ARM-底层/Day2

.text .global _start _start:mov r0,#9mov r1,#15bl cmp_funccmp_func:cmp r0,r1beq stop 相等则跳转结束 subhi r0,r0,r1subcc r1,r1,r0mov pc,lr 不相等则返回执行 stop: b stop .end 循环实现1~100之间的和 .text .global _start _start:mov r0,#0mov r1,#1bl sum_fun…

CCF-CSP 202104-1 灰度直方图

简单的一题&#xff0c;理解题意&#xff0c;使用哈希数组即可 #include<iostream>using namespace std;int L,n,m; int mapp[505][505]; int arr[300];int main(){cin>>n>>m>>L;for(int i0;i<n;i){for(int j0;j<m;j){cin>>mapp[i][j];arr…

C++之STL

一、六大组件&#xff1a; 容器&#xff1a; 各种数据结构&#xff0c;如vector、list、deque、set、map等,用来存放数据&#xff0c;从实现角度来看&#xff0c;STL容器是一种class template。 算法&#xff1a; 各种常用的算法&#xff0c;如sort、find、copy、for_each。…

你也可以成为营销策划大咖,只需掌握这些技巧

本人是从业营销策划行业近10年的老广告人&#xff0c;我说的话你可以选择相信。 千万不要看轻了广告策划这个职业的技术含量&#xff0c;不是说你语言文字能力比较好就一定能够适合这个行业。 想要进入这个行业的大公司&#xff0c;你如果是刚毕业的新人的话&#xff0c;首先…

Linux的使用

强制停止 ctrlc 停止程序的运行退出当前命令的输入 退出或登出 ctrld 退出账户的登录退出某些特定程序的专属页面不能用于退出vi/vim 历史命令搜索 查看历史输入过的命令 history可通过! 命令前缀&#xff0c;自动执行上一次匹配前缀的命令&#xff08;用于最近的2~3/4~5个…

SpringBoot中如何处理MySQL中存储的JSON数据?

目录 一、MySQL中如何保存JSON类型的数据 1.1 建表 1.2 保存一条带json的记录 1.3 查询 二、Springboot操作当前数据库表 2.1 方式一&#xff08;推荐&#xff09; 2.2 方式二 JSON&#xff08;JavaScript Object Notation&#xff09;是一种轻量级的数据交换格式 。简洁…

Nginx安装及其常用命令(实操版)

Nginx安装及其常用命令&#xff08;实操版&#xff09; 一、安装Nginx1、准备工作2、开始进行 nginx 安装 二、Nginx常用命令三、nginx.conf配置文件1、位置2、配置文件中的内容&#xff08;包含三部分&#xff09; 四、Nginx 反向代理实例 21、实现效果2、准备工作 五、Nginx …

从萌芽到巨人: 揭秘Rod Johnson与Spring框架的故事

前言 在这个充满创意和技术追求的世界中&#xff0c;有一个名为 Spring 的框架&#xff0c;它孕育了无数创新和成功的故事。这是一个关于持续进化和超越自我的故事&#xff0c;一个激励人心的旅程&#xff0c;由一位富有远见的程序员和他的团队引领着。从最初的概念到如今的成熟…

【Vue3+TS项目】硅谷甄选day02--后台管理系统模板搭建/项目配置

1 项目初始化 一个项目要有统一的规范&#xff0c;需要使用eslintstylelintprettier来对我们的代码质量做检测和修复&#xff0c;需要使用husky来做commit拦截&#xff0c;需要使用commitlint来统一提交规范&#xff0c;需要使用preinstall来统一包管理工具。 1.1 环境准备 n…

存储系统及主存储器

存储器概述 分类 存储器的分类如下&#xff1a; 主存的分类&#xff1a; 主存分为随机存储器&#xff08;RAM&#xff09;和静态存储器&#xff08;RAM&#xff09;&#xff0c;随机存储器又分为静态RAM和动态RAM 存储器的层次结构 金字塔结构 主存-辅存及主存-缓存结构 …

CentOS安装MySQL5.7/8.0

CentOS安装MySQL 0. 官方教程1. 添加MySQL Yum存储库1.1 官网下载yum存储库1.2 本地安装存储库 2. 安装MySQL数据库2.1 安装MySQL5.72.2 安装MySQL8.0 3. 开启并设置MySQL服务自启动4. 修改数据库root用户密码5. 设置root用户远程连接数据库【可选】 0. 官方教程 官网教程链接…

用xshell把本地的文件夹传入服务器中,在两个服务器之间互传文件夹

两个服务器之间互传文件 假设有两个服务器A和B&#xff0c;现在你需要把A里面的东西传入B里面。 进入B服务器&#xff0c;如你想把A服务器中/root/one/unet放在B服务器中root/ww下&#xff0c;输入以下命令 scp -r -P YYY rootXX.XX.XXX.XX:/root/one/unet root/ww其中YY是你…

深度异常检测入门

异常检测定义 Anomaly detection。异常检测是对与标准行为或模式显著不同的罕见事件、项目或可疑观察的识别。异常也被称为异常值、噪声、偏差等。 对于异常的理解&#xff1a; 异常不一定是无用的&#xff0c;部分异常对数据挖掘领域有较大的价值不同的场景下&#xff0c;异…

CHATGPT的前世今生

ChatGPT是一款基于GPT&#xff08;Generative Pre-trained Transformer&#xff09;模型的聊天机器人&#xff0c;它的前世今生充满着令人惊叹的故事。在这篇文章中&#xff0c;我们将深入探讨ChatGPT的诞生、发展和未来。 一、ChatGPT的起源 ChatGPT是由OpenAI团队开发的一款…

夏驰和徐策的解决数学问题思路之——数学归纳法

前言&#xff1a; 今天在复习概率论1.2.3 事件的概率及其性质中证明性质2有限可加性中运用到了数学归纳法&#xff0c;我对数学归纳法早有听闻&#xff0c;但是一直不知道怎么用这个方法&#xff0c;其实数学归纳法早在高中我们就已经接触到了在人教版教材选修2中就有这个方法…