计网 第三章 数据链路层

发布于 2023-07-01  1579 次阅读


【考纲内容】

  1. 数据链路层的功能

  2. 组帧

  3. 差错控制

    检错编码;纠错编码

  4. 流量控制与可靠传输机制

    流量控制、可靠传输与滑动窗口机制;停止-等待协议

    后退N帧协议(GBN);选择重传协议(SR)

  5. 介质访问控制

    1. 信道划分

      频分多路复用、时分多路复用、波分多路复用、码分多路复用的概念和基本原理

    2. 随机访问

      ALOHA 协议;CSMA 协议;CSMA/CD 协议;CSMA/CA 协议

    3. 轮询访问:令牌传递协议

  6. 局域网

    局域网的基本概念与体系结构;以太网与IEEE 802.3

    IEEE 802.11;令牌环网的基本原理

  7. 广域网

    广域网的基本概念;PPP协议;HDLC协议

  8. 数据链路层设备

    网桥的概念及其基本原理;局域网交换机及其工作原理

【复习提示】

本章是历年考查的重点。要求在了解链路层基本概念和功能的基础上,重点掌握滑动窗口机 制、三种可靠传输协议、各种MAC协议、HDLC协议和PPP协议,特别是CSMA/CD协议和以 太网帧格式,以及局域网的争用期和最小帧长的概念、二进制指数退避算法。此外,中继器、网 卡、集线器、网桥和局域网交换机的原理及区别也要重点掌握。

3.1数据链路层的功能

数据链路层在物理层提供服务的基础上向网络层提供服务,其主要作用是加强物理层传输原 始比特流的功能,将物理层提供的可能出错的物理连接改造为逻辑上无差错的数据链路,使之对 网络层表现为一条无差错的链路。下面具体介绍数据链路层的功能。

3.1.1为网络层提供服务

对网络层而言,数据链路层的基本任务是将源机器中来自网络层的数据传输到目标机器的网 络层。数据链路层通常可为网络层提供如下服务:

1) 无确认的无连接服务。源机器发送数据帧时不需先建立链路连接,目的机器收到数据帧 时不需发回确认。对丢失的帧,数据链路层不负责重发而交给上层处理。适用于实时通 信或误码率较低的通信信道,如以太网。

2) 有确认的无连接服务。源机器发送数据帧时不需先建立链路连接,但目的机器收到数据 帧时必须发回确认。源机器在所规定的时间内未收到确定信号时,就重传丢失的帧,以 提高传输的可靠性。该服务适用于误码率较高的通信信道,如无线通信。

3) 有确认的面向连接服务。帧传输过程分为三个阶段:建立数据链路、传输帧、释放数据 链路。目的机器对收到的每一帧都要给出确认,源机器收到确认后才能发送下一帧,因 而该服务的可靠性最高。该服务适用于通信要求(可靠性、实时性)较高的场合。

注意:有连接就一定要有确认,即不存在无确认的面向连接的服务。

3.1.2链路管理

数据链路层连接的建立、维持和释放过程称为链路管理,它主要用于面向连接的服务。链路 两端的结点要进行通信,必须首先确认对方已处于就绪状态,并交换一些必要的信息以对帧序号 初始化,然后才能建立连接,在传输过程中则要能维持连接,而在传输完毕后要释放该连接。在 多个站点共享同一物理信道的情况.下(例如在局域网中)如何在要求通信的站点间分配和管理信 道也属于数据链路层管理的范畴。

3.1.3帧定界、帧同步与透明传输

两个工作站之间传输信息时,必须将网络层的分组封装成帧,以帧的格式进行传送。将一段 数据的前后分别添加首部和尾部,就构成了帧。首部和尾部中含有很多控制信息,它们的一个重 要作用是确定帧的界限,即帧定界。而帧同步指的是接收方应能从接收到的二进制比特流中区分 出帧的起始与终止。如在HDLC通信规程中,用标识位F (01111110)来标识帧的开始和结束。 通信过程中,检测到帧标识位F即认为是帧的开始,然后一旦检测到帧标识位F即表示帧的结束。 HDLC标准帧格式如图3.1所示。

image-20230701131207488

如果在数据中恰好出现与帧定界符相同的比特组合(会误认为“传输结束”而丢弃后面的数 据),那么就要釆取有效的措施解决这个问题,即透明传输。更确切地说,透明传输就是不管所 传数据是什么样的比特组合,都应当能在链路上传送。

3.1.4流量控制

由于收发双方各自的工作速率和缓存空间的差异,可能出现发送方的发送能力大于接收方的 接收能力的现象,如若此时不适当限制发送方的发送速率(即链路上的信息流量),前面来不及接收的帧将会被后面不断发送来的帧“淹没”,造成帧的丢失而出错。因此,流量控制实际上就 是限制发送方的数据流量,使其发送速率不超过接收方的接收能力。

这个过程需要通过某种反馈机制使发送方能够知道接收方是否能跟上自己,即需要有一些规 则使得发送方知道在什么情况下可以接着发送下一帧,而在什么情况下必须暂停发送,以等待收 到某种反馈信息后继续发送。

流量控制(如图3.2所示)并不是数据链路层特有的功能,许多高层协议中也提供此功能, 只不过控制的对象不同而已。对于数据链路层来说,控制的是相邻两结点之间数据链路上的流量, 而对于运输层来说,控制的则是从源端到目的端之间的流量。

image-20230701131257119

3.1.5差错控制

由于信道噪声等各种原因,帧在传输过程中可能会出现错误。用以使发送方确定接收方是否 正确收到由其发送的数据的方法称为差错控制。通常,这些错误可分为位错和帧错。

位错指帧中某些位出现了差错。通常釆用循环冗余校验(CRC)方式发现位错,通过自动重 传请求(Automatic Repeat reQuest, ARQ)方式来重传出错的帧。具体做法是:让发送方将要发 送的数据帧附加一定的CRC冗余检错码一并发送,接收方则根据检错码对数据帧进行错误检测, 若发现错误则丟弃,发送方超时重传该数据帧。这种差错控制方法称为ARQ法。ARQ法只需返 回很少的控制信息就可有效地确认所发数据帧是否被正确接收。

帧错指帧的丢失、重复或失序等错误。在数据链路层引入定时器和编号机制,能保证每一帧 最终都能有且仅有一次正确地交付给目的结点。

3.2组帧

数据链路层之所以要把比特组合成帧为单位传输,是为了在出错时只重发出错的帧,而不必 重发全部数据,从而提高效率。为了使接收方能正确地接收并检查所传输的帧,发送方必须依据 一定的规则把网络层递交的分组封装成帧(称为组帧)。组帧主要解决帧定界、帧同步、透明传 输等问题。通常有以下4种方法实现组帧。

注意:组帧时既要加首部,又要加尾部。原因是,在网络中信息是以帧为最小单位进行传输 的,所以接收端要正确地接收帧,必须要清楚该帧在一串比特流中从哪里开始到哪里结束(因为 接收端收到的是一串比特流,没有首部和尾部是不能正确区分帧的)。而分组(即IP数据报)仅 是包含在帧中的数据部分(后面将详细讲解),所以不需要加尾部来定界。

3.2.1字符计数法

如图3.3所示,字符计数法是指在帧头部使用一个计数字段来标明帧内字符数。目的结点的 数据链路层收到字节计数值时,就知道后面跟随的字节数,从而可以确定帧结束的位置(计数字 段提供的字节数包含自身所占用的一个字节)。

image-20230701131513077

这种方法最大的问题在于如果计数字段出错,即失去了帧边界划分的依据,那么接收方就无 法判断所传输帧的结束位和下一帧的开始位,收发双方将失去同步,从而造成灾难性后果。

3.2.2字符填充的首尾定界符法

字符填充法使用一些特定的字符来定界一帧的开始(DLE STX)与结束(DLEETX)o为了 使信息位中出现的特殊字符不被误判为帧的首尾定界符,可以在特殊字符前面填充一个转义字符 (DLE)来加以区分(注意,转义字符是ASCII码中的控制字符,是一个字符,而非“D”“L”“E” 三个字符的组合),以实现数据的透明传输。接收方收到转义字符后,就知道其后面紧跟的是数 据信息,而不是控制信息。

如图3.4(a)所示的字符帧,帧的数据段中出现DLE字符,发送方在每个DLE字符前再插入 一个DLE字符[见图3.4(b)],接收方收到数据后会自己删除这个插入的DLE字符,结果仍得到 原来的数据[见图3.4(c)]。这也正是字符填充法名称的由来。

image-20230701131550575

3.2.3零比特填充的首尾标志法

如图3.5所示,零比特填充法允许数据帧包含任意个数的比特,也允许每个字符的编码包含 任意个数的比特。它使用一个特定的比特模式,即01111110来标志一帧的开始和结束。为了不使 信息位中出现的比特流01111110被误判为帧的首尾标志,发送方的数据链路层在信息位中遇到5 个连续的“1”时,将自动在其后插入一个"0”;而接收方做该过程的逆操作,即每收到5个连 续的“1”时,自动删除后面紧跟的“0”,以恢复原信息。

image-20230701131625117

零比特填充法很容易由硬件来实现,性能优于字符填充法。

3.2.4违规编码法

在物理层进行比特编码时,通常釆用违规编码法。例如,曼彻斯特编码方法将数据比特“1” 编码成“高-低”电平对,将数据比特“0”编码成“低-高”电平对,而“高-高”电平对和“低- 低”电平对在数据比特中是违规的(即没有釆用)。可以借用这些违规编码序列来定界帧的起始 和终止。局域网IEEE 802标准就釆用了这种方法。

违规编码法不需要采用任何填充技术,便能实现数据传输的透明性,但它只适用于釆用冗余 编码的特殊编码环境。

由于字节计数法中计数字段的脆弱性和字符填充法实现上的复杂性与不兼容性,目前较常用 的组帧方法是比特填充法和违规编码法。

3.3差错控制

实际通信链路都不是理想的,比特在传输过程中可能会产生差错,1可能会变成0, 0也 可能会变成1,这就是比特差错。比特差错是传输差错中的一种,本节仅讨论比特差错。

通常利用编码技术进行差错控制,主要有两类:自动重传请求ARQ和前向纠错FEC。在ARQ 方式中,接收端检测出差错时,就设法通知发送端重发,直到接收到正确的码字为止。在FEC方 式中,接收端不但能发现差错,而且能确定比特串的错误位置,从而加以纠正。因此,差错控制 又可分为检错编码和纠错编码。

3.3.1检错编码

注意:建议结合《计算机组成原理考研复习指导》第2章有关校验码的内容对比复习。

检错编码都釆用冗余编码技术,其核心思想是在有效数据(信息位)被发送前,先按某种关

系附加一定的冗余位,构成一个符合某一规则的码字后再发送。当要发送的有效数据变化时,相 应的冗余位也随之变化,使得码字遵从不变的规则。接收端根据收到的码字是否仍符合原规则来 判断是否出错。常见的检错编码有奇偶校验码和循环冗余码。

  1. 奇偶枝验码

    奇偶校验码是奇校验码和偶校验码的统称,是一种最基本的检错码。它由 n-1位信息元和 1 位校验元组成,如果是奇校验码,那么在附加一个校验元后,码长为n的码字中“1”的个数为 奇数;如果是偶校验码,那么在附加一个校验元以后,码长为n的码字中"1”的个数为偶数。 它又分为垂直奇偶校验、水平奇偶校验和水平垂直奇偶校验。

  2. 循环冗余码

    循环冗余码(Cyclic Redundancy Code, CRC)又称多项式码,任何一个由二进制数位串组成的代码都 可以与一个只含有0和1两个系数的多项式建立— 对应关系。一个k位帧可以视为从$X^{k-1}$到$X^{0}$的上次多 项式的系数序列,这个多项式的阶数为 k - 1 ,高位是$X^{k-1}$项的系数,下一位是$X^{k-2}$的系数,以此类推。例如,1110011有7位,表示成多项式是$X^{6}+X^{5}+X^{4}+X+1$。

    给定一个 m bit的帧或报文,发送器生成一个 r bit 的序列,称为帧检验序列(FCS)。这样所形成的帧将 由m + r比特组成。发送方和接收方事先商定一个多项式 $G(x)$ (最高位和最低位必须为1),使这 个带检验码的帧刚好能被预先确定的多项式 $G(x)$ 整除。接收方用相同的多项式去除收到的帧,如果无余数,那么认为无差错。

    假设一个帧有m位,其对应的多项式为 $G(x)$ ,则计算冗余码的步骤如下:

    1)加0。假设 $G(x)$ 的阶为 r,在帧的低位端加上 r 个0。

    2)模2除。利用模2除法,用 $G(x)$ 对应的数据串去除 1)中计算出的数据串,得到的余数即为冗余码(共r位,前面的0不可省略)。

    多项式以2为模运算。按照模2运算规则,加法不进位,减法不借位,它刚好是异或操作。 乘除法类似于二进制的运算,只是在做加减法时按模2规则进行。

    冗余码的计算举例:设 $G(x)=1101$ (即 r = 3),待传送数据以 $M= 101001$ (即 m = 6),经模2 除法运算后的结果是:商 $Q=110101$ (这个商没什么用),余数 $R = 001$。所以发送出去的数据为 101001 001 (即$2^{r}M+FCS$ ),共有m + r位。循环冗余码的运算过程如图3.6所示。

    image-20230701132725643

