admin 管理员组

文章数量: 887053

第 3 章 数据链路层

1、思维导图

2、数据链路层功能概述

2.1、数据链路层的研究思想

水平方向对等通信

虽然每个设备之间的通信存在对数据的封装与解封装步骤,但如果单单研究数据链路层的通信,可以将其看作是水平方向上的直接通信

2.2、数据链路层基本概念

数据链路层相关术语

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


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

2.3、数据链路层的功能

为网络层提供一条传输数据的链路

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

数据链路层的功能

  1. 功能一:为网络层提供服务。无确认无连接服务,有确认无连接服务,有确认面向连接服务。(有连接一定有确认)
  2. 功能二:链路管理,即连接的建立、维持、释放(用于面向连接的服务)。
  3. 功能三:组帧。
  4. 功能四:流量控制。限制发送方哦~
  5. 功能五:差错控制(帧错/位错)。

3、封装成帧 & 透明传输

3.1、封装成帧

封装成帧:帧头 + 数据 + 帧尾

封装成帧就是在一段数据的前后部分添加首部和尾部,这样就构成了一个帧。接收端在收到物理层上交的比特流 后,就能根据首部和尾部的标记,从收到的比特流中识别帧的开始和结束。

帧定界 & 帧同步

首部和尾部包含许多的控制信息,他们的一个重要作用:帧定界(确定帧的界限)。

帧同步:接收方应当能从接收到的二进制比特流中区分出帧的起始和终止。

组帧的四种方法

  1. 字符计数法
  2. 字符(节)填充法
  3. 零比特填充法
  4. 违规编码法。

3.2、透明传输

对透明传输的理解

透明传输是指不管所传数据是什么样的比特组合,都应当能够在链路上传送。因此,链路层就“看不见”有什么妨碍数据传输的东西。

当所传数据中的比特组合恰巧与某一个控制信息完全一样时,就必须采取适当的措施,使收方不会将这样的数据误认为是某种控制信息。这样才能保证数据链路层的传输是透明的。

3.3、组帧的四种方法

3.3.1、字符计数法

字符计数法的做法

帧首部使用一个计数字段(第一个字节,八位)来标明帧内字符数。

痛点:鸡蛋装在一个篮子里了。如果有一个比特丢失了,后面的数据就直接凉凉

3.3.2、字符填充法

字符填充法的做法

首先规定帧的起始与结束标志(非 ASCII 码),当传送的帧是由文本文件组成时(文本文件的字符都是从键盘上输入的,都是 ASCII 码)。不管从键盘上输入什么字符都可以放在帧里传过去,即透明传输。

当传送的帧是由非ASCll码的文本文件组成时(二进制代码的程序或图像等)。就要采用字符填充方法实现透明传输。

举个栗子:字符填充法对帧的封装与解封装

发送方的原始数据:

发送方填充字节

接收方去除填充的字节

接收方接收到的数据

3.3.3、零比特填充法

零比特填充法的做法

发送单位不是字节,而是一连串的比特


零比特填充法的规则:5110


零比特填充法保证了透明传输:在传送的比特流中可以传送任意比特组合,而不会引起对帧边界的判断错误。

3.3.4、违规编码法

违规编码法的做法

曼彻斯特编码中只有“高-低”和“低-高”两种状态,可以用“高-高”和“低-低”来定界帧的起始和终止。

3.3.5、如何选择

当前普遍使用:比特填充和违规编码法

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

4、差错控制(检错编码)

4.1、差错从何而来?

为何数据传输会出现差错

概括来说,传输中的差错都是由于噪声引起的。

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

链路层为网络层提供服务

三种服务:无确认无连接服务,有确认无连接服务,有确认面向连接服务。

  1. 如果是通信质量好、有线传输的链路,可以选择无确认无连接服务,以加快数据传输速率
  2. 如果是通信质量差、无线传输的链路,可以选择有确认面向连接服务,确保收发数据的一致性

4.2、数据链路层的差错控制

差错控制的方法(比特错的控制方法)

  1. 检错编码
    1. 奇偶校验码
    2. 循环冗余码
  2. 纠错编码
    1. 海明码

冗余编码

在数据发送之前,先按某种关系附加上一定的冗 余位,构成一个符合某一规则的码字后再发送。 当要发送的有效数据变化时,相应的冗余位也随 之变化,使码字遵从不变的规则。接收端根据收 到码字是否仍符合原规则,从而判断是否出错。

数据链路层编码 vs 物理层编码

数据链路层编码和物理层的数据编码与调制不同。物理层编码针对的是单个比特,解决传输过程中比特的同步等问题,如曼彻斯特编码。而数据链路层的编码针对的是一组比特,它通过冗余码的技术实现一组二进制比特串在传输过程是否出现了差错。

4.3、检错编码之奇偶校验码

奇偶校验码的做法

添加一个校验元(比特位),使得最后得到的比特流中 1 的各位为奇数(或偶数)

举个例题

如果一个字符S的ASCII编码从低到高依次为1100101,采用奇校验,在下述收到的传输后字符中,哪种错误不能检测?

选项:A. 11000011 B. 11001010 C. 11001100 D.11010011

答案:D,因为 D 中 1 的个数本来为奇数

奇偶校验码特点

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

4.4、检错编码之CRC循环冗余码

CRC循环冗余码的做法

发送端使用生成多项式计算冗余码,将其附加到发送数据中

接收方使用多项生成式计算余数,根据余数来判断发送数据是否出错

计算 CRC 循环冗余码的步骤

  1. 将待发送的比特流分隔成相等位数的组,这就每个组包含 d 位比特
  2. 如果生成多项式的位数为 r+1,那么就需要在每个组后面加上 r 位的 FCS
  3. FCS 的计算方法为模 2 除法,即异或运算
  4. 接收方使用生成多项式计算余数,判断数据是否出错

举个栗子

:要发送的数据是11 0101 1011,采用CRC校验,生成多项式是10011,那么最终发送的数据应该是?

答:最终发送的数据。要发送的数据+帧检验序列FCS

发送端发送的数据

  1. 计算冗余码:

    1. 加 0:假设生成多项式 G(x) 的阶为 r,则加 r 个 0(TIPS:多项式N位,阶为N-1。)

    2. 模 2 除法:数据加 0 后除以多项式,余数为冗余码/FCS/CRC检验码的比特序列(异或:同 0 异 1)


接收端检错过程

  1. 把收到的每一个帧都除以同样的除数,然后检查得到的余数 R。
    1. 余数为 0,判定这个帧没有差错,接受。
    2. 余数为不为 0,判定这个帧有差错(无法确定到位),丢弃。
  2. FCS 的生成以及接收端 CRC 检验都是由硬件实现,处理很迅速, 因此不会延误数据的传输。

5、差错控制(纠错编码)

5.1、纠错编码之海明码

海明码的工作流程

海明距离

两个合法编码(码字)的对应比特取值不同的比特数称为这两个码字的海明距离(码距),一个有效编码集中,任 意两个合法编码(码字)的海明距离的最小值称为该编码集的海明距离(码距)。

列举不同码距的情况

1、码距为 1 的情况

例:000、001、010、011、100、101、110、111

码距为 1:传输过程中如果某一比特位出错,比如 000 变为 001,接收方无法发现该错误

因此码距为 1 时无法被检测出来


2、码距为 2 的情况

例:0000、1001、1010、0011、1100、0101、0110、1111

码距为 2:传输过程中如果某一比特位出错,比如 0000 变为 0001,接收方可以发现该错误,但是无法知道到底是哪个比特位发生了错误(因为 1001 也有可能变为 0001)

码距为 2 可检测出 1 位错但不可被纠正


3、码距为 3 的情况

类比如上例子,码距为 3 可检测处出 1 位错和 2 位错,可纠正 1 位错

5.2、海明码计算步骤

5.2.1、确定校验码位数r

校验码位数计算公式

举个栗子

:要发送的数据:D=1100,计算校验码位数

  1. 数据的位数m=4
  2. 满足不等式的最小r为3
  3. 也就是D=1100的海明码应该有4+3=7位
  4. 其中原数据4位,校验码3位
5.2.2、确定校验码和数据的位置

填充校验码和数据

校验码放在序号为2n的位置,从低位到高位按序填上

5.2.3、求出校验码的值

计算校验码

按照通配符,采用偶校验计算校验码

4 号通配符为 1**,与其通配符相同的位数有 4,5,6,7

