Hi,您好,欢迎来到西安盛图软件科技有限公司!

Linux基础知识|协议初识和网络协议分层

发布时间:2023-08-08 13:55:50

一、协议初识和网络协议分层(TCP/IP四层模型)

我们知道一台计算机里面有很多的硬件,正是这些硬件之间互相配合协同工作才能让我们的计算机健康的运行,当然这里面也离不开软件对硬件的管理。

假设我们脑洞大一点,把计算机里面的各个硬件拉出来,各自放到很远很远的地方,而计算机依旧能正常运行,靠的就是协议,而协议本质就是一种约定,硬件和硬件之间也有协议,比如磁盘的HBA协议,磁盘和内存IO时也有协议,所以协议不仅仅是网络专属的,计算机体系结构里面也有协议,那计算机内部不就相当于一个小型的网络吗?各个设备通过网线连接,设备之间有协议约定,所以各个设备能够正常通信,以便于计算机为用户提供良好的服务,所以网络和计算机是不分家的,体系结构中有网络,网络中有体系结构!

640.png

认识协议

实际在网络中,所有的网络问题本质都是传输距离变长了,如果传输距离很短,那还需要担心发送数据会丢失吗?或者对方接收不到数据,又或者对方没有接收到完整的数据,这些问题自然就不用考虑了,因为传输距离很短,中间的障碍很少,出错的概率很低。而当传输距离过长的时候,就容易导致出现问题,比如传输信号减弱从而导致数据丢失,所以一旦长距离传输的时候,就会引入新的通信问题,而为了尽可能的减少通信的成本,就需要定制协议!!!

我们提前做好约定,达成双方的共识,让通信的两台主机之间约定好协议,而协议就会降低通信的成本。

所以说 “协议”本质就是一种约定,通信双方只要曾经做过某种约定,之后就可以使用这种约定来完成某种事情。而网络协议是通信计算机双方必须共同遵从的一组约定,因此我们一定要将这种约定用计算机语言表达出来,此时双方计算机才能识别约定的相关内容 。

那协议该由谁来定制呢?

计算机生产厂商那么多,操作系统厂商也有那么多,磁盘厂商也有很多,其他硬件设备的厂商也有很多,那如果每个厂商都有自己的协议,生产出来的各式各样的计算机还如何通信呢?只能一个厂商里面的计算机才能通信,这显然是不行的,所以此时就需要一个人站出来,定制统一的网络协议标准,这个网络协议就是TCP/IP协议,1983年TCP/IP协议正式替代NCP,成为大部分因特网共同遵守的网络协议标准。
正所谓“一流的企业做标准,二流的企业做品牌,三流的企业做产品”。但是标准的定制有一部分是公益性、开源性的,它制定标准的目的是为了让我们的世界变得更好;而标准的定制还有一部分是具有一定盈利性质的,当你需要使用这项技术时就会收取部分专利费,此时就能将曾经做的技术投入进行变现。
所以在1977年国际标准化组织提出了OSI七层网络模型,那为什么要进行分层呢?
因为在网络数据传输的过程中,需要面临很多方面的问题,比如物理层,驱动层,软件层,用户层等等都有各自需要解决的网络传输问题,而分层其实就是进行解耦,每一层都是功能比较集中,高内聚的模块,用于处理该层面临的网络传输问题,层与层之间是低耦合的。
并且每一层都有自己匹配的协议,每一层协议都用于处理当前层的传输问题。
虽然是七层模型,但实际使用时,将上三层压为一层,统称为应用层,所以我们平常所说的都是TCP/IP四层或五层模型,物理层我们不考虑。

640.png

TCP/IP五层(或四层)模型

TCP/IP是一组协议的代名词,它还包括许多协议,共同组成了TCP/IP协议簇。TCP/IP通讯协议采用了五层的层级结构,每一层都呼叫它的下一层所提供的网络来完成自己的需求。

640.png

可以看到,它们的下面几层几乎是没有区别的,操作系统对应的是传输层和网络层,数据链路层和物理层都是对应在驱动层的,而TCP/IP协议当中的应用层就对应到OSI七层协议当中的应用层、表示层和会话层。

一般而言:
对于一台主机,它的操作系统内核实现了从传输层到物理层的内容。
对于一台路由器,它实现了从网络层到物理层的内容。
对于一台交换机,它实现了从数据链路层到物理层的内容。
对于集线器,它只实现了物理层的内容。
其实现在的网络各层设备早已突破了先前TCP/IP五层模型的限制。

640.png


640.png

上一篇:知识分享|如何做好服务 API 的性能压力测试
下一篇:如何做好服务 API 的性能压力测试