学习TCP/IP协议之前,你应该先理解OSI开放式互联参考模型,事半功倍

   当前市面上存在4层,5层,7层协议,而国际标准化组织ISO制定的OSI七层协议模型是业界提出来的概念型框架,因此我们
    先来了解一下开放系统互联参考模型及OSI七层协议。分为1物理层、2数据链路层、3网络层、4传输层、5会话层、6表示层
    、7应用层。那么我们自底而上讲解一下。

学习TCP/IP协议之前,你应该先理解OSI开放式互联参考模型,事半功倍_第1张图片


    
    物理层:
    我们要解决两台物理机的通信需求,具体就是机器A往机器B发送byte流,机器B接收到byte流。这便是物理层要做的事情。
    物理层主要定义了物理设备的标准,如网线的类型,光纤的接口类型,各种介质的传输速率等。它的主要作用是传输比特
    流,即我们的0101二进制数据。将它们转化为电流强弱进行传输,到达目的地后再转化为0101的机器码。也是我们常说的
    数模转换与模数转换。这一层的数据叫做比特,那网卡就是工作在这一层的。
    
    数据链路层:
    在传输比特流的过程中,会产生错传,数据传输不完整的可能,因此数据链路层应运而生。数据链路层定义了如何格式化
    数据以进行传输,以及控制如何对物理介质的访问,这一层通常还提供错误检测和纠正,以确保数据传输的可靠性。本层
    将比特数据组成了成帧,其中交换机工作在这一层里面,对帧解码,并根据帧中包含的信息,把数据发送到正确的接收方
    。
    
    网络层:
    那随着网络节点的不断增加,点对点通讯的时候,需要经过多个节点,那么如何找到目标节点,如何选择最佳路径,便成
    为了首要需求,此时便有了网络层。其主要功能主要是将网络地址翻译成对应的物理地址,并决定如何将数据由发送方路
    由到接受方。网络层通过综合考虑发送优先权,网络拥塞程度,服务质量,以及可选路由的花费来决定从一个网络中节点
    A到另一个网络节点B的最佳路径。由于网络层处理并智能指导数据传送,路由器连接网络隔断,所以路由器属于网络层。
    此层的数据我们称之为数据包。本层我们需要关注的协议主要有TCP/IP协议里面的IP协议。
    
    传输层:
    随着网络通信通信需求的进一步扩大,通讯过程中需要发送大量的数据,如海量文件传输等,可能需要很长时间,而网络
    在通信的过程中,会中断好多次。此时为了保证传输大量文件的准确性,需要对发出去的数据进行切分,切割层一个一个
    的段落,即segment进行发送。那么其中一个段落丢失了该怎么办?要不要重传?每个段落要按照顺序到达吗?这个便是
    传输层需要考虑的问题。传输层解决了主机间的数据传输,数据的传输可以是不同网络的。并且传输层解决了传输的质量
    问题。该层是OSI模型中最重要的一层。传输协议同时进行流量控制,或者基于可接受接收数据的快慢程度,规定适当的
    发送速率。除此之外,传输层按照网络能处理的最大尺寸,把较长的数据包进行强制分割,例如以太坊无法接受大于1500
    字节的数据包。发送方节点的传输层将数据分割成较小的数据片,同时将每一个数据片安排一个序列号,以便数据到达接
    收方节点的传输层时,能以正确的顺序重组,该过程称为排序。传输层需要我们关注的协议有TCP/IP协议中的TCP协议和
    UDP协议。
    
    会话层:
    现在我们保证给正确的计算机发送正确的封装过后的信息了,但是用户级别的体验好不好呢?难道我每次都要调用TCP去打
    包,然后调用IP协议去找路由,自己去发。当然不行,所以我们要建立一个自动收发包,自动寻址的功能,于是发明了会
    话层。会话层的作用就是建立和管理应用之间的通信。
    
    表示层:
    现在我能保证应用程序自动收发包和寻址了。但是我们要用linux给windows发包,两个系统语法不一致。就像安装包一样,
    exe是不能在Linux上执行的。shell在Windows下也是不能直接运行的。于是需要表示层。当我们解决不同系统之间的通讯
    语法的问题。在表示层,数据将按照网络能理解的方案进行格式化。这种格式化也因网络的不同而不同。
    
    应用层:
    虽然发送方知道自己发送的是什么东西,转换层字节数组之后有多长,但接收方肯定不知道。所以应用层的网络协议诞生
    了。它规定发送方和接收方,必须使用一个固定长度的消息头,消息头必须使用某种固定的组成,而且消息头必须记录消
    息体的长度等一系列信息。方便接受方能正确的解析发送方发送的数据。应用层旨在让你更方便的应用从网络中接受到的
    数据。至于数据的传递,没有该层你也可以在两台主机间传输。只不过传来传去就是一堆1和0组成的字节数组。该层需要
    重点关注的是与之相对应的TCP/IP协议中的Http协议。
    学习TCP/IP协议之前,你应该先理解OSI开放式互联参考模型,事半功倍_第2张图片
    
    OSI是一个定义良好的协议规范集,并有许多可选部分完成类似的任务,它定义了开放系统的层次结构,层次之间的相互关
    系,以及各层包括的可能的任务,是作为一个框架来协调组织各层所提供的服务。但是OSI参考模型,不没有提供一个可实
    现的方法,而是描述了一些概念,用来协调进程间通讯标准的制定,即OSI参考模型并不是一个标准。而是在制定标准所使
    用的概念型框架。事实的标准是TCP/IP四层架构参考模型。

学习TCP/IP协议之前,你应该先理解OSI开放式互联参考模型,事半功倍_第3张图片

 

你可能感兴趣的:(学习TCP/IP协议之前,你应该先理解OSI开放式互联参考模型,事半功倍)