CSMA/CD 机制 / 工作流程 / 最小帧长 / 传播时延 | 以太网线缆标准

注:本文为 “CSMA/CD 机制” 相关合辑。
图片清晰度受引文原图所限。
略作重排,未整理去重。
如有内容异常,请看原文。


CSMA/CD 机制

一、CSMA/CD 机制概述

CSMA/CD(Carrier Sense Multiple Access with Collision Detection,载波侦听多路访问/冲突检测)是一种用于以太网的介质访问控制协议。其设计目标是解决在共享物理介质上,多个设备如何有效访问介质并避免冲突的问题。根据以太网的最初设计,计算机和其他数字设备通过一条共享的物理线路连接,必须采用半双工方式访问该线路,并通过冲突检测机制避免多个设备同时抢占线路。

二、CSMA/CD 工作流程

CSMA/CD 的工作流程可以从以下三个方面理解:

(一)载波侦听(CS)

在发送数据之前,设备会先侦听线路的状态,确保线路空闲,从而减少冲突的机会。这一过程类似于在讲话前先倾听周围是否有其他人在说话,以避免干扰。

(二)多址访问(MA)

每个站点发送的数据可以同时被多个站点接收。这种多址访问方式使得网络能够支持多个设备同时连接到同一物理介质上,提高了网络的利用率。

(三)冲突检测(CD)

当两个站点同时发送信号时,信号叠加会导致线路上电压的摆动值超过正常值一倍。通过检测这种电压变化,可以判断冲突的产生。设备在发送数据的同时会持续检测线路状态,一旦发现冲突,立即停止发送,并在延迟一个随机时间后重新尝试发送。

CSMA/CD 工作示意图

具体工作流程如下:

  1. 终端设备持续检测共享线路的状态。
  • 若线路空闲,则发送数据。
  • 若线路不空闲,则持续等待。
  1. 若有其他设备同时发送数据,会导致线路上信号不稳定,产生冲突。
  2. 终端设备检测到信号不稳定后,立即停止发送数据。
  3. 终端设备发送一连串干扰脉冲,通知其他设备线路已发生冲突,然后等待一段时间后重新尝试发送数据。干扰脉冲的发送是为了明确告知其他设备冲突的存在,而等待时间是随机的,以避免多个设备同时重新发送而再次引发冲突。

(四)工作流程总结

CSMA/CD 机制的主要原则可以概括为:

  • 先听后发,边听边发:在发送数据前先侦听线路状态,发送过程中持续检测。
  • 冲突停发,随机重发:检测到冲突后立即停止发送,并在随机延迟后重新尝试发送。

三、最小帧长

由于 CSMA/CD 算法的限制,以太网帧的长度不能小于某个最小值。以太网的最小帧长为 64 字节,这一限制是由最大传输距离和冲突检测机制共同决定的。规定最小帧长的目的是为了避免以下情况:站点 A 已经发送完一个数据包的最后一个比特,但该数据包的第一个比特尚未到达距离较远的站点 B,导致 B 站点误认为线路空闲而继续发送数据,从而引发冲突。

Ethernet_II 帧结构

Ethernet_II 帧结构

高层协议必须保证数据域至少包含 46 字节,加上以太网帧头的 14 字节和帧尾的 4 字节校验码,正好满足 64 字节的最小帧长要求。如果实际数据不足 46 字节,高层协议需要填充数据单元以达到最小帧长。

以太网的线缆标准简介

一、以太网线缆标准概述

从以太网诞生至今,已经发展出多种成熟的物理层标准,主要包括以下几种:

  • 10 Base-2
  • 10 Base-5
  • 10 Base-T
  • 10 Base-F
  • 100 Base-T4
  • 100 Base-TX
  • 100 Base-FX
  • 1000 Base-SX
  • 1000 Base-LX
  • 1000 Base-TX
  • 10G Base-T
  • 10G Base-LR
  • 10G Base-SR

在这些标准中,数字 10、100、1000、10G 分别表示运行速率,单位为 Mbit/s 或 Gbit/s;“Base” 表示传输的信号是基带方式。

二、10 兆以太网线缆标准

10 兆以太网线缆标准在 IEEE 802.3 中定义,具体标准如下表所示:

名称电缆类型最长有效距离
10 Base-5粗同轴电缆500 m
10 Base-2细同轴电缆200 m
10 Base-T双绞线100 m
10 Base-F光纤2000 m

同轴电缆的缺陷:同轴电缆上的设备是串联的,单点故障可能导致整个网络崩溃。因此,10 Base-2 和 10 Base-5 这两种同轴电缆的物理标准目前已基本被淘汰。

三、100 兆以太网线缆标准

100 兆以太网又称快速以太网(Fast Ethernet,FE),其在数据链路层与 10M 以太网相同,仅在物理层上提高了传输速率。快速以太网线缆标准如下表所示:

名称线缆类型最长有效距离
100 Base-T4四对三类双绞线100 m
100 Base-TX两对五类双绞线100 m
100 Base-FX单模光纤或多模光纤2000 m

10 Base-T 和 100 Base-TX 都是运行在五类双绞线上的以太网标准,区别在于信号传输速率不同。

10 Base-T 的传输速率为 10M,而 100 Base-TX 的传输速率为 100M。

100 Base-T4 现在已较少使用。

四、千兆以太网线缆标准

千兆以太网是对 IEEE 802.3 以太网标准的扩展,将传输速率从 100 Mbit/s 提高到 1 Gbit/s。

千兆以太网线缆标准如下表所示:

名称线缆类型最长有效距离
1000 Base-LX多模光纤和单模光纤316 m
1000 Base-SX多模光纤316 m
1000 Base-TX超 5 类双绞线或 6 类双绞线100 m

千兆以太网物理层采用 8B10B 编码。在传统以太网传输技术中,数据链路层将 8 位数据提交到物理层后,物理层经过变换后仍以 8 比特的形式发送。而在光纤千兆以太网中,物理层将 8 比特数据映射为 10 比特后发送。

五、万兆以太网线缆标准

万兆以太网目前使用附加标准 IEEE 802.3ae 进行说明,未来将合并进 IEEE 802.3 标准。
万兆以太网线缆标准如下表所示:

名称线缆类型有效传输距离
10G Base-TCAT-6A 或 CAT-7100 m
10G Base-LR单模光纤10 km
10G Base-SR多模光纤几百米

六、100Gbps 以太网线缆标准

新的 40G/100G 以太网标准在 2010 年制定完成,目前使用附加标准 IEEE 802.3ba 进行说明。随着网络技术的发展,100Gbps 以太网在未来会有大规模的应用。


载波监听多路访问 CSMA 以及 CSMA/CD 详解

Wzning0421 于 2018-01-09 22:44:29 发布

CSMA 和 CSMA/CD 协议都是为了控制在一个传输介质上面复用的主机访问信道时避免冲突所指定的协议。

img

一、CSMA

CSMA(Carrier Sense Multiple Access,载波监听多路访问)是在 ALOHA 协议基础上改进并应用于实际 MAC 层的介质访问控制协议。所谓载波监听,即“讲前先听”。网络站点通过监听载波(其他用户的数据)是否存在来决定是否发送数据。

CSMA 的基本思想是:要传输的站点首先侦听介质上是否有其他站点在传输(载波侦听)。如果介质忙,则必须等待;如果不忙,则传输。冲突后需要后退并重传。CSMA 主要有以下三种形式:

  1. 1 - 坚持 CSMA:如果一个主机要发送消息,它先侦听信道。如果信道空闲,则直接传输,无需等待。如果信道忙(有其他站点在传输),则持续侦听,直到信道空闲后立即传输。如果在传输过程中检测到冲突,则停止发送,等待一个随机时间后再次侦听并重复上述过程。
  2. 非坚持 CSMA:如果一个主机要发送消息,它先侦听信道。如果信道空闲,则直接传输,无需等待。如果信道忙(有其他站点在传输),则停止侦听,等待一个随机时间后再进行侦听。
  3. p - 坚持 CSMA:如果一个主机要发送消息,它先侦听信道。如果信道空闲,则以概率 p p p 直接传输,无需等待,以概率 1 − p 1 - p 1p 等待到下一个时间槽再传输。如果信道忙(有其他站点在传输),则等待一个时间槽后再次进行上述操作。

对于 1 - 坚持 CSMA,其主要缺点是冲突的可能性较大,因为所有站点在信道空闲时都会立即传输,从而容易导致冲突。对于非坚持 CSMA,信道利用率较低,因为即使信道空闲,站点也可能因等待而错过传输机会。对于 p - 坚持 CSMA,其前提是存在时间槽。

二、带冲突检测的 CSMA 协议

所谓带冲突检测的 CSMA,即 CSMA/CD。这也是实际中使用的协议。其具体思想是:在发送之前先侦听信道。如果介质空闲,则立即传输。如果介质忙,则持续侦听,直到信道空闲后立即传输。如果检测到冲突,则立即停止传输,等待一个随机时间后再次重复上述步骤。

