В чем разница между P2P и клиент-серверной архитектурной моделью в распределенных системах - PullRequest
0 голосов
/ 07 июня 2019

Итак, у нас есть две архитектурные модели в распределенных системах: P2P и клиент-сервер.

. Я уже знаком с обеими концепциями в общих сетях, но я понял, что в модели клиент-серверсервер также может быть клиентом для другого сервера, что меня действительно смущает, потому что разве это не похоже на P2P, где каждый компьютер считается «равноправным»?Почему две модели в любом случае?

1 Ответ

1 голос
/ 07 июня 2019

Это не очень точный вопрос, поэтому извините, если ответ не тот, который вы имели в виду.По сути, модели Клиент / Сервер (C / S) и Peer-to-Peer (P2P) выражают два различных типа шаблона связи: асимметричный и симметричный соответственно.В модели C / S каждый участник делает что-то совершенно другое: один может отправлять почту, а другой - получать, или один - веб-браузер, запрашивающий контент, а другой - сервер, выдающий его.Модель P2P вовлекает участников, сотрудничающих между собой для достижения одной и той же задачи, такой как обмен файлами.

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

P2P-протоколы, напротив, обычно делают то же самое вкаждый узел.Торрентный обмен файлами - очевидный пример: участвующие узлы распределяют файлы между собой.У некоторых узлов есть данные, которые нужны другим узлам.Могут существовать узлы, которые в основном принимают данные (сборщики), и узлы, которые в основном отправляют данные (сборщики), но протокол одинаков для всех участников.

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

...