EagleBear2002 的博客

这里必须根绝一切犹豫,这里任何怯懦都无济于事

互联网计算-03-局域网数据链路层原理与技术

本文主要内容来自 SpriCoder的博客,更换了更清晰的图片并对原文的疏漏做了补充和修正。

数据链路层概述

本章主要是局域网的数据链路层的技术标准,主要是以太网的介质和无线网的介质两大类。

是一个直连线路上的介质控制,在无线路由器上,会有不同的第二层(手机到路由器,路由器到远端),数据链路层只能在一个网段,不能跨链路.

物理层和数据链路层的区别

第一层 第二层
无法与上层通信 通过 LLC 与上层通信
无法确定哪台主机将会传输或接受二进制数据 通过 MAC 确定
无法命名或标识主机 通过寻址或命名过程来实现
仅仅能描述比特流 通过帧来组织/分组比特

问题:如何在不稳定(instable)的链路上正确传输数据?

数据链路层提供:

  • 网络介质访问:
  • 跨媒体物理传输(transmission):

第二层协议明确了:

  • 在链路上交换的数据格式
  • 链路上的两个节点的行为

在数据链路层,过程就是协议。

在两端校验,帧是否是正确的,或者是不正确的,如果正确交付第三层,否则进行相应的处理

局域网和数据链路

主要工作:

  • 错误识别(notification)
  • 网络拓扑(Network topology)
  • 流控制(Flow control)

第一层和第二层的不同:

  • 第一层不可以访问更高层(upper-level layers),而第二层是通过逻辑链路(Logical Link Control)控制进行
  • 第 1 层无法决定哪个主机将发送(transmit)或接收(receive)来自组的二进制数据;第 2 层使用媒体访问控制(MAC)做到这一点,共用总线链路
  • 第 1 层无法命名或识别计算机;第 2 层使用寻址(或命名)过程,以太网场景下
  • 第 1 层只能描述比特流;第 2 层使用成帧对比特进行组织或分组。

第二层提供的服务

提供给网络层的三层服务

  1. (最弱,最不靠谱的)没有确认(acknowledgement)的无连接(Connectionless)服务
    • 发送取出就行,不用等收到确认
    • 可靠(Reliable)的链接(上层以确保数据正确性)
    • 实时任务,比较高效
    • 适用于大多数局域网
  2. 带有确认的无连接服务:不可靠的链接,例如无线网络:需要保证一定的通信质量(比如无线网络的传输),同时会损失一定的性能。
  3. 带有确认的连接服务
    • 比如蓝牙:需要先确定绑定关系才能进行通信
    • 手机和手机之间的蓝牙连接需要确定一些信息

三种服务的连接的不同和区别:

  1. 无线连接和有线连接相比多了确认的过程
  2. 网线连接:我们通信的对象是路由器,由路由器进行转发
  3. PPPoP 是路由器和远端的服务器的连接
  4. 有线无线都接给路由器,都需要连接,但是无线网相对有线网需要确认(包确认)

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

常见的局域网的介质访问控制(Media Access Control)

  1. 以太网(Ethernet):逻辑总线拓扑(信息流在线性总线上)和物理星形或扩展星形(连线为星形)
  2. 令牌环(Token Ring):逻辑环拓扑(信息流在一个环中)和物理星形拓扑(以星形连接)
  3. FDDI(光纤分布式数据接口):逻辑环拓扑(信息流在一个环中)和物理双环拓扑(作为双环连接),光纤作为传输介质,曾经很常用,后来被以太网有线接入逐渐替代

介质访问控制方法

介质访问控制方法(Access Methods)

两大类介质访问控制方法

码分多址属于静态划分信道的方法

CSMA 的对比总结

  1. 确定性轮流(Deterministic—taking turns):Token Ring and FDDI(Fiber Distributed Data Interface,光纤分布式数据接口)
  2. 争用式(Non-deterministic(probabilistic))
    1. 非确定性(概率性)-先到先得 first come, first sesrved
    2. Ethernet/802.3
    3. 70 年代,Norman Abramson 设计
    4. Pure ALOHA: 纯 ALOHA 协议
      • 主机任何时候都可以发送数据
      • 如果发生冲突,延迟一段时间再发送
    5. Slotted ALOHA: 分段 ALOHA 协议
      • 把信道在时间上分段。主机任何时候都发送数据,但是必须等待下一个时间分段的开始才开始发送
      • 如果发生冲突,延迟一段时间再发送