相比于单纯的 CSMA,CSMA/CD 从“发前先听”转变为“发前先听,边发边听”。这样可以在发送消息时进行检测,如果检测到冲突则进行处理。

冲突检测的具体方法是:消息发送过程中,主机持续侦听信道。如果发现信道上的电平值与自己发送端的电平值不相同,则认为发生了冲突。那么,监听过程应该持续多长时间呢?换句话说,监听多长时间未检测到冲突,就可以认为消息成功发送了呢?假设 A 和 B 是局域网中相距最远的两个节点,从一端到另一端的传播时间记为 τ \tau τ。考虑极端情况:假设 A 发送给 B 的消息在即将到达 B 时,B 突然发送消息导致冲突。那么,这个冲突信号再传递给 A 的过程应持续 2 τ 2\tau 2τ。也就是说,如果在消息最后一比特发送后,监听时间持续了 2 τ 2\tau 2τ 仍未检测到冲突,则认为消息已无冲突地到达。

三、IEEE 802.3 的介质访问协议:1 - 坚持的 CSMA/CD

具体来说,在发送之前先侦听,如果介质空闲,则传输;如果介质忙,则持续侦听,直到介质空闲后立即传输。如果在传输期间检测到冲突,则发送一个 JAM 信号,发送 JAM 信号后,等待一个随机时间,重复上述过程,重新发送该数据。

(一)冲突检测

冲突检测示意图

哪个端检测到冲突,哪个端就发送 JAM 信号,并中断自己的信号发送。这样过一段时间后,其他发送端都能检测到自己的信号被冲突了,于是都停止发送。之后,各端随机后退,等待一段时间后重新启动侦听和发送过程。

(二)随机后退

MBEN(Mean Backoff Exponent Number,平均后退指数)

随机后退并非随机选择一个时间后退,而是通过确定 随机等待窗口 来确定等待时间。对于任何一个帧,假设它已经重发了 i i i 次,那么下一次它重发的平均等待延迟为 MBEN = ( 2 i − 1 ) × 2 τ \text{MBEN} = (2^i - 1) \times 2\tau MBEN=(2i1)×2τ。这就是二进制指数后退算法,其中 τ \tau τ 是局域网最长的延迟。这个时间就是随机等待窗口,从该窗口中随机选择一个时间作为后退时间,等待这个时间过去后再次进行侦听和发送。

img

然而,这个算法存在一个问题:如果网络确实很拥挤,冲突次数很多,那么每次的等待时间将随着指数而急剧增加。因此,改进的算法出现了,即 截断二进制指数后退算法。其重发延迟为 MBEN = ( 2 i − 1 ) × 2 τ \text{MBEN} = (2^i - 1) \times 2\tau MBEN=(2i1)×2τ,但 i = min ⁡ ( 10 , n ) i = \min(10, n) i=min(10,n),其中 n n n 为实际冲突的次数。从这个公式可以看出, i i i 不可能大于 10,这也就给等待时间设置了一个“截断”,使得重发延迟不可能超过 2 10 2^{10} 210。这样做的好处是,即使冲突次数很多,也不会导致无限等待。

上述算法就是 IEEE 802.3 中实际采用的 1 - 坚持 CSMA/CD 算法。


IEEE 802.11 的隐藏节点和 RTS,CTS 机制

Wzning0421 于 2018-01-10 13:46:10 发布

一、无线传输的三个重要范围

IEEE 802.11 协议适用于无线局域网,这与 IEEE 802.3 有本质区别。首先需要了解无线传输相关的三个范围:

无线传输范围示意图

(一)传输范围

传输范围(TX_range)指成功接收帧的通信范围,取决于发送能量和无线电波传输特性。

(二)侦听范围

侦听范围(PCS_range)指可检测到传输的范围,取决于接收器灵敏度和无线电波传输特性。

(三)干扰范围

干扰范围(IF_range)指在此范围内节点发送帧将干扰接收方的接收并导致丢帧。

前两个范围是针对发送主机的,第三个范围是针对接收主机的。这三个范围的存在是因为无线传输更容易衰减,而在有线传输介质中,信号往往能传输得更远。在有线局域网中,任何一个主机发送消息,连接在同一条介质上的所有主机都能收到。然而,无线局域网则不同。因为发送信号在一定范围内会衰减,减弱到无法成功接收,其他主机则认为这不是一个有效信号,无法接收,这就是传输范围的来源。侦听范围比传输范围远,因为只要能侦听到,就属于侦听范围,但可能无法还原信号。干扰范围也是如此,在此范围之外的其他信号发送不会影响接收主机,但在范围内发送的信号则会干扰接收主机,导致丢帧。

(二)隐藏节点和暴露节点问题

1. 隐藏节点

隐藏节点是指由于距离过远,一个站点无法检测到介质竞争对手的存在。考虑以下情况:

隐藏节点示意图

站点 A 向站点 B 传输数据,如果站点 C 想向站点 B 传输数据,它首先会侦听。它发现自己的传输范围内有站点 B,可以发送数据,但它的侦听范围内没有站点 A,也就是说它不知道站点 A 正在向站点 B 发送消息,于是它开始发送数据。这时,问题出现了:站点 B 同时接收到站点 A 和站点 C 发送的数据,导致冲突,传输失败。这就是隐藏节点问题,站点 C 作为隐藏节点能够干扰接收方,但却无法侦听到发送方。

ABC 三个点三个范围的关系如下所示:

img

从隐藏节点中能够看出无线局域网和有线局域网的区别:

无线局域网 802.11 中,没有监听到载波,不代表可以传输

2. 暴露节点

暴露节点是指由于侦听到其他站点的发送而误以为介质忙,从而不能发送,这与隐藏节点正好相反。考虑以下情况:

暴露节点示意图

站点 B 正在向站点 A 发送数据。站点 C 想向站点 D 发送数据,但它发现自己的侦听范围内有站点 B 正在发送数据,于是它误认为自己不能向站点 D 发送数据,因为信道正忙。然而,实际上站点 D 在站点 B 的干扰范围之外,站点 C 向站点 D 发送数据是完全可以的。这就是暴露节点问题。

ABC 三个点三个范围关系如下图所示:

img
从暴露节点中能够看出:侦听到信道忙,不代表不能发送

上面的暴露节点和隐藏节点问题是无线局域网 802.11 特有的,802.3 是没有的。

(三)RTS 和 CTS 机制

为解决隐藏节点问题,IEEE 802.11 采用了 RTS(Request to Send)和 CTS(Clear to Send) 机制。其基本思想是通过短的控制包来预留带宽。具体方法如下:

  1. 发送方通过发送 RTS 请求发送。
  2. 接收方用 CTS 回应发送请求。
  3. CTS 为发送方预留带宽的同时通告所有节点。

例如,发送方 A 想要向接收方 B 发送消息,它首先发送一个 RTS 控制帧。在发送方周围的主机收到这个 RTS 后,就知道周围有人要发送消息,于是它们会保持静默,不发送任何消息,直到收到 B 给 A 发送的消息确认。这个过程结束后,周围的主机才可以发送消息。周围主机的这种静默状态称为 NAV(Network Allocation Vector)状态。

接收方 B 收到 A 发送的 RTS 后,首先回复一个 CTS 确认控制消息。B 周围的主机收到这个 CTS 后,就会设定为 NAV 静默状态,防止干扰到接收方 B,直到收到 B 回给 A 的 ACK(确认消息),确定数据发送完毕后,它们也可以收发消息了。

示例图如下所示:

RTS/CTS 机制示意图

上面是发送方,下面是接收方。第一组节点是发送方周围的节点,它们从收到 RTS 开始静默,直到收到 ACK。第二组节点是接收方周围的节点,它们收到 CTS 后也开始静默,直到收到 ACK。

DIFS(分布式控制功能帧间间隔)和 SIFS(短帧间间隔)是帧间间隔,它们大小不同,都是 IEEE 802.11 所规定的,可以理解为先等待一个 DIFS 或 SIFS 再发送 RTS 或 CTS。具体原因需要参考 CSMA/CA 协议。

总之,接收方发送的 CTS 和发送方的 RTS 能有效避免周围节点发送消息,从而避免隐藏节点造成的冲突,这也是 RTS 和 CTS 机制的作用。


IEEE 802.11 的 CSMA/CA 机制

Wzning0421 于 2018-01-10 15:09:10 发布

一、CSMA/CA 机制概述

CSMA/CA(Carrier Sense Multiple Access with Collision Avoidance,载波侦听多路访问/冲突避免)是 IEEE 802.11 协议中用于无线局域网避免冲突的重要机制。它主要分为两个部分:载波侦听(CSMA)和冲突避免(CA)。

(一)载波侦听(CSMA)

载波侦听是指在发送之前先进行侦听。

