1.Introduction:
Le but de cet exercice est de connaître les fonctions permettant le dialogue entre les différentes couches du modelé tcp/ip dans les deux sens.
2.Solution:
pour la réalisation de cet exercice nous avons compilé le noyau 2.6.32 et auquel nous avons apporté des modifications. Ces modifications se limite à l'ajout des fonctions "printk" au niveau de l'implémentation des différentes fonctions existants dans le code source de linux.
notre solution est divisé en deux parties. la première va porter sur les fonction appelées lors de l'envoi des messages et l'autre sur sur les fonction appelées lors de la réception.
2.1.Envoi des paquets:
les fonctions à modifiées sont:
net/socket.c:
-sock_write:
cette fonction permet d'écrire un flux d'octets dans le socket ouvert spécifiée.
-sock_sendmsg
net/ipv4/af_inet.c :
-inet_sendmsg
net/ipv4/tcp.c :
-tcp_sendmsg
net/ipv4/tcp_output.c :
-tcp_transmit_skb :
elle assure le contrôle de la couche réseau.
net/ipv4/ip_output.c :
-ip_queue_xmit :
son rôle principale est le routage.
2.2.Reception des paquets:
les fonctions à modifiées sont:
net/socket.c :
-sock_read
net/ipv4/tcp.c :
-tcp_recvmsg
net/ipv4/tcp_ipv4.c :
-tcp_v4_rcv :
elle permet d'établir des connexions, le contrôle de flux...
-tcp_v4_do_rcv :
cette fonction met le paquet reçu dans la file de réception
net/ipv4/ip_input.c :
-tcp_rcv :
cette fonction est appelée lorsque les opérations relatives à la couche 2 (liaison) sont effectuées et si le paquet reçu est du type IP en version 4 .elle permet aussi la vérification de l'en-tête IP. Et pour passer à la fonction suivante(ip_rcv_finish) elle utilise le système de hook de netfilter.
-ip_local_deliver :
elle permet l'envoi les paquets IP récoltés vers la couche tcp.
captures des appels de fonctions




Aucun commentaire:
Enregistrer un commentaire