objectif:
Traçage des appels des fonctions de la pile TCP/IP
Aprés avoir recompilé un noyau LUNIX 2.6.33 on a introduit des messages à l'aide de la fonction printk ( KERN_DEBUG "message ( hello ensi) nom-fonc" ) qui seront affichés dans le fichier var/log/syslog ce qui nous permettra donc, en ouvrant ce fichier, de repérer la fonction à savoir son nom:

Couche de routage IP (internet protocol):
Quelques fonctions appelées :
- ip_rcv: localisée dans ip_input.c ; c'est la premiére fonction qui sera appelée , elle controle le paquet IPV4 en vérifiant l'absence des erreurs dans l'entete
- ip_rcv_finish : appelée par ip_rcv , dans laquelle s'effectue la recharche d'une route pour le paquet ce qui nécessite lintroduction de ip_route_input (pour calculer la route du paquet) ou ip_route_input_slow (si aucune route n'a été trouvée!
- ip_queue_xmit : pour le routage et la creation des entete
- ip_local_deliver : appelée par ip_rcv_finish si le paquet doit etre délivrer localement ( pour délivrer le paquet aux couches de la pile de protocoles situés au dessus de IP ) --> ip_local_deliver_finish --> ip_send --> ip_finish_output (le paquet quitte donc le noyau)
- ip_forward : appelée aussi par ip_rcv_finish mais dans le cas ou le paquet doit etre forwadé vers la destination (pour vérifier ou modifier le paquet) --> ip_forward_finish --> ip_send --> ip_finish_output (le paquet quitte donc le noyau)
Couche de transport TCP (transmission control protocol) :
c'est la couche qui controle le transport de paquets , elle permet de gérer les données de la couche inférieure (protocole IP )
Quelques fonctions appelées:
- tcp_sendmsg : permet l'envoi d'un message en mode connexion (adresse de destination non ignorée ) ou en mode sans connexion ( adresse de destination ignorée
- tcp_rcvmsg : permet de recevoir un message en mode connexion ou sans connexion
- tcp_v4_rcv : pour le traitement du protocole (exécution des controles de flux )
- tcp_rcv_established : si un processus est en attente de données pour arriver , ces derniéres sont immédiatement copiées à l'espace utilisateur
- tcp _connect: permet de créer un client TCP
Aucun commentaire:
Enregistrer un commentaire