互联网究竟是如何运作的?

互联网究竟是如何运作的?

我见过很多关于 TCP/IP 协议/层、DNS、LAN、VPN、NAT 方案、SSL/TLS/等的信息,我认为这些是互联网运作方式中更“面向用户”的方面。但无论我怎么努力,要了解互联网是如何运作的都很难真的作品(其“内部”部分等)。

一些示例问题,以说明我的意思......

  • 当我通过互联网向计算机发送消息时,该消息会经过哪里(什么样的地方/组织,以及物理位置)直至到达目的地?
  • 为什么我需要从 ISP 获取互联网?为什么我不能直接连接到互联网?
  • 互联网的主要核心“骨干”由什么组成?它是如何工作的?这可能是一个秘密吗?

所以...

1)互联网如何真的工作;是什么让它“旋转”?

2)是否有可能在网上找到更多关于这些事情的好的信息,如果可以,有哪些好的资源?

答案1

互联网是网络的网络。

假设您有一个由 10 个系统组成的网络,每个系统都有一个 IP 地址,Tom 有一个网络,Alice 也有一个网络。您需要与 Tom 和 Alice 建立单独的连接才能与他们进行通信,并产生相关费用。

现在,假设 Tom 连接到 Alice,并且您连接到 Tom,并且 Tom 让您通过他连接到 Alice - 这就是对等。

想象一下需要分别与一百个不同的人建立连接。您无法拥有洲际点对点网络,因此您需要一系列容量非常大的连接,维护起来非常昂贵。理论上,您可以自己接入主干网或运行自己的网络,但从经销商(即 ISP)购买更便宜。ISP 也有对等协议(因此您不必与 Tom、Alice、Ali、Ivan、Ravi、Vanda 等分别签订协议……)。

互联网之所以有效,是因为它以一种连贯的方式将这些不同的、完全不相连的网络联系在一起。实际上,每个“网络”都是一个作为它是网络的集合。

现在我们已经有了大致了解,您可以使用 windows 中的 tracert 和 linux 中的 traceroute 跟踪到服务器的路由。每条路由都会在 ISP 内进行跳跃,然后到达更大的 ISP,最后到达您的最终位置

geek@tamandua:~/pystatgrab-0.5/glances-1.1.3$ traceroute www.superuser.com
traceroute to www.superuser.com (64.34.119.12), 30 hops max, 60 byte packets
 1  menu (192.168.1.254)  7.264 ms  7.224 ms  7.192 ms
 2  bb219-74-xxx-x.singnet.com.sg (219.74.xxx.x)  17.088 ms  18.808 ms  20.773 ms
 3  202.166.xxx.xx (202.166.xxx.xxx)  22.701 ms  24.651 ms  26.585 ms
 4  xe-0-0-0-3000.qt-ar04.singnet.com.sg (202.166.121.129)  28.496 ms  30.633 ms  32.386 ms
 5  xe-8-3-0-0.qt-cr02.singnet.com.sg (202.166.126.209)  34.427 ms  36.272 ms  38.153 ms
 6  ae6-0.singha.singnet.com.sg (202.166.120.186)  40.136 ms  13.885 ms  13.848 ms
 7  ae5-0.beck.singnet.com.sg (202.166.126.41)  15.732 ms  12.018 ms  13.772 ms
 8  203.208.190.57 (203.208.190.57)  17.938 ms  17.923 ms  19.544 ms
 9  ge-1-0-0-0.sngc3-dr1.ix.singtel.com (203.208.173.134)  21.731 ms 203.208.171.213 (203.208.171.213)  23.515 ms 203.208.171.217 (203.208.171.217)  27.320 ms
10  ge-1-1-3-0.sngtp-dr2.ix.singtel.com (203.208.152.21)  29.300 ms  29.313 ms 203.208.171.197 (203.208.171.197)  31.083 ms
11  so-3-0-0-0.laxow-cr1.ix.singtel.com (203.208.151.222)  212.783 ms so-2-0-0-0.laxow-cr1.ix.singtel.com (203.208.151.86)  226.137 ms  202.607 ms
12  203.208.153.142 (203.208.153.142)  204.518 ms  208.651 ms ge-7-0-0-0.laxow-dr2.ix.singtel.com (203.208.183.158)  209.639 ms
13  peer1.com.any2ix.coresite.com (206.223.143.79)  197.931 ms  199.860 ms  213.576 ms
14  10ge.ten1-1.la-600w-cor-2.peer1.net (216.187.88.146)  203.925 ms  219.400 ms  221.328 ms
15  10ge-ten1-2.dal-eqx-cor-1.peer1.net (216.187.124.122)  266.703 ms  266.687 ms  268.531 ms
16  10ge-ten1-1.dal-eqx-cor-2.peer1.net (216.187.124.134)  282.273 ms  247.504 ms  249.410 ms
17  10ge-ten2-1.atl-telx-cor-1.peer1.net (216.187.124.118)  251.279 ms  253.250 ms  255.212 ms
18  10ge-ten1-1.atl-101mar-cor-1.peer1.net (216.187.120.226)  246.224 ms  262.020 ms  252.336 ms
19  10ge.xe-1-0-0.wdc-eqx-dis-1.peer1.net (216.187.115.37)  281.690 ms  269.931 ms  285.666 ms
20  10ge.ten1-2.wdc-sp2-cor-1.peer1.net (216.187.115.234)  287.404 ms  289.290 ms  291.204 ms
21  216.187.120.254 (216.187.120.254)  293.154 ms  295.091 ms  263.393 ms
22  10ge.xe-2-0-0.nyc-telx-dis-1.peer1.net (216.187.115.221)  265.291 ms  267.265 ms  282.774 ms
23  10ge.xe-0-0-0.nyc-telx-dis-2.peer1.net (216.187.115.182)  278.996 ms  267.974 ms  271.307 ms
24  oc48-po3-0.nyc-75bre-dis-1.peer1.net (216.187.115.134)  273.482 ms  275.482 ms  277.317 ms
25  gwny01.stackoverflow.com (64.34.41.58)  292.767 ms  294.730 ms  296.702 ms

