OSI模型和TCP/IP协议族

Posted 月缺一格

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了OSI模型和TCP/IP协议族相关的知识,希望对你有一定的参考价值。

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协议族的主要内容,如果未能解决你的问题,请参考以下文章

OSI模型和TCP/IP协议族

OSI七层模型和TCP/IP协议族

OSI模型和TCP/IP协议族

OSI模型和TCP/IP协议族

计算机网络——TCP/IP协议族详解

iOS的TCP/IP协议族剖析&&Socket