Skip to main content

功能

在物理层提供服务的基础上向网络层提供服务,主要作用为加强物理层传输比特流的功能,将物理层提供的可能出错的物理连接改造为逻辑上无差错的数据链路。

为网络层提供服务

对网络层,链路层的任务是将源机器网络层的数据传输到目标机器的网络层,其为网络层提供如下服务:

  1. 无确认无连接服务,对于丢失的帧,链路层不重发而是交给上层处理,适用于实时通信或误码率低的通信信道,如以太网;
  2. 有确认无连接服务,若超时未收到确认信号,则重传,适用于误码率较高的信道,如无线通信;
  3. 有确认面向连接服务,适用于可靠性、实时性要求高的场景。
info

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

链路管理

数据链路层的建立、维持和释放过程被称为链路管理,主要用于面向连接的服务。此外在多个站点共享物理信道的情况下(如局域网),在站点间分配和管理信道也属于数据链路层管理的范畴。

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

传输信息时,需要将网络层的分组封装成帧,即将额外添加首部和尾部,其中包含了很多控制信息,一个重要作用是帧定界。

透明传输则表示任意的比特组合都可以在链路上传送。

还有一些其他功能,直接在后面记录。

组帧

字符计数法

在帧的头部使用一个计数字段来表明帧内的字符数,从而确定帧结束的位置

此方法致命的缺陷在于如果计数字段错误,或者某位缺失,则之后所有数据会发生错误。

字符填充的首尾定界符法

使用特定的字符来定界一帧的开始和结束,为了使数据部分中能够传送这些特定字符,需要添加一个转义字符 ESCESC 进行区分。

零比特填充的首尾标志法

零比特填充法使用 01111110 来标志一帧的开始和结束,并且将数据部分中每连续 5511 都后添加一个 00,接收时连续遇到 5511 则在后面去除 00.

此法可以使用硬件实现,性能优于字符填充法。

违规编码

使用没有定义的电气特性来界定帧的始末,如曼彻斯顿编码将 11 编为高 - 低电平对,00 编为低 - 高电平对,因此可以用高 - 高或低 - 低电平对来表示帧的始末,局域网 IEEEIEEE 802802 就使用这种方式。

info

目前较常用的组帧方式是零比特填充法和违规编码法。

差错控制

比特在传输过程中可能会产生差错,11 00 可能会被错误的传输,这就是 比特差错,其是传输差错的一种,本节仅讨论比特差错。

差错控制通常有两类,自动重传请求 ARQARQ,和前向纠错 FECFEC.

检错编码

采用冗余编码,在有效数据位后添加一定的冗余位,冗余位与数据位是相关的,因此可以根据冗余位检测是否产生差错。

奇偶校验码

奇偶校验码是一位校验码,指在数据位后添加一位奇/偶校验码后,整体中 11 的个数仍然为奇/偶,因此仅仅能检错但不能找出错误的位置;而二维奇偶校验码可以找出一位出错的位置进行纠错,可以检测出两位和三位的错误,但是无法确定出错的位置,另外校验码占据的空间有点多,传输效率低下。

循环冗余码(CRC)

又称多项式码,其规定一个生成多项式(最高位和最低为必须为 11)作为除数,两式相除,最后的余数便是循环冗余码。

计算步骤如下,在源数据位后添加生成多项式的长度减去一的 00,个数位生成多项式的阶数(最高项的阶数,实际上就是位数减去 11),然后使用模 22 除法(异或操作),得到余数(位数和生成多项式的阶数相同)之后添加到源数据的末尾(00 不能去)。

接收方受到数据之后,直接除以生成多项式,若无余数,则认为传输无差错,若有余数,则丢弃。

caution

CRCCRC 实际上具有纠错功能,但是数据链路曾只使用了它的检错功能,这是为了方便协议实现。

CRCCRC 只可以实现一位的纠错,常见的有 7,47,4 编码,若验证余数为 00 ,则说明没有错误,否则余数就是出错的位置。