3.3.2纠错编码

在数据通信的过程中,解决差错问题的一种方法是在每个要发送的数据块上附加足够的冗余 信息,使接收方能够推导出发送方实际送出的应该是什么样的比特串。最常见的纠错编码是海明 码,其实现原理是在有效信息位中加入几个校验位形成海明码,并把海明码的每个二进制位分配 到几个奇偶校验组中。当某一位出错后,就会引起有关的几个校验位的值发生变化,这不但可以 发现错位,而且能指出错位的位置,为自动纠错提供依据。

现以数据码 1010 为例讲述海明码的编码原理和过程。

  1. 确定海明码的位数

    设 n 为有效信息的位数,k 为校验位的位数,则信息位 n 和校验位 k 应满足 $n+k\le2^k-1$ (若要检测两位错,则需再增加 1 位校验位,即 k+1 位)

    设 n 为4, k 为3。海明码位数为 $n+k=7\le2^3-1$ 成立,则 n、k 有效。设信息位为$D_4D_3D_2D_1$(1010),共 4 位, 校验位为$P_3P_2P_1$,共 3 位,对应的海明码为$H_7H_6H_5H_4H_3H_2H_1$。

  2. 确定校验位的分布

    规定校验位$P_i$在海明位号为$2^{i-1}$的位置上,其余各位为信息位,因此有:

    image-20230701134140239

  3. 分组以形成校验关系

    每个数据位用多个校验位进行校验,但要满足条件:被校验数据位的海明位号等于校验该数据位的各校验位海明位号之和。另外,校验位不需要再被校验。分组形成的校验关系如下。

    image-20230701134355052

  4. 校验位取值

    校验位 $P_i$ 的值为第 i 组(由该校验位校验的数据位)所有位求异或。

    根据(3)中的分组有

    image-20230701134316756

  5. 海明码的校验原理

    每个校验组分别利用校验位和参与形成该校验位的信息位进行奇偶校验检查,构成 k 个校验方程:

    image-20230701134614929

    若 $S_3S_2S_1$ 的值为“000”,则说明无错;否则说明出错,且这个数就是错误位的位号,如 $S_3S_2S_1$ = 001,说明第1位岀错,即 $H_1$ 出错,直接将该位取反就达到了纠错的目的。

海明距离

在编码理论中,海明距离(Hamming distance)是一个重要的概念,它被定义为两个等长字符串之间对应位置不同字符的个数。换句话说,一个字符串变为另一个字符串所需要的最小单字符替换次数就是它们的海明距离。例如,字符串"karolin"与"kathrin"的海明距离就是3。对于二进制码来说,海明距离就是两个码字之间不同位的数目。例如,二进制字符串"1010101"和"1001001"的海明距离是2。

在海明码(Hamming code)中,海明距离的概念被用来设计纠错码。海明码是一种线性块码,它的特性是任意两个码字之间的最小海明距离为3,这使得它能够纠正单个比特的错误,检验双比特的错误。换句话说,如果一个码字在传输过程中产生了一个比特的错误,由于错误的码字与任何有效的码字的海明距离至少为2,可以通过找出与其海明距离最小的有效码字来纠正这个错误。

海明码“纠错” d 位,需要码距为 2d+1 的编码方案;“检错” d 位,则只需码距为 d+1

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

3.4.1流量控制、可靠传输与滑动窗口机制

流量控制涉及对链路上的帧的发送速率的控制,以使接收方有足够的缓冲空间来接收每个 帧。例如,在面向帧的自动重传请求系统中,当待确认帧的数量增加时,有可能超出缓冲存储空 间而造成过载。流量控制的基本方法是由接收方控制发送方发送数据的速率,常见的方式有两种: 停止-等待协议和滑动窗口协议。

  1. 停止-等待流量控制基本原理

    发送方每发送一帧,都要等待接收方的应答信号,之后才能发送下一帧;接收方每接收一帧, 都要反馈一个应答信号,表示可接收下一帧,如果接收方不反馈应答信号,那么发送方必须一直 等待。每次只允许发送一帧,然后就陷入等待接收方确认信息的过程中,因而传输效率很低。

  2. 滑动窗口流量控制基本原理

    在任意时刻,发送方都维持一组连续的允许发送的帧的序号,称为发送窗口;同时接收方也 维持一组连续的允许接收帧的序号,称为接收窗口。发送窗口用来对发送方进行流量控制,而发 送窗口的大小阮代表在还未收到对方确认信息的情况下发送方最多还可以发送多少个数据帧。 同理,在接收端设置接收窗口是为了控制可以接收哪些数据帧和不可以接收哪些帧。在接收方, 只有收到的数据帧的序号落入接收窗口内时,才允许将该数据帧收下。若接收到的数据帧落在接 收窗口之外,则一律将其丢弃。

    image-20230701215624564

    发送端每收到一个确认帧,发送窗口就向前滑动一个帧的位置,当发送窗口内没有可以发送 的帧(即窗口内的帧全部是已发送但未收到确认的帧)时,发送方就会停止发送,直到收到接收 方发送的确认帧使窗口移动,窗口内有可以发送的帧后,才开始继续发送。

    接收端收到数据帧后,将窗口向前移一个位置,并发回确认帧,若收到的数据帧落在接收窗 口之外,则一律丢弃。

    滑动窗口有以下重要特性:

    1. 只有接收窗口向前滑动(同时接收方发送了确认帧)时,发送窗口才有可能(只有发送 方收到确认帧后才一定)向前滑动。

    2. 从滑动窗口的概念看,停止-等待协议、后退N帧协议和选择重传协议只在发送窗口大小 与接收窗口大小上有所差别:

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

      后退N帧协议:发送窗口大小>1,接收窗口大小=lo

      选择重传协议:发送窗口大小>1,接收窗口大小>1。

    3. 接收窗口的大小为1时,可保证帧的有序接收。

    4. 数据链路层的滑动窗口协议中,窗口的大小在传输过程中是固定的(注意与第5章传输 层的滑动窗口协议的区别)。

  3. 可靠传输机制

    数据链路层的可靠传输通常使用确认和超时重传两种机制来完成。确认是一种无数据的控制 帧,这种控制帧使得接收方可以让发送方知道哪些内容被正确接收。有些情况下为了提高传输效 率,将确认捎带在一个回复帧中,称为捎带确认。超时重传是指发送方在发送某个数据帧后就开 启一个计时器,在一定时间内如果没有得到发送的数据帧的确认帧,那么就重新发送该数据帧, 直到发送成功为止。

    自动重传请求(Auto Repeat reQuest, ARQ)通过接收方请求发送方重传出错的数据帧来恢 复岀错的帧,是通信中用于处理信道所带来差错的方法之一。传统自动重传请求分为三种,即停 止一等待(Stop-and-Wait) ARQ、后退 N帧(Go-Back-N) ARQ 和选择性重传(Selective Repeat) ARQo后两种协议是滑动窗口技术与请求重发技术的结合,由于窗口尺寸开到足够大时,帧在线 路上可以连续地流动,因此又称其为连续ARQ协议。注意,在数据链路层中流量控制机制和可

3.4.2单帧滑动窗口与停止-等待协议

在停止-等待协议中,源站发送单个帧后必须等待确认,在目的站的回答到达源站之前,源站 不能发送其他的数据帧。从滑动窗口机制的角度看,停止-等待协议相当于发送窗口和接收窗口大 小均为1的滑动窗口协议。

在停止-等待协议中,除数据帧丢失外,还可能出现以下两种差错。

到达目的站的帧可能已遭破坏,接收站利用前面讨论过的差错检测技术检岀后,简单地将该 帧丢弃。为了对付这种可能发生的情况,源站装备了计时器。在一个帧发送之后,源站等待确认, 如果在计时器计满时仍未收到确认,那么再次发送相同的帧。如此重复,直到该数据帧无错误地 到达为止。

另一种可能的差错是数据帧正确而确认帧被破坏,此时接收方已收到正确的数据帧,但发送 方收不到确认帧,因此发送方会重传已被接收的数据帧,接收方收到同样的数据帧时会丢弃该帧, 并重传一个该帧对应的确认帧。发送的帧交替地用0和1来标识,肯定确认分别用ACKO和ACK1 来表示,收到的确认有误时,重传已发送的帧。对于停止-等待协议,由于每发送一个数据帧就停 止并等待,因此用Ibit来编号就已足够。在停止-等待协议中,若连续出现相同发送序号的数据帧, 表明发送端进行了超时重传。连续出现相同序号的确认帧时,表明接收端收到了重复帧。

此外,为了超时重发和判定重复帧的需要,发送方和接收方都须设置一个帧缓冲区。发送端 在发送完数据帧时,必须在其发送缓存中保留此数据帧的副本,这样才能在出差错时进行重传。 只有在收到对方发来的确认帧ACK时,方可清除此副本。

由图3.9可知,停止-等待协议通信信道的利用率很低。为了克服这一缺点,就产生了另外两种协议,即后退N帧协议和选择重传协议。

image-20230701215931086

3.4.3多帧滑动窗口与后退N帧协议(GBN)

在后退N帧式ARQ中,发送方无须在收到上一个帧的ACK后才能开始发送下一帧,而是可以连续发送帧。当接收方检测出失序的信息帧后,要求发送方重发最后一个正确接收的信息帧之后的所有未被确认的帧;或者当发送方发送了N个帧后,若发现该N个帧的前一个帧在计时器 超时后仍未返回其确认信息,则该帧被判为出错或丢失,此时发送方就不得不重传该出错帧及随 后的N个帧。换句话说,接收方只允许按顺序接收帧。

如图3.10所示,源站向目的站发送数据帧。当源站发完0号帧后,可以继续发送后续的 1 号帧、2 号帧等。源站每发送完一帧就要为该帧设置超时计时器。由于连续发送了许多帧,所以 确认帧必须要指明是对哪一帧进行确认。为了减少开销,GBN 协议还规定接收端不一定每收到一 个正确的数据帧就必须立即发回一个确认帧,而可以在连续收到好几个正确的数据帧后,才对最 后一个数据帧发确认信息,或者可在自己有数据要发送时才将对以前正确收到的帧加以捎带确 认。这就是说,对某一数据帧的确认就表明该数据帧和此前所有的数据帧均已正确无误地收到。 在图3.10中,ACKn 表示对第 n 号帧的确认,表示接收方已正确收到第"号帧及以前的所有帧, 下一次期望收到第 n+1号帧(也可能是第0号帧)。接收端只按序接收数据帧。虽然在有差错的 2 号帧之后接着又收到了正确的6个数据帧,但接收端都必须将这些帧丢弃。接收端虽然丢弃了 这些不按序的无差错帧,但应重复发送已发送的最后一个确认帧 ACK1 (这是为了防止已发送的 确认帧ACK1丢失)。

后退N帧协议的接收窗口为1,可以保证按序接收数据帧。若采用 n 比特对帧编号,则其发 送窗口的尺寸 $W_T$ 应满足 $1\le W_T\le2^n-1$ 。若发送窗口的尺寸大于 $2^n-1$ ,则会造成接收方无法分辨 新帧和旧帧(请参考本章疑难点3)。

从图3.10不难看出,后退N帧协议一方面因连续发送数据帧而提高了信道的利用率,另一 方面在重传时又必须把原来已传送正确的数据帧进行重传(仅因这些数据帧的前面有一个数据帧 出了错),这种做法又使传送效率降低。由此可见,若信道的传输质量很差导致误码率较大时, 后退 N 帧协议不一定优于停止-等待协议。

image-20230701220341653

3.4.4多帧滑动窗口与选择重传协议(SR)

为进一步提高信道的利用率,可设法只重传出现差错的数据帧或计时器超时的数据帧,但此 时必须加大接收窗口,以便先收下发送序号不连续但仍处在接收窗口中的那些数据帧。等到所缺 序号的数据帧收到后再一并送交主机。这就是选择重传ARQ协议。

在选择重传协议中,每个发送缓冲区对应一个计时器,当计时器超时时,缓冲区的帧就会重传。另外,该协议使用了比上述其他协议更有效的差错处理策略,即一旦接收方怀疑帧出错,就 会发一个否定帧NAK给发送方,要求发送方对NAK中指定的帧进行重传,如图3.11所示。

选择重传协议的接收窗口尺寸歹r和发送窗口尺寸町都大于1,—次可以发送或接收多个帧。 若釆用"比特对帧编号,为了保证接收方向前移动窗口后,新窗口序号与旧窗口序号没有重叠部 分,需要满足条件:$接收窗口W_R+发送窗口W_T\le2^n$ 假定仍然釆用累计确认的方法,并且接收

窗口 $W_R$ 显然不应超过发送窗口 $W_T$ (否则无意义),那么接收窗口尺寸不应超过序号范围的一半,即 $WR\le2^{n-1}$ 。接收窗口为最大值时,$W{Tmax}=W_{Rmax}=2^{n-1}$ 。需要提醒读者的是,一般情况下,在 SR 协议中,接收窗口的大小和发送窗口的大小是相同的。

image-20230701221146238

选择重传协议可以避免重复传送那些本己正确到达接收端的数据帧,但在接收端要设置具有 相当容量的缓冲区来暂存那些未按序正确收到的帧。接收端不能接收窗口下界以下或窗口上界以 上的序号的帧,因此所需缓冲区的数目等于窗口的大小,而不是序号数目。

