30
Fonctionnement des réseaux 1

Fonctionnement des réseaux

  • Upload
    others

  • View
    6

  • Download
    0

Embed Size (px)

Citation preview

Page 1: Fonctionnement des réseaux

Fonctionnement des réseaux

1

Page 2: Fonctionnement des réseaux

2 2 Introduction Un réseau représente l'art de communiquer.

Parmi les premiers moyens de transmission d'une information se trouvent les cornes, les feux etc… Ainsi, les tours génoises utilisaient le feu pour transmettre des signaux.

Au fait, de quoi avons-nous besoin pour communiquer ? Dans le cas de la parole : • D'un émetteur • D'un récepteur • D'un support de transmission (l'air)

Dans le cas du courrier : • D'un émetteur • D'un récepteur • D'un support de transmission (la lettre) • D'un contenant (l'enveloppe) • D'un intermédiaire (la poste)

Les sémaphores des frères Chappe sont un système à bras articulés dont le premier essai entre Paris et Lille eu lieu en 1794 et permit de transmettre un message en une dizaine de minutes. A une position des bras est associée un nombre entier compris entre 1 et 92 et à chaque couple de nombres est associé un mot français (soit un vocabulaire de 8464 mots). Le système Chappe est aussi appelé télégraphe optique.

Au 19ème siècle, c'est l'avènement des transmissions électrique utilisées dans le télégraphe et le téléphone

Les tours d'Amon Sûl sur les monts venteux permettent d'avertir les cavaliers du Rohan de la menace de Sauron sur Minas Tirith. Mon précieux…..

Page 3: Fonctionnement des réseaux

3

La carte du réseau des sémaphores des frères Chappe montre qu'il existe des intersections. Celles-ci sont représentés par des tours relais qui permettent de faire un choix de direction que doit suivre le message. Dans un réseau, quel qu'il soit, ces intersections s'appellent : des nœuds. Afin d'emprunter le bon chemin vers la bonne destination, il faut au niveau du nœud un système particulier.

Les réseaux à commutation de paquets. Nés avec l'informatique. Un paquet s'apparente à un message de taille définie. Si le message est trop grand il est découpé en plusieurs paquets. Les nœuds sont, dans ce cas, représentés par un routeur dont nous reparlerons largement dans la suite.

On distingue alors : les réseaux à commutation de circuits : ce sont les premiers réseaux téléphoniques, ou au niveau du nœud, un opérateur va établir manuellement la connexion vers le destinataire.

Les réseaux à commutation de messages. largement utilisé dans le cas des télex. Dans ces réseaux, aucun chemin physique n'est établi au préalable : l'émetteur du message l'envoie en entier sur un lien le rapprochant du destinataire. Le nœud a l'autre bout du lien le stocke et l'émet a son tour sur un sur le lien suivant et ainsi de suite jusqu'au récepteur final.

Page 4: Fonctionnement des réseaux

4

Topologie en réseau maillé Tous les nœuds sont reliés 2 à 2 et communiquent directement. Accès direct à toutes les machines mais couteux en nombre de liens à établir

Topologie

Topologie bus Tous les nœuds communiquent avec tous les autres en partageant le même média physique (le câble). Simple et peu couteux mais risque de collision des données.

Topologie en étoile Un nœud concentre le traitement des requêtes. Pas de collision mais la panne du nœud central paralyse tout le réseau. C'est cette architecture qui est utilisée par internet.

Attention Internet ≠ web Internet c'est l'interconnexion de réseaux de machines Le Web ce sont des données échangées sur internet via le protocole HTTP

Page 5: Fonctionnement des réseaux

5 Le réseau internet Le réseau le plus connu aujourd'hui est bien sur Internet. Actuellement, c'est environ 1.8 milliard d'internautes (dont 42% viennent d'Asie) et 200 millions de serveurs. C'est à la fin des années 1960, les chercheurs se sont orientés vers la création de protocoles de communication permettant de faire dialoguer des machines provenant de différents réseaux en utilisant différentes technologies de communication.

Comment est-ce possible de faire communiquer autant de machines sans perdre des informations et en faisant en sorte que ces informations arrivent au bon endroit ?

Pour appliquer ces principes aux communications entre ordinateurs, les chercheurs ont créé en 1984 le modèle OSI. Ce dernier est une norme qui préconise comment les ordinateurs devraient communiquer entre eux. Ce modèle utilise le principe de communication par couches. Ce modèle comporte sept couches possédant un nom différent.

Page 6: Fonctionnement des réseaux

6 Le modèle OSI Examinons ces couches

La couche 1 ou couche physique Son rôle est d'offrir un support de transmission pour la communication Elle utilise un hub (ou concentrateur)

La couche 2 ou couche de liaison Son rôle est de connecter les machines entre elles sur un réseau local Elle peut détecter les erreurs de transmission elle utilise un switch (ou commutateur)

La couche 3 ou couche réseau Son rôle est d'interconnecter les réseaux entre eux Elle fragmente les paquets de données Elle utilise un routeur.

La couche 4 ou couche transport Son rôle est de gérer les connexions applicatives Elle garantit la connexion

Les couches 5 et 6 ne sont pas utilisés dans le cadre du fonctionnement du réseau internet

