本篇博客是笔者阅读《图解TCP/IP》所记录下的笔记,有兴趣的朋友可以去看一看这本书。

OSI七层参考模型

​ 本小节以电子邮件通信为例,分别来阐述OSI七层模型的每一层是如果进行通信处理的。

​ 假定用户 A要给用户B发一封电子邮件 “早上好!”,在用户A和用户B的通信过程中,网络是如何处理的呢,下面对应着OSI七层参考模型,从上至下来分析一下。

应用层

​ 用户A在主机A上新建一封电子邮件,指定收件人为主机B上的用户B,并输入邮件的内容 “早上好!”。

​ 接收和发送邮件的软件,从功能上可以分为两大类,一类是与通信无关的功能,例如:新建邮件,指定收件人,输入邮件内容为 “早上好”,这部分功能就是与通信无关的功能。而另一类就是与通信有关的功能,在用户点击 “发送” 按钮的那一刻,就开始进行了应用层协议的处理。

​ 该协议会在所要传输数据的前端附加一个 “首部” 标签,其中包含的信息有:邮件的内容 "早上好",收件人B(目标主机)。

因此,此处的 输入电子邮件内容后发送给目标地址 也就相当于应用层。

表示层

​ 表示层具有 “表示“,”演示“的意思,因此更关心 数据格式①的表现形式,此外应用软件的本身不同也会导致数据格式的表现形式截然不同, 例如用户A与用户B所使用的客户端软件(qq邮箱,网易邮箱,Google邮件)不同,或者用户A与用户B所使用的终端设备不同,就有可能会造成数据格式的不同。

​ 可以利用表示层来解决这类问题,通过表示层将数据从 “某个计算机特定的格式” 转换为 “统一的网络数据格式” ,在将 "统一的网络格式" 恢复为 "某个计算机的特定格式",从而进行数据的在网络中的准确传输,然后再进行相应的处理,如果未能按照特定格式编码进行转换,有可能在客户端收到的电子邮件中出现乱码的情况。

​ 因此,表示层与表示层之间为了识别编码格式也会附加首部信息,从而将实际传输的数据交给下一层处理,将数据从主机的特有格式到网络标准的传输格式之间的相互转换就是表示层所做的事情

①数据格式:是数据保存在文件或记录中的编排格式,最典型的汉字的编码格式有GB2312 、BIG 、ISO8859-1等。

会话层

会话层主要是决定数据以何种方式建立连接。例如用户A向用户B发送5封邮件,此时用户A向用户B建立连接的方式有多种,1.可以每发送一封邮件建立一次连接,随后断开。 2.可以建立一次连接发送5封邮件。 3.可以同时建立5个连接,同时发送邮件。

​ 会话层也像应用层和表示层那样,在其收到的数据前端加上首部标识,其中包含在建立连接的方式,然后再转发给下一层。

传输层

​ 到此为止,我们通过例子说明了在应用层写入数据会经由表示层格式化编码,再由会话层标识以何种方式进行数据传输的大致过程,然而会话层并不具备传输数据的功能。真正负责在网络上传输具体数据是会话层以下的 “无名英雄”。

​ 主机A确保与主机B之间的通信并准备发送数据。这一过程叫做 ”建立连接“。有了这个通信连接就可以使主机 A发送电子邮件到达主机B,并有主机B处理程序获取最终数据。当传输结束后,则需要将连接断开,减少资源的浪费。

​ 如上,进行建立连接或断开连接的处理,在两个主机之间创建逻辑上的通信连接既是传输层的主要功能。此外,传输层为确保所传输的数据到达目标地址,会在通信两端的计算机进行确认,如果数据没有到达目标主机,或者因为网络波动的原因,数据有所缺失,他会负责重新发送。在传输层保证了数据的可靠传输

网络层

​ 然而,实际上将数据传输给对端的处理是由网络层来完成的,网络层负责将数据发送至最终的目的地址,这个地址是进行通信的网络中唯一指定的序号,也可以把他想象中我们日常生活中的手机号码,这要这个地址确定了,就可以在众多将计算机中选出该地址所对应的主机发送数据。

​ 在不同的网络体系结构下,网络层又是也不能保证数据的可达性。例如在TCP/IP 网络层的IP协议中,就不能保证数据一定会发送都对端地址。因此,数据传输过程中,会出现数据丢失,数据顺序混乱等问题,想这样没有可靠性的传输的网络层中,可以由传输层负责提供 “正确传输数据的处理 ”。TCP/IP中,网络层与传输层相互协作,从在最终保证了数据的可靠性、有序性传输。

数据链路层、物理层

​ 通信传输实际上是通过物理的传输介质实现的。数据链路层的作用就是在这些通过传输介质互联的设备上进行数据处理。

​ 物理层中,将数据的0,1转换为电压和脉冲光传输给物理的传输介质,而相互直连的设备通过地址进行传输,这种地址称之为MAC地址,也可以称之为硬件地址,或者物理地址。因此在这一层中,将包含MAC地址的首部附加到网络层转发过来的数据上,在将其发送到网络上。

​ 网络层与数据链路层都是基于目标地址将数据发送给接收端,但是网络层负责将整个数据发送给目标地址,而数据链路层则负责发送一个分段内的数据。

