互联网是如何运作的

互联网是如何运作的

互联网是如何运作的?

介绍

互联网是如何运作的?问得好!互联网的发展已经变得爆炸性,似乎无法逃脱在电视上看到、在广播中听到和在杂志上看到的 www.com 的轰炸。由于互联网已成为我们生活的重要组成部分,因此需要充分了解才能最有效地使用这种新工具。

本文介绍 了Internet 正常工作的底层基础结构和技术。

从哪里开始?互联网地址

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

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

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

看看它 - Ping 程序如果您使用的是Microsoft Windows或Unix风格,并且连接到Internet,则有一个方便的程序可以查看Internet上的计算机是否处于活动状态。它被称为ping,可能是在老式潜艇声纳系统发出的声音之后。 1 如果您使用的是 Windows,请启动命令提示符窗口。如果您使用的是 Unix 风格,请转到命令提示符。键入 ping www.yahoo.com。ping 程序将向指定的计算机发送“ping”(实际上是 ICMP(Internet 控制消息协议)回显请求消息)。被 ping 的计算机将以回复进行响应。ping 程序将计算过期时间,直到回复返回(如果返回)。此外,如果您输入域名(即 www.yahoo.com)而不是 IP 地址,ping 将解析域名并显示计算机的 IP 地址。稍后将详细介绍域名和地址解析。​

协议栈和数据包

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

协议层Comments应用程序协议层特定于 WWW、电子邮件、FTP 等应用程序的协议。传输控制协议层TCP 使用端口号将数据包定向到计算机上的特定应用程序。Internet 协议层IP 使用 IP 地址将数据包定向到特定计算机。硬件层将二进制数据包数据转换为网络信号并返回。 (例如以太网网卡、电话线调制解调器等)如果我们按照消息“Hello computer 5.6.7.8!”从我们的计算机到IP地址为5.6.7.8的计算机的路径,就会发生这样的情况:

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

​ 网络基础设施

因此,现在您知道数据包如何通过 Internet 从一台计算机传输到另一台计算机。但两者之间是什么?互联网究竟是由什么构成的?让我们看另一张图:

Diagram 3在这里,我们看到重新绘制的图 1 具有更多细节。通过电话网络与互联网服务提供商的物理连接可能很容易猜到,但除此之外可能会有一些解释。

ISP 为其拨入客户维护调制解调器池。这由某种形式的计算机(通常是专用计算机)管理,该计算机控制从调制解调器池到主干网或专用线路路由器的数据流。此设置可以称为端口服务器,因为它“提供”对网络的访问。账单和使用情况信息通常也在此处收集。

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

看看它 - Traceroute 程序如果您使用的是Microsoft Windows或Unix风格,并且连接到Internet,那么这是另一个方便的Internet程序。这称为 traceroute,它显示您的数据包到给定 Internet 目标的路径。与 ping 一样,您必须从命令提示符使用 traceroute。在 Windows 中,使用 tracert www.yahoo.com。在 Unix 提示符下,键入 traceroute www.yahoo.com。与 ping 一样,您也可以输入 IP 地址而不是域名。Traceroute 将打印出所有路由器、计算机和任何其他 Internet 实体的列表,您的数据包必须通过这些实体才能到达目的地。如果您使用 traceroute,您会注意到您的数据包必须经过许多东西才能到达目的地。大多数都有很长的名字,例如 sjc2-core1-h2-0-0.atlas.digex.net 和 fddi0-0.br4.SJC.globalcenter.net。这些是决定将数据包发送到何处的 Internet 路由器。图 3 中显示了几个路由器,但只有几个路由器。图 3 旨在显示一个简单的网络结构。互联网要复杂得多。

互联网基础设施

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

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

Internet 路由层次结构