纠错编码

最常见的纠错编码就是海明码,其在数据中加入几个校验位形成海明码,并把海明码的每个二进制位分配到几个奇偶校验组中,当某一位出错时,就会引起有关几个检验为的值变化,从而指出错位的位置。

warning

海明码的索引从 11 开始。

确定海明码的位数

nn 为有效信息的位数,kk 为校验位的位数,则

n+k2k1n+k\leq 2^{k}-1

若要检测两位错,则要再增加一位校验位。

确定校验位的分布

校验位 pip^i 在海明码位号为 2i12^{i-1} 的位置上,即 11224488

分组以形成校验关系

每个数据位使用多个校验位进行校验,需满足条件,被校验数据位的海明位号等于校验该数据位的各校验位的海明位号之和,校验位不需要再被校验

D1D_{1} 应该在位置 H3H_{3} 上,则其由 P2P1P_{2}P_{1} 校验

D2D_{2} 应该在位置 H5H_{5} 上,则其由 P3P1P_{3}P_{1} 校验,其中 P3P_{3} 在位置 H4H_{4}

D3D_{3} 应该在位置 H6H_{6} 上,则其由 P3P2P_{3}P_{2} 校验

D4D_{4} 应该在位置 H7H_{7} 上,则其由 P3P2P1P_{3}P_{2}P_{1} 校验

校验位取值

校验位 PiP_{i} 的值是所有由其参与校验的数据位异或运算得来,如

P1=D1D2D4P2=D1D3D4P3=D2D3D4\begin{align} P_{1}=D_{1}\oplus D_{2}\oplus D_{4}\\ P_{2}=D_{1}\oplus D_{3}\oplus D_{4} \\ P_{3}=D_{2}\oplus D_{3}\oplus D_{4} \end{align}

海明码的校验原理

利用校验位和相关的数据为进行奇偶校验检查,构成 kk 个方程

S1=P1D1D2D4S2=P2D1D3D4S3=P3D2D3D4\begin{align} S_{1}=P_{1}\oplus D_{1}\oplus D_{2}\oplus D_{4}\\ S_{2}=P_{2}\oplus D_{1}\oplus D_{3}\oplus D_{4} \\ S_{3}=P_{3}\oplus D_{2}\oplus D_{3}\oplus D_{4} \end{align}

则结果 S3S2S1S_{3}S_{2}S_{1} 若为 000000,则表示无错误,否则其值则表示出错位数。

tip

要想写出该方程可以借助以下规律,位置为 ii 的校验位会检查向后的 ii 位,并每隔 ii 位检查 ii 个数值直到最后(标号从一开始),举个例子:

16 15 14 13 12 11 10 9 8 7 6 5 4 3 2 1

16 [15 14 13 12] 11 10 9 8 [7 6 5 4] 3 2 1

则其检查方框中的位数。

海明码的检错能力

可以检查一位或者两位错误,纠正一位错误。

海明码的奇偶校验

即通过校验码校验对应的位置的 11 的个数是偶数还是奇数,如下列编码采用海明码编码,和偶校验

12 11 10  9  8  7  6  5  4  3  2  1
0 1 0 0 0 1 1 0 0 1 0 1

检验第一个校验码位置 11

12 11 10  9  8  7  6  5  4  3  2  1
0 1 0 0 0 1 1 0 0 1 0 1
↑ ↑ ↑ ↑ ↑ ↑

满足偶校验,校验第二个校验码

12 11 10  9  8  7  6  5  4  3  2  1
0 1 0 0 0 1 1 0 0 1 0 1
↑ ↑ ↑ ↑ ↑ ↑

满足,校验第三个校验码

12 11 10  9  8  7  6  5  4  3  2  1
0 1 0 0 0 1 1 0 0 1 0 1
↑ ↑ ↑ ↑ ↑

满足,校验第四个校验码。

最终的校验码是 P3P2P1P0=1000P_{3}P_{2}P_{1}P_{0}=1000,因此第 88 个位置出错,修改即可。

