Tutorat de programmation réseau
(Polytech'Lille, département GIS, quatrième année).
Conception et réalisation d'une pile TCP/IP.
Xavier Redon
1 Cahier des charges
Dans ce projet, votre but est d'améliorer une pile TCP/IPv6 basique.
Pour la promotion 2015, l'implantation de la pile IPv6 doit aller jusqu'aux protocoles
UDP et TCP.
2 Indications pratiques
Vous devez utiliser l'archive
http://rex.plil.fr/Enseignement/Reseau/Tutorat13.Reseau.GIS4/NetStackV2.5.tgz.
Cette archive contient la version de la pile TCP/IPv6 mise au point par les promotions
précédentes. L'architecture du projet est constituée de deux bibliothèques et d'un
programme principal.
3 Bibliothèques fournies
Trois bibliothèques sont utilisées pour construire la pile. Une bibliothèque concernant
les interfaces Ethernet virtuelles et une bibliothèque de gestion d'évenements ont déjà
été présentées dans le tutorat précédent de réalisation d'une couche liaison. Une troisième
bibliothèque permet de gérer des tableaux associatifs.
3.1 Bibliothèque de tableaux associatifs
Le but de ces tableaux est de remplacer les structures statiques de C. De nombreuses
structures seraient nécessaires pour communiquer entre les différentes couches de
la pile TCP/IP. Les tableaux associatifs remplacent ces structures.
3.2 Bibliothèque de gestion d'événements
Cette bibliothèque permet de gérer des événements déclenchés avec effet immédiat, avec
effet différé ou par une activité sur un descripteur de fichier.
3.3 Bibliothèque de gestion d'interfaces Ethernet virtuelles
Comme dans le projet précédent cette bibliothèque contient une unique fonction
permettant de créer une interface Ethernet virtuelle. Ne pas oublier les drapeaux
IFF_TAP et IFF_NO_PI lors de l'appel. Il est rappelé que la lecture et
l'écriture sur une interface TAP est triviale; les paquets sont envoyés directement
sans mention de leur taille. La création d'une interface TAP nécessite des droits
spécifiques. Pour donner ces droits à votre programme vous utiliserez le script
setcap déclaré dans le fichier super.tab des machines de TP. De la
même façon, un utilisateur normal ne peut pas configurer une interface réseau;
utilisez à nouveau la commande super mais en appelant cette fois le script
ifconfig.
This document was translated from LATEX by
HEVEA.