计算机网络 第三章

590次阅读
没有评论

共计 14862 个字符,预计需要花费 38 分钟才能阅读完成。

三、数据链路层

3.1 数据链路层概述

1. 概述

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

2. 数据链路层的三个问题(使用点对点信道的数据链路层)

封装成帧

计算机网络 第三章

差错检测

计算机网络 第三章

接收方主机根据帧尾中的检错码,检测帧中是否有误码

可靠传输

尽管误码不能完全避免,但若能实现发送方发送什么,接收方就能收到什么,就称为可靠传输

3. 使用广播信道的数据链路层

编址问题

如何确保发送方与接收方

计算机网络 第三章

碰撞问题

计算机网络 第三章
计算机网络 第三章
计算机网络 第三章

4. 总结

计算机网络 第三章

3.2 封装成帧

1. 封装成帧

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

  • 帧头和帧尾中包含有重要的控制信息
  • 帧头和帧尾的作用之一就是 帧定界并不是每一种数据链路层协议的帧都包含有帧定界标志,例:
计算机网络 第三章

2. 透明传输

透明传输是指 数据链路层对上层交付的传输数据没有任何限制,就好像数据链路层不存在一样

  • 面向字节的物理链路使用字节填充(或称字符填充)的方法实现透明传输若数据中出现帧定界标志会出现歧义导致传输不正确故在发送帧之前,对数据部分进行扫描,每出现一个帧定界符或转义字符,则在前面加入一个转义字符
  • 面向比特的物理链路使用比特填充的方法实现透明传输在连续的 5 个 1 中插入一个比特 0,以此确保帧定界的唯一性

习题

计算机网络 第三章
查看答案

计算机网络 第三章

3. 额外

为了提高帧的传输速率,应当使 帧的数据部分的长度尽可能大些

考虑到差错控制等多种因素,每一种数据链路层协议都规定了帧的数据部分的长度上限,即 最大传送单元 MTU(Maximum Transfer Unit)

计算机网络 第三章

4. 总结

计算机网络 第三章

3.3 差错检测

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

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

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

计算机网络 第三章

1. 奇偶校验

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

如果有 奇数个位发生误码,则奇偶性发生变化,可以检查出误码

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

计算机网络 第三章

2. 循环冗余校验 CRC(Cyclic Redundancy Check)

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

发送方基于待发送的数据和生成多项式计算出差错检测码(冗余码),将其添加到待传输数据的后面一起传输

接收方通过生成多项式来计算收到的数据是否产生了误码

计算机网络 第三章

举例

计算机网络 第三章
计算机网络 第三章
计算机网络 第三章

3. 总结

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

3.4.1 可靠传输的基本概念

使用 差错检测技术,接收方的数据链路层就可检测出帧在传输过程中是否产生了 误码(比特错误)

数据链路层向上层提供的服务类型

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

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

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

比特差错 只是传输差错中的一种

从整个计算机网络体系结构来看,传输差错还包括 分组丢失、分组失序 以及 分组重复

分组丢失、分组失序以及分组重复这些传输差错,一般不会出现在数据链路层,而会出现在其上层

可靠传输服务并不仅局限于数据链路层,其他各层均可选择实现可靠传输

计算机网络 第三章

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

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

1. 停止-等待协议的实现

计算机网络 第三章

接收方收不到数据分组,就不会发送 ACK(确认分组)或 NAK(否认分组)。如果不采取其他措施,发送方就会一直处于等待接收方 ACK 或 NAK 的状态。

为解决该问题,可以在发送方发送完一个数据分组时,启动一个 超时计时器。若到了超时计时器所设置的 重传时间,而发送方仍收不到接收方的任何 ACK 或 NAK,则重传原来的数据分组,这就是 超时重传。

一般可将重传时间选为略大于 “从发送方到接收方的平均往返时间”。

计算机网络 第三章

为 避免分组重复 这种传输错误,必须给 每个分组带上序号。

对于停止 – 等待协议,由于每发送一个数据分组就停止等待,只要保证每发送一个新的数据分组,其发送序号与上次发送的数据分组序号不同即可,因此用 一个比特来编号就够了。

2. 停止-等待协议的信道利用率

