41
правка
Изменения
→Peer-to-peer
Идея peer-to-peer общения заключается в том, что каждый peer знает и поддерживает информацию о других участниках. Когда новый клиент подключается к сети, он может узнать у любого пира информацию о том, где и какие файлы сейчас доступны. Когда клиент начинает скачивает файл себе на компьютер, то скачанные части этот файла сразу становятся доступны для скачивания другим пользователям. Никто не даёт гарантию, что каждый сервер будет находиться длительное время в сети и давать скачивать информацию, напротив -- ситуация, когда сервер пропадает в процессе загрузки, является естественной. В данном случае будет найден новый сервер, который может продолжить передачу данных.
Для поддержания списка активных peer-ов каждый сервер посылает другим серверам heartbeat. Heartbeat - это сообщение которое один сервер посылает другому, чтобы сказать ему, что он жив. Соответственно если heartbeat долго не приходит, значит этот сервер нужно удалить из списка активных peer-ов.
Постоянно обмениваться heartbeat-ом с большим количеством серверов трудоёмко. Поэтому У каждого сервера есть два параметра нижняя и верхняя граница на размер списка активных серверов.
Когда это количество становится ниже нижней границы, запускается поиск новых участников. Сервер запрашивает у других серверов список активных peer-ов и добавляет некоторых из них в свой список, но при этом следит за тем, чтобы размер списка не превысил верхнею границу.
==Частично децентрализованные сети==