Можно ли это назвать P2P-соединением?

Можно ли это назвать P2P-соединением?

Есть два клиента, взаимодействующих с сервером.

В какой-то момент сервер отправляет клиентам информацию друг о друге, чтобы установить соединение.

Два клиента устанавливают сокетное соединение друг с другом для прямого обмена данными, минуя сервер.

Это P2P-соединение?

решение1

Да, это P2P-соединение. Для более подробной информации см.:http://en.wikipedia.org/wiki/BitTorrent_(протокол)

решение2

То, что вы только что описали, называется "Пробивка отверстий". Это можно сделать с помощью обоихTCP и UDPпротоколы.Эта статьядействительно отлично объясняет, как это работает:

После этого пиры могут общаться друг с другом. Этот метод требует центрального сервера для инициализации соединения. Однако, похоже, вы провели хотя бы небольшое исследование этого вопроса.

решение3

Термины «клиент», «сервер» и «одноранговая сеть» немного двусмысленны, а границы между ними размыты.

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

В одноранговом режиме X может либо инициировать, либо принимать соединения.

Теперь X здесь может быть процессом, или частью процесса, или потоком процесса и т. д., но все это должно быть одной и той же службой. Иногда процесс или программа является клиентом одного типа службы, а затем сервером другого. Так что это не будет на самом деле "peer-to-peer", а просто программой, которая является как клиентом (одного типа), так и сервером (другого типа).

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

Связанный контент