Projet en C sur Unix

henrypoms Messages postés 4 Date d'inscription mardi 28 février 2006 Statut Membre Dernière intervention 27 mai 2007 - 25 mai 2007 à 11:04
The_Guardian Messages postés 317 Date d'inscription vendredi 25 mai 2007 Statut Membre Dernière intervention 19 octobre 2007 - 27 mai 2007 à 18:02
Bonjour, j'ai un projet à réaliser en C sur Unix, dont le sujet va suivre. Mais je ne vois pas trop comment gérer ca, je n'arrive pas à commencer. SI vous aviez quelques pistes, même très simples pour m'aider a commencer, je vous en remercierai. Voila le sujet :
On désire réaliser un routage de messages de tailles variables sous la forme de paquets pour un réseau de 3 machines distantes (processus machine). Pour cela on dispose d'un réseau de communication  composé de n routeurs, dont vous proposerez une configuration. Les paquets d'un message ne suivront pas nécessairement le même trajet. Il faudra donc instaurer un protocole de communication pour spécifier les envois de messages et pour reconstituer le message sur la machine réceptrice.<?xml:namespace prefix o ns "urn:schemas-microsoft-com:office:office" /??>

Pour simuler les défaillances des routeurs ou leur indisponibilité momentanée, vous intègrerez dans votre application un processus perturbateur. Ceci pourra rendre plus réaliste le fait que les paquets d'un même message suivent des trajets différents.

Merci d'avance !

8 réponses

The_Guardian Messages postés 317 Date d'inscription vendredi 25 mai 2007 Statut Membre Dernière intervention 19 octobre 2007 1
25 mai 2007 à 17:33
bonjour, sympa comme projet, je visualise bien le debut, mais pas le processus perturbateur.
Je suppose qu'il y a un processus perturbateur par routeur, ou par lien
mais c'est pas tres clair, il faudra que tu vois cela (enfin disons par routeur)
Bon alors commence avec un projet plus simple : deux machines et un routeur.
machine A et B sont reliees par le routeur donc tu as 3 processus, processus de A, processus de B et processus du routeur
Ensuite tu vas avoir deux choses a faire et c'est la que ton projet me parait plutot complique et va te demander certainement pas mal de temps d'une part il faut faire un protocole de routage, et d'autre part il faut faire un protocole de transport.
Je m'explique:
si la machine A veut communiquer avec celle de B il faut que les routeurs connaissent le chemin entre A et B
Tu peux voir de la doc la dessus en cherchant de la doc sur les protocoles OSPF ou RIP
Sinon bon ca deja ca devrait te poser quelques problemes
 puis une fois que c'est fait ton prof te demande de faire de la transmission de paquet avec reconstruction donc la tu vas avoir un protocole du genre TCP
(tu peux chercher de la doc aussi) car il faut reordonner les paquets et peut-etre les retransmettre si y'en a qui sont perdus
Ok bref, tu as du boulot mais commence avec le routage uniquement, ca va deja te poser des problemes
A mon avis quand meme c'est que ce projet est pas clair car ton prof pourrait vouloir du routage statique et donc  il faudrait lui demander si le routage qu'il veut est statique ou dynamique et pourquoi on enverrait un paquet a R1 plutot qu'a R2
 ====
0
henrypoms Messages postés 4 Date d'inscription mardi 28 février 2006 Statut Membre Dernière intervention 27 mai 2007
25 mai 2007 à 19:02
wè ta parfaitement raison et j epense que je devrai demander au prof sil faut un routage statique ou dynamique.
mon blem est surtout au niveau de l'implémentation des protocoles car je sais pas coment les inséré ds mon programme.Je vais essayer de faire kelke chose d'apres ce que tu ma expliké.Sinon peu tu simuler ce programme de ton coté pour que je puisse le comparé avec ce que je vais faire.
Mais connais tu pas un site ou je pourrai avoir ce type d'exercice en corrigé?
0
The_Guardian Messages postés 317 Date d'inscription vendredi 25 mai 2007 Statut Membre Dernière intervention 19 octobre 2007 1
25 mai 2007 à 22:38
Re

Pour implementer les protocoles c'est pas tres different de ce qui se fait
quand tu recois un paquet tu regardes le type et tu appelle la fonction qui depend du type
 if type==1 then executeTCP(packet)
 etc.
0
henrypoms Messages postés 4 Date d'inscription mardi 28 février 2006 Statut Membre Dernière intervention 27 mai 2007
26 mai 2007 à 15:39
Merci pour tout
cool; jai compris mais comment faire pour insérér un routage statique ou dynamique.
cordialement
0

Vous n’avez pas trouvé la réponse que vous recherchez ?

Posez votre question
The_Guardian Messages postés 317 Date d'inscription vendredi 25 mai 2007 Statut Membre Dernière intervention 19 octobre 2007 1
26 mai 2007 à 15:56
RE

Routage statique c'est pas dur et on va parler que de ca, pour l'instant:

_ alors il faut que chaque routeur ait une table de routage qui associe pour chaque destination possible un successeur genre
 pour le routeur 0
table[0] = 0
table[1] = 1
table[2] = 1
table[3] = 4
table[4] = 4
table[5]=1
 
=
0
The_Guardian Messages postés 317 Date d'inscription vendredi 25 mai 2007 Statut Membre Dernière intervention 19 octobre 2007 1
26 mai 2007 à 15:59
RE

Dynamique, ca c'est chaud car il faudrait que chaque routeur garde l'etat du suivant et des chemins genre si tu sais que le routeur 0 peut envoyer des paquets pour a destination 5 par 1 ou par 2
 si 1 est trop charge, il faut envoyer a 2
bref:)

=
0
henrypoms Messages postés 4 Date d'inscription mardi 28 février 2006 Statut Membre Dernière intervention 27 mai 2007
27 mai 2007 à 16:40
jai vu le prof il a dit qu'il faudrait que j'utilise la file des messages et surtout les tubes.
taurait pas une idée de ce que ca peut donner comme code.
sinon je pense opter pour le statique si le dynamique me fait galéré.
cordialement
0
The_Guardian Messages postés 317 Date d'inscription vendredi 25 mai 2007 Statut Membre Dernière intervention 19 octobre 2007 1
27 mai 2007 à 18:02
RE

La file de messages ca sert a transferer des messages d'un processus a un autre
c'est pareil pour les tubes, en fait tu peux avoir des tubes nommes ou des tubes non nommes.
Mais ca c'est juste ta communication entre processus et ca va pas changer ton routage,  a moins que tu etablisses tes chemins a l'avance.
Et la tu pourras envoyer dans des tubes au hasard, mais je vois pas bien en quoi ca va avoir un role au niveau du routage.

A toi de reflechir a ca
==

ps: Ca va etre chaud ton projet car ca a pas l'air super clair lol
0