微信公众号搜"智元新知"关注
微信扫一扫可直接关注哦!

到 localhost 的连接是通过内存还是磁盘复制的?

如何解决到 localhost 的连接是通过内存还是磁盘复制的?

AFAIK,有两种通过套接字进行 IPC 的方法。 Unix 套接字和 TCP/IP 套接字。

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

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

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

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

解决方法

UNIX 域套接字 ... 它们还通过文件系统传输数据包,这意味着磁盘访问是该过程的自然组成部分

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

IP 套接字 ... 数据包的传输究竟发生在哪里?

也在内存中。

,

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

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

版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。