所以,这个问题实际上问了两个问题:
- 如何找到 p 的最优值。
- 给定一个 p 值,如何在任何参与系统上设置这个 p 值。
对于第一个问题:我会说概率 p 是通过建模和/或模拟“实验”选择的。
p 值太低和太高都会降低吞吐量。如果 p 低,则减少多个站点同时进入信道的概率。但是,如果 p 太低,可能会导致没有站点实际发送 => 空时隙 => 吞吐量降低。如果 p 很高,则站点可能会进行传输。然而,多个站点尝试传输的概率较高,因此冲突的概率增加,这也降低了吞吐量。
以下是我能找到的参考资料:
- L. Kleinrock 和 F. Tobagi:“无线电信道中的数据包交换:第一部分 - 载波侦听多路访问模式及其吞吐量延迟特性”,1975 年(pdf)
- H. Takagi 和 L. Kleinrock:“持久 CSMA 系统的吞吐量分析”,1985 年(pdf)
我承认,不是最简单的数学。
一些教科书包括关于 Slotted ALOHA、CSMA/CD 的吞吐量分析的章节,我认为这些章节是基于第一篇论文。
对于第二个问题,它应该在一个标准中指定,它为我们提供了选项。
- 在标准中指定 p 的值,然后每个人都可以对其进行硬编码
- 指定 p 是一个配置参数,这意味着每个系统都应该以某种方式配置该值(我会说这是糟糕的协议设计)
- 指定站如何就 p 的值达成一致。(例如:在 wi-fi 的上下文中,可以指定接入点应该告诉站点它们的 p 值)。
笔记
- p 的值不一定是固定的。对后续重传进行退避的常用策略是从 p=1 开始,然后在每次发生冲突时减小 p。(维基百科)
- 每个系统的 p 值不必相同。在某些情况下,我们想优先考虑某些站点。在这种情况下,可以为具有更高优先级的系统分配更大的 p 值。我能找到的唯一可访问的参考资料是这篇博士论文。如果你有 IEEE 和 ACM 的大学访问权限,谷歌搜索这样的内容可能会有所帮助:“具有 QoS 差异的 p-Persistent CSMA 协议的吞吐量分析”