Préparé par Luc Baron
Le 2 septembre 2020
Ce document a pour objectif de présenter un aperçu général du matériel, de l'architecture et des protocoles des réseaux informatiques. Il s'adresse aux futurs ingénieurs non spécialistes des réseaux. Il s'agit d'un survol des différents concepts que l'on manipule comme des blocs, sans aller en profondeur à l'intérieur de ceux-ci. Ce document est accompagné de démonstrations informatiques disponibles sous forme de capsules vidéo et d'une séance de travail pratique.
Dans le contexte des réseaux informatiques, nous présentons les définitions suivantes :
Nom | Signification |
---|---|
protocole | Ensemble de règles qui déterminent la manière dont les données sont transmises dans un réseau |
trame | Paquets de données véhiculés au travers d'un support physique (optique, électrique, onde) |
bit | Unité de base d'information, soit 0 ou 1 |
octet | Ensemble de 8 bits permettant de représenter 28= 256 caractères différents |
mémoire | Matrice de stockage d'octet de 8 bits |
serveur | Ordinateur exécutant des logiciels de services pour des logiciels clients |
Mbit/s | Vitesse de transmission d'un réseau en mégabits par seconde, soit 106 bits par seconde |
Internet est composés de matériels hétérogènes de différentes natures, vitesses, systèmes d'exploitation en provenance de différents fabricants, et pourtant, ils sont capables de communiquer entre eux. Les protocoles sont des standards de communication réseau développés afin de permettre cette interopérationalité du matérial et des logiciels. Les organismes publics supranationaux consultent les grandes entreprises du web (Microsoft, Apple, Cisco, Google et autre), afin d'établir ces standards. Les protocoles ne se situent pas tous au même niveau d'abstraction. Normaliser le codage des bits dans un câble électrique réseau est plus proche de la machine que la gestion des trajets des paquets de données. Ainsi, les protocoles ont été développés selon un modèle de réseau OSI à 7 couches, puis TCP/IP à 4 couches.
Le modèle OSI est composé de 7 couches entre le matériel physique du réseau (couche 1) jusqu'au services (couche 7) que les logiciels peuvent utiliser. Ainsi lorsqu'un navigateur Web désire obtenir un fichier d'un serveur Web distant, sa demande doit descendre de la couche 7 vers la couche 1, puis circuler sur le réseau, pour ensuite remonter dans le serveur de la couche 1 à la couche 7, puis au logiciel Web. La réponse doit suivre le chemin inverse. Nous allons décrite la fonction des 7 couches :
L'évolution du matériel de communication réseau a permis d'obtenir des cartes réseau capables de prendre en charge les couches 1 et 2, alors que les couches 5 à 7 ont pu être regroupées en un ensemble de protocoles de haut niveau. Le réseau Internet est aujourd'hui mieux représenté par le modèle TCP/IP à 4 couches.
Le modèle TCP/IP est composé de 4 couches :
Le protocole IPv4 (Internet protocole version 4) de la couche 2 est encore aujourd'hui la version la plus largement déployée sur Internet, même si IPv6 est prêt à être déployé. Selon ce protocole, chaque poste et équipement d'interconnexion sur Internet est identifié par une adresse IP logique unique de 4 octets de 8 bits (4 x 8 bits = 32 bits) comme dans l'exemple ci-dessous.
La conversion d'un nombre binaire en décimal se fait par :
101011002 = 1 x 27+0 x 26+1 x 25+0 x 24+ 1 x 23+1 x 22+0 x 21+0 x 20= 17210
L'usage du mot serveur est en général double. Il désigne un poste informatique physique performant offrant des services à plusieurs usagers. Il désigne aussi un logiciel de service spécifique utilisant différents protocoles de la couche 4 application, tels que HTTP, SSH, SFTP, ..., et qui s'exécute sur un serveur physique. Ainsi, un serveur physique peut exécuter le logiciel de service Web Appache qui utilise le protocole HTTP, et aussi, exécuter un logiciel de service SFTP, afin de permettre le transfert de fichiers avec le serveur physique. Nous décrivons ci-dessous les principaux protocoles de la couche 4 Application du modèle de réseau TCP/IP.
Le protocole VPN (Virtual Private Network) permet de construire un canal de communication privé, c'est-à-dire encodé à travers internet entre un poste client et un réseau distant privé. Le serveur VPN sur le réseau distant attribue alors une adresse IP logique au poste client comme s'il était présent dans le réseau privé. Le serveur VPN du réseau privé de Polytechnique se nomme ssl.vpn.polymtl.ca et permet l'attribution d'adresse IPv4 du type 10.10.xx.xx avec les deux serveurs DNS 132.207.144.3 et 132.207.144.3
Le protocole DHCP (Dynamic Host Configuration Protocol) permet à un ordinateur qui désire se connecter nouvellement à un réseau informatique d’obtenir dynamiquement une adresse IP unique et la configuration du réseau. Lorsque le mode DHCP est désactivé, c'est à l'usager de décrire manuellement la configuration du réseau dans les paramètres de la carte réseau. Il doit aussi inscrire une adresse IP, dite statique, qui n'est pas déjà utilisée par un autre poste, ni réservée dans la liste des adresses gérées par le serveur DHCP, sinon il y aura possiblement des collisions. Lorsque le mode DHCP est activé, le poste diffuse sur le segment (domaine de diffusion) de son nouveau réseau une demande de configuration selon le protocole DHCP. S'il existe un serveur DHCP à l'écoute, il lui répond en lui assignant une adresse IP non utilisée et la configuration du réseau qui inclut l'adresse du serveur DNS et de la passerelle de sortie. Habituellement, les adresses IP sont louées selon des baux de 24 heures renouvelables par le serveur DHCP.
Les protocoles Telnet et SSH (Secure SHell) permettent tous deux l'envoi de commandes et l'affichage des réponses entre un poste client et un poste distant à travers un réseau. L'interface est habituellement une simple console, souvent appelé terminal, où l'on utilise le clavier du poste client pour entrer une commande qui est envoyée au poste distant. Ce dernier exécute la commande et retourne au poste client la réponse pour affichage. Les terminaux peuvent être du matériel physique spécialisé ou une simple fenêtre terminale sur votre ordinateur. La version Telnet est un protocole non sécurisé, alors que la version SSH est un protocole sécurisé. Plusieurs exemples d'utilisation du protocole Telnet sont présentés à la section 5.1 et SSH à la section 5.2.
Les protocoles FTP (File Transfer Protocol) et SFTP (Secure File Transfer Protocol) permettent tous deux le transfert de fichier bidirectionnel entre un poste client et un poste distant à travers un réseau. L'interface peut être une simple console où l'on utilise le clavier du poste client pour entrer des commandes, telles que PUT qui permet d'envoyer un fichier vers le poste distant ou GET qui permet de recevoir un fichier du poste distant. Ce dernier exécute la commande et retourne au poste client la réponse pour affichage. Il faut utiliser la notion de répertoire de travail sur le poste client et le poste distant. L'interface peut aussi être un logiciel client graphique facilitant les transferts avec les déplacements de la souris. Sur Windows, le logiciel SSH Secure Shell Client est disponible gratuitement et est du domaine public. Sur MacOS, la fenêtre terminal permet de le faire gratuitement avec des commandes. Les logiciels clients graphiques sont nombreux, mais payants. La version FTP est un protocole non sécurisé, alors que la version SFTP est un protocole sécurisé.
Les protocoles HTTP (HyperText Transfer Protocol) et HTTPS (HyperText Transfer Protocol Secure) permettent tous deux l'échange de fichiers (principalement XHTML/HTML et images) entre le navigateur d'un poste client et un serveur Web d'un poste distant à travers un réseau. Selon ces protolocles, lorsque l'usager clic sur un hyperlien, le navigateur demande accès à cette ressource sur le serveur Web via son URL. Le serveur Web envoie alors le fichier demandé à travers le réseau au navigateur qui lui s'occupe de son affichage selon qu'il s'agit de code XHTML/HTML ou de scripts Java. Si la ressource demandée est un fichier PHP, le serveur Web demande au serveur PHP d'exécuter le code PHP avant d'envoyer le résultat au navigateur. Dans ce cas, jamais ce dernier ne reçoit le code source PHP. Par défaut, les navigateurs Web s'attendent à utiliser le protocole HTTP, c'est pourquoi il n'est pas nécessaire d'inscrire http:// dans le URL. Les navigateurs sont, cependant, capables d'utiliser d'autres protocoles, tels que ftp:// ou même smb://, si on les spécifie explicitement. La version HTTP est un protocole non sécurisé, alors que la version HTTPS est un protocole sécurisé.
Les protocoles POP (Post Office Protocole), IMAP (Internet Message Acces Protocol) et SMTP (Simple Mail Transfer Protocol) sont tous des protocoles permettant de discuter directement avec un serveur de courriels.
La figure précédente illustre la situation où client1@polymtl.ca désire envoyer un message à client2@videotron.ca.
Client1 utilise un navigateur avec le protocole HTTP pour se connecter au serveur Web www.imp.pomtl.ca de Polytechnique pour composer son message. Lorsqu'il appuie sur envoyé, le serveur Web utilise alors le protocole SMTP pour transmettre le message au serveur smtp.polymtl.ca, et ce dernier envoie la trame SMTP à travers Internet jusqu'au serveur smtp.videotron.ca.
Client2 est quelque part sur Internet. Il utilise un navigateur avec le protocole HTTP pour se connecter au serveur Web courrielweb.videotron.ca. Il demande de consulter sa boîte de messages. Le serveur Web utilise alors le protocole IMAP pour demander les messages au serveur imap.videotron.ca, ce dernier lui retour les messages avec le protocole IMAP. Le serveur courrielweb.videotron.ca construit alors l'affichage de la réponse en HTML qu'il envoi avec le protocole HTTP au navigateur de cilent2. Finalement, le navigateur Web du client2 affiche le fichier HTML qui contient le message reçu de client1.
Le parcours est très long parce que les deux utilisateurs ne communiquent pas directement avec leur serveur de courriels en utilisant les protocoles IMAP et SMTP, ils préfèrent utiliser HTTP avec un navigateur Web. Alternativement, le client1 aurait pu utiliser un logiciel de messagerie, tel qu'Outlook de Microsoft, Mail de MacOS ou Thunderbird (gratuiciel ou Free ware) pour envoyer son message. Une fois configuré, ces logiciels permettent de communiquer directement avec les serveurs imap.polymtl.ca et smtp.polymtl.ca de Polytechnique, ou de Videotron, ce qui peut alléger grandement la quantité de données échangées.
Selon le modèle de réseau TCP/IP à 4 couches, nous décrivons ci-dessous le matériel couramment utilisé pour implanter un réseau local (Local Area Network ou LAN) ou un réseau étendu (Wide Area Network ou WAN). Les numéros de couche indiqués sont ceux du modèle TCP/IP à 4 couches.
Les quatre principales technologies de liaison de la couche 1 pour la transmission des données sur les réseaux informatiques sont :
Le protocole ARP (Address Resolution Protocol) fonctionne au niveau de la couche 1 liaison. Il permettant d'obtenir l’adresse physique MAC d’une interface réseau à partir de son adresse IP logique. Par exemple, obtenir l'adresse physique 00-22-4D-51-40-35 à partir de l'adresse IP logique 192.168.0.135 .
Le concentrateur (hub) fonctionne au niveau de la couche 1 liaison d'un réseau local. Il permet la connexion physique des câbles à fibre optique ou Ethernet. Chaque équipement attaché au concentrateur partage alors le même domaine de diffusion (appelé segment), ainsi que le même domaine de collision. Comme dans tout segment de réseau Ethernet, un seul poste peut transmettre à la fois. Dans le cas contraire, une collision se produit, les postes concernées doivent retransmettre leurs données après avoir attendu un temps calculé aléatoirement par chaque émetteur. C'est comme une route municipale à 1 voie dans chaque direction où les voitures (trames) doivent faire la file dans le trafic vers leur destination. La densité de trafic cause fréquemment des collisions.
Le commutateur (switch) fonctionne au niveau de la couche 1 liaison d'un réseau local comme le concentrateur. Il permet aussi la connexion physique des câbles à fibre optique ou Ethernet. Il est souvent utilisé pour remplacer un concentrateur, car il permet de réduire les collisions de données. Contrairement à un concentrateur, il n'envoie pas, sur tous les ports, toutes les trames de données reçues. En utilisant le protocole ARP, il construit plutôt dynamiquement une table permettant d'associer l'adresse physique MAC de destination des trames et le port de destination. Ainsi, il peut acheminer directement les données vers le port de destination sans encombrer les autres ports. C'est comme une route régionale à quelques voies dans chaque direction où les voitures peuvent changer de voie vers leur destination. Les collisions sont moins fréquentes puisqu'elles ne se produisent que lors des changements de voie.
Le routeur (router) fonctionne au niveau de la couche 2 internet d'un réseau local LAN ou étendu WAN. Il permet aussi la connexion physique des câbles à fibre optique ou Ethernet. Il assure le routage des trames de données selon le trafic actuel et la destination. Ainsi, il interroger les autres routeurs afin d'obtenir les adresses IP des chemins vers la destination. Il peut également utiliser le protocole DNS pour obtenir des adresses IP pour mettre à jour ses tables de routage. Le routeur est l'équivalent d'un ordinateur gérant plusieurs connexions réseau (les anciens routeurs étaient d'ailleurs des ordinateurs). Certains peuvent également avoir la fonction de pare-feu (firewall), de serveur DNS et/ou de serveur DHCP. C'est comme une autoroute à plusieurs voies dans chaque direction où les voitures peuvent changer de voie vers leur destination. Les collisions sont encore moins fréquentes puisque toutes les voitures utilisent un GPS intelligent capable d'ajuster le trajet à destination selon le trafic, et ainsi, réduire les temps de transport.
Le protocole DNS (Domain Name System) fonctionne au niveau de la couche 2 internet. Il permettant de traduire les noms de domaine et adresses IP symboliques en adresse IP logique. Par exemple, le serveur DNS de Polytechnique (ns1.polymtl.ca) permet d'obtenir l'adresse IP logique 132.207.6.35 à partir de l'adresse symbolique www.polymtl.ca.
Nous observons ci-dessous l'architecture d'un réseau étendu (Wide Area Network ou WAN). Le nuage central représente le réseau mondial Internet. À gauche et à droite, nous avons 2 réseaux locaux LAN chacun relié à Internet par 2 modems haut débit. Ces 2 LAN forment ensemble un WAN avec chacun de son côté un routeur WAN permettant de gérer des canaux VPN (Virtual Private Network). Chacun des routeurs est relié à un pare-feu (STM300/STM150) qui filtre les données courriels contre les virus et les sources malveillantes selon des règles prédéfinies. Ils filtrent également les communications Web entre un navigateur client et un serveur. Finalement, les serveurs, les postes de travail et les équipements réseaux partagés sont reliés directement à un commutateur qui lui-même est relié au pare-feu.
En raison de la présence des pares-feu et des routeurs avec VPN, les deux portions du WAN, bien que physiquement éloignées, peuvent communiquer entre elles comme si elles étaient situées dans un même lieu. Les usagers mobiles peuvent se connecter au WAN avec un téléphone intelligent, une tablette ou un ordinateur avec un VPN. Les liaisons indiquées en bleu sont des tunnels VPN.
Sur un poste Windows, démarrer la console par le menu Démarrer, puis faites une recherche avec CMD, afin d'obtenir la console de commande.
Utiliser la commande ipconfig, afin d'obtenir la configuration réseau de votre poste de travail, comme ci-dessous.
Les deux cartes Ethernet sont actives et possèdent des adresses IPv4, alors que les quatre cartes tunnel suivantes sont déconnectées. Utilisons maintenant, la même commande avec le paramètre /all, afin d'obtenir plus d'information.
La première carte réseau est de technologie Ethernet. Elle se nomme Cisco AnyConnect Secure Mobility Client Virtual Miniport Adapter. C'est une carte virtuelle qui n'existe pas physiquement dans ce poste de travail. Elle porte le nom du client VPN (Cisco AnyConnect) que Polytechnique demande d'utiliser pour se connecter à distance à son réseau informatique privé. Une fois la connexion VPN démarrée, Cisco AnyConnect installe cette carte réseau virtuelle. On constate que cette carte possède l'adresse physique 00-05-9A-3C-7A-00, a obtenue l'adresse IPv4 logique 10.10.2.243 et que les serveurs DNS du réseau privé de Polytechnique sont 132.207.144.2 et 132.207.144.3. Ce canal VPN permet l'accès à distance aux ressources informatiques de Polytechnique comme si vous y étiez physiquement présent. Observons maintenant la suite de la réponse.
La deuxième carte réseau est aussi de technologie Ethernet. Elle se nomme Intel(R) 82579U Gigabit Network Connection. Cette carte possède l'adresse physique 00-22-4D-51-40-35 et a obtenue l'adresse IPv4 logique 192.168.0.135. On note également que la passerelle, les serveurs DHCP et DNS possèdent la même adresse logique IPv4 192.168.0.1. En faîte, c'est le routeur du réseau local qui effectue le travail de passerelle, de serveur DHCP et de serveur DNS. Ce poste informatique a donc deux cartes réseaux: une première virtuelle pour le canal VPN vers Polytechnique, et une seconde réelle sur le réseau local.
Utiliser la commande ping, afin d'obtenir l'aide sur l'utilisation de la commande ping, comme ci-dessous.
La commande ping doit se terminer par le nom_cible de l'équipement réseau que l'on désire obtenir l'adresse logique IPv4, ainsi que vérifier le temps de transport aller-retour d'un paquet de données. Les paramètres entre [...] sont optionnels. Le paramètre -n (valeur par défaut de 4) permet de choisir le nombre de répétitions des envois. Le paramètre -l (valeur par défaut de 32 octets) permet de choisir la grandeur des paquets de données. Utilisons maintenant la commande ping avec 6 répétitions et des paquets de 4096 octets.
La commande ping interroge le serveur DNS et obtient l'adresse logique IPv4 132.207.6.35 correspondant à www.polymtl.ca. Le temps moyen de transit aller-retour des paquets avec ce serveur est de 21 ms, donc le temps moyen de transport aller seulement est de 21 ms / 2 = 10,5 ms = 0,0105 seconde. Puisque les octets sont formés de 8 bits, alors l'envoi se fait à la vitesse de (4 096 octets x 8 bits/octet) / 0,0105 s = 3 120 762 bits/s = 3,1 Mbit/s. Les temps de transit sont très variables, puisqu'ils dépendent du trafic à l'instant de la mesure et de la distance à parcourir sur internet.
Les commandes décrites dans cette section peuvent être exécutées sur des postes Unix, Linux ou MacOS. Nous utilisons le poste Linux cogito.meca.polymtl.ca pour illustrer le résultat.
Utiliser la commande /sbin/ifconfig, afin d'obtenir la configuration réseau du poste Linux, comme ci-dessous.
Il y a trois cartes réseau dans ce poste Linux:
Le fichier /etc/resolv.conf contient l'adresse IPv4 du serveur DNS utilisé par ce poste Unix. Utiliser la commande more afin d'afficher le contenu de ce fichier texte, comme ci-dessous.
Ce poste recherche le nom des autres postes du sous-réseau meca.polymtl.ca avec le serveur DNS 132.207.39.70. Noter que ce fichier est généré automatiquement par le gestionnaire de configuration réseau comme l'indique le commentaire à la ligne 1. Modifier ce fichier ne permet donc plus de modifier la configuration DNS de ce poste.
Utiliser la commande ping, afin d'obtenir l'aide sur l'utilisation de la commande ping, comme ci-dessous.
Sous Unix, il existe deux versions de la commande ping, c'est-à-dire une version pour IPv4 et une pour IPv6 en sélectionnant le paramètre -6. La commande ping doit se terminer par la destination de l'équipement réseau que l'on désire obtenir l'adresse logique IP, ainsi que vérifier le temps de transport aller-retour d'un paquet de données. Les paramètres entre [...] sont optionnels. Attention, sous Unix les paramètres ne sont pas identiques à ceux sous Windows. Le paramètre -s (valeur par défaut de 64 octets) permet de choisir la grandeur des paquets de données. Le paramètre -c (par défaut de valeur infini) permet de choisir le nombre de répétitions des envois. Si vous ne fixez pas ce paramètre, la répétition sera infinie ou jusqu'à ce que vous fassiez un ^C (ctrl-C). Utilisons maintenant la commande ping avec 6 répétitions et des paquets de 16 300 octets. Noter que la commande ajoute 8 octets à la grandeur demandée.
La commande ping interroge le serveur DNS et obtient l'adresse logique IPv4 132.207.6.35 correspondant à www.polymtl.ca. Le temps moyen de transit aller-retour des paquets avec ce serveur est de 1,701 ms, donc le temps moyen de transport aller seulement est de 1,701 ms / 2 = 0,8505 ms = 0,0008505 seconde. Puisque les octets sont formés de 8 bits, alors l'envoi se fait à la vitesse de (16 308 octets x 8 bits/octet) / 0,0008505 s = 153 396 825 bits/s = 153,4 Mbit/s. Dans cet exemple, les temps de transit sont beaucoup moins variables et très courts, parce que cogito est situé dans la salle des serveurs, à proximité du serveur www.polymtl.ca. Noter que sous Unix, les temps de transit sont mesurés au 0,01 ms plutôt que 1 ms sous Windows.
Ce lexique présente un résumé des acronymes réseau les plus importants.