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 TIME_RESEND_IHU = 90; // 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_SEND_NR = 60; // s
const int TIME_RESEND_FLOOD = 3; // s

View File

@ -22,7 +22,6 @@
\maketitle
\begin{abstract}
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
é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]}~:
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
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
sur elles) lors d'un appui sur \textsc{return}.
Un \textsc{sigint} (ctrl+C) permet l'arrêt propre du programme.
%%%%%%%%%%%%%%%%%%%%%%%%%%
\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)
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}
Le programme contient deux threads~:
\begin{itemize}