появилась нужда организовать обмен UDP пакетами между компами, стоящими за NAT.
с виду всё просто: каждый комп регится на моем сервере. сервер видит - какой внешний адрес/порт закрепил NAT за этим компом, и фиксирует эту хрень в своей таблице (комп потом раз в сек. отсылает пустой пакет, чтобы NAT не оборвал соединение, но это детали).
используя адрес/порт из таблицы на сервере другие клиенты могут достучаться до компа, но только в не случае Symmetric NAT.
но ведь Skype работает как-то? и работает на тех девайсах до которых я не могу достучаться!
ещё раз, факты:
1. до компов, сидящих за одним из провайдеров, добраться, описанным способом, я не могу.
2. тест чужого STUN-сервера (вот отсюда -
http://jstun.javawi.de/) показывает наличие Symmetric NAT.
3. Skype работает!
единственное, что мне пока приходит в голову, - скайп и подобные сервисы используют свою сеть прокси. тогда клиентский NAT будет получать на входе знакомый ip-шник прокси и пропускать пакеты. но, во-первых, что-то не верится (там сумасшедшая нагрузка получится). во-вторых, сижу, вот думаю, мож я чего не догоняю? у кого есть соображения, поделитесь, плииз.
з.ы. с вариантами, типа, с одной стороны Symmetric с другой Full Cone, все понятно. у меня, получается, Skype работает при Symmetric с обеих сторон.