前端自学笔记(一)互联网如何工作?

前端自学笔记(一)互联网如何工作?

介绍

互联网如何运作?本文章介绍了使Internet正常运行的基础结构和技术,但并未深入,只是涵盖了每个领域的一些部分,对涉及的概念有基本的了解。

互联网地址

因为Internet是计算机的全球网络,所以连接到Internet的每台计算机都必须具有唯一的地址。Internet地址的格式为nnn.nnn.nnn.nnn,其中nnn必须是0到255之间的数字,此地址称为IP地址。
下图说明了连接到Internet的两台计算机;IP地址为1.2.3.4的计算机和另一台IP地址为5.6.7.8的计算机。互联网被表示为它们之间的抽象对象。

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

协议栈和数据包

当你的计算机已连接到Internet,并且具有唯一的地址。它如何与连接到Internet的其他计算机“对话”?示例:假设您的IP地址为1.2.3.4,并且你想向计算机5.6.7.8发送消息,您要发送的消息是“Hello computer 5.6.7.8”显然,该消息必须通过将计算机连接到Internet的任何类型任何类型的导线进行传输。假设你已经从家里拨入ISP,并且该消息必须通过电话线传输。因此,必须将消息从字母文本转换为电子信号,再通过Internet上进行通信,并且通常内置于计算机的操作系统(Windows、Linux等)中。由于使用了两种主要的通信协议,因此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地址)都将从数据包中剥离。
  9. 当数据到达堆栈的顶部时,数据包已重新组合成其原始形式”Hello computer 5.6.7.8"。

网络基础架构

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

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

数据包经过电话网络和ISP的本地设备后,它们将路由到ISP的主干网或ISP购买带宽的主干网。数据包通常会从此处经过多个路由器,并经过多个主干、专用线路和其他网络,直到找到目的地,即地址为5.6.7.8的计算机。

互联网基础设施

互联网主干网由许多相互连接的大型网络组成。这些大型网络被称为网络服务提供商NSP。一些大型NSP是UUNet,CerfNet,IBM,BBN Planet,SprintNet,PSINet等。这些网络服务提供商互相交换的数据包流量。每个NSP都必须连接到三个网络访问点NAP。在NAP处,数据包流量可能会从一个NSP的主干跳到另一个NSP的主干。NSP也可以在城域交换MAE互连。MAE具有与NAP相同的目的,但它们是私人拥有的。NAP是最初的Internet互连点。NAP和MAE都称为Internet交换点。NSP还将带宽出售给较小的网络,例如ISP和较小的带宽提供商。下图显示了此分层基础结构。

在这里插入图片描述

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

Internet路由层次结构

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

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

在这里插入图片描述
当数据包到达路由器时,路由器将检查原始计算机上IP协议层所放置的IP地址。路由器检查其路由表。如果找到包含IP地址的网络,则将数据包发送到该网络。如果找不到包含IP地址的网络,则路由器会通过默认路由(通常沿主干层次向上到下一个路由器)发送数据包。希望下一台路由器知道将数据包发送到哪里。如果没有,则再次将数据包向上路由,直到到达NSP主干网为止。连接到NSP主干网的路由器拥有最大的路由表,此处数据包将被路由到正确的主干网,从那里​​开始其“下行”旅程。

域名和地址解析

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

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

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

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

应用协议: HTTP和万维网

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

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

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

  1. 如果URL包含域名,则浏览器首先连接到域名服务器,然后检索Web服务器的相应IP地址。
  2. Web浏览器连接到Web服务器,并通过所需的网页发送HTTP请求(通过协议栈)。
  3. Web服务器接收请求并检查所需的页面。如果该页面存在,则Web服务器将其发送。如果服务器找不到请求的页面,它将发送HTTP 404错误消息。
  4. Web浏览器会收到返回的页面,并且连接已关闭。
  5. 然后,浏览器分析页面并查找完成网页所需的其他页面元素。这些通常包括图像,小程序等。
  6. 对于所需的每个元素,浏览器针对每个元素向服务器进行其他连接和HTTP请求。
  7. 浏览器完成所有图像,小程序等的加载后,页面将完全加载到浏览器窗口中。

应用协议:SMTP和电子邮件

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

传输控制协议

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的工作。

考研的浪潮终究还是把我卷回来了,我相信本科学历也不会混的很差。

言归正传,重新开始学习前端,在学习开发之前,还是应该了解一下互联网、浏览器的工作原理,或许用处可能不会很大,但总会给自己带来一点启示或者帮助吧,冲冲冲!!!

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值