CSMA/CD 共享介质访问控制方法¶
CSMA/CD (载波侦听多路访问/碰撞检测)规定了以太网中多个节点共享传输介质进行访问控制的方法。
其流程大致可划分如下:
- 开始:若线路空闲,则启动传输,否则跳转倒线路繁忙处理。
- 发送:发送数据,并且在发送过程中一直检测信道,若发生冲突(信号产生畸变)则停止发送帧数据,转而发送冲突加强信号,然后进入线路繁忙的处理。
- 成功传输:传输结束并退出。
- 线路繁忙:发送结点在重新发送前采用随机延迟,典型的后退延迟算法位截断式二进制指数退避(truncated binary exponential backoff)算法。
- 线路空闲:尚未达到最大尝试次数时继续尝试开始发送。
- 超过最大传输次数则发送失败。
截断式二进制指数退避算法¶
给定冲突次数 \(n\) 以及某个时间片 \(\alpha\)(以太网选择冲突窗口作为时间片),输出一个后退延迟时间片数 \(\rho\)。其中 \(\rho\) 在一个区间内取值,最小为 0,最大等待时间为:
\[
\rho_{\max}=2^{\min(n, 10)} - 1
\]
取 \(\min(n, 10)\) 用于截断。
冲突窗口与帧最小长度¶
考虑极端情况,结点 A 到 B 的传播延迟时间为 \(\tau\),A 的数据帧前沿到达 B 时 B 立即开始发送,此时 B 会检测到冲突,但如果在 B 的信息到达 A 之前 A 已经发送完毕则 A 不会认为冲突存在而是认为发送成功。A 能够检测到冲突的时刻为 \(t+2\tau\) 其中 \(t\) 为 A 开始发送的时间。所以从开始发送到检测到冲突所用的时间为 \(2\tau\)。
令 \(L_{\max}\) 为相距最远结点之间的距离,电磁波在介质中传播的速度为 \(V\),帧的最小长度为 \(l_{\min}\),网络的数据传输速率为 \(v\)。整个网络传输过程中的约束条件为:
\[
\begin{aligned}
\tau &= \frac{L_{\max}}{V} \\
\frac{l_{\min}}{v}&\ge 2\tau = 2\times\frac{L_{\max}}{V} \\
L_{\max}&\le\frac{l_{\min}\times V}{2v}
\end{aligned}
\]