计算机网络 第三章
  • 当往返时延 RTT 远大于数据帧发送时延 TD 时(例如卫星链路),信道利用率非常低
  • 若出现重传,则对于传送有用的数据信息来说,信道利用率还要降低
  • 为了克服停止-等待协议信道利用率很低的缺点,就产生了另外两种协议,即后退 N 帧协议 GBN 和选择重传协议 SR

3. 习题

计算机网络 第三章
查看答案

答案:D

计算机网络 第三章

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

  1. 采用 3 个比特给分组编序号,即序号 0~7
  2. 发送窗口的尺寸 WT 的取值:1 < W ≤ 23 – 1,本例取 WT = 5
  3. 接收窗口的尺寸 WR 的取值:WR = 1

示意图

计算机网络 第三章

1. 无差错情况

计算机网络 第三章

发送方将序号落在发送窗口内的 0~4 号数据分组依次连续发送出去,没有乱序和误码,接收方按序接收,每接收一个,接收窗口就向前滑动一个位置,并给发送方发送针对所接收分组的确认分组。

0~4 号确认分组正确到达了发送方,发送方每接收一个,发送窗口就向前滑动一个位置,这样就有新的序号落入了发送窗口,发送方可以将收到确认的数据分组从缓存中删除,接收方则可以将已接收的数据分组交付上层处理。

2. 累计确认

计算机网络 第三章

发送方将序号落在发送窗口内的 0~4 号数据分组依次连续发送出去,接收方按需接收它们,当接收完 0 号和 1 号数据分组后,给发送方发送了一个累计确认 ACK1。当接收完 2~4 号数据分组后,又给发送方发送了一个 累计确认 ACK4。

假设 ACK1 在传输过程中丢失了,而 ACK4 正确到达了发送方,发送方接收 ACK4 后就知道了,序号为 4 及之前的数据分组已被接收方正确接收了。于是将发送窗口向前滑动 5 个位置,这样就有新的序号落入了发送窗口。即使确认分组丢失,发送方也可能不必重传。

发送方可以将收到确认的数据分组从缓存中删除了。而接收方可以将已接收的数据分组交付上层处理。

接收方 不一定 要对收到的数据分组 逐个发送确认,而是可以在收到几个数据分组后(由具体实现决定),对按序到达的最后一个数据分组发送确认,ACKn 表示序号为 n 及以前的所有数据分组都已正确接收。

缺点:不能向发送方及时反映出接收方已经正确接收的数据分组信息。

3. 有差错情况

计算机网络 第三章

发送方将序号落在发送窗口内的这 5 个数据分组依次连续发送出去。假设他们在传输过程中受到了 干扰,其中 5 号数据分组出现了 误码,接收方通过数据分组中的检错码发现了错误,于是 丢弃 该数据分组,而后续到达的 4 个数据分组的序号与接收窗口中的 序号不匹配。接收方同样 不能接收,将他们丢弃并对之前按序接收的最后一个数据分组进行确认,也就是发送 ACK4,。

每丢弃一个分组,就发送一个 ACK4。发送方之前就接收过 ACK4,当收到这些重复的 ACK4 时,就知道了之前所发送的数据分组出现了差错,于是可以不等超时计时器超时就立刻开始重传(收到几个重复确认就立刻重传,由具体实现决定)。

