OSI模型与网络协议的关系


27

当大多数网络学生首次了解OSI模型时,他们会花费大量时间来尝试确定特定协议适合模型的哪一层。在这个论坛上,我们有很多关于OSI层的问题,它们通常是:

  • IS-IS在哪个OSI层上运行?
  • HTML是演示文稿还是应用程序协议?
  • VPN隧道是第2层还是第3层?

学生(或专业人士)应如何理解OSI模型与他/她使用的协议之间的关系?

Answers:


35

关于OSI模型,要记住两个重要的事实:

  1. 这是一个概念模型。这意味着它描述了一组理想的,抽象的,理论上的网络功能。它没有描述某人实际构建的任何东西(至少没有今天使用的东西)。

  2. 它不是唯一的模型。还有其他模型,最著名的是TCP / IP协议套件(RFC-1122和RFC-1123),它与当前使用的套件非常接近。

一段历史:您可能已经听说过分组网络的早期,包括Internet的前身ARPANET。除了美国国防部为创建网络协议所做的努力外,其他一些团体和公司也参与其中。每个小组都在全新的分组交换领域中开发自己的协议。IBM和电话公司正在开发自己的标准。在法国,研究人员正在研究自己的网络项目Cyclades。

OSI模型的工作始于1970年代后期,主要是对IBM,NCR,Burroughs,Honeywell(及其他)等大公司及其专有协议和硬件日益增长的影响力的一种反应。其背后的想法是创建一个开放标准,以提供不同制造商之间的互操作性。但是,由于ISO模式的范围是国际性的,因此它具有许多相互竞争的政治,文化和技术利益。花费了六年多的时间才能达成共识并发布标准。

同时,还开发了TCP / IP模型。它简单,易于实施,最重要的是,它是免费的。您必须购买OSI标准规范才能为其创建软件。TCP / IP吸引了所有关注和发展。结果,从未将OSI模型实现为一组协议,而TCP / IP成为Internet的标准。

关键是,当今使用的所有协议都是TCP / IP套件;路由协议,例如RIP,OSPF和BGP;主机OS协议(例如Windows SMB和Unix RPC)是在没有考虑OSI模型的情况下开发的。它们有时有些相似之处,但是在开发过程中从未遵循过OSI标准。因此,尝试将这些协议装入OSI是愚蠢的事情。他们只是不完全适合。

这并不意味着该模型没有价值。学习它仍然是一个好主意,以便您可以了解一般概念。OSI层的概念被编织成网络术语,以至于我们在日常网络演讲中谈论第1、2和3层。稍作斜视,第1、2和3层的定义就可以很好地达成共识。仅出于这个原因,就值得了解。

关于OSI(或任何其他)模型要了解的最重要的事情是:

  • 我们可以将协议分为几层
  • 层提供封装
  • 层提供抽象
  • 层使功能与其他功能脱钩

将协议分为几层,我们可以分别讨论它们的不同方面。它使协议更易于理解和解决。我们可以轻松地隔离特定功能,并将其与其他协议的相似功能组合在一起。

每个“功能”(广义上)都封装了其上方的一层或多层。网络层封装了其上方的各层。数据链路层封装了网络层,依此类推。

图层将其下面的图层抽象化。您的Web浏览器不需要知道您是在网络层上使用的是TCP / IP还是其他协议(好像还有其他协议)。对于您的浏览器,较低的层仅提供数据流。从浏览器中隐藏了该流如何显示。TCP / IP不知道(或不在乎)您使用的是以太网,电缆调制解调器,T1线路还是卫星。它只处理数据包。想象一下设计一个必须处理所有这些问题的应用程序会多么困难。这些层抽象了较低的层,因此软件的设计和操作变得更加简单。

去耦:理论上,您可以在同一层用一种特定技术替代另一种特定技术。只要该层以相同的方式与上一层和下一层进行通信,那么实现的方式就无关紧要。例如,我们可以删除非常著名的第3层协议IP版本4,并将其替换为IP版本6。其他所有工作都应该完全相同。对于您的浏览器或电缆调制解调器,这没有什么区别。

TCP / IP模型是TCP / IP协议套件所基于的(惊奇!)。它只有四层,并且传输之上的所有内容都只是“应用程序”。它更易于理解,并避免了诸如“是此会话层还是表示层?”之类的无尽问题,但这也只是一个模型,有些事情没有。也不能像隧道协议(GRE,MPLS,IPSec等)很好地融入其中。

最终,模型是一种表示不可见的抽象概念的方法,例如地址,数据包和位。只要牢记这一点,OSI或TCP / IP模型对于理解网络很有用。


1
我一直想知道为什么在实际上,TCP / IP模型更适合该法案时我们为什么要使用OSI模型。
Ryan Foley 2014年

5
@RyanFoley,在许多情况下是正确的。但是,在进行故障排除(尤其是进行故障排除)时,最好有单独的物理层和数据层来分别解决每个问题。例如,最好知道Cisco设备在启用/启用,启用/禁用和停用/禁用的接口之间的区别。
YLearn

