Ce cours n'est pas un cours général sur les réseaux mais une présentation minimale de cette technologie pour pouvoir aborder le cours de concepts et programmation TCP/IP sous UNIX. TCP/IP est le protocole le plus répandu dans le monde grâce à l'Internet. En 1980 il ne comptait que quelques dizaines d'hôtes, en juin 1996 ce nombre était de 12 millions de machines, réparties en près de 500 000 réseaux (Par comparaison, en février 1995, les mêmes chiffres étaient 4 850 000 machines pour plus de 71 000 réseaux locaux).
En janvier 2003, le nombre de machinesII1 directement accessibles sur le réseau était de 180 000 000 selon l'ISCII2. Depuis on ne compte plus tant la croissance est importante...Pour la france l'AFNIC propose également quelques statisquesII3... Il n'existe pas de `` botin '' général du réseau, par contre Bill Cheswick des Bell labs l'a cartographié, et le résultat est fascinant :
Un réseau informatique met en relation des ordinateurs, comme un réseau téléphonique met en relation des personnes.
Des ordinateurs sont dits `` en réseaux '' dès lors qu'ils partagent une technologie qui leur permet de communiquer ensemble.
Le plus souvent cette technologie se matérialise physiquement par une liaison avec un câble conducteur. Sur ce type de support, un signal électrique véhicule les messages informatiques. Il existe d'autres types de supports en pleine expansion comme les liaisons par ondes hertziennes, rayon laser, infrarouge...
Sans connaissance préalable concernant les réseaux informatiques on peut imaginer quantité d'interrogations à partir de cette hypothèse de raccordement :
Toutes ces questions (et bien d'autres) trouveront une réponse dans ce cycle de cours. Ces réponses sont généralement formulées dans un `` protocole '', une sorte de mode d'emploi des réseaux. Il y a des centaines de protocoles différents sur l'Internet, certains sont très populaires, d'autres absolument pas.
Le concept de base de tout ce cours est celui de la `` commutation de paquets '', une vieille idée de l'informatiqueII4 contrairement à l'approche par circuits virtuels plus utilisée en téléphonie.
Les données à transmettre d'une machine à une autre sont fragmentées à l'émission en petit blocs de quelques centaines d'octets munis de l'adresse du destinataire, envoyées sur le réseau et ré-assemblées à la réception pour reproduire les données d'origine.
Ce concept facilite le partage des possibilités physiques du réseaux (bande passante) et est parfaitement adapté pour une implémentation sur machines séquentielles travaillant en temps partagé (plusieurs communications peuvent alors avoir lieu simultanément et sur une même machine).
Partant de ce concept, un modèle d'architecture pour les protocoles de communication a été développé par l'ISO (International Standards Organisation) entre 1977 et 1984. Ce modèle sert souvent de référence pour décrire la structure et le fonctionnement des protocoles de communication, mais n'est pas une contrainte de spécification.
Ce modèle se nomme OSI comme `` Open Systems Interconnection Reference Model ''. Les constituants de ce modèle sont si largement employés qu'il est difficile de parler de réseaux sans y faire référence.
Le modèle OSI est constitué de sept couches. À chaque couche est associée une fonction bien précise, l'information traverse ces couches, chacune y apporte sa particularité.
Cette forme d'organisation n'est pas dûe au hasard, c'est celle sur laquelle les informaticiens ont beaucoup travaillé dans les années soixantes pour définir les caractéristiques des systèmes d'exploitation.
Une couche ne définit pas un protocole, elle délimite un service qui peut être réalisé par plusieurs protocoles de différentes origines. Ainsi chaque couche peut contenir tous les protocoles que l'on veut, pourvu que ceux-ci fournissent le service demandé à ce niveau du modèle.
Un des intérêts majeurs du modèle en couches est de séparer la notion de communication, des problèmes liés à la technologie employée pour véhiculer les données.
De nos jour c'est de plus en plus le XMLII5 qui occupe cet espace finalement assez peu normé.
figure II.01 -- Modèle en 7 couches de l'OSI
Du niveau 7 de l'application, au niveau 4 du transport, l'information circule dans ce que l'on appelle un `` message '', au niveau 3 elle se nomme `` packet '', puis `` frame '' au niveau 2 et `` signal '' au niveau 1.
Chaque couche ne voit et ne sait communiquer qu'avec la couche qui la précède et celle qui la suit, avec le cas particulier des couches 1 et 7.
L'intérêt de travailler en couches est que lorsque les modalités d'échanges entre chacune d'entres elles sont précisément décrites, on peut changer l'implémentation et les spécificités de la couche elle-même sans que cela affecte le reste de l'édifice.
C'est sur ce principe qu'est bâtie la suite de protocoles désignée par TCP/IP
Quand deux applications A et B discutent entre-elles via le réseau, les informations circulent de la couche 7 vers la couche 2 quand l'application A envoie de l'information sur le réseau, et de la couche 2 vers la couche 7 pour que l'application B reçoive l'information de A.
Le principe de base de cette discussion repose sur le fait que chaque couche du modèle de la machine A est en relation uniquement avec son homologue du même niveau de la machine B.
Quand l'information descend de la couche 7 vers la couche 1, chaque couche `` en-capsule '' les données reçues avant de les transmettre. Ainsi le volume d'informations s'est accrû de quelques centaines d'octets arrivé à la couche 1.
De manière symétrique, quand l'information remonte de la couche physique vers la couche Application, chaque couche prélève les octets qui lui sont propres, ainsi l'application B ne voit-elle que les octets envoyés par l'application A, sans le détail de l'acheminement.
Le problème intuitif et pratique qui se pose est de relier entre elles par un câble toutes les machines qui veulent communiquer : c'est impossible d'abord pour des raisons techniques, le monde est vaste, puis de politique d'emploi des ressources du réseau, tel réseau qui sert à l'enseignement ne doit pas pas perturber le fonctionnement de tel processus industriel.
La conséquence est que les réseaux se développent d'abord en local, autour d'un centre d'intérêt commun, avant de se tourner (parfois) vers l'extérieur.
Le terme `` réseau local '' n'est pas clairement défini, cependant tout le monde s'accorde à baptiser de la sorte un réseau, dès lors qu'on lui reconnait les caractéristiques suivantes :
Notez que les notions de `` bande passante '' et `` nombre limité '' (etc...) sont volontairement qualitatives. Elles évoluent rapidement avec le temps.
Exemple de types de technologies utilisées dans les LANs :
Un WAN (Wide Area Network) désigne des ordinateurs connectés entre différentes villes (Metropolitan Area Network) ou pays. La technologie utilisée est traditionnellement moins performante que celle d'un LAN, c'est par exemple une ligne téléphonique louée fonctionnant à 64 kbps, une liaison RNIS, ou encore une liaison transatlantique à 1Mbits/secondes.
Les améliorations technologiques apportées aux LANs permettent de les étendre de plus en plus géographiquement, celles apportées aux WAN augmentent considérablement les bandes passantes, ces deux tendances font que la distinction entre ces deux types de réseaux est de moins en moins claire.
Les réseaux sont appelés à communiquer entres eux et quand cela se produit on parle de communications inter-réseaux (`` internetworking '').
Le rôle d'une communication inter-réseaux est de gommer les éventuelles différences de technologie d'échange pour permettre à deux réseaux, ou plus, le partage de ressources communes, l'échange d'informations.
Un moyen de faire communiquer deux réseaux distincts passe par l'utilisation de `` gateway '' ou passerelle.
Un tel dispositif est parfois appelé routeur (router), mais c'est un abus de langage.
Les hommes se connectent sur les ordinateurs
Les ordinateurs se connectent sur un réseau
Les réseaux s'inter-connectent dans un `` internet ''
La couche 2 la plus populaire est surement celle que l'on nomme abusivement `` Ethernet '', du nom du standard publié en 1982 par DEC, Intel Corp. et Xerox. Cette technique repose sur une méthode d'accès et de contrôle dite CSMA/CD (`` Carrier Sense, Multiple Access with Collision Detection '').
Elle est devenue tellement populaire qu'on parle d'un câble Ethernet, d'une adresse Ethernet, d'une liaison Ethernet...
Plus tard l'IEEE (`` Institute of Electrical and Electronics Engineers '') II6sous l'instance de son commité 802, publia un ensemble de standards légèrement différents, les plus connus concernant la couche 2 sont 802.2 (Contrôle logique de la liaison - LLCII7) et 802.3 (CSMA/CD)
Dans le monde TCP/IP, l'encapsulation des datagrammes IP est décrite dans la RFC 894 [Hornig 1984] pour les réseaux Ethernet et dans la RFC 1042 [Postel et Reynolds 1988] pour les réseaux 802.
En règle générale, toute machine utilisant TCP/IP sur ce type de réseaux doit :
Par défaut le standard est donc celui de la RFC 894, si une machine peut faire les deux, cela doit être configurable.
De nos jours la couche 802.11 (réseau sans fil - wifi) voit sa popularité croître très vite. Elle est basée sur une méthode d'accès assez proche, le CSMA/CA (`` Carrier Sense, Multiple Access with Collision Avoidance ''). En effet les collisions ne peuvent pas toujours être détectées car les hôtes ne sont pas nécessairement à portée radio directe. Les échanges, quand ils ne sont pas de type `` point à point '', passent par un intermédiaire nommé en général `` point d'accès '' ce qui complique le protocole, et donc la trame, par rapport au CSMA/CD.
Si deux stations émettent en même temps il y a collision. Les deux trames sont alors inexploitables, les deux (ou plus) stations détectent ce fait et reémettent ultérieurement leur paquet en attente.
En conclusion, la technologie Ethernet est simple, sa mise en
uvre se
fait à faible coût. Points à retenir :
cm
figure II.03 -- trame Ethernet
Quelques considérations en vrac :
A l'intérieur de chaque octet le premier bit envoyé est celui de poids faible, etc..
Remarque importante : il faut connaître l'adresse de son correspondant pour pouvoir lui envoyer un paquet ! À ce stade de l'exposé on ne sait pas encore comment faire quand on ignore cette information.
| Type | Données |
| 0800 | IP |
| 0806 | ARP |
| 0835 | RARP |
| 6000 | DEC |
| 6009 | DEC |
| 8019 | DOMAIN |
| ... | ... |
Pour ces deux standards, l'adresse est codée sur 6 octets soit 48 bits. Pour un hôte sur un réseau, cette adresse est ce que l'on appelle son adresse physique (`` hardware addresse '') par opposition à son adresse logique qui interviendra lors de l'examen de la couche 3.
En fait cette adresse est divisée en deux parties égales, les trois premiers octets désignent le constructeur, c'est le OUI (`` Organizationally Unique Identifier '') distribué par l'IEEE II9 les trois derniers désignent le numéro de carte, dont la valeur est laissée à l'initiative du constructeur qui possède le préfixe.
L'IEEE assure ainsi l'unicité de l'attribution des numéros de constructeurs, par tranches de 224 cartesII10
Chaque constructeur assure l'unicité du numéro de chaque carte fabriquée. Il y a au maximum 224 cartes par classe d'adresses.
Cette unicité est primordiale car le bon fonctionnement d'un LAN requiert que toutes les stations aient une adresse physique différente. Dans le cas contraire le réseau et les applications qui l'utilisent auront un comportement imprévisible le rendant impraticable.
Nous aurons l'occasion de rencontrer à nouveau ce soucis d'unicité
de l'adresse physique lorsque nous examinerons les
protocoles ARP et RARP (cf cours ARP/RARP pages
et
) et avec CARP (`` Common Address Redundancy Protocol '')
lorsque nous parlerons des hôtes virtuels, page
.
Exemple d'adresse physique en représentation hexadécimale :
08:00:09:35:d5:0b |
08:00:09 est attribué à la firme Hewlett-Packard |
35:d5:0b est l'adresse de la carte |
D'autres constructeurs, capturés au hasard des réseaux :
00:11:24 |
Apple Computer |
00:00:0C |
Cisco Systems, Inc. |
00:06:5B |
Dell Computer Corp. |
08:00:20 |
Sun Microsystems |
AA:00:04 |
Digital Equipment Corporation |
00:10:5A |
3Com Corporation |
| ... | ... |
Dans la pluspart des technologies de LAN, toutes les stations peuvent écouter toutes les trames qui leur parviennent. Beaucoup d'entres elles ne leur sont pas destinées, et s'il fallait que le système d'exploitation qui gère l'interface réseau s'interrompt à chaque fois pour les examiner, il ne serait pas très utilisable pour les applications de l'utilisateur, parceque tout le temps interrompu par ces évênements réseau.
Pour éviter cette situation, le logiciel embarqué dans l'interface réseau est paramétré (par le système d'exploitation) pour filtrer les paquets non voulus car non nécessaires au bon fonctionnement en réseau. Ce paramètrage peut changer d'une station à une autre.
Il est également possible de ne pas filtrer, c'est une propriété utilisée par les analyseurs de trames, comme par exemple l'outil tcpdump. La carte fonctionne alors en mode dit `` promiscuous '', qui n'est donc pas son mode de fonctionnement standard.
Le filtrage s'appuie sur trois types d'adressages :
Toutes les stations d'un réseau sont destinatrices de tels paquets, que leur filtrage doit laisser passer, avec les inconvients cités précédemment.
Ce mode d'adressage ne devrait être utilisé
par les protocoles qu'uniquement quand il
n'est pas possible de faire autrement. Par
exemple pour obtenir une information
que seule une station inconnue sur le LAN
possède. C'est le cas des protocoles
ARP et RARP (cf cours ARP/RARP pages
et
)
Utilisé abusivement, le broadcast est une gêne.
Il existe un préfixe particulier 01:00:5E, non dédiée à un constructeur
car dit de `` multicast '', que nous examinerons dans le
cas d'IP page
.
Ce mode de d'adressage est réservé le plus généralement à la découverte passive (par l'écoute de messages d'avertissement) ou à la recherche (par l'émission de messages de sollicitation) de voisins de LAN ayant des propriétés particulières.
Le filtrage des sollicitations et leurs réponses peut être configuré à la carte sur chaque station, en fonction des impératifs et besoins de fonctionnement.
Ce mode de fonctionnement est assez économe des ressources du réseau, puisqu'une seule station émet une information qui est traitée par toutes celles qui sont intéressées, et elles seules.
Toutes les adresses qui ne sont ni du type broadcast ni du type multicast sont du type unicast.
Cette couche est concernée par la gestion de l'adresse physique de la technologie de LAN employée (comme `` token-ring '' par exemple)
Définit ce qui est nécessaire aux multiples couches supérieures possibles pour utiliser et partager les ressources du lan en même temps.
Le commité 802.2 a également prévu plusieurs options, dont deux principalement utilisées :
Les trames sont délivrées en mode datagramme c'est à dire selon le principe du `` best effort '' (on fait au mieux sans garantie de résultat).
Les trames sont délivrées avec une garantie de bon acheminement. L'usage du LLC de type 2 entraîne l'ajout de champs dans l'en-tête pour numéroter les paquets, ajouter des acquittements, des synchronisations, etc... C'est le protocole HDLC comme `` High-level Data Link Control ''.
Un travail qui est normalement dévolu à la couche de transport et qui donc parasite beaucoup la lisibilité de l'ensemble.
cm
figure II.05 -- Interconnexion - Technologie élémentaire
L'interconnexion ne se limite pas au niveau Ethernet.
Quelques notions de technologie de base et donc très succintes sont nécessaires pour bien comprendre la suite de ce cours.
Figure II.06 l'hôte est raccordé à l'aide d'une prise de type `` vampire '' et d'un `` transceiver ''.
Dans cette technologie de raccordement, le support est un gros câble jaune, dit encore `` Thick Ethernet '' ou Ethernet standard, ou encore 10Base5 (10 comme 10Mbits/s, Base comme `` Baseband '', 5 comme 500 mètres).
figure II.06 -- Prise vampire |
Quelques particularités du 10Base5 :
Pour les câblages rapides on préfère le 10Base2 ou `` Thin Ethernet '' ou encore Ethernet fin (2 comme 200 mètres).
Quelques particularités du 10Base2 :
Les désavantages du 10Base2 imposent généralement l'usage du 10BaseT dans toute structure dépassant quelques machines (5 à 10). Le 10BaseT règle définitivement le problème de l'ajout ou du retrait d'une machine sur le LAN (T comme `` Twisted Pair '' ou paires torsadées).
Cette technique impose l'usage d'une boite noire réseau nommée `` HUB ''II12 ou moyeu. Celle-ci simule la continuité dans le cas du retrait d'une station.
Quelques particularités du 10BaseT :
) au reste
du réseau se fait
par 10Base2, en fibre optique, ou tout simplement
par chaînage avec un autre HUB (`` Daisy chain '').
Aujourd'hui le 100BaseT équipe la majeur partie des équipements professionnels, 100 comme 100 Mbits/s.
Enfin la fibre optique est utilisée de plus en plus souvent pour effectuer les liaisons point à point.
Quelques particularités de la fibre optique :
Construire un réseau local consiste à juxtaposer des composants de base très bien maitrisé, une sorte de mécano car tous les supports sont mixables.
Ne plus installer les technologies les plus anciennes 10Base5, 10Base2 ou même 10BaseT, préférer l'usage du 100BaseT ou du 1000BaseT qui sont devenus un standard courant du précablage.
En effet le câblage constitue les fondations d'un réseau, le faire proprement d'emblé évite une source continuelle d'ennuis pas la suite ! Les besoins en bande passante d'aujourd'hui ne préfigurent sans doute pas encore les besoins de demain (vidéo haute définition sur tous les postes...), il faut donc prévoir très large dès la conception initiale.
À une technologie particulière correspond forcément des limitations dues aux lois de la physique. Par exemple en technologie Ethernet la longueur maximale d'un brin ne peut pas excéder 180 mètres. Pour pallier à cette déficience on utilise des répéteurs (`` repeaters '').
Répéteurs :
Un concentrateur (ou `` HUB '', moyeu) :
|
figure II.09 -- Concentateur
|
Un hub assure la continuité du réseau sur chacune de ses prises, que l'on y branche ou pas un hôte. En cela il agit uniquement au niveau de la couche 1 ISO. Il ne limite pas le nombre de collisions et n'améliore pas l'usage de la bande passante. Son seul intérêt est de donc permettre le branchement ou le débranchement des stations sans perturber le fonctionnement global du réseau.
Les hubs peuvent être chaînés entres-eux ; souvent ils sont reliés au backbone local par une autre technologie que la paire torsadée (fibre optique...).
Dans le cas de `` hubs intelligents '' les ports sont associés les uns aux autres par groupes de fonctionnement.
La technologie CSMA/CD atteint vite ses limites quand le réseau est encombré. Une amélioration possible quand on ne peut pas changer de technologie (augmentation du débit) est d'utiliser un ou plusieurs ponts (`` bridges '') pour regrouper des machines qui ont entre-elles un dialogue privilégié.
Dialogue entre deux stations, sans pont :
De nos jours le pont en tant que tel est de moins en moins utilisé par contre le principe de son fonctionnement se retrouve, entres autres, dans les commutateurs (paragraphe suivant) et dans les points d'accès sans fil (`` wireless '').
Dialogue entre deux stations, avec pont :
On peut remarquer que les échanges locaux à chaque branche du pont s'effectuent au mieux des possibilité de la bande passante, le pont a donc multiplié par deux la capacité globale du trafic réseau vis à vis de certains échanges.
Un pont :
Aligner des stations sur un même réseau local constitue une première étape simple et de faible coût pour un réseau local d'entreprise. Le revers d'une telle architecture est que le nombre de collisions croît très vite avec le trafic, d'où une baisse très sensible de la rapidité des échanges dûe à ce gaspillage de la bande passante.
L'usage de ponts peut constituer une première solution mais elle n'est pas totalement satisfaisante dans tous les cas de figure, comme nous avons pu le remarquer au paragraphe précédent.
Depuis plus d'une dizaine d'années est apparue une technologie nommée `` Intelligent Switching Hub '' (ISH) - commutateur intelligent - qui utilise le concept de commutation parallèle et qui a révolutionné l'organisation des réseaux locaux.
D'aspect extérieur ces équipements se présentent comme un hub mais
ont en interne un cpu suffisamment puissant et un bus interne de données
suffisamment rapide pour mettre en
uvre une logique de commutation
raffinée.
Lorsqu'une trame se présente sur l'un des ports du commutateur elle est (ou n'est pas) re-routée vers un autre port en fonction de l'adresse physique du destinataire. Il existe plusieurs différences entre un pont et un commutateur :
D'un point de vue plus théorique, un commutateur à N ports à 100 Mbit/s chacun a un débit maximum de N x 100/2 = 50 x N Mbit/s.
Avec un commutateur, il est aisé d'organiser un réseau en fonction de la portée des serveurs des postes clients associés. La figure II.12 illustre ce principe :
Le trafic réseau entre le `` client 1 '' et le serveur `` S2 '' ne perturbe pas le trafic entre le `` client 2 '' et le serveur `` S1 ''. De même le trafic entre le `` client 1 '' et le `` serveur local '' n'est pas vu du `` client 2 ''.
Les commutateurs étiquettent les trames avec un identificateur du VLAN auquel elles appartiennent. Cette étiquette se résume par deux octets ajoutés dans la trame, selon les recommandations du comité 802 (norme 802.1Q).
Pour raccorder deux LANs non forcément contigus il faut faire appel à ce que l'on désigne `` une passerelle '' (`` gateway ''). Son rôle est de prendre une décision sur la route à suivre et de convertir le format des données pour être compatible avec le réseau à atteindre (en fonction de la route).
Souvent, et c'est le cas avec TCP/IP, la fonction de conversion n'est pas utilisée, la fonction de routage donne alors son nom à l'appareil en question (éponyme), qui devient un `` routeur '' (`` router '').
Le problème du routage entre A et B :
La fonction passerelle consiste aussi en traduction de protocoles :
Un routeur :
)).
Pour en savoir plus :