数据链路层

本文参考《计算机网络(第7版)》

目录

数据链路层概况

局域网虽然是个网络, 但我们并不把局域网放在网络层中讨论。这是因为在网络层要讨论的问题是多个网络互连的问题, 是讨论分组怎样从一个网络, 通过路由器,转发到另一个网络。在本章中我们研究的是在同一个局域网中, 分组怎样从一台主机传送到另一台主机, 但并不经过路由器转发。从整个互联网来看, 局域网仍属于数据链路层的范围

数据链路层使用的信道

  • 点对点信道
    在这里插入图片描述
  • 广播信道
    在这里插入图片描述广播信道必须使用专用的共享信道协议来协调这些主机的数据发送

数据链路、帧

  • 链路 (link) (物理链路):是从一个结点到相邻结点的一段物理线路(有线或无线), 而中间没有任何其他的交换结点。在进行数据通信时, 两台计算机之间的通信路径往往要经过许多段这样的链路。可见链路只是一条路径的组成部分
  • 数据链路 (data link) (逻辑链路)除了物理线路外,还必须有通信协议来控制这些数据的传输。若把实现这些协议的硬件和软件加到链路上,就构成了数据链路
    (现在最常用的方法是使用适配器(即网卡) 来实现这些协议的硬件和软件。 一般的适配器都包括了数据链路层和物理层这两层的功能)

  • 数据链路层传送的是(PDU)

在这里插入图片描述

三个基本问题

数据链路层协议有许多种,但有三个基本问题则是共同的

封装成帧

  • 封装成帧 (framing) 就是在一段数据的前后分别添加首部和尾部,然后就构成了一个帧
  • 首部和尾部的一个重要作用就是进行帧定界
    在这里插入图片描述
    帧的数据部分有一个封装的长度限制:最大传输单元 M T U MTU MTU (maximum transmission unit)


用控制字符进行帧定界的方法

  • 当数据是由可打印的 ASCII 码组成的文本文件时,帧定界可以使用特殊的帧定界符
  • 控制字符 SOH (Start Of Header) (0x01)放在一帧的最前面,表示帧的首部开始。另一个控制字符 EOT (End Of Transmission) (0x04) 表示帧的结束

在这里插入图片描述

当数据在传输中出现差错时, 帧定界符的作用更加明显。假定发送端在尚未发送完一个帧时突然出故障, 中断了发送。但随后很快又恢复正常, 于是重新从头开始发送刚才未发送完的帧。由于使用了帧定界符, 接收端就知道前面收到的数据是个不完整的帧(只有首部开始符SOH而没有传输结束符EOT), 必须丢弃。而后面收到的数据有明确的帧定界符(SOH和EOT), 因此这是一个完整的帧, 应当收下


但如果数据是非ASCII码的文本文件时且其中的某个字节的二进制代码恰好和 SOH 或 EOT 一样,数据链路层就会错误地“找到帧的边界”

在这里插入图片描述

这个问题就是透明传输要解决的

透明传输

  • “在数据链路层透明传送数据表示无论发送什么样的比特组合的数据,这些数据都能够按照原样没有差错地通过这个数据链路层

对所传送的数据来说, 这些数据就“ 看不见“ 数据链路层有什么妨碍数据传输的东西。或者说, 数据链路层对这些数据来说是透明的


解决透明传输问题:

  • 解决方法:字节填充 (byte stuffing) 或字符填充 (character stuffing)
  • 发送端的数据链路层在数据中出现控制字符“SOH”或“EOT”的前面插入一个转义字符“ESC”(其十六进制编码是1B)。如果转义字符也出现在数据当中,那么应在转义字符前面插入一个转义字符 ESC。当接收端收到连续的两个转义字符时,就删除其中前面的一个
  • 接收端的数据链路层在将数据送往网络层之前删除插入的转义字符
    在这里插入图片描述

差错控制

  • 在传输过程中可能会产生比特差错:1 可能会变成 0, 而 0 也可能变成 1
  • 在一段时间内,传输错误的比特占所传输比特总数的比率称为误码率 BER (Bit Error Rate)。误码率与信噪比有很大的关系

  • 在数据链路层传送的帧中,广泛使用了 循环冗余检验 CRC检错码纠错码:为每个分组加上足够多的冗余信息,接收方能发现并自动纠正传输差错;检错码:为每个分组加上一定的冗余信息,接收方能发现传输差错,但是自己不能纠正,必须通过重发机制来解决)
  • 帧检验序列 FCS (Frame Check Sequence):在数据后面添加上的冗余码。 可以用 CRC 这种方法得出,但 CRC 并非用来获得FCS 的唯一方法
  • 如果要在数据链路层进行差错检验, 就必须把数据划分为帧, 每一帧都加上冗余码, 一帧接一帧地传送, 然后在接收方逐帧进行差错检验