信道效率和信道吞吐率

在往年统考真题中曾经岀现过对“信道效率”“信道的吞吐率”等概念的考查,有些读者未 接触过“通信原理”等相关的课程,可能对这些概念不太熟悉,在这里给读者补充一下。

信道的效率,也称信道利用率。可从不同的角度来定义信道的效率,这里给出一种从时间角 度的定义:信道效率是对发送方而言的,是指发送方在一个发送周期的时间内,有效地发送数据 所需要的时间占整个发送周期的比率。

例如,发送方从开始发送数据到收到第一个确认帧为止,称为一个发送周期,设为T,发送 方在这个周期内共发送Z比特的数据,发送方的数据传输率为C,则发送方用于发送有效据的时间为 L/C,在这种情况下,信道的利用率为 $\frac{\frac {L} {C}} {T}$ 。

从上面的讨论可以发现,求信道的利用率主要是求周期时间T和有效数据发送时间在 题目中,这两个量一般不会直接给出,需要读者根据题意自行计算。

信道吞吐率=信道利用率x发送方的发送速率。

3.5介质访问控制

图3.12是广播信道的通信方式,结点A、B、C、D、E共享广播信道,假设A要与C发生通信,B要与D发生通信,由于它们共用一条信道,如果 不加控制,那么两对结点间的通信可能会因为互相干扰 而失败。介质访问控制的内容是,釆取一定的措施,使 得两对结点之间的通信不会发生互相干扰的情况。

常见的介质访问控制方法有信道划分介质访问控制、随机访问介质访问控制和轮询访问介质访问控制 其中前者是静态划分信道的方法,而后两者是动态分配信道的方法。

image-20230701221451153

3.5.1信道划分介质访问控制

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

下面介绍多路复用技术的概念。当传输介质的带宽超过传输单个信号所需的带宽时,人们就 通过在一条介质上同时携带多个传输信号的方法来提高传输系统的利用率,这就是所谓的多路复 用,也是实现信道划分介质访问控制的途径。多路复用技术把多个信号组合在一条物理信道上进 行传输,使多个计算机或终端设备共享信道资源,提高了信道的利用率。

釆用多路复用技术可把多个输入通道的信息整合到一个复用通道中,在接收端把收到的信息分离出来并传送到对应的输出通道,如图3.13所示。

image-20230701221850776

信道划分的实质就是通过分时、分频、分码等方法把原来的一条广播信道,逻辑上分为几条 用于两个结点之间通信的互不干扰的子信道,实际上就是把广播信道转变为点对点信道。

信道划分介质访问控制分为以下4种。

  1. 频分多路复用(FDM)

    频分多路复用是一种将多路基带信号调制到不同频率载波上,再叠加形成一个复合信号的多 路复用技术。在物理信道的可用带宽超过单个原始信号所需带宽的情况下,可将该物理信道的总 带宽分割成若干与传输单个信号带宽相同(或略宽)的子信道,每个子信道传输一种信号,这就是频分多路复用,如图3.14所示。

    每个子信道分配的带宽可不相同,但它们的总和必须不超过信道的总带宽。在实际应用中,为了防止子信道之间的干扰,相邻信道之间需要加入“保护频帯”。

    频分多路复用的优点在于充分利用了传输介质的带宽,系统效率较高;由于技术比较成熟,实现也较容易。

  2. 时分多路复用(TDM)

    时分多路复用是将一条物理信道按时间分成若干时间片,轮流地分配给多个信号使用。每个 时间片由复用的一个信号占用,而不像FDM那样,同一时间同时发送多路信号。这样,利用每个信号在时间上的交叉,就可以在一条物理信道上传输多个信号,如图3.15所示。

    image-20230701222126965

    就某个时刻来看,时分多路复用信道上传送的仅是某一对设备之间的信号;就某段时间而言, 传送的是按时间分割的多路复用信号。但由于计算机数据的突发性,一个用户对已经分配到的子 信道的利用率一般不高。统计时分多路复用(STDM,又称异步时分多路复用)是TDM的一种 改进,它釆用STDM帧,STDM帧并不固定分配时隙,而按需动态地分配时隙,当终端有数据要 传送时,才会分配到时间片,因此可以提高线路的利用率。例如,线路传输率为8000b/s, 4个用 户的平均速率都为2000b/s,当釆用TDM方式时,每个用户的最高速率为2000b/s,而在STD。M 方式下,每个用户的最高速率可达8000b/s。

  3. 波分多路复用(WDM)

    波分多路复用即光的频分多路复用,它在一根光纤中传输多种不同波长(频率)的光信号,由 于波长(频率)不同,各路光信号互不干扰,最后再用波长分解复用器将各路波长分解出来。由于 光波处于频谱的高频段,有很高的带宽,因而可以实现多路的波分复用,如图3.16所示。

  4. 码分多路复用(CDM)

    码分多路复用是釆用不同的编码来区分各路原始信号的一种复用方式。与FDM和TDM不同, 它既共享信道的频率,又共享时间。下面举一个直观的例子来理解码分复用,如图3.17所示。

    image-20230701222238930

    假设A站要向C站运输黄豆,B站要向C站运输绿豆,A与C、B与C之间有一条公共的道路,可以类比为广播信道。

    在频分复用方式下,公共道路被划分为两个车道,分别提供给A到C的车和B到C的车行走,两类车可以同时行走,但只分到了公共车道的一半,因此频分复用(波分复用也一样)共享时间而不共享空间。

    在时分复用方式下,先让A到C的车走一趟,再让B到C的车走一趟,两类车交替地占用 公共车道。公共车道没有划分,因此两车共享了空间,但不共享时间。

    码分复用与另外两种信道划分方式大为不同,在码分复用情况下,黄豆与绿豆放在同一辆车 上运送,到达C后,由C站负责把车上的黄豆和绿豆分开。因此,黄豆和绿豆的运送,在码分复 用的情况下,既共享了空间,也共享了时间。

    码分多址(Code Division Multiple Access, CDMA)是码分复用的一种方式,其原理是每比 特时间被分成初个更短的时间槽,称为码片(Chip),通常情况下每比特有64或128个码片。每 个站点被指定一个唯一的m位代码或码片序列。发送1时,站点发送码片序列;发送0时,站点 发送码片序列的反码。当两个或多个站点同时发送时,各路数据在信道中线性相加。为从信道中 分离出各路信号,要求各个站点的码片序列相互正交。

    简单理解就是,A站向C站发出的信号用一个向量来表示,B站向C站发出的信号用另一个 向量来表示,两个向量要求相互正交。向量中的分量,就是所谓的码片。

    下面举例说明CDMA的原理。

    假如站点A的码片序列被指定为00011011,则A站发送00011011就表示发送比特1,发送 11100100就表示发送比特0。按惯例将码片序列中的0写为-1,将1写为+1, A站的码片序列就 是 (-1 -1 -1 +1 +1 -1 +1 +1)。

    令向量 S 表示A站的码片向量,令T表示B站的码片向量。两个不同站的码片序列正交, 即向量 ST 的规格化内积(Inner Product)为0:

    $$
    \vec S \cdot \vec T=\frac{1}{m}\sum_{i=1}^nS_iT_i=0
    $$
    任何一个码片向量和该码片向量自身的规格化内积都是1,任何一个码片向量和该码片反码 的向量的规格化内积是T,如

    image-20230702121212362

    令向量 T 为 (-1 -1 +1 -1 +1 +1 +1 -1)。

    当A站向C站发送数据1时,就发送了向量 (-1-1-1 +1 +1 -1 +1 +1)。

    当B站向C站发送数据0时,就发送了向量 (+1+1 -1 +1 -1 -1 -1 +1)。 两个向量到了公共信道上就进行叠加,实上就是线性相加,得到
    $$
    \vec{S}+\vec{T} = (0, 0, -2, 2, 0, -2, 0, 2)
    $$
    到达C站后,进行数据分离。如果要得到来自A站的数据,那么就让 ST 进行规格化内积,得到
    $$
    \vec{S} \cdot (\vec{S} + \vec{T}) = 1
    $$
    所以A站发出的数据是1。同理,如果要得到来自B站的数据,那么
    $$
    \vec{T} \cdot (\vec{S} + \vec{T}) = -1
    $$
    因此从B站发送过来的信号向量是一个反码向量,代表0。

    规格化内积是线性代数中的内容,但不在考研大纲之中,实际上就是在得到两个向量的内积后再除以向量的分量的个数。

    码分多路复用技术具有频谱利用率高、抗干扰能力强、保密性强、语音质量好等优点,还可以减少投资和降低运行成本,主要用于无线通信系统,特别是移动通信系统。

3.5.2随机访问介质访问控制

在随机访问协议中,不釆用集中控制方式解决发送信息的次序问题,所有用户能根据自己的 意愿随机地发送信息,占用信道全部速率。在总线形网络中,当有两个或多个用户同时发送信息 时,就会产生帧的冲突(碰撞,即前面所说的相互干扰),导致所有冲突用户的发送均以失败告 终。为了解决随机接入发生的碰撞,每个用户需要按照一定的规则反复地重传它的帧,直到该帧 无碰撞地通过。这些规则就是随机访问介质访问控制协议,常用的协议有ALOHA协议、CSMA 协议、CSMA/CD协议和CSMA/CA协议等,它们的核心思想都是:胜利者通过争用获得信道, 从而获得信息的发送权。因此,随机访问介质访问控制协议又称争用型协议。

读者会发现,如果介质访问控制釆用信道划分机制,那么结点之间的通信要么共享空间,要 么共享时间,要么两者都共享;而如果釆用随机访问控制机制,那么各结点之间的通信就可既不 共享时间,也不共享空间。所以随机介质访问控制实质上是一种将广播信道转化为点到点信道的 行为,如图3.18所示。

image-20230701224630183

1. ALOHA协议

夏威夷大学早期研制的随机接入系统称为ALOHA,它是Additive Link On-line HAwaii system 的缩写。ALOHA协议分为纯ALOHA协议和时隙ALOHA协议两种。

(1) 纯ALOHA协议

纯ALOHA协议的基本思想是,当网络中的任何一个站点需要发送数据时,可以不进行任何 检测就发送数据。如果在一段时间内未收到确认,那么该站点就认为传输过程中发生了冲突。发 送站点需要等待一段时间后再发送数据,直至发送成功。图3.19所示的模型不仅可代表总线形网 络的情况,而且可以代表无线信道的情况。

image-20230701224708919

图3.20表示一个纯ALOHA协议的工作原理。每个站均自由地发送数据帧。为简化问题,不考虑由信道不良而产生的误码,并假定所有站发送的帧都是定长的,帧的长度不用比特而用发送这个帧所需的时间来表示,在图3.20中用 $T_0$ 。表示这段时间。

image-20230701224813846

在图3.20的例子中,当站1发送帧1时,其他站都未发送数据,所以站1的发送必定是成功 的。但随后站2和站NT发送的帧2和帧3在时间上重叠了一些(即发生了碰撞)。碰撞的结果 是,碰撞双方(有时也可能是多方)所发送的数据出现了差错,因而都须进行重传。但是发生碰 撞的各站并不能马上进行重传,因为这样做必然会继续发生碰撞。纯ALOHA系统釆用的重传策 略是让各站等待一段随机的时间,然后再进行重传。若再次发生碰撞,则需要再等待一段随机的 时间,直到重传成功为止。图中其余一些帧的发送情况是帧4发送成功,而帧5和帧6发生碰撞。

假设网络负载(几时间内所有站点发送成功的和未成功而重传的帧数)为G,则纯 ALOHA 网络的吞吐量(7。时间内成功发送的平均帧数)为 $S=G^{-2G}$ 。当 $G = 0.5$ 时,$S=0.5e^{-1}\approx0.184$ , 这是吞吐量 S 可能达到的极大值。可见,纯ALOHA网络的吞吐量很低。为了克服这一缺点,人 们在原始的纯ALOHA协议的基础上进行改进,产生了时隙ALOHA协议。

(2)时隙ALOHA协议

时隙ALOHA协议把所有各站在时间上同步起来,并将时间划分为一段段等长的时隙(Slot), 规定只能在每个时隙开始时才能发送一个帧。从而避免了用户发送数据的随意性,减少了数据产 生冲突的可能性,提高了信道的利用率。

图3.21为两个站的时隙ALOHA协议的工作原理示意图。时隙的长度几使得每个帧正好在 一个时隙内发送完毕。每个帧在到达后,一般都要在缓存中等待一段小于几的时间,然后才能发 送出去。在一个时隙内有两个或两个以上的帧到达时,在下一个时隙将产生碰撞。碰撞后重传的 策略与纯ALOHA的情况是相似的。

image-20230701225401918

时隙ALOHA网络的吞吐量S与网络负载G的关系是 $S=G^{-G}$ 。当 $G=1$ 时, $S=e^{-1}\approx0.368$ 。这是吞吐量S可能达到的极大值。可见,时隙ALOHA网络比纯ALOHA网络的吞吐量大了 1倍。

2. CSMA协议

时隙ALOHA系统的效率虽然是纯ALOHA系统的两倍,但每个站点都是随心所欲地发送数 据的,即使其他站点正在发送也照发不误,因此发送碰撞的概率很大。

