计算机网络面试核心--网络基础知识

目录

为什么考察网络知识?

物理层

数据链路层

网络层

传输层

会话层

表示层

应用层

OSI开放式互联参考模型

OSI与TCP/IP的区别

OSI

TCP/IP


为什么考察网络知识?

        跟网络知识相关的考点,有的人不是很明白。面试中,考察网络知识有什么意义?因为编程的时候,多数的情况下是不用我们来编写socket这些东西的。并且底层服务已经很好的处理了数

据包的解析,所以网络方面的东西貌似是不需要我们关心的。实际上,这就类似于框架底层的一些东西,平时能满足我们的需求的时候呢,我们并不会去关心他们。但真要出了问题,比如说

能没办法满足我们的需求了,这个时候如果不熟悉底层的话。我们往往束手无策,此种情况同样适用于网络。

        比如说你没办法判定此时程序为什么会变慢。是网络的原因,还是别的原因?数据包有没有丢失?为什么会造成大量的lose weight?为什么会出现大量的连接丢失等等,因此还是很有必要

学习一些网络知识,以备不时之需的。网络知识的考察点通常相对固定些,更偏向于理论,所以接下来的内容主要以理论知识为主。

        我们首先来简要的了解一下网络协议。当前,市面上分别存在四层,五层,七层协议,而国际标准化组织。iso制定的osi 7层协议模型是业界提出来的概念型框架。因此,咱们先来了解一下

开放系统互联参考模型及osi 7层协议。如图便是我们的七层协议:

 (我们自底而上去讲解一下。那工程学科都是不断迭代的过程,因此七层协议大致是这么进化的。)

物理层

        我们首先要解决两台物理机之间的通信需求,具体就是机器a,往机器b发送比特流。机器b能收到这些比特流,这便是物理层要做的事情。

        物理层主要定义了物理设备的标准,如网线的类型,光纤的接口类型,各种传输介质的传输速率等。

        它的主要作用是传输比特流及我们所谓的0101,2进制数据。将它们转化为电流强弱来进行传输,到达目的后呢,再转化为0101的机器码,也就是我们常说的数模转换与模数转换。这一层

的数据叫做比特。网卡就是工作在这一层里面的。

数据链路层

        第二层呢,就是我们的数据链路层了,在传输比特流的过程中会产生错传、数据传输不完整的可能,因此数据链路层应运而生。数据链路层定义了如何格式化数据以进行传输,以及控制对

物理介质的访问

        这一层通常还提供错误检测和纠正,以确保数据传输的可靠性。本层,将比特数据组成了帧,其中交换机工作在这一层里,面对帧解码。并根据帧中包含的信息,把数据发送到正确的接收方。

网络层

        随着网络节点的不断增加,点对点通信的时候是需要经过多个节点的,那么如何找到目标节点?如何选择最佳路径,便成为了首要需求。此时,便有了网络层。

        其主要功能是将网络地址翻译成对应的物理地址,并决定如何将数据从发送方路由到接收方。网络层通过综合考虑发送优先权,网络拥塞程度,服务质量以及可选路由的花费来决定从一个网

络中节点a到另一个网络中节点b的最佳路径。由于网络层处理并智能指导数据传送,路由器连接网络隔断,所以路由器属于网络层。此层的数据我们称之为数据包。本层我们需要关注的协议

呢,主要是tcp/ip协议里面的这个IP协议。

传输层

        那么随着网络通信需求的进一步扩大。通信过程中需要发送大量的数据,如海量文件传输的可能需要很长时间,而网络在通信的过程中,会中断好多次,此时为了保证传输大量文件时的准

确性,需要对发出去数据进行切分。切割为一个一个的段落即segment进行发送,那么其中一个段落丢失了,该怎么办?要不要重传每个段落,要按照顺序到达吗?这个便是传输层需要考虑的问

题了。

        传输层解决了主机间的数据传输,数据间的传输呢,可以是不同网络的,并且呢,传输层解决了传输质量的问题。该层呢,称之为osi模型中最重要的一层了。传输协议同时进行流量控制

或是基于接收方可接收数据的快慢程度,规定适当的发送速率。除此之外,传输层按照网络能处理的最大尺寸,将较强的数据包进行强制分割

        例如,以太坊无法接收大于1500字节的数据包。发送方节点的传输层将数据分割成较小的数据片,同时对每一数据片安排一序列号。以便数据到达接收方节点的传输层时,能以正确的顺序