那么,数据包是如何在互联网上找到自己的途径的呢?连接到 Internet 的每台计算机是否都知道其他计算机的位置?数据包是否只是简单地“广播”到互联网上的每台计算机?前面两个问题的答案都是否定的。没有计算机知道任何其他计算机的位置,数据包也不会发送到每台计算机。用于将数据包发送到其目的地的信息包含在连接到 Internet 的每个路由器保存的路由表中。

路由器是分组交换机。路由器通常在网络之间连接,以在网络之间路由数据包。每个路由器都知道它的子网以及它们使用的 IP 地址。路由器通常不知道“上面”有哪些 IP 地址。检查下面的图表 5。连接骨干网的黑匣子是路由器。顶部较大的 NSP 主干网在 NAP 上连接。在它们下面有几个子网,在它们下面,还有更多的子网。底部是两个连接了计算机的局域网。

Diagram 5当数据包到达路由器时,路由器会检查始发计算机上 IP 协议层放置的 IP 地址。路由器检查其路由表。如果找到包含 IP 地址的网络,则数据包将发送到该网络。如果未找到包含 IP 地址的网络,则路由器会在默认路由上发送数据包,通常是在主干层次结构上发送到下一个路由器。希望下一个路由器会知道将数据包发送到哪里。如果没有,则数据包将再次向上路由,直到到达 NSP 主干网。连接到NSP骨干网的路由器拥有最大的路由表,在这里,数据包将被路由到正确的骨干网,在那里它将开始通过越来越小的网络“向下”旅行,直到找到目的地。

域名和地址解析

但是,如果您不知道要连接的计算机的 IP 地址怎么办?如果您需要访问称为 www.anothercomputer.com 的 Web 服务器,该怎么办?您的 Web 浏览器如何知道这台计算机位于 Internet 上的哪个位置?所有这些问题的答案都是域名服务或DNS。DNS是一个分布式数据库,用于跟踪Internet上的计算机名称及其相应的IP地址。

许多连接到 Internet 的计算机都托管 DNS 数据库的一部分以及允许其他人访问该数据库的软件。这些计算机称为 DNS 服务器。没有 DNS 服务器包含整个数据库;它们只包含它的一个子集。如果 DNS 服务器不包含另一台计算机请求的域名,则 DNS 服务器会将请求计算机重定向到另一台 DNS 服务器。

Diagram 6域名服务的结构类似于 IP 路由层次结构。请求名称解析的计算机将“向上”重定向到层次结构中,直到找到可以解析请求中的域名的 DNS 服务器。图 6 说明了层次结构的一部分。树的顶部是域根。一些较旧、更常见的域位于顶部附近。没有显示的是世界各地的众多DNS服务器,它们构成了层次结构的其余部分。

设置 Internet 连接时(例如,用于 LAN 或 Windows 中的拨号网络),通常会在安装过程中指定一个主 DNS 服务器和一个或多个辅助 DNS 服务器。这样,任何需要域名解析的 Internet 应用程序都将能够正常运行。例如,当您在 Web 浏览器中输入 Web 地址时,浏览器将首先连接到您的主 DNS 服务器。获取您输入的域名的 IP 地址后,浏览器将连接到目标计算机并请求您想要的网页。

