当大多数网络学生首次了解OSI模型时,他们会花费大量时间来尝试确定特定协议适合模型的哪一层。在这个论坛上,我们有很多关于OSI层的问题,它们通常是:
- IS-IS在哪个OSI层上运行?
- HTML是演示文稿还是应用程序协议?
- VPN隧道是第2层还是第3层?
学生(或专业人士)应如何理解OSI模型与他/她使用的协议之间的关系?
当大多数网络学生首次了解OSI模型时,他们会花费大量时间来尝试确定特定协议适合模型的哪一层。在这个论坛上,我们有很多关于OSI层的问题,它们通常是:
- IS-IS在哪个OSI层上运行?
- HTML是演示文稿还是应用程序协议?
- VPN隧道是第2层还是第3层?
学生(或专业人士)应如何理解OSI模型与他/她使用的协议之间的关系?
Answers:
关于OSI模型,要记住两个重要的事实:
这是一个概念模型。这意味着它描述了一组理想的,抽象的,理论上的网络功能。它没有描述某人实际构建的任何东西(至少没有今天使用的东西)。
它不是唯一的模型。还有其他模型,最著名的是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模型对于理解网络很有用。
所有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)工作。
HTTP(非HTML)同时具有表示层和应用程序层。VPN隧道将覆盖层添加到现有堆栈中:取决于其种类,它可以是第2层或第3层。然后,您将能够在数据包中两次看到此添加的层。