重组。该过程即称为排序

        传输层中需要我们关注的协议有tcp/ip,协议中的TCP协议和UDP协议

会话层

        现在我们已经保证给正确的计算机发送正确的封装过后的信息了,但是用户级别的体验好不好?难道每次都要去调用TCP去打包,调用IP协议去找路由自己去发?当然不行,所以我们要建

立一个自动收发包,自动寻址的功能,于是发明了会话层。

        会话层的作用就是建立和管理应用程序之间的通信

表示层

        现在我能保证应用程序自动收发包和寻址了。但我要用linux给windows发包两个系统,语法不一致,就像安装包一样,exe是不能在linux上面去执行的,cell在WINDOWS下也是不能直接运

行的,于是需要表示成即presentation layer,帮我们解决不同系统之间的通信语法的问题,再表示成数据将按照网络能理解的方案进行格式化。这种格式化也因所使用网络的类型不同而不同

应用层

         此时,虽然发送方知道自己发送的是什么东西。转换成字节数组之后有多长,但接收方肯定不知道。所以应用层的网络协议诞生了。

        它规定发送方和接收方必须使用一个固定长度的消息头。消息头必须使用某种固定的组成。而且消息头里必须记录消息体的长度等一系列信息,以方便接收,方能够正确的解析发送方发送

的数据。应用层旨在让你更方便的应用从网络中接收到的数据。

        至于数据的传递,没有该层,你也可以直接在两台电脑间开干,只不过传来传去就是一堆1和0组成的字节数组。该层需要我们重点去关注的是,与之相对应的tcp/ip协议中的HTTP协议。

以上就是关于osi各层次的划分。


OSI开放式互联参考模型

        从应用层开始呢,都会对要传输的数据头部进行处理,加上本层的一些信息。最终由物理层通过以太网,电缆等介质将数据解析成比特流,在网络中传输。数据传递到目标地址并自底而上

的将先前对应层的头部给解析分离出来。

       这个就是我们的网络数据处理的整个流程。


OSI与TCP/IP的区别

OSI

        osi是一个定义良好的协议规范集,并有许多可选部分完成类似的任务。它定义了开放系统的层次结构,层次之间的相互关系以及课程所包括的可能的任务。

        是作为一个框架来协调和组织各层所提供的服务。但是osi参考模型并没有提供一个可以实现的方法,而是描述了一些概念。用来协调进程间通信标准的制定及osi参考模型并不是一个标准,

而是一个在制定标准时所使用的概念性框架。事实的标准是---TCP/ IP 4层架构参考模型。TCP/IP参考模型是首先由阿帕奈所使用的网络体系结构。

        后来,该结构被美国国防部用来作为计算机网络的标准。由于领头大哥的推动,市面上绝大多数厂商也以该标准为主,用以商用。虽然tcp/ip协议呢,并不完全符合osi的七层参考模型,但我

们依然可以理解为它是osi的一种实现。

TCP/IP

        接下来咱们来讲讲这个主流的协议,从字面上讲,有人可能会认为TCP/IP是指TCP和IP这两种协议实际生活当中有时也确实就是指这两种协议。

然而,在很多情况下,它只是利用IP进行通信时所必须用到的协议群的统称。具体来说,IP,ICMP,TCP,udp, tell net或者FTP这些等等以及http都属于tcp/ip协议。它们与TCP或IP的关系紧

密,是互联网必不可少的组成部分。TCP/IP 一词泛指这些协议。因此有时也称TCP/IP为网际协议群

        从图里我们得知,tcpip协议与osi在分层模块上稍有区别。TCP/IP的应用层可以理解为约等于osi中的应用层,表示层和会话层这三层的组合。同时osi的数据链路层以及物理层呢,在TCP/IP

中被归并为链路层

        osi模型注重通信协议必要的功能是什么,而TCP/IP则更强调在计算机上实现协议应该开发哪种程序

        从这一张图里,在数据传输的过程中,我们可以看到和OSI一样TCP/IP的每个分层中都会对所发送的数据附加一个头部。在这个首部中包含了该层必要的信息。如发送的目标,地址以及协

议相关的信息,通常为协议提供的信息为报头的首部,所要发送的内容为数据,从下一层角度上看数据被传送到接收端之后再层层解套出来。

猜你喜欢

转载自blog.csdn.net/m0_64005381/article/details/127787352