implementation tcp/ip - C - Programmation
Marsh Posté le 02-09-2007 à 15:07:23
clouck a écrit : Voila je fait appel à vous car pour mon projet , je dois réaliser une implementation de tcp. Ma question est : |
En commençant par écrire un document de définition sérieux, puis une document de conception complet et bien documenté.
Ensuite, les techniques de mises en oeuvre s'appuient sur les "raw sockets" (RS), au-dessus desquelles on implémente le protocole IP (si ce n'est déjà fait par les RS), puis le protocole TCP. C'est un gros travail qui nécessite une grande maitrise du langage C, des RS, des threads et des protocoles IP et TCP. (débutants et/ou bricoleurs, s'abstenir...).
C'est un projet d'école ?
Marsh Posté le 02-09-2007 à 16:15:47
Merci Emmanuel pour ta réponse.
Pour répondre à ta question, oui c'est un projet d'école.
J'étais un peu perdu, car à l'école nous avons bien étudié la manipulation des threads, sockets,et les différents processus de communication client/serveur, mais nous n'avons pas trop vu tout ce qui était raw socket....
Enfin bref, merci en tout cas pour tes eclaircissements,donc si j'ai bien compris:
Un client
Un serveur
Et une application intermédiaire qui récupere les paquets en brut via raw socket,qui les reforge, et qui les renvoie avec notre formatage tcp ? Et ceci de maniere différente en fonction des différentes étapes de la communication client/serveur ?
En effet il y a du boulot !!!
En tout cas si tu as d'autres idées ou des trucs qui pourraient m'aider , n'hésites pas à me tenir informé.
Encore un grand merci.
Marsh Posté le 02-09-2007 à 18:03:41
Si c'est uniquement de l'analyse de trame, ok pour le programme espion mais lorsque que ton prof parle d'"implementation de tcp", il faudrait confirmer, mais je pense plutot qu'il s'agit de coder une bibliotheque en C recréeant la couche ip standard mais de manière simple/scolaire pour enfin l'utiliser dans un simple client/server tcp.
Il s'agit peut etre de coder des fonctions de manipultation de socket comme connect(), bind(), listen() recv() et send()
Au passage tu aura ainsi access a tout le paramétrage ("taille des fenetres, faire le checksum"...syn, ack, nbre de paquets)
un premiere approche ici:
http://www.commentcamarche.net/internet/tcp.php3
http://www.commentcamarche.net/sockets/sockfonc.php3
Marsh Posté le 03-09-2007 à 00:45:58
djobidjoba >> tu as tout à fait raison c'est éxactement ce que l'on nous demande de faire. Pour la partie théorie on a pas la cerné la chose, mais en fait comme tu l'as dit ce qui nous manque c'est savoir par ou s'y prendre pour reprendre / refaire la bliotheque. je sais plus si c'est dans sys/inet.h ou sys/socket.h j'ai bien vu les prototypes de fonction connect, bind etc... mais je n'arrive a modéliser dans ma tête pour l'instant comment dois-je m'y prendre pour réaliser ma biblothèque.
Marsh Posté le 02-09-2007 à 00:32:36
Bonjour à tous,
Voila je fait appel à vous car pour mon projet , je dois réaliser une implementation de tcp.
L'objectif étant de réaliser une application client serveur toute bete, mais aussi de pouvoir observer tout le cheminement des messages envoyer entre le client/serv ,syn, ack, nbre de paquets transmis....
Je dois aussi pouvoir regler la taille des fenetres, faire le checksum etc...
Ma question est :
Comment puis-je faire ?
un client/serveur avec un troisieme programme qui récupere les paquets du client et qui les renvoie au serveur ?
Dois-je utiliser des raw sockets ?
ou sinon sniffage client-formatage TCP-reinjection au serveur ?
En tout cas si vous avez des idées, ce serait gentil à vous de m'aidé car je sais pas trop par ou commencer....
Merci d'avance