学习笔记之 internet 系列2:互联网是如何工作的?

How Does the Internet Work?

Introduction

Internet越发深入我们的生活,因此深入理解它是很必要的。

本文解释了使Internet工作的基础设施和技术。虽然不深入但足够宽泛。

Where to Begin? Internet Addresses

在Internet中,每台电脑都有一个独特的地址。格式为 nnn.nnn.nnn.nnn, nnn必须为0-255.

下面的示意图展示了通过Internet连接的两台电脑。

互联网是如何工作的?

可以通过 ping程序来获得某个域名的IP。

Protocol Stacks and Packets

计算机是如何在Internet上进行沟通的?

这需要用到 TCP/IP 协议栈。

互联网是如何工作的?

下面是一个从本机发送信息”Hello computer 5.6.7.8!”到IP地址为5.6.7.8的电脑的示意图:

互联网是如何工作的?

具体步骤如下:

  1. 信息将从上往下流动。

  2. 如果信息很长,则会被分隔为许多数据包。

  3. 这些数据包将从应用层到TCP层。每个包会给一个端口号。

  4. 从TCP到IP层。每个包给上终点的IP地址5.6.7.8。

  5. 当这些数据包有了端口号和IP地址后,就可以发送了。硬件层会将包中的文字转换为电信号然后通过线路传输。

  6. 然后通过若干ISP路由和其他设施,最终到达了电脑5.6.7.8。此时,信息从下往上流动。

  7. 在数据包往上流动的过程中,所有发送端添加的路由数据(如IP和端口号)都将被剥离。

  8. 当数据到达应用层后,数据包被重装为原始信息 “Hello computer 5.6.7.8!”

Networking Infrastructure

现在你知道了数据包是如何从一个电脑通过Internet到另一个电脑。但中间的细节是怎样的呢?看看下面的图:

互联网是如何工作的?

你的数据包先传到ISP的本地设备,再路由到ISP的骨干网,然后再经过若干路由和骨干网、专线和其他网络直到目的地:IP为5.6.7.8的电脑。可以用Traceroute来看这个过程(但实测发现,很多地址都是 * * * *)

Internet Infrastructure

Internet骨干网是由许多大网络(NSP)相互连接的。如下图:

互联网是如何工作的?

  • NAP:Network Access Point,也就是原来的 Internet interconnect point

  • MAE:Metropolitan Area Exchange,和NAP作用一样,但是私营的。

  • NAP和MAE都称作 Internet Exchange Points or IXs

  • NSP: Network Service Provider,NSP上连IEP,下连ISP,承上启下。

此图只是示意图,真实的图远比这复杂。

The Internet Routing Hierarchy

数据包是如何在Internet上找到流动路径的呢?答:路径信息都包含在每个路由的路由表中。

路由器是包转换器。

下图是路由的层级结构图:

互联网是如何工作的?

当一个数据包到路由时,会在路由表中查找目标IP地址,如果找到了,就发送到对应子网。如果没找到,就发送到默认路由(一般是上级的路由),如果还没找到,就继续向上查找,直到一个NSP骨干网,在这里有最大的路由表,然后就开始向下查找直到找到目标地址。

Domain Names and Address Resolution

如果不知道IP地址,只知道域名,就需要用到域名服务(DNS)了。DNS是一个分布式数据库,用来跟踪计算机名字和对应IP地址。

DNS服务器:包含了部分DNS数据库和相关软件的电脑。没有哪个DNS服务器包含了整个数据库,都只包含了一个子集。如果一个DNS服务器没有包含被请求的域名,则会将此请求重定向到另一个DNS服务器。如下图:

互联网是如何工作的?

DNS的层级结构与IP路由类似,找不到就往上层找。

Internet Protocols Revisited

Internet正常工作需要很多协议。包含了TCP/IP协议,路由协议,媒体访问控制协议,应用层协议等。下面将描述一些重要的协议。

Application Protocols: HTTP and the World Wide Web

Internet上最常用的服务是World Wide Web (WWW). 使web工作的应用协议是HTTP。