2 号通配符为 *1*,与其通配符相同的位数有 2,3,6,7

1 号通配符为 **1,与其通配符相同的位数有 1,3,5,7

5.2.4、检错并纠错

检错 & 纠错

接收方收到的数据在第 5 比特出现了位错

两种纠错方法

纠错方法一: 找到不满足奇/偶校验的分组取交集,并与符合校验的分组取差集。

1,3,5,7 并且 4,5,6,7 中有比特出错,所以一定是 5 或 7 出错,2,3,6,7 中没有位错,所以一定是第 5 位出错


纠错方法二:异或

5.3、本节课总结

6、流量控制与可靠传输机制概述

6.1、数据链路层的流量控制

为何需要流量控制?

较高的发送速度和较低的接收能力的不匹配,会造成传输出错,因此流量控制也是数据链路层的一项重要工作。

数据链路层的流量控制是点对点的,数据链路层流量控制手段:接收方收不下就不回复确认。

传输层的流量控制是端到端的, 传输层流量控制手段:接收端给发送端一个窗口公告。

6.2、流量控制的方法

流量控制的方法

  1. 停止-等待协议

  2. 滑动窗口协议

    1. 后退N帧协议(GBN)
    2. 选择重传协议(SR)

注意事项

其实停止-等待协议可以看作是窗口大小为 1 的滑动窗口协议

在数据链路层中,滑动窗口在发送过程中窗口大小是固定不变的

发送窗口 & 接收窗口

停止-等待协议:发送窗口大小=1,接收窗口大小=1;

后退 N 帧协议(GBN):发送窗口大小 >1,接收窗口大小=1;

选择重传协议(SR):发送窗口大小>1,接收窗口大小>1;

6.3、流量控制、滑动窗口

可靠传输 & 流量控制

  1. 可靠传输:发送端发啥,接收端收啥。
  2. 流量控制:控制发送速率,使接收方有足够的缓冲空间来接收每一个帧。

滑动窗口可以解决的问题

滑动窗口解决:

  1. 流量控制(收不下就不给确认,想发也发不了)

  2. 可靠传输(发送方自动重传)

6.4、本节课小结

7、停止-等待协议

7.1、停止等待协议到底属于哪一层?

早些时候,链路的质量还没有那么可靠的时候,就需要数据链路层负责起可靠传输的功能,就会用到停止等待协议、滑动窗口协议;随着链路质量的不断发展,链路的通信已经非常的可靠,这个时候就不需要数据链路层担负可靠传输的任务了,也就用不着停止等待协议、滑动窗口协议

不管停止等待协议、滑动窗口协议是在数据链路层还是传输层,其功能都是进行可靠传输,只不过数据链路层的传输对象是帧,网络层的传输对象是IP数组报(分组),传输层的传输对象是报文段

7.2、停止-等待协议概述

1、为什么要有停止-等待协议?

除了比特出差错,底层信道还会出现丢包问题。 另外还为了实现流量控制。

丢包:物理线路故障、设备故障、病毒攻击、路由信息 错误等原因,会导致数据包的丢失。

2、研究停等协议的前提?

虽然现在常用全双工通信方式,但为了讨论问题方便,仅考虑一方发送数据(发送方),一方接收数据 (接收方)。

因为是在讨论可靠传输的原理,所以并不考虑数据是在哪一个层次上传送的。

“停止-等待”就是每发送完一个分组就停止发送,等待对方确认,在收到确认后再发送下一个分组。

3、停等协议有几种应用情况?

无差错情况&有差错情况

7.3、停等协议的几种应用情况

7.3.1、无差错情况

通信过程中没有出现差错

图中每发送1个数据帧就停止并等待,因此用1bit来编号就够。

7.3.2、有差错情况

1、数据帧丢失或检测到帧出错

数据丢失或出错,接收方不会返回确认 ACK,发送方定时器超时后重传数据


  1. 超时计时器:每次发送一个帧就启动一个计时器。
  2. 超时计时器设置的重传时间应当比帧传输的平均RTT更长一些。(因为还有发送时延和处理时延等)
  3. 发完一个帧后,必须保留它的副本。并且数据帧和确认帧必须编号。

2、ACK丢失

ACK 丢失,发送方定时器超时后重传数据

3、ACK迟到

ACK 虽迟但到:接收到迟到的 ACK 后直接丢弃

7.4、停等协议性能分析

停等协议简单,但是信道利用率太低

  1. TD:发送方的发送时延
  2. RTT:传输往返时延
  3. TA:确认帧的发送时延

信道利用率 U 的计算公式
U = T D T D + R T T + T A U = \frac{T_D}{T_D+RTT+T_A} U=TD+RTT+TATD


信道利用率:发送方在一个发送周期内,有效地发送数据所需要的时间占整个发送周期的比率。计算公式为:
信道利用率 = L / C T 信道利用率 = \frac{L/C}{T} 信道利用率=TL/C
式中:T 为发送周期(从开始发送数据,到收到第一个确认帧为止),C 为发送方数据,LT 内发送 L 比特数据

举个栗子

:一个信道的数据传输率为4kb/s ,单向传播时延为 30ms ,如果使停止-等待协议的信道最大利用率达到80%,要求的数据帧长度至少为多少?


80 % = L / 4 L / 4 + 2 × 30 m s = L L + 2 × 30 m s × 4 k b / s 80\% = \frac{L/4}{L/4+2\times30ms} = \frac{L}{L+2\times30ms\times4kb/s} 80%=L/4+2×30msL/4=L+2×30ms×4kb/sL
可得出:L = 930 bit

7.5、本节课小结

8、后退N帧协议(GBN)

8.1、等停协议的弊端

闲的蛋疼的等停协议

弊端就是太闲了。。。

解决办法

必须增加序号范围(流水线技术)

发送方需要缓存多个分组

由此产生的协议

后退N帧协议(GBN)

选择重传协议(SR)

8.2、后退N帧协议中的滑动窗口

发送窗口 & 接收窗口

发送窗口:发送方维持一组连续的允许发送的帧的序号。

接收窗口:接收方维持一组连续的允许接收帧的序号,在 GBN 协议中接收窗口大小为 1

滑动窗口工作流程

  1. 发送方将 0 号帧和 1 号帧发送出去,并且接收到 0 号帧的响应信号 ACK0

  2. 发送窗口向后移动一位,接收窗口向后移动一位

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

1、上层的调用

上层要发送数据时,发送方先检查发送窗口是否己满

  1. 如果未满,则产生一个帧并将其发送;
  2. 如果窗口已满, 发送方只需将数据返回给上层,暗示上层窗口己满,上层会等一会再发送。(实际实现中,发送方可以缓存这些数据,窗口不满时再发送帧)。

2、收到了一个ACK

GBN协议中,对n号帧的确认采用累积确认的方式,标明接收方己经收到n号帧和它之前的全部帧。

3、超时事件

协议的名字为后退N帧/回退N帧,来源于出现丢失和时延过长帧时发送方的行为。就像在停等协议中一样, 定时器将再次用于恢复数据帧或确认帧的丢失。如果出现超时,发送方重传所有己发送但未被确认的帧。

8.4、GBN接收方要做的事

GBN接收方:正确接收 & 其他情况

  1. 如果正确收到n号帧,并且按序接收,那么接收方为n帧发送一个ACK,并将该帧中的数据部分交付给上层。
  2. 其余情况都丢弃帧,并为最近按序接收的帧重新发送ACK。接收方无需缓存任何失序帧,只需要维护一个信息:expectedseqnum (下一个按序接收的帧序号)。

举个栗子

加入接收方收到 0,1,2,4,5 号帧,那么会向接收方回复 ACK2,并且将窗口滑动至 expectedseqnum = 3 的位置

8.5、GBN 发送和接收过程

GBN 发送和接收的流程分析

  1. 发送方成功发送 0,1 号帧,并且接收方应答了 ACK0,ACK1,此时滑动窗口指针expectedseqnum = 1

  2. 发送方在发送 2 号帧时出现丢失的情况,接收方在没有接收到 2 号帧的情况下接收到 3,4,5 号帧都会丢弃它们,并且都向发送方发送 ACK1 催更 1 号帧

  3. 当发送方检测到 2 号帧超时后,重新发送 2 号帧,3,4,5 号帧也是同样的道理

8.6、滑动窗口长度

滑动窗口设置为多大合适呢?

