Обход NAT сотовой сети
Я попытался реализовать алгоритм дырокола UDP для моего приложения. Когда оба узла связались с сервером, раскрыв свой общедоступный IP-адрес, сотовый NAT 3G назначил постоянный внешний порт для одного и того же внутреннего порта UDP, однако сотовый NAT 3G изменил сопоставление внутреннего-> внешнего порта в зависимости от пункта назначения.
Следовательно, например, если C является статическим IP-сервером, A->C был сопоставлен с портом 1234, тогда как A->B был сопоставлен с портом 5678. Таким образом, пробивание дырок UDP не удалось.
Поскольку эти сотовые NAT используют CGN, поддержка UPnP/NAT-PMP отсутствует. Я читал о PCP для CGN с похожей функциональностью, однако не нашел никакой информации о протоколах для PCP.
Кто-нибудь знает, есть ли способ преодолеть эту проблему назначения портов переменной-назначения?
Либо через переадресацию портов (например, PCP), либо через обход (PREFFERED).
Одна последняя вещь. Существуют доказательства концепции, такие как skype, viber и САМЫЕ ВАЖНО торрент-загрузчики, подобные тем, которые зависят от vuze-core(frostwire), которые работают на Android через 3G и другие сотовые сети. Таким образом, они, очевидно, должны были найти решение для этого...
Заранее спасибо!