Qu'est-ce que VNC ?
VNC signifie "Virtual Network Computing". VNC est un protocole
client-serveur libre de prise de contrôle d'une machine à
distance multi plate-forme. La version originelle a été
développée par Olivetti Research Laboratory.
Début
1999,
AT&T a racheté ORL et a poursuivi le développement de
VNC. VNC est actuellement représenté officiellement par
la société RealVNC.
Dans ce cas précis, "multi plate-forme" ne signifie pas
uniquement qu'il est implémenté sur plusieurs
plates-formes, mais également que l'on peut contrôler une
machine qui appartient à une plate-forme à partir d'une
machine appartenant à une autre plate-forme. En clair, le
protocole est conservé d'une implémentation à
l'autre. "Prise de contrôle à distance" signifie que le
clavier et l'écran de la machine cliente deviennent le clavier
et l'écran de la machine serveur. Ceci est très pratique
lorsque l'on a à intervenir sur une machine distante par
l'intermédiaire du net par exemple ou même pour
éviter à avoir à se lever de sa chaise pour
accéder à une machine du réseau local ou encore
pour accéder à une machine sans écran/clavier.
Pour les connaisseurs, VNC est au mode graphique ce que SSH ou Telnet
est au mode texte. Les logiciels commerciaux les plus connus ayant les
mêmes fonctionnalités sont PCAnyWhere de Symantec et
MetaFrame de Citrix, tous deux sur PC uniquement.
Comment ça marche VNC ?
Le principe de fonctionnement est que le "serveur" envoie, via
TCP/IP, des portions
de l'écran au client, par paquets de rectangles (ou encore
framebuffer
updates). Ces mises à jour sont envoyées par le serveur
uniquement sur demande du client. Ceci permet au client d'effectuer un
contrôle plus subtil selon plusieurs paramètres (par
exemple la vitesse
de transmission, qui lui permet d'estimer le meilleur taux de
rafraîchissement selon l'encombrement de réseau).
Parallèlement, le
client envoie au serveur, toujours via TCP/IP, toute action qui a
été effectuée sur le
clavier ou la souris afin que ce dernier les répercute sur la
machine sur lequel il tourne.
Deux programmes sont donc nécessaires pour mettre en oeuvre VNC :
Le client VNC : c'est le programme à faire tourner sur la
machine dont on va utiliser le clavier et l'écran pour
accéder à la machine distante. Il faut bien sûr
utiliser une version compilée pour la plate-forme que l'on va
utiliser comme client.
Le serveur VNC : c'est le programme à faire tourner sur la
machine dont on souhaite pouvoir prendre le contrôle. Il faut
ici aussi bien entendu utiliser une version compilée pour la
plate-forme que l'on va utiliser comme serveur.
De base, le protocole de VNC est assez (voire très)
lent et n'est réellement utilisable que sur des réseaux
locaux. Au fil des implémentations, des modes de compression de
données ont fait leur apparition de façon à
permettre son utilisation de façon honorable via des lignes RTC
ou ADSL.
La version de VNC la plus efficace dans ce domaine est certainement
TightVNC pour Windows, Unix, Linux et Java.
Citons également une autre version de VNC extrêmement
aboutie (avec transfert de fichier, tchat, barre d'icônes,...) :
UltraVNC mais pour windows uniquement :(.
Lorsqu'un client et un serveur VNC communiquent, ils utilisent en
priorité les protocoles de compression qui leur sont commun. Si
aucun protocole de compression commun n'est trouvé (ou si
l'un ou l'autre des programmes n'en supporte pas), la liaison se fait
dans le mode d'origine de VNC, c'est-à-dire sans compression. Le
numéro de port TCP utilisé par défaut par VNC est
le 5900. Il est souvent question de numéro d'écran
(display number) dans les serveurs et clients VNC. Ceci est directement
lié au numéro de port à utiliser. Le "display"
0 correspond donc au port 5900, le "display" 1 correspond au port 5901,
etc.
Les implémentations de VNC sur Amiga
Puisqu'il s'agit de réseau, et comme d'habitude sur Amiga, il
existe des choses dans le domaine de VNC.
1. Les serveurs :
Il existe (à ma connaissance) deux implémentations de
serveur VNC 68K :
AmiVNC de Stéphane Guillard que l'on peut trouver sur le
"matou femelle" ici : de.aminet.net/pub/aminet/comm/tcp/AmiVNC.lha.
Sa page web se trouvant ici : s.guillard.free.fr/AmiVNC/AmiVNC.htm.
AmiVNC présente l'avantage de fonctionner avec les modes natifs
de l'Amiga (OCS, ECS, AGA), mais aussi avec les environnements RTG
Picasso96 et CyberGraphX.
AVNC de Denis Spach que l'on peut trouver ici :
dspach.free.fr/amiga/avnc/.
AVNC ne fonctionne qu'avec les modes RTG Picasso96. Son
efficacité est cependant accrue par le fait qu'il utilise un
pilote (Monitor) P96 spécial lui permettant de rafraîchir
uniquement les zones d'écran effectivement modifiées. Ne
disposant pas de machine sous P96, je n'ai pas pu le l'essayer :(.
2. Les clients :
Il existe (toujours à ma connaissance ;) également deux
clients VNC sur Amiga. L'un 68K et l'autre pour MorphOS.
VVA de Denis Spach que l'on peut trouver ici :
dspach.free.fr/amiga/vva/index.html.
MorphVNC de Mark Olsen (alias BigFoot) que l'on peut trouver sur
le "pote réseau" ici :
de.aminet.net/pub/aminet/comm/tcp/MorphVNC.lha.
Comme son nom l'indique, ce client fonctionne sous MorphOS. Il
présente l'avantage de supporter le protocole de compression
ZLib.
Utiliser AmiVNC, VVA et MorphVNC sur Amiga
Mise en oeuvre du serveur AmiVNC :
AmiVNC est distribué en deux versions : "Planar" et "RTG &
Planar". La version "Planar" supporte uniquement les modes natifs de
l'Amiga, tandis que l'autre supporte en plus les modes RTG Picasso96 et
CGX. Chacune de ces deux versions est distribuée compilée
pour 68020 et 68060.
Avant toute chose, il faut créer le mot de passe qui sera
demandé aux clients se connectant. Il faut considérer
qu'il est obligatoire de créer un mot de passe sous peine de
gros problèmes avec la majorité des clients/serveurs VNC
existants.
Pour créer le mot de passe avec AmiVNC, il suffit de lancer
l'exécutable avec la ligne de commande suivante : "AmiVNC.0x0
-pmot_de_passe". Ceci a pour effet de créer un fichier dans "S:"
contenant le mot de passe sans pour antant lancer le serveur VNC. Pour
lancer enfin
le serveur VNC (sans paramètres particuliers), il suffit
d'exécuter "AmiVNC.0x0". Il est possible de spécifier le
numéro de port sur lequel le serveur va "écouter" avec
l'option "-s" sur la ligne de commande ou avec l'option "PORT=" dans
les tooltypes de l'icône.
AmiVNC n'est pas particulièrement efficace puisqu'il se contente
de renvoyer une image de l'écran au client à intervalles
réguliers. Ceci a trois effets directs : sa lenteur, la
consommation de CPU, et la consommation de bande passante. Il a
cependant l'avantage de fonctionner quelque soit la configuration
vidéo de la machine. Il fonctionne d'ailleurs également
sur Pegasos sous MorphOS. Ce serveur VNC ne supporte que le protocole
de base et n'intègre pas le support d'algorithmes de compression.
Stéphane Guillard nous informe sur son site qu'une version
PPC/WarpOS existe et fonctionne mais cette dernière ne semble
pas distribuée :( : Stéphane, si tu nous r'gardes...
Petite ombre au tableau, je ne suis pas parvenu à
déplacer de fenêtres depuis un client : il semble que le
serveur ne "voit" pas lorsque le bouton de la souris reste
enfoncé. Suis-je le seul ? (ceci que je fasse tourner AmiVNC
sous OS3.9 ou MorphOS et quel que soit le client utilisé :
Amiga, PC, etc.)
Mise en oeuvre du client VVA :
VVA est un client 68K parfaitement fonctionnel. Il ne supporte
cependant pas non plus de protocole de compression. Il est par contre
parfaitement utilisable sur un 68040 à travers un réseau
local ce qui est très bluffant !
Il est possible de spécifier nombre de paramètres sur la
ligne de commande : je vous renvoie à la documentation pour leur
détail. Si vous lancez l'exécutable seul, ce dernier vous
demandera d'abord le nom ou l'adresse IP de l'ordinateur "Serveur" puis
le mot de passe. VVA affiche ensuite la liste des modes écran
disponibles (l'idée étant de sélectionner le mode
qui se rapproche le plus de la résolution utilisée sur
l'ordinateur "serveur") avant de se connecter tout simplement.
Mise en oeuvre du client MorphVNC :
MorphVNC est un client natif MorphOS d'une efficacité
redoutable. De plus, il supporte le protocole de compression basic ZLib.
Pour le lancer, il suffit d'exécuter la ligne de commande
suivante :
"MorphVNC ordinateur_serveur:numero_de_port". Si le numéro de
port est inférieur à 100, MorphVNC considérera
qu'il s'agit d'un numéro de "display" (port = 5900+display). Si
le numéro de port n'est pas spécifié le port 5900
sera utilisé par défaut. Ensuite, MorphVNC demande le mot
de passe et se connecte au serveur.
Liens
Site officiel de VNC : www.realvnc.com/.
AmiVNC sur Aminet : de.aminet.net/pub/aminet/comm/tcp/AmiVNC.lha.
Page web de AVNC et VVA : dspach.free.fr/.
MorphVNC sur Aminet : de.aminet.net/pub/aminet/comm/tcp/MorphVNC.lha.
Site de TightVNC : http://www.tightvnc.com/.
UltraVNC sur sourceforge : ultravnc.sourceforge.net/.
Conclusion
D'avis personnel, un serveur VNC PowerPC (AmiVNC ?) serait le bienvenu. Il
faut admettre que si les deux clients VNC existant sont très
utilisables, le serveur que j'ai pu tester en est (comme l'indique
d'ailleurs son auteur) à un stade expérimental. Qui se
propose pour porter TightVNC ou Ultr@VNC sur Amiga ? ;).
|
|