深入浅出OSI七层参考的更多相关文章

  1. (转载)OSI七层参考模型和TCP/IP四层参考模型

    Mallory   网络模型概念浅析 网络模型一般是指OSI七层参考模型和TCP/IP四层参考模型. #只是一种设计==模型# Open System Interconnect的缩写,意为开放式系统互 ...

  2. Linux--网络基础(概念+协议的了解+OSI七层模型,TCP/IP五层协议,网络数据传输流程)

    网络的发展 网络的发展有下面几个阶段: 独立模式:计算机最开始是以单机模式被广泛使用的.每一台计算机都是独立的,之间不能够进行数据共享与通信 网络互联: 计算机之间可以链接在一起,完成数据共享,计算机 ...

  3. 计算机网络漫谈:OSI七层模型与TCP/IP四层(参考)模型

    提纲.png 一.七层?四层? OSI模型(Open System Interconnection Reference Model,缩写为OSI),全名“开放式系统互联通信参考模型”,是一个试图使各种 ...

  4. OSI七层协议模型、TCP/IP四层模型

    OSI七层协议模型 TCP/IP四层模型 首先我们梳理一下每层模型的职责: 链路层:对0和1进行分组,定义数据帧,确认主机的物理地址,传输数据: 网络层:定义IP地址,确认主机所在的网络位置,并通过I ...

  5. OSI七层模型详解 TCP/IP协议

      总结 OSI中的层 功能 TCP/IP协议族 应用层 文件传输,电子邮件,文件服务,虚拟终端 TFTP,HTTP,SNMP,FTP,SMTP,DNS,Telnet 等等 表示层 数据格式化,代码转 ...

  6. 网络知识学习1---(基础知识:ISO/OSI七层模型和TCP/IP四层模型)

    以下的内容和之后的几篇博客只是比较初级的介绍,想要深入学习的话建议自己钻研<TCP/IP详解 卷1:协议> 1.ISO/OSI七层模型    下四层是为数据传输服务的,物理层是真正的传输数 ...

  7. OSI七层与TCP/IP五层网络架构详解

      引用自:http://www.2cto.com/net/201310/252965.html   OSI和TCP/IP是很基础但又非常重要的网络基础知识,理解得透彻对运维工程师来说非常有帮助.今天 ...

  8. 1-2 ISO/OSI七层模型简介

    相关名词解释: ISO:国际标准化组织 OSI:开放系统互联模型 IOS:苹果操作系统, 但是在计算机网络中,IOS是互联网操作系统,是思科公司为其网络设备开发的操作维护系统 <1>OSI ...

  9. osi七层模型和两主机传输过程:

    osi七层模型和两主机传输过程: http://www.zhihu.com/question/24002080/answer/31817536  注:笔记部分可能参考其他作者内容的一个记录,仅为加深自 ...

  10. OSI七层模型基础知识及各层常见应用

       OSI Open Source Initiative(简称OSI,有译作开放源代码促进会.开放原始码组织)是一个旨在推动开源软件发展的非盈利组织.OSI参考模型(OSI/RM)的全称是开放系统互 ...

随机推荐

  1. 关联Prometheus与Alertmanager

    在Prometheus的架构中被划分成两个独立的部分.Prometheus负责产生告警,而Alertmanager负责告警产生后的后续处理.因此Alertmanager部署完成后,需要在Prometh ...

  2. HDU4734 F(x) (数位DP)

    (如此简短的题目给人一种莫名的压迫感......) 题目中定义一个数的权值求解函数:F(x) = An * 2n-1 + An-1 * 2n-2 + ... + A2 * 2 + A1 * 1. 观察 ...

  3. GC plan_phase二叉树挂接的一个算法

    楔子 在看GC垃圾回收plan_phase的时候,发现了一段特殊的代码,仔细研究下得知,获取当前数字bit位里面为1的个数. 通过这个bit位为1的个数(count),来确定挂接当前二叉树子节点的一个 ...

  4. 集合元素的遍历操作,使用迭代器Iterator接口

    1.内部的方法:hasNext() 和 next() 推荐的方式: //hasNext():判断是否还有下一个元素while(iterator.hasNext()){ //next():①指针下移 ② ...

  5. jquery+bootstrap学习笔记

    最近小颖接了个私活,客户要求用jquery和bootstrap来实现业务需求,小颖总结了下在写的过程中的一下坑,来记录一下 1.动态加载html文件 switch (_domName) { case ...

  6. nginx 通过IP访问项目

    项目新需求,因为是小范围使用的网站,所以不打算配域名,直接通过IP访问当前项目. 环境: LNMP 一键集成环境 当前IP指向的目录 :/home/wwwroot/default/ 但是我的项目.需要 ...

  7. 超好用的截图软件Snipaste(包含安装包)、如何设置Snipaste开机自启

    文章目录 1.设置开机自动启动 2.基本使用 链接: https://pan.baidu.com/s/1oR2qkOZl5-etPxr7kWip7Q 提取码:8888 1.设置开机自动启动 2.基本使 ...

  8. 一天五道Java面试题----第十一天(分布式架构下,Session共享有什么方案--------->分布式事务解决方案)

    这里是参考B站上的大佬做的面试题笔记.大家也可以去看视频讲解!!! 文章目录 1.分布式架构下,Session共享有什么方案 2.简述你对RPC.RMI的理解 3.分布式id生成方案 4.分布式锁解决 ...

  9. 齐博x1模板中常用的TP标签数据处理

    上图是比较常用的, 而下图是比较特殊的场合,比如幻灯片可能会用到 下图使用了TP的循环标签. 上图只使用了条件判断标签 上图不存在 val="xxx" 这个参数,所以会自动循环输出 ...

  10. Spring 深入——IoC 容器 02

    IoC容器的实现学习--02 目录 IoC容器的实现学习--02 回顾 IoC 容器的初始化过程: BeanDefinition 的 Resource 定位 小结: 回顾 前面学习了 IoC 模式的核 ...