I already am aware of how NAT traversal works. Linking a generic article explaining it is not a meaningful response.

Also NAT is a pretty simple abstraction, it's literally a single table.

>Also NAT is a pretty simple abstraction, it's literally a single table.

...And now, let's try punching a hole through this "simple" table. Oops, someone is using a port-restricted or symmetric NAT and hole punching has gotten just a tad more complicated.

Agreed; Or they're using CG-NAT, or consumer grade NAT behind CG-NAT, or....