Fin Réseau

This commit is contained in:
Béranger 2021-10-01 09:41:37 +02:00
parent ca4b76002c
commit 4f3e8ecc70
5 changed files with 114 additions and 4 deletions

View file

@ -55,7 +55,7 @@ Il s'agit du composant majeur et critique de l'OS. Il impose ainsi une architect
Le KernelLand est la partie ayant le plus de privilèges dans la machine, d'ou le risque d'un user _root_ qui obtient tous les privilèges et peut ainsi pénétrer le Kernel land.
## Comment marche ```malloc()``` ?
## Comment marche malloc() ?
```malloc``` sert à allouer de la mémoire depuis le Userland. ```malloc``` va récupérer des pages de mémoires au niveau du kernel qu'il va pouvoir agencer comme il le souhaite en fonction des besoins de l'application.
Pour demander de la mémoire au noyau, ```malloc``` utilise un appel système.

Binary file not shown.

After

Width:  |  Height:  |  Size: 22 KiB

View file

@ -20,15 +20,14 @@ Internet est dirigé par la Internet Society, et régulé par l'IETF, Internet E
# Principes d'internet
## Avant
| Avant | Aujourd'hui
| 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
@ -68,3 +67,77 @@ Ce nouveau standard permettra de mettre fin aux problèmes de saturation d'adres
- 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.

BIN
Réseau/cours.pdf Normal file

Binary file not shown.

37
tmp.drawio Normal file
View file

@ -0,0 +1,37 @@
<mxfile host="65bd71144e">
<diagram id="EfqLVvYCwYMX3T-uRSpG" name="Page-1">
<mxGraphModel dx="1118" dy="1975" grid="1" gridSize="10" guides="1" tooltips="1" connect="1" arrows="1" fold="1" page="1" pageScale="1" pageWidth="827" pageHeight="1169" math="0" shadow="0">
<root>
<mxCell id="0"/>
<mxCell id="1" parent="0"/>
<mxCell id="7" style="edgeStyle=orthogonalEdgeStyle;rounded=0;orthogonalLoop=1;jettySize=auto;html=1;strokeColor=#000000;" edge="1" parent="1" source="2" target="3">
<mxGeometry relative="1" as="geometry"/>
</mxCell>
<mxCell id="2" value="A" style="rounded=0;whiteSpace=wrap;html=1;fillColor=none;fontColor=#000000;strokeColor=#000000;strokeWidth=3;" vertex="1" parent="1">
<mxGeometry x="280" y="520" width="90" height="80" as="geometry"/>
</mxCell>
<mxCell id="8" style="edgeStyle=orthogonalEdgeStyle;rounded=0;orthogonalLoop=1;jettySize=auto;html=1;strokeColor=#000000;" edge="1" parent="1" source="3" target="4">
<mxGeometry relative="1" as="geometry"/>
</mxCell>
<mxCell id="3" value="MTU = 1500B" style="ellipse;shape=cloud;whiteSpace=wrap;html=1;fillColor=none;fontColor=#000000;strokeColor=#000000;strokeWidth=3;" vertex="1" parent="1">
<mxGeometry x="190" y="250" width="270" height="180" as="geometry"/>
</mxCell>
<mxCell id="12" style="edgeStyle=orthogonalEdgeStyle;rounded=0;orthogonalLoop=1;jettySize=auto;html=1;strokeColor=#000000;" edge="1" parent="1" source="4" target="10">
<mxGeometry relative="1" as="geometry"/>
</mxCell>
<mxCell id="4" value="MTU = 1200B" style="ellipse;shape=cloud;whiteSpace=wrap;html=1;fillColor=none;fontColor=#000000;strokeColor=#000000;strokeWidth=3;" vertex="1" parent="1">
<mxGeometry x="500" y="250" width="270" height="180" as="geometry"/>
</mxCell>
<mxCell id="5" value="B" style="rounded=0;whiteSpace=wrap;html=1;fillColor=none;fontColor=#000000;strokeColor=#000000;strokeWidth=3;" vertex="1" parent="1">
<mxGeometry x="980" y="480" width="90" height="80" as="geometry"/>
</mxCell>
<mxCell id="11" style="edgeStyle=orthogonalEdgeStyle;rounded=0;orthogonalLoop=1;jettySize=auto;html=1;strokeColor=#000000;" edge="1" parent="1" source="10" target="5">
<mxGeometry relative="1" as="geometry"/>
</mxCell>
<mxCell id="10" value="MTU = 1500B" style="ellipse;shape=cloud;whiteSpace=wrap;html=1;fillColor=none;fontColor=#000000;strokeColor=#000000;strokeWidth=3;" vertex="1" parent="1">
<mxGeometry x="890" y="250" width="270" height="180" as="geometry"/>
</mxCell>
</root>
</mxGraphModel>
</diagram>
</mxfile>