实际的OSI模型

2021-03-30 00:32:38

在我之前已经说过,我相信教学现代学生OSI Modelas一种网络的方法是一个基本错误,使得概念明确而不是更多。这是一个重要的原因很简单:OSI ModelWas规定的特定网络堆栈与其一起设计,并且该网络堆栈不是我们今天使用的网络堆栈。事实上,我们使用的TCP / IP堆栈与OSI模型有意地设计,以便实际地设计。

使用OSI模型教学学生关于TCP / IP的是使用Wankel周期的图表教授SeashingAbout小型发动机修复。它'毫无疑问的闹剧点。 OSI模型不是一些"理想"网络模型,它不是A"金标准"甚至是A"有用的参考。"它''它是一个故障的特定网络堆栈的架构,无法获得重要的真实世界adoption。

嗯,"未能获得现实世界的采用"是我最喜欢的东西之一,我们'重新谈论OSI模型和OSI网络堆栈。

OSI模型的故事基本上始于迟到的' 70年代,其中一个标准委员会(突出的ISO),创建标准化的堆栈,可以用于互连各种系统。 OpenSystems互连模型,如果您愿意。

此时间段是计算机网络的缺点,大多数计算机在特定于供应商的协议上运行,这些协议基本上超过了旨在将终端连接到大型机的协议。 IBMSystems网络架构可能是最突出的,但比您可以轻松列出的更多。

可以在不同计算机体系结构上实现的标准化网络协议相对不成熟。 X.25是最受欢迎的,并且被用作今天的教学例子,因为它很简单而容易理解。然而,X.25具有显着的限制,并以不舒服的方式结婚,以不舒服的方式(其两者都依赖于Laketlines,并且在X.25中,X.25是以直接模拟的方式设计为直接模数网络)。 X.25不够好,就在上帝市场上的分享人们意识到他们需要更强大的东西,而不是与供应商联系在一起。

OSI网络堆栈以非常理论的方式设计。也就是说,七层的OSICOnceptual模型主要设计在实现这些层的实际权力之前。这将OSI模型始终始终从一开始就脱离了实际的计算机网络。虽然这是一个意见问题,但我相信Theosi模型从那开始被严重过度设计。

与大多数实用的计算机网络不同,该网络旨在提供很短的钟声和吹口哨,OSI模型试图编码我们现在考虑"应用程序&#34的每次审议。进入实际的协议。这结果是OSI模型和#39;今天的前四层,今天是"应用程序"以各种奇怪的方式拼写。通过一个关键的,这可以被视为函数的设计中的一个严格的例子。甚至在这段时间内,Computernetworks所需要的是通常易于实现和易用的东西,而不是电力。

从现代的角度来看,这可能并不完全明显,但只有大多数CS学生都接受了训练,只是忽略了大部分模型。请记住,OSI模型是:

在我们过多进入这些层的细节之前,让'请记住Alayer是什么。 OSI模型的基本概念通常用于介绍我呼叫网络抽象的概念:每层只与它下面的图层相互作用,并且通过这样做提供给它上方的层的服务。

每个层都有一个受约束的关注区域,协议定义了一个限定每层行为的合同。通过TheSssors的刚性,强制抽象,我们获得灵活性:层变成"混合和匹配。"只要图层为ABOVEAND实现了正确的接口,我们可以使用下面的正确接口,我们可以使用我们想要的任何agiven层的实现。

这一事项在实践中。考虑TCP和UDP的情况:TCP和UDPCAN都会在IP之上丢弃,因为它们都期望在它们下面的图层下方的功能。此外,在令人惊讶的程度上,TCP和UDP缺乏倾听。虽然它们提供不同的保证,但Thetwo的接口很大程度上是相同的,因此切换两个软件中的哪一个使用等值(在我们不需要保证TCPProvides)[1]的简单情况下使用。

所以,希望掌握这种网络的中央概念,让' s应用于OSI模型,它可能最初教授给我们。 PruseEntation层取决于会话层,并为TheApplication层提供服务。那个' s,uhh,很酷。维基百科表明,序列化数据结构是该层可能发生的东西的示例。但是,Session层不需要任何高级数据结构,因为它在不使用呈现层的情况下函数,所以TheSsorps。 Italso似乎表明,在序列化的背景下,呈现出会话,在序列化的背景下,在序列化的情况下略微意义。

