Virtual Network Connection
В этом разделе мы переходим к рассмотрению широко используемой технологии доступа к удаленному столу, которая называется Virtual Network Computing (VNC - виртуальная вычислительная сеть). Мы обсудим принцип действия VNC и значимость применения этой технологии в гетерогенных сетях. Кроме того, мы рассмотрим порядок установки на различные платформы и порядок использования. Технология VNC используется гораздо чаще, чем любые другие инструменты доступа к удаленному рабочему столу. В настоящее время существует несколько различных реализаций VNC, распространяющихся с открытыми исходными текстами. Реализации серверов существуют для Linux, Windows, Macintosh, UNIX, MS-DOS, Palm и Java. Однако не все пользователи Linux понимают ценность VNC. Пожалуй, самое ценное в этой технологии заключается в том, что она позволяет контролировать массу компьютеров с помощью одной и той же клавиатуры, мыши и монитора. В некотором смысле VNC можно рассматривать как виртуальный мультиплексор KVM.
Мультиплексор KVM- это аппаратное устройство, позволяющее управлять несколькими компьютерами с использованием единственной клавиатуры, мыши и монитора. KVM- это акроним, составленный из начальных символов слов keyboard (клавиатура), video monitor (видеомонитор) и mouse (мышь). Далее демонстрируется открытый удаленный сеанс VNC, запущенный в окружении рабочего стола GNOME, в системе Fedora Core 3. Если присмотреться внимательнее, можно заметить панели GNOME у основания экрана. При создании этого рисунка использовалась популярная реализация технологии VNC -TightVNC На рисунке видно, что мы получили доступ к удаленному рабочему столу Windows ХР и запустили приложение подключения к удаленному рабочему столу, которое можно использовать для подключения к терминальному серверу. При использовании VNC на экране монитора отображается не только окно приложения, а удаленный рабочий стол целиком. VNC требует, чтобы между клиентом и сервером был открыт сеанс связи.
В предыдущем примере на удаленном компьютере был запущен сервер, а для открытия сеанса связи с ним была использована команда uncuiewer. Эта команда выводит небольшое окно диалога. Насколько просто запустить удаленный сеанс: • Запустите команду vncviewer из командной строки. • Введите в диалоге IP-адрес удаленного сервера и нажмите клавишу Enter. • В появившемся окне запроса введите пароль доступа к удаленному серверу. На этом рисунке демонстрируется, как выглядит удаленный рабочий стол Windows ХР на экране монитора в системе Fedora Core 3 в окружении рабочего стола GNOME. На удаленном рабочем столе имеют место следующие события: пользователь Linux запустил программу преобразования файлов формата PDF в формат Word, и окно подсказки приложения ZoneAlarm сообщает пользователю, что приложение пытается получить доступ к Интернету с целью поиска доступных обновлений. VNC дает пользователю возможность взять под свой контроль удаленный компьютер. Это не сеанс связи с удаленным терминальным сервером, подобный тому, что предоставляет терминальный сервер Windows, потому что здесь вы не регистрируетесь на сервере. Вам не нужно приобретать лицензию для клиентского доступа (Client Access License, CAL).
В данном случае все, что делается в рамках сеанса VNC, выполняется с разрешения пользователя, который зарегистрировался в удаленной системе. Посмотрим, как все это работает. Клиент VNC устанавливает соединение с удаленным компьютером посредством локальной сети или через Интернет по протоколу TCP/IP. Для организации взаимодействий VNC пользуется протоколом Remote Frame Buffer (RFB - удаленный буфер кадров). Служба RFB захватывает изображение экрана и отправляет его клиенту в ответ на запрос. Данные с изображением экрана преобразуются сервером в специальный формат, совместимый с любыми типами клиентов, поддерживаемыми различными операционными системами. Клиент принимает данные от сервера и отображает изображение удаленного рабочего стола в окне на рабочем столе клиента. Все перемещения мыши и нажатия клавиш клиент отправляет серверу, предоставляя тем самым пользователю возможность управления удаленным рабочим столом. В технологии VNC изображение экрана передается от сервера клиенту. Изображение сжимается с учетом пропускной способности сети и мощности процессоров на обоих концах соединения. Как только клиент примет изображение экрана в первый раз, сервер будет передавать только те части экрана, которые претерпели изменения. Основное содержимое кадра остается неизменным.
При использовании VNC создаются сеансы, не имеющие информации о своем состоянии. Пользователь может в любой момент прервать сеанс и подключиться к другой системе, чтобы продолжить работу с того момента, где она была прервана. Многие используют эту возможность для обеспечения мобильности. Соединение VNC может быть инициировано как со стороны клиента, так и со стороны сервера. Обычно соединение инициируется со стороны клиента, но иногда для обеспечения технической поддержки бывает удобно использовать возможность инициации соединения со стороны сервера с клиентом, ожидающим подключения. После этого персонал отдела технической поддержки сможет показать пользователю пути решения возникшей проблемы, так же как при личной встрече, даже если их отделяют многие километры расстояния. Основные преимущества VNC заключаются в следующем:
• Эта технология позволяет любому клиенту подключаться к серверу, независимо от типов используемых операционных систем.
• За счет шифрования обеспечивается безопасность данных, передаваемых через соединение.
• Имеются свободные реализации, распространяемые на условиях лицензии GPL.
Текущие реализации VNC (клиенты и серверы) в значительной степени основаны на протоколах TCP/IP, что позволяет пользоваться ими в самых разных сетях. Вообще есть определенный смысл создать реализацию VNC на основе какого-нибудь другого надежного двунаправленного протокола, но в настоящее время таких систем практически не существует.