Question: is ipsec tcp or udp?
Answer: The native IPSec packet would have an IP protocol header-value of 50. Since 50 is neither UDP (17) or TCP (6), stupid NAT gateways will drop the packet rather than pass it. Secondly, since IPSec is neither TCP or UDP, it doesn't have a port-number.