到本地主机的连接是通过内存还是磁盘复制的?

Is a connection to localhost copied over memory or disk?

据我所知,IPC over sockets 有两种方法。 Unix 套接字和 TCP/IP 套接字。

UNIX 域套接字知道它们在同一个系统上执行,因此它们可以避免一些检查和操作(如路由);这使得它们比 IP 套接字更快更轻。它们还通过文件系统传输数据包,这意味着磁盘访问是该过程的自然组成部分(AFAIU,从使用文件系统的意思来看)。

IP 套接字(特别是 TCP/IP 套接字)是一种允许进程之间通过网络进行通信的机制。在某些情况下,您可以使用 TCP/IP 套接字与同一台计算机上的进程 运行 通信(通过使用环回接口)。

我的问题是:在后一种情况下,数据包的传输究竟发生在哪里?如果它们通过内存传递,虽然看起来有逻辑开销,但 IP 套接字实际上比 UNIX 套接字更高效。

有什么我想念的吗?我知道 IP 套接字在逻辑上会引入开销,我想了解在这两种情况下消息会发生什么情况。

UNIX domain sockets ... They also transfer the packets over the file system, meaning disk access is a natural part of the process

这是错误的。虽然文件系统中有一个特殊的套接字文件,但它仅通过使用文件系统权限来调节对套接字的访问。数据传输本身完全在内存中完成。

IP sockets ... where does the transfer of packets occur exactly?

也在记忆中。

Unix 变体在文件系统上映射了很多与实际磁盘驱动器完全无关的东西。

您所描述的都仅在内存中,只是分层和开销的数量不同。 Unix 套接字仅使用 DOS,而 IP 套接字使用完整的网络堆栈。