我目前正在与一个网络中有许多节点的朋友合作开发一个项目,并希望将其从p2p调整为网状网络。
应用程序的一些背景知识:
- 我们没有做任何复杂的事情,我们刚刚开始使用聊天客户端,向个人/群组发送消息
- 语言不可知(我在ruby中写'我的客户',而我的朋友正在写他的python)
- 目前,我们有一个监听套接字(始终处于活动状态),只有用于发送的开放套接字,因此没有与所有节点建立“永远在线”的连接(尽管来自wiki,似乎他们更喜欢不断的联系)
- 我也在scalable source routing上阅读了这个内容,但它或多或少只是列出了“a”算法,并没有定义任何类型的通信协议。
所以,我的问题:
- 找到最短路径的网状网络协议的最佳(或比较)是什么? (我知道有一对,由IEEE和其他人定义)
- 假设您要向未直接连接的人发送消息
- 您是否拥有网络上所有节点的列表,并查找哪些连接节点具有到达目标节点的最短路径? - 这是否意味着每次网络发生变化时,您都必须更新每个节点的网络图?
- 或者,节点是否只有一个列表,其中哪个连接节点具有到达所需目的地的最短路径? (这样,最短路径的责任落到了下一个节点)?
- 你如何决定哪些附近的节点保持连接?
谢谢!