This video mentions that the TeamViewer IDs used to identify PCs for remote assistance or control to a computer are unique identifiers based on the hardware configuration found on each computer. How can this be true? If two computers have the same hardware configuration wouldn't the two IDs be the same. I guess the program reads the serial numbers on the various hardware devices to create the unique ID for a computer. However, what I would really like to know is, when I enter a TeamViewer ID in a TeamViewer window to connect to a remote PC, how does the connecting computer find the computer it is connecting to? What I am guessing is that, each TeamViewer application sends its ID to a remote server owned by the company behind TeamViewer. This ID is stored in a database. When another computer tries to connect to a remote computer running TeamViewer, it connects to such database, and retrieves the IP address corresponding to the TeamViewer ID stored in the database to connect. This database also stores which TeamViewer instances are running on company servers, so as to know whether to charge the given parties for use of the software or not.
Is this how the protocol works (by making use of a central intermediate server (or network of servers) to record the correspondence between TeamViewer computer IDs and their corresponding IP addresses)?
Note: This post is about where the computer stores the TeamViewer ID on the local hard disk so that it can be accessed via a C# script. My question is different, as it asks about whether this ID is stored in a remote database.