zoukankan      html  css  js  c++  java
  • 计算机网络学习笔记——初探七层模型

      自顶向下,OSI参考模型分为:应用层、表示层、会话层、传输层、网络层、数据链路层、物理层。之所以称之为参考模型,是因为虽然制定了此标准,但是实际情况中并没有得到完全的遵守。在计算机网络的章节中,不再对物理层、数据链路层进行记录。只对开发者更为关心的上面五层进行记录。

      下面以以一个实际案例来介绍OSI参考模型具体的工作流程:

      案例:小明通过社交软件向小红发送一条消息——“我想死你了”,在小明输入文字点击发送之前,属于 “应用层” 的工作范围,而当小明点击发送后,“应用层” 就将数据发送给了 “表示层” ,为什么要称为 “表示层” 呢 ?,我们知道,在网络传输中,一段文字会被转换成特定的格式,这样的“数据转换”使得异构的机型之间能够保持数据的一致性,例如 “我想死你了” 可能会按照UTF-8或者ISO8859-1被“表示成”成特定格式的数据,“表示层”因此而来,当 “表示层” 将数据转换成特定的格式以后,会在数据的首部附加信息,告诉接收方使用哪种标准解码数据,这样就保持了数据的一致性,如果双方使用的编码格式不统一,就会造成乱码问题。

      表示层处理数据并附加首部信息后,会将数据转交给下一层——会话层。我们知道数据交换的方式有电路交换、报文交换、分组交换,分组交换是当下的主流,数据报会被分割成很多个数据包沿着复杂的线路中传输到目的地,由于路由器的转发通常不是可控的,即通常没有指定传输路径,所以同一组数据拆分出的数据包往往会按照不同的路径传输到目的地,这就导致了数据到达目的地的顺序需拆分时的顺序不一致,接收方不知道该如何重组数据以获得准确的信息。再者,加入小明要向小红发送5封邮件,这5封邮件的发送顺序可以有多种,比如每发送一次建立一次连接,也可以建立连接后一次性全部发送给对方。因此,会话层的职责是负责决定使用哪种连接方式传输数据,并在数据首部附加首部信息,以通知接收方正确的接收顺序。

      当会话层将数据交给传输层后,传输层真正执行采用和种连接方式,常听到的传输层协议有TCP、UDP,TCP是面向连接的,UDP是面向无连接的,相关的知识将在后续章节中逐一介绍。传输层附加首部信息后会将数据交给交给网络层,传输层虽然称之为传输层,但是它只负责数据传输时采用的传输协议,实际的数据传输是在网络层发生的,网络层通过IP地址和路由器的转发表将数据准确的送往目标网段,目标网段的所有主机接收数据后,会根据Mac地址选择保留或者抛弃数据,因此在网络层最为重要的就是IP协议了。

      在网络层附加首部信息(源IP,目标IP...)后,交给了数据链路层,数据再链路层被称为 “帧” ,链路层也会在数据的首部附加信息,交给物理层,物理层将数据转换成电信号等物理信息在电缆,光缆中进行传输。

      接收方收到信息后,会逐层解析数据包并重组。以上只是非常简略的介绍七层模型,后面将针对开发者对重要的层进行介绍。

  • 相关阅读:
    GLSL 变量属性
    php读取大文件的方法
    php 3种常见设计模式
    php类自动装载、链式操作、魔术方法
    统计文件中关键词出现的次数
    python先序、中序、后序排序
    Nginx缓存、压缩配置
    Ninx虚拟主机的配置
    python爬虫代码
    Nginx在安装过程经常出现的问题
  • 原文地址:https://www.cnblogs.com/superlsj/p/11757442.html
Copyright © 2011-2022 走看看