La couche 7 ou couche application Cette couche représente les applications qui utilisent la communication mis en œuvre précédemment par les couches 1 à 4 (que l'on considère comme les couches réseaux ) Elle utilise éventuellement un proxy.

Page 7: Fonctionnement des réseaux

7

En résumé ci-dessous, la situation de quelques protocoles par rapport à la division en niveaux utilisée dans le modèle OSI. Nous étudierons les principaux dans la suite de ce cours.

Ce modèle respecte certaine règles : • Chaque couche est indépendante ce qui garantit qu'elles sont interchangeables (on pourra donc

changer un protocole associé à une couche sans avoir besoin de changer toutes les autres couches) • Chaque couche ne peut communiquer qu'avec une couche adjacente ce qui signifie que lors d'un envoi

de données, on parcourt le modèle OSI de haut en bas en traversant successivement toutes les couches.

Page 8: Fonctionnement des réseaux

8 La couche 1 ou couche physique Le rôle principal de la couche 1 est de fournir le support de transmission de la communication. Cela peut-être un câble ou bien l'air libre si vous utilisez le wifi. La couche 1 aura donc pour but d'acheminer des signaux électriques, des 0 ou des 1.

La fragilité des câbles précédents a poussé les chercheurs à trouver une évolution : la paire torsadée. Dans ce derniers on trouve huit fils torsadés deux à deux par paires. En fait, il n'y a besoin que de deux fils pour faire passer une ddp, 8 sont donc inutiles. Néanmoins ce câble a été créé pour prévenir des évolutions possibles dans l'avenir. En fait nous utilisons 2 paires, soit 4 fils, car nous utilisons une paire pour envoyer les données, et une paire pour les recevoir. C'est le câble que nous utilisons actuellement branchée sur une prise RJ45 que nous trouvons sur la carte réseau de nos ordinateurs.

Historiquement on utilisait des câbles coaxiaux. Le signal électrique circulant dans le fil de données central, on mesurait la différence de potentiel entre le maillage de masse (à 0 V) et le fil de données.

Dans l'avenir, la fibre optique est amenée à remplacer la paire torsadée. Elle transporte également des 0 et des 1 mais avec la lumière (0 pour éteint, 1 pour allumé). Les débits proposés sont plus important que dans la technologie précédente et ces câbles sont insensibles aux perturbations électromagnétiques, ce qui n'est pas le cas de la paire torsadée. Le hub (ou concentrateur) contient plusieurs prise RJ45 et permet de relier les machines entre elles. Le hub ne fait pas de distinction entre les machines contrairement au switch, ainsi si une machine envoie une information vers le hub ce dernier transmettra les données vers toutes les machines branchées dessus.

Page 9: Fonctionnement des réseaux

9 La couche 2 ou couche de liaison

Pour pouvoir parler à une machine en particulier, il va bien falloir être capable de l'identifier. Les chercheurs ont donc créé un identifiant particulier à la couche 2 qui permettrait de distinguer les machines entre elles, il s'agit de l'adresse MAC : Medium Access Control ! En fait cette adresse correspond à l'adresse de la carte réseau utilisée par l'ordinateur.

