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