如果介质为空,则节点传输帧;
如果介质忙,则等待当前传输结束后再进行传输。

(二)冲突避免(CA)

冲突避免的主要目的是尽量避免无线传输冲突。

协议中主要包括两个部分:随机后退算法优先级确认协议

(三)CSMA/CA 工作流程

当一个主机要发送消息之前,首先要进行侦听信道。不论信道是否忙,发送端都必须等待一个帧间间隔后才能开始自己的发送。具体流程如下:

  1. 当信道为空时,首先等待一个帧间间隔,然后再次侦听信道。如果信道仍然为空,则开始随机后退过程。随机后退过程结束后,再次侦听。如果信道仍然为空,则开始发送。

  2. 在上述等待过程中,如果任何时候信道变忙,则终止上述等待过程,并等待信道变为空,然后重复上述过程(从等待一个帧间间隔开始)。

流程图如下所示:

CSMA/CA 流程图

从图中可以看到,从步骤 ① 到步骤 ② 之间,似乎在等待一个帧间间隔后就直接传输了,没有随机后退过程,这与前面的描述似乎不一致。但实际上,这仅是一种特殊情况:当信道很久没有被访问过(通常是主机的第一次侦听)时,等待一个帧间间隔后就认为不会发生信道访问冲突了,因此可以直接发送。但在一般情况下,信道经常被访问时,仍然需要在等待一个帧间间隔后进行随机后退,两者并不矛盾。

(四)帧间间隔和随机后退过程

1. 帧间间隔(Inter Frame Gap)

帧间间隔的分级设计原理

帧间间隔用于定义不同类型帧的优先级,避免不同帧同时发送引发信道使用冲突,分为三类

SIFS(短帧间间隔):优先级最高,用于 ACK 帧(传输确认)与 CTS 帧(信道预留确认);

PIFS(点协调帧间间隔):优先级中等,用于 PCF(点协调功能)操作;

DIFS(分布式协调帧间间隔):优先级最低,用于普通数据帧传输。

img

优先级机制的作用

在CSMA/CA机制中,当设备监测到信道忙时,首先需等待一个帧间间隔(SIFS、PIFS或DIFS,具体取决于待发送消息的类型)。随后,设备进入随机退避过程(Contention Window),若信道仍处于空闲状态,则可发送数据帧。

数据帧属于普通传输类型,紧急控制帧(如 ACK、CTS)承载着传输确认信息,可通过更短的帧间间隔优先发送,避免被普通数据帧阻塞。

例如,当 主机 A 准备发送数据帧,同时 主机 B 需要向 主机 C 发送紧急的 CTS 帧时,两者均会在信道空闲时等待对应的帧间隔。由于 B 的等待时间(SIFS)短于 A 的等待时间(DIFS),B 在随机后退后的期望等待时间更短,因此更可能优先发送。此时 A 仍在后退过程中,若检测到信道忙(B 正在向 C 发送 CTS),则需重新等待。由此可见,通过帧间隔的优先级设计,能确保更重要的消息获得更高的传输机会。

2. 随机后退过程(Contention Window)

CSMA/CD 协议的随机后退过程并非简单地随机选择一个时间后退,而是采用二进制指数算法进行后退。具体机制如下:

  1. 冲突窗口计算

    • 假设设备已经发生冲突 i i i 次,则冲突窗口 C w C_w Cw 设置为 2 i − 1 2^i - 1 2i1
    • 后退时间 Contention Window = randomT × 单位时间 \text{Contention Window} = \text{randomT} \times \text{单位时间} Contention Window=randomT×单位时间,其中 randomT \text{randomT} randomT 是从区间 ( 0 , C w ) (0, C_w) (0,Cw) 之间随机选择的整数。
  2. 后退时间特性

    • 随着冲突次数 i i i 的增加,每次随机后退的期望时间呈指数增长。
    • 当冲突次数超过 10 次时,系统将 i i i 恒定为 10,以避免无限后退。
    • 最大后退时间为 ( 2 10 − 1 ) × 单位时间 (2^{10} - 1) \times \text{单位时间} (2101)×单位时间
  3. 冲突窗口调整机制

    • 传输成功:当接收方成功接收到发送方的 CTS 时, C w C_w Cw 减半。
    • 传输冲突:发生冲突时, C w C_w Cw 按照上述二进制指数算法加倍。

注:CSMA/CA 协议在冲突窗口调整机制上与 CSMA/CD 协议具有相同的设计原则。

(五)无线局域网采用 CSMA/CA 而非 CSMA/CD 的原因

要理解无线局域网(WLAN)选择 CSMA/CA(载波监听多路访问/冲突避免)而非 CSMA/CD(载波监听多路访问/冲突检测)的原因,需先明确两类协议的冲突处理逻辑,再结合有线与无线传输环境的本质差异,梳理其技术选择的必然性。

1. 机制差异:从“检测”到“避免”的逻辑分野

CSMA/CD 与 CSMA/CA 的区别在于冲突处理策略:前者依赖“冲突后检测与恢复”,后者则基于“冲突前预防+事后验证”,具体差异体现在两大机制上。

  1. 帧间间隔(IFS):前置规避冲突的关键设计
    无线传输中,冲突不仅难以实时感知,恢复成本(如重传延迟、带宽浪费)远高于有线网络。为此,CSMA/CA 引入帧间间隔(Inter-Frame Spacing, IFS)机制,要求设备在传输数据前必须等待指定的空闲时间。这一设计为其他设备预留了信号感知与响应窗口,从传输起点降低冲突概率,体现“预防优先”原则,与 CSMA/CD“先传后检”的逻辑形成根本区别。

  2. ACK 确认机制:后置验证传输结果的保障
    CSMA/CD 无专门的传输结果验证机制,仅通过检测信号电平判断冲突;而 ACK 确认机制是 CSMA/CA 的特性:接收设备成功接收并校验数据帧后,会立即返回 ACK(确认字符)响应帧;发送方若超时未收到 ACK,则判定传输失败(大概率因冲突或信号衰减),随后触发重传。该机制将“冲突判断”转化为“传输结果验证”,有效解决了无线环境中冲突直接检测困难的痛点。

2. 无线环境的技术约束:CSMA/CD 的适配瓶颈

无线网络的物理特性使 CSMA/CD 的冲突检测机制难以落地,主要面临三大挑战:

  1. 信号感知困难:无线信号存在衰减、多径效应,且存在隐藏终端(如 A、C 可与 B 通信但互不可见)、暴露终端问题,导致设备无法准确判断信道是否被占用,冲突检测可靠性极低。
  2. 半双工特性限制:无线设备发送数据时无法同时接收信号,而 CSMA/CD 需在传输过程中实时监听信道以检测冲突,两者存在根本矛盾。
  3. 传输错误率高:无线传输受电磁干扰影响,错误率远高于有线传输,单纯依赖冲突检测无法区分“冲突”与“传输错误”,导致链路恢复逻辑混乱。
3. CSMA/CA 的适配性优化:针对无线场景的定制设计

针对上述约束,CSMA/CA 通过三重机制优化无线传输可靠性:

  1. 主动避免优先:以 IFS 机制为,结合载波监听实现“空闲再发送”,从源头减少冲突,替代 CSMA/CD“冲突后处理”的被动逻辑。
  2. 高效冲突恢复:采用二进制指数退避算法,在传输失败时动态调整重传等待时间,避免反复冲突导致的链路阻塞。
  3. 结果闭环验证:通过 ACK 确认机制形成“发送-校验-反馈”闭环,弥补无线环境中冲突检测能力的不足。
4. 总结

CSMA/CA 是 CSMA/CD 在无线环境下的演进与优化,其逻辑从“冲突检测”转向“冲突避免与结果验证”,精准适配了无线传输中信号感知难、冲突恢复成本高、错误率高的特性。而依赖“实时冲突检测与中断”的 CSMA/CD,因无法突破无线介质的物理约束,难以保障传输可靠性,因此 CSMA/CA 成为无线局域网的主流介质访问控制协议。


CSMA/CD 协议详解

硕子鸽于 2020 - 04 - 20 18:14:08 发布

一、以太网的特点

最初的以太网将众多计算机连接至一根总线上。当时认为这种连接方式既简便又可靠,原因在于总线上不存在有源器件。
img
图 1 以太网连接示意图

(一)广播方式

以太网采用广播方式传输数据。具体而言:

  1. 总线上每台工作的计算机均可检测到节点 B 发送的数据信号。
  2. 由于仅计算机 D 的地址与数据帧首部写入的地址一致,因此只有 D 接收该数据帧。
  3. 基于具有广播特性的总线实现了一对一通信。由此可见,以太网实现的是基于广播的一对一通信。

(二)两个重要措施

此外,为便于通信,以太网采取了两项重要措施:

  1. 采用较为灵活的无连接工作方式。
  2. 以太网发送的数据均采用曼彻斯特编码。

