improved udp hole punching method