1990年以前,再数据通信和组网文献中占主导地位的分层模型是开放系统互连(Open System Interconnnection,OSI)模型。当时所有人都认为OSI模型将是数据通信的最终标准,然而这种情况并未发生。现在TCP/IP协议族成为了占主导地位的商用体系结构,因为它已经在因特网中应用,并且通过了广发的测试,而OSI模型则从来没有被完全实现过。 我们知道再两个实体之间要进行通信需要有一个协议。而当该通信比较复杂时,就有必要将这个复杂的任务划分为多层。此时,我们就需要有多个协议,每一层都有各自的协议。也许通过一段现实场景描述可以更好地理解协议分层的作用。下面举两个例子,再第一个例子中,因为通信过程非常简单,所以只需要单层就可以实现,而在第二个例子中则需要三层。 例1 假设玛利亚和安是邻居,她们志趣相投,但是玛利亚只会讲西班牙语而安只会说英语。由于她们俩在儿时都曾学过手语,每星期中有两三天她们会抽时间在咖啡馆见面,并用手语交换彼此的观点和想法。偶尔,他们也会使用双语字典,此时的通信是面对面的,只需要单层就可以实现,如下图所示。 例2 假设由于工作上的原因,安不得不搬迁到另外一个城市,在搬走之前,两人最后一次在咖啡馆见面。虽然都很伤心,但是玛利亚给安带来了一个惊喜,她打开一个小包,里面装着两台机器。第一台及其能够扫描用英语写的信,并把信的内容翻译成某种密码,反之也可以将密码翻译成英语。另一台机器则能够将西班牙语写的信翻译成密码,也能将密码翻译成西班牙语。安带走了第一台机器,而玛利亚留下了第二台机器。通过使用密码,这两个好朋友仍然能够互相通信,如下图所示。 玛利亚和安的通信过程如下。在第三层,玛利亚用她所擅长的西班牙语写了一封信,然后用那台翻译机扫描信的内容并将其翻译成一封密码。接着玛利亚把信放进信封并投入邮局的信箱。邮车会将信送到安居住的城市的邮局,而邮局又会将信投递到安的住所。安用她的翻译机将信中的密码翻译成英语。对于从安到玛利亚的通信过程,其处理方式相同,方向相反。不管是哪个方向,信的内容都是用密码来传递的,虽然玛利亚和安都不懂密码,但是通过分层的通信,她们仍然能够交换彼此的想法。 从例2可知发送方一共完成了三项不同的任务,而接收方也有三项响应的任务。在寄信人和收信人之间传送信件的过程是由邮车完成的。而这些任务必须按照分层结构中指定的顺序执行,这一点可能并不那么显而易见,在发送方,这封信必须先写好,在翻译成密码,然后投递到邮箱中,之后再由邮车从邮箱中取出并传递到邮局。在接收方,这封信首先必须要投递到收信人的邮箱中,收信人才能收到信并读出其内容。 在这里面发送方的每一层都要使用下一层所提供的服务,位于最高一层的寄信人使用了中间一层提供的服务,而中间一层使用了最低一层提供的服务,最低一层则用到了邮车服务。 OSI模型 成立于1947年的国际标准化组织(International Standards Organization, ISO)是一个多国团体,专门就一些国际标准达成世界范围的一致。全世界大约有四分之三的国家派代表参加,一个全方位覆盖网络通信问题的ISO标准就是开放系统互连(OSI)模型,它最早出现在20世纪70年代后期。 ISO是个组织;OSI是个模型 一个开放系统(open system)就是一组协议的集合,它使得两个不同的系统之间能够互相通信,而无须考虑其底层体系结构。OSI模型的作用就是展示两个不同的系统怎样才能做到互相通信,且不需要改变底层的硬件或软件的逻辑。OSI模型不是一个协议,它是一个为了更好地理解并设计出灵活、稳健且可互操作的网络体系结构而存在的模型。为OSI框架中的各种协议的创建提供基础,这才是OSI模型的本意。 OSI模型是一个分层的框架结构,其目的是为了设计出能够让各种类型的计算机系统相互通信的网络系统。它由七个独立且相关的层组成,而每层都定义了信息通过网络传输的完整过程中的一部分(见下图)。掌握了OSI模型的基本概念之后,就有了学习数据通信的牢固基础。 OSI模型由七个顺序排列的层组成:物理层(第1层),数据链路层(第2层),网络层(第3层),传输层(第4层),会话层(第5层),表示层(第6层)和应用层(第7层)。如下图所示,设备A把一个报文发送到设备B的过程中涉及到的层,在报文从设备A到设备B的途中可能会经过多个中间节点,这些中间节点一般只涉及到OSI模型中的下三层。 在开发这个模型时,设计者们首先提取出传输数据过程中最基本的要素,然后进一步判断哪些组网功能需要配合使用,并将这些功能划分为不同的组,从而形成了这些层。每一层都定义了一组关系密切的功能,并且这些功能与其他层的功能有着明显的区别。用这种方式来定义和定位功能集,设计者们就创建出了既有丰富功能又很灵活的体系结构。最重要的是,OSI模型使得各系统完全可以互操作,而没有OIS模型这些系统将无法兼容。 处于一台机器上的每一层都要调用紧挨的下一层的服务。例如,第3层使用第2层提供的服务,同时向第4层提供服务。而机器和机器之间,从逻辑上看起来像是一台机器中的第x层与另一台机器中的第x层之间在通信,这种通信是由协议来控制的,协议就是事先都同意的一组规则和约定。 在上图中,设备A向设备B发送报文(经过中间节点)。从发送方看,报文从第7层开始一直向下传送到第1层,在第1层中完整的数据包被转换为可传送到接收设备的形式。从接收方看,报文又从第1层开始向上一直传到第7层。 这些数据和网络信息之所以能够在发送设备中逐层向下传递,同时又在接收设备中能够逐层向上交付,是因为没对相邻的层之间有一个接口(interface)。每个接口都定义了改层必须向它的上层提供什么样的信息和服务。定义清晰明确的接口和功能可以使网络模块化,只要改层向它的上层提供了预期的服务,层功能的具体实现是可以修改或替换的,而不需要对周围的其他层进行改动。 上述7层可以看成分属三个组,第1、2和3层(物理层、数据链路层和网络层)是网络支撑层,这些曾的任务是在物理上把数据从一个设备传送到另一个设备(例如,电器规约、物理连接、物理编址、以及传输的定时和可靠性)。第5、6和7层(会话层、表示层和应用层)可以看成是用户支撑层,这些层使得一些本来没有关系的软件系统之间有了互操作性。第4层(传输层)将这两部分链接起来,使得底层所发送的是高层可以使用的形式。OSI的高层几乎都是用软件来实现的,而底层则是硬件和软件的结合,除了物理层,它的绝大部分是硬件。 如下图所示,给出了OSI各层的概貌。 D7数据表示第7层的数据单元,D6表示第6层的数据单元,以此类推。处理过程从第7层(应用层)开始,然后按降序逐层下去。每一层都可以在数据单元上附加一个首部。在第2层还要加上尾部。当这样格式化的数据单元通过物理层(第1层)时,就转换为电磁信号并沿着一条物理链路传输。到达终点后,信号首先进入第1层,并还原为它的数字形式。这个数据单元向上逐层通过OSI各层。每个数据块在到达上一层时,相应的发送层所附加的首部和尾部就被移去,然后由改层进行相应的处理,当数据块到达第7层时,这个报文就变为应用层所需要的形式,交给接收者使用。 上图还揭示了OSI模型中数据通信的另一个特点:封装。第7层的分组被封装在第6层的分组中。整个第6层的分组又被封装在第5层的分组中,以此类推。 换言之,第N层的分组中的数据部分就是第N+1层的完整分组(数据和开销)。这一概念称为封装,因为第N层并不知道封装后的分组中的哪个部分是数据,哪个部分是首部或者尾部,所以对第N层来说,从第N+1层传来的整个分组被看作是一个整体。

