为什么 ip4 不改成 999.999.999.999 的形式?
source link: https://www.v2ex.com/t/929294
Go to the source link to view the article. You can view the picture content, updated content and better typesetting reading experience. If the link is broken, please click the button below to view the snapshot at that time.
我算了一下,如果 IPV4 全部是三位 999 ,那 4 个部分加一起,就是 9999 亿个数字,按照地球人口 99 亿来计算,每一个人能分到 100 个公网 IP4 Plus ,完全够用了。
我自己最多需要 10 个公网 IP ,还可以剩余 90 个。
Rocketer 13 小时 49 分钟前 via iPhone 77 你……没学过网络基础知识?
你以为 IP 地址是十进制的? 那只是方便记忆和输入而已。 |
saka0609 13 小时 48 分钟前 你以为十进制呢?
|
ahhui 13 小时 48 分钟前 4 ???一个 byte 如何存进去 999???
楼主不如更进一步,IP 地址用字符串表示吧,要多少有多少??? |
cmdOptionKana 13 小时 48 分钟前 可能因为 ip 地址根本不需要对人类友好(这个因素的优先度很低),另外 999 只能满足人联网,不能满足物联网。
|
Rocketer 13 小时 47 分钟前 via iPhone 53 这算是典型的思而不学吧?
|
mineralsalt 13 小时 47 分钟前 你要学计算机的基本原理, 这世界上的一切都是有规则的和继承的. 十进制 255 是 8 位二进制数, 对应一个字节
|
xixibb 13 小时 44 分钟前 其实可以的,一个 byte 存不进去那就用 2 个咯。这玩意儿又不收钱,估计是以前的人没想到这么多 ip 都快被用完了。。。
所有楼上那些扯计算机原理的都是瞎扯蛋。。。。 |
InDom 13 小时 42 分钟前 @xixibb 以前可能 byte 确实挺贵的, 带宽低吧, 而且如果是 两个 byte , 我猜肯定会是 1024, 而不是 999 了, 那到最后会有人来问: 为什么不是 9999 啊?
|
cmdOptionKana 13 小时 41 分钟前 16 @saka0609
@mineralsalt 楼主的表达有瑕疵,但他真正的问题很显然不是为何 ip4 是现在这个样子,而是在推翻 ip4 的前提下,推出 ip5 也好、ip6 也好、ip7 也好,新的 ip 地址为什么要 ip6 那么复杂,简单点短点也够用。 既然问题是推翻 ip4 ,那么 ip4 的历史和现状就不重要了,多少进制也不影响新的 ip 地址设计。 |
tool2d 13 小时 41 分钟前 @ahhui "一个 byte 如何存进去 999"
ip4 只有 4 个 byte ,可以再多 2 个 byte 啊,一共 6byte ,这样就能表示 999 了。 主贴写了 IP4 Plus ,Plus 等于多 byte 的进化版本。 ip6 有 16 个 byte ,也太多了,目前完全用不上。 |
asche910 13 小时 40 分钟前 2 但凡学过计网,也问不出这个问题
|
nothingistrue 13 小时 40 分钟前 4 楼主只是随便想一下,没想到楼下还有更甚的。计算机的概念,不让人扯计算机原理,这已经不止是无知了。
|
neurocomputing 13 小时 40 分钟前 2 这里不应该是码农社区吗?
|
ahhui 13 小时 38 分钟前 |
banmuyutian 13 小时 38 分钟前 楼主先从计算机网络学起吧,不是一言两语能说完的
|
Jaron0608 13 小时 37 分钟前 via Android 赞同 10 楼,上边扯计算机原理的有点偏题了哈
|
gbw1992 13 小时 37 分钟前 1 "可以再多 2 个 byte " 这是历史的局限性,当初比尔盖茨还说过"640K 内存都足够了"
|
yunyuyuan 13 小时 36 分钟前 2 +2 个比特的话,是 2^10 ,即 1023.1023.1023.1203
这个 999 ,很难让人不联想到楼主没搞明白 10 进制和 2 进制 |
choury 13 小时 35 分钟前 2 现在 ipv4 协议里面只有 4 位存 ip 地址,不管要想加几个 byte ,它都不是 ipv4 协议了因为不兼容了。所以反正加都加了,为什么不多加几个 byte ,不然过几年又不够了,再搞个 ipv8 ?
|
CodeCodeStudy 13 小时 33 分钟前 IP v4 是由 4 个字节组成的,所以 192.168.1.1 就是由 4 个部分组成,每个部分是一个字节,一个字节 8 位,2 的 8 次方就是 256 ,所以每个部分的取值从 0 到 255
|
rwecho 13 小时 31 分钟前 via Android 1 @tool2d 按物联网算,不能按人。一个人不知道要联系多少 IP 。并且 999 也不好记忆。这个结论应该是很多人讨论和商讨后给出的一个折中方案。所以 IPv6 是怎么来的?
|
Eytoyes 13 小时 31 分钟前 3 实际上所谓 ipv4+和迭代 ipv6 设备成本是一样
老旧设备不更换升级两个都用不了 那么为什么不直接迭代升级到 ipv6 并兼容 ipv4 呢 |
hhjswf 13 小时 29 分钟前 via Android 为什么要对人类友好,二进制 16 进制对人类不友好是不是也得改?
|
luomao 13 小时 29 分钟前 1 一开始我以为是 op 钓鱼,没想到真的能调出这么多鱼
|
cassyfar 13 小时 28 分钟前 “可以再多两 Byte”啊?
计算机还可以 0 和 1 之外加个 -1 ,直接实现 AI 觉醒。 |
msg7086 13 小时 26 分钟前 谁告诉你一个人分到 100 个公网 IP 就够用了?
|
Tink 13 小时 25 分钟前 现在 v6 就是解决这个问题的
|
Tink 13 小时 25 分钟前 以前设备性能根本不够的查表的
|
abc0123xyz 13 小时 24 分钟前 1 我只记得
2 进制 11111111 -> 10 进制 255 剩下的还给老师了😂 |
Kiriya 13 小时 24 分钟前 8 位 2 进制最大 1111 1111 换成十进制就是 255 ,所以 ipv4 0.0.0.0-255.255.255.255
|
thosai 13 小时 24 分钟前 1 我感觉楼主只是提了一个问题,可能没考虑那么全面,楼上的没必要冷嘲热讽,一棒子打死提问题的人
|
dqzcwxb 13 小时 23 分钟前 我吃第八个馒头就饱了,前七个没必要吃啊
|
makelove 13 小时 21 分钟前 要说 ipv4 4 个字节也将就全人类用了,v6 直接来个 16 字节,确实可能是被网络升级的麻烦搞怕了想一步到位用到世界末日,当然了 16 字节的好处是可以用得很奢侈
|
yolee599 13 小时 21 分钟前 OP 是骗回复的吧,既然 999 可以那干脆多加几个 9 不是更好
|
wy315700 13 小时 18 分钟前 7 楼上很多人提到了计算机原理
但是感觉没提明白 IP 地址是 80 年代提出来的,当时主流芯片都是 16 位和 32 位的。 估计当时的人觉得 16 位肯定不够用,就把 IP 地址定义成了 32 位,方便在一个指令里计算。如果按楼上所说, 至于 xx.xx.xx.xx 只是为了方便人读写而已。 后来 ipv6 在 90 年代定义的时候,64 位处理器出来了,但是怕 64 位的 IP 地址重蹈覆辙,还是不够用,于是就用了 64 位的两倍宽度,128 位。 不让人提计算机原理非蠢即坏 |
BiChengfei 13 小时 17 分钟前 999 在技术上完全可以实现,但 999.999.999.999 ,绝对不够用
|
NoOneNoBody 13 小时 15 分钟前 1 解决提问的人是人类共识,不仅是某些人才会,🐶
|
belin520 13 小时 10 分钟前 @nothingistrue “我不管什么科学,我不管什么定律,我在网上讨论就是要特立独行,就是要赢”,大部分人的心态,程序员尤甚
|
mangoDB 13 小时 8 分钟前 关键字:32 位 点分十进制
|
Danfi 13 小时 8 分钟前 因为你现在是以现代人的眼光看待历史
|
des 13 小时 7 分钟前 via iPhone |
wulili 13 小时 4 分钟前 ipv6 的格式看着确实挺难受的,虽然这不是为人类设计的,但是搞这方面的技术还是难免会经常和 ip 打交道。
相比 999 ,那感觉不如设计成 65535.65535.65535.65535 ,刚好 64 位。 至于说未来够不够用,我觉得真到了那时候,现有的 ipv6 会一样不够用。 也许未来等量子通信或者其他革命性的通信手段问世,甚至都不需要 ip 协议了,会产生一种全新的概念体系。 |
Shura 13 小时 3 分钟前 这就是典型的民科思维
|
langmanxiaoa 13 小时 0 分钟前 别钓了别钓了
|
kkwa56188 12 小时 59 分钟前 |
c3de3f21 12 小时 53 分钟前 10 擦了,大家攻击性真强啊,好像毒蛇一样
|
ys0290 12 小时 53 分钟前 via iPhone 999 看起来方便,其实还是很快会不够用,不如一步到位用现在的 ipv6 ,至少把那个不得不换的时间推迟到无法预期的时候
|
adian 12 小时 49 分钟前 有这种问题很正常吧,刚接触计算机网络,都是先知道 IP 这个东西,再知道内部的原理,概念的抽象程度够用就行,再说你要问大伙儿 ABCDE 类 IP 等等细节,大伙儿一时半会也反应不上来的。
昨天刚有消息,移动网络 IPv6 流量超过 IPv4 |
deplivesb 12 小时 49 分钟前 民科的既视感
|
wulili 12 小时 49 分钟前 @Cat7373 那也太长了点。。。阅读性和记忆性和现在的 ipv6 一样差。64 位对应的 65535 好歹是个比较折中的数字,这个容量在计算机领域也很常见,大家都比较熟悉
|
lonenol 12 小时 47 分钟前 1 大早上被你逗笑了。。
|
Vraw5 12 小时 47 分钟前 多加 2 byte ,换一次设备。再过几十年又不够用了,再加 2 byte ,再换一次设备。
op 不当天朝管理员真可惜了,直接拉动 GDP 的飞升,要啥房地产 |
shyangs 12 小时 46 分钟前 |
Felldeadbird 12 小时 43 分钟前 楼主这个问题是抛开了历史包袱去提问。
|
zmqiang 12 小时 39 分钟前 @tool2d 已经部署出去的上多少亿的设备,谁去升级,谁去匹配?甚至不是软件,有很多还是硬件需要升级。如果是完全新建一个网络,没问题。但现实中,是需要兼容的。
|
aulayli 12 小时 39 分钟前 via Android 你主动去百度或者谷歌一下就不会来问这个问题了。
|
xtinput 12 小时 37 分钟前 @tool2d 人均 100 也不够用呀,我们公司大楼有 10 万多个物联网设备节点,目前都是 r485 的,如果用 ip····
ip 地址不是给你看的,是给路由器识别的,999.999.999.999 怎么存储?路由器读取数据是一个 byte 一个 byte 的读取的,6 位那也是 255.255.255.255.255.255 |
adoal 12 小时 35 分钟前 1 写成十进制数字( 0~255 )只是为了方便人来看的一种 notation 而已。
其本质在于协议里的设计是二进制( 00000000~11111111 )的,按十进制的“整数”边界来切分必然切不整齐。 There are 10 kinds of people those who know binary and those who don't. |
neptuno 12 小时 35 分钟前 是这样的,本质上就是个地址嘛,设置多长都可以,但你得看历史,可能当时就觉得不可能人人都有电脑
|
WebKit 12 小时 30 分钟前 via Android @shyangs 是啊,ipv6 设计的目的就是不会被用完啊。如果简单就用完了还设计 ipv6 干啥。ipv6 可以给地球的每粒沙分配一个地址
|
bigtan 12 小时 30 分钟前 IP 无论是过去还是现在基本上都是硬件实现吧 如果加一位数全球都换一遍设备不现实 所以不到万不得已不会升级 即使升级也希望一次性一劳永逸
|
mcone 12 小时 30 分钟前 2 看到标题以为是个钓鱼贴,直到我看到了楼上某人的回复
> 其实可以的,一个 byte 存不进去那就用 2 个咯。这玩意儿又不收钱,估计是以前的人没想到这么多 ip 都快被用完了。。。 协议不要钱,但是实现协议的设备,哪个不要钱? > 所有楼上那些扯计算机原理的都是瞎扯蛋。。。。 可能说这句话的人,可能就没有学过计网或者组原,至少连发展历史都不知道…… |
oneisall8955 12 小时 26 分钟前 隔这钓鱼呢?
|
libook 12 小时 26 分钟前 当初设计 IPv4 的时候,计算机还是个新奇玩意,设计者觉得这些需要网络的特殊机构永远也不可能填满 IPv4 的地址,后来谁也没想到互联网能发展到这种程度,而且只有三四十年就爆炸成这样了,恨不得每盏灯都要接入网络。
计算机界很多问题都是这样来的,比如千年虫问题。 因为计算机二进制的特点,所以计算机界普遍习惯使用 2 的 n 次方来取整;如果用 5 字节的话二进制就是 1 后面 40 个 0 ,无论用两个 32 位的单元还是用 1 个 64 位的单元都会有空间浪费(是的,因为他们也是使用 2 的 n 次方的思路来设计的,而且有可能就是两两相拼来扩展的);所以比 IPv4 ( 4 字节)更长的地址就会首先考虑 8 字节和 16 字节。 不选择 8 字节的原因可能是标准制定组织对互联网的发展相对乐观,认为 8 字节无法满足未来几十年的需要,不希望短期内再遇到 IPv4 一样的窘境,毕竟升级协议对全世界来说都是一个极大成本的事情。当然人们只能根据当前的认知来估算,也没准很快 IPv6 也不够用了。 IPv6 本身是个技术性需求,对绝大多用户来说应该不需要去阅读和记忆这个地址,所以咱们技术人员群体是否觉得记忆起来麻烦,本身就不是高优先级考虑的事情。 其实技术人员也知道这玩意有点反人类,所以也搞出了很多起因技巧来缓解问题,比如: 1. 使用缩写形式:IPv6 地址中连续的多个 0 可以缩写为一个"::",这样可以减少地址的长度,使得地址更易于阅读和记忆。例如,2001:0db8:0000:0000:0000:ff00:0042:8329 可以缩写为 2001:db8::ff00:42:8329 。 2. 用域名或 hostname 。 3. 有一些工具可以将 IPv6 地址转换为易于记忆的字符串。例如,将 IPv6 地址转换为类似于"tide:map:win:rich"的字符串,这些字符串更容易记忆。 4. 使用 IPv6 前缀:IPv6 地址中的前缀可以用来标识网络或子网,这可以减少地址的长度,并帮助人们更好地理解 IPv6 地址。例如,2001:db8:abcd:1234::/64 中的"/64"表示子网的前缀长度。 |
AMZsowhat 12 小时 25 分钟前 我的评价是: 壹万亿.壹万亿.壹万亿.壹万亿
|
jmliang 12 小时 25 分钟前 我还以为进了知乎
|
tool2d 12 小时 21 分钟前 @xtinput IPV6 里,有个特殊格式,叫 ipv4 映射地址。
比如 1.2.3.4 可以映射到::ffff:1.2.3.4 同理,只要把 999.999.999.999 通过规则,自动化映射到 ipv6 的一小部分保留空间就可以了。这样至少比手工输入一个 ipv6 ,要省事不少。你连接一个 ssh 地址,就不用输入一大串十六进制的 ip6 ,只需要十进制的 ipv4 plus 。 |
Ericcccccccc 12 小时 21 分钟前 想想你自己一只手拿着一个盒子, 每个盒子刚刚好装一个球, 这个时候你说我要装第三个.
实在是装不下. |
Ericcccccccc 12 小时 20 分钟前 你说的再多几位就和你多长几只手差不多.
|
fisherwei 12 小时 20 分钟前 @xixibb
技术上不能完全做到,成本会高出天际 你不要总盯着自己电脑上的 IP 地址看,如果搞出这种 1 个 byte 不够用,2 个用不完的 IP 地址,子网怎么划分? BGP 表要怎么做?路由搜索怎么搜? |
leonshaw 12 小时 17 分钟前 IP 地址不只是标识,它首先是一个地址,要能够路由。目前骨干路由器不可能承载全网的主机路由,所以地址分配必须按段划分,使路由器需要的路由能够聚合、条目尽可能少。
按段划分要么预先规划的很好,要么空间要足够大,不然很容易出现局部不够用的问题。”每人 10 个“这个量级应该是不够的。 另一方面,从路由性能考虑,这个划分应该是按二进制前缀,表示方式也尽量跟二进制接近,不然写个 12.625.920 ,很难看出它最后两个字节是 0. |
lizenghui 12 小时 10 分钟前 大哥 是怎么知道 IP4 的 是装修工人给你说的?
|
emeab 12 小时 9 分钟前 是的. 早餐只吃第三个包子就好了 前两个不用吃
|
xtinput 12 小时 4 分钟前 @tool2d 它再怎么映射也是以 byte 为单位的,计算机识别都是 2 的指数才能最大效率,要么一个字节要么两个字节,或者 4 个字节,你 999 是怎么搞的?
999 要 1024 ,是 10 位,一个字节 8 位,10 位怎么放? 对于计算机 10 位的数据也要占用两个字节,那么就是 2*4*8=64 位地址,ipv4 是 32 位,ipv6 是 128 位,跳过了 64 位直接到 128 位,原因好像就是之前吃过一次 ipv4 地址不够用的亏,所以就直接上 128 位了 |
frankies 12 小时 4 分钟前 via Android 好家伙,还以为点进了知乎。。。
|
shwnpol 11 小时 55 分钟前 建议先练习一下二进制转 16 进制的习题
|
lixinrui000 11 小时 53 分钟前 1 就是设计缺陷。ipv4 数量太少,ipv6 可读性差,楼主的这个设计兼顾了可读性和数量,使用 5bytes 存储,实现上也没问题,就是存在一些浪费。
|
dcty 11 小时 53 分钟前 你们说了那么多好不好记的问题,有没有可能通过域名就可以解决了。
|
GeruzoniAnsasu 11 小时 49 分钟前 1 总觉得这个问题应该出现在弱智吧,但又稍微有点专业,描述起来太复杂没有弱智吧帖子精简有力的趣味
|
Hellert 11 小时 47 分钟前 via Android 都没说到重点,这和 CPU 的字长有关系。
|
sdwgyzyxy 11 小时 44 分钟前 有没有可能,这家伙是来骗币的?
|
cc666 11 小时 43 分钟前 1 先不说技术上的问题
可能设计 IPv4 的时候,设计这也是这么想的,每人 1 个也够了,然后发展到现在,明显不够了。 如果按照 999.999.999.999 的形式,你想每人 100 个也够了,可能发展一些年后又不够了,100 个只是对你自己来说够而已,网络中还有大量的中间设备,物联网设备,远远比你想得复杂,你这个格式可能过几年就变成了 9999.9999.9999.9999 ,哈哈,全球网络设备再升级一次吧,IPv4 升级到 IPv6 这么多年了还是这样子呢。 并且 IP 划分给每个区域的时候,是按照段划分的,你自己区域的可能用不完,对别的区域来说就缺了。 为啥不直接暴力点上 IPv6 ,至于对人类实在是太不友好这一点,你除了几个内网地址,还能记得住谷歌百度 GitHub 的 IP 地址么?你给我背诵几个看看? IP 地址本来就不是对人类友好的,还能不然要域名干什么? |
Recommend
About Joyk
Aggregate valuable and interesting links.
Joyk means Joy of geeK