L'adresse MAC s'écrit en hexadécimal, en voici une par exemple : 00:23:5e:bf:45:6a L'adresse MAC est codée sur 6 octets, or un octet représente 8 bits (un bit est une valeur binaire) Rappel : • deux bits peuvent coder 4 valeurs : 00, 01, 10, 11 soit 22. • trois bits peuvent coder 8 valeurs : 000, 001, 010, 100, 011,110, 101, 111 soit 23 L'adresse MAC étant codée sur 6 octets, soit 48 bits, elle peut donc prendre 248 valeurs différentes, soit 281 474 976 710 656 valeurs (plus de 280 mille milliards d'adresses MAC possibles ). En réalité, un constructeur de carte réseau achète des adresses MAC, en fait les trois premiers octets. Ils représentent donc dans l'adresse MAC le constructeur de la carte. (ex 00:01:02 ….) Etant le seule à posséder les trois premiers octets, il est certain qu'aucune autre carte réseau n'aura la même adresse MAC. Pour permettre une communication entre les machines, il faut un langage commun, d'autant plus que les systèmes d'exploitation sont différents d'une machine à l'autre. Le plus utilisé est Ethernet. Le protocole Ethernet va définir quelles informations vont être envoyées, et surtout dans quel ordre.

Le rôle de la couche 2 est de connecter des machines sur le réseau local. L'objectif est de permettre à des machines connectées ensemble de communiquer.

Page 10: Fonctionnement des réseaux

10

Le format des messages envoyés sur le réseau et définit par le protocole Ethernet est une trame. Elle a la forme suivante :

La couche 2 ou couche de liaison

Adresse MAC du destinataire

Adresse MAC de la source (l'expéditeur)

Protocole de la couche 3

Données à envoyer CRC

• Les adresses MAC du destinataire en premier puis celle de l'expéditeur en second.(6 octets chacune)

• Dans le modèle OSI les données sont passées par la couche 3 avant la couche 2, ainsi la trame contient quel protocole de la couche 3 a été utilisé, ce qui permet, en retour, que la couche 2 renvoie des informations au bon protocole de la couche 3. (ce protocole est codé sur 2 octets)

• Bon les données à envoyer…

• Le CRC ou code de correction. (codé sur 4 octets) Lors de l'envoi d'une machine A vers une machine B, la machine A calcule le CRC (une valeur X). Cette valeur dépend du message et est donc différente pour chaque message. Lorsque B reçoit le message, elle effectue le même calcul et compare son résultat à la valeur CRC qu'elle a reçu. Si les deux valeurs sont égales, il n'y a aucune erreur, si elles sont différentes, il y a eu une erreur lors de la transmission.

L'en-tête Ethernet contient donc au total 18 octets.

Pour connaitre votre adresse MAC, dans Windows, en ligne de commande taper : ipconfig/all

Page 11: Fonctionnement des réseaux

11 La couche 2 ou couche de liaison Cette couche utilise un matériel courant : le commutateur ou switch. Un commutateur est un boîtier sur lequel sont présentes plusieurs prises RJ45 femelles permettant de brancher dessus des machines à l'aide de câbles à paires torsadées.

Ainsi, sur le switch est branché plusieurs machines, ou une imprimante réseau, ou un réseau local ou un autre switch… Pour envoyer la trame vers la bonne machine, le switch se sert de l'adresse MAC destination contenue dans l'en-tête de la trame. Il contient en fait une table qui fait l'association entre un port du switch (une prise RJ45 femelle) et une adresse MAC. Cette table est appelée la table CAM.

Sur la figure ci-contre, 3 machine sont branchées sur le switch, la table CAM est donc la suivante : port 1 : adresse MAC de l'ordinateur 23 port 2 : adresse MAC de l'ordinateur 24 port 3 : adresse MAC de l'ordinateur 25 Ainsi quand la machine 23 voudra envoyer une trame à la machine 25, le switch lira l'adresse de destination et saura vers quel port envoyer la trame.

La table CAM du switch va être fabriquée de façon dynamique. Cela veut dire que le switch va apprendre, au fur et à mesure qu'il voit passer des trames, quelle machine est branchée à quel port. De plus, ces informations ont une durée de vie (TTL de la table CAM (Time To Live)), ainsi la table CAM sera mise à jour régulièrement et les données les plus anciennes seront effacées. Ainsi, la table CAM du switch se remplira ou se mettra à jour après chaque réception d'une trame, et elle se videra quand elle n'aura pas reçu de trame depuis longtemps.

Page 12: Fonctionnement des réseaux

12 La couche 2 ou couche de liaison Pourquoi appelle-t-on ce matériel un commutateur ? Imaginons dans l'exemple précédent, que les machines 23 et 25 parlent en même temps à la 24, dans ce cas, les deux messages vont arriver en même temps, il y aura collision. En fait, le switch possède une mémoire dans laquelle il peut stocker une ou plusieurs trames quand il les reçoit. Il ne renvoie cette trame que si la paire de transmission de la machine à qui elle est destinée est libre. Ainsi, quand il a deux trames à envoyer sur la même paire de transmission, il envoie la première, puis la seconde. Il n'y a alors pas de collision. C'est donc bien une commutation, le fait d'aiguiller une trame vers un port.

A lire chez soi pour aller plus loin. Les switch ont acquis des fonctionnalités dont une très répandue : les VLANs. VLAN ou Virtuel LAN est un réseau local virtuel. Un VLAN est la capacité de séparer des ports d'un switch dans des réseaux différents. Cela revient à séparer certains ports d'un switch. Ils ne pourront donc plus communiquer ensemble.

Dans l'exemple ci-contre, le switch est coupé en deux morceaux (en deux VLANs). Un pour les trois machines de gauche et un autre pour les trois de droite. Ainsi, les machines connectées aux ports appartenant au VLAN vert ne peuvent communiquer qu'avec le VLAN vert. Et de même pour les machines connectées aux ports appartenant au VLAN rouge. Par contre, il est impossible pour une machine connectée au VLAN vert de communiquer avec une machine connectée au VLAN rouge.

Quel intérêt ? Imaginons que nous ayons à gérer une école, avec une administration, 100 enseignants et 1000 élèves. Nous avons alors plusieurs switchs répartis dans l'école. Des gros switchs de 256 ports ! (on appelle cela souvent des châssis.) Il est intéressant de pouvoir segmenter ces switchs pour séparer les trois populations, pour que les élèves n'aient pas accès au réseau administratif ou à celui des enseignants. Plutôt que d'acheter 25 petits switchs de 48 ports, on en achète 5 gros de 256 ports.

Page 13: Fonctionnement des réseaux

13 La couche 3 ou couche réseau Le rôle de la couche 3 est d'interconnecter les réseaux. Cela permettra d'envoyer un message d'un réseau à un autre. Internet est un énorme ensemble de réseaux collés les uns aux autres. La couche 3 va donc me permettre de joindre n'importe quel réseau sur Internet, en passant à travers d'autres réseaux. Ma connexion à une machine sur un autre réseau se fera à travers des réseaux, de proche en proche. On peut déterminer par quels réseaux on passe pour afficher sur son ordinateur un site. Sous Windows, ouvrez l'invite de commande et taper : tracert suivi de l'adresse du site. ex : tracert fr.openclassrooms.com Pour pouvoir se connecter à un autre réseau, nous devons l'identifier, c'est le rôle de l'adresse IP. Une adresse IP est en fait l'adresse du réseau ET de la machine, elle est codée sur 32 bits soit 4 octets. Pour "simplifier" sa lecture par les humains, elle est écrite en décimal pointée. Les 4 octets sont séparés sous forme de 4 chiffres décimaux allant de 0 à 255. ex : 196.168.0.1 Dans cette adresse, une partie représente l'adresse réseau, une autre partie représente l'adresse machine. Comment déterminer quelle partie représente quoi ? C'est le rôle du masque de sous-réseau, ce dernier est inséparable de l'adresse IP. Dans le masque de sous-réseau, les bits à 1 représentent la partie réseau (NetID) et donc ceux à 0 représente la partie machine de l'adresse IP (HostID). Ex : 192.168.0.1 associé au masque 255.255.0.0

Ce qui donne en binaire : 192.168.0.1 11000000.10101000.00000000.00000001 255.255.0.0 11111111.11111111.00000000.00000000 Dans cet exemple la partie réseau de l'adresse est 192.168, la partie machine est 0.1

Rq. Dans un masque en binaire, les 1 sont à gauche et les 0 à droite, on ne peut pas mélanger les 0 et 1. Ainsi pour les masques on retrouve toujours les mêmes valeurs : 00000000 soit 0, 10000000 soit 128, 11000000 soit 192, 11100000 soit 224 , 240, 248, 252, 254, 255 etc… la masque 255.255.173.0 est donc incorrect ainsi que 255.128.255.0 car il mélange les 0 et les 1

Page 14: Fonctionnement des réseaux

14 La couche 3 ou couche réseau

Que se passe-t-il si le masque est 255.255.240.0 ? Transformons en binaire. 192.168.0.1 -> 11000000.10101000.00000000.00000001 255.255.240.0 -> 11111111.11111111.11110000.00000000 Dans ce cas la coupure imposé par le masque se fait en plein milieu d'un octet. Mais alors quelles sont les adresses possibles ? On sait que la partie réseau doit rester identique (sinon les machines n'appartiennent pas au même réseau) , ainsi toutes les machines ont leur partie réseau égale à : 11000000.10101000.0000 Par contre, les bits de la partie machine de l'adresse vont pouvoir varier pour toutes les machines du réseau. Ces adresses machines vont varier de : 0000.00000000 à 1111.11111111 11000000.10101000.00000000.00000000 -> 192.168.0.0 11000000.10101000.00000000.00000001 -> 192.168.0.1 11000000.10101000.00000000.00000010 -> 192.168.0.2 11000000.10101000.00000000.00000011 -> 192.168.0.3 ... 11000000.10101000.00001111.11111110 -> 192.168.15.254 11000000.10101000.00001111.11111111 -> 192.168.15.255

Pour aller plus loin ….

Combien d'adresse possibles dans le réseau étudié dans l'exemple précédent ? Rappelez-vous, si un bit est disponible, on obtient 2 possibilités (0 ou 1), si 2 bits sont disponibles on obtient 4 possibilités : 00, 01, 10, 11 (soit 22) Dans notre cas, il y a 12 bits disponibles, soit 212 = 4096 adresses de machines disponibles dans ce réseau. (en fait 2𝑁𝑁𝑁𝑁𝑁𝑁𝑁𝑁𝑁𝑁𝑁𝑁 𝑑𝑑𝑁𝑁 0 𝑑𝑑𝑑𝑑𝑑𝑑𝑑𝑑 𝑙𝑙𝑁𝑁 𝑁𝑁𝑑𝑑𝑑𝑑𝑚𝑚𝑚𝑚𝑁𝑁) Rq. la première adresse, ici 192.168.0.0 est l'adresse du réseau lui-même, la dernière adresse : 192.168.15.255 est l'adresse de broadcast, elle est utilisée pour identifier toutes les machines du réseau, ainsi un message envoyé à cette adresse est reçu par toutes les machines. Ces deux adresses ne sont pas utilisées dans le réseau.

Page 15: Fonctionnement des réseaux

15 La couche 3 ou couche réseau Comment vont communiquer les réseaux entre eux ? Grâce au protocole IP. Comme dans la communication au sein de la couche 2 (donc au sein d'un réseau local), il va falloir spécifier l'adresse IP source et l'adresse IP du destinataire. Comme pour le format (la trame) de la couche 2, le protocole IP définit lui aussi un format de message : le datagramme ou un paquet.

Adresse IP Source Adresse IP destination Données à envoyer.

En réalité, à chaque passage par une couche un en-tête est ajouté, ce mécanisme s'appelle l'encapsulation, car on encapsule un message dans un autre.

Ainsi la trame Ethernet (celui de la couche 2) contient les éléments suivants :

Adresse MAC destinataire

Adresse MAC Source

Protocole de couche 3

En-tête de couche 3

En-tête de couche 4

Données CRC

Page 16: Fonctionnement des réseaux

16 La couche 3 ou couche réseau Le routage Le routage va permettre d'envoyer un message en dehors de notre réseau. Il nécessite une liaison entre plusieurs réseaux. Comme avec le switch pour la couche 2, il existe là-aussi un matériel spécifique : le routeur. Son rôle est d'aiguiller les paquets reçus entre les différents réseaux. Le routeur possède un table dans laquelle est indiqué le prochain routeur auquel il doit envoyer le datagramme pour que celui-ci arrive à destination. C'est la table de routage. (comme la table CAM sur le switch qui s'occupe de la couche 2) La table de routage va donc lister les routeurs auxquels je peux envoyer mon datagramme pour joindre une destination donnée. La destination donnée ne va pas être une machine, mais un réseau. Si on devait indiquer un chemin pour chaque machine sur Internet, les tables de routage seraient énormes ! Le principe est d'avoir d'un côté la liste des réseaux que l'on veut joindre, et de l'autre la liste des routeurs à qui nous devons envoyer le datagramme pour joindre les réseaux. On appelle aussi ce routeur une passerelle.

Réseau à joindre passerelle

192.168.1.0 10.0.0.253

192.168.122.0 10.0.0.45

192.168.8.0 10.0.0.254

Vous pouvez obtenir votre table de routage en ligne de commande. Sous Windows, taper : route print.

Néanmoins on ne peut connaitre l'ensemble des passerelles à utiliser pour rejoindre un réseau. Si vous avez observé votre table de routage, vous remarquerez que la première ligne indique une route par défaut (0.0.0.0). Cela indique que si une adresse que je veux joindre n'appartient à aucun des réseaux indiqués dans ma table, il faudra emprunter la passerelle indiquée dans la route par défaut. Cela va régler le problème lié à la multitude de réseaux sur Internet. Il me suffira d'indiquer dans ma table une route par défaut qui permettra d'aller vers Internet et donc de joindre tous les réseaux qui y sont présents.

Page 17: Fonctionnement des réseaux

17 La couche 3 ou couche réseau Le routage

Essayons d'écrire les tables de routage d'un réseau simple Une remarque préalable le /24 indique en fait le masque de sous réseau, ici 24 indique le nombre de 1 dans le masque, soit 24, donc les 3 premiers octets ne sont que des 1, soit 255.255.255.0

Sur ce schéma, nous voyons deux réseaux, le 192.168.0.0 et le 192.168.1.0 reliés entre-eux grâce au routeur 1. Ce dernier possède une interface dans chacun des deux réseaux, il possède donc deux adresses : 192.168.0.254 dans le cas du réseau en haut 192.168.1.254 dans le cas du réseau du bas.

Ecrivons la table de routage du routeur 1. Il faut : • indiquer les réseaux auxquels ma machine est connectée • indiquer la route par défaut • indiquer tous les autres réseaux que je ne peux pas

encore joindre avec les deux étapes précédentes.

Mon routeur 1 est connecté à deux réseaux 192.168.0.0 et 192.168.1.0. Dans ce cas, il n' y a pas de route par défaut, ni d'autres réseaux à joindre. Pour obtenir les passerelles, une règle : la passerelle pour joindre un de mes réseaux est mon adresse

Réseau à joindre passerelle

192.168.1.0 192.168.1.254

192.168.0.0 192.168.0.254

Page 18: Fonctionnement des réseaux

18 La couche 3 ou couche réseau Le routage

Réseau à joindre passerelle

192.168.0.0 192.168.0.1

192.168.1.0 192.168.0.254

Mais cela ne suffit pas, il faut également que les machines sachent à qui envoyer les paquets. elles ont donc elles-aussi un table de routage. Ecrivons la table de la machine en haut à gauche en respectant les règles précédentes : • ma machine est connectée au réseau 192.168.0.0 • la route par défaut pour joindre un autre réseau

que le nôtre , ici c'est 192.168.1.0 • Il n'y a pas d'autres réseaux à atteindre. Pour les passerelles : pour joindre le réseau auquel la machine appartient, j'utilise ma propre adresse, ici 192.168.0.1 Pour joindre l'autre réseau, la machine doit utiliser une passerelle qui appartient à son propre réseau, soit la passerelle 192.168.0.254.

Page 19: Fonctionnement des réseaux

19 La couche 3 ou couche réseau Le routage Un autre exemple plus complexe que vous devrez compléter.

Page 20: Fonctionnement des réseaux

20 20 La couche 3 ou couche réseau Le routage Comme précédemment vous devez écrire la table de routage du routeur 1 et celle de la machine 192.168.0.1.

Réseau à joindre Passerelle

192.168.0.0 192.168.0.254

192.168.1.0 192.168.1.254

Défaut ou 0.0.0.0 192.168.1.253

10.0.0.0 192.168.0.253

Pour le routeur 1. La route par défaut est le chemin qui lui permettra d'accéder à internet, il doit passer par le routeur 3. Ce dernier accèdera au réseau 10.0.1.0 qui utilisera le routeur 4 pour l'amener à internet. Il reste deux réseaux à atteindre : le 10.0.0.0 et le 10.0.1.0, or le chemin par défaut permet d'accéder à ce dernier, il est donc inutile de l'indiquer dans la table. Par contre il reste à joindre le réseau 10.0.0.0 par le biais du routeur 2.

Règle importante : les passerelles indiquées dans ma table de routage appartiennent toujours à l'un de mes réseaux. Rq. Tous les réseaux qui se situent derrière la passerelle par défaut sont joignables, il est donc inutile d'indiquer comment les joindre dans la table de routage.

Pour la machine 192.168.0.1.

Réseau à joindre Passerelle

192.168.0.0 192.168.0.1

Défaut ou 0.0.0.0 192.168.0.254

10.0.0.0 192.168.0.253

Pour le routeur 2.

Réseau à joindre Passerelle

192.168.0.0 192.168.0.253

10.0.0.0 10.0.0.254

Défaut ou 0.0.0.0 192.168.0.254

Pour la machine 10.0.1.2.

Réseau à joindre Passerelle

10.0.1.0 10.0.1.2

Défaut 10.0.1.254

192.168.1.0 10.0.1.253

192.168.0.0 10.0.1.253

10.0.0.0 10.0.1.253

Page 21: Fonctionnement des réseaux

21 La couche 3 ou couche réseau Le protocole ARP

Imaginons que la machine 192.168.0.1 envoie un message vers la machine 192.168.1.2. La couche 3 voit que nous voulons envoyer un paquet à la machine 192.168.1.2. Elle va donc chercher dans sa table de routage par qui il faut passer pour envoyer ce message. en l'occurrence pour joindre le réseau 192.168.1.0 il faut utiliser la passerelle 192.168.0.254. Cette dernière est sur notre réseau, pour lui envoyer le trame je dois connaitre son adresse MAC. C'est le rôle du protocole ARP.

Ce dernier par le biais de requête ARP permet d'associer une adresse MAC à une adresse IP. Ce protocole construit dans la machine une table ARP, qui conservera les associations adresses IP / Adresses MAC. Là aussi ces informations ont une durée de vie limitée, cette table est donc dynamique et évolue au cours du temps en fonction des machines avec lesquelles je dialogue. Vous pouvez la visualiser en ligne de commande. Sous Windows, taper : arp –a Ce protocole permet le lien entre la couche 2 et la couche 3.

Il existe un autre protocole : le protocole ICMP. Ce dernier permet de contrôler les erreurs de transmission et d'aider au débogage du réseau.

Page 22: Fonctionnement des réseaux

22 Résumé On se place toujours dans le cas de la machine 192.168.0.1 qui envoie un message vers la machine 192.168.1.2. Etape 1 : la machine locale Le message est écrit, il traverse les différentes couches du modèle OSI. Au niveau de la couche 3, la table de routage indique qu'il faut envoyer la paquet à 192.168.0.254 pour sortir du réseau. La table ARP nous donne l'adresse MAC de 192.168.0.254. La trame est alors la suivante :

@MAC DEST 192.168.0.254

@MAC SRC 192.168.0.1 IP ??? IP SRC:

192.168.0.1 IP DST: 192.168.1.2

Données à envoyer CRC

Etape 2 : le switch Le switch du réseau 192.168.0.0 reçoit la trame et lit l'adresse MAC de destination (ici 192.168.0.254, l'adresse du routeur). Le switch regarde sa table CAM, et associe l'adresse MAC au port sur lequel il faut renvoyer la trame. Etape 3 : le routeur La trame arrive à la couche 2 du routeur qui lit l'adresse MAC de destination, c'est la sienne. Il enlève l'en tête Ethernet et envoie le datagramme restant à sa couche 3. Celle-ci lit l'adresse IP de destination, il cherche dans sa table de routage à quelle passerelle envoyer le paquet afin de joindre 192.168.1.2. Il lui faut l'adresse MAC, il fait donc une requête ARP. Une fois l'adresse reçue, il construit le nouvel en-tête.

