Как клиент устанавливает одноранговое соединение? - PullRequest
2 голосов
/ 27 февраля 2012

Обычно (игровые) клиенты устанавливают p2p-соединение, чтобы уменьшить задержку и нагрузку на сервер.

Но как они это делают?

Вот пример: я открываю свой клиент League of Legends.Нажмите на «Play».Затем мой клиент отправляет запрос на сервер, чтобы найти игру.Затем сервер отвечает списком игроков (ip-адреса?).Мой клиент теперь подключается к каждому игроку, чтобы уменьшить пинг.

И это то, что меня смущает.Я и многие другие игроки сижу за NAT.Таким образом, машины из Интернета могут отправлять данные на мой компьютер, только если я перенаправлю порт на моем маршрутизаторе или когда я отправляю данные на доступный сервер (откройте веб-сайт, отправьте запрос на игровой сервер).

У меня и моего оппонента есть IP-адреса друг друга, но мы не можем соединиться друг с другом, потому что наши маршрутизаторы блокируют соединение.

1 Ответ

1 голос
/ 27 февраля 2012

В Википедии есть описание UDP дырокола , которое дает вам представление о том, как это можно сделать.В статье есть несколько дополнительных ссылок.Если больше ничего не работает, одноранговые узлы должны использовать реле.

...