网络基础知识讲解

网络基础知识讲解

前言:

现在很多程序员不太注重网路知识的理解,因为编程的时候很多时候不用我们来编写Scoket这些东西的,并且底层服务很好的进处理了数据包的解析,所以貌似网络方面的知识是不用我们去关心的,这就实际上类似于框架底层的东西平时能满足我们的时候呢,我们并不太去关心他们。但要真的出了问题比如性能没办法满足我们的需求的时候,这时如果不熟悉底层的话,我们往往束手无策,此种情况同样适用于网络,比如说比没有办法判定程序为什么会变慢,是网络的原因还是别的原因数据包有没有丢失,为什么造成大量的wait,为什么造成大量的连接丢失等等。因此还是很有必要去学习网络知识,以备不时之需的。

网络知识的考点相对于比较固定些,比较偏向于理论。那我们现在开始学习网络知识吧。先上张图。

IOS七层网络模型:

[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-eBh4B6jw-1632115307368)(ms图库/OSI七层协议.png)]

当前市面上 存在:4层,5层,7层协议国际标准组织ISO指定的OSI七层协议模型,是最早业界提出来的概念型框架,因此我们先来了解一下开放系统互联参考模型及OSI七层协议。

物理层:

​ 机器A向机器B发送比特流,定义了物理设备的标准,如网线的类型,光纤的接口类型,各种传输介质的传输速率。主要的作用就是传输比特(bit)就是:0101001010010101 二进制数据 将他们转换为电流强弱进行传输。到达目的地后再转为 010101 的机器码。也就是我们常说的数模转化 与模数转换,这层的数据叫做比特,网卡就工作在这层。

数据链路层:

在传输比特流的过程中,会产生错传,数据传输不完整的可能,因此数据链路层应运而生。数据链路层定义了如何格式化数据以及进行传输,以及控制对物理介质的访问,这层通常还提供了错误检测和纠正。以确保数据传输的可靠性,本层将比特数据转换组成了帧。其中交换机工作在这层里面。对帧解码并对 帧中包含的信息发送到正确的接收方,那随着网络节点的不断增加,点对点通信是需要经过多个节点,那么如何找到最佳的节点,如何选择最佳路线,并成为了首要需求。此时便有了网络层。

网络层:

其主要功能就是将网络地址翻译成对应的物理地址,并决定如何将数据从发送方路由到接收方。网络通过综合考虑发送优先权,网络的拥塞程度,服务质量以及可选路线的花费,来决定网络中节点A到另一个网络中节点B的最佳路径。由于网络层的处理并智能指导,数据传送路由器连接网络各段。所以路由器属于网络层。此层的数据我们称为数据包。本层我们需要关注的是TCP/IP协议中的,IP协议。那么随着网络通信需求的近一步扩大,通信过程中需要发送大量的数据如海量文件传输等可能需要很长的时间,而网络在通信过程中会中断很多次,此时为了传输大量文件时的准确性需要将发送数据切割为一个一个的段落,及sigment进行发送。那么其中有一个段落丢失了怎么办要不要进行重传,每个段落要按照顺序进行到达吗?这个便是传输层要考虑的问题。

传输层:

传输层解决了主机间的数据传输,数据间的传输呢可能是不同网络,并且传输层解决了传输质量的问题 该层成为OSI模型中最重要的一层了。传输协议进行流量 控制或者基于接收方 接收数据的快慢程度规定适当地发送速率。除此之外传输层还将按照网络如处理的最大尺寸,将较长的数据包进行强制分割,例如以太坊无法接收大于1500个字节的数据包,发送方节点的传输层将数据切割成较小的数据片,同时对每一数据片安排一个序号。以便数据到达接收方节点传输层时能以正确的顺序重组,该过程称为排序。传输层中我们需要关注的是TCP/IP协议中的TCP协议和UDP协议,现在我们已经保证给正确的计算机发送正确的封装过后的信息了。但是用户级别的体验好不好?难道我们每次都调用TCP协议去打包然后调用IP协议去封装路由,自己发送?当然不行所以我们需要建立一个自动发包自动寻址的功能,于是发明了会话层。

