В некоторых средах, таких как Java, естественно использовать сокеты TCP/IP для передачи сообщений между процессами на одном хосте, используя адрес localhost (127.0.0.1 в IPv4 или:: 1 в IPv6). (Поскольку Java не стремится раскрывать другие механизмы IPC в своем API).
Очевидно, что это может быть намного медленнее, чем IPC через передачу сообщений по каналам или IPC с использованием общей памяти.
С другой стороны, если сетевой стек TCP/IP понял, что оба конца соединения находятся в интерфейсе loopback, он может сделать справедливую бит оптимизации, чтобы эффективность могла не сильно отличаться от использования труб.
Но делают ли обычные операционные системы (Windows, Linux) такими оптимизациями в своих стеках TCP/IP?