OSI 七层模型是一种抽象,其目的是澄清概念并使比较不同的网络方法更容易:例如 Internet 协议和 X.25 之间的差异。它不是用于实际实现网络的标准。
如果您正在研究互联网协议,如果您用它自己的术语来理解它,就会容易得多。
您的示例非常常见:台式计算机通常如何与打印机通信,打印机通常与其客户端计算机位于同一 LAN 中。假设有 TCP 连接,桌面会打开一个 TCP 连接,通常是到打印机上的端口 9100,然后开始发送 PostScript 或其他打印机特定的数据。其他非常常见的打印机协议使用 UDP over IP over Ethernet。到 LAN 上的 Web 服务器的 HTTP 或到本地服务器的 SSH 使用完全相同的机制。
- TCP 连接由段组成,就像往常一样
- 段在 IP 数据包中发送,就像往常一样
- IP 数据包作为以太网帧发送,就像往常一样
它实际上是互联网协议的核心、绝妙的想法之一:我们将在本地以太网上使用相同的更高级别 (HTTP/IP) 协议,就像我们穿越大洋一样。以前,计算机会非常频繁地通过以太网使用基于 LAN 的协议,并使用其他基于调制解调器的协议进行长途传输。在那个时期,如果你想让你的程序与遥远的主机通信,你必须重写它。在互联网方式中,通信进程不知道也不关心另一端是否在同一台计算机、同一房间或同一星球上。
直接回答这个问题:是的,即使在本地通信时,我们也会使用所有层。(唯一的例外:如果我们在单个主机内进行通信,IP 数据包将在整个操作系统中传输,而不会遇到第 2 层:包含来自发送进程的 IP 数据包的内存被映射或复制到接收进程的内存中.)
是否可以将 HTTP 直接放入以太网帧中?当然,您可以轻松编写服务器和客户端来执行此操作。但这是一个可怕的想法。它只能跨局域网工作。您必须解决以下问题:a) 如果框架损坏,您会怎么做?b) 您如何最大化带宽并使用全双工通信?c) 你如何在带有令牌环而不是以太网的新站点上使用它?d) 你如何使用它从以太网站点到令牌环站点?这些问题的优秀解决方案已经可用:a) TCP ack 机制,b) TCP 滑动窗口,c) IP 打包,d) IP 转发。
(为了解释简单,我省略了非以太网情况、安全阻塞、权限、隧道和其他现实世界的复杂性。)