[Programmation réseau] Envoi d'une requête RST systématique
Publié : mar. 09 juil. 2013, 00:25
Bonjour à tous !
Je fais actuellement un peu de programmation réseau ; pour être plus précis, j'essaie de développer une petite pile TCP/IP pour le fun (la couche liaison de données est simulée par libnet pour envoyer des paquets et libpcap pour en capturer, ce qui est plus pratique que les sockets raw, je trouve).
J'en suis pour le moment au commencement de TCP et entre autres, j'ai commencé à écrire une fonction qui ouvre "activement" une connexion, c'est-à-dire qui envoie un paquet SYN au serveur et attend un paquet SYN-ACK avant d'envoyer un ACK.
Pour tester, j'ai envoyer un paquet SYN à l'adresse 173.194.34.56 (qui correspond à google.com) sur le port 80 (HTTP). Je reçois en réponse un SYN-ACK (ça, ça va) mais tout de suite après... je m'aperçois que ma machine a envoyé un paquet RST à 173.194.34.56 sur le port 80. Si la connexion est systématiquement réinitialisée aussitôt que mon programme tente de l'établir, je risque d'avoir du mal à poursuivre les tests. J'ai pensé que c'est le système d'exploitation qui a pris l'initiative de réinitialiser la connexion. Si c'est le cas, y a-t-il un moyen de l'en empêcher ? Sinon, d'où pourrait venir mon problème ?
Merci d'avance pour votre aide.
Je fais actuellement un peu de programmation réseau ; pour être plus précis, j'essaie de développer une petite pile TCP/IP pour le fun (la couche liaison de données est simulée par libnet pour envoyer des paquets et libpcap pour en capturer, ce qui est plus pratique que les sockets raw, je trouve).
J'en suis pour le moment au commencement de TCP et entre autres, j'ai commencé à écrire une fonction qui ouvre "activement" une connexion, c'est-à-dire qui envoie un paquet SYN au serveur et attend un paquet SYN-ACK avant d'envoyer un ACK.
Pour tester, j'ai envoyer un paquet SYN à l'adresse 173.194.34.56 (qui correspond à google.com) sur le port 80 (HTTP). Je reçois en réponse un SYN-ACK (ça, ça va) mais tout de suite après... je m'aperçois que ma machine a envoyé un paquet RST à 173.194.34.56 sur le port 80. Si la connexion est systématiquement réinitialisée aussitôt que mon programme tente de l'établir, je risque d'avoir du mal à poursuivre les tests. J'ai pensé que c'est le système d'exploitation qui a pris l'initiative de réinitialiser la connexion. Si c'est le cas, y a-t-il un moyen de l'en empêcher ? Sinon, d'où pourrait venir mon problème ?
Merci d'avance pour votre aide.