前端知识框架构建三:计算机的网络架构

260 阅读5分钟

在前端优化中有一个很重要的指标,就是网络速度,要对网络部分进行优化,就必须要了解网络的知识,这里就分为两个大块来讲,一个是TCP/IP,一个是HTTP。

网络协议模型

互联网是一整套的理念和协议组成的架构体系。我们学过的一般有:

  • OSI七层模型
  • TCP/IP四层模型
  • 五层网络模型

这里的层可以理解为不同的步骤,一个数据包从主机A发送到主机B,要经历的不同的步骤。

那在这里以五层网络模型做一个说明。

五层网络模型

OSI有七层网络模型,当时看的计算机网络的课程其实就是大概分为七个章节,每一层都作为一个章节来看,但感觉有些不是很重要,所以这里就讲讲我觉得比较重要的五层结构。

第五层应用层
第四层传输层
第三层网络层
第二层链接层
第一层实体层

协议

五层网络模型,每层都有一个属于自己的规则,只有大家都遵守同样的规则,才不会乱套。所以在计网中,我们把这个规则称呼为协议(protocol)

数据包的传递

数据发送是自上而下进行传递的,可以理解为一个打包的过程。

当我们发送一个数据包时,比如说我们在我们的电脑上给另外一台电脑发送了一条消息,这时的我们的数据还是在顶层。

应用层

我们首先经过的是应用层,我们在电脑上,有很多种发送信息的方式,比如说: QQ, 邮箱,Facetime视频电话等等。五花八门的应用,但是我们最终都是得通过主机的一个网络接口发送出去,所以我们就要规定好他的一个格式,大家才能有序的,不混乱的发送出去。

这时候我们的应用层协议就发挥用处了。打一个比方,我们要规定,发送出去的信息必须以666开头,应用层的协议就是在数据包前加上666这三个数字,然后交给下一层,也就是传输层。

常见的网络层协议有:www,FTP等等。

传输层

当数据从应用层传递过来时,我们的数据就是一个被加工过的一个数据包,这时候我们就需要将其发送出去了。但是这时候又出现了问题,我们要从哪里发送出去?

我们都知道,计算机的出口,就是一个叫端口的东西。我们的主机相当于一个房间,而端口相当于一个出口/入口,每一个端口都对应着一个应用程序。我们的计算机有很多的出入口,如果不指定,我们就不知道该从哪一个出入口进入,所以,在我们送走的时候,要指定对方的一个端口,也就是告诉我们的数据包,该走哪一个入口进去,也就是,应该发送给哪一个应用程序。如果不指定,乱走,可能qq发送的信息,被浏览器收到了,那肯定就读不出来直接错误了。

所以,传输层的作用就是告诉数据包该从哪一个口进入。传输层的作用,就是建立“端口到端口”的通信。

比如我们刚刚的数据包,从应用层下来后,我们通过传输层,告诉数据包要到对方主机的哪一个端口去,也就是告诉他要去到哪一个程序中。在传输层中,我们在数据包上面加上一些信息,比如说端口666,就是告诉他到了对方主机后,去666端口。

网络层

我们的数据包知道了端口号,但是不知道地址,而网络层的作用就是告诉数据包,要到哪一台主机去,就是要告诉这个数据包,对方的地址是多少。

当刚刚的数据包从传输层下来后,就到了现在的网络层。

我们会在网络层将数据包再一次进行封装,加上对方的一个地址,但是就像我们去朋友家做客,一开始可能不会直接找到对方的家中,而是先找到对方的小区,再找到对方的楼,再找到他家。在计算机网络中也是同样的。我们在网络层会通过IP协议给数据包加上对方的IP,而这个IP协议,一是每台计算机分配地址,二是确认一个地址在哪些区域的网络中。

也就是说:网络层的作用是引进一套新的地址,使得我们能够区分不同的计算机是否属于同一个子网络。这套地址就叫做"网络地址",简称"网址"。

链接层

当我们的数据包知道了要到哪一个区域后,就像我们进入了一个小区中,下一步要做的的就是找到对方的门牌号,进他家了。

在链接层,我们提供了一个叫MAC地址的东西,这个可以就相当于家的详细地址,有了他,我们的数据包就能准确的找到对方的主机了。

所以在链接层,我们告诉了数据包对方的MAC地址,就可以确定对方的主机了,这时候,我们的数据包就像手里拿在导航,知道了要去哪里了。

实体层

这一层就好说了,当数据包全部准备就绪后,接下来的是什么?那不就剩下发送了。我们发送的媒介,就是实体层,比如:光缆,电缆,无线电等。

总结:

我们的网络架构,分为了很多种,但是很多都是理解的不同而已。

有的虽然层数不同, 但有的只是把一些层次合并起来理解了而已,就如下图所示,其实具体的实现都是一样的。

截屏2022-05-11 下午8.30.31.png