流量控制和可靠传输机制

需要对链路上的帧进行发送速率的控制,确保接收方有足够的缓存接收帧,常见的方式有停止 - 等待协议和滑动窗口协议。

停止 - 等待协议

每发送一帧,都必须受到确定型号才可以发送下一帧,传输效率很低

滑动窗口协议

任意时刻,发送方都维护一组 连续的允许发送的帧的序号,称为 发送窗口,同时接收方也维持一组 接收窗口 .

发送方只能发送发送窗口中的帧,接收方也只接收接收窗口中的帧,以外的帧将被丢弃。

滑动窗口具有以下特性:

  1. 接收窗口向前移动时会发送确认帧,发送方只有收到了确认帧,发送窗口才可能向前移动;
  2. 当发送窗口和接收窗口大小都为 1 则是停止 - 等待协议;发送窗口大于 1,而接收窗口为 1 则为后退 N 帧协议;都大于 1 则为选择重传协议;
  3. 接收窗口大小为 1 可保证有序接收;
  4. 数据链路层的滑动窗口大小传输过程中固定,与传输层的滑动窗口协议不同

可靠传输机制

通常使用 确认超时重传 来保证可靠传输。

确认 是一种无数据的控制帧,为了提高传输效率,常常将确定捎带在一个回复帧中,成为 捎带确认

自动重传请求(ARQ) 是通过接收方请求发送方重传出错帧,可分为三种,停止 - 等待 ARQ、后退 N 帧 ARQ 和选择性重传 ARQ.

在数据链路层中流量控制和可靠传输是交织在一起的。

caution

现有的实际有线网络中的数据链路层很少采用可靠传输(不同于 OSI 参考模型),因此大多数教材将此部分内容放在运输层中。

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

除数据帧丢失外,还可能出现以下两种差错

  1. 帧被破坏,被目标站丢弃,因此源站会使用一个计时器,超时未收到确认帧则重传;
  2. 数据帧正确而确认帧被破坏,此时发送方会重传已被接收的帧,接收方收到后会丢弃,并重传一个相应的确认帧。发送的帧交替地用 0 和 1 来标识,确认帧也分别用 ACK0 和 ACK1 表示,因此若连续出现发送相同帧,则表示超时重传,若连续出现相同序号的确认帧时,表明接收端收到了重复帧。
info

为了超时重发和判定重复帧的需要,通信双方都设置一个帧缓冲区;发送端只有才收到 ACK 后才清除缓冲区。

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

等价于发送窗口大于 1,接收窗口等于 1 的滑动窗口协议,当接收到失序帧或超时时,要求发送方回退到最后一个有序的帧,并重发之后的所有帧。

为了减小开销,GBN 协议规定可以一次接收几个正确的数据帧,才对最后一个数据帧发确认信息。

caution

若用 n 比特对帧编号,发送窗口的大小应该处于 1 和 2n12_{n}-1 之间(左开右闭),若太大会导致无法判定新帧和旧帧,因为其编号不唯一 。

当误码率较大时后退 N 帧协议要重传的帧太多,不一定优于停止 - 等待协议。

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

为了进一步提高信道利用率,可以只重传出错或超时的帧,同时需要加大接收窗口,等到所缺数据帧收到后再送交主机。

caution

接收窗口和发送窗口通常是相同的,发送窗口大会导致溢出,发送窗口小没有意义。对于 n 比特编号,接收窗口应该小于 2n12^{n-1},极限是相等时,接收窗口过大没有意义。

发送缓冲区设置一个计时器,超时则重传。若接收方怀疑帧出错,则发送一个否定帧 NAK 给发送方进行重传。

介质访问控制

主要任务是为使用介质的每个节点隔离来自同一信道上其他节点的所传送的信号,协调活动节点的传输,该协议属于数据链层的一个子层——介质访问控制层(Medium Access Control, MAC)。

信道划分

多路复用

