为什么 ip4 不改成 999.999.999.999 的形式?

2023-04-03 09:14:04 +08:00
 tool2d
IPv6 只对机器友好,对人类实在是太不友好了。

我算了一下,如果 IPV4 全部是三位 999 ,那 4 个部分加一起,就是 9999 亿个数字,按照地球人口 99 亿来计算,每一个人能分到 100 个公网 IP4 Plus ,完全够用了。

我自己最多需要 10 个公网 IP ,还可以剩余 90 个。
20072 次点击
所在节点    随想
177 条回复
davidyin
2023-04-03 11:24:55 +08:00
IPv9 呢
dcty
2023-04-03 11:27:23 +08:00
😅 说 IPv4 地址好记的,应该是以为 192.168.1.1/24 或者 10.0.0.1/24 ,我自己若干个 vps ,ip 地址我都没记住。毕竟地址分配到手的时候也是随机的,比如 112.53.26.232,172.217.24.78,39.156.66.10 ,这还只是三个,十个之后还怎么记得住呢。那么最后,最好记忆的,还不是又回到了域名。
zzzmode
2023-04-03 11:31:19 +08:00
不环保
wudi77
2023-04-03 11:35:56 +08:00
最近钓鱼帖增多啊。
minghan0313
2023-04-03 11:37:19 +08:00
就很难相信这是不在钓鱼。

尤其是在 V2 这里。。
lc5900
2023-04-03 11:46:15 +08:00
都 2 个 byte 了,为啥就到 999 ,其他都浪费掉了? 65535 有啥问题么,不就是 FFFF 了么
dtgxx
2023-04-03 11:46:18 +08:00
@Rocketer 你以为二进制就只能表示 0-255 么。。。 没这么设计就是因为之前 v4 的时候压根没考虑 40 多亿地址不够用。 永远不会设计成 999 就是因为它不是 2 的 n 次方。
hezhile
2023-04-03 11:48:12 +08:00
楼上好像没有人提到,当时的设计,是为了兼容其它地址格式的网络
下面是 chatgpt 的回答

-why just use a 8-bit octet for part of the ipv4 ip address?
-IPv4 addresses use 8-bit octets to represent each of the four segments of the IP address for historical reasons.

When the Internet Protocol was first developed in the 1970s, it was designed to work on a variety of different types of networks, each with its own addressing scheme. The use of 8-bit octets was a compromise between the different addressing schemes used by the various networks at the time.

Using 8-bit octets made it possible to represent a wide range of addresses in a standardized way that could work across different networks. It also allowed for efficient routing of packets across the internet by using a hierarchical addressing scheme that made it possible to group addresses together into networks and subnetworks.

Over time, the use of 8-bit octets became a widely accepted convention and is still used in IPv4 today, even though it may not be the most efficient or flexible way to represent IP addresses. It is, however, important to note that IPv6, the newer version of the Internet Protocol, uses 128-bit addresses, which allow for a much larger range of possible addresses, making it less likely that we will run out of IP addresses in the future.
Chaidu
2023-04-03 11:51:01 +08:00
格局打开 9999.9999.9999.9999
lmmortal
2023-04-03 11:59:03 +08:00
那照你有一层的回复,计算机为什么八位算 1 字节呢,算十位岂不是更好么?容量更大又好记,再往回想想为什么要用二进制呢,为什么当初不用三进制八进制十进制十六进制?你甚至不知道现在还有软件在想办法省一位用 7 位二进制字符集吧
fgwmlhdkkkw
2023-04-03 12:04:18 +08:00
@xixibb 那他应该说(2^16-1),而不是 999
Mystery0
2023-04-03 12:17:00 +08:00
没铜币了?
whileFalse
2023-04-03 12:20:01 +08:00
结合 https://www.v2ex.com/t/929300 食用更佳
duduke
2023-04-03 12:29:31 +08:00
钓鱼? v2 不应该这样
nothingistrue
2023-04-03 12:37:57 +08:00
@tool2d #79 从来没有 1.2.3.4 映射到::ffff:1.2.3.4 ,只有反方向的映射。::ffff:1.2.3.4 既可以表示一个 IPV6 地址,也可以表示一个 IPv4 兼容地址,而 1.2.3.4 只能表示一个 IPv4 地址。这只是基础的数学原理。

你得原始需求,只是为了要人好记,能达到这种需求得措施多得很,比如说 hostname ,比如说域名。门太绕就多加标记,不要去拆承重墙。
darkengine
2023-04-03 12:39:53 +08:00
不能说钓鱼,是掌握了流量密码
mxT52CRuqR6o5
2023-04-03 12:44:01 +08:00
既然要多,不如一步到位整的非常长,反正你上百度也是通过域名而不是 ip
prondtoo
2023-04-03 12:50:04 +08:00
楼主:为什么 ip4 不改成 999.999.999.999 的形式?

