Я новичок в .NET Remoting и не очень хорошо знаком с различными каналами связи, которые можно использовать. Я знаю, что есть HttpChannel и TcpChannel из коробки. Я понимаю, что один — это Http, а другой — Tcp, но я не понимаю, почему Tcp быстрее.
Удаленное взаимодействие .NET — HttpChannel и TcpChannel
Ответы (4)
Причина, по которой Tcp быстрее, заключается в том, что он использует двоичный код в качестве средства передачи данных по сети, с TcpChannel вы можете использовать любой номер порта выше 1024 (первые 1024 порта зарезервированы). В то время как с HttpChannel используется порт 80, стандартный порт, который используется совместно с вашим веб-браузером, HttpChannel используется, если вы хотите сделать его гибким с другими службами. Кроме того, данные, передаваемые через HttpChannel, кодируются в виде текста, что делает его медленнее, например, если вы должны получить изображение, это изображение должно быть сначала закодировано в формате данных Base64 и передано через него.
Как правило, если вам нужна скорость, выберите TcpChannel, если вам нужна гибкость, выберите HttpChannel.
Надеюсь, это поможет. С уважением, Том.
Каналу HTTP приходится создавать огромный (условно говоря) заголовок и анализировать сложные ответы. Канал TCP использует эффективный двоичный протокол с гораздо меньшими издержками на запрос.
TCP немного быстрее HTTP; HTTP по умолчанию использует более медленный модуль форматирования Soap, а TCP по умолчанию использует более быстрый модуль форматирования Binary; HTTP поддерживает более быстрое форматирование двоичных файлов — вам просто нужно выбрать его
Источник: Фактоиды о каналах удаленного взаимодействия HTTP и TCP
TCP быстрее, потому что это более быстрый протокол.
Tcp — это протокол более низкого уровня, который может устанавливать безопасное надежное соединение. Http проще в использовании, так как вы можете отправить его на веб-сервер из своего браузера.