Как bittorrent трекер связывает пиров?

Уважаемые хабравчане, просветите по данному вопросу.
Насколько мне известно, в bittorrent сети возможна установка соединений даже между пирами за NAT'ом. Связывание (как минимум предоставление данных друг о друге) лежит на трекере. Каким образом два исходящих соединения пиров к трекеру превращаются в соединение между ними самими? Ведь, во многих случаях, сам пир не может открыть порт для входящего соединения (например, сидит за роутером). Что происходит, и на каких уровнях OSI?
В спецификации torrent протокола этот момент оказался не освещен… Или я в упор чего-то не понимаю.
  • Вопрос задан
  • 4186 просмотров
Решения вопроса 1
@JDima
Ответ написан
Комментировать
Пригласить эксперта
Ответы на вопрос 2
Maksimus2000
@Maksimus2000
Программист
Всегда считал что установка соединений между двумя пирами за NAT'ом не возможна. Хотя бы один из пиров должен быть видимым извне.
Иначе не было бы проблем с рейтингом у пользователей сидящем на одном провайдерском ip-шнике.
Ответ написан
kenny_opennix
@kenny_opennix
Примерно так:
При скачивание файла, клиент сообщает серверу данные в которых содержится Ip, хеш. Сервер обрабатывает и отправляет клиенту количество участников для обмена и их данные. После сообщения клиенту, сервер перестает участвовать в обмене, и только отправляет клиенту обновленные данные по участникам обмена, с той периодичностью, которая заложена в настройках сервера.
В классическом примере обмен клиентов за nat практически не возможен. Возможен если
1) используется протокол ipv6
2) используется udp
Ответ написан
Комментировать
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Войти через центр авторизации
Похожие вопросы