UltraVNC is based on the TCP/IP protocol, that's the reason
you need to run the 2 helpers.
The Nat helpers encapsulate the tcp in udp streams.
vnc (tcp) <-->(tcp)nat helper(udp)<---> nat router
Udp packets don't need a 3the machine to travers a NAT router
UDP, like TCP is based on the IP ...