Онлайн-голосовой чат: чем отличается модель клиент-сервер от одноранговой?

Я добавляю голосовой онлайн-чат в приложение Silverlight. Я просматриваю текущие приложения, службы и SDK, найденные с помощью онлайн-поиска и форумов. Я обнаружил, что большинство из них реализуют модель клиент-сервер (C/S), и я пытаюсь понять, чем эта модель отличается от модели одноранговой сети (PTP). Для меня PTP был бы предпочтительнее, потому что прямой переход между одноранговыми узлами был бы более эффективным (меньше переходов IP и отсутствие обработки по пути серверным компьютером) и отсутствие необходимости в сервере, его затратах и ​​зависимостях. Я обнаружил, что некоторые продукты предлагают возможность переключения с PTP на C/S, если PTP окажется недостаточным.

Подумав об этом, я понял, что C/S может быть лучше, если в диалоге участвуют более двух одноранговых узлов, тогда сервер (предположительно с большей пропускной способностью) может лучше выполнять ретрансляцию исходящего трафика каждого однорангового узла на множество других сверстников. В голосовом чате C/S «многие ко многим» восходящая широкополосная связь каждого однорангового узла (где по сути и находится узкое место) должна передавать каждый элемент голосового трафика только один раз, после чего сервер будет использовать свою превосходящую пропускную способность для ретрансляции сообщения множество других сверстников.

Но в ситуации с голосовым чатом один на один лучше всего будет PTP. Сервер не уменьшит требования к пропускной способности каждого из двух узлов, а только добавит ненужные накладные расходы, зависимость и стоимость.

В голосовом чате один на один:

  • Я ошибаюсь в чем-то выше?
  • Было бы лучше, если бы одноранговая сеть была лучшей?
  • Будет ли сервер предоставлять что-либо ценное, чего не может предоставить клиентская программа?
  • Есть ли что-то еще, что я должен принять во внимание?

И, наконец, можете ли вы порекомендовать какие-либо продукты голосового чата Silverlight PTP или C/S?

Спасибо заранее за любую информацию.


person SteveS48    schedule 02.04.2010    source источник


Ответы (2)


• Было бы лучше, если бы одноранговая сеть?

Нет, это просто хорошо, если вы работаете в локальной сети, но в Интернете вам нужна модель C/S для обработки клиентских запросов (клиент будет за NAT) (сервер будет на общедоступном IP-адресе).

• Будет ли сервер предоставлять что-либо ценное, чего не может предоставить клиентская программа?

Да, вы не можете общаться с клиентом, который существует за NAT, и если его IP-адрес не является статическим или неизвестным, по этой причине лучшим решением является модель C/S

Можете ли вы порекомендовать какие-либо продукты голосового чата Silverlight PTP или C/S?

Да Проверьте этот проект: http://www.socketcoder.com/ArticleFile.aspx?index=2&ArticleID=70 как модель C/S

person Fadi Abdelqader    schedule 05.04.2010

Ну, я не могу говорить об общих причинах, по которым некоторые инструменты используют модель CS вместо модели PTP.

Однако PTP потребует, чтобы один или оба одноранговых узла открыли порт для прослушивания, чтобы другой одноранговый узел мог подключиться. Насколько я понимаю, Silverlight не поддерживает возможность прослушивания входящего запроса на подключение.

Следовательно, Silverlight CS является единственным доступным решением.

person AnthonyWJones    schedule 02.04.2010