@MAC DEST 192.168.1.2

@MAC SRC 192.168.1.254 IP ??? IP SRC:

192.168.0.1 IP DST: 192.168.1.2

Données à envoyer

CRC

Etape 4 : le switch La trame va arriver au switch, mais cette fois il s'agit du switch du réseau 192.168.1.0/24 qui n'est pas le même que le premier. Il va regarder l'adresse MAC de destination et aiguiller la trame vers la machine 192.168.1.2. Etape 5 : la machine 192.168.1.2 La machine 192.168.1.2 va recevoir la trame en couche 2 et va lire l'adresse MAC de destination. C'est la sienne. Elle va donc lire la suite de l'en-tête et renvoyer le datagramme contenu dans la trame à la couche 3, c'est-à-dire au protocole IP. La couche 3 reçoit le datagramme et lit l'en-tête. L'adresse IP de destination est la sienne, elle va donc envoyer les informations à la couche 4, qui va elle-même envoyer les informations à la couche 7 applicative. Message reçu et tous ça en quelques ms…

Page 23: Fonctionnement des réseaux

23 Pour les plus matheux d'entre vous…

Dans le cas ou la machine E veut envoyer un paquet à la machine L, vous observerez que à gauche le message : <m> à fait 3 bonds alors qu'à droite il en a fait 5, ce dernier est donc plus lent que le précédent.