HTTP是无连接传输模式的文本协议。每个客户端发出的请求都需要开一个新的连接到服务器。

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

  1. 如果 URL 包含域名,则浏览器首先连接到域名服务器并检索 Web 服务器的相应 IP 地址。

  2. Web 浏览器连接到 Web 服务器并为所需网页发送 HTTP 请求(通过协议栈)。

  3. Web 服务器接收请求并检查所需的页面。如果该页面存在,则 Web 服务器将其发送。如果服务器找不到请求的页面,它将发送 HTTP 404 错误消息。(404 表示“未找到页面”,任何上网过的人都可能知道。)

  4. Web 浏览器收到返回的页面并关闭连接。

  5. 然后浏览器解析页面并寻找完成网页所需的其他页面元素。这些通常包括图像、小程序等。

  6. 对于需要的每个元素,浏览器都会为每个元素向服务器建立额外的连接和 HTTP 请求。

  7. 当浏览器完成加载所有图像、小程序等时,页面将完全加载到浏览器窗口中。

Application Protocols: SMTP and Electronic Mail

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

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

  1. 邮件客户端(Netscape Mail、Lotus Notes、Microsoft Outlook 等)打开到其默认邮件服务器的连接。邮件服务器的 IP 地址或域名通常在安装邮件客户端时设置。

  2. 邮件服务器将始终发送第一条消息以识别自己。

  3. 客户端将发送一个 SMTP HELO 命令,服务器将以 250 OK 消息响应该命令。

  4. 根据客户端是否正在检查邮件、发送邮件等,适当的 SMTP 命令将被发送到服务器,服务器将做出相应的响应。

  5. 此请求/响应事务将继续进行,直到客户端发送 SMTP QUIT 命令。然后服务器将说再见并关闭连接。

Transmission Control Protocol

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

TCP 的工作原理是这样的:

  • 发送:当 TCP 层从上面接收到应用层协议数据时,它会将其分割成可管理的“块”,然后在每个“块”中添加一个带有特定 TCP 信息的 TCP 标头。TCP 标头中包含的信息包括数据需要发送到的应用程序的端口号。

  • 接收:当 TCP 层从它下面的 IP 层接收到一个数据包时,TCP 层从数据包中剥离 TCP 头数据,必要时进行一些数据重构,然后使用从 TCP 获取的端口号将数据发送到正确的应用程序。

这就是 TCP 如何将通过协议栈的数据路由到正确的应用程序。

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

互联网是如何工作的?

请注意,TCP 标头中没有 IP 地址的位置。这是因为 TCP 对 IP 地址一无所知。TCP 的工作是可靠地从应用程序到应用程序获取应用程序级数据。从计算机到计算机获取数据的任务是 IP 的工作。

下面列出了一些更常用的 Internet 服务的端口号。

FTP 20/21

Telnet 23

SMTP 25

HTTP 80

Internet Protocol

与 TCP 不同,IP 是一种不可靠的无连接协议。IP 不关心数据包是否到达目的地。IP 也不知道连接和端口号。 IP 的工作是向其他计算机发送和路由数据包。IP 数据包是独立的实体,可能无序到达或根本没有到达。确保数据包按正确顺序到达是 TCP 的工作。IP 与 TCP 唯一的共同点是它接收数据并将其自己的 IP 标头信息添加到 TCP 数据的方式。IP 标头如下所示:

互联网是如何工作的?

上面我们在 IP 标头中看到了发送和接收计算机的 IP 地址。下面是一个数据包经过应用层、TCP层和IP层后的样子。应用层数据在 TCP 层进行分段,加上 TCP 标头,包继续到 IP 层,加上 IP 标头,然后包在 Internet 上传输。

互联网是如何工作的?

总结

现在你知道 Internet 是如何工作的了吧。

本作品采用《CC 协议》,转载必须注明作者和本文链接
日拱一卒
讨论数量: 0
(= ̄ω ̄=)··· 暂无内容!

讨论应以学习和精进为目的。请勿发布不友善或者负能量的内容,与人为善,比聪明更重要!
未填写
文章
93
粉丝
85
喜欢
153
收藏
121
排名:71
访问:11.4 万
私信
所有博文
社区赞助商