我想我迟到了,但我会提供一些关于碰撞控制的见解,在一个链接上使用大量颤抖的发射器,一个802.11。这有点打包。
如果两个发射器试图同时发射,你一定会在接收器处得到一堆烂培根。
WiFi 式碰撞的简化版本会很好。基本上,它使用可以检测到的前导码,对于具有更高冲突机会的较长传输,它可以使用较短的请求/清除来发送数据包。
虽然这可能有点矫枉过正,但我会选择序言。首先传输可识别的稳定流,例如十六进制,555533330f0f00ff
它基本上是交替的 1 和 0,但频率不断变化(0101,然后是 0011,然后是 00001111,依此类推),这是一种易于识别的模式,不太可能泄露通过杂散辐射或噪声。
这种模式可能会发生变化,因此有一组有限的其他前导码应该相对于原始码进行按位移动。
如果发送器检测到这个前导码,它应该停止并等待。如果您将所有数据包限制在某个时间长度内,那么如果您在数据包之间等待足够的时间,则不会发生冲突。如果在一个数据包的时间内听到前导码,那么您的站应该等待传输的全部长度(监听它的长度和其他头字段,以便知道等待多长时间)。数据包完成后,您的电台可以传输其前导码。
这就是 WiFi 相似性停止和更简单的协议接管的地方。
请注意,如果 2 个站正在等待一个数据包,它们几乎可以同时开始它们的前导码。为了解决这个问题,每个站应该在其前导码中翻转一个不同的零位。如果它检测到该位为 1,它会看到有另一个站前导,并且应该退出。
每个站点应在每个数据包之后等待一定的延迟(由您决定),以便其他站点可以开始传输。
一些沟通模式的草图表明,这足以满足您的需求。
现在,如果它是一个主从式系统,只要您只有一个网络,它应该会更容易,因为应该只有一个涉及从属传输的未完成请求。