Architecture d'un réseau
========================
<img class="r-stretch centre image-responsive" src="data/switch2.jpg" alt="un switch" width="300">
<p class="legende">
<small>
<strong>Un switch à l'échelle d'une organisation</strong>
<br>Crédits : Switch!, par <a target="_blank" rel="noopener noreferrer" href="https://www.flickr.com/photos/83711730@N06">Andrew Hart</a>, <a target="_blank" rel="noopener noreferrer" href="https://creativecommons.org/licenses/by-sa/2.0/?ref=openverse">CC BY-SA 2.0</a>, via Flickr.
</small>
</p>
*Ce document a été créé en collaboration avec ChatGPT 4o (version du 29/05/2024), qui a été utilisé pour transposer le cours correspondant (accessible [ici](architecture-reseau)) en un diaporama. Pour voir la conversation [cliquez ici](https://chatgpt.com/share/bb04924b-d6f7-4f75-b809-642007fc9eaa).*
---
# Introduction
----
## Introduction
- Un **réseau informatique** est un ensemble de machines interconnectées.
- Exemples : Internet, réseaux locaux d'entreprises, etc.
- La plupart des réseaux sont des **sous-réseaux** d'un réseau plus grand.
---
# Les principales machines d'un réseau
----
## Réseaux locaux
- Les **réseaux locaux** sont des réseaux constitués d'un ensemble de **machines** à l'échelle d'une maison, d'une entreprise, etc.
- Machines : ordinateurs, TV, smartphones, imprimantes, box, etc.
- Les machines d'un **même réseau local** peuvent **communiquer directement entre elles**.
----
## Switch (Commutateur)
- Les machines d'un même sous-réseau sont généralement reliées par un **switch**.
- Exemple de switch:
<img class="r-stretch centre image-responsive" src="data/switch1.jpg" alt="Un switch">
<p class="legende">
<small>Crédits : <a href="https://commons.wikimedia.org/wiki/File:Switch_reseau.jpg" target="_blank">KoS</a>, Domaine public, via Wikimedia Commons.</small>
</p>
----
## Switch (Commutateur)
**Deux réseaux locaux**
<img class="r-stretch centre image-responsive" src="data/reseaux_1_2.png" alt="Deux réseaux locaux">
- Le switch S1 interconnecte les machines M1, M2 et M3.
- Le switch S2 interconnecte les machines M4, M5 et M6.
- Les machines de réseaux différents ne peuvent pas communiquer directement.
----
## Routeurs
- Pour interconnecter deux réseaux, on utilise des **routeurs**.
- Exemple de routeur:
<img class="r-stretch centre image-responsive" src="data/routeur.jpg" alt="Un routeur Cisco CRS-1 (2004)">
<p class="legende">
<small>Un routeur Cisco CRS-1 (2004)</strong>
<br>Crédits : Photo fournie par Cisco Systems Inc., <a href="http://creativecommons.org/licenses/by-sa/3.0/" title="Creative Commons Attribution-Share Alike 3.0">CC BY-SA 3.0</a>, via <a href="https://commons.wikimedia.org/w/index.php?curid=2621637">Wikimedia Commons</a></a>.</small>
</p>
----
## Routeurs
**Deux réseaux locaux interconnectés**
<img class="r-stretch centre image-responsive" src="data/reseaux_1_et_2.png" alt="Deux réseaux interconnectés par un routeur">
- Le routeur A appartient aux *deux* réseaux (il aura une adresse IP dans chacun des deux réseaux)
- Les machines du premier réseau peuvent communiquer avec celles du second via le routeur.
----
## Un réseau de réseaux
- Les réseaux locaux sont généralement des **sous-réseaux** d'un réseau plus grand :
<img class="r-stretch centre image-responsive" src="data/mini_internet_bis.png" alt="un mini réseau Internet" id="mini-internet">
- Les routeurs appliquent des algorithmes pour déterminer le meilleur chemin pour envoyer les paquets au destinataire (programme de Terminale)
---
# Adresses IP
----
## Introduction aux adresses IP
- Chaque (sous-)réseau possède une adresse IP appelée **adresse du (sous-)réseau**.
- Les machines d'un réseau possèdent des adresses IP dépendant de celle du (sous-)réseau.
----
## Adresses IPv4
- **IPv4**: suite de 4 octets (32 bits): `X1.X2.X3.X4`.
- Exemple d'adresse IPv4:
<img class="r-stretch centre image-responsive" src="data/Adresse_Ipv4.svg" alt="Un exemple d'adresse IPv4">
<p class="legende">
<small>Crédits : <a href="https://commons.wikimedia.org/wiki/File:Adresse_Ipv4.svg">Star Trek Man</a>, Public domain, via Wikimedia Commons</small>
</p>
----
## Adresses IPv4
- Limitation d'IPv4 : 4 294 967 296 adresses distinctes.
- Introduction progressive d'une nouvelle norme **IPv6** :
- adresse sur 128 bits
- soit 340 milliards de milliards de milliards d'adresses possibles
----
## Structure d'une adresse IP(v4)
- Pour chaque adresse, une partie des bits représente la partie *réseau*, l'autre partie représente la partie *machine*.
- Exemple de découpage avec les trois premiers octets pour la partie *réseau* :
| réseau | . | machine |
| ---: | --- | :--- |
| 11000001 00110111 11011101 | . | 00111110 |
| 193.55.221 | . | 62 |
- Toutes les machines d'un **même réseau** ont la **même partie *réseau*** dans leur adresse IP
----
## Masque de sous-réseau
- **Masque de sous-réseau**: détermine la limite entre les parties *réseau* et *machine*.
- Masque = suite de 32 bits :
- une série de `1` pour fixer la partie *réseau*
- suivi d'une série de `0` pour la partie *machine*
- Exemple de masque :
- `11111111.11111111.11111111.00000000`
- souvent exprimé en décimal : `255.255.255.0`
- ici, la partie réseau correspond aux 3 premiers octets
----
## Masque de sous-réseau
- Concrètement :
- Si M1 possède l'adresse `192.168.1.1`
- dans un réseau dont le masque est `255.255.255.0`
- alors :
- la partie réseau correspond aux trois premiers octets `192.168.1`
- le dernier octet sert à identifier les différentes machines connectées sur ce réseau
- Les autres machines de ce réseau ont une adresse IP qui commence par `192.168.1` : par exemple
- @IP de M2 : `192.168.1.2`
- @IP de M3 : `192.168.1.5`
----
## ✏️ Ai-je compris ?
<img class="r-stretch centre image-responsive" src="data/mini_internet_bis.png" alt="un mini réseau Internet" id="mini-internet">
<div style="font-size:0.8em">
✍️ **Question 1** : M4 a pour @IP `192.168.2.3`, le réseau auquel elle appartient a pour masque `255.255.255.0`. Donnez une adresse possible pour M5 et M6.
✍️ **Question 2** : M20 a pour @IP `195.32.12.17` dans un réseau dont le masque est `255.255.0.0`. Donnez une adresse possible pour les autres machines du réseau.
</div>
----
## Notation CIDR
- **Notation CIDR**:
- simplifie l'écriture des masques.
- un slash suivi du nombre de bits de la partie réseau
- Exemple : `/24` pour `255.255.255.0` (ou `11111111.11111111.11111111.00000000`)
----
## ✏️ Ai-je compris ?
✍️ **Question 1** : Déterminez la notation CIDR du masque `255.255.0.0`.
✍️ **Question 2** : Déterminez la notation CIDR du masque `255.255.255.240`.
---
# Adresses au sein d'un réseau
----
## Adresses au sein d'un réseau
- Dans un réseau, il y a un nombre fini d'adresses IP possibles (qui dépend du masque)
- Il y a toujours :
- *une* adresse réseau
- *une* adresse de diffusion : pour envoyer un message à *toutes* les machines du réseau
- *toutes les autres* adresses sont disponibles pour les machines
----
## Adresse réseau
- **Adresse réseau** = @IP dont tous les bits de la partie *machine* sont à `0`.
- Exemple: si `193.55.221.62` (`11000001.00110111.11011101.00111110` en binaire) est l'@IP d'une machine d'un réseau dont le masque est `/24`, alors l'adresse du réseau en question est :
- `11000001.00110111.11011101.00000000` (8 derniers bits à zéro)
- `193.55.221.0` en binaire
- Dans ce cas le réseau en question se note `193.55.221.0 /24` (l'adresse réseau suivie du masque)
----
## Adresse réseau (suite)
- Au lieu d'écrire « *une machine d'@IP `193.55.221.62` dans un réseau dont le masque est `/24`* », on écrit plus synthétiquement : « *une machine d'@IP `193.55.221.62 /24`* » (on précise le masque)
- Comment trouver l'adresse réseau si on connaît l'@IP d'une machine et le masque du réseau ?
En effectuant un **ET** logique entre les deux !
- Exemple : machine d'adresse `193.55.221.62 /24`
```
11000001.00110111.11011101.11111000 <-- 193.55.221.62
ET 11111111.11111111.11111111.00000000 <-- 255.255.255.0
-----------------------------------
11000001.00110111.11011101.00000000 <-- adresse réseau
193.55.221.0
```
- S'avérera très utile lorsque le masque n'est pas `/24`, `/16`, `/8`
----
## Adresse de diffusion
- **Adresse de diffusion** ou **broadcast** = @IP dont tous les bits de la partie *machine* sont à `1`.
- C'est celle utilisée pour envoyer des paquets à *toutes* les machines du réseau.
- Exemple : L'adresse de diffusion du réseau `193.55.221.0 /24` s'obtient en mettant les 8 bits de la partie *machine* à `1` :
- @ diffusion = `11000001.00110111.11011101.11111111`
- @ diffusion = `193.55.221.255` en décimal
----
## Plage d'adresses machines
- La **plage d'adresses machines** est l'**ensemble des adresses que peut prendre une machine** sur le réseau :
- @ réseau et @ broadcast prises : il reste toutes les autres !
- 1ère adresse machine possible : celle qui suit l'@ réseau
- Dernière adresse machine possible : celle qui précède l'@ broadcast
- Exemple : Sur le réseau `193.55.221.0 /24`, le dernier octet correspond à la partie machine donc :
- @ réseau : `193.55.221.0`
- @ broadcast : `193.55.221.255`
- il reste 254 @ machines : de `193.55.221.1` à `193.55.221.254`
----
## ✏️ Ai-je compris ?
✍️ **Question 1** : Une machine d'adresse IP `112.133.102.41` appartient à un réseau dont le masque est `/24` (c'est-à-dire `255.255.255.0`).
1. Donner en notation binaire et en notation décimale, l'adresse réseau et l'adresse de diffusion du réseau.
2. Combien de machines peut-on connecter dans ce réseau ? Quelle est leur plage d'adresses ?
✍️ **Question 2** : Combien de machines peut-on connecter sur un réseau dont le masque est `/16` ?
----
### Comment vérifier que deux machines appartiennent au même réseau ?
- **Situation** : M1 veut envoyer un message à M4 :
- M1 regarde si M4 est dans le même réseau qu'elle
- Si oui : envoi direct
- Si non : envoi à un routeur (appelée *passerelle*)
- Comment M1 peut savoir si M4 est dans le même réseau ?
- M1 détermine son @ réseau en faisant un **ET** logique entre son @IP et le masque
- M1 fait un **ET** logique entre l'@IP de M4 et le masque
- Si les deux résultats coïncident : M4 est dans le même réseau (sinon ce n'est pas le cas)
---
# Bilan
----
## Bilan
- Réseau informatique : ensemble d'équipements interconnectés.
- **Switch** : connecte les machines d'un réseau local.
- **Routeur** : connecte des réseaux différents.
- **Adresses IP** : identifient les machines et réseaux pour les communications
- **Masque de sous-réseau** : détermine la limite entre *réseau* et *machine*.
- **CIDR** : notation simplifiée des masques.
----
## Bilan
- **Adresse réseau** : identifie le réseau.
- **Adresse de diffusion** : envoie à toutes les machines du réseau.
- **Plage d'adresses machines** : adresses possibles pour les machines d'un réseau.
---
**Références** :
- Cours *Introduction aux réseaux* du DIU EIL de l'université de Nantes, Pierrick Passard et Salima Hamma.
- Cours de SNT sur la communication entre deux machines sur Internet : https://info-mounier.fr/snt/internet/protocole-tcp-ip.php
- Cours d'introduction aux réseaux de David Roche : https://dav74.github.io/site_nsi_prem/c16c/
---
Germain Becker, Lycée Emmanuel Mounier, Angers.
Sous licence [CC BY-SA 4.0](https://creativecommons.org/licenses/by-sa/4.0/deed.fr).
![Licence Creative Commons](https://i.creativecommons.org/l/by-sa/4.0/88x31.png)