Я не думаю, что есть быстрый ответ на это. на вашем месте я бы купил / одолжил копию Advanced Programming в среде Unix (APUE) Стивенса и Раго и прочитал Главы 15 и 16 по IPC. Это блестящая книга, если вы действительно хотите понять, как * nix (большая часть применима к любой системе POSIX) работает до уровня ядра.
Если вам нужен быстрый ответ, я бы сказал следующее (не вкладывая в это огромное количество мыслей) в порядке убывания эффективности:
Локальный компьютер IPC
Сетевые сокеты IPC / Интернет
На обоих уровнях вам придется подумать о том, как передаваемые данные кодируются / декодируются, и между компромиссом между использованием памяти и использованием процессора.
На сетевом уровне вам нужно будет подумать, над какими слоями протоколов вы собираетесь работать. Чаще всего в нижней части прикладного уровня вы будете выбирать между TCP / IP или UDP. TCP имеет гораздо больше накладных расходов, так как он выполняет исправление ошибок, контрольные суммы и много других вещей. если вам нужна доставка сообщений, вам нужно использовать TCP, а не UDP.
Помимо этих других протоколов, таких как HTTP, SOAP (поверх HTTP или другого протокола, такого как FTP / SMTP и т. Д.). Бинарный протокол будет более эффективным, если вы связаны с сетью, а не с процессором. При использовании SOAP на платформе MS.Net бинарное кодирование сообщений будет быстрее по всей сети, но может потребовать больше ресурсов процессора.
Я мог бы продолжить. это не простой вопрос. Знание того, где находятся задержки и как обрабатывается буферизация, является ключом к возможности принимать решения о компромиссах, которые вы всегда вынуждены делать с IPC. Я бы порекомендовал книгу APUE выше, если вы действительно хотите знать, что происходит под капотом ...