Socket UDP e mapeamento de portas

Olá,

desenvolvi uma aplicação que usa de sockets udp para trocar mensagem. A aplicação em rede local funciona perfeitamente, mas quando vai ser usada um internet encontra problemas creio q seja devido ao firewall dos roteadores. Ha alguma solução para contornar isso? pergunto isso baseado em aplicações como uTorrent q envia e recebe dados em eu ter abrir portas manualmente nos roteadores.

Grato.

Preciso de algo pratico para fazer UPNP, acho q com isso resolvo o problema.

alguma ajuda com uma lib de Upnp? achei algumas mas ainda nada satisfatorio.