【发布时间】:2021-08-12 21:26:43
【问题描述】:
AFAIK,有两种 IPC over sockets 方法。 Unix 套接字和 TCP/IP 套接字。
UNIX 域套接字知道它们在同一个系统上执行,因此它们可以避免一些检查和操作(如路由);这使得它们比 IP 插座更快更轻。它们还通过文件系统传输数据包,这意味着磁盘访问是该过程的自然组成部分(AFAIU,来自使用文件系统的含义)。
IP 套接字(尤其是 TCP/IP 套接字)是一种允许进程之间通过网络进行通信的机制。在某些情况下,您可以使用 TCP/IP 套接字与运行在同一台计算机上的进程通信(通过使用环回接口)。
我的问题是:在后一种情况下,数据包的传输究竟发生在哪里?如果它们通过内存传递,尽管看起来存在逻辑开销,但 IP 套接字实际上比 UNIX 套接字具有更高的性能。
有什么我遗漏的吗?我知道逻辑上 IP 套接字会引入开销,我想了解在这两种情况下消息会发生什么。
【问题讨论】:
-
JFYI:即使是 UNIX 套接字也不能在文件系统上明确表示。阅读The Linux Abstract Socket Namespace
标签: linux sockets tcp localhost