Прохождение Nat: UPnP / IGD против NAT-PMP - PullRequest
3 голосов
/ 05 января 2011

Я пишу приложение P2P и хотел бы избежать необходимости настраивать переадресацию портов вручную.

Я немного сбит с толку, поскольку, похоже, есть два разных протокола для настройки NAT, UPnP / IGD и NAT-PMP. Какой из них я должен использовать? Они оба поддерживаются всеми NAT? Или я должен поддерживать оба, чтобы убедиться, что хотя бы один из них будет поддерживаться NAT?

Ответы [ 3 ]

2 голосов
/ 08 августа 2013

NAT-PMP (сейчас PCP) - это черновик ietf, поэтому вы должны реализовать его.Однако в целях совместимости вы должны разрешить своему приложению автоматически переходить на UPnP / IGD, поскольку не все устройства NAT поддерживают PCP / NAT-PMP, а многие старые устройства поддерживают только UPnP / IGD.

1 голос
/ 12 января 2011

Попробуйте использовать STUN вместо NAT-PMP или UPnP-IGD. Обычно он работает везде и почти наверняка будет работать с крупномасштабными поставщиками услуг NAT и NAT64.

0 голосов
/ 25 сентября 2015

Придерживайтесь пробивания отверстий UDP. Он работает практически на всех маршрутизаторах, за исключением случаев, когда оба клиента находятся за сетями 4G LTE (они часто имеют произвольное распределение портов) и маршрутизаторы, которые блокируют ВСЕ UDP-трафик. Если вам нужно отправлять данные надежно, вы можете использовать надежный UDP.

...