OSI模型和TCP/IP协议族(一)的更多相关文章

  1. OSI模型和TCP/IP协议族(三)

    TCP/IP协议族 TCP/IP协议族的开发要比OSI模型更早,因此TCP/IP协议族的分层结构无法准确地与OSI模型一一对应.原始的TCP/IP协议族定义为建立再硬件基础上的四个软件层,不通过目前T ...

  2. <TCP/IP原理> (二) OSI模型和TCP/IP协议族

    1.OSI参考模型 1)作用 2)各层的名称和功能 2.对分层网络协议体系的理解 1)不同节点:层次组成不同,作用不同 2)横向理解:虚通信.对等实体.协议.PDU 3)纵向理解:封装与解封.服务.接 ...

  3. OSI模型和TCP/IP协议族(二)

    OSI模型中的各层 物理层 物理层(physical layer)协调通过物理媒体传送比特流时所需要的各种功能.物理层涉及到接口和传输媒体的机械和电器规约.它还定义了这些物理设备即接口为了实现传输必须 ...

  4. OSI模型与TCP/IP协议族

    OSI模型与TCP/IP协议族 年之后,TCP/IP协议族逐渐成为占主导的商用体系结构,广泛应用于Internet中,并通过广泛的測试.而OSI模型从来没有被全然实现过. 一.OSI模型: OSI与I ...

  5. OSI 七层模型和 TCP/IP 协议比较

      OSI (Open System Interconnection), 开放式系统互联参考模型.从下到上七层模型功能及其代表协议: 物理层(Physical) :规定了激活.维持.关闭通信端点之间的 ...

  6. [转]从OSI网络模型到TCP/IP协议族简介

    OSI七层模型 OSI(Open System Interconnection,开放系统互联)七层网络模型成为开放式系统互联参考模型,是一个把网络通信在逻辑上的定义,也可以理解成为定义了通用的网络通信 ...

  7. 漫谈网络通信——从OSI网络模型到TCP/IP协议族

    OSI七层模型 OSI(Open System Interconnection,开放系统互联)七层网络模型成为开放式系统互联参考模型,是一个把网络通信在逻辑上的定义,也可以理解成为定义了通用的网络通信 ...

  8. TCP/IP知识总结(TCP/IP协议族读书笔记一)

    一.简述TCP/IP协议 Transmission Control Protocol/Internet Protocol的简写,即传输控制协议/互联网互联协议,又名网络通信协议.是Internet最基 ...

  9. OSI 七层模型和 TCP/IP 四层模型 及 相关网络协议

    简介 OSI 是理论上的模型,也就是一个统一的国际标准,现在的很多网络设备或者是网络协议都不同程度的精简了自己的所谓的模型,那么他们为了自己的通讯兼容都会参考这个OSI模型 TCP/IP 包括: TC ...