当传输介质的带宽大于传输单个信号的带宽,可以通过在一条介质上同时传输多个信号来提高利用率。

频分多路复用(FDM)

将多路基带信号调制到不同频率的载波上,叠加形成一个复合信号,为了防止子信道的干扰,相邻信道之间需要加入保护频带。

充分利用了传输介质带宽,效率高且易于实现。

时分多路复用(TDM)

将一条物理信道按照时间分成若干时间片,轮流分配给多个信号使用。

一般利用率不高,统计时分多路复用(STDM, 又称异步时分多路复用)改进了这个问题,其并不固定分配时间偏,而是根据需求动态分配。

波分多路复用

即光的频分多路复用,指在一根光纤中传输不同波长的光信号,最后用波长分解复用器分解出即可。

由于光波处于频谱的高频段,有很高的带宽,因此可以实现多路的波分复用。

码分多路复用

采用不同编码区分各路信号,其即共享信道的频率,又共享时间。

其又称 码分多址(CDMA),原理是将每个比特时间再划分为 m(通常取 64 或 128) 个短的时间槽,成为码片(Chip)。

使用一个码片序列表示 1,则其反码表示 0.不同站点的码片序列不同,为了从信道中分离出各路信号,要求各个站点的码片序列相互正交,当多个站点发送码片序列使,其传输数据线性相加。

按照惯例,常将码片序列中的 0 写作 -1,使用两个向量的 规格化内积 等于 0 来判断是否正交。

tip

规格化内积在内积的基础上还需要除以元素的个数

码片自身规格化内积为 1,与反码规格化内积是 -1.

数据分离时,必须知道数据发送方的码片序列,将其与收到的叠加码片做规格化内积,可以得到 1 或 -1,用于表示该码片序列表示的是 1 还是 0.

本方法具有频谱利用率高、抗干扰能力强、保密性强、语音质量好等优点,还可以减少投资和降低运行成本,常用于无线通信系统,尤其是移动通信系统。

随机访问介质控制

与信道划分集中控制方式不同,在随机 访问协议中,所有用户都能根据自己的意愿随机地发送信息,占用信道全部速率。

总线形网络中,当两个以上的用户同时发送信息时就会产生冲突(碰撞),导致所有用户均发送失败。

tip

如果采用信道划分,则节点之间会共享空间或时间,而随机访问控制机制不存在共享,其实质上是一种将广播信道转化为点到点信道的行为。

ALOHA 协议

纯 ALOHA 协议

基本思想

当网络中任意节点需要发送数据时,可以不进行检测就发送数据,如果超时未收到确认,则认为发生了冲突,等待一段时间 后再发送数据。

纯 ALOHA 协议的吞吐量很低,理论上限只有 0.184.

时隙 ALOHA

基本思想

将所有节点在时间上同步起来,将时间划分为一段段长度相同的时隙(slot),规定每个时隙开始才能发送帧,从而减少冲突的概率。

其理论吞吐量比纯 ALOHA 协议提升了一倍。

CSMA 协议

基本思想

载波监听多路访问(Carrier Sence Multiple Access)发送数据前先监听一下共用信道,空闲后再发送。与 ALOHA 协议的区别就是多了监听信道的步骤。

根据监听方式和后处理方式不同,可细分为三种:

名称监听行为后处理备注
1- 坚持监听信道直到空闲若信道空闲则立即发送数据容易发生冲突
非坚持若信道忙等待随机一段时间再次监听若信道空闲则立即发送数据会增加网络的延迟时间
p- 坚持监听信道到空闲若信道空闲则以 p 概率发送数据,否则推迟到下一个时隙折中方案, 用于时分信道

CSMA/CD 协议

基本思想

载波监听多路访问/碰撞检测(CSMA/CD)协议在发送前和发送中都会持续监听信道,若发送中检测到了碰撞,则立即停止传输,等待随机一段时间后再次发送。

info

适用于总线形网络或半双工网络,对于全双工网络,其需要使用两条信道,不可能产生冲突,因此不需要 CSMA/CD 协议。

