本文主要内容来自 SpriCoder的博客,更换了更清晰的图片并对原文的疏漏做了补充和修正。
数据链路层概述
本章主要是局域网的数据链路层的技术标准,主要是以太网的介质和无线网的介质两大类。
是一个直连线路上的介质控制,在无线路由器上,会有不同的第二层(手机到路由器,路由器到远端),数据链路层只能在一个网段,不能跨链路.
物理层和数据链路层的区别
第一层 | 第二层 |
---|---|
无法与上层通信 | 通过 LLC 与上层通信 |
无法确定哪台主机将会传输或接受二进制数据 | 通过 MAC 确定 |
无法命名或标识主机 | 通过寻址或命名过程来实现 |
仅仅能描述比特流 | 通过帧来组织/分组比特 |
数据链路层 Data Link Layer
问题:如何在不稳定(instable)的链路上正确传输数据?
数据链路层提供:
- 网络介质访问:
- 跨媒体物理传输(transmission):
第二层协议明确了:
- 在链路上交换的数据格式
- 链路上的两个节点的行为
在数据链路层,过程就是协议。
在两端校验,帧是否是正确的,或者是不正确的,如果正确交付第三层,否则进行相应的处理
局域网和数据链路
主要工作:
- 错误识别(notification)
- 网络拓扑(Network topology)
- 流控制(Flow control)
第一层和第二层的不同:
- 第一层不可以访问更高层(upper-level layers),而第二层是通过逻辑链路(Logical Link Control)控制进行
- 第 1 层无法决定哪个主机将发送(transmit)或接收(receive)来自组的二进制数据;第 2 层使用媒体访问控制(MAC)做到这一点,共用总线链路
- 第 1 层无法命名或识别计算机;第 2 层使用寻址(或命名)过程,以太网场景下
- 第 1 层只能描述比特流;第 2 层使用成帧对比特进行组织或分组。
第二层提供的服务
提供给网络层的三层服务
- (最弱,最不靠谱的)没有确认(acknowledgement)的无连接(Connectionless)服务
- 发送取出就行,不用等收到确认
- 可靠(Reliable)的链接(上层以确保数据正确性)
- 实时任务,比较高效
- 适用于大多数局域网
- 带有确认的无连接服务:不可靠的链接,例如无线网络:需要保证一定的通信质量(比如无线网络的传输),同时会损失一定的性能。
- 带有确认的连接服务
- 比如蓝牙:需要先确定绑定关系才能进行通信
- 手机和手机之间的蓝牙连接需要确定一些信息
三种服务的连接的不同和区别:
- 无线连接和有线连接相比多了确认的过程
- 网线连接:我们通信的对象是路由器,由路由器进行转发
- PPPoP 是路由器和远端的服务器的连接
- 有线无线都接给路由器,都需要连接,但是无线网相对有线网需要确认(包确认)
常见的局域网的介质访问控制
常见的局域网的介质访问控制(Media Access Control)
- 以太网(Ethernet):逻辑总线拓扑(信息流在线性总线上)和物理星形或扩展星形(连线为星形)
- 令牌环(Token Ring):逻辑环拓扑(信息流在一个环中)和物理星形拓扑(以星形连接)
- FDDI(光纤分布式数据接口):逻辑环拓扑(信息流在一个环中)和物理双环拓扑(作为双环连接),光纤作为传输介质,曾经很常用,后来被以太网有线接入逐渐替代
介质访问控制方法
介质访问控制方法(Access Methods)
两大类介质访问控制方法
码分多址属于静态划分信道的方法
CSMA 的对比总结
- 确定性轮流(Deterministic—taking turns):Token Ring and FDDI(Fiber Distributed Data Interface,光纤分布式数据接口)
- 争用式(Non-deterministic(probabilistic))
- 非确定性(概率性)-先到先得 first come, first sesrved
- Ethernet/802.3
- 70 年代,Norman Abramson 设计
- Pure ALOHA: 纯 ALOHA 协议
- 主机任何时候都可以发送数据
- 如果发生冲突,延迟一段时间再发送
- Slotted ALOHA: 分段 ALOHA 协议
- 把信道在时间上分段。主机任何时候都发送数据,但是必须等待下一个时间分段的开始才开始发送
- 如果发生冲突,延迟一段时间再发送
确定性轮流 Deterministic MAC Protocols
- 特殊数据令牌在环中循环(circulates)。
- 当主机收到令牌时,它可以传输数据而不是令牌。这称为夺取(seizing)令牌。
- 当发送(transmitted)的帧返回到发送器时,站点将发送新令牌; 框架已从环上卸下或脱落(stripped)。
非确定性 MAC 协议 Non-Deterministic MAC Protocols
- 此 MAC 协议称为带冲突检测的载波侦听多路访问(CSMA/CD,Carrier Sense Multiple Access with Collision Detection)(重要考点)
- 为了使用这种共享介质(shared-medium)技术,以太网允许网络设备为传输权进行仲裁(arbitrate)。
- 适用于总线结构的以太网。
局域网数据传输(Transmitison)方式:三种
- 单播(unicast)-将单个数据包从源发送到网络上的单个目标
- 多播(multicast)-由发送到网络上特定节点子集的单个数据包组成,这些节点都有同样的进程进行响应
- 广播(broadcast)-由单个数据包组成,该数据包传输到网络上的所有节点。(广播的目的地址是 0x11111111)
以太网和带冲突检测的载波侦听多路访问 CSMA/CD
确定碰撞后的重传时间
逻辑链路 LLC 和介质访问控制 MAC 子层
- 无缘电缆的方式传播电波:以太网
- 帧传播速度提高了
- 帧的标准没有改变
局域网标准
- 定义物理媒体和用于将设备连接到媒体的连接器
- 在数据链路层定义设备的通信方式
- 数据链路层定义了如何在物理介质上传输数据。
- 数据链路层还定义了如何封装(encapsulate)特定于协议的流量(traffic),以使去往不同上层协议的流量在到达堆栈时可以使用相同的通道。
IEEE 802.2 对应 LLC,以太网则覆盖物理层和链路层
- IEEE 将数据链路层分为两部分:
- 媒体访问控制(MAC)(转换为媒体)
- 逻辑链路控制(LLC)(过渡到网络层)
- 乍一看,IEEE 标准似乎以两种方式违反了 OSI 模型。
- 首先,它定义自己的层(LLC),包括其接口等。
- 其次,看来 MAC 层标准 802.3 和 802.5 跨越了第 2 层/第 1 层接口。
- 802.5 令牌环网
- 802.3 覆盖了物理层和第二层下半层
- 但是,802.3 和 802.5 定义了用于构建特定技术的命名,框架和媒体访问控制规则,都规范了对应的方案,不同方案不同解决标准
MAC & LLC
- MAC 子层(802.3)
- 定义如何在物理线路上传输帧(frames)
- 处理物理寻址
- 定义网络拓扑
- 定义线路规则(discipline)
- LLC 子层(802.2)
- 逻辑上标识不同的协议类型,然后将其封装,兼容不同介质的访问
- 使用 SAP 标识符执行逻辑标识,用来做发送的位置的标识
- LLC 帧的类型取决于上层协议期望的标识符,对于上层服务进行支持
- LLC 已经比较规范了,后来有的厂商已经放弃继续做
介质访问控制子层
MAC 子层(Media Access Control Sublayer):
- 以字节为单位进行帧结构描述
- 有 802.3 的规范和以太网的规范
- MAC 介质访问控制子层的帧结构:
前文
从 1 和 0 的交替(alternating)模式开始,称为前同步码(preamble):
- 告诉接收方,要来数据了,因为不是预约发数据的模式,这个码就是为了保证对方有相应准备时间,前面 7 个是前同步码(0b10101010),最后一个是帧开始定界符(0x10101011)
- 使用曼彻斯特编码的方案,无传输的时候是 0 电平的
前同步码告诉接收站一帧即将到来,前同步码不是 MAC 帧的内容。
目标和源物理地址字段
- 源地址:始终是单播地址
- 目的地址:单播地址,组播地址或广播地址
- MAC 地址:6 个字节为目的地址(Dest.add) 6 个字节为源地址(Source.add),和第三层第四层报文有差别
- 先看目的地址的好处:交换机等看到目的地址就可以进行判断,提高效率
长度字段
长度字段指示在该字段之后且在帧检查序列字段之前(precede)的数据字节数。
- 2 个字节长,早期规范放的是长度,指定数据长度,以太网-2 标准下则是使用 type 来完成这部分内容,指定后面的 DATA 是 IP 还是 IPX 的报文数据。
- 没有长度也可以计算出来长度,通过有电平长度就可以计算出数据的长度
- 数据长度的限制(46-1500 字节),以太网的帧长度不能长于 1518 字节
- 为了避免歧义,只要保证 Length 的数据大于数据报的最大长度即可保证是表示 type,保证和之前兼容
数据字段
数据字段包含您要发送的信息。
- 数据的长度为 46(18 + 46 = 64 字节)-1500 字节,帧的大小至少是 64 个字节,如果数据太短需要补充 0 才能生成 data,前引导码不算帧长度
- 以太网规定,小于 64 字节的帧是由于冲突而终止的无效帧
- 最前面 8 个字段不算帧的内容
- 4 个 64 字节大小帧同时发送才能保证占据全部的链路,100m 链路,用 512us,就是 512bit
FCS 字段
FCS 字段(四个字节)包含循环冗余校验(cyclic redundancy check)值:
- 固定 4 字节
- 发送设备创建 CRC
- 接收设备重新计算 CRC,以检查在传输(transit)过程中可能对帧造成的损坏(damage)。
- 发送方用有效帧的内容除以一个数字,取得的余数放到这个位置,进行发送,接收方。也会将这个帧的内容除以那个数,然后将得到的进行比较,判断是否出现错误。
- FCS 正确不一定能保证数据是正确的,几次错误后导致 FCS 还是正确的,但是这种出错率比较低
- CRC 错误在不同情况下不同处理:有时候是直接抛弃,有时候还要再校验一下。
最小帧长
局域网只具有物理层和数据链路层的功能
广域网具有网络层,物理层,数据链路层的功能
局域网大多是多点接入的总线型网络
LLC 逻辑链路控制子层没懂,不知道考不考
- 逻辑链路控制(LLC)子层通过单个链路管理设备之间的通信
- LLC 在 IEEE 802.2 规范中定义,并且支持无连接和面向连接(connect-oriented)的服务。
- LLC 子层允许部分数据链接层独立于现有技术运行,单个 LLC 子层可以与不同的 MAC 子层兼容(compatible)。
- LLC 子层基有面向连接的,也有不面向连接的,也就是既可以是进行总线服务,也可以实现令牌环路
- LLC 为什么被弃用了?因为局域网的正确率比较高,不需要 LLC 来进行守护,避免拖累速度和效率,而这部分也已经被第四层完成了
- 蓝牙等特殊连接,直到第二层就已经结束,所以就需要使用 LLC 来完成
- 有无连接是在 LLC 部分执行的,无法在 MAC 上进行处理的
LLC 子层:封装
- LLC 子层服务上层,LLC 会放在 packet 前面,然后再做一次封装。
- 第二次封装则为 LLC 子层向 MAC 子层请求封装操作。
- 如上的过程如下:
- LLC 获取网络协议数据(数据包,packet),并添加更多控制信息以帮助将数据包传递到其目的地。
- 它添加了 802.2 规范的两个寻址组件,以在每一端标识上层协议:
- 目标服务访问点(DSAP)
- 源服务访问点(SSAP)
- 然后,此重新打包的数据将传输到 MAC 以进一步封装数据。
- 基于 SAP 规范进行地址和分配。
- 提供了
- 无确认的无连接服务,被使用在
- 可靠链路(上层来保证数据正确性)
- 实时任务
- 大多数的局域网内
- 有确认的无连接服务,被使用在,不可靠链路,比如无线网
- 确认的有连接服务
- 无确认的无连接服务,被使用在
MAC 子层上的介质访问控制
十六进制数(Hexadecimal)作为 MAC 地址
- MAC 地址为 48 位,始终表示为12 个十六进制数字。
- IEEE 管理的前 6 个十六进制数字(从左到右)标识制造商(manufacturer)或销售商(供应商),并包括组织唯一标识符(OUI)。
- OUI 是生产的厂商,比如 0060CF 就是 Cisco 的,然后可以使用后面 24 个 bit 进行自己的编码
- 一个厂商是可以买多个 OUI 的,也可以几个单位买一个 OUI
- 第一个 bit 取 0 表示这个地址是一个单播地址,取 1 则是表示是一个多播地址。
- 第二个 bit 取 0 表示这个地址是全球唯一地址,取 1 则表示是一个地址唯一地址
- 其余的 6 位十六进制数字包括接口序列号,由特定供应商管理。
以太网 802.3 广播
- 广播
- 目标 MAC:全 1(FFFF.FFFF.FFFF)
- 保证所有的设备都能收到这个地址
- 会导致非目的主机进行地址解析
- 广播会不必要地打断电台(stations),从而严重影响电台的性能
- 因此,仅在以下情况下才应使用广播:
- 目的地的 MAC 地址未知
- T 目的地是所有主机
- 非必要情况下我们不希望有很多广播,有可能会导致广播风暴
以太网操作
- 以太网是广播网络,也就是说,每个站都可以看到所有帧,而不管它们是否是目的地
- 通过 MAC 地址判断站点是否为目的地
- 目标站在 OSI 层上发送数据。其他节点丢弃(discard)帧
上图中 1 是总线拓扑,1 发送的数据帧会传达给所有在这个总线上的设备,非目的主机检查目的地址和本机 MAC 地址不同,则会将该帧丢弃。
广播操作步骤
- 听然后传送
- 广播 jam 信号
- 是一个 32bit 的全 1 的数据帧表示出现了冲突
- 标准思科认为是所有侦听的设备都会发送
- 发生碰撞(Collision)
- 两个设备同时使用链路发送电信号,则会出错。
- 如果有冲突,则会一直侦听总线,等到空闲则可以组织数据帧发送
- 还有问题就是多台主机同时进行组织数据帧进行发送
- 因为同时还在侦听总线,如果出现冲突,则会发出 jam 信号,只要有 0 或者 1 传输,有电平则会表示使用
- 设备退回(back off)适当的时间,然后重新传输(retransmit),发生冲突的设备,根据特定的回退算法
- 为什么 64 个字节才能抢线路?
- 10M 以太网,64 个字节才能在 512us 中传输满整个 100m 的线路
以太网的 CSMA/CD
- 首先设备要发送数据
- 开始侦听链路是非忙,如果忙,则过一阵来再看看
- 如果不忙,则开始准备发送
- 如果有错误,则到 9,表示有冲突发送,广播一个 jam sighnal,把自己尝试的次数 + 1(重发有一定限度)
- 尝试次数过多,会像上层协议传输网络不可用
- 尝试次数还可,则到 13 计算一个回退时间,来再次尝试,回退时间单位,会保证 A 和 D 的时间差能保证第一个人已经用完电路来避免冲突。
- 如果没有错误,则一直传输到结束为止
无线局域网和 CSMA/CA
无线(Wireless)局域网
无线局域网:
- 基于单元的通信
- 电台发送的信号只能被附近的电台接收
- 短距离传输
无线局域网标准:
- IEEE 802.11
- IEEE 802.11b
- IEEE 802.11a
- IEEE 802.11g
- IEEE 802.11n
无线局域网分为两类
- 有基础设施拓扑网络(Infrastructure mode)
- 无基础设施拓扑网络(ad-hoc mode)
基础设施是提前建设好的基站,可以覆盖一定的区域
- 无线网卡和基础设施通信
虚拟载波监听
- 源站把它要占用信道的时间(包括目的站发回确认帧所需的时间)写入到所发送的数据帧中(即在首部中的持续时间中写入需要占用信道的时间,以微秒为单位,一直到目的站把确认帧发送完为止),以便使其他所有站在这一段时间都不要发送数据。
- 当站点检测到正在信道中传送的帧中的持续时间时,就调整自己的(Network Allocation Vector,NAV 网络分配向量)。NAV 指出了信道处于忙状态的持续时间。
- 为什么信道空闲还要再等待呢?就是考虑可能有其他站点有高优先级的帧要发送。如有,就让高优先级帧先发迭。等待的时间就是 IFS(Inter-Frame Space,帧间间隔)。
- SIFS(Short Inter-Frame Space,短帧间间隔)最短
- PIFS(Point Inter-Frame Space,点协调功能帧间间隔)其次
- DIFS(Distributed Inter-Frame Space,分布协调功能帧间间隔)最长。
- 实际吞吐量
- 因为源站点发出帧后,接收节点需要返回确认帧(ACK)。这将导致吞吐量降到带宽的一半
- 还受到信号强度的影响,当信号变弱之后,将会发起 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 |
- IEEE 802.11:
- 一项关键技术:直接序列扩频(DSSS,Direct Sequence Spread Spectrum)
- DSSS 适用于在 1 到 2 Mbps 范围内运行的无线设备,上面的这个速率在实际生活场景中要除以 2,因为无线通信都是有确认的,所以一般我们认为信道一来一回才有一次通信。
- DSSS 可以高达 11 Mbps 的速度运行,但在 2 Mbps 以上时将不被视为兼容
- 也称为 Wi-Fi™,无线保证度,是星型拓扑,基站作为中心
- IEEE 802.11b(Wi-Fi):
- 传输能力提高到 11Mbps
- 所有 802.11b 系统都向后兼容(backward compliant),因为它们还仅针对 DSSS 支持 1 和 2Mbps 数据速率的 802.11。
- 通过使用与 802.11 不同的编码技术来实现(Achieves)更高的数据吞吐率
- 在 2.4 GHz 内运行,解决了 802.11 中出现的部分问题
- 使用的是高速直连方案
- IEEE 802.11a:
- 涵盖在 5GHz 传输频带中运行的 WLAN 设备
- 802.11a 能够提供 54 Mbps 的数据吞吐量,并且采用称为“速率加倍”的专有技术已达到 108 Mbps。
- 实际上,更标准的等级是 20-26 Mbps。
- 传播距离相比 802.11 和 802.11b 短(衰减强),但是对于多用户上网的支持更好了。
- 使用正交频分复用技术。
- IEEE 802.11g:
- 可以提供与 802.11a(54Mbps)相同的功能,但具有 802.11b 的向后兼容性
- 使用正交频分复用(OFDM,Orthogonal Frequency Division Multiplexing)技术。
- IEEE 802.11n: 下一代的 WLAN
- 提供的带宽是 802.11g 的两倍,即 108Mbps,理论上可达 500-600Mbps。实际上是 100M 左右
- 目前使用比较多的方案。
无线网络拓扑
- 这里讲的是有基础设施的无线网络拓扑结构
- DS:分配系统,线
- 上网还要通过网关
无线网络的基础设施
- 基本服务集(BSS)包括一个基站(BS)和几个无线主机
- 所有主机都可以在本地 BSS 中直接相互通信
- 基站中两个主机之间是不直接互相通信的。
- 同一个 BSS 中的主机间直接通信
- 接入点(AP)充当基础架构模式的基站(BS)
- AP 硬连线到有线(cabled)局域网,以提供 Internet 访问和与有线网络的连接
- 安装 AP 后,将分配服务集标识符(SSID)和通道
- 单元格的范围是 91.44 至 152.4 米(300 至 500 英尺)
- 覆盖大概 100m 左右
- 一个 BSS 可以通过分发系统(DS)连接到另一个 BSS,并构造一个扩展服务集(ESS)。
- 家里的路由器既有 AP 的功能又有路由器功能,但是理论上只应该是 AP 的功能,一般我们认为家用路由器是一个 AP
访问过程(Accessing Procedure)
在 WLAN 中激活客户端时,它将开始“侦听”与之“关联”的兼容设备
这被称为“扫描”
- 主动扫描
- 被动扫描
需要和 AP 连接,才能向 AP 发送数据帧。
主动扫描
- 导致从寻求加入网络的无线节点发送探测(probe)请求。
- 探测请求将包含它希望加入的网络的服务集标识符(SSID)
- 当找到具有相同 SSID 的 AP 时,该 AP 将发出探测响应
- 身份验证和关联步骤已完成
- 移动端发出请求帧,但是 AP 不发送自己的信息
- AP 比较安全。不用发送出自己的 SSID
被动扫描
- (ad hoc) 侦听由 AP(基础结构模式)或对等节点(ad hoc)传输的信标管理帧(beacon management frames),包含自己的 SSID 信息
- 当节点接收到包含要尝试加入的网络的 SSID 的信标时,将尝试加入该网络。
- 被动扫描是一个连续的过程,并且随着信号强度的变化,节点可能会与 AP 关联或分离,也是因为强度变化,所以连接状态需要维持。
无线局域网的帧结构
- WLAN 不使用标准的 802.3 帧。
- 框架有三种类型
- 控制帧(Control Frames)
- 管理帧(Management frames)
- 数据帧(仅数据帧类似于 802.3 帧)
- 无线数据帧和 802.3 帧的有效载荷(payload)为 1500 字节
- 但是,以太帧不能超过 1518 字节,而无线帧则可能高达2346 字节。(是因为在无线情况下使用的是有确认的信息,增加无线帧有效数据大小,来对冲,确认的信息的损耗)。
- 无线网络帧的大小也不会太大,尽量避免转换成有线帧的时候出现帧的拆分,也就是说大小一般在 1500 字节以下,通常,WLAN 帧大小将被限制为 1518 字节,因为它最常连接到有线以太网。
数据帧结构(802.11 无线网)
- 帧控制信息包含 16 bit
- 去往 AP 和来自 AP 是我们需要重点确认
- WEP 规格,Wired Equivalent Privacy(有线等效保密)
- 持续期:参数,很重要,CSMA/CA 需要,这个信息
- 有时间窗口,如果超时没收到信号,则进行重传
数据帧的的地址分类
- ad hoc(无线网地址)用地址 4
- 有基础设施用的是地址 1、2、3
数据帧中的地址详解
- 扩展星型拓扑
- 去往 AP 和来自 AP 显然是不能全为 1 的
- 去往 AP 是指向 AP 发送,参考第二行
- 为什么不能全为 1?因为两个 AP 之间通过有线进行通信,所以不是无线通信的过程。
为什么我们需要 CSMA/CA?
- 冲突(Collisions)可能发生在 WLAN 中,但是站点只能知道附近的传输,因此 CSMA/CD 不是一个好的选择。
- 隐藏站问题:当 A 将数据传输到 B 时,C 无法检测到 A 和 B 之间的传输,因此 C 可能会决定将数据传输到 B 并导致 B 发生冲突。
- 暴露站问题:当 B 将数据传输到 A 时,C 可以检测到传输,因此 C 不会将数据传输到 D。但这是一个错误。(听到不应该听到的信号)
- 应用在无线网络 ad hoc 连接的时候,直接相连转发
- 对应:总线拓扑
- 这种情况下做不到全体的侦听
- 什么我们不使用 CSMA/CD?
- 碰撞检测"要求一个站点在发送本站数据的同时,还必须不间断地检测信道。一旦检测到碰撞,就立即停止发送。但由于无线信道的传输条件特殊,其信号强度的动态范围非常大,因此在 802.11 适配器上接收到的信号强度往往会远远小于发送信号的强度(信号强度可能相差百万倍)。如要在无线局域网的适配器上实现检测到碰撞,在硬件上需要的花费就会过大。
- 更重要的是,即使我们能够在硬件上实现无线局域网的碰撞检测功能,我们仍然无法避免碰撞的发生。这就表明,无线局域网不需要进行碰撞检测。
多路复用机制(Mechanism)
- 以太网
- 信号被传输到电缆上的所有站。
- 发送站检测到冲突。
- 一次只能在信道上发送一个有效帧。
- WLAN 无线网络
- 信号通过电缆传输到发送站附近的站(相邻,不可以跨越有效距离发送)
- MAC 协议必须尽最大努力确保仅发送站靠近接收站,发送方只能发送一路信号给接受方,不能有多个发送方发送信号给一个接受点
- 接收方检测确定冲突。
- 一次可以在通道上传输多个有效(effective)帧,不可以产生冲突。
CSMA/CA 避免冲突的载波侦听多路访问
- CSMA/CA(Carrier Sense Multiple Access with Collision Avoidance)
- 发送站点在发送数据前,以控制短帧刺激接收站点发送应答短帧,使接收站点周围的站点监听到该帧,从而在一定时间内避免数据发送
- 基本过程
- A 向 B 发送 RTS(Request To Send,请求发送)帧,A 周围的站点在一定时间内不发送数据,以保证 CTS 帧返回给 A;
- B 向 A 回答 CTS(Clear To Send,清除发送)帧,B 周围的站点在一定时间内不发送数据,以保证 A 发送完数据;
- A 开始发送
- 若控制帧 RTS 或 CTS 发生冲突,采用二进制指数后退算法等待随机时间,再重新开始。(A 和 C 同时发送 RTS)
- 退避时间短的设备先传输
- 发现冲突所有设备同时退避
- 在 ad hoc 网络中比较无序,存在大量延时,比如 CTS 和 RTS 相碰撞,这种情况是比较少的,异常情况,不在本课程考虑范围内。
CSMA/CA 过程
- 为避免冲突,802.11 所有站点在完成一个事务后必须等待一段时间才能进行下一个动作,这个时间被称为 IFS,具体取决于帧的类型。
- SIFS(Short interframe space):短帧间间隔 28us,用于本设备接受发送状态转换,不足够源站接受 CTS
- DIFS(Distributed Inter-frame Spacing):分布协调功能帧间间隔 128us(多个节点进行协调)
- 应答 CTS(Clear to Send),等待 SIFS(Short interframe space)后发送数据
- 过程中的时间写入时间数据标记位
- NAV(网络分配向量):网络协调时间,时间长度:NAV 计算方式在后面,NAV 是一开始就进行预估了,别的节点抢到了节点时,我们会减掉别人正常通信的时间,不是一直累积下去的情况。
- 下一次经过争用窗口来抢
- 源站需要收到确认信息 CTS 才能接着发送信息
- 多个源站向目的站发 RTS 给目的站,目的站发现冲突,告诉各自站点,PPT 处理的是 RTS
CSMA/MA 实例
- A 的反应时间少,抢到使用权
- E 加入进来的话也会计算出一个退避时间
实际数据传输率
- 当源节点发送帧时,接收节点将返回肯定确认(ACK)。
- 这可能导致消耗 50% 的可用带宽(bandwidth)。
- 在额定为 11 Mbps 的 802.11b 无线局域网上,这会将实际数据吞吐量降低到最大 5.0 到 5.5Mbps。
- 网络性能也会受到信号强度的影响
- 随着信号变弱,可以调用自适应速率选择(ARS)
- 信号会受到距离影响,越远信号越弱,功率越低,带宽不能稳定到初始带宽
- 传输单元会将数据速率从 11 Mbps 降低到 5.5Mbps,从 5.5 Mbps 降低到 2 Mbps 或 2 Mbps 到 1 Mbps。
WLAN 和 Ethernet 区别
Ethernet | WLAN |
---|---|
信号被传输到连接在线缆上的所有站点上 | 信号只被传输到接近发送站点的站点 |
接受站点检测冲突 | |
只会有一个有效帧在信道上传播 | 会有多个有效帧同时在信道上传播 |
MAC 协议必须尽可能保证只有发送站点接近接收站点 |
Layer 2 Devices 第二层设备
NICs 网卡
- NIC 执行重要的第 2 层数据链路层功能:
- 逻辑链接控制-与计算机上层通信
- 媒体访问控制-提供对共享访问媒体的结构化访问
- 命名-提供唯一的 MAC 地址标识符
- 成帧-封装过程的一部分,打包比特以进行传输。
- 信号-使用内置收发器创建信号并与媒体接口(也有第一层功能,变为 01 信号)
网桥(Bridges)
- 网桥将流量划分为多个部分,并根据 MAC 地址而不是协议对流量进行过滤。
- 网桥可以通过减少较大的冲突域来提高网络性能。
- 大的冲突域变少,碰撞和冲突会变少,但是网桥会成为一个瓶颈。(网桥将数据帧检验存储再转发)
- 导致延迟提高 10-30%
- 在从网络的一个网段到其他网段的流量较低的情况下,网桥最有效,当网段之间的流量变大时,网桥会成为瓶颈(bottleneck),并减慢通信速度。
- 一般是处理两个不同的分段,相对比较简单。
- 是一种储存转发(store-and-forward)设备,因为它必须接受整个帧并在转发前校验 CRC(事实上这必要性不大)
透明网桥原理
- Mac 表放到缓存的位置,刚启动时是空表,之后逐渐学习。
- Mac 地址表是有生命周期的,如果计时超过一个阈值没有刺激刷新 Mac 表,则会刷新表
- 比如笔记本更换接入地址。
- “透明”指局域网中的站点并不知道所发送的帧将经过哪几个网桥,因为网桥对各站来说是看不见的
- 即插即用
- 原理
- 从 A 发出的帧从接口 x 进入了网桥,则从这个接口发出帧就一定能达到 A。网桥每收到一个帧,就记下其源地址和进入网桥的接口,写入转发表。
- 在收到一个新的帧时,在转发表中匹配此帧的目的地址,找到对应的接口并转发。
- 在网桥的转发表中写入的信息除了地址和接口外,还有帧进入网桥的时间,因为
- 拓扑可能经常变化
- 站点也可能会更换适配器(这就改变了站点的地址)
- 站点并非总是处于工作状态
- 把每个帧到达网桥的时间登记下来,就可以在转发表中只保留网络拓扑的最新状态信息,使得网桥中的转发表能反映当前网络的最新拓扑
- 问题:网络上的设备要发送数据但不知道目标地址时。
- 向网络上的所有设备发送广播。因为希望数据帧能够发送到全网,尽可能到达目的地
- 由于网络上的每个设备都必须注意此类广播,因此网桥始终会转发这些广播。
- 广播过多会导致广播风暴,并且可能导致:
- 网络延时(network time-outs)
- 交通减速(traffic slowdowns)
- 低于可接受的性能
源路由网桥
- 发送帧时将详细的路由信息放在帧的首部中,从而使每个经过的网桥都了解帧的路径
- 在令牌环网络中被广泛使用
- 原理:源站以广播方式向目的站发送一个发现帧,每个发现帧都记录所经过的路由。发现帧到达目的站时就沿各自的路由返回源站。源站在得知这些路由后,从所有可能的路由中选择出一个最佳路由。凡从该源站向该目的站发送的帧的首部,都必须携带源站所确定的这一路由信息。
交换机(Switches)
- 执行两个基本操作:
- 切换数据帧:在输入介质(medium)上接收帧,然后将其传输到输出介质
- 维护交换操作:交换器建立和维护交换表并搜索循环。 路由器构建并维护路由表和交换表。(STB 协议避免回路)
- 交换是一项通过减少流量和 alleviates congestion 来缓解以太网 LAN 拥塞(alleviates congestion)的技术.
- 交换机创建专用(dedicated)的网段或点对点连接,并将这些网段连接到交换机内的虚拟网络中。
- 之所以称为虚拟电路,是因为它仅在两个节点需要通信时才存在,并且在交换机内建立。网桥内部有一个高带宽的总线(一般内部带宽是接口带宽的 10 倍)
- 您可以将每个交换机端口视为一个微桥(micro-bridge)。该过程称为微分段(microsegmentation)。
- 每个交换机端口将介质的全部带宽提供给每个主机
- 局域网交换机可减少冲突域的大小(通过,VLAN 划分)
- 但是,连接到交换机的所有主机仍位于同一广播域中。
- 也就是说,通过 LAN 交换机连接的所有其他节点仍将看到来自一个节点的广播。
- 交换机不能划分广播域(端口->所有端口转发)
- 带宽利用率可以接近 100%
- 交换机连接的是一个局域网,而路由器连接的是不同局域网。
交换机划分了冲突域
- 转发的速度明显加快,因为它们在硬件中进行切换,而网桥在软件中进行切换。
- 可以使用交换机连接 10 Mbps 以太网 LAN 和 100 Mbps 以太网 LAN。
- 在交换式以太网实现中可用带宽可以接近 100%。
- 共享以太网网络的容量不足其全部容量的 30% 至 40% 时,其性能最佳。
- 一些交换机支持直通交换,这减少了延迟和延迟,而网桥仅支持存储转发交换(存储转发,存下来检验转发)。
- 直通交换:快速转发,不做校验,只看前 6 字节的 MAC 地址。
- 局域网:网速比较快,传输速率高,网线比较短,可以认为是基本没有错误的,所以可以进行直通转发
路由器划分了冲突域
- 路由器可以创建最高级别的细分:
- 创建较小的碰撞域
- 创建较小的广播域:除非经过编程,否则路由器不会转发广播。
- 路由器通过检查数据包上的目标逻辑地址,然后在其路由表中查找转发指令来完成数据包的转发
- 由于路由器比网桥执行更多的功能,因此它们以更高的延迟率运行。
- 路由器可以用作网关,用于连接不同的网络媒体和不同的 LAN 技术
- 是根据逻辑地址(IP 地址)进行转发,不再是 MAC
- function 比较多,所以延时会比较多。