若每个站点在发送前都先侦听一下共用信道,发现信道空闲后再发送,则就会大大降低冲突 的可能,从而提高信道的利用率,载波侦听多路访问(Carrier Sense Multiple Access, CSMA)协 议依据的正是这一思想。CSMA协议是在ALOHA协议基础上提出的一种改进协议,它与ALOHA 协议的主要区别是多了一个载波侦听装置。

根据侦听方式和侦听到信道忙后的处理方式不同,CSMA协议分为三种。

(1) 1-坚持 CSMA

1-坚持CSMA (1-persistent CSMA)的基本思想是:一个结点要发送数据时,首先侦听信道; 如果信道空闲,那么立即发送数据;如果信道忙,那么等待,同时继续侦听直至信道空闲;如果 发生冲突,那么随机等待一段时间后,再重新开始侦听信道。

“1-坚持”的含义是:侦听到信道忙后,继续坚持侦听信道;侦听到信道空闲后,发送帧的概 率为1,即立刻发送数据。

传播延迟对1-坚持CSMA协议的性能影响较大。结点A开始发送数据时,结点B也正好有数 据要发送,但这时结点A发出数据的信号还未到达结点B,结点B侦听到信道空闲,于是立即发 送数据,结果必然导致冲突。即使不考虑延迟,1-坚持CSMA协议也可能产生冲突。例如,结点A 正在发送数据时,结点B和C也准备发送数据,侦听到信道忙,于是坚持侦听,结果当结点A一 发送完毕,结点B和C就会立即发送数据,同样导致冲突。

(2) 非坚持CSMA

非坚持CSMA (Non-persistent CSMA)的基本思想是:一个结点要发送数据时,首先侦听信 道;如果信道空闲,那么立即发送数据;如果信道忙,那么放弃侦听,等待一个随机的时间后再 重复上述过程。

非坚持CSMA协议在侦听到信道忙后就放弃侦听,因此降低了多个结点等待信道空闲后同时 发送数据导致冲突的概率,但也会增加数据在网络中的平均延迟。可见,信道利用率的提高是以 增加数据在网络中的延迟时间为代价的。

(3) p-坚持 CSMA

p-坚持CSMA (P-persistentCSMA)用于时分信道,其基本思想是:一个结点要发送数据时, 首先帧听信道;如果信道忙,就持续侦听,直至信道空闲;如果信道空闲,那么以概率p发送数 据,以概率1-p推迟到下一个时隙;如果在下一个时隙信道仍然空闲,那么仍以概率p发送数据, 以概率1-p推迟到下一个时隙;这个过程一直持续到数据发送成功或因其他结点发送数据而检测 到信道忙为止,若是后者,则等待下一个时隙再重新开始帧听。

p-坚持CSMA在检测到信道空闲后,以概率p发送数据,以概率1 -p推迟到下一个时隙, 其目的是降低1-坚持CSMA协议中多个结点检测到信道空闲后同时发送数据的冲突概率;釆用坚 持''帧听”的目的是,试图克服非坚持CSMA协议中由于随机等待而造成的延迟时间较长的缺点。 因此,p-坚持CSMA协议是非坚持CSMA协议和1-坚持CSMA协议的折中方案。

三种不同类型的CSMA协议比较如表3.1所示。

信道状态 1-坚持 非坚持 坚持
空闲 立即发送数据 立即发送数据 以概率P发送数据,以概率1-P推迟到下一个时隙
继续坚持侦听 放弃侦听,等待一个随机的时间后再侦听 持续侦听,直至信道空闲

3. CSMA/CD 协议

载波侦听多路访问/碰撞检测(Carrier Sense Multiple Access with Collision Detection, CSMA/CD) 协议是CSMA协议的改进方案,适用于总线形网络或半双工网络环境。“载波帧听"就是发送前先 侦听,即每个站在发送数据之前先要检测一下总线上是否有其他站点正在发送数据,若有则暂时不 发送数据,等待信道变为空闲时再发送。“碰撞检测”就是边发送边侦听,即适配器边发送数据边 检测信道上信号电压的变化情况,以便判断自己在发送数据时其他站点是否也在发送数据。

CSMA/CD的工作流程可简单概括为“先听后发,边听边发(区别于CSMA协议),冲突停 发,随机重发”。

1) 适配器从其父结点获得一个网络层数据报,准备一个以太网帧,并把该帧放到适配器缓 冲区中。

2) 如果适配器侦听到信道空闲,那么它开始传输该帧。如果适配器侦听到信道忙,那么它 将等待直至侦听到没有信号能量,然后开始传输该帧。

3) 在传输过程中,适配器检测来自其他适配器的信号能量。如果这个适配器传输了整个帧, 而没有检测到来自其他适配器的信号能量,那么这个适配器完成该帧的传输。否则,适 配器就须停止传输它的帧,取而代之传输一个48比特的拥塞信号。

4) 在中止(即传输拥塞信号)后,适配器釆用截断二进制指数退避算法等待一段随机时间 后返回到步骤2)。

总线的传播时延对CSMA/CD的影响很大。如图3.20所示,设 $\tau$ 为单程传播时延。在 $\tau=0$ 时, A发送数据,B检测到信道空闲。在 $t=\tau-\delta$ 时,A发送的数据还未到达B,由于B检测到信道空 闲而发送数据。经过时间 $\frac{\delta}{2}$ 后,即在 $t=\tau-\delta/2$ 时,A发送的数据和B发送的数据发生碰撞,但 这时A和B都不知道。在 $t=\tau$ ,时,B检测到碰撞,于是停止发送数据。在 $t=2\tau-\delta$ 时,A检测到碰撞,也停止发送数据。显然,CSMA/CD中的站不可能同时进行发送和接收,因此采用CSMA/CD 协议的以太网不可能进行全双工通信,而只能进行半双工通信。

image-20230701230253688

由图3.22可知,站A在发送帧后至多经过时间 $2\tau$ (端到端时延的两倍)就能知道所发送的帧是否发生碰撞(当 $\delta \to0$ 时)。因此把以太网端到端往返时间 $2\tau$ 了称为争用期(又称冲突窗口或碰撞窗口)。每个站在自己 发送数据之后的一小段时间内,存在发生冲突的可能性,只有经过争用期这段时间还未检测到冲突时,才能确定这次发送不会发生碰撞。

为了确保发送站在发送数据的同时能检测到可能存在的冲突,需要在发送完帧之前就能收到自己发送出去的数据,即帧的传输时延至少要两倍于信号在总线中的传播时延,所以CSMA/CD总线网中的所有数据帧都必须要大于一个最小帧长。任何站点收到帧长小于最小帧长的帧时,就把它当作无效帧立即丢弃。最小帧长的计算公式为
$$
最小帧长=总线传播时延\times数据传输率\times2
$$
例如,以太网规定取51.2μs为争用期的长度。对于10Mb/s的以太网,在争用期内可发送512bit, 即64B。在以太网发送数据时,如果前64B未发生冲突,那么后续数据也就不会发生冲突(表示已 成功抢占信道)。换句话说,如果发生冲突,那么就一定在前64B。由于一旦检测到冲突就立即停 止发送,因此这时发送出去的数据一定小于64B。因此,以太网规定最短帧长为64B,凡长度小于 64B的都是由于冲突而异常终止的无效帧。

如果只发送小于64B的帧,如40B的帧,那么需要在MAC子层中于数据字段的后面加入一 个整数字节的填充字段,以保证以太网的MAC帧的长度不小于64B。

除检测冲突外,CSMA/CD还能从冲突中恢复。一旦发生了冲突,参与冲突的两个站点紧接着 再次发送是没有意义的,如果它们这样做,那么将会导致无休止的冲突。CSMA/CD釆用二进制指 数退避算法来解决碰撞问题。算法精髓如下:

1) 确定基本退避时间,一般取两倍的总线端到端传播时延 $2\tau$ (即争用期)。

2) 定义参数奴它等于重传次数,但上不超过10,即 k=min[重传次数,10] 。当重传次数不超过10时,左等于重传次数;当重传次数大于10时,左就不再增大而一直等于10 (这个条件往往容易忽略,请读者注意)。

3) 从离散的整数集合 $0, 1, \cdot\cdot\cdot, 2^k-1$ 中随机取出一个数r,重传所需要退避的时间就是r倍的基本退避时间,即 $2r\tau$ 。

4) 当重传达16次仍不能成功时,说明网络太拥挤,认为此帧永远无法正确发出,抛弃此帧并向高层报告出错(这个条件也容易忽略,请读者注意)。

现在来看一个例子。假设一个适配器首次试图传输一帧,当传输时,它检测到碰撞。第1次 重传时,k= 1,随机数r从整数{0, 1}中选择,因此适配器可选的重传推迟时间是0或2為若再 次发送碰撞,则在第2次重传时,随机数r从整数{0, 1,2, 3}中选择,因此重传推迟时间是在 $0, 2\tau, 4\tau, 6\tau$ 这4个时间中随机地选取一个。以此类推。

使用二进制指数退避算法可使重传需要推迟的平均时间随重传次数的增大而增大(这也称动态退避),因而能降低发生碰撞的概率,有利于整个系统的稳定。

4. CSMA/CA 协议

隐蔽站和暴露站

image-20230702111819578

假设无线电的覆盖范围是这样的:A 和 B 都在对方的范围内,可能潜在地相互之间有干扰;C 也可能潜在地干扰到 B 和 D,但不会干扰 A 。

首先考虑当 A 和 C 向 B 传送数据时的情形,如图 4-11(a)所示。如果 A 开始发送,然后 C 立即进行侦昕介质,它将不会听到 A 的传输,因为 A 在它的覆盖范围之外。因此 C错误地得出结论:它可以向 B 传送数据。如果 C 传送数据,将在 B 处产生冲突,从而扰乱A 发来的帧。(我们假设没有类似 CDMA 的编码模式可以提供多信道传输,因此冲突会扰乱信号,从而破坏两个帧)我们需要一个 MAC 协议,它能防止这种冲突的发生,因为冲突将导致带宽的浪费。由于竞争者离得太远而导致站无法检测到潜在的竞争者,这个问题称为隐藏终端问题( hidden station problem )。

现在让我们来考虑另一种不同的情形: B 向 A 传送数据,同时 C 想给 D 发送数据,如图 4-11(b )所示。如果 C 侦听介质,它会昕到有一个传输正在进行,从而会错误地得出结论:它不能向 D 发送数据(图中的虚线表示)。事实上, C 所昕到的传输只会搞坏 B 和 C之间区域中的接收,但是,两个接收方都不在这个危险区域。我们需要一个 MAC 协议,它能防止此类延迟传输的发生。这个问题称为暴露终端问题( exposed station problem )。

这里的困难在于开始传输之前站真正希望知道的是在接收方周围是否有无线电活动。CSMA 只能告知在侦听载波的站附近是否有活动发生。对于有线情形,所有的信号能传播到全部的站,所以这种区别并不存在;然而,在同一时刻,无论在系统中任何地方都只能有一个传输在进行。在一个基于短程无线电波的系统中,多个传输可以同时发生,只要它们有不同的目的地,并且这些目的地都不在彼此的范围内。(笔者注:因为无线信号虽然会叠加扰乱,但是会随着距离衰减,只要接收方接收到的信号没有被干扰就可以了,发送方的信号是否被干扰不影响。)我们希望当蜂窝变得越来越大时这种并发性能够发生。

CSMA/CA协议

CSMA/CD协议已成功应用于使用有线连接的局域网,但在无线局域网环境下,却不能简单地搬用CSMA/CD协议,特别是碰撞检测部分。主要有两个原因:

  1. 接收信号的强度往往会远小于发送信号的强度,且在无线介质上信号强度的动态变化范围很大,因此若要实现碰撞检测,则硬件上的花费就会过大。
  2. 在无线通信中,并非所有的站点都能够听见对方,即存在“隐蔽站”问题。

为此,802.11标准定义了广泛应用于无线局域网的CSMA/CA协议,它对CSMA/CD协议进行了修改,把碰撞检测改为碰撞避免(Collision Avoidance, CA)。带有冲突避免的 CSMA(CSMA/CA, CSMA with Collision Avoidance )。该协议在概念上类似于以太网的 CSMA/CD ,在发送前侦听信道检测到冲突后指数后退。然而,需要发送帧的站必须以随机后退开始(除非它最近没有用过信道,并且信道处于空闲状态),而且它不等待冲突的发生(笔者注:没有最短帧长限制)。具体做法是:

  1. 当一个设备准备发送数据时,首先会检测信道是否空闲。在信道空闲之后,设备不会立即发送数据,而是再侦听一个固定的DIFS(Distributed Inter-Frame Space)时间,在这段时间内没有信号,再开始执行第二步的二进制指数退避算法。

  2. 然后倒计数退避计时器(按照二进制指数退避算发,首先会在[0, CW]的范围内随机选择一个退避时间,这里的CW(Contention Window)是冲突窗口,其值是时间槽的数量。一个时间槽的长度等于网络上可能出现的最长碰撞检测时间,即从一个节点发送一个帧到达网络上最远的节点所需要的时间。在初始时CW被置为最小值。),当监听到有帧在发送时暂停该计数器。

  3. 当计数器递减到0,该站就立即发送自己的帧,并等待确认。

  4. 如果帧发送成功,目标站立即发送一个短确认。CW将被重置为其最小值。

    如果没有收到确认,则可推断出传输发生了错误,无论是冲突或是其他什么错。在这种情况下,发送方CW将会加倍(直到一个最大值),然后设备会在新的[0, CW]范围内再次随机选择一个退避时间,重复上述过程,再重新试图发送。如此反复,连续像以太网那样以指数后退,直到成功发送帧或达到重传的最大次数。