若采用n个比特对帧编号,那么发送窗口的尺寸WT应满足:1<=WT<=2n-1。因为发送窗口尺寸过大,就会使得接收方无法区别新帧和旧帧。

举个栗子

假如说帧使用 2 个比特进行编号,即帧编号为 0 1 2 3/0 1 2 3/…

如果滑动窗口大小设置为 5,假设 0 1 2 3 0号帧全部发送出去,你硕接收方分得清哪个 0 号帧是前面的,哪个是后面的吗???

8.7、GBN协议重点总结

总结

  1. 累积确认(偶尔捎带确认,ACK被放到接收方需要发送的数据中去,搭个顺风车回去)
  2. 接收方只按顺序接收帧,不按序无情丢弃
  3. 确认序列号最大的、按序到达的帧
  4. 发送窗口最大为2n-1,接收窗口大小为1(一旦确定好滑动窗口的大小,发送过程中就不能再改变)

8.8、习题

习题一

数据链路层采用了后退N帧(GBN )协议,发送方已经发送了编号为0~7的帧。当计时器超时时,若发送方只收到0、2、3号帧的确认,则发送方需要重发的帧数是( )。

选项:A.2 B.3 C.4 D.5

答:发送方收到了 3 号帧的确认,则证明 3 号帧之前的帧接收方已经全部收到,所以还需要重新发送 4~7 号帧

习题二

主机甲与主机乙之间使用后退N帧协议(GBN )传输数据,甲的发送窗口尺寸为1000 ,数据帧长为1000字节, 信道带宽为100Mb/s ,乙每收到一个数据帧立即利用一个短帧(忽略其传输延迟)进行确认,若甲、乙之间的单向传播时延是50ms ,则甲可以达到的最大平均数据传输率约为()。

A.10Mb/s B.20Mb/s C.80Mb/s D.100Mb/s

答:分两种情况


第一种情况:甲无需等待乙的应答消息,可以一直发送,一直发送,最终速率可以达到 100Mb/s


第二种情况:甲滑动窗口中的数据完成之后,还需要等待乙的应答消息,甲在收到乙的确认帧后,滑动窗口才能前移

甲将发送窗口中的数据全部发送出去所需的时间:
1000 × 1000 × 8   b 100 × 1 0 6   b / s = 80 m s \frac{1000\times1000\times8\ b}{100\times10^6\ b/s}=80ms 100×106 b/s1000×1000×8 b=80ms
甲等待乙的确认帧所需的时间 = 往返传输时延 + 甲将第一帧数据发送出去的时间
2 × 50 × 1000 × 8   b 10 × 1 0 6   b / s = 100.08 m s 2\times50\times\frac{1000\times8\ b}{10\times10^6\ b/s}=100.08ms 2×50×10×106 b/s1000×8 b=100.08ms
则甲可以达到的最大平均数据传输率约为:
1000 × 1000 × 8   b 100.08   m s ≈ 80 M b / s \frac{1000\times1000\times8\ b}{100.08\ ms} \approx 80Mb/s 100.08 ms1000×1000×8 b80Mb/s

8.9、GBN协议性能分析

连续发送带来的好处 & 丢弃数据帧带来的弊端

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

在重传时必须把原来己经正确传送的数据帧重传,使得传送效率降低 --> 因此引出选择重传协议

8.10、本节课小结

9、选择重传协议(Selective Repeat)

9.1、GBN协议的弊端

弊端:某些已经到达的帧被丢弃

有些帧其实已经发送到接收方了,但是由于前面由某个帧丢失,导致该帧后面的帧全部都被丢失


:可不可以只重传出错的帧?

解决办法:设置单个确认,同时加大接收窗口,设置接收缓存,缓存乱序到达的帧

9.2、选择重传协议中的滑动窗口

滑动窗口的图解

发送方

接收方

9.3、SR发送方必须响应的三件事

1、上层的调用

从上层收到数据后,SR发送方检查下一个可用于该帧的序号,如果序号位于发送窗口内,则发送数据帧;否则就像GBN—样,要么将数据缓存,要么返回给上层之后再传输。

2、收到了一个ACK

如果收到ACK,加入该帧序号在窗口内,则SR发送方将那个被确认的帧标记为己接收。如果该帧序号是窗口的下界(最左边第一个窗口对应的序号),则窗口向前移动到具有最小序号的未确认帧处。如果窗口移动了 并且有序号在窗口内的未发送帧,则发送这些帧。


  1. 发送方已经接收到 3 号帧的 ACK3,此时又接受到了 2 号帧的 ACK2,滑动窗口前移 2 位

  2. 如下,滑动窗口前移 2 位

3、超时时间

每个帧都有自己的定时器,一个超时事件发生后只重传一个帧。

9.4、SR接收方要做的事

对窗口内的帧统统不拒绝

来者不拒(窗口内的帧):SR接收方将确认一个正确接收的帧而不管其是否按序。失序的帧将被缓存,并返回给发送方一个该帧的确认帧【收谁确认谁】,直到所有帧(即序号更小的帧)皆被收到为止,这时才可以将一批帧按序交付给上层,然后向前移动滑动窗口。

  1. 5 号帧还未收到,6 号帧已经收到且被缓存起来,7 号帧此时也已经收到且被缓存起来

  2. 此时 5 号帧也来了,此时 5,6,7 号帧均已接收完毕

  3. 将 5,6,7 号帧交付给上层,滑动窗口前移

注意事项

如果收到了窗口序号外(小于窗口下界)的帧,就返回一个ACK。 其他情况,就忽略该帧。

为什么要这样做?有可能接收方已经发送了 ACK ,但由于网络延迟等原因,该 ACK 信号并未及时到达发送方(或者在网络链路上丢失),此时发送方触发重传机制,又会重新发送该帧。接收方为了给发送方打一针定心剂,返回 ACK 信号,意义是说:我已经接收到你传送的数据啦,只是那个 ACK 你还没有接到啦(或者已经丢失啦)~~~

9.5、SR发送和接收过程

图解SR发送和接收过程

  1. 发送方发送 0 号帧,接收方接收到 0 号帧后,返回 ACK1 应答信号,并将滑动窗口前移

  2. 发送方发送 2 号帧时出现丢失情况

  3. 发送方继续发送 3 号帧,接收方接收到 3 号帧将其放入缓冲区,并返回 ACK3 应答信号

  4. 当发送方检测到 2 号帧超时后,重新发送2 号帧,接收方接收到 2~5 号帧,将其交付至上层处理,并将滑动窗口前移

9.6、滑动窗口长度

窗口长度可以无限吗?

发送窗口最好等于接收窗口。(大了会溢出,小了没意义)
W T m a x = W R m a x = 2 n − 1 W_{Tmax} = W_{Rmax} = 2^{n-1} WTmax=WRmax=2n1

举个栗子

举例说明:帧编号为 0~3,滑动窗口大小为 3

  1. 当 0~2 号帧均丢失后,发送方超时后会重发 0~2 号帧,此时 0 号帧为重传的(旧的)数据帧

  2. 当发送方接受到 1 号帧的 ACK 应答信号之后,发送窗口前移,此时会发送新的 0 号帧,但对于接收方来说,无法判断 0 号帧是属于前面的滑动窗口还是属于后面的滑动窗口,即无法判断这个 0 号帧是和前面的 1~3 号帧进行重组还是和后面的 1~3 号帧进行重组

  3. 接收方不知道发送过来的 0 号帧是新帧还是旧帧,这是因为滑动窗口的长度过大(相比于帧编号)

9.7、SR协议重点总结

总结

  1. 对数据帧逐一确认,收一个确认一个
  2. 只重传出错帧
  3. 接收方有缓存
  4. 滑动窗口长度最大为 2n-1

9.8、习题

举个例题

数据链路层采用了选择重传(SR )协议,发送方已经发送了编号为0〜3的帧。现已收到1号帧的确认,而0、2号帧依次超时,则发送方需要重传的帧数是( )。

A.2 B.3 C.4 D.5

答:0 和 2 号帧超时,需要重传,3 号帧状态无法确定

9.9、本节课小结

10、信道划分介质访问控制

10.1、传输数据使用的两种链路

1、点对点链路:两个相邻节点通过一个链路相连,没有第三者。

应用:PPP协议,常用于广域网。

2、广播式链路:所有主机共享通信介质。

应用:早期的总线以太网、无线局域网,常用于局域网。