在这种情况下,我距离 singtel 的本地交换机 (XE) 有 4 个跳数,距离 singtel 以 beer 命名的路由器有 9 个跳数,距离他们的洛杉矶交换机 (laxow) 有 11 个跳数,由洛杉矶的对等点 1 传输到纽约的对等点 1。最后,第 25 个跳数的 ISP 可以将我们的流量传递到 Stack Overflow 的服务器。在这种情况下,我们与 Stack Overflow 的流量要经过 25 个连接的网络,直到到达 Stack Overflow 的服务器。

对于我们的目的而言,Singtel 是一个 AS,对等体 1 也是。

这些路线由边界网关协议在网络之间(这样我就可以从 singtel 连接到 peer 1 LA)和AS 内的 IRP

假设你可以运行自己的 AS,制定自己的对等协议等等,但这将非常昂贵

答案2

这是一个非常高层的观点。

互联网基本上是一组全球联网的计算机,为了方便通过这些网络传输大量流量,政府和私人公司在各国之间铺设了大量电缆,这些主要电缆是互联网的“骨干”。偶尔,一艘船会将锚拖到其中一个电缆上,损坏甚至可能将其折断,如果发生这种情况,可能会导致某个国家出现严重中断。

要连接到这个主干网,您需要向电缆所有者支付费用,并且需要硬件,这些都是主要成本,大约数十万美元,甚至数百万美元,如果您个人有钱,您可以不通过 ISP 进行连接。不过,大多数人发现每月支付少量费用更划算。

每当您在互联网上发送信息时,信息都有一个目的地,例如 URL。网络设备很难将消息(拆分为“数据包”)定向到文本地址,因此称为路由器的网络设备会存储与编号地址匹配的 URL 内部列表,即 IP 地址,例如:203.35.57.1​​10。这称为 DNS(域名系统),DNS 服务器有各种层级,如果 DNS 服务器无法在其自己的 DNS 中找到 IP,它会询问其“父级”。

这些地址通常被分成不同国家/地区的范围,例如 203.xxx 代表澳大利亚。并非所有网络都知道每一个 IP 地址,它们只知道一个非常小的地址列表,足以引导任何到达它们的数据包。

例如:您想打开超级用户主页。

  1. 在浏览器中输入 superuser.com 并按回车键。
  2. 您的计算机在其内部 DNS 中查找 superuser.com,并将其转换为 IP,如果在其 DNS 中找不到,它会询问您的 ISP 的 DNS,依此类推,直到获得 IP(64.34.119.12)。
  3. 您的计算机要求 ISP 的路由器向 64.34.119.12 发送请求数据包
  4. 您的 ISP 的路由器查看其路由表以查看应将您的请求发送到何处,它发现 64.xxx 在其本地网络之外,因此无法直接发送,所以它将请求发送到更高级别的路由器。
  5. 这个过程一直持续到数据包到达一个知道该 IP 位于美国某处的路由器,然后它会将数据包发送到它所知道的距离美国最近的路由器。
  6. 美国路由器看到 IP 中的下一个数字是 34,并且知道这是在东海岸的某个地方,因此它会将其发送到那个方向。
  7. 在某个地方,路由器看到 IP 已分配给特定的 ISP,因此它将其发送给该 ISP。
  8. ISP 的路由器看到该 IP 是自己的 IP,就确切知道要将其发送给哪台机器。
  9. 接收机器收到请求并看到您请求了主页,因此它会收集数据并将其发送回给您。
  10. 整个过程重新开始。

这一切都发生在几毫秒之内。

这只是一个简化的总体概述,IP 可以以不同的方式分配,一个非常大的公司或军事组织可能拥有全部 125.xxx.xxx.xxx,而一个小的国家可能只分配 275.24.xxx.xxx。

相关内容