拓展:

CW的最小值(CWmin)通常被设为31(对应32个时间槽),这意味着在开始二进制指数退避算法时,设备会在[0, 31]的范围内随机选择一个退避时间。注意,这个值可能因不同的物理层标准(例如802.11a/b/g/n/ac/ax)和不同的访问类别(如背景、最佳努力、视频、语音等)有所不同。

如果数据帧发送失败,CW会翻倍,直到达到一个预设的最大值(CWmax)。在IEEE 802.11标准中,CWmax通常设定为1023(对应1024个时间槽)。

在 OFDM 物理层情况下,后退选择的时间槽数范围在 0~ 15 之间,也就是说CW的最小值(CWmin)被设为15。

和以太网SCMA/CD的区别:

  1. 早期的后退有助于避免冲突。冲突避免在无线传输中非常重要,即使只发生一个冲突因为整个帧都被传输了出去,因此冲突的代价非常昂贵。
  2. 利用确认(确认-重传ARQ方案)来推断是否发生冲突,因为冲突无法被检测出来,而且无线信道的通信质量远不如有限信道。
DCF和PCF

CSMA/CD 这种操作模式称为分布式协调功能( DCF, Distributed Coordination Function ),因为每个站都独立行事,没有任何一种中央控制机制。标准还包括一个可选的操作模式,称为点协调功能( PCF, Point Coordination Function)。在这种模式下,AP 控制自己覆盖范围内的一切活动,就像蜂窝通信中的基站一样。然而,实际使用中很少用到 PCF ,因为通常没有办法阻止临近网络中的站发送竞争流量。

拓展:

在IEEE 802.11标准中,确实定义了两种不同的媒体访问控制(MAC)方案:分布式协调功能(DCF,Distributed Coordination Function)和点协调功能(PCF,Point Coordination Function)。这两种模式可以在同一个无线局域网(WLAN)中共存。

DCF模式基于载波感应多路访问/冲突避免(CSMA/CA)技术。在这种模式下,所有设备都等待媒体变为空闲,然后随机等待一段时间后开始传输。如果两个设备同时开始传输(发生冲突),它们都会停止传输并等待随机时间后重新尝试。这是802.11 WLANs最常用的模式。

然而,DCF模式无法提供质量服务(QoS)保证。为了解决这个问题,IEEE 802.11标准还定义了PCF模式。在PCF模式下,一个被称为点协调器(PC,Point Coordinator)的设备负责决定哪个设备可以发送数据,通常就是无线接入点。这种模式可以提供一定的QoS保证,但其实现和使用相对复杂,所以实际使用并不广泛。

在一个802.11 WLAN中,DCF和PCF模式可以共存。在这种情况下,点协调器在每个信标间隔(Beacon Interval)的开始时,会启动一段叫做"内容期"(Contention-Free Period,CFP)的时间,这段时间内网络按照PCF模式运行。在CFP之后,网络切换到DCF模式,允许所有设备竞争访问媒体,这段时间被称为"竞争期"(Contention Period,CP)。这样,PCF和DCF就可以在同一个网络中共存。

然而,需要注意的是,虽然802.11标准定义了PCF,但是由于其复杂性,许多设备并未实现PCF,或者即使实现了也很少使用。在实践中,大多数802.11网络主要使用DCF模式。

帧间隔(IFS)

802.11规定,所有的站完成发送后,必须再等待一段很短的时间(继续监听)才能发送下一帧。这段时间称为帧间间隔(InterFrameSpace, IFS)。帧间间隔的长短取决 于该站要发送的帧的类型。802.11使用了下列三种IFS:

  1. SIFS (短IFS):最短的间隔是短帧间间隔( SIFS, Short InterFrame Spacing),用来分隔属于一次对话的各帧,使用 SIFS 的帧类型有 ACK 帧、CTS 帧、分片/段后的数据帧突发,以及所有回答AP探询的帧等。它允许一次对话的各方具有优先抓住信道的机会,这样做是为了阻止一次数据交流中间被其他站横插一帧。

  2. *PIFS (点协调IFS):中等长度的IFS,在PCF操作中使用。

  3. DIFS (分布式协调IFS):用于异步帧竞争访问的时延。常规的数据帧之间的间隔称为DIFS,任何站都可以在介质空闲 DIFS 后尝试抓取信道发送一个新帧。采用通常的竞争规则,如果发生冲突或许还需要二进制指数后退。

  4. *两个仲裁帧间空间(AIFS, Arbitration lnterFrame Space )间隔显示了两个不同优先级的例子,用于解决服务质量问题。短的时间间隔 AIFSl 小于 DIFS ,但比 SIFS 长。它被 AP 用来把语音或其他高优先级流量移到行头。 AP 将等待一段较短的时间间隔,然后发送语音流量,这样语音流量得以在常规流量之前发送出去。较长的时间间隔 AIFS4 比 DIFS 还大,用它来发送可以延迟到常规流量之后发送的背景流量。 AP 在发送这种流量之前将等待较长的时间间隔,以便给常规流量优先发送的机会。完善的服务质量机制定义了四种不同的优先级别,分别具有不同的后退参数和不同的空闲参数。

  5. *扩展帧间间隔 (EIFS, Extended InterFrame Spacing ) ,仅用于一个站刚刚收到坏帧或未知帧后报告问题。设置这个间隔的想法是因为接收方可能不知道该怎么处理,所以应该等待一段时间,以免干扰到两站之间正在进行的对话。

image-20230702104605713

举几个例子:

  • 如果一个设备在接收到数据帧后需要回应一个ACK帧,那么它会等待SIFS时间然后发送ACK。
  • 如果一个设备正在使用PCF(Point Coordination Function,点坐标功能)进行媒体访问控制,它会在PIFS时间后尝试发送。
  • 如果一个设备正在使用DCF(Distributed Coordination Function,分布式协调功能)进行媒体访问控制,它会在DIFS时间后尝试发送。
  • 如果一个设备接收到了一个损坏的帧,它会在EIFS时间后尝试发送。
MACA协议(RTS/CTS)

MACA(Multiple Access with Collision Avoidance,即 RTS/CTS机制)作为一个可选的补充机制,用于解决 CSMA/CA (Carrier Sense Multiple Access with Collision Avoidance)无法解决的问题。

可选的 RTS/CTS 机制 使用 NAV (Network Allocation Vector)来防止隐藏终端在同一时间发送。802.11 定义信道侦听包括物理侦听和虚拟侦昕两部分。物理侦昕只是简单地检查介质,看是否存在有效的信号;有了虚拟侦昕,每个站可以保留一个信道何时要用的逻辑记录,这是通过跟踪网络分配向量( NAV, NetworkAllocation Vector)获得的。每个 RTS/CTS 帧携带原地址、目的地址和这次通信(含相应的确认帧)所持续的时间(CTS 从 RTS 帧复制得到)。听到这个帧的站就更新自己的 NAV,知道无论自己是否能够侦听到物理信号,由 NAV 所指出的时间段信道一定是繁忙的。

该机制如图 4-27 所示。在这个例子中, A 想给 B 发送,C 是 A 范围内的一个站(也有可能在 B 的范围内,但这并不重要)。 D 在 B 范围内,但不在 A 的范围内。

image-20230702110228660

为了避免该问题,802.11允许发送站对信道进行预约。该协议开始于当 A 决定向 B 发送数据时。 A 首先给 B 发送一个 RTS (Request to send)帧,请求对方允许自己发送一个帧给它。该帧能被其范围内包括 AP 在内的所有站点听到,包括C。如果 B 接收到这个请求,它就以 CTS(Clear to send) 帧作为应答,表明信道被清除可以发送。该帧也能被其范围内包括 A 和 D 在内的所有站点听到。一旦收到 CTS 帧,A 就发送数据帧,井启动一个 ACK 计时器。当正确的数据帧到达后, B 用一个 ACK 帧回复 A,完成此次交流。如果 A 的 ACK 计时器超超时, ACK没有返回,则可视为发生了一个冲突,经过一次后退整个协议重新开始运行。CTS帧有两个目的:①给源站明确的发送许可;②指示其他站点在预约期内不要发送。

如果一个站听到了 RTS帧,那么它一定离 A 很近,它必须保持沉默,至少等待足够长的时间以便在无冲突情况下 CTS 被返回给 A。如果一个站昕到了 CTS ,则它一定离 B 很近,在接下来的数据传送过程中它必须一直保持沉默,只要检查 CTS 帧,该站就可以知道数据帧的长度(即数据传输要持续多久)。

现在让我们从 C 和 D 的角度来看这次数据交流。 C 在 A 的范围内,因此它可能会收到 RTS 帧。如果收到了,它就意识到很快有人要发送数据。从 RTS 请求帧提供的信息,可以估算出数据序列将需要传多长时间,包括最后的 ACK。因此,它采取了有利于所有人的做法,停止传输任何东西,直到此次数据交换完成。(另一种说法:它听到了 A 发出的 RTS,但是没有听到 B 发出的 CTS。只要它没有干扰 CTS ,那么在数据帧传送过程中,它可以自由地发送任何信息。)(chatgpt4的说法:在收到RTS帧后,C也会开始它的NAV计时器,然后在这段时间内不进行发送。但是,如果它在SIFS时间内没有在信道上听到CTS帧,那么它会停止等待并将信道视为空闲。因此,即使RTS预约信道失败,节点C也不会“白等”。)它通过更新自己的 NAV 记录表明信道正忙,如图 4-27 所示。 D 无法昕到 RTS,但它确实昕到了 CTS ,所以它也更新自己的 NAV 。请注意, NAV 信号是不传输的,它们只是由站内部使用,提醒自己保留一定时间内的安静。

image-20230702095415859

image-20230702103252461

使用RTS和CTS帧会使网络的通信效率有所下降,但这两种帧都很短,与数据帧相比开销不算大。相反,若不使用这种控制帧,一旦发生碰撞而导致数据帧重发,则浪费的时间更多。信道预约不是强制性规定,各站可以自己决定使用或不使用信道预约只有当数据帧长度超过某一数值时,使用RTS和CTS帧才比较有利

然而,尽管 RTS/CTS 在理论上昕起来不错,但它却落入那些己被证明在实践中几乎没有价值的设计之列。为什么它在现实中很少被使用,有几个众所周知的原因。首先,它对短帧(替代 RTS 发送)或 AP (按照定义,大家都能彼此昕到)一点好处都没有。对于其他情况,该机制只会降低操作速度。802.11 中的 RTS/CTS 与我们看到的 MACA 还是有点不同,因为每个站都能听到 RTS 或 CTS ,因而在此期间保持沉默以便 ACK 无冲突地通过。正因为如此,它无助于暴露终端问题的解决:正如 MACA 一样,只对隐藏终端有好处。大多数情况下隐藏终端很少,而且不管什么原因,CSMA/CA 通过后退发送失败的站来缓解隐藏终端问题,使得传输更可能获得成功。

(笔者注:感觉王道书对比CSMA/CD与CSMA/CA这部分内容写得不好,作为尊重还是留下这一部分。)

CSMA/CD与CSMA/CA主要有如下区别:

  1. CSMA/CD可以检测冲突,但无法避免;CSMA/CA发送数据的同时不能检测信道上有无冲突,本结点处没有冲突并不意味着在接收结点处就没有冲突,只能尽量避免。

  2. 传输介质不同。CSMA/CD用于总线形以太网,CSMA/CA用于无线局域网802.11 a/b/g/n等。

  3. 检测方式不同。CSMA/CD通过电缆中的电压变化来检测;而CSMA/CA釆用能量检测、 载波检测和能量载波混合检测三种检测信道空闲的方式。

总结:CSMA/CA协议的基本思想是在发送数据时先广播告知其他结点(笔者注:为什么不是退避?),让其他结点在某段时间内不要发送数据,以免岀现碰撞。CSMA/CD协议的基本思想是发送前监听,边发送边监听, 一旦出现碰撞马上停止发送。

分段

拓展:

帧长越小,帧错误率就越小。短帧可以通过降低来自网络层消息的最大尺寸来加以实现。另外,802.11 允许把帧拆分成更小的单元一一称为 (fragent),每个段有自己的校验和。标准没有固定段的大小,但把它作为一个可以由 AP 调整的参数。这些段独立编号,使用停-等式协议(即发送方不能发送第 K+1 段,直到它己收到了第 K 段的确认〉对其进行确认。一旦获得信道,可以突发多个段。这些段一个接着一个发送,两个段之间是确认(或许还要重传〉直到整个帧被成功发送或达到最大允许的发送时间。 NAV 机制保证了其他站在该帧的传输期间保持沉默,直到下一个确认(这个说法也值得斟酌〉,但另一种机制(IFS)用来允许突发多个段,并且发送期间不会有其他站发送。

节省电源

拓展:

对移动无线设备来说,电池的寿命始终是个问题。802.11 标准非常重视电源管理问题,因此客户没有信息需要发送或接收时不应该浪费能量。节能的基本机制建立在信标帧( beacon 企runes )基础上。信标帧由 AP 定期广播(例如,每 100 毫秒发一个)。该帧向客户通告 AP 的存在,同时传递一些系统参数,比如 AP 的标识、时间(下一帧多久再来〉和安全设置。

客户端可以在它发送到 AP 的帧中设置一个电源管理位( power-management ),告诉AP 自己进入省电模式( power-save mode )。在这种模式下,客户端可以打个盹,AP 将缓冲所有发给该客户的流量。为了检查入境流量,客户端在每次信标帧来时苏醒过来,并检查作为信标帧一部分的流量图。这张图告诉客户是否有为它缓冲的流量。如果有,则客户给 AP 发送一个 poll 消息,示意 AP 将缓冲的流量发送过来:在接收了缓冲的流量之后,客户可以再回去打盹,直到下一个新标帧被发送出来时苏醒。

另一个省电机制称为自动省电交付( APSD, Automatic Power Save Delivery ),在 2005年被添加到 802.11 。有了这个新机制, AP 依然为休眠的客户端缓冲帧,但只在客户端发送帧到 AP 后才将其缓存的帧发送到客户端。这样一来,客户端可以安心进入睡眠状态,直到它有更多的流量需要发送(和接收〉才醒来。这种机制对于诸如在两个方向上都有频繁流量的 VoIP 等应用运作良好。例如, 一个 VoIP 无线手机可能会使用该机制每 20 毫秒发送和接收帧,这个频度远远大于信标帧的 100 毫秒间隔,而在这之间客户端可以怵眠。

3.5.3轮询访问:令牌传递协议

在轮询访问中,用户不能随机地发送信息,而要通过一个集中控制的监控站,以循环方式轮询每个结点,再决定信道的分配。当某结点使用信道时,其他结点都不能使用信道。典型的轮询 访问介质访问控制协议是令牌传递协议,它主要用在令牌环局域网中。

在令牌传递协议中,一个令牌(Token)沿着环形总线在各结点计算机间依次传递。令牌是 一个特殊的MAC控制帧,它本身并不包含信息,仅控制信道的使用,确保同一时刻只有一个站 点独占信道。当环上的一个站点希望传送帧时,必须等待令牌。一旦收到令牌,站点便可启动发 送帧。帧中包括目的站点地址,以标识哪个站点应接收此帧。站点只有取得令牌后才能发送数据 帧,因此令牌环网不会发生碰撞。站点在发送完一帧后,应释放令牌,以便让其他站使用。由于令牌在网环上是按顺序依次传递的,因此对所有入网计算机而言,访问权是公平的。

当计算机都不需要发送数据时,令牌就在环形网上游荡,而需要发送数据的计算机只有在拿 到该令牌后才能发送数据帧,因此不会发送冲突(因为令牌只有一个)。

令牌环网中令牌和数据的传递过程如下:

1) 网络空闲时,环路中只有令牌帧在循环传递。

2) 令牌传递到有数据要发送的站点时,该站点就修改令牌中的一个标志位,并在令牌中附加自己需要传输的数据,将令牌变成一个数据帧,然后将这个数据帧发送出去。

3) 数据帧沿着环路传输,接收到的站点一边转发数据,一边査看帧的目的.地址。如果目的 地址和自己的地址相同,那么接收站就复制该数据帧以便进一步处理。

4) 数据帧沿着环路传输,直到到达该帧的源站点,源站点收到自己发出去的帧后便不再转发。同时,通过检验返回的帧来查看数据传输过程中是否出错,若有错则重传。

5) 源站点传送完数据后,重新产生一个令牌,并传递给下一站点,以交出信道控制权。

在令牌传递网络中,传输介质的物理拓扑不必是一个环,但是为了把对介质访问的许可从一 个设备传递到另一个设备,令牌在设备间的传递通路逻辑上必须是一个环

轮询介质访问控制非常适合负载很高的广播信道。所谓负载很高的信道,是指多个结点在同 一时刻发送数据概率很大的信道。可以想象,如果这样的广播信道采用随机介质访问控制,那么 发生冲突的概率将会很大,而采用轮询介质访问控制则可以很好地满足各结点间的通信需求。

轮询介质访问控制既不共享时间,也不共享空间,它实际上是在随机介质访问控制的基础上, 限定了有权力发送数据的结点只能有一个。

即使是广播信道也可通过介质访问控制机制使广播信道逻辑上变为点对点的信道,所以说数据链路层研究的是“点到点”之间的通信。(笔者注:数据链路层的这几个介质访问控制协议都是)

3.6局域网

3.6.1局域网的基本概念和体系结构

局域网(Local Area Network, LAN)是指在一个较小的地理范围(如一所学校)内,将各种 计算机、外部设备和数据库系统等通过双绞线、同轴电缆等连接介质互相连接起来,组成资源和 信息共享的计算机互连网络。主要特点如下:

1) 为一个单位所拥有,且地理范围和站点数目均有限。

2) 所有站点共享较高的总带宽(即较高的礬据传输速率)。

3) 较低的时延和较低的误码率。

4) 各站为平等关系而非主从关系。

5) 能进行广播和组播。

局域网的特性主要由三个要素决定:拓扑结构、传输介质、介质访问控制方式,其中最重要 的是介质访问控制方式,它决定着局域网的技术特性。

常见的局域网拓扑结构主要有以下4大类:①星形结构;②环形结构:③总线形结构;④星形和总线形结合的复合型结构。

局域网可以使用双绞线、铜缆和光纤等多种传输介质,其中双绞线为主流传输介质。

局域网的介质访问控制方法主要有CSMA/CD、令牌总线和令牌环,其中前两种方法主要用于总线形局域网,令牌环主要用于环形局域网。

三种特殊的局域网拓扑实现如下:

  • 以太网(目前使用范围最广的崩域网)。逻辑拓扑是总线形结构,物理拓扑是星形或拓展 星形结构。

  • 令牌环(Token Ring, IEEE 802.5)。逻辑拓扑是环形结构,物理拓扑是星形结构。

  • FDDI (光纤分布数字接口,IEEE 802.8)。逻辑拓扑是环形结构,物理拓扑是双环结构。

IEEE 802标准定义的局域网参考模型只对应于OSI参考模型的数据链路层和物理层,并将数据 链路层拆分为两个子层:逻辑链路控制(LLC)子层和媒体接入控制(MAC)子层。

  • 与接入传输媒体有关的内容都放在MAC子层,它向上层屏蔽对物理层访问的各种差异,提供对物理层的统一访问 接口,主要功能包括:组帧和拆卸帧、比特传输差错检测、透明传输。

  • LLC子层与传输媒体无关,它向网络层提供无确认无连接、面向连接、带确认无连接、高速传送4种不同的连接服务类型

由于以太网在局域网市场中取得垄断地位,几乎成为局域网的代名词,而802委员会制定的 LLC子层作用已经不大,因此现在许多网卡仅装有MAC协议而没有LLC协议。IEEE 802协议 层与OSI参考模型的比较如图3.25所示。

image-20230702160002761

需要提醒读者的是,局域网的各类协议和广域网的各类协议也是统考的重点,容易出选择题, 需要大家认真记忆。

数据链路层通常分为两个子层:

  1. 逻辑链路控制(Logical Link Control,LLC):在设备间建立和维护数据链路连接。这通常包括帧的同步,顺序控制,流量控制。以及从高层协议(如IP)接收数据并将其转换为帧,或者从MAC子层接收帧并将其转换为更高层的协议数据。这一层提供了服务质量(QoS)参数,如可靠性和效率。

  2. 媒体访问控制(Media Access Control,MAC):控制设备如何访问共享媒体,从而可以在设备间传输帧。组帧和拆卸帧(笔者注:谁负责组帧拆帧谁就负责透明传输)和差错检测通常都在MAC子层处理。也包括如何在共享媒介(如以太网、无线局域网等)上进行冲突检测和冲突解决。MAC地址也是在这一层定义的,MAC地址是网络设备在局域网中的唯一标识。

数据链路层位于OSI(开放系统互联)模型的第二层,位于物理层和网络层之间,为网络层提供了一个可靠的通信服务。

在以太网的数据链路层中,实现“给帧加序号”的主要是逻辑链路控制(Logical Link Control,LLC)子层。这个子层负责为传输的数据帧添加控制信息,包括序号、错误检测和校验等,以保证数据的可靠传输

具体来说,逻辑链路控制层通过添加控制字段来标识每一个帧,这个字段可以包含序列号,使得接收端能够知道每个帧的顺序,以防止数据帧的丢失或者重复。

然而,值得注意的是,标准的以太网协议(例如IEEE 802.3)本身并不提供给帧加序号的功能,这是因为以太网设计初衷是一种简单而高效的局域网技术,对于数据的可靠性并不做硬性要求。在实际应用中,给帧加序号等可靠传输的功能更多的是由上一层的网络协议(例如TCP)来提供的。

3.6.2 以太网与 IEEE 802.3

IEEE 802.3标准是一种基带总线形的局域网标谁,它描述物理层和数据链路层的MAC子层的实现方法。随着技术的发展,该标准又有了大量的补充与更新,以支持更多的传输介质和 更高的传输速率。 .

以太网逻辑上采用总线形拓扑结构,以太尙中的所有计算机共享同一条总线,信息以广播方式发送。为了保证数据通信的方便性和可靠性,以太网简化了通信流程并使用了 CSMA/CD方式 对总线进行访问控制。

严格来说,以太网应当是指符合DIX Ethernet V2标准(即以太网V2标准)的局域网,但DIX Ethernet V2标准与 IEEE 802.3标准只有很小的差别,因此通常将802.3局域网简称为以太网。

以太网釆用两项措施以简化通信:①釆用无连接的工作方式,不对发送的数据帧编号,也不要求接收方发送确认,即以太网尽最大努力交付数据,提供的是不可靠服务,对于差错的纠正则由高层完成;②发送的数据都使用曼彻斯特编码的信号,每个码元的中间出现一次电压转换,接收端利用这种电压转换方便地把位同步信号提取出来。

1.以太网的传输介质与网卡

以太网常用的传输介质有4种:粗缆、细缆、双绞线和光纤。各种传输介质的适用情况 见表3.2

參 教 10BASE5 10BASE2 10BASE-T 10BASE-FL
传输媒体 墓带同轴电缆(粗缆) 基带同轴电缆(细缆) 非屏蔽双绞线 光纤对(850nm)
编码 曼彻斯特编码 曼彻斯特编码 曼彻斯特编码 曼彻斯特编码
拓扑结构 总线形 总线形 星形 点对点
最大段长 500m 185m 100m 2000m
最多结点数目 100 30 2 2

注意:10BASE-T非屏蔽双绞线以太网拓扑结构为星形网,星形网中心为集线器,但使用集线器的以太网在逻辑上仍然是一个总线形网,属于一个冲突域。上表的内容是常识,例如题目中出现10BASE5时,是不会显式地告诉你它的传输媒体、编码方式、拓扑结构等信息的。

ChatGPT4补充:

"10BASE5"、"10BASE2"、"10BASE-T"和"10BASE-FL"是以太网(Ethernet)技术的不同标准,它们都是IEEE 802.3标准的一部分。它们的命名规则遵循一个通用的模式:10代表数据传输速率(10 Mbps),BASE代表基带信号,而后面的数字或字母表示不同的物理媒介或者传输距离。

  1. 10BASE5:这是最早的以太网标准,也被称为"粗缆以太网"(Thick Ethernet)。5代表系统可以在500米的距离内进行数据传输。

  2. 10BASE2:这个标准也被称为"细缆以太网"(Thin Ethernet)或"廉价以太网"(Cheapernet)。2代表系统可以在200米的距离内进行数据传输。

  3. 10BASE-T:T代表双绞线(Twisted Pair),这个标准使用双绞线作为物理媒介进行数据传输。它的标准传输距离为100米。

  4. 10BASE-FL:FL代表光纤链路(Fiber Link)。这个标准使用光纤作为物理媒介进行数据传输,它提供了更远的传输距离和更好的噪声抗性。

每种标准都有其自身的特点和适用场景,例如10BASE-T和10BASE-FL被广泛用于现代的局域网(LAN)环境,而10BASE5和10BASE2则较少使用。

计算机与外界局域网的连接是通过主机箱内插入的一块网络接口板[又称网络适配器(Adapter) 或网络接口卡(Network Interface Card, NIC)]实现的。网卡上装有处理器和存储器,是工作在数据 链路层的网络组件。网卡和局域网的通信是通过电缆或双绞线以串行方式进行的,而网卡和计算机的 通信则是通过计算机主板上的I/O总线以并行方式进行的。因此,网卡的重要功能就是进行数据的串并转换。网卡不仅能实现与局域网传输介质之间的物理连接和电信号匹配,还涉及帧的发送与接收、 帧的封装与拆封、介质访问控制、数据的编码与解码及数据缓存功能等。

全世界的每块网卡在出厂时都有一个唯一的代码,称为介质访问控制(MAC)地址,这个地 ,址用手控制主机在网络上的数据通信。数据链路层设备(网桥、交换机等)都使用各个网卡的MAC 地址。另外,网卡控制着主机对介质的访问,因此网卡也工作在物理层(笔者注:不仅工作在数据链路层),因为它只关注比特,而不关注任何地址信息和高层协议信息。