典型拓扑结构:总线型、星型(逻辑总线型)


总线型:假如说 Server 到 PC 之间的 的总线出故障,那么 Server 与 WORKSTATION 和 PRINTER 之间也无法进行通信啦~

星型:一般在局域网中,交换设备为集线器,任一工作站到 HUB 的总线出故障,不会影响其他工作站的工作

10.2、介质访问控制

介质访问控制的分类

介质访问控制的内容就是,采取一定的措施,使得两对节点之间的通信不会发生互相干扰的情况

10.3、信道划分介质访问控制

信道划分介质访问控制到底是个啥玩意儿?

信道划分介质访问控制:将使用介质的每个设备与来自同一信道上的其他设备的通信隔离开,把时域和频域资源合理地分配给网络上的设备。

多路复用技术:把多个信号组合在一条物理信道上进行传输,使得多个计算机或终端设备共享信道资源,提高信道利用率。

把一条广播信道,逻辑上分成 几条用于两个节点之间通信的 互不干扰的子信道,实际就是把广播信道转变为点对点信道。

举个栗子

A1、B1、C1 发送的数据通过复用器后拧成一捆,到达接收端复用器后被分解开,被接收方A2、B2、C2 所识别并接受

静态划分信道

用户通信之前,事先按照时间或空间划分信道,使得每个用户之间的通信不会互相干扰

10.4、频分多路复用FDM

每个用户独占一个频段

用户在分配到一定的频带后,在通信过程中自始至终都占用这个频带。频分复用的所有用户在同样的时间占用不同的带宽(频率带宽)资源。

频分多路复用FDM的特点

用户共享信道的时间,没有共享信道的空间

充分利用传输介质带宽,系统效率较高;由于技术比较成熟,实现也比较容易。

10.5、时分多路复用TDM

用户分时共享信道

将时间划分为一段段等长的时分复用帧(TDM帧)。每一个时分复用的用户在每一个TDM帧中占用固定序号的时隙,所有用户轮流、周期性地占用信道。

时分多路复用TDM的特点

TDM帧是在物理层传送的比特流所划分的帧,标志一个周期,并不是数据链路层的帧

用户共享信道的时间,没有共享信道的空间

时分多路复用TDM的弊端

假如 A、B、C 都处于空闲状态,只有 D在通信,那么信道的利用率较低,假如信道的传输速率为 8000b/s,那么 D 的最高传输速率为 2000b/s

10.6、改进的时分复用之统计时分复用STDM

统计时分复用STDM的原理

每一个STDM帧中的时隙数小于连接在集中器上的用户数。各用户有了数据就随时发往集中器的输入缓存,然后集中器按顺序依次扫描输入缓存,把缓存中的输入数据放入STDM帧中,一个STDM帧满了就发出。STDM帧不是固定分配时隙,而是按需动态分配时隙。

注意事项

说白了就是集中器负责收集发送方的数据,收集满了就发送出去,但我就搞不懂了,接收方咋接受呢???

假如 A、B、C 都处于空闲状态,只有 D在通信,假如信道的传输速率为 8000b/s,由于是不固定时序,那么 D 的最高传输速率为 8000b/s

10.7、波分多路复用WDM

光的频分多路复用

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

10.8、码分多路复用CDM

码分多路复用CDM的原理

  1. 码分多址(CDMA)是码分复用的一种方式。
  2. 1个比特分为多个码片/芯片(chip),每一 个站点被指定一个唯一的m位的芯片序列
  3. 发送1时发送芯片序列(通常把0写成-1)。
  4. 发送1时站点发送芯片序列,发送0时发送芯片序列反码。

举个栗子

A 站点发比特 1,B 站点发比特 0


PS:我没有看懂。。。

11、ALOHA协议

11.1、介质访问控制

动态分配信道

动态分配信道:信道并非在用户通信时固定分配给用户,所有用户可随机发送信息,所以就存在冲突问题,动态分配信道的主要任务就是解决冲突

11.2、ALOHA协议的来源

Aloha ≈ 你好

Aloha,是夏威夷人表示致意的问候语,这项研究计划的目的是要解决夏威夷群岛之间的通信问题。Aloha网络可以使分散在各岛的多个用户通过无线电信道来使用中心计算机,从而实现一点到多点的数据通信。由此可见,ALOHA采用的是一种随机接入的信道访问方式。

11.3、纯ALOHA协议

纯ALOHA协议思想:不监听信道, 不按时间槽发送,随机重发。想发就发

  1. T0 = 发送时间 + 传播时间,即发送方发送数据帧并成功接收到确认帧的时间间隔
  2. 站 N-1 不会监听信道,所以它并不知道自己发送的帧与站 2 的帧冲突,如果发生冲突,接收方在就会检测出差错,然后不予确认(或者 NACK 否定确认帧)
  3. 发送方在一段时间内没有接收到确认帧,便超时重传,直至发送成功为止

冲突的检测与解决

1、冲突如何检测?

如果发生冲突,接收方在就会检测出差错,然后不予确认(或者 NACK 否定确认帧),发送方在一定时间内收不到就判断发生冲突。

2、冲突如何解决?

超时后等一随机时间再重传。

11.4、时隙ALOHA协议

时隙ALOHA协议:划分时间片

纯ALOHA协议的缺点:太随性,太容易冲突

时隙ALOHA协议的思想:把时间分成若干个相同的时间片,所有用户在时间片开始时刻同步接入网络信道,若发生冲突,则必须等到下一个时间片开始时刻再发送。即控制想发就发的随意性。


T0 也称时间槽,或称为时隙,时隙ALOHA协议按照 T0 为基准分隔时间片,时间片的长度通常会大于 T0

当站 1 和 站 2 在同一时间片的起始时间发送了数据帧,会产生冲突,冲突后会触发超时重发机制

11.5、关于ALOHA要知道的事

纯ALOHA与时隙ALOHA的对比

  1. 纯ALOHA比时隙ALOHA吞吐量更低,效率更低。

  2. 纯ALOHA想发就发,时隙ALOHA只有在时间片段开始时才能发。

  3. 时隙ALOHA协议控制发送的随意性,降低碰撞的概率,从而提高吞吐量

12、CSMA协议

12.1、介质访问控制

CSMA 协议是个有礼貌的协议

ALOHA 协议:我不听我不听,我就要说话

CSMA 协议:你说我听着,听你说完我再说

12.2、CSMA协议概述

载波监听多路访问协议CSMA (carrier sense multiple access)

CS:载波侦听/监听,每一个站在发送数据之前要检测一下总线上是否有其他计算机在发送数据(当几个站同时在总线上发送数据时,总线上的信号电压摆动值将会增大(互相叠加)。当一个站检测到的信号电压摆动值超过一定门限值时,就认为总线上至少有两个站同时在发送数据,表明产生了碰撞,即发生了冲突。)

MA:多点接入,表示许多计算机以多点接入的方式连接在一根总线上。


协议思想:发送帧之前,监听信道。

12.3、1-坚持CSMA

1-坚持CSMA思想:

坚持指的是对于监听信道忙之后的坚持

  1. 如果一个主机要发送消息,那么它先监听信道。
  2. 空闲则直接传输,不必等待。
  3. 忙则一直监听,直到空闲马上传输。
  4. 如果有冲突(一段时间内未收到肯定回复),则等待一个随机长的时间再监听,重复上述过程。 (ALOHA 协议时检测到冲突则等待一个随机长的时间再重传)

1-坚持CSMA的优缺点

优点:只要媒体空闲,站点就马上发送,避免了媒体利用率的损失。

缺点:假如有两个或两个以上的站点有数据要发送,冲突就不可避免。(因为如果有两个以上的站点想要发送消息,则会一直监听信道,等到信道空闲时马上传输消息,进而造成冲突)

12.4、非坚持CSMA

非坚持CSMA思想

非坚持指的是对于监听信道忙之后就不继续监听。

  1. 如果一个主机要发送消息,那么它先监听信道。
  2. 空闲则直接传输,不必等待。
  3. 忙则等待一个随机的时间之后再进行监听。

非坚持CSMA思想的优缺点

优点:采用随机的重发延迟时间可以减少冲突发生的可能性。

缺点:可能存在大家都在延迟等待过程中,使得媒体仍可能处于空闲状态,媒体使用率降低。

12.5、p-坚持CSMA

官方文档哟

p-坚持CSMA思想

