Support de cours Réseaux EISTI

Cours 7 : Vocabulaire & différents problèmes

But du cours

Nous avons jusqu'à présent basé l'étude des réseaux sur des problèmes techniques particuliers. Aujourd'hui, nous allons voir des concepts généraux sur les réseaux et voir quelles en sont les avantages et les inconvénients.

Serveur dédié ou non dédié

Lorsque l'on parle de serveurs sans autre précision sur un réseau, on parle de serveurs de fichiers. Un réseau à serveur dédié est un réseau sur lequel au moins une machine n'est pas utilisée comme station de travail. C'est le cas des réseaux Netware de Novell. Sur ce type de réseau au moins une machine (le serveur) fonctionne sur un système particulier (Netware) tandis que les autres continuent à travailler sur le système d'exploitation "normal"(PC sous dos, Windows, OS2). Sur le serveur, on ne peut faire fonctionner que des programmes spécifiques. Sur un réseau sans serveur dédié toutes les machines sont susceptibles de permettre le partage de leurs fichiers aux autres stations (réseau Windows for WorkGroup, Windows NT,...).

Poste maître / esclave

Sur certains réseaux (souvent des réseaux Automates Programmables) on trouve une notion de poste maître et de poste esclave. Le poste maître est un des postes sur le réseau qui va échanger des informations avec les esclaves. En aucun cas, une communication d'esclave à esclave ne sera possible.

Collecte d'informations en polling ou en selecting

Un fonctionnement en polling est établi lorsqu'un processus (ou machine) va interroger les autres pour savoir si ces derniers ont des informations à échanger avec celui-ci (ce mode est celui qui est utilisé dans des réseaux de type maître / esclave). Un fonctionnement en selecting est différent. Le processus qui collecte les demande d'informations attend que d'autres processus (ou machine ) lui demande quelque chose (fonctionnement de type client / serveur). On parle de selecting, car le serveur doit "choisir " d'où vient la demande et voir comment y réagir.

Problèmes de partage des données

Dans une architecture client serveur, on peut avoir des problèmes lorsque des clients différents peuvent vouloir manipuler les mêmes données d'un serveur. Il est possible d'aboutir à des incohérences (donner la même place à deux clients dans un train, problème pour accéder à des fichiers,...). Lorsque plusieurs machines partagent des espaces disques ensemble via un réseau (avec nfs, vfs, ...) il faut savoir quelle stratégie utiliser lorsqu'un incident réseau arrive.

Problèmes de relations humaines

Dans une entreprise, il arrive que plusieurs systèmes (ou réseaux) autonomes soient reliés un jour ensemble. Dans ce cas, il se pose des problèmes. Dans chaque partie autonome un ou plusieurs administrateurs étaient "libres". Ils pouvaient prendre toutes les décisions qu'ils voulaient concernant la gestion de leurs systèmes. Lorsque ces systèmes sont interconnectés, la marge de manœuvre des administrateurs locaux se trouve réduite. L'ensemble de ces administrateurs locaux doivent collaborer, ensemble et avec l'administrateur du réseau. La prise d'une décision sur un des environnements autonomes peut avoir des conséquences sur toute l'organisation.

Problèmes techniques

Time Out Lorsque l'on fait de la communication en réseau on doit toujours prendre en compte le fait qu'entre la réception de 2 morceaux des données échangées il y aie une rupture de la liaison. En programmation client / serveur on risque de bloquer les processus. Pour éviter ce problème on doit mettre en place un système de watch dog. Avant une lecture ou une écriture on demande poliment au système de bien vouloir avoir l'extrême obligeance de nous rappeler dans N secondes sauf avis contraire. Si le système redonne la main au processus qui la demandé, le programmeur peut donc prévoir une gestion des erreurs.

Cohérence des données

Dans une application des données ne peuvent être valide que si elle respecte entre elles une certaine formule. Ex: 3 variables A, B, C avec C = A+B. Si un client modifie l'un des variables A ou B il doit également modifier C. Que se passe-t-il si entre la mise à jour d'A (ou de B) et de C il y a une rupture de ligne. Notre base d'informations n'est plus cohérente puisque à cet instant C <> B+C.

Lorsque l'on programme ce type d'application, il est nécessaire de prévoir des mécanismes de retour arrière et/ou de reprise sur incidents pour conserver la validité des données.

Performance du réseau

Lorsque l'on utilise un réseau, on doit prendre en compte ses caractéristiques physiques (en particulier son MTU). Imaginons une station qui gère des capteurs (200). Régulièrement (toutes les secondes) cette station doit envoyer à un serveur la valeur de ces capteurs. Si l'échelle possible des valeurs pour les capteurs est grande (EX : température d'un four de 0 à 10000 degrés). Il faut donc au minimum (en supposant que cette station soit seule sur son réseau) un MTU de 2 * 200 *8 = 3Kb/s (2, car 2 octets sont nécessaire pour stocker 10 000) uniquement pour transmettre les données sans compter les entêtes de trames résultant de l'encapsulation. Avec ce phénomène, on peut arriver à saturation du réseau. Avec un peu de réflexion, on peut s'apercevoir que la variation de température dans une seconde du four n'est que de quelques degrés. Plutôt que de transmettre la température, il est plus économique de transmettre sa variation par rapport à la mesure précédente. Ainsi, on peut très largement optimiser le transfert sur le réseau.

Représentation des données

Lorsque l'on communique des informations binaires sur un réseau entre des machines, il peut se poser un problème pour la représentation de l'information. Une machine peut par exemple stocker d'abord les poids forts de l'information (Big Endian) et l'autre stocker d'abord les poids faibles(Little Endian). Si ces 2 machines décident d'échanger des informations il faut que ces machines se mettent d'accord sur la manière dont elles vont échanger les informations. Pour résoudre ce problème la technique la plus utilisée est la mise en place d'un alphabet réseau. Chaque machine doit convertir ses informations dans cet alphabet avant de les véhiculer sur le réseau. La machine destinataire devra retransformer les données de l'alphabet réseau dans son propre système. Le même problème se retrouve pour des données de longueur variable, certain système utilise un compteur et d'autre une donné particulière pour indiquer la fin.


Support de cours Réseaux EISTI