Saturday, January 09, 2010

Improve the Remote Desktop experience with gigabit and firewire connection?


I love remote access of computers. The concept (and reality) of people sharing one physical machine simultaneously fascinates me. Imagine having let’s say 10 people at the office. Instead of given each of them 10 fast new PCs, knowing that they barely tap into the full potential of the hardware, all of them would log into one powerful machine from their old “crappy” machine and use that “server” as if they were physically sitting in front of it. All the processing and calculations are done on that server. Only the screenshots are sent to the user and in return, only the keystrokes and mouse movement are sent to the server. So as long as the server’s hardware is powerful enough to run multiple sessions and the network physical infrastructure can handle all this data zipping back and forth, this centralized mode of computing is feasible. Feasible, but not perfect.
Although you can get a fairly powerful PC to act as the server that can handle multiple users at the same time with aplomb, currently the network speed has fallen grossly short compared to the data transfering within the various subsystems of a PC. For example, with a SATA2 harddrive, you can transfer up to 300MB of data per second. Actually in practice, it’s more like 120MB/sec, but still that is very fast compared to the data transfer rate over the network which is now clocked at 1000Mb/sec theoretical (that’s megabit not mega byte). Therefore, the remote access experience is still plagued with choppy frame rates as viewed on the machines that are accessing the server, giving away the illusion that the user is using the machine locally.
However, the problem might not be the fault of the network, but of the remote access program itself and perhaps the RDP protocol it uses to do this. I have experimented with gigabit Ethernet which is supposedly 10 times faster than the still-common 100mbps network. While data transfer like through shared drives is twice as fast (not 10x), the remote access experience is still a disappointment. The user still is aware that he is actually using remote access because for example, when he moves a window, there is still a lag. Therefore, increasing the raw speed of the network does not make the experience of remote access any smoother.
I should mention that I use XP Remote Desktop in this test. There are several other remote access solutions out there including the venerable VNC. VNC uses the RFB protocol unlike Remote Desktop which uses RDP. These different protocols render the screen differently. Here are links to discussions on VNC vs. Remote Desktop.
There are several versions of VNC to choose from. I used TightVNC because of its simple interface. Afterall, this is a speed test, not features. To my disappointment, TightVNC did not improve on performance when I tried to run the Belzier screensaver on the server machine. The interesting thing compared to Remote Desktop is while the animation is clearly smoother with VNC, it leaves behind trailing artifacts. I assume this is the result of the the different way RPD and RFB protocols render the screen on the client machine.
My next phase of the experiment is using firewire technology. We all know that firewire is commonly used to transfer captured video from digital camcorders to the computer and vice versa, but you can use firewire as a networking medium between computers as well. Firewire has not caught on in networking because of the maximum length the firewire cable can be is 14 feet whereas Ethernet CAT5 cables can be up to 328 feet! Since networking is all about having computers far apart to talk to each other, firewire has limited potential in that regard. However, what if the computers are less than 14 ft apart? Can firewire be used in remote access to make the frame rate refresh much faster, enough to make the experience as real as local use of the computer?
I connected two reasonably fast computers with a firewire cable through their respective firewire connectors. I used firewire A which has the max speed of 400mbps. A raw data transfer test showed great promise when the firewire connection enabled me to copy a large folder of mp3 files in 3 minutes compared to 5.5 minutes with 100mbps Ethernet. However, when I used the firewire path for Remote Desktop, there was no discernible increase in the refresh rate of the screen. After this test, it became clearer that the remote access experience, at least with Remote Desktop, cannot be improved with a mere increase in the bandwidth. This is not a surprise since Remote Desktop is never meant for using any applications that have their GUI change constantly, applications like Photoshop and AutoCAD.

No comments: