本篇博客是笔者阅读《图解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. PPR管及管件的类型、规格与选用

    1. PPR管的类型及参数识读 2. 常用的PPR管件及规格 3. 住宅给水管的PPR管及管件的需求量

  2. C言语语法总结(随时更新)

    一.gcc1. gcc xxx.c -o xxx #把原代码编译成可执行文件xxx2. gcc -c xxx.c #编译: 把原代码编译xxx.o后辍的目标文件3. gcc xxx.o -o xxx ...

  3. 分支结构之二:switch-case

    1.格式 switch(表达式){case 常量1: 执行语句1; //break; case 常量2: 执行语句2; //break; ... default: 执行语句n; //break; } ...

  4. 一篇带你了解如何使用纯前端类Excel表格构建现金流量表

    现金流量表(Cash Flow Statement),是指反映企业在一定会计期间现金和现金等价物流入和流出的报表.现金流量表是企业财务报表的三个基本报告之一(另外两个是资产负债表和损益表). 为了全面 ...

  5. web前端一览&jQuery

    web前端一览 html:裸体 css:好看的衣服            //通常基于bootstrap魔改 JavaScript:动起来           //通常基于JQuery魔改 jQuer ...

  6. Vue中组件化编码使用(实战练习一)

    Vue中组件化编码的大致流程(初接触).组件之间的参数传递(最基础的形式).组件之间的配合完成一个需求 1.在Vue中进行组件化编码 1.1.组件化编码流程: (1).拆分静态组件:组件要按照功能点拆 ...

  7. VMware16安装RedHat7.6步骤

    1.安装准备 安装好VMware 16 下载好RedHat7.6镜像,本文为 rhel-server-7.6-x86_64-dvd.iso 2.点击"创建新的虚拟机"进入" ...

  8. Mysql入门练习题

    1.在students表中,查询年龄大于25岁,且为男性的同学的名字和年龄 mysql> select name,age from students where age>25 and ge ...

  9. JavaWeb3

    1. 会话技术 会话:一次会话中包含多次请求和响应 一次会话:浏览器第一次给服务器资源发送请求,会话建立,直到有一方断开为止 功能:在一次会话的范围内的多次请求间共享数据 方式: 客户端会话技术:Co ...

  10. freeswitch的mod_curl模块

    概述 有时候,我们需要在呼叫的过程中,或过程后调用web api接口. freeswitch的mod_curl模块可以很方便的实现web api的接口调用. mod_curl模块默认不安装,需要进入模 ...