У меня есть несколько вопросов, касающихся пробивания отверстий по UDP. Основано на вики http://en.wikipedia.org/wiki/UDP_hole_punching
1) Чтобы установить сеанс UDP между двумя сторонами (клиент, который находится за NAT, сервер, который не является NAT), клиент должен просто отправить пакет на сервер, и затем сеанс разрешается в обе стороны ( отправить и получить) через брандмауэр? То есть клиент тоже может получать с сервера.
2) Перфорация UDP Hole: два клиента сначала подключаются к серверу, затем сервер передает клиентский порт / IP-адрес другим клиентам, поэтому клиенты отправляют пакеты друг другу на эти порты. Это правильно?
3) если № 2 истинно, почему брандмауэры позволяют получать данные с другого IP-адреса, отличного от того, который использовался при подключении к этому самому порту? Похоже на большую дыру в безопасности, которую нужно легко отфильтровать? Я понимаю, что подмена IP-адреса источника могла бы его обмануть, но это?
Спасибо заранее,
Johan