先听后发、边听边发、冲突停发、随机重发

CSMA/CD 协议引出了以下概念:

  1. 碰撞窗口、争用期
  2. 退避算法

碰撞窗口、争用期

设端到端传播时间为 τ\tau,则发送节点最多经过 2τ2\tau 的时间就能知道有没有产生碰撞,极限情况就是接近终点时,数据头产生冲突,再传播回来,时间为 τ+τ=2τ\tau+\tau=2\tau.

因此

我们只需要保证 2τ2\tau 的时间内没有产生碰撞即可

现在考虑另一种极端情况,若发送的帧很短,发送完毕之前没有检测出碰撞,但是其在传播过程中产生了碰撞,接收方会丢弃这个帧,而发送站不知道发生了碰撞,不会重传这个帧。

因此以太网规定了 最短帧长,计算公式为

2τv2\tau v

以太网中争用期长度为 51.2μs51.2\mu s,如对于 10 兆比特每秒的以太网,可发送长度为 64B,同时若接收到了小于最短帧长的帧,则意味着发生了冲突,直接丢弃。

换句话说

争用期中未产生冲突,则之后的传输也不会产生冲突。

退避算法

为了防止参与冲突的多个节点紧跟着再次发送,进而形成死循环,CSMA/CD 采用 截断二进制指数退避算法

  1. 确定基本退避时间,一般取 2τ2\tau
  2. 定义参数 kk,表示当前重传的次数,kk 不大于 10,当重传次数大于 10 时就不再增长,而是一直保持 10
  3. 从离散集合 [0,12k1][0, 1 \cdots 2^k-1] 中取出一个数 rr,则 2rτ2r\tau 为当前退避时间
  4. 当重传次数达到 16 次仍然不能成功,则认为永远无法发出,此时向高层报告出错
tip

本方法可以使重传需要推迟的平均时间随着重传增大的平均时间而增大,从而降低碰撞概率。

CSMA/CA 协议

载波侦听多路访问/碰撞避免协议应用于无线局域网环境,基于以下特性:

  1. 接收信号强度往往远小于发送信号,且信号强度动态变化范围很大,实现碰撞检测硬件花费很大;
  2. 无线通信中并非所有站点都能听见对方,即存在 屏蔽站 问题
info

碰撞避免指的是协议的设计要尽可能降低碰撞发生的概率。

具体来说是在接收数据前广播告知其他节点,在规定时间内不要发送数据,以免发生冲突。

802.11 无线局域网使用链路层确认/重传(ARQ)方案,即站点通过无线局域网发完一帧受到确认之后才能发送下一帧。

同时规定,所有站完成发送后,必须等待一段很短的时间(继续监听)才能再次发送,成为 帧间间隔(InterFrame Space, IFS),其大小取决与要发送帧的类型:

  1. SIFS,最短的 IFS,用来分割属于一次对话的各个帧,如 ACK、CTS、分片后的数据帧、回答 AP 探询的帧等;
  2. PIFS,点协调 IFS,中等长度,在 PCF 操作中使用;
  3. DIFS,分布式协调 IFS,最长,用于异步帧竞争访问的时延。

退避算法

CA 和 CD 的退避算法不太相同:

  1. 当信道从忙态变为空闲时,任何一个站要发送数据帧,都要等待一个时间间隔(空闲窗口),才会发送数据;
  2. 只有信道空闲且当前数据帧是要发送的第一个数据帧才不使用退避算法;
  3. 要使用退避算法的情况:在发送第一个帧之前检测到信道忙、每次重传、每次成功发射之后发射下一个帧。

屏蔽站问题

问题定义

存在三个站 A、B、C,其中 A 和 B 在 C 的覆盖范围内,但是 A 和 B 之间间隔太远,并不能接收到相互之间的信息。

当 A 和 B 监听到信道空闲,都向 C 发送数据,导致碰撞。

