完全去中心化的点对点网络是否可行?它可以扩展到什么程度?

网络工程 路由
2021-07-16 00:34:42

我对 P2P 网络所做的大部分阅读要么是关于小规模的简单网状网络,其中每个对等点都可以相互交谈,要么是关于诸如 bittorrent 之类的高级协议,其中数据来自各种来源,位置可以通过使用分布式哈希表去中心化。但它仍然使用 IP 来路由数据包,因此数据包将进入 ISP 和大节点,然后再次过滤回小节点。

我的理解是因为IP地址多,没有一个节点可以全部存储,所以数据包要先上到大节点,就像一封信先到一个国家的主要分拣办公室,然后到一个城市等

给定一个非常大的网络,可以在不使用高级寻址的情况下以有效的方式路由数据包并在相同大小的节点之间传递,例如不用说217.34.33.243,不知道去哪里,将其发送到217块,他们可以将其发送到细分34

我不太确定我所要求的正确条款是什么,所以这也很有用。我称之为点对点和去中心化,但我不确定这是否正确。

3个回答

根据您的评论,“互联网的路由仍然是分层的,并且通过块过滤以提高效率, ”您似乎不了解互联网。

互联网是非常分散的。每个 ISP 都连接到它想要连接的任何其他 ISP,并且寻址不是分层的,正如您认为的那样。是的,ISP 同意从某些中央机构 (RIR) 获取地址块,但地址块不是以分层方式分配的(并且由于 IPv4 短缺,随着公司相互买卖地址块,情况变得更糟)。例如,ISP A获得123.123.0.0/16,并将它与ISP乙同行具有134.0.0.0/8213.12.0.0/22,并且它也与ISPÇ具有对等体96.32.16.0/24145.83.56.0/24以及178.45.0.0/16ISP 寻址在一个 ISP 内可能有点分层(仅在任何一个分配的地址块内),但在 AS 之间,它肯定不是。AS是自治系统,每个自治系统都独立于其他AS。

在任何情况下,如果单个地址块被分解为不同的网络,IP 将在分配的地址块中的本地级别分层。这就是 IP 的本质,几乎任何第 3 层协议。但是,您可能有多个彼此不相关的地址块。

过去有许多严格对等的第 2 层协议。例如,以太网是点对点的。它具有看似随机的寻址(MAC 地址),并且以太网 LAN 上的主机直接通过以太网和 MAC 地址进行通信。有一些 LAN 协议仅使用 LAN 寻址,并且它们是对等的。

如果要与不同局域网中的主机通信,则必须通过一个三层设备(路由器),并且该设备必须知道如何到达其他三层网络。这可能是通过其他路由器,也可能直接连接到其他网络。不同的网络不需要是连续的、分层的,甚至不需要相同的大小。

你写的一件事似乎表明你可能认为 IP 地址中的不同八位字节有意义,但它们没有。它们只是为了让人类更容易读取地址,这是一个 32 位的二进制数。网络掩码将指示 32 位数字的哪一部分是网络,哪一部分是主机地址,这可能会有很大差异,并且通常不会落在八位字节边界上。例如,地址10.11.12.13/1510.10.0.0/15网络中,而不是在10.11.0.0/15网络中。地址的网络部分在第二个八位字节结束之前结束。该网络可以连接到在路由器的其他接口上具有截然不同的寻址的路由器,因此它本身不是分层的。

与同一以太网 LAN 上的另一台主机通信的主机将直接与该主机通信。主机将目的三层地址与自己的三层地址和掩码进行比较,以确定目的在同一个局域网上,然后它会创建一个寻址到目的主机的二层帧。这个可以用IP作为三层协议,还是点对点的。

如果目的主机在不同的网络上,那么源主机将使用其配置网关的第2层地址作为其创建的第2层帧中的目的地址,并将第2层帧传递给网关.

网关将剥离帧,丢失任何第 2 层寻址(源和目标)。路由器将查看目标第 3 层地址并搜索其路由表以查找匹配项。如果不匹配,则丢弃数据包。如果匹配,则路由器将为路由表中指示的接口创建一个新帧,并将新帧转发出该接口。这就是您失去点对点的地方,尽管寻址可能不是连续的或分层的。

在单个 LAN 上,您可以拥有真正的对等连接,但要从一个 LAN 连接到另一个 LAN,您必须具有某种类型的映射以及从一个 LAN 到另一个 LAN 的方法。

关于创建对等网络的更高级别协议的部分在这里确实是题外话,因为 OSI 第 4 层以上的协议在这里是题外话。


在第 2 层对等网络上扩展的问题在于必须使用广播,并且在某些时候,广播将淹没常规流量。当主机接收到发送到每个主机的广播时,它必须中断正在执行的任何操作并检查广播是否适合它。

一开始,主机不知道它的邻居和地址,因此它必须广播才能发现特定的邻居。然后它可以构建一个包含该特定邻居的表。该表将有限制,并且表中的条目也必须超时,否则最终会出现一堆死邻居。要填充该表,主机必须首先广播它要与之通信的邻居。

在某个时候,LAN 将被广播饱和,并且会在重压下崩溃。这就是为什么我们限制 LAN 的大小并强加第 3 层网络的原因,它可以具有某种类型的层次结构,也可能没有。

在第 2 层路由方面已经完成了大量工作。我不知道你是否已经探索过像BATMAN AdvancedBMX6、 CJDNS这样的第 2 层网状网络协议(不是真正的第 2 层,而是试图在该层重新定义某些东西)。如果没有,请进行探索。

另请访问Battlemesh_dot_org

是的。一种这样的网络称为因特网。实际上,节点数量没有限制,尤其是在考虑 IPv6 时。