p-坚持指的是对于监听信道空闲的处理。

  1. 如果一个主机要发送消息,那么它先监听信道。

  2. 空闲则以P概率直接传输,不必等待;概率1-P等待到下一个时间槽再传输。

  3. 忙则持续监听直到信道空闲再以p概率发送。

  4. 若冲突则等到下一个时间槽开始再监听并重复上述过程。

p-坚持CSMA思想的优缺点

优点:既能像非坚持算法那样减少冲突(使用概率降低冲突),又能像1-坚持算法那样减少媒体空闲时间的这种方案(忙则一直监听)。

缺点:发生冲突后还是要坚持把数据帧发送完,造成了浪费。

CSMA 协议引发的思考

有没有什么办法可以减少资源浪费,一冲突就能发现呢?

说白了,还是当前站点发送数据时,没有去检测信道是否已经被其他站点占用

12.6、本节课总结

13、CSMA/CD 协议

13.1、介质访问控制

13.2、CSMA/CD 协议概述

载波监听多点接入/碰撞检测:CSMA/CD (carrier sense multiple access with collision detection)

  1. CS:载波侦听/监听,每一个站在发送数据之前以及发送数据时都要检测一下总线上是否有其他计算机在发送数据。(监测总线电压摆动幅值)
  2. MA:多点接入,表示许多计算机以多点接入的方式连接在一根总线上。总线型网络
  3. CD:碰撞检测(冲突检测),“边发送边监听”,适配器边发送数据边检测信道上信号电压的变化情况,以便判 断自己在发送数据时其他站是否也在发送数据。

CSMA/CD 协议的适用情况

适用于半双工总线型以太网络,因为不允许有两个以上的站点同时在总线上发送数据


先听后发为什么还会冲突?

因为电磁波在总线上总是以有限的速率传播的。

13.3、传播时延对载波监听的影响

看个例子

假设有 A 和 B 两个站点互相发送数据,定义单程端到端的传播时延为 τ

  1. 最迟多久才能知道自己发送的数据没和别人碰撞?最多是两倍的总线端到端的往返传播时延2τ(B 刚发送数据就和 A 产生了碰撞,此时 A 需要经过 2τ 时间后才能检测到碰撞),这个时间也叫做争用期/冲突窗口/碰撞窗口
  2. 也即只要经过2τ时间还没有检测到碰撞,就能肯定这次发送不会发生碰撞。

13.4、如何确定碰撞后的重传时机?

为什么需要确定计算重传时机?

以上面的例子进行讲解

  1. A 和 B 两个站点互相发送数据,假设它们都在 0 时刻向信道发送了数据,它们在 τ/2 时刻会发生碰撞,并在 τ 时刻检测到碰撞
  2. 假设 A 和 B 两个站点都隔了 τ 时刻再次发送数据,还是会发生碰撞😟
  3. 无限碰撞,恶性循环,yyds

确定重传时机的步骤

  1. 确定基本退避(推迟)时间为争用期 2τ,即推迟多久再进行重传。
  2. 定义参数 k,它等于重传次数,但 k 不超过 10,即 k=min{重传次数, 10}。当重传次数不超过 10 时,k 等于 重传次数;当重传次数大于 10 时,k 就不再增大而一直等于 10。
  3. 从离散的整数集合[0, 1, … , 2k-1] 中随机取出一个数 r,重传所需要退避的时间就是 r 倍的基本退避时间,即 2r τ。
  4. 当重传达16次仍不能成功时,说明网络太拥挤,认为此帧永远无法正确发出,抛弃此帧并向高层报告出错。

若连续多次发生冲突,就表明可能有较多的站参与争用信道。使用此算法可使重传需要推迟的平均时间随重传次数的增大而增大,因而减小发生碰撞的概率,有利于整个系统的稳定。


举例说明

第一次重传,k=1,r 从{0, 1}中选;重传推迟时间为 0 或 2t ,在这两个时间中随机选一个;

若再次碰撞,则在第二次重传时,k=2,r 从{0, 1, 2, 3}选;重传推迟时间为 0 或 2t 或 4t 或 6t,在这四个时间中随机选一个;

若再次碰撞,则第三次重传时,k=3,r从{0, 1, 2, 3, 4, 5, 6, 7}选 …

举个例题

例题:在以太网的二进制回退算法中,在11次碰撞之后,站点会在0~(?)之间选择一个随机数。

:k = min{11, 10} = 10;210-1 = 1024 - 1 = 1023;所以 r ∈ {0, 1, 2, … , 1023}

13.5、最小帧长问题

为什么要规定最小帧长?

假设 A 站发了一个很短的帧,但发生了碰撞,不过帧在发送完毕后才检测到发生碰撞,没法停止发送,因为发完了。。


最小帧长

帧的传输时延至少要两倍于信号在总线中的传播时延。即数据发送的速率 ≥ 2 倍的传播时延
侦长 数据传输速率 ≥ 2 τ \frac{侦长}{数据传输速率} \ge 2\tau 数据传输速率侦长2τ
可得:最小帧长 = 总线传播时延 × 数据传输速率 × 2

最小帧长 = 2 τ × 数据传输率 最小帧长 = 2\tau × 数据传输率 最小帧长=2τ×数据传输率
以太网规定最短帧长为64B,凡是长度小于64B的都是由于冲突而异常终止的无效帧。

13.6、本节课小结

14、CSMA/CA 协议

14.1、CSMA/CA 协议概述

载波监听多点接入/碰撞避免:CSMA/CA (carrier sense multiple access with collision avoidance)

CSMA/CD 协议侧重于检测碰撞,适用于总线型以太网络通信;CSMA/CA 协议侧重于避免碰撞(发送数据之前有礼貌地等待),适用于无线局域网通信

为什么要有CSMA/CA?

在无线局域网中,面临如下两个问题:

  1. 无法做到 360 °全面检测碰撞,因为无线网中的碰撞来自四面八方

  2. 隐蔽站问题:当A和C都检测不到信号,认为信道空闲时,同时向终端B发送数据帧,就会导致冲突(C不知道A要想B发送数据,对于A来说C就是一个隐蔽站)

14.2、CSMA/CA协议工作原理

CSMA/CA的工作原理

  1. 发送数据前,先检测信道是否空闲。
  2. 空闲则发出RTS (request to send),即请求发送的数据帧,RTS包括发送端的地址、接收端的地址、下一份数据将持续发送的时间 等信息;信道忙则等待。
  3. 接收端收到RTS后,将响应CTS (clear to send),用于响应RTS。RTS和CTS解决了隐蔽站问题,相当于在两个站点之间建立了连接
  4. 发送端收到CTS后,开始发送数据帧(同时预约信道:发送方告知其他站点自己要传多久数据,避免与其他站点发生碰撞)。
  5. 接收端收到数据帧后,将用CRC来检验数据是否正确,正确则响应ACK帧,发送方接收到ACK帧之后才能继续发送。
  6. 发送方收到ACK就可以进行下一个数据帧的发送,若没有则一直重传至规定重发次数为止(采用二进制指数 退避算法来确定随机的推迟时间)。

碰撞避免的核心要点

  1. 预约信道
  2. ACK帧
  3. RTS/CTS帧(可选)

14.3、CSMA/CD 与 CSMA/CA 的比较

CD 协议和 CA 协议的比较

相同点

CSMA/CD与CSMA/CA机制都从属于CSMA的思路,其核心是先听再说。换言之,两个在接入信道之前都须要 进行监听。当发现信道空闲后,才能进行接入。


不同点

传输介质不同:CSMA/CD用于总线式以太网【有线】,而CSMA/CA用于无线局域网【无线】。

载波检测方式不同:因传输介质不同,CSMA/CD与CSMA/CA的检测方式也不同。CSMA/CD通过电缆中电压 的变化来检测,当数据发生碰撞时,电缆中的电压就会随着发生变化;而CSMA/CA采用能量检测(ED)、 载波检测(CS)和能量载波混合检测三种检测信道空闲的方式。

CSMA/CD检测冲突,CSMA/CA避免冲突,二者出现冲突后都会进行有上限的重传。

15、轮询访问介质访问控制

15.1、介质访问控制

