All remote desktop software that I know about needs to modify firewall settings and open ports.
How can Teamviewer work without modifying them? Does some alternative software exist that can also do remote control without modifying network settings?
TeamViewer on the remote PC maintains an idle connection to the TeamViewer proxy servers and waits for a connection request. After receiving it, a direct UDP connection can be set up; see UDP hole punching.
Also try pwnat.
Let me first answer your second question: I have used teamviewer a lot but There is a better solution: The one I use is LogMein This program has a web interface that allows you to simply click a computer, connect to it and then opens remote desktop inside of your browser... This remote desktop Also Is very powerfull because it allows you to completely take controll, blank the users' screens, chat, pointers (to aid users without taking controll) and so on...
Now how these types of software work: First using nat-upnp it opens an unused port from the inside of your network (same as msn and other software works)
Then it just starts "talking" to the server every now and then, it does this to both tell the server that it's online and to check if there is someone who wants to connect to it.
When a session is started, the client starts sending the server the image of what the screen looks like, basicly just a bunch of screenshots.
When the administrator moves his mouse, his PC tells where he wants to move the mouse and where he clicks on the screen, this information is then requested by the client which it executes...
Since I don't work for neither of these companies I dont know exact details but this is more or less the way it works