通过 TCP 或套接字通信接收的消息占据哪个网络层?

通过 TCP 或套接字通信接收的消息占据哪个网络层?

我正在尝试了解网络抽象层。

我认为 TCP 位于网络层,而 HTTP 位于应用层。因此,HTTP 可以“通过”TCP 完成。

不过,我也可以进行“套接字”编程,例如在服务器上允许监听和响应某些套接字。

在这种情况下,我可以在某个套接字上使用 XML 进行响应,而无需在应用层上具体定义任何内容。我只是以字节数组形式的 ASCII 文本传递 XML。XML 响应会被视为不是应用层的一部分,还是仅仅是应用层上的‘自定义’协议?

答案1

TCP 位于传输层,第 4 层。HTTP 位于应用层,第 7 层。

在此处输入图片描述 OSI 模型的 7 层

在 OSI 模型中,上层(5-7)和下层(1-4)具有特定的作用。通常,上层被合并为 1 层,因此 OSI 模型成为5层TCP模型。下层提供网络连接和可靠性。上层为用户和程序提供应用服务。作为应用程序或开发人员,您看到或触摸的一切都在上层的某个地方。

您所说的“套接字编程”实际上与任何需要在网络上通信的应用程序所做的没什么不同。除非上层应用程序请求,否则无法打开套接字。它请求操作系统创建特定的网络套接字并发送或接收数据。因此,即使是您创建的用于通过套接字发送或接收数据的基本应用程序也被视为上层进程。

XML 应用程序是运行在第 5 层、第 6 层还是第 7 层,这值得商榷,因为这实际上取决于您如何处理来自那里的数据。要求从技术上讲,打开套接字发生在第 5 层(然后在较低层打开并维护套接字)。但是,根据您发送或接收的数据以及您对这些数据的操作,您将从第 6 层或第 7 层开始操作。由于这种模糊性,将上层合并为单个层要容易得多,因为从应用程序的角度来看,这实际上没有什么区别。

相关内容