作者: 刘星
日期: 0001年1月01日

互联网是如何运作的

http://web.stanford.edu/class/msande91si/www-spr04/readings/week1/InternetWhitepaper.htm

前言

互联网是如何运作的?这是个好问题!现如今,互联网已经成为我们生活中不可或缺的重要部分。互联网是万维网的基石,是使万维网成为可能的基础设施。互联网是把电脑互相连接起来的一个巨大网络。

从哪里开始?互联网地址

因为 Internet 是一个全球计算机网络,每台连接到 Internet 的计算机都必须有一个唯一的地址。Internet 地址的格式为 nnn.nnn.nnn.nnn,其中 nnn 必须是 0 - 255 之间的数字。此地址称为 IP 地址。(IP 代表 Internet 协议;稍后会详细介绍。)

下图显示了两台连接到 Internet 的计算机;您的 IP 地址为 1.2.3.4 的计算机和另一台 IP 地址为 5.6.7.8 的计算机。互联网被表示为介于两者之间的抽象对象。(随着本文的进展,图 1 的互联网部分将随着互联网细节的暴露而多次解释和重绘。)

如果您通过 Internet 服务提供商 (ISP) 连接到 Internet,通常会在拨入会话期间为您分配一个临时 IP 地址。如果您从局域网 (LAN) 连接到 Internet,您的计算机可能有一个永久 IP 地址,或者它可能从 DHCP(动态主机配置协议)服务器获得一个临时地址。在任何情况下,如果您连接到 Internet,您的计算机就有一个唯一的 IP 地址。

协议与数据包

您的计算机已连接到 Internet 并具有唯一的地址。它如何与连接到 Internet 的其他计算机“交谈”?这里应该有一个例子:假设您的 IP 地址是 1.2.3.4,并且您想向计算机 5.6.7.8 发送一条消息。您要发送的消息是“Hello computer 5.6.7.8!”。显然,消息必须通过将您的计算机连接到 Internet 的任何类型的线路传输。假设您已从家里拨入您的 ISP,并且消息必须通过电话线传输。因此,必须将消息从字母文本翻译成电子信号,通过互联网传输,然后再翻译回字母文本。 这是如何实现的?通过使用协议栈. 每台计算机都需要一台在 Internet 上进行通信,它通常内置于计算机的操作系统(即 Windows、Unix 等)中。由于使用了两种主要的通信协议,Internet 上使用的协议栈被称为 TCP/IP 协议栈。TCP/IP 堆栈如下所示:

协议层 评论 应用协议层 特定于 WWW、电子邮件、FTP 等应用程序的协议。 传输控制协议层 TCP 使用端口号将数据包定向到计算机上的特定应用程序。 互联网协议层 IP 使用 IP 地址将数据包定向到特定计算机。 硬件层 将二进制数据包数据转换为网络信号并返回。 (例如以太网网卡、电话线调制解调器等)

如果我们按照路径显示“Hello computer 5.6.7.8!”消息 从我们的计算机到 IP 地址为 5.6.7.8 的计算机,它会发生这样的事情:

  1. 该消息将从您计算机上协议栈的顶部开始,然后向下工作。
  2. 如果要发送的消息很长,则消息经过的每个堆栈层都可能将消息分解为更小的数据块。这是因为通过 Internet(和大多数计算机网络)发送的数据是以可管理的块发送的。在 Internet 上,这些数据块称为数据包。
  3. 数据包将通过应用层并继续到达 TCP 层。每个数据包都分配了一个端口号。端口将在后面解释,但足以说明许多程序可能正在使用 TCP/IP 堆栈并发送消息。我们需要知道目标计算机上的哪个程序需要接收消息,因为它将侦听特定端口。
  4. 通过 TCP 层后,数据包进入 IP 层。这是每个数据包接收其目标地址的地方,5.6.7.8。
  5. 既然我们的消息包有一个端口号和一个 IP 地址,它们就可以通过 Internet 发送了。硬件层负责将包含我们消息字母文本的数据包转换为电子信号,并通过电话线传输它们。
  6. 在电话线的另一端,您的 ISP 直接连接到 Internet。ISP路由器检查每个数据包中的目标地址并确定将其发送到何处。通常,数据包的下一站是另一个路由器。稍后将详细介绍路由器和 Internet 基础设施。
  7. 最终,数据包到达计算机 5.6.7.8。在这里,数据包从目标计算机的 TCP/IP 堆栈的底部开始并向上工作。
  8. 当数据包向上通过堆栈时,发送计算机堆栈添加的所有路由数据(例如 IP 地址和端口号)都会从数据包中剥离。 当数据到达栈顶时,数据包已经重新组合成原来的形式,“Hello computer 5.6.7.8!”

