广播信道的最佳重传算法

Nic*_*son 8 algorithm feedback channel broadcast

我有许多可以通过广播媒体(在这种情况下,IR)进行通信的微控制器.每个节点都希望定期向所有其他节点公布其存在,但由于它是广播媒体,同时发送的两个节点将产生冲突,并且两个消息都不会正确传输.

更复杂的是,当节点收到无效消息时,可靠地确定这是由于碰撞还是由于背景噪声或弱信号而导致似乎不切实际.此外,虽然节点可见性通常是自反的(看到B意味着B可以看到A),但通常情况是并非所有节点都能看到所有其他节点.

暂时不考虑外部干扰,似乎合理的方法是创建时隙,每个节点在每个时隙中以小的(并且在节点之间理想地相似)概率发送.如果有n个节点以概率p进行传输,则不会传输任何消息(1-p)n ; 正好一个消息将在n*p*(1-p)n-1的时间内发送,剩余的时间将发生冲突.当n个节点中的每个节点发送1/n次时,发生成功冲突的最大发生率,这导致相当稳定的38%成功传输和24%冲突; 随着节点数量的增加,此值仅略有变化.

鉴于此,似乎我们可以观察到成功传输和/或碰撞的速​​率,并调整我们自己的传输速率以试图迫使它们达到预期值.我不确定的是,实现这一目标的最佳反馈机制是,每个人都有类似的概率.这也没有考虑外部干扰,这将导致我们在注定的努力中不断降低传输速率以避免不存在的冲突.

什么是最优算法 - 无论是上述的改进还是完全不同的方法 - 最大化每个节点可以在没有冲突的情况下接收的通告消息的比例?

小智 1

你想要的实际上是一个无线网状网络,它本身就是一个完整的研究领域。除此之外,确认消息也是个好主意。如果数据包开销是一个问题,您可以将它们与公告本身一起搭载。它们允许通过观察有多少邻居应答来区分冲突和背景噪声,并通过等待(大多数)邻居确认每个传输(走走停停)来允许基本速率限制。如果控制器的移动性很强,这当然会变得更加复杂。

在整个网络上保持相同的更新速率将是非常困难的(并且可能是不可取的),因为传输质量在不同的区域和时间点上可能会有很大差异。