注:本文为 “CSMA/CD 机制 / 工作流程 / 最小帧长 / 传播时延 | 例题” 相关文章合辑。
未去重整理。
CSMA/CD 机制
( Carrier Sense Multiple Access/Collision Detection,载波侦听多路访问 )
根据以太网的最初设计目标,计算机和其他数字设备是通过一条共享的物理线路连接起来的。这样被连接的计算机和数字设备必须采用一种半双工的方式来访问该物理线路,而且还必须有一种冲突检测和避免的机制,以避免多个设备在同一时刻抢占线路的情况,这种机制就是所谓的 CSMA/CD。
CSMA/CD 工作流程
可以从以下三点来理解 CSMA/CD:
-
CS:载波侦听
在发送数据之前进行侦听,以确保线路空闲,减少冲突的机会。 -
MA:多址访问
每个站点发送的数据,可以同时被多个站点接收。 -
CD:冲突检测
由于两个站点同时发送信号,信号叠加后,会使线路上电压的摆动值超过正常值一倍。据此可判断冲突的产生。
边发送边检测,发现冲突就停止发送,然后延迟一个随机时间之后继续发送。
-
终端设备不停的检测共享线路的状态。
-
如果线路空闲则发送数据。
-
如果线路不空闲则一直等待。
-
-
如果有另外一个设备同时发送数据,两个设备发送的数据必然产生冲突,导致线路上的信号不稳定。
-
终端设备检测到这种不稳定之后,马上停止发送自己的数据。
-
终端设备发送一连串干扰脉冲,然后等待一段时间之后再进行发送数据。
发送干扰脉冲的目的是为了通知其他设备,特别是跟自己在同一个时刻发送数据的设备,线路上已经产生了冲突。
检测到冲突后等待的时间是随机的。
概括一下
-
先听后发,边听边发
-
冲突停发,随机重发
最小帧长
由于 CSMA/CD 算法的限制,以太网帧必须不能小于某个最小长度。以太网中,最小帧长为 64 字节,这是由最大传输距离和冲突检测机制共同决定的。
规定最小帧长是为了避免这种情况发生:A 站点已经将一个数据包的最后一个 Bit 发送完毕,但这个报文的第一个 Bit 还没有传送到距离很远的 B 站点。B 站点认为线路空闲继续发送数据,导致冲突。
Ethernet_II 的帧结构
高层协议必须保证 Data 域至少包含 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 分别代表运行速率,中间的 Base 指传输的信号是基带方式。
10 兆以太网线缆标准
- 10 兆以太网线缆标准在 IEEE802.3 中定义。
10 兆以太网线缆标准
名称 | 电缆 | 最长有效距离 |
---|---|---|
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 兆以太网又叫快速以太网 FE(Fast Ethernet),在数据链路层上跟 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 现在很少使用。
千兆以太网线缆标准
千兆以太网是对 IEEE802.3 以太网标准的扩展。在基于以太网协议的基础之上,将快速以太网的传输速率从 100 M bit/s 提高了 10 倍,达到了 1G bit/s。
千兆以太网线缆标准
名称 | 线缆 | 最长有效距离 |
---|---|---|
1000 Base-LX | 多模光纤和单模光纤 | 316 m |
1000 Base-SX | 多模光纤 | 316 m |
1000 Base-TX | 超 5 类双绞线或 6 类双绞线 | 100 m |
用户可以采用这种技术在原有的快速以太网系统中实现从 100 M bit/s 到 1000 M bit/s 的升级。
千兆以太网物理层使用 8B10B 编码。在传统的以太网传输技术中,数据链路层把 8 位数据组提交到物理层,物理层经过适当的变换后发送到物理链路上传输。但变换的结果还是 8 比特。
在光纤千兆以太网上,则不是这样。数据链路层把 8 比特的数据提交给物理层的时候,物理层把这 8 比特的数据进行映射,变换成 10 比特发送出去。
万兆以太网线缆标准
万兆以太网当前使用附加标准 IEEE 802.3ae 用以说明,将来会合并进 IEEE 802.3 标准。
万兆以太网线缆标准
名称 | 线缆 | 有效传输距离 |
---|---|---|
10G Base-T | CAT-6A 或 CAT-7 | 100 m |
10G Base-LR | 单模光纤 | 10k m |
10G Base-SR | 多模光纤 | 几百米 |
100Gbps 以太网线缆标准
新的 40G/100G 以太网标准在 2010 年制定完成,当前使用附加标准 IEEE 802.3ba 用以说明。随着网络技术的发展,100Gbps 以太网在未来会有大规模的应用。
via : huawei
载波监听多路访问 CSMA 以及 CSMA/CD 详解
Wzning0421 于 2018-01-09 22:44:29 发布
CSMA 和 CSMA/CD 协议都是为了控制在一个传输介质上面复用的主机访问信道时避免冲突所指定的协议。
一. CSMA
CSMA (载波监听多路访问) 是在 ALOHA 协议上面做了更多改进并且应用于现实中 MAC 层截止访问控制(MAC)的协议。所谓载波监听,就是 “讲前先听”。网络站点监听载波(别的用户的数据)是否存在并随之采取相应的行动。
CSMA 的基本思想是:要传输的站点首先听一听介质上是否有其他站点在传输 (载波侦听)。 如果介质忙,那么必须等待;如果不忙,则传输。冲突之后需要后退并重传。主要有三种形式:1. 1 - 坚持 CSMA 2. 非坚持 CSMA 3. p - 坚持 CSMA.
1. 1 - 坚持 CSMA
所谓 1 - 坚持指的是对于监听信道忙之后的坚持。它的思想是:如果一个主机要发送消息,那么它先监听信道,如果空闲,那么直接传输,不必等待。如果信道忙(有别人在传输),那么一直坚持监听,直到空闲马上传输。如果自己发送的时候监听到了冲突,那么停止发送,等待一个随机长的时间,再监听,并重复上面过程。
2. 非坚持 CSMA
所谓非坚持指的是对于监听信道忙之后的就不继续监听。它的思想是:如果一个主机要发送消息,那么它先监听信道,如果空闲,那么直接传输,不必等待。如果信道忙(有别人在传输),那么不再监听,等待一个随机的时间之后再进行监听。
3. p 坚持 CSMA
所谓 p - 坚持指的是对于监听信道空闲的处理。它的思想是:如果一个主机要发送消息,那么它先监听信道,如果空闲,那么有概率 p 直接传输,不必等待,概率 1-p 等待到下一个时间槽再传输。如果信道忙(有别人在传输),那么等待一个时间槽再进行上面的操作。
对于 1 - 坚持的 CSMA, 它的一个很大的缺点是冲突的可能性很大,因为大家都等到信道空闲就立刻传输,所以很有可能会冲突。对于非坚持 CSMA,信道的利用率不高,因为可能信道空闲了大家还在等待。对于 P 坚持来说,他能工作的前提是有时间槽。
二. 带冲突检测的 CSMA 协议
所谓带冲突检测的 CSMA,就是 CSMA/CD。这也是实际中使用的协议。它的具体思想是:在发送之前先监听信道。如果介质空闲,则马上传输。如果介质正在忙,则一直监听到信道空闲,立刻传输。如果检测到冲突,那么立刻停止传输,等待一个随机的时间,之后再重复上面的步骤。
相比于单纯的 CSMA, CSMA/CD 从 发前先听 转变为 发前先听,边发边听。这样可以在发消息的时候进行检测,如果检测到冲突就进行处理。
现在问题来了,如何检测到冲突?如何认为自己的消息没有遇到冲突呢?
检测到冲突其实很简单。消息发送的过程中主机进行监听,如果发现信道上面的电平值和自己发送端的电平值不相同,那么它就认为自己发送的时候有别人进行发送,也就是说信道发生了冲突。那么这个监听过程应该持续多长呢?换句话说,我监听多长时间没有监听到冲突,就认为我的消息成功发送了呢?我们假设 AB 是两个局域网中相距最远的节点,并且从一端传递到另一端所需要的时间为 τ。我们考虑极端的情况:假设 A 发送到 B 的消息,在马上就到达 B 的时候,B 突然发送了消息发生冲突。那么这个冲突信号再传递给 A,这个过程应该持续 2τ。也就是说,在消息最后一比特监听时间持续了 2τ 之后,还没有检测到冲突,那么认为消息应该已经无冲突的到达。
三. 802.3 的介质访问协议:1 - 坚持的 CSMA/CD
具体来说,在发送之前先听,如果介质空闲,则传输,如果介质忙,则继续监听,直到介质空闲则马上传输。如果在传输期间检测到冲突则发送一个 JAM 信号,发送 JAM 信号之后,等待一个随机时间,重复上面过程,重新发送这段数据。
重点是下面两个部分:
1. 冲突检测
哪个端检测到冲突,那个端就发送 JAM 信号,并且中断自己的信号发送。这样过一段时间其他的发送端都能检测到自己的信号被冲突了,于是都停止发送了。于是各自随机后退,等待一段时间后重启监听和发送的过程。
2. 随机后退
MBEN(Mean Backoff Exponent Number,平均后退指数)
刚才讲了那么多次随机后退,那么真的是随机找一个时间后退吗?其实这里面也有讲究的,802.3 的 CSMA/CD 使用的是随机后退算法,是通过确定 随机等待窗口 来确定等待时间的。对于任何一个帧来说,假设他已经重发了 i i i 次,那么下一次它重发的平均等待延迟为 MBEN = ( 2 i − 1 ) × 2 τ \text{MBEN} = (2^i - 1) \times 2\tau MBEN=(2i−1)×2τ。 这就是二进制指数后退算法,这里 τ \tau τ 就是上文说的局域网最长的延迟。这个时间就是随机等待窗口,从该窗口中随机选择一个时间作为后退时间,等待这个时间过去之后再进行监听和发送。
那么这个算法有一个问题,如果网络确实很拥挤,冲突次数很多,那么每次的等待时间将随着指数而指数增大,急剧增加,如下图所示:
所以改进的算法出现了,也就是截断二进制指数后退算法。它的重发延迟为: MBEN = ( 2 i − 1 ) × 2 τ \text{MBEN} = (2^i - 1) \times 2\tau MBEN=(2i−1)×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 了,好处就是如果冲突次数真的这么多,不至于无穷无尽的等待下去。
上面算法就是 802.3 中实际采用的 1 - 坚持 CSMA/CD 算法。
802.11 的隐藏节点和 RTS,CTS 机制
Wzning0421 于 2018-01-10 13:46:10 发布
802.11 协议适用于无线局域网,这一点和 802.3 有着本质性的不同。首先先了解一下无线传输相关的范围:
无线传输有三个非常重要的范围:传输范围,侦听范围和干扰范围。
-
传输范围:传输范围 (TX_range) 指成功接收帧的通信范围,取决于发送能量和无线电波传输特性。
-
侦听范围:侦听范围 (PCS_range) 可检测到传输的范围,取决于接收器灵敏度和无线电波传输特性。
-
干扰范围:干扰范围 (IF_range) 此范围内节点发送帧将干扰接收方的接收并导致丢帧。
前两个都是针对发送主机的,第三个是针对接收主机的。为什么会有这三个范围呢?这就涉及到无线局域网 802.11 和有限局域网 802.3 之间的区别。我们知道无线传输更容易衰减,而在有限传输介质中往往能传输的比无线介质更远。所以在有线局域网中,任何一个主机发送消息,在一个介质上面相连的所有主机都能收到。但是无线局域网就不一样了。因为在发送信号的一定范围内信号会衰减,减弱到无法成功接收,那么别的主机就不认为这是个有效信号了,无法接收,这个就是传输范围的来源。侦听范围要比传输范围远,因为只要能侦听到,都算侦听范围,但是有可能即使侦听到也无法还原。干扰范围同理,在这个范围之外有其他的信号发送不会影响到接收主机,但是在这个范围内有其他主机发送就会强到影响这个接收主机了,这就是干扰范围。
懂得了这三个范围有助于了解隐藏节点和暴露节点的问题。
隐藏节点:由于距离太远而导致一个站点无法检测到介质竞争对手的存在。
我们考虑下面一个图:
A 在向 B 传输数据,如果 C 想向 B 传输数据,那么 C 首先监听,