我试图在BTLE物理层和链路层上实现我自己的路由协议,以便为BTLE无线电建立一个多跳链路。我用的是Cortex-M0处理器。我的路由表结构基本如下:
|Neighbour Address| Info about Link quality | Possible Destination Addr|
邻居地址将具有近邻地址,而可能的目的地地址字段将有可以从该特定邻居到达的目的地地址(在一跳内)(路由只支持2跳通信)。简而言之,可能的目的地将有在邻居地址中的元素的条目。
我正在用CodeSorcery工具链实现这一点。因此,对于构建路由表,应该使用链接列表还是使用数组?使用数组将比实现链接列表更容易,但随后,数组的大小将被预先定义和限制。另外,在初始化时,它将占用所有专用于它的空间。实际上,为路由表预留空间,这样以后就不会造成内存问题了吗?还是应该是在数据分配方面更灵活的链接列表?
发布于 2014-04-17 20:58:37
最好的数据结构是两者兼而有之。您可以在“块”中分配地址表。每个块将包含多个路由表条目和下一个指针。填充块后,可以分配下一个块并在前一个块下一个指针中填充它的地址。
这种结构两者兼得,您可以获得简单表扫描的速度和链接列表的灵活性。
你的网络会有多大?对于非常大的网络,简单表将是性能瓶颈,因此您应该考虑使用前缀哈希表,这样就不需要遍历整个表来查找特定的邻居。
https://stackoverflow.com/questions/23008709
复制相似问题