Les graphes permettent une modélisation naturelle des réseaux, les nœuds étant représentés par des sommets et les liens par des arcs ou des arêtes. La théorie des graphes permet de modéliser par des problèmes algorithmiques les problèmes liés à la transmission des données.

Ainsi l'algorithme de Dijkstra (1959) permet de trouver les plus courts chemins dans un graphe entre 2 sommets. Cet algorithme permet de mettre à jour la table de routage uniquement en fonction de celle de ses voisins et des liens qui le relient à eux. Dans le cas d'un réseau comme internet, le gain de temps de communication et d'occupation du réseau est considérable. L'algorithme de Dijkstra est utilisé par les enquêteurs de la série NUMB3RS, dans l'épisode 23 de la saison 3.

Page 24: Fonctionnement des réseaux

24 La couche 4 ou couche de transport Cette couche permet le lien entre une application sur un ordinateur et le réseau représenté par la couche 3.

Lors d'une connexion sur un site web, vous utilisez sur votre machine un client web : le navigateur, ce dernier se connecte au serveur du site que vous désirez consulter. Vous établissez donc une connexion client/serveur entre votre navigateur et le serveur web du site. Il existe d'autres applications clients : client de messagerie, client FTP etc.. Le serveur quant à lui, comme son nom l'indique offre un service : mise à disposition de page web, envoi et réception de mails…