以下分别阐述这两点的具体体现。

1. 采用无连接工作方式

无需预先建立连接即可直接发送数据。以太网提供的是不可靠交付服务,即尽力而为交付。当目的站接收到存在差错的数据帧时,将丢弃该帧,且不进行其他额外操作。尽管表面上看似未采取任何行动,但实际上当出现问题时,它会向高层报告,示意所接收的数据帧存在错误,请求重新发送。随后,高层会向以太网重新发送一份完整的数据帧。

2. 以太网发送的数据采用曼彻斯特编码

此处给出一张图片,用于快速回顾其原理。

曼彻斯特编码示意图
图 2 曼彻斯特编码示意图

曼彻斯特编码. 的缺点在于,其占用的频带宽度相较于原始基带信号增加了一倍。

从图中可以看出,原本表示“1”的位置对应了两个电波信号。

二、 CSMA/CD 协议

协议概述

CSMA/CD 的全称为 “载波监听多点接入 / 碰撞检测”( Carrier Sense Multiple Access with Collision Detection )。以下对该协议进行逐项说明:

  1. 载波监听 :在发送数据之前,站点必须检测总线上是否已有其他站点正在发送数据。若检测到占用,则暂缓发送,以防止冲突。
  2. 多点接入 :多台计算机通过同一总线实现并行接入。
  3. 碰撞检测 :在发送过程中,站点实时监测信道电压,以判断是否发生碰撞。

工作原理

为阐明该原理,可采用以下类比:在无主持人的讨论会中,任意参与者均可发言。若已有发言者,其他参与者必须等待其结束后方可发言;若出现多位参与者同时发言,则所有发言者须立即停止,待信道空闲后重新发言。该过程对应 CSMA/CD 中的载波监听、冲突检测与退避机制。

当站点在发送期间检测到冲突后,立即中止发送,并在随机退避时间后重新尝试。

交通场景类比

考虑如下假设情形:

  • 行驶路面为圆形;
  • 车辆一旦启动即不可停止;
  • 驾驶员仅能观察前方。

在该情形下,两车必然相撞。类比说明如下:

  1. 圆形道路上可容纳多辆车辆,等同于网络的 “多点接入”。
  2. 驾驶员仅能观察前方,等同于网络的 “载波监听”,但在本例中未能及时感知对向车辆。
  3. 车辆启动后必须持续行驶,等同于数据帧的连续发送。
  4. 相撞后,驾驶员发出求救信号,等同于网络的 “碰撞检测”。

车辆行驶碰撞示意图

二、CSMA/CD 协议

碰撞后的处理

在实际交通系统中,发生碰撞事故后,车辆应立即停靠至路边,以避免对其他车辆造成阻塞;在网络通信中,检测到碰撞的站点应立即终止发送,并在随机退避时间后重新尝试传输,从而避免网络资源的浪费。

碰撞过程模拟

以下为碰撞发生过程的详细说明:

碰撞发生过程示意图 1

在局域网环境中,总线上的单程端到端传播时延记为 τ \tau τ。碰撞过程的关键时间点如下:

  1. t = 0 t = 0 t=0 时,A 站开始发送数据,此时 B 站检测到信道空闲。
  2. t = τ − δ t = \tau - \delta t=τδ 时(其中 τ > δ > 0 \tau > \delta > 0 τ>δ>0),A 站发送的数据尚未到达 B 站,B 站检测到信道空闲,因此开始发送数据。
  3. 经过 δ 2 \frac{\delta}{2} 2δ 时间后,即在 t = τ − δ 2 t = \tau - \frac{\delta}{2} t=τ2δ 时,A 站和 B 站发送的数据发生碰撞,但此时两站均未察觉碰撞发生。
  4. t = τ t = \tau t=τ 时,B 站检测到发生碰撞,随即停止发送数据。
  5. t = 2 τ − δ t = 2\tau - \delta t=2τδ 时,A 站也检测到发生碰撞,进而停止发送数据。
  6. A 站和 B 站发送数据均失败,二者均需推迟一段时间后重新发送。

碰撞发生过程示意图 2

最先发送数据帧的 A 站,在发送数据帧后至多经过 2 τ 2\tau 2τ 时间,便可得知所发送的数据帧是否遭遇碰撞。当 δ → 0 \delta \to 0 δ0 时,这个时间即为以太网的端到端往返时间 2 τ 2\tau 2τ,该时间被称为争用期(contention period),是一个极为重要的参数。

争用期分析

争用期也被称为碰撞窗口(collision window)。其含义在于:一个站点在发送完数据后,只有通过争用期的考验,即在争用期这段时间内未检测到碰撞,才能确定此次发送不会发生碰撞。此时,该数据帧便可顺利完整发送完毕。

这一机制类似于铁路运输系统:若火车头未与对向来车发生碰撞,那么无论火车车身多长,都能安全通过,因为对向车辆会持续进行信道检测,检测到有火车驶来便不会发车。

接下来介绍一个重要算法。

三、二进制指数类型退避算法

回顾前文,当发生碰撞后需等待一段时间再进行发送,那么该等待多长时间呢?

此处采用 二进制指数类型退避算法(truncated binary exponential backoff)。该算法原理如下:

  1. 基本退避时间设定为争用期 2 τ 2\tau 2τ
  2. 从整数集合 [ 0 , 1 , … , ( 2 k − 1 ) ] [0, 1, \ldots, (2^k - 1)] [0,1,,(2k1)] 中随机选取一个数,记为 r r r。重传所需的时延即为 r r r 倍的基本退避时间。
  3. 参数 k k k 按以下公式计算: k = min ⁡ ( 重传次数 , 10 ) k = \min(\text{重传次数}, 10) k=min(重传次数,10)
  4. k < 10 k < 10 k<10 时,参数 k k k 等于重传次数。
  5. 若重传达到 16 次仍未成功,则丢弃该帧,并向高层报告。

争用期的长度

对于 10 Mbit/s 以太网,争用期长度取 51.2   μ s 51.2 \ \mu s 51.2 μs。在此争用期内,10 Mbit/s 以太网可发送 512 512 512 bit 数据,即 64 64 64 字节。这意味着以太网在发送数据时,若前 64 64 64 字节未发生冲突,则后续数据不会发生冲突。由于一旦检测到冲突便立即中止发送,此时已发送的数据必然小于 64 64 64 字节。以太网规定最短有效帧长为 64 64 64 字节,所以凡是长度小于 64 64 64 字节的帧均为因冲突而异常中止的无效帧。

四、总结

总结 CSMA/CD 协议的要点如下:

  1. 准备发送:在发送之前,必须先检测信道。
  2. 检测信道:若检测到信道忙,则持续检测,直至信道转为空闲。若检测到信道空闲,且在 96 96 96 比特时间内信道保持空闲(以确保帧间最小间隔),则发送该帧。
  3. 检查碰撞:在发送过程中持续检测信道,即网络适配器需边发送边监听。存在以下两种情况:
  • 发送成功:在争用期内始终未检测到碰撞,该帧必定能够成功发送。发送完毕后,不进行其他操作,随后返回步骤 1。
  • 发送失败:在争用期内检测到碰撞,此时立即停止发送数据,并按规定发送人为干扰信号。适配器随后执行指数退避算法,等待 r r r 512 512 512 比特时间后,返回步骤 2,继续检测信道。若重传 16 次仍未成功,则停止重传并向上报错。

CSMA/CD 和 CSMA/CA 的区别

dulu~dulu 已于 2023-12-27 22:25:55 修改

一、CSMA/CD(载波监听多点接入/碰撞检测)

(一)使用 CSMA/CD 的原因

在总线上只要有数据传输,传输资源即被占用。传统的总线型以太网采用半双工通信方式并使用最简易的随机接入机制。当多台计算机以多点接入的方式连接到同一根总线时,必然会出现冲突(碰撞)。

CSMA(Carrier Sense Multiple Access)机制中,由于信道传播时延的存在,即便两个站点在未检测到载波信号的情况下同时发送帧,也仍可能产生冲突。CSMA 本身不具备冲突检测功能,冲突一旦发生,发送站仍会继续发送已被破坏的帧,导致有效传输率下降。

为克服上述缺陷,提出了一种改进方案:在帧的发送过程中,发送站点继续监听媒体,以判断是否出现冲突。若检测到信道上出现的信号幅度超过本站点自身发送的载波幅度,即可确认冲突的存在。此时,发送站点立即停止发送,并向总线发送一串阻塞(jam)信号,以通知其他站点本次冲突。通过及时终止受损帧的传输,避免了通道容量的无谓浪费,从而提升总线的利用率。

该改进方案即 载波监听多路访问/冲突检测协议(Carrier Sense Multiple Access with Collision Detection,CSMA/CD),已在局域网(LAN)中得到广泛应用。

(二)适用场景

