谁选择 127.0.0.1 作为本地主机,为什么?它有什么意义?

Jam*_*ham 21 networking localhost

我几乎肯定这里的每个人都知道 127.0.0.1 的含义。但是,为什么总是本地主机?谁选择了那个任意 IP?为什么选择那个IP?为什么不使用更简单的东西,比如 1.0.0.0?127.0.0.1 有什么特殊含义吗?

Mic*_*ton 41

乔恩·波斯特尔Jon Postel)选择了 127。

互联网号码分配机构( RFC 3232 ) 在他去世前 ( RFC 2468 )接管之前,他是互联网地址和端口分配的“沙皇”,基本上是为这项任务提名自己。( RFC 349 )

早在 1980 年代初期,当我们所知的 IPv4 首次被散列出来时,现有网络在 32 位地址空间中获得了“A 类”地址块,该地址块将于 1983 年生效 ( RFC 801 )。您询问的初始分配和 127 分配,以及“A 类”、“B 类”和“C 类”IP 地址的第一个定义,均首次发布在 Postel 的RFC 790 中。(请注意,“类”在RFC 1519 中CIDR取代,现在是RFC 4632。)

在 RFC 790 中,Postel 将 127 定义为“保留”。

      127.rrr.rrr.rrr                 Reserved                     [JBP]
Run Code Online (Sandbox Code Playgroud)

它的第一个正式定义出现在RFC 990 中,其定义如下:

A类网络号127被赋予了“环回”功能,即更高层协议发送到网络127地址的数据报应该在主机内部环回。“发送”到网络 127 地址的数据报不应出现在任何网络的任何地方。

再次在RFC 1060 中

(g) {127, <任何>}

内部主机环回地址。永远不应该出现在主机之外。

因此,127.0.0.0/8 内的任何地址都将被视为环回并路由回本地主机。

当前的特殊用途 IPv4 地址列表是RFC 6890,它废弃了RFC 5735,而后者又废弃了RFC 3330。RFC 5735 规定:

127.0.0.0/8 - 此块被分配用作 Internet 主机环回地址。由更高级别协议发送到该块内任何地址的数据报在主机内部循环。这通常仅使用 127.0.0.1/32 来实现环回。如[RFC1122] 第 3.2.1.3 节所述,整个 127.0.0.0/8 块内的地址不会合法地出现在任何网络的任何地方。

最后,在任何IPv4 子网中,最低地址不可用,因为它代表网络路由。因此,子网中第一个可用的地址,也就是最常见的地址,是 127.0.0.1。


oɔɯ*_*ɯǝɹ 28

RFC

127.0.0.0/8 - 该块被分配用作 Internet 主机环回地址。由更高级别协议发送到该块内任何地址的数据报应该在主机内部循环。这通常仅使用 127.0.0.1/32 实现环回,但此块内的地址不应出现在任何网络的任何位置 [RFC1700,第 5 页]。

来自维基百科

与所有 IP 地址一样,定义同义主机名只会让人类用户的生活更轻松——而 localhost 是网络先驱们所选择的别名。

另请注意,二进制中的 127 是01111111,即 1 ( 00000001 )的反转和反转值

  • 呃,`10000000 (128)` 是 `01111111 (127)` 的 `not`。“相反”不是按位操作,在这种情况下没有任何意义。 (7认同)
  • @Mlfe 127 的按位值不是偶然的:它是“最后一个”A 类地址,其前导位均为 0。 (6认同)
  • 谢谢!我会投票。但是,唉,我的名声是个孩子。 (4认同)