• Aucun résultat trouvé

Evaluation des tailles de buffer par simulation

3.1 Pr´esentation du m´ecanisme

3.1.7 Evaluation des tailles de buffer par simulation

Nous ´evaluons maintenant les tailles de buffer requises par notre impl´ementation. Dans la section suivante, ces r´esultats nous permettrons d’avoir une id´ee de la complexit´e du m´ecanisme.

Seul les buffers du r´ecepteur sont ´etudi´es ´etant donn´e qu’ils sont plus grand que ceux de l’´emetteur. Les exp´erimentations sont faites avec des pertes uniformes7, un RTT de 200ms, un taux de redondance de 3/4 et un d´ebit de 100 paquets sources par seconde. Les deux param`etres qui peuvent affecter les tailles de buffer sont le rapport entre le taux de perte et le taux de redondance ainsi que la fr´equence des acquittements. La figure 3.5(a) pr´esente l’impact de la fr´equence des acquittements lorsque le taux de perte est de 10%. De mani`ere `a illustrer les variations inh´erentes au temps de r´ecurrence, les valeurs minimum, maximum et les (5, 10, 25, 50, 75, 90, 95) percentiles des tailles de buffers sont affich´ees. Les valeurs utilis´ees pour calculer la distribution sont relev´ees `a chaque r´eception d’un paquet de redondance.

On peut voir sur la figure 3.5(a) que la moyenne des tailles de buffer ´evolue bien lin´eairement en fonction de la fr´equence des acquittements et confirme l’expression de BRS.

L’autre param`etre `a ´etudier est le taux de perte et ce, de par le fait que le d´elai de d´ecodage augmente lorsqu’il se rapproche du taux de redondance. La figure 3.5(b) pr´esente les r´esultats pour un taux de perte variant de 1% `a 20% avec un acquitte-ment par RTT. On remarque que les (5, 10, 25, 75, 90, 95) percentiles restent tr`es proches du 50-´eme percentile lequel ne varie d’ailleurs que tr`es peu en fonction du taux de perte.

3.1.7.1 Complexit´e en temps

En termes de complexit´e en temps, on utilisera comme unit´e de base le temps requis pour l’addition d’un paquet de donn´ees `a un paquet de redondance. Du cot´e ´emetteur, la complexit´e pour l’encodage d’un paquet de redondance sera donc enO(BSt) avecBSt le nombre de paquets de donn´ees pr´esents dans la fenˆetre d’encodage. Cette quantit´e qui est au minimum ´egale au produit du RT T et du d´ebit d’´emission est directement li´ee `a la fr´equence d’envoi d’acquittements ainsi qu’au taux de perte sur la voie retour.

Du cot´e r´ecepteur, la complexit´e va d´ependre du nombre de pertes L `a reconstruire.

Ce nombre de paquets ´etant ´egal au nombre de paquets de redondance impliqu´es dans l’op´eration de d´ecodage, il faut compter de l’ordre de LBSt op´erations pour l’´etape de soustraction. Quant `a l’inversion et le produit matriciel, ils sont de l’ordre de L2 op´erations. Un d´ecodage complet (pour les Lpaquets) est donc en O(LBSt+L2).

7. Les r´esultats sont du mˆeme ordre de grandeur avec des pertes en rafales.

3.1.7.2 Impact de la taille du corps fini

Il a ´et´e soulign´e dans la section 3.1 que le d´ecodage d’une matrice est possible lorsque le nombre de paquets de redondance re¸cus est ´egal au nombre de pertes `a corriger sous condition que la matrice soit inversible (ce qui n’est ´evidemment pas toujours le cas). Lorsque la matrice n’est pas inversible, cela signifie qu’il existe une ou plusieurs colonnes (paquets de redondance) qui sont des combinaisons lin´eaires des pr´ec´edentes.

L’algorithme de Gauss-Jordan permet d’identifier le paquet de redondance `a l’origine de cette d´ependance lin´eaire et ce dernier est supprim´e. Ceci n´ecessitant donc d’attendre un nouveau paquet de redondance afin de retenter l’op´eration d’inversion. Le fait de devoir attendre un ou plusieurs paquets de redondance nuit au temps de d´ecodage et donc aux performances du m´ecanisme. Augmenter la probabilit´e que la matrice soit inversible revient `a augmenter le nombre d’´el´ements diff´erents qui peuvent ˆetre choisis lors du tirage des coefficients et donc la taille du corps fini. Or la complexit´e du code est directement li´ee `a la taille du corps fini puisque d’apr`es [62], la multiplication peut ˆetre impl´ement´ee par m2/2 op´erations de XOR avec m le nombre de bits utilis´es pour coder le coefficient.