CSMA/CD 主要适用于 有线局域网(如以太网)环境。其特点如下:

  1. 竞争式访问:在多个站点争夺传输机会的网络中,CSMA/CD 能有效检测并处理冲突。
  2. 非实时数据传输:适合传输对时延要求不高的业务,如文件传输、电子邮件等。
  3. 负载对效率的影响
    • 低负载时,冲突概率低,发送速度快,通信效率高。
    • 高负载时,冲突频繁,重传次数增多,导致通信效率迅速下降。

:由于 CSMA/CD 在突发性业务(burst traffic)下冲突概率大、延迟不可预测,故不适合此类业务;而 帧中继(Frame Relay)等技术更适合处理突发性业务。

(三)不适用场景

千兆以太网(Gigabit Ethernet) 中,若采用 半双工(Half-Duplex) 传输方式,仍需依赖 CSMA/CD 协议 解决信道争用问题。然而,千兆以太网的 全双工(Full-Duplex) 模式(如交换机间或交换机与工作站间的点对点连接)无需 CSMA/CD,因其支持 双向同时传输,无共享信道争用问题。

此外,2002年6月发布的 万兆以太网(10 Gigabit Ethernet, 10GE) 标准(IEEE 802.3ae)仅支持全双工模式,不支持单工或半双工,因此 完全废弃 CSMA/CD 机制

千兆以太网传输模式对比

注:全双工模式下,通信双方可同时发送和接收数据,无需争用控制。

(四)多点接入、载波监听与碰撞检测

1. 多点接入(Multi-Access)
  • 适用于 总线型网络,多台计算机通过共享总线连接,形成 多点接入(Multi-Point Access) 结构。
2. 载波监听(Carrier Sense)
  • 发送前后,各主机需持续监测信道状态,判断是否有其他设备正在传输数据。
3. 碰撞检测(Collision Detection)
  • 边发送边监听:适配器在发送数据的同时,实时检测信道电压变化。

    • 无电压变化:信道空闲,可继续发送。
    • 检测到极值电压:表明至少两台主机同时发送,导致 电磁波干扰(碰撞),适配器立即终止发送。

碰撞分析

假设局域网两端站点 AB 间距 1 km,采用同轴电缆连接。电磁波在电缆中的传播时延约为 5 μs/km,因此:

  • A 发送数据至 B 的传播时延为 5 μs × 1 km = 5 μs
  • B 在 A 的数据到达前发送数据,则必然在某时刻与 A 的数据帧发生碰撞,导致两帧均失效。

在局域网中,通常以 单程端到端传播时延(t) 表示最大传播延迟。发送站需尽早检测碰撞,因此 最长检测时间为 2t(即 往返传播时延)。由于网络中任意两站的传播时延差异,需按 最坏情况(最大距离) 设计系统。

总线端到端传播时延示意图

注:CSMA/CD 仅支持半双工通信(双向交替通信),无法实现全双工(同时发送与接收)。

(五)争用期与传播时延

1. 争用期(Contention Period)

img

  • 定义:发送站在完成数据发送后,需等待 2t(往返传播时延) 的时间,若未检测到碰撞,则确认本次传输无冲突。
  • 别称:碰撞窗口(Collision Window),因其决定了碰撞检测的有效时间范围。
2. 传播时延(Propagation Delay)
  • 定义:数据从发送方到达接收方所需的时间。
  • 关键约束:
    • 传输时延(Transmission Delay) 过短,可能无法及时检测碰撞,导致数据丢失。
    • 为确保碰撞检测有效,需设置 传输时延 ≥ 2t(即传播时延的两倍)。

由此引出了 CSMA/CD 总线网络中最短帧长的计算关系式:

最短帧长计算关系式

说明
  • CSMA/CD 的局限性:
    • 仅适用于 半双工 环境,全双工模式(如交换式以太网)无需该协议。
    • 高负载下,碰撞概率增大,效率显著下降。
  • 现代以太网演进:
    • 千兆/万兆以太网逐步废弃 CSMA/CD,转向 交换式全双工 架构,以提升性能与可靠性。

(六)例题

在以太网中出于对(64)的考虑,需设置数据帧的最小帧。

(64) A. 重传策略 B. 故障检测 C. 冲突检测 D. 提高速率

【答案】C

【解析】

为了确保发送数据站点在传输时能检测到可能存在的冲突,数据帧的传输时延要不小于两倍的传播时延。

以太网最小帧长(64 字节)的设计逻辑

以太网设置 64 字节最小帧长的主要目的是确保 CSMA/CD 协议的冲突检测有效性

1. 冲突检测的要求

CSMA/CD 协议要求设备在发送数据时持续监听信道,若发生冲突(多设备同时发送),必须在传输完整个帧之前检测到冲突——否则,即使冲突发生,发送方也会因已完成传输而无法感知,导致数据丢失且无法触发重传。

2. 时延关系的关键条件