Le rôle de la couche 4 est de gérer les connexions applicatives, c'est-à-dire de faire dialoguer, non pas des machines mais des applications entre elles.

Le port Le port correspond à l'adresse d'une application sur la machine. Pour observer les ports sur votre ordinateur, en ligne de commande taper : netstat –an Ci-dessous une ligne de résultat :

tcp6 0 0 :::80 :::* LISTEN 21800/apache2

Que signifie cette ligne ? Elle indique que le port 80 est actuellement en écoute et correspond à l'application apache2 qui est un serveur web.

Les ports sont codés en décimal sur deux octets, soit 216 = 65536 valeurs possibles. Certains ports sont réservés à des applications réseau, ainsi le port 80 est réservé aux applications web, le port 25 au mail etc… Ces ports réservés correspondent aux applications du serveur. Les applications clients ont des ports donnés aléatoirement, au dessus de 1024 par le système d'exploitation.

Application Port réservé

web 80

mail 25

proxy 8080

https 443

ftp 20/21

Page 25: Fonctionnement des réseaux

25 La couche 4 ou couche de transport

Exemple : Nous nous connectons avec notre navigateur vers un site. Au moment où notre navigateur envoie la requête, un port va être demandé au système d'exploitation pour la connexion vers le site en question. Le système lui attribue le port 43645 (aléatoirement, ce port n'a aucune signification particulière). Désormais, l'application navigateur web est en écoute sur le port 43645 pour pouvoir recevoir les réponses que va lui envoyer le site consulté. La requête est envoyée sur le port 80 du de ce site (là, le port n'est pas aléatoire puisqu'on s'adresse à un serveur qui a un port réservé) qui va recevoir la requête, la traiter, et répondre à notre navigateur sur le port 43645.

