问题

为什么IP地址最高只能到255.255.255.255,而不能扩大到999.999.999.999?

回答
这得从IP地址的设计初衷和它所依赖的技术基础说起。你提出的问题,其实触及到了网络通信的底层逻辑和历史演进。

为什么是“点分十进制”和“四段数字”?

我们现在看到的IP地址,比如 `192.168.1.1`,它是一种“点分十进制”的表示方法。之所以选择这种方式,主要有以下几个原因:

1. 易于人类记忆和书写: 在计算机网络刚起步的时候,虽然有机器在通信,但最终还是需要人来管理和配置网络。相比起一长串无规律的数字(比如二进制),分成四段、每段用点隔开的十进制数,会更加直观和容易记忆。你只需要记住每一段的数值,而不是一串可能长达几十位的二进制数。

2. 历史的惯性与IPv4协议的限制: 我们现在广泛使用的IP地址是IPv4(Internet Protocol version 4)。这个协议在设计之初,就规定了IP地址的长度是32位(bits)。

二进制表示: 如果用二进制来表示,一个IPv4地址就是32个0或1的组合。例如:
`11000000 10101000 00000001 00000001`
这32位二进制数,被分成了四组,每组8位。

每组8位二进制能表示的十进制范围: 8位二进制数,可以表示从 `00000000` 到 `11111111` 的数值。
`00000000` 对应的十进制是 `0`。
`11111111` 对应的十进制是 `255` (计算方法是 2^0 + 2^1 + 2^2 + 2^3 + 2^4 + 2^5 + 2^6 + 2^7 = 1 + 2 + 4 + 8 + 16 + 32 + 64 + 128 = 255)。

所以,每一段十进制数之所以最高是255,就是因为每一段对应了8位二进制数字。这四段加起来正好是 8 + 8 + 8 + 8 = 32位。

为什么不能是999.999.999.999?

如果IP地址可以到999.999.999.999,这意味着每一段数字可以到999。

999对应的二进制是多少? 999用二进制表示,至少需要10位(因为2^9 = 512,2^10 = 1024)。

如果允许每一段是三位十进制数,那么一个IP地址至少需要:
3位 + 3位 + 3位 + 3位 = 12段,每段最多3位。
总共至少需要 10 + 10 + 10 + 10 = 40位二进制。

这就会完全超出IPv4协议规定的32位长度限制。而且,一旦改动这种底层的设计,几乎所有现有的网络设备、软件、协议都需要跟着修改,这几乎是不可能实现的工程。

历史的演进:IPv6的出现

你可能会问,那IP地址会不会不够用?是的,随着互联网的飞速发展,32位的IPv4地址确实面临着枯竭的危机(虽然通过各种技术手段延缓了,但根本问题还在)。

为了解决这个问题,人们开发了 IPv6(Internet Protocol version 6)。IPv6的地址长度是128位,这使得它能够提供天文数字级别的IP地址。

IPv6的表示方式和IPv4完全不同,它使用的是“冒号分隔的十六进制数”,并且更长。例如:
`2001:0db8:85a3:0000:0000:8a2e:0370:7334`

它允许更长的数字组合,甚至可以使用字母。但这并不是因为允许出现“999”这样的数字,而是因为总的位数增加了,可以容纳更多的地址。

总结一下:

IP地址限制在255.255.255.255,是 IPv4协议设计时对地址长度的规定(32位二进制) 决定的。这种设计在当时是为了方便人类管理和使用,并且每8位二进制数对应了0到255的十进制范围。尝试将每一段扩展到999,就意味着需要更多的二进制位数来表示,这会打破IPv4的架构。而新的IPv6协议,通过增加总位数和改变表示方法,解决了地址不足的问题,但也不是简单地允许更大的十进制数字。

网友意见

user avatar

电脑的所有数据都是二进制的。

你看到的地址是255,实际上存储在电脑里内部的数据是11111111,翻译成了255显示在你的面前。

而每一段ipv4地址上限是八位数,所以最多只能表示255。

user avatar

路过强答一番, 蹭点盐值, 盐值低迷,俺豁出去了。

更新:俺热泪盈眶, 赞竟然破百了。多谢各位父老乡亲兄弟姐妹。 不胜感激!




其实您如果喜欢十进制数字, 88888888 这样的 IP 地址也是可以有的。

80% 的知乎读者可能不知道,

ping 2646190095

ping 157.185.168.15

以及

       ping  www.163.com      

是等价的。


俺知道很多人以为俺在瞎扯蛋, 但是只要他们复制粘贴,PING 过一轮以后就会大惊失色......

会以为俺黑了他们的电脑。


       ping  2646190095   ping 157.185.168.15     


2646190095 就是

       www.163.com     

的 IP 地址。


只不过大家都很懒, 不愿意记 2646190095 这样的 IP 地址。


2646190095 (DEC) = 10011101101110011010100000001111 (BIN)


10011101101110011010100000001111

分成 4 节, 就是

10011101 10111001 10101000 00001111


10011101 (BIN) = 157 (DEC)

10111001 (BIN) = 185 (DEC)

10101000(BIN)= 168 (DEC)

00001111(BIN)= 15 (DEC)




Vinton Gray Cerf (互联网的先驱者)说, 互联网原先只是个破实验:

