如果我的机器有一个公共 IP 地址,那么世界上任何角落的任何人都可以访问这个 IP 地址。这是怎么发生的?我的意思是我的 IP 地址在哪里更新,或者请求者在哪里查看我的 IP 地址是否有效?
答案1
IP 地址就像电话号码,互联网路由器就像电话交换机。
假设我的电话号码是 333-1234。“333”部分是交换机 ID。如果我拨打 333-4567,交换机就会知道我正在尝试拨打同一交换机上的另一部电话。它会查找其数据库中列出的所有用户号码,然后接通我的电话(假设目标号码已列出且不忙)。
如果我拨打 444-2378,我的本地交换机会知道这个号码在另一个交换机上。根据路由表本地交换机要么将呼叫直接路由到交换机 444,要么借助“串联交换机”的帮助。
假设我的完整电话号码是 +62-21-333-1234,我拨打的是 +1-412-678-4466。我的本地交换机发现目的地号码位于另一个国家。它不必有到美国的路由表,但它默认知道必须将呼叫路由到串联交换机。串联交换机也没有美国的路由表,因此它会将呼叫路由到国际交换机。国际交换机做知道如何将呼叫路由到“+1”,但仅此而已。因此,国际交换机将呼叫发送到美国的“最近”国际交换机。美国的国际交换机有一个包含区号的路由表,并将呼叫路由到为区号服务的串联交换机。串联交换机查找具有 ID 678 的本地交换机的路由,并将呼叫转移到那里。最后,“678”交换机检查用户号码 4466 是否存在,并尝试连接呼叫。
互联网也类似:您的默认网关不必知道如何到达整个互联网。如果它遇到无法识别的地址,它会将数据包发送到更高级别的路由器。在最高层(即所谓的“骨干”),路由器知道如何路由到整个互联网,但仅有的IP 地址最左边的八位字节(“区域”)。进入区域后,数据包将由该区域中的路由器处理,该路由器知道到该区域某部分的路由,依此类推,数据包将逐跳传输到“覆盖范围”较小但知识更详细的路由器,类似于电话交换机的工作方式。
答案2
公共 IP 地址就像电话号码。有了 aa.bb.cc.dd 之类的 IPv4 地址,任何人都可以开始尝试敲开每个地址的门,看看有哪些服务可用。它们可以从 1.1.1.1 开始,到 1.1.1.2 等等。就像电话号码一样,它们可以随时拨打,并且像电话号码一样,您可以确定 IP 地址大致位于世界哪个位置。
但是,如果您的系统有特定的 IP 地址,但您没有公开该 IP 地址,那么如果有人认识您并想尝试找到您的机器,他们就必须查看所有存在的 IP 地址,并且必须能够通过机器可能正在运行的某些服务来识别您的机器。这至少是一项艰巨的任务。他们可以通过了解您的 ISP 提供商来缩短列表,但他们仍然无法轻松确定分配给您计算机的公共 IP 地址。
通常,您使用 NAT 在防火墙后面保护自己,这反过来可以提供第一层保护以防止直接探测,并且通常是将系统连接到互联网的标准方法。
关于您问的世界上任何人如何能获得您的 IP 地址的问题,这是路由器和您的 IP 地址的工作。如果我们回到第一个例子,其中 IP 地址的格式为 aa.bb.cc.dd,我可以尝试简化解释,避开繁琐的细节。
- 首先,在“aa”处有一层路由器。将每个路由器视为分配了一个网络号,范围是 1-254。因此,顶层有 254 个这样的路由器,这些路由器只关心第一个数字。
- 当找到网络“aa”的第一个路由器时,该过程将从步骤 1 开始对“bb”和“cc”重复。“dd”现在只是一个由 254 个节点/主机/计算机组成的网络,因此香港的计算机可以直接访问美国的计算机。
由于涉及大量螺母和螺栓,情况可能会变得更加复杂,但尝试这样解释似乎是最简单的方法。
希望有所帮助。