假设收到这 4 个重复的确认并不会触发发送方立刻重传。一段时间后,超时计时器出现超时,发送方将发送窗口内已发送过的数据分组 全部重传(本例中,尽管 6,7,0,1 的数据分组正确的到达接收方,但由于 5 号数据分组误码不被接受,他们也受到牵连而不被接受,发送方还要重传这些数据分组,这就是所谓 Go-back-N(回退 N 帧)

可见,当通信线路质量不好时,回退 N 帧协议 的信道利用率并不必比 停止-等待协议 高。

4. 若 WT 超过取值范围,例如 WT = 8,会出现什么情况

发送方将序号落在发送窗口内的 0~7 号这 8 个数据分组依次连续发送出去,接收方按序接收后,发回累计确认 ACK7。假设 ACK7 在传输过程中丢失,这将导致发送方超时重传,重传的 0~7 号数据分组到达接收方。

计算机网络 第三章

接收方根据当前接收窗口内的序号,会对这八个数据分组按序接收,但是接收方之前已经接受过这 8 个数据分组了,现在是重复接收,也就是接收方无法分辨新、旧分组,进而产生分组重复这种传输差错。因此,发送窗口的尺寸不能超过其上限。

5. 小结

计算机网络 第三章

6. 习题

题一

计算机网络 第三章
查看答案

答案: C

计算机网络 第三章

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

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

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

  1. 采用 3 个比特给分组编序号,即序号 0~7
  2. 发送窗口的尺寸 WT 的取值:1 < WT ≤ 23-1,本例取 WT = 4
  3. 接收窗口的尺寸 WR 的取值:WR = WT = 4
计算机网络 第三章

1. 示例

计算机网络 第三章

发送方将序号落在发送窗口内的 4 个数据分组依次连续发送出去。他们陆续到达接收方,但其中 2 号数据分组 丢失 了。只要序号落入接收窗口内且无误码的数据分组,接收方都会接收。

接收方接收 0 号和 1 号数据分组,并发送 0 号和 1 号数据分组,而后挪动接收窗口,接收方接收 3 号数据分组,并发送 3 号确认分组,但接收窗口 不能向前滑动,因为 3 号数据分组是未按序到达的数据分组。

这些确认分组按序到达发送方,发送方每按序收到一个确认分组,发送窗口就向前滑动一个位置。

计算机网络 第三章

发送方将序号落入发送窗口的 4 号和 5 号数据分组发送出去。发送方现在可以将以及确认的 0 号和 1 号数据分组从发送缓存中删除了。而接收方可将已按序接收的数据分组交付上层处理。

发送方接收 3 号确认分组,但发送窗口 不能向前滑动,因为这是一个未按序到达的确认分组,发送方还未收到它之前的 2 号确认分组。但 需要记录 3 号数据分组已 收到确认,这样该数据分组就不会超时重发。

4 号和 5 号数据分组到达接收方。接收方接收并发送 4 号和 5 号确认分组,但接收窗口 不能向前滑动,因为它们是未按序到达的数据分组,接收方还未收到它们之前的 2 号数据分组。

计算机网络 第三章

假设在 4 号和 5 号确认分组的传输过程中,发送方针对 2 号数据分组的重传计时器 超时 了,发送方重传 2 号数据分组。4号和 5 号数据分组陆续到达发送方,发送方接收它们,但发送窗口 不能向前滑动,因为它们是未按序到达的确认分组,发送方还未收到它们之前的 2 号确认分组。但 需要记录 4 号和 5 号数据分组已 收到确认,这样它们就不会超时重发。

计算机网络 第三章

发送方之前重传的 2 号数据分组到达接收方。接收方接收并发送 2 号确认分组,接收窗口现在可以向前滑动 4 个位置,2 号确认分组到达发送方,发送窗口现在可以向前滑动 4 个位置,发送方现在就可以发送新的数据分组了。

2. 选择重传协议的窗口尺寸问题

发送方的发送窗口尺寸 WT 必须满足:1 < WT ≤ 2(n-1),其中 n 是构成分组序号的比特数量

  • 若 WT = 1:与停止-等待协议相同
  • 若 WT > 2(n-1):造成接收方无法分辨新、旧数据分组的问题

接收方的接收窗口尺寸 WR 必须满足:1 < WR ≤ WT

  • 若 WR = 1:与回退 N 帧协议相同
  • 若 WR > WT:无意义

假设故意将发送窗口尺寸 WT 设置为 5,相应的接收窗口尺寸 WR 也设置为 5,会出现什么情况

计算机网络 第三章

发送方将落入发送窗口内的 0~4 号数据分组依次发送出去。接收方接收它们,并发送 0~4 号确认分组,接收窗口向前滑动 5 个位置。确认分组陆续到达发送方,但 0 号确认分组丢失了。发送方接收 1~4 号确认分组,并记录 1~4 号确认分组已收到确认,发送窗口不能向前移动。

一段时间后,0 号数据分组的重传计时器超时了,发送方重传 0 号数据分组。该数据分组到达接收方,其序号 0 落在接收窗口内,接收方会接收它,但是,接收方之前已经正确接受过该数据分组了,如果现在还接收,就会出现分组重复这种传输差错。

也就是说,如果发送窗口和接收窗口的尺寸超过了取值范围,就会使接收方无法分辨新、旧数据分组,进而出现分组重复这种传输差错。

3. 小结

计算机网络 第三章

4. 习题

计算机网络 第三章
查看答案

答案:B

计算机网络 第三章

3.5 点对点协议 PPP

点对点协议 PPP(Point-to-Point Protocol)是目前使用最广泛的点对点数据链路层协议。

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

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

1. 点对点协议的帧格式

计算机网络 第三章

2. 透明传输

计算机网络 第三章

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

计算机网络 第三章

发送方的处理:

  • 出现的每一个 7E(PPP 帧的定界符)字节转变成 2 字节序列 (7D,5E)
  • 出现的每一个 7D(转义字符)字节转变成 2 字节序列 (7D,5D)
  • 出现的每一个 ASCII 码控制字符(数值小于0×20的字符),则在该字符前面插入一个 7D 字节,同时将该字符的编码 加上0×20

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

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

计算机网络 第三章

发送方的处理:

对帧的数据部分进行扫描(一般由硬件实现)。只要发现 5 个连续的比特 1,则立即 填充 1 个比特 0。

接收方的处理:

对帧的数据部分进行扫描(一般由硬件实现)。只要发现 5 个连续的比特 1,就 把其后的 1 个 比特 0 删除。

3. 差错检测

计算机网络 第三章

接收方每收到一个 PPP 帧,就进行 CRC 检验。若 CRC 检验正确,就收下这个帧;反之,就丢弃这个帧。使用 PPP 的数据链路层 向上不提供可靠传输服务。

4. 工作状态

计算机网络 第三章

3.6.1 媒体接入控制的基本概念

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

计算机网络 第三章

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

3.6.2 媒体接入控制 — 静态划分信道

1. 信道复用

复用是通信技术中的一个重要概念。复用就是通过一条物理线路同时传输多路用户的信号。

当网络中传输媒体的传输容量大于多条单一信道传输的总通信量时,可利用复用技术在一条物理线路上建立多条通信信道来充分利用传输媒体的带宽。

计算机网络 第三章

频分复用 FDM

计算机网络 第三章

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

时分复用 TDM

计算机网络 第三章

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

波分复用 WDM

计算机网络 第三章

码分复用 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 设备的价格和体积都大幅度下降,因而现在已广泛用于民用的移动通信中

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

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

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

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

  1. 分配给每个站的 码片序列必须各不相同,实际常采用伪随机码序列
  2. 分配给每个站的 码片序列必须相互正交(规格化内积为 0)
计算机网络 第三章

习题

计算机网络 第三章
查看答案

解析:用收到的码片序列分别与各站的码片序列进行求内积运算。若计算结果为数值 1,则被判断的站发送了比特 1;若计算结果为数值 -1,则被判断的站发送了比特 0;若计算结果为数值 0,则被判断的站未发送数据。。

判断A站:

判断B站:

判断C站:

判断D站::

计算机网络 第三章

3.6.3 随机接入 — CSMA/CD协议

1. 载波监听多址接入/碰撞检测

计算机网络 第三章
计算机网络 第三章

2. 争用期(碰撞窗口)

计算机网络 第三章

主机最多经过 2τ(即 δ → 0)的时长就可检测到本次发送是否遭受了碰撞

因此,以太网的端到端往返传播时延 2τ 称为 争用期 或 碰撞窗口

经过争用期这段时间还没有检测到碰撞,才能肯定这次发送不会发生碰撞

每一个主机在自己发送帧之后的一小段时间内,存在着遭遇碰撞的可能性。这一小段时间是不确定的。它取决于另一个发送帧的主机到本主机的距离,但不会超过总线的端到端往返传播时延,即一个争用期时间。

显然,在以太网中发送帧的主机越多,端到端往返传播时延越大,发生碰撞的概率就越大。因此,共享式以太网不能连接太多的主机,使用的总线也不能太长。

  • 10Mb/s 以太网把争用期定为 512 比特发送时间,即 51.2μs,因此其总线长度不能超过 5120m,但考虑到其他一些因素,如信号衰减等,以太网规定总线长度不能超过 2500m。

3. 最小帧长

计算机网络 第三章

以太网规定最小帧长为 64 字节,即 512 比特(512 比特时间即为争用期)

  • 如果要发送的数据非常少,那么必须加入一些填充字节,使帧长不小于 64 字节

以太网的 最小帧长确保了主机可在帧发送完成之前就检测到该帧的发送过程中是否遭遇了碰撞

  • 如果在争用期(共发送 64 字节)没有检测到碰撞,那么后续发送的数据就一定不会发生碰撞
  • 如果在争用期内检测到碰撞,就立即中止发送,这时已经发送出去的数据一定小于 64 字节,因此 凡长度小于 64 字节的帧都是由于碰撞而异常中止的无效帧

4. 最大帧长

计算机网络 第三章
计算机网络 第三章

5. 截断二进制指数退避算法

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

6. 信道利用率

计算机网络 第三章

考虑以下这种理想情况:

  • 各主机发送帧都不会产生碰撞
  • 总线一旦空闲就有某个主机立即发送帧
  • 发送一帧占用总线的时间为 T0 + τ,而帧本身的发送时间是 T0
计算机网络 第三章

7. 帧发送流程

计算机网络 第三章

8. 帧接收流程

计算机网络 第三章

9. 习题

题一

计算机网络 第三章
查看答案

答案:B

计算机网络 第三章

题二

计算机网络 第三章
查看答案

答案:D

计算机网络 第三章

题三

计算机网络 第三章
查看答案

计算机网络 第三章
计算机网络 第三章

3.6.4 随机接入 — CSMA/CA协议

1. 载波监听多址接入/碰撞避免

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

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

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

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

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

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

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

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

1. 帧间间隔 IFS(InterFrame Space)

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

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

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

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

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

2. CSMA/CA 协议的工作原理

计算机网络 第三章
  1. 源站为什么在检测到信道空闲后还要再等待一段时间 DIFS?

就是考虑到可能有其他的站有高优先级的帧要发送。若有,就要让高优先级帧先发送。

  1. 目的站为什么正确接收数据帧后还要等待一段时间 SIFS 才能发送 ACK 帧?

SIFS 是最短的帧间间隔,用来分隔开属于一次对话的各帧。在这段时间内,一个站点应当能够从发送方式切换到接收方式。

  1. 为什么信道由忙转为空闲且经过 DIFS 时间后,还要退避一段随机时间才能使用信道?

防止多个站点同时发送数据而产生碰撞。

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

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

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

3. CSMA/CA 协议的退避算法

在执行退避算法时,站点为退避计时器设置一个随机的退避时间

  • 当退避计时器的时间减小到零时,就开始发送数据
  • 当退避计时器的时间还未减小到零时而信道又转变为忙状态,这时就冻结退避计时器的数值,重新等待信道变为空闲,再经过时间 DIFS 后,继续启动退避计时器。

在进行第 i 次退避时,退避时间再时隙编号(0,1,…,22+i – 1)中随机选择一个,然后乘以基本退避时间(也就是一个时隙的长度)就可以得到随机的退避时间。这样做是为了使不同站点选择相同退避时间的概率减少。当时隙编号达到 255 时(对应于第 6 次退避)就不再增加了。

计算机网络 第三章

4. CSMA/CA 协议的信道预约和虚拟载波监听

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

  1. 源站在发送数据帧之前先发送一个短的控制帧,称为 请求发送 RTS(Request To Send),它包括源地址、目的地址以及这次通信(包括相应的确认帧)所需的持续时间
  2. 若目的站正确收到源站发送的 RTS 帧,且媒体空闲,就发送一个响应控制帧,称为 允许发送 CTS(Clear To Send),他也包括这次通信所需的持续时间(从 RTS 帧中将此持续时间复制到 CTS 帧中)
  3. 源站收到 CTS 帧后,再等待一段时间 SIFS 后,就可发送其数据帧
  4. 若目的站正确收到了源站发来的数据帧,在等待时间 SIFS 后,就向源站发送确认帧 ACK。
计算机网络 第三章

除源站和目的站以外的 其他各站,在 收到 CTS 帧(或数据帧)后就推迟接入到无线局域网中。这样就保证了源站和目的站之间的通信不会收到其他站的干扰。

如果 RTS 帧发生碰撞,源站就收不到 CTS 帧,需执行退避算法重传 RTS 帧。

由于 RTS 帧和 CTS 帧很短,发送碰撞的概率、碰撞产生的开销及本身的开销都很小。而对于一般的数据帧,其发送时延往往大于传播时延(因为是局域网),碰撞的概率很大,且一旦发生碰撞而导致数据帧重发,则浪费的时间就很多,因此 用很小的代价对信道进行预约往往是值得的。802.11 标准规定了 3 种情况供用户选择:

  • 使用 RTS 帧和 CTS 帧
  • 不适用 RTS 帧和 CTS 帧
  • 只有当数据帧的长度超过某一数值时才使用 RTS 帧和 CTS 帧

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

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

计算机网络 第三章
计算机网络 第三章

5. 习题

题一

计算机网络 第三章
查看答案

答案:D

计算机网络 第三章

题二

计算机网络 第三章
查看答案

答案:B

计算机网络 第三章

题三

计算机网络 第三章
查看答案

答案:D

计算机网络 第三章

3.7 MAC 地址、IP 地址以及 ARP 协议

  • MAC 地址是以太网的 MAC 子层所使用的地址 (数据链路层)
  • IP 地址是 TCP / IP 体系结构网际层所使用的地址 (网际层)
  • ARP 协议属于 TCP / IP 体系结构的网际层,其作用是已知设备所分配到的 IP 地址,使用 ARP 协议可以通过该 IP 地址获取到设备的 MAC 地址(网际层)

1. MAC 地址(数据链路层)

概述

当多个主机连接在同一个广播信道上,要想实现两个主机之间的通信,则每个主机都必须有一个唯一的标识,即一个数据链路层地址

计算机网络 第三章

在每个主机发送的 帧中必须携带标识发送主机和接收主机的地址。由于这类地址是用于媒体接入控制 MAC(Media Access Control),因此这类地址被称为 MAC 地址

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

答案:C

IEEE 802 局域网的 MAC 地址格式

计算机网络 第三章
计算机网络 第三章

IEEE 802 局域网的 MAC 地址发送顺序

字节发送顺序:第一字节 → 第六字节

字节内的比特发送顺序:b0 → b7

单播 MAC 地址 举例

计算机网络 第三章

广播 MAC 地址 举例

计算机网络 第三章

多播 MAC 地址 举例

计算机网络 第三章

如何快速判断 MAC 地址是否是多播地址:

07-E0-12-F6-2A-D8 若此位十六进制数不能整除 2(1,3,5,7,9,B,D,F),即为多播地址

2. IP 地址(网络层)

概述

IP 地址是因特网上的主机和路由器所使用的地址,用于标识两部分信息

  • 网络编号:标识因特网上数以百万计的网络
  • 主机编号:标识同一网络上不同主机(或路由器各接口)

显然之前介绍的 MAC 地址不具备区分不同网络的功能

  • 如果只是一个单独的网络,不接入因特网,可以只使用 MAC 地址(不是一般用户的应用方式)
  • 如果主机所在的网络要接入因特网,则 IP 地址和 MAC 地址都需要使用

从网络体系结构看 IP 地址与 MAC 地址

计算机网络 第三章

数据包转发过程中 IP 地址与 MAC 地址的变化情况

计算机网络 第三章

数据包转发过程中 源 IP 地址和目的 IP 地址保持不变

数据包转发过程中 源 MAC 地址和目的 MAC 地址逐个链路(或逐个网络)改变

计算机网络 第三章
查看答案

计算机网络 第三章

3. 地址解析协议 ARP

计算机网络 第三章

当主机 B 要给主机 C 发送数据包时,会首先在自己的 ARP 高速缓存表中查找主机 C 的 IP 地址所对应的 MAC 地址

计算机网络 第三章

但未找到,因此主机 B 需要发送 ARP 请求报文来获取主机 C 的 MAC 地址

计算机网络 第三章

发送 ARP 响应报文

计算机网络 第三章

上层的 ARP 进程解析 ARP 响应报文,将其所包含的主机 C 的 IP 地址与 MAC 地址记录到自己的 ARP 高速缓存表中

计算机网络 第三章
计算机网络 第三章

主机 B 现在可以给主机 C 发送数据包了。

计算机网络 第三章

ARP 协议只能在一段链路或一个网络上使用,不能跨网络使用

3.8 集线器与交换机的区别

1. 早期的总线型以太网

计算机网络 第三章

2. 使用双绞线和集线器 HUB 的星型以太网

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

3. 使用集线器 HUB 在物理层扩展以太网

计算机网络 第三章

4. 以太网交换机

计算机网络 第三章
  1. 忽略 ARP 过程
  2. 假设交换机的帧交换表已经 “学习好了”
  • 以太网交换机通常都有 多个接口,每个接口都可以直接与一台主机或另一个以太网交换机相连。一般都工作在 全双工方式。
  • 以太网交换机具有并行性,能 同时连通多对接口,使多对主机能同时通信,无碰撞(不使用 CSMA / CD 协议)
  • 以太网交换机一般都具有多种速率的接口,例如:10 MB/s、100 MB/s、1 Gb/s、10 Gb/s 接口的多种组合
  • 以太网交换机 工作在数据链路层(也包括物理层),它收到帧后,在帧交换表中查找 帧的目的 MAC 地址所对应的接口号,然后通过该接口转发帧
  • 以太网交换机是一种即插即用的设备,其内部的 帧交换表 是通过 自学习算法 自动的逐渐建立起来的
  • 帧的两种转发方式:
    1. 存储转发
    2. 直通交换:采用基于硬件的交叉矩阵(交换时延非常小,但不检查帧是否有差错)

5. 对比集线器和交换机

计算机网络 第三章

集线器 HUB

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

交换机 SWITCH

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

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

1. 概述

以太网交换机工作在 数据链路层(也包括物理层)

以太网交换机收到帧后,在帧交换表中查找 帧的目的 MAC 地址所对应的接口号,然后通过该接口转发帧

以太网交换机时一种即插即用设备,刚上电启动时其内部的帧交换表是空的。随着网络中各主机间的通信,以太网交换机 通过自学习算法 自动逐渐 建立起帧交换表

计算机网络 第三章
计算机网络 第三章
计算机网络 第三章

丢弃情况

计算机网络 第三章

注:每条记录都有自己的有效时间,到期自动删除,原因是 MAC 地址与交换机接口的对应关系并不是永久性的

2. 习题

题一

计算机网络 第三章
查看答案

计算机网络 第三章

题二

计算机网络 第三章
查看答案

答案:A

计算机网络 第三章

​

题三

计算机网络 第三章
查看答案

答案:B

计算机网络 第三章

​

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

1. 如何提高以太网的可靠性

添加 冗余链路 可以提高以太网的可靠性

计算机网络 第三章

但是,冗余链路也会带来负面效应 — 形成 网络环路

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

  • 广播风暴大量消耗网络资源,使得网络无法正常转发其他数据帧
  • 主机收到重复的广播帧大量消耗主机资源
  • 交换机的帧交换表震荡(漂移)

2. 生成树协议 STP

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

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

3.11 虚拟局域网 VLAN

1. 概述

以太网交换机工作在 数据链路层(也包括物理层)

使用一个或多个以太网交换机互连起来的交换式以太网,其所有站点都属于 同一个广播域

随着交换式以太网规模的扩大,广播域相应扩大

巨大的广播域会带来很多 弊端

  • 广播风暴
  • 难以管理和维护
  • 潜在的安全问题

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

TCP / IP 协议栈中的很多协议都会使用广播:

  • 地址解析协议 ARP(已知 IP 地址,找出其相应的 MAC 地址)
  • 路由信息协议 RIP(一种小型的内部路由协议)
  • 动态主机配置协议 DHCP(用于自动配置 IP 地址)

NetBEUI:Windows 下使用的广播型协议

IPX / SPX:Novell 网络的协议栈

Apple Talk:Apple 公司的网络协议栈

分割广播域的方法

  • 使用路由器可以隔离广播域但路由器的成本较高
计算机网络 第三章
  • 虚拟局域网 VLAN 技术由此而生

虚拟局域网 VLAN(Virtual Local Area Network)是一种将局域网内的 设备划分成与物理位置无关的逻辑组的技术,这些逻辑组具有某些共同的需求

计算机网络 第三章

同一个 VLAN 内部可以广播通信,不同 VLAN 之间不能广播通信

2. 实现机制

IEEE 802.1Q 帧

IEEE 802.1Q 帧(也称 Dot One Q帧)对以太网的 MAC 帧格式进行了扩展,插入了 4 字节的 VLAN 标记。

计算机网络 第三章

VLAN 标记的 最后 12 比特 称为 VLAN 标识符 VID,它唯一的标志了以太网帧属于哪一个 VLAN。

  • VID 的取值范围是 0 ~ 4095(0 ~ 212 – 1)
  • 0 和 4095 都不用来表示 VLAN,因此用于表示 VLAN 的 VID 的有效取值范围是 1 ~ 4094

802.1Q 帧是由交换机来处理的,而不是用户主机处理的

  • 当交换机 收到普通的以太网帧 时,会将其插入 4 字节的 VLAN 标记转变为 802.1Q 帧,简称 “打标签”
  • 当交换机 转发 802.1Q 帧 时,可能 会删除其 4 字节 VLAN 标记转变为普通以太网帧,简称 “去标签”

交换机的端口类型

交换机的端口类型有以下三种:

  • Access
  • Trunk
  • Hybrid(思科交换机没有 Hybrid 端口)

交换机各端口的缺省 VLAN ID

  • 在思科交换机上称为 Native VLAN,即本征 VLAN
  • 在华为交换机上称为 Port VLAN ID,即端口 VLAN ID,简记为 PVID
Access 端口
  • Access 端口一般用于连接用户计算机
  • Access 端口只能属于一个 VLAN
  • Access 端口的 PVID 值与端口所属 VLAN 的 ID 相同(默认为 1)
  • Access 端口接收处理方法:一般只接收 “未打标签” 的普通以太网 MAC 帧,根据接收帧的端口的 PVID 给帧 “打标签”,即插入 4 字节 VLAN 标记字段,字段中的 VID 取值与端口的 PVID 取值相等。
  • Access 端口发送处理方法:若帧中的 VID 与端口的 PVID 相等,则 “去标签” 并 转发 该帧;否则不转发
计算机网络 第三章
计算机网络 第三章
Trunk 端口

Trunk 端口一般用于交换机之间或交换机与路由器之间的互连

Trunk 端口可以属于多个 VLAN

用户可以设置 Trunk 端口的 PVID 值。默认情况下,Trunk 端口的 PVID 值为 1

Trunk 端口发送处理方法:

  • 对 VID 等于 PVID 的帧,“去标签” 再转发

Trunk 端口接收处理方法:

  • 接收 “未打标签” 的帧,根据接收帧的端口的 PVID 给帧 “打标签”,即插入 4 字节 VLAN 标记字段,字段中的 VID 取值与端口的 PVID 取值相等

习题

计算机网络 第三章
查看答案

计算机网络 第三章

​

Hybrid 端口

Hybrid 端口既可用于交换机之间或交换机与路由器之间的互连(同 Trunk 端口),也可用于交换机与用户计算机之间的互连(同 Access 端口)

Hybrid 端口可以属于多个 VLAN(同 Trunk 端口)

用户可以设置 Hybrid 段可靠的 PVID 值。默认情况下,Hybrid 端口的 PVID 的值为 1(同 Trunk 端口)

Hybrid 端口发送处理方法(与 Trunk 端口不同)查看帧的 VID 是否在端口的 “去标签” 列表中:

  • 若存在,则 “去标签” 后再转发
  • 若不存在,则直接转发

Hybrid 端口接收处理方法(同 Trunk 端口)

  • 接收 “未打标签” 的帧,根据接收帧的端口的 PVID 给帧 “打标签”,即插入 4 字节的 VLAN 标记字段,字段中 VID 取值与端口的 PVID 取值相等
  • 接收 “已打标签的帧”
计算机网络 第三章
计算机网络 第三章
计算机网络 第三章
正文完
 0
Yichend
版权声明:本文于2022-10-11转载自bilibili计算机网络微课堂,共计14862字。
转载提示:此文章非本站原创文章,若需转载请联系原作者获得转载授权。
评论(没有评论)