From 540fd58c5b33700d27e635594ba93dcb1a86d2dc Mon Sep 17 00:00:00 2001 From: aittaleb Date: Sat, 13 May 2023 22:42:28 +0100 Subject: [PATCH] update Readme --- 20230510-mictcp-moodle-a8taleb.tar.gz | Bin 0 -> 45 bytes README.md | 113 ++++++++------------------ build/client | Bin 55752 -> 55752 bytes build/gateway | Bin 68936 -> 68936 bytes build/mictcp.o | Bin 39816 -> 39816 bytes build/server | Bin 54648 -> 54648 bytes configurer.sh | 14 ++++ src/mictcp.c | 4 +- 8 files changed, 51 insertions(+), 80 deletions(-) create mode 100644 20230510-mictcp-moodle-a8taleb.tar.gz create mode 100755 configurer.sh diff --git a/20230510-mictcp-moodle-a8taleb.tar.gz b/20230510-mictcp-moodle-a8taleb.tar.gz new file mode 100644 index 0000000000000000000000000000000000000000..872c01559ea7ac2302b7d73ae653f7ad29f8981d GIT binary patch literal 45 qcmb2|=3oE==C=nKd4a4$3%>j3@|iDyhyuw5bLLt1WYrlo7#IN4*9i&$ literal 0 HcmV?d00001 diff --git a/README.md b/README.md index 4fa8ac2..a682302 100644 --- a/README.md +++ b/README.md @@ -1,92 +1,49 @@ # BE RESEAU -## TPs BE Reseau - 3 MIC -[https://prod.liveshare.vsengsaas.visualstudio.com/join?06D950E7114F70AD557DABDD54F41A8DE5B6](https://prod.liveshare.vsengsaas.visualstudio.com/join?E54E923D637B2C66FF9497A2A21FF21459AD) -Les détails du sujet du BE est accessible depuis le cours "Programmation Système et Réseau" sur moodle. +## TPs BE Reseau - 3 MIC Aittaleb Mohamed Barnavon Jules-iana -## Contenu du dépôt « template » fourni -Ce dépôt inclut le code source initial fourni pour démarrer le BE. Plus précisément : - - README.md (ce fichier) qui notamment décrit la préparation de l’environnement de travail et le suivi des versions de votre travail; +## Contenu du dépôqui vous interesse +Ce dépôt inclunotre code source final pour mictcp + - README.md (ce fichier) - tsock_texte et tsock_video : lanceurs pour les applications de test fournies. - - dossier include : contenant les définitions des éléments fournis que vous aurez à manipuler dans le cadre du BE. - - dossier src : contenant l'implantation des éléments fournis et à compléter dans le cadre du BE. - - src/mictcp.c : fichier au sein duquel vous serez amenés à faire l'ensemble de vos contributions (hors bonus éventuels). + - src/mictcp.c : code source que l'on a d�veloppé + - configurer.sh : script shell qui vous demandera la version que vous voudrez utiliser et la tol�rance aux pertes que vous souhaitez pour la v3 et au-delas +## Choir la version +La méthode pour choisir la version que nous recommandons est d'utiliser le script `configurer.sh`, assurez vous de le rendre ex�cutable par la commande : +`chmod +x configurer.sh`. Il ne fait que modifier une variable `version` qui controle la version dans `src/mictcp.c`. -## Création du dépôt mictcp +Si non vous pouvez toujours remonter aux commits tagg�s avec le nom de la version que vous voulez. -1. Création d’un compte git étudiant : Si vous ne disposez pas d’un compte git, connectez vous sur http://github.com/ et créez un compte par binôme. +## Compiler: +Si vous avez utiliséle script pour choisir la version, il n'est pas n�cessaire de recompiler, si non veuillez ex�cuter `make` -2. Afin d’être capable de mettre à jour le code que vous aurez produit sur le dépôt central Github, il vous faudra créer un jeton d’accès qui jouera le rôle de mot de passe. Veuillez le sauvegarder, car il vous le sera demandé lors de l'accès au dépôt central. Pour ce faire, veuillez suivre les étapes décrites : https://docs.github.com/en/authentication/keeping-your-account-and-data-secure/creating-a-personal-access-token +## Notre avancement +Nous arrivéà d�veloppéune version qui marche de la v4, (i.e fiabilit� partielle et �tablissement de la connexion. -3. Création d’un dépôt Etudiant sur GitHub pour le BE Reseau - - Créer une copie du dépôt template enseignant : https://github.com/rezo-insat/mictcp, en vous y rendant et en cliquant sur le bouton « use this template » situé dans le coin en haut, plutôt à droite de la page. Il est demandé de le choisir comme dépôt privé. Il est impératif pour les corrections que vous rajoutiez le compte : rezo-insat comme collaborateur afin de permettre à vos enseignants d'accéder à votre dépôt. Pour ce faire, sélectionner le bouton "settings" puis "collaborators" et rajouter comme utilisateur : rezo-insat. La marche à suivre est décrite ci-après : https://docs.github.com/en/organizations/managing-access-to-your-organizations-repositories/adding-outside-collaborators-to-repositories-in-your-organization +## Bug observé +Avant d'ex�cuter tsock_text, assurez vous de ne pas avoir ex�cutétsock_video sur votre machine auparavant, nous avons observéque ceci faisait planter +notre application. La seule solution que l on a trouvéest de simplement reboot la machine. +## Choix remarquables +### Parametres de la fiabilite partielle +Pour implanter la fiabilite partielle, nous repris notre solution pour la fiabilite totale, et nous avons ajoute les elements suivants +Lorsque le client re�oit un acquitement, il ajoute un 1 au buffer circulaire de son socket et incr�ment le num�ro de s�quence, si non, il calcule la proportion de 1 dans +ce buffer, et si elle est sup�rieure �au pourcentage de pertes tol�r�es, il ajoute un 0 au buffer, et retourne au client la taille envoy�e + mais n incremente pas le numero d acquitement, si non, il renvoie le packet et attend toujours l'acquittement. -4. Créer un clone local de votre dépôt Github, i.e. une copie locale du dépôt sur votre compte insa. - - cliquer sur le bouton « code » de votre dépôt, copier l’URL qui permet de l’identifier. - Ouvrir un terminal de votre machine. En vous plaçant dans le répertoire de travail de votre choix, taper depuis le terminal : - - git clone - - Vous avez désormais une copie locale de votre dépôt, que vous pouvez mettre à jour et modifier à volonté au gré de votre avancement sur les TPs. - -5. Afin de nous permettre d’avoir accès à votre dépôt, merci de bien vouloir renseigner l'URL de votre dépôt sur le fichier accessible depuis le lien "fichier URLs dépôts étudiants" se trouvant sur moodle (au niveau de la section: BE Reseau). - -## Compilation du protocole mictcp et lancement des applications de test fournies - -Pour compiler mictcp et générer les exécutables des applications de test depuis le code source fourni, taper : - - make - -Deux applicatoins de test sont fournies, tsock_texte et tsock_video, elles peuvent être lancées soit en mode puits, soit en mode source selon la syntaxe suivante: - - Usage: ./tsock_texte [-p|-s] - Usage: ./tsock_video [[-p|-s] [-t (tcp|mictcp)] - -Seul tsock_video permet d'utiliser, au choix, votre protocole mictcp ou une émulation du comportement de tcp sur un réseau avec pertes. - -## Suivi de versions de votre travail - -Vous pouvez travailler comme vous le souhaitez sur le contenu du répertoire local. Vous pouvez mettre à jour les fichiers existants, rajouter d’autres ainsi que des dossiers et en retirer certains à votre guise. - -Pour répercuter les changements que vous faites sur votre répertoire de travail local sur le dépôt central GitHub, sur votre terminal, taper : +Afin de permettre l'implantation de cette fiabilite partielle, nous avons juggéque seul celui qui envoie les packets (ici le client) est en +position de controler cette fonctionalit�. De ce fait, il n'y pas de n�gociation, simplement c est la source envoie, et qui controle le pourcentage de +pertes dans ce qu elle a envoy�. - git add . - git commit -m «un message décrivant la mise à jour» - git push +### La r�alisation des IP_recv +Si vous vous penchez sur notre code source, vous verrez que l'on a fait usage de thread supl�mentaire alors que nous ne sommes pas all�s jusqu'à la v4.2. +La raison de ceci est que nous avons rencontrédes bugs assez troublant concernant les IP_recv, ces derniers adoptent un comportement diff�rent d une execution a l'autre. +Nous avons alors d�cidéde les traiter comme une source de perte en tant que tel, et nous les ex�cutons toujours dans un thread c�tépuit. C�tésource, vu que le +process_received_pdu est lancé dans un thread a part, cela n'a pas �tén�cese. -- Marquage des versions successives de votre travail sur mictcp - -Lorsque vous le souhaitez, git permet d'associer une étiquette à un état précis de votre dépôt par l'intermédiaires de tags. Il vous est par exemple possible d'utiliser ce mécanisme pour marquer (et par conséquence pouvoir retrouver) l'état de votre dépôt pour chacune des versions successives de votre travail sur mictcp. +### Etablissement de la connexion +Pour l'etablissement de la connexion, notre protocole effectue les op�rations suivantes : -Pour Créer un tag « v1 » et l'associer à l'état courrant de votre dépôt, vous taperez la commande suivante sur votre terminal : - - git tag v1 - -Pour lister les tags existants au sein de votre dépôt - - git tag -l - -Pour transférer les tags de votre dépôt local vers le dépôt central sur github: - - git push origin --tags - - -Ceci permettra à votre enseignant de positionner le dépôt dans l'état ou il était au moment du marquage avec chacun des tags que vous définissez. - -## Suivi de votre avancement - -Veuillez utiliser, à minima, un tag pour chacune des versions successives de mictcp qui sont définies au sein du sujet du BE disponible sous moodle. - - -## Liens utiles - -Aide pour la création d’un dépôt depuis un template : https://docs.github.com/en/repositories/creating-and-managing-repositories/creating-a-repository-from-a-template - -Manuel d'utilisation de git: https://git-scm.com/docs - -## Amélioration -Implémenter la liste des sockets par une liste chaînée +Lorsque le client c�tésource� fat un mic_tcp_connect, l'applicatio fixe le numero de sequence associe a son socket a 0, puis envoie un pdu syn a ce meme numero de sequence 0. + A sa reception cote puit, la fonction process_receive_pdu l'applicatio fixe aussi son numero de sequence associe a son socket a 0, envoie un pdu syn ack ce numero de sequence , diff --git a/build/client b/build/client index 36fd60b850b1b05cf0deab5e4e707b67feb1016f..65893c2c55007cc2f03b2c87fb43590845e96af3 100755 GIT binary patch delta 47 zcmV+~0MP%)vjfPp1F(n#6fn!n ACIA2c delta 42 zcmV+_0M-A