Comparison of remote desktop software

This page is a comparison of notable remote desktop software available for various platforms.

Terminology
In the table above, the following terminology is intended to be used to describe some important features:
 * Listening mode: where a server connects to a viewer. The server site does not have to configure its firewall/NAT to allow access on a defined port; the onus is on the viewer, which is useful if the server site has no computer expertise, while the viewer user would be expected to be more knowledgeable.
 * Built-in encryption: the software has at least one method of encrypting the data between the local and remote computers, and the encryption mechanism is built into the remote control software.
 * File transfer: the software allows the user to transfer files between the local and remote computers, from within the client software's user interface.
 * Audio support: the remote control software transfers audio signals across the network and plays the audio through the speakers attached to the local computer. For example, music playback software normally sends audio signals to the locally attached speakers, via some sound controller hardware. If the remote control software package supports audio transfer, the playback software can run on the remote computer, while the music can be heard from the local computer, as though the software were running locally.
 * Multiple sessions: the ability to connect to a server as many users, and have each one see their individual desktops.
 * Seamless window: the software allows an application to be run on the server, and just the application window to be shown on the client's desktop. Normally the remote user interface chrome is also removed, giving the impression that the application is running on the client machines.
 * Remote assistance: remote and local users are able to view the same screen at the same time, so a remote user can assist a local user.
 * Access permission request: local user should approve a remote access session start.
 * NAT passthrough: the ability to connect to the server behind a NAT without configuring the router's port forwarding rules. It offers an advantage when you can't reconfigure the router/firewall (for example in case it is on the Internet service provider's side), but is a serious security risk (unless the traffic is end-to-end encrypted), because all the traffic will pass through some proxy server which in most cases is owned by the remote access application's developers.
 * Maximum simultaneous connections: number of clients connected to the same session
 * Screen blanking: the ability to prevent the user of the host/server from viewing what is currently being displayed on the screen while a remote user is connected.
 * Remote Printing: the remote user can print a file from the host computer to a printer connected to the client computer.
 * Session persistence: unsaved work will not be lost when the user disconnects or in the event of connection loss
 * IPv6 support: supports connections over IPv6