各种介质访问控制的适用场景

  1. 信道划分介质访问控制(MAC Multiple Access Control )协议:
    1. 基于多路复用(时间复用,频率复用,码片复用)技术划分资源。
    2. 网络负载重:共享信道效率高,且公平
    3. 网络负载轻:共享信道效率低(每个用户平分资源,当活跃用户较少时,他们所占用的资源不能给别人用)
  2. 随机访问MAC协议:唯一会产生冲突的协议
    1. 用户根据意愿随机发送信息,发送信息时可独占信道带宽。
    2. 网络负载重:产生冲突开销(冲突会降低信道通信的效率)
    3. 网络负载轻:共享信道效率高,单个结点可利用信道全部带宽
  3. 轮询访问MAC协议/轮流协议/轮转访问MAC协议:既要不产生冲突,又要发送时占全部带宽。
    1. 轮询协议
    2. 令牌传递协议

15.2、轮询协议

轮询协议的工作原理

主结点轮流“邀请”从属结点发送数据。

轮询协议的存在的问题

  1. 轮询开销:主机需要轮询每个结点,并循环它们是否需要发送数据,当结点多了,轮询开销的时间自然就变长了
  2. 等待延迟:对于靠后的结点(4),即使它前面的结点(1~3)不发送数据,主机也会依次轮询 1~3 号结点,所以靠后结点的等待延迟自然比前面节点的等待延迟常
  3. 单点故障:老大 down 机了,就都凉凉

15.3、令牌传递协议

令牌传递协议的工作原理

令牌环网结构在逻辑上呈现环形结构,在物理上为星型连接

令牌:一个特殊格式的MAC控制帧,不含任何信息。控制信道的使用,确保同一时刻只有一个结点独占信道。(每一时刻只有一个主机可以掌握令牌,只有占用令牌的主机可以发送数据,其他设备只能待命,传说中的挟令牌以令诸机?)

TCU 转发器:负责转发令牌数据帧

令牌环网的工作流程

  1. 假设主机 D 要发送数据给主机 A,当主机 D 拿到令牌后,先修改令牌的标志位,将其从空闲状态修改为忙碌状态,将待发送的数据添加在令牌信息之后构成数据帧,并发送出去
  2. 主机 B 和主机 C 接收到令牌数据帧,发现并不是发送给自己的消息,便会转发出去,直到遇到主机 A,主机 A 发现是发送给自己的数据,将其复制一份并继续将令牌转发给主机 D
  3. 令牌回到主机 D,主机 D 检查数据帧是否出错
    1. 如果出错则重发
    2. 没出错则将令牌修改为空闲状态,并转发给令牌 C

令牌持有时间

每个结点都可以在一定的时间内(令牌持有时间)获得发送数据的权利,并不是无限制地持有令牌。

令牌环网的缺点

  1. 令牌开销:制造令牌的时间
  2. 等待延迟:等待令牌的延迟时间
  3. 单点故障:down 机就凉凉,除非找替代机

令牌环网的应用场景

  1. 应用于令牌环网(物理星型拓扑,逻辑环形拓扑)。
  2. 采用令牌传送方式的网络常用于负载较重、通信量较大的网络中。
    1. 如果很多主机都要发送数据,那么令牌环绕一圈,可以完成很多次数据交换
    2. 否则,令牌搁那儿瞎转:圈圈圆圆圈圈

15.4、MAC协议总结

16、局域网基本概念和体系结构

16.1、局域网

局域网的定义

局域网(Local Area Network):简称LAN,是指在某一区域内由多台计算机互联成的计算机组,使用广播信道。

局域网的特点

  1. 特点1:覆盖的地理范围较小,只在一个相对独立的局部范围内联,如一座或集中的建筑群内。
  2. 特点2:使用专门铺设的传输介质(双绞线、同轴电缆)进行联网,数据传输速率高(10Mb/s〜10Gb/s)。
  3. 特点3:通信延迟时间短,误码率低,可靠性较高。
  4. 特点4:各站为平等关系,共享传输信道。
  5. 特点5:多采用分布式控制和广播式通信,能进行广播和组播。

决定局域网特点的主要要素为

  1. 网络拓扑
  2. 传输介质
  3. 介质访问控制方法

16.2、局域网拓扑结构

1、星型拓扑

中心节点是控制中心,任意两个节点间的通信最多只需两步,传输速度快,并且网络构形简单、建网容易、便于控制和管理。但这种网络系统(相较于总线型拓扑来说),网络可靠性低,网络共享能力差,有单点故障问题(中心节点挂掉就凉凉)。

2、总线型拓扑

网络可靠性高、网络节点间响应速度快、共享资源能力强、设备投入量少、成本低、安装使用方便,当某个工作站节点出现故障时,对整个网络系统影响小。

总线型拓扑在局域网中经常使用,以太网在逻辑上就是总线型拓扑结构

3、环形拓扑

系统中通信设备和线路比较节省。有单点故障问题;由于环路是封闭的,所以不便于扩充,系统响应延时长,且信息传输效率相对较低。

4、树形拓扑

易于拓展,易于隔离故障, 也容易有单点故障。

16.3、局域网传输介质

局域网常用的传输介质

  1. 有线局域网常用介质:双绞线、同轴电缆、光纤
  2. 无线局域网常用介质:电磁波

16.4、局域网介质访问控制方法

局域网常用的介质访问控制

  1. CSMA/CD(先听再说,边听边说):常用于总线型局域网,也用于树型网络

  2. 令牌总线:常用于总线型局域网,也用于树型网络(它是把总线型或树型网络中的各个工作站按一定顺序如按接口地址大小排列形成一 个逻辑环。只有令牌持有者才能控制总线,才有发送信息的权力。)

  3. 令牌环:用于环形局域网,如令牌环网,在逻辑上为环形结构,在物理上为星型结构

16.5、局域网的分类

按介质访问控制分类

  1. 以太网以太网是应用最为广泛的局域网,包括标准以太网(10Mbps)、快速以太网(100Mbps)、千兆以太网(1000Mbps)和10G以太网,它们都符合IEEE802.3系列标准规范。逻辑拓扑总线型,物理拓扑是星型或拓展星型。使用CSMA/CD.
  2. 令牌环网物理上采用了星形拓扑结构,逻辑上是环形拓扑结构。已是“明日黄花”。
  3. FDDI网(Fiber Distributed Data lnterface)物理上采用了双环拓扑结构,逻辑上是环形拓扑结构。
  4. ATM网(Asymchronous Transfer Mode)较新型的单元交换技术,使用53字节固定长度的单元进行交换。
  5. 无线局域网(Wireless Local Area Network;WLAN)采用IEEE 802.11标准。

16.6、IEEE 802 标准

IEEE 802 标准是个啥?

IEEE 802系列标准是IEEE 802 LAN/MAN标准委员会制定的局域网、城域网技术标准(1980年2月成立)。其中最广泛使用的有以太网、令牌环、无线局域网等。这一系列标准中的每一个子标准都由委员会中的一个专门工作组负责。

16.7、MAC子层和LLC子层

数据链路层的四分:MAC子层 & LLC子层

IEEE 802标准所描述的局域网参考模型只对应OSI参考模型的数据链路层与物理层,它将数据链路层划分为逻辑链路层LLC子层和介质访问控制MAC子层。


LLC子层负责识别网络层协议,然后对它们进行封装。LLC报头告诉数据链路层一旦帧被接收到时,应当对数据包做何处理。为网络层提供服务:无确认无连接、面向连接、带确认无连接、高速传送。

MAC子层的主要功能包括数据帧的封装/卸装,帧的寻址和识别,帧的接收与发送,链路的管理,帧的差错控制等。MAC子层的存在屏蔽了不同物理链路种类的差异性。

16.8、本节课小结

17、以太网

17.1、以太网概述

以太网的定义

以太网(Ethernet)指的是由Xerox公司创建并由Xerox、 Intel和DEC公司联合开发的基带总线局域网规范,是当今 现有局域网采用的最通用的通信协议标准。以太网络使用CSMA/CD (载波监听多路访问及冲突检测)技术。

以太网在局域网各种技术中占统治性地位的原因

  1. 造价低廉(以太网网卡不到100块);
  2. 是应用最广泛的局域网技术;
  3. 比令牌环网、ATM网便宜,简单;
  4. 满足网络速率要求:10Mb/s~10Gb/s。

以太网两个标准

  1. DIX Ethernet V2:第一个局域网产品(以太网)规约。
  2. IEEE 802.3: IEEE 802委员会802.3工作组制定的第一个IEEE的以太网标准。(帧格式有一丢丢改动)

我们说的以太网一般是指802.3局域网