GPT4: IPv4 ( Internet Protocol version 4 ,互联网协议第四版)地址采用 32 位二进制数表示,通常我们将其写成四个十进制数,每个十进制数对应 8 位二进制数,用点号分隔,如 A.B.C.D 的形式。每个十进制数的取值范围是 0-255 ,因为 8 位二进制数最大表示的十进制数是 255 (二进制 11111111 )。如果将 IPv4 地址改成 999.999.999.999 的形式,那么每个部分的取值范围就不再是 0-255 ,而是 0-999 。这将导致 IPv4 地址的表示变得混乱,不符合现有的 IPv4 地址规范。此外,将 IPv4 地址扩展到这种形式也无法解决 IPv4 地址耗尽的问题,因为这仍然是基于 32 位二进制数的表示。为了解决地址耗尽的问题,业界已经开始逐步采用 IPv6 ( Internet Protocol version 6 ,互联网协议第六版),它采用 128 位二进制数表示,大大增加了可用的 IP 地址数量。

我代替楼主问:我意思是 ipv4 在设计的时候为什么不采用 999.999.999.999 的形式?

GPT4:抱歉刚刚理解错了您的问题。IPv4 在设计时采用了 32 位二进制数表示,这意味着总共有 2^32 (约 42.9 亿)个可能的地址。将这 32 位二进制数分成四部分,每部分 8 位,用点号分隔,每个部分的取值范围为 0-255 。这种表示方法是基于当时的技术需求和网络规模考虑的,当时的互联网规模较小,这样的地址空间被认为是足够的。如果 IPv4 在设计时采用了 999.999.999.999 的形式,那么每个部分的取值范围将扩大到 0-999 ,这将使得 IPv4 的地址空间扩大到 1000^4 (约 1 万亿)个地址。然而,这种表示方法实际上并不能提供更多的地址空间,因为 IPv4 仍然是基于 32 位二进制数表示的。要实现这种表示方法,我们需要更多的位数来表示 IP 地址,这将导致更复杂的网络协议和硬件设计。总之,IPv4 在设计时采用了 32 位二进制数表示,这是基于当时的技术需求和网络规模考虑的。随着互联网的快速发展,IPv4 地址空间已经不足以满足需求,因此现在已经逐步采用了 128 位的 IPv6 地址。

我代替楼主问:现在的 ipv6 太难记了,为什么不用 999.999.999.999 的形式?

GPT4:IPv6 使用 128 位二进制数表示,以增加可用的 IP 地址数量。IPv6 地址通常表示为 8 组 16 位十六进制数,用冒号分隔。相比于 IPv4 ,这种表示方法确实更难记忆。然而,IPv6 的设计目标之一就是为了解决 IPv4 地址耗尽的问题,因此需要更大的地址空间。如果我们将 IPv6 改为类似 999.999.999.999 的形式,那么每个部分的取值范围将是 0-999 。使用这种表示方法,我们需要 12 位十进制数来表示一个 IP 地址。然而,这种表示方法实际上无法提供足够的地址空间。IPv6 的一个主要优势是它具有极大的地址空间( 2^128 ,约 3.4 x 10^38 个地址),而使用类似 999.999.999.999 的形式表示的地址空间将远远小于这个数量。此外,采用这种表示方法可能会导致与现有 IPv4 地址的混淆。IPv4 和 IPv6 是两个不同的协议,它们之间的互操作性有限。为了确保网络设备和应用程序可以正确识别和处理这两种类型的地址,它们的表示方法需要有所不同。虽然 IPv6 地址较难记忆,但实际上,大多数互联网用户并不需要直接处理 IP 地址。通过域名系统( DNS ),我们可以使用易于记忆的域名(如 www.example.com )来访问网站,而无需记住其 IP 地址。在日常使用中,IPv6 地址的复杂性对大多数用户的影响有限。
elmagnificogg
2023-04-03 13:29:44 +08:00
想法很好,而设计者也早就想到了,所以有了 ipv6 ,甚至他还给你留了很多冗余量

唯一的问题在于,ipv6 还没能绝对普及,把 ipv4 彻底淘汰,或许 100 年后可以,那会再回看就没问题了
wangxiaoaer
2023-04-03 13:43:21 +08:00
一个个拿标准来秀优越感,就没有一个说说这么多年硬件性能提升了,标准咋不跟着变化。早期的存储还是软盘呢,现在有几个电脑支持的。

这是一个专为移动设备优化的页面(即为了让你能够在 Google 搜索结果里秒开这个页面),如果你希望参与 V2EX 社区的讨论,你可以继续到 V2EX 上打开本讨论主题的完整版本。

https://www.v2ex.com/t/929294

V2EX 是创意工作者们的社区,是一个分享自己正在做的有趣事物、交流想法,可以遇见新朋友甚至新机会的地方。

V2EX is a community of developers, designers and creative people.

© 2021 V2EX