# Réseau

# L'Internet

Il s'agit d'une interconnexion de systèmes autonomes, AS (Ensemble de réseaux gérés par la même entité et interconnectés entre eux). Par exemple, Orange est constitué de deux AS majeurs, un national et un international.

**Internet est gros.**

Internet est dirigé par la Internet Society, et régulé par l'IETF, Internet Engineering Task Force.

# Internet et son modèle

| Application
| :---------------: |
| TCP/UDP   - Segment TCP ou Paquet UDP  Transport - couche 4 |
| Paquet IP - Datagramme  Réseau -  couche 3 |
| Ethernet/WiFi - Physique - couche 1 |
|  Signal électrique |

# Principes d'internet

## Avant

| Avant | Aujourd'hui
| :--------------- |---------------:|
| Medium partagé | Commutateur et Full-Duplex
| Méthode d'accès - CSMA-CD | CSMA-CD utile ?
| 10 Mbits/s | Auto-apprentissage
| Temps réel ? Contraintes temporelles | Spanning tree

## Principe du WIFI

Mode de fonctionnement

- Ad-hox/ sans infrastructure
- Avec Infrastructure

Méthode d'accès

- Pourquoi ne peut on pas faire de full-duplex
- CSMA-CD possible ?

Les problèmes possibles

- Exemple de la station cachée
- Exemple de la station exposée

# IPv6

Ce nouveau standard permettra de mettre fin aux problèmes de saturation d'adressage. On passe ici par une notation hexadécimale sur 16 octets. Il y a des groupements de deux octets par deux octets, séparés par :. Par exemple
> 2001:0db8:0000:85a3:0000:0000:ac1f:8001

## Simplificatino de la notation

**Suppression des suites de zéros**

> 2001:0db8::85a3:::ac1f:8001

**Suppression des zéros non significatifs**

> 2001:db8::85a3:::ac1f:8001

## Différents types d'adresses

- Adresses globales unicast
- Adresses anycast "Une machine parmi d'autres"
- Adresses Site Local
- Adresses Link Local
- Adresses Multicast

# Path MTU Discovery

## Problème de base

A veut communiquer avec B. MTU = Maximum transmission unit.

<p align="center">
  <img src="./Images/path_mtu_discovery.png">
</p>

On a des réseaux dans le chemins qui vont proposer des tailles maximum de transport différentes. Il pourrait donc y avoir conflit au niveau de l'acheminement des paquets. MTU discovery permet de déterminer la taille maximum des paquets à envoyer entre deux machines données.

## Fonctionnement

La découverte du MTU d'un chemin donné fonctionne en positionnant le bit DF (Don't Fragment) de l'en-tête IP sur tous les paquets sortants. Le long du chemin emprunté par un tel paquet, si l'un des hôtes traversés a un MTU plus petit que la taille du paquet, ce dernier sera rejeté et un message ICMP, contenant le MTU de l'hôte qui le génère, sera envoyé afin d'informer la source. Ce message est :

- type 3 / code 4, "Destination Unreachable" / "Fragmentation Needed and Don't Fragment was Set" en ICMP
- type 2 / code 0, "Packet Too Big" en ICMPv6.

La source adapte alors la taille du prochain paquet en fonction du MTU reçu dans le message ICMP. Le processus est répété jusqu'à ce que la source parvienne à atteindre la destination.

Si le MTU du chemin change après que la connexion a été établie et se trouve être plus petit que celui déterminé précédemment, le premier paquet trop grand à emprunter le chemin causera l'envoi d'un nouveau message ICMP, relançant le processus de PMTUD. De même, durant la connexion, la source peut périodiquement resonder le chemin pour découvrir si celui-ci permet désormais un MTU plus grand.

Bien que rares, ces cas de figure peuvent être provoqués par des changements de route, dus aux protocoles de routage dynamiques ou à une intervention humaine sur le réseau.

# ICMP

Protocole qui permet de communiquer via IP dans internet. Ce protocole est véhiculé par IP et permet d'apporter un contrôle de ce dernier. En revanche, il ne permet en aucun cas d'offrir les garanties suivantes :

- Pas de chemin fixe
- Pas de délai maximum
- Pas de fiabilité

On parle de service Best Effort

ICMP permet en fait d'apporter un contrôle d'IP en permettant sa configuration, la mise en place des ressources et d'un chemin associé à une communication, et la vérification du bon acheminement des datagrammes.

Plusieurs types de messages associés au protocole :

- echo  request/reply, timestamp request/reply
- Destination unreachable
- Redirect

# ARP - Address Resolution Protocol

Permet la mise en place de la correspondance des adresses IP et des adresses MAC des machines sur un réseau donné. Cet envoi passe par un broadcast de trame ARP comprenand l'adresse IP de destination. Chacune des machines du réseau va recevoir cette requête et si l'une d'elle reconnaît son IP. Ainsi, chacune des machines va mettre à jour fréquemment sa table ARP pour pouvoir par la suite communiquer directement de machine à machine.

# DNS - Domain Name Server

Ce service se base sur l'utilisation de _Fully Qualified Domain Name_

- www.enseeiht.fr | _Nom absolu_
  - www | _hôte_
  - enseeiht.fr | _nom de domaine_
    -le nom de domaine peut être subdivisé : bde.enseeiht.fr

Ce service permet la correspondance entre des adresses IP et des noms humainement intelligibles. Le dialogue se fait via un résolveur.

# DHCP

Mécanisme d'autoconfiguration des adresses IPv4 dans un réseau.

# IPv6
 
En IPv6 c'est un petit peu différent. On peut récupérer une IP à partir de l'adresse physique. Il existe cependant une nouvelle verison DHCPv6 qui permet de réaliser une autoconfiguration des adresses IP.

# Le transport | TCP/UDP

L'objectif de la couche de transport est de procéder à un multiplexage applicatif. Cela permet de connaitre les ports sources et destination des machines (i.e. l'application concernée), d'opérer via un mode client-serveur.

La partie concernant la data applicative d'un paquet TCP est appelée segment. La numérotation des segments se fait sur 4Bits. Cette numérotation permet le réordonnement de la data a la réception.

Il y a des numéros dans les flags d'ACK pour indiquer les prochains octets attendus en réception et orienter la fin de l'envoi.