Le port

tcp4 0 10.8.98.13:56681 92.243.25.239:80 TIME_WAIT

Ici ma machine d'adresse 10.8.98.13 est en écoute sur le port 56681 pour communiquer avec le 92.243.25.239 sur son port 80. Un port a bien été ouvert pour mon application cliente qui est en fait mon navigateur web Firefox.

Pour gérer cette communication, il existe deux protocoles : • Un protocole fiable mais sans nécessité de rapidité : c'est le protocole TCP. Il est utilisé dans une très grande majorité des applications d'Internet, car bon nombre d'entre elles ont besoin que chaque paquet émis soit reçu coûte que coûte ! Ce sont notamment les applications comme le web, la messagerie, le ssh, beaucoup de jeux en ligne, etc. • Un protocole rapide sans nécessité de fiabilité : le protocole UDP Il est utilisé dans les applications de streaming radio ou télé sur internet, la téléphonie sur internet (VoIP)

Page 26: Fonctionnement des réseaux

26 La couche 4 ou couche de transport Le protocole UDP UDP est un protocole rapide, mais peu fiable. Les paquets sont envoyés dès que possible, mais on se fiche de savoir s'ils ont été reçus ou pas. On dit qu'UDP est un protocole non-connecté. Le format des messages : le datagramme, est très simple.

Port Source Port Destination Longueur totale Checksum Données • Port source : adresse de l'application qui envoie l'information. • Port destination : adresse de l'application destinataire. • Longueur totale sur 2 octets soit 65536 bits. Néanmoins il est très rare de voir des datagramme de plus de

512 bits, car perdre un petit datagramme est acceptable, en perdre un gros est plus gênant. • le checksum ou CRC, c'est comme pour la couche 2 un calcul qui vérifie si les données reçues sont les

mêmes que celles qui ont été envoyées.

Le protocole TCP Avec TCP, le principe est d'acquitter chaque octet d'information reçue. Cette fois le datagramme est plus fourni pour parvenir à suivre une connexion correctement.