事实上,它很难看出这个问题和#34;基本概念" PresentationLayer适用于计算系统,因为它没有。会话和图片都是" vestigal层和#34;哪个没有在ipstack中实施,因此它们没有真正的现代等效物。大多数会议教学的演示层包括掌握示例的教师---我哈哈德作为会话层的东西,因为它通过违反分层网络的实际基本概念而破坏了这一点。

现在我们都同意OSI模型是垃圾,它没有代表现实世界,让'看看世界所代表的世界:OSI协议,实际上是明确设计为OSI模型的实现。

没有人真正定义第1层,物理层,因为它通常是关于协议的设计而不是任何故意设计的东西的ACONSTRAIN。在OSISTack的上下文中,物理层通常可以假设是一种简单的串行通道,如leasttelephone线,使用某种类型的线路编码和其他细节,这些细节是对网络程序员感兴趣的。

第2层,数据链路层提供最基本的网络化特征。今天,我们经常将第2层讨论为进一步细分为主题(媒体访问控制)和LLC(逻辑链路控制)子层,但是以外的范围这只是尝试retcon retcon oSi模型的结果,以及差异化在Mac和LLC之间是由OSI模型的实际设计者所考虑的。

数据链路层主要以x.212的形式实现。在从您可能期望的大气中通过OSIMODEL教授IP堆栈,OSI数据链路链路层以及X.212提供了可靠性,其中包括Checksumming和重新发送的可靠性。可选地,它提供有保证的订单。 X.212进一步提供了服务质量。

与递送顺序特异性相关,X.212提供连接 - RosentedMode和无连接模式。 TCP和UDP之间的区别非常相似(但不是完全相同),但我们仍然只是谈论默特拉德2!请记住,第2层基本上定义在特定网络链路的TheContext中,因此这些功能始于与其他高级协议(例如隧道)实现的不可靠的链路或链接,而不是处理路由网络。

X.212寻址基本上是未指定的,因为期望在第2层中使用的那个程序将是短暂的,并且特定于使用中的媒体。第2层流量不能直接跨越网段,没有必要任何类型的标准化寻址。

与大多数层一样,有用于Thedata链路层的替代实现,包括将其传输到其他问题的实现。

OSI第3层,网络层提供了更复杂的服务,可在IP世界中基本相同的语义WEExpect之间存在于主机之间的移动字节。第3层可以面向导向的和连接模式,很像层2,但现在在跨路由网络提供这些服务。

两个典型的第3层协议是无连接网络协议和连接面向网络协议,基本上基本上完全是什么样的。

这些图层的OSI寻址基于网络服务点地址ORNSAPS。或者,嗯,它更好地说,NSAP是当前的标准弃权。事实上,协议有些灵活性,历史上方被使用,但已经大大替换为NSAP。 NSAP地址的长度为20bytes,并且没有特定的结构,尽管存在包括嵌入IP地址的NSAP分配的各种型。 NSAPS Donot包括具有IP地址的情况的路由信息​​,因此对给定NSAP的路由流量的处理包括"翻译" nsapsinto更详细的寻址类型,其可以依赖于第2层注入。总而言之,OSI寻址令人困惑,在现代使用中取决于特定应用程序的细节。

第4层,传输层在第3层增加附加特征,包括多个流,错误恢复,流量控制和连接管理员(例如重试和重新连接)。有各种称为TP0 TP4的定义的Layer4协议类,其特征在于以不完全从现代角度完全理解的方式变化。

因为第4层提供常规消息传递功能,所以它可能是IP堆栈中的TCP和UDP协议的最偏执,但当然这是令人困惑的索赔,因为在LowerLevels中发现了许多UDP和TCP的元素。

选择五个传输层之一"水平"依赖于基本上是卓越的要求,并且可以从非常高的可靠性(TP4)到低矮的网络条件,带有轻松的保证(TP0 ORTP1)。

