zoukankan      html  css  js  c++  java
  • OSI七层模型简介

    OSI简介

    OSI是定义良好的协议规范,并由许多可选部分完成类似的任务,它定义了开放系统的层次结构,

    层次之间的相互关系以及各层包括的可能的任务,是作为一个框架协调和组织各层所提供的服务,

    但是OSI参考模型并没有提供一个可实现的方法,而是描述了一些概念,用来协调进程间通信标准的指定,

    OSI参考模型并不是一个标准,而是一个在指定标准时所使用的概念性框架。

    物理层

    两台物理机的通信需求,具体是机器A向机器B发送比特流,机器B能收到这些比特流,这就是物理层要做的。

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

    主要作用:传输比特流及0, 1二进制数据并将它们转换成电流强弱进行传输,到目的后再转成0, 1的机器码,

    这就是我们所说的数模转换与模数转换。

    这层的数据叫比特,网卡就是工作在这层。

    数据链路层

    在传输比特流的过程中会产生错传,数据传输不完整的可能,链路数据层定义了如何格式化数据以进行传输以及

    如何让控制对物理介质的访问,提供错误检测和纠正,以确保数据传输的可靠性,本层将比特数据组成帧。

    其中交换机就是工作在这层,对帧进行解码,并根据帧中所包含的信息吧数据发送到正确的接受方。

    网络层

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

    主要功能:将网络地址翻译成对应的物理地址并决定如何将数据从发送方路由到接收方。

    网络层通过综合考虑发送优先权,网络阻塞程度,服务质量及可选路由的花费来决定从一个网络中的节点A到另一个节点B的最佳路径。

    由于网络层处理并智能指导数据传送,路由器连接网络各段,所以路由器属于网络层。

    此层的数据我们称为数据包,本层需要关注的协议为TCP/IP协议中的IP协议。

    传输层

    随着网络通信需求的进一步扩大,通信过程中需要发送大量的数据,如海量文件传输,可能需要很长的时间,

    而网络在通信过程中可能会中断好几次,此时为保证传输大量数据的准确性,需要对发出的数据进行切片,

    切成一个一个的段落即segment进行发送,其中一个段落丢失怎么办?要重传吗?每个段落需要按照顺序到达吗?

    这些都是传输层需要考虑的问题。

    传输层解决了主机间的数据传输,数据间的传输可以不同网络的,并且传输层解决了传输资源的问题,

    最重要一层,传输协议同时进行流量控制或基于接受方可接收数据的快慢程度规定适当的发送速率,除此之外,

    传输层按照网络能处理的最大尺寸将较长的数据包进行强制分隔,例如一方无法接受速率大于1500字节的数据包

    发送节点的传输层将数据分隔成较小的数据片,同时对每一数据安排序列号以便数据到达接收方节点的传输层时能以

    正确的顺序重组,该过程称为排序。传输层需要关注的协议有TCP/IP协议中的TCP、UDP协议。

    会话层

    现在看我们已经保证给正确的计算机发送正确的封装过的数据,但是用户级别的体验好不好,难道我每次都要TCP打包

    然后调用IP协议去找路由,自己去发当然不行,所以我们要就建立一个自动收发包,自动寻址的功能,于是就有了会话层。

    作用:建立和管理应用程序之间的通信。

    表现层

    现在我能保证应用程序自动收发包和寻址,但我还要用linux给window发包,两个系统语法不一致,

    两个系统语法不一致,就像安装包一样,exe不能再linux上执行,shell不能再window上执行,于是就出现了表现层。

    帮我们解决不同系统之间的通信语法的问题。在表现层,数据将按照网络能够理解的方案进行格式化,这种格式化

    因所使用的网络类型不同而不同。此时发送方虽然知道自己发送的是什么,转换成字节数组后有多长,但接收方不知道,

    所以应用层的网络协议就此诞生。

    应用层

    应用层规定发送方和接受方必须使用同一个固定长度的消息头,消息头必须使用某种固定的组成,

    而应用层里必须记录消息体的长度等信息,以方便接收方能够正确的解析发送方发送的数据。

    应用层旨在让你更方便的应用从网络中接收到的数据,至于数据的传递没有该层,你也可以在两台

    计算机之间开干,只不过传来传去就是1和0组成的字节数组,该层需要我们重点关注的是与之相对应的

    TCP/IP协议中的HTTP协议。

    参考资料:计算机网络面试核心

    参考资料:OSI模型

    参考资料:OSI模型(百度百科)

  • 相关阅读:
    mysql正则表达式
    阿里云OSS 获取目录下所有文件
    docker 部署mvc项目 <四>
    docker部署项目 <三>
    docker 安装mysql数据库 <二>
    docker安装 <一>
    安装 Docker <一>
    Mongodb字段自增长
    EF的使用<三>
    EF 简单介绍<一>
  • 原文地址:https://www.cnblogs.com/marton/p/10851962.html
Copyright © 2011-2022 走看看