【问题标题】:Why IPv6 use colon as delimiter instead of dot? [closed]为什么 IPv6 使用冒号而不是点作为分隔符? [关闭]
【发布时间】:2011-07-22 19:12:37
【问题描述】:

我找不到 IPv6 使用冒号而不是点作为分隔符的原因。
当地址用端口号描述时,我觉得很笨拙。

[2001:db8:85a3:8d3:1319:8a2e:370:7348]:443

用冒号证明什么?

【问题讨论】:

  • 我不明白为什么这个问题被关闭 - 这对我来说似乎是一个完全合理的问题。了解决策的历史原因通常具有建设性,尤其有助于避免在未来做出同样的错误决策。
  • 你不知道你不能再在 ModeratorOverflow 上提问了吗?

标签: ipv6


【解决方案1】:

我翻阅了older IPv6 RFCs以寻找有关历史的线索,但我认为答案在于RFC 4291 section 2.2.3

3. An alternative form that is sometimes more convenient when dealing
   with a mixed environment of IPv4 and IPv6 nodes is
   x:x:x:x:x:x:d.d.d.d, where the 'x's are the hexadecimal values of
   the six high-order 16-bit pieces of the address, and the 'd's are
   the decimal values of the four low-order 8-bit pieces of the
   address (standard IPv4 representation).  Examples:

      0:0:0:0:0:0:13.1.68.3

      0:0:0:0:0:FFFF:129.144.52.38

   or in compressed form:

      ::13.1.68.3

也就是说,如果 IPv6 地址是点分隔的,您将无法“嵌入”与 IPv4 兼容的地址。

为了解决您对冒号与 URL 中的端口号冲突的暗示,我认为答案是当时 IPv6 was being designed in the early 1990shypertextURL were being designed 同时出现。由于端口号与 IP 地址是分开的,因此没有指定 (port, address) 元组的标准。 (例如,命令行telnet 客户端使用空格将IP 地址与端口隔开。)

【讨论】:

  • 这是一个很好的答案,但你能在这里澄清一下时间表吗? RFC1550 没有提到地址格式,而 1884 比使用“host:port”的 1738 更新。它在 1884 年之前被广泛使用吗?
  • @Thomas,我没有确切的时间表,但您可以从文档的日期推断出从事 IPv6 工作的人不一定会考虑超文本用例。网络直到 1993 年之后的很多年才流行起来。相反,我认为很明显,URL 中的 IPv6 地址格式是事后才想到的。我认为这两个小组分别制定了这些标准,如果他们协调一致,结果可能会有所不同。
  • 是的,但是 IPV6 的采用仍然微不足道,当地址:端口变得如此流行时,他们可能会改变一些事情。他们可以使用下划线、破折号或波浪线,或者使用特殊的包装字符来实现 ipv4-in-v6 特殊语法。说真的,为什么不用下划线或破折号呢? UUID 在任何地方都使用破折号而不受惩罚。
  • @ConstanceEustace,是的,我一直认为使用- 会好得多,因此您不需要使用 shift 键,并且您会受益于该键位于数字上键盘。但没有这样的运气。
猜你喜欢
  • 1970-01-01
  • 2015-03-15
  • 2015-10-15
  • 1970-01-01
  • 2013-03-10
  • 2010-12-12
  • 1970-01-01
相关资源
最近更新 更多