Solution 1:

TeamViewer uses its own proprietary protocol. It is not documented, though its authentication layer has been partially analyzed:

  • http://www.ixiacom.com/about-us/news-events/corporate-blog/magic-teamviewer
  • http://www.accuvant.com/blog/teamviewer-authentication-protocol-part-1-of-3

It is similar to RDP or VNC (RFB) in purpose, but includes NAT traversal, has slightly different authentication methods (the one-time PINs), supports file transfer & chat, and adapts to network conditions dynamically.