Since TeamViewer is using a Master Sever to help connect two clients behind NATs it is very likely that UDP hole punching is used to establish a connection.
But in the TeamViewer settings, you can set the used Transport Protocol to TCP. Is it in that case "also" TCP hole punching or another kind of TCP procedure?