Previous Contents Next

5   Travail à effectuer

Après les exercices précédents destinés à vous familiariser avec l'environnement de développement de la pile TCP/IP, vous allez enfin contribuer à l'écriture de cette pile.

5.1   Protocole ICMP

Faites vos armes sur un protocole assez simple comme ICMP. Les deux fonctions à coder sont icmpDecodePacket et icmpSendPacket. La fonction icmpSendPacket construit l'entête ICMP devant les données fournies lors de l'appel puis appelle la couche inférieure, c'est à dire IP. Attention, pour optimiser l'espace mémoire, il est recommandé d'utiliser realloc plutôt que malloc. Regardez comment cet appel système est utilisé dans ipFillHeader. La fonction icmpDecodePacket doit implanter au moins deux fonctions; traiter les echo request en envoyant un echo reply et sur réception d'un ICMP port unreachable propager l'information au processus UDP concerné. Testez votre implantation dans les cas suivants : Donnez la taille mémoire utilisée sur le tas dans les situations suivantes : Détaillez l'utilisation mémoire selon les couches de la pile.

5.2   Protocole TCP

Votre travail proprement dit commence ici avec l'implantation du protocole TCP. Il vous est demandé de réaliser les tâches décrites ci-après.

5.3   Tests TCP

Pour tester votre implantation TCP, connectez vous avec l'utilitaire nc sur votre pile TCP/IP. Connectez-vous à la fois sur des ports sans processus liée et sur le port sur lequel écoute votre serveur écho. Testez votre serveur écho avec plusieurs clients simultanés. Testez votre implantation en liant le serveur écho à plusieurs ports TCP, là encore tentez plusieurs connexions simultanées.


Previous Contents Next