为了避免这个问题,802.11 允许发送站对信道进行 预约 ,即在发送数据前先要广播一个很短的请求 RTS(Request To Send)控制帧,包括源地址、目标地址和通信所持续的时间。

若信道空闲,则目标站点广播一个 允许发送 CTS(Clear To Send)控制帧,其包括本次通信持续的时间(从 RTS 中复制),这样就能让其他站在预约期内先不要发送。

CSMA/CD 和 CSMA/CA 的区别

  1. 前者可以检测冲突,但是无法避免;后者发送数据时不能检测信道冲突,即使本节点没有冲突,也不能表示接收处没有冲突,只能尽量避免。
  2. 传输介质不同,骑着是总线形以太网,后者是无线局域网 802.11 a/b/g/n 等。
  3. 检测方式不同,前者通过电缆的电压变化检测;后者通过能量检测、载波检测和能量载波混合检测三种方式。

轮询访问:令牌传递协议

不允许用户随机地发送信息,而是通过一个集中控制的监控站,以循环方式询问每个节点的需求,当某个节点占用信道时,其余节点均不能使用。

典型的轮询访问就是令牌传递协议,常用在令牌环局域网中。

令牌传输协议中,一个令牌(Token)沿着环形总线在各节点直接依次传递,需要发送的节点只有受到令牌之后才能进行发送。

发送时,节点修改令牌中的标志位,同时添加要传输的而数据,使令牌变为一个数据帧。

令牌继续沿着环路传播,直到目标节点,目标节点将复制数据再做处理。

直到令牌传递回源节点,并且检验数据是否在传输过程中发生错误,有错则重传;无错则重新产生一个令牌,并传递给下一节点,以交出信道控制权。

note

信道的物理拓扑不必是一个环,但是逻辑拓扑结果必须是一个环。

tip

通过介质访问控制机制可以使广播信道逻辑变为点对点的信道,所以说数据链路层研究的是 点对点 之间的而通信。

局域网

基本概念

tip

在一个较小的地理范围内,将各种设备通过传输介质相互连接起来,组成资源和信息共享的计算机互联网络,主要特点有:

  1. 地理范围和站点数目均有限;
  2. 所有站点共享较高的总带宽;
  3. 较低时延和误码率;
  4. 各站点地位平等;
  5. 能进行广播和组播。

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

拓扑结构一般有星形结构、环形结构、总线形结构、星形总线复合型。

名称逻辑拓扑物理拓扑
以太网(使用范围最广的局域网)总线形星形
令牌环环形新型
FDDI(光纤分布数字接口)环形双环

IEEE 802 所定义的局域网参考模型对应于 OSI 模型的数据链路层和物理层,其中数据链路层被分为两个子层——逻辑链路控制(LLC)和媒体接入控制(MAC)子层。 前者向网络层提供无确认无连接、面向连接、带确认无连接、高速传送四种连接服务;后者向上层屏蔽对物理层的访问差异、提供对物理层的统一接口,如组帧、拆帧、比特传输差错检测、透明传输。

info

由于以太网的垄断地位,LLC 子层作用不大,因此现在很多网卡只适配 MAC 协议。

以太网和 IEEE 802.3

tip

严格来说,以太网的标准为 DIX Ethernet V2,与 802.3 差异很小,因此也将 802.3 局域网称为以太网。

以太网通过 无连接的工作方式使用曼彻斯特编码 简化通信,前者不对发送的帧编号,也不要求确认,提供不可靠服务。

计算机与局域网的连接通过网络适配器或者网卡实现,网卡上装有处理器和存储器(笔记本电脑的网卡一般集成在网卡中,可能没有单独的处理器),其工作在 数据链路层,与计算机的通信通过 I/O 总线以并行方式进行。 世界上所有的网卡在出厂时有一个唯一代码,即 介质访问控制(MAC)地址,用于控制主机的数据通信。

