为什么本地网络通信与 OSI 模型中的网络间通信处理方式不同?

网络工程 奥西 苹果电脑
2022-02-26 00:23:52

查看堆栈溢出问题 - https://stackoverflow.com/questions/13006949/what-is-the-difference-between-the-data-link-layer-and-link-layer - 其中一个答案说数据链路层,即和/或其他事物的组合LLCMAC从我在 Google 搜索中看到的)用于处理本地网络通信。

我不确定什么LLCMAC现在,但我希望对为什么需要这样的协议有一个高层次的概述。

即,如果数据链路在本地网络基础上处理通信,这是否意味着 OSI 模型的上层被“跳过”?

本地网络通信与网络间通信有什么不同?MAC以及事情是如何LLC发挥作用的?我经常读到“MAC 地址”之类的东西。这是什么 - 它是否与 MAC 协议有关?

1个回答

请记住,OSI 模型只是一个模型,现实世界并不总是如此完美地融入其中。有很多模型,但没有一个是完全遵循的。

数据链路层是 OSI 模型下的第 2 层。许多(但不是全部,仅 IEEE)LAN(第 2 层)协议使用的地址称为 MAC(媒体访问控制)地址。使用 IEEE LAN 协议(例如以太网或 Wi-Fi)的 LAN 上的主机使用 MAC 地址相互通信。

OSI 模型的一个主要问题是操作系统实际上从未实现单独的第 5、6 和 7 层。这意味着这些层实际上在应用程序层中集中在一起,这在此处是题外话。

应用层将数据发送到传输层,在传输层中将数据封装在数据报中进行传输。一些传输层协议使用源地址和目标地址。对于 TCP 和 UDP,我们将这些地址称为端口,而 TCP 数据报称为分段,因为应用程序数据流是分段的。

传输层将其数据报发送到网络层,网络层将数据报封装在称为数据包的网络层数据报中。数据包具有源地址和目标地址。

网络层将数据包发送到数据链路层,数据链路层将数据包封装成帧(MAC 功能)。IEEE 数据链路层协议在帧上使用称为 MAC 地址的源地址和目标地址。其他第 2 层协议可能使用其他寻址,或者根本不使用。

数据链路层将帧发送到物理层(硬件),以便对放置在“线路”上的帧进行编码。

接收主机将反转该过程,将线路上的位解码为帧,帧将其有效载荷发送到适当的网络层协议(LLC 功能),然后将数据包有效载荷发送到适当的传输层协议,传输层协议将有效载荷发送到适当的申请程序。

源主机上的每一层都与目的主机中的相应层通信,因此,不,同一局域网上的两台主机通信时不会跳过上层。

了解主机可以有多个网络层协议。IEEE LAN 协议决定哪个网络层协议获取帧的有效负载的方式称为 LLC。将网络数据包实际封装在帧中称为 MAC。

不要误以为全世界都在使用 IEEE 数据链路协议,尽管它们在 LAN 上占主导地位。有许多不同的数据链路协议,其中许多不使用由 IEEE 802 定义的 LLC 或 MAC。