Удаленное взаимодействие .NET — HttpChannel и TcpChannel

Я новичок в .NET Remoting и не очень хорошо знаком с различными каналами связи, которые можно использовать. Я знаю, что есть HttpChannel и TcpChannel из коробки. Я понимаю, что один — это Http, а другой — Tcp, но я не понимаю, почему Tcp быстрее.


person Community    schedule 22.01.2010    source источник
comment
Пожалуйста, проверьте этот http://stackoverflow.com/questions/1196623/tcp-vs-http-benchmark.   -  person Arnkrishn    schedule 22.01.2010
comment
Этот пост http://stackoverflow.com/questions/1196623/tcp-vs-http-benchmark должен быть под рукой. ваше здоровье   -  person Arnkrishn    schedule 22.01.2010
comment
Обратите внимание, что технология .NET Remoting устарела в пользу WCF. Вы не должны использовать Remoting для новой разработки.   -  person John Saunders    schedule 22.01.2010
comment
В процессе изучения WCF я хотел изучить удаленное взаимодействие .NET, чтобы понять корни и увидеть, какие недостатки устраняет WCF. Спасибо, что указали на это!   -  person    schedule 22.01.2010


Ответы (4)


Причина, по которой Tcp быстрее, заключается в том, что он использует двоичный код в качестве средства передачи данных по сети, с TcpChannel вы можете использовать любой номер порта выше 1024 (первые 1024 порта зарезервированы). В то время как с HttpChannel используется порт 80, стандартный порт, который используется совместно с вашим веб-браузером, HttpChannel используется, если вы хотите сделать его гибким с другими службами. Кроме того, данные, передаваемые через HttpChannel, кодируются в виде текста, что делает его медленнее, например, если вы должны получить изображение, это изображение должно быть сначала закодировано в формате данных Base64 и передано через него.

Как правило, если вам нужна скорость, выберите TcpChannel, если вам нужна гибкость, выберите HttpChannel.

Надеюсь, это поможет. С уважением, Том.

person t0mm13b    schedule 22.01.2010
comment
Знаете ли вы, должен ли Remoting поддерживать более одного HttpChannel? - person Dave; 23.02.2011

Каналу HTTP приходится создавать огромный (условно говоря) заголовок и анализировать сложные ответы. Канал TCP использует эффективный двоичный протокол с гораздо меньшими издержками на запрос.

person David Schmitt    schedule 22.01.2010

TCP немного быстрее HTTP; HTTP по умолчанию использует более медленный модуль форматирования Soap, а TCP по умолчанию использует более быстрый модуль форматирования Binary; HTTP поддерживает более быстрое форматирование двоичных файлов — вам просто нужно выбрать его

Источник: Фактоиды о каналах удаленного взаимодействия HTTP и TCP

person Rubens Farias    schedule 22.01.2010

TCP быстрее, потому что это более быстрый протокол.

Tcp — это протокол более низкого уровня, который может устанавливать безопасное надежное соединение. Http проще в использовании, так как вы можете отправить его на веб-сервер из своего браузера.

person RHicke    schedule 22.01.2010