17.2、不可靠的服务

以太网提供无连接、不可靠的服务

  1. 无连接:发送方和接收方之间无“握手过程”。
  2. 不可靠:不对发送方的数据帧编号,接收方不向发送方进行确认,差错帧直接丢弃,差错纠正由高层(传输层)负责。

即以太网只实现无差错接收,不实现可靠传输。

  1. 无差错接收:通过差错校验丢弃出错的帧
  2. 可靠传输:发送方发来的帧都要接受,对于丢失、重复、失序等情况,需要通过一定的校正

17.3、传输介质与拓扑结构的发展

以太网传输介质 & 拓扑结构的发展

以太网传输介质的发展:粗同轴电缆 → 细同轴电缆 → 双绞线+集线器

以太网传输物理拓扑的发展:总线型 → 星型


使用集线器的以太网在逻辑上仍是一个总线网, 各站共享逻辑上的总线,使用的还是CSMA/CD协议。 以太网拓扑:逻辑上总线型,物理上星型

17.4、10BASE-T以太网

10BASE-T以太网

10BASE-T是传送基带信号的双绞线以太网,T表示采用双绞线,现10BASE-T采用的是无屏蔽双绞线 (UTP),传输速率是10Mb/s

  1. 物理上采用星型拓扑,逻辑上总线型,每段双绞线最长为100m(可通过集线器扩展网络的范围与距离)
  2. 采用曼彻斯特编码(一个比特对应于两个码元,即一个比特信号发生两次变化)
  3. 采用CSMA/CD介质访问控制(存在冲突的碰撞)

17.5、适配器与MAC地址

网卡

计算机与外界有局域网的连接是通过通信适配器的。适配器上装有处理器和存储器(包括RAM和ROM)。ROM上有计算机硬件地址MAC地址。


之前的主板可以扩展网络接口板或者网络接口卡NIC (network interface card ),现在的网卡一般都集成在主板上了

MAC地址

在局域网中,硬件地址又称为物理地址,或MAC地址。【实际上是标识符】

MAC地址:每个适配器有一个全球唯一的48位二进制地址,前24位代表厂家(由IEEE规定),后24位厂家自己指定。常用6个十六进制数表示,如02-60-8c-e4-b1-21。


查询 MAC 地址

17.6、以太网MAC帧

以太网MAC帧格式

最常用的MAC帧是以太网V2的格式。

注意事项

  1. 前导码:为了尽快实现发送方与接收方的信息同步
  2. 目的地址可分为单播地址、广播地址(全 1)和多播地址
  3. 类型字段用于表示上层所使用的协议
  4. 为什么 IP 数据报长度最小为 46 字节?使用 CMSA/CD 协议存在最小帧长的问题,最小帧长为 64 字节,除去目的地址、源地址、类型和 FCS,就剩下 46 字节啦,所以 IP 数据报长度最小为 46 字节
  5. 为什么没有结束码?使用曼彻斯特编码本身就可以表示信道上是否有数据进行传输,在发送数据时电压会一直变化,不发送数据时电压不会变化,所以根本无需结束码,而且每个帧之间有一定的间隔时间,超过这个时间则认为帧结束

17.7、高速以太网

怎么才算高速以太网?

速率 > 100Mb/s的以太网称为高速以太网。

1、100BASE-T 以太网

在双绞线上传送100Mb/s基带信号的星型拓扑以太网,仍使用IEEE802.3的CSMA/CD协议。支持全双工和半双工,可在全双工方式下工作而无冲突。

为什么可以工作在全双工方式下?交换机可以隔离冲突域,之后会讲

2、吉比特以太网

在光纤或双绞线上传送lGb/s信号。支持全双工和半双工,可在全双工方式下工作而无冲突。

3、10吉比特

10吉比特以太网在光纤上传送10Gb/s信号。 只支持全双工,无争用问题。

17.8、本节课小结

18、IEEE 802.11 无线局域网

18.1、IEEE 802.11

IEEE 802.11无线局域网标准

IEEE 802.11是无线局域网通用的标准,它是由IEEE所定义的无线网络通信的标准。

虽然经常将Wi-Fi与802.11混为一谈,但两者并不等同。

18.2、802.11的MAC帧头格式

术语解释

  1. RA:Receive Address
  2. TA:Transmit Address
  3. DA:Dest Address
  4. SA:Source Address

这里所说的地址均为 MAC 地址(在链路层不牵涉到 IP 地址)

通信过程

假设设备 A 附近有一个基站 AP1,设备 B 附近有一个基站 AP2

设备 A 首先将信息发送给基站,基站 AP1 将信息发送给基站 AP2,AP2 再将信息转发给设备 B

基站的生活例子

我们做火车从一个省到另一个省,总是会收到如下这样的短信,为什么呢?这就是我们的手机卡从一个基站漫游到了另一个基站

其他格式的 MAC 帧头格式

  1. To AP:发往基站的数据帧
  2. From AP:从基站发出来的数据帧
  3. WDS:就是我们上面讲的那种啦~~~

18.3、无线局域网的分类

1、有固定基础设施无线局域网

基站 + 主机构成了基本服务集 BSS

将多个基本服务集接入线缆,便可构成扩展的服务集 ESS

主机 A 和主机 A’ 的通信路程:主机 A 将消息发送给基站 → 基站通过线缆传输给另一个基站 → 基站将信息转发给主机 A’


每一个 Wifi 名称就是一个服务集标识符,对应着一个无线接入点

2、无固定基础设施无线局域网的自组织网络

无任何的转发器、集线器、路由器以及基站等设备

由主机组成,每一台主机可充当主机和路由器的功能,既可以发送 数据,也可以转发帮忙转发数据

19、PPP 协议 & HDLC 协议

19.1、广域网

广域网的概念

广域网(WAN,Wide Area Network),通常跨接很大的物理范围,所覆盖的范围从几十公里到几千公里,它 能连接多个城市或国家,或横跨几个洲并能提供远距离通信,形成国际性的远程网络。

广域网的通信子网主要使用分组交换技术。广域网的通信子网可以利用公用分组交换网、卫星通信网和无线分 组交换网,它将分布在不同地区的局域网或计算机系统互连起来,达到资源共享的目的。如因特网(Internet) 是世界范围内最大的广域网。

关于结点交换机和路由器的说明

交换机为链路层设备,只能在单个网络中转发分组

路由器为网络层设备,可以在多个网络中转发分组

关于广域网和局域网的说明

广域网所覆盖的网络范围为:物理层、链路层和网路程;广域网侧重于点对点通信,强调资源共享

局域网所覆盖的网络范围为:物理层和链路层;局域网侧重于多点接入技术,强调数据传输

19.2、PPP协议

19.2.1、19.2.1、PPP协议的概述

拨号使用 PPP 协议~

点对点协议PPP (Point-to-Point Protocol)是目前广域网上使用最广泛的数据链路层协议,用户使用拨号电话接入因特网 时一般都使用PPP协议。

PPP 协议只支持全双工链路。

19.2.2、19.2.2、PPP协议应满足的要求

PPP协议的特点

  1. 简单:对于链路层的帧,无需纠错,无需序号,无需流量控制。
  2. 封装成帧:帧定界符(帧头的起始标识和帧尾的结束标识)
  3. 透明传输:与帧定界符一样比特组合的数据应该如何处理:异步线路(逐个字节传输)用字节填充,同步线路(比特流传输)用比特填充。
  4. 多种网络层协议:封装的IP数据报可以采用多种协议。
  5. 多种类型链路:串行/并行,同步/异步,电/光…
  6. 差错检测:使用 CRC 循环冗余码检测,有错就丢弃。
  7. 检测连接状态:链路是否正常工作。
  8. 最大传送单元:数据部分最大长度MTU。
  9. 网络层地址协商:知道通信双方的网络层地址。
  10. 数据压缩协商:发送数据时进行压缩
19.2.3、19.2.3、PPP协议无需满足的要求

PPP协议无需考虑的方面

  1. 无需纠错:检测到有错就丢弃,而不要求进行纠错或者重传
  2. 无需流量控制: 流量控制由上层完成
  3. 无需编号:无需对帧进行编号
  4. 不支持多点线路:只需要实现点对点的连接过程即可
19.2.4、19.2.4、PPP协议的三个组成部分