Les trois premiers paquets envoyés ne serviront qu'à établir la communication. Comme le allo, ce seront des paquets vides qui ne sont là que pour s'assurer que l'autre veut bien parler avec nous.. Dans ces paquets vides (sans données) on place une information pour indiquer si c'est une demande de connexion, une réponse ou un acquittement ( juste pour dire qu'on a bien reçu les informations) On utilise pour cela des drapeaux ou flags. Le premier paquet contient le flag SYN, c'est une demande de synchronisation (comme le allo au téléphone) En retour le serveur qui reçoit une demande SYN va envoyer un flag ACK (acquittement) mais il va également demander si le client veut bien communiquer avec lui, il envoie donc également un SYN. Le client accepte la demande de connexion et renvoie vers le serveur un paquet avec le flag ACK

RQ. : Quand on veut communiquer en TCP, on n'établit pas une, mais deux connexions. TCP considère qu'il va y avoir une communication dans un sens, et une communication dans l'autre sens. Il établit donc une connexion pour chaque sens de communication.

Page 27: Fonctionnement des réseaux

27 La couche 4 ou couche de transport Le protocole TCP

La suite de la communication est maintenant assez simple. Tout paquet échangé après l'établissement de la connexion n'aura que le flag ACK positionné pour acquitter la réception des paquets précédents.

Une fois que les applications ont terminé leur communication, il faut encore fermer la connexion. On ne peut pas laisser la connexion indéfiniment ouverte ! Si nous ne les libérions jamais, nos ports seraient rapidement tous utilisés. Le flag utilisé est le flag FIN.

Ainsi le client envoie un ACK qui justifie de l'acquittement de réception du paquet précédent lors de la communication et envoie le flag FIN. Le serveur répond en envoyant un ACK pour dire qu'i a bien reçu cette demande de FIN, et envoie lui aussi le flag FIN. Le client répond au serveur en envoyant le flag ACK C'est seulement à ce moment que la connexion est fermée complètement et que les ressources des machines sont libérées

Le format de l'en-tête TCP : le segment TCP, est le suivant :

Port Source Port Destination Flags Checksum Données

On retrouve les mêmes informations que pour le datagramme UDP avec en plus les flags : SYN, ACK FIN. Il en existe d'autres : RST notamment qui vérifie la cohérence de la connexion. Exemple : si j'envoie un paquet SYN sur le port d'une machine qui est fermé, celle-ci doit me répondre RST pour me signifier que le port demandé n'est pas en écoute.

Page 28: Fonctionnement des réseaux

28 La couche 4 ou couche de transport En juin 2012, c'est posé le problème de la pénurie d'adresse sur internet. En effet, une adresse IP étant codé sur 4 octets, soit 32 bits soit 232 valeurs (environ 4 milliards) A l'échelle d'internet et de sa croissance, 4 milliards c'est peu. A la date précédente, la totalité des plages d'adresse étaient utilisées. Pour résoudre ce problème deux possibilités : changer de protocole IP, c'est d'ailleurs le cas puisqu'on est entrain de passer au protocole IPv6, et utiliser la NAT. La NAT part du constat suivant : certains réseaux sont privés et n'ont donc pas besoin d'être joints par internet (ce sont donc de simple client pas des serveurs), il n'est donc pas nécessaire de leur fournir une adresse IP publique. On donne à ces machines une adresse IP privée. C'est donc une certaine plage d'adresses réservée pour une utilisation privée et donc pas utilisée sur internet. Ex : regardez l'adresse IP de votre machine, elle commence souvent par 192.168.x.x ou 10.x.x.x.

La NAT va permettre d'associer x adresses privées à une seule adresse publique, ainsi on peut connecter x machines en n'utilisant qu'une seule adresse publique. On économise des adresses.

Sans entrer trop dans le détail, il faut savoir que la NAT permet de rajouter une information dans l'en-tête de la couche 4, en indiquant le port source à l'origine de la requête, ainsi un serveur web qui répond à une demande de connexion saura sur quel port est la machine qui a envoyé la requête

Page 29: Fonctionnement des réseaux

29 Les services réseau Le serveur DHCP

Le protocole DHCP (Dynamic Host Configuration Protocol) permet de distribuer des adresses IP. Le serveur DHCP a donc pour charge de donner une adresse IP à une machine. Ce serveur est dans le même réseau que la machine. L'obtention d'une adresse IP par le serveur DHCP suit la logique suivante :

Au début, la machine n'ayant aucune adresse IP, elle envoie une trame DHPDISCOVER à toutes les adresses de son réseau Rq. elle utilise pour cela une adresse MAC particulière : l'adresse de broadcast. Le serveur DHCP reçoit cette trame et renvoie une proposition d'adresse IP, ainsi qu'un masque et une passerelle à la machine (DHCPOFFER). Le client (la machine) répond par un DHCPREQUEST pour prévenir que l'offre est acceptée. Le serveur DHCP dont l'offre a été acceptée valide la demande et envoie un DHCPACK qui valide l'allocation du bail. En effet, l'attribution de l'adresse IP a une durée de vie limitée, il faut donc après expiration en redemander une. Les serveurs DHCP gardent en mémoire les adresses distribuées, associées aux adresses MAC, ainsi on peut conserver longtemps la même adresse alors que celle-ci a en fait été renouvelée.

Le service DNS Le DNS ou Domain Name System se charge de convertir le nom du site web demandé en adresse IP. Lors d'une demande de connexion vers un site, le serveur DNS de votre machine interroge d'autres serveurs DNS pour connaitre l'adresse IP correspondant au nom du site que vous avez entré dans votre barre d'adresse. Le système de noms de domaine est géré par un organisme américain appelé l'ICANN. Celui-ci dépend directement du Département du Commerce des États-Unis. L'ICANN est responsable de la gestion des 13 serveurs DNS qui gèrent la racine du DNS. Ces 13 serveurs connaissent les adresses IP des serveurs DNS gérant les TLD (les .fr, .com; org, etc.) Pour des raisons de sécurité, ces serveurs sont hautement sécurisés et dupliqués en différents endroits d'internet. L'ICANN délègue ensuite les domaines de premier niveau à divers organismes. Pour l'Europe, c'est le RIPE qui délègue lui-même à L'AFNIC qui est responsable du domaine .fr (ainsi que des extensions correspondantes à la France d'outre-mer)

Page 30: Fonctionnement des réseaux

30 Logiciels pour le réseau : Wireshark est un programme qui permet d'écouter ce qui se passe sur le réseau ( c'est un sniffer) http://www.wireshark.org/ Packet Tracer est un logiciel permettant la construction de réseau virtuel : http://prdumetz.free.fr/ISN/cisco.exe

Sitographie Largement utilisé dans ce cours : • http://fr.openclassrooms.com/informatique/cours/apprenez-le-fonctionnement-des-reseaux-tcp-ip/l-

histoire-d-internet • http://webia.lip6.fr/~lepape/ens/resap/cours/cours1.pdf • http://machaon.fr/isn/reseaux/cours2.pdf • http://gesi.83.free.fr/Telechargements/ISN/Reseaux/R%C3%A9seaux.pdf Un petit mot sur Dijkstra • http://fr.wikipedia.org/wiki/Algorithme_de_Dijkstra • http://fr.openclassrooms.com/informatique/cours/le-pathfinding-avec-dijkstra