Как подключиться к P2P-клиентам за роутером?

Извиняюсь, если этот вопрос задавался ранее, но я не думаю, что кто-то из найденных мной задает то же самое.

Я разрабатываю простой протокол P2P, посредством которого известный сервер предоставляет клиентам адреса друг друга, и они затем общаются. Я предполагаю, что есть некоторые сходства с BitTorrent, Skype и другими приложениями P2P.

Мой вопрос заключается в том, как можно идентифицировать и обмениваться данными с хостами, использующими NAT, находящимися за каким-либо маршрутизатором или брандмауэром (т. Е. 99% домашних пользователей) без переадресации портов вручную? Я знаю, что это возможно, потому что BitTorrent и Skype работают просто отлично.

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

1 ответ

Решение

Вам нужен нат-обход (nat-t) или нат-дырокол. Это частичное решение, так как многие шлюзы nat не позволяют этого. Это означает, что вам понадобятся серверы с публичными IP-адресами для передачи трафика между клиентами с ограниченным доступом nat как часть вашего решения.

Другие вопросы по тегам