“例如,我们可以删除非常著名的第3层协议IP版本4,并将其替换为IP版本6。其他所有功能都应完全相同。对于您的浏览器或电缆调制解调器,这应该没有任何区别。 ” 不幸的是,它确实有所作为,因为抽象是泄漏的。应用程序和传输协议需要了解Internet协议使用的寻址。
彼得·格林

好吧,这就是为什么模型只是模型。
罗恩·特恩

1
joelonsoftware.com/2002/11/11/the-law-of-leaky-abstractions我们构建抽象来隐藏底层事物的丑陋细节,但是底层事物的某些细节却泄漏并导致问题。寻址系统就是其中之一,它一直泄漏到堆栈的顶部。
彼得·格林

2

这里有些混乱。仅仅因为一个函数似乎不适合某个层并不意味着它就不适合。OSI是灵活的,并允许将实际实现映射到模型的对象和子层。一层的某些功能也可以在其他层重复。同样,处理不必在应用程序层进行。最后,OSI不仅仅是一个模型,它是由某些制造商完全实施的。我参与了DEC项目。实用性意味着今天仅使用OSI的某些部分。


1

所有IGP(内部网关协议)路由协议都在第3层工作。外部BGP在第4层工作,而内部BGP在第3层工作。

物理层-处理硬件网络设备,例如笔记本电脑,手机,台式机。已知第1层是冲突域,即第1层PDU(协议数据单元是位)。

数据/链路层-该层涉及第2层交换机,广播域,VLANS,STP,VTP。该层的协议数据单元称为帧。

网络层-发生路由时,大多数路由协议都在此层工作。这也称为VLAN进行通信的IP层。该层的PDU称为数据包。

传输层-传输层处理TCP和UDP端口,这些端口是来自第3层的数据包发送到其目标端口的位置。重要的是要记住,TCP是面向连接的协议,而UDP是无连接的协议(非保证的数据传输)。该层的PDU是数据报。

会话层-会话层是数据包的封装,而不是从第3层解封装。该层处理多种服务器端编程语言,您可以在其中创建基于软件的应用程序并将其转换为->

Presentation层-该层与您在Web浏览器上看到的客户端代码有关,或者当您右键单击并查看源代码时,这些主要是HTM / CSS / Javascript代码,可让您查看->

应用程序层-这是GUI(图形用户界面)将HTML / CSS代码从第6层转换到该层的地方。您在Web浏览器上看到的是前端GUI。第5、6、7层PDU称为消息。

我希望这些回答所有与OSI有关的问题。

IS-IS在哪个OSI层上运行?-第3层
HTML是表示形式还是应用程序协议?-演示
VPN隧道是第2层还是第3层?-> L2TP是第2层-> VPN隧道通常在第3层(如IPSEC)工作。


1
这不能回答OP。他从来没有问过每一层做了什么,他问过人们应该对底层概念有所了解。
Ryan Foley 2014年

1
信息丰富,但这是一个问题/解决方案的站点。如果问题是“ OSI模型的不同层是什么,每个层做什么?”,您的答案就很好。问题是关于支持OSI模型的基础知识,而不是直接支持OSI模型的问题。洞察力强,但对这个特定问题的答案很差。
Ryan Foley 2014年

5
克里斯,我感谢您的回答,在很大程度上,您是正确的。但是ISIS运行在IP之上,这是否使其成为第4层?BGP怎么样?它在TCP之上运行。是第5层吗?我的观点是,尽管您可以将协议压缩到各个层中,但它们实际上并不适合。如果您要查看OSI表示层规范,我认为HTML不太适合。甚至OSI也承认第2层太宽,因此他们不得不将其分为两个子层。
罗恩·托恩

2
OSI模型只是一个理论模型。即使路由协议<name here>使用(L2 | L3)数据包,它也是L7的一部分,因为它是一个应用程序,因此它必须计算路由表,甚至可能计算它们之间的同一层。并非所有事物都是黑白的。
mulaz

3
@ Ron,ISIS不是本机IP协议。OSPF是。(只是增加了更多的混乱。:
John Jensen 2014年

1

HTTP(非HTML)同时具有表示层和应用程序层。VPN隧道将覆盖层添加到现有堆栈中:取决于其种类,它可以是第2层或第3层。然后,您将能够在数据包中两次看到此添加的层。


1
您当然可以标记自己认为合适的东西,但是HTTP的开发没有考虑OSI模型,并且它不符合规范。VPN也是如此-OSI标准从未预见到它们。因此,正如他们所说,任何相似之处都是完全巧合的。
罗恩·托恩

0

实际上,来自OSI模型的很少的事情之一是X.509证书和来自X.500的大量LDAP。另一件事是用于消息传递的X.400,MS Exchange至少在5.5中具有此功能,不确定是否包含更高版本。

因此,OSI是一个模型,在网络领域它失去了与TCP / IP的竞争,我真的不明白为什么仍然向学生传授这种知识。试图在这种模型中放置诸如MPLS之类的东西毫无意义。

深入研究将使您陷入大型组织试图执行标准的痛苦,这些可怕的事物包括ASN.1和BER ...过度设计了一切。

By using our site, you acknowledge that you have read and understand our Cookie Policy and Privacy Policy.
Licensed under cc by-sa 3.0 with attribution required.