网络基础设施

所以现在您知道数据包如何通过 Internet 从一台计算机传输到另一台计算机了。但中间有什么?互联网究竟是由什么组成的?我们再看一张图:

在这里,我们看到了更详细地重新绘制的图 1。通过电话网络到 Internet 服务提供商的物理连接可能很容易猜到,但除此之外可能还有一些解释。 ISP 为其拨入客户维护一个调制解调器池。这是由某种形式的计算机(通常是专用计算机)管理的,该计算机控制从调制解调器池到骨干网或专线路由器的数据流。此设置可称为端口服务器,因为它“提供”对网络的访问。帐单和使用信息通常也在这里收集。

在您的数据包穿过电话网络和 ISP 的本地设备后,它们将路由到 ISP 的主干网或 ISP 从中购买带宽的主干网。从这里开始,数据包通常会经过几个路由器和几个主干、专线和其他网络,直到找到目的地,地址为 5.6.7.8 的计算机。但是,如果我们知道我们的数据包正在接管 Internet 的确切路由,那不是很好吗?事实证明,有一种方法……

互联网基础设施

Internet 主干网由许多相互连接的大型网络组成。这些大型网络被称为网络服务提供商或NSP。一些大型 NSP 包括 UUNet、CerfNet、IBM、BBN Planet、SprintNet、PSINet 等。这些网络相互对等以交换数据包流量。每个 NSP 都需要连接到三个 网络接入点或NAP。在 NAP 处,数据包流量可能会从一个 NSP 的主干跳到另一个 NSP 的主干。NSP 还在大都市区交换或MAE互连s。MAE 的用途与 NAP 相同,但属于私人所有。NAP 是最初的互联网互连点。NAP 和 MAE 都称为 Internet 交换点或IX。NSP 还向较小的网络出售带宽,例如 ISP 和较小的带宽提供商。下图显示了这种分层基础架构。

这不是 Internet 实际部分的真实表示。图 4 仅用于演示 NSP 如何与彼此以及较小的 ISP 互连。图 4 中没有任何物理网络组件显示在图 3 中。这是因为单个 NSP 的骨干基础设施本身就是一个复杂的图。大多数 NSP 在其网站上发布其网络基础设施的地图,并且很容易找到。由于互联网的规模、复杂性和不断变化的结构,绘制互联网的实际地图几乎是不可能的。

Internet 路由层次结构

那么数据包是如何通过 Internet 找到路径的呢?是否每台连接到 Internet 的计算机都知道其他计算机在哪里?数据包是否只是简单地“广播”到 Internet 上的每台计算机?前面两个问题的答案都是“不”。没有计算机知道任何其他计算机在哪里,并且数据包不会发送到每台计算机。用于将数据包送到目的地的信息包含在由连接到 Internet 的每个路由器保存的路由表中。 路由器是分组交换机。路由器通常连接在网络之间以在它们之间路由数据包。每个路由器都知道它的子网以及它们使用的 IP 地址。路由器通常不知道它“上方”的 IP 地址是什么。检查下面的图 5。连接骨干网的黑盒子是路由器。顶部较大的 NSP 主干通过 NAP 连接。在它们下面有几个子网,在它们下面还有更多的子网。底部是两个连接了计算机的局域网。

文档信息

版权声明:署名-非商业性使用-禁止演绎 4.0 国际(CC BY-NC-ND 4.0)

原文链接:https://www.liuxing.io/blog/how-does-the-internet-work/

发表日期:0001年01月01日


最近更新