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