「Network」127.0.0.1 与 0.0.0.0

简述:我对 127.0.0.10.0.0.0 这两个地址的概念一直都,好像了解,但却说不清楚。最近写博客的冲动比较强烈,遂查阅诸多资料,作解惑与收录。


1 127.0.0.1

127.0.0.1IPv4loopback 地址localhost 这个主机名称一般会解析为 127.0.0.1

  • 所谓 loopback(环回,无助于理解的翻译) 机制,就是不借由本机网络接口(network interface)和本机接入的网络,实现(仅限)在本机中的网络服务

  • loopback 地址是一个接口(interface),基于软件实现,与硬件没有关联,也并没有实际接入外部网络。使用 loopback 网络接口会忽略本地的网络接口硬件。

  • 127.0.0.1 指向本机,通过在浏览器地址栏输入 127.0.0.1 及某一端口号, 可与 监听这一地址和该端口的本机程序进行连接。

If you enter an IP address (or corresponding domain name) in your browser, the router will forward your request to the internet and to the correct server. This means that if you enter 172.217.0.0, you will reach the Google homepage. However, the situation is different with 127.0.0.1 because requests to this address will not be forwarded to the internet. TCP/IP recognizes from the first block (127) that you don’t want to access the internet, you are calling yourself instead. This then triggers the loopback.

  • 实际上,IPv4 loopback 地址是 127.0.0.0/8,也就是形式为 127.xxx.xxx.xxx 的所有地址(除了 127.255.255.255),总数超过1600万。这意味着,在浏览器地址栏输入这1600多万 IPv4 地址的任一个以及相应端口,都能连接到监听程序。

如图所示,输入 127.0.0.1:4000127.1.1.1:4000127.255.255.1:4000三个不同的地址,均能跳转至 Hexo 首页。

loopback1

loopback2

loopback3

2 0.0.0.0

IPv4 中,0.0.0.0 是一个不可路由non-routable)的地址,用于指向一个无效、不适用或者未知的目标。在不同情况中,这一地址具有不同的含义。

  1. 提到主机地址
    • 在配置服务器时, 可以泛指所有 IPv4 地址,比如绑定监听 socket
    • 当某主机未被分配一个 IPv4 地址时,该主机可以将 0.0.0.0 声明为它的地址。比如在通过 DHCP 获取地址时,主机向所在子网发送一个 DHCP discover 的链路层帧(Frame),帧中的 IPv4 数据报的源 IPv4 地址就是 0.0.0.0,因为该主机还未分配地址。
  2. 提到路由表(routing table
    • 0.0.0.0/0 作为 默认路由(default route)的 目的地址(Destination )字段。(这里需要对 CIDR 有基本的了解)因为 CIDR 的最长前缀匹配(longest prefix match)规则,而0.0.0.0/0 的子网掩码长度为0,所以0.0.0.0/0 将是路由表中的最后匹配,即默认路由。
    • 0.0.0.0作为路由表中规则的网关(Gateway)字段。没有指定去往目的子网的相应网关,也就是说目的地址在同一网段,通信时不需要经过网关。

3 参考


以上!

作者

Alex

发布于

2019-09-21

更新于

2021-06-19

许可协议

评论