Have you ever found yourself away from home, wishing you had your desktop machine with you? Have you ever wished you could show someone, remotely, how to do something instead of talking them through it over the phone? These things and much more can be done with a nifty little freeware utility called Virtual Network Computing, or VNC.
What VNC does is this: it enables a remote user (who knows the password) to take control of your machine via the internet. They can view files, run programs, delete stuff, etc. -- in other words, they can use your computer exactly as if they were sitting in front of it, although a bit slower. This might sound a little frightening, and it is, except that you have a good deal of control over the situation. You set the password, you can kick them out if they abuse it, and you have to be online already & have VNC Server running for anyone to access your machine. In reality, you’ll usually be setting up sessions specifically, or acting as the remote user yourself.
Another nifty thing you can do with VNC is letting someone else watch your screen, but disabling their control over your computer. This is great for showing your newbie friends how to do things -- get them logged on, and do it while they watch. It’s a lot easier than explaining it over the phone. The best part about this is that they don’t need anything special -- just a Java-capable web browser.
2. VIRTUAL NETWORK COMPUTING
Virtual network computing (V.N.C) is a process of controlling a computer by sitting kilometers away through internet. Here we can control a server computer, which is situated kilometers away by sitting in front of a viewer computer. An image of the desktop of the server is brought to our computer and making events in viewer computer we can any work in the server computer. Here internet is used as the communication between the server and the viewer’s computer.
As the operating system is graphical user interface the controlling is made by mouse events. When we brought the server’s desktop to viewer’s computer the screen resolution of the server and viewer’s must be same (eg: 800*600). So when a mouse event is happening on a particular pixel (say 300,200), that particular pixel send to the server from the viewer and the change is brought to the viewer. So the user will not feel that two computers are working here. He will get feeling that he is using the server itself.
The V.N.C technique has got a good future in the world of computer communication, since the V.N.C is easy to use, support platform independency and multi-user. It is a remote display system which allows you to view a computing ‘desktop’ environment not only on the machine where it is running, but from anywhere on the Internet and from a wide variety of machine architectures.
3. GETTING STARTED WITH VNC
VNC consists of two types of component. A server, which generates a display, and. a viewer, which actually draws the display on your screen
To get started with VNC you need to run a server, and then connect to it with a viewer. Get the packages for the platforms you use from the web and install them. The current YNC software requires a TCP/IP connection between the server and the viewer.
Most people will be running either a Unix server or a Windows server, though similar principles will apply to other platforms. The technology underlying the VNC system is a simple protocol for remote access to graphical user interfaces. It works at the frame buffer level and therefore applies to all operating systems, windowing systems, and applications—indeed to any device with
some form of communications link. The protocol will operate over any reliable transport such as TCP/IP. The endpoint with which the user
interacts (that is, the display and/or input devices) is called the VNC client or viewer. The endpoint where changes to the frame buffer originate (that is, the windowing system and applications) is known as the VNC server .VNC is truly a “thin-client” system. Its design makes very few requirements of the client, and therefore simplifies the task of creating clients to run on a wide range of hardware.
3.1 Adaptive Update
A set of rectangles of pixel data makes a frame buffer update(or simply, update). An update represents a change from one valid frame buffer state to another. In this sense, an update is similar to a frame of video. It differs, however, in that it usually affects only a small area of the frame buffer. Each rectangle may be encoded using a different scheme. The server can therefore choose the encoding most appropriate for the particular screen content being transmitted and the available network bandwidth. The update protocol is demand-driven by the client. That is, an update is only sent by the server in response to an explicit request from the client. All screen changes since the client’s last request are coalesced into a single update. This gives the protocol an adaptive quality: the slower the client and the network, the lower the rate of updates. On a fast network, for example, as the user drags a window across the screen it will move smoothly, being drawn at all the intermediate positions. On a slower link—for example, over a modem—the client will request updates less frequently, and the window will appear at fewer of these positions. This means that the display will reach its final state as quickly as the network bandwidth will allow, thus maximizing the speed of interaction.
The input side of the VNC protocol is based on a standard workstation model of a keyboard and multi button pointing device. The client sends input events to the server whenever the user presses a key or pointer button, or moves the pointing device. Input events can also be synthesized from other nonstandard I/O devices. On the Video tile, for example, a pen-based handwriting recognition engine generates keyboard events.
3.3 Connection Setup and Shutdown
To establish a client-server connection, the server first requests authentication from the client, using a challenge-response VNC server VNC viewer (client)VNC protocol scheme; the client typically requires the user to enter a password at this point. The server and client then exchange messages to negotiate desktop size, pixel format, and encoding schemes. The client requests an update for the entire screen, and the session begins. Because of the stateless nature of the client, either side can close the connection at any time without adverse consequences
3.4 VNC Viewers
In day-to-day use, we prefer the more descriptive term viewer to the rather overloaded word client. Writing a VNC viewer is a simple task, as indeed it should be for any thin client system. It requires only a reliable transport (usually TCP/IP), and a way of displaying pixels (either writing directly to the frame buffer or going through a windowing system).We have written viewers for all the networked display devices available at ORL. These include the Video tile (the original VNC viewer), an X-based viewer (which runs on Solaris, Linux, and Digital Unix workstations), a Win32viewer that runs on Windows NT and 95, and a Java applet that runs on any Java-capable browser (including Sun’s Java Station). Members of our lab use these viewers on a daily basis to access their personal computing environments.
3.4.1 Running a Viewer
You can now go to another machine and connect a viewer to the server. When you run the viewer, you need to specify the name of the server and the number of the desktop. If, for example, you have started a
server as display 2 on a machine called ‘snoopy’, you can start a viewer for it by typing:
vnc viewer snoopy:2
With the Windows viewer, you can run it from the command line, but you will more typically run it from the VNC group on the Start Menu. In this case, you will be prompted for the host name and display number:
Writing a VNC server is slightly harder than writing a viewer. Because the protocol is designed to make the client as simple as possible, it is usually up to the server to perform any necessary translations (for example, the server must provide pixel data in the format the client wants). We have written servers for our two main platforms, X (that is, Unix)and Windows NT/95.The X-based server was the first one we developed. A single Unix machine can run a number of VNC servers for different users, each representing a distinct VNC desktop. Each desktop is like a virtual X display, with a root window on which several X applications can appear. The Windows VNC server was a little more difficult to create. Windows has fewer places to insert hooks into the system to monitor display updates, and the model of multi user operation is less clearly defined. Our current server simply mirrors the real display to a remote client, which means that only a single YNC desktop is available from any one PC. The X-based server, the X viewer, the Win32 server, andWin32 viewer can all fit on a single floppy disk. We have also created “thin” servers which produce displays other than desktops, using a simple toolkit. A “VNCCD player,” for example, generates a CD player user interface using VNC directly without any reference to a windowing system or frame buffer. Such servers can run on very simple hardware, and can be accessed from any of the standard VNC viewers.
Download Report:Click Here