OSI 模型层是什么!它们是有形的吗?

OSI 模型层是什么!它们是有形的吗?

我知道所有层及其功能。但是,如何干预/使用它们?我读到每一层都会添加自己的数据,我的路由器/交换机内置了 7 个层吗?

答案1

不,它们完全是抽象的,只是以每组任务模块化的方式对操作进行分组。

第 1 层仅处理从线路上读取电/光信号并将其转换为数字信号(反之亦然)。UTP、stp、光纤、微波、射频等。

第 2 层仅处理两个设备如何使用特定的第 1 层技术进行通信(那么如何跨越局域网)以太网、令牌环、光纤通道、任何以 802 开头的东西等等。

第 3 层仅处理如何将两个或多个网络连接在一起并在它们之间发送消息。IP、ICMP、IGRP 等。

第 4 层仅处理如何区分一个连接与另一个连接,区分其是否完整、顺序是否正确以及是否与同一个对话(TCP/UDP)相关。

您的问题的一部分似乎与协议封装有关。

L4 段需要通过网络传输,因此它们会被放入 L3 数据包中,然后放入 L2 帧中,最后转换为电信号。我知道这个描述不太准确,但你最好还是看一看图表。https://en.wikipedia.org/wiki/Encapsulation_%28networking%29

希望有帮助。

编辑:尝试提供更多背景信息。

首先,在您的路由器上。是的,现代路由器运行在软件上,并且内置了应用程序,因此它是一个全栈设备,但最好不要这样想。网络人员只关心 1-4 层。路由是第 3 层功能,NAT 和防火墙在第 3 层和第 4 层运行,管理接口在第 7 层运行。我认为交换机是第 2 层设备,恰好具有几个第 3 层和第 7 层功能。

其次,OSI 模型的真正目的是允许逻辑的重用和标准化,无论是写在电路中、编码在 ROM 中还是包含在程序中的逻辑。NIC 应该能够承载任何第 3 层协议,或者与大多数第 1 层拓扑一起工作(请注意,现实情况并非如此,但在理想世界中......)。它允许您混合和匹配不同的层实现,因此您可以使用 Cat5e + 802.3 + TCP/IP 或 RF + 802.11n + IPX/SPX 来构建堆栈。它允许重用,因为构建框架并将 IP 数据包封装到其中的代码或电路只需写入/打印一次,并且上面的每层都可以根据需要多次重用它。

第三,不用担心第 5 层和第 6 层。除了编写操作系统和编码标准的人之外,没有人对它们感兴趣,而且它们通常实际上不会在数据包中封装任何数据。作为一名应用程序开发人员和前网络管理员,我从来没有担心过这两件事。我甚至不认为任何常见的操作系统会按照 OSI 中的规定来实现它们。如果我需要以 unicode 发送字符串,我只需在编码字符串时这样说;主机不会封装 PDU 标头,表示“这是 utf-8”。

因此您需要担心 5 层(1-4 和 7)。

就如何与不同层交互而言,较低的层几乎是固定的,并与您的网卡、其驱动程序和操作系统网络堆栈一起发送给您。但是,您可以对其进行配置,以便设置 MAC 地址、IP 地址、链路速度/双工、帧大小等属性,或者通过配置防火墙/ nat 规则或静态路由。您还可以菊花链设备/服务。例如,VPN 本质上是第 2 层代理,而 TOR 是第 3 层代理。

应用层是控制大多数花哨东西的地方,但是属于开发人员的领域。他们控制连接到哪里、发送/请求什么、如何读取数据以及如何处理数据。开发人员依赖于堆栈的下半部分,但并不关心它们是如何实现的。如果我告诉程序建立 TCP 连接,那么我在网络(或源和目标之间的任何网络)上实现了哪一层并不重要,只要它们运行正常并支持 TCP 即可。这就是堆栈的价值。从任何层的角度来看,它都不太关心下层的实现是什么。现实情况是存在一些限制,因为某些协议变得非常强大(首先想到的是 802.3 和 TCP/IP),并且第 1 层和第 2 层实现通常是必然联系在一起的(因为它们都是在 NIC 中部分实现的)。

所以,就说这么多了;只是希望能给你一些关于我在开始时遇到的麻烦的看法。仔细考虑一下,希望它能有所帮助。

祝你好运

答案2

它们是实实在在的吗?

在某种程度上。Frank Thomas 的上述解释非常好,但让我补充一点。当然,所有现代 PC 的设计都旨在让用户忽视 TCP/IP 堆栈的困难,因此,不仅路由器而且 PC 都包含七层,但没有人注意到。然而,您至少在几次场合中确实与它们有过密切接触。

第一个是交换。您家里的简单交换机可以正确转发流量,但它不是路由器。有什么区别?交换机是第 2 层对象,它使用不同的协议 (ARP) 转发到 MAC 地址。路由器则根据 IP 地址将数据包发送到网络跳跃,这是基于不同协议 (IP) 的第 3 层概念。事实上,我们都知道您不能用一个替代另一个,这就是原因。

第二种情况是当您设置 tun/tap 连接时,可以选择桥接配置或路由配置。这种情况发生在某些 VPN(OpenVPN 就是一个很好的例子)或虚拟机管理程序中的虚拟机中(此处的 NAT 连接是路由连接)。这些连接本质上是不同的,桥接在第 2 层工作,而隧道在第 3 层工作。桥接将join两个独立的网络视为一个网络,而路由将它们连接起来,同时保持它们之间的区别。这意味着所有依赖于在单个子网上工作的应用程序(samba 有人吗?)都无法在路由解决方案中开箱即用,这可能是一个障碍(Samba,就像我说的)或一个优点(例如,使用路由解决方案,您不会浪费宝贵的带宽将 ICMP 数据包从一个子网发送到另一个子网)。

相关内容