“当我们在考虑互联网的时候(想好了,这将是一些任意数量的网络都相互连接--我们不知道有多少,也不知道它们将如何连接),但国家规模的网络我们认为 "好吧,也许每个国家会有两个"(因为它很昂贵:此时以太网已经被发明了,但它没有像几年后那样到处扩散)。然后我们问 "有多少个国家上网?" (每个国家有两个网络,有多少个网络?)

我们没有谷歌可以放狗,所以我们猜测有128个,那就是2乘以128就是256个网络(那是8位),然后我们问 "每个网络上会有多少台电脑?" 我们问 "1600万台怎么样?" (那又是24位)所以我们决定一个32位的地址方案,允许43亿个终端。在1974年左右,我认为这足够做这个(破)实验了!"



       ping  2646190095   ping 157.185.168.15   $ traceroute 2646190095 traceroute to 2646190095 (157.185.168.15), 30 hops max, 60 byte packets  1  _gateway (10.X.X.X)  1.340 ms  2.058 ms  2.474 ms  2  ...... (......)  32.081 ms  33.221 ms  33.466 ms  3  ........ (..........)  34.610 ms  35.906 ms  38.026 ms  4  .......... (X.X.X.X)  44.245 ms  44.514 ms  44.384 ms  5  XXX.XX.XXXXXXX.XX (X.X.X.X)  43.928 ms  49.866 ms  49.742 ms  6  sea-b2-link.ip.twelve99.net (213.248.67.224)  49.436 ms  47.761 ms  48.835 ms  7  * * *  8  motl-b2-link.ip.twelve99.net (62.115.118.189)  85.243 ms  85.111 ms  84.905 ms  9  hongkongseaga-svc071561-ic358027.ip.twelve99-cust.net (213.248.100.103)  81.549 ms  81.319 ms  87.188 ms 10  * * * 11  157.185.168.15 (157.185.168.15)  95.818 ms  95.689 ms  95.909 ms    ping www.163.com     


       traceroute to 88888888 (5.76.86.56), 30 hops max, 60 byte packets  ......   9  40.ecr1.nyk.cw.net (198.32.118.40)  95.085 ms  101.880 ms  101.676 ms 10  ae3-xcr1.nyh.cw.net (195.2.16.133)  177.062 ms  177.232 ms  186.902 ms 11  et-10-1-5-xcr1.ptl.cw.net (195.2.24.242)  173.821 ms  175.565 ms  175.384 ms 12  ae1-pcr1.fnt.cw.net (195.2.9.125)  186.702 ms  187.021 ms  188.184 ms 13  217.161.70.38 (217.161.70.38)  180.008 ms  175.841 ms  172.059 ms 14  188.254.15.133 (188.254.15.133)  235.900 ms  236.509 ms  236.200 ms 15  * 81.177.105.78 (81.177.105.78)  282.880 ms 188.128.11.198 (188.128.11.198)  253.313 ms 16  95.59.172.36.static.telecom.kz (95.59.172.36)  285.113 ms 95.59.172.34.static.telecom.kz (95.59.172.34)  272.049 ms 95.59.172.36.static.telecom.kz (95.59.172.36)  300.452 ms 17  95.59.172.48.static.telecom.kz (95.59.172.48)  299.387 ms 95.59.172.55.static.telecom.kz (95.59.172.55)  302.452 ms 95.59.172.48.static.telecom.kz (95.59.172.48)  299.550 ms 18  82.200.243.189 (82.200.243.189)  297.466 ms * * 19  * * * 20  * * * 21  * * *      


       traceroute to 99999999 (5.245.224.255), 30 hops max, 60 byte packets  ......  6  sea-b2-link.ip.twelve99.net (213.248.67.224)  45.754 ms  52.851 ms  42.484 ms  7  nyk-bb2-link.ip.twelve99.net (62.115.137.58)  170.047 ms * *  8  nyk-bb1-link.ip.twelve99.net (80.91.246.163)  192.789 ms * nyk-bb2-link.ip.twelve99.net (62.115.137.58)  209.151 ms  9  ldn-bb1-link.ip.twelve99.net (62.115.113.21)  208.970 ms ldn-bb4-link.ip.twelve99.net (62.115.112.245)  209.488 ms  209.633 ms 10  ldn-b1-link.ip.twelve99.net (62.115.143.27)  210.676 ms ldn-b1-link.ip.twelve99.net (62.115.114.235)  211.095 ms ldn-b1-link.ip.twelve99.net (62.115.143.27)  210.840 ms 11  mobily-ic309131-ldn-b1.ip.twelve99-cust.net (62.115.50.214)  270.596 ms  270.765 ms  271.859 ms 12  static-86-51-65.mobily.com.sa (86.51.65.236)  284.155 ms static-86-51-65.mobily.com.sa (86.51.65.232)  292.853 ms static-86-51-65.mobily.com.sa (86.51.65.236)  256.311 ms 13  86.51.82.85 (86.51.82.85)  259.882 ms 86.51.82.81 (86.51.82.81)  278.234 ms  280.935 ms 14  86.51.89.98 (86.51.89.98)  263.149 ms  262.776 ms  279.755 ms 15  * * * 16  * * *     




看看书吧, 书上都有的。


~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~`

看看这个话痨答主还有啥奇葩崩坏魔愣回答/散文:


类似的话题

本站所有内容均为互联网搜索引擎提供的公开搜索信息,本站不存储任何数据与内容,任何内容与数据均与本站无关,如有需要请联系相关搜索引擎包括但不限于百度google,bing,sogou

© 2025 tinynews.org All Rights Reserved. 百科问答小站 版权所有