Updated 9 hours ago
Remote Desktop Protocol (RDP) is Microsoft's answer to a simple problem: you need to use a Windows computer, but you're not sitting in front of it.
Unlike SSH, which gives you a command line, RDP gives you the whole thing—the desktop, the Start menu, the mouse cursor. You're not controlling a computer remotely. You're sitting at it. The distinction matters.
How RDP Creates the Illusion
When you connect via RDP, the remote Windows machine captures its screen and streams it to you. Your RDP client displays this stream while sending your keyboard and mouse movements back. The server processes your input as if you were physically there, updates the display, and streams the changes.
This isn't crude screen-sharing. RDP is sophisticated about what it transmits. Instead of sending full screenshots, it tracks which portions of the screen have changed and sends only those regions, heavily compressed. A static desktop consumes almost no bandwidth. Move a window, and only that rectangle gets transmitted.
The connection runs over port 3389 by default, encrypted with TLS. After the encrypted tunnel is established, you authenticate—usually with a username and password, though certificate-based authentication exists for environments that need it.
What Tunnels Through
RDP doesn't just transmit screen and input. The protocol creates a bridge between your local machine and the remote one:
- Local drives appear in the remote session's file explorer. Drag files between local and remote as easily as between folders.
- Printers on your local machine become available to remote applications. Print a document from the server, and it emerges from your desk printer.
- Clipboard works across the connection. Copy text locally, paste it remotely.
- Audio can travel in both directions—hear sounds from the remote system, or redirect your microphone to remote applications.
This is what makes RDP feel like presence rather than remote control. The seams between local and remote blur.
RDP vs. SSH
Both provide remote access. The difference is what they're accessing.
SSH gives you a terminal—a command line where you type instructions and receive text output. It's lightweight, works over slow connections, and is the standard for Linux servers. Most server administration doesn't need graphics.
RDP gives you a graphical desktop. It's heavier, requiring bandwidth for screen transmission, but it's necessary when you need to click things—run graphical administrative tools, configure Windows settings through the GUI, or use applications that have no command-line equivalent.
Windows Server now includes OpenSSH, so you can use both. SSH for quick commands and automation. RDP when you need to see the screen.
The Security Problem
RDP has a reputation, and it's earned. The protocol itself is fine—encrypted, authenticated, technically sound. The problem is human.
Port 3389 sits there like an unlocked door. Attackers scan the entire Internet for it constantly. Find an exposed RDP server, and you can try passwords until one works. Many do. Weak passwords, default accounts, systems that should never have been Internet-facing—they get compromised daily.
Never expose RDP directly to the Internet. This isn't optional security advice. It's the minimum. Access RDP through a VPN, an SSH tunnel, or an RDP Gateway. Create a barrier between the Internet and that port.
Beyond that:
- Network Level Authentication (NLA) requires credentials before establishing a full session, preventing some attacks and reducing load from invalid attempts.
- Strong passwords or certificate authentication. Password guessing works because passwords are guessable.
- Account lockout policies after failed attempts. Make brute force slow.
- Regular patching. BlueKeep (CVE-2019-0708) allowed remote code execution without authentication. Vulnerabilities happen. Updates fix them.
- Multi-factor authentication for critical systems. A stolen password shouldn't be enough.
Changing the default port provides minimal protection—determined attackers scan all ports—but it reduces noise from automated scanners.
Remote Desktop vs. Remote Desktop Services
Microsoft uses "Remote Desktop" to mean two different things.
Remote Desktop is the feature in Windows Pro and Enterprise that lets one person connect to a machine. When you connect, the local session locks. You have exclusive access. This is for remote administration or accessing your own computer from elsewhere.
Remote Desktop Services (RDS) is a Windows Server role that allows multiple users to connect simultaneously, each in their own independent session. This is for hosting applications centrally—users run software on the server rather than installing it locally. It requires additional licensing (RDS CALs) and is commonly used for virtual desktop infrastructure.
Same protocol, different use cases.
Where RDP Lives
RDP server capability is built into Windows, but not universally:
- Windows Server editions have it enabled by default (firewalled)
- Windows Pro and Enterprise include it; you enable it in settings
- Windows Home can connect to other systems but can't accept incoming connections
On the client side, options exist everywhere:
- Windows includes Remote Desktop Connection (
mstsc) - macOS has Microsoft Remote Desktop in the App Store
- iOS and Android have Microsoft Remote Desktop apps
- Linux uses Remmina, rdesktop, or FreeRDP
Linux can also accept RDP connections through xrdp, though SSH remains the primary remote access method for Linux systems.
Performance Realities
Bandwidth determines quality. RDP adapts—fast networks get full color and smooth updates; slow networks get compression artifacts and reduced color depth. The protocol is remarkably good at degrading gracefully.
Latency determines feel. Even with plenty of bandwidth, high ping times make everything sluggish. Your click takes time to reach the server; the screen update takes time to return. This delay compounds with every interaction.
You can tune the experience:
- Reduce color depth from 32-bit to 16-bit (noticeable but usable)
- Disable desktop wallpaper (transmitting that static image repeatedly wastes bandwidth)
- Turn off window animations and visual effects
- Disable font smoothing (text looks rougher but transmits faster)
Modern RDP (8.0+) includes RemoteFX for hardware-accelerated graphics, improving video playback and 3D application performance in remote sessions.
Beyond Basic Remote Desktop
RemoteApp publishes individual applications instead of full desktops. The application window appears on your local desktop, looking like a local app, but it's running on the server. Users don't see or interact with a remote desktop—just the application they need.
Multi-monitor support extends RDP sessions across multiple displays. Your remote desktop can span the same workspace as your local setup.
Smart card redirection enables hardware authentication tokens to work through the remote session.
Alternatives
VNC is platform-independent and simpler but less efficient. It works everywhere but lacks RDP's optimizations and advanced features.
TeamViewer, AnyDesk, Chrome Remote Desktop route through third-party services, making firewall traversal easier at the cost of depending on external infrastructure.
Apache Guacamole provides RDP access through a web browser—no client software needed.
Windows Remote Assistance is designed for support scenarios where both users see the same session simultaneously, unlike RDP's exclusive access model.
Frequently Asked Questions About RDP
Was this page helpful?