随机推荐

  1. C#委托与事件--简单笔记

    委托 简单记录点东西 适合似懂非懂的朋友看看 委托类型用来定义和响应应用程序中的回调. 借此可以设计各种有面向对象特性的代码模式.下面要说的事件在我看来就是委托的一种实现,再深一步讲,利用委托加事件, ...

  2. python实现三级菜单

    一.要求: 1.一开始打印出所有省份和提示 2.用户输入省份以此查询城市 3.在按照输出的城市名提示用户输入,最后输出用户所查询的区县名 4.随时输入"back"可以返回上一级菜单 ...

  3. php的内置函数debug_backtrace()与get_included_files()跟踪代码调用(Thinkphp框架举例)

    debug_backtrace() 在我们开发一个项目中,或者二开研究某个开源程序,需要对代码流程一步步去跟踪,来研究它的逻辑,才可以进行修改,达到我们的开发目的.php的内置函数debug_back ...

  4. HDU - 3038 种类并查集

    思路:种类并查集的每个节点应该保存它的父节点以及他和父节点之间的关系.假设root表示根结点,sum[i-1]表示i到根结点的和,那么sum[j-1] - sum[i]可以得到区间[j, i]的和.那 ...

  5. HDU - 1067 Gap (bfs + hash) [kuangbin带你飞]专题二

    题意:    起初定28张卡牌的排列,把其中11,  21, 31, 41移动到第一列,然后就出现四个空白,每个空白可以用它的前面一个数的下一个数填充,例如43后面的空格可以用44填充,但是47后面即 ...

  6. AGC012 - E: Camel and Oases

    原题链接 题意简述 沙漠中有个排成一条直线的绿洲,一头储水量为的骆驼. 骆驼有两个操作: 走到距离在V以内的一个绿洲. 飞到任意一个绿洲,但V减少一半.V=0时不能飞. 问骆驼依次从每个绿洲出发,能否 ...

  7. Java StringBuilder 和 StringBuffer 源码分析

    简介 StringBuilder与StringBuffer是两个常用的操作字符串的类.大家都知道,StringBuilder是线程不安全的,而StringBuffer是线程安全的.前者是JDK1.5加 ...

  8. Flex中的FusionCharts 3D柱形图

    1.3D柱形图源码 <?xml version="1.0" encoding="utf-8"?> <s:Application xmlns:f ...

  9. vxWorks/BootROM Imageq启动顺序详解

    vxWorks/BootROM Imageq启动顺序详解 VxWorks image     分为在ROM中运行和在RAM中运行两种,两者启动顺序的区别在于sysInit()函数的调用,该函数在RAM ...

  10. 【mongodb系统学习之十】mongodb查询(二)

    5).常用查询条件: a).比较操作符:"$lt","$lte","$gt","$gte",分别是<,<=, ...