2.以太网的MAC帧

每块网卡中的MAC地址也称物理地址;MAC地址长6字节,一般用由连字符(或冒号)分 隔的12个十六进制数表示,如02-60-8c-e4-bl-21。高24位为厂商代码,低24位为厂商自行分配 的网卡序列号。严格来讲,局域网的“地址”应是每个站的“名字”或标识符。

由于总线上使用的是广播通信,因此网卡从网络上每收到一个MAC帧,首先要用硬件检査 MAC帧中的MAC地址。如果是发往本站的帧,.那么就收下,否则丢弃。

以太网MAC帧格式有两种标准:DIX Ethernet V2标准(即以太网V2标准)和IEEE 802.3 标准。这里先介绍最常用的以太网V2的MAC帧格式,如图3.26所示。

image-20230702162006798

  • 前导码:使接收端与发送端时钟同步。在帧前面插入的8字节可再分为两个字段:第一个字 段共7字节,是前同步码,用来快速实现MAC帧的比特同步;第二个字段是帧开始定界符,表 示后面的信息就是MAC帧。

    注意:MAC帧并不需要帧结束符,因为以太网在传送帧时,各帧之间必须有一定的间隙。 因此,接收端只要找到帧开始定界符,其后面连续到达的比特流就都属于同一个MAC帧,所以 图3.26只有帧开始定界符。但不要误以为以太网MAC帧不需要尾部,在数据链路层上,帧既要加首部,也要加尾部(笔者注:校验码就是尾部)。

  • 地址:通常使用6字节(48bit)地址(MAC地址)。

  • 类型:2字节,指出数据域中携带的数据应交给哪个协议实体处理。

  • 数据:46〜1500字节,包含高层的协议消息。由于CSMA/CD算法的限制,以太网帧必须满 足最小长度要求64字节,数据较少时必须加以填充(0〜46字节)。

    注意:46是怎么来的?由CSMA/CD可知以太网帧的最短帧长为64B,而MAC帧的首部和 尾部的长度为18字节,所以数据字段最短为64-18=46字节。最大的1500字节是规定的。

  • 填充:0〜46字节,当帧长太短时填充帧,使之达到64字节的最小长度。

  • 校验码(FCS): 4字节,校验范围从目的地址段到数据段的末尾,算法采用32位循环冗余码(CRC),不但需要检验MAC帧的数据部分,还要检验目的地址、源地址和类型字段,但不校验前导码。

802.3帧格式与DIX以太帧格式的不同之处在于用长度域替代了 DIX帧中的类型域,指出数 据域的长度。在实践中,前述长度/类型两种机制可以并存,由于IEEE 802.3数据段的最大字节数 是1500,所以长度段的最大值是1500,因此从1501到65535的值可用于类型段标识符。

3.高速以太网

速率达到或超过100Mb/s的以太网称为高速以太网。

(1) 100BASE-T 以太网

100BASE-T以太网是在双绞线上传送100Mb/s基带信号的星形拓扑结构以太网,它使用 CSMA/CD协议。这种以太网既支持全双工方式,又支持半双工方式,可在全双工方式下工作而 无冲突发生,因此在全双工方式下不使用CSMA/CD协议。

MAC帧格式仍然是802.3标准规定的。保持最短帧长不变,但将一个网段的最大电缆长度减小到100m(笔者注:和10BASE-T一样)。帧间时间间隔从原来的9.6μs改为现在的0.96μs。

image-20230702170515096

(2) 吉比特以太网

吉比特以太网又称千兆以太网,允许在1Gb/s速率下用全双工和半双工两种方式工作。使用 802.3协议规定的帧格式。在半双工方式下使用CSMA/CD协议(全双工方式不需要使用CSMA/CD 协议)。与10BASE-T和100BASE-T技术向后兼容。

(3) 10吉比特以太网

10吉比特以太网与10Mb/s、100Mb/s和IGb/s以太网的帧格式完全相同。10吉比特以太网 还保留了 802.3标准规定的以太网最小和最大帧长,便于升级。这种以太网不再使用铜线而只使用光纤作为传输媒体。只工作在全双工方式,因此没有争用问题,也不使用CSMA/CD协议。

以太网从10Mb/s到10Gb/s的演进证明了以太网是可扩展的(从10Mb/s到10Gb/s)、灵活的 (多种传输媒体、全/半双工、共享/交换),易于安装,稳健性好。

3.6.3 IEEE 802.11无线局域网

1.无线局城网的组成

无线局域网可分为两大类:有固定基础设施的无线局域网和无固定基础设施的移动自组织网 络。所谓“固定基础设施”,是指预先建立的、能覆盖一定地理范围的固定基站。

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

对于有固定基础设施的无线局域网,IEEE制定了无线局域网的802.11系列协议标准,包括 802.11a/b/g/n等。802.11使用星形拓扑,其中心称为接入点(Access Point, AP),在MAC层使用 CSMA/CA协议。使用802.11系列协议的局域网又称Wi-Fi。

802.11标准规定无线局域网的最小构件是基本服务集BSS (Basic Service Set, BSS)。一个基 本服务集包括一个接入点和若干移动站。各站在本BSS内之间的通信,或与本BSS外部站的通 信,都必须通过本BSS的AP。上面提到的AP就是基本服务集中的基站(base station)。安装AP 时,必须为该AP分配一个不超过32字节的服务集标识符(Service Set IDentifier, SSID)和一个信道。SSID是指使用该AP的无线局域网的名字。一个基本服务集覆盖的地理范围称为一个基本服务区(Basic Service Area, BSA),无线局域网的基本服务区的范围直径一般不超过100m。

一个基本服务集可以是孤立的,也可通过AP连接到一个分配系统(Distribution System, DS), 然后再连接到另一个基本服务集,就构成了一个扩展的服务集(Extended Service Set, ESS)。分配系统的作用就是使扩展的服务集对上层的表现就像一个基本服务集一样。ESS还可以通过一种称为 Portal (门户)的设备为无线用户提供到有线连接的以太网的接入。门户的作用相当于一个网桥。在 图3.27中,移动站A如果要和另一个基本服务集中的移动站B通信,就必须经过两个接入点AP、AP1、AP2、B,注意AP1到AP2的通信是使用有线传输的

image-20230702173241818

移动站A从某个基本服务集漫游到另一个基本服务集时(图3.27中的A,),仍然可保持与另 一个移动站B的通信。但A在不同的基本服务集使用的AP改变了。

(2)无固定基础设施移动自组织网络

另一种无线局域网是无固定基础设施的无线局域网,又称自组网络(ad hoc network)。自组 网络没有上述基本服务集中的AP,而是由一些平等状态的移动站相互通信组成的临时网络(见 图3.28)0各结点之间地位平等,中间结点都为转发结点,因此都具有路由器的功能。

image-20230702173321197

自组网络通常是这样构成的:一些可移动设备发现在它们附近还有其他的可移动设备,并且 要求和其他移动设备进行通信。自组网络中的每个移动站都要参与网络中其他移动站的路由的发 现和维护,同时由移动站构成的网络拓扑可能随时间变化得很快,因此在固定网络中行之有效的 一些路由选择协议对移动自组网络已不适用,需引起特别的关注。

自组网络和移动IP并不相同。移动IP技术使漫游的主机可以用多种方法连接到因特网,其 核心网络功能仍然是基于固定网络中一直使用的各种路由选择协议。而自组网络是把移动性扩展 到无线领域中的自治系统,具有自己特定的路由选择协议,并且可以不和因特网相连。

2.802.11局域网的MAC帧

802.11帧共有三种类型,即数据帧、控制帧和管理帧。数据帧的格式如图3.29所示。 802.11数据帧由以下三大部分组成:

1) MAC首部,共30字节。帧的复杂性都在MAC首部。

2) 帧主体,即帧的数据部分,不超过2312字节。它比以太网的最大长度长很多。

3) 帧检验序列FCS是尾部,共4字节。

image-20230702173412257

802.11帧的MAC首部中最重要的是4个地址字段(都是MAC地址)。这里仅讨论前三种地址(地址4用于自组网络)。这三个地址的内容取决于帧控制字段中的“去往AP”和“来自AP”这两个字段的数值。表3.3中给出了 802.11帧的地址字段最常用的两种情况。

去往AP 来自AP 地址1(接收地址) 地址2(发送地址) 地址3 地址4
0 1 接收地址=目的地址 发送地址=AP地址 源地址
1 0 接收地址=AP地址 发送地址=源地址 目的地址

地址1是直接接收数据帧的结点地址,地址2是实际发送数据帧的结点地址。

1) 现假定在一个BSS中的站A向站B发送数据帧。在站A发往接入点AP的数据帧的帧控 制字段中“去往AP=1”而“来自AP = 0”;地址1是AP的MAC地址,地址2是A的 MAC地址,地址3是B的MAC地址。注意,“接收地址”与“目的地址”并不等同。

2) AP接收到数据帧后,转发给站B,此时在数据帧的帧控制字段中,“去往AP = 0”而“来 自AP= 1 ”;地址1是B的MAC地址,地址2是AP的MAC地址,地址3是A的MAC 地址。请注意,“发送地址”与“源地址”也不等同。

下面讨论一种更复杂的情况。在图3.30中,两个AP通过有线连接到路由器,现在路由器要 向站A发送数据。路由器是网络层设备,它看不见链路层的接入点AP,只认识站A的IP地址。 而AP是链路层设备,它只认识MAC地址,并不认识IP地址。

image-20230702173601314

1) 路由器从IP数据报获知A的IP地址,并使用ARP(笔者注:之后会讲的协议)获取站A的MAC地址。获取站A的 MAC地址后,路由器接口 R1将该IP数据报封装成802.3帧(802.3帧只有两个地址), 该帧的源地址字段是R1的MAC地址,目的地址字段是A的MAC地址。

2) AP收到该802.3帧后,将该802.3帧转换为802.11帧,在帧控制字段中,“去往AP = 0” 而“来自AP= 1 ”;地址1是A的MAC地址,地址2是AP的MAC地址,地址3是R1 的MAC地址。这样,A可以确定(从地址3)将数据报发送到子网中的路由器接口的 MAC地址。

现在考虑从站A向路由器接口 R1发送数据的情况。

1) A生成一个802.11帧,在帧控制字段中,“去往AP=1”而“来自AP = 0”;地址1是AP 的MAC地址,地址2是A的MAC地址,地址3是R1的MAC地址。

2) AP收到该802.11帧后,将其转换为802.3帧。该帧的源地址字段是A的MAC地址,目 的地址字段是R1的MAC地址。

由此可见,地址3在BSS和有线局域网互连中起着关键作用,它允许AP在构建以太网帧时能够确定目的MAC地址。

802.11帧的MAC首部的其他字段不是考试重点,感兴趣的同学可以翻阅教材。

3.6.4 VLAN基本概念与基本原理

一个以太网是一个广播域,当一个以太网包含的计算机太多时,往往会导致:

  • 以太网中出现大量的广播帧,特别是经常使用的ARP和DHCP协议(第4章)。

  • 一个单位的不同部门共享一个局域网,时信息保密和安全不利。

通过虚拟局域网(Virtual LAN),可以把一个较大的局域网分割成一些较小的与地理位置无 关的逻辑上的VLAN,而每个VLAN是一个较小的广播域。

802.3ac标准定义了支持VLAN的以太网帧格式的扩展。它在以太网帧中插入一个4字节的标识符(插入在源地址字段和类型字段之间),称为VLAN标签,用来指明发送该帧的计算机属 于哪个虚拟局域网。插入VLAN标签的帧称为802.1 Q帧,如图3.31所示。由于VLAN帧的首部增加了 4字节,因此以太网的最大帧长从原来的1518字节变为1522字节。

image-20230702173821234

VLAN标签的前两个字节置为0x8100,表示这是一个802.1Q帧。在VLAN标签的后两个 字节中,前4位没有用,后12位是该VLAN的标识符VID,它唯一标识了该802.1Q帧属于哪 个VLANo 12位的VID可识别4096个不同的VLAN。插入VID后,802.1 Q帧的FCS必须重 新计算。

如图3.32所示,交换机1连接了 7台计算机,该局域网划分为两个虚拟局域网VLAN-1。和 VLAN-20,这里的10和20就是802.1Q帧中的VID字段的值,由交换机管理员设定。各主机并不知道自己的VID值(但交换机必须知道),主机与交换机之间交互的都是标准以太网帧。1个 VLAN的范围可以跨越不同的交换机,前提是所用的交换机能够识别和处理VLAN。交换机2连 接了 5台计算机,并与交换机1相连。交换机2中的2台计算机加入VLAN-10,另外3台加入 VLAN-20。这两个VLAN虽然都跨越了两个交换机,但各自都是一个广播域。

image-20230702173915995

假定A向B发送帧,交换机1根据帧首部的目的MAC地址,识别B属于本交换机管理的 VLAN-10,因此就像在普通以太网中那样直接转发帧。假定A向E发送帧,交换机1必须把帧转 发到交换机2,但在转发前,要插入VLAN标签,否则交换机2不知道应把帧转发给哪个VLAN。 因此在交换机端口之间的链路上传送的帧是802.1Q帧。交换机2在向E转发帧之前,要拿走已 插入的VLAN标签,因此E收到的帧是A发送的标准以太网帧,而不是802.1Q帧。如果A向C 发送帧,那么情况就复杂了,因为这是在不同网络之间的通信,虽然A和C都连接到同一个交换 机,但是它们已经处在不同的网络中(VLAN-10和VLAN-20),需要通过上层的路由器来解决, 也可以在交换机中嵌入专用芯片来进行转发,这样就在交换机中实现了第3层的转发功能。

练习题18题补充:

一般有三种划分VLAN的方法。①基于端口,将交换机的若干端口划为一个逻辑组,这种方 法最简单、最有效,如果主机离开了原来的端口,那么就可能进入一个新的子网。②基于MAC 地址,按MAC地址将一些主机划分为一个逻辑子网,当主机的物理位置从一个交换机移动到另 一个交换机时,它仍然属于原来的子网。③基于IP地址,根据网络层地址或协议划分VLAN,这 样VLAN就可以跨越路由器进行扩展,将多个局域网的主机连接在一起。

练习题19题补充:

有效共享网络资源、简化网络管理、提高网络安全性都是VLAN的优点

3.7 广域网

3.7.1广域网的基本概念

广域网通常是指覆盖范围很广(远超一个城市的范围)的长距离网络。广域网是因特网的核 心部分,其任务是长距离运送主机所发送的数据。连接广域网各结点交换机的链路都是高速链路, 它可以是长达几千千米的光缆线路,也可以是长达几万千米的点对点卫星链路。因此广域网首要 考虑的问题是通信容量必须足够大,以便支持日益增长的通信量。

广域网不等于互联网。互联网可以连接不同类型的网络(既可以连接局域网,又可以连 接广域网),通常使用路由器来连接。图3.33显示了由相距较远的局域网通过路由器与广域网 相连而成的一个覆盖范围很广的互联网。因此,局域网可以通过广域网与另一个相隔很远的 局域网通信。

image-20230702174319446

广域网由一些结点交换机(注意不是路由器,结点交换机和路由器都用来转发分组,它们的 工作原理也类似。结点交换机在单个网络中转发分组,而路由器在多个网络构成的互联网中转发 分组)及连接这些交换机的链路组成。结点交换机的功能是将分组存储并转发。结点之间都是点 到点连接,但为了提高网络的可靠性,通常一个结点交换机往往与多个结点交换机相连。

从层次上考虑,广域网和局域网的区别很大,因为局域网使用的协议主要在数据链路层(还 有少量在物理层),而广域网使用的协议主要在网络层。怎么理解“局域网使用的协议主要在数 据链路层,而广域网使用的协议主要在网络层”这句话呢?如果网络中的两个结点要进行数据交 换,那么结点除要给出数据外,还要给数据“包装"上一层控制信息,用于实现检错纠错等功能。 如果这层控制信息是数据链路层协议的控制信息,那么就称使用了数据链路层协议,如果这层控 制信息是网络层的控制信息,那么就称使用了网络层协议。

它们的区别与联系见表3.4。

广域网 局域网
覆盖范围 很广,通常跨区域 较小,通常在一个区域内
连接方式 结点之间都是点到点连接,但为了提高网络的可靠性,一个结点交换机往往与多个结点交换机相连 普遍釆用多点接入技术
0SI参考模型层次 三层:物理层,数据链路层,网络层 两层:物理层,数据链路层
着重点 强调资源共享 强调数据传输

联系与相似点:

  1. 广域网和局域网都是互联网的重要组成构件,从互联网的角度上看,二者平等(不是包含关系)
  2. 连接到一个广域网或一个局域网上的主机在该网内进行通信时,只需要使用其网络的物理地址

广域网中的一个重要问题是路由选择和分组转发。路由选择协议负责搜索分组从某个结点到 目的结点的最佳传输路由,以便构造路由表,然后从路由表再构造出转发分组的转发表。分组是 通过转发表进行转发的。

常见的两种广域网数据链路层协议是PPP协议和HDLC协议。PPP目前使用得最广泛,而 HDLCB很少使用,最新大纲已将其删除,但历年真题考査过HDLC,故本书仍保留。

3.7.2 PPP 协议

点对点协议(Point-to-Point Protocol, PPP)是使用串行线路通信的面向字节的协议,该协议应 用在直接连接两个结点的链路上。设计的目的主要是用来通过拨号或专线方式建立点对点连接发 送数据,使其成为各种主机、网桥和路由器之间简单连接的一种共同的解决方案。

PPP协议有三个组成部分:

1) 链路控制协议(LCP)。一种扩展链路控制协议,用于建立、配置、测试、管理数据链路和身份认证。

2) 网络控制协议(NCP)。PPP协议允许同时釆用多种网络层协议,每个不同的网络层协议要用一个相应的NCP来配置,为网络层协议建立和配置逻辑连接。

3) 一个将IP数据报封装到串行链路的方法。IP数据报在PPP帧中就是其信息部分,这个信息部分的长度受最大传送单元(MTU)的限制。

帧格式

PPP帧的格式如图3.34所示。PPP帧的前3个字段和最后2个字段与HDLC帧是一样的,标志字段(F)为7E (01111110),前后各占1字节,若它出现在信息字段中,就必须做字节填充, 使用的控制转义字节是7D (01111101)。但在PPP中,地址字段(A)占1字节,规定为OxFF, 控制字段(C)占1字节,规定为0x03,两者的内容始终是固定不变的。PPP是面向字节的,因 而所有PPP帧的长度都是整数个字节。

第4个字段是协议段,占2字节,在HDLC中没有该字段,它是说明信息段中运载的是什么 神类的分组。以比特0开始的是诸如IP、IPX和AppleTalk这样的网络层协议;以比特1开始的 被用来协商其他协议,包括LCP及每个支持的网络层协议的一个不同的NCP。

第5段信息段的长度是可变的,大于或等于0且小于或等于1500Bo为了实现透明传输,当 信息段中出现和标志字段一样的比特组合时,必须釆用一些措施来改进。

注意:因为PPP是点对点的,并不是总线形,所以无须采用CSMA/C D协议,自然就没有最 短帧,所以信息段占0〜1500字节,而不是46—1500字节。另外,当数据部分出现和标志位一 样的比特组合时,就需要采用一些措施来实现透明传输。

第6个字段是帧检验序列(FCS),占2字节,即循环冗余码检验中的冗余码。检验区包括地 址字段、控制字段、协议字段和信息字段。

image-20230702174832184

协议工作状态图

图3.35给出了 PPP链路建立、使用、撤销所经历的状态图。当线路处于静止状态时,不存 在物理层连接。当线路检测到载波信号时,建立物理连接,线路变为建立状态。此时,LCP开始 选项商定,商定成功后就进入身份验证状态。身份验证通过后,进入网络层协议状态。这时,釆用NCP配置网络层,配置成功后,进入打开状态,然后就可进行数据传输。当数据传输完成后, 线路转为终止状态。载波停止后则回到静止状态。

image-20230702174955228

PPP协议的特点:

  1. 检错不纠错,不可靠,无序号,不确认:PPP提供差错检测但不提供纠错功能,只保证无差错接收(通过硬件进行CRC校验)。 它是不可靠的传输协议,因此也不使用序号和确认机制。

  2. 点对点链路:它仅支持点对点的链路通信,不支持多点线路。

  3. 全双工通信:PPP只支持全双工链路。

  4. 连接不同的网络层协议:PPP的两端可以运行不同的网络层协议,但仍然可使用同一个ppp进行通信。

  5. 透明传输:PPP是面向字节的,当信息字段出现和标志字段一致的比特组合时,PPP有两种不同的处理方法:若PPP用在异步线路(默认),则釆用字符填充法;若PPP用在SONET/SDH 等同步线路,则协议规定采用硬件来完成比特填充(和HDLC的做法一样)。

3.8数据链路层设备

*3.8.1网桥的基本概念

两个或多个以太网通过网桥连接后,就成为一个覆盖范围更大的以太网,而原来的每个以太 网就称为一个网段。网桥工作在链路层的MAC子层,可以使以太网各网段成为隔离开的碰撞域 (又称冲突域)。如果把网桥换成工作在物理层的转发器,那么就没有这种过滤通信量的功能。由 于各网段相对独立,因此一个网段的故障不会影响到另一个网段的运行。网桥必须具有路径选择 的功能,接收到帧后,要决定正确的路径,将该帧转送到相应的目的局域网站点。

网络1和网络2通过网桥连接后,网桥接收网络1发送的数据帧,检査数据帧中的地址,如 果是网络2的地址,那么就转发给网络2;如果是网络1的地址,那么就将其丢弃,,因为源站和 目的站处在同一个网段,目的站能够直接收到这个'帧而不需要借助网桥转发。

3.8.2局域网交换机

1. 交换机的康理和特点

局域网交换机,又称以太网交换机,以太网交换机实质上就是一个多端口的网桥,它工作在 数据链路层。以太网交换机的每个端口都直接与单台主机或另一个交换机相连,通常都工作在全 双工方式。交换机能经济地将何络分成小的冲突域,为每个工作站提供更高的带宽。以太网交换 机的原理是,它检测从以太端口来的数据帧的源和目的地的MAC (介质访问层)地址,然后与系统内部的动态査找表进行比较,若数据帧的源MAC地址不在査找表中,则将该地址加入査找 表,并将数据帧发送给相应的目的端口。以太网交换机对工作站是透明的,因此管理开销低廉, 简化了网络结点的增加、移动和网络变化的操作。利用以太网交换机还可以方便地实现虚拟局域 网VLAN, VLAN不仅可以隔离冲突域,而且可以隔离广播域。

对于传统10Mb/s的共享式以太网,若共有N个用户,则每个用户占有的平均带宽只有总带 宽(10Mb/s)的UN。在使用以太网交换机(默认工作在全双工)来连接这些主机,虽然在每个 端口到主机的带宽还是10Mb/s,但由于一个用户在通信时是独占而不是和其他网络用户共享传输 媒体的带宽,因此拥有N个端口的交换机的总容量为Nx10 Mb/s。这正是交换机的最大优点。

以太网交换机的特点:①以太网交换机的每个端口都直接与单台主机相连(网桥的端口往往 连接到一个网段),并且一般都工作在全双工方式。②以太网交换机能同时连通多对端口,使每 对相互通信的主机都能像独占通信媒体那样,无碰撞地传输数据。③以太网交换机是一种即插即 用设备,其内部的帧的转发表是通过自学习算法自动地逐渐建立起来的。④以太网交换机由于使 用专用的交换结构芯片,交换速率较高。⑤以太网交换机独占传输媒体的带宽。

以太网交换机主要采用两种交换模式:①直通式交换机,只检査帧的目的地址,这使得帧在 接收后几乎能马上被传出去。这种方式速度快,但缺乏智能性和安全性,也无法支持具有不同速 率的端口的交换。②存储转发式交换机,先将接收到的帧缓存到高速缓存器中,并检査数据是否 正确,确认无误后通过查找表转换成输出端口将该帧发送出去。如果发现帧有错,那么就将其丢 弃。优点是可靠性高,并能支持不同速率端口间的转换,缺点是延迟较大。

以太网交换机一般都具有多种速率的端口,例如可以具有10Mb/s、l00Mb/s和1Gb/s的端口 的各种组合,因此大大方便了各种不同情况的用户。

2.交换机的自学习功能

决定一个帧是应该转发到某个端口还是应该将其丢弃称为过滤。决定一个帧应该被移动到哪 个接口称为转发。交换机的过滤和转发借助于交换表(switch table)完成。交换表中的一个表项 至少包含:①一个MAC地址;②连通该MAC地址的交换机端口。例如,在图3.37中,以太网 交换机有4个端口,各连接一台计算机,MAC地址分别为A、B、C和D,交换机的交换表初始 是空的。

A先向B发送一帧,从端口 1进入交换机。交换机收到帧后,査找交换表,找不到MAC地 址为B的表项。然后,交换机将该帧的源地址A和端口 1写入交换表,并向除端口 1外的所有端 口广播这个帧(该帧就是从端口 1进入的,因此不应该将它再从端口 1转发出去)。C和D丢弃 该帧,因为目的地址不对。只有B才收下这个目的地址正确的帧。交换表中写入(A, 1)后,以后从任何端口收到目的地址为A的帧,都应该从端口 1转发出去。这是因为,既然A发出的帧从 端口 1进入交换机,那么从端口 1.转发出去的帧也应能到达A。

接下来,假定B通过端口 3向A发送一帧,交换机査找交换表后,发现有表项(A,1),将 该帧从端口 1转发给A。显然,此时已经没有必要再广播收到的帧。将该帧的源地址B和端口 3 写入交换表,表明以后如有发送给B的帧,应该从端口 3转发出去。

经过一段时间,只要主机C和D也向其他主机发送帧,交换机就会把C和D及对应的端口号写入交换表。这样,转发给任何主机的帧,都能很快地在交换表中找到相应的转发端口。

考虑到交换机所连的主机会随时变化,这就需要更新交换表中的表项。为此,交换表中的每 个表项都设有一定的有效时间,过期的表项会自动删除。这就保证了交换表中的数据符合当前网 络的实际状况。这种自学习方法使得交换机能够即插即用,而不必人工进行配置,因此非常方便。

image-20230702175918054