MAC 地址长 6 字节,一般使用连字符或冒号连接,如 02-40-8d-e2-c1-21,高 24 位为厂商代码、低 24 位为网卡序列号。 由于以太网使用广播通信,网卡接受 MAC 帧时会先确认 MAC 地址。

MAC 帧有 8 字节的前导码,前 7 个字节是前同步码,后跟一个帧开始界定符;而后才是以太网 MAC 帧,包括 6 字节的目的地址和源地址、帧类型、和 46~1500 字节的数据(IP 数据帧)、以及 4 字节的 FCS(校验码),算法采用 32 位循环冗余码。

info

由 CSMA/CD 可知以太网帧最短帧长为 64 字节,因此数据部分最短为 64-6-6-2-4=46(不包括前导码。

caution

MAC 帧并不需要帧结束符,因为以太网在传输帧时,各帧之间必须有一定的间隔。

高速以太网

速率超过 100MB/s 则称之为高速以太网。

名称速率工作方式协议其他
100BASE-T100MB/s全双工、半双工CSMA/CD最短帧长不变,最大电缆长度减少到 100m,帧间隔由 9.6us 变为 0.96us
G-bit1Gb/s全双工、半双工CSMA/CD
10 G-bit10 Gb/s全双工使用光纤传输

IEEE 802.11 无线局域网

无线局域网可分为两类:有固定基础设施无固定基础设施的自移动

前者使用遵守 802.11 协议,使用星形拓扑,其中心被称为接入点(Access Point, AP),在 MAC 层使用 CSMA/CA 协议,又被称为为 Wi-Fi,其最小构件是基本服务集(BBS Basic Service Set),其中一个接入点和若干移动站;安装 AP 时,必须为其分配一个不超过 32 字节的服务集标识符(SSID)和一个信道;BBS 之间的连接需要通过 AP,这样构成了一个扩展服务集(ESS),不同 AP 之间的通信使用有线传输。

后者又被称为自组网络,其中没有 AP,而是由一些平等状态的移动站相互通信组成的临时网络。

802.11 的 MAC 帧有三种类型:

  1. 数据帧,首部占 30 字节,帧主体不超过 2312 字节,比以太网长很多,FCS 校验 4 字节;首部中存储着帧控制、持续期、序号控制和四个地址,分别表示源地址、目标地址、AP 地址,地址四用于自组网络;帧控制中有两位用于表示是去往 AP 还是来自 AP;
  2. 控制帧
  3. 管理帧

VALN

tip

由于以太网是一个广播域,当以太网中有太多设备时,往往会导致:

  1. 广播帧过多,特别是经常使用的 ARP 和 DHCP 协议;
  2. 一个单位不同部门共享一个局域网,对信息保密不利。

因此引入了虚拟局域网(VLAN),将较大的局域网分割为一些较小的 VLAN 广播域。

802.3ac 定义了支持 VLAN 的以太网帧格式,在其中插入 4 字节的 VLAN 标签,用于指明发送帧的设备所属 VLAN,因此其最长帧长也变为 1518.

广域网

基本概念

tip

通常指覆盖范围很广的长距离网络,是因特网的核心部分,其人物是长距离运送主机所发送的数据;连接广域网各结点交换机的都是高速链路,如长达几千千米的光缆,或者点对点卫星链路,因此广域网首先要考虑的是通信容量是否够大。

广域网由一些结点交换机组成,用于将分组存储并转发,结点之间点对点连接,通常一个结点与多个结点交换机连接保证可靠性。

广域网使用的协议主要在网络层。

广域网和局域网的区别和联系

广域网局域网
覆盖范围很广,通常跨区域较小
连接方式点对点连接,且为了提高可靠性,通常一个节点与多个节点连接多点接入
OSI 参考模型层次物理层、数据链路层和网络层物理层和数据链路层
联系与相似点从互联网的角度看,二者平等,连接到一个广域网或者局域网的主机时,只需要使用其网络的物理地址
着重点资源共享数据传输

PPP 协议

tip

点对点协议(Point-to-Point Protocol)是使用串行线路通信的面向字节的协议,该协议使用在直接连接两个结点的链路上。

组成:

  1. 链路控制协议(LCP),一种扩展链路控制协议,用于建立、配置、测试和管理数据链路;
  2. 网络控制协议(NCP),PPP 协议允许同时采用多种网络层配置协议,每个不同的网路层协议要用一个相应的 NCP 来配置;
  3. 封装为串行链路,IP 数据报在 PPP 帧中存于信息部,受到最长传送单元(MTU)的限制。

PPP 是面向字节的,因此所有 PPP 帧的长度都是整数字节,同时由于其点对点,无须采用 CSMA/CD 协议,自热没有最短帧,因此信息段占 0~1500 字节,而不是 46~1500 字节。

PPP 帧格式略。

PPP 链路的建立过程:

  1. 当线路检测到载波信号,建立物理连接,进入建立状态;
  2. LCP 开始选项商定,成功后进入身份验证状态;
  3. 验证通过后进入网络层协议状态,使用 NCP 配置网络层;
  4. 配置成功后进入打开状态,可进行数据传输。

PPP 协议的特点:

  1. 提供差错检测但不提供纠错,是 不可靠的 传输协议,也不使用序号和确认机制;
  2. 只支持点对点,不支持多点;
  3. 只支持全双工链路;
  4. 链路两端可以使用不同的网络层协议;
  5. 面向字节,当信息字段和标志字段有一样的比特组合时,PPP 有两种处理方法:
    1. 若其在异步线路(默认),则使用字符填充法;
    2. 若在同步线路,采用硬件完成比特填充,与后文的 HDLC 一致。
tip

若数据链路层出错概率不大,可以使用 PPP 协议;并且数据链路层的可靠传输并不能保证网络层的传输也是可靠的,可能会由于网络拥塞被丢弃等。

HDLC 协议

tip

又称为高级数据链路控制协议,面向比特,不依赖于任何一种字符编码集;数据报文可以透明传输,采用 0 比特插入法,易于硬件实现;采用全双工通信,传输小路较高;所有帧采用 CRC 校验,对信息帧进行编号,可靠性高;传输控制和处理分离,灵活性高。

数据链路层设备

网桥

可以将多个以太网连接,每个以太网称为 网段;网桥工作在链路层的 MAC 子层,可以使各网段称为隔离开的 碰撞域(冲突域),如果换成工作在物理层的转发器则没有这种过滤的功能;并且一个网段的故障不会影响到另一个网段的运行;网桥必须具有路径选择的功能,接收到帧之后,要决定正确的路径。

局域网交换机

又称 以太网交换机,实质上是一个多端口的网桥,通常工作在全双工模式;其对工作站透明,管理开销低,简化了网络结点增加、移动和网络变化的操作;还可以方便实现虚拟局域网,隔离广播域;对于共享式以太网,每个用户通信时独占带宽。

其特点有:

  1. 每个端口直接与一个主机相连(网桥的端口往往连接到一个网段),且全双工;
  2. 可以换同时连通多对端口,使得相互通信的主机无碰撞传输数据;
  3. 即插即用,内部转发通过算法自动学习;
  4. 使用专门的交换结构芯片,交换速率高;
  5. 独占带宽。

以太网交换机主要采用两种模式:

  1. 直通,只检查帧的目的地址,立即转发,但缺少安全性,也不支持具有不同速率的端口的交换;
  2. 存储转发,先将帧存储到高速缓存中,再进行检查,无误后转发出,可支持不同速率端口交换;缺点是延迟较高。

交换机自学习功能

网桥中有一个交换表,初始为空,当接收到一个帧时,若查表失败,则将源地址和端口写入交换表,并向除了发送端口的所有端口广播该帧,其他设备会丢弃该帧,只有目标设备接收;随着时间推移,便可以更新所有主机地址和端口的对应关系;考虑道主机会随时变化,需要更新交换表,因此每个表项都设置了一定的有效时间,若超时没有使用该表项,则删除。