Является ли связь сокетов надежным протоколом для межпроцессного взаимодействия?

#.net #sockets #inter-process-communicat

#.net #сокеты #межпроцессный-communicat

Вопрос:

Я разрабатываю протокол связи, который будет использоваться для связи между двумя приложениями ПК с использованием сокет-соединения. Наиболее распространенный случай — это когда оба приложения работают на одном компьютере, но можно будет запустить одно приложение на удаленном компьютере. Приложение может обмениваться некоторыми данными со скоростью до 2 МБ / с. Вопрос в следующем: должен ли я использовать пакеты подтверждения, чтобы гарантировать, что пакет, отправленный одним приложением, был получен другим? Я знаю, что сокет использует TCP-соединение, поэтому подтверждение / повторная передача уже реализована, но мне нужна обратная связь от кого-то, кто использовал его на практике.

Используемые технологии: — сервер сокетов: приложение .NET, использующее следующую библиотеку: http://www.codeproject.com/KB/IP/AsyncSocketServerandClien.aspx — клиент сокета: приложение .NET или Delphi

Ответ №1:

Это нормально, трафик замыкается в стеке драйверов TCP / IP. Нет большой разницы с любым другим механизмом IPC, он просто копирует данные из памяти в память, поэтому работает на скоростях шины. тип 5 гигабайт / сек с микросекундой или около того для накладных расходов. Плюс к тому, что должно произойти переключение контекста, безусловно, самая большая стоимость. Именованный канал будет работать так же. Конечно, это падает с обрыва, когда вам нужно пройти через сетевой адаптер.