Le principe de service
Lorsque l'on parle de services, il y a une offre et une demande, le contexte
est alors celui de client-serveur. Le serveur pouvant aussi être client et
inversement.
Il ne faut pas confondre les services et les applicatifs. Les services
sont des parties indirectement utilisées par le client tandis qu'un applicatif
lui l'est directement. Exemple : Un serveur proposant une gestion des impressions
ne sera accessible qu'à travers des applicatifs. Le service lui reçoit une
requête d'un applicatif et la traite. On n'accéde pas directement au service.
Les services sont divers, allant du serveur de noms au serveur de courrier
électronique en passant par d'autres plus axés sur la configuration de matériels.
Les demandes formulées par les clients, sont véhiculées par les réseaux grâce
aux protocoles de transport. La
littérature emploie de nombreux termes pour parler de ces services : processus,
démon, serveur, programme serveur... Pour que ces services soient utilisables,
il faut les matériels adéquats sur le réseau les proposant.
Les ports sont des numéros qui référencent un service proposés sur
le serveur, ce sont des canaux d'écoute. Pour le serveur, ce canal indique
quel service est demandé tandis que pour le client il indique vers quel canal
la réponse doit être envoyée. Les matériels utilisent des numéros de port
plutôt que des noms afin d'homogénéiser les services quelque soit le système
utilisé. La machine lorsqu'elle reçoit des demandes, les transmet au port
indiqué qui est en attente, à l'écoute. Dès qu'il reçoit cette demande, il
est "réveillé " et peut alors les traiter.
Ces services sont décrits dans le RFC 1700 et sont présents, sous UNIX, dans
un fichier du nom de services situé dans le répertoire /etc du système. On
retrouve les mêmes paramètres sur macintosh dans le gestionnaire d'extensions
et sur windows dans le panneau de configuration.
Un client contacte donc les services d'un serveur, après que sa machine cliente
lui ait affecté un numéro de port source. Ce numéro est l'identifiant pour
le client et est attribué selon différents critères (aléatoire, libre...).
Il ne faut pas confondre le numéro de port client et celui du serveur. Leur
signification n'est pas la même. Celui du service est associé à un service
à rendre au contraire de celui du client. par exemple, un client qui veut
utiliser un service de telnet enverra sa demande sur le port 23 du serveur
mais lui peut avoir n'importe quel numéro de port (à partir d'une limite vers
4000) du moment qu'il est libre. La connexion et l'échange de données sont
fonction du protocole de communication utilisé.
Lors du traitement d'un service, il est possible qu'un même service soit demandé
sans que le traitement du premier ne soit terminé. C'est pourquoi, au moment
d'une demande, le serveur crée un sous-élément, copie conforme de son programme
(processus). On appelle cela un processus fils. Ce processus traitera la demande
tout en laissant le processus père (processus ou programme initial) libre.
Si une autre demande arrive, un nouveau processus fils est créé et ainsi de
suite. En langage de programmation on parle de fork (fourchette en
français le manche est le processus père, les dents les processus fils). Lorsqu'une
demande est satisfaite, le processus fils se termine et disparaît.
Le DNS (Domain Name Server)
Le nom affecté à un matériel permet de l'identifier de
manière plus simple par un utilisateur. Par exemple, delair.online.fr
est plus significatif que 212.27.32.15. Un nom peut ainsi être associé
à n'importe quelle interface réseau. Il est défini par
l'administrateur du domaine dans lequel elle se situe.
Deux mécanismes permettent de faire cette résolution de noms.
Le premier est "local".
On parle alors de table des hosts ou tables des machines. La résolution
se fait grâce à une table comportant des liens entre les adresses
logiques et les noms déterminés par l'administrateur. Sur les
systèmes UNIX, ce fichier se nomme hosts et se situe dans le répertoire
/etc. Ce fichier est utilisé dans le cas où le DNS n'est pas
actif. On retrouve dans ce fichier, tous les matériels gérés
par le domaine comme les serveurs, les terminaux, les routeurs, les imprimantes
.... ainsi qu'une adresse de loopback 127.0.0.1 associé aux noms loopback
et localhost. Il y a donc association entre une adresse IP et un ou plusieurs
noms. En effet, un matériel peut avoir plusieurs noms : ce sont des
alias permettant d'accéder également à cette adresse.
Ce mécanisme demande une gestion lourde car chaque ajout, chaque changement
doit être répercuté dans cette table de manière
manuelle. Ce fichier est malgré tout encore très utilisé.
Si le DNS ne fonctionne plus, ces tables
le remplacent moyennant quelques manipulations rapides sur les serveurs. Dans
le cas d'un petit intranet, où le besoin de communiquer vers l'extérieur
n'est pas nécessaire et inversement, la mise en place d'un DNS n'est
pas utile, ce mécanisme est largement suffisant. Par contre, on le concoit
qu'il devient très difficile voir impossible de l'utiliser dans le cas
de l'internet.
Avant que le service DNS n'apparaisse, un organisme était chargé
de donner et de maintenir une table gigantesque des machines de l'internet.
Cet organisme est connu sous le nom de NIC (Network Information Center). Seulement
quelques interfaces principales étaient référencées.
Le deuxième mécanisme est le DNS.
Ce service s'est généralisé sur internet. Le DNS est
un système hiérarchique comparable à l'organisation de
répertoires. Il n'existe pas comme dans le mécanisme précédent
de fichiers ou de services regroupant la totalité des informations
mais un ensemble de serveurs de noms. Les domaines en haut de l'édifice
sont découpés en deux catégories, celui géographique
(fr, us, jp ...) et celui référençant le type d'organisations
: com pour les organismes commerciaux, edu pour la formation, org...
Un organisme est chargé de la gestion de ces domaines : l'Internic.
En france, le domaine .fr est géré par le NIC France : l'AFNIC.
L'administrateur de ce domaine ou sous domaine est libre ensuite de créer
d'autres sous partie dans celui dont il est responsable. La plupart du temps,
la résolution de nom est demandée pour une interface locale. Les
matériels accèdent ainsi à d'autres situés dans
le réseau local géré par le DNS. Si le nom à résoudre
n'est pas affecté à une interface locale, il faudra faire une
requête au serveur DNS supérieur.
Chaque domaine possède un serveur de nom primaire et le plus souvent,
un serveur secondaire, permettant, en cas de panne du premier une continuité
du service via ce nouveau relais. Un autre serveur dit de cache, peut être
mis en place pour conserver et augmenter une table de correspondance au fur
et à mesure des demandes et des résolutions qu'il rencontre. Il
permet (comme un cache web), si une même demande est effectuée,
de fournir la réponse sans être obligé de refaire la recherche
dans le réseau.
NIS (Network Information Service)
Ce service repris par tous les systèmes a été développé
par SUN, il est aussi connu sous le nom "Yellow Pages" (YP ou pages jaunes).
Ce service NIS, permet de centraliser (à la manière du DNS) les
fichiers d'administration importants, fichier de mot de passe, fichiers des
tables des machine, fichier des groupes ... Lorsqu'on souhaite activer ce service,
on crée un domaine de NIS du nom voulu qui sera utilisé par les
clients. Le principe des NIS est de transformer les fichiers d'administration
importants et utilisés sur l'ensemble des serveurs en autant de base
de données interrogeables via le réseau. On les appelle les maps
ou cartes. Ceci permet une centralisation des informations et ainsi une administration
plus simple. Les contreparties de ce système sont des problème
de fiabilité et de sécurité malgré la mise en place
des NIS+ (service NIS sécurisé).
Le service de messagerie électronique
Ce service est l'un des principaux utilisés dans les réseaux,
internet et intranet.
L'envoi d'un courrier électronique doit être possible et ne doit
pas bloquer l'émetteur si le destinataire n'est pas accessible (réseau
défaillant, matériel en panne ou arrêté ...). C'est
pourquoi il a été mis en place un système de spool,
qui permet de stocker pendant un certain temps le courrier avant de pouvoir
l'émettre ou l'émettre à nouveau. Le courrier utilise le
protocole de transport TCP. Si le destinataire peut recevoir le message, le
client envoie une copie et attend la réponse du serveur indiquant si
le message est bien arrivé. Si tout s'est bien déroulé,
la copie dans le spool est détruite. Le destinataire stocke à
son tour le message dans une zone de spool. Si l'envoi n'est pas possible, le
message est conservé dans le premier spool. Le système le scrute
à intervalles réguliers pour déterminer si il y a des messages
à expédier. Le service de courrier électronique se base
sur plusieurs protocoles dont les principaux sont SMTP (Simple Mail Transport
Protocol), POP (Post Office Protocol), IMAP (Interactive Mail Access Protocol)
... Des extensions à ces protocoles permettent d'obtenir un meilleur
service, comme l'important MIME.
SMTP (Simple Mail Transport Protocol).
SMTP est le protocole de transport du courrier électronique et utilise
TCP/IP. Le port correspondant à SMTP est le port 25 (connection par un
telnet : nom 25). Lorsque vous envoyez un courrier, vous le faites via ce protocole
en utilisant les des commandes texte sans vous en rendre compte grâce
à des interfaces comme outlook express, pine, elm, mail ou netscape ...
Mais il est tout à fait possible d'envoyer du courrier sans utiliser
les interfaces habituelles mais en se connectant tout simplement sur le port
25 du serveur de courrier. Des mots clés permettent ensuite d'ouvrir
la connexion TCP, d'identifier le client (HELO), d'entrer l'adresse de l'expéditeur
(MAIL FROM:), du destinataire (RCPT TO:), le texte de votre message (DATA),
d'envoyer le tout et de fermer la connexion TCP (QUIT).
POP (Post Office Protocol)
Ce protocole ne remplace pas SMTP, il offre un autre service. Il utilise un
autre port de communication. Ce port est, pour la version 3, POP3, le port 110.
On le retrouve dans le fichier des services /etc/services. La version 2 de POP
utilise le port 109. Le protocole de communication pour ce service est uniquement
TCP.
Ce service permet à un poste client, de récupérer le courrier
d'un utilisateur en le transférant localement (sur le disque dur de la
machine cliente). Chaque consultation de sa boîte aux lettres détruit
les messages, une fois transférés localement du serveur distant.
Le fait de détruire les messages sur le serveur de messagerie et de le
rapatrier localement pose des problèmes lorsque l'utilisateur travaille
sur plus d'un poste client. C'est pourquoi, POP est très utilisé
mais a tendance a être remplacé par le service IMAP
plus souple.
MIME (Multi-purpose Internet Mail Extensions)
Cette spécification de format n'est pas un service mais un additif au
courrier électronique indépendant des protocoles de transport.
Il y a donc homogénéisation des courriers. Ce phénomène
permet une compréhension dans tous les cas, indépendamment des
plates-formes de travail. MIME encode le message en fonction de son contenu.
Avant l'arrivée de MIME, les courriers étaient codés au
format ASCII US c'est à dire sur 7 bits.
Il ne pouvait y avoir d'accents, ... MIME introduit deux autres types de codage
QP (Quoted-Printable pour les caractères nécessitant plus de 7
bits) et Base64 (pour tout ce qui est binaire fichier attaché ...). Il
existe donc des entêtes en fonction du format de message envoyé.
Content-Type indique si il y a une image, de la vidéo, de l'audio, multipart
... Content-Transfer-Encoding indique le type d'encodage utilisé, 7 bits,
8 bits, binary ...
RARP (Reverse Address Resolution Protocol)
Les informations d'un matériel sont généralement stockées
sur le disque dur comme son adresse IP. Comment cela se passe t'il si le matériel
n'a pas de disque dur comme un terminal ? RARP va permettre à ces matériels
de charger leur adresse IP stockée sur un serveur distant en mémoire
vive grâce à son adresse ethernet. L'adresse IP ainsi récupérée
va lui permettre de communiquer via TCP/IP c'est assez paradoxal. Le client
communique avec le serveur en utilisant leur adresse
MAC. Généralement, le client va diffuser sa demande sur le
réseau et attendre une réponse. Le serveur contenant la " base
de données " adresses-MAC -> Adresses-IP, lui répond alors grâce
à ce protocole. Une fois les informations récupérées,
le terminal les conservera jusqu'au prochain arrêt électrique.
BOOTP (Bootstrap Protocol)
Ce protocole est une alternative à RARP. Il permet de transmettre, en plus
de l'adresse IP, d'autres informations (gateway ...). Ces informations sont
statiques et conservées sur le serveur. Sous unix, ce fichier est /etc/bootptab.
DHCP (Dynamic Host Configuration Protocol).
Ce protocole utilise les mêmes ports que BOOTP et peut le remplacer.
Il permet d'affecter à un matériel une adresse de manière
dynamique. Ce système permet de gérer des réseaux de
grande taille pour lesquels le nombre d'adresses n'est pas suffisant ou des
réseaux dans lesquels il y a de nombreux mouvements de matériels
(un portable qui est utilisé dans différents sous-réseaux).
Rien n'empêche d'affecter en même temps des adresses fixes pour
des matériels permanents. Il est évident que dans le cas de
l'utilisation du service DHCP, le DNS risque d'être pris en défaut.
Un matériel ayant une dénomination fixe mais une adresse logique
variable sera difficilement référencé par le DNS. Pour
cette raison, un DNS dynamique est en cours de normalisation par l'IETF. Sa
mise à jour serait automatique grâce au serveur DHCP.
Le service de fichiers et d'impression
Le service de fichiers permet aux utilisateurs de travailler sur des
fichiers situés sur des serveurs différents comme si ils étaient
locaux. Ce partage est transparent pour les utilisateurs. A la différence
d'un accès via ftp, le fichier n'existe que sur un serveur, il n'est
pas dupliqué. Un serveur donne la possibilité à des clients,
via une liste d'accès, de partager des répertoires et donc de
faire des copies virtuelles de ses contenus. Ce service peut permettre de gérer
des stations sans disque. Le disque contenant les informations est alors une
image de celui contenu sur le serveur.
Le service d'impression est très utilisé. Il permet de
partager des imprimantes entre un serveur et des clients n'ayant pas le même
système d'exploitation (NT -> UNIX, MAC -> UNIX ...) et assure aussi
une gestion centralisée. Un protocole sous unix est utilisé :
qdaemon qui gère les queues d'impression.
Nous vous informons que ce cours constitue une œuvre protégée en France
par le Code de la Propriété Intellectuelle, et à l’étranger par les
conventions internationales en vigueur sur le droit d’auteur. La
violation de l’un des droits d’auteur de l’œuvre est un délit de
contrefaçon.
Il est donc interdit, à titre privé ou public, de reproduire, copier,
vendre, revendre ou exploiter, que ce soit dans un but commercial ou
purement gratuit, ce cours, sauf accord exprès et préalable de son
auteur.