Nous ´etudions donc l’impact du corps fini sur les performances du m´ecanisme qui se caract´erisent par le temps de r´ecurrence, le temps de d´ecodage et la taille de la matrice.

La figure. 3.6 montre l’´evolution de ces m´etriques en fonction de GF pour un taux de perte de 20% et un taux de redondance de 25%. La sous figure de gauche correspond aux pertes uniformes tandis que celle de droite correspond `a des pertes en rafales de taille moyenne 3.

On peut voir que les performances obtenues par les deux plus petites tailles de corps fini (F2 andF4) sont significativement moins bonnes que pour les autres tailles sup´erieures.

De plus, on peut voir que la distribution des pertes n’a pas d’impact sur ces observations et ce, quelque soit la taille moyenne des pertes consid´er´ees (et du taux de pertes). Les performances sont stables `a partir de F8.

Bien que l’utilisation du corps binaire soit attractif du fait qu’il n’effectue qu’un simple XOR, l’impact sur la probabilit´e d’inversion est tel qu’il n’est pas avantageux de l’utiliser pour Tetrys.

Impact de 0 comme coefficient : jusqu’`a maintenant, les coefficients ´etaient choisis al´eatoirement dans GF(2x) = {0,1,2, ...,2x −1}. A priori la logique voudrait que l’on choisisse les coefficients parmi un grand ensemble car plus forte sera la diversit´e et la probabilit´e d’inverser la matrice. Il se trouve cependant que se priver de l’´el´ement nul permet d’am´eliorer sensiblement les performances. En effet, pour GF(4) un paquet `a une chance sur 4 d’ˆetre encod´e avec 0 comme coefficient dans un paquet de redondance.

2

# of packets time in # of packets

log2(finite field size)

# of packets time in # of packets

log2(finite field size) matrix size (left y−axis) mean decoding time (right y−axis) recurrence time (right y−axis)

(b) PLR=20% ; 0GF; Pertes en rafales de taille 3

Figure 3.6: Impact de la taille du corps fini sur la taille de la matrice `a inverser, le temps de r´ecurrence et le d´elai de d´ecodage moyen.

1

Figure 3.7: Impact du coefficient z´ero et de la taille du corps fini sur la taille de la matrice `a inverser, le temps de r´ecurrence et le d´elai de d´ecodage moyen. Les pertes

sont uniformes

Cela signifie que si il n’y a qu’un seul paquet `a d´ecoder, il a une chance sur 4 qu’il ne puisse pas l’ˆetre. Cette remarque reste vraie pour toutes les matrices dont le dernier paquet aurait ´et´e encod´e avec un 0. La figure 3.7 compare les r´esultats obtenus lorsque les coefficients sont choisis dans GF (ligne du haut) ou dans GF\0(ligne du bas). Les pertes sont uniformes et varient 5% `a 20% pour un taux de redondance de 25%. Pour des raisons de meilleure lisibilit´e, les l´egendes ne sont pas reproduites sur chacune des sous-figures mais restent les mˆeme que la figure 3.6.

On peut voir sur la figure 3.7 Tetrys surGF(2) ouGF(4) est bien plus efficace lorsque z´ero ne fait pas partie des coefficients. Pour des taux de perte de 5% et 10%, il n’y a mˆeme aucune diff´erence avec les autres tailles de corps. Cela s’explique par le fait que

1

Figure 3.8: Impact du coefficient z´ero et de la taille du corps fini sur la taille de la matrice `a inverser, le temps de r´ecurrence et le d´elai de d´ecodage moyen. Les pertes

sont en rafales de taille 3.

les matrices `a inverser sont souvent de taille 1 ou 2 ce qui r´eduit la probabilit´e d’avoir une matrice non inversible.

La figure 3.8 pr´esente les mˆeme r´esultats pour des pertes en rafales de taille 3 en moyenne.

On observe ´egalement que Tetrys surGF(4) ouGF(8) est plus performant lorsque z´ero ne fait pas partie des coefficients.

En conclusion, nous pouvons dire que Tetrys permet de g´en´erer des symboles de redon-dance `a la vol´ee (Rateless) et que ces derniers sont quasi MDS pour des tailles corps sup´erieures ou ´egales `a GF(4). Cela permet une impl´ementation efficace (2 XOR par multiplication).