Как работает сетевое взаимодействие в старых P2P-программах, таких как Kazaa или Limewire?

Как работает сетевое взаимодействие в старых P2P-программах, таких как Kazaa или Limewire?

Меня особенно интересует, как узел запрашивает результаты поиска у других узлов.

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

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

Хотя последующий обмен файлами осуществляется по модели P2P, запросы к сети, как мне кажется, больше напоминают модель клиент/сервер.

Это то, что происходит на самом деле? Если нет, то что на самом деле происходит, когда узел запрашивает сеть?

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