应当注意:

  • 仅用循环冗余检验 CRC 差错检测技术只能做到无差错接受 (accept),即:“凡是接受的帧(即不包括丢弃的帧),我们都能以非常接近于 1 的概率认为这些帧在传输过程中没有产生差错”。也就是说:“凡是接收端数据链路层接受的帧都没有比特差错”(有差错的帧就丢弃而不接受

传输差错可分为两大类:
一类就是前面所说的最基本的比特差错
另一类传输差错就是收到的帧并没有出现比特差错, 但却出现了帧丢失、帧重复或帧失序

  • 单纯使用 CRC 差错检测技术能够实现无比特差错的传输,但这还不是可靠传输。也就是说不能实现“无差错传输”或“可靠传输”(即发送什么就收到什么)

要做到“无差错传输”就必须再加上确认和重传机制

本章介绍的数据链路层协议都不是可靠传输的协议。如果在数据链路层传输数据时出现了差错并且需要进行改正, 那么改正差错的任务就由上层协议(例如, 运输层的TCP协议)来完成

点对点协议 PPP (Point-to-Point Protocol)

PPP 协议的特点

用户使用拨号电话线接入因特网时,一般都是使用 PPP 协议

PPP 协议是大多数个人计算机和 ISP 之间使用的协议

PPP 协议应满足的需求:

  • 简单——这是首要的要求
    这种数据链路层的协议非常简单: 接收方每收到一个帧, 就进行 CRC 检验。如 CRC 检验正确, 就收下这个帧;反之, 就丢弃这个帧, 其他什么也不做
  • 封装成帧、透明性、差错检测 (丢弃有差错的帧)
  • 支持多种网络层协议
    PPP 协议必须能够在在同一条物理链路上同时支持多种网络层协议。当点对点链路所连接的是局域网或路由器时, PPP协议必须同时支持在链路所连接的局域网或路由器上运行的各种网络层协议
  • 支持多种类型链路
    例如, 串行 / 并行, 同步 / 异步, 低速 / 高速…的点对点链路
  • 检测连接状态(面向连接的协议)
  • 最大传送单元
    PPP 协议必须对每一种类型的点对点链路设置最大传送单元MTU的标准默认值(1500字节)
  • 网络层地址协商
    PPP协议必须提供一种机制使通信的两个网络层(例如,两个IP 层) 的实体能够通过协商知道或能够配置彼此的网络层地址
  • 数据压缩协商

PPP 协议不需要的功能:

  • 纠错、流量控制、序号(PPP协议只进行差错检测,不进行实现可靠传输)
  • 多点线路(PPP协议应用于点对点信道)
  • 半双工或单工链路(PPP协议工作在全双工状态)

PPP 协议之所以不使用序号和确认机制是出于以下的考虑:
– 在数据链路层出现差错的概率不大时,使用比较简单的 PPP 协议较为合理
– 在因特网环境下,PPP 的信息字段放入的数据是 IP数据报。数据链路层的可靠传输并不能够保证网络层的传输也是可靠的
帧检验序列 FCS 字段可保证无差错接收

可靠传输由运输层的TCP协议负责


PPP 协议的帧分为:

  • PPP 信息帧:将 IP 数据报封装到链路的方法
  • PPP 链路控制帧
    链路控制协议 LCP (Link Control Protocol) 用于建立、配置、管理和测试数据链路连接
  • PPP 网络控制帧
    网络控制协议 NCP (Network Control Protocol) 用于建立和配置不同的网络层协议

PPP 协议的帧格式

在这里插入图片描述

协议结构不用记,知道是干啥的就 ok

  • 标志字段 F = 0 x 7 E F = 0x7E F=0x7E (标志数据帧的开始和结束,即为 PPP 帧的定界符
  • 地址字段 A A A 只置为 0 x F F 0xFF 0xFF。地址字段实际上并不起作用 (PPP 协议用于点对点信道,实际上根本不需要地址字段…)
  • 控制字段 C C C 通常置为 0 x 03 0x03 0x03,实际上也不起作用
  • PPP 有一个 2 个字节的协议字段,用于标识把封装的数据交给上层的哪一个协议进行处理:
    当协议字段为 0 x 0021 0x0021 0x0021 时,PPP 帧的信息字段就是IP 数据报 (PPP信息帧)
    若为 0 x C 021 0xC021 0xC021, 则信息字段是 PPP 链路控制数据(PPP 链路控制帧(LCP))
    若为 0 x 8021 0x8021 0x8021,则表示这是网络控制数据 (PPP 网络控制帧(NCP))
  • 数据部分 M T U MTU MTU 默认为 1500 1500 1500 Byte
    数据帧越大,出错概率越大,而一旦出错,该数据帧就要被丢弃,造成链路资源的损失。因此需要限制数据帧长度
  • 帧检验序列 FCS (Frame Check Sequence) 负责进行差错检测,由 CRC 生成

PPP 链路控制帧(LCP)

在这里插入图片描述

PPP协议的数据链路选项主要包括:

  • 异步链路中将什么字符当做转义字符
  • 为了提高线路的利用率,是否可以不传输标志字节或地址字节,并将协议字段从2字节缩短为1字节
  • 更改 MTU (如果在线路建立期间,收发双方不使用链路控制协商,固定的数据字段长度为1500B)

PPP 网络控制帧(NCP)

在这里插入图片描述

  • 网络控制帧可以用来协商是否采用报头压缩 CSLIP协议( Serial Line Internet Protocol,串行线路网际协议,用于配置网络层,来获取临时 IP 地址),也可用来动态协商确定链路每端的 IP 地址

透明传输问题

当 PPP 用在同步传输链路时,协议规定采用硬件来完成零比特填充

  • 在发送端,只要发现有 5 个连续 1,则立即填入一个 0 来保证不会出现 6 个连续的 1
  • 接收端对帧中的比特流进行扫描。每当发现 5 个连续 1 时,就把这 5 个连续 1 后的一个 0 删除
    在这里插入图片描述

当 PPP 用在异步传输时,就使用一种特殊的字符填充法,转义符定义为 0 x 7 D 0x7D 0x7D

  • 将信息字段中出现的每一个 0 x 7 E 0x7E 0x7E (标志字段 F F F) 字节转变成为 2 字节序列 ( 0 x 7 D , 0 x 5 E ) (0x7D, 0x5E) (0x7D,0x5E)
  • 若信息字段中出现一个 0 x 7 D 0x7D 0x7D 的字节, 则将其转变成为2字节序列 ( 0 x 7 D , 0 x 5 D ) (0x7D, 0x5D) (0x7D,0x5D)
  • 若信息字段中出现ASCII 码的控制字符(即数值小于 0 x 20 0x20 0x20 的字符),则在该字符前面要加入一个 0 x 7 D 0x7D 0x7D 字节,同时将该字符的编码加以改变(PPP用 0 x 20 0x20 0x20 异或被转义的数据字节)

PPP 协议的工作状态

  • 当用户拨号接入ISP 时,路由器的调制解调器对拨号做出确认,并建立一条物理连接
  • PC 机向路由器发送一系列的 LCP 分组 (链路控制分组)(封装成多个PPP帧),以便建立 LCP 连接
  • 这些分组及其响应选择一些 PPP 参数,然后进行网络层配置,网络控制协议 NCP 给新接入的 PC 机分配一个临时的 IP 地址,使 PC 机成为因特网上的一个主机
  • 通信完毕时,NCP 释放网络层连接,收回原来分配出去的 IP 地址。接着,LCP 释放数据链路层连接。最后释放的是物理层的连接

**上述过程可用下面的状态图来描述:

在这里插入图片描述

  • PPP 链路的起始和终止状态永远是“ 链路静止" (Link Dead)状态, 这时在用户个人电脑和ISP的路由器之间并不存在物理层的连接
  • 当用户拨号接入 ISP 时,路由器的调制解调器对拨号做出确认,并建立一条物理连接,PPP 就进入“ 链路建立" (Link E stablish)状态
  • 这时PC 机向路由器发送一系列的 LCP 分组。这些分组及其响应选择一些 PPP 参数,建立LCP链路。链路的另一端可以发送以下几种响应中的一种:
    (1) 配置确认帧(Configure-Ack):所有选项都接受
    (2) 配置否认帧(Configure-Nak):所有选项都理解但不能接受
    (3) 配置拒绝帧(Configure-Reject):选项有的无法识别或不能接受, 需要协商
  • 协商结束后双方就建立了 LCP链路, 接着就进入“鉴别" (Authenticate)状态。若鉴别身份失败, 则转到“ 链路终止" (Link Terminate)状态。若鉴别成功, 则进入“ 网络层协议" (Network-Layer Protocol)状态
  • 在“ 网络层协议” 状态,链路两端的NCP 根据网络层不同协议交换特定的网络控制分组,如IP控制协议IPCP分组;NCP 给新接入的 PC机分配一个临时的 IP 地址,使 PC 机成为因特网上的一个主机
  • 当网络层配置完毕后, 链路就进入可进行数据通信的“ 链路打开" (Link Open)状态。链路的两个PPP端点可以彼此向对方发送分组。两个PPP端点还可发送回送请求LCP分组(Echo-Request)和回送回答LCP分组(Echo-Reply), 以检查链路的状态
  • 通信完毕时,NCP 释放网络层连接,收回原来分配出去的IP 地址。接着,LCP 释放数据链路层连接。最后释放的是物理层的连接

由此可见, PPP协议已不是纯粹的数据链路层的协议, 它还包含了物理层和网络层的内容

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

局域网的数据链路层

优点:

  • 具有广播功能
  • 便于系统的扩展
  • 提高了系统的可靠性

局域网的工作层次跨越数据链路层和物理层


媒体共享技术 (共享信道)

  • 静态划分信道:频分复用、时分复用、波分复用、码分复用
  • 动态媒体接入控制多点接入,信道并非固定分配)
    随机接入:需解决碰撞冲突 (以太网就采用随机接入)
    受控接入:服从一定控制,如轮询

局域网的两个标准:

  • "以太网”应当是指符合 DIX Ethernet V2 标准的局域网
  • IEEE 的 802.3 标准与 DIX Ethernet V2 标准相比只有很小的(帧格式)差别,因此可以将 802.3 局域网简称为“以太网”

为了使数据链路层能更好地适应多种局域网标准,802 委员会将局域网的数据链路层拆成两个子层:

  • 逻辑链路控制子层 LLC (Logical Link Control)
    (在TCP/IP 体系中LLC作用不大,很多厂商生产的适配器上仅装有 MAC协议而没有 LLC 协议)
  • 媒体接入控制子层 MAC (Medium Access Control): 解决局域网中各站点 共享通信介质的争用问题

适配器的作用

通信适配器(adapter) / 网络接口卡NIC (Network Interface Card) / “网卡”

计算机与外界局域网的连接是通过通信适配器(adapter) 进行的

  • 进行串行/并行转换
    适配器和局域网之间的通信是通过电缆或双绞线以串行传输方式进行的,而适配器和计算机之间的通信则是通过计算机主板上的 I/O 总线以并行传输方式进行的
  • 对数据进行缓存
    网络上的数据率和计算机总线上的数据率并不相同
  • 在计算机的操作系统安装适配器的设备驱动程序:
    驱动程序以后就会告诉适配器, 应当从存储器的什么位置上把多长的数据块发送到局域网,或者应当在存储器的什么位置上把局域网传送过来的数据块存储下来
  • 实现以太网协议

如下图所示:
在这里插入图片描述

  • 适配器在接收和发送各种帧时, 不使用计算机的CPU
  • 当适配器收到有差错的帧时, 就把这个帧直接丢弃而不必通知计算机。当适配器收到正确的帧时, 它就使用中断来通知该计算机, 并交付协议栈中的网络层
  • 当计算机要发送IP数据报时, 就由协议栈把IP数据报向下交给适配器, 组装成帧后发送到局域网
  • 计算机的硬件地址就在适配器的ROM中, 而计算机的软件地址一IP地址, 则在计算机的存储器中

最早的以太网是将许多计算机都连接到一根总线上,并采用广播通信方式,但目的不是一对多


在具有广播特性的总线上实现一对一的通信:

在这里插入图片描述

  • 总线上的每一个工作的计算机都能检测到 B B B 发送的数据信号
  • 由于只有计算机 D D D 的地址 (硬件地址,即存放在适配器ROM中的地址) 与数据帧首部写入的地址一致,因此只有 D D D 才接收这个数据帧
  • 其他所有的计算机都检测到不是发送给它们的数据帧,因此就丢弃这个数据帧

为了通信的简便,以太网采取了两种重要的措施

  • 采用较为灵活的无连接的工作方式
  • 以太网使用曼彻斯特码,对发送的数据帧不进行编号,也不要求对方发回确认

这样做的理由是局域网信道的质量很好,因信道质量产生差错的概率是很小的


以太网提供的服务

  • 以太网提供的服务是不可靠的交付,即尽最大努力的交付
  • 当目的站收到有差错的数据帧时就丢弃此帧,其他什么也不做。差错的纠正由高层来决定。

如果高层发现丢失了一些数据而进行重传,但以太网并不知道这是一个重传的帧,而是当作一个新的数据帧来发送

CSMA / CD 协议

Carrier Sense Multiple Access/Collision Detection
“载波侦听 多点接入 / 冲突检测”协议

  • 总线上只要有一台计算机在发送数据, 总线的传输资源就被占用。因此,在同一时间只能允许一台计算机发送数据, 否则各计算机之间就会互相干扰。以太网采用随机接入,因此,CSMA / CD 协议就是为了解决冲突

载波监听

  • 每一个站在发送数据之前先要检测总线上是否有其他计算机在发送数据,如果有,则暂时不要发送数据,以免发生碰撞
  • 可以通过总线电平跳变来判断

在这里插入图片描述

因此,在使用CSMA/CD协议时, 一个站不可能同时进行发送和接收。因此使用CSMA/CD协议的以太网不可能进行全双工通信而只能进行半双工通信

帧间最小间隔

  • 帧间最小间隔 9.6 μ s 9.6μs 9.6μs, 相当于 96 96 96 比特时间
  • 一个站在检测到总线开始空闲后,还要等待 9.6 μ s 9.6 \mu s 9.6μs 才能再次发送数据
  • 这样做是为了使刚刚收到数据帧的站的接收缓存来得及清理,做好接收下一帧的准备

碰撞检测

当某个站监听到总线是空闲时,也可能总线并非真正是空闲的。例如:

  • A A A B B B 发出的信息,要经过一定的时间后才能传送到 B B B
  • B B B 若在 A A A 发送的信息到达 B B B 之前发送自己的帧 (因为这时 B B B 的载波监听检测不到 A A A 所发送的信息),则必然要在某个时间和 A A A 发送的帧发生碰撞 / 冲突
  • 碰撞的结果是两个帧都变得无用
  • 一旦发现总线上出现了碰撞, 其适配器就要立即停止发送,然后等待一段随机时间后再次发送

  • 从物理层来看,冲突是指总线上同时出现两个或两个以上发送信号,它们叠加后的信号波形将不等于任何结点输出的信号波形。当几个站同时在总线上发送数据时,总线上的信号电压摆动值将会增大
  • 当一个站检测到的信号电压摆动值超过一定的门限值时,就认为总线上至少有两个站同时在发送数据,表明产生了碰撞
  • 也可以通过判断总线上信号是否符合曼彻斯特码规则来检测碰撞

  • τ \tau τ: 总线上的单程端到端传播时延

在这里插入图片描述

  • 最迟要经过 2 τ 2\tau 2τ 才能知道自已发送的数据和其他站发送的数据有没有发生碰撞

  • 由此可见, 每一个站在自已发送数据之后的一小段时间内, 存在着遭遇碰撞的可能性。这一小段时间是不确定的, 它取决于另一个发送数据的站到本站的距离。因此, 以太网不能保证某一时间之内一定能够把自己的数据帧成功地发送出去(因为存在产生碰撞的可能)。以太网的这一特点称为发送的不确定性。这种发送的不确定性使整个以太网的平均通信量远小于以太网的最高数据率

由于局域网上任意两个站之间的传播时延有长有短, 因此局域网必须按最坏情况设计, 即取总线两端的两个站之间的传播时延(这两个站之间的距离最大)为端到端传播时延

争用期 (contention period)

又称为碰撞窗口(collision window)

  • 争用期:以太网的端到端往返时间 2 τ 2\tau 2τ
  • 最迟要经过 2 τ 2\tau 2τ 才能知道自已发送的数据和其他站发送的数据有没有发生碰撞。即经过争用期这段时间还没有检测到碰撞, 才能肯定这次发送不会发生碰撞。这时, 就可以放心把这一帧数据顺利发送完毕
截断二进制指数退避

以太网使用 截断二进制指数退避 算法来确定碰撞后重传的时机。这种算法让发生碰撞的站在停止发送数据后, 不是等待信道变为空闲后就立即再发送数据, 而是推迟(这叫做退避) 一个随机的时间 (因为如果等待空闲就立即发送,则发生碰撞的几个站又会再次发生碰撞)

  1. 协议规定了基本退避时间为争用期 2 τ 2\tau 2τ, 具体的争用期时间 51.2 μ s 51.2μs 51.2μs。对于 10 M b i t / s 10 Mbit/s 10Mbit/s 以太网, 在争用期内可发送 512 b i t 512 bit 512bit, 即 64 64 64 字节。也可以说争用期是 512 512 512 比特时间 1 1 1 比特时间就是发送 1 1 1 比特所需的时间。也可以直接使用比特作为争用期的单位, 即争用期是发送 512 b i t 512 bit 512bit 所需的时间

相当于以太网最大端到端长度为约 5 k m 5km 5km (光纤做传播介质, 1 k m 1km 1km 5 μ s 5\mu s 5μs 5 k m 5km 5km 25 μ s = 1 τ 25\mu s=1\tau 25μs=1τ , 2 τ 2\tau 2τ 约为 50 μ s 50\mu s 50μs
但实际上的以太网覆盖范围远远没有这样大。因此, 实用的以太网都能在争用期 51.2 μ s 51.2μs 51.2μs 内检测到可能发生的碰撞。以太网的争用期确定为 51.2 μ s 51.2μs 51.2μs, 不仅考虑到以太网的端到端时延, 而且还包括其他的许多因素, 如存在的转发器所增加的时延, 以及强化碰撞的干扰信号的持续时间等

  1. 从离散的整数集合 [ 0 , 1 , … , ( 2 k − 1 ) ] [0,1,…, (2^{k -1})] [0,1,,(2k1)] 中随机取出一个数, 记为 r r r。重传应推后的时间就是 r r r 倍的争用期。上面的参数 k k k 按下面的公式计算:
    k = M i n [ 重 传 次 数 , 10 ] k = Min[重传次数, 10] k=Min[10]可见当重传次数不超过 10 10 10 时, 参数 k k k 等于重传次数;但当重传次数超过 10 10 10 时, k k k 就不再增大而一直等于 10 10 10
  2. 当重传达 16 16 16 次仍不能成功时(这表明同时打算发送数据的站太多, 以致连续发生冲突), 则丢弃该帧, 并向高层报告

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

例如, 在第1次重传时, k = 1 k = 1 k=1, 随机数 r r r 从整数 { 0 , 1 } \{0, 1\} {0,1} 中选一个数。因此重传的站可选择的重传推迟时间是 0 0 0 2 τ 2\tau 2τ, 在这两个时间中随机选择一个。若再发生碰撞, 则在第2次重传时, k = 2 k = 2 k=2, 随机数 r r r 就从整数 { 0 , 1 , 2 , 3 } \{0, 1, 2, 3\} {0,1,2,3} 中选一个数。因此重传推迟的时间是在 0 , 2 τ , 4 τ , 6 τ 0, 2\tau, 4\tau,6\tau 0,2τ,4τ,6τ 中随机地选取一个

最短有效帧长

现在考虑一种情况。某个站发送了一个很短的帧, 但在发送完毕之前并没有检测出碰撞。假定这个帧在继续向前传播到达目的站之前和别的站发送的帧发生了碰撞, 因而目的站将收到有差错的帧(当然会把它丢弃)。可是发送站却不知道这个帧发生了碰撞, 因而不会重传这个帧。这种情况显然是我们所不希望的

为了避免发生这种情况, 以太网规定了一个最短帧长 64 64 64 字节, 即 512 b i t 512 bit 512bit如果要发送的数据非常少, 那么必须加入一些填充字节, 使帧长不小于64字节。对于 10 M b i t / s 10 Mbit/s 10Mbit/s 以太网, 发送 512 b i t 512 bit 512bit 的时间需要 51.2 μ s 51.2μs 51.2μs, 也就是争用期


由此可见, 以太网在发送数据时, 如果在争用期(共发送了 64 64 64 字节)没有发生碰撞,那么后续发送的数据就一定不会发生冲突。换句话说, 如果发生碰撞, 就一定是在发送的前 64 64 64 字节之内。由于一检测到冲突就立即中止发送, 这时已经发送出去的数据一定小于 64 64 64 字节, 因此凡长度小于 64 64 64 字节的帧都是由于冲突而异常中止的无效帧。只要收到了这种无效帧, 就应当立即将其丢弃

下面介绍强化碰撞的概念。这就是当发送数据的站一旦发现发生了碰撞时, 除了立即停止发送数据外, 还要再继续发送32比特或48比特的人为干扰信号Gamming signal), 以便让所有用户都知道现在已经发生了碰撞

发现冲突、停止发送、延迟重发

发送数据过程中检测出冲突,发送结点要立即进入停止发送数据、随机延迟后重发的流程;

  1. 发送 冲突加强 信号,即发现冲突的发送站点向全网发送一个加强冲突的32比特或48比特的人为干扰信号,目的是确保有足够的冲突持续时间,使网中所有结点都能检测出冲突存在
  2. 立即丢弃冲突帧,减少由于冲突浪费的时间,提高信道利用率

在这里插入图片描述
从上图可以看出, A A A 站从发送数据开始到发现碰撞并停止发送的时间间隔是 T B T_B TB A A A 站得知碰撞已经发生时所发送的强化碰撞的干扰信号的持续时间是 T J T_J TJ。发生碰撞使 A A A 浪费时间 T B + T J T_B + T_J TB+TJ。可是整个信道被占用的时间还要增加一个单程端到端的传播时延 τ \tau τ。因此总线被占用的时间是 T B + T J + τ T_B + T_J+\tau TB+TJ+τ

CSMA / CD 的工作方式

  1. 适配器从网络层得到一个数据报,封装成以太网帧,并把该帧放到适配器缓存区
  2. 如果适配器侦听到信道空闲(即在 96 96 96 比特时间内,没有信号能量从信道进入到适配器),它开始传输该帧。如果侦听到信道忙,它等待到侦听不到信号能量(加上 96 96 96 比特时间),然后开始传输该帧
  3. 在传输过程中,适配器监听来自其他适配器的信号能量 (争用期内)。如果该适配器传输了整个帧,而没有检测到来自其他适配器的信号能量,则完成了该帧的传输
  4. 如果适配器在传输中检测到来自其他适配器的信号能量,它就停止传输帧,而传输一个32或48比特的干扰信号
  5. 在传输干扰信号后,适配器进入一个指数后退阶段

以太网每发送完一帧, 一定要把已发送的帧暂时保留一下。如果在争用期内检测出发生了碰撞, 那么还要在推迟一段时间后再把这个暂时保留的帧重传一次

以太网的信道利用率

假定一个10 Mbit/s 以太网同时有10个站在工作,那么每一个站所能发送数据的平均速率似乎应当是总数据率的 1 Mbit/s。其实不然,因为多个站在以太网上同时工作就可能会发生碰撞。当发生碰撞时,信道资源实际上是被浪费了。因此,当扣除碰撞所造成的信道损失后,以太网总的信道利用率并不能达到100%


在这里插入图片描述

  • 假定发送帧需要的时间 T 0 T_0 T0,帧长为 L L L (bit),数据发送速率为 C C C (b/s),则 T 0 = L / C T_0 =L/C T0=L/C
    (发送时,可能经过数次碰撞后再重传才能发送成功)
  • 成功发送一个帧需要占用信道的时间 (发送一帧所需的平均时间) T 0 + τ T_0+ \tau T0+τ, 比这个帧的发送时间要多一个单程端到端时延 τ \tau τ。这是因为当一个站发送完最后一个比特时,这个比特还要在以太网上传播。在最极端的情况下,发送站在传输媒体的一端,所需的时间是 τ \tau τ。 因此,必须在 T 0 + τ T_0+\tau T0+τ 后以太网的媒体才完全进入空闲状态,才能允许其他站发送数据

从上图可看出,要提高以太网的信道利用率,就必须 减小 a = τ / T 0 a=\tau/T_0 a=τ/T0

  • a → 0 a\rightarrow 0 a0 时,表示只要一发生碰撞, 就立即可以检测出来, 并立即停止发送, 因而信道资源被浪费的时间非常非常少
  • 反之,参数 a a a 越大,表明争用期所占的比例越大,这就使得每发生一次碰撞就浪费了不少的信道资源,使得信道利用率明显降低

为了减小 a a a,当数据率一定时,以太网的连线的长度受到限制(减小 τ \tau τ ),同时以太网的帧长不能太短(增大 T 0 T_0 T0


现在考虑一种理想化的情况。假定

  • 以太网上的各站发送数据都不会产生碰撞
  • 总线一旦空闲就有某一个站立即发送数据

于是 极限信道利用率 S m a x S_{max} Smax 为:

在这里插入图片描述

以太网的 MAC 层

MAC 层的硬件地址

  • 在局域网中, 硬件地址又称为物理地址MAC地址(因为这种地址用在MAC帧中)

在标识系统中, 地址就是识别某个系统的一个非常重要的标识符。这个非形式的定义固然很简单, 但有时却不够准确。严格地讲, 名字应当与系统的所在地无关。但是IEEE 802标准为局域网规定了一种48位的全球地址,是指局域网上的每一
台计算机中固化在适配器的ROM中的地址。因此,

  1. 假定连接在局域网上的一台计算机的适配器坏了而我们更换了一个新的适配器, 那么这台计算机的局域网的“地址” 也就改变了, 虽然这台计算机的地理位置一点也没有变化, 所接入的局域网也没有任何改变
  2. 假定我们把南京的某局域网上的一台笔记本电脑携带到北京, 并连接在北京的某局域网上。虽然这台电脑的地理位置改变了, 但只要电脑中的适配器不变, 那么该电脑在北京的局域网中的“地址” 仍然和它在南京的局域网中的“地址”一样

由此可见, 局域网上的某台主机的“地址“ 根本不能告诉我们这台主机位于什么地方。因此, 严格地讲, 局域网的“地址“ 应当是每一个站的“ 名字” 或标识符

如果连接在局域网上的主机或路由器安装有多个适配器, 那么这样的主机或路由器就有多个“ 地址"。更准确些说, 这种48位“ 地址” 应当是某个接口的标识符


48 位的 MAC 地址 (MAC-48 / EUI-48)

  • IEEE 的注册管理机构 RA 负责向厂家分配地址字段的前三个字节(即高位 24 位),称为组织唯一标志符(Organizationally Unique Identifier,即OUI)
  • 地址字段中的后三个字节(即低位 24 位)由厂家自行指派,称为扩展标识符(Extended Unique Identifier, EUI),必须保证生产出的适配器没有重复地址
  • MAC地址实际上就是适配器地址标识符EUI-48

适配器检查 MAC 地址

适配器的过滤功能:
适配器从网络上每收到一个 MAC 帧就首先用硬件检查 MAC 帧中的 MAC 地址

  • 如果是发往本站的帧则收下,然后再进行其他的处理
  • 否则就将此帧丢弃,不再进行其他的处理

“发往本站的帧”包括以下三种帧:

  • 单播(unicast)帧(一对一), 即收到的帧的MAC地址与本站的硬件地址相同
  • 广播(broadcast)帧(一对全体),即发送给本局域网上所有站点的帧(全1地址)
  • 多播(multicast)帧(一对多),即发送给本局域网上一部分站点的帧

所有的适配器都至少应当能够识别前两种帧, 即能够识别单播和广播地址。有的适配器可用编程方法识别多播地址

以太网适配器还可设置为一种特殊的工作方式, 即混杂方式。只要“ 听到“ 有帧在以太网上传输就都悄悄地接收下来, 而不管这些帧是发往哪个站。可用于窃听或流量监测

MAC 帧的格式

常用的以太网 MAC 帧格式有两种标准

  • DIX Ethernet V2 标准(即 以太网 V2 标准
  • IEEE的802.3标准

这里只介绍使用得最多的 以太网V2 的 MAC 帧格式


在这里插入图片描述

  • 目的地址字段 6 字节 (EUI-48, MAC 地址)
  • 源地址字段 6 字节
  • 类型字段 2 字节: 类型字段用来标志上一层使用的协议 0 x 0800 0x0800 0x0800 表示 IP 数据报,以便把收到的 MAC 帧的数据上交给上一层的这个协议
  • FCS 字段 4 字节
  • 数据字段 46 46 46 ~ 1500 1500 1500 字节
    MAC帧最小长度 64 64 64 字节 − - 18 18 18 字节的首部和尾部 = 数据字段的最小长度
    当数据字段的长度小于 46 字节时,应在数据字段的后面加入整数字节的填充字段,以保证以太网的 MAC 帧长不小于 64 字节
  • 一个站在刚开始接收 MAC 帧时, 由于适配器的时钟尚未与到达的比特流达成同步, 因此 MAC 帧的最前面的若干位就无法接收,结果使整个 MAC 帧成为无用的帧。为了接收端迅速达到比特同步,在传输媒体上实际传送的要比 MAC 帧还多 8 个字节
    • 8 字节中的第一个字段共 7 个字节,是前同步码,用来迅速实现 MAC 帧的比特同步
    • 第二个字段是帧开始定界符,表示后面的信息是 MAC 帧
  • 曼彻斯特码中间有电压转换,当转换消失时则意味着帧结束

考虑如下问题:如果数据字段长度小于 46 字节,MAC子层自动将数据字段填充至 46 字节。但MAC帧的首部并没有指出数据字段的长度。在有填充字段的情况下,接收端的MAC子层在剥去首部和尾部后就把数据字段和填充字段一起交给上层协议。现在的问题是:上层协议如何知道填充字段的长度呢?

可见,上层协议必须具有识别有效的数据字段长度的功能。我们知道,当上层使用IP协议时,其首部就有一个“ 总长度” 字段。因此,“ 总长度“ 加上填充字段的长度,应当等于MAC帧数据字段的长度

例如,当IP数据报的总长度为42字节时,填充字段共有4字节。当MAC帧把46字节的数据上交给IP层后,IP层就把其中最后4字节的填充字段丢弃

无效的 MAC 帧

  • 帧的长度不是整数个字节
  • 用收到的帧检验序列 FCS 查出有差错
  • 数据字段的长度不在 46 ~ 1500 字节之间

对于检查出的无效 MAC 帧就简单丢弃。以太网不负责重传丢弃的帧

扩展的以太网

在物理层扩展以太网

以太网上的主机之间的距离不能太远, 否则主机发送的信号经过铜线的传输就会衰减到使 CSMA/CD 协议无法正常工作


在过去广泛使用粗缆或细缆以太网时, 常使用工作在物理层的 转发器 / 集线器 来扩展以太网的地理覆盖范围

  • 两个网段可用一个转发器连接起来
  • 两个站之间最多可以经过三个电缆网段
    在这里插入图片描述

随着双绞线以太网成为以太网的主流类型,扩展以太网的覆盖范围已很少使用转发器了。


现在,扩展主机和集线器之间的距离的一种简单方法就是使用光纤(通常是一对光纤) 和一对光纤调制解调器

在这里插入图片描述
也可以使用双绞线和集线器

在这里插入图片描述


如果使用多个集线器,就可以连接成覆盖更大范围的多级星形结构的以太网。例如,一个学院的三个系各有一个以太网, 可通过一个主干集线器把各系的以太网连接起来,成为一个更大的以太网

在这里插入图片描述

但这种多级结构的集线器以太网也带来了一些缺点

  • 碰撞域冲突域:在以太网中,如果某个CSMA/CD网络上的两台计算机在同时通信时会发生冲突,那么这个CSMA/CD网络就是一个冲突域

    • 在三个系的以太网互连起来之前,每一个系的以太网是一个独立的碰撞域,即在任一时刻,在每一个碰撞域中只能有一个站在发送数据。每一个系的以太网的最大吞吐量是10 Mbit/s, 因此三个系总的最大吞吐量共有30 Mbit/s
    • 在三个系的以太网通过集线器互连起来后就把三个碰撞域变成一个碰撞域,而这时的最大吞吐量仍然是一个系的吞吐量10 Mbit/s
    • 这就是说,当某个系的两个站在通信时所传送的数据会通过所有的集线器进行转发,使得其他系的内部在这时都不能通信(一发送数据就会碰撞)
  • 如果不同的系使用不同的以太网技术(如数据率不同),那么就不可能用集线器将它们互连起来

    • 如果在图3-24中,一个系使用10 Mbit/s 的适配器,而另外两个系使用10/100 Mbit/s的适配器, 那么用集线器连接起来后, 大家都只能工作在10 Mbit/s的速率。集线器基本上是个多接口(即多端口) 的转发器, 它并不能把帧进行缓存。

在数据链路层扩展以太网

扩展以太网更常用的方法是在数据链路层进行

网桥

网桥工作在数据链路层

网桥对收到的帧根据其MAC帧的目的地址进行转发过滤

  • 当网桥收到一个帧时, 并不是向所有的接口转发此帧, 而是根据此帧的目的MAC地址, 查找网桥中的地址表, 然后确定将该帧转发到哪一个接口, 或者是把它丢弃(即过滤)

在这里插入图片描述


网桥和集线器(或转发器)不同

  • 集线器在转发帧时,不对传输媒体进行检测。
  • 网桥在转发帧之前必须执行 CSMA / CD 算法。若在发送过程中出现碰撞,就必须停止发送和进行退避

使用网桥带来的好处

  • 过滤通信量(通过缓存进行存储转发)
  • 扩大了物理范围。
  • 网桥使各网段成为隔离开的碰撞域,提高了可靠性(碰撞减少)

在这里插入图片描述

  • 可互连不同物理层、不同 MAC 子层和不同速率(如10 Mb/s 和 100 Mb/s 以太网)的局域网

使用网桥带来的缺点

  • 存储转发增加了时延
  • 在MAC 子层并没有流量控制功能。
  • 具有不同 MAC 子层的网段桥接在一起时时延更大
  • 网桥只适合于用户数不太多(不超过几百个)和通信量不太大的局域网,否则有时还会因传播过多的广播信息而产生网络拥塞。这就是所谓的广播风暴

透明网桥 (transparent bridge)

  • 透明”是指局域网上的站点并不知道所发送的帧将经过哪几个网桥,因为网桥对各站来说是看不见的
  • 透明网桥是一种即插即用设备,只要把网桥接入局域网,不需要改动硬件和软件,无需设置地址开关,无需装入路由表或参数,网桥就能工作

其标准是 IEEE 802.1D

自学习算法

透明网桥按照自学习算法处理收到的帧和建立转发表

  • 若从 A A A 发出的帧从接口 x x x 进入了某网桥,那么从这个接口出发沿相反方向一定可把一个帧传送到 A A A
  • 网桥每收到一个帧,就记下其源地址和进入网桥的接口,作为转发表中的一个项目
    • 在建立转发表时是把帧首部中的源地址写在“地址”这一栏的下面
    • 在转发帧时,则是根据收到的帧首部中的目的地址来转发的。这时就把在“地址”栏下面已经记下的源地址当作目的地址,而把记下的进入接口当作转发接口

在这里插入图片描述

A , B , C , D A,B,C,D A,B,C,D 为主机的 MAC 地址

  1. 在上图中, A A A 先向 B B B 发数据,由于此时 B 1 B_1 B1 转发表还未建立,因此网桥对该帧进行转发,并在转发表中将 A A A 记录为接口 1
  2. 同时,由于 B 1 B_1 B1 的转发, B 2 B_2 B2 也收到了 A A A B B B 发送的帧,进而在转发表中将 A A A 记录为接口 1,同时转发该帧
  3. F F F 在转发表中的建立同理
  4. 要注意的是此时 B B B A A A 发送数据时,由于 A A A 的地址已经记录在了转发表内, B 1 B_1 B1 不会对该帧进行转发,但会在转发表中建立 B B B 的地址

在网桥的转发表中写入的信息除了地址接口外,还有帧进入该网桥的时间

  • 这是因为以太网的拓扑可能经常会发生变化,站点也可能会更换适配器(这就改变了站点的地址)。另外,以太网上的工作站并非总是接通电源的
  • 把每个帧到达网桥的时间登记下来,就可以在转发表中只保留网络拓扑的最新状态信息。这样就使得网桥中的转发表能反映当前网络的最新拓扑状态

总结:

  • 网桥收到一帧后先进行自学习。查找转发表中与收到帧的源地址有无相匹配的项目。如没有,就在转发表中增加一个项目(源地址、进入的接口和时间)。如有,则把原有的项目进行更新
  • 转发帧。查找转发表中与收到帧的目的地址有无相匹配的项目。
    • 如没有,则通过所有其他接口(但进入网桥的接口除外)按进行转发。
    • 如有,则按转发表中给出的接口进行转发。
    • 若转发表中给出的接口就是该帧进入网桥的接口,则应丢弃这个帧(因为这时不需要经过网桥进行转发)。
生成树算法

在这里插入图片描述

设上图的网桥中下面的接口为接口1,上面的接口为接口2

假定一开始主机 A A A 向局域网2的某个主机发送数据。网桥1收到数据帧后对其进行转发,该数据帧又转发到网桥2,之后网桥2又将该帧转发回网桥1,就这样无限循环…白白消耗了网络资源

  • 生成树使得整个连通的网络中不存在回路,即在任何两个站之间只有一条路径。避免产生转发的帧在网络中不断地兜圈子
  • 其要点就是不改变网络的实际拓扑, 但在逻辑上则切断某些链路, 使得从一台主机到所有其他主机的路径是无环路的树状结构, 从而消除了兜圈子现象
  • 为了得出能够反映网络拓扑发生变化时的生成树,在生成树上的根网桥每隔一段时间还要对生成树的拓扑进行更新

以太网交换机(多接口网桥)

switching hub,也称为以太网交换机

交换机同样工作在数据链路层

以太网交换机已经淘汰了网桥和集线器

  • 以太网交换机的每个接口都直接与一个单台主机或另一个以太网交换机相连, 并且一般都工作在全双工方式
  • 以太网交换机还具有并行性,即能同时连通多对接口, 使多对主机能同时通信(而网桥只能一次分析和转发一个帧)。相互通信的主机都是独占传输媒体, 无碰撞地传输数据不需要 CSMA/CD
    • 对于 10 M b i t / s 10Mbit/s 10Mbit/s 共享式局域网,如果有 N N N 台主机,则每台主机的有效带宽为 10 / N   M b i t / s 10/N\ Mbit/s 10/N Mbit/s
    • 交换式局域网中,虽然在每个接口到主机的带宽还是 10 M b i t / s 10Mbit/s 10Mbit/s,但由于一个用户在通信时是独占而不是和其他网络用户共享传输媒体的带宽, 因此对于拥有 N N N 个接口的交换机的总带宽 N × 10 N\times10 N×10 M b / s Mb/s Mb/s
  • 以太网交换机是一种即插即用设备, 其内部的帧交换表(又称为地址表) 是通过自学习算法自动地逐渐建立起来的

在这里插入图片描述

过程与上面说的透明网桥的自学习算法一样,A先向B发送一帧, 从接口1 进入到交换机。交换机收到帧后,先查找交换表, 没有查到应从哪个接口转发这个帧。接着, 交换机把这个帧的源地址A 和接口1写入交换表中, 并向除接口1以外的所有接口广播这个帧…

  • 生成树协议STP (Spanning Tree Protocol)

在这里插入图片描述

A A A B B B 发送数据时,就会产生图中的无限循环,分析方法与前面讲的一样


交换机的交换方式

  • 存储转发
    以太网交换机的接口还有存储器, 能在输出端口繁忙时把到来的帧进行缓存。因此,如果连接在以太网交换机上的两台主机, 同时向另一台主机发送帧, 那么当这台主机的接口繁忙时, 发送帧的这两台主机的接口会把收到的帧暂存一下, 以后再发送出去。同时进行差错检测
  • 直接交换
    也有一些交换机采用直通(cut-through)的交换方式。直通交换不必把整个数据帧先缓存后再进行处理, 而是在接收数据帧的同时就立即按数据帧的目的MAC地址决定该帧的转发接口, 因而提高了帧的转发速度。如果在这种交换机的内部采用基于硬件的交叉矩阵, 交换时延就非常小。直通交换的一个缺点是它不检查差错就直接将帧转发出去, 因此有可能也将一些无效帧转发给其他的站
  • 改进直接交换:只检测前 64 字节帧头
局域网交换机(LAN switch)结构

在这里插入图片描述
交换机的背板带宽:

  • 交换机的背板带宽,是交换机接口处理器或接口卡和数据总线间所能吞吐的最大数据量。背板带宽标志了交换机总的数据交换能力
  • 交换机上所有端口能提供的总带宽,计算公式为:
    端 口 数 × 相 应 端 口 速 率 × 2         ( 全 双 工 模 式 ) 端口数 \times 相应端口速率 \times 2\ \ \ \ \ \ \ (全双工模式) ××2       ()
  • 如果 总 带 宽 ≤ 标 称 背 板 带 宽 总带宽 ≤标称背板带宽 ,可实现全双工无阻塞交换,证明交换机具有发挥最大数据交换性能的条件
交换机与集线器的区别
  • 集线器工作在OSI的第一层物理层,而交换机工作在的第二层数据链路层
  • 从工作方式来看,集线器采用“广播”模式,交换机只有发出请求的端口和目的端口之间相互响应而不影响其他端口
  • 从带宽来看,集线器所有端口共享一条带宽,只能工作在半双工模式;交换机每个端口都有一条独占的带宽,可以工作在全双工模式

从总线以太网到星形以太网

随着以太网上站点数目的增多, 使得总线结构以太网的可靠性下降。与此同时,大规模集成电路以及专用芯片的发展, 使得星形结构的以太网交换机可以做得既便宜又可靠

在这种情况下, 采用以太网交换机的星形结构又成为以太网的首选拓扑, 而传统的总线以太网也很快从市场上消失了

在这里插入图片描述

  • 总线以太网使用 CSMA/CD 协议, 以半双工方式工作
  • 以太网交换机不使用共享总线, 没有碰撞问题, 因此不使用CSMA/CD协议,而是以全双工方式工作

既然连以太网的重要协议 CSMA/CD 都不使用了(相关的 “ 争用期” 也没有了), 为什么还叫做以太网呢?

  • 原因就是它的帧结构未改变, 仍然采用以太网的帧结构

虚拟局域网 VLAN

Virtual LAN

  • 虚拟局域网 VLAN 是由一些局域网网段构成的与物理位置无关的逻辑组
    • 这些网段具有某些共同的需求
    • 每一个VLAN的帧都有一个明确的标识符, 指明发送这个帧的计算机属于哪一个VLAN

虚拟局域网其实只是局域网给用户提供的一种服务, 而并不是一种新型局域网


  • 利用以太网交换机可以很方便地实现虚拟局域网

设有 10 台计算机分配在三个楼层中, 构成了三个局域网, 即:
L A N 1 ( A 1 , A 2 , B 1 , C 1 ) , L A N 2 : ( A 3 , B 2 , C 2 ) , L A N 3 : ( A 4 , B 3 , C 3 ) LAN_1(A_1 ,A_2,B_1 , C_1),LAN_2: (A_3,B_2, C2), LAN_3: (A_4,B_3, C_3) LAN1(A1,A2,B1,C1),LAN2:(A3,B2,C2),LAN3:(A4,B3,C3)但这10 个用户划分为三个工作组, 也就是说划分为三个虚拟局域网VLAN。即:
V L A N 1 : ( A 1 , A 2 , A 3 , A 4 ) , V L A N 2 : ( B 1 , B 2 , B 3 ) ; V L A N 3 : ( C 1 , C 2 , C 3 ) VLAN_1: (A_1 ,A_2,A_3,A_4), VLAN_2: (B_1,B_2,B_3); VLAN_3 : (C_1, C_2, C_3) VLAN1:(A1,A2,A3,A4),VLAN2:(B1,B2,B3);VLAN3:(C1,C2,C3)

在这里插入图片描述

  • 在虚拟局域网上的每一个站都可以收到同一个虚拟局域网上的其他成员所发出的广播

例如, 当 B 1 B_1 B1 向工作组内成员发送数据时, 计算机 B 2 B_2 B2 B 3 B_3 B3 将会收到广播的信息, 虽然它们没有和 B 1 B_1 B1 连在同一个以太网交换机上。相反, B 1 B_1 B1 向工作组内成员发送数据时, 计算机 A 1 A_1 A1, A 2 A_2 A2 C 1 C_1 C1 都不会收到 B 1 B_1 B1 发出的广播信息, 虽然它们都与 B 1 B_1 B1 连接在同一个以太网交换机上。以太网交换机不向虚拟局域网以外的计算机传送 B 1 B_1 B1 的广播信息

  • 这样, 虚拟局域网限制了接收广播信息的计算机数, 使得网络不会因传播过多的广播信息(即所谓的“ 广播风暴") 而引起性能恶化

由于虚拟局域网是用户和网络资源的逻辑组合, 因此可按照需要将有关设备和资源非常方便地重新组合, 使用户从不同的服务器或数据库中存取所需的资源

虚拟局域网使用的以太网帧格式

虚拟局域网协议 802.3ac标准定义了以太网的帧格式的扩展, 以便支持虚拟局域网

  • 允许在以太网的帧格式中插入一个4字节的标识符, 称为VLAN标记(tag), 用来指明发送该帧的计算机属于哪一个虚拟局域网

在这里插入图片描述

  • VLAN 标记的前两个字节总是设置为 0 x 8100 0x8100 0x8100。当数据链路层检测到MAC帧的源地址字段后面的两个字节的值是 0 x 8100 0x8100 0x8100 时, 就知道现在插入了4字节的VLAN标记。于是就接着检查后面两个字节的内容
  • 在后面的两个字节中, 前3位是用户优先级字段, 接着的一位是规范格式指示符 CFI (Canonical Format Indicator) , 最后的12 位是该虚拟局域网 VLAN标识符 VID (VLAN ID) , 它唯一地标志了这个以太网帧属于哪一个VLAN
  • 由于用于VLAN的以太网帧的首部增加了4个字节, 因此以太网的最大帧长从原来的1518字节(1500 字节的数据加上18字节的首部)变为1522字节

插入VLAN标记得出的帧称为802.1Q帧。在上上一张图中标注出在几个粗线链路上传输的帧是802.1Q帧。在其他链路上传输的仍然是普通的以太网帧

高速以太网

高速以太网的解决方法

  • 提速(10M → 100M → 1000M)
  • 隔离冲突域
  • “共享介质方式” → “交换方式”: 全双工工作方式不需要CSMA/CD

快速以太网 (Fast Ethernet)

也称为 100BASE-T 以太网

  • 传输速率: 100 M b / s 100Mb/s 100Mb/s
  • 与以太网兼容
    • 相同的帧格式
    • 相同的最大帧、最小帧规定
    • 介质访问控制方法 CSMA/CD(半双工)
    • 相同的组网方法

提速关键:每个比特的发送时间由 100 n s 100ns 100ns 降低到了 10 n s 10ns 10ns

1995年IEEE已把 100BASE-T 的快速以太网定为正式标准, 其代号为 IEEE 802.3u, 是对现行的 IEEE 802.3 标准的补充


  • 帧的发送时间 T 0 T_0 T0 是帧长与发送速率之比。为保持参数 a = τ T 0 a=\frac{\tau}{T_0} a=T0τ 不变,在帧长一定的条件下,若发送速率提10倍,需要 τ \tau τ(网络电缆长度)减小为原来的十分之一
  • 最短帧长仍为64字节,即512比特。因此快速以太网的争用期是 5.12 μ s 5.12μs 5.12μs( 512比特时间),帧间最小间隔是 0.96 μ s 0.96μs 0.96μs,都是 10 M b i t / s 10Mbit/s 10Mbit/s 以太网的1/10

Fast Ethernet 的协议结构

  • 只是在物理层做了一些调整;在物理层和介质访问子层之间增加了 媒体独立接口 M I I MII MII
  • 不同的传输介质不会影响 MAC 层
  • 有3种传输介质

在这里插入图片描述

100BASE-T 的物理层标准

在这里插入图片描述

10Mbps与100Mbps速率自动协商功能

  • 自动确定远端连接设备使用的是10Mbps工作模式,还是全双工的100Mbps工作模式;
  • 向其它结点发布远端连接设备的工作模式;
  • 与远端连接设备交换工作模式相关参数,协调和确定双方的工作模式;
  • 自动协商功能自动选择共有的最高性能的工作模式

用户只要使用 100 M b i t 100 Mbit 100Mbit 的适配器和 100 M b i t / s 100 Mbit/s 100Mbit/s 的集线器或交换机, 就可很方便地由10BASE-T 以太网直接升级到 100 M b i t / s 100Mbit/s 100Mbit/s, 而不必改变网络的拓扑结构。所有在 10BASE -T上的应用软件和网络软件都可保持不变。100BASE-T 的适配器有很强的自适应性, 能够自动识别 10 M b i t / s 10 Mbit/s 10Mbit/s 100 M b i t / s 100 Mbit/s 100Mbit/s

千兆以太网 (Gigabit Ethernet )

  • 传输速率: 1000 M b / s 1000Mb/s 1000Mb/s
  • 向后兼容
    • 相同的帧格式
    • 相同的最大帧、最小帧规定
    • 介质访问控制方法 CSMA/CD(半双工)
    • 相同的组网方法
  • 提速关键:每个比特的发送时间由 10 n s 10ns 10ns 降低到了 1 n s 1ns 1ns

千兆以太网网仍然保持一个网段的最大长度为100 m, 但采用了“ 载波延伸" (carrier extension) 的办法使最短帧长仍为 64 字节(这样可以保持兼容性), 同时将争用期增大为 512 字节

吉比特以太网的协议结构

在这里插入图片描述

GMII 是千兆网的 MII 接口

1000BASE-T物理层标准

在这里插入图片描述

典型的GE组网结构

在这里插入图片描述

  • GE主干交换机解决应用中的主干网络带宽的瓶颈问题;
  • GE支干交换机满足实际应用对网络带宽的需要。

10Gbps以太网(10Gbps Ethernet )

十千兆以太网(10GE)

  • 传输速率: 10000 M b / s 10000Mb/s 10000Mb/s
  • 向后兼容
    • 相同的帧格式
    • 相同的最大帧、最小帧规定
  • 主要使用光纤作为传输介质
  • 只工作在全双工方式下,不存在争用问题,因此不使用 CSMA/CD
  • 不是通过降低每个比特的发送时间来提速

10GE的物理层协议

局域网物理层(LAN PHY)标准

  • 局域网物理层标准的数据传输速率是 10 G b p s 10Gbps 10Gbps,一个 10 G E 10GE 10GE 交换机支持 10 10 10 G E GE GE 端口

广域网物理层(WAN PHY)标准

  • 对于广域网应用, 10 G E 10GE 10GE 使用光纤通道技术;

总结

以太网的工作范围已经从局域网扩大到城域网和广域网,从而实现了端到端的以太网传输


以太网从10Mb/s到10Gb/s的演进证明了以太网是:

  1. 可扩展的(从 10 M b / s 10Mb/s 10Mb/s 10 G b / s 10Gb/s 10Gb/s
  2. 灵活的(多种媒体、全/半双工、共享/交换)
  3. 易于安装
  4. 稳健性好

无线局域网 WLAN

Wireless Local Area Network

  • 便携站 (portable station):便携站在工作时其位置是固定不变的
  • 移动站 (mobile station):移动站不仅能够移动,而且还可以在移动的过程中进行通信(正在进行的应用程序感觉不到计算机位置的变化, 也不因计算机位置的移动而中断运行)

无线局域网的组成

概念介绍:

  • 固定基础设施“ 是指预先建立起来的、能够覆盖一定地理范围的一批固定基站
    例如,蜂窝移动电话就是利用电信公司预先建立的、覆盖全国的大量固定基站来接通用户手机拨打的电话

  • 固定接入(fixed access):在作为网络用户期间,用户设置的地理位置保持不变
  • 移动接入(mobility access):用户设置能够以车辆速度移动时进行网络通信。当发生切换时,通信仍然是连续的
  • 便携接入(portable access):在受限的网络覆盖面积中,用户设备能够在以步行速度移动时进行网络通信,提供有限的切换能力
  • 游牧接入(nomadic access):用户设备的地理位置至少在进行网络通信时保持不变。如用户设备移动了位置,则再次进行通信时可能还要寻找最佳的基站

IEEE 802.11

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

  • 802 .11 就是 无线以太网的标准, 它使用星形拓扑, 其中心叫做 接入点 A P AP AP (Access Point)
  • 在 MAC 层使用 CSMA/CA 协议

凡使用 802.11 系列协议的局域网又称为 Wi-Fi。现在 Wi-Fi 实际上已经成为了无线局域网 WLAN 的代名词

目前的笔记本 / 台式机的主板上大都内置了 无线局域网适配器,实现802.11 的物理层和 MAC 层的功能


  • 802.11 标准规定 无线局域网的最小构件基本服务集 B S S BSS BSS (Basic Service Set)
    • B S S BSS BSS 包括一个基站和若干个移动站, 所有的站在本 B S S BSS BSS 以内都可以直接通信, 但在和本 B S S BSS BSS 以外的站通信时都必须通过本 B S S BSS BSS 的基站
    • 基本服务集内的基站就是上面提到的 接入点 A P AP AP (作用与网桥相似)
    • 当网络管理员安装 A P AP AP 时, 必须为该 A P AP AP 分配一个不超过32字节的服务集标识符 S S I D SSID SSID (Service Set IDentifier) (使用该 A P AP AP 的无线局域网的名字) 和一个通信 信道
    • 一个 B S S BSS BSS 所覆盖的地理范围叫做一个基本服务区 B S A BSA BSA(Basic Service Area)。无线局域网的 B S A BSA BSA 的范围直径一般不超过100米
    • 一个基本服务集可以是孤立的, 也可通过接入点 A P AP AP 连接到一个分配系统 D S DS DS (Distribution System), 然后再连接到另一个基本服务集, 这样就构成了一个扩展的服务集 E S S ESS ESS (Extended Service Set)
      • 分配系统的作用就是使扩展的服务集 E S S ESS ESS 对上层的表现就像一个基本服务集 B S S BSS BSS 一样
      • 分配系统可以使用以太网(最常用)、点对点链路或其他无线网络
    • 扩展服务集 E S S ESS ESS 还可为无线用户提供到非802.11无线局域网的接入。这种接入是通过叫做 门户 (Portal) 的设备来实现的。它的作用就相当于一个网桥
    • 移动站 A A A 从某一个基本服务集漫游到另一个基本服务集(到 A ′ A' A 的位置),仍可保持与另一个移动站 B B B 进行通信

在这里插入图片描述

在上图中,移动站 A A A 如果要和另一个基本服务集中的移动站 B B B 通信, 就必须经过两个接入点 A P 1 AP_1 AP1 A P 2 AP_2 AP2, 即 A → A P 1 → A P 2 → B A\rightarrow AP_1\rightarrow AP_2\rightarrow B AAP1AP2B。( A P 1 → A P 2 AP_1\rightarrow AP_2 AP1AP2 的通信是使用有线传输的)


与接入点 A P AP AP 建立关联(association)

  • 一个移动站若要加入到一个基本服务集 B S S BSS BSS,就必须先选择一个接入点 A P AP AP,并与此接入点 建立关联
  • 建立关联就表示这个移动站加入了选定的 A P AP AP 所属的子网,并和这个 A P AP AP 之间创建了一个虚拟线路
  • 只有关联的 A P AP AP 才向这个移动站发送数据帧,而这个移动站也只有通过关联的 AP 才能向其他站点发送数据帧
  • 关联阶段过后, 移动站点要通过关联的 A P AP AP 向该子网发送 DHCP 发现报文以获取 IP 地址。这时, 互联网中的其他部分就把这个移动站当作该 A P AP AP 子网中的一台主机

移动站与 A P AP AP 建立关联的方法

  • 被动扫描,即移动站等待接收接入站 A P AP AP 周期性发出的信标帧(beacon frame)。信标帧中包含有若干系统参数(如服务集标识符 S S I D SSID SSID 以及支持的速率等)
  • 主动扫描,即移动站主动发出探测请求帧(probe request frame),然后等待从 A P AP AP 发回的探测响应帧(probe response frame)

热点 (hot spot): 公众无线入网点

  • 许多地方都能够向公众提供有偿或无偿接入Wi-Fi 的服务。这样的地点就叫做热点
  • 由许多热点和 A P AP AP 连接起来的区域叫做热区(hot zone)

WISP (Wireless Internet Service Provider): 无线因特网服务提供者

  • 用户可以通过无线信道接入到 WISP,然后再经过无线信道接入到因特网。
    • 如中国电信提供的ChinaNet、中国移动提供的CMCC、中国联通提供的ChinaUicom,区别在于 IP 地址从哪里获取

802.11 局域网的物理层

  • 802.11 标准中物理层相当复杂,根据物理层的不同(如工作频段、 数据率、 调制方法等), 对应的标准也不同

在这里插入图片描述

802.11 标准中的 MAC 层协议

MAC 层。它通过协调功能(Coordination Function)来确定在基本服务集 B S S BSS BSS 中的移动站, 在什么时间能发送数据或接收数据。802.11 的MAC层包括两个子层

  • 分布协调功能 DCF (Distributed Coordination Function)。DCF 以 CSMA/CA 为基本的接入方式,尽可能避免冲突
    • DCF 子层在每一个结点使用 CSMA 机制的分布式接入算法,让各个站通过争用信道来获取发送权。因此DCF向上提供争用服务
    • DCF 提供尽力而为(Best- Effort) 的服务, 无法满足实时业务对时延和抖动等指标的需求

802.11协议规定, 所有的实现都必须有DCF功能

  • 点协调功能 PCF (Point Coordination Function) (可选)。用于支持近乎实时的应用
    • PCF 是用接入点 A P AP AP 集中控制整个 B S S BSS BSS 内的活动, 因此自组网络就没有 PCF 子层。PCF 使用集中控制的接入算法,用类似探询的方法把发送数据权轮流交给各个站, 从而避免了碰撞的产生
    • PCF 只能应用于有基础设施的 WLAN 中, 由接入点 A P AP AP 来担任点协调器

在这里插入图片描述

CSMA/CA 协议

虽然 CSMA/CD 协议已成功地应用于有线局域网, 但无线局域网能不能也使用 CSMA/CD协议呢?

  • 载波监听 CSMA 能够使用,在无线局域网中,在发送数据之前先对媒体进行载波监听。如发现有其他站在发送数据, 就推迟发送以免发生碰撞
  • 但 “ 碰撞检测" CD 在无线环境下却不能使用。理由如下:
    • "碰撞检测“ 要求一个站点在发送本站数据的同时, 还必须不间断地检测信道。一旦检测到碰撞, 就立即停止发送。但由于无线信道的传输条件特殊, 其信号强度的动态范围非常大, 因此在802.11适配器上接收到的信号强度往往会远远小于发送信号的强度。如要在无线局域网的适配器上实现碰撞检测, 在硬件上的花费就会过大
    • 即使我们能够实现碰撞检测的功能,并且当我们在发送数据时检测到信道是空闲的,在接收端仍然有可能发生碰撞。这是由无线信道本身的特点决定
      • 如下图所示, A A A C C C 都想和 B B B 通信。 但 A A A C C C 相距较远,彼此都听不见对方。 当 A A A C C C 检测到信道空闲时, 就都向 B B B 发送数据, 结果发生了碰撞。这种未能检测出信道上其他站点信号的问题叫做隐蔽站问题(hidden station problem)
      • B B B A A A 发送数据, 而 C C C 又想和 D D D 通信, 但 C C C 检测到信道忙, 于是就不敢向 D D D 发送数据, 但其实 B B B A A A 发送数据并不影响 C C C D D D 发送数据。 这就是暴露站问题(exposed station problem)

在这里插入图片描述


无线局域网应尽量减少碰撞的发生

  • 无线局域网中,在不发生干扰的情况下, 可允许同时有多个移动站进行通信。由此可见, 无线局域网可能出现检测错误的情况:
    • 检测到信道空闲, 其实信道并不空闲 (隐蔽站问题)
    • 检测到信道忙, 其实信道并不忙 (暴露站问题)
  • CSMA/CD 发生碰撞立即停止,不会使运行效率降低太多。但无线局域网不能使用碰撞检测,只要发送数据就不能中途停止,一定把整个帧发送完毕。因此一旦发生碰撞,信道资源浪费严重

为此, 802.11局域网使用 CSMA/CA 协议。CA表示 Collision Avoidance (碰撞避免) 也就是说, 协议的设计是要尽量减少碰撞发生的概率


  • 802.11局域网在使用 CSMA/CA 的同时, 还使用停止等待协议,即 链路层确认
    • 这是因为无线信道的通信质量远不如有线信道的, 因此无线站点每通过无线局域网发送完一帧后, 要等到收到对方的确认帧后才能继续发送下一帧
  • 由此可见, 802.11 无线局域网采用的停止等待协议是一种可靠传输协议。发送方必须等待对方的确认帧。但802.3有线局域网的传输是不可靠的, 发送方把数据发送出去就不管了(当然若检测到碰撞是必须重传的), 如果需要可靠传输则由高层负责

帧间间隔 IFS :避免碰撞

  • 所有的站在完成发送后,必须再等待一段很短的时间(继续监听)才能发送下一帧。这段时间通称为帧间间隔 IFS (InterFrame Space)
  • 帧间间隔长度取决于该站欲发送的帧的类型
    • 高优先级帧需要等待的时间较短,可优先获得发送权,低优先级帧就必须等待较长的时间
    • 低优先级帧还没来得及发送,而其他站的高优先级帧已发送到媒体,则媒体变为忙态而低优先级帧只能再推迟发送。这样就减少了发生碰撞的机会

三种帧间间隔:

  • SIFS,即短(Short)帧间间隔,28μs,是最短的帧间间隔 (优先级最高),用来分隔开属于一次对话的各帧。一个站应当能够在这段时间内从发送方式切换到接收方式,SIFS 在以下情况下使用:
    • 发送 “确认帧ACK”:一个站点收到帧后,等待一个SIFS后发送一个确认帧ACK
    • 当一个较长的 MAC 帧要分成多个分片发送时,发送站每次发送一个帧片,接收站等待一个SIFS后就发一个ACK,发送站收到ACK后再等待一个SIFS就接着发送下一帧片 (即 分片发送,在之后的 对信道进行预约一节中会提到)。就是说使用SIFS可以继续控制信道使用权,直到整个长帧发送完毕
    • 发送“允许发送帧CTS”:一个站如果发送一个请求发送帧RTS就可以保证它可以优先发送数据帧。目的站如果准备好接收就应等待一个SIFS后立即用CTS响应。所有监听到CTS的站都必须推迟向信道发送自己的数据
    • 发送轮询时的响应帧:中央控制器用来发送查询帧,在PCF子层上工作,使用PIFS。由于PIFS比DIFS短,所以总能先获得对信道的访问权。而受到查询的站则可用SIFS进行快速响应,这样就使被查询站比一般的信道争用优先获得信道的使用权
  • PIFS,即点协调功能帧间间隔,它是为了在开始使用 PCF 方式时(在 PCF 方式下使用,没有争用)优先获得接入到媒体中。 PIFS 的长度是 SIFS 加一个时隙(slot)长度
    • 时隙的长度(50μs)是这样确定的:在一个基本服务集 BSS 内当某个站在一个时隙开始时接入到媒体时,那么在下一个时隙开始时,其他站就都能检测出信道已转变为忙态
  • DIFS,即分布协调功能帧间间隔(最长的 IFS),在 DCF 方式中用来发送数据帧和管理帧。DIFS 的长度比 PIFS 再增加一个时隙长度

DCF 与 PCF 共存

  • 通过设定不同的帧间间隔实现

在这里插入图片描述

信道监听
  • 欲发送数据的站先检测信道。802.11 标准中规定了在物理层的空中接口进行物理层的载波监听。通过收到的相对信号强度是否超过一定的门限数值就可判定是否有其他的移动站在信道上发送数据
  • 虚拟载波监听(Virtual Carrier Sense):让源站将它要占用信道的时间(包括目的站发回确认帧所需的时间)通知给所有其他站,以便使其他所有站在这一段时间都停止发送数据。这样就大大减少了碰撞的机会
    • “虚拟”是表示其他站并没有监听信道,而是由于收到了“源站的通知”才不发送数据。这种效果好像是其他站都监听了信道
    • 所谓“源站的通知”就是源站在其 MAC 帧首部中的第二个字段“持续时间”中填入了在本帧结束后还要占用信道多少时间(以微秒为单位),包括目的站发送确认帧所需的时间
    • 当一个站检测到正在信道中传送的 MAC 帧首部的 “持续时间”字段时,就调整自己的网络分配向量NAV (Network Allocation Vector)
    • NAV 指出必须经过多少时间才能完成数据帧的这次传输,才能使信道转入到空闲状态
推迟发送

在这里插入图片描述
如上图所示,

  • 当源站发送它的第一个 MAC 帧时, 若检测到信道空闲, 则在等待一段时间 DIFS 后就可发送。这是考虑到可能有其他的站有高优先级的帧要发送。如有, 就要让高优先级帧先发送
  • 假定没有高优先级帧要发送, 因而源站发送了自己的数据帧。目的站若正确收到此帧, 则经过时间间隔SIFS 后, 向源站发送确认帧ACK
  • 若源站在规定时间内没有收到确认帧ACK (由重传计时器控制这段时间), 就必须重传此帧, 直到收到确认为止, 或者经过若干次的重传失败后放弃发送 (停止等待协议)
冲突退避
  • 信道从忙态变为空闲时,任何一个站要发送数据帧时,不仅都必须等待一个 DIFS 的间隔,而且还要进入争用窗口,并计算随机退避时间以便再次重新试图接入到信道
  • 这样做的目的:减少发生碰撞的概率
  • 802.11 使用二进制指数退避算法
    在这里插入图片描述

CSMA/CD 协议中, 要发送数据的站, 在监听到信道变为空闲就立即发送数据, 同时进行碰撞检测。如果不巧发生了碰撞, 不要紧, 马上执行退避算法, 大家都停止发送, 这样就立即使信道恢复到空闲状态。网络资源被浪费得很少。但在无线局域网802.11 标准的 CSMA/CA 协议中, 因为没有像以太网那样的碰撞检测机制, 所以, 在信道从忙态转为空闲时, 为了避免几个站同时发送数据( 一旦发送就要把一帧发送完, 不能中途停止), 所有想发送数据的站就都要执行退避算法。这样做不仅大大减小了发生碰撞的概率, 而且也避免了一个站连续发送长帧, 垄断了整个的无线信道


二进制指数退避算法

与 CSMA/CD 的具体做法不同

  • i i i 次退避就在 2 2 + i 2^{2 + i} 22+i 个时隙中随机地选择一个,即:在时隙 { 0 , 1 , … , 2 2 + i – 1 } \{0, 1, …, 2^{2 + i – 1}\} {0,1,,22+i1} 中随机地选择一个作为退避变量,使不同站点选择相同退避时间的概率减少 (退避时间必须是整数倍的时隙时间)
    • 第 1 次退避是在 8 个时隙中随机选择一个
    • 第 2 次退避是在 16 个时隙中随机选择一个
    • 最大值255,即第6次退避
  • 当某个要发送数据的站, 使用退避算法选择了争用窗口中的某个时隙后, 就根据该时隙的位置设置一个退避计时器 (backoff timer)。站点每经历一个时隙的时间就检测一次信道
    • 若检测到信道空闲,退避计时器继续倒计时
    • 若检测到信道忙,就冻结退避计时器的剩余时间,重新等待信道变为空闲并再经过时间 DIFS 后,从剩余时间开始继续倒计时
    • 如果退避计时器的时间减小到零时,就开始发送整个数据帧

在这里插入图片描述

  • A A A 正在发送数据时, B , C B,C B,C D D D 都有数据要发送(用向上的箭头表示)。由于这三个站都检测到信道忙, 因此都要各自执行退避算法和设置退避计时器
  • C C C 的退避计时器最先减到零, 于是 C C C 立即把整个数据帧发送出去。请注意, A A A 发送完数据后信道就变为空闲。 C C C 的退避计时器一直在倒计时
  • C C C 在发送数据的过程中, B B B D D D 检测到信道忙, 就冻结各自的退避计时器的数值, 重新期待信道变为空闲
  • 正在这时 E E E 也想发送数据。由于 E E E 检测到信道忙, 因此 E E E 就执行退避算法和设置退避计时器
  • C C C 发送完数据并经过了时间 D I F S DIFS DIFS 后, B B B D D D 的退避计时器又从各自的剩余时间开始倒计时
  • D D D 的退避计时器最先减到零, 于是 D D D 得到了发送权。在 D D D 发送数据时, B B B E E E 都冻结其退避计时器…
归纳
  1. 若站点最初有数据要发送(而不是发送不成功再进行重传),且检测到信道空闲,在等待时间 D I F S DIFS DIFS 后,就发送整个数据帧
  2. 否则,站点执行CSMA/CA协议的退避算法。一旦检测到信道忙,就冻结退避计时器。只要信道空闲,退避计时器就进行倒计时
  3. 当退避计时器时间减少到零时(这时信道只可能是空闲的),站点就发送整个的帧并等待确认
  4. 发送站若收到确认,就知道已发送的帧被目的站正确收到了。这时如果要发送第二帧,就要从上面的步骤(2)开始,执行CSMA/CA协议的退避算法,随机选定一段退避时间
    若源站在规定时间内没有收到确认帧ACK(由重传计时器控制这段时间),就必须重传此帧(再次使用CSMA/CA协议争用接入信道),直到收到确认为止,或者经过若干次的重传失败后放弃发送
  • 仅在下面的情况下才不使用退避算法:检测到信道是空闲的,并且这个数据帧是要发送的第一个数据帧
  • 除此以外的所有情况,都必须使用退避算法。即:
    • 在发送第一个帧之前检测到信道处于忙态
    • 在每一次的成功发送后
    • 在每一次的重传后再要发送下一帧

对信道进行预约

  • 为了更好地解决隐蔽站带来的碰撞问题, 802.11 允许要发送数据的站对信道进行预约

在这里插入图片描述

具体的做法是这样的。如上图所示,

  • A A A 在向 B B B 发送数据帧之前, 先发送一个短的控制帧, 叫做请求发送 RTS (Request To Send),它包括源地址、目的地址和这次通信(包括相应的确认帧) 所需的持续时间
  • 当然, A A A 在发送 RTS 帧之前, 必须先监听信道。若信道空闲, 则等待一段时间 DIFS 后, 才能够发送RTS帧
  • B B B 正确收到 A A A 发来的 RTS帧, 且媒体空闲, 则等待一段时间 S I F S SIFS SIFS 后, 就向 A A A 发送一个叫做允许发送 CTS( Clear To Send) 的控制帧, 它也包括这次通信所需的持续时间
  • A A A 收到 CTS 帧后, 再等待一段时间SIFS后, 就可发送数据帧。若 B B B 正确收到了 A A A 发来的数据帧, 在等待时间SIFS后, 就向 A A A 发送确认帧 ACK

持续时间:

  • A A A 在RTS帧中所填写的所需占用信道的持续时间, 是从RTS帧发送完毕后, 到 B B B 最后发送完确认ACK为止的时间。也就是 [ S I F S + C T S + S F I S + 数 据 帧 + S I F S + A C K ] [SIFS+ CTS+ S FI S+ 数据帧+SIFS+ A CK] [SIFS+CTS+SFIS++SIFS+ACK]。 这个时间也就是从RTS帧发完后, 信道仍被 A A A B B B 的通信占用的时间
  • B B B 在CTS帧中所填写的所需占用信道的持续时间, 是从CTS帧发送完毕后, 到 B B B 最后发送完确认ACK为止的时间。 也就是 [ S I F S + 数 据 帧 + S I F S + A C K ] [SIFS+数据帧+SIFS+ A CK] [SIFS++SIFS+ACK]。 这个时间也就是从CTS帧发完后, 信道仍被 A A A B B B 的通信占用的时间
  • 上述的这两个持续时间, 实际上分别是 A A A B B B 的网络分配向量 NAV。其他站注意到NAV 后, 就不会在这段时间发送数据了

  • 使用 RTS 帧和 CTS 帧会使整个网络的通信效率有所下降。但由于这两种控制帧都很短,与数据帧相比开销不算大
  • 相反, 若不使用这种控制帧, 则一旦发生碰撞而导致数据帧重发, 浪费的时间就更多了。虽然如此, 协议还是设有三种情况供用户选择:
    • 使用 RTS 帧和 CTS 帧
    • 只有当数据帧的长度超过某一数值时才使用 RTS 帧和 CTS 帧
    • 不使用 RTS 帧和 CTS 帧

分片发送

  • 无线信道干扰严重,帧长度越长,出错概率越高
  • 减小帧长度十分必要,802.11允许将帧进行分片。每一分片有自己的校验和,使用停-等方式传输
  • 一个站点用RTS/CTS获得信道发送权后,将一帧的多个分片组成分片串连续发送

在这里插入图片描述

802.11 局域网的MAC帧

802.11 帧共有三种类型:

  • 控制帧:用于竞争期间的握手通信和正向确认、结束非竞争期等,如RTS、CTS、ACK等

在这里插入图片描述

  • 管理帧:主要用于STA(station adapter)与 AP 之间协商、关系的控制,如关联、认证、同步等
  • 数据帧:用于在竞争期和非竞争期传输数据

在这里插入图片描述

  • MAC 首部,共 30 字节。帧的复杂性都在帧的首部
    • 序号控制字段占 16 位,其中
      • 序号子字段占 12 位 (0~4095,从0开始,每发送一个新帧就加1,到4095后再回到0)
      • 分片子字段占 4 位(0~15,不分片则保持为0。如分片则帧的序号子字段保持不变,而分片子字段从0开始,每个分片加1,最多到15 )
      • 重传帧字段内容不变,序号控制的作用是使接收方能够区分开是新传送的帧还是因出现差错而重传的帧
    • 持续期字段占 16 位,预约信道时间。这个字段有多种用途( 这里不对这些用途进行详细的说明),只有最高位为0时才表示持续期
    • 帧控制字段:共分为 11 个子字段
      • 协议版本字段现在是 0
      • 类型字段和子类型字段用来区分帧的功能
      • 更多分片字段置为 1 时表明这个帧属于一个帧的多个分片之一
        802.11 帧共有三种类型:控制帧、 数据帧和管理帧, 而每一种帧又分为若干种子类型。 例如, 控制帧有RTSC, TS和ACK等几种不同的子类型
      • 有线等效保密字段 WEP(Wired Equivalent Privacy) 占 1 位。若WEP = 1,表明采用 WEP 加密算法
  • 帧主体,也就是帧的数据部分,不超过2312 字节。这个数值比以太网的最大长度长很多。不过 802.11 帧的长度通常都是小于 1500 字节
  • 帧检验序列 FCS 是尾部,共 4 字节

802.11 数据帧的地址

  • 802.11 数据帧最特殊的地方就是有四个地址字段。地址 4 用于自组网络。这里只讨论前三种地址
  • 这三个地址的内容取决于帧控制字段中的“去往AP" (发送到接入点)和 ”来自AP" (从接入点发出)这两个子字段的数值。这两个子字段各占1位, 合起来共有4种组合, 用于定义802.11 帧中的几个地址字段的含义。当然, 这些地址都是MAC 地址(在数据链路层不可能使用IP地址)

为了便于理解,这里使用接入点 A P AP AP 代替 D S DS DS

在这里插入图片描述
以下图为例进行说明:

在这里插入图片描述

  • 站点 A A A B B B 发送数据帧, 但这个数据帧必须经过 A P AP AP 转发。首先站点 A A A 把数据帧发送到接入点 A P 1 AP_1 AP1, 然后由 A P 1 AP_1 AP1 把数据帧发送给站点 B B B
  • 当站点 A A A 把数据帧发送给 A P 1 AP_1 AP1 时,帧控制字段中的“去往 A P = 1 AP =1 AP=1" 而 “来自 A P = 0 AP =0 AP=0"。因此,地址1是 A P 1 AP_1 AP1 的MAC地址(接收地址),地址2是 A A A 的MAC地址(源地址),地址3是 B B B 的MAC地址(目的地址)
  • A P 1 AP_1 AP1 把数据帧转发给站点 B B B 时,帧控制字段中的 “去往 A P = 0 AP = 0 AP=0"而“来自 A P = 1 AP=1 AP=1"。因此地址1是 B B B 的MAC地址(目的地址),地址2是 A P 1 AP_1 AP1 的MAC地址(发送地址),地址3是 A A A 的MAC地址(源地址)
  • 以太网帧与802.11 数据帧的转换:如果由路由器的接口2向 C C C 发数据,则是先把要转发的数据报封装成以太网帧,其源地址是 R R R 在接口2的MAC地址,而目的地址是 C C C 的MAC地址,但以太网帧到达 A P 2 AP_2 AP2 后, A P 2 AP_2 AP2 在将其进行无线发送之前,先把这个以太网帧转换为无线局域网802.11帧。在这个帧中,地址1和地址2分别是 C C C 的MAC地址和 A P 2 AP_2 AP2 的MAC地址,地址3是路由器 R R R 的接口2的MAC地址

无线个人区域网 WPAN

Wireless Personal Area Network

  • 在个人工作地方把属于个人使用的电子设备用无线技术连接起来自组网络,不需要使用接入点 A P AP AP
  • 整个网络的范围大约在 10 m 左右
  • 无线个人区域网 WPAN个人区域网 PAN 并不完全等同,PAN 不一定都是使用无线连接的
  • WPAN 和 WLAN 并不一样
    • WPAN 是以个人为中心来使用的无线个人区域网,它实际上就是一个低功率、小范围、低速率和低价格的电缆替代技术。WPAN 都工作在 2.4 GHz 的ISM(Industrial Scientific Medical) 频段
    • 但 WLAN 却是同时为许多用户服务的无线局域网,它是一个大功率、中等范围、高速率的局域网

蓝牙系统 (Bluetooth)

  • 最早使用的 WPAN 是蓝牙系统,其标准是 IEEE 802.15.1
  • 蓝牙的数据率为 720 kb/s,通信范围在 10 米左右
  • 蓝牙使用 TDM 方式和扩频跳频 FHSS 技术组成不用基站的皮可网(piconet)

皮可网(piconet)

  • Piconet 直译就是“微微网”,表示这种无线网络的覆盖面积非常小
  • 每一个皮可网有一个主设备(Master)和最多7个工作的从设备(Slave)
  • 通过共享主设备或从设备,可以把多个皮可网链接起来,形成一个范围更大的扩散网(scatternet)
  • 这种主从工作方式的个人区域网实现起来价格便宜

在这里插入图片描述

低速 WPAN

  • 低速 WPAN 主要用于工业监控组网、办公自动化与控制等领域,其速率是 2 ~ 250 kb/s
  • 低速 WPAN 的标准是 IEEE 802.15.4。最近新修订的标准是 IEEE 802.15.4-2006

低速 WPAN 中最重要的就是 ZigBee

  • ZigBee 技术主要用于各种电子设备(固定的、便携的或移动的)之间的无线通信,其主要特点是
    • 通信距离短(10 ~ 80 m)
    • 传输数据速率低
    • 成本低廉
    • 功耗非常低。在工作时,信号的收发时间很短;而在非工作时,ZigBee 结点处于休眠状态,非常省电
    • 网络容量大。一个 ZigBee 的网络最多包括有255 个结点,其中一个是主设备,其余则是从设备。若是通过网络协调器,整个网络最多可以支持超过 64000 个结点
  • ZigBee 在 IEEE 802.15.4 标准基础上发展而来的 (MAC 层沿用 CSMA/CA 协议)

在这里插入图片描述

  • ZigBee 的组网方式
    • 可采用星形和网状拓扑,或两者的组合
    • ZigBee 网络中数量最多的端设备是精简功能设备 RFD (Reduced-Function Device) 结点,它的电路简单, 存储容量较小, 因而成本较低。
    • 全功能设备 FFD (Full-Function Device) 具备控制器(Controller)的功能, 能够提供数据交换, 是ZigBee网络中的路由器。FD结点只能与处在该星形网中心的FFD结点交换数据
    • 有一个 FFD 充当网络的协调器 ,负责维护整个ZigBee网络的结点信息, 同时还可以与其他ZigBee 网络的协调器交换数据。通过各网络协调器的相互通信, 可以得到覆盖更大范围、超过65000个结点的ZigBee网络
      在这里插入图片描述

高速 WPAN

  • 高速 WPAN 用于在便携式多媒体装置之间传送数据,支持11 ~ 55 Mb/s的数据率,标准是 802.15.3
  • IEEE 802.15.3a 工作组还提出了更高数据率的物理层标准的超高速 WPAN,它使用超宽带 UWB 技术。UWB 技术工作在 3.1 ~ 10.6 GHz 微波频段,有非常高的信道带宽

无线城域网 WMAN

Wireless Metropolitan Area Network,常用 WiMAX 表示

  • 无线城域网标准:802.16
  • WMAN 可提供“最后一英里”的宽带无线接入(固定的、移动的和便携的)。在许多情况下,无线城域网可用来代替现有的有线宽带接入,因此它有时又称为无线本地环路

(移动) 自组网络

  • 没有固定基础设施(即没有 A P AP AP)的无线局域网。这种网络由一些处于平等状态的移动站之间相互通信组成临时网络
  • 自组网络一般也不和外界的其他网络相连接
  • 具有自己特定的路由选择协议

在这里插入图片描述
如上图所示,当移动站 A A A E E E 通信时, 经过 A → B , B → C , C → D A\rightarrow B, B\rightarrow C, C\rightarrow D AB,BC,CD 和最后 D → E D\rightarrow E DE 这样一连串的存储转发过程。移动站 B , C B, C B,C D D D 都是转发结点,这些结点都具有路由器的功能

无线传感器网络 WSN

Wireless Sensor Network

  • 由大量传感器结点通过无线通信技术构成的自组网络,可以组成各种物联网 IoT (Internet of Things)
  • 无线传感器网络的应用是进行各种数据的采集、处理和传输,一般并不需要很高的带宽,但是在大部分时间必须保持低功耗,以节省电池的消耗
  • 由于无线传感结点的存储容量受限,因此对协议栈的大小有严格的限制
  • 无线传感器网络还对网络安全性、结点自动配置、网络动态重组等方面有一定的要求
  • 2
    点赞
  • 6
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值