确定性轮流 Deterministic MAC Protocols

  1. 特殊数据令牌在环中循环(circulates)。
  2. 当主机收到令牌时,它可以传输数据而不是令牌。这称为夺取(seizing)令牌。
  3. 当发送(transmitted)的帧返回到发送器时,站点将发送新令牌; 框架已从环上卸下或脱落(stripped)。

非确定性 MAC 协议 Non-Deterministic MAC Protocols

  1. 此 MAC 协议称为带冲突检测的载波侦听多路访问(CSMA/CD,Carrier Sense Multiple Access with Collision Detection)(重要考点
  2. 为了使用这种共享介质(shared-medium)技术,以太网允许网络设备为传输权进行仲裁(arbitrate)。
  3. 适用于总线结构的以太网。

局域网数据传输(Transmitison)方式:三种

  1. 单播(unicast)-将单个数据包从源发送到网络上的单个目标
  2. 多播(multicast)-由发送到网络上特定节点子集的单个数据包组成,这些节点都有同样的进程进行响应
  3. 广播(broadcast)-由单个数据包组成,该数据包传输到网络上的所有节点。(广播的目的地址是 0x11111111)

以太网和带冲突检测的载波侦听多路访问 CSMA/CD

确定碰撞后的重传时间

逻辑链路 LLC 和介质访问控制 MAC 子层

  1. 无缘电缆的方式传播电波:以太网
  2. 帧传播速度提高了
  3. 帧的标准没有改变

局域网标准

  1. 定义物理媒体和用于将设备连接到媒体的连接器
  2. 在数据链路层定义设备的通信方式
  3. 数据链路层定义了如何在物理介质上传输数据。
  4. 数据链路层还定义了如何封装(encapsulate)特定于协议的流量(traffic),以使去往不同上层协议的流量在到达堆栈时可以使用相同的通道。

IEEE 802.2 对应 LLC,以太网则覆盖物理层和链路层

  1. IEEE 将数据链路层分为两部分:
    1. 媒体访问控制(MAC)(转换为媒体)
    2. 逻辑链路控制(LLC)(过渡到网络层)
  2. 乍一看,IEEE 标准似乎以两种方式违反了 OSI 模型。
    1. 首先,它定义自己的层(LLC),包括其接口等。
    2. 其次,看来 MAC 层标准 802.3 和 802.5 跨越了第 2 层/第 1 层接口。
      • 802.5 令牌环网
      • 802.3 覆盖了物理层和第二层下半层
  3. 但是,802.3 和 802.5 定义了用于构建特定技术的命名,框架和媒体访问控制规则,都规范了对应的方案,不同方案不同解决标准

MAC & LLC

  1. MAC 子层(802.3)
    • 定义如何在物理线路上传输帧(frames)
    • 处理物理寻址
    • 定义网络拓扑
    • 定义线路规则(discipline)
  2. LLC 子层(802.2)
    • 逻辑上标识不同的协议类型,然后将其封装,兼容不同介质的访问
    • 使用 SAP 标识符执行逻辑标识,用来做发送的位置的标识
    • LLC 帧的类型取决于上层协议期望的标识符,对于上层服务进行支持
    • LLC 已经比较规范了,后来有的厂商已经放弃继续做

介质访问控制子层

MAC 子层(Media Access Control Sublayer):

  1. 以字节为单位进行帧结构描述
  2. 有 802.3 的规范和以太网的规范
  3. MAC 介质访问控制子层的帧结构:

前文

从 1 和 0 的交替(alternating)模式开始,称为前同步码(preamble):

  • 告诉接收方,要来数据了,因为不是预约发数据的模式,这个码就是为了保证对方有相应准备时间,前面 7 个是前同步码(0b10101010),最后一个是帧开始定界符(0x10101011)
  • 使用曼彻斯特编码的方案,无传输的时候是 0 电平的

前同步码告诉接收站一帧即将到来,前同步码不是 MAC 帧的内容。

目标和源物理地址字段

  1. 源地址:始终是单播地址
  2. 目的地址:单播地址,组播地址或广播地址
  3. MAC 地址:6 个字节为目的地址(Dest.add) 6 个字节为源地址(Source.add),和第三层第四层报文有差别
  4. 先看目的地址的好处:交换机等看到目的地址就可以进行判断,提高效率

长度字段

长度字段指示在该字段之后且在帧检查序列字段之前(precede)的数据字节数。

  1. 2 个字节长,早期规范放的是长度,指定数据长度,以太网-2 标准下则是使用 type 来完成这部分内容,指定后面的 DATA 是 IP 还是 IPX 的报文数据。
  2. 没有长度也可以计算出来长度,通过有电平长度就可以计算出数据的长度
  3. 数据长度的限制(46-1500 字节),以太网的帧长度不能长于 1518 字节
  4. 为了避免歧义,只要保证 Length 的数据大于数据报的最大长度即可保证是表示 type,保证和之前兼容

数据字段

数据字段包含您要发送的信息。

  1. 数据的长度为 46(18 + 46 = 64 字节)-1500 字节,帧的大小至少是 64 个字节,如果数据太短需要补充 0 才能生成 data,前引导码不算帧长度
  2. 以太网规定,小于 64 字节的帧是由于冲突而终止的无效帧
  3. 最前面 8 个字段不算帧的内容
  4. 4 个 64 字节大小帧同时发送才能保证占据全部的链路,100m 链路,用 512us,就是 512bit

FCS 字段

FCS 字段(四个字节)包含循环冗余校验(cyclic redundancy check)值:

  1. 固定 4 字节
  2. 发送设备创建 CRC
  3. 接收设备重新计算 CRC,以检查在传输(transit)过程中可能对帧造成的损坏(damage)。
  4. 发送方用有效帧的内容除以一个数字,取得的余数放到这个位置,进行发送,接收方。也会将这个帧的内容除以那个数,然后将得到的进行比较,判断是否出现错误。
  5. FCS 正确不一定能保证数据是正确的,几次错误后导致 FCS 还是正确的,但是这种出错率比较低
  6. CRC 错误在不同情况下不同处理:有时候是直接抛弃,有时候还要再校验一下。

最小帧长

局域网只具有物理层和数据链路层的功能

广域网具有网络层,物理层,数据链路层的功能

局域网大多是多点接入的总线型网络

LLC 逻辑链路控制子层没懂,不知道考不考

  1. 逻辑链路控制(LLC)子层通过单个链路管理设备之间的通信
  2. LLC 在 IEEE 802.2 规范中定义,并且支持无连接和面向连接(connect-oriented)的服务。
  3. LLC 子层允许部分数据链接层独立于现有技术运行,单个 LLC 子层可以与不同的 MAC 子层兼容(compatible)。
  4. LLC 子层基有面向连接的,也有不面向连接的,也就是既可以是进行总线服务,也可以实现令牌环路
  5. LLC 为什么被弃用了?因为局域网的正确率比较高,不需要 LLC 来进行守护,避免拖累速度和效率,而这部分也已经被第四层完成了
  6. 蓝牙等特殊连接,直到第二层就已经结束,所以就需要使用 LLC 来完成
  7. 有无连接是在 LLC 部分执行的,无法在 MAC 上进行处理的

LLC 子层:封装

  1. LLC 子层服务上层,LLC 会放在 packet 前面,然后再做一次封装。
  2. 第二次封装则为 LLC 子层向 MAC 子层请求封装操作。
  3. 如上的过程如下:
    1. LLC 获取网络协议数据(数据包,packet),并添加更多控制信息以帮助将数据包传递到其目的地。
    2. 它添加了 802.2 规范的两个寻址组件,以在每一端标识上层协议:
      • 目标服务访问点(DSAP)
      • 源服务访问点(SSAP)
    3. 然后,此重新打包的数据将传输到 MAC 以进一步封装数据。
    4. 基于 SAP 规范进行地址和分配。
  4. 提供了
    1. 无确认的无连接服务,被使用在
      1. 可靠链路(上层来保证数据正确性)
      2. 实时任务
      3. 大多数的局域网内
    2. 有确认的无连接服务,被使用在,不可靠链路,比如无线网
    3. 确认的有连接服务

MAC 子层上的介质访问控制

十六进制数(Hexadecimal)作为 MAC 地址

  1. MAC 地址为 48 位,始终表示为12 个十六进制数字
  2. IEEE 管理的前 6 个十六进制数字(从左到右)标识制造商(manufacturer)或销售商(供应商),并包括组织唯一标识符(OUI)。
    • OUI 是生产的厂商,比如 0060CF 就是 Cisco 的,然后可以使用后面 24 个 bit 进行自己的编码
    • 一个厂商是可以买多个 OUI 的,也可以几个单位买一个 OUI
    • 第一个 bit 取 0 表示这个地址是一个单播地址,取 1 则是表示是一个多播地址。
    • 第二个 bit 取 0 表示这个地址是全球唯一地址,取 1 则表示是一个地址唯一地址
  3. 其余的 6 位十六进制数字包括接口序列号,由特定供应商管理。

以太网 802.3 广播

  1. 广播
    • 目标 MAC:全 1(FFFF.FFFF.FFFF)
    • 保证所有的设备都能收到这个地址
    • 会导致非目的主机进行地址解析
  2. 广播会不必要地打断电台(stations),从而严重影响电台的性能
  3. 因此,仅在以下情况下才应使用广播:
    • 目的地的 MAC 地址未知
    • T 目的地是所有主机
  4. 非必要情况下我们不希望有很多广播,有可能会导致广播风暴

以太网操作

  1. 以太网是广播网络,也就是说,每个站都可以看到所有帧,而不管它们是否是目的地
  2. 通过 MAC 地址判断站点是否为目的地
  3. 目标站在 OSI 层上发送数据。其他节点丢弃(discard)帧

上图中 1 是总线拓扑,1 发送的数据帧会传达给所有在这个总线上的设备,非目的主机检查目的地址和本机 MAC 地址不同,则会将该帧丢弃。

广播操作步骤

  1. 听然后传送
  2. 广播 jam 信号
    • 是一个 32bit 的全 1 的数据帧表示出现了冲突
    • 标准思科认为是所有侦听的设备都会发送
  3. 发生碰撞(Collision)
    • 两个设备同时使用链路发送电信号,则会出错。
    • 如果有冲突,则会一直侦听总线,等到空闲则可以组织数据帧发送
    • 还有问题就是多台主机同时进行组织数据帧进行发送
    • 因为同时还在侦听总线,如果出现冲突,则会发出 jam 信号,只要有 0 或者 1 传输,有电平则会表示使用
  4. 设备退回(back off)适当的时间,然后重新传输(retransmit),发生冲突的设备,根据特定的回退算法
image-20220625095529301
  1. 为什么 64 个字节才能抢线路?
    • 10M 以太网,64 个字节才能在 512us 中传输满整个 100m 的线路

以太网的 CSMA/CD

image-20220625095554456
  1. 首先设备要发送数据
  2. 开始侦听链路是非忙,如果忙,则过一阵来再看看
  3. 如果不忙,则开始准备发送
    • 如果有错误,则到 9,表示有冲突发送,广播一个 jam sighnal,把自己尝试的次数 + 1(重发有一定限度)
    • 尝试次数过多,会像上层协议传输网络不可用
    • 尝试次数还可,则到 13 计算一个回退时间,来再次尝试,回退时间单位,会保证 A 和 D 的时间差能保证第一个人已经用完电路来避免冲突。
  4. 如果没有错误,则一直传输到结束为止

无线局域网和 CSMA/CA

无线(Wireless)局域网

无线局域网:

  • 基于单元的通信
  • 电台发送的信号只能被附近的电台接收
  • 短距离传输

无线局域网标准:

  1. IEEE 802.11
  2. IEEE 802.11b
  3. IEEE 802.11a
  4. IEEE 802.11g
  5. IEEE 802.11n

无线局域网分为两类

  1. 有基础设施拓扑网络(Infrastructure mode)
  2. 无基础设施拓扑网络(ad-hoc mode)

基础设施是提前建设好的基站,可以覆盖一定的区域

  1. 无线网卡和基础设施通信

虚拟载波监听

  1. 源站把它要占用信道的时间(包括目的站发回确认帧所需的时间)写入到所发送的数据帧中(即在首部中的持续时间中写入需要占用信道的时间,以微秒为单位,一直到目的站把确认帧发送完为止),以便使其他所有站在这一段时间都不要发送数据。
  2. 当站点检测到正在信道中传送的帧中的持续时间时,就调整自己的(Network Allocation Vector,NAV 网络分配向量)。NAV 指出了信道处于忙状态的持续时间。
  3. 为什么信道空闲还要再等待呢?就是考虑可能有其他站点有高优先级的帧要发送。如有,就让高优先级帧先发迭。等待的时间就是 IFS(Inter-Frame Space,帧间间隔)。
    1. SIFS(Short Inter-Frame Space,短帧间间隔)最短
    2. PIFS(Point Inter-Frame Space,点协调功能帧间间隔)其次
    3. DIFS(Distributed Inter-Frame Space,分布协调功能帧间间隔)最长。
WLAN 中的 CSMA/CA 示意
  1. 实际吞吐量
    1. 因为源站点发出帧后,接收节点需要返回确认帧(ACK)。这将导致吞吐量降到带宽的一半
    2. 还受到信号强度的影响,当信号变弱之后,将会发起 ARS(Adaptive Rate Selection,自适应速率选择),传输单元会将传输速率从 11 Mbps 降到 5.5 Mbps,或 5.5 到 2,或 2 到 1

无线局域网标准

协议名称 带宽 频率 描述
802.11 1-2 Mbps
802.11b 11 Mbps 2.4 GHz 使用与 802.11 不同的编码技术来实现,向后兼容
802.11a 54 Mbps 5 GHz
802.11g 可提供与 802.11a(54Mbps)相同的功能
具有 802.11b 的向后兼容性
802.11n 108Mbps
  1. IEEE 802.11:
    • 一项关键技术:直接序列扩频(DSSS,Direct Sequence Spread Spectrum)
    • DSSS 适用于在 1 到 2 Mbps 范围内运行的无线设备,上面的这个速率在实际生活场景中要除以 2,因为无线通信都是有确认的,所以一般我们认为信道一来一回才有一次通信。
    • DSSS 可以高达 11 Mbps 的速度运行,但在 2 Mbps 以上时将不被视为兼容
    • 也称为 Wi-Fi™,无线保证度,是星型拓扑,基站作为中心
  2. IEEE 802.11b(Wi-Fi):
    • 传输能力提高到 11Mbps
    • 所有 802.11b 系统都向后兼容(backward compliant),因为它们还仅针对 DSSS 支持 1 和 2Mbps 数据速率的 802.11。
    • 通过使用与 802.11 不同的编码技术来实现(Achieves)更高的数据吞吐率
    • 在 2.4 GHz 内运行,解决了 802.11 中出现的部分问题
    • 使用的是高速直连方案
  3. IEEE 802.11a:
    • 涵盖在 5GHz 传输频带中运行的 WLAN 设备
    • 802.11a 能够提供 54 Mbps 的数据吞吐量,并且采用称为“速率加倍”的专有技术已达到 108 Mbps。
    • 实际上,更标准的等级是 20-26 Mbps。
    • 传播距离相比 802.11 和 802.11b 短(衰减强),但是对于多用户上网的支持更好了。
    • 使用正交频分复用技术。
  4. IEEE 802.11g:
    • 可以提供与 802.11a(54Mbps)相同的功能,但具有 802.11b 的向后兼容性
    • 使用正交频分复用(OFDM,Orthogonal Frequency Division Multiplexing)技术。
  5. IEEE 802.11n: 下一代的 WLAN
    • 提供的带宽是 802.11g 的两倍,即 108Mbps,理论上可达 500-600Mbps。实际上是 100M 左右
    • 目前使用比较多的方案。

无线网络拓扑

  1. 这里讲的是有基础设施的无线网络拓扑结构
  2. DS:分配系统,线
  3. 上网还要通过网关

无线网络的基础设施

  1. 基本服务集(BSS)包括一个基站(BS)和几个无线主机
    • 所有主机都可以在本地 BSS 中直接相互通信
    • 基站中两个主机之间是不直接互相通信的。
    • 同一个 BSS 中的主机间直接通信
  2. 接入点(AP)充当基础架构模式的基站(BS)
    • AP 硬连线到有线(cabled)局域网,以提供 Internet 访问和与有线网络的连接
    • 安装 AP 后,将分配服务集标识符(SSID)和通道
    • 单元格的范围是 91.44 至 152.4 米(300 至 500 英尺)
    • 覆盖大概 100m 左右
  3. 一个 BSS 可以通过分发系统(DS)连接到另一个 BSS,并构造一个扩展服务集(ESS)。
  4. 家里的路由器既有 AP 的功能又有路由器功能,但是理论上只应该是 AP 的功能,一般我们认为家用路由器是一个 AP

访问过程(Accessing Procedure)

在 WLAN 中激活客户端时,它将开始“侦听”与之“关联”的兼容设备

这被称为“扫描”

  • 主动扫描
  • 被动扫描

需要和 AP 连接,才能向 AP 发送数据帧。

主动扫描

  1. 导致从寻求加入网络的无线节点发送探测(probe)请求。
  2. 探测请求将包含它希望加入的网络的服务集标识符(SSID)
  3. 当找到具有相同 SSID 的 AP 时,该 AP 将发出探测响应
  4. 身份验证和关联步骤已完成
  5. 移动端发出请求帧,但是 AP 不发送自己的信息
  6. AP 比较安全。不用发送出自己的 SSID

被动扫描

  1. (ad hoc) 侦听由 AP(基础结构模式)或对等节点(ad hoc)传输的信标管理帧(beacon management frames),包含自己的 SSID 信息
  2. 当节点接收到包含要尝试加入的网络的 SSID 的信标时,将尝试加入该网络。
  3. 被动扫描是一个连续的过程,并且随着信号强度的变化,节点可能会与 AP 关联或分离,也是因为强度变化,所以连接状态需要维持。

无线局域网的帧结构

  1. WLAN 不使用标准的 802.3 帧。
  2. 框架有三种类型
    • 控制帧(Control Frames)
    • 管理帧(Management frames)
    • 数据帧(仅数据帧类似于 802.3 帧)
  3. 无线数据帧和 802.3 帧的有效载荷(payload)为 1500 字节
    • 但是,以太帧不能超过 1518 字节,而无线帧则可能高达2346 字节。(是因为在无线情况下使用的是有确认的信息,增加无线帧有效数据大小,来对冲,确认的信息的损耗)。
    • 无线网络帧的大小也不会太大,尽量避免转换成有线帧的时候出现帧的拆分,也就是说大小一般在 1500 字节以下,通常,WLAN 帧大小将被限制为 1518 字节,因为它最常连接到有线以太网。

数据帧结构(802.11 无线网)

  1. 帧控制信息包含 16 bit
  2. 去往 AP 和来自 AP 是我们需要重点确认
  3. WEP 规格,Wired Equivalent Privacy(有线等效保密)
  4. 持续期:参数,很重要,CSMA/CA 需要,这个信息
  5. 有时间窗口,如果超时没收到信号,则进行重传

数据帧的的地址分类

  1. ad hoc(无线网地址)用地址 4
  2. 有基础设施用的是地址 1、2、3

数据帧中的地址详解

  1. 扩展星型拓扑
  2. 去往 AP 和来自 AP 显然是不能全为 1 的
    1. 去往 AP 是指向 AP 发送,参考第二行
    2. 为什么不能全为 1?因为两个 AP 之间通过有线进行通信,所以不是无线通信的过程。

为什么我们需要 CSMA/CA?

  1. 冲突(Collisions)可能发生在 WLAN 中,但是站点只能知道附近的传输,因此 CSMA/CD 不是一个好的选择。
    • 隐藏站问题:当 A 将数据传输到 B 时,C 无法检测到 A 和 B 之间的传输,因此 C 可能会决定将数据传输到 B 并导致 B 发生冲突。
    • 暴露站问题:当 B 将数据传输到 A 时,C 可以检测到传输,因此 C 不会将数据传输到 D。但这是一个错误。(听到不应该听到的信号)

  1. 应用在无线网络 ad hoc 连接的时候,直接相连转发
  2. 对应:总线拓扑
  3. 这种情况下做不到全体的侦听
  4. 什么我们不使用 CSMA/CD?
    1. 碰撞检测"要求一个站点在发送本站数据的同时,还必须不间断地检测信道。一旦检测到碰撞,就立即停止发送。但由于无线信道的传输条件特殊,其信号强度的动态范围非常大,因此在 802.11 适配器上接收到的信号强度往往会远远小于发送信号的强度(信号强度可能相差百万倍)。如要在无线局域网的适配器上实现检测到碰撞,在硬件上需要的花费就会过大。
    2. 更重要的是,即使我们能够在硬件上实现无线局域网的碰撞检测功能,我们仍然无法避免碰撞的发生。这就表明,无线局域网不需要进行碰撞检测。

多路复用机制(Mechanism)

  1. 以太网
    • 信号被传输到电缆上的所有站。
    • 发送站检测到冲突。
    • 一次只能在信道上发送一个有效帧。
  2. WLAN 无线网络
    • 信号通过电缆传输到发送站附近的站(相邻,不可以跨越有效距离发送)
    • MAC 协议必须尽最大努力确保仅发送站靠近接收站,发送方只能发送一路信号给接受方,不能有多个发送方发送信号给一个接受点
    • 接收方检测确定冲突。
    • 一次可以在通道上传输个有效(effective)帧,不可以产生冲突。

CSMA/CA 避免冲突的载波侦听多路访问

  1. CSMA/CA(Carrier Sense Multiple Access with Collision Avoidance)
    • 发送站点在发送数据前,以控制短帧刺激接收站点发送应答短帧,使接收站点周围的站点监听到该帧,从而在一定时间内避免数据发送
    • 基本过程
      1. A 向 B 发送 RTS(Request To Send,请求发送)帧,A 周围的站点在一定时间内不发送数据,以保证 CTS 帧返回给 A;
      2. B 向 A 回答 CTS(Clear To Send,清除发送)帧,B 周围的站点在一定时间内不发送数据,以保证 A 发送完数据;
      3. A 开始发送
      4. 若控制帧 RTS 或 CTS 发生冲突,采用二进制指数后退算法等待随机时间,再重新开始。(A 和 C 同时发送 RTS)
  2. 退避时间短的设备先传输
  3. 发现冲突所有设备同时退避
  4. 在 ad hoc 网络中比较无序,存在大量延时,比如 CTS 和 RTS 相碰撞,这种情况是比较少的,异常情况,不在本课程考虑范围内。

CSMA/CA 过程

  1. 为避免冲突,802.11 所有站点在完成一个事务后必须等待一段时间才能进行下一个动作,这个时间被称为 IFS,具体取决于帧的类型。
  2. SIFS(Short interframe space):短帧间间隔 28us,用于本设备接受发送状态转换,不足够源站接受 CTS
  3. DIFS(Distributed Inter-frame Spacing):分布协调功能帧间间隔 128us(多个节点进行协调)
  4. 应答 CTS(Clear to Send),等待 SIFS(Short interframe space)后发送数据
  5. 过程中的时间写入时间数据标记位
  6. NAV(网络分配向量):网络协调时间,时间长度:NAV 计算方式在后面,NAV 是一开始就进行预估了,别的节点抢到了节点时,我们会减掉别人正常通信的时间,不是一直累积下去的情况。
  7. 下一次经过争用窗口来抢
  8. 源站需要收到确认信息 CTS 才能接着发送信息
  9. 多个源站向目的站发 RTS 给目的站,目的站发现冲突,告诉各自站点,PPT 处理的是 RTS

CSMA/MA 实例

  1. A 的反应时间少,抢到使用权
  2. E 加入进来的话也会计算出一个退避时间

实际数据传输率

  1. 当源节点发送帧时,接收节点将返回肯定确认(ACK)。
    • 这可能导致消耗 50% 的可用带宽(bandwidth)。
    • 在额定为 11 Mbps 的 802.11b 无线局域网上,这会将实际数据吞吐量降低到最大 5.0 到 5.5Mbps。
  2. 网络性能也会受到信号强度的影响
    • 随着信号变弱,可以调用自适应速率选择(ARS)
    • 信号会受到距离影响,越远信号越弱,功率越低,带宽不能稳定到初始带宽
    • 传输单元会将数据速率从 11 Mbps 降低到 5.5Mbps,从 5.5 Mbps 降低到 2 Mbps 或 2 Mbps 到 1 Mbps。

WLAN 和 Ethernet 区别

Ethernet WLAN
信号被传输到连接在线缆上的所有站点上 信号只被传输到接近发送站点的站点
接受站点检测冲突
只会有一个有效帧在信道上传播 会有多个有效帧同时在信道上传播
MAC 协议必须尽可能保证只有发送站点接近接收站点

Layer 2 Devices 第二层设备

NICs 网卡

  1. NIC 执行重要的第 2 层数据链路层功能:
    1. 逻辑链接控制-与计算机上层通信
    2. 媒体访问控制-提供对共享访问媒体的结构化访问
    3. 命名-提供唯一的 MAC 地址标识符
    4. 成帧-封装过程的一部分,打包比特以进行传输。
    5. 信号-使用内置收发器创建信号并与媒体接口(也有第一层功能,变为 01 信号)

网桥(Bridges)

  1. 网桥将流量划分为多个部分,并根据 MAC 地址而不是协议对流量进行过滤。
  2. 网桥可以通过减少较大的冲突域来提高网络性能。
    1. 大的冲突域变少,碰撞和冲突会变少,但是网桥会成为一个瓶颈。(网桥将数据帧检验存储再转发)
    2. 导致延迟提高 10-30%
  3. 在从网络的一个网段到其他网段的流量较低的情况下,网桥最有效,当网段之间的流量变大时,网桥会成为瓶颈(bottleneck),并减慢通信速度。
  4. 一般是处理两个不同的分段,相对比较简单。
  5. 是一种储存转发(store-and-forward)设备,因为它必须接受整个帧并在转发前校验 CRC(事实上这必要性不大)

透明网桥原理

  1. Mac 表放到缓存的位置,刚启动时是空表,之后逐渐学习。
    • Mac 地址表是有生命周期的,如果计时超过一个阈值没有刺激刷新 Mac 表,则会刷新表
    • 比如笔记本更换接入地址。
  2. “透明”指局域网中的站点并不知道所发送的帧将经过哪几个网桥,因为网桥对各站来说是看不见的
  3. 即插即用
  4. 原理
    1. 从 A 发出的帧从接口 x 进入了网桥,则从这个接口发出帧就一定能达到 A。网桥每收到一个帧,就记下其源地址和进入网桥的接口,写入转发表。
    2. 在收到一个新的帧时,在转发表中匹配此帧的目的地址,找到对应的接口并转发。
    3. 在网桥的转发表中写入的信息除了地址和接口外,还有帧进入网桥的时间,因为
      • 拓扑可能经常变化
      • 站点也可能会更换适配器(这就改变了站点的地址)
      • 站点并非总是处于工作状态
      • 把每个帧到达网桥的时间登记下来,就可以在转发表中只保留网络拓扑的最新状态信息,使得网桥中的转发表能反映当前网络的最新拓扑
  5. 问题:网络上的设备要发送数据但不知道目标地址时。
    • 向网络上的所有设备发送广播。因为希望数据帧能够发送到全网,尽可能到达目的地
    • 由于网络上的每个设备都必须注意此类广播,因此网桥始终会转发这些广播。
  6. 广播过多会导致广播风暴,并且可能导致:
    • 网络延时(network time-outs)
    • 交通减速(traffic slowdowns)
    • 低于可接受的性能

源路由网桥

  1. 发送帧时将详细的路由信息放在帧的首部中,从而使每个经过的网桥都了解帧的路径
  2. 在令牌环网络中被广泛使用
  3. 原理:源站以广播方式向目的站发送一个发现帧,每个发现帧都记录所经过的路由。发现帧到达目的站时就沿各自的路由返回源站。源站在得知这些路由后,从所有可能的路由中选择出一个最佳路由。凡从该源站向该目的站发送的帧的首部,都必须携带源站所确定的这一路由信息。

交换机(Switches)

  1. 执行两个基本操作:
    1. 切换数据帧:在输入介质(medium)上接收帧,然后将其传输到输出介质
    2. 维护交换操作:交换器建立和维护交换表并搜索循环。 路由器构建并维护路由表和交换表。(STB 协议避免回路)
  2. 交换是一项通过减少流量和 alleviates congestion 来缓解以太网 LAN 拥塞(alleviates congestion)的技术.
    1. 交换机创建专用(dedicated)的网段或点对点连接,并将这些网段连接到交换机内的虚拟网络中。
    2. 之所以称为虚拟电路,是因为它仅在两个节点需要通信时才存在,并且在交换机内建立。网桥内部有一个高带宽的总线(一般内部带宽是接口带宽的 10 倍)
    3. 您可以将每个交换机端口视为一个微桥(micro-bridge)。该过程称为微分段(microsegmentation)。
    4. 每个交换机端口将介质的全部带宽提供给每个主机
  3. 局域网交换机可减少冲突域的大小(通过,VLAN 划分)
  4. 但是,连接到交换机的所有主机仍位于同一广播域中。
    1. 也就是说,通过 LAN 交换机连接的所有其他节点仍将看到来自一个节点的广播。
    2. 交换机不能划分广播域(端口->所有端口转发)
  5. 带宽利用率可以接近 100%
  6. 交换机连接的是一个局域网,而路由器连接的是不同局域网。

交换机划分了冲突域

  1. 转发的速度明显加快,因为它们在硬件中进行切换,而网桥在软件中进行切换。
  2. 可以使用交换机连接 10 Mbps 以太网 LAN 和 100 Mbps 以太网 LAN。
  3. 在交换式以太网实现中可用带宽可以接近 100%。
  4. 共享以太网网络的容量不足其全部容量的 30% 至 40% 时,其性能最佳。
  5. 一些交换机支持直通交换,这减少了延迟和延迟,而网桥仅支持存储转发交换(存储转发,存下来检验转发)
    1. 直通交换:快速转发,不做校验,只看前 6 字节的 MAC 地址。
    2. 局域网:网速比较快,传输速率高,网线比较短,可以认为是基本没有错误的,所以可以进行直通转发

路由器划分了冲突域

  1. 路由器可以创建最高级别的细分:
    1. 创建较小的碰撞域
    2. 创建较小的广播域:除非经过编程,否则路由器不会转发广播。
  2. 路由器通过检查数据包上的目标逻辑地址,然后在其路由表中查找转发指令来完成数据包的转发
  3. 由于路由器比网桥执行更多的功能,因此它们以更高的延迟率运行。
  4. 路由器可以用作网关,用于连接不同的网络媒体和不同的 LAN 技术
  5. 是根据逻辑地址(IP 地址)进行转发,不再是 MAC
  6. function 比较多,所以延时会比较多。