签出 - 在 Windows 中禁用 DNS如果您使用的是 Windows 95/NT 并访问 Internet,则可以查看您的 DNS 服务器,甚至禁用它们。如果使用拨号网络: 打开“拨号网络”窗口(可在 Windows 资源管理器的 CD-ROM 驱动器下和“网络邻居”上方找到)。右键单击 Internet 连接,然后单击属性。在连接属性窗口底部附近,按 TCP/IP 设置…按钮。如果您永久连接到 Internet: 右键单击“网络邻居”,然后单击“属性”。单击“TCP/IP 属性”。选择顶部的“DNS 配置”选项卡。您现在应该查看 DNS 服务器的 IP 地址。在这里,您可以禁用DNS或将DNS服务器设置为0.0.0.0。(首先记下 DNS 服务器的 IP 地址。您可能也必须重新启动 Windows。现在在您的网络浏览器中输入一个地址。浏览器将无法解析域名,您可能会收到一个令人讨厌的对话框,说明找不到 DNS 服务器。但是,如果您输入相应的 IP 地址而不是域名,浏览器将能够检索所需的网页。(在禁用 DNS 之前,使用 ping 获取 IP 地址。其他Microsoft操作系统也类似。​

重新审视互联网协议

正如前面关于协议栈的部分所暗示的那样,人们可以推测 Internet 上使用许多协议。这是真的;互联网运行需要许多通信协议。这些协议包括 TCP 和 IP 协议、路由协议、介质访问控制协议、应用程序级协议等。以下各节介绍了 Internet 上一些更重要和常用的协议。首先讨论更高级别的协议,然后讨论较低级别的协议。

​ 应用协议:HTTP 和万维网

互联网上最常用的服务之一是万维网 (WWW)。使 Web 工作的应用程序协议是超文本传输协议或 HTTP。不要将其与超文本标记语言 (HTML) 混淆。HTML 是用于编写网页的语言。HTTP 是 Web 浏览器和 Web 服务器用于通过 Internet 相互通信的协议。它是一种应用程序级协议,因为它位于协议栈中 TCP 层的顶部,并被特定应用程序用于相互通信。在这种情况下,应用程序是 Web 浏览器和 Web 服务器。

HTTP 是一种基于文本的无连接协议。客户端(Web 浏览器)向 Web 服务器发送 Web 元素(如网页和图像)的请求。服务器为请求提供服务后,客户端与服务器之间的连接将断开 Internet。必须为每个请求建立新连接。大多数协议都是面向连接的。这意味着相互通信的两台计算机通过 Internet 保持连接打开。但是,HTTP 没有。在客户端发出 HTTP 请求之前,必须与服务器建立新连接。

当您在 Web 浏览器中键入 URL 时,会发生以下情况:

如果URL包含域名,浏览器首先连接到域名服务器,并检索Web服务器的对应IP地址。Web 浏览器连接到 Web 服务器并发送所需网页的 HTTP 请求(通过协议栈)。Web 服务器接收请求并检查所需的页面。如果页面存在,则 Web 服务器会发送该页面。如果服务器找不到请求的页面,它将发送 HTTP 404 错误消息。(404 的意思是“找不到页面”,任何上网的人都可能知道。Web 浏览器接收回页面并关闭连接。然后,浏览器会解析页面并查找完成网页所需的其他页面元素。这些通常包括图像、小程序等。对于所需的每个元素,浏览器会为每个元素向服务器建立额外的连接和 HTTP 请求。当浏览器完成所有图像、小程序等的加载后,页面将完全加载到浏览器窗口中。

查看 - 使用 Telnet 客户端检索 HTTP 网页Telnet 是 Internet 上使用的远程终端服务。它的使用最近有所下降,但它是研究互联网的一个非常有用的工具。在 Windows 中,找到默认的 telnet 程序。它可能位于名为 telnet.exe 的 Windows 目录中。打开后,下拉“终端”菜单并选择“首选项”。在首选项窗口中,选中 Local Echo。(这样您就可以在键入 HTTP 请求时看到它。现在下拉“连接”菜单,然后选择“远程系统”。输入 www.google.com 作为主机名,输入 80 作为端口。 (默认情况下,Web 服务器通常侦听端口 80。按连接。现在键入 获取 / HTTP/1.0 并按两次 Enter 键。这是对 Web 服务器根页面的简单 HTTP 请求。您应该会看到一个网页一闪而过,然后应该弹出一个对话框,告诉您连接已丢失。如果要保存检索到的页面,请在 Telnet 程序中打开日志记录。然后,您可以浏览网页并查看用于编写该网页的 HTML。大多数 Internet 协议都由称为“征求意见”或 RFC 的 Internet 文档指定。RFC 可以在 Internet 上的多个位置找到。请参阅下面的“参考资料”部分,了解相应的 URL。HTTP 版本 1.0 由 RFC 1945 指定。

​ 应用协议:SMTP 和电子邮件

另一种常用的互联网服务是电子邮件。电子邮件使用称为简单邮件传输协议或 SMTP 的应用程序级协议。SMTP 也是一种基于文本的协议,但与 HTTP 不同,SMTP 是面向连接的。SMTP 也比 HTTP 复杂。SMTP 中的命令和注意事项比 HTTP 中的命令和注意事项多得多。

当您打开邮件客户端阅读电子邮件时,通常会发生以下情况:

邮件客户端(Netscape Mail,Lotus Notes,Microsoft Outlook等)打开与其默认邮件服务器的连接。邮件服务器的 IP 地址或域名通常在安装邮件客户端时设置。邮件服务器将始终发送第一条消息以标识自身。客户端将发送一个 SMTP HELO 命令,服务器将以 250 OK 消息响应该命令。根据客户端是否正在检查邮件、发送邮件等,相应的 SMTP 命令将发送到服务器,服务器将做出相应的响应。此请求/响应事务将继续进行,直到客户端发送 SMTP QUIT 命令。然后服务器将说再见,连接将关闭。

SMTP 客户端和 SMTP 服务器之间的简单“对话”如下所示。R:表示服务器(接收方)发送的消息,S:表示客户端(发送方)发送的消息。此 SMTP 事务取自 RFC 821,它指定了 SMTP。

传输控制协议

在协议栈的应用层下是 TCP 层。当应用程序在 Internet 上打开与另一台计算机的连接时,它们发送的消息(使用特定的应用程序层协议)将向下传递到堆栈到 TCP 层。TCP 负责将应用程序协议路由到目标计算机上的正确应用程序。为此,使用了端口号。端口可以看作是每台计算机上的单独通道。例如,您可以在阅读电子邮件时浏览网页。这是因为这两个应用程序(Web 浏览器和邮件客户端)使用不同的端口号。当数据包到达计算机并在协议栈中向上移动时,TCP 层会根据端口号决定哪个应用程序接收数据包。

TCP 的工作方式如下:

当TCP层从上面接收到应用层协议数据时,它会将其分割成可管理的“块”,然后向每个“块”添加一个包含特定TCP信息的TCP标头。TCP 标头中包含的信息包括需要将数据发送到的应用程序的端口号。当 TCP 层从其下面的 IP 层接收数据包时,TCP 层会从数据包中剥离 TCP 标头数据,必要时进行一些数据重建,然后使用从 TCP 报头获取的端口号将数据发送到正确的应用程序。

这就是 TCP 将通过协议栈移动的数据路由到正确的应用程序的方式。

TCP 不是文本协议。TCP 是一种面向连接的可靠字节流服务。面向连接意味着使用 TCP 的两个应用程序在交换数据之前必须首先建立连接。TCP 是可靠的,因为对于收到的每个数据包,都会向发送方发送确认以确认传递。TCP 在其标头中还包括一个校验和,用于错误检查接收到的数据。TCP 标头如下所示:

Diagram 7

相关推荐

大王卡怎么开启免流量模式(大王卡在哪设置免流量)
C罗02年世界杯(巴西传奇的诞生与辉煌)
镇赉县地理概况
beat365网址大全

镇赉县地理概况

📅 07-15 🔥 574
苹果美版和港版哪个好
365bet亚洲真人

苹果美版和港版哪个好

📅 07-12 🔥 427
手机房车app软件排行榜TOP10推荐
下载365app

手机房车app软件排行榜TOP10推荐

📅 07-21 🔥 981
dnf钻石戒指在哪买 DNF钻石戒指购买指南
365bet亚洲真人

dnf钻石戒指在哪买 DNF钻石戒指购买指南

📅 09-04 🔥 911