实现上述要求要满足传输时延 ≥ 2 倍传播时延

  • 传输时延( T t T_t Tt:发送整个帧的时间,计算公式为:
    T t = 帧长(位) 带宽(bps) T_t = \frac{\text{帧长(位)}}{\text{带宽(bps)}} Tt=带宽(bps帧长(位)
    例如,64 字节(512 位)的帧在 10 Mbps 带宽下, T t = 512 / 1 0 7 = 51.2   μ s T_t = 512 / 10^7 = 51.2 \ \mu\text{s} Tt=512/107=51.2 μs

  • 传播时延( T p T_p Tp:信号从发送方到最远接收方再返回的双向时间,取决于网络直径(早期以太网最大 2500 米)和信号传播速度(约光速的 70%),此时双向 T p ≈ 50   μ s T_p \approx 50 \ \mu\text{s} Tp50 μs

  • 上述数值满足“ 51.2   μ s ≥ 50   μ s 51.2 \ \mu\text{s} \geq 50 \ \mu\text{s} 51.2 μs50 μs”,确保冲突能被及时检测。

3. 64 字节的计算依据

早期 10 Mbps 以太网基于 2500 米最大网络直径计算:64 字节(512 位)的传输时延刚好覆盖双向传播时延( 50 μ s 50 \mu\text{s} 50μs)。若帧长小于 64 字节,传输时延可能小于 2 倍传播时延,导致冲突无法被检测。

4. 现代以太网的保留意义

高速以太网(100 Mbps、1 Gbps 等)虽因全双工和交换式架构减少了冲突检测需求,但 64 字节最小帧长仍被保留,以兼容半双工设备和旧协议。全双工模式中冲突检测虽被禁用,但最小帧长的兼容性作用仍不可或缺。

综上,64 字节最小帧长是为保障冲突检测有效性,其设计基于“传输时延 ≥ 2 倍传播时延”的必要条件,并在现代网络中保留以维持兼容性。

(七)CSMA/CD 中避免冲突碰撞的两种方式

  1. 截断二进制指数退避算法
  2. 监听算法
1. 截断二进制指数退避算法

以太网采用 截断二进制指数退避算法(truncated binary exponential backoff)确定碰撞后的重传时机。其逻辑是:发生碰撞的设备停止发送数据后,不立即重传,而是随机退避一段时间——这可避免多个冲突设备在信道空闲时同时重传导致的再次碰撞。生成最小退避时间的设备将优先获得发送权,其余设备监听到信道忙则推迟发送。

算法的具体规则
  1. 基本退避时间与争用期
    基本退避时间为争用期 2 τ 2\tau 2τ,时长为 51.2   μ s 51.2 \ \mu\text{s} 51.2 μs。对于 10 Mbit/s 以太网,争用期内可传输 512 512 512 比特(即 64 64 64 字节),因此争用期也称为 512 512 512 比特时间(1 比特时间指发送 1 比特所需的时间,与数据率直接相关)。

  2. 退避时间计算
    从离散整数集合 [ 0 , 1 , … , ( 2 k − 1 ) ] [0, 1, \ldots, (2^k - 1)] [0,1,,(2k1)] 中随机选取一个数 r r r,重传推迟时间为 r r r 倍的争用期。参数 k k k 的计算公式为:
    k = min ⁡ ( 重传次数 , 10 ) k = \min(\text{重传次数}, 10) k=min(重传次数,10)
    即重传次数不超过 10 时, k k k 等于重传次数;超过 10 时, k k k 固定为 10。

  3. 重传上限
    若重传达 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 0 0 2 τ 2\tau 2τ 4 τ 4\tau 4τ 6 τ 6\tau 6τ
  • 依此类推,每次重传的可选退避时间范围翻倍,选中某一数值的概率为 1 2 k \frac{1}{2^k} 2k1

这种设计使重传平均推迟时间随重传次数动态增加,降低连续碰撞的概率。

2. 监听算法

以太网通过 监听算法 减少冲突,核心措施包括:

  1. 最短帧长限制
    规定最短帧长为 64 64 64 字节( 512 512 512 比特),若数据量不足需填充补足。这确保:

    • 若发送前 64 64 64 字节未发生碰撞,则后续传输一定无冲突;
    • 若发生碰撞,必在发送前 64 64 64 字节内,此时设备会立即中止发送,因此长度小于 64 64 64 字节的帧均为冲突导致的无效帧,接收方会直接丢弃。
  2. 端到端时延限制
    最大端到端时延需小于争用期的一半(即 25.6   μ s 25.6 \ \mu\text{s} 25.6 μs),对应约 5 5 5 km 距离(信号传播 1 km 约需 5   μ s 5 \ \mu\text{s} 5 μs)。实际网络覆盖范围远小于此值,以确保碰撞能被及时检测。

  3. 强化碰撞信号
    设备检测到碰撞后,会持续发送干扰信号,确保所有设备均能感知冲突,避免因信号衰减导致的误判。

通过退避算法与监听算法的结合,CSMA/CD 协议可有效减少冲突,提升以太网传输效率。

以太网的争用期确定为 51.2   μ s 51.2 \ \mu\text{s} 51.2 μs,不仅考虑到以太网的端到端时延,而且还包括其他的许多因素,如存在的转发器所增加的时延,以及下面要讲到的强化碰撞的干扰信号的持续时间等。

(八)强化碰撞的概念

当发送数据的站点检测到碰撞发生时,除立即停止数据传输外,还需继续发送 32 32 32 比特或 48 48 48 比特的 人为干扰信号(jamming signal),使网络中所有设备均能感知碰撞发生(如图所示)。对于 10 Mbit/s 以太网,发送 32 32 32 比特或 48 48 48 比特的时间分别为 3.2   μ s 3.2 \ \mu\text{s} 3.2 μs 4.8   μ s 4.8 \ \mu\text{s} 4.8 μs

强化碰撞示意图

如图所示,站点 A 从开始发送数据到检测到碰撞并停止发送的时间间隔为 T B T_B TB;站点 A 检测到碰撞后,发送强化碰撞干扰信号的持续时间为 T j T_j Tj。需说明的是,站点 B 检测到碰撞后同样会发送人为干扰信号,为简化图示未单独标出。碰撞导致站点 A 浪费的时间为 T B + T j T_B + T_j TB+Tj,而整个信道被占用的时间还需叠加单程端到端的传播时延 t t t,因此总线被占用的总时长为 T B + T j + t T_B + T_j + t TB+Tj+t

此外,以太网规定帧间最小间隔为 9.6   μ s 9.6 \ \mu\text{s} 9.6 μs(相当于 96 96 96 比特时间)。这一设计的目的是使刚接收完数据帧的站点有足够时间清理接收缓存,为接收下一帧做好准备。

(九)CSMA/CD 协议定义的监听算法

1. 非坚持型监听算法

当站点准备好数据帧,发送前需先监听信道:

  1. 若信道空闲,立即发送;否则执行步骤 2。
  2. 若信道忙,后退一段随机时间后,重复步骤 1。

该算法通过随机时延减少冲突概率,但可能因后退导致信道闲置,降低信道利用率并增加发送时延。

2. 1 - 坚持型监听算法

当站点准备好数据帧,发送前需先监听信道:

  1. 若信道空闲,立即发送;否则执行步骤 2。
  2. 若信道忙,持续监听,直至信道空闲后立即发送。

与非坚持型算法特点相反:有利于抢占信道,减少信道空闲时间,但多个站点同时监听时易发生冲突。

3. P - 坚持型监听算法

该算法综合前两种算法的优势,流程更复杂:

  1. 若信道空闲,以概率 P P P 发送数据,以概率 ( 1 − P ) (1-P) (1P) 延迟一个时间单位(该时间单位为网络传输时延)。
  2. 若信道忙,继续监听直至信道空闲,转至步骤 1。
  3. 若选择延迟一个时间单位,则重复步骤 1。
冲突检测的补充机制

载波监听仅能降低冲突概率,无法完全避免冲突。为提升带宽利用率,发送站需采用 “边发边听” 的冲突检测方法:

  1. 发送期间同时接收数据,并与本站存储的数据对比(或通过其他方式检测冲突)。
  2. 若对比一致,表明无冲突,继续发送。
  3. 若对比不一致,表明发生冲突,立即停止发送,并发送简短的阻塞信号(Jamming),使所有站点停止发送。
  4. 发送阻塞信号后,等待一段随机时间,重新监听并尝试发送。
P - 坚持型算法中概率 P P P 的取值意义

概率 P P P 的选取需确保重负载下网络有效运行:

  • n n n 个站点等待发送,信道空闲时可能有 n P nP nP 个站点同时发送。若 n P > 1 nP > 1 nP>1,必然导致冲突。
  • P P P 过小(如 P = 0.01 P=0.01 P=0.01),站点发送间隔过长(如 100 个时间单位仅发送 1 次),会造成信道空闲浪费。
监听算法信道空闲时信道忙时特点
非坚持型监听算法立即发送等待随机时间后重新监听减少冲突,但信道利用率较低
1 - 坚持型监听算法立即发送持续监听直至空闲提高信道利用率,但冲突概率较高
P - 坚持型监听算法以概率 P P P 发送, ( 1 − P ) (1-P) (1P) 延迟持续监听直至空闲平衡冲突与利用率,但实现较复杂

二、与 CSMA/CD 相关知识点补充

(一)10BASE-T 与 100BASE-T

10BASE-T 与 100BASE-T 采用双绞线进行传输,适合短距离传输(100 m)。它们采用相同的 IEEE 802.3 逻辑链路控制协议 LLC,介质访问控制层 MAC 采用相同的访问与碰撞检测机制 CSMA/CD,帧结构相同,最小帧长 64 64 64 个字节,最大帧长 1518 1518 1518 个字节,帧间最小间距 12 12 12 字节的长度要求。两者除了传输速率不同外,最主要的区别是网络直径不同。

100BASE-T 最大网络直径为 205 205 205 m,大约相当于 10 Mbps 以太网的 1 / 10 1/10 1/10。这是因为在网络介质本身的传播速率不变和碰撞检测机制相同的情况下,为了保证仍然能够检测到与位于网络最远距离处的其他工作站之间可能发生的信号碰撞,当一台工作站的传送速率加快 10 10 10 倍的时候,必须要求网络的最大距离缩小 10 10 10 倍。

在 10Base5 的全配置的情况下是可以允许通过 4 个中继器,那么冲突的时间槽就相当于一个数据包在网络中来回传播一次的时间加上各种延时。由于电波在铜缆中的传播速度是光波在真空速度的 0.7 0.7 0.7 倍左右,所以计算如下:

10Base5 传播时间计算

(二)例题

例题 1

以太网中出现冲突后,发送方什么时候可以再次尝试发送?(62)。

(62) A. 再次收到目标站的发送请求后
B. 在 JAM 信号停止并等待一段固定时间后
C. 在 JAM 信号停止并等待一段随机时间后
D. 当 JAM 信号指示冲突已经被清除后

【答案】C

【解析】

如果在发送数据的过程中检测出冲突,为了解决信道争用冲突,发送节点要进入停止发送数据、随机延迟后重发的流程。

例题 2

在以太网中发生冲突时采用退避机制,(34)优先传输数据。

(34) A. 冲突次数最少的设备
B. 冲突中 IP 地址最小的设备
C. 冲突域中重传计时器首先过期的设备
D. 同时开始传输的设备

【答案】C

【解析】

以太网采用截断二进制指数退避算法来解决碰撞问题。截断二进制算法并不复杂,这种算法让发生碰撞的站在停止发送数据后,不是等待信道变为空闲后就立即再发送数据,而是推迟一个随机的时间。这样做是为了使的重传时再次发生冲突的概念减少。


IEEE 802.11 的 CSMA/CA 机制

Wzning0421 于 2018-01-10 15:09:10 发布

一、为什么使用 CSMA/CA

IEEE 802.11 采用类似于 802.3 CSMA/CD 协议的载波侦听多路访问/冲突避免协议,之所以不采用 CSMA/CD 协议的原因有两点:

  1. 无线网络中,接收信号的强度往往小于发送信号的强度,因此要实现碰撞的花费过大。
  2. 隐蔽站(隐蔽终端问题),并非所有站都能听到对方。暴露站的问题是检测信道忙碌但未必影响数据发送。也就是说自己的信号会把其他信号给覆盖掉,简单来说。

在无线网中进行冲突检测有时是困难的,例如两个站由于距离过大或者中间障碍物的分隔从而检测不到冲突,但是位于它们之间的第三个站可能会检测到冲突,这就是所谓隐蔽终端问题。采用冲突避免的办法可以解决隐蔽终端的问题。

隐蔽终端和暴露终端问题示意图

(一)IEEE 802.11 MAC 子层定义的竞争性访问控制协议是 CSMA/CA

(二)802.11 定义了一个帧间隔(Inter Frame Spacing, IFS) 时间

另外还有一个后退计数器,它的初始值是随机设置的,递减计数直到 0。基本的操作过程是:

  1. 如果一个站有数据要发送并且监听到信道忙,则产生一个随机数设置自己的后退计数器并坚持监听。
  2. 听到信道空闲后等待 IFS 时间,然后开始计数。最先计数完的站可以开始发送。
  3. 其他站在听到有新的站开始发送后暂停计数,在新的站发送完成后再等待一个 IFS 时间继续计数,直到计数完成开始发送。

分析这个算法发现,两次 IFS 之间的间隔是各个站竞争发送的时间。这个算法对参与竞争的站是公平的,基本上挺按先来先服务的顺序获得发送的机会。

(三)802.11 推荐使用 3 种帧间隔 (IFS),以便提供基于优先级的访问控制

  • DIFS (分布式协调 IFS):最长的 IFS,优先级最低,用于异步帧竞争访问的时延。(CSMA/CA 使用)
  • PIFS (点协调 IFS):中等长度的 IFS,优先级居中,在 PCF 操作中使用。
  • SIFS (短 IFS):最短的 IFS,优先级最高,用于需要立即响应的操作。

其中 DIFS 用在 CSMA/CA 协议中,只要 MAC 层有数据要发送,就监听信道是否空闲。如果信道空闲,等待 DIFS 时段后开始发送;如果信道忙,就继续监听,直到可以发送为止。

(四)IEEE 802.11 定义了带有应答 (ACK) 的 CSMA/CA

AP 收到一个数据后等待 SIFS 再发送一个应答 ACK。由于 SIFS 比 DIFS 小得多,所以其他终端在 AP 的应答传送完成后才能开始新的竞争过程。

带有应答的 CSMA/CA 示意图

(五)RTS/CTS 机制

SIFS 也用在 RTS/CTS 机制中。源终端先发送一个“请求发送” RTS, 其中包含源地址、目标地址和准备发送的数据帧的长度。目标终端收到 RTS 后等待一个 SIFS 时间,然后发送“允许发送” CTS。源终端收到 CTS 后再等待 SIFS 时间,就可以发送数据帧了。目标终端收到数据帧后也等待 SIFS,发回应答。其他终端发现 RTS/CTS 后就设置一个网络分配矢量 (Network Allocation Vector,NAV) 信号,该信号的存在说明信道忙,所有终端不得争用信道。

RTS/CTS 机制示意图

(六)例题

无线局域网中采用不同帧间间隔划定优先级,通过冲突避免机制来实现介质访问控制。其中 RTS/CTS 帧 ()。

A. 帧间间隔最短,具有较高优先级
B. 帧间间隔最短,具有较低优先级
C. 帧间间隔最长,具有较高优先级
D. 帧间间隔最长,具有较低优先级

答案:A

DIFS: 分布式协调 IPS: 最长的 IFS,优先级最低,用于异步帧竞争访问的时延。
PIFS: 点协调 IFS,中等长度的 IFS,优先级居中,在 PCF 操作中使用。
SIFS: 短 IFS,最短的 IFS,优先级最高,用于需要立即响应的操作。

其中 SIFS 也用在 RTS/CTS 机制中。

(七)点协商功能

在 CSMA/CA 的基础上定义了点协调功能 (Point Coordination Function,PCF),如图所示。PCF 是在 DCF 之上实现的一个可选功能。所谓点协调就是由 AP 集中轮询所有终端,为其提供无竞争的服务,这种机制适用于时间敏感的操作。在轮询过程中使用 PIFS 作为间隔时间。由于 PIFS 比 DIFS 小,所以点协调能够优先 CSMA/CA 获得信道,并把所有的异步帧推后传送。

在极端情况下,点协调功能可以用连续轮询的方式排除所有的异步帧。为了防止这种情况的发生,802.11 又定义了一个称为超级帧的时间间隔。在此时段的开始部分,由点协调功能向所有配置成轮询的终端发出轮询。随后在超级帧余下的时间允许异步帧竞争信道。

DCF 是数据传输的基本方式,作用于信道竞争期。PCF 工作于非竞争期。两者总是交替出现,先由 DCF 竞争介质使用权,然后进入非竞争期,由 PCF 控制数据传输。

点协调功能示意图

这里总结一下 802.11 标准为 MAC 子层定义的 3 种访问控制机制:

  • CSMA/CA 分布式协调功能:大家争用访问
  • RST/CTS 信道预约:要发生先打报告,其他终端记录信道占用时间
  • PCF 点协调功能:由 AP 集中轮询所有终端,将发送权限轮流交给各个终端,类似令牌

二、两者异同

(一)相同点

  • 都是用于以太网网络中的协议,都用来解决多终端同时发送数据可能产生的冲突问题。
  • 都是先监听,空闲则发送,不空闲再进行对应操作。

(二)不同点

  • IEEE 802.3 介质访问控制层 MAC 采用访问与碰撞检测机制 CSMA/CD。
  • IEEE 802.11 MAC 子层定义的竞争性访问控制协议是 CSMA/CA。

(三)传输介质不同

  • CSMA/CD 用于总线式以太网(有线)。
  • CSMA/CA 用于无线局域网(无线)。

(四)载波监听方式不同

  • CSMA/CD 有三类监听算法(非坚持型、1 - 坚持型、p - 坚持型)。
  • CSMA/CA 采用 DIFS(只要 MAC 层有数据要发送,就监听信道是否空闲。如果信道空闲,等待 DIFS 时段后开始发送;如果信道忙,就继续监听,直到可以发送为止)。

(五)冲突检测与避免方式不同

  • CSMA/CD 带有冲突检测的载波监听多路访问,只能检测冲突但无法避免;
    CSMA/CA 带有冲突避免的载波监听多路访问,发送包的同时不能检测到信道上有无冲突,只能尽量避免。
  • CSMA/CD 通过电缆中电压的变化来检测,当数据发生碰撞时,电缆中的电压就会随着发生变化;
    CSMA/CA 采用能量检测 (ED)、载波检测 (CS) 和能量载波混合检测三种检测信道空闲的方式。

三、例题

(一)例题 1

无线局域网中 AP 的轮询会锁定异步帧,在 IEEE 802.11 网络中定义了 ( ) 机制来解决这一问题。

A. RTS/CTS 机制
B. 二进制指数退避
C. 超级帧
D. 无争用服务

答案:D

解析:

通信协议中的 RTS/CTS 协议:即请求发送/允许发送协议,相当于一种握手协议,主要用来解决“隐藏终端”问题。

为了有效地解决无线信道传输中的碰撞问题,IEEE 802.11 协议引入了两种媒体访问控制方法:分布式协调功能 DCF 与点协调功能 PCF,这两种方法都属于 MAC 层的虚载波检测机制。在 802.11 的 MAC 层中分为了两个字层:PCF 和 DCF

DCF 子层 在每一个结点使用 CSMA 机制的分布式接入算法,让各个站通过争用信道来获取发送权。

PCF 子层 使用集中控制的接入算法将发送数据权轮流交给各个站从而避免了碰撞的产生。PCF 是可选项。对于时间敏感的业务,如分组语音,就应使用提供无争用服务的点协调功能 PCF,可以锁定异步通信量。

IEEE 802.11 协议允许 PCF 与 DCF 共存于一个无线局域网中,而实现这种共存的具体方法是引入 超级帧(Super Frame)的概念。超级帧只是一个逻辑上的概念,而并非实际存在的一种帧格式。或者更确切地说是因为它在时间上表现为非严格周期性地以类似帧的形式出现,代表了一段时间内媒体上的业务量。在超级帧中包含两部分:无竞争时期(Contention Free Period,简称为 CEP)和竞争时期(Contention Period,简称为 CP)。在 CFP 期间,由 PCF 控制对媒体的访问,而在 CP 期间,由 DCF 来控制。CFP 与 CP 的交替出现,使得 PCF 与 DCF 轮流行使对无线媒体的访问控制权,从而实现 PCF 与 DCF 在一个基本服务组 BSS 内的共存。

(二)例题 2

以太网协议中使用了二进制指数后退算法,其冲突后最大的尝试次数为 () 次。

A. 8
B. 10
C. 16
D. 20

答案:C

以太网采用截断二进制指数退避算法来解决碰撞问题。截断二进制算法并不复杂,这种算法让发生碰撞的站在停止发送数据后,不是等待信道变为空闲后就立即再发送数据,而是推迟一个随机的时间。这样做是为了使的重传时再次发生冲突的概率减少。当重传次数达 16 次仍不能成功时,则表明同时打算发送数据的站太多,以至连续发生冲突,则丢弃该帧,并向高层报告。


计算机网络习题:CSMA/CD 系列

AAS48 于 2020-11-20 17:09:28 发布

一、最小帧长问题

关键抓住一条公式:最小帧长 / 数据传输率 = 2t

t t t:表示单向传播时延。

(一)例题 1

最小帧长例题 1

(二)例题 2

最小帧长例题 2

仍然是套最小帧长的公式,然后找 d d d L L L 之间的函数关系即可。

二、相关概念

CSMA 协议相关概念

CSMA 协议中包括:坚持 CSMA、非坚持、p 坚持。即发生碰撞的话,要么一直坚持监听、要么等待一段时间再发、要么以 p p p 概率去处理。

CSMA/CD 协议我们比较熟知了,是在 CSMA 基础上加入了碰撞检测,它并没有题中所说的确认帧。

CSMA/CA 就有确认帧了,它是用于 802.11 局域网的协议,无线技术,冲突避免。每次先用 RTS 帧预约信道,当信道被预约后,再发送大量数据。

CDMA 是码分多址,一种信道复用的技术,不属于协议。

三、结合 100 Base-T 集线器的计算

结合 100 Base-T 集线器的计算

注意这个 Hub 集线器,是 100 Base-T,故传输速率是 100 Mb/s,这个要当作常识记住。

因为中间是 100 Mb/s 的集线器,那么可以知道,整条线路的传输速率是 100 Mb/s。

常识:10 Mb/s 以太网规定争用期为 512 比特时间,一般为默认

故,我们可以算出,争用期时间为: 512 512 512 bit / 100 Mb/s = 5.12 5.12 5.12 微秒

争用期 = 2 × 单向传播时延

故:单向传播时延 = 5.12 5.12 5.12 / 2 = 2.56 2.56 2.56 微秒

但是又因为集线器处理需要花费 1.535 1.535 1.535 微秒的延时,所以实际在线路上面传播消耗的时延为:

2.56 2.56 2.56 - 1.535 1.535 1.535 = 1.025 微秒

1.025 1.025 1.025 × 200 = 205 205 205 m(即:传播时延 乘上 信号传播速度 = 距离

总结: 本题的思路不难,但关键是隐藏条件太多,你得知道 100 Base-T 的交换机或集线器的传输速率;以太网争用期默认是 512 比特时间。对于 10 Mb/s 以太网,期间可以发送 512 bit 数据,即 64 字节

四、CSMA/CA 协议

CSMA/CA 协议

CSMA/CA 协议适用于无线的 802.11,精髓是先用信号帧进行预约,预约成功之后再传输数据,每时每刻目的站只能预约给一个主机。因此,避免了冲突的发生。

大概流程是:源站会先给目的站发送 RTS 请求帧,请求预约。如果目的站此时同意预约,那么就会回复一个 CTS 确认帧,接着,发送方就会开始传大量的数据了。

图中的 SIFS,DIFS 都指的是帧间间隔。

因此,上题选择答案 D。

五、CSMA/CA 中的帧间间隔问题

CSMA/CA 中的帧间间隔问题

DIFS 时间长度 > SIFS

DIFS 和 SIFS 的关系

在无线局域网(WLAN)的帧间间隔机制中:

  • 若通信双方处于即时响应交互场景(如确认帧(ACK)与数据帧的“一问一答”),采用的是短帧间间隔(SIFS,Short Inter-Frame Space);
  • 若设备需竞争信道以发起新的通信(即重新开启一段对话),则采用 DCF 帧间间隔(DIFS,DCF Inter-Frame Space,其中 DCF 为分布式协调功能)。

如果双方是在你问我答,那么就是短帧间间隔 SIFS;
如果重新开启一段对话,那么就是 DCF 帧间间隔 DIFS。

解题

回到本题,会话刚开始的帧间间隔肯定是最长的,所以选 A。

六、CSMA/CD 综合计算题

CSMA/CD 综合计算题

(一)第一问

第一问比较简单。

(二)第二问

第二问

第一步画出图来,便于分析时延的产生。

可以发现,成功传输一个以太网帧的时延是 = a + b + c + d = 1.2856 a + b + c + d = 1.2856 a+b+c+d=1.2856 毫秒。

因为题目问的是有效传输速率,有效,即不考虑以太网前导码,因为前导码不是想要的数据,而是首部开销。所以,以太网实际数据部分就只有 1500 1500 1500 字节,因为前导码是 18 18 18 字节。

故用 1500 × 8 1500 \times 8 1500×8 bit / 1.2856 1.2856 1.2856 微秒 得到最后的有效传输速率。


计算机网络中的传输时延与传播时延的区别

yuukilp _zhihu

来自维基百科的解释:

传输时延

假定分组以先到先服务的方式传输 —— 这在分组交换网络中是常见的方式,仅当所有已经到达的分组被传输后,才能传输我们的分组。用 L L L 比特表示分组的长度,用 R R R bps 表示从路由器 A 到路由器 B 的链路传输速率。传输时延是 L R \frac{L}{R} RL。这是将所有分组比特推向链路所需要的时间。实际的传输时延通常在毫秒到微秒级。

传播时延

一旦一个比特被推向链路,该比特需要向路由器 B 传播,从该链路的起点到路由器 B 的传播所需要的时间是传播时延。该比特以该链路的传播速率传播,该传播速率取决于该链路的物理媒介,其速率范围是 m/s,这等于或略小于光速。传播时延等于两台路由器之间的距离除以传播速率,即传播时延是 d s \frac{d}{s} sd,其中 d d d 是两台路由器之间的距离, s s s 是该链路的传播速率。传播时延在毫秒级。

传播时延和传输时延的比较

计算机网络领域的新手有时难以理解传输时延和传播时延之间的差异,该差异虽说细小但是很重要。

  • 传输时延:是路由器将分组推出所需要的时间,它是分组长度和链路传输速率的函数,而与两台路由器之间的距离无关。
  • 传播时延:是一个比特从一台路由器向另一台路由器传播所需要的时间,它是两台路由器之间距离的函数,但与分组的长度或链路的传输速率无关。

个人觉得一种通俗的理解,传播是什么?我们经常说声音在空气中的传播,而不是说声音在空气中的传输,传播速率是与介质有关的。同理,回到计算机网络上,传播延迟,也就是指的在两台路由器之间的距离除以传播速率计算得到。

发布于 2016-04-11 17:33

light0x00

基于书上的例子:

  • 传输速率:单位时间可从一个节点(收费站)驶入高速公路(出链路)的车辆的数量。
  • 带宽:高速公路的宽度(车道数量)。
  • 传播速度:高速上车辆行驶速度(以高速限速为准)(介质中信号的传播速度)。
  • 处理速率:过站时收费站操作员的处理效率(检查分组首部、bit 错误的速率)。
  • 排队时延:在收费站等候前面车辆(如果有的话)的耗时。
  • 传播时延:车辆按照高速公路的限速(介质传播速度),从一端到另一端(两个链路节点之间的空间距离)的耗时。
  • 处理时延:收费站收费过程耗时(检查分组首部和决定该分组导向何处、检查比特级别的错误的耗时)。
  • 传输时延:车辆交完费后,收费抬起栏杆,车辆再次驶入“高速”(出链路)这个过程的耗时(路由器将分组推送到出链路的耗时)。

传输时延,还包括存储分组(等候分组中的 bit 全部到达)的耗时,因为车辆是一个整体,无法体现分组是由 bit 组成的,也许应该用“车队”来比喻“分组”。

编辑于 2019-09-18 09:41

Adventurer

要找到两种事物之间的区别,我们可以试着去了解这两种事物之间的联系。

传输时延与传播时延之间有这什么样的联系?

在数据从网络的一端传送到另一端的过程中,传输时延的产生是先于传播时延的。

更形象点可以用汽车过收费站和在高速路上行驶两个过程,分别用的时间来对应传输时延和传播时延。

传播时延与传输时延的研究对象分别是什么,分别产生在什么地方?

  • 传输时延:研究对象是数据帧(如分组),发生地方为机器内部中,所以在计算公式表示为

传输时延公式

《计算机网络》(谢希仁 第 7 版) P22

  • 传播时延:研究对象是信号(如电磁波),发生地方为机器外部的媒体介质中,并不是分组了。

传播时延公式

《计算机网络》(谢希仁 第 7 版) P22

由上我们可以看到:

从传输时延到传播时延的产生过程切换中涉及了数据帧转为信号的过程。

最后,Po 张图:

传输时延与传播时延的关系图

《计算机网络》(谢希仁 第 7 版) P23

最后的最后,给个小建议:

把问题中的延时改为时延可能会概念更清晰,因为从我们中文语言习惯角度出发,“延时”是指拖延时间,“时延”是指时间拖延程度,一个类似动词,一个类似名词。

编辑于 2019-01-05 16:58

何顶松

就概念而言第一条回答已经解释了两者的差别。

那我来举一个更具体的例子,根据计算机网络・自顶向下方法(第六版)的解释,传播时延是汽车在高速上跑的时间,传输时延是通过收费站的时间。

编辑于 2018-03-22 06:53


via:

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值