会话图层添加了两个主机之间的关联管理和它们之间的连接之间的attatus。这有点令人困惑,因为IPModel没有等效,但它可能有助于知道,在Osimodel中,连接是"关闭"在会话层(导致级联到下层的动作)。 OSI会话层定义为Byx.215,这为我们与链路设置相关联的一些角色服务。

但是,更有趣的是,会话层是负责通过优雅地重新启动Anetwork对话框来处理重大网络错误的高级处理。这不是IP堆栈所提供的能力,除非它是未被应用程序中的应用程序。

会话层通过令牌机制管理对话,该机制是类似于令牌环网络或常规&#34的与之相同的方式;谈话"概念。可以使用多个令牌,允许主机之间的半双工正常交互。

类似于它下面的每个层,第5层面向连接的和连接的口味。无连接的味道尤其是Emportants,它为会话管理提供了强大的功能,而不需要符合底层准备的电路---在UDP上应用层在应用层中实现的东西。

第6层,呈现层是IPstack中不存在的另一个。从IPStack的视图中,会话层有点难以理解,但演示层甚至是陌生人。

基本概念是:应用程序应使用AbstractRepresentations而不是实际的线编码值进行交互。然后,这些抽象的valueScan基于底层网络的功能转换为实际的线值。

为什么这甚至是我们想要的东西?嗯,它&#39是重要的要记住,这是在短时间内的时间段开发的,当文本编码甚至比现在都是标准化的时间段,而且数值表示不值得良好的标准化(具有各种类型的BCD)。

因此,对于两个系统能够可靠地进行通信,他们必须建立一个可接近的方式来表示数据值......很可能需要一定程度的特征。由x.216定义的OSI呈现层名义上通过使用向网络表示和从网络表示来使用抽象表示来标称调整这些问题。实际上有一个数字在概念中类似的现代技术,但它们很少查看网络图层[2]。

最后,应用层实际上是在哪里,你知道的事情。当应用程序层必须灵活而不是强烈定义时,oSI堆栈仍然存在慷慨的定义应用程序协议。虽然它并不是特别有趣的挖掘,但要注意今天仍然很重要的夫妇是有用的。

X.500,目录服务应用程序协议,可以被视为LDAP的“戈兰锥体”。如果你认为,就像所有理智的人一样,那个LDAP是折磨的,男孩你会喜欢X.500。它基本上是对食用的,但对死亡来说太重要了,所以它被削减到"轻量级" LDAP。

虽然X.500未能获得广泛的采用,但今天X.500 Liveson的一个组成部分,几乎完好无损:X.509,描述了X.500生态系统的加密证书。今天由TLS和其他加密实现时使用的X.509证书格式和概念,包括字符串表示(长度为前缀),这是Thetime的体面选择,但现在考虑到零任务的完全胜利,这很奇怪。

X.400,Messaging Service Protocol,基本上是OSI版本的电子邮件。您预期的是,我们今天知道它是明显更强大和复杂的复杂。很长一段时间,Microsoft Exchange被录制为X.400的实施,而不是电子邮件实施,这是为什么这是一个可怕的怪物。另一部分是现代电子邮件中的一切。

这是一场OSI网络协议的巡回赛。我可以进入相当的深度,但我有一个有限的预算来购买ISO标准和有利的跨度来阅读我可以获得的副本。但是,如果您有兴趣,OSI堆栈协议都是由ITU标准符合美国ISO或来自我们爱沙尼亚的朋友的良好定义,以便更便宜。对于磁性化项目,实施它们:你可能是真正了解OSI模型的唯一人类活力,漫步你的数据通信教授。

[1]对比度SCTP,其提供了一种接口,该接口由于多个流等特征而显着地与UDP和TCP ByteStream不同。 Notuneratedly,SCTP从未在互联网上取得成功。

[2]我认为这实际上是一个关于Theosi教学模型的重要局限性的线索。 OSI模型倾向于在其中创建一个"固定"具有指定函数的一组图层,在实际的现代化服务中,它非常常见的是我们将拥有应用程序协议的多个有效层。