首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >在运动鞋网上自动消息路由

在运动鞋网上自动消息路由
EN

Stack Overflow用户
提问于 2015-02-20 22:04:20
回答 1查看 276关注 0票数 4

我正在做一个项目,这个项目需要一个系统,可以归结为网络协议设计中的一个奇怪的练习。具体细节的情况是复杂和无关的,所以这里我要比较它是一种强制性的运动鞋网。

比方说,在整个森林、山脉、北极高原或什么地方的建筑物里都有许多台式机。它们没有联网,因为在建筑物之间铺设电缆是非常昂贵的。(在这种情况下,实际上是不可能的,但我离题了。)不过,人们经常往返于建筑物之间,每个人都有一个闪存盘。当他们到达新大楼时,他们做的第一件事就是把这个闪存插入到桌面上。当它插入时,一个软件启动并从它读取数据,并可以自由地传输数据。您可以假设桌面有无限的存储空间,但是驱动器没有。

桌面上装载着需要到达其他建筑物的消息。每个消息都有指示源和目的地的元数据,以及潜在的任何其他必需的协议信息。该驱动器还携带了该建筑物的信息,软件将首先卸载这些信息。然后,在一定算法的基础上,软件将新的消息加载到驱动器上。每座建筑物都通过公路连接到其他五座左右的建筑物,而这些道路是由运输公司沿途进行的。任何给定的建筑物都不可能直接连接到任何其他特定的建筑物,但在任何两个给定的点之间总是至少有一条路径(通过其他建筑物)。

我希望尽量减少人与人之间的互动,以获取建筑之间的信息。显然,发件人必须指定目的地,我们可以合理地期望承运人知道他们的下一站,但也许不会更远。我也希望得到一些完美的分布--不需要依赖任何中央服务器。

这个软件能用什么最简单的系统自动地将消息从一栋楼传送到另一栋楼?理想情况下,软件的每个独立实例都会为相同的输入决定相同的路径。假设每个驱动器/载体和每个建筑物都已经有一个唯一的ID,该软件如何能够自动绘制出网络中的所有连接?这样的系统如何处理新建筑物或新道路的发现?如果一些运营商知道他们有一个明确的远离源、目的地和通道的地方,那么应该如何处理那些能够可行地遵循同一条路径的消息(对于部分和/或全部路由)?系统如何处理“分组丢失”(例如,其中一家运营商在途中崩溃)?系统是否有可能被滥用或破坏?我能做些什么来阻止这种情况?

另外,说我想更新桌面上的软件。我可以要求每个驱动器携带他们遇到的最新版本的副本,但这并不是非常节省空间。相反,我可以让他们只携带最新的版本号,以及他们访问的任何需要更新的建筑物的I列表。当驱动器用最新版本击中建筑物时,那里的软件会清除列表,并自动向这些建筑物发出信息,询问它们是否还需要更新。如果他们回答“是”,它会打包本地存储的三角洲并将其发送出去。在这种情况下,补丁将由系统的开发人员签名,以确保真实性。但是,是否有一种方法可以分发(即,如果每一栋楼的常驻黑客都被授予访问权限)?或者更具体地说,它如何处理三角洲碰撞?

任何清晰的问题或建议也会有帮助;我所描述的只是逻辑上类似于我将要应用它的东西,所以我不知道我是否假设了一些不明显的东西,或者忘记提到重要的细节。

EN

回答 1

Stack Overflow用户

发布于 2016-09-19 15:05:45

大约两年前我设计了这样的程序。

关于议定书:

-rumor将您的消息路由到它的公钥已知的目的地

为了方便起见,-distributed从nick-name到RSA-key的翻译列表

-rumor路由RSA确认以删除消息的副本。

-every桌面客户端有一个基本的RSA公钥,可以确认客户端软件的更新.

-if的载体是满的,那么旧的消息有优先权。

-元信息总是优先考虑的。

-last但并非最不重要:每条消息都有死收件人的超时。

这具有以下优点:

  • 不是每个人都能得到每一条信息,但是每个人都会得到一些关于每条导致这个网络的信息的元信息,这些信息是可以搜索的。
  • 您可以匿名发送消息,也可以用公钥签名。
  • 绝对不需要任何关于拓扑的知识。
  • 元信息(确认消息)被转发的速度比数据快,所以如果负载太重,负载将自动删除得更快。
票数 2
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/28639028

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档