我见过很多关于 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.110。这称为 DNS(域名系统),DNS 服务器有各种层级,如果 DNS 服务器无法在其自己的 DNS 中找到 IP,它会询问其“父级”。
这些地址通常被分成不同国家/地区的范围,例如 203.xxx 代表澳大利亚。并非所有网络都知道每一个 IP 地址,它们只知道一个非常小的地址列表,足以引导任何到达它们的数据包。
例如:您想打开超级用户主页。
- 在浏览器中输入 superuser.com 并按回车键。
- 您的计算机在其内部 DNS 中查找 superuser.com,并将其转换为 IP,如果在其 DNS 中找不到,它会询问您的 ISP 的 DNS,依此类推,直到获得 IP(64.34.119.12)。
- 您的计算机要求 ISP 的路由器向 64.34.119.12 发送请求数据包
- 您的 ISP 的路由器查看其路由表以查看应将您的请求发送到何处,它发现 64.xxx 在其本地网络之外,因此无法直接发送,所以它将请求发送到更高级别的路由器。
- 这个过程一直持续到数据包到达一个知道该 IP 位于美国某处的路由器,然后它会将数据包发送到它所知道的距离美国最近的路由器。
- 美国路由器看到 IP 中的下一个数字是 34,并且知道这是在东海岸的某个地方,因此它会将其发送到那个方向。
- 在某个地方,路由器看到 IP 已分配给特定的 ISP,因此它将其发送给该 ISP。
- ISP 的路由器看到该 IP 是自己的 IP,就确切知道要将其发送给哪台机器。
- 接收机器收到请求并看到您请求了主页,因此它会收集数据并将其发送回给您。
- 整个过程重新开始。
这一切都发生在几毫秒之内。
这只是一个简化的总体概述,IP 可以以不同的方式分配,一个非常大的公司或军事组织可能拥有全部 125.xxx.xxx.xxx,而一个小的国家可能只分配 275.24.xxx.xxx。