OSI 模型和网络协议关系

网络工程 奥西
2021-07-14 13:41:23

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

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

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

4个回答

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

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

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

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

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

与此同时,TCP/IP 模型也得到了发展。它简单、易于实施,最重要的是,它是免费的。您必须购买 OSI 标准规范才能为其创建软件。所有的注意力和开发工作都集中在 TCP/IP 上。结果,OSI 模型作为一组协议从未在商业上取得成功,而 TCP/IP 成为 Internet 的标准。

关键是,今天使用的所有协议都是 TCP/IP 套件;RIP、OSPF、BGP等路由协议;和主机操作系统协议,如 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 模型就可以帮助您理解网络。

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

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

物理层 - 处理硬件网络设备,即笔记本电脑、移动电话、台式机。已知第 1 层是冲突域,第 1 层 PDU(协议数据单位为比特)。

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

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

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

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

表示层 - 该层是关于您在 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 层,具体取决于它们的类型。然后您将能够在数据包中看到此添加的层两次。