PPP协议三个组成部分

  1. 一个将IP数据报封装到串行链路(同步串行/异步串行)的方法。
  2. 链路控制LCP:建立并维护数据链路连接(实现身份验证),建立物理上的连接。比如我们常用的拨号上网功能,需要输入用户名和密码才能连上网
  3. 网络控制协议NCP:PPP可支持多种网络层协议,每个不同的网络层协议都要一个相应的NCP来配 置,为网络层协议建立和配置逻辑连接。
19.2.5、19.2.5、PPP协议的状态图

LCP 建立物理连接,NCP 建立逻辑连接

19.2.6、19.2.6、PPP协议的帧格式

PPP协议是面向字节的协议

  1. 帧界定符:开头和结束的标志字段,均为 0x7E(0b01111110)
  2. 地址字段:emmm … ,A 和 C 字段暂时还没有具体的意义,打酱油的~~~
  3. 协议:用于表示信息部分是什么类型的数据,比如 IP 数据报、LCP 的数据、网络控制层的数据等
  4. 信息部分:在信息部分出现帧界定符时,需要插入转移字符 0x7D(0b01111101),当然遇到转移字符的时候也要在其前面插入 0x7D。其目的是为了实现透明传输
  5. FCS:CRC 循环冗余码,用于实现检验的功能

19.3、HDLC协议

19.3.1、19.3.1、HDLC协议概述

高级数据链路控制(High-Level Data Link Control或简称HDLC)

HDLC协议是一个在同步网上传输数据、面向比特的数据链 路层协议,它是由国际标准化组织(ISO)根据IBM公司的SDLC(SynchronousData Link Control)协议扩展开发而成的。

HDLC协议的特点

  1. 数据报文可透明传输,用于实现透明传输的“0比特插入法”易于硬件实现
  2. 所有帧采用CRC检验,对信息帧进行顺序编号,可防止漏收或重份,传输可靠性高
  3. 采用全双工通信
  4. 但很少应用
19.3.2、19.3.2、HDLC的站

主站、从站、复合站

  1. 主站的主要功能是发送命令(包括数据信息)帧、接收响应帧,并负责对整个链路的控制系统的初启、 流程的控制、差错检测或恢复等。
  2. 从站的主要功能是接收由主站发来的命令帧,向主站发送响应帧,并且配合主站参与差错恢复等链路 控制。
  3. 复合站既能当从站又能当主站,主要功能是既能发送,又能接收命令帧和响应帧,并且负责整个链路的控制。

三种数据操作方式

  1. 正常响应方式:从站是个乖宝宝,发送消息需要经过主站同意
  2. 异步平衡方式:每一个复合毡都可以与别的站进行数据传输
  3. 异步响应方式:从站胆子肥了,没经过主站同意就可以进行数据传输
19.3.3、19.3.3、HDLC协议的帧格式

HDLC协议是面向比特流的协议

  1. 标志 F:帧的起始和结束标志位,值为 0b01111110
  2. 地址 A:如果是同步方式,地址为主站地址;如果为异步方式,地址为接收站的地址
  3. 控制位 C:只有两位起作用
    1. 信息帧(I)第1位为0,用来传输数据信息,或使用捎带技术对数据进行确认
    2. 监督帧(S) 10,用于流量控制和差错控制,执行对信息帧的确认、请求重发和请求暂停发送等功能
    3. 无编号帧(U) 11,用于提供对链路的建立、拆除等多种控制功能
  4. 信息 Info:传输的信息
  5. 帧检验序列 FCS:实现帧的差错检验

19.4、PPP协议 & HDLC协议

PPP协议 & HDLC协议的异同

相同点

  1. HDLC、PPP只支持全双工链路。
  2. 都可以实现透明传输。
  3. 都可以实现差错检测,但不纠正差错。

不同点


帧格式的对比


注意:一般在链路层和网络层都不去实现可靠传输,可靠传输交由传输层去完成

19.5、本节课小结

20、链路层设备

20.1、物理层扩展以太网

1、光纤扩展

以太网规定每段双绞线最长为 100m,可以通过光纤调制器和光纤传输扩大以太网络的通信范围

2、集线器扩展

通过主干集线器扩展

优点:主机之间的通信可以跨越冲突域,扩大了网络通信的范围

缺点:主干集线器构成了一个大的冲突域,每台主机都可能发生冲突,因此冲突的几率变大,通信效率降低


百度百科对冲突域的解释

在以太网中,如果某个CSMA/CD网络上的两台计算机在同时通信时会发生冲突,那么这个CSMA/CD网络就是一个冲突域(collision domain)。如果以太网中各个网段以集线器连接,因为不能避免冲突,所以它们仍然是一个冲突域。

20.2、链路层扩展以太网

20.2.1、20.2.1、网桥扩展以太网

通过网桥分隔冲突域

网桥(交换机前身)根据MAC帧的目的地址对帧进行转发和过滤。当网桥收到一个帧时,并不向所有接口转发此帧,而是 先检查此帧的目的MAC地址,然后再确定将该帧转发到哪一个接口,或者是把它丢弃(即过滤)。

集线器 & 网桥的比较

集线器:接收到数据后,通过所有端口转发此数据

网桥:根据接受到的 MAC 地址将数据转发到指定端口


冲突域(网段):一般指一个计算机网络中使用同一物理层设备(传输介质,中继器,集线器等)能够直接通讯的那一部分。

网桥的优点

  1. 分隔了冲突域,使得每个冲突域都能单独进行通信,因此网桥过滤了通信量,增大了吞吐量
  2. 将几个以太网连接起来,组成了一个更大的以太网,因此扩大了网络通信的物理范围
  3. 每个冲突域中的故障不会影响其他冲突域,因此提高了可靠性
  4. 可互连不同物理层、不同MAC子层和不同速率的以太网
20.2.2、20.2.2、网桥分类一一透明网桥

透明网桥 & 自学习

透明网桥:“透明”指以太网上的站点并不知道所发送的帧将经过哪几个网桥,是一种即插即用设备——自学习。

自学习:就是逐步填充转发表

自学习步骤演示

  1. A → B:A 发送数据帧给 B,该数据帧会到达网桥 1 的接口 1,此时网桥 1 的转发表为空,网桥 1 分析道数据帧中源地址为 A,且消息是从接口 1 过来的,因此将该 MAC 地址与接口的对应关系存储到转发表中。网桥 2 也是同样的道理。

  2. F → C

  3. B → A:B 发送数据帧给 A,当数据帧到达网桥 1 时,B 的 MAC地址与接口的对应关系会被记录下来;网桥 1 查转发表发现有 A 的地址,并且主机 A 位于端口 1。直接将该帧丢弃


转发表不会一直不变,到一定时间后,交换机会将其转发表清空,并重新进行自学习,以适应当前的网络情况

20.2.3、20.2.3、网桥分类一一源路由网桥

源路由网桥 & 发现帧

源路由网桥:在发送帧时,把详细的最佳路由信息(路由最少/时间最短)放在帧的首部中。

方法:源站以广播方式向欲通信的目的站发送一个发现帧,到达目的站后按原路返回,并从中选出最佳路径。


和走迷宫很类似,先找多条路,然后选取一条最佳的路径

20.2.4、20.2.4、多接口网桥——以太网交换机

以太网交换机 ≈ 多端口网桥

以太网交换机可以理解为由多个端口的网桥,交换机可以独占传输媒体带宽

20.3、以太网交换机的两种交换方式

直通式 & 存储转发式

  1. 直通式交换机
    1. 工作方式:查完目的地址(6B)就立刻转发。
    2. 特点:延迟小,可靠性低,无法支持具有不同速率的端口的交换。
  2. 存储转发式交换机
    1. 工作方式:将帧放入高速缓存,并检查否正确,正确则转发,错误则丢弃。
    2. 特点:延迟大,可靠性高,可以支持具有不同速率的端口的交换。

20.4、冲突域和广播域

冲突域 & 广播域

冲突域:在同一个冲突 域中的每一个节点都能收到所有被发送的帧。 简单的说就是同一时间 内只能有一台设备发送信息的范围。

广播域:网络中能接收 任一设备发出的广播帧的所有设备的集合。简 单的说如果站点发出一
个广播信号,所有能接收收到这个信号的设备范围称为一个广播域。

举个例题

例题:有几个冲突域和广播域?

答:4 个冲突域和 1 个广播域

注:路由器可分隔广播域,若没有路由器,广播域就是 1 个

20.5、本节课小结

21、本章小结

本文标签: 链路层 数据