互联网从基本原理出发进行了解释

2020-08-31 06:41:32

我写这篇文章是为了向非技术读者介绍Internet。为了让每个人都能理解,我首先解释基本概念,如通信协议、网络拓扑和信号路由。关于Internet层的部分变得越来越技术性,并且随着对DNSSEC的深入研究而达到顶峰。如果一开始对您来说太基础了,那么就跳到更有趣的部分。

由于主题的性质,本文包含了很多缩略语。其中许多是三个字母的缩略语(TLA),但也有一些更长,这使得它们成为扩展的三个字母的缩略语(ETLA)。虽然我在使用它们之前介绍了大多数缩略语,但如果您忘记了TLA或ETLA代表什么,您可以简单地用鼠标悬停在它们上面。如果您在触摸式设备上阅读本文,则必须触摸缩略词。

通信协议指定双方如何为特定目的交换信息。尤其是,它确定哪些消息将以什么顺序传输。如果双方是计算机,则正式的、定义明确的协议最容易实现。然而,为了说明发生了什么,让我们先来看一下我们都非常熟悉的非正式协议,也称为礼仪:

爱丽丝·鲍勃嗨,鲍勃!嗨,爱丽丝!你好吗?好的。你呢?我很好,谢谢。

这是一个序列图,它突出显示了按顺序交换消息的协议的时间维度。

它还说明通信通常由一方发起,由此接收方响应发起方的请求。请注意,这只是一对一协议的情况,在这种协议中,每条消息都是针对单个接收方的。

也有用于广播的一对多协议。这些协议通常是单向协议,其中接收者不确认接收到传输的数据。这类协议的例子是模拟无线电或教堂敲钟以指示一天中的时间。无论是在单个接收者的情况下,还是在目标受众广泛的情况下,任何能够访问物理介质和正确的传感器的人都会接收信号。区别只是,在前一种情况下,实体忽略不是发往他们的消息。i.在一个接收者的情况下,任何能够访问物理介质和正确的传感器的人都会接收到信号。不同的是,在前一种情况下,实体忽略不是发往他们的消息。i。恶意方可能会在传输过程中更改它们。即使消息经过加密和验证,通过不中继某些消息或干扰信号,它们的交换仍然可以中断。机密性、完整性和可用性构成了所谓的CIA信息安全三合一。

以上问候协议在人们之间使用,以建立更长时间的交流渠道。在技术术语中,这种为实际交流做准备的交流称为握手。问候协议检查收件人是否有空以及是否愿意进行对话。当与你从未交谈过的人交谈时,它也确保收件人理解你的语言。我选择这两个例子是因为它们的比喻价值。我们实际上打招呼的原因主要是不同的:通过让对方知道我们的存在来表达我们的善意。我选择这两个例子是因为它们的比喻价值。我们实际上相互问候的原因主要是不同的:通过让对方知道我们的存在来表示我们的善意。向对方和旁观者表明我们的相对社会地位。问这样一个问题的另一个好处是,尽管这个问题很肤浅,但由于承诺和一致性的心理影响,它会让回答者更有可能帮你一个忙。

由于您的通信伙伴可能不稳定,因此协议需要能够处理偏差:

爱丽丝·鲍勃嗨,鲍勃!嗨,爱丽丝!�,你能重复一遍吗?你好吗?好的。你呢?我很好,谢谢。

为了检测传输错误,计算机通常将校验和附加到每条消息上,然后由接收方进行验证。通过在消息中增加冗余以使接收方能够自己检测和纠正小错误,可以减少重新发送消息的需要。这样做的一种简单而非常低效的方法是将每条消息中的内容重复几次。

也可能发生一方永久性断开连接的情况,例如,由于移动距离太远,信号无法到达接收方。由于对话需要通信伙伴给予一定的关注,因此单方面放弃对话而不通知另一方可能会被滥用,在一段时间内阻止他们与其他人交谈。为了避免长时间绑定资源,从而可能成为所谓的拒绝服务攻击的受害者,计算机在可配置的非活动持续时间后断开连接:

其他时候,你的沟通伙伴只是行动迟缓,这需要在一定程度上加以适应:

爱丽丝·鲍勃嗨,鲍勃!嗨,爱丽丝!你好吗?好的。你呢?我很好,谢谢。

以下情况在人与人之间很少发生,但一旦信息通过各种跳跃传递,例如在教室里的学生之间转发便条,它们就可能会乱七八糟地到达:

爱丽丝·鲍勃嗨,鲍勃!嗨,爱丽丝!你好吗?好的。你呢?我很好,谢谢。

此问题的解决方案是枚举所有消息,在到达时对其重新排序,并要求另一方重新传输任何丢失的消息,如上所述。

协议除了定义消息的语法(格式)、语义(含义)和顺序外,还应该规定如何处理上述异常情况。标准的过大和故意偏离导致了不同实现之间的不兼容,再加上许多领域缺乏既定的标准,往往导致各方努力不协调,导致计算机系统中不兼容的情况很常见,这给用户和程序员造成了很大的挫折感,他们不得不寻找工作,这就给用户和程序员带来了很大的挫折感,他们不得不寻找工作,而许多领域缺乏既定的标准,这往往导致各方努力不协调,导致计算机系统中不兼容的现象相当普遍,这给用户和程序员造成了很大的挫折感,他们不得不寻找工作。

在实践中,几乎总是有两个以上的用户想要相互通信。它们之间的连接构成了一个通信网络。在本文的范围内,我们只对对称网络感兴趣,因为在对称网络中,每个可以接收的人都可以发送。模拟广播电视网络不是这样的,信号从发送者到接收者是单向广播的。在我们的对称网络中,如果两个实体可以相互通信,那么它们就是同一网络的一部分。如果两个实体可以相互通信,那么它们就是同一个网络的一部分。如果两个实体可以相互通信,那么它们就是同一个网络的一部分。如果两个实体可以相互通信,那么它们就是同一个网络的一部分。如果它们可以相互通信,那么它们就是同一个网络的一部分。

节点是通过通信链路相互通信的实体。我们可以将其可视化如下:

这个术语是从图论中借用的,其中节点也称为顶点,链路也称为边。网络结构的专业术语是拓扑。节点和链路的不同排列导致所产生的网络的不同特征。

如果每个节点都有到其他所有节点的直接链路,则称网络是完全连接的:

在图论中,这样的布局被称为完整图。全连通网络的伸缩性很差,因为链路数量与节点数量呈二次曲线增长。您可能以前遇到过链路数量的公式:n×(n-1)/2,其中n是网络中的节点数量。因此,这种拓扑结构对于较大的网络是不切实际的。

通过引入一个中心节点来转发其他节点之间的通信,可以大大减少链路的数量。在这样的星形网络中,链路的数量与节点的数量成线性关系。换句话说,如果节点数量翻一番,链路的数量也会翻一番。在完全连通的网络中,链路的数量将翻两番。现在,我们称新引入的节点为路由器。正如我们稍后将看到的,这样的中继节点根据其工作方式的不同而被称为不同的名称

虽然星形网络的规模最优,但根据定义,它是完全集中的。如果节点属于多个组织,这种拓扑结构是不可取的,因为中心方完全控制网络。这样的一方可以依靠其市场力量来提高服务价格,并审查任何它不喜欢的通信。此外,中心节点成为单点故障:如果由于任何原因发生故障,则整个网络停止工作。由于这降低了网络的可用性,因此,星型节点将成为单点故障:如果由于任何原因发生故障,则整个网络停止工作。由于这降低了网络的可用性,因此,星型节点可以提高其服务价格并审查其不喜欢的任何通信。此外,中心节点成为单点故障:如果由于任何原因发生故障,则整个网络停止工作。由于这降低了网络的可用性,因此,星型节点。

我们可以通过增加在端点之间转发通信的节点数量来避免这些缺点:

在此图中,三个路由器中的任何一个都可以关闭,并且连接到不可用路由器的节点之间仍然可以通信。还有五条链路可以一次断开一条,同时使所有节点彼此间接连接。这种部分连接的网络允许在冗余性和可扩展性之间进行灵活的折衷。因此,这通常是首选的网络拓扑。此外,标有星号的节点连接到两个路由器,以增加其可用性。由于成本较高,因此通常是首选的网络拓扑。此外,标有星号的节点连接到两个路由器,以增加其可用性。由于成本较高,因此通常是首选的网络拓扑。此外,标有星号的节点连接到两个路由器,以增加其可用性。由于成本较高,

在完全连接的网络中,每个节点只需选择正确的链路即可到达所需节点,与此不同的是,具有中继节点的网络要求节点可以彼此寻址。即使路由器将其所有链路上的每个信号中继到其他节点(这将使其成为集线器而不是路由器),节点仍然需要一种方法来确定它们是否是消息的预定接收者。这个问题可以通过为网络中的每个节点分配唯一的标识符,并用预定接收者的标识符扩展每个传输的消息来解决。这样的标识符被称为网络地址。路由器可以知道在哪条链路上为哪个节点转发通信。当地址不是随机分配而是反映网络的结构(由于其物理性质通常是地理性质)时,这种方法效果最好:

我们都熟悉分层地址,如邮政编码(在美国称为邮政编码)和带有国家呼叫码的电话号码。严格地说,地址表示节点的网络链路,而不是节点本身。这可以在右边的节点中看到,即B2到路由器Band,C1到路由器C。换句话说,如果一个节点属于几个所谓的子网,如本例中的B和C,它也有几个地址。

在网络中的两个节点之间选择路径的过程称为路由。路由器是执行路由的节点。它们维护路由表,以便知道在哪条链路上转发每个节点的通信:

例如,此表告诉路由器A转发链路2上节点A2的所有通信。路由器A在哪条链路上接收此类通信并不重要。路由器还记录每条路由的开销。根据提供商彼此收取的费用,成本可以是网络延迟或传输的经济成本。在此示例中,路由器A转发链路4上以C开头的节点的所有通信,因为关联的开销低于通过路由器B的链路3的开销。在此示例中,路由器A转发链路4上以C开头的所有通信,因为相关开销低于通过路由器B的链路3的开销。

准确地说,路由表包含所有路由,甚至包括那些在相关开销方面不是最优的路由,路由器根据这些信息构建实际的转发表,其中只包含每个目的地的最优路由,而不包含其开销,这使得表更小,路由过程中的查找速度更快,这对于降低延迟非常重要。

路由器及其之间的物理链路随时可能出现故障,例如,因为附近的施工工程拆除了网线。另一方面,通信网络中不断添加新的节点和连接。因此,路由器的路由表需要不断更新。路由器不是手动更新路由表,而是使用路由协议相互通信更改。例如,一旦路由器A检测到它不再收到路由器C的响应,它就会更新其路由表,将所有通信通过B路由到C:

在电路交换网络中,在通信会话期间在双方之间建立专用通信信道:

电路交换网最著名的例子是早期的电话网。为了进行呼叫,交换机操作员需要连接两部电话机的导线以形成闭合电路。这的优点是在整个呼叫过程中信号的延迟保持恒定,并且保证通信以与其被发送的顺序相同的顺序到达。另一方面,为每个通信会话建立专用电路可能效率低下,因为即使在暂时未使用的情况下,其他人也不能利用所要求的容量。例如,为每个通信会话建立专用电路可能是低效的,因为即使在暂时未使用的情况下,其他人也不能利用所要求的容量。例如,在整个呼叫过程中,信号的延迟保持恒定,并且保证通信以与其发送的顺序相同的顺序到达。另一方面,为每个通信会话建立专用电路可能效率低下。

在分组交换网络中,要传输的数据被分成块。这些块被称为分组,由报头和有效载荷组成。报头包含用于传送分组的信息,如发送方和接收方的网络地址。每台路由器都有一个用于接收分组的队列,然后根据其路由表,或者更准确地说,根据其转发表转发每个分组。除了这些表之外,分组交换路由器不保持任何状态。特别是在分组交换路由器上没有打开或关闭信道。

由于每个数据包都是单独路由的,它们可能会从发送方到接收方采取不同的路由,然后由于不同的延迟而无序到达。

由于没有路由器可以完整查看整个网络,因此数据包可能会陷入无限循环:

为了避免浪费网络资源,数据包的报头还包含一个计数器,每经过一台路由器,该计数器就会递减1。如果该计数器在数据包到达目的地之前达到零,则路由器会丢弃该数据包,而不是转发它。这样的计数器通过限制数据包可以进行的跳数来限制数据包的寿命,因此称为其生存时间(TTL)值。数据包可能在网络中丢失还有其他原因。路由器的队列可能只是。这意味着不能再存储额外的数据包,因此必须丢弃。因为数据包类似于道路网络上的汽车,所以一些术语是从运输业借来的。虽然分组交换网络的容量可以比电路交换网络的容量得到更好的利用,但网络上的太多流量会导致拥堵。

因为路由器没有保存有关数据包所采用的路由的状态,所以来自接收方的响应必须包括原始发送方的地址。换句话说,发送方必须向接收方公开自己的地址才能获得响应。这就是为什么数据包总是包含两个地址:一个源地址和一个目的地址。

Internet是一个全球性的计算机网络,它的名字的意思就是“网络之间”,它是一个分组交换的网状网络,只有尽力递送,这意味着因特网不能保证分组是否以及在什么时间递送。互联网服务供应商(ISP)为企业和个人提供互联网接入,他们为客户维护专有的计算机网络,并通过国际骨干互连。互联网的最大成就是使各个网络可以通过互联网协议(IP)进行互操作。

Internet是分层运行的。每一层都提供一定的功能,这些功能可以由不同的协议来实现。这种模块化使得可以替换一层上的协议,而不会影响其他层上的协议。因为上面的层建立在下面的层之上,所以它们总是按以下顺序列出,然后以相反的顺序进行讨论:

我们将在下面的小节中分别讨论每一层。现在,您可以将上表作为一个概述和总结。在深入到最低层之前,我们首先需要了解“在下面的层上构建”是什么意思。数字数据可以完美地从一个存储位置复制到另一个存储位置。特定协议的实现从上面的层接收称为有效负载的数据块,并将其与实现其目的所需的信息一起封装在所谓的报头中。然后,有效负载和报头成为下面层的有效负载,在下面的层中,另一个协议指定要添加的一组新的报头。这些封装中的每一个都由接收方的相应协议撤销。这可以如下所示:

虽然此图有助于您理解这些概念,但它可能会在两个方面产生误导。首先,只要接收方可以重建原始有效负载,就可以通过特定协议转换有效负载。例如,用于自动错误检测和纠正的加密和冗余编码。第二,协议可以将有效负载拆分成较小的块,并分别传输它们。它甚至可以要求发送方重新传输特定的块。只要重新组合所有的块,协议就会自动进行错误检测和纠错。第二,协议可以将有效负载拆分成较小的块,并分别传输它们。它甚至可以要求发送方重新传输特定的块。只要重新组合所有的块,就可以。计算机网络中可能出现很多问题。在下面的小节中,我们将更仔细地了解协议如何弥补底层网络的不足。在此之前,我们应该先谈一谈标准化。

当几方相互沟通时,重要的是他们要就一个共同的标准达成一致。这些标准需要根据不断变化的情况提出、讨论、发布和更新。我不知道有任何法律在政府机构之外强加特定的网络标准。互联网是一个开放的体系结构,从技术上讲,你几乎可以自由地做任何你想做的事情。但这并不意味着其他公司会配合。如果不同的公司应该采用相同的标准来提高互操作性,拥有独立的工作组是非常有用的。这样的开放平台由互联网工程任务组(IETF)提供,并得到互联网协会(ISOC)的组织和财政支持。研讨会参与者和管理人员通常受雇于大型科技公司,这些公司希望制定未来的标准。

IETF以征求意见(RFC)的形式发布其官方文件,最初选择这个名称是为了避免引人注目,并鼓励讨论。同时,潜在的RFC的早期版本以Internet Draft的形式发布,RFC只有在经过几轮同行审查后才会获得批准。RFC是按顺序编号的,一旦发布,就不再进行修改。如果文档需要修改,则会发布具有新编号的新RFC。RFC可以取代EARL。

.