1
unixeno 2020-09-27 10:19:39 +08:00 via Android 1
管道的本质是一块内存上的 buffer
当然可以用 socket,你用 tcp 或者 udp 就会过一遍相应的协议栈,但是本地环回地址不通过网卡,内核内部就处理消化了 如果你用 domain socket,那就和网络层传输层都没关系了,只是一个内存读写的问题,所以 uds 性能高 |
2
codehz 2020-09-27 10:21:16 +08:00 via Android 1
管道就是系统提供的进程间通讯机制(
按 unix 那套就是文件 同主机可以用 socket 不管是 127.0.0.0/8 还是用 unix socket 都不会涉及网卡,但是前者会涉及 OSI 模型里的传输层(至网络层),不过这个问题有点复杂,参考 "Till which layer does the loopback packet goes? - Computer Science Stack Exchange" https://cs.stackexchange.com/questions/47218/till-which-layer-does-the-loopback-packet-goes 限于这里没提供操作系统,所以最后一个问题也有可能是都涉及驱动,有些微内核模型的操作系统会把不同的通讯机制弄成不同的“驱动”来实现 |