会话层:

会话层的作用就是建立和管理应用程序之间的通信。现在我们能保证应用程序自动发包和寻址了。但是我们用linux给windows发包两个系统语法不一致,就像安装包一样exe是无法在linux执行的Shell在windows下也是无法直接运行的于是需要表示层来帮我们解决不同系统间的通信语法的问题。

表示层:

在表示层数据将按照网络能理解的方案进行格式化这种格式化也因网络的不同而不同,此时发送方知道自己发送的是什么东西转换成字节数组之后会有多长,但是接受方肯定不知道。所以应用层的网络协议诞生了。它规定了发送方和接受方必须使用一个固定长度的消息头,消息头必须使用某种固定的组成而且消息头必须记录消息体的长度等一系列信息。以便接收方能够方便解析发送方的数据。

应用层:

​ 应用层只在让你更方便的应用从网络中接收的数据没有该层基于数据的传递你也可以在两台电脑间开干,不用传来传去也都是一些由 010101001 组成的字节数组,该层让我们去关注TCP/IP协议中的HTTP协议。

以上就是对OSI各个层的划分,从应用层开始都会对要传输的数据头部进行 处理加上本层的一些信息,最终由物理层由以太网,电缆等介质解析成比特流在网络中传输数据,数据传递到目标地址并自底而上的将先前对应的头部解析分离出来,这个就是我们网络数据处理的整个流程。

OSI是一个定义良好的协议规范,并由许多可选的部分完成类似的任务,它定义了开放系统的层次结构,层次之间的相互关系,以及各层包括的可能的任务是作为一个框架来协调和组织各层的服务,但是OSI参考模型并没有提供一个可以实现的方法而是描述了一些概念用来进程通信标准的制定,以及OSI参考模型并不是一个标准而是一个在制定标准时使用的概念型框架。

事实的标准是TCP/IP四层架构参考模型。是首先由apanet所使用的的网络t体系结构,后来该结构由美国国防部用来作为计算机网络的标准,由于领头大哥的推动市面上绝大多数的厂商也以该标准为主用于商用。虽然TCP/IP也并不完全符合OSI的7层参考模型。但我们依然可以理解为它是OSI的一种实现。

接下来我们来讲讲这个主流的协议。

[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-C4bdVXMg-1632115307378)(ms图库/TCPIP协议.jpg)]

从字面上讲有些人可能认为TCP/IP协议是指TCP和IP这两种协议,实际生活中有时也确实指这两种协议,然而很多情况下它只是指利用IP进行通信时所用到的协议群的统称 具体来说IP或者ICMP等,TCP或者UDP,FIP等等,以及HTTP都属于TCP/IP协议。它们与TCP或IP的关系紧密,是互联网必不可少的组成部分,TCP/IP一词泛指这些协议因此有时也会称TCP/IP为网际协议群。从图中我们得知TCP/IP协议与OSI在分层模块上稍有差别。TCP/IP的应用层可以理解为约等于OSI的应用层,表示层,会话层这三层的组合,同时OSI的数据链路层,和物理层在TCP/IP中被规定为链路层。OSI模型注重通信协议必要的功能是什么,而TCP/IP更强调在计算机上实现协议应该开发 什么程序。

[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-JXc8ySNW-1632115307381)(ms图库/TCPIP和OSI的对应.jpg)]

从上面这张图里,在数据传输过程中我们可以看到和OSI一样。TCP/IP的每个层中都会对所发送的数据加上一个头部,在这个首部中包含了该层的必要的信息,如发送的目标地址以及协议相关的一些信息通常为协议提供的信息为 报头的首部,所要发送的内容为数据从下一层角度上看数据被传送到接受端后再层层解掏出来。

如发送的目标地址以及协议相关的一些信息通常为协议提供的信息为 报头的首部,所要发送的内容为数据从下一层角度上看数据被传送到接受端后再层层解掏出来。

你可能感兴趣的:(sql,网络,网络协议,http)