Report; update republish interval

This commit is contained in:
Théophile Bastian 2016-11-27 21:28:46 +01:00
parent 9104f40aaf
commit 2461868888
2 changed files with 28 additions and 3 deletions

View file

@ -31,7 +31,7 @@ const int TIMEOUT_SYM_IHU = 300; // s
const int TIMEOUT_DATA = 35*60; // s const int TIMEOUT_DATA = 35*60; // s
const int TIME_RESEND_IHU = 90; // s const int TIME_RESEND_IHU = 90; // s
const int TIME_RESEND_EMPTY = 30; // s const int TIME_RESEND_EMPTY = 30; // s
const int TIME_REPUBLISH_DATA = 25*60; // s const int TIME_REPUBLISH_DATA = 15*60; // s
const int TIME_PEER_PEEK = 30; // s const int TIME_PEER_PEEK = 30; // s
const int TIME_SEND_NR = 60; // s const int TIME_SEND_NR = 60; // s
const int TIME_RESEND_FLOOD = 3; // s const int TIME_RESEND_FLOOD = 3; // s

View file

@ -22,7 +22,6 @@
\maketitle \maketitle
\begin{abstract} \begin{abstract}
L'implémentation du protocole en C++ respecte la spécification sur tous les L'implémentation du protocole en C++ respecte la spécification sur tous les
cas observés. De plus, les paquets sont agrégés tant que possible pour cas observés. De plus, les paquets sont agrégés tant que possible pour
éviter une surcharge du réseau, l'inondation est un peu optimisée et éviter une surcharge du réseau, l'inondation est un peu optimisée et
@ -58,7 +57,7 @@ arguments.
\item \lstbash{bootstrap [ID du nœud] [adresse IPv6 du nœud] [port]}~: \item \lstbash{bootstrap [ID du nœud] [adresse IPv6 du nœud] [port]}~:
déclare le nœud comme nœud de bootstrap. L'adresse peut être déclare le nœud comme nœud de bootstrap. L'adresse peut être
IPv4-mapped, eg. `::FFFF:42.42.42.42`. IPv4-mapped, eg. \texttt{::FFFF:42.42.42.42}.
\item \lstbash{data [donnée]}~: déclare une donnée à propager. La donnée \item \lstbash{data [donnée]}~: déclare une donnée à propager. La donnée
peut contenir des espaces, et s'étend jusqu'à la fin de la ligne. peut contenir des espaces, et s'étend jusqu'à la fin de la ligne.
@ -76,6 +75,8 @@ d'erreur (stderr).
Le programme affiche son état actuel (voisins + infos sur eux, données + infos Le programme affiche son état actuel (voisins + infos sur eux, données + infos
sur elles) lors d'un appui sur \textsc{return}. sur elles) lors d'un appui sur \textsc{return}.
Un \textsc{sigint} (ctrl+C) permet l'arrêt propre du programme.
%%%%%%%%%%%%%%%%%%%%%%%%%% %%%%%%%%%%%%%%%%%%%%%%%%%%
\section{Implémentation} \section{Implémentation}
@ -83,6 +84,30 @@ Tout d'abord, mon code est très --- trop --- long pour le programme demandé.
J'ai manqué de temps pour ce projet (beaucoup de choses à faire en parallèle) J'ai manqué de temps pour ce projet (beaucoup de choses à faire en parallèle)
et j'ai donc plus produit du code rapidement qu'intelligemment\ldots et j'ai donc plus produit du code rapidement qu'intelligemment\ldots
\subsection{Classes et fichiers}
\begin{itemize}
\item \lstcpp{Bytes}~: utilisé pour stocker des paquets. Permet une
extraction/insertion facile de types \og{}classiques~\fg~: \lstcpp{u8},
\lstcpp{u16}, \ldots
\item \lstcpp{ConfigFile}~: lit et écrit le fichier de configuration.
\item \lstcpp{DataStore}~: stocke les données inondées et les maintient à
jour.
\item \lstcpp{Flooder}~: inonde une donnée vers une liste de pairs, en
réessayant un nombre de fois défini (ici, 3).
\item \lstcpp{Neighbours}~: gère les voisins du nœud courant, leur
changement de type (potentiel, unidirectionnel, symétrique) et l'envoi
de paquets nécessaires (IHU, \ldots).
\item \lstcpp{PacketParser}~: reçoit les paquets entrants et les traite.
\item \lstcpp{Protocol}~: gère le réseau de \og{}bas niveau~\fg, permet
l'envoi de paquets de types donnés et gère le thread de réception de
paquets.
\item \lstcpp{data.h}~: définit les types de données et structures utiles
un peu partout.
\item \lstcpp{nw\_constants.h}~: définit les constantes relatives au réseau
et au protocole.
\end{itemize}
\subsection{Threads} \subsection{Threads}
Le programme contient deux threads~: Le programme contient deux threads~:
\begin{itemize} \begin{itemize}