为什么 IPv4 只有 4 个数字

Why has IPv4 only 4 numbers

是的,这听起来很愚蠢,但我直到现在才弄明白。
由于 Ip 耗尽,我们发现了多种更有效地使用 Ips 的方法。
但为什么没有人尝试在前面的 4 个数字之后添加第 5 个数字?
我的意思是 127.0.0.1 -> 127.0.0.1.0
为什么我们不在必要时向 Ip 添加更多数字,以便可以解决耗尽问题?

--编辑--
我的意思不仅是将格式从 32 位扩展到 128 位,而且我们为什么不能动态地做到这一点?为什么我们不只是说我们保留 4 个字节作为标准,而是我们可以用更多的字节来扩大它以防万一?

IPv4使用32位地址,其大小在internet层是标准固定的,供不同客户端识别。然而,随着 ipv4 的耗尽,我们提出了一个新标准,IPv6,它使用更大的 128 位 地址以及许多其他改进

您在 IPv4 地址中看到的数字实际上只是转换为易于读取的字节的 32 位。

更新

Why not extending it dynamically?

让我们来看一个数据包:它只是一个比特流,这个比特流应该被 PC(大多数时候)读取,但也可以被您的网络设备读取,这些设备需要对这些数据包进行操作,并且它们需要尽可能减少延迟。

那么路由器如何在一秒钟内处理约 1Gb 的数据,而无需进行任何复杂的计算(它只是一个路由器,并没有真正的马力)?我们有一个模型(OSI Model) which specifies layers with standards that are really easy to parse for simple networking appliances. IPv4 is one such standard that works on the Network layer。它是用固定大小的地址定义的,因此路由器基本上希望读取 4 个字节(32 位)作为地址,然后再读取其他内容。

如果我们需要使这些可扩展,那么我们必须重新编程路由器以读取 ex 的字节数。然后读取该字节数。听起来容易吗?对于这些可怜的路由器来说,要有他们必须读取的预定义字节数,(我们在 IPv4 中这样做,在 IPv6 中增加),我们不得不重新编程路由器以接受新标准(IPv6) 旧路由器根本无法识别 IPv6(我们确实有一些回退机制来简化交易)。

有很多方法可以解决 IPv4 号码耗尽问题。私有地址、网络地址转换等

例如,您提议的内容已经存在,并且实际上是 IPv6 (0.0.0.0.0.0.0.0)。但它不向后兼容 IPv4。您不能只添加一个额外的数字并期望它适用于旧系统,因为它不会。

让我回答实际问题,其他人似乎都不会这样做:

What I mean is not just extending the format from 32 bits to 128 bits, but why couldn't we do it dynamic?

因为这不是广泛发布的标准的工作原理。您需要在这里了解两件事:

  • IP 必须在超低端硬件或专门的高吞吐量硬件上工作,您想使事情简单易处理吗?
  • 这是一个已发布的标准。除非每个人都可以更新他们的处理,否则更改将导致严重的问题。

IPv6 很久以前就发布了,到目前为止它的普及率很低。你的提议会 运行 进入同样的问题 - 除非每个参与数据包交换的人都可以处理它,否则它将是有问题的。所以,它是有问题的,需要很长时间。

是的,我们可能已经动态添加了第 5 个字节而不是 128 位数字,但他们决定进行一次更新 - 而且这个更新陷入了困境很多很多很多年,因为人们不这样做无故升级他们的代码。任何较小的更新 - 正如您所建议的那样 - 都会面临同样的问题。除非每个人都更新 - 你有一个问题,你新修改的协议不可用。

还有:

so how would a router deal with ~1Gb of data in one sec, without having to do any complex computations (it's just a router, it doesn't pack actual horsepower

说真的,路由器确实具备强大的功能,包括处理高端场景的专用芯片。交换机通常是低马力硬件,价格针对低端进行了优化,但真正的路由器 - 您似乎认为 1gb 很多。这些天路由器处理多个 10gb 流以及通过 GBP 更新千兆字节大路由 tables。高端路由器涉及强大的功能。我知道 100g router/switch 组合实际上通过 ASIC 在硬件中进行 IP 路由。即每个端口 100g。以防万一。这些是实际上可以进行完整路由的第 2 层交换机,只是 - 好吧,专用硬件。

https://www.mellanox.com/related-docs/prod_eth_switches/BR_SN3000_Series.pdf

下端:

https://mikrotik.com/product/CCR1072-1G-8Splus

这是一款中低端路由器。处理高达 5x10g。包括 72 核处理器。这是低端的,并且因为在 GBP 的路由 table 处理端没有足够的马力而被反复指责。一旦你甚至在 Mikrotik 上需要更多的吞吐量,你就会选择至强。

而且没有人真正关心那里的数据量 - 这完全是关于 PPC - 每秒数据包 - 无论有多少负载附加到一个包(处理只是转发)。因为有很多应用程序依赖小的频繁数据包来最小化延迟。