13.07.2015 Views

Mécanismes de fiabilisation pro-actifs - ISAE

Mécanismes de fiabilisation pro-actifs - ISAE

Mécanismes de fiabilisation pro-actifs - ISAE

SHOW MORE
SHOW LESS
  • No tags were found...

You also want an ePaper? Increase the reach of your titles

YUMPU automatically turns print PDFs into web optimized ePapers that Google loves.

THÈSEEn vue <strong>de</strong> l'obtention duDOCTORAT DE L’UNIVERSITÉ DE TOULOUSEDélivré par l’Institut Supérieur <strong>de</strong> l’Aéronautique et <strong>de</strong> l’EspaceSpécialité : STIC Réseaux, télécoms, systèmes et architecturesPrésentée et soutenue par Alexandre SOROLe 3 décembre 2010<strong>Mécanismes</strong> <strong>de</strong> <strong>fiabilisation</strong> <strong>pro</strong>-<strong>actifs</strong>JURYM. Kavé Salamatian, prési<strong>de</strong>nt, rapporteurM. Daniel Augot, rapporteurM. Jérôme Lacan, directeur <strong>de</strong> thèseM. Vincent RocaM. Valentin SavinÉcole doctorale: Mathématiques, informatique et télécommunications <strong>de</strong> ToulouseUnité <strong>de</strong> recherche : Équipe d’accueil <strong>ISAE</strong>-ONERA MOISDirecteur <strong>de</strong> thèse : M. Jérôme Lacan


<strong>Mécanismes</strong> <strong>de</strong> <strong>fiabilisation</strong> <strong>pro</strong>-<strong>actifs</strong>Depuis l'avènement <strong>de</strong> la théorie <strong>de</strong> l'information, la question <strong>de</strong> la <strong>fiabilisation</strong> <strong>de</strong>s transmissionsest allée <strong>de</strong> pair avec l'évolution <strong>de</strong>s technologies et <strong>de</strong>s applications.La <strong>fiabilisation</strong> <strong>de</strong>s transmissions couvre l'ensemble <strong>de</strong>s techniques permettant <strong>de</strong> lutter contreles erreurs et les pertes d'un canal <strong>de</strong> transmission. Parmi les mécanismes existants, la<strong>fiabilisation</strong> <strong>pro</strong>-active consiste à mettre en place une redondance au niveau d'un émetteur, cellecipermettant <strong>de</strong> compenser à priori les pertes subies par le canal. La <strong>fiabilisation</strong> <strong>pro</strong>-activetrouve son sens lorsque l'émetteur ne peut avoir d'information sur l'état actuel du canal <strong>de</strong>transmission, ou lorsque elle est inutile du fait <strong>de</strong> contraintes temporelles, mais aussi lorsqu'unémetteur doit s'adapter aux contraintes <strong>de</strong> plusieurs récepteurs. Initialement, les mécanismes <strong>de</strong><strong>fiabilisation</strong> <strong>pro</strong>-<strong>actifs</strong> utilisant cette redondance sont connus sous le nom <strong>de</strong> co<strong>de</strong>s correcteurs.La <strong>pro</strong>blématique associée à ces co<strong>de</strong>s est alors une <strong>pro</strong>blématique d'optimisation : il s'agit <strong>de</strong>créer <strong>de</strong>s co<strong>de</strong>s flexibles permettant une génération rapi<strong>de</strong> <strong>de</strong> la redondance par l'émetteur etune récupération <strong>de</strong>s données initiales par le récepteur à faible coût, tout en conservant lameilleure capacité <strong>de</strong> correction possible.Par extension, la question <strong>de</strong> la <strong>fiabilisation</strong> concerne également l'étu<strong>de</strong> <strong>de</strong> l'impact <strong>de</strong>mécanismes <strong>de</strong> suppression <strong>de</strong> redondance sur la fiabilité d'un système. Dans <strong>de</strong>s réseaux plusspécifiques, où la question <strong>de</strong> l’utilisation <strong>de</strong> la ban<strong>de</strong> passante est cruciale, <strong>de</strong>s mécanismes <strong>de</strong>compression <strong>pro</strong>tocolaire peuvent être mis en place afin <strong>de</strong> diminuer la <strong>pro</strong>portion <strong>de</strong> traficengendrée par les en-têtes <strong>pro</strong>tocolaires.Mots-clés : Fiabilisation, ROHC, Canal à effacements, Matrice ban<strong>de</strong>, Co<strong>de</strong>s <strong>de</strong> Reed-Muller,Co<strong>de</strong>s <strong>de</strong> Reed-Solomon, FFTPro-active mechanisms for reliabilitySince the works of Shannon on information theory, the question of transmission reliability is acrucial point.Transmission reliability covers the techniques that allow to fight errors and losses of atransmission channel. Among them, <strong>pro</strong>-active mechanisms consist in constructing redundancyfor a sen<strong>de</strong>r, in or<strong>de</strong>r to compensate the estimated losses of the transmission channel. Thistechnique is especially valuable when the feedback of the receiver is not available or unusable, orwhen there are several receivers. This family of solutions is known as error correcting co<strong>de</strong>s. Forthese co<strong>de</strong>s, the main point is to <strong>de</strong>termine co<strong>de</strong>s that are easily encodable and <strong>de</strong>codable withthe best correction capacity.The reliability issue can be exten<strong>de</strong>d to the study of the impact of suppressing redundancy on thereliability of a system. In specific networks, where the bandwidth is costly, one may usecompression <strong>pro</strong>tocols to reduce the <strong>pro</strong>tocols hea<strong>de</strong>rs size, which play the role of a naturalredundancy.Keywords : Reliability, Hea<strong>de</strong>r Compression, Erasure Channel, Ban<strong>de</strong>d Matrices, Reed-MullerCo<strong>de</strong>s, Reed-Solomon Co<strong>de</strong>s, Fast Fourier Transform (FFT)


iiannée <strong>de</strong> thèse : Julien, Paul, Almed, Mazo, Tomasi, Gilles, Najwa et Adia.Je remercie mes parents qui ont toujours été là pour moi, qui ont tout fait pourmon bonheur et qui m'ont toujours soutenu dans mes choix. Je les remercie égalementd'avoir toujours cru en moi, <strong>pro</strong>bablement plus que moi-même, et d'avoir été là dansles moments diciles. Je ne les remercierais jamais assez pour tout.C'est à eux que je dédie ce manuscrit.Décembre 2010,Alexandre SORO


Table <strong>de</strong>s matières1 Introduction 11.1 Présentation <strong>de</strong> la <strong>pro</strong>blématique et <strong>de</strong>s objectifs . . . . . . . . . . . 11.2 Organisation du document . . . . . . . . . . . . . . . . . . . . . . . 22 Etat <strong>de</strong> l'art et principales notions 52.1 La théorie <strong>de</strong> l'information . . . . . . . . . . . . . . . . . . . . . . . 52.2 Les co<strong>de</strong>s à eacements . . . . . . . . . . . . . . . . . . . . . . . . 62.2.1 Capacité du canal à eacements . . . . . . . . . . . . . . . . 72.2.2 Le canal à eacements <strong>de</strong> paquets . . . . . . . . . . . . . . . 82.2.3 Quelques dénitions pour les canaux à eacements <strong>de</strong> paquets 82.2.4 Les co<strong>de</strong>s à eacements MDS . . . . . . . . . . . . . . . . . 112.2.5 Les co<strong>de</strong>s à eacements non-MDS . . . . . . . . . . . . . . 142.3 La compression d'en-têtes . . . . . . . . . . . . . . . . . . . . . . . 272.3.1 Introduction . . . . . . . . . . . . . . . . . . . . . . . . . . . 272.3.2 Compressed TCP / Van Jacobson . . . . . . . . . . . . . . . 282.3.3 IPHC/CRTP/eCRTP . . . . . . . . . . . . . . . . . . . . . . 312.3.4 ROHC . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 373 Modélisation d'un <strong>pro</strong>tocole <strong>de</strong> compression d'en-têtes 433.1 Introduction . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 433.2 La couche <strong>pro</strong>tocolaire et le canal <strong>de</strong> Gilbert-Elliott . . . . . . . . . . 443.2.1 Le modèle <strong>de</strong> Gilbert-Elliott . . . . . . . . . . . . . . . . . . 463.2.2 Le modèle <strong>de</strong> compression . . . . . . . . . . . . . . . . . . . 473.3 Modélisation du mo<strong>de</strong> Unidirectionnel . . . . . . . . . . . . . . . . . 483.4 Modélisation du mo<strong>de</strong> Optimiste . . . . . . . . . . . . . . . . . . . . 613.5 Modélisation du mo<strong>de</strong> Fiable . . . . . . . . . . . . . . . . . . . . . . 633.6 Instantiations du modèle . . . . . . . . . . . . . . . . . . . . . . . . 643.6.1 Instantiation par le <strong>pro</strong>tocole ROHC . . . . . . . . . . . . . . 643.6.2 Instantiation par un modèle à <strong>de</strong>ux états . . . . . . . . . . . 653.7 Résultats <strong>de</strong> simulation . . . . . . . . . . . . . . . . . . . . . . . . . 653.8 Conclusion . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 684 Co<strong>de</strong>s à eacements à décodage hybri<strong>de</strong> avec matrice génératrice ban<strong>de</strong> 714.1 Introduction . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 714.2 Construction <strong>de</strong>s co<strong>de</strong>s à matrice ban<strong>de</strong> . . . . . . . . . . . . . . . . 734.2.1 Dénitions et <strong>pro</strong>positions . . . . . . . . . . . . . . . . . . . 734.2.2 Schéma général du co<strong>de</strong> . . . . . . . . . . . . . . . . . . . . 744.2.3 Construction <strong>de</strong>s matrices . . . . . . . . . . . . . . . . . . . 764.2.4 Adaptation et optimisations . . . . . . . . . . . . . . . . . . 77


ivTable <strong>de</strong>s matières4.3 Analyse théorique . . . . . . . . . . . . . . . . . . . . . . . . . . . . 794.3.1 Capacités <strong>de</strong> correction théorique . . . . . . . . . . . . . . . 794.3.2 Complexité théorique . . . . . . . . . . . . . . . . . . . . . . 804.4 Résultats obtenus . . . . . . . . . . . . . . . . . . . . . . . . . . . . 804.4.1 Méthodologie <strong>de</strong> test . . . . . . . . . . . . . . . . . . . . . . 804.4.2 Capacités <strong>de</strong> correction . . . . . . . . . . . . . . . . . . . . . 814.4.3 Vitesses <strong>de</strong> décodage . . . . . . . . . . . . . . . . . . . . . . 824.5 Conclusion . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 835 Co<strong>de</strong>s <strong>de</strong> Reed-Muller pour le canal à eacements <strong>de</strong> paquets 855.1 Introduction . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 855.2 Présentation du co<strong>de</strong> . . . . . . . . . . . . . . . . . . . . . . . . . . 865.2.1 Présentation <strong>de</strong>s co<strong>de</strong>s <strong>de</strong> Reed-Muller . . . . . . . . . . . . 865.2.2 Utilisation du décodage par permutations . . . . . . . . . . . 895.2.3 Remontée partielle <strong>de</strong> l'information . . . . . . . . . . . . . . 915.2.4 Décodage à blanc du co<strong>de</strong> . . . . . . . . . . . . . . . . . . . 925.3 Résultats <strong>de</strong> simulation . . . . . . . . . . . . . . . . . . . . . . . . . 925.4 Conclusion . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 956 Co<strong>de</strong>s à eacements MDS basés sur les FNT 976.1 Introduction . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 976.2 Construction <strong>de</strong>s co<strong>de</strong>s RS-FNT . . . . . . . . . . . . . . . . . . . . 986.2.1 La transformée <strong>de</strong> Fourier sur Fq . . . . . . . . . . . . . . . 986.2.2 La FNT sur F 65537 . . . . . . . . . . . . . . . . . . . . . . . 1016.2.3 L'algorithme <strong>de</strong> décodage <strong>de</strong> la FNT . . . . . . . . . . . . . 1026.2.4 Construction d'un co<strong>de</strong> systématique . . . . . . . . . . . . . 1086.2.5 Encodage/décodage quadratique en tant que co<strong>de</strong> <strong>de</strong> Reed-Solomon . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1106.3 Etu<strong>de</strong> <strong>de</strong> la complexité théorique . . . . . . . . . . . . . . . . . . . . 1106.4 Résultats <strong>de</strong> simulation . . . . . . . . . . . . . . . . . . . . . . . . . 1116.5 Conclusion . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1147 Conclusion et perspectives 1157.1 Résumé <strong>de</strong>s contributions et perspectives futures . . . . . . . . . . . 1157.2 Contributions diverses . . . . . . . . . . . . . . . . . . . . . . . . . . 1177.2.1 Publications . . . . . . . . . . . . . . . . . . . . . . . . . . . 1177.2.2 Logiciels . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 117Bibliographie 119


Table <strong>de</strong>s gures2.1 Représentation du canal binaire à eacements . . . . . . . . . . . . . 72.2 Représentation <strong>de</strong> l'encodage et du décodage d'un co<strong>de</strong> à eacements 112.3 Graphe <strong>de</strong> Tanner d'un co<strong>de</strong> LDPC . . . . . . . . . . . . . . . . . . 172.4 Exemple <strong>de</strong> décodage itératif sur un graphe <strong>de</strong> Tanner . . . . . . . . 192.5 Exemple <strong>de</strong> stopping set dans un graphe <strong>de</strong> Tanner d'un co<strong>de</strong> LDPC 212.6 Schéma général <strong>de</strong> l'enco<strong>de</strong>ur Raptor . . . . . . . . . . . . . . . . . 232.7 Matrice A du co<strong>de</strong> Raptor . . . . . . . . . . . . . . . . . . . . . . . 252.8 Exemple <strong>de</strong> matrice A pour k = 500 et l = 553 . . . . . . . . . . . . 252.9 Matrice <strong>de</strong> l'enco<strong>de</strong>ur global Raptor pour k = 500 et n = 1000 symbolesgénérés . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 262.10 Schéma général <strong>de</strong> l'en-tête TCP/IPv4 . . . . . . . . . . . . . . . . 292.11 Schéma général <strong>de</strong> l'en-tête CTCP . . . . . . . . . . . . . . . . . . . 302.12 Schéma général <strong>de</strong> l'en-tête COMPRESSED_RTP . . . . . . . . . . 342.13 Schéma général <strong>de</strong> l'en-tête COMPRESSED_UDP . . . . . . . . . . 352.14 Octet <strong>de</strong> drapeaux eCRTP . . . . . . . . . . . . . . . . . . . . . . . 352.15 Machine à états du compresseur ROHC . . . . . . . . . . . . . . . . 372.16 Machine à états du décompresseur ROHC . . . . . . . . . . . . . . . 382.17 Machine à états du compresseur en mo<strong>de</strong> Unidirectionnel . . . . . . . 382.18 Machine à états du compresseur en mo<strong>de</strong> Optimiste . . . . . . . . . 392.19 Machine à états du compresseur en mo<strong>de</strong> Fiable . . . . . . . . . . . 393.1 Représentation du <strong>pro</strong>tocole <strong>de</strong> compression d'en-têtes dans un modèleOSI d'émetteur/récepteur simplié . . . . . . . . . . . . . . . . 453.2 Modélisation du canal <strong>de</strong> liaison à eacements par un modèle <strong>de</strong>Gilbert-Elliott basé sur une chaîne <strong>de</strong> Markov à <strong>de</strong>ux états . . . . . . 463.3 Machine à états du modèle <strong>de</strong> compresseur . . . . . . . . . . . . . . 473.4 Chronographe du modèle <strong>de</strong> compresseur en mo<strong>de</strong> Unidirectionnel . . 493.5 Mécanisme <strong>de</strong> récupération du contexte suite à la perte d'un paquetIR ou FO . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 513.6 Mécanisme <strong>de</strong> récupération du contexte suite à la perte d'un paquet SO 563.7 Principe <strong>de</strong>s pertes masquées . . . . . . . . . . . . . . . . . . . . . . 603.8 Ratio P ER=F ER pour les trois mo<strong>de</strong>s <strong>de</strong> transmission, en fonction<strong>de</strong> m et du RT T . . . . . . . . . . . . . . . . . . . . . . . . . . . . 663.9 Ecacité <strong>de</strong> la compression <strong>de</strong>s trois mo<strong>de</strong>s <strong>de</strong> transmission, en fonction<strong>de</strong> m et du RT T . . . . . . . . . . . . . . . . . . . . . . . . . . 663.10 Temps moyen <strong>de</strong> resynchronisation pour les trois mo<strong>de</strong>s <strong>de</strong> transmission,en fonction <strong>de</strong> m et du RT T . . . . . . . . . . . . . . . . . . . 673.11 Inuence du mécanisme <strong>de</strong> récupération sur le taux d'erreur en sortie 684.1 Matrice <strong>de</strong> Toeplitz triangulaire inférieure . . . . . . . . . . . . . . . 73


viTable <strong>de</strong>s gures4.2 Matrice <strong>de</strong> parité associée à une matrice génératrice ban<strong>de</strong>, la partie<strong>de</strong> gauche est ban<strong>de</strong>, la partie <strong>de</strong> droite est <strong>de</strong> Toeplitz triangulaireinférieure . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 764.3 Matrice M <strong>de</strong> largeur B dont les premières et <strong>de</strong>rnières lignes ont étéremplacées par <strong>de</strong>s lignes <strong>de</strong> largeur <strong>de</strong> ban<strong>de</strong> B/2 . . . . . . . . . . 784.4 Vitesse <strong>de</strong> décodage moyenne, k=2000 symboles, symboles <strong>de</strong> 1024octets, ren<strong>de</strong>ment 1 2. . . . . . . . . . . . . . . . . . . . . . . . . . 825.1 Représentation <strong>de</strong> la décomposition récursive du co<strong>de</strong> RM(2; 4) . . . 895.2 Taux d'échec <strong>de</strong>s diérents algorithmes pour le co<strong>de</strong> RM(3; 7) enfonction du nombre d'extra-symboles . . . . . . . . . . . . . . . . . . 936.1 Schéma <strong>de</strong> l'enco<strong>de</strong>ur systématique RS-FNT . . . . . . . . . . . . . 1096.2 Schéma du déco<strong>de</strong>ur systématique RS-FNT . . . . . . . . . . . . . . 1096.3 Vitesse d'encodage <strong>de</strong>s diérents co<strong>de</strong>s <strong>de</strong> Reed-Solomon et du co<strong>de</strong>RS-FNT, en fonction <strong>de</strong> la dimension du co<strong>de</strong>, taux <strong>de</strong> codage 1 , 2symboles <strong>de</strong> 1500 octets . . . . . . . . . . . . . . . . . . . . . . . . 1126.4 Vitesse <strong>de</strong> décodage <strong>de</strong>s diérents co<strong>de</strong>s <strong>de</strong> Reed-Solomon et du co<strong>de</strong>RS-FNT, en fonction <strong>de</strong> la dimension du co<strong>de</strong>, taux <strong>de</strong> codage 1 , 2symboles <strong>de</strong> 1500 octets . . . . . . . . . . . . . . . . . . . . . . . . 113


Liste <strong>de</strong>s tableaux2.1 Répartition <strong>de</strong>s champs RTP/UDP/IP dans ROHC . . . . . . . . . . 404.1 Inecacité moyenne en fonction du déco<strong>de</strong>ur utilisé, k=1000, R= 1 2 . . 814.2 Inecacité moyenne en fonction du déco<strong>de</strong>ur utilisé, k=2000, R= 1 2 . . 814.3 Vitesse <strong>de</strong> décodage ML moyenne en fonction <strong>de</strong> la dimension du co<strong>de</strong>,symboles <strong>de</strong> 1024 octets, ren<strong>de</strong>ment 1 2 . . . . . . . . . . . . . . . . . 834.4 Vitesse <strong>de</strong> décodage itérative moyenne en fonction <strong>de</strong> la dimension duco<strong>de</strong>, symboles <strong>de</strong> 1024 octets, ren<strong>de</strong>ment 1 2. . . . . . . . . . . . . 835.1 Vitesse <strong>de</strong> décodage et extra-symboles moyens pour diérents co<strong>de</strong>sRM . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 945.2 Vitesses <strong>de</strong> décodage pour le co<strong>de</strong> RM(6; 9) en fonction <strong>de</strong> la taille<strong>de</strong>s paquets . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 946.1 Complexité théorique <strong>de</strong> l'enco<strong>de</strong>ur et du déco<strong>de</strong>ur RS-FNT . . . . . 1116.2 Complexité théorique <strong>de</strong> l'enco<strong>de</strong>ur et du déco<strong>de</strong>ur RS-FNT, taux <strong>de</strong>codage 1 2. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 111


Chapitre 1IntroductionLes thèses les plus fausses sont souvent les plus belles.Pierre DANINOS.Sommaire1.1 Présentation <strong>de</strong> la <strong>pro</strong>blématique et <strong>de</strong>s objectifs . . . . . . 11.2 Organisation du document . . . . . . . . . . . . . . . . . . . . 21.1 Présentation <strong>de</strong> la <strong>pro</strong>blématique et <strong>de</strong>s objectifsDepuis les années 1950 et l'avènement <strong>de</strong> la théorie <strong>de</strong> l'information [1], la question<strong>de</strong> la abilisation <strong>de</strong>s transmissions est allée <strong>de</strong> pair avec l'évolution <strong>de</strong>s technologieset <strong>de</strong>s applications.La abilisation <strong>de</strong>s transmissions couvre l'ensemble <strong>de</strong>s techniques permettant <strong>de</strong>lutter contre les erreurs et les pertes d'un canal <strong>de</strong> transmission. Ces canaux <strong>de</strong> transmissionpeuvent être d'une très gran<strong>de</strong> variété : laires ou sans-l, point-à-point ouavec relais, unidirectionnels, bidirectionnels ou même en multi-diusion. Ce vaste environnementappelle en conséquence un large panel <strong>de</strong> métho<strong>de</strong>s <strong>de</strong> abilisation. Parmices métho<strong>de</strong>s, la abilisation <strong>pro</strong>-active consiste à mettre en place <strong>de</strong>s mécanismes<strong>de</strong> redondance au niveau d'un émetteur, celle-ci permettant <strong>de</strong> compenser à priori lespertes subies par le canal. La abilisation <strong>pro</strong>-active trouve son sens lorsque l'émetteurne peut avoir d'information sur l'état actuel du canal <strong>de</strong> transmission parce que latransmission est unidirectionnelle ou sans voie <strong>de</strong> retour possible, mais aussi lorsqu'unémetteur doit s'adapter aux contraintes <strong>de</strong> plusieurs récepteurs dans le cadre <strong>de</strong> scénarios<strong>de</strong> multi-diusion, ou lorsque elle est inutile du fait <strong>de</strong> contraintes temporelles.Un moyen <strong>de</strong> se prémunir <strong>de</strong>s pertes engendrées sur un canal <strong>de</strong> transmission est donc<strong>de</strong> rajouter une information complémentaire en se basant sur une connaissance à prioridu canal et <strong>de</strong> l'application visée.Initialement, les mécanismes <strong>de</strong> abilisation <strong>pro</strong>-<strong>actifs</strong> désignent donc l'ensemble<strong>de</strong>s métho<strong>de</strong>s permettant <strong>de</strong> créer <strong>de</strong> l'information complémentaire, i.e. <strong>de</strong> la redondance,transmise conjointement à l'information initiale. Cette famille est généralementconnue sous le nom <strong>de</strong> co<strong>de</strong>s correcteurs. La <strong>pro</strong>blématique associée à ces co<strong>de</strong>s estalors une <strong>pro</strong>blématique d'optimisation : il s'agit <strong>de</strong> créer <strong>de</strong>s co<strong>de</strong>s exibles permettantune génération rapi<strong>de</strong> <strong>de</strong> la redondance par l'émetteur et une récupération <strong>de</strong>sdonnées initiales par le récepteur à faible coût, tout en conservant la meilleure capacité


2 Chapitre 1. Introduction<strong>de</strong> correction possible. La capacité <strong>de</strong> correction d'un co<strong>de</strong> est la capacité d'un co<strong>de</strong>à être décodable avec un minimum <strong>de</strong> données reçues parmi l'information initiale et laredondance. Ceci permet une première distinction entre <strong>de</strong>ux gran<strong>de</strong>s familles <strong>de</strong> co<strong>de</strong>scorrecteurs : les co<strong>de</strong>s dits à Maximum Distance Séparable (MDS) qui permettent <strong>de</strong>retrouver les données initiales à partir <strong>de</strong> n'importe quelle information reçue <strong>de</strong> tailleégale à la taille initiale, et les co<strong>de</strong>s non-MDS pour lesquels le décodage nécessitegénéralement <strong>de</strong> l'information supplémentaire. Si les premiers co<strong>de</strong>s sont optimaux etsemblent répondre à la <strong>pro</strong>blématique, leur inconvénient est d'être d'une complexitéélevée, et en pratique, ces co<strong>de</strong>s sont souvent limités à une <strong>pro</strong>tection <strong>de</strong> quelquescentaines d'éléments. La secon<strong>de</strong> famille permet quant à elle une plus gran<strong>de</strong> exibilité,et les complexités associées peuvent être bien plus faibles que celle <strong>de</strong>s co<strong>de</strong>sMDS. Toute la <strong>pro</strong>blématique <strong>de</strong> ces co<strong>de</strong>s est donc <strong>de</strong> se rap<strong>pro</strong>cher le plus possible<strong>de</strong> la capacité <strong>de</strong> correction <strong>de</strong>s co<strong>de</strong>s optimaux tout en gardant une complexité mathématiquefaible. Selon le type d'application visé, l'intérêt pour l'une ou l'autre <strong>de</strong>sfamilles <strong>de</strong> co<strong>de</strong>s sera par ailleurs diérent.La gestion <strong>de</strong> la quantité <strong>de</strong> redondance et <strong>de</strong> la abilité se pose dans plusieursdomaines <strong>de</strong>s transmissions réseau. Un domaine particulièrement intéressant est celui<strong>de</strong> la compression d'entête où les mécanismes déployées doivent permettre d'atteindrela meilleur com<strong>pro</strong>mis entre le niveau <strong>de</strong> compression et celui <strong>de</strong> la abilité. Ce <strong>pro</strong>blèmese pose, par exemple, dans le contexte <strong>de</strong>s réseaux satellitaires où la question <strong>de</strong>l'utilisation <strong>de</strong> la ban<strong>de</strong> passante utilisée et du coût engendré est cruciale. Ainsi, <strong>de</strong>smécanismes <strong>de</strong> compression <strong>pro</strong>tocolaire peuvent être mis en place an <strong>de</strong> diminuerla <strong>pro</strong>portion <strong>de</strong> trac engendrée par les en-têtes <strong>pro</strong>tocolaires. Un en-tête TCP/IPv4a une taille nominale <strong>de</strong> 40 octets, et la compression d'en-têtes permet une réduction<strong>de</strong> l'en-tête moyen jusqu'à 2-3 octets. On voit donc ici tout l'intérêt du déploiement<strong>de</strong> ce type <strong>de</strong> mécanismes, notamment pour les petits paquets. En contrepartie, cettecompression s'accompagne d'une baisse <strong>de</strong> la abilité <strong>de</strong> la connexion correspondante.En eet, comme tous les champs <strong>pro</strong>tocolaires ne sont pas répétés pour chaque paquet,lorsque une perte surgit, celle-ci peut avoir <strong>de</strong>s conséquences sur la récupération<strong>de</strong>s en-têtes suivants, si ceux-ci dépen<strong>de</strong>nt <strong>de</strong> l'en-tête perdu. Dans ce contexte, laabilisation <strong>de</strong> la transmission consiste en l'étu<strong>de</strong> <strong>de</strong> l'impact <strong>de</strong> cette compressionau niveau <strong>pro</strong>tocolaire sur la transmission <strong>de</strong>s données, sa modélisation et sa paramétrisation.Un point important concerne également la comparaison entre mécanismesavec et sans voie <strong>de</strong> retour et l'impact du temps <strong>de</strong> latence sur la comparaison entrechaque mécanisme.1.2 Organisation du documentDans le Chapitre 2, nous présenterons les principaux concepts <strong>de</strong> la théorie <strong>de</strong>l'information, <strong>de</strong>s co<strong>de</strong>s à eacements, et <strong>de</strong> la compression <strong>pro</strong>tocolaire. Nous étudieronségalement les principales contributions à ces <strong>pro</strong>blématiques <strong>de</strong> abilisation.Dans le Chapitre 3, nous présenterons les mécanismes <strong>de</strong> compression d'en-têteset leur fonctionnement, et nous <strong>pro</strong>poserons un modèle mathématique permettant


1.2. Organisation du document 3une étu<strong>de</strong> et une paramétrisation <strong>de</strong>s mécanismes <strong>de</strong> compression.Dans le Chapitre 4, nous présenterons un co<strong>de</strong> correcteur qui a la particularitéd'être décodable <strong>de</strong> manière hybri<strong>de</strong>, grâce à une matrice génératrice comprenant unepartie contrainte dans une ban<strong>de</strong>, mais aussi une matrice <strong>de</strong> parité creuse, permettantun décodage itératif.Dans le Chapitre 5, nous présenterons un co<strong>de</strong> correcteur sur les canaux à eacements,basé sur les co<strong>de</strong>s <strong>de</strong> Reed-Muller, d'une complexité minime. Nous présenteronsplusieurs mécanismes visant à améliorer les performances intrinsèques du co<strong>de</strong>.La simplicité <strong>de</strong> ce co<strong>de</strong> lui permet d'être un candidat <strong>de</strong> choix pour <strong>de</strong>s co<strong>de</strong>s <strong>de</strong>petite taille et tout particulièrement à fort taux <strong>de</strong> codage.Dans le chapitre 6, nous présenterons un co<strong>de</strong> correcteur à Maximum DistanceSéparable (MDS), basé sur la transformée <strong>de</strong> Fourier rapi<strong>de</strong>, permettant l'utilisation<strong>de</strong> co<strong>de</strong>s optimaux jusqu'à <strong>de</strong>s tailles <strong>de</strong> blocs <strong>de</strong> plusieurs milliers d'éléments.Le <strong>de</strong>rnier chapitre permettra <strong>de</strong> présenter l'ensemble <strong>de</strong>s conclusions <strong>de</strong> ces travaux,ainsi que les perspectives futures.


Chapitre 2Etat <strong>de</strong> l'art et principales notionsWhat we do in life echoes in eternity.Maximus Decimus Meridius.Sommaire2.1 La théorie <strong>de</strong> l'information . . . . . . . . . . . . . . . . . . . . 52.2 Les co<strong>de</strong>s à eacements . . . . . . . . . . . . . . . . . . . . . . 62.2.1 Capacité du canal à eacements . . . . . . . . . . . . . . . . 72.2.2 Le canal à eacements <strong>de</strong> paquets . . . . . . . . . . . . . . . 82.2.3 Quelques dénitions pour les canaux à eacements <strong>de</strong> paquets 82.2.4 Les co<strong>de</strong>s à eacements MDS . . . . . . . . . . . . . . . . . . 112.2.5 Les co<strong>de</strong>s à eacements non-MDS . . . . . . . . . . . . . . . 142.3 La compression d'en-têtes . . . . . . . . . . . . . . . . . . . . 272.3.1 Introduction . . . . . . . . . . . . . . . . . . . . . . . . . . . 272.3.2 Compressed TCP / Van Jacobson . . . . . . . . . . . . . . . 282.3.3 IPHC/CRTP/eCRTP . . . . . . . . . . . . . . . . . . . . . . 312.3.4 ROHC . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 372.1 La théorie <strong>de</strong> l'informationSi les <strong>pro</strong>blématiques étudiées par les diérents chapitres <strong>de</strong> ce manuscrit peuventêtre variées, elles ont toutes pour origine la théorie <strong>de</strong> l'information. Ainsi, il semblenécessaire dans un premier temps <strong>de</strong> présenter les principales notions <strong>de</strong> cette théorie.Il est communément admis que la théorie <strong>de</strong> l'information est née en 1948 suiteaux travaux fondateurs <strong>de</strong> Clau<strong>de</strong> Shannon [1]. Dans article, Shannon démontre quepour n'importe quel type <strong>de</strong> canal <strong>de</strong> transmission, il était possible <strong>de</strong> transmettre surce canal avec un taux d'erreur arbitrairement <strong>pro</strong>che <strong>de</strong> zéro si tant est que le taux<strong>de</strong> codage utilisé était inférieur à un seuil appelé capacité du canal.Malheureusement, si leur existence a été démontrée, la construction <strong>de</strong> co<strong>de</strong>s correcteursperformants voire optimaux à la fois en termes <strong>de</strong> capacité <strong>de</strong> correctiond'erreurs et <strong>de</strong> complexité mathématique reste un <strong>pro</strong>blème ouvert.Tout d'abord, toute transmission se base sur un canal <strong>de</strong> transmission. Ce canalpeut être modélisé par le triplet : un ensemble d'entrées à valeurs dans un alphabet A,


6 Chapitre 2. Etat <strong>de</strong> l'art et principales notionsun ensemble <strong>de</strong> sorties à valeurs dans un second alphabet B et une loi <strong>de</strong> transitiondénissant la <strong>pro</strong>babilité d'obtenir une sortie Y 2 B, sachant que la valeur d'entréeest X 2 A. Cette <strong>pro</strong>babilité peut se noter P (Y jX). La connaissance du canal nousdonne ainsi la loi <strong>de</strong> transition pour chaque couple (X; Y ).Soit une variable aléatoire X à valeurs dans (x 0 ; x 1 ; :::; x n ) un ensemble ni <strong>de</strong>valeurs. On dénit l'entropie <strong>de</strong> X, notée H(X), qui mesure l'incertitu<strong>de</strong> sur la variableX par la formulation suivante :H(X) =n∑P (X = x i ) log 2 P (X = x i )i=0L'entropie est une fonction positive qui s'annule si et seulement si X est déterminéeou en d'autres termes si 9i 2 f0; 1; :::; ng=P (X = x i ) = 1. Par ailleurs, l'entropie peutêtre vue comme le nombre minimal <strong>de</strong> bits nécessaires au codage <strong>de</strong> X.De manière générale, l'objectif du récepteur/déco<strong>de</strong>ur est <strong>de</strong> déduire la valeurd'entrée X qui a été transmise en fonction <strong>de</strong> la valeur Y <strong>de</strong> l'alphabet <strong>de</strong> sortiequ'il a reçue. Pour cela, on dénit alors l'information mutuelle <strong>de</strong>s variables X et Y ,notée I(X; Y ) qui représente l'information que l'on peut déduire sur X à partir <strong>de</strong> Y .L'information mutuelle s'exprime <strong>de</strong> la manière suivante :I(X; Y ) = H(X) H(XjY )Lorsque le canal <strong>de</strong> transmission est sans erreur, la connaissance <strong>de</strong> Y permetd'obtenir X <strong>de</strong> manière déterministe : H(XjY ) = 0. L'information mutuelle est alorsmaximale. Dans le pire cas, le canal est tellement mauvais que la connaissance <strong>de</strong> Yn'apporte aucune information sur X et dans ce cas, H(XjY ) = H(X), l'informationmutuelle est nulle rendant toute transmission impossible.La capacité C d'un canal <strong>de</strong> transmission se dénit <strong>de</strong> la manière suivante :C = max(I(X; Y ))XDans le cadre d'un canal parfait, la capacité du canal est optimale C = max X (H(X))alors qu'elle est nulle lorsque l'entrée et la sortie sont totalement décorellées.2.2 Les co<strong>de</strong>s à eacementsDe manière générale, les co<strong>de</strong>s correcteurs d'erreurs désignent l'ensemble <strong>de</strong>s mécanismesmathématiques permettant la correction <strong>de</strong> diérents types d'erreurs pouvantaecter un ensemble <strong>de</strong> données. Ces co<strong>de</strong>s sont ainsi capables <strong>de</strong> détecter etcorriger <strong>de</strong>s erreurs <strong>de</strong> transmission, mais également <strong>de</strong>s pertes d'information. Dansce <strong>de</strong>rnier cas, la famille <strong>de</strong> co<strong>de</strong>s correspondante est connue sous la dénomination<strong>de</strong> co<strong>de</strong>s correcteurs pour le canal à eacements, ou plus singulièrement co<strong>de</strong>s àeacements.


2.2. Les co<strong>de</strong>s à eacements 7Figure 2.1 Représentation du canal binaire à eacementsDans cette partie, nous nous eorcerons donc <strong>de</strong> présenter les concepts relatifsaux co<strong>de</strong>s correcteurs et plus particulièrement aux co<strong>de</strong>s à eacements. Nous eectueronségalement une présentation <strong>de</strong>s principales familles <strong>de</strong> co<strong>de</strong>s à eacements ,qui serviront <strong>de</strong> référence pour la suite <strong>de</strong> ce manuscrit.2.2.1 Capacité du canal à eacementsSuite aux résultats fondateurs concernant la théorie <strong>de</strong> l'information, présentésdans la partie 2.1, Peter Elias, en 1955, présente un modèle <strong>de</strong> canal binaire à eacements[2], connu sous le nom <strong>de</strong> Binary Erasure Channel (BEC). Sur ce canal, leserreurs modélisées correspon<strong>de</strong>nt à une perte d'information. Il n'y a pas d'altération<strong>de</strong> l'information reçue : si celle-ci est reçue, elle est considérée comme correcte.Nous considérons un canal à eacements <strong>de</strong> paramètre p, c'est à dire que la <strong>pro</strong>babilitéqu'un bit soit eacé est égale à p. Ce canal possè<strong>de</strong> donc un alphabet d'entréeA = f0; 1g et un alphabet <strong>de</strong> sortie B = f0; ; 1g. L'état <strong>de</strong> sortie correspond à celuid'un bit eacé/perdu. En accord avec la Figure 2.1, la loi <strong>de</strong> transition du canal àeacements binaire est :P (Y = 0jX = 0) = 1 pP (Y = jX = 0) = pP (Y = jX = 1) = pP (Y = 1jX = 1) = 1 pDans le cadre du canal binaire uniforme nous avons H(X) = H(Y ) = 1. La capacitédu canal BEC s'exprime vaut donc :C = max((1 p)H(X)) = 1 pXEn d'autres termes, sur le canal à eacements dont la <strong>pro</strong>babilité d'eacementsest p, la capacité correspondante est 1 p.


8 Chapitre 2. Etat <strong>de</strong> l'art et principales notions2.2.2 Le canal à eacements <strong>de</strong> paquetsDans la majorité <strong>de</strong>s applications, les pertes considérées ne concernent pas <strong>de</strong>sbits isolés mais plutôt <strong>de</strong>s groupements <strong>de</strong> bits, pouvant aller jusqu'à plusieurs millions<strong>de</strong> bits. Il est alors judicieux d'introduire un modèle plus général que le canal àeacements : le canal à eacements <strong>de</strong> paquets.Dans ce cadre, les groupements <strong>de</strong> bits se font dans ce qu'on appelle <strong>de</strong>s paquets.Les pertes imputables à ce canal correspon<strong>de</strong>nt alors à <strong>de</strong>s pertes <strong>de</strong> paquets. Pardénition, lorsque un paquet est reçu, il n'est pas altéré, ce qui est garanti en pratiquepar un mécanisme <strong>de</strong> vérication d'intégrité : lorsque une erreur est détectée dans unpaquet, celui-ci est alors eacé.Dès lors, par la suite, les opérations sur le canal à eacements <strong>de</strong> paquets peuventêtre vues comme les opérations sur la canal à eacements binaire sur les bits <strong>de</strong> mêmeposition dans leur paquet correspondant, celles-ci étant eectuées alors en parallèle.Nous verrons par la suite que ceci à une inci<strong>de</strong>nce très forte sur les résultats pratiques<strong>de</strong> vitesse <strong>de</strong>s co<strong>de</strong>s correcteurs étudiés.Les contextes d'utilisation du canal à eacements <strong>de</strong> paquets sont très larges, onpourra alors citer parmi les exemples d'utilisation : L'ensemble <strong>de</strong>s réseaux <strong>de</strong> communication mo<strong>de</strong>rnes. En eet, la plupart <strong>de</strong>s<strong>pro</strong>tocoles mo<strong>de</strong>rnes (TCP,UDP,...) considèrent que, dès lors qu'une erreur binaireest détectée, le paquet <strong>pro</strong>tocolaire associée est eacé et n'est pas communiquéà la pile <strong>pro</strong>tocolaire <strong>de</strong> niveau supérieur. Ces <strong>pro</strong>tocoles fonctionnentdonc comme <strong>de</strong>s canaux à eacements <strong>de</strong> paquets naturels. Les mécanismes <strong>de</strong> stockage et <strong>de</strong> partage distribués. Le principe <strong>de</strong> ces applicationsest <strong>de</strong> considérer l'information comme répartie sur un nombre conséquentd'unités <strong>de</strong> stockage, qui peuvent à tout moment, être indisponibles. Là aussi,la liation avec les canaux à eacements <strong>de</strong> paquets est naturelle. L'informationpeut être stockée localement, comme par exemple, pour <strong>de</strong>s mécanismes<strong>de</strong> type RAID, ou globalement, comme dans les systèmes P2P.2.2.3 Quelques dénitions pour les canaux à eacements <strong>de</strong> paquetsDénition 2.1. On appelle corps ni (ou <strong>de</strong> Galois) un ensemble ni d'éléments surlequel sont dénies l'addition, la soustraction, la multiplication et la division. Pourchaque entier premier p et entier m, il existe un unique corps ni (à un isomorphismeprès) contenant q = p m éléments, et noté GF (q) ou plus communément Fq.Trois cas particuliers vont nous intéresser pour la suite <strong>de</strong>s travaux.Lorsque m = 1, le corps ni est équivalent à celui <strong>de</strong>s entiers dont les opérationssont dénies modulo p. Nous étudierons plus précisément ce type <strong>de</strong> corps dans lechapitre 6.Lorsque p = 2, les éléments du corps sont donc <strong>de</strong>s combinaisons <strong>de</strong> m bits. Enconséquence, l'addition et la soustraction dans ce corps sont équivalentes au XOR


2.2. Les co<strong>de</strong>s à eacements 9bit à bit, qui est très ecace dans une implémentation pratique sur <strong>pro</strong>cesseur. Encontrepartie, la multiplication et la division sont moins directes que dans le cas précé<strong>de</strong>nt.Enn, lorsque à la fois p = 2 et m = 1, le corps ni est réduit au corps <strong>de</strong>s binairesF 2 = f0; 1g.Dénition 2.2. On appelle élément primitif ou générateur d'un corps ni Fq, unélément tel que Fq = f1; ; 2 ; :::; n 1 g. En d'autres termes, il est possible <strong>de</strong>décrire chaque élément du corps ni comme une puissance <strong>de</strong> . Tout corps nicontient au moins un élément primitif.Les travaux présentés par la suite concernent les co<strong>de</strong>s correcteurs <strong>pro</strong>tégeantune quantité nie <strong>de</strong> données à la fois. Ces co<strong>de</strong>s sont donc appelés co<strong>de</strong>s bloc. Lesco<strong>de</strong>s bloc linéaires bénécient d'une structure d'espace vectoriel qui en font <strong>de</strong>s co<strong>de</strong>sparticulièrement pratiques à utiliser.Dénition 2.3. On appelle co<strong>de</strong> bloc linéaire C <strong>de</strong> longueur n et <strong>de</strong> dimension k unsous-espace vectoriel <strong>de</strong> dimension k <strong>de</strong> l'espace vectoriel F n q . Les éléments <strong>de</strong> C sontappelés mots du co<strong>de</strong>.Dénition 2.4. On appelle symbole les éléments du corps ni sur lequel travaillele co<strong>de</strong>. Ces symboles composent les mots du co<strong>de</strong>. Ainsi dans le cadre du co<strong>de</strong> àeacements <strong>de</strong> paquets, chaque paquet est assimilé à un symbole ou découpé engroupes <strong>de</strong> symboles, selon l'application. Les eacements <strong>de</strong> paquets, correspon<strong>de</strong>ntalors à l'eacement <strong>de</strong> l'ensemble <strong>de</strong> ses symboles.A partir <strong>de</strong> sa longueur et <strong>de</strong> sa dimension, on peut dénir le ren<strong>de</strong>ment (ouratio/taux <strong>de</strong> codage) d'un co<strong>de</strong>. Ce ren<strong>de</strong>ment permet d'obtenir la quantité <strong>de</strong> redondanceajoutée par le co<strong>de</strong>.Dénition 2.5. On appelle ren<strong>de</strong>ment d'un co<strong>de</strong> <strong>de</strong> dimension k et <strong>de</strong> longueur n lerapport R = k=n.Dénition 2.6. On appelle matrice génératrice du co<strong>de</strong>, la matrice <strong>de</strong> l'applicationlinéaire <strong>de</strong> F k q dans Fn q dont l'image est le co<strong>de</strong>. La multiplication d'un élément sourcepar cette matrice est connue sous le nom d'encodage. Les lignes <strong>de</strong> la matrice génératriceG 2 M(Fq) k;n d'un co<strong>de</strong> linéaire <strong>de</strong> paramètres n et k forment une base <strong>de</strong>l'espace vectoriel du co<strong>de</strong>.Soit X un élément source <strong>de</strong> F k q et G la matrice génératrice d'un co<strong>de</strong> (k; n). Xest encodé en un mot <strong>de</strong> l'espace <strong>de</strong> sortie Y 2 F n q par la multiplication à gauche parla matrice génératrice du co<strong>de</strong> : Y = XG.Dénition 2.7. Un co<strong>de</strong> linéaire est dit systématique, lorsque pour chaque vecteur <strong>de</strong>l'espace source, chaque symbole <strong>de</strong> ce vecteur se trouve parmi les symboles encodé.La matrice génératrice d'un tel co<strong>de</strong> contient donc, à une permutation près, la matricei<strong>de</strong>ntité. Plus précisément la matrice génératrice G s peut s'exprimer sous la forme :


10 Chapitre 2. Etat <strong>de</strong> l'art et principales notionsG s = (Id k jM)De nombreux types <strong>de</strong> co<strong>de</strong>s utilisent cette structure <strong>de</strong> matrice génératrice, cependantune large famille <strong>de</strong> co<strong>de</strong>, notamment les co<strong>de</strong>s <strong>de</strong> type LDPC, utilisent lastructure suivante.Dénition 2.8. Soit C un co<strong>de</strong> <strong>de</strong> dimension k et <strong>de</strong> taille n. Une matrice H estappelée une matrice <strong>de</strong> parité <strong>de</strong> co<strong>de</strong> si et seulement si 8X 2 C; HX = 0 et H est <strong>de</strong>rang plein. En d'autres termes, H est une matrice <strong>de</strong> parité si et seulement si H est<strong>de</strong> rang plein et Ker (H) = fCgPropriété 2.9. Soit un co<strong>de</strong> systématique C <strong>de</strong> paramètres (k; n), dont la matricegénératrice G s'écrit sous la forme : G = (Id k jM). Alors la matrice H = ( M T jId n k )est une matrice <strong>de</strong> parité <strong>de</strong> ce co<strong>de</strong>.Démonstration. Directe.Le décodage d'un co<strong>de</strong> correcteur ayant comme objectif <strong>de</strong> retrouver la séquenceayant été la plus <strong>pro</strong>bablement envoyée, et donc la plus <strong>pro</strong>che <strong>de</strong> celle reçue, il estnécessaire d'introduire une notion <strong>de</strong> distance. Dans la théorie <strong>de</strong>s co<strong>de</strong>s, la mesureutilisée pour la distance est la distance <strong>de</strong> Hamming, basée sur le poids <strong>de</strong> Hamming.Dénition 2.10. Le poids <strong>de</strong> Hamming d'une chaîne <strong>de</strong> symboles sur un alphabetdonné est le nombre <strong>de</strong> symboles diérentes du symbole nul. Dans le cas du corps F 2 ,le poids <strong>de</strong> Hamming d'un vecteur est le nombre <strong>de</strong> bits à 1 du vecteur.Dénition 2.11. La distance <strong>de</strong> Hamming entre <strong>de</strong>ux vecteurs a et b <strong>de</strong> symboles estle poids <strong>de</strong> Hamming du vecteur a b.On montre aisément que cette dénition vérie les conditions nécessaires à unedistance (symétrie, nullité, inégalité triangulaire).L'application <strong>de</strong> la distance <strong>de</strong> Hamming à un co<strong>de</strong>, amène à s'intéresser à ladistance minimale d'un co<strong>de</strong>.Dénition 2.12. La distance minimale d min d'un co<strong>de</strong> linéaire est la distance <strong>de</strong>Hamming minimale existant entre <strong>de</strong>ux mots du co<strong>de</strong> distincts. Grâce à la structured'espace vectoriel du co<strong>de</strong>, elle est équivalente au poids minimal <strong>de</strong> l'ensemble <strong>de</strong>smots du co<strong>de</strong>.Cette distance minimale d'un co<strong>de</strong> a un impact direct sur la capacité <strong>de</strong> correctiond'un co<strong>de</strong>. En eet, celle-ci traduit la distance minimale existant entre <strong>de</strong>ux mots duco<strong>de</strong>, et donc dans le cadre d'un co<strong>de</strong> à eacements, celui-ci sera toujours capable<strong>de</strong> corriger un nombre d'eacements strictement inférieur à cette distance.Cette distance minimale possè<strong>de</strong> une borne supérieure qui dépend <strong>de</strong> la longueur et<strong>de</strong> la dimension du co<strong>de</strong>. Les co<strong>de</strong>s qui atteignent cette borne supérieure sont appelésco<strong>de</strong>s à maximum distance séparable (MDS) et possè<strong>de</strong>nt une capacité <strong>de</strong> correctionoptimale.


2.2. Les co<strong>de</strong>s à eacements 11Figure 2.2 Représentation <strong>de</strong> l'encodage et du décodage d'un co<strong>de</strong> à eacementsDénition 2.13. Un co<strong>de</strong> linéaire <strong>de</strong> longueur n et <strong>de</strong> dimension k est dit MDS si etseulement si n k = d min 1. On dit alors que le co<strong>de</strong> atteint la borne <strong>de</strong> Singleton[3].Dans le cadre <strong>de</strong>s co<strong>de</strong>s à eacements, un co<strong>de</strong> est dit MDS si et seulement si toutsous-ensemble <strong>de</strong> k éléments reçus parmi les n symboles encodés permet <strong>de</strong> déco<strong>de</strong>rles k symboles sources.Nous pouvons alors résumer le principe d'encodage et <strong>de</strong> décodage d'un co<strong>de</strong> àeacements grâce à la Figure 2.2.Cette notion <strong>de</strong> co<strong>de</strong> MDS est essentielle dans le cadre <strong>de</strong>s co<strong>de</strong>s à eacements,car les contraintes associées à ces co<strong>de</strong>s entraînent que leur champ d'applicationpratique est totalement diérent. Nous <strong>pro</strong>posons alors <strong>de</strong> séparer les co<strong>de</strong>s MDS etles co<strong>de</strong>s non-MDS pour la suite <strong>de</strong> notre étu<strong>de</strong>.2.2.4 Les co<strong>de</strong>s à eacements MDSIl a été <strong>pro</strong>uvé qu'en <strong>de</strong>hors <strong>de</strong>s cas triviaux (co<strong>de</strong> à répétition,...), il n'existe pas <strong>de</strong>co<strong>de</strong>s MDS sur le corps <strong>de</strong>s binaires. Ces co<strong>de</strong>s MDS possè<strong>de</strong>nt un intérêt théoriquecapital, en étant notamment, la clé d'un partage optimal <strong>de</strong> l'information [4] [5] [6].Dans le cas général, les principaux co<strong>de</strong>s MDS connus sont les co<strong>de</strong>s <strong>de</strong> Reed-Solomon et leurs extensions. Le principe <strong>de</strong> ces co<strong>de</strong>s a été introduit par Irvine Ree<strong>de</strong>t Gustave Solomon [7] en 1960. L'idée est <strong>de</strong> considérer chaque symbole d'un bloccomme un coecient d'un polynôme que l'on va sur-échantillonner. Le décodage seraalors équivalent à l'interpolation d'un polynôme <strong>de</strong> <strong>de</strong>gré k 1 sur au moins k positions.Les co<strong>de</strong>s <strong>de</strong> Reed-Solomon (RS) jouissent d'une gran<strong>de</strong> popularité et se retrouventdans <strong>de</strong>s milieux aussi variés que les CD ou les son<strong>de</strong>s Voyager. En eet,


12 Chapitre 2. Etat <strong>de</strong> l'art et principales notionsdès la n <strong>de</strong>s années 1960, la possibilité <strong>de</strong> déco<strong>de</strong>r ecacement <strong>de</strong> tels co<strong>de</strong>s surle canal à erreurs est apparue grâce notamment aux travaux <strong>de</strong> Berlekamp [8] [9] etMassey [10]. L'algorithme <strong>de</strong> Berlekamp-Massey permet ainsi d'eectuer le décodage<strong>de</strong>s co<strong>de</strong>s RS sur le canal à erreurs avec une complexité O(n log 2 n).Cependant les mécanismes utilisés par cet algorithme ne sont pas directementadaptables au canal à eacements. C'est ainsi qu'à ce jour, la plupart <strong>de</strong>s algorithmesactuels implémentant les co<strong>de</strong>s <strong>de</strong> Reed-Solomon sur les eacements sont <strong>de</strong> complexitéquadratique O(n 2 ). Des travaux ont été menés sur <strong>de</strong>s algorithmes à complexitésous-quadratique sur ce canal [11], dès les années 1980, mais à ce jour aucuneimplémentation majeure <strong>de</strong> ces résultats n'a été menée.Une <strong>de</strong>s raisons <strong>de</strong> ce manque <strong>de</strong> résultats pratique <strong>pro</strong>vient sûrement du fait queles co<strong>de</strong>s <strong>de</strong> Reed-Solomon sont très largement associés aux corps nis <strong>de</strong> type F 2 mqui, comme nous l'avons vu, sont très pratiques pour une implémentation machine,mais qui malheureusement ne permettent pas à ce jour <strong>de</strong> décodage sous-quadratiquesimple. Il faut toutefois noter que <strong>de</strong>s travaux récents [12] ont mis en évi<strong>de</strong>nce lapossibilité <strong>de</strong> créer <strong>de</strong>s co<strong>de</strong>s MDS avec un complexité associée <strong>de</strong> O(n log 2 n), grâceà l'utilisation <strong>de</strong>s transformées <strong>de</strong> Walsh.La métho<strong>de</strong> la plus courante pour créer un co<strong>de</strong> <strong>de</strong> Reed-Solomon sur le canalà eacements est <strong>de</strong> considérer directement la vue polynomiale du co<strong>de</strong>, grâce àl'utilisation d'une matrice <strong>de</strong> Van<strong>de</strong>rmon<strong>de</strong> comme matrice génératrice. Une ap<strong>pro</strong>chedétaillée <strong>de</strong> ces co<strong>de</strong>s a été présentée par Plank [13] [14]. Luigi Rizzo a <strong>pro</strong>posé uneimplémentation [15], qui sert à ce jour, <strong>de</strong> référence pour l'évaluation <strong>de</strong>s co<strong>de</strong>s RS.Ces co<strong>de</strong>s ont été standardisés auprès <strong>de</strong> l'IETF [16].Une matrice <strong>de</strong> Van<strong>de</strong>rmon<strong>de</strong> est une matrice V <strong>de</strong> taille m ¢ n construite à partird'un vecteur <strong>de</strong> taille m, ( 0 ; 1 ; :::; m 1 ). Dans notre cas, ce vecteur contiendra<strong>de</strong>s éléments d'un corps ni. Dans une matrice <strong>de</strong> Van<strong>de</strong>rmon<strong>de</strong>, toutes les élémentsd'une colonne suivent une <strong>pro</strong>gression géométrique. En d'autres termes :V = fv i;j g 0i


2.2. Les co<strong>de</strong>s à eacements 13matrice <strong>de</strong> Van<strong>de</strong>rmon<strong>de</strong> m ¢ n, où n m était inversible ce qui <strong>pro</strong>uve le caractèreMDS du co<strong>de</strong>.Il est alors intéressant <strong>de</strong> remarquer que si V est une matrice <strong>de</strong> Van<strong>de</strong>rmon<strong>de</strong> <strong>de</strong>taille k ¢ n, où les i sont tous diérents, et si a = (a 0 ; a 1 ; :::; a k 1 ) représente unvecteur d'éléments du corps ni avec le polynôme associé a(x) = ∑ k 1i=0 a ix i , alors le<strong>pro</strong>duit matrice-vecteur est équivalent à l'évaluation du polynôme a(x) sur les points i :⎛⎜⎝a( 0 )a( 1 )a( 2 ).a( k 1 )⎞⎛1 0 2 0 3 0: : : n 101 1 2 1 3 1: : : n 11=1 2 2 2 3 2: : : n 12⎟ ⎜⎟⎠ ⎝.. . .. ⎠1 m 1 2 m 1 3 m 1: : : n 1m 1⎞¢⎛ ⎞a 0a 1a 2⎜ ⎟⎝ . ⎠a k 1L'encodage d'un co<strong>de</strong> RS peut alors être vu comme l'évaluation d'un polynôme <strong>de</strong><strong>de</strong>gré k 1 sur n points. Le décodage d'un tel co<strong>de</strong> peut alors être vu comme un <strong>pro</strong>blèmed'interpolation polynômiale. Cette vision permet alors <strong>de</strong> retrouver l'ensemble<strong>de</strong>s résultats existant sur l'interpolation polynomiale, et permet <strong>de</strong> démontrer d'uneautre manière le caractère MDS <strong>de</strong> ces co<strong>de</strong>s.En eet, les résultats d'interpolation polynomiale montrent qu'il existe un uniquepolynôme <strong>de</strong> <strong>de</strong>gré k 1 passant par k points précis.Si ces co<strong>de</strong>s sont <strong>de</strong>s co<strong>de</strong>s optimaux du point <strong>de</strong> vue <strong>de</strong> leur capacité <strong>de</strong> correction,et qu'ils possè<strong>de</strong>nt <strong>de</strong>s implémentations ecaces, ils sont cependant pénaliséspar leur complexité d'encodage et <strong>de</strong> décodage quadratique O(n 2 ). En pratique, sur lecanal à eacements <strong>de</strong> paquets, cela se traduit par <strong>de</strong>s vitesses d'encodage/décodage<strong>pro</strong>hibitives dès lors que la longueur <strong>de</strong>s co<strong>de</strong>s dépasse plusieurs centaines d'éléments.C'est d'ailleurs cette complexité intrinsèque et l'impossibilité d'utiliser <strong>de</strong>s co<strong>de</strong>s MDSpour <strong>de</strong> gran<strong>de</strong>s longueurs qui a permis la redécouverte et le déploiement croissant <strong>de</strong>solutions sous-optimales mais largement moins coûteuses <strong>de</strong> type LDPC et Raptor,que nous détaillerons dans le paragraphe suivant.Il existe une autre métho<strong>de</strong> <strong>de</strong> construction <strong>de</strong> co<strong>de</strong>s MDS, basée non pas sur<strong>de</strong>s matrices <strong>de</strong> Van<strong>de</strong>rmon<strong>de</strong>, mais sur <strong>de</strong>s matrices <strong>de</strong> Cauchy, qui possè<strong>de</strong>nt <strong>de</strong>s<strong>pro</strong>priétés similaires. Une matrice <strong>de</strong> Cauchy C <strong>de</strong> taille m ¢ n est construite grâceà <strong>de</strong>ux vecteurs du corps ni : (x 0 ; x 1 ; :::; x m 1 ) et (y 0 ; y 1 ; :::; y n 1 ) tous <strong>de</strong>ux à <strong>de</strong>uxdistincts,C = fc i;j g 0i


14 Chapitre 2. Etat <strong>de</strong> l'art et principales notionsCes matrices ont été utilisées pour la première fois en tant que co<strong>de</strong>s à eacementsen 1989 par Rabin [6] pour améliorer la abilité du stockage distribué. Dansle cadre <strong>de</strong> la abilisation <strong>de</strong> transmissions dès 1995 [18] couplées à <strong>de</strong>s mécanismesd'optimisation bas niveau. Les résultats <strong>de</strong> simulation sur ces co<strong>de</strong>s ont montré queceux-ci respectaient mieux la complexité quadratique que les co<strong>de</strong>s <strong>de</strong> Rizzo et obtenaient<strong>de</strong> meilleurs performances sur <strong>de</strong>s longues tailles <strong>de</strong> co<strong>de</strong>, sans que celles-cisoient réellement utilisables. Ce co<strong>de</strong> possè<strong>de</strong> <strong>de</strong>s éléments brevetés.Les matrices <strong>de</strong> Cauchy ont également servi <strong>de</strong> support sur <strong>de</strong>s co<strong>de</strong>s implémentésau sein <strong>de</strong> l'<strong>ISAE</strong> par Jérôme Fimes et al. [19]. Le corps ni d'étu<strong>de</strong> est ici i<strong>de</strong>ntiqueà celui que nous utiliserons lors du chapitre 6. Contrairement aux co<strong>de</strong>s précé<strong>de</strong>nts,les opérations basiques sont ici sur le corps <strong>de</strong>s entiers modulo un nombre premier,ce qui a permis <strong>de</strong> nombreuses optimisations, notamment sur <strong>de</strong>s systèmes 64-bit.Les résultats <strong>de</strong> simulation ont montré que ces co<strong>de</strong>s étaient bien plus rapi<strong>de</strong>s queles <strong>de</strong>ux autres présentés ci-<strong>de</strong>ssus, tout en étant, néanmoins, toujours soumis à unecomplexité intrinsèquement quadratique.Dans le chapitre 6, nous <strong>pro</strong>poserons une implémentation <strong>de</strong>s co<strong>de</strong>s <strong>de</strong> Reed-Solomon, non pas sur les corps du type F 2 m, mais sur <strong>de</strong>s corps du type Fp où p estun nombre <strong>de</strong> Fermat premier. Nous verrons que sur ce type <strong>de</strong> corps, il est possible<strong>de</strong> dénir un encodage et un décodage systématique sur le canal à eacements <strong>de</strong>paquets <strong>de</strong> complexité O(n log n) grâce à l'utilisation <strong>de</strong> transformées <strong>de</strong> Fourier. Nousverrons que ces co<strong>de</strong>s permettent alors une utilisation <strong>de</strong> co<strong>de</strong>s MDS sur <strong>de</strong>s longueurspouvant atteindre plus <strong>de</strong> 10.000 symboles avec un vitesse <strong>de</strong> plus <strong>de</strong> 50Mbps.2.2.5 Les co<strong>de</strong>s à eacements non-MDSComme nous l'avons vu, le défaut majeur <strong>de</strong>s co<strong>de</strong>s MDS actuels concerne leurcomplexité théorique <strong>pro</strong>hibitive pour <strong>de</strong> <strong>de</strong> gran<strong>de</strong>s longueurs. L'extension naturelle<strong>de</strong> l'algorithme <strong>de</strong> décodage <strong>de</strong>s co<strong>de</strong>s MDS aux autres types <strong>de</strong> co<strong>de</strong>s peut être déni<strong>de</strong> la manière suivante.Dénition 2.14. Le décodage à maximum <strong>de</strong> vraisemblance d'un co<strong>de</strong> à eacementsquelconque consiste à vérier que la sous-matrice <strong>de</strong> la matrice génératrice correspondantaux symboles reçus est <strong>de</strong> rang k, où k est la dimension du co<strong>de</strong>. Si cettecondition est vériée, la sous-matrice <strong>de</strong> rang k est inversée et les symboles d'informationsont obtenus en multipliant la matrice inversée par le vecteur <strong>de</strong> symbolesreçus.Cet algorithme peut être appliqué à n'importe quel co<strong>de</strong> à eacements. Il est estoptimal en termes <strong>de</strong> capacité <strong>de</strong> correction et donne donc les limites du co<strong>de</strong> parrapport à ce paramètre. Le point faible <strong>de</strong> cet algorithme est sa complexité : l'inversion<strong>de</strong> la matrice est <strong>de</strong> complexité cubique (pour une matrice non-structurée) et le <strong>pro</strong>duitmatrice-vecteur est <strong>de</strong> complexité quadratique.L'objectif d'un algorithme <strong>de</strong> décodage d'un co<strong>de</strong> donné est <strong>de</strong> se rap<strong>pro</strong>cher <strong>de</strong>sperformances ML en termes <strong>de</strong> capacité <strong>de</strong> correction tout en réduisant la complexité


2.2. Les co<strong>de</strong>s à eacements 15du codage et du décodage. La capacité <strong>de</strong> correction peut être exprimée formellement<strong>de</strong> la manière suivante :Dénition 2.15. L'inecacité d'un co<strong>de</strong> linéaire <strong>de</strong> dimension k et <strong>de</strong> taille n correspondau nombre moyen <strong>de</strong> symboles nécessaires pour le décodage rapporté au nombre<strong>de</strong> symboles sources. Ce ratio est donc supérieur ou égal à un dans le cas général et estégal à un si et seulement si le co<strong>de</strong> est un co<strong>de</strong> MDS. Soit C, et nb r le nombre moyen<strong>de</strong> symboles nécessaires au décodage, alors l'inecacité du co<strong>de</strong> peut s'exprimer :inef f C = nb rkLorsque l'inecacité est exprimée sous forme <strong>de</strong> pourcentage, elle correspondratout simplement à inef f C 1.La valeur nb r k correspond à ce que l'on appellera le nombre moyen <strong>de</strong> symbolessupplémentaires, ou extra-symboles.Un co<strong>de</strong> non parfait sera ainsi évalué selon <strong>de</strong>ux métriques : sa vitesse et sa capacité<strong>de</strong> correction, dont une bonne indicatrice est son inecacité.Plusieurs gran<strong>de</strong>s familles <strong>de</strong> co<strong>de</strong> se distinguent pour ces co<strong>de</strong>s non parfaits. Nousretiendrons principalement les co<strong>de</strong>s <strong>de</strong> Reed-Muller, les co<strong>de</strong>s <strong>de</strong> type LDPC et lesco<strong>de</strong>s dits sans ren<strong>de</strong>ment. La construction <strong>de</strong>s co<strong>de</strong>s <strong>de</strong> Reed-Muller étant présentéedans le chapitre 5, nous nous attardons ici sur les <strong>de</strong>ux autres types <strong>de</strong> co<strong>de</strong>s.2.2.5.1 Les co<strong>de</strong>s à matrice <strong>de</strong> parité creuse : LDPCLes origines <strong>de</strong>s co<strong>de</strong>s Low Density Parity Check ou LDPC <strong>pro</strong>viennent <strong>de</strong> la thèse<strong>de</strong> Robert Gallager [20] présentée en 1963. Leur appellation <strong>pro</strong>vient tout simplementdu fait que la <strong>de</strong>nsité <strong>de</strong> la matrice <strong>de</strong> parité <strong>de</strong> ces tels co<strong>de</strong>s est faible, ou en d'autretermes, qu'ils possè<strong>de</strong>nt une matrice <strong>de</strong> parité creuse. Les éléments <strong>de</strong> ces matricesétant binaires, cela signie que celles-ci possè<strong>de</strong>nt un nombre limité d'éléments à 1.Cette faible <strong>de</strong>nsité <strong>de</strong> matrice permet d'utiliser un type particulier <strong>de</strong> décodage basésur le principe <strong>de</strong> <strong>pro</strong>pagation <strong>de</strong> croyance ou belief <strong>pro</strong>pagation. Ces algorithmes ontpour intérêt d'être <strong>de</strong> complexité linéaire en la longueur du co<strong>de</strong>, tout en conservantune inecacité relativement faible.Le lecteur avisé aura remarqué qu'il est tout à fait possible d'utiliser ce mécanismedirectement sur la matrice génératrice du co<strong>de</strong>. Cependant, la diversité duco<strong>de</strong>, qui impacte directement sur sa capacité <strong>de</strong> correction, s'en trouve alors largementamoindrie, du fait que la matrice génératrice doive être creuse. Vu autrement,chaque symbole source se retrouve alors dans un nombre très limité <strong>de</strong> combinaisonslinéaires (<strong>de</strong> symboles d'encodage), et celui-ci ne sera alors décodable que lorsque aumoins un <strong>de</strong> ces symboles d'encodage sera reçu. Ces co<strong>de</strong>s sont connus sous le nom<strong>de</strong> Low Density Generator Matrix (LDGM) et nécessitent un ajustement précis <strong>de</strong> leurmatrice an d'être réellement ecaces. Les LDGM peuvent également être considéréscomme <strong>de</strong>s co<strong>de</strong>s LDPC particuliers, dans le sens, où les LDGM sont <strong>de</strong>s co<strong>de</strong>s


16 Chapitre 2. Etat <strong>de</strong> l'art et principales notionsLDPC dont chaque symbole <strong>de</strong> redondance ne dépend uniquement que <strong>de</strong>s symbolessources, et pas d'autres symboles <strong>de</strong> redondance.En tout état <strong>de</strong> cause, l'état <strong>de</strong>s technologies a fait que, suite à leur découverte, lesco<strong>de</strong>s LDPC ont été "oubliés" pendant une trentaine d'années, jusqu'à qu'ils soient"redécouverts" par MacKay [21] dans les années 1990. Depuis ceux-ci constituentun domaine d'étu<strong>de</strong> ouvert qui a permis la création <strong>de</strong> nombreux co<strong>de</strong>s dérivés pourle canal à eacements, tels que les co<strong>de</strong>s Tornado [22], les co<strong>de</strong>s LT [23] et leurssuccesseurs, les co<strong>de</strong>s Raptor [24], que nous étudierons dans la section suivante <strong>de</strong> cemanuscrit.Les métho<strong>de</strong>s <strong>de</strong> décodage <strong>de</strong> type belief <strong>pro</strong>pagation sur le canal à eacements<strong>pro</strong>viennent plus ou moins directement <strong>de</strong>s travaux <strong>de</strong> Zyablov et Pinsker [25] en 1974.On parlera alors <strong>de</strong> décodage <strong>de</strong> type itératif. ce décodage n'est pas optimal pour unco<strong>de</strong> donné, par rapport à décodage au maximum <strong>de</strong> vraisemblance (ML) donné, maispossè<strong>de</strong> l'intérêt majeur d'être <strong>de</strong> complexité linéaire.Tout comme pour les autres co<strong>de</strong>s linéaires, la capacité <strong>de</strong> correction <strong>de</strong>s co<strong>de</strong>sLDPC dépend du poids <strong>de</strong>s mots <strong>de</strong> co<strong>de</strong>s et en particulier <strong>de</strong> la distance minimale duco<strong>de</strong>. Lorsqu'ils sont décodés avec un déco<strong>de</strong>ur itératif, les capacités <strong>de</strong> correction <strong>de</strong>sco<strong>de</strong>s LDPC seront également limitées par <strong>de</strong>s caractéristiques telles que la longueur<strong>de</strong>s cycles dans le graphe associé et la taille <strong>de</strong>s stopping sets, que nous présenteronsdans la suite <strong>de</strong> cette section.Ces co<strong>de</strong>s peuvent être utilisés en tant que co<strong>de</strong>s systématiques, selon que lessymboles sources sont envoyés ou non en plus <strong>de</strong>s symboles <strong>de</strong> redondance.Dans la suite <strong>de</strong> cette section, nous présenterons les co<strong>de</strong>s LDPC, leur encodage,leur décodage ainsi que le <strong>pro</strong>blème <strong>de</strong>s stopping sets.Représentation <strong>de</strong>s co<strong>de</strong>s LDPC Deux représentations usuelles et totalement équivalentesexistent pour représenter un co<strong>de</strong> LDPC. Selon le niveau <strong>de</strong> simplicationapporté à la résolution d'un <strong>pro</strong>blème donné, l'une ou l'autre <strong>de</strong>s représentations serautilisée.La première représentation d'un co<strong>de</strong> LDPC est basée sur un graphe biparti ougraphe <strong>de</strong> Tanner [26]. Un graphe est dit biparti s'il existe <strong>de</strong>ux ensembles <strong>de</strong> n÷uds etun ensemble d'arêtes, tel que chaque arrête relie <strong>de</strong>ux n÷uds d'un ensemble diérent.Un co<strong>de</strong> LDPC peut être déni comme un graphe biparti dont l'ensemble <strong>de</strong>sn÷uds <strong>de</strong> gauche, appelés n÷uds variables V représente un mot <strong>de</strong> co<strong>de</strong>, et l'ensemble<strong>de</strong>s n÷uds <strong>de</strong> droite, correspond à <strong>de</strong>s n÷uds <strong>de</strong> contrainte C. La représentation dugraphe <strong>de</strong> Tanner d'un co<strong>de</strong> LDPC se trouve sur la Figure 2.3.Dès lors, une suite <strong>de</strong> symboles constitue un mot du co<strong>de</strong> si et seulement si pourchaque n÷ud <strong>de</strong> contraite, la somme <strong>de</strong>s symboles correspondants aux n÷uds variablesadjacents est nulle.La représentation d'un co<strong>de</strong> LDPC sous la forme d'un graphe <strong>de</strong> Tanner est particulièrementutile pour représenter le mécanisme <strong>de</strong> passage <strong>de</strong> messages qui intervientdans le décodage itératif. De plus, cette représentation permet également <strong>de</strong> faire ap-


2.2. Les co<strong>de</strong>s à eacements 17Figure 2.3 Graphe <strong>de</strong> Tanner d'un co<strong>de</strong> LDPCpel aux puissants outils <strong>de</strong> la théorie <strong>de</strong>s graphes pour étudier et concevoir les co<strong>de</strong>sLDPC.Il est possible <strong>de</strong> représenter ce graphe sous la forme d'une matrice dont chaquecolonne correspond à un n÷ud variable et chaque ligne un n÷ud <strong>de</strong> contrainte. Leséléments non-nuls <strong>de</strong> cette matrice, d'indices (i; j) correspon<strong>de</strong>nt alors aux arêtesreliant le n÷ud variable j au n÷ud <strong>de</strong> contrainte i. Cette matrice est bien une matrice<strong>de</strong> parité du co<strong>de</strong> car tout vecteur du co<strong>de</strong> <strong>pro</strong>duira, par dénition, une sortie nullepar cette matrice.Pour correspondre à un co<strong>de</strong> LDPC, il est alors nécessaire <strong>de</strong> garantir que lenombre d'arêtes du graphe soit limité. En rappelant que pour un co<strong>de</strong> linéaire donné,il existe plusieurs matrices <strong>de</strong> parité équivalentes à <strong>de</strong>s combinaisons linéaires près, onchoisira alors avec soin, la matrice <strong>de</strong> parité la plus creuse possible.D'après la dénition 2.8, une matrice <strong>de</strong> parité d'un co<strong>de</strong> linéaire <strong>de</strong> dimension k et<strong>de</strong> longueur n sur Fq est une matrice <strong>de</strong> rang plein <strong>de</strong> taille (n k)¢n. Lorsque le co<strong>de</strong>est systématique, les k premières colonnes (à une permutation près) correspon<strong>de</strong>ntaux symboles sources et les autres aux symboles <strong>de</strong> redondance. Dans la suite <strong>de</strong>


18 Chapitre 2. Etat <strong>de</strong> l'art et principales notionsces travaux, nous travaillerons avec une matrice <strong>de</strong> parité binaire. Les symboles <strong>de</strong>redondance seront alors appelés symboles <strong>de</strong> parité. La partie gauche correspondantaux symboles sources sera appelée A et celle <strong>de</strong>s symboles <strong>de</strong> redondance U.Si S représente un ensemble <strong>de</strong> symboles sources et P un ensemble <strong>de</strong> symboles<strong>de</strong> parité correspondant, la <strong>pro</strong>duit matriciel (AjU)(SjR) T est alors nul. La matrice <strong>de</strong>parité peut être vue comme un ensemble <strong>de</strong> combinaisons linéaires (par ligne) dont lerésultat est nul pour un mot <strong>de</strong> co<strong>de</strong> donné (sources et parités).A titre d'exemple, la matrice <strong>de</strong> parité du co<strong>de</strong> correspondant au graphe <strong>de</strong> Tanner<strong>de</strong> la Figure 2.3 est la suivante (k = 6,n = 12) :⎛⎞0 1 1 0 1 0 1 0 0 0 1 11 0 0 1 0 1 0 1 0 1 0 10 1 0 1 1 1 1 0 1 0 0 0H =1 0 1 0 0 0 0 1 0 1 1 1⎜⎟⎝ 0 0 1 0 1 1 0 1 1 1 0 0 ⎠1 1 0 1 0 0 1 0 1 0 1 0ce qui donne six combinaisons linéaires entre les six premiers symboles sources etles six symboles <strong>de</strong> redondance.La version matricielle permet <strong>de</strong> dénir la notion <strong>de</strong> <strong>de</strong>gré (ligne ou colonne),correspondant au nombre d'entrées non-nulles. Un co<strong>de</strong> LDPC sera dès lors considérécomme régulier ou irrégulier selon que la distribution <strong>de</strong> ses <strong>de</strong>grés lignes et colonnesest constante.Encodage <strong>de</strong>s co<strong>de</strong>s LDPC L'encodage classique par la matrice génératrice n'a pasforcément <strong>de</strong> sens ici pour <strong>de</strong>ux raisons majeures : cette matrice n'est pas initialementdéterminée, et, pour une matrice génératrice non-creuse, le <strong>pro</strong>duit matrice-vecteurs'accompagne nécessairement d'une complexité quadratique.L'encodage <strong>de</strong>s co<strong>de</strong>s LDPC peut être directement eectué sur la matrice <strong>de</strong>parité. L'idée est alors <strong>de</strong> construire celle-ci (par <strong>de</strong>s combinaisons linéaires) an <strong>de</strong>faire apparaître une structure quasi-triangulaire inférieure sur la partie <strong>de</strong>s symboles<strong>de</strong> redondance U [27].Dans la suite <strong>de</strong> nos travaux, la matrice U sera toujours considérée comme triangulaireinférieure. La conséquence est qu'il est alors possible <strong>de</strong> calculer chaque symbole<strong>de</strong> parité directement par une combinaison <strong>de</strong> symboles sources et <strong>de</strong> symboles <strong>de</strong>parité déjà calculés. La matrice <strong>de</strong> parité étant creuse, l'encodage eectué est alors<strong>pro</strong>che d'une complexité linéaire.Décodage <strong>de</strong>s co<strong>de</strong>s LDPC En plus d'un décodage à maximum <strong>de</strong> vraisemblance(ML) optimal mais complexe, les co<strong>de</strong>s LDPC sont adaptés pour un décodage dititératif sur le canal à eacements.Comme nous l'avons précé<strong>de</strong>mment évoqué, le décodage itératif est sous-optimalen terme <strong>de</strong> capacité <strong>de</strong> correction, mais possè<strong>de</strong> l'intérêt d'avoir une complexitélinéaire en la longueur du co<strong>de</strong>.


2.2. Les co<strong>de</strong>s à eacements 19Le principe du décodage itératif introduit par Gallager puis par Zyablov peut trèsbien s'interpréter sur le graphe <strong>de</strong> Tanner associé à un co<strong>de</strong> LDPC, comme sur lagure 2.4. Sur le graphe <strong>de</strong> Tanner, tous les symboles du mot <strong>de</strong> co<strong>de</strong> sont reliésentre eux grâce aux n÷uds <strong>de</strong> contraintes. On rappelle alors que la somme <strong>de</strong> cesn÷uds variables doit être nulle sur chaque n÷ud <strong>de</strong> contrainte. En d'autres termes,dans la cas binaire, tout n÷ud variable peut s'exprimer comme la somme <strong>de</strong>s autresn÷uds variables reliés par le même n÷ud <strong>de</strong> contrainte.Figure 2.4 Exemple <strong>de</strong> décodage itératif sur un graphe <strong>de</strong> TannerAinsi, pour chaque n÷ud <strong>de</strong> contrainte, le décodage itératif peut s'eectuer si etseulement si un seul <strong>de</strong>s symboles relié est inconnu. Celui-ci permettra éventuellementpar la suite, lui même étant alors décodé, <strong>de</strong> déco<strong>de</strong>r un autre symbole du mot <strong>de</strong>co<strong>de</strong> grâce à un autre n÷ud <strong>de</strong> contrainte, et ainsi <strong>de</strong> suite.Soit d m le <strong>de</strong>gré moyen <strong>de</strong>s colonnes <strong>de</strong> la matrice associée. Lorsque le décodageitératif est complet, celui-ci a donc consisté en (n k) sommes, correspondant auxsymboles manquant, <strong>de</strong> d m 1 éléments en moyenne. Le nombre d'opérations maximaleectué est donc (n k) ¢ (d m 1). d m étant xé pour un co<strong>de</strong> donné, on retrouvela complexité linéaire <strong>de</strong> décodage annoncée.Bien entendu, les limites d'un tel décodage apparaissent dès lors qu'il n'y a plusà un moment donné, <strong>de</strong> n÷ud <strong>de</strong> contrainte relié à <strong>de</strong>s symboles dont seulement unseul est inconnu. Dès lors, le décodage est impossible, et <strong>de</strong>ux options s'orent alors.La première solution consiste à attendre l'arrivée <strong>de</strong> nouveaux symboles qui a unimpact immédiat sur la capacité <strong>de</strong> correction du décodage itératif et plus précisémentson inecacité.La secon<strong>de</strong> solution revient à tenter un décodage ML sur le bloc <strong>de</strong> la matricecorrespondant aux symboles non décodés. Cette solution apporte cependant <strong>de</strong>uxinconvénients. Tout d'abord le succès d'un tel décodage n'est pas garanti, et mêmesi celui-ci réussit, il peut avoir un coût important, si tant est que le système restant àdéco<strong>de</strong>r est large. En outre, cette métho<strong>de</strong> a pour eet <strong>de</strong> briser la complexité linéairethéorique du décodage itératif.


20 Chapitre 2. Etat <strong>de</strong> l'art et principales notionsLe cas <strong>de</strong>s co<strong>de</strong>s LDPC à structure droite triangulaire inférieure Comme nousl'avons évoqué précé<strong>de</strong>mment, les co<strong>de</strong>s LDPC dont la matrice U est triangulaireinférieure permettent un encodage en temps linéaire <strong>de</strong>s symboles <strong>de</strong> redondance, etce dans leur ordre naturel. On observe une sorte d'accumulation <strong>de</strong> ces symboles aufur et à mesure <strong>de</strong> leur construction, due aux éléments non-nuls et non-diagonaux <strong>de</strong>U. Ainsi il est courant <strong>de</strong> trouver ces co<strong>de</strong>s sous la dénomination <strong>de</strong> co<strong>de</strong>s "RepeatAccumulate". Ce type <strong>de</strong> co<strong>de</strong> ainsi que cette dénomination ont été introduits par D.Divsalar et al. [28].Parmi les co<strong>de</strong>s LDPC <strong>de</strong> ce type, on trouve notamment les co<strong>de</strong>s dits LDPC-Staircase et LDPC-Triangle standardisés par l'IETF [29].De manière synthétique, la matrice U <strong>de</strong>s co<strong>de</strong>s LDPC-Staircase possè<strong>de</strong> unestructure en escalier : la diagonale et sa diagonale inférieure sont égales à 1, lorsquetout le reste <strong>de</strong> la matrice est à 0. Vu autrement, un symbole <strong>de</strong> redondance est lasomme <strong>de</strong> symboles sources et du symbole <strong>de</strong> redondance directement antécé<strong>de</strong>nt.La partie <strong>de</strong> gauche possè<strong>de</strong> quant à elle un <strong>de</strong>gré constant, les éléments non-nuls <strong>de</strong>chaque colonne étant générées pseudo-aléatoirement.Les co<strong>de</strong>s LDPC-Triangle sont un alternative à ces co<strong>de</strong>s, où <strong>de</strong> nouvelles arêtessont déployées entre <strong>de</strong>s symboles <strong>de</strong> redondance et d'autres générés précé<strong>de</strong>mment.Il est ainsi toujours possible d'utiliser un encodage linéaire, la matrice U <strong>de</strong>venantalors une matrice triangulaire inférieure plus remplie. En conséquence, si la abilitédu co<strong>de</strong> semble améliorée, ceci est bien entendu fait au prix d'un plus grand nombred'opérations somme.Néanmoins, malgré leur simplicité apparente, ces co<strong>de</strong>s permettent d'obtenir unbon com<strong>pro</strong>mis entre une faible ecacité et une faible complexité.Dans le chapitre 4, nous présenterons <strong>de</strong>s co<strong>de</strong>s à décodage hybri<strong>de</strong>, permettantun décodage itératif sur leur matrice <strong>de</strong> parité, dont la structure droite est triangulaireinférieure.La <strong>pro</strong>blématique <strong>de</strong>s stopping sets An <strong>de</strong> comprendre les limites du décodageitératif d'un co<strong>de</strong> LDPC, il est important <strong>de</strong> s'intéresser au mécanisme <strong>de</strong>s stoppingsets.Dénition 2.16. Soit un co<strong>de</strong> LDPC et son graphe <strong>de</strong> Tanner associé. Un ensemble<strong>de</strong> n÷uds variables (<strong>de</strong> symboles) est un stopping set du graphe si et seulement sitous les n÷uds <strong>de</strong> contrôle reliés à cet ensemble le sont par au moins <strong>de</strong>ux <strong>de</strong> cesn÷uds variables.La taille d'un stopping set correspond au cardinal <strong>de</strong> l'ensemble <strong>de</strong>s n÷uds variables.Ces stopping sets sont particulièrement gênants pour l'inecacité d'un co<strong>de</strong> LDPC.Imaginons un stopping set d'un graphe dont tous ses symboles sont eacés. L'ensemble<strong>de</strong>s n÷uds <strong>de</strong> contrôle reliés l'étant par au moins <strong>de</strong>ux <strong>de</strong> ces symboles àchaque fois, il est impossible <strong>de</strong> terminer le décodage itératif tant qu'un seul <strong>de</strong>séléments du stopping set ne sera pas reçu.


2.2. Les co<strong>de</strong>s à eacements 21Figure 2.5 Exemple <strong>de</strong> stopping set dans un graphe <strong>de</strong> Tanner d'un co<strong>de</strong> LDPCA titre d'exemple la Figure 2.5 montre un stopping set <strong>de</strong> taille 3 : fv 2 ; v 3 ; v 5 g.On peut observer que, même si tous les autres symboles sont reçus, le décodage nepeut pas aboutir tant que v 2 , v 3 ou v 5 ne sera pas reçu.On aperçoit dès lors l'importance <strong>de</strong> la taille d'un stopping set, et plus précisément<strong>de</strong> la taille <strong>de</strong>s plus petits stopping sets d'un même graphe <strong>de</strong> Tanner. En eet, plusle stopping set est petit, plus la <strong>pro</strong>babilité <strong>de</strong> non-réception <strong>de</strong> tous ses élements estforte, empêchant un décodage itératif complet.Ces résultats mettent en lumière l'intérêt <strong>de</strong> surveiller ces stopping sets lorsque unco<strong>de</strong> LDPC est déployé, dans la mesure du possible. En eet, cette étu<strong>de</strong> est souventrendue complexe par les contraintes que l'on impose aux co<strong>de</strong>s LDPC en plus <strong>de</strong>scontraintes initiales.2.2.5.2 Les co<strong>de</strong>s sans ren<strong>de</strong>mentLes co<strong>de</strong>s sans ren<strong>de</strong>ment (rateless en anglais), ou co<strong>de</strong>s fontaine, sont une catégorie<strong>de</strong> co<strong>de</strong> partageant une paternité lointaine avec les co<strong>de</strong>s LDPC. Ceux-ci sontnommés ainsi car ils ne possè<strong>de</strong>nt pas <strong>de</strong> ren<strong>de</strong>ment déni à priori : il est possible<strong>de</strong> générer <strong>de</strong> nouveaux symboles <strong>de</strong> redondance à la volée, à partir d'un ensemble<strong>de</strong> k symboles sources, qui sont par ailleurs décorrélés <strong>de</strong>s symboles précé<strong>de</strong>mmentgénérés.Il convient bien <strong>de</strong> noter que s'il est possible <strong>de</strong> générer à volonté <strong>de</strong>s symboles,il n'est pas possible d'en générer cependant une innité. Tout d'abord <strong>de</strong> manière


22 Chapitre 2. Etat <strong>de</strong> l'art et principales notionsthéorique, les symboles <strong>de</strong> redondance correspondant à <strong>de</strong>s combinaisons linéaires <strong>de</strong> ksymboles sources, le nombre <strong>de</strong> symboles <strong>de</strong> redondance diérents sera donc <strong>de</strong> 2 k . Lasecon<strong>de</strong> limitation est par contre bien plus pratique. En eet, an <strong>de</strong> distinguer chaquesymbole <strong>de</strong> redondance, on aecte à ceux-ci un i<strong>de</strong>ntiant unique. Par exemple, dansla RFC5053 [30] qui dénit l'implémentation <strong>de</strong> co<strong>de</strong>s Raptor rateless, cet i<strong>de</strong>ntiantest codé sur 16 bits, ce qui limitera alors en pratique la longueur du co<strong>de</strong> à 65536.Les co<strong>de</strong>s LT La première version <strong>de</strong> co<strong>de</strong>s sans ren<strong>de</strong>ment permettant la génération<strong>de</strong> symboles <strong>de</strong> redondance à la volée <strong>pro</strong>vient historiquement <strong>de</strong> Michael Luby, quidonna son nom à ces co<strong>de</strong>s : Luby Transform co<strong>de</strong>s [23].Le principe <strong>de</strong> ces co<strong>de</strong>s est le suivant. Soit un ensemble <strong>de</strong> k symboles source.Pour chaque symbole <strong>de</strong> redondance, on tire un <strong>de</strong>gré d, qui est choisi suivant unedistribution <strong>de</strong> <strong>de</strong>grés particulière, un décalage compris entre 0 et k et un intervallecompris entre 1 et k 1. Ce symbole <strong>de</strong> redondance sera alors la somme <strong>de</strong> d symbolessources, dont le premier sera celui d'indice égal au décalage choisi, et les suivant serontceux d'indice égal au précé<strong>de</strong>nt auquel on ajoute l'intervalle modulo k.Par exemple, soit un ensemble <strong>de</strong> k = 100 symboles sources, et soit un symbole<strong>de</strong> redondance à créer. Soit d = 5 son <strong>de</strong>gré, o = 33 son décalage et i = 43 sondécalage. Ce symbole <strong>de</strong> redondance correspondra à la somme <strong>de</strong>s symboles sourced'indice 33, 76, 19, 62 et 5.En pratique le décalage et l'intervalle sont choisis par une générateur pseudoaléatoire.Ici, chaque symbole <strong>de</strong> redondance n'étant la somme que <strong>de</strong> symboles sources, ceco<strong>de</strong> est donc un co<strong>de</strong> <strong>de</strong> type LDGM irrégulier.M. Luby a montré que lorsque ces co<strong>de</strong>s sont décodés <strong>de</strong> manière itérative, ceux-cisont asymptotiquement optimaux, sur le canal à eacements, si tant est que la distribution<strong>de</strong>s <strong>de</strong>grés soit soigneusement choisie. Dans le même article, Luby <strong>pro</strong>posealors d'utiliser la distribution <strong>de</strong> <strong>de</strong>grés Soliton robuste. En utilisant cette distribution,on montre qu'il est possible <strong>de</strong> déco<strong>de</strong>r avec log2 (k)p kextra-symboles en moyenneavec une complexité globale <strong>de</strong> O(k log k). On voit dès lors qu'en faisant tendre ladimension du co<strong>de</strong> vers l'inni, l'inecacité se rap<strong>pro</strong>che inexorablement <strong>de</strong> 1, et lesco<strong>de</strong>s LT <strong>de</strong>viennent alors asymptotiquement MDS avec une complexité <strong>de</strong> décodagelogarithmique.En pratique, les co<strong>de</strong>s LT possè<strong>de</strong>nt néanmoins <strong>de</strong>ux défauts majeurs et rédhibitoires: Pour <strong>de</strong>s dimensions <strong>de</strong> co<strong>de</strong>s classiques (k < 50:000), ces co<strong>de</strong>s sourentd'une forte inecacité. Les résultats d'expérimentation sur <strong>de</strong>s distributions <strong>de</strong>co<strong>de</strong>s LT particulières ont montré une inecacité moyenne supérieure à 10%. Ces co<strong>de</strong>s ne sont pas, et ne peuvent pas, par nature, être systématiques.Par ailleurs, tous comme les co<strong>de</strong>s LDPC, les performances <strong>de</strong> ces co<strong>de</strong>s sur<strong>de</strong> petites dimension (k < 100) sont très médiocres, ceci étant du au manque <strong>de</strong>"relations" inter-symboles inhérent à ce types <strong>de</strong> co<strong>de</strong>s.


2.2. Les co<strong>de</strong>s à eacements 23Les co<strong>de</strong>s Raptor Les co<strong>de</strong>s Raptor ont été crées suite à ces résultats an <strong>de</strong>pallier les défauts majeurs <strong>de</strong>s co<strong>de</strong>s LT. L'idée <strong>pro</strong>posée par Amin Shokrollahi [24]est d'ajouter un mécanisme <strong>de</strong> précodage aux co<strong>de</strong>s LT, permettant à la fois <strong>de</strong>régler le <strong>pro</strong>blème du systématisme et <strong>de</strong> l'inecacité, sans pour autant apporter <strong>de</strong>complexité théorique supplémentaire.A ce jour, les co<strong>de</strong>s Raptor sont généralement considérés comme le meilleur com<strong>pro</strong>misexistant sur les co<strong>de</strong>s à eacements. Les résultats <strong>de</strong> simulation que nousdétaillerons par la suite montrent que l'inecacité <strong>de</strong> ces co<strong>de</strong>s est faible, tout ensupportant <strong>de</strong>s débits élevés. Ces co<strong>de</strong>s ont été standardisés au sein <strong>de</strong> l'IETF [30],du 3GPP [31] et du DVB [32]. Ils sont en outre l'objet <strong>de</strong> nombreux brevets.La partie qui va suivre <strong>pro</strong>vient <strong>de</strong> l'étu<strong>de</strong> que l'<strong>ISAE</strong> et l'INRIA Grenoble onteectué lors du développement d'un co<strong>de</strong>c Raptor dans le cadre d'un contrat avecle CNES 1 . La <strong>de</strong>scription <strong>de</strong> ces co<strong>de</strong>s <strong>pro</strong>vient <strong>de</strong> la standardisation <strong>de</strong> ces co<strong>de</strong>s àl'IETF.Le codage Raptor correspond à la concaténation <strong>de</strong> <strong>de</strong>ux étapes : un pré-codage<strong>pro</strong>duisant <strong>de</strong>s symboles intermédiaires et un encodage LT <strong>de</strong> ces symboles intermédiairesan <strong>de</strong> créer les symboles réellement transmis. Le mécanisme global <strong>de</strong>l'enco<strong>de</strong>ur est schématisé sur la Figure 2.6.Figure 2.6 Schéma général <strong>de</strong> l'enco<strong>de</strong>ur RaptorDétaillons tout d'abord le précodage Raptor. Celui-ci est composé <strong>de</strong> trois blocs : Un bloc LT inverse ou LT 1 qui correspond comme son nom l'indique à l'inversed'un encodage LT. L'intérêt d'un tel bloc, placé au début du préco<strong>de</strong>, est <strong>de</strong> garantirque le co<strong>de</strong> <strong>pro</strong>duit est systématique, les symboles intermédiaires passantpar la suite par un enco<strong>de</strong>ur LT. Un bloc LDPC qui permet <strong>de</strong> créer s symboles, appelés symboles LDPC, à partir1. "Logiciel <strong>de</strong> codage/décodage Raptor", Copyright cCNES, Tous droits réservés.


24 Chapitre 2. Etat <strong>de</strong> l'art et principales notions<strong>de</strong> la sortie du LT 1 . Son nom vient du fait que la matrice génératrice <strong>de</strong> cessymboles est creuse. Un bloc HDPC, qui <strong>pro</strong>duit h symboles appelés half symboles, et qui prend enentrée la sortie du LT inverse et les symboles LDPC.Par rapport à la version <strong>de</strong>s co<strong>de</strong>s LT présentés ci-<strong>de</strong>ssus et basés sur <strong>de</strong>s distributions<strong>de</strong> type Soliton, l'enco<strong>de</strong>ur LT <strong>de</strong>s co<strong>de</strong>s Raptor est adapté dans la RFC5053.La distribution Soliton qui permet un encodage asymptotiquement optimal, possè<strong>de</strong>un <strong>de</strong>gré moyen qui augmente avec la dimension du co<strong>de</strong>, ce qui en conséquence,implique que la distribution LT classique n'est pas <strong>de</strong> complexité linéaire. Pour cela, ladistribution <strong>de</strong> <strong>de</strong>grés présente dans le standard est indépendante <strong>de</strong> cette dimension.Ceci permet aux co<strong>de</strong>s Raptor d'être, tous comme les co<strong>de</strong>s LDPC, <strong>de</strong> complexitélinéaire en la dimension du co<strong>de</strong>. Bien entendu, l'optimalité asymptotique <strong>de</strong> la distributionest perdue, mais ce n'est pas en soi un <strong>pro</strong>blème, car, comme nous l'avons vu,celle-ci n'est même pas visible pour <strong>de</strong>s dimensions <strong>de</strong> co<strong>de</strong> usuelles.Comme nous l'avons vu, l'encodage Raptor consiste en une étape <strong>de</strong> précodage<strong>pro</strong>duisant <strong>de</strong>s symboles intermédiaires et un encodage LT <strong>de</strong> ces symboles.Soit c 0un ensemble <strong>de</strong> k symboles sources. Le précodage consiste à créer unensemble c <strong>de</strong> l = k +s +h symboles intermédiaires. Nous avons détaillé les l relationsexistantes entre ces symboles intermédiaires et les symboles sources.Si G LT correspond à la matrice <strong>de</strong> l'enco<strong>de</strong>ur LT, nous avons :c 0= G LT ¢ cSoit G LDP C la matrice <strong>de</strong> taille k ¢ s qui permet <strong>de</strong> générer les symboles LDPCc s à partir <strong>de</strong>s symboles c t en sortie <strong>de</strong> LT 1 . Nous avons :c s = G LDP C ¢ c t , c s + G LDP C c t = 0De la même manière, si G Half représente la matrice <strong>de</strong> taille h¢(k +s) qui permet<strong>de</strong>s générer les half symboles c h à partir <strong>de</strong> la concaténation <strong>de</strong> c t et c s :( )( )ctctc h = G Half ¢ , c h + G Half = 0c s c sOn peut alors représenter ces l relations par une matrice A carrée. Nous avonsalors :⎛⎞ ⎛ ⎞( ) G LDP C Id s 0 c t0s+h= ⎝ Gc 0 Half Id h⎠ ¢ ⎝c s⎠G LTc hUne représentation plus claire <strong>de</strong> A se trouve sur la Figure 2.7. Un exemple réel<strong>de</strong> matrice A pour k = 500 symboles se trouve sur la Figure 2.8. Sur ce schéma, leséléments en noir représentent les indices égaux à 1 dans la matrice.Le co<strong>de</strong>c Raptor standardisé précise que les tailles s et h <strong>de</strong> ces symboles supplémentairessont dépendantes <strong>de</strong> k, mais restent néanmoins faibles relativement à k. A


2.2. Les co<strong>de</strong>s à eacements 25Figure 2.7 Matrice A du co<strong>de</strong> RaptorFigure 2.8 Exemple <strong>de</strong> matrice A pour k = 500 et l = 553titre d'exemple, pour un co<strong>de</strong> <strong>de</strong> dimension 1000, s et h sont égaux respectivement à59 et 13, ce donne un nombre <strong>de</strong> symboles intermédiaires <strong>de</strong> 1072.La matrice A donne une relation directe entre les symboles intermédiaires et lessymboles sources : ( 0 s+h) = A¢c. Le co<strong>de</strong>c Raptor s'arrangeant pour toute dimensionc 0<strong>de</strong> co<strong>de</strong>, à ce que A soit inversible, le précodage peut alors se ramener au <strong>pro</strong>duit <strong>de</strong>ssymboles sources (auquel on aura rajouté l k zéros au début) par A 1 .L'enco<strong>de</strong>ur systématique Raptor peut alors se ramener au <strong>pro</strong>duit matriciel LT ¢A 1 . La matrice <strong>pro</strong>duit pour k = 500 est représentée sur la Figure 2.9 pour n = 1000symboles générés.Plusieurs points méritent une attention sur ce schéma : Le nombre <strong>de</strong> lignes est ici arbitrairement xé à 1000. Bien entendu, les co<strong>de</strong>sRaptor étant <strong>de</strong>s co<strong>de</strong>s sans ren<strong>de</strong>ment, il est possible <strong>de</strong> créer <strong>de</strong> nouveauxsymboles à la volée, qui seraient alors représentés par <strong>de</strong> nouvelles lignes. La matrice comporte l colonnes. Comme nous l'avons fait remarquer, le vecteurd'entrée <strong>de</strong> cette matrice est le vecteur <strong>de</strong>s symboles sources auquel sont ap-


26 Chapitre 2. Etat <strong>de</strong> l'art et principales notionsFigure 2.9 Matrice <strong>de</strong> l'enco<strong>de</strong>ur global Raptor pour k = 500 et n = 1000 symbolesgénérésposés au début l k symboles nuls. Au nal, ces l k premières colonnes sontinutiles. La matrice comporte une diagonale démarrant après les l k premières colonnes.Ceci vali<strong>de</strong> le caractre systématique du co<strong>de</strong> Raptor. La partie non-systématique <strong>de</strong> la matrice globale n'a pas <strong>de</strong> structure particulière.Toutes les informations concernant le décodage ecace <strong>de</strong>s co<strong>de</strong>s Raptor ne sontpas connues. Certains éléments permettent tout <strong>de</strong> même <strong>de</strong> comprendre le décodage<strong>de</strong> ces co<strong>de</strong>s.Le décodage <strong>de</strong>s symboles sources à partir <strong>de</strong>s symboles intermédiaires est unsimple "encodage" LT <strong>de</strong> complexité linéaire. Le point crucial du décodage est doncla récupération <strong>de</strong> tous ces symboles intermédiaires. Sur ce point, les algorithmes <strong>de</strong>décodage utilisés sont similaires à ceux <strong>de</strong>s co<strong>de</strong>s LDPC, à savoir un décodage itératif,un décodage ML, ou un mélange <strong>de</strong>s <strong>de</strong>ux. A ce sujet, une métho<strong>de</strong> <strong>de</strong> décodageparticulière a été brevetée [33] pour améliorer les performances d'un décodage ML parpivot <strong>de</strong> Gauss.Si le nombre <strong>de</strong> symboles intermédiaires est <strong>de</strong> l, n'oublions pas cependant queceux-ci sont liés par s + h relations entre eux, ce qui rend bien le décodage possibledès lors que k symboles ont été reçus.Les résultats <strong>de</strong> simulation que nous avons eectué sur la version standardisée <strong>de</strong>ces co<strong>de</strong>s ont montré que le nombre moyen d'extra-symboles nécessaires au décodage<strong>de</strong>s co<strong>de</strong>s Raptor était quasiment constant quel que soit la dimension du co<strong>de</strong>, et


2.3. La compression d'en-têtes 27<strong>pro</strong>che <strong>de</strong> 2. Ceci est en accord avec les résultats ociels [34] qui donnaient unnombre moyen d'extra-symboles <strong>pro</strong>che <strong>de</strong> 1; 96. L'intérêt majeur <strong>de</strong> ces co<strong>de</strong>s estdonc d'avoir un nombre d'extra-symboles moyen constant, et donc une inecacité <strong>de</strong>plus en plus <strong>pro</strong>che <strong>de</strong> l'optimal lorsque la dimension du co<strong>de</strong> augmente. Néanmoins,nous avons également pu vérier que ce nombre est sous-estimé lorsque les dimensions<strong>de</strong> co<strong>de</strong>s sont faibles (< 100), comme annoncé, ce qui laisse entrevoir que ces co<strong>de</strong>s,tout comme les co<strong>de</strong>s LDPC ne sont pas adaptés pour ces dimensions, et où l'onfavorisera les solutions <strong>de</strong> type Reed-Solomon ou Reed-Muller.N'ayant pas accès au décodage réellement utilisé sur ces co<strong>de</strong>s, et <strong>de</strong>vant nouscontenter d'une version standardisée <strong>de</strong> vitesse inférieure, nous n'avons pu comparerla vitesse <strong>de</strong> décodage <strong>de</strong> ces co<strong>de</strong>s par rapport à d'autres co<strong>de</strong>s. Sur ce point,la seule donnée existante <strong>pro</strong>vient <strong>de</strong> l'article original présentant ces co<strong>de</strong>s qui annonce: "The Raptor implementation of Digital Fountain reaches speeds of severalgigabits per second, on a 2.4-GHz Intel Xeon <strong>pro</strong>cessor, while ensuring very stringentconditions on the error <strong>pro</strong>bability of the <strong>de</strong>co<strong>de</strong>r, even for very short lengths." quine précise ni la dimension du co<strong>de</strong>, ni le type <strong>de</strong> décodage, ni un ordre <strong>de</strong> vitesse précis.En conclusion, les co<strong>de</strong>s Raptor représentent d'excellents co<strong>de</strong>s à eacements entermes <strong>de</strong> capacité <strong>de</strong> correction, point que nous avons pu corroborer lors <strong>de</strong> nossimulations. Néanmoins, leur complexité linéaire associée n'est pas clairement dénieen pratique.2.3 La compression d'en-têtes2.3.1 Introduction2.3.1.1 Le meilleur com<strong>pro</strong>mis "redondance/abilité" : l'objectif commun <strong>de</strong>sco<strong>de</strong>s à eacements et <strong>de</strong> la compression d'en-têtesCette section présente l'autre domaine d'application <strong>de</strong> la théorie <strong>de</strong> l'informationdans le domaine <strong>de</strong>s réseaux que nous avons abordé dans cette thèse : la compressiond'en-têtes. La diérence entre le domaine <strong>de</strong>s co<strong>de</strong>s à eacements et celui <strong>de</strong> la compressiond'en-têtes rési<strong>de</strong> dans le fait que, pour les co<strong>de</strong>s à eacements, les donnéessont considérées être déjà compressées. On ne gère alors que l'ajout <strong>de</strong> redondanceet la gestion <strong>de</strong> cette redondance par rapport à la abilité. Pour la compression d'entêtes,les données à traiter, c'est-à-dire les en-têtes, contiennent déjà une redondancenaturelle. Pour obtenir un bon com<strong>pro</strong>mis "redondance/abilité" (équivalent au ratio"compression/abilité) on pourrait se ramener au schéma <strong>de</strong>s co<strong>de</strong>s à eacements encompressant les données au maximum, puis en rajoutant <strong>de</strong> la redondance pour luttercontre les erreurs et les pertes <strong>de</strong> paquets. Ceci a déjà été <strong>pro</strong>posé, par exemple dans[35]. Toutefois, vu le type <strong>de</strong> redondance (principalement inter-paquets), il apparaîtque la meilleur com<strong>pro</strong>mis "redondance/abilité" est obtenu en intégrant directementla gestion <strong>de</strong> la abilité dans les mécanismes <strong>de</strong> compression en réalisant ainsi un typeparticulier <strong>de</strong> codage conjoint source-canal.


28 Chapitre 2. Etat <strong>de</strong> l'art et principales notions2.3.1.2 Introduction à la compression d'en-têtesLa compression d'en-têtes <strong>pro</strong>tocolaire a pour origine la volonté <strong>de</strong> diminuer la<strong>pro</strong>portion <strong>de</strong> données prise par les piles <strong>pro</strong>tocolaires, au détriment <strong>de</strong>s données effectives,et ceci, dans le but d'augmenter le débit disponible dans <strong>de</strong>s réseaux à fortecontrainte <strong>de</strong> ban<strong>de</strong> passante. Le domaine d'application initial, dans le début <strong>de</strong>s années1990 concernait en majorité les réseaux classiques, mais avec l'avènement <strong>de</strong>nouveaux types <strong>de</strong> communication, cette théorie vise à s'étendre aux réseaux à fortcoût, tels les réseaux satellitaires, mais aussi à forte contrainte, tels les réseaux mobiles.Par ailleurs, le développement d'applications <strong>de</strong> type VoIP a mis en évi<strong>de</strong>nce lebesoin d'une telle compression, où la pile <strong>pro</strong>tocolaire peut représenter jusqu'à 50%<strong>de</strong> la taille <strong>de</strong>s paquets transmis.2.3.2 Compressed TCP / Van JacobsonUne <strong>de</strong>s premières ap<strong>pro</strong>ches concernant la compression d'en-têtes <strong>pro</strong>vient <strong>de</strong><strong>de</strong>ux <strong>pro</strong>tocoles, respectivement Thinwire-I et Thinwire-II dénis par Farber et al.[36] en 1984. Ces <strong>de</strong>ux mécanismes visaient à la compression <strong>de</strong>s en-têtes TCP/IPdans le cadre d'une communication "mono-caractère" à très faible débit. En eet, <strong>de</strong>nombreuses applications, <strong>de</strong> type Telnet, nécessitaient l'envoi <strong>de</strong> données caractèrepar caractère, ainsi que leur acquittement respectif. En conséquence, pour chaquecaractère, était apposé l'en-tête complet TCP/IP d'une longueur <strong>de</strong> 40 octets. Dansce cas là, le paquet TCP/IP transmis est d'une longueur <strong>de</strong> 41 octets avec seulementun seul octet d'information.Thinwire-I fonctionne sur un principe <strong>de</strong> drapeaux. Lorsque un nouveau paquetest envoyé, seuls les octets changeants entre l'en-tête précé<strong>de</strong>nt et le nouvel en-têtesont transmis. Pour cela, chaque modication est notié par un drapeau d'un octet.Les quatre premiers bits permettent <strong>de</strong> fournir le décalage en octets entre le <strong>de</strong>rnieroctet du précé<strong>de</strong>nt champ modié et le début du nouveau champ modié. Les quatre<strong>de</strong>rniers bits dénissent la longueur <strong>de</strong> la modication en octets. La n <strong>de</strong> l'en-têteest signalée par un drapeau nul. Cette technique <strong>de</strong> compression permet <strong>de</strong> réduire,dans le cas général, la taille moyenne <strong>de</strong> l'en-tête TCP/IP à 17 octets. Par rapportà ce mécanisme, Thinwire-II permet <strong>de</strong> dénir <strong>de</strong>s classes types. Le principe consisteà dénir <strong>de</strong>s "squelettes" <strong>de</strong> type <strong>de</strong> modications. Dans la plupart <strong>de</strong>s cas, les différences,et donc les modications entre paquets, sont sensiblement i<strong>de</strong>ntiques d'unpaquet à l'autre. En dénissant <strong>de</strong>s classes types, Thinwire-II permet <strong>de</strong> s'aranchir<strong>de</strong> mécanismes <strong>de</strong> drapeaux et permet une compression jusqu'à 13 octets.Compressed TCP, ou CTCP en abrégé, est un mécanisme <strong>de</strong> compression d'entêtestandardisé [37] déni par Van Jacobson en 1990. On peut également trouvercette algorithme sous le nom VJ, en référence à son auteur. Comme son nom l'indique,ce mécanisme se charge <strong>de</strong> la compression <strong>de</strong>s en-têtes TCP/IP, en IPv4 seulement.Ce mécanisme <strong>de</strong> compression permet d'obtenir une réduction <strong>de</strong> l'en-tête jusqu'à 3


2.3. La compression d'en-têtes 29Figure 2.10 Schéma général <strong>de</strong> l'en-tête TCP/IPv4octets.Le premier point <strong>de</strong> CTCP est, tout comme Thinwire, <strong>de</strong> s'aranchir <strong>de</strong>s champsconsidérés comme invariants ou quasi-invariants lors d'une même connexion TCP. Ceschamps sont représentés en grisé sur la Figure 2.10. On considère ici que ces champssont conservés en mémoire par le mécanisme <strong>de</strong> compression du côté <strong>de</strong> l'expéditeur,et par le décompresseur du <strong>de</strong>stinataire. Ce premier mécanisme permet <strong>de</strong> réduire <strong>de</strong>moitié l'ensemble <strong>de</strong> l'en-tête à transmettre. Etant donné que le quadruplet {Adressesource, Port source, Adresse <strong>de</strong>stination, Port <strong>de</strong>stination} n'est plus disponible dansl'en-tête compressé, CTCP dénit un mécanisme d'i<strong>de</strong>ntiant <strong>de</strong> connexion (CID)codé sur un octet permettant aux n÷uds intermédiaires <strong>de</strong> pouvoir faire transitercorrectement ces en-têtes. Nous voyons ainsi apparaître la nécessité d'avoir une priseen charge <strong>de</strong> CTCP par tous les n÷uds intermédiaires.CTCP considère que la couche liaison sous-jacente est capable <strong>de</strong> fournir la taille<strong>de</strong>s paquets reçus, ce qui rend inutile la transmission du champ Taille Totale. Lasomme <strong>de</strong> contrôle <strong>de</strong> l'entête IP ne <strong>pro</strong>tégeant plus que le numéro d'i<strong>de</strong>ntication,celle-ci est aussi inutile et également supprimée. Elle sera recréée par la suite au niveaudu récepteur à <strong>de</strong>s n <strong>de</strong> compatibilité. A ce niveau là, l'étu<strong>de</strong> <strong>de</strong>s champs invariantset caduques ramène la taille <strong>de</strong> l'en-tête TCP/IP à transmettre à 16 octets.Si les champs restants ne sont pas considérés comme invariants, ils ne varient pas


30 Chapitre 2. Etat <strong>de</strong> l'art et principales notionsnéanmoins tous en même temps. CTCP transmet uniquement les champs variants d'unen-tête à l'autre. An <strong>de</strong> permettre au déco<strong>de</strong>ur <strong>de</strong> savoir si telle ou telle modication<strong>de</strong> champ est présente, chaque champ est associé avec un drapeau d'un bit permettant<strong>de</strong> marquer sa présence ou son absence. Ce mécanisme permet <strong>de</strong> ramener la taillemoyenne nécessaire à une dizaine d'octets.Enn, le <strong>de</strong>rnier mécanisme mis en ÷uvre dans CTCP concerne l'encodage dit<strong>de</strong>lta encoding. Comme son nom l'indique, l'encodage <strong>de</strong>lta consiste à n'envoyer quela diérence <strong>de</strong> valeur entre un champ et le précé<strong>de</strong>nt. Ceci est particulièrementutile pour les champs <strong>de</strong> 2 ou 4 octets, qui évoluent <strong>de</strong> façon incrémentale (commegénéralement les numéros d'i<strong>de</strong>ntication). En eet, si la modication est compriseentre 1 et 255, ce champ ne sera codé que sur un seul octet. Le schéma général <strong>de</strong>l'en-tête compressé CTCP se trouve sur la Figure 2.11.Figure 2.11 Schéma général <strong>de</strong> l'en-tête CTCPSur le premier octet, nous trouvons donc les drapeaux permettant d'i<strong>de</strong>ntier laprésence du champ correspondant dans la suite <strong>de</strong> l'en-tête. Le bit C permet lui aussid'annoncer l'absence ou la présence du CID, qui peut être omis, comme par exempledans le cas <strong>de</strong> connexions directes. Le bit P est une transposition direct du bit Push<strong>de</strong> TCP. Il est possible <strong>de</strong> transmettre <strong>de</strong>s <strong>de</strong>ltas négatifs ou supérieurs à 255 avecce mécanisme. Dans ce cas, le premier octet du champ est codé à 0. Un <strong>de</strong>lta <strong>de</strong> 0n'ayant aucun sens ici car il serait inutile, le <strong>de</strong>lta est ainsi codé sur les <strong>de</strong>ux octetssuivants.Comme nous pouvons le voir, le premier bit <strong>de</strong> l'en-tête CTCP est inutilisé. En<strong>de</strong>hors du standard, il est cependant courant <strong>de</strong> voir ce bit utilisé pour la notication<strong>de</strong> congestion (ECN) [38]. Il est aussi possible <strong>de</strong> trouver un drapeau à cette position,celui-ci permettant la dénition d'extensions supplémentaires à TCP dans l'octetsuivant.Dans le cas général, la taille moyenne <strong>de</strong> l'en-tête CTCP est d'environ 5 octetsavec ce mécanisme, et peut même atteindre 3 octets. Dans ce cas là, l'en-tête est


2.3. La compression d'en-têtes 31réduit à l'octet contenant les drapeaux et les <strong>de</strong>ux octets <strong>de</strong> la somme <strong>de</strong> contrôle <strong>de</strong>TCP.CTCP/VJ est donc un mécanisme <strong>de</strong> compression d'en-têtes TCP/IP qui a l'avantaged'avoir une mise en ÷uvre très simple, tout en présentant <strong>de</strong> bonnes performances<strong>de</strong> compression. Il présente également l'avantage d'être le plus transparent possiblepour les couches adjacentes. Cette compression n'ore cependant aucune abilitéquant à la perte <strong>de</strong> paquets. En eet, le codage <strong>de</strong>lta <strong>de</strong>vient inutilisable dès lors quele paquet précé<strong>de</strong>nt, et donc son entête, est perdu.2.3.3 IPHC/CRTP/eCRTPAn <strong>de</strong> combler certaines carences <strong>de</strong> CTCP, dues en majorité à l'évolution <strong>de</strong>stechnologies et <strong>de</strong>s besoins (IPv6, RTP, ...), <strong>de</strong>ux nouveaux <strong>pro</strong>tocoles <strong>de</strong> compressionont été dénis. Le premier, IP Hea<strong>de</strong>r Compression (IPHC) [39] se concentresur la compression TCP/IP que ce soit en IPv4 ou en IPv6. De manière analogue etconjointe, le second mécanisme Compressed RTP [40], se charge lui <strong>de</strong>s compressionsRTP/UDP/IP et UDP/IP. Les <strong>de</strong>ux <strong>pro</strong>tocoles partagent <strong>de</strong> nombreuses similitu<strong>de</strong>s.enhanced CRTP (eCRTP) [41] est une extension à CRTP permettant une meilleureprise en charge <strong>de</strong>s réseaux à long RTT et à réordonnancement. Ces <strong>pro</strong>tocoles introduisentles premiers mécanismes <strong>de</strong> abilisation suite à la compression d'en-têtes.2.3.3.1 IPHCIPHC est un <strong>pro</strong>tocole <strong>de</strong> compression permettant une compression <strong>de</strong>s en-têtesTCP/IP jusqu'à une taille moyenne <strong>de</strong> 4 à 7 octets. Le <strong>pro</strong>tocole permet par ailleursune compression seule <strong>de</strong> l'en-tête IP. Ces <strong>de</strong>ux schémas sont d'ailleurs gérés enIPv4, mais aussi en IPv6. Tout comme CRTP, IPHC est un <strong>pro</strong>tocole <strong>de</strong> compressionpoint-à-point ; un paquet compressé n'est donc pas transporté <strong>de</strong> bout en bout sansmodications. Celui-ci nécessite donc une régénération complète <strong>de</strong> la compressionau niveau <strong>de</strong> chaque n÷ud réseau, mais garantit une transparence complète vis-à-vis<strong>de</strong> ce même réseau, si toute la chaîne n'est pas compatible, ou ne souhaite pas activercette compression. Au niveau du codage, IPHC utilise un mécanisme <strong>de</strong> codagediérentiel similaire à CTCP, tout en ajoutant <strong>de</strong>ux mécanismes <strong>de</strong> détection/reprisesur erreur, TWICE et Hea<strong>de</strong>r Request que nous détaillerons par la suite.L'i<strong>de</strong>ntication <strong>de</strong>s paquets IPHC se fait par <strong>de</strong>ux paramètres. Le premier, le CIDest similaire au mécanisme d'i<strong>de</strong>ntication <strong>de</strong> connexion <strong>de</strong> CTCP/VJ. Le secondparamètre est appelé generation, et permet d'i<strong>de</strong>ntier chaque paquet IPHC d'unemême connexion et d'un même contexte par un numéro <strong>de</strong> séquence. Celui-ci n'estpas utilisé pour la compression TCP/IP, la couche TCP permettant une i<strong>de</strong>nticationgrâce à son numéro <strong>de</strong> séquence <strong>pro</strong>pre, mais pour la compression <strong>de</strong>s en-têtes IPseuls. Cette numérotation, comme nous le verrons par la suite, permet <strong>de</strong> mettre en


32 Chapitre 2. Etat <strong>de</strong> l'art et principales notionsplace les mécanismes <strong>de</strong> détection et <strong>de</strong> reprise sur erreur.Le <strong>pro</strong>tocole IPHC se base sur quatre types <strong>de</strong> paquets : Les paquets FULL_HEADER permettent <strong>de</strong> transporter l'en-tête non compressé.De manière similaire à CTCP, le champ Packet Length d'IP étant fournipar la couche liaison, celui-ci sert ici au transport du CID et éventuellement dugeneration. Ce type <strong>de</strong> paquet est utilisé pour un établissement ou un rafraîchissementdu contexte eectué <strong>de</strong> manière régulière an d'éviter la <strong>pro</strong>pagationd'erreurs. Les paquets COMPRESSED_NON_TCP qui se chargent donc <strong>de</strong> la compression<strong>de</strong> l'en-tête IP seul. Dans ce cas, l'en-tête IP est remplacé par <strong>de</strong>ux octetspermettant la transmission du CID et du generation. Les paquets COMPRESSED_TCP qui sont donc les paquets les plus courantsdans ce mécanisme. Ils permettent le transport <strong>de</strong> l'en-tête compressé TCP/IPà l'ai<strong>de</strong> d'un codage diérentiel, ainsi que l'i<strong>de</strong>ntiant <strong>de</strong> contexte. Le schéma<strong>de</strong> cet en-tête est très similaire à celui <strong>de</strong> CTCP, le bit inutilisé étant remplacépar R, drapeau permettant la dénition d'extensions supplémentaires. Le bit C<strong>de</strong> CTCP est ici inutile car le CID est toujours transmis. Les paquets COMPRESSED_TCP_NODELTA qui permettent l'envoi <strong>de</strong> l'entêteTCP non compressé sans les numéros <strong>de</strong> port. En accolant le CID, la taille<strong>de</strong> cet en-tête est <strong>de</strong> 17 octets. Ce type <strong>de</strong> paquet ne peut être envoyé qu'enréponse au mécanisme <strong>de</strong> Hea<strong>de</strong>r Request détaillé par la suite.L'une <strong>de</strong>s principales nouveautés <strong>de</strong>s <strong>pro</strong>tocoles IPHC et CRTP est la mise enplace <strong>de</strong> mécanismes <strong>de</strong> abilisation. Deux mesures principales ont été mis en oeuvrean <strong>de</strong> lutter contre les défauts inhérents au codage diérentiel.Dans un <strong>pro</strong>tocole plus classique, tel CTCP, lorsqu'un en-tête est perdu, le décompresseurest incapable <strong>de</strong> récupérer les paquets suivants, pourtant reçus, jusqu'àréception d'un en-tête non compressé qui contient le nouveau contexte. Dans le butd'éviter ce genre <strong>de</strong> désynchronisation, IPHC et CRTP implémentent un mécanismeappelé TWICE. L'idée <strong>de</strong> l'algorithme TWICE est <strong>de</strong> considérer que lorsque un entêteest reçu, si la somme <strong>de</strong> contrôle <strong>de</strong> TCP échoue, alors cet échec est imputableà une perte <strong>de</strong> paquets. Dans ce cas, le décompresseur va considérer que le ou lespaquets perdus apportaient le même codage diérentiel que celui reçu, et va appliquerce diérentiel une ou plusieurs fois.Lorsque le mécanisme TWICE échoue, IPHC permet <strong>de</strong> basculer sur le secondmécanisme <strong>de</strong> reprise sur erreur : Hea<strong>de</strong>r Request. Le décompresseur a la possibilitéd'envoyer un paquet nommé CONTEXT_STATE. Dans ce paquet, le décompresseurprécise le ou les CID pour lequel le contexte est invalidé. Lorsque le compresseur reçoitcette notication, il utilise alors un paquet COMPRESSED_TCP_NODELTA quicontient l'intégralité <strong>de</strong> l'en-tête TCP et permet donc <strong>de</strong> resynchroniser le récepteur.Par la suite, IPHC utilise un mécanisme <strong>de</strong> reprise sur erreur <strong>de</strong> type Slow Start, bienconnu <strong>de</strong> TCP. Initialement chaque en-tête non compressé est séparé par l'envoi d'un


2.3. La compression d'en-têtes 33en-tête compressé. Cette séparation augmente exponentiellement jusqu'à atteindreune valeur limite. Lorsque une perte est détectée, le compresseur revient à son étatinitial.Enn, la <strong>de</strong>rnière <strong>pro</strong>blématique majeure reste la gestion du réordonnancement.Dans le cadre <strong>de</strong> la transmission d'en-têtes TCP/IP et à cause du codage diérentiel,le décompresseur n'a aucun moyen <strong>de</strong> gérer le réordonnancement. Deux solutionssont alors possibles. La première solution consiste à n'utiliser que <strong>de</strong>s paquets <strong>de</strong>type COMPRESSED_TCP_NODELTA, mais celle-ci n'est pas satisfaisante car ellenécessite l'envoi d'en-têtes <strong>de</strong> 17 octets, et n'ore ainsi aucun avantage sur CTCPpar exemple. Une secon<strong>de</strong> solution consiste à envoyer les numéros <strong>de</strong> séquence TCPen valeur absolue, au coût <strong>de</strong> 2 octets supplémentaires. Cette solution est <strong>pro</strong>poséeà titre informative dans le standard.2.3.3.2 CRTPParrallèlement à la compression TCP/IP, un <strong>pro</strong>tocole <strong>de</strong> compression compatiblea été déni pour la compression <strong>de</strong>s en-têtes RTP/UDP/IP et UDP/IP : CompressedRTP (CRTP). Ainsi, CRTP partage <strong>de</strong> nombreux mécanismes communs avec IPHC.Avec la croissance <strong>de</strong>s besoins multimédias, l'utilisation <strong>de</strong>s <strong>pro</strong>tocoles RTP et UDPest <strong>de</strong>venue cruciale. Dans le cadre d'envoi <strong>de</strong> paquets <strong>de</strong> petite taille, typiquement <strong>de</strong>spaquets audio, la taille <strong>de</strong> l'en-tête RTP/UDP/IP peut être similaire à celle <strong>de</strong>s donnéestransportées. Il est donc important <strong>de</strong> pouvoir dénir un schéma <strong>de</strong> compressiond'en-tête, ceux-ci pouvant représenter jusqu'à 50% du trac envoyé.Real-Time Protocol ou RTP est un <strong>pro</strong>tocole [42] qui se situe au <strong>de</strong>ssus <strong>de</strong> lacouche UDP et qui apporte une gestion particulièrement adaptée au transport <strong>de</strong>données sensibles au délai et à la gigue. Sa taille est <strong>de</strong> 12 octets. UDP quant àlui est un <strong>pro</strong>tocole <strong>de</strong> transport en mo<strong>de</strong> non connecté, qui n'apporte ainsi aucunmécanisme <strong>de</strong> qualité <strong>de</strong> service. Ceci est cependant un avantage pour RTP et letransport <strong>de</strong> données temps-réel qui ne nécessitent pas ce type <strong>de</strong> contraintes. L'entêtedu <strong>pro</strong>tocole UDP est donc réduit à 8 octets, contenant les ports source et<strong>de</strong>stination, la longueur du paquet ainsi que la somme <strong>de</strong> contrôle <strong>de</strong> l'en-tête.La taille totale <strong>de</strong> l'en-tête RTP/UDP est <strong>de</strong> 20 octets, i<strong>de</strong>ntique à celle <strong>de</strong>l'en-tête TCP. Au niveau <strong>de</strong> l'en-tête RTP, le mécanisme <strong>de</strong> codage diérentiel estadapté. En eet, la plupart <strong>de</strong>s champs RTP évoluent d'un <strong>de</strong>lta constant d'un paquetà l'autre. L'idée est ici <strong>de</strong> co<strong>de</strong>r le changement <strong>de</strong> <strong>de</strong>lta, ou la diérence du secondordre en d'autres termes. Dans ce cas, lorsque le décompresseur reçoit une nouvellevaleur représentant un champ, il modie le <strong>de</strong>lta à appliquer (sauf pour le numéro<strong>de</strong> séquence RTP) et non pas la valeur du champ directement. Ce mécanisme sousentendbien entendu, que l'émetteur et le récepteur conservent en mémoire les <strong>de</strong>ltascorrespondants en plus <strong>de</strong>s paramètres <strong>de</strong> la connexion. Par rapport à IPHC, il estimportant <strong>de</strong> noter que ce codage diérentiel du second ordre s'applique aussi auchamp IP ID <strong>de</strong> l'en-tête IP.Au niveau du contexte, CRTP considère que le contexte est déni par les adresseset ports source et <strong>de</strong>stination ainsi que l'i<strong>de</strong>ntiant <strong>de</strong> source SSRC <strong>de</strong> RTP. De ma-


34 Chapitre 2. Etat <strong>de</strong> l'art et principales notionsnière similaire aux mécanismes précé<strong>de</strong>mment étudiés, chaque contexte est associé àun i<strong>de</strong>ntiant <strong>de</strong> connexion CID. Au niveau <strong>de</strong> l'en-tête UDP/IP, seul le champ IP IDest ainsi transmis. Quant à l'en-tête RTP, le champ SSRC étant i<strong>de</strong>ntié par un CIDunique, seuls les champs M, le numéro <strong>de</strong> séquence et le timestamp sont transmis.Les bits P, X, et le champ type <strong>de</strong> données sont considérés comme susammentconstants pour ne pas avoir à être transmis. Contrairement aux autres champs, seulsles 4 <strong>de</strong>rniers bits du numéro <strong>de</strong> séquence sont transmis, et ce en valeur absolue permettantune détection rudimentaire <strong>de</strong> pertes.Tout comme IPHC, CRTP dénit quatre types <strong>de</strong> paquets à transmettre : Les paquets <strong>de</strong> type FULL_HEADER sont homogènes avec leurs homologuesd'IPHC. Ceux-ci transportent le CID et le numéro <strong>de</strong> séquence sur 4 bits, enutilisant, ici aussi, les champs Packet length <strong>de</strong>s en-têtes UDP et IP. Les paquets <strong>de</strong> type COMPRESSED_NON_TCP i<strong>de</strong>ntiques à ceux d'IPHC.Figure 2.12 Schéma général <strong>de</strong> l'en-tête COMPRESSED_RTP Les paquets COMPRESSED_RTP qui utilisent le codage diérentiel du secondordre. Comme nous pouvons le remarquer sur la Figure 2.12, l'en-tête est alorsréduit à 2 octets au minimum, comprenant le CID, le numéro <strong>de</strong> séquence etles drapeaux marquant la présence <strong>de</strong>s <strong>de</strong>ltas du second ordre dans la suite <strong>de</strong>l'en-tête. La compression <strong>de</strong> l'en-tête UDP/IP seul entraîne l'envoi d'un paquet <strong>de</strong> typeCOMPRESSED_UDP. Ce type <strong>de</strong> paquet est également utilisé lorsque l'un<strong>de</strong>s champs considéré comme constant <strong>de</strong> RTP, est modié. La partie UDP/IPcompressée peut être considérée comme un cas particulier <strong>de</strong>s paquets COM-PRESSED_RTP (Figure 2.13).Les mécanismes <strong>de</strong> détection et <strong>de</strong> reprise sur erreur sont similaires à ceux d'IPHC.


2.3. La compression d'en-têtes 35Figure 2.13 Schéma général <strong>de</strong> l'en-tête COMPRESSED_UDPCependant, le numéro <strong>de</strong> séquence n'est ici pas codé en diérentiel, mais en valeurabsolue sur ses 4 <strong>de</strong>rniers bits. Ce mécanisme semble donc permettre une détectionplus pertinente qu'IPHC, sauf dans le cas où le nombre <strong>de</strong> paquets perdus est unmultiple <strong>de</strong> 16. Dans ce cas, la détection <strong>de</strong>s pertes se fera sur la somme <strong>de</strong> contrôleUDP si elle est présente. Dans le cas contraire, une <strong>pro</strong>pagation d'erreurs conséquentepeut apparaître.2.3.3.3 eCRTPAn d'éviter ce genre <strong>de</strong> comportements, mais pour aussi s'adapter à <strong>de</strong>s transmissionsmultimédia sur <strong>de</strong>s réseaux à long délais, où la retransmission est inutile, l'IETF a<strong>pro</strong>posé une évolution <strong>de</strong> CRTP, nommée enhanced CRTP (eCRTP). Le mécanisme<strong>de</strong> récupération sur erreur n'étant pas modié, le gain en abilité s'eectue grâceà une redondance inter-paquets, permettant <strong>de</strong> limiter la perte <strong>de</strong> synchronisation.Cette redondance s'accompagne naturellement d'une compression moindre. Cette redondances'articule en trois points : un envoi multiple <strong>de</strong>s paramètres du contexte,l'envoi possible <strong>de</strong> paramètres en valeurs absolues et enn l'utilisation <strong>de</strong> paquetsCOMPRESSED_UDP comme type <strong>de</strong> paquet par défaut.Figure 2.14 Octet <strong>de</strong> drapeaux eCRTP


36 Chapitre 2. Etat <strong>de</strong> l'art et principales notionsAn <strong>de</strong> permettre une plus gran<strong>de</strong> souplesse au niveau <strong>de</strong> la transmission <strong>de</strong>s paramètres,eCRTP se base sur le schéma d'en-tête compressé COMPRESSED_UDP.Pour <strong>de</strong>s raisons <strong>de</strong> compréhension, les drapeaux marquants <strong>de</strong>s diérentiels du secondordre seront représentés avec un . Sur la Figure 2.14, les 3 premiers bits inutilisés sontremplacés par F, I et t. Le bit F dénit la présence d'un second octet <strong>de</strong> drapeaux. Ii<strong>de</strong>ntie la présence <strong>de</strong> l'IP ID d'IPv4 en valeur absolue, et I, son nouveau diérentiel.t permet quant à lui <strong>de</strong> donner le nouveau diérentiel du timestamp RTP. Sur lesecond octet <strong>de</strong> drapeaux, nous retrouvons les bits M, S, T et P utilisés <strong>de</strong> la mêmemanière que pour les paquets COMPRESSED_RTP <strong>de</strong> CRTP. Le bit C quant à luidénit la présence d'un troisième octet dont les quatre <strong>de</strong>rniers bits correspondrontau nombre <strong>de</strong> sources contribuantes <strong>de</strong> RTP (CSRC).Au niveau <strong>de</strong> la abilisation, eCRTP nécessite la mise en place d'un mécanisme<strong>de</strong> validation. Celui-ci peut être fourni par la somme <strong>de</strong> contrôle UDP, mais celle-cin'est pas obligatoire en IPv4. An <strong>de</strong> pallier ce manque, eCRTP <strong>pro</strong>pose d'utiliserune somme contrôlant l'en-tête nommée Hea<strong>de</strong>r Checksum ou HDRCKSUM. Celui-ciest géré par le <strong>pro</strong>tocole <strong>de</strong> compression. Il est donc transparent pour les couchessupérieures, et son utilisation est signalée via un drapeau dans les champs PacketLength.An d'éviter <strong>de</strong>s invalidations <strong>de</strong> contexte qui entraînent une perte <strong>de</strong> synchronisation,eCRTP <strong>pro</strong>pose un mécanisme <strong>de</strong> renvoi multiple. Dans la version classique, laperte d'un seul en-tête peut entraîner une perte <strong>de</strong> synchronisation, si celui-ci apportaitun changement <strong>de</strong> <strong>de</strong>lta irrécupérable par l'algorithme TWICE. eCRTP <strong>pro</strong>pose<strong>de</strong> répéter chacune <strong>de</strong>s modications <strong>de</strong> <strong>de</strong>lta un certain nombre <strong>de</strong> fois. En répétantchaque mise à jour N fois, eCRTP permet <strong>de</strong> supporter N pertes successives. Atitre d'exemple, un émetteur émet un paquet RTP toutes les 10ms pendant 100ms.Puis cet émetteur attend 200ms avant <strong>de</strong> renvoyer <strong>de</strong>s paquets tous les 10ms. Avecle codage diérentiel <strong>de</strong> CRTP, si le récepteur ne reçoit pas le premier paquet émisaprès les 200ms, l'algorithme TWICE échoue car le <strong>de</strong>lta du timestamp a été modié.Avec eCRTP, non seulement le timestamp peut être envoyé en valeur absolue, maisceci sur N paquets consécutifs, et permet donc <strong>de</strong> supporter la perte <strong>de</strong> ce paquet.Cependant, il est important <strong>de</strong> noter que ces améliorations <strong>de</strong> la abilisation se fontau détriment du taux <strong>de</strong> compression. Il faut donc tenir compte à ne pas utiliser unN surdimensionné et à n'envoyer les champs en valeur absolue que lorsque ceci estnécessaire, an <strong>de</strong> ne pas rendre la compression d'en-têtes eCRTP contre-<strong>pro</strong>ductive.eCRTP apporte donc <strong>de</strong>s améliorations concernant la abilisation <strong>de</strong>s en-têtesRTP/UDP/IP. L'ensemble IPHC/eCRTP permet donc une compression ecace <strong>de</strong>sprincipaux <strong>pro</strong>tocoles réseaux à savoir TCP, UDP, RTP ainsi qu'IPv4 et IPv6. Grâceà l'utilisation d'algorithme <strong>de</strong> récupération, ces <strong>pro</strong>tocoles permettent d'éliminer enpartie les conséquences <strong>de</strong> la compression sur la perte <strong>de</strong> paquets et les pertes <strong>de</strong>synchronisation successives. Cependant, du point <strong>de</strong> vue la abilisation, ces <strong>pro</strong>tocolesne sont pas optimaux car, an d'être très ecaces, ceux-ci nécessitent <strong>de</strong> sacrier


2.3. La compression d'en-têtes 37une partie importante du taux <strong>de</strong> compression.2.3.4 ROHCRObust Hea<strong>de</strong>r Compression (ROHC) est une plateforme pour la compressiond'en-têtes standardisé par l'IETF [43]. Le principe <strong>de</strong> ce standard est <strong>de</strong> <strong>pro</strong>poser uneplateforme commune <strong>de</strong> compression à laquelle se greent <strong>de</strong>s <strong>pro</strong>ls particuliers àchaque <strong>pro</strong>tocole. Ainsi, le but est <strong>de</strong> standardiser le fonctionnement <strong>de</strong> l'émetteuret du récepteur, tout en conservant les particularités <strong>de</strong> chaque <strong>pro</strong>tocole. Dans lapremière version du standard, ROHC ne gère que les <strong>pro</strong>ls RTP/UDP/IP, UDP/IPet ESP/IP, en IPv4 et IPv6. Par la suite, la compression d'IP seule [44], d'UDP lite[45] et <strong>de</strong> TCP [46] ont été standardisées.ROHC permet donc l'implémentation au fur et à mesure <strong>de</strong> <strong>pro</strong>ls <strong>de</strong> <strong>pro</strong>tocoles,qui suivent les mêmes règles <strong>de</strong> fonctionnement, et autorise donc une gran<strong>de</strong> modularité.Cependant cette modularité se traduit par <strong>de</strong>s mécanismes <strong>de</strong> fonctionnementcomplexes et en constante évolution comme en témoigne le nombre <strong>de</strong> standardsmettant à jour la dénition du framework ROHC ou <strong>de</strong> ses <strong>pro</strong>ls [47] [48] [49] [50].Dans cette étu<strong>de</strong>, par souci <strong>de</strong> concision, nous présenterons le mécanisme général<strong>de</strong> fonctionnement <strong>de</strong> ROHC, que nous illustrerons avec le <strong>pro</strong>l RTP/UDP/IP.Figure 2.15 Machine à états du compresseur ROHCLe <strong>pro</strong>tocole ROHC repose sur l'utilisation <strong>de</strong> machines à états nis régissantle fonctionnement du compresseur et du décompresseur. Comme schématisé sur laFigure 2.15, le compresseur original fonctionne sur une machine à trois états : L'état Initialisation & Refresh (IR) dans lequel le compresseur envoie <strong>de</strong>s entêtesnon compressés, permettant d'initialiser une connexion ou <strong>de</strong> mettre enplace une récupération suite à une désynchronisation totale. L'état First Or<strong>de</strong>r (FO), qui correspond, comme son nom l'indique, à un premierniveau <strong>de</strong> compression dans lequel les champs dits statiques (adresses, ports,...)ne sont pas transmis, et les autres champs sont compressés partiellement. cetype <strong>de</strong> compression est utilisé pour <strong>de</strong> la reprise sur erreur n'incluant pas uneperte totale du contexte. L'état Second Or<strong>de</strong>r (SO) qui est l'état général du compresseur dans lequel lacompression est maximale.De manière analogue, le décompresseur fonctionne aussi sur une machine à troisétats, telle que représentée sur la Figure 2.16 : L'état No Context (NC) qui correspond à l'état dans lequel le décompresseur


38 Chapitre 2. Etat <strong>de</strong> l'art et principales notionsFigure 2.16 Machine à états du décompresseur ROHCn'a aucun contexte que ce soit les champs statiques ou dynamiques. C'est l'étatinitial du compresseur. Dans cet état le décompresseur attend <strong>de</strong>s en-têtes noncompressés. L'état Static Context (SC) dans lequel le décompresseur possè<strong>de</strong> le contextestatique. L'état Full Context (FC) où le décompresseur connaît le contexte en totalité.Même si le <strong>pro</strong>tocole ROHC fait en sorte que le compresseur s'adapte à l'état dudécompresseur, les <strong>de</strong>ux machines à états sont, dans l'absolu, décorellées.Les transitions <strong>de</strong> la machine à états du compresseur sont dépendantes du fonctionnementsouhaité. En eet, ROHC permet l'utilisation <strong>de</strong> la compression <strong>de</strong> manière<strong>pro</strong>-active ou réactive, selon que la voie <strong>de</strong> retour est disponible et/ou désirée. Pourcela, ROHC dénit trois mo<strong>de</strong>s <strong>de</strong> fonctionnement.Figure 2.17 Machine à états du compresseur en mo<strong>de</strong> UnidirectionnelLe premier mo<strong>de</strong> est dit Unidirectionnel (Unidirectional, U) et n'utilise pas la voie<strong>de</strong> retour. Il est donc parfaitement adapté dans le cadre d'une abilisation <strong>pro</strong>-active,lorsque la voie <strong>de</strong> retour est indisponible (satellite,...) ou inapplicable <strong>de</strong> manière simple(multicast,...). Comme déni sur la Figure 2.17, les transitions entre les diérents étatsdu compresseur gérées par <strong>de</strong>s timers.Dans ce contexte, toute la diculté est d'estimer judicieusement ces timers. Eneet, dans ce mo<strong>de</strong>, lorsque le décompresseur est désynchronisé, celui-ci doit attendrel'arrivée d'en-têtes non compressés an <strong>de</strong> retrouver le contexte. Pendant cetemps, tous les paquets reçus sont donc éliminés. En conséquence, les timers régissantle comportement du compresseur doivent être susamment courts pour éviter<strong>de</strong>s temps trop longs <strong>de</strong> désynchronisation, mais aussi, susamment longs pour quela compression moyenne soit ecace.Ce mo<strong>de</strong> <strong>de</strong> fonctionnement se base donc sur une connaissance à priori du canal.


2.3. La compression d'en-têtes 39Cependant, le mo<strong>de</strong> U laisse la possibilité au décompresseur d'envoyer <strong>de</strong>s acquittementspositifs. Ceux-ci sont optionnels, mais permettent ainsi au compresseur <strong>de</strong> juger<strong>de</strong> la qualité du lien, et <strong>de</strong> modier éventuellement en conséquence la durée <strong>de</strong>s timers<strong>de</strong> retour à l'état IR.Figure 2.18 Machine à états du compresseur en mo<strong>de</strong> OptimisteLe mo<strong>de</strong> Optimiste (Optimistic, O) est un mo<strong>de</strong> hybri<strong>de</strong> entre le mo<strong>de</strong> U et lemo<strong>de</strong> Fiable déni par la suite. Dans ce mo<strong>de</strong>, le compresseur se base à la fois sur <strong>de</strong>stimers et sur les acquittements du décompresseur. Dans ce mo<strong>de</strong>, l'utilisation <strong>de</strong> lavoie retour est nécessaire. Les transitions vers les niveaux <strong>de</strong> compression supérieursse font soit par le déclenchement d'un timer, soit par la réception d'un acquittementpositif optionnel. De manière analogue, les transitions vers les niveaux <strong>de</strong> compressioninférieurs se font par <strong>de</strong>s timers ou sur réception d'un acquittement négatif, ceuxciétant, par contre, obligatoires (Figure 2.18). Lorsque le compresseur reçoit unacquittement négatif <strong>de</strong> type STATIC-NACK, dénissant la perte totale du contexte,il transite vers l'état IR, et s'il reçoit simplement un acquittement NACK, il transitevers l'état FO.Figure 2.19 Machine à états du compresseur en mo<strong>de</strong> FiableLe mo<strong>de</strong> Fiable (Reliable, R) quant à lui se base uniquement sur les informations<strong>de</strong> la voie retour. Les transitions montantes se font uniquement sur réception d'unacquittement positif, et les transitions <strong>de</strong>scendantes à la réception d'un acquittementnégatif (Figure 2.19).Suivant le type d'application et <strong>de</strong> réseau visé, chaque mo<strong>de</strong> sera plus ou moinsadapté. En eet, dans le cadre <strong>de</strong> communication type réseau local, à haut débit,


40 Chapitre 2. Etat <strong>de</strong> l'art et principales notionsvoie <strong>de</strong> retour et faible latence, un mo<strong>de</strong> basé sur les acquittements sera plus ecaceen termes <strong>de</strong> compression qu'un mo<strong>de</strong> unidirectionnel. Cependant, si le réseau utilisécomporte une forte latence, ces mécanismes seront pénalisés au <strong>pro</strong>t d'un mo<strong>de</strong>unidirectionnel, indépendant <strong>de</strong> la latence du réseau.Des mécanismes permettant le basculement dynamique d'un mo<strong>de</strong> <strong>de</strong> compressionà un autre sont également dénis dans le standard, mais ne seront pas détaillés ici.Tout comme les mécanismes <strong>de</strong> compression précé<strong>de</strong>mment étudiés, ROHC dénit5 types <strong>de</strong> champs, selon leur variabilité : Les champs INFERRED non communiqués car déductibles d'autres paramètres. Les champs STATIC qui ne varient pas pour un ux <strong>de</strong> paquet. Lorsque un <strong>de</strong>ces champs varie, un paquet IR est envoyé. Les champs STATIC-DEF similaires, qui permettent l'i<strong>de</strong>ntication d'un ux <strong>de</strong>paquets (comme les adresses). Les champs STATIC-KNOWN qui sont <strong>de</strong>s valeurs connues car caractéristiquesd'un <strong>pro</strong>tocole Les champs CHANGING considérés comme variables.Par exemple, dans le cas <strong>de</strong> RTP/UDP/IP, la répartition <strong>de</strong> ces diérents champsest présentée dans la Table 2.1 :IPv6 (octets) IPv4 (octets)INFERRED 4 6STATIC 1.75 1.875STATIC-DEF 42.5 16STATIC-KNOWN 0.25 2.625CHANGING 11.5 13.5Total 60 40Table 2.1 Répartition <strong>de</strong>s champs RTP/UDP/IP dans ROHCAinsi, pour le <strong>pro</strong>tocole ROHC, seuls 34% <strong>de</strong> l'en-tête RTP/UDP/IP en IPv4 et19% en IPv6 sont considérés comme variables. Tout comme les <strong>pro</strong>tocoles précé<strong>de</strong>nts,ROHC permet <strong>de</strong> discriminer parmi les champs CHANGING diérents types <strong>de</strong>champs variables, notamment les champs variant d'un <strong>de</strong>lta quasi-constant. Ces mécanismespermettent ainsi d'obtenir <strong>de</strong>s performances <strong>de</strong> compression similaires auxautres <strong>pro</strong>tocoles.Lorsque le décompresseur détecte une erreur résiduelle dans le paquet courantreçu, celui-ci rejette simplement le paquet sans envoyer d'acquittement négatif (dansles mo<strong>de</strong>s O et R) ou changer d'état. Le décompresseur considère alors l'échec duCRC comme une erreur binaire dans le paquet reçu. Conformément à la machine àétats du décompresseur dénie sur la Figure 2.16, lorsque k 1 <strong>de</strong>s n 1 <strong>de</strong>rniers paquetsont vu leur CRC échouer, celui-ci passe <strong>de</strong> l'état Full Context à l'état Static Context.Dans ce cas, le décompresseur rejette tous les paquets jusqu'à réception d'un paquet


2.3. La compression d'en-têtes 41transportant un contexte dynamique entier. De la même manière, si le décompresseurse trouve dans l'état Static Context et si k 2 <strong>de</strong>s n 2 <strong>de</strong>rniers paquets transportant uncontexte dynamique entier échouent, le décompresseur se met dans l'état No Context.Dans l'état No Context, le décompresseur élimine tous les paquets jusqu'à réceptiond'un en-tête complet.Un <strong>de</strong>s points important du décompresseur ROHC est donc une bonne paramétrisation<strong>de</strong>s valeurs k et n. En eet, si <strong>de</strong>s valeurs trop sensibles sont utilisées, parexemple k 1 = n 1 = k 2 = n 2 = 1, le décompresseur réagira <strong>de</strong> manière excessive àtoute erreur, et entrainera une perte conséquente <strong>de</strong> paquets suite à ce changementd'état soudain. Ceci sera d'autant plus marqué que les timeouts sont importants dansles mo<strong>de</strong>s U et O et le RTT long dans les mo<strong>de</strong>s O et R. De même, un manque <strong>de</strong>sensiblité entraînera un manque <strong>de</strong> réaction et une longue invalidation en conséquence.Comme mécanisme <strong>de</strong> abilisation, ROHC <strong>pro</strong>pose une amélioration du mécanisme<strong>de</strong> type LSB. Dans un mécanisme <strong>de</strong> type LSB, lorsque une modication est àtransmettre, on envoie les k bits ayant été modiés, ou alors la plus petite valeur supérieureà k lorsque l'ensemble <strong>de</strong>s tailles permises est limité, par exemple <strong>de</strong>s champssur un ou <strong>de</strong>ux octets. Le fonctionnement <strong>de</strong> ce mécanisme est garanti lorsque lecompresseur et le décompresseur utilisent la même valeur <strong>de</strong> référence. Cependant,<strong>de</strong>ux scénarios peuvent empêcher le fonctionnement correct <strong>de</strong> ce codage. Dans unpremier cas, <strong>de</strong>s pertes <strong>de</strong> paquets peuvent apparaître. Dans ce cas, au <strong>pro</strong>chain paquetreçu par le décompresseur, celui-ci et le compresseur n'ont plus forcément lamême valeur <strong>de</strong> référence pour le codage LSB. Il n'est donc pas garanti ici que ledécodage fonctionne ce qui entraîne un perte <strong>de</strong> synchronisation. Dans un secondcas, <strong>de</strong>s erreurs bits résiduelles peuvent avoir modié le LSB porté par un paquet. Enconséquence, les <strong>pro</strong>chains paquets reçus ne se baseront pas sur la même valeur <strong>de</strong>référence que le compresseur et entraineront une <strong>pro</strong>pagation <strong>de</strong> l'erreur et une perte<strong>de</strong> synchronisation.An d'éliminer les erreurs d'interprétations dues à <strong>de</strong>s valeurs diérentes <strong>de</strong> référence<strong>de</strong> chaque côté, ROHC utilise un schéma appelé Window-LSB (W-LSB). Avecce mécanisme, le compresseur conserve en mémoire une fenêtre glissante <strong>de</strong> valeurs<strong>de</strong> référence. Lors <strong>de</strong> l'envoi d'un paquet original, le codage W-LSB va co<strong>de</strong>r sur lenombre minimal k 0<strong>de</strong> bits tels que l'interprétation <strong>de</strong> la valeur originale soit unique surl'intervalle couvert par l'ensemble <strong>de</strong>s valeurs <strong>de</strong> référence <strong>de</strong> la fenêtre. Ceci permetd'assurer que la décompression est correcte si tant est que le décompresseur a reçuune <strong>de</strong>s valeurs <strong>de</strong> référence <strong>de</strong> la fenêtre. Ceci permet donc <strong>de</strong> garantir <strong>de</strong> manièreecace la transmission <strong>de</strong>s valeurs, au prix d'une perte <strong>de</strong> compression mesurée.Le mécanisme W-LSB est illustré sur l'exemple suivant. Prenons l'exemple <strong>de</strong> latransmission <strong>de</strong>s valeurs : 124, 252, 276, 278 et supposons que la valeur 252 soitperdue lors <strong>de</strong> la transmission. Avec un codage <strong>de</strong> type LSB, le compresseur envoieles valeurs : 124, 252, 76, 8. Le codage a donc coûté ici 9 caractères. Cependant,le décompresseur déco<strong>de</strong>ra : 124, 176, 178. Avec un codage <strong>de</strong> type W-LSB et unetaille <strong>de</strong> fenêtre <strong>de</strong> <strong>de</strong>ux, le co<strong>de</strong>ur enverra 124, 252, 276, 78 soit 11 caractères mais


42 Chapitre 2. Etat <strong>de</strong> l'art et principales notionsici le décodage <strong>de</strong>s successeurs <strong>de</strong> 252 est garanti.En plus du mécanisme W-LSB, ROHC permet un encodage particulier adapté autimestamp RTP. Celui-ci étant généralement incrémenté par un multiple d'une valeurxée d'après les expérimentations, ROHC permet un mécanisme <strong>de</strong> compressionoù le compresseur envoie la valeur utilisée au décompresseur, puis envoie les valeurssuccessives en connaissance <strong>de</strong> cette valeur et n'a plus qu'à envoyer le multiple audécompresseur.ROHC est une plateforme <strong>de</strong> compression évoluée permettant <strong>de</strong> compression unlarge panel <strong>de</strong> <strong>pro</strong>tocoles. Le principal intérêt <strong>de</strong> ce <strong>pro</strong>tocole est <strong>de</strong> se présentercomme un mécanisme indépendant <strong>de</strong> toute couche supérieure en utilisant <strong>de</strong>s machinesà états régissant l'émetteur et le récepteur. Ceci permet l'utilisation <strong>de</strong> mo<strong>de</strong>sadaptés à une transmission unidirectionnelle ou <strong>de</strong> multi-diusion (mo<strong>de</strong>s U et O),mais aussi bi-directionnelle (mo<strong>de</strong>s O et R). Cependant, le principal point soulevé parces mo<strong>de</strong>s est leur ecacité respective lorsque la voie <strong>de</strong> retour est utilisable. En eet,si le mo<strong>de</strong> Fiable semble être le plus adapté à une communication bi-directionnelle,celui-ci subit intrinsèquement les délais <strong>de</strong> transmission induits par le canal. Si ce RTT(Round-Trip Time) est élevé, la détection <strong>de</strong> l'erreur sera longue et tous les paquetsreçus dans cet intervalle seront perdus.La abilisation <strong>de</strong> la compression ROHC est dépendante du mo<strong>de</strong> utilisé et du canal<strong>de</strong> transmission. Le codage W-LSB quant à lui permet une transmission robuste <strong>de</strong>svaleurs à transmettre. L'étu<strong>de</strong> <strong>de</strong> la abilisation <strong>de</strong> ROHC sera donc portée ici sur laparamétrisation <strong>de</strong> ROHC dans diérents mo<strong>de</strong>s et sur diérents scénarios <strong>de</strong> canaux.Plusieurs travaux ont visé à une modélisation du <strong>pro</strong>tocole ROHC sous certainesconditions. Les travaux <strong>de</strong> Cho et al. [51] [52] ont permis par exemple <strong>de</strong> dénir unmodèle <strong>de</strong> canal source pour l'étu<strong>de</strong> <strong>de</strong>s mécanismes <strong>de</strong> ROHC et plus particulièrement<strong>de</strong> l'intérêt <strong>de</strong> l'encodage W-LSB. Ces travaux se basent également sur un canal <strong>de</strong>type Gilbert-Elliott. De manière parallèle, les travaux <strong>de</strong> Minaburo et al. [53] [54]ont permis l'élaboration d'un modèle mathématique sur un canal à erreurs, du mo<strong>de</strong>Unidirectionnel <strong>de</strong> ROHC. La complexité inhérente du <strong>pro</strong>tocole ROHC ne permetpas d'ailleurs une modélisation complète <strong>de</strong> tous ses mécanismes pour l'ensemble <strong>de</strong>smo<strong>de</strong>s <strong>de</strong> fonctionnement. Il semble donc nécessaire <strong>de</strong> <strong>pro</strong>cé<strong>de</strong>r à une restriction <strong>de</strong>cette modélisation mathématique à <strong>de</strong>s scénarios ou <strong>de</strong>s mécanismes plus précis.


Chapitre 3Modélisation d'un <strong>pro</strong>tocole <strong>de</strong>compression d'en-têtesSommaire3.1 Introduction . . . . . . . . . . . . . . . . . . . . . . . . . . . . 433.2 La couche <strong>pro</strong>tocolaire et le canal <strong>de</strong> Gilbert-Elliott . . . . 443.2.1 Le modèle <strong>de</strong> Gilbert-Elliott . . . . . . . . . . . . . . . . . . . 463.2.2 Le modèle <strong>de</strong> compression . . . . . . . . . . . . . . . . . . . . 473.3 Modélisation du mo<strong>de</strong> Unidirectionnel . . . . . . . . . . . . 483.4 Modélisation du mo<strong>de</strong> Optimiste . . . . . . . . . . . . . . . . 613.5 Modélisation du mo<strong>de</strong> Fiable . . . . . . . . . . . . . . . . . . 633.6 Instantiations du modèle . . . . . . . . . . . . . . . . . . . . . 643.6.1 Instantiation par le <strong>pro</strong>tocole ROHC . . . . . . . . . . . . . . 643.6.2 Instantiation par un modèle à <strong>de</strong>ux états . . . . . . . . . . . 653.7 Résultats <strong>de</strong> simulation . . . . . . . . . . . . . . . . . . . . . . 653.8 Conclusion . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 683.1 IntroductionDans ce chapitre, nous présentons une modélisation mathématique d'un <strong>pro</strong>tocole<strong>de</strong> compression d'en-têtes <strong>pro</strong>tocolaire. Comme nous l'avons vu précé<strong>de</strong>mment, lestravaux dans ce domaine ont permis la création <strong>de</strong> mécanismes sophistiqués que ce soitavec ou sans voie <strong>de</strong> retour. Cependant, leur relative complexité rend leur étu<strong>de</strong> délicate.En eet, l'évaluation <strong>de</strong> leur performance la plus simple consiste <strong>pro</strong>bablementà les implémenter complètement. Nous nous <strong>pro</strong>posons donc <strong>de</strong> modéliser le comportement<strong>de</strong> tels mécanismes sur un canal <strong>de</strong> type Gilbert-Elliott. Des étu<strong>de</strong>s ontdéjà été menées sur la robustesse intrinsèque <strong>de</strong>s mécanismes <strong>de</strong> <strong>pro</strong>tocole existants,mais dans ce chapitre, nous essaierons <strong>de</strong> répondre à quelques questions concernantl'utilisation <strong>de</strong> tels <strong>pro</strong>tocoles.Si ces <strong>pro</strong>tocoles permettent, comme nous l'avons vu, d'économiser jusqu'à 40octets par paquet, ceci s'accompagne nécessairement d'une perte <strong>de</strong> robustesse suiteà ces mêmes pertes <strong>de</strong> paquets. En eet, même si elle peut s'avérer coûteuse, l'informationsupprimée par le <strong>pro</strong>tocole <strong>de</strong> compression agit, dans le cas normal, commeun mécanisme <strong>de</strong> redondance. Cette redondance est certes non optimale, mais elle


44 Chapitre 3. Modélisation d'un <strong>pro</strong>tocole <strong>de</strong> compression d'en-têtespossè<strong>de</strong> le mérite <strong>de</strong> pouvoir détecter et corriger rapi<strong>de</strong>ment un contexte non reçu, cequi est plus délicat dès que la compression est activée. Nous pouvons comparer cette<strong>pro</strong>blématique à celle du codage vidéo où, comme dans le cas <strong>de</strong> H.264 par exemple,la perte <strong>de</strong> certaines frames peut être dommageable pour les frames suivantes.Dans le domaine <strong>de</strong> la compression <strong>pro</strong>tocolaire, il n'existe pas à ce jour <strong>de</strong> mécanismes<strong>de</strong> compression permettant <strong>de</strong> favoriser un en-tête plus important qu'unautre (sauf dans le cas d'eCRTP dans l'absolu). Par ailleurs, une idée reçue sur lacompression <strong>pro</strong>tocolaire, est d'utiliser les mécanismes <strong>de</strong> voie <strong>de</strong> retour (mo<strong>de</strong>s O etU <strong>de</strong> ROHC par exemple) dès lors qu'ils sont disponibles. Si ces mo<strong>de</strong>s permettenteectivement une compression plus ecace, nous étudierons alors les conséquencesd'un tel mécanisme sur la métrique du temps moyen <strong>de</strong> déconnexion, et nous verronsl'inuence certaine du champ d'application sur la pertinence d'un mécanisme <strong>de</strong>retour.3.2 La couche <strong>pro</strong>tocolaire et le canal <strong>de</strong> Gilbert-ElliottDans le modèle d'Interconnexion <strong>de</strong> Systèmes Ouverts (OSI) classique, le <strong>pro</strong>tocole<strong>de</strong> compression d'en-têtes est situé entre la couche liaison et la couche réseau ouplus généralement, en remplacement <strong>de</strong> la couche réseau et <strong>de</strong> la couche transport(selon les <strong>pro</strong>tocoles compressés). D'une manière schématique, comme présenté sur laFigure 3.1, la couche <strong>de</strong> compression <strong>pro</strong>tocolaire (HC) reçoit directement <strong>de</strong>s trames<strong>de</strong> la couche liaison, et elle transmet directement à la couche applicative les donnéesdépourvues <strong>de</strong>s en-têtes qu'elle aura décodé.Comme nous l'avons évoqué rapi<strong>de</strong>ment dans le chapitre précé<strong>de</strong>nt, dans tous lesmécanismes <strong>de</strong> liaison récents (Ethernet,...), lorsque que le CRC échoue, l'ensemble<strong>de</strong> la trame est généralement éliminé. Tout ce qui est transmis à la couche adjacentehaute est donc considéré comme vali<strong>de</strong>. Du point <strong>de</strong> vue <strong>de</strong> cette couche, et doncdans notre cas, du <strong>pro</strong>tocole <strong>de</strong> compression, le canal <strong>de</strong> la couche liaison peut êtrevu comme un canal à eacements, où tout ce qui est reçu est correct et auquel estassocié un taux <strong>de</strong> perte <strong>de</strong> trames : Frame Error Rate (F ER). Ces pertes aectentalors <strong>de</strong> manière uniforme, l'en-tête <strong>de</strong> la compression et les données transportées.Nous avons également vu que suite à ces pertes reçues, <strong>de</strong> nouvelles pertes peuventapparaître au niveau <strong>de</strong> la décompression, celles-ci étant imputables aux mécanismes<strong>de</strong> compression. Nous avons vu qu'ainsi, lorsque la décompression échoue, l'ensembledu paquet est inutilisable n'est donc pas transmis à la couche applicative.Nous avons donc considéré que le <strong>pro</strong>tocole <strong>de</strong> compression d'en-têtes reçoit <strong>de</strong>strames d'une couche <strong>de</strong> liaison se présentant comme un canal à eacements avec untaux <strong>de</strong> perte F ER, et transmet à la couche application <strong>de</strong>s paquets vali<strong>de</strong>s avec untaux <strong>de</strong> perte paquets (PER), et par dénition P ER F ER. Bien entendu, dans cetaux P ER, le taux F ER n'est pas imputable à la couche HC mais à la couche liaison.La donnée qui va principalement nous intéresser est donc le taux <strong>de</strong> pertes imputable àla compression rapporté au taux <strong>de</strong> perte en entrée. Nous étudierons également <strong>de</strong>uxautres métriques : l'ecacité <strong>de</strong> cette compression, et le temps moyen <strong>de</strong> déconnexion,


3.2. La couche <strong>pro</strong>tocolaire et le canal <strong>de</strong> Gilbert-Elliott 45Figure 3.1 Représentation du <strong>pro</strong>tocole <strong>de</strong> compression d'en-têtes dans un modèleOSI d'émetteur/récepteur simplié


46 Chapitre 3. Modélisation d'un <strong>pro</strong>tocole <strong>de</strong> compression d'en-têtesFigure 3.2 Modélisation du canal <strong>de</strong> liaison à eacements par un modèle <strong>de</strong> Gilbert-Elliott basé sur une chaîne <strong>de</strong> Markov à <strong>de</strong>ux étatsqui correspond au temps pendant lequel, suite à une perte en entrée, le décompresseurse retrouve dans l'impossibilité <strong>de</strong> déco<strong>de</strong>r <strong>de</strong> nouveaux paquets, et se met en attented'un paquet moins ou non compressé.3.2.1 Le modèle <strong>de</strong> Gilbert-ElliottDans les premiers travaux que nous avions menés sur ce sujet, nous avions utiliséle modèle <strong>de</strong> pertes le plus simple, à savoir celui <strong>de</strong> pertes isolées, où chaque trame estassociée à la même <strong>pro</strong>babilité d'eacement F ER. Nous avons alors décidé, au prixd'une plus gran<strong>de</strong> complexité du modèle, <strong>de</strong> considérer la couche liaison comme uncanal <strong>de</strong> Gilbert-Elliot [55] [56] basé sur une chaîne <strong>de</strong> Markov à <strong>de</strong>ux états (Figure3.2).Dans le modèle présenté par Gilbert, les <strong>de</strong>ux états représentent un état Bon(Good/OK) où la <strong>pro</strong>babilité <strong>de</strong> pertes P G est nulle, et un état Mauvais (Bad/NG),où la <strong>pro</strong>babilité <strong>de</strong> pertes P B est importante. Elliott a par la suite généralisé ce modèleen <strong>pro</strong>posant le fait que P G soit non nul. Dans notre modèle et pour la suite <strong>de</strong> cechapitre, nous avons pris l'hypothèse que P G = 0 et P B = 1. Ceci signie que, lorsquele canal se trouve dans l'état Bon, toutes les trames sont correctes, et dans l'étatMauvais, toutes les trames sont invali<strong>de</strong>s ou perdues. A ces états, on associe <strong>de</strong>s<strong>pro</strong>babilités <strong>de</strong> transition et , représentant la <strong>pro</strong>babilité <strong>de</strong> transition vers l'étatBon <strong>de</strong>puis l'état Mauvais, et l'inverse.Ce type <strong>de</strong> canal permet ainsi <strong>de</strong> modéliser le comportement d'un canal, qui entemps normal est correct, mais subit <strong>de</strong>s bursts <strong>de</strong> pertes. Ce comportement estclassique, par exemple, pour une voie satellite, où le taux d'erreur du lien est trèsfaible (< 10 5 déni dans les standards [57] [58]) en comparaison <strong>de</strong> la congestionaux bornes <strong>de</strong> ce lien, qui peut être <strong>de</strong> l'ordre <strong>de</strong> 10 2 .Un autre avantage <strong>de</strong> ce canal est <strong>de</strong> se présenter comme un cas plus général quele canal <strong>de</strong> Bernouilli, ceux-ci pouvant être vu comme un canal GE particulier avec = = 1 . Le canal <strong>de</strong> Gilbert-Elliott a également servi <strong>de</strong> référence pour modéliser2les pertes <strong>de</strong> l'Internet [59]. Ce modèle <strong>de</strong> canal s'est également montré ecace pourévaluer <strong>de</strong>s tracs similaires [60].


3.2. La couche <strong>pro</strong>tocolaire et le canal <strong>de</strong> Gilbert-Elliott 47Figure 3.3 Machine à états du modèle <strong>de</strong> compresseurLorsque la chaîne <strong>de</strong> Markov se trouve dans un état stationnaire, la <strong>pro</strong>babilitéque celle-ci se soit trouvée dans l'état Mauvais est+. Cette <strong>pro</strong>babilité correspondasymptotiquement au taux <strong>de</strong> perte trames du canal F ER. Ceci nous permet alors <strong>de</strong>relier ce taux aux paramètres <strong>de</strong> la chaîne <strong>de</strong> Markov : = ¢F ER1 F ERAn <strong>de</strong> déterminer complètement le canal, il sut alors <strong>de</strong> déterminer . Supposonsque la chaîne se trouve dans l'état Mauvais. La transition à l'état Bon correspondalors au tirage successif et indépendant d'un événement v <strong>de</strong> <strong>pro</strong>babilité jusqu'à réussite.La variable correspond ainsi à la variable d'une loi géométrique qui régit alorsla longueur d'une salve <strong>de</strong> pertes. Grâce à ce résultat, il est alors très intéressant <strong>de</strong>rattacher ce à la longueur moyenne <strong>de</strong>s salves <strong>de</strong> pertes du canal liaison, que nousnommerons m via la relation :m = E[v ] = 1 Nous sommes alors capables <strong>de</strong> caractériser la chaîne <strong>de</strong> Markov régissant le comportementdu canal liaison simplement en connaissant le taux <strong>de</strong> perte trames moyenF ER et la longueur moyenne <strong>de</strong>s salves <strong>de</strong> pertes m.3.2.2 Le modèle <strong>de</strong> compressionDès lors que le modèle <strong>de</strong> canal en entrée est déni, il reste à présenter le modèle<strong>de</strong> la couche <strong>de</strong> compression.Le compresseur, tel que visible sur la Figure 3.3, est composé d'une machine àétats à trois états : un état appelé Initialisation & Refresh ou IR, un état dit First Or<strong>de</strong>rou FO et enn un état Second Or<strong>de</strong>r ou SO. Ces états sont volontairement calquéssur les états du compresseur du <strong>pro</strong>tocole ROHC, ceci permettant <strong>de</strong> rester le plusdèle possible aux <strong>pro</strong>tocoles existants, mais aussi <strong>de</strong> se ramener <strong>de</strong> manière simple àun système <strong>de</strong> compresseur à <strong>de</strong>ux états. Les transitions possibles dans cette machineà états sont celles entre IR et SO, et FO et SO.Dans ce modèle <strong>de</strong> compresseur, l'état IR correspond à un état <strong>de</strong> récupération ou<strong>de</strong>s en-têtes non compressés sont envoyés. L'état FO correspond à un état intermédiaire,similaire à celui <strong>de</strong> ROHC, c'est à dire permettant <strong>de</strong> transmettre l'ensemble


48 Chapitre 3. Modélisation d'un <strong>pro</strong>tocole <strong>de</strong> compression d'en-têtesdu contexte non-statique <strong>de</strong> manière non compressée. L'état normal du compresseurest l'état SO où les en-têtes les plus petits possibles sont transmis.Il reste alors à dénir les conditions permettant au récepteur <strong>de</strong> récupérer uncontexte perdu, suite à un paquet antérieur non reçu. Lorsque un paquet <strong>de</strong> typeIR ou FO est reçu par le décompresseur, nous considérons que celui-ci permet <strong>de</strong>récupérer ce contexte et <strong>de</strong> délivrer <strong>de</strong> nouveaux paquets, car dans ce cas, l'ensembledu contexte non-statique est transporté.Lorsque le contexte est désynchronisé est que le récepteur ne reçoit que <strong>de</strong> nouveauxpaquets SO, la récupération n'est pas garantie, et est, comme nous l'avons vudans le chapitre précé<strong>de</strong>nt, soumis aux performances <strong>de</strong>s algorithmes <strong>de</strong> récupérationmis en place (TWICE, W-LSB, ...). Il est également admissible que, plus la distanceentre le premier paquet SO reçu et la perte initiale est gran<strong>de</strong>, plus l'algorithme <strong>de</strong>récupération aura <strong>de</strong> chances d'échouer. Nous modéliserons alors ce comportementgrâce à une <strong>pro</strong>babilité P (¡) décroissante en ¡, où représente la distance du premierpaquet SO reçu à la perte initiale. Notons par ailleurs que si cette récupération sur unpremier paquet SO échoue, nous considérons qu'il est alors impossible <strong>de</strong> récupérercelui-ci via un paquet SO postérieur, ce qui semble une hypothèse raisonnable, dansla mesure ou son contexte sera encore plus lointain que le contexte du premier SOreçu du contexte <strong>de</strong> la perte initiale.Nous nous <strong>pro</strong>posons d'étudier et <strong>de</strong> comparer ce modèle sur trois scénarios. Toutd'abord un premier mo<strong>de</strong> nommé Unidirectionnel (U) sans voie <strong>de</strong> retour, où les transitionsdu compresseur sont basées sur <strong>de</strong>s timers. Un second mo<strong>de</strong> appelé Optimiste(O) qui sera composé <strong>de</strong> timers pour les transitions ascendantes et <strong>de</strong> réception d'acquittementsnégatifs pour la voie <strong>de</strong>scendante du compresseur, et enn un <strong>de</strong>rniermo<strong>de</strong> Fiable (R) basé uniquement sur les acquittements du récepteur.Nous <strong>pro</strong>posons trois métriques pour évaluer et comparer ces diérents mo<strong>de</strong>s.Tout d'abord, nous essaierons <strong>de</strong> déterminer , le nombre moyen <strong>de</strong> pertes imputablesà la couche <strong>de</strong> compression suite à une perte <strong>de</strong> paquets en entrée. Nous tenteronségalement <strong>de</strong> déterminer e dénit comme l'ecacité pratique <strong>de</strong> la compression, oùle rapport <strong>de</strong> l'en-tête moyen à la taille <strong>de</strong> l'en-tête non compressé. Enn la <strong>de</strong>rnièremétrique qui nous a semblé pertinente est celle du délai moyen <strong>de</strong> resynchronisation,lié à suite à une perte <strong>de</strong> paquets.3.3 Modélisation du mo<strong>de</strong> UnidirectionnelPour le mo<strong>de</strong> Unidirectionnel, les transitions entre les diérents états se fontgrâce à <strong>de</strong>s timers. En considérant que le débit <strong>de</strong> transmission est constant, on peutalors, <strong>de</strong> manière équivalente, considérer que le compresseur envoie un nombre xe <strong>de</strong>paquets d'un même état/type avant <strong>de</strong> transiter vers son <strong>pro</strong>chain état. Dans la suite,nous appellerons l'ensemble <strong>de</strong> ces paquets une salve. Chaque état diérent est alorsassocié avec une longueur <strong>pro</strong>pre <strong>de</strong> salve que nous appellerons respectivement I, F etS pour les états IR, FO et SO. Par ailleurs nous prenons l'hypothèse que les transitions


3.3. Modélisation du mo<strong>de</strong> Unidirectionnel 49Figure 3.4 Chronographe du modèle <strong>de</strong> compresseur en mo<strong>de</strong> Unidirectionnel<strong>de</strong>scendantes <strong>de</strong> SO vers FO ou IR sont régulières et entrelacées. Ceci signie quelorsque le compresseur a eectué k transitions <strong>de</strong>scendantes vers F O successives, sa<strong>pro</strong>chaine transition sera vers IR. Sur la Figure 3.4, nous illustrons le comportementdu chronographe du compresseur pour k = 3. Le quadruplet fI; F; S; kg corresponddonc à l'entrée <strong>de</strong> notre modèle.Lorsque nous souhaitons déterminer (qui correspond, rappelons-le au nombremoyen <strong>de</strong> pertes imputables à la couche <strong>de</strong> compression suite à une perte <strong>de</strong> paquetsen entrée) pour ce mo<strong>de</strong> Unidirectionnel, il est alors important <strong>de</strong> noter que le nombre<strong>de</strong> pertes successives à une perte initiale dépend <strong>de</strong> l'état du paquet <strong>de</strong> la perte initiale.En eet, il est nécessaire <strong>de</strong> distinguer le fait que la perte initiale appartienne à IR, F Oou SO, le schéma <strong>de</strong> récupération étant alors diérent. Pour le calcul <strong>de</strong> , dénissonstout d'abord IR , F O et SO qui correspon<strong>de</strong>nt au calcul <strong>de</strong> selon l'état du paquetinitial perdu.Pour le mo<strong>de</strong> Unidirectionnel, nous avons alors : = I ¢ IR + kF ¢ F O + (k + 1)S ¢ SOI + kF + (k + 1)SEn prenant une notation générique où l'état en question est X, chaque X étantla moyenne pour chacun <strong>de</strong> ses paquets : X = 1 X 1X ¢ ∑i=0 X (i)où X (i) représente le nombre moyen <strong>de</strong> pertes suite à la perte du i eme paquetd'une salve X. Pour <strong>de</strong>s raisons <strong>de</strong> commodité, la numérotation <strong>de</strong>s en-têtes d'unemême salve sera inversée : le premier en-tête transmis sera donc d'indice X 1 et le<strong>de</strong>rnier sera d'indice 0.Nous pouvons cependant remarquer que la perte <strong>de</strong> paquet IR ou FO <strong>de</strong> mêmeposition entraîne, sans perte <strong>de</strong> généralité notable, le même schéma <strong>de</strong> récupération(n <strong>de</strong> la salve IR/FO puis salve SO puis salve IR/FO etc...), comme nous pouvonsl'observer sur le chronographe. Nous pouvons alors poser : IR (i) = F O (i) pour touti <strong>de</strong> 0 à min(I; F ) 1. La diérence <strong>de</strong> entre ces <strong>de</strong>ux cas étant alors la diérence<strong>de</strong> longueur <strong>de</strong> leurs salves respectives. En conséquence, nous traiterons le calculd'une perte initiale <strong>de</strong> paquet IR et <strong>de</strong> paquet F O ensemble. Si cette perte a lieu àla position i, la longueur <strong>de</strong> cette perte sera notée IR=F O (i). An <strong>de</strong> déterminer totalement, il sut alors <strong>de</strong> déterminer IR=F O (i) pour i 2 (0; 1; :::; max(I; F ) 1) et


50 Chapitre 3. Modélisation d'un <strong>pro</strong>tocole <strong>de</strong> compression d'en-têtes SO = 1 S ¢ ∑ S 1i=0 SO(i).Perte initiale d'un paquet IR ou FO Déterminons tout d'abord IR=F O (i). Pourcela, nous avons représenté le schéma <strong>de</strong> la récupération du contexte suite à une perted'un paquet IR ou FO sur la Figure 3.5. Les diérentes valeurs évaluées dans cettesection sont indicées en fonction <strong>de</strong>s étapes numérotées sur cette gure.Détaillons ce fonctionnement. Tout d'abord, suite à la perte initiale d'un paquet<strong>de</strong> type IR/FO d'indice i, il est possible <strong>de</strong> récupérer le contexte suite à la réceptiond'un <strong>de</strong>s paquets IR ou FO restants <strong>de</strong> la même salve (1). Dans ce cas, les résultatssur la loi géométrique, nous donnent si un <strong>de</strong> ces paquets est reçu : 1 = i∑k(1 ) k 1 1 (1 )i+1=k=0(i + 1)(1 ) iLa <strong>pro</strong>babilité qu'aucun <strong>de</strong>s i éléments restants <strong>de</strong> la même salve ne soit reçu estp 2 = (1 ) iDans ce cas (2), le compresseur transite vers l'état SO comprenant une salve <strong>de</strong>S éléments. Là aussi, <strong>de</strong>ux cas <strong>de</strong> gures peuvent apparaître. Dans le premier cas (4),l'ensemble <strong>de</strong> cette salve est perdue. Nous détaillerons ce scénario par la suite.Dans le second cas (3), au moins un <strong>de</strong>s éléments <strong>de</strong> la salve SO est reçu. Commenous l'avons vu, la réception d'un paquet SO ne garantit pas la récupération ducontexte et dépend donc <strong>de</strong> P (:).Supposons alors que dans l'ordre nominal (1; 2; :::S), le j eme paquet <strong>de</strong> la salveSO soit le premier reçu. Les résultats sur la loi géométrique donnent une <strong>pro</strong>babilitéd'un tel événement égale à (1 ) j 1 Ce paquet se situe alors à la distance i + j<strong>de</strong> la perte initiale. En conséquence, si la récupération réussit (5), le nombre moyensupplémentaires <strong>de</strong> paquets perdus (en plus <strong>de</strong>s i + 1 <strong>de</strong> la salve IR/FO initiale) est : 5 =S∑j=1P (i + j) ¢ (1 ) j 1 ¢ (j 1)La <strong>pro</strong>babilité (6) que la récupération du paquet SO échoue est alors :p 6 =S∑(1 P (i + j)) ¢ (1 ) j 1j=1Dans ce cas là comme nous l'avons vu, comme la réception sur SO a échoue, ledécompresseur se place dans l'attente d'un paquet IR ou FO. En conséquence les Séléments <strong>de</strong> la salve SO sont perdus. Suite à cette salve, une salve IR ou une salveFO va suivre, avec les <strong>pro</strong>babilités correspondantesAn <strong>de</strong> déterminer les <strong>pro</strong>babilités <strong>de</strong> réception <strong>de</strong>s paquets <strong>de</strong> cette salve noncompressée, il est important <strong>de</strong> remarquer que la <strong>de</strong>rnière information connue sur la1et k.k+1 k+1


3.3. Modélisation du mo<strong>de</strong> Unidirectionnel 51Figure 3.5 Mécanisme <strong>de</strong> récupération du contexte suite à la perte d'un paquet IRou FO


52 Chapitre 3. Modélisation d'un <strong>pro</strong>tocole <strong>de</strong> compression d'en-têteschaîne <strong>de</strong> Markov du compresseur est celle <strong>de</strong> la réception du paquet SO invalidé.Ainsi, la <strong>pro</strong>babilité <strong>de</strong> non-réception du premier élément du burst IR/FO n'est pas1 mais un terme que nous appellerons z 0 (i).Soit la chaîne <strong>de</strong> Markov du canal dont l'état initial est l'état OK. Nous avonsvu précé<strong>de</strong>mment que la <strong>pro</strong>babilité que la chaîne se retrouve dans l'état NG après+un nombre <strong>de</strong> transitions inni (état stationnaire) est . Ceci vient du fait que la<strong>pro</strong>babilité <strong>de</strong> se retrouver dans l'état NG après t transitions, t 0 est en fait :p t (NG=init = OK) = (1 (1 )t ) + Dans notre cas, ceci permet le calcul <strong>de</strong> z 0 (i). En eet, la <strong>pro</strong>babilité <strong>de</strong> nonréceptiondu premier IR/FO est en fait équivalente à la <strong>pro</strong>babilité que la chaîne <strong>de</strong>Markov soit dans l'état NG sachant qu'un <strong>de</strong>s SO précé<strong>de</strong>nts a été reçu, et donc quel'état initial <strong>de</strong> la chaîne <strong>de</strong> Markov est OK. Comme nous avons déni la <strong>pro</strong>babilité<strong>de</strong> réception <strong>de</strong> chacun <strong>de</strong> ces SO précé<strong>de</strong>mment, nous avons :z 0 (i) =∑ Sj=1 (1 P (i + j)) ¢ (1 )j 1 ¢ p S+1 j (NG=init = OK)∑ S 1j=1(1 P (i + j)) ¢ (1 )jDeux cas <strong>de</strong> gure peuvent alors ainsi apparaitre. Soit un <strong>de</strong>s IR/FO est reçu avecl'information initiale sur la chaîne <strong>de</strong> Markov du canal précé<strong>de</strong>nte, et dans ce cas, lecontexte est retrouvé avec le nombre moyen <strong>de</strong> paquets supplémentaires : 6 =(kk + 1 z 1 (1 ) F0(i)F (1 ) F 1 )(+ 1k + 1 z 1 (1 ) I0(i)I(1 ) I 1 )Soit toute la salve IR/FO est perdue par la canal. Cet événement a la <strong>pro</strong>babilité :p g1= z 0 (i)( kk + 1 (1 )F 1 + 1k + 1 (1 )I 1 )Il entraîne alors la perte moyenne <strong>de</strong>s n gen =k F k+1 + 1 I éléments <strong>de</strong> la salve.k+1Le mécanisme rentre alors dans un état générique ou la récupération n'est désormaispossible que sur réception d'un paquet IR/FO et où tous les paquets SO reçussont éliminés. A ce sta<strong>de</strong>, il sut alors <strong>de</strong> déterminer le nombre moyen supplémentaire<strong>de</strong> paquets perdus dans cet état, que nous noterons , et que nous détaillerons par lasuite.Nous avons donc déterminé le scénario où suite à la perte <strong>de</strong> l'ensemble du burstIR/FO initial, un élément <strong>de</strong> la salve suivante SO a été reçu. Il reste tout d'abord à


3.3. Modélisation du mo<strong>de</strong> Unidirectionnel 53revenir sur le cas où aucun <strong>de</strong> ces SO n'a été reçu (4). Tout d'abord la <strong>pro</strong>babilitéd'un tel événement est :p 4 = (1 ) Set les S paquets du SO sont bien évi<strong>de</strong>mment perdus.Tout comme dans le scénario précé<strong>de</strong>nt où un SO a été invalidé (6), le compresseurva alors transiter dans l'état IR ou FO avec les mêmes <strong>pro</strong>babilités respectives queprécé<strong>de</strong>mment. Cela dit, dans ce cas, la <strong>de</strong>rnière information reçue sur la chaîne<strong>de</strong> Markov est ici la perte du <strong>de</strong>rnier paquet SO. En l'occurrence, la <strong>pro</strong>babilité <strong>de</strong>non-réception du premier paquet <strong>de</strong> la salve IR/FO est bien (1 ). Tout commeprécé<strong>de</strong>mment, si un <strong>de</strong>s IR/FO est reçu (7), le contexte est récupéré avec la pertesupplémentaire <strong>de</strong> : 4 =(kk + 1 (1 ) 1 (1 ) FF (1 ) F 1 )(+ 1k + 1 (1 ) 1 (1 ) II(1 ) I 1 )Bien entendu, il est possible qu'aucun <strong>de</strong>s paquets <strong>de</strong> la salve IR/FO ne soit reçu(8). Ceci peut apparaître avec la <strong>pro</strong>babilité :p g2 = kk + 1 (1 )F + 1 (1 )Ik + 1Nous retombons alors dans le cas générique présenté précé<strong>de</strong>mment où les n genéléments moyens sont perdus, et où la récupération se fait alors sur réception d'unpaquet IR/FO, les paquets SO étant alors systématiquement ignorés. Dans ce cas,le nombre moyen supplémentaires d'éléments perdus est également . Il reste alors àdéterminer cette valeur du cas générique.Dans le cas générique où en moyenne paquets supplémentaires sont perdus,l'état initial <strong>de</strong> la chaîne <strong>de</strong> Markov du canal est celui où le <strong>de</strong>rnier paquet d'une salvenon compressé a été perdu. Cet état peut être vu comme la succession régulière <strong>de</strong>k salves FO et d'une salve IR, séparées par la perte d'une salve <strong>de</strong> S paquets SO.Le contexte est récupéré (9) dès lors qu'un <strong>de</strong> ces en-têtes non compressé est reçu.La valeur peut alors être vue comme le calcul d'une succession <strong>de</strong> salves IR ou FOperdues, ainsi que la salve SO successive, jusqu'à une salve IR ou FO dont au moinsun <strong>de</strong>s éléments est reçu.Dans tous les cas, l'état initial <strong>de</strong> la chaine <strong>de</strong> Markov étant la perte du <strong>de</strong>rnierélément <strong>de</strong> la <strong>de</strong>rnière salve non compressée, la <strong>pro</strong>babilité <strong>de</strong> non-réception du premieren-tête <strong>de</strong> la salve courante est alors équivalent à la <strong>pro</strong>babilité que la chaîne <strong>de</strong> Markovdu canal se trouve dans l'état NG au bout <strong>de</strong> S + 1 transitions, sachant que l'étatinitial était NG. Les résultats sur la chaîne <strong>de</strong> Markov avec cet état initial donnent :


54 Chapitre 3. Modélisation d'un <strong>pro</strong>tocole <strong>de</strong> compression d'en-têtesp 0 (1 )tt (NG=init = NG) = + La <strong>pro</strong>babilité <strong>de</strong> non-réception du premier paquet du premier IR ou FO reçu estalors égale à la valeur p 0 (NG=init = NG) que nous noterons par la suite . EnS+1conséquence, la <strong>pro</strong>babilité que l'ensemble d'une salve IR ou FO soit perdue est alors :(1 ) X 1 ou X représente la taille <strong>de</strong> la salve IR ou FO selon le cas.Lorsque le contexte est enn re-synchronisé suite à la réception d'un paquet d'unesalve IR ou FO, <strong>de</strong> nouveaux paquets sont tout <strong>de</strong> même perdus, car ce n'est pasforcément le premier paquet <strong>de</strong> la salve qui a été reçu. Nous noterons cette nouvellevaleur z S+1Xoù X représentera I dans le cas IR et F dans le cas d'une salve FO. Cettevaleur vaut alors :z S+1X =(¢ 1 (1 ) X1 (1 ) X 1 X(1 ) X 1 )La valeur correspond alors au <strong>pro</strong>duit du nombre <strong>de</strong> paquets perdus N(y ) parla <strong>pro</strong>babilité qu'une salve non compressée (un paquet ici) soit reçue, alors que lesprécé<strong>de</strong>ntes ont été perdus p N (y ) :=1∑p N (y ):N(y )y =0La <strong>pro</strong>babilité pour la salve y s'exprimant alors par :) byp N (y ) = y ¢((1 ) k(F 1)+(I 1) c k+1} {{ }Groupes <strong>de</strong> k salves FO et 1 salve IR perdues()y¢0k + 1 (1 )(F 1)(y 0 1)+(I 1) + (k + 1 y 0 ) mod (k + 1)(1 ) y 0 (F 1)k + 1} {{ }( k¢Reste non groupable <strong>de</strong>s salves(1 (1 ) F 1 )+ 1(1 (1 ) I 1 ) )k + 1}k + 1{{ }Salve reçueoù y 0représente le reste <strong>de</strong> la division entière <strong>de</strong> y par k + 1. Ce terme peut êtreexprimé sous la forme :y 0y= y b c(k + 1)k + 1Lorsque la salve y est reçue, le nombre moyen <strong>de</strong> paquets perdus est alors :


3.3. Modélisation du mo<strong>de</strong> Unidirectionnel 55yN(y ) = b c (k(F + S) + (I + S))k + 1+ y 0 ((F + S) + 1k + 1 (I F ) )+( kk + 1 z S+1F + 1)k + 1 z S+1I + SNous avons donc déni tous les éléments, ce qui en résumé nous donne : IR=F O (i) = 1 + (1 ) i ¢[(i + 1) + 5 + p 6 (S + 6 + p g1 (n gen + )) + p 4 (S + 4 + p g2 (n gen + ))]Perte initiale d'un paquet SO Le calcul <strong>de</strong> SO va être eectué <strong>de</strong> la même manière.Celui-ci est légèrement plus complexe, mais ressemble néanmoins fortement aucalcul précé<strong>de</strong>nt. L'objectif est <strong>de</strong> calculer pour chaque i, SO (i). De la même manièreque précé<strong>de</strong>mment, nous avons représenté le modèle <strong>de</strong> récupération du contexte suiteà une perte initiale d'un paquet SO sur la Figure 3.6.Tout d'abord, il est possible <strong>de</strong> déco<strong>de</strong>r si l'un <strong>de</strong>s paquets restants <strong>de</strong> la mêmesalve SO est reçu (1). Bien entendu, celui-ci est alors soumis à la fonction P (:) et n'estpas garanti. Si la récupération réussit (2), le nombre moyen <strong>de</strong> paquets nécessairesest alors dans ce cas : 1 =i∑k=1(1 ) k 1 ¢ P (k) ¢ kNéanmoins, la <strong>pro</strong>babilité que cette récupération échoue est alors (3) :p 3 =i∑(1 ) k 1 ¢ (1 P (k))k=1Dans ce cas là, les i +1 paquets restants <strong>de</strong> la salve SO sont perdus, et le décodagesur SO ayant échoué, on considère alors que le décodage n'est plus possible que surréception d'un en-tête non compressé. Nous retombons alors sur les résultats du casgénérique. Pour cela, il sut alors <strong>de</strong> déterminer la <strong>pro</strong>babilité <strong>de</strong> non-réception dupremier paquet <strong>de</strong> la salve IR/FO suivante. Pour cela, la <strong>de</strong>rnière information connuesur la chaîne <strong>de</strong> Markov du canal, est la réception d'un paquet parmi les i paquetsrestants <strong>de</strong> la salve par hypothèse. La <strong>pro</strong>babilité <strong>de</strong> non-réception est alors dépendante<strong>de</strong> la position i <strong>de</strong> la perte initiale et sera alors ici notée z i 0. Elle correspond alors à lasomme <strong>de</strong>s cas possibles <strong>de</strong> réception <strong>de</strong> paquet SO parmi les i restants <strong>de</strong> la salve,soit :∑ iz i 0 = j=1 (1 P (j)) ¢ (1 )j 1 ¢ p i+1 j (NG=init = OK)∑ i 1j=1(1 P (j)) ¢ (1 )j


56 Chapitre 3. Modélisation d'un <strong>pro</strong>tocole <strong>de</strong> compression d'en-têtesFigure 3.6 Mécanisme <strong>de</strong> récupération du contexte suite à la perte d'un paquet SO


3.3. Modélisation du mo<strong>de</strong> Unidirectionnel 57De manière similaire, si un <strong>de</strong>s paquets <strong>de</strong> la salve IR ou FO est reçu, le nombremoyen <strong>de</strong> symboles ajoutés est alors : r =(kk + 1 z i 1 (1 ) F0F (1 ) F 1 )(+ 1k + 1 z i 1 (1 ) I0I(1 ) I 1 )Cependant il est possible que toute la salve soit perdue, avec la <strong>pro</strong>babilité suivante:p r = z i 0( kk + 1 (1 )F 1 + 1k + 1 (1 )I 1 )Dans ce cas nous retombons alors sur le cas générique du calcul sur IR/FO ou enmoyenne n gen + paquets supplémentaires seront perdus.En résumé, le nombre moyen <strong>de</strong> paquets ajoutés en prenant l'hypothèse qu'un <strong>de</strong>spaquets restants <strong>de</strong> la salve initiale SO soit reçu peut alors se résumer à : rcvd (i) = 1 + p 3 ((i + 1) + r + p r (n gen + ))Il reste alors à traiter le cas (4) où tous les paquets restants <strong>de</strong> la salve SO ontété perdus par la couche liaison.Le cas (4) où tous les paquets restants <strong>de</strong> la salve SO initiale ont été perdus adonc pour <strong>pro</strong>babilité p 4 = (1 ) i et conduit bien entendu à au moins i + 1 pertes.1La salve suivante est alors une salve IR ou une salve FO avec les <strong>pro</strong>babilités et k+1k. Cependant, la <strong>de</strong>rnière information sur la chaîne <strong>de</strong> Markov du canal connue estk+1tout simplement que le <strong>de</strong>rnier paquet <strong>de</strong> la salve SO a été perdu, par dénition. Cecisignie donc que la <strong>pro</strong>babilité <strong>de</strong> non-réception du premier paquet <strong>de</strong> la salve IR/FOest tout simplement (1 ). Nous retombons alors sur un scénario connu du calculIR/FO. Soit la récupération a lieu suite à la réception d'un paquet IR/FO (5) et dansce cas on ajoute : 5 =(kk + 1 (1 ) 1 (1 ) FF (1 ) F 1 )(+ 1k + 1 (1 ) 1 (1 ) II(1 ) I 1 )qui, nous pouvons le remarquer, est alors i<strong>de</strong>ntique au calcul <strong>de</strong> 4 dans le calculpour IR/FO.Soit tous les paquets <strong>de</strong> la salve sont perdus (6), ce qui représente en moyenne :


58 Chapitre 3. Modélisation d'un <strong>pro</strong>tocole <strong>de</strong> compression d'en-têtesavec la <strong>pro</strong>babilité suivante :p 6 =n gen2 =kk + 1 F + 1k + 1 Ikk + 1 (1 )F + 1 (1 )Ik + 1qui est bien équivalente à celle <strong>de</strong> p g2 du calcul précé<strong>de</strong>nt.A ce sta<strong>de</strong> du calcul, nous pouvons appliquer <strong>de</strong>ux politiques. La plus simpleconsiste à considérer la perte <strong>de</strong> l'ensemble <strong>de</strong> la salve non-compressée comme rédhibitoireet <strong>de</strong> se ramener au cas générique. Nous avons jugé cette hypothèse commetrop restrictive. En eet, dans l'exemple où la perte initiale est apparue à la n <strong>de</strong>la salve SO, et où l'ensemble <strong>de</strong> la salve non-compressée successive a été perdue, ilsemble tout à fait concevable, au vu <strong>de</strong>s tailles <strong>de</strong> salves non-compressés utilisées, quele contexte n'ait pas changé à la n <strong>de</strong> la salve non-compressé, ce qui rend le décodagepossible via la salve SO suivante, avec bien évi<strong>de</strong>mment une <strong>pro</strong>babilité réduite au vu<strong>de</strong> la distance séparant cette nouvelle salve à la perte initiale. Nous avons donc retenucette hypothèse, ce qui signie que nous considérons la tentative <strong>de</strong> décodage sur lasalve SO suivante comme vali<strong>de</strong>.Nous revenons alors sur un calcul classique. Soit un paquet d'un paquet <strong>de</strong> la salveSO est reçu (7), soit aucun n'est reçu (12). Traitons tout d'abord le premier cas. Soitle paquet en question permet <strong>de</strong> vali<strong>de</strong>r le contexte (8) et il apporte alors un nombremoyen <strong>de</strong> paquets supplémentaires : 8 =kk + 1S∑(1 ) k 1 P (k + i + F ) ¢ (k 1)k=1+ 1k + 1S∑(1 ) k 1 P (k + i + I) ¢ (k 1)k=1ou bien, celui-ci ne permet pas <strong>de</strong> vali<strong>de</strong>r le contexte (9) avec la <strong>pro</strong>babilité associée:p 9 =kk + 1S∑(1 ) k 1 (1 P (k + i + F ))k=1+ 1k + 1S∑(1 ) k 1 (1 P (k + i + I))k=1A ce point, le contexte n'est toujours pas récupéré, et le compresseur envoie alorsune salve IR ou FO. Lorsque nous souhaitons calculer la <strong>pro</strong>babilité <strong>de</strong> non-réception <strong>de</strong>cette nouvelle salve IR ou FO il est judicieux <strong>de</strong> remarquer que si c'est une salve IR, lasalve non-compressée précé<strong>de</strong>nte (la première) était automatiquement une salve FO,


3.3. Modélisation du mo<strong>de</strong> Unidirectionnel 59car <strong>de</strong>ux salves IR ne peuvent être transmises successivement. <strong>de</strong> manière similaire,si c'est une salve FO, la salve non-compressée précé<strong>de</strong>nte était alors soit une salveIR, avec la nouvelle <strong>pro</strong>babilité 1 k 1kou une salve FO avec la <strong>pro</strong>babiliték. Ceci nouspermet donc <strong>de</strong> calculer cette <strong>pro</strong>babilité <strong>de</strong> non réception, en tenant compte plusprécisément <strong>de</strong> la salve précé<strong>de</strong>nte. Cette <strong>pro</strong>babilité, notée z X 1où X est soit I, soitF , vaut alors :z X 1∑ S =j=1 (1 P (i + j + X)) ¢ (1 )j 1 ¢ p S+1 j (NG=init = OK)∑ S 1j=1(1 P (i + j + X)) ¢ (1 )jL'état initial <strong>de</strong> la chaîne <strong>de</strong> Markov étant la réception d'un <strong>de</strong>s paquets <strong>de</strong> la salveSO précé<strong>de</strong>nte, un <strong>de</strong>s paquets <strong>de</strong> la salve IR/FO reçu (10)ajoute donc : 10 =k ( k 1z F 1k + 1 k+ 1 )k z I 1¢(1 (1 ) F+ 1k + 1 z F 1F (1 ) F 1 )(1 (1 ) II(1 ) I 1 )Soit tout le burst IR/FO est perdu (11), avec la <strong>pro</strong>babilité :p 11 =k ( k 1z F 1k + 1 k+ 1 )k z I 1(1 ) F 1 + 1k + 1 z F 11(1 )Iet on retombe alors dans le cas générique où n gen + paquets seront perdus enmoyenne.Il reste alors à revenir sur le cas où toute la salve SO précé<strong>de</strong>nte a été perdue(12), qui a une <strong>pro</strong>babilité <strong>de</strong> (1 ) S . Dans ce cas, nous considérons alors que laperte est alors susamment longue pour avoir vu le contexte changé <strong>de</strong>puis la perteinitiale. Nous nous ramenons, alors, là aussi, au cas générique.Nous avons donc, en résumé :( )) SO (i) = rcvd (i) + (1 ) i (i + 1) + 5 + p 6(n gen2 + 8 + (1 ) S + p 9 avecet = S + 5 + p 6 (n gen + ) = S + 10 + p 11 (n gen + )Nous avons donc conclu le calcul <strong>de</strong> pour le mo<strong>de</strong> unidirectionnel.


60 Chapitre 3. Modélisation d'un <strong>pro</strong>tocole <strong>de</strong> compression d'en-têtesFigure 3.7 Principe <strong>de</strong>s pertes masquéesCalcul <strong>de</strong>s diérentes métriques Si la valeur <strong>de</strong> permet <strong>de</strong> nous renseigner sur lenombre moyen <strong>de</strong> pertes suite à une perte initiale <strong>de</strong> la couche liaison, il faut néanmoinsfaire le lien entre , le F ER en entrée et le P ER en sortie. En eet, lors <strong>de</strong> la perte <strong>de</strong>synchronisation, certaines <strong>de</strong> ces pertes sont imputables à la couche <strong>de</strong> compression,alors que d'autres sont bien <strong>de</strong>s pertes réelles au niveau <strong>de</strong> la couche liaison. En fait,nous avons déterminé, que lorsque une perte apparaît au niveau <strong>de</strong> la couche liaison,celle-ci n'est pas isolée. Nous avons même déterminée que celle-ci s'accompagnaitd'une salve <strong>de</strong> pertes <strong>de</strong> longueur moyenne m. Ceci signie que les m premières pertesdans le calcul <strong>de</strong> sont en fait tout simplement <strong>de</strong>s pertes en entrée, pour lesquellesla couche <strong>de</strong> compression n'est pas responsable. A ceci, s'ajoute un phénomène <strong>de</strong>"pertes masquées" que nous avons représenté sur la Figure 3.7. En eet, suite à cespertes initiales, peut s'ajouter sur les éléments restants <strong>de</strong> d'autres pertes du canal.En eet, sur le "reste" <strong>de</strong> , <strong>de</strong>s pertes imputables au canal peuvent apparaîtreavec une <strong>pro</strong>babilité FER. En somme, pour une longueur <strong>de</strong> pertes , il est raisonnable<strong>de</strong> dire que m + ( m)F ER <strong>de</strong> ces pertes sont en fait <strong>de</strong>s pertes du canal. le ratioentre est cette valeur nous donne alors le ratio entre le P ER et un F ER en entréedonné :P ER =m + F ER( m) ¢ F ERCe calcul est valable également pour les mo<strong>de</strong>s Optimiste et Fiable, dès lors que est donné.Les autres calculs <strong>de</strong> métriques sont cependant spéciques.Pour le mo<strong>de</strong> Unidirectionnel, le calcul <strong>de</strong> l'ecacité <strong>de</strong> compression est relativementsimple. Soit l IR , l F O et l SO les longueurs respectives <strong>de</strong>s en-têtes IR complets,FO et SO. L'ecacité <strong>de</strong> la compression du mo<strong>de</strong> U s'exprime alors ainsi :e U = I l IR + k F l F O + (k + 1) S l SO(I + k F + (k + 1) S) ¢ l IRDe la même manière, si l p représente la longueur moyen <strong>de</strong>s données d'un paquet(payload) et que les tailles <strong>de</strong> paquets sont quasi-constantes, le temps moyen <strong>de</strong>resynchronisation suite à une perte initiale s'exprime par :


3.4. Modélisation du mo<strong>de</strong> Optimiste 61t U = ¢ l P + e l IRRoù R représente le débit moyen du lien.3.4 Modélisation du mo<strong>de</strong> OptimisteFort heureusement, le calcul du nombre moyen <strong>de</strong> pertes est plus simple pour lesmo<strong>de</strong>s Optimiste et Fiable. En eet, dans ces <strong>de</strong>ux cas, il n'y a pas <strong>de</strong> mécanismes <strong>de</strong>timers, et dans l'état général, le compresseur n'envoie que <strong>de</strong>s paquets <strong>de</strong> type SO.Lorsque une perte apparaît sur la couche liaison, le décompresseur reçoit alors un<strong>de</strong>s paquets SO suivants. Grâce aux mécanismes <strong>de</strong> numérotation, celui-ci va alorsengager <strong>de</strong> manière classique <strong>de</strong>s mécanismes <strong>de</strong> récupération. Deux cas peuvent alorsapparaître. Soit le mécanisme <strong>de</strong> récupération fonctionne, et le contexte et récupéréavec en moyenne OK pertes : OK =1∑(1 ) n 1 P (n) ¢ nn=1Soit le mécanisme <strong>de</strong> validation échoue et ces mêmes paquets sont perdus, ainsique l'en-tête reçu. Le décompresseur envoie alors un acquittement négatif au compresseur,et se met en attente d'un en-tête non compressé, tout en éliminant tous lespaquets SO.Lorsque le compresseur reçoit cet acquittement négatif, en prenant l'hypothèseque le canal <strong>de</strong> retour est sans pertes, celui-ci envoie alors une salve <strong>de</strong> F paquetsFO. Le décompresseur est dans la mesure <strong>de</strong> recevoir un <strong>de</strong> ces paquets après un délaicorrespondant au délai aller-retour du lien ou RTT. Cela signie que l'ensemble <strong>de</strong>spaquets SO transmis durant ce délai sont ignorés. Si R représente le débit du lien <strong>de</strong>transmission et l la longueur moyenne <strong>de</strong>s paquets transmis, cela représente alors uneperte <strong>de</strong> n RT T = R l¢ RT T paquets pour cette pério<strong>de</strong>.Bien entendu, l'ensemble <strong>de</strong> cette salve FO peut, elle aussi, être perdue. Le compresseurutilisant un mécanisme <strong>de</strong> timers pour cette transition ascendante envoiedonc par la suite <strong>de</strong> nouveaux en-têtes SO. SI la salve FO est perdue, alors que ledécompresseur est dans l'attente d'un en-tête compressé, celui-ci nira alors par recevoirun paquet SO, qu'il sera bien entendu incapable <strong>de</strong> déco<strong>de</strong>r. Il renverra alorsun nouvel acquittement négatif, et ainsi <strong>de</strong> suite, jusqu'à réception d'un en-tête FO.Il est donc nécessaire d'évaluer le nombre moyen <strong>de</strong> paques perdus suite à ce mécanismeque nous noterons lost (n), où n représente la distance entre la premièreperte initiale et le premier paquet SO reçu qui a invalidé le contexte et qui a <strong>pro</strong>voquél'envoi du premier acquittement négatif.En résumé, pour le mo<strong>de</strong> Optimiste, nous avons :


62 Chapitre 3. Modélisation d'un <strong>pro</strong>tocole <strong>de</strong> compression d'en-têtes = OK +1∑(1 ) n 1 (1 P (n)) ¢ lost (n)n=1où lost (n) se présente comme la somme <strong>de</strong>s n + 1 éléments perdus jusqu'aupremier paquet SO reçu et invalidé, <strong>de</strong>s n RT T éléments perdus durant le délai allerretouret d'une composante dépendante <strong>de</strong> la bonne réception <strong>de</strong> la salve F O envoyéeà la suite <strong>de</strong> l'acquittement négatif : lost (n) = n + n RT T + 1 + ZIl reste alors à déterminer Z. <strong>de</strong> la même manière que pour le mo<strong>de</strong> U, le décompresseurpeut ne pas recevoir le premier paquet <strong>de</strong> la salve FO. Il est possible <strong>de</strong>calculer cette <strong>pro</strong>babilité <strong>de</strong> non-réception, qui se base sur le fait que le paquet reçuun RTT auparavant a été reçu, car c'est un paquet SO invalidé qui a entraîné l'envoi<strong>de</strong> l'acquittement négatif, ceci signie que, lorsque un paquet d'une salve FO est reçupar le décompresseur, le nombre moyen d'en-têtes perdus <strong>de</strong> cette salve FO est alors :z f =( )1 (1 )p nRT T(NG=init = OK)FF (1 ) F 11 p nRT T(NG=init = OK)(1 ) F 1Ceci peut se traduire par le fait que dès lors qu'un paquet d'une salve FO est reçuet permet <strong>de</strong> récupérer le contexte, en moyenne, tout <strong>de</strong> même, z f paquets <strong>de</strong> cettesalve ont été perdus.Il est possible malgré tout <strong>de</strong> perdre l'ensemble d'une salve FO avec la <strong>pro</strong>babilitép nRT T(NG=init = OK)(1 ) F 1 . Dans ce cas, les F paquets FO sont bien entendusperdus ainsi que les n RT T envoyés pendant le traitement <strong>de</strong> l'acquittement et les z spaquets envoyés suite à la réception <strong>de</strong> ce NACK jusqu'à détection par le décompresseuret envoi d'un nouveau NACK. z s correspond tout simplement au résultat <strong>de</strong> laloi géométrique :z s =1∑(1 ) n 1 ¢ n = 1 n=1Hormis z f , le calcul <strong>de</strong> Z se résume alors au calcul du nombre moyen <strong>de</strong> paquetsperdus jusqu'à réception d'une salve FO, qui peut-être perdue avec la <strong>pro</strong>babilitép nRT T(NG=init = OK)(1 ) F 1 , et qui entraine alors la perte moyenne <strong>de</strong> F +n RT T + 1 paquets :Z = z f + (F + 1 + n RT T )Et le calcul <strong>de</strong> vaut alors :1∑k((1 ) F 1 p nRT T(NG=init = OK)) kk=1 = 1 + (n RT T + 1 + Z)(1)1∑(1 ) n 1 P (n)n=1


3.5. Modélisation du mo<strong>de</strong> Fiable 63Le calcul du temps <strong>de</strong> resynchronisation moyen suite à une perte initiale est i<strong>de</strong>ntiqueà celui du mo<strong>de</strong> Unidirectionnel.Il reste alors à déterminer l'ecacité moyenne <strong>de</strong> la compression en mo<strong>de</strong> Optimiste.Par dénition, la couche <strong>de</strong> compression <strong>pro</strong>tocolaire implique un taux <strong>de</strong> perteen sortie égal à P ER, ce qui en d'autres termes se traduit par le fait, qu'en moyenne le<strong>pro</strong>tocole <strong>de</strong> compression se trouve dans un état nominal avec la <strong>pro</strong>babilité (1 P ER)et dans un état d'échec avec la <strong>pro</strong>babilité P ER. Durant cet état nominal, seuls <strong>de</strong>spaquets SO sont envoyés, et lorsque le <strong>pro</strong>tocole est en échec, le mécanisme présentéci-<strong>de</strong>ssus est appliqué. Dans cet état, <strong>de</strong>s paquets SO et <strong>de</strong>s paquets FO sont envoyés.Dans le mo<strong>de</strong> O, ainsi que dans le mo<strong>de</strong> R, <strong>de</strong>s paquets FO sont envoyés si etseulement si le contexte n'est pas récupéré suite à la réception du premier paquet SOsuivant la perte initiale. En eet, si le contexte est récupéré, le compresseur ne reçoitpas d'acquittement négatif et continue alors d'envoyer <strong>de</strong> manière transparente <strong>de</strong>sen-têtes compressés. La <strong>pro</strong>babilité <strong>de</strong> non-récupération p NOK étant alors :p NOK =1∑(1 ) n 1 (1 P (n))n=1Il reste alors à déterminer le nombre moyen n F O <strong>de</strong> paquets FO envoyés lorsquele contexte n'est pas récupéré. En suivant le mécanisme présenté précé<strong>de</strong>mment, si lecontexte est invalidé, alors au moins une salve F O est envoyée ainsi que <strong>de</strong> nouvellessalves jusqu'à réception d'une salve FO, chaque salve ayant une <strong>pro</strong>babilité <strong>de</strong> perteégale à p nRT T(NG=init = OK)(1 ) F 1 . Dans ce cas, nous avons :n F O = F +1∑k=1kF ¢ ( ) k(1 ) F 1 p nRT T(NG=init = OK)L'ecacité moyenne <strong>de</strong> la compression du mo<strong>de</strong> Optimiste est alors dénie par :e = (1 P ER)l SO + P ER ¢ p NOK ¢ n F O ¢ l F O(1 P ER + P ER ¢ p NOK ¢ n F O ) ¢ l IR3.5 Modélisation du mo<strong>de</strong> FiableLe comportement du mo<strong>de</strong> Fiable est très <strong>pro</strong>che <strong>de</strong> celui du mo<strong>de</strong> Optimiste, laseule diérence étant le traitement d'un acquittement négatif. Là où le mo<strong>de</strong> Optimiste,suite à la réception d'un NACK, envoie une salve FO puis repart sur <strong>de</strong>s en-têtesSO, le mo<strong>de</strong> Fiable attend la réception d'un acquittement positif pour retourner dansl'état SO.Les seules diérences entre ces <strong>de</strong>ux mo<strong>de</strong>s concernent alors le calcul <strong>de</strong> Z et <strong>de</strong>n F O , les autres élément étant alors i<strong>de</strong>ntiques à ceux du mo<strong>de</strong> Optimiste.Tout comme le mo<strong>de</strong> Optimiste, la <strong>pro</strong>babilité <strong>de</strong> non-réception par le décompresseurdu premier paquet FO est p nRT T(NG=init = OK). La valeur <strong>de</strong> Z suit alors la loigéométrique :


64 Chapitre 3. Modélisation d'un <strong>pro</strong>tocole <strong>de</strong> compression d'en-têtesZ =1∑i=1(1 ) i 1 p nRT T(NG=init = OK) ¢ i = p n RT T(NG=init = OK)Le nombre moyen n F O <strong>de</strong> paquets FO envoyés lorsque le contexte n'a pu êtrerécupéré est ici très simple à déterminer. En eet, le compresseur va envoyer <strong>de</strong>spaquets F O dès qu'il reçoit un acquittement négatif, et ce, jusqu'à ce qu'il reçoive unacquittement positif. Ceci correspond alors au nombre <strong>de</strong> paquets transmis durant unRTT, ainsi que le nombre moyen <strong>de</strong> paquets Z avant que le décompresseur ne reçoiveun <strong>de</strong> ces paquets FO :n F O = n RT T + Z = n RT T + p n RT T(NG=init = OK)En remplaçant ces <strong>de</strong>ux valeurs dans les résultats du mo<strong>de</strong> O, on obtient lesrésultats sur les métriques souhaités.3.6 Instantiations du modèle3.6.1 Instantiation par le <strong>pro</strong>tocole ROHCNous nous <strong>pro</strong>posons <strong>de</strong> paramétrer ce modèle en utilisant certains mécanismes <strong>de</strong>ROHC. Pour cela, an <strong>de</strong> correspondre au <strong>pro</strong>tocole, nous supposons que les paquets<strong>de</strong> type UOR-2 <strong>de</strong> ROHC font ici partie <strong>de</strong>s paquets SO et non <strong>de</strong>s FO. Nous prenonscette hypothèse car le comportement <strong>de</strong> ce type <strong>de</strong> paquets est similaire à celui <strong>de</strong>spaquets SO <strong>de</strong> notre modèle.Nous <strong>pro</strong>posons d'implémenter le mécanisme W-LSB <strong>de</strong> ROHC par la fonction <strong>de</strong>récupération P (¡) suivante :{P (¡) = 1si ¡ WP (¡) = a ¡ W si ¡ > W; a 1Le premier cas se justie par le fait que le mécanisme W-LSB garantit une récupérationdu contexte si tant est que le paquet reçu est à une distance moindre que lataille <strong>de</strong> la fenêtre glissante W , <strong>de</strong> la perte initiale. Lorsque la distance dépasse la taille<strong>de</strong> la fenêtre, le décodage n'est plus garanti. Nous avons pris l'hypothèse <strong>de</strong> modéliserce cas par une fonction géométrique décroissante par rapport à cette distance, quipermet <strong>de</strong> modéliser le taux <strong>de</strong> réussite <strong>de</strong> plus en plus faible du W-LSB lorsque ladistance à la perte initiale augmente.Ceci nous permet notamment <strong>de</strong> déterminer les valeurs <strong>de</strong>s ecacités et <strong>de</strong> pourles mo<strong>de</strong>s O et R du modèle. Ainsi p NOK <strong>de</strong>vient :W a(1 )Wp NOK = (1 )1 a(1 )La valeur <strong>de</strong> dans le cas Optimiste étant ainsi :


3.7. Résultats <strong>de</strong> simulation 65et pour le mo<strong>de</strong> Fiable : U = 1 ( )(1 + (1 a)(n RT T + 1 + Z))W 1 a(1 )() R = 1 + (1 (1 a)(n RT T + 1 + pn RT T (NG=init=OK))W )1 a(1 )3.6.2 Instantiation par un modèle à <strong>de</strong>ux étatsDe par la structure du modèle présenté, il est aisé <strong>de</strong> se ramener à un comportementd'un <strong>pro</strong>tocole à <strong>de</strong>ux états : un état non-compressé et un état compressé. Pourcela, il sut dans le modèle, <strong>de</strong> fusionner les états IR et FO, en prenant leurs paramètreségaux : I = F et l IR = l F O . Ce cas précis permet <strong>de</strong> modéliser le comportement<strong>de</strong> <strong>pro</strong>tocoles à <strong>de</strong>ux états, tels IPHC/eCRTP ou ROHCv2.Dans le cas <strong>de</strong> IPHC/eCRTP, il est alors possible <strong>de</strong> modéliser la fonction P (¡)par le mécanisme TWICE, tout comme le W-LSB dans le paragraphe précé<strong>de</strong>nt. [61]et [39] ont montré que le taux <strong>de</strong> réussite <strong>de</strong> l'algorithme TWICE dépassait 83%suite à une unique perte. L'algorithme échoue si et seulement si une modicationnon prédictible est apparue ente temps. Cette condition pouvant, par nature, êtreconsidérée comme indépendante d'un paquet à l'autre du ux, il est raisonnable <strong>de</strong>modéliser la fonction <strong>de</strong> récupération du modèle par P (¡) = ¡ où représente alorsle taux <strong>de</strong> réussite <strong>de</strong> l'algorithme TWICE suite à une perte unique.Pour le <strong>pro</strong>tocole ROHCv2, le modèle <strong>de</strong> récupération et <strong>de</strong> transitions est similaireà celui <strong>de</strong> ROHC. La taille <strong>de</strong>s en-têtes du mo<strong>de</strong> compressé du modèle étant alorsinitialisé avec la taille moyenne <strong>de</strong>s en-têtes du mo<strong>de</strong> CO observés.3.7 Résultats <strong>de</strong> simulationDans un premier temps, nous eectuons une comparaison <strong>de</strong>s trois mo<strong>de</strong>s du modèle,instancié par ROHC. Les longueurs <strong>de</strong>s salves IR, FO et SO sont respectivementprises à 2, 5 et 100. La longueur respective <strong>de</strong> leurs en-têtes est prise à 40, 20 et 5octets. Le débit du lien est <strong>de</strong> 100 ko/s et le ratio <strong>de</strong> transitions IR/FO pour le mo<strong>de</strong>U est <strong>de</strong> k = 5. Pour modéliser le W-LSB, nous avons pris les paramètres W = 14et a = 0; 9. An <strong>de</strong> déterminer un comportement signicativement diérent entreles mo<strong>de</strong>s Optimiste et Fiable, le taux <strong>de</strong> pertes <strong>de</strong> la couche liaison F ER est xé à5:10 2 .Les Figures 3.8, 3.9 et 3.10 montrent le comportement <strong>de</strong>s trois mo<strong>de</strong>s <strong>de</strong> lacouche <strong>pro</strong>tocolaire <strong>de</strong> compression sur le ratio P ERF ER, l'ecacité moyenne <strong>de</strong> la compressionet le temps moyen <strong>de</strong> resynchronisation, en fonction <strong>de</strong> la longueur moyenne<strong>de</strong>s salves <strong>de</strong> perte m et le délai aller-retour du lien (RTT).Le premier résultat est que le mo<strong>de</strong> Unidirectionnel est bien indépendant du RTT,à cause du manque <strong>de</strong> voie retour. Par conséquent, le mo<strong>de</strong> Unidirectionnel <strong>de</strong>vient le


66 Chapitre 3. Modélisation d'un <strong>pro</strong>tocole <strong>de</strong> compression d'en-têtesFigure 3.8 Ratio P ER=F ER pour les trois mo<strong>de</strong>s <strong>de</strong> transmission, en fonction <strong>de</strong>m et du RT TFigure 3.9 Ecacité <strong>de</strong> la compression <strong>de</strong>s trois mo<strong>de</strong>s <strong>de</strong> transmission, en fonction<strong>de</strong> m et du RT T


3.7. Résultats <strong>de</strong> simulation 67Figure 3.10 Temps moyen <strong>de</strong> resynchronisation pour les trois mo<strong>de</strong>s <strong>de</strong> transmission,en fonction <strong>de</strong> m et du RT Tmo<strong>de</strong> privilégié dès lors que le RTT dépasse 250ms, ou lorsque les longueurs <strong>de</strong> salves<strong>de</strong> perte sont importantes. Les <strong>de</strong>ux autres mo<strong>de</strong>s sont alors pénalisés par leur manque<strong>de</strong> réactivité. La Figure 3.9 montre par ailleurs, qu'en plus d'être la plus performantesur ces longs RTT, la transmission unidirectionnelle est aussi bien plus ecace. Lemo<strong>de</strong> Optimiste est pénalisé par ses envois répétés <strong>de</strong> salves FO lorsque les longueursmoyennes <strong>de</strong> pertes sont importantes. Ceci illustre le fait que <strong>de</strong>s salves FO entièressont alors perdues, nécessitant l'envoi répété <strong>de</strong> nouvelles salves. Le mo<strong>de</strong> Fiable estquant à lui encore plus pénalisé par le fait que lorsque ce RTT augmente, le nombred'en-têtes FO transmis durant ce RTT <strong>de</strong>vient prépondérant. La Figure 3.10 illustrele fait que, grâce à une bonne paramétrisation du <strong>pro</strong>tocole <strong>de</strong> compression, la duréemoyenne <strong>de</strong> désynchronisation du mo<strong>de</strong> Unidirectionnel peut-être inférieure à celle <strong>de</strong>mécanismes avec voie <strong>de</strong> retour.Enn, nous avons tenté <strong>de</strong> mettre en évi<strong>de</strong>nce l'intérêt d'un mécanisme <strong>de</strong> récupérationecace. Nous avons comparé le ratio entre le taux <strong>de</strong> perte en sortie eten entrée pour <strong>de</strong>ux instantiations du modèle. La première est celle d'un <strong>pro</strong>tocoleROHC, muni d'un W-LSB <strong>de</strong> paramètres W = 14 et a = 0; 85. La secon<strong>de</strong> est <strong>de</strong>type IPHC/CRTP basé sur l'algorithme TWICE <strong>de</strong> paramètre = 0; 85. Les <strong>de</strong>uxmodèles ont été paramétrés pour avoir la même ecacité e = 14; 27%. L'inuence<strong>de</strong> la longueur <strong>de</strong>s salves <strong>de</strong> pertes dur le ratio P ERF ERest présenté sur la Figure 3.11.Ces résultats mettent ici en évi<strong>de</strong>nce l'apport considérable du mécanisme W-LSB,qui permet grâce à sa fenêtre glissante, <strong>de</strong> contenir <strong>de</strong>s salves <strong>de</strong> pertes mo<strong>de</strong>stes.


68 Chapitre 3. Modélisation d'un <strong>pro</strong>tocole <strong>de</strong> compression d'en-têtesFigure 3.11 Inuence du mécanisme <strong>de</strong> récupération sur le taux d'erreur en sortieLes <strong>de</strong>ux mécanismes <strong>de</strong>viennent aussi peu ecaces dès lors que ces salves <strong>de</strong> pertessont longues, ce qui illustre les limites <strong>de</strong>s <strong>de</strong>ux mécanismes.3.8 ConclusionGrâce à cette modélisation, nous avons pu montrer que, contrairement à unepossible idée reçue, l'utilisation d'une voie <strong>de</strong> retour sur les mécanismes <strong>de</strong> compressiond'en-têtes peut être contre-<strong>pro</strong>ductif. En eet, dès lors que les temps aller-retouren jeu <strong>de</strong>viennent importants, non seulement les performances <strong>de</strong>s mo<strong>de</strong>s O et Rsont dégradées, mais aussi leur ecacité <strong>de</strong> compression, qui contrairement au mo<strong>de</strong>Unidirectionnel, est asymptotiquement optimale en mo<strong>de</strong> stationnaire. Ces mêmesrésultats <strong>de</strong> simulation ont également mis en évi<strong>de</strong>nce l'impact <strong>de</strong> longues salves <strong>de</strong>pertes, qui dégra<strong>de</strong>nt fortement les performances <strong>de</strong> ces mêmes mo<strong>de</strong>s. De par sastructure, le mo<strong>de</strong> U est alors plus à même <strong>de</strong> réagir rapi<strong>de</strong>ment à ces longues pertes.Il est néanmoins nécessaire <strong>de</strong> ramener cette modélisation sur un plan pratique.Du point <strong>de</strong> vue <strong>de</strong>s longueurs <strong>de</strong> salves <strong>de</strong> pertes, les valeurs que nous avons puexpérimenter correspon<strong>de</strong>nt typiquement aux longueurs <strong>de</strong>s pertes dans un réseaucomprenant <strong>de</strong>s n÷uds congestionnés.Quant aux RTT pris en compte dans nos simulations, rappelons que celui d'un satellitegéostationnaire est <strong>de</strong> l'ordre <strong>de</strong> 0.5s. Par ailleurs, dans un contexte satellitaire,la voie <strong>de</strong> retour peut être absente ou se révéler coûteuse. Des étu<strong>de</strong>s récentes [62]ont montré que le RTT d'une liaison <strong>de</strong> type Internet peut également atteindre plus <strong>de</strong>100ms, et dans ce cas rend caduque l'utilisation d'une voie <strong>de</strong> retour. Dans les réseaux


3.8. Conclusion 69cellulaires, où par exemple, ROHC fait partie intégrante <strong>de</strong> la norme UMTS, les délaisen jeu sont également importants [63]. Les résultats expérimentaux ont ainsi montréque le RTT <strong>de</strong>s réseaux GPRS pouvait atteindre 1s et 250ms pours <strong>de</strong>s réseaux <strong>de</strong>type UMTS.Pour <strong>de</strong>s scénarios <strong>de</strong> type WiFi, les délais en jeu sont faibles et les voies <strong>de</strong> retouraccessibles simplement. Ainsi pour ce type <strong>de</strong> connexion, les mo<strong>de</strong>s O et R pourrontêtre privilégiés. Cependant, les conditions sont diérentes pour <strong>de</strong>s réseaux <strong>de</strong> typeWiMax, où la topologie même du réseau entraîne <strong>de</strong>s latences pouvant varier <strong>de</strong> moins<strong>de</strong> 150ms à plus <strong>de</strong> 500ms [64] [65]. Avec un taux <strong>de</strong> perte trame inférieur à 1%, lavoie <strong>de</strong> retour ne semble ici pas utile.Cette modélisation permet alors <strong>de</strong> mettre en lumière les enjeux d'une paramétrisationdu <strong>pro</strong>tocole <strong>de</strong> compression en fonction du scénario envisagé.


Chapitre 4Co<strong>de</strong>s à eacements à décodagehybri<strong>de</strong> avec matrice génératriceban<strong>de</strong>Le 14 juillet c'est la semaine du 14.Théorème toulousain.Sommaire4.1 Introduction . . . . . . . . . . . . . . . . . . . . . . . . . . . . 714.2 Construction <strong>de</strong>s co<strong>de</strong>s à matrice ban<strong>de</strong> . . . . . . . . . . . . 734.2.1 Dénitions et <strong>pro</strong>positions . . . . . . . . . . . . . . . . . . . . 734.2.2 Schéma général du co<strong>de</strong> . . . . . . . . . . . . . . . . . . . . . 744.2.3 Construction <strong>de</strong>s matrices . . . . . . . . . . . . . . . . . . . . 764.2.4 Adaptation et optimisations . . . . . . . . . . . . . . . . . . . 774.3 Analyse théorique . . . . . . . . . . . . . . . . . . . . . . . . . 794.3.1 Capacités <strong>de</strong> correction théorique . . . . . . . . . . . . . . . . 794.3.2 Complexité théorique . . . . . . . . . . . . . . . . . . . . . . 804.4 Résultats obtenus . . . . . . . . . . . . . . . . . . . . . . . . . 804.4.1 Méthodologie <strong>de</strong> test . . . . . . . . . . . . . . . . . . . . . . . 804.4.2 Capacités <strong>de</strong> correction . . . . . . . . . . . . . . . . . . . . . 814.4.3 Vitesses <strong>de</strong> décodage . . . . . . . . . . . . . . . . . . . . . . . 824.5 Conclusion . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 834.1 IntroductionAprès le chapitre précé<strong>de</strong>nt consacré à la compression d'en-têtes, ce chapitre présentela première <strong>de</strong>s trois contributions concernant les co<strong>de</strong>s à eacements.Les co<strong>de</strong>s que nous présentons dans ce chapitre, que nous appellerons co<strong>de</strong>s àmatrice ban<strong>de</strong>, sont <strong>de</strong>s co<strong>de</strong>s binaires linéaires systématiques construits pour pouvoirêtre décodés ecacement <strong>de</strong> <strong>de</strong>ux manières. Un décodage par le maximum <strong>de</strong> vraisemblancepeut être utilisé sur la matrice génératrice et un décodage <strong>de</strong> type itératif peutêtre utilisé sur la matrice <strong>de</strong> parité associée. Chacun <strong>de</strong>s <strong>de</strong>ux décodages comporte sesavantages et <strong>de</strong>s inconvénients. Le décodage à maximum <strong>de</strong> vraisemblance est basé sur


Chapitre 4. Co<strong>de</strong>s à eacements à décodage hybri<strong>de</strong> avec matrice génératrice72ban<strong>de</strong>un algorithme <strong>de</strong> type élimination Gaussienne. Ce décodage permet donc d'atteindrela capacité <strong>de</strong> décodage du co<strong>de</strong>, mais ceci se fait au détriment d'une complexitémathématique élevée O(n 3 ). En ce sens, le décodage gaussien n'est pas adaptabledès lors que la taille <strong>de</strong>s co<strong>de</strong>s est supérieure à quelques centaines <strong>de</strong> symboles. Ledécodage itératif quant à lui, permet <strong>de</strong> déco<strong>de</strong>r simplement avec une complexité linéaire,mais atteint <strong>de</strong>s capacités <strong>de</strong> récupération bien moindres. Dans ce chapitre,nous emploierons le terme <strong>de</strong> décodage hybri<strong>de</strong> dans le sens où les <strong>de</strong>ux décodagessont indépendants pour ce type <strong>de</strong> co<strong>de</strong>s.Ce type décodage hybri<strong>de</strong> n'est en soit pas une nouveauté. Par exemple, en utilisant<strong>de</strong>s co<strong>de</strong>s <strong>de</strong> type Low Density Parity-Check (LDPC) qui <strong>pro</strong>cè<strong>de</strong>nt à un décodageitératif sur une matrice <strong>de</strong> parité creuse, il est tout à fait possible <strong>de</strong> <strong>pro</strong>cé<strong>de</strong>r à uneélimination Gaussienne sur la matrice génératrice associée. En ce sens, nous avonsaaire à un décodage hybri<strong>de</strong>. De la même manière, lorsque le décodage LDPC échoueà une étape intermédiaire, il est possible <strong>de</strong> basculer sur un décodage à maximum <strong>de</strong>vraisemblance sur les éléments restants.Deux leviers permettent d'agir sur les performances d'un décodage hybri<strong>de</strong> basé surces <strong>de</strong>ux types <strong>de</strong> décodage. Le premier consiste à améliorer la capacité <strong>de</strong> correctionliée au décodage itératif. Ce mécanisme est dicile à maîtriser car il s'agit d'améliorerles dépendances inter-symboles en limitant au maximum l'ajout <strong>de</strong> ces relations quiont pour conséquence <strong>de</strong> remplir la matrice <strong>de</strong> parité, et donc <strong>de</strong> diminuer la vitesse dudécodage itératif. Le remplissage <strong>de</strong> cette matrice <strong>de</strong> parité sera toujours un com<strong>pro</strong>misentre la capacité et la vitesse du décodage itératif. Puisque le décodage gaussienest optimal pour un co<strong>de</strong> donné, le <strong>de</strong>uxième levier consiste à restreindre l'ensemble<strong>de</strong>s co<strong>de</strong>s possibles à l'ensemble <strong>de</strong>s co<strong>de</strong>s pour lequel un décodage à maximum <strong>de</strong>vraisemblance adapté peut être utilisé. Le but ici est d'obtenir un décodage optimalavec une complexité mathématique moindre, sans aecter la capacité <strong>de</strong>s co<strong>de</strong>s.Le codage présenté ici utilise ce second levier. L'idée est <strong>de</strong> restreindre la partienon-systématique <strong>de</strong> la matrice génératrice du co<strong>de</strong> dans une ban<strong>de</strong> <strong>de</strong> largeur b. En<strong>de</strong>hors <strong>de</strong> cette ban<strong>de</strong>, les éléments <strong>de</strong> la partie non systématique sont tous nuls, cequi signie en outre que chaque symbole <strong>de</strong> redondance est une combinaison d'unnombre limité <strong>de</strong> symboles sources voisins. En appliquant cette restriction, il est possibled'eectuer une élimination gaussienne adaptée avec une complexité O(b 2 ¢ n)où b n. L'intérêt <strong>de</strong> ce décodage a été montré par Studholme et Blake [66] [67]sur une matrice génératrice aléatoire ban<strong>de</strong> avec une largeur 2 p k.Le principal point ici est d'obtenir une matrice génératrice avec une partie nonsystématiqueréduite à une ban<strong>de</strong> qui possè<strong>de</strong> une matrice <strong>de</strong> parité associée creusepermettant un décodage itératif ecace.Ces co<strong>de</strong>s ont été développés en collaboration avec Mathieu Cunche et VincentRoca <strong>de</strong> l'INRIA Grenoble.


4.2. Construction <strong>de</strong>s co<strong>de</strong>s à matrice ban<strong>de</strong> 73⎛⎞t 0 0 0 : : : 0 0t 1 t 0 0t 2 t 1 t 0 . .. T =. t 2 t ..1 . t i . t .. . ..2 0⎜⎝ . t i . t 0 0 ⎟⎠t n 1 . t i t 1 t 0Figure 4.1 Matrice <strong>de</strong> Toeplitz triangulaire inférieure4.2 Construction <strong>de</strong>s co<strong>de</strong>s à matrice ban<strong>de</strong>4.2.1 Dénitions et <strong>pro</strong>positionsNous dénissons ici quelques éléments nécessaires à la construction <strong>de</strong>s co<strong>de</strong>s àmatrice ban<strong>de</strong>.Dénition 4.1. Soit T = (t i;j ; i; j 2 f0; :::; n 1g) une matrice <strong>de</strong> Toeplitz carréetriangulaire inférieure <strong>de</strong> taille n. Cette matrice est donc à diagonale constante. Pouri < j, t i;j = 0 et pour i j, t i;j = t i j . Cette matrice peut donc être dénie par len-uplet (t 0 ; t 1 ; :::; t n 1 ).A ce n-uplet on associe le polynôme suivant t(x) 2 K[X]=(X n ), soit l'anneau <strong>de</strong>l'ensemble <strong>de</strong>s polynômes à <strong>de</strong>gré inférieur à n modulo X n et à coecients sur le corpsK :∑n 1t(x) = t i x ii=0Cette matrice est représentée comme sur la Figure 4.1 :Proposition 4.2. Soit G 2 M n;m une matrice à n lignes à coecients dans K[X], etsoit g j (x) les polynômes associés aux colonnes <strong>de</strong> G. Ces polynômes peuvent s'écrire8j 2 (0; :::; m 1); g j (x) = ∑ n 1i=0 g i;jx i .Soit T une matrice <strong>de</strong> Toeplitz telle que dénie précé<strong>de</strong>mment et t(x) son polynômeassocié dans l'anneau déni précé<strong>de</strong>mment. Les colonnes <strong>de</strong> la matrice du <strong>pro</strong>duit T Gsont égales au <strong>pro</strong>duit <strong>de</strong>s polynômes associés t(x)g j (x).Ce résultat peut être résumé comme suit :


Chapitre 4. Co<strong>de</strong>s à eacements à décodage hybri<strong>de</strong> avec matrice génératrice74ban<strong>de</strong>⎛⎞ ⎛⎞t 0g 0;0 g 0;1 g 0;2 : : : g 0;m 1t 1 t 0 ⎜⎝. ..⎟⎠ ¢ g 1;0 g 1;1 g 1;2 : : : g 1;m 1⎜⎟⎝ . . .. ⎠t n 1 t n 2 t 0 g n 1;0 g n 1;1 g n 1;2 : : : g n 1;m 1⎛⎞(t:g 0 ) 0 (t:g 1 ) 0 : : : (t:g m 1 ) 0(t:g 0 ) 1 (t:g 1 ) 1 : : : (t:g m 1 ) 1= ⎜⎟⎝ . . . . ⎠(t:g 0 ) n 1 (t:g 1 ) n 1 : : : (t:g m 1 ) n 1Démonstration. Le <strong>pro</strong>duit matriciel pour chaque élément <strong>de</strong> la matrice donne :∑n 1T G i;j = t i;k g k;j==k=0i∑t i;k g k;j +k=0i∑t i k g k;jk=0n∑0 ¢ g k;jD'un autre côté le <strong>pro</strong>duit <strong>de</strong>s polynômes <strong>de</strong> chaque colonne donne :i+1∑n 1∑n 1∑n 1t(x)g j (x) = ( t i x i )( g i;j x i ) mod x n = (i=0i=0i=0i∑t i k g k;j )x iLes coecients <strong>de</strong>s polynômes <strong>pro</strong>duits associés sont bien les coecients <strong>de</strong> lamatrice <strong>pro</strong>duit.k=04.2.2 Schéma général du co<strong>de</strong>Nous considérons un co<strong>de</strong> binaire systématique <strong>de</strong> dimension k et <strong>de</strong> longueurn. La matrice génératrice associée à ce co<strong>de</strong> G est <strong>de</strong> taille k ¢ n, et la matrice <strong>de</strong>parité H est <strong>de</strong> taille (n k) ¢ n. Soit M 2 M k;n k la partie non-systématique <strong>de</strong>la matrice génératrice. Soit A 2 M n k;k la matrice formée <strong>de</strong>s k premières colonnes<strong>de</strong> la matrice <strong>de</strong> parité et U la matrice carrée <strong>de</strong> taille n k formant les <strong>de</strong>rnièrescolonnes <strong>de</strong> H. Les <strong>de</strong>ux matrices peuvent ainsi s'écrire sous la forme suivante :G = (Id k jM)H = (AjU)Nous prenons l'hypothèse que la matrice U est une matrice <strong>de</strong> Toeplitz triangulaireinférieure telle que dénie dans le paragraphe 4.2.1. Ceci permet <strong>de</strong> se ramener à uncas similaire à celui <strong>de</strong>s co<strong>de</strong>s LDPC-Triangle tels que dénis dans la RFC5170 [29].


4.2. Construction <strong>de</strong>s co<strong>de</strong>s à matrice ban<strong>de</strong> 75En eet, en gardant une structure triangulaire inférieure, tout comme les co<strong>de</strong>s LDPC-Triangle, un décodage itératif à complexité linéaire est possible. La matrice U est doncdéterminée par le (n-k)-uplet (1; u 1 ; u 2 ; :::; u n k 1 ). La matrice U étant triangulaireavec une diagonale égale à 1, elle est donc <strong>de</strong> rang plein et inversible. Comme décritprécé<strong>de</strong>mment, nous associons cette matrice avec le polynôme u(x) :u(x) = 1 +n∑k 1k=1u k x kEn résumé, la matrice U possè<strong>de</strong> la forme suivante :⎛⎞1 0 0 : : : 0 0u 1 1 0u 2 u 1 1. .. U =. u 2 u ..1 . u i . u ..2 0⎜⎝ . u i . 1 0⎟⎠u n k 1 . u i u 1 1Pour la construction <strong>de</strong> la matrice M 2 M k;n k , l'objectif est <strong>de</strong> restreindrel'ensemble <strong>de</strong>s éléments non nuls <strong>de</strong> la matrice à une ban<strong>de</strong>. Nous noterons la largeur<strong>de</strong> cette ban<strong>de</strong> B. Dans un premier temps, nous pouvons écrire la matrice M sous laforme suivante :⎛⎞m 0;0 m 0;1 : : : m 0;B 1 0 : : : 0 0. 0 m ..1;0 : : : m1;B 1 0 : : : 0M =. . 0 .. . .. . : : : .. 0 .⎜.⎝. . 0 m k 2;0 : : : .. . .. 0 ⎟⎠.0 0 : : : 0 m .. k 1;0 : : : mk 1;B 1A chaque ligne <strong>de</strong> la matrice nous pouvons associer le polynôme m i (x) = ∑ B 1j=0 m i;jx j .Dans ce cas particulier, nous avons une relation entre la dimension et la longueur duco<strong>de</strong>, due à la contrainte <strong>de</strong> la ban<strong>de</strong> :n k = k + B 1Nous verrons par la suite comment s'aranchir <strong>de</strong> cette contrainte an <strong>de</strong> construire<strong>de</strong>s co<strong>de</strong>s avec <strong>de</strong>s dimensions indépendantes <strong>de</strong> B.Par dénition, la matrice génératrice G envoie n'importe quel vecteur source binairedans l'espace vectoriel image formé <strong>de</strong> l'ensemble <strong>de</strong>s mots du co<strong>de</strong>. De la mêmemanière la matrice <strong>de</strong> parité associée H est une application linéaire dont le noyau est


Chapitre 4. Co<strong>de</strong>s à eacements à décodage hybri<strong>de</strong> avec matrice génératrice76ban<strong>de</strong>⎛H =⎜⎝a 0;0 1a 0;1 a 1;0 u 1 1a 0;2 a 1;1 a 2;0 u 2 u 1 1a 0;3 a 1;2 a 2;1 u 3 u 2 u 1. ... a 1;3 a 2;2. .. . u3 u 2. .. . .... a 2;3 . u ..3..... 1u 1 1⎞⎟⎠Figure 4.2 Matrice <strong>de</strong> parité associée à une matrice génératrice ban<strong>de</strong>, la partie <strong>de</strong>gauche est ban<strong>de</strong>, la partie <strong>de</strong> droite est <strong>de</strong> Toeplitz triangulaire inférieurel'ensemble <strong>de</strong>s mots du même co<strong>de</strong>. Ces <strong>de</strong>ux matrices sont orthogonales. Nous avonsdonc la relation suivante :HG T = 0Grâce aux dénitions précé<strong>de</strong>ntes, cette relation se transforme en :(AjU)( Id kM T ) = 0 , A ¨ UMT = 0 , A = UM TCe résultat permet <strong>de</strong> donner une relation importante entre la matrice ban<strong>de</strong> etla matrice <strong>de</strong> parité. D'après la <strong>pro</strong>position 4.2, et d'après la construction <strong>de</strong> U priseen hypothèse, on en déduit la relation entre les colonnes <strong>de</strong> la matrice A et leurspolynômes associés a i (x), la matrice U et les lignes <strong>de</strong> la matrice M, m i (x) pour touti 2 (0; 1; :::k 1).8i 2 (0; 1; :::; k 1);a i (x) = u(x)m i (x)Grâce à cette relation, il va ainsi être possible <strong>de</strong> construire <strong>de</strong>s matrices génératricesà structure ban<strong>de</strong> en tenant compte <strong>de</strong> la matrice <strong>de</strong> parité. Une particularité<strong>de</strong> ce résultat est d'ailleurs <strong>de</strong> nous indiquer la structure <strong>de</strong> la matrice <strong>de</strong> parité associée.En eet, si U est une matrice <strong>de</strong> Toeplitz triangulaire inférieure, alors A auraégalement une structure restreinte à une ban<strong>de</strong>, comme représenté sur la Figure 4.2.Nous rappelons que le poids <strong>de</strong> Hamming d'une séquence est le nombre d'élémentsnon nuls <strong>de</strong> celle-ci. De manière similaire, le poids <strong>de</strong> Hamming d'un polynôme p(x)est déni par le nombre <strong>de</strong> monômes non nuls et sera noté W (p).4.2.3 Construction <strong>de</strong>s matricesAn <strong>de</strong> supporter un décodage itératif sur la matrice <strong>de</strong> parité ecace, il estnécessaire que celle-ci soit creuse. En d'autres termes, le nombre d'éléments non nulspar colonne <strong>de</strong> la matrice <strong>de</strong>vra être faible. En utilisant la représentation polynômiale


4.2. Construction <strong>de</strong>s co<strong>de</strong>s à matrice ban<strong>de</strong> 77détaillée dans le paragraphe précé<strong>de</strong>nt, cela revient à dire que le poids <strong>de</strong> Hamming <strong>de</strong>spolynômes a i (x) et u(x) doit être faible. En pratique, nous dénissons une distribution<strong>de</strong> petits <strong>de</strong>grés sur les a i permettant un décodage ecace. Nous verrons par la suitecomment le poids <strong>de</strong>s lignes peut être géré lorsque les polynômes a i sont sélectionnés.Du point <strong>de</strong> vue du décodage à maximum <strong>de</strong> vraisemblance sur la matrice génératrice,la seule contrainte consiste à conserver l'ensemble <strong>de</strong>s éléments non nulsdans une ban<strong>de</strong> <strong>de</strong> largeur B. D'un point <strong>de</strong> vue polynomial, cela se traduit par unelimitation <strong>de</strong>s polynômes m i (x) à <strong>de</strong>s <strong>de</strong>grés strictement inférieurs à B. Cependant,il est nécessaire d'utiliser les polynômes <strong>de</strong> <strong>de</strong>grés aussi <strong>pro</strong>ches que possible <strong>de</strong> Ban <strong>de</strong> permettre à chaque bit du mot encodé d'être la somme d'un ensemble <strong>de</strong> bitssources le plus varié possible, et ainsi se rap<strong>pro</strong>cher <strong>de</strong>s co<strong>de</strong>s ban<strong>de</strong>s aléatoires.Le point crucial <strong>de</strong> la construction <strong>de</strong> ce co<strong>de</strong> est donc <strong>de</strong> déterminer un ensemble<strong>de</strong> polynômes fa i (x); m i (x); u(x)g tel que pour tout i 2 (0; 1; :::k 1),a i (x) = u(x)m i (x) et tel que u(x) et chaque a i (x) soit <strong>de</strong> faible poids <strong>de</strong> Hamming,et que chaque m i (x) soit <strong>de</strong> <strong>de</strong>gré strictement inférieur à B. L'ensemble <strong>de</strong>ces polynômes pour un u(x) donné sera nommé l'ensemble <strong>de</strong>s polynômes candidats.Ces polynômes peuvent être recherchés <strong>de</strong> manière exhaustive, et dans le cadre <strong>de</strong>nos expérimentations, l'algorithme implémenté en MAPLE TM n'excédait pas quelquessecon<strong>de</strong>s pour <strong>de</strong>s largeurs <strong>de</strong> ban<strong>de</strong> <strong>de</strong> 200.Les résultats expérimentaux ont montré que choisir un seul et unique polynômem(x) pour l'ensemble <strong>de</strong>s lignes <strong>de</strong> M dégradait fortement la capacité <strong>de</strong> correctiondu co<strong>de</strong>. C'est pour cela qu'à partir <strong>de</strong> ce point, nous choisirons un ensemble <strong>de</strong>polynômes m i (x) et donc un ensemble <strong>de</strong> polynômes a i (x). Ceci peut s'expliquer parla régularité ainsi engendrée par l'utilisation d'un seul polynôme. Cependant, <strong>de</strong> lamême manière, les résultats expérimentaux ont aussi montré que la disposition <strong>de</strong>sdits polynômes dans la manière n'avait que peu d'inuence sur les performances duco<strong>de</strong> en comparaison <strong>de</strong> la sélection <strong>de</strong> l'ensemble <strong>de</strong> ces polynômes. Nous avons doncpris une ap<strong>pro</strong>che aléatoire pour la disposition <strong>de</strong>s polynômes candidats.Néanmoins, cette ap<strong>pro</strong>che ne permet pas <strong>de</strong> liberté sur la distribution <strong>de</strong>s <strong>de</strong>grés<strong>de</strong>s lignes <strong>de</strong> la matrice <strong>de</strong> parité. Il est donc possible d'ajuster cette distribution eneectuant <strong>de</strong>s permutations sur les colonnes et les polynômes <strong>de</strong> la matrice A. Enconséquence, il sera possible <strong>de</strong> s'ap<strong>pro</strong>cher d'une distribution <strong>de</strong>s lignes donnée sanspour autant modier celle <strong>de</strong>s colonnes ou modier la capacité <strong>de</strong> correction du co<strong>de</strong>.Il est cependant important <strong>de</strong> noter que malgré ce <strong>de</strong>gré <strong>de</strong> liberté, il n'est pas garantiqu'une distribution cible <strong>de</strong> <strong>de</strong>grés lignes puisse être atteinte grâce à ce mécanisme.4.2.4 Adaptation et optimisations4.2.4.1 Indépendance par rapport à la largeur <strong>de</strong> la ban<strong>de</strong>La structure présentée précé<strong>de</strong>mment apporte <strong>de</strong>ux principaux <strong>pro</strong>blèmes. Le premierest que la dimension et la longueur du co<strong>de</strong> sont liées par la taille <strong>de</strong> la ban<strong>de</strong> :n = 2k +B. Le second, qui découle en partie du premier est que les premiers et <strong>de</strong>rnierssymboles <strong>de</strong> redondance non systématiques ne <strong>pro</strong>tègent qu'un ensemble très réduit


Chapitre 4. Co<strong>de</strong>s à eacements à décodage hybri<strong>de</strong> avec matrice génératrice78ban<strong>de</strong>Figure 4.3 Matrice M <strong>de</strong> largeur B dont les premières et <strong>de</strong>rnières lignes ont étéremplacées par <strong>de</strong>s lignes <strong>de</strong> largeur <strong>de</strong> ban<strong>de</strong> B/2<strong>de</strong> symboles d'entrée. A l'extrême, le premier et le <strong>de</strong>rnier symbole <strong>de</strong> redondance ne<strong>pro</strong>tègent qu'un seul symbole source.Nous avons résolu ce <strong>pro</strong>blème en utilisant un second ensemble <strong>de</strong> polynômes, <strong>de</strong><strong>de</strong>gré maximal B=2. En utilisant ce second ensemble sur les B=2 premières et <strong>de</strong>rnièreslignes <strong>de</strong> M, la ban<strong>de</strong> est conservée. Le nouveau ratio <strong>de</strong> codage est alors indépendant<strong>de</strong> B : n = 2k, et les symboles aux limites <strong>de</strong> M <strong>pro</strong>tègent désormais plus <strong>de</strong> symbolessources. La représentation <strong>de</strong> la matrice M avec ce mécanisme se trouve sur la Figure4.3.Nous avons également exploré la possibilité d'utiliser <strong>de</strong> nombreux ensembles <strong>de</strong>polynômes <strong>de</strong> <strong>de</strong>grés maximaux respectifs B=2; B=2 + 1; B=2 + 2; ::: an <strong>de</strong> compléterchaque ligne par <strong>de</strong>s polynômes <strong>de</strong> <strong>de</strong>grés adaptés. L'eet escompté était <strong>de</strong> "combler"la partie triangulaire laissée vi<strong>de</strong> par le mécanisme précé<strong>de</strong>nt sur les symbolesextrêmes (tel que nous pouvons le voir sur la Figure 4.3. Les résultats expérimentauxont cependant montré que l'impact sur les performances du co<strong>de</strong> est minime.Nous avons également étudié la possibilité d'éliminer purement et simplement lesB=2 premières et <strong>de</strong>rnières colonnes <strong>de</strong> M, mais ceci posait un <strong>pro</strong>blème, notammentlors <strong>de</strong> la génération <strong>de</strong> la matrice <strong>de</strong> parité. En eet, dans ce cas, il n'est pluspossible <strong>de</strong> générer directement celle-ci à partir <strong>de</strong> la matrice génératrice. Par ailleurs,l'élimination <strong>de</strong>s lignes (dues à la transposée <strong>de</strong> M) dans la matrice <strong>de</strong> parité n'est pasenvisageable car les colonnes <strong>de</strong> celle-ci sont peu remplies et peuvent potentiellement<strong>de</strong>venir vi<strong>de</strong>s.4.2.4.2 Adaptation à <strong>de</strong>s diérents taux <strong>de</strong> codageGrâce au mécanisme précé<strong>de</strong>nt, nous avons pu rendre le ratio <strong>de</strong> codage indépendant<strong>de</strong> la largeur <strong>de</strong> ban<strong>de</strong>. Cependant, en l'état, celui-ci reste xé à 1 . Une secon<strong>de</strong>2adaptation consiste donc à permettre l'utilisation d'un ren<strong>de</strong>ment quelconque. Pourcela, il sut d'ajuster le décalage <strong>de</strong> positions entre une ligne <strong>de</strong> la matrice M et lasuivante. Par défaut celui-ci étant xé à 1, il permet un ren<strong>de</strong>ment <strong>de</strong> 1 . Soit f ce2


4.3. Analyse théorique 79décalage et R le ratio du co<strong>de</strong>. En posant f = 1 R1, nous pouvons prendre en charge<strong>de</strong>s ren<strong>de</strong>ments diérents tout en conservant la largeur <strong>de</strong> ban<strong>de</strong> désirée. Si la valeur fn'est pas entière, il sut d'utiliser une famille ff i g d'entiers tels que le décalage moyensoit f . Par ailleurs, il est nécessaire d'adapter le mécanisme précé<strong>de</strong>nt en remplaçantles les B 2fpremières et <strong>de</strong>rnières lignes <strong>de</strong> M par <strong>de</strong>s lignes construites à partir <strong>de</strong>polynômes <strong>de</strong> <strong>de</strong>gré B=2.4.2.4.3 Vers une analyse <strong>de</strong> l'évolution <strong>de</strong> <strong>de</strong>nsité ?La faisabilité d'une étu<strong>de</strong> <strong>de</strong> type évolution <strong>de</strong> <strong>de</strong>nsité [68] pour le décodage itératif<strong>de</strong> la matrice <strong>de</strong> parité a été étudiée, mais a cependant fait face à <strong>de</strong> nombreuxobstacles.Le premier point est qu'an d'eectuer cette analyse, le co<strong>de</strong> étudié doit théoriquementêtre <strong>de</strong> longueur innie. Comme nous le verrons par la suite, la largeur <strong>de</strong>la ban<strong>de</strong> nécessaire pour eectuer un décodage ecace augmente lorsque la longueurdu co<strong>de</strong> augmente. Il faudrait donc une largeur <strong>de</strong> ban<strong>de</strong> innie an d'eectuer uneanalyse avec un co<strong>de</strong> <strong>de</strong> longueur innie. Par ailleurs, si l'on élimine cette hypothèse,l'hypothèse <strong>de</strong>s cycles <strong>de</strong> longueur innie tombe elle aussi, car à cause <strong>de</strong> la structureban<strong>de</strong>, chaque n÷ud <strong>de</strong> contrôle ne peut-être connecté qu'à un ensemble délimité <strong>de</strong>n÷uds sources.Par ailleurs, si la distribution <strong>de</strong>s <strong>de</strong>grés <strong>de</strong>s colonnes peut-être facilement ajustée,nous avons vu que <strong>de</strong>s limites apparaissaient sur la distribution <strong>de</strong>s <strong>de</strong>grés <strong>de</strong>s lignes<strong>de</strong> la matrice <strong>de</strong> parité.Nous avons tenté <strong>de</strong> nous rap<strong>pro</strong>cher autant que possible <strong>de</strong> schémas <strong>de</strong> répartitionconnus, mais sans résultat notable.L'ensemble <strong>de</strong> ces points fait que cette ap<strong>pro</strong>che a été étudiée, mais étant considéréecomme dicilement adaptable, du fait <strong>de</strong>s contraintes <strong>de</strong> la ban<strong>de</strong>, nous noussommes concentrés sur une ap<strong>pro</strong>che empirique pour la sélection <strong>de</strong>s polynômes.4.3 Analyse théorique4.3.1 Capacités <strong>de</strong> correction théoriqueDécodage à maximum <strong>de</strong> vraisemblanceLe décodage optimal du co<strong>de</strong>, à maximum <strong>de</strong> vraisemblance sur la matrice <strong>de</strong> paritéest dépendant <strong>de</strong> la largeur <strong>de</strong> ban<strong>de</strong>. En eet, le co<strong>de</strong> utilisé sera un com<strong>pro</strong>mis entreune largeur <strong>de</strong> ban<strong>de</strong> susamment gran<strong>de</strong>, pour permettre une plus gran<strong>de</strong> dispersiondu co<strong>de</strong>, et une largeur susamment raisonnable pour permettre un décodage rapi<strong>de</strong>.Dans la présentation <strong>de</strong> leurs co<strong>de</strong>s ban<strong>de</strong> aléatoires, Studholme et Blake ontétudié <strong>de</strong> manière théorique, l'inuence <strong>de</strong> la largeur <strong>de</strong> la ban<strong>de</strong> sur la capacité <strong>de</strong>correction <strong>de</strong> leur co<strong>de</strong>s. En conclusion, il s'avère qu'une largeur <strong>de</strong> ban<strong>de</strong> <strong>de</strong> 2 p k etcomposée d'au moins <strong>de</strong> 2 log k éléments non nuls par colonne permettait d'obtenir<strong>de</strong>s capacités <strong>de</strong> correction <strong>pro</strong>ches <strong>de</strong> celles <strong>de</strong> matrices aléatoires classiques. Nous


Chapitre 4. Co<strong>de</strong>s à eacements à décodage hybri<strong>de</strong> avec matrice génératrice80ban<strong>de</strong>pouvons considérer notre travail comme un cas particulier <strong>de</strong> ces co<strong>de</strong>s avec <strong>de</strong>scontraintes supplémentaires sur le remplissage <strong>de</strong> la ban<strong>de</strong> et <strong>de</strong>s relations inter-lignes.Nous avons ainsi considéré cette borne comme la contrainte minimale <strong>de</strong> notre co<strong>de</strong>pour un décodage optimal.Décodage itératifDe la même manière que le décodage à maximum <strong>de</strong> vraisemblance, la contrainteban<strong>de</strong> va réduire la diversité <strong>de</strong>s connexions inter-symboles. En conséquence, les performancesattendues seront inférieures à celles <strong>de</strong>s co<strong>de</strong>s Repeat-Accumulate dont ilstiennent leur structure. Il ne faut d'ailleurs pas négliger l'importance <strong>de</strong> la régularité<strong>de</strong> la matrice U sur la capacité <strong>de</strong> correction du décodage itératif.Une co<strong>de</strong> à matrice ban<strong>de</strong> dont la largeur augmentera se rap<strong>pro</strong>chera d'un co<strong>de</strong>Repeat-Accumulate, qui possè<strong>de</strong> <strong>de</strong> bonnes performances. Alors qu'une largeur <strong>de</strong>ban<strong>de</strong> faible sur A se rap<strong>pro</strong>chera d'un co<strong>de</strong> à répétition qui possè<strong>de</strong> une mauvaisecapacité <strong>de</strong> correction.4.3.2 Complexité théoriqueComme présenté précé<strong>de</strong>mment, le déco<strong>de</strong>ur itératif fonctionne avec une complexitélinéaire O(k). Lorsque celui-ci échoue, un décodage Gaussien adapté auxban<strong>de</strong>s est utilisé sur la matrice génératrice. Il est important <strong>de</strong> rappeler que dansle cas général, la complexité d'un tel décodage est O(k 3 ).La matrice génératrice globale du co<strong>de</strong> étant systématique, lorsque un élémentsystématique est reçu, il convient d'éliminer la ligne correspondante dans le décodage<strong>de</strong> la matrice M. De la même manière, seules les colonnes <strong>de</strong> M dont le symbole a étéreçu sont utilisées pour le décodage. Le décodage gaussien s'eectue donc sur unesous-matrice <strong>de</strong> la matrice ban<strong>de</strong> M. Il est important <strong>de</strong> noter que si M est une matrice<strong>de</strong> ban<strong>de</strong> B, alors toute sous-matrice <strong>de</strong> M est <strong>de</strong> ban<strong>de</strong> M. Dans le cas général et pourun ren<strong>de</strong>ment R, la matrice à inverser est <strong>pro</strong>che <strong>de</strong> la taille kR ¢ k(1=R 1)(1 R)soit (k(1 R)) 2 . En utilisant un codage adapté, tel que déni dans [69], le décodageGaussien tombe donc a une complexité équivalente à O(kB 2 ).A titre d'exemple, pour k = 2000 et une ban<strong>de</strong> <strong>de</strong> largeur B = 200, le gainthéorique est <strong>de</strong> l'ordre <strong>de</strong> 100 en comparaison d'un décodage Gaussien classique.4.4 Résultats obtenus4.4.1 Méthodologie <strong>de</strong> testDes simulations ont été eectuées an d'étudier le bénéce pratique <strong>de</strong> ces co<strong>de</strong>sen termes <strong>de</strong> vitesse <strong>de</strong> décodage et l'impact sur la capacité <strong>de</strong> correction du décodageitératif <strong>de</strong> cette structure ban<strong>de</strong>. L'architecture <strong>de</strong> test est un Quad-Core Intel Xeon5120 @ 1.86Ghz / 4GB RAM sous Linux. Un déco<strong>de</strong>ur hybri<strong>de</strong> ML/itératif a étéutilisé. Les co<strong>de</strong>s à matrice ban<strong>de</strong> ont été comparés à <strong>de</strong>ux autres types <strong>de</strong> co<strong>de</strong>s :


4.4. Résultats obtenus 81 Les co<strong>de</strong>s LDPC-Staircase, tels que déni dans le standard. Ce type <strong>de</strong> co<strong>de</strong>a été choisi car il est <strong>de</strong> la même famille que les co<strong>de</strong>s à matrice ban<strong>de</strong> etsupporte aussi un décodage <strong>de</strong> type hybri<strong>de</strong>. L'intérêt est <strong>de</strong> comparer l'impact<strong>de</strong> la ban<strong>de</strong> sur le décodage itératif par rapport à un co<strong>de</strong> standard possédantune très bonne capacité <strong>de</strong> correction itérative. Il s'agit aussi d'étudier le gain<strong>de</strong> vitesse pratique obtenu par rapport à un décodage Gaussien classique. Pource co<strong>de</strong>, le nombre d'éléments par colonne <strong>de</strong> la matrice <strong>de</strong> parité a été xé à5. Les co<strong>de</strong>s "Windowed Erasure" <strong>de</strong> Studholme et Blake, en utilisant les paramètresrecommandés par les auteurs. Ces co<strong>de</strong>s ne supportent pas <strong>de</strong> décodageitératif et ont été adaptés car il ne sont pas systématiques par défaut. Ces co<strong>de</strong>spermettront d'évaluer l'impact <strong>de</strong>s contraintes <strong>de</strong> la prise en charge d'un décodagehybri<strong>de</strong> sur la capacité <strong>de</strong> correction par rapport à un co<strong>de</strong> totalementaléatoire.La méthodologie d'obtention <strong>de</strong>s matrices ban<strong>de</strong>s est celle <strong>de</strong> la section 4.2.4.4.2 Capacités <strong>de</strong> correctionLes tables 4.1 et 4.2 présentent l'inecacité moyenne <strong>de</strong>s co<strong>de</strong>s à ratio 1 2 pourles décodages itératif et à maximum <strong>de</strong> vraisemblance pour k = 1000 et k = 2000symboles.Type <strong>de</strong> décodage IT MLLDPC-Staircase N 1 = 5 14.24% 1.21%LDPC-Band - B = 100 18.39% 2.97%LDPC-Band - B = 200 14.75% 1.24%Windowed Erasure - b = 63 - 0.17%Table 4.1 Inecacité moyenne en fonction du déco<strong>de</strong>ur utilisé, k=1000, R= 1 2Type <strong>de</strong> décodage IT MLLDPC-Staircase N 1 = 5 13.95% 1.15%LDPC-Band - B = 200 16.23% 1.19%Windowed Erasure - b = 89 - 0.79%Table 4.2 Inecacité moyenne en fonction du déco<strong>de</strong>ur utilisé, k=2000, R= 1 2Comme évoqué lors <strong>de</strong> l'analyse théorique, la largeur <strong>de</strong> la ban<strong>de</strong> a une inuence surla capacité <strong>de</strong> correction <strong>de</strong>s <strong>de</strong>ux décodages. Pour ces dimensions, et avec une largeur<strong>de</strong> ban<strong>de</strong> B = 200, les co<strong>de</strong>s à matrice ban<strong>de</strong> permettent d'obtenir un décodage<strong>pro</strong>che <strong>de</strong> celui <strong>de</strong>s co<strong>de</strong>s LDPC-Staircase en itératif, tout en ayant une capacité <strong>de</strong>correction quasi-équivalente.L'écart avec les co<strong>de</strong>s Windowed Erasure montre bien que les contraintes sur les


Chapitre 4. Co<strong>de</strong>s à eacements à décodage hybri<strong>de</strong> avec matrice génératrice82ban<strong>de</strong>average/min/max Bitrate (Mbps)100001000100LDPC-Band, band width=200LDPC-StaircaseWindowed Erasure, window size=891030 35 40 45 50Loss <strong>pro</strong>bability (%)Figure 4.4 Vitesse <strong>de</strong> décodage moyenne, k=2000 symboles, symboles <strong>de</strong> 1024octets, ren<strong>de</strong>ment 1 2matrices ban<strong>de</strong>s ont un impact non-négligeable sur la capacité <strong>de</strong> correction intrinsèquedu co<strong>de</strong>.4.4.3 Vitesses <strong>de</strong> décodageSur la Figure 4.4, nous avons représenté la vitesse <strong>de</strong> décodage en fonction dutaux <strong>de</strong> perte introduit dans le canal, pour un co<strong>de</strong> <strong>de</strong> dimension k = 2000 et unren<strong>de</strong>ment <strong>de</strong> 1 . Un co<strong>de</strong> optimal pourra donc supporter jusqu'à 50% <strong>de</strong> pertes. Ici2un décodage hybri<strong>de</strong> est utilisé : lorsque le décodage itératif échoue, le décodage MLprend le relais et impacte donc la vitesse moyenne <strong>de</strong> décodage.Nous pouvons eectivement remarquer <strong>de</strong>ux zones <strong>de</strong> vitesse bien diérentes pourles co<strong>de</strong>s hybri<strong>de</strong>s. Dans la zone autour <strong>de</strong> 1Gbps, le décodage itératif fonctionne.Dès lors que le taux <strong>de</strong> perte augmente, le décodage itératif ne sut plus, et nouspouvons observer un second palier <strong>de</strong> vitesse correspondant au décodage ML, quiest plus élevé pour les matrices ban<strong>de</strong>s que pour les LDPC-Staircase. Ceci permet<strong>de</strong> mettre en lumière l'intérêt <strong>de</strong> ce décodage adapté. Le fait que le décodage <strong>de</strong>la matrice ban<strong>de</strong> "chute" avant celui du LDPC-Staircase s'explique par la capacitémoindre du décodage itératif comme mis en évi<strong>de</strong>nce dans le paragraphe précé<strong>de</strong>nt.Il convient donc <strong>de</strong> relativiser les résultats du paragraphe précé<strong>de</strong>nt au vu <strong>de</strong> cesrésultats.Dans tous les cas, le décodage <strong>de</strong>s Windowed Erasure est plus lent que celui <strong>de</strong>smatrices ban<strong>de</strong>s.Le tableau 4.3 détaille les vitesses <strong>de</strong> décodage à maximum <strong>de</strong> vraisemblance pourplusieurs tailles <strong>de</strong> co<strong>de</strong>. Ceci permet <strong>de</strong> mettre en évi<strong>de</strong>nce la vitesse sous-cubiquedu décodage sur la matrice ban<strong>de</strong>, alors que les <strong>de</strong>ux autres décodages suivent une


4.5. Conclusion 83véritable complexité cubique. Ceci permet d'obtenir un gain <strong>de</strong> vitesse d'un facteur 2par rapport aux co<strong>de</strong>s ban<strong>de</strong>s aléatoires et jusqu'à 4 par rapport aux LDPC-Staircase.k 1000 2000 4000LDPC-Band 326 Mbps 235 Mbps 150 MbpsLDPC-Staircase 125 Mbps 60 Mbps 30 MbpsWindowed Erasure 220 Mbps 120 Mbps 68 MbpsTable 4.3 Vitesse <strong>de</strong> décodage ML moyenne en fonction <strong>de</strong> la dimension du co<strong>de</strong>,symboles <strong>de</strong> 1024 octets, ren<strong>de</strong>ment 1 2Les résultats équivalents pour le décodage itératif sont fournis sur la Table 4.4.On remarque ainsi que l'impact <strong>de</strong> la restriction à une ban<strong>de</strong> n'a qu'un impact limitésur la vitesse <strong>de</strong> décodage itérative.k 1000 2000 4000LDPC-Band 1100 Mbps 1050 Mbps 900 MbpsLDPC-Staircase 1300 Mbps 1200 Mbps 1000 MbpsTable 4.4 Vitesse <strong>de</strong> décodage itérative moyenne en fonction <strong>de</strong> la dimension duco<strong>de</strong>, symboles <strong>de</strong> 1024 octets, ren<strong>de</strong>ment 1 24.5 ConclusionDans ce chapitre, nous avons présenté une construction <strong>de</strong> co<strong>de</strong>s permettant undécodage itératif adapté sur la matrice <strong>de</strong> parité, tout en permettant un décodage aumaximum <strong>de</strong> vraisemblance adapté sur la matrice génératrice grâce à une structureban<strong>de</strong>. Ceci permet <strong>de</strong> réduire la complexité théorique du décodage ML à O(kB 2 ),où B représente la largeur <strong>de</strong> la ban<strong>de</strong>.Les résultats <strong>de</strong> simulation obtenus ont permis <strong>de</strong> conrmer le gain théorique <strong>de</strong>ce type <strong>de</strong> co<strong>de</strong>. Ces co<strong>de</strong>s ban<strong>de</strong>s permettent d'obtenir un décodage itératif sensiblementéquivalent à celui <strong>de</strong> co<strong>de</strong>s LDPC classiques tout en obtenant un gain pratique<strong>de</strong> vitesse jusqu'à 4x dans le cadre <strong>de</strong> canaux fortement perturbés.Cependant, la nature intrinsèque <strong>de</strong> ces co<strong>de</strong>s rend leur adaptabilité faible, commenous avons pu le voir lors <strong>de</strong> l'analyse <strong>de</strong> l'évolution <strong>de</strong> <strong>de</strong>nsité. Les travaux futursconcernant ces co<strong>de</strong>s <strong>de</strong>vront <strong>pro</strong>bablement se concentrer sur un autre aspect <strong>de</strong> cesco<strong>de</strong>s, leur potentiel semblant limité par leur rigidité d'un point <strong>de</strong> vue classique.Dans ce contexte, le fait que la partie gauche <strong>de</strong> la matrice <strong>de</strong> parité soit aussiune matrice ban<strong>de</strong> n'a pas été exploité en l'état. A l'ai<strong>de</strong> <strong>de</strong> quelques modications,il semble possible d'adapter un décodage gaussien optimisé ban<strong>de</strong>, directement sur lamatrice <strong>de</strong> parité, ce qui aurait pour conséquence <strong>de</strong> libérer une contrainte sur ces


Chapitre 4. Co<strong>de</strong>s à eacements à décodage hybri<strong>de</strong> avec matrice génératrice84ban<strong>de</strong>co<strong>de</strong>s, et donc <strong>de</strong> permettre une amélioration <strong>de</strong>s performances encore plus signicative.


Chapitre 5Co<strong>de</strong>s <strong>de</strong> Reed-Muller pour lecanal à eacements <strong>de</strong> paquetsThere's a dierence between knowing the path and walking the path.Morpheus.Sommaire5.1 Introduction . . . . . . . . . . . . . . . . . . . . . . . . . . . . 855.2 Présentation du co<strong>de</strong> . . . . . . . . . . . . . . . . . . . . . . . 865.2.1 Présentation <strong>de</strong>s co<strong>de</strong>s <strong>de</strong> Reed-Muller . . . . . . . . . . . . . 865.2.2 Utilisation du décodage par permutations . . . . . . . . . . . 895.2.3 Remontée partielle <strong>de</strong> l'information . . . . . . . . . . . . . . . 915.2.4 Décodage à blanc du co<strong>de</strong> . . . . . . . . . . . . . . . . . . . . 925.3 Résultats <strong>de</strong> simulation . . . . . . . . . . . . . . . . . . . . . . 925.4 Conclusion . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 955.1 IntroductionDans le cadre <strong>de</strong>s co<strong>de</strong>s à eacements, lorsque les tailles <strong>de</strong> bloc sont inférieures àquelques centaines d'éléments, <strong>de</strong>ux types <strong>de</strong> co<strong>de</strong>s peuvent être utilisés. Tout d'abord,les co<strong>de</strong>s <strong>de</strong> Reed-Solomon, les plus couramment utilisés dans ce cas, permettent uncodage optimal. Malheureusement ceux-ci peuvent être pénalisés par une complexitéd'encodage/décodage relativement importante, par rapport à la taille <strong>de</strong>s co<strong>de</strong>s utilisés,lorsque les contraintes matérielles ou temporelles sont importantes. Des co<strong>de</strong>s<strong>de</strong> type LDPC <strong>de</strong> complexité linéaire peuvent aussi être déployés. Cependant, si leurcomplexité est faible, ces co<strong>de</strong>s ne sont pas adaptés pour <strong>de</strong>s tailles <strong>de</strong> co<strong>de</strong>s faibleset sourent d'une inecacité importante.Dans ce chapitre, nous présentons un enco<strong>de</strong>ur/déco<strong>de</strong>ur basé sur les co<strong>de</strong>s <strong>de</strong>Reed-Muller [70] [71]. Ceux-ci ont le double avantage d'être <strong>de</strong> faible complexité etd'avoir une capacité théorique <strong>pro</strong>che <strong>de</strong> celle <strong>de</strong>s co<strong>de</strong>s MDS. La plupart <strong>de</strong>s travauxconcernant ces co<strong>de</strong>s concernent le canal à erreur [72], mais leur complexité relativementfaible les place également comme <strong>de</strong>s candidats intéressants pour le canal àeacements [73]. Pour ces co<strong>de</strong>s, il existe un décodage <strong>de</strong> complexité mathématiquelogarithmique basé sur une décomposition récursive du co<strong>de</strong>, appelée décomposition


86 Chapitre 5. Co<strong>de</strong>s <strong>de</strong> Reed-Muller pour le canal à eacements <strong>de</strong> paquets<strong>de</strong> Plotkin [74], cependant dans sa version classique, celle-ci soure d'une capacité <strong>de</strong>correction médiocre rendant son application pratique caduque. Une technique largementétudiée pour le canal à erreur consiste à eectuer un décodage par permutations,qui permet d'améliorer <strong>de</strong> manière substantielle la capacité du co<strong>de</strong>, tout en permettant<strong>de</strong> conserver la structure récursive du décodage.Nous <strong>pro</strong>posons donc d'adapter ce décodage récursif par permutations au canal àeacements, auquel nous ajoutons <strong>de</strong>s mécanismes supplémentaires, respectivementun mécanisme <strong>de</strong> remontée partielle et un décodage à blanc. Nous étudierons l'impact<strong>de</strong> l'ensemble <strong>de</strong> ces mécanismes sur la capacité et la complexité du co<strong>de</strong>, que nouscomparerons à un décodage par maximum <strong>de</strong> vraisemblance (ML).5.2 Présentation du co<strong>de</strong>Dans cette partie, nous présentons le principe <strong>de</strong>s co<strong>de</strong>s <strong>de</strong> Reed-Muller et lesaméliorations <strong>pro</strong>posées pour l'adaptation au codage à eacements.5.2.1 Présentation <strong>de</strong>s co<strong>de</strong>s <strong>de</strong> Reed-MullerLes co<strong>de</strong>s <strong>de</strong> Reed-Muller peuvent être dénis <strong>de</strong> plusieurs manières, la métho<strong>de</strong>la plus directe étant la suivante :Dénition 5.1. (Co<strong>de</strong>s <strong>de</strong> Reed-Muller) Le co<strong>de</strong> <strong>de</strong> Reed-Muller binaire <strong>de</strong> paramètresr et m où 0 r m, correspond à l'espace vectoriel formé par les vecteurs <strong>de</strong>s valeurs<strong>de</strong>s fonction binaires à m variables et <strong>de</strong> <strong>de</strong>gré strictement inférieur à r. Ce co<strong>de</strong> seranoté RM(r; m).Proposition 5.2. La dimension d'un co<strong>de</strong> <strong>de</strong> Reed-Muller RM(r; m) est k ∑ r( m)=i=0 iet sa longueur est n = 2 m .Démonstration. La dimension k d'un co<strong>de</strong> <strong>de</strong> Reed-Muller, par dénition, correspondau cardinal <strong>de</strong> toute base génératrice <strong>de</strong> fonction binaire à m variables et <strong>de</strong> <strong>de</strong>gréstrictement inférieur à r. Soit (x 0 ; x 1 ; :::x m 1 ) l'ensemble <strong>de</strong>s m variables. Il est possible<strong>de</strong> choisir la base formée <strong>de</strong>s monômes <strong>de</strong> toutes les combinaisons <strong>de</strong> x i comportantmoins <strong>de</strong> r variables.Soit 0 i m, l'ensemble <strong>de</strong>s monômes distincts comprenant i variables parmim. Par analogie combinatoire, ceci revient à dénombrer l'ensemble <strong>de</strong>s choix <strong>de</strong> iéléments possibles parmi m. Cette valeur est donc égale à ( )mi .La base <strong>de</strong>s fonctions à m variables <strong>de</strong> <strong>de</strong>gré inférieur à r étant formée <strong>de</strong> l'ensemble<strong>de</strong>s monômes à i variables parmi m et ceci pour 0 i m, la dimension duco<strong>de</strong> est donc k ∑ r( m)=i=0 i .La longueur du co<strong>de</strong> étant dénie par la longueur <strong>de</strong> chaque élément <strong>de</strong> la base,elle correspond à l'ensemble <strong>de</strong>s valeurs binaires prises par les x i et est donc <strong>de</strong> taille2 m .


5.2. Présentation du co<strong>de</strong> 87Une métho<strong>de</strong> sensiblement i<strong>de</strong>ntique permet <strong>de</strong> construire <strong>de</strong> manière plus simplela matrice génératrice d'un co<strong>de</strong> <strong>de</strong> Reed-Muller :Dénition 5.3. (Version alternative) Un co<strong>de</strong> <strong>de</strong> Reed-Muller binaire RM(r; m) correspondà l'espace vectoriel <strong>de</strong>s combinaisons linéaires <strong>de</strong>s monômes 1; x 0 ; x 1 ; :::x m 1 ; x 0 x 1 ; x 0 x 2 ; :::<strong>de</strong> <strong>de</strong>gré inférieur à r où les x j sont tels que, disposés en ligne d'une matrice, la colonnei contienne l'écriture binaire <strong>de</strong> l'entier i.La dénition ci-<strong>de</strong>ssus est strictement i<strong>de</strong>ntique, mais permet une vision plus simple<strong>de</strong> la matrice génératrice du co<strong>de</strong>. Par exemple, pour m = 3 les x j dénis ci-<strong>de</strong>ssusnous donnent les vecteurs suivants :⎛ ⎞ ⎛⎞1 1 1 1 1 1 1 1 1⎜x 0⎟⎝x 1⎠ : ⎜0 1 0 1 0 1 0 1⎟⎝0 0 1 1 0 0 1 1⎠x 2 0 0 0 0 1 1 1 1Ce qui donne par exemple pour le co<strong>de</strong> RM(2; 3) la matrice génératrice suivante :⎛ ⎞ ⎛⎞1 1 1 1 1 1 1 1 1x 00 1 0 1 0 1 0 1x 10 0 1 1 0 0 1 1RM(2; 3) =x 2:0 0 0 0 1 1 1 1x⎜ 0 x 10 0 0 1 0 0 0 1⎟ ⎜⎟⎝x 0 x 2⎠ ⎝0 0 0 0 0 1 0 1⎠x 1 x 2 0 0 0 0 0 0 1 1Proposition 5.4. (Plotkin) Soit 0 < r < m, tout mot d'un co<strong>de</strong> <strong>de</strong> Reed-MullerRM(r; m) peut-être décomposé <strong>de</strong> manière unique par un mot <strong>de</strong> RM(r; m 1) etun mot <strong>de</strong> RM(r 1; m 1) suivant la construction suivante :RM(r; m) = f(uju ¨ v ); u 2 RM(r; m 1); v 2 RM(r 1; m 1)gCette construction du co<strong>de</strong> s'appelle construction <strong>de</strong> Plotkin.Démonstration. Par dénition, un mot du co<strong>de</strong> RM(r; m) correspond à l'évaluationd'un polynôme binaire à m variables <strong>de</strong> <strong>de</strong>gré inférieur à r. Soit (x 0 ; x 1 ; :::x m 1 ) cesm variables et f (x 0 ; x 1 ; :::x m 1 ) le polynôme évalué.Il est possible <strong>de</strong> factoriser le polynôme f <strong>de</strong> la manière suivante :f (x 0 ; x 1 ; :::x m 1 ) = u(x 0 ; x 1 ; :::x m 2 ) + x m 1 ¢ v (x 0 ; x 1 ; :::x m 2 )Ceci peut être fait tout simplement en séparant les monômes contenant x m 1 etceux ne le contenant pas. Il est aussi clair que cette décomposition est unique. Le polynômeu est donc un polynôme binaire à m 1 variables <strong>de</strong> <strong>de</strong>gré strictement inférieur àr et le polynôme v est polynôme binaire à m 1 variables <strong>de</strong> <strong>de</strong>gré strictement inférieur


88 Chapitre 5. Co<strong>de</strong>s <strong>de</strong> Reed-Muller pour le canal à eacements <strong>de</strong> paquetsà r 1. D'après la dénition d'un co<strong>de</strong> <strong>de</strong> Reed-Muller, en évaluant le polynôme f surf(0; 0; :::; 0; 0); (1; 0; :::; 0; 0); :::; (1; 1; :::; 1; 0)g, ceci est équivalent à l'évaluation <strong>de</strong>u car x m 1 = 0, puis en évaluant sur f(0; 0; :::; 0; 1); (1; 0; :::; 0; 1); :::; (1; 1; :::; 1; 1)g,nous avons bien ici l'évaluation <strong>de</strong> u + v. En concaténant l'évaluation totale, nousobtenons bien le résultat souhaité.Il est alors important <strong>de</strong> noter que le co<strong>de</strong> RM(0; m) correspond au co<strong>de</strong> à répétitioncar k = 1 et que le co<strong>de</strong> RM(m; m) peut être ramené au co<strong>de</strong> à i<strong>de</strong>ntité,c'est-à-dire au co<strong>de</strong> dont la matrice génératrice est la matrice i<strong>de</strong>ntité. Cela revientdans ce cas à évaluer le polynôme source sur sa base <strong>pro</strong>pre et non plus sur la baseclassique telle que celle <strong>de</strong> la dénition 5.3, ce qui ne modie en rien les <strong>pro</strong>priétésdu co<strong>de</strong>. A partir <strong>de</strong> ce point, pour <strong>de</strong>s raisons <strong>de</strong> commodité, nous utiliserons laconstruction <strong>de</strong> Plotkin pour les co<strong>de</strong>s <strong>de</strong> Reed-Muller, en gardant à l'esprit que lesrésultats sur la base classique sont équivalents.Théorème 5.5. Soit un co<strong>de</strong> <strong>de</strong> Reed-Muller RM(r; m), 0 r m, et n = 2 m lataille du co<strong>de</strong> associé. Chaque élément <strong>de</strong> ce co<strong>de</strong> peut être construit et décomposé enéléments <strong>de</strong> co<strong>de</strong> à répétition et <strong>de</strong> co<strong>de</strong> i<strong>de</strong>ntité. La complexité d'une telle opérationest O(n log n).Démonstration. La première partie s'obtient directement en appliquant la <strong>pro</strong>position5.4 <strong>de</strong> manière récursive.Soit T (n) le coût <strong>de</strong> la construction/décomposition d'un élément <strong>de</strong> RM(r; m).Grâce à la construction <strong>de</strong> Plotkin, ce coût peut être ramené au coût <strong>de</strong> la construction/décomposition<strong>de</strong> taille n 2 et un coût linéaire an, où a 2 R+ .De manière récursive nous avons donc :T (n) = an + 2T ( n 2 ) = an + an + 4T (n ) = ::: = an + an + ::: + an =4 } {{ }an log 2 nlog 2 n itérationsD'où la complexité annoncée.= O(n log 2 n):La décomposition récursive est illustrée sur la Figure 5.1.A ce sta<strong>de</strong>, nous venons donc <strong>de</strong> <strong>pro</strong>uver qu'il est possible d'utiliser les co<strong>de</strong>s <strong>de</strong>Reed-Muller en tant que co<strong>de</strong> à eacements, avec un encodage et un décodage <strong>de</strong>complexité logarithmique.Cependant, en pratique, les résultats <strong>de</strong> simulation ont montré que la capacité <strong>de</strong>correction <strong>de</strong> ce co<strong>de</strong> en utilisant ce simple décodage est mauvaise. La construction <strong>de</strong>Plotkin permet donc <strong>de</strong> poser les bases d'un codage ecace mais nécessite quelquesadaptations an <strong>de</strong> <strong>pro</strong>poser un décodage pertinent.


5.2. Présentation du co<strong>de</strong> 89Figure 5.1 Représentation <strong>de</strong> la décomposition récursive du co<strong>de</strong> RM(2; 4)5.2.2 Utilisation du décodage par permutationsLes co<strong>de</strong>s <strong>de</strong> Reed-Muller ont vu une gran<strong>de</strong> partie <strong>de</strong> leurs applications concernerle canal à erreur. Sur ce type <strong>de</strong> canaux, la <strong>pro</strong>blématique du décodage ne concernepas tant la mise en place du décodage récursif, que le type <strong>de</strong> décision pris lorsque<strong>de</strong>s erreurs sont détectées. Sur le canal à eacements, la <strong>pro</strong>blématique est inverse.Ici nous sommes assurés que les symboles reçus sont corrects, cependant les autressymboles sont totalement inconnus. Ce qui signie que le <strong>pro</strong>blème majeur du décodagerécursif sur le canal à eacements est <strong>de</strong> pouvoir transmettre le maximumd'information possible aux vecteurs <strong>de</strong> récursions inférieurs.Illustrons cette <strong>pro</strong>blématique par un exemple. Soit un co<strong>de</strong> RM(1; 3) qui a doncpour dimension k = 4 et pour longueur n = 8. Soit le vecteur a = (a 0 ; a 1 ; :::; a 7 ) <strong>de</strong> ceco<strong>de</strong>. Prenons l'hypothèse que le récepteur n'a reçu que les positions suivantes a r =(uju ¨ v ) = (a 0 ; ¢; ¢; ¢; ¢; a 5 ; a 6 ; a 7 ). En eectuant une première décompositionrécursive, le vecteur v 2 RM(0; 2) est totalement inconnu, ce qui rend le décodageimpossible. Comme nous le voyons sur cet exemple, le point bloquant du décodagerécursif est l'impossibilité <strong>de</strong> déco<strong>de</strong>r <strong>de</strong>s éléments récursifs <strong>de</strong> bas niveau, qui sontassimilables à <strong>de</strong>s "stopping sets". Par ailleurs, nous voyons que la réussite du décodagen'est pas uniquement dépendante du nombre <strong>de</strong> symboles reçus, mais également <strong>de</strong>leurs positions.Il est important <strong>de</strong> rappeler à ce moment que tout co<strong>de</strong> <strong>de</strong> Reed-Muller peutêtredécomposé récursivement en co<strong>de</strong>s à répétitions, décodables si au moins une <strong>de</strong>spositions est connue, et en co<strong>de</strong>s i<strong>de</strong>ntités, nécessitant la connaissance entière duvecteur.Les co<strong>de</strong>s <strong>de</strong> Reed-Muller possè<strong>de</strong>nt néanmoins une <strong>pro</strong>priété intéressante :Propriété 5.6. Le co<strong>de</strong> <strong>de</strong> Reed-Muller binaire RM(r; m) avec n = 2 m admet commegroupe <strong>de</strong> permutations le groupe ane GA(m) [17]. Ceci revient à dire que si a =(a 0 ; a 1 ; :::; a n 1 ) 2 RM(r; m) alors a 0 = (a ¥(0) ; a ¥(1) ; :::; a ¥(n 1) ) 2 RM(r; m) où¥(x) est une permutation <strong>de</strong> GA(m).


90 Chapitre 5. Co<strong>de</strong>s <strong>de</strong> Reed-Muller pour le canal à eacements <strong>de</strong> paquetsNous rappelons que le groupe ane GA(m) est l'ensemble <strong>de</strong>s applications linéaires<strong>de</strong> (F 2 ) m sur lui-même <strong>de</strong> la forme x ! Ax + b, où A est une matrice carrée binaire<strong>de</strong> taille m inversible, et b un vecteur binaire <strong>de</strong> (F 2 ) m .Cette <strong>pro</strong>priété <strong>de</strong>s co<strong>de</strong>s <strong>de</strong> Reed-Muller est importante dans la mesure où ellepermet <strong>de</strong> casser les stopping sets du décodage récursif sur le canal à eacements. Eneet, lorsque un vecteur n'est pas décodable récursivement, une permutation <strong>de</strong> cevecteur modie les positions reçues et permet éventuellement <strong>de</strong> casser ces stoppingsets.Reprenons l'exemple du vecteur a r reçu précé<strong>de</strong>mment. Nous avons vu qu'en l'étatactuel, le décodage récursif échouait. Nous eectuons alors la permutation <strong>de</strong>s positions¥(x) = Ax + b avec A =( 1 0 01 1 00 0 1)et b =( 000), nous obtenons le nouveau motdu co<strong>de</strong> suivant (a 0 ; ¢; ¢; ¢; a 6 ; a 7 ; ¢; a 5 ). Le nouveau vecteur v a donc une positionconnue et est donc désormais décodable car le RM(0; 2) est le co<strong>de</strong> à répétition <strong>de</strong>longueur 4. Ce décodage entraine par la suite celui <strong>de</strong> u et donc du vecteur reçu.Le point crucial qui va déterminer la capacité <strong>de</strong> correction du co<strong>de</strong> est alors lacapacité à trouver pour chaque niveau <strong>de</strong> récursion, une permutation permettant àchaque vecteur d'être décodé.Les eets <strong>de</strong> telles permutations sur le décodage récursif sur le canal à eacementsont été étudiés dans [75] pour les co<strong>de</strong>s cycliques et les co<strong>de</strong>s cycliques étendus, maispas dans le cas général <strong>de</strong>s co<strong>de</strong>s <strong>de</strong> Reed-Muller.Lorsque la décomposition récursive est eectuée, il est possible <strong>de</strong> démarrer ledécodage indiéremment à partir <strong>de</strong> u ou <strong>de</strong> v. Les simulations que nous avons menéont cependant montré que le décodage était plus ecace dès lors qu'à chaque niveau<strong>de</strong> récursion, celui-ci débutait par le décodage <strong>de</strong> v. Nous n'avons pas réussi à démontrer<strong>de</strong> manière claire ce résultat, mais une explication possible est que, même siv reçoit en moyenne, à chaque étape, <strong>de</strong>ux fois moins d'information que u, v évoluedans un co<strong>de</strong> <strong>de</strong> Reed-Muller d'ordre r inférieur à u et qui permet <strong>de</strong> contre-balancerce manque d'information.A partir <strong>de</strong> ce point, nous prenons ainsi l'hypothèse qu'à chaque étape <strong>de</strong> récursion,le décodage débute toujours par v. L'idée consiste donc à eectuer une permutationdu mot reçu qui maximise le nombre <strong>de</strong> positions connues <strong>de</strong> v an <strong>de</strong> favoriser sondécodage <strong>de</strong> manière récursive. Tout d'abord il est judicieux <strong>de</strong> remarquer que dans cecas, le vecteur b <strong>de</strong>s permutations est inutile. En eet, pour le vecteur a = (uju ¨ v )<strong>de</strong> taille n, les positions connues <strong>de</strong> v sont les positions où les a i et a i¨ n sont connues :28i 2 (0; 1; :::; n 1); v 2 i = a i ¨ a i¨ n . Le vecteur b permet seulement d'eecteur un2décalage i<strong>de</strong>ntique pour les positions <strong>de</strong> gauche ou <strong>de</strong> droite, ou <strong>de</strong> les inverser lorsqueson premier bit est à un, ce qui ne modie pas le nombre <strong>de</strong> positions <strong>de</strong> v connues.Sans perte <strong>de</strong> généralités, nous pouvons donc nous restreindre aux permutations <strong>de</strong>la forme ¥(x) = Ax qui correspond communément au groupe linéaire GL(m; 2).Nous avons donc déni l'ensemble <strong>de</strong>s permutations admissibles et utiles pour unvecteur <strong>de</strong> taille n donné. D'après [17], qui donne le nombre <strong>de</strong> matrices binaires


5.2. Présentation du co<strong>de</strong> 91inversibles <strong>de</strong> taille m, la complexité associée au test <strong>de</strong> toutes les permutations possiblespour un vecteur <strong>de</strong> taille n est O(0:29 ¢ n log(n)+1 ). En n'oubliant pas que pourun décodage entier, ce test <strong>de</strong> permutations doit être eectué à chaque étape <strong>de</strong> larécursion, nous obtenons une complexité <strong>pro</strong>hibitive.Nous avons donc choisi <strong>de</strong> restreindre l'ensemble <strong>de</strong>s permutations testées. Pourcela, pour chaque vecteur <strong>de</strong> taille n, nous avons sélectionné uniquement les permutationsconservant les n positions <strong>de</strong> gauche (le vecteur u) invariantes. De manière2matricielle, cela se traduit par le fait que les m 1 premières (ou <strong>de</strong>rnières selon lareprésentation) colonnes <strong>de</strong> la matrice A sont les colonnes <strong>de</strong> la matrice i<strong>de</strong>ntité. Leseul <strong>de</strong>gré <strong>de</strong> liberté concernant cette matrice correspond aux m 1 positions <strong>de</strong> la<strong>de</strong>rnière colonne. Nous avons donc réduit le nombre <strong>de</strong> matrices candidates diérentesà 2 m 1 = n . Pour chacune <strong>de</strong> ces matrices <strong>de</strong> permutation, l'image <strong>de</strong>s n positions2 2<strong>de</strong> droite du vecteur doivent être calculées, celles <strong>de</strong> gauche étant invariantes. Aveccette restriction, la complexité associée au test <strong>de</strong> toutes les permutations candidatespour un vecteur <strong>de</strong> taille n est donc <strong>de</strong> O( n2), à comparer avec la complexité du cas4général.La complexité du mécanisme <strong>de</strong> test pour le co<strong>de</strong> RM(r; m), n = 2 m , décodérécursivement est donc O( n2 log n) avec nos hypothèses.45.2.3 Remontée partielle <strong>de</strong> l'informationIndépendamment du décodage par permutations, nous <strong>pro</strong>posons un second mécanismevisant à améliorer la capacité <strong>de</strong> correction du co<strong>de</strong>. Une <strong>de</strong>s faiblesses constatéesavec l'algorithme récursif est que, lorsque le décodage à un niveau <strong>de</strong> récursionéchoue, et ce même avec le décodage par permutations, l'ensemble du décodageéchoue. Cependant lorsque un niveau <strong>de</strong> récursion échoue, celui-ci peut quand mêmeavoir reçu <strong>de</strong> nouveaux symboles <strong>pro</strong>venant <strong>de</strong> récursions <strong>de</strong> niveaux inférieurs parmicelles qui ont réussi. Nous <strong>pro</strong>posons alors un mécanisme tel que, même si la récursionéchoue à un niveau, si celle-ci contient <strong>de</strong> nouveaux symboles, ceux-ci sont transmisà la récursion <strong>de</strong> niveau supérieur.Nous pouvons traduire l'intérêt <strong>de</strong> ce mécanisme sur l'exemple suivant. Soit aun vecteur d'un co<strong>de</strong> RM décomposable en u et v, qui est lui même décomposé env 1 et v 2 . Supposons que le décodage <strong>de</strong> v 2 testé en premier réussisse et apporte <strong>de</strong>nouveaux symboles à v, mais que le décodage <strong>de</strong> v 1 échoue malgré cette informationcomplémentaire. Sans remontée partielle, ce mécanisme échoue. Supposons alors queces nouveaux symboles <strong>de</strong> v permettent <strong>de</strong> déco<strong>de</strong>r <strong>de</strong> nouveaux symboles <strong>de</strong> a etdonc <strong>de</strong> u. Le décodage <strong>de</strong> u tenté par la suite <strong>pro</strong>te donc <strong>de</strong> ces nouveaux symboleset voit ses chances <strong>de</strong> réussite augmenter. En retour, si celui-ci réussit, il pourraapporter <strong>de</strong> nouveaux symboles à a et donc en conséquence potentiellement à v etmême v 1 qui aura alors plus <strong>de</strong> chances d'être décodé, permettant alors un décodagetotal <strong>de</strong> a, et ainsi <strong>de</strong> suite. Nous utilisons donc un mécanisme <strong>de</strong> "ping-pong" quibrise malheureusement la complexité logarithmique théorique du décodage récursif.Les résultats <strong>de</strong> simulation ont cependant montré que dans plus <strong>de</strong> 90% <strong>de</strong>s cas,


92 Chapitre 5. Co<strong>de</strong>s <strong>de</strong> Reed-Muller pour le canal à eacements <strong>de</strong> paquetset notamment sur les hauts niveaux, le nombre d'appels récursifs par vecteur était<strong>de</strong> <strong>de</strong>ux, signiant que l'utilisation <strong>de</strong> ce mécanisme est relativement limité, commenous le verrons sur les résultats <strong>de</strong> simulation. Bien évi<strong>de</strong>mment, d'un autre côté celasignie que la complexité pratique du co<strong>de</strong> reste <strong>pro</strong>che <strong>de</strong> la complexité logarithmiquethéorique.5.2.4 Décodage à blanc du co<strong>de</strong>Contrairement aux précé<strong>de</strong>nts mécanismes qui visent à améliorer la capacité <strong>de</strong>correction du co<strong>de</strong>, le mécanisme <strong>de</strong> décodage à blanc permet d'augmenter drastiquementla vitesse <strong>de</strong> décodage du co<strong>de</strong> lors <strong>de</strong> l'utilisation <strong>de</strong> symboles.Pour cela, nous rappelons que lorsque un co<strong>de</strong> à eacements génère <strong>de</strong>s symbolesencodés, ce mécanisme peut-être vu comme l'encodage parallèle <strong>de</strong> z mots <strong>de</strong> co<strong>de</strong>s.ceci a pour conséquence que lorsque ces symboles sont transmis, les pertes <strong>de</strong> symbolesse traduisent par <strong>de</strong>s positions <strong>de</strong> pertes i<strong>de</strong>ntiques pour les z vecteurs <strong>de</strong> mots <strong>de</strong>co<strong>de</strong>. L'intérêt est alors <strong>de</strong> mutualiser toutes les opérations i<strong>de</strong>ntiques pour l'ensemble<strong>de</strong>s mots d'un même symbole dans une phase antérieure au décodage réel <strong>de</strong>s mots,ce qui est fait pour la plupart <strong>de</strong>s co<strong>de</strong>s à eacements actuels.Nous pouvons dès lors remarquer que la phase <strong>de</strong> recherche <strong>de</strong>s permutationsévoquée antérieurement est i<strong>de</strong>ntique pour l'ensemble <strong>de</strong>s mots d'un symbole, lespositions reçues étant les mêmes. C'est ceci que nous appelons décodage à blanc.Dans cette phase, nous injectons <strong>de</strong>s symboles <strong>de</strong> taille nulle dans le déco<strong>de</strong>ur, ceuxcicorrespondant aux positions reçus <strong>de</strong>s symboles réels. La recherche <strong>de</strong>s permutationspermettant le décodage est donc eectuée sur ce vecteur blanc.Si le décodage a blanc réussit, les permutations utilisées pour ce décodage sontalors mises en mémoire. Le vrai décodage peut alors s'eectuer en utilisant le cheminet les permutations tracées par le décodage à blanc. Si le décodage à blanc échoue,celui-ci peut cependant avoir apporté <strong>de</strong> nouvelles positions décodées. Il est alorspossible <strong>de</strong> basculer sur une élimination Gaussienne qui sera eectuée après, ou à laplace <strong>de</strong> ce décodage partiel.L'intérêt du décodage à blanc est donc <strong>de</strong> mutualiser le calcul <strong>de</strong>s permutations,qui est coûteux : O( n2 log n), an <strong>de</strong> ne l'eecteur qu'une seule fois par paquet et ainsi4réduire son impact sur la complexité du décodage. L'impact pratique du décodage àblanc sur une implémentation paquets/symboles est discuté dans la partie suivante.5.3 Résultats <strong>de</strong> simulationNous avons comparé le co<strong>de</strong> récursif <strong>pro</strong>posé dans ce chapitre avec l'implémentation<strong>de</strong> l'élimination Gaussienne sur le même co<strong>de</strong>. Les tests ont été menés sur unIntel Core 2 Extreme @3,06GHz/4Go RAM sur Mac OS X 10.6 en 64 bits.La Figure 5.2 présente le taux d'échec <strong>de</strong> chaque co<strong>de</strong> (GE,Optimized) pour leco<strong>de</strong> RM(3; 7), qui correspond à un co<strong>de</strong> (k; n) = (64; 128), en fonction du nombre<strong>de</strong> symboles supplémentaires reçus. L'élimination Gaussienne permet ici d'atteindre


5.3. Résultats <strong>de</strong> simulation 93Figure 5.2 Taux d'échec <strong>de</strong>s diérents algorithmes pour le co<strong>de</strong> RM(3; 7) en fonctiondu nombre d'extra-symbolesla capacité théorique du co<strong>de</strong>. Nous avons également ajouté sur ce schéma le tauxd'échec du décodage récursif sans optimisation (la version classique) ainsi que les tauxd'échec avec uniquement le décodage par permutation et la remontée partielle.Tout d'abord, ces résultats permettent <strong>de</strong> mettre en évi<strong>de</strong>nce l'impossibilité d'utiliser<strong>de</strong> manière pratique le décodage récursif classique. Par ailleurs, l'importance dudécodage par permutations est mis en lumière. En marge <strong>de</strong> ces résultats, nous avonségalement modié le mécanisme <strong>de</strong> permutation an <strong>de</strong> ne pas nous restreindre auxpermutations conservant les positions <strong>de</strong> gauche. La capacité <strong>de</strong> correction s'en esttrouvée légèrement améliorée, mais ceci s'est fait au détriment d'une chute importante<strong>de</strong> la vitesse. Le mécanisme que nous avons <strong>pro</strong>posé constitue un com<strong>pro</strong>misentre performance et vitesse.Enn, ces résultats nous permettent <strong>de</strong> discerner le bon comportement <strong>de</strong> l'algorithmerécursif <strong>pro</strong>posé, qui dans ce cas, ne nécessite en moyenne, que trois symbolessupplémentaires pour atteindre les taux <strong>de</strong> réussite du décodage par maximum <strong>de</strong>vraisemblance.Les vitesses <strong>de</strong>s <strong>de</strong>ux algorithmes pour ce co<strong>de</strong> sont représentées sur le tableau5.1. Pour ces paramètres, l'enco<strong>de</strong>ur récursif obtient une vitesse <strong>de</strong> l'ordre <strong>de</strong> 4Gbps.Enn, comme nous le verrons <strong>de</strong> manière plus précise dans le chapitre suivant, unco<strong>de</strong> MDS <strong>de</strong> Reed-Solomon <strong>de</strong> mêmes paramètres fonctionne sur la même machineà environ 400Mbps.Le tableau 5.1 donne une comparaison <strong>de</strong> capacité et <strong>de</strong> vitesse du décodagerécursif optimisé et du décodage Gaussien pour diérents paramètres du co<strong>de</strong>. Nous


94 Chapitre 5. Co<strong>de</strong>s <strong>de</strong> Reed-Muller pour le canal à eacements <strong>de</strong> paquetsn'avons pas représenté <strong>de</strong> tailles inférieures, les diérences <strong>de</strong> capacité <strong>de</strong> correctionentre les <strong>de</strong>ux algorithmes étant insigniantes.Algorithme récursif Elim. Gaussienne Algorithme récursif MLvitesse vitesse extra-symboles extra-symbolesRM(3,6) 2021 Mbps 842 Mbps 5.41% 5.06%RM(3,7) 1073 Mbps 544 Mbps 8.59% 4.75%RM(4,7) 2393 Mbps 381 Mbps 3.45% 2.79%RM(4,8) 1363 Mbps 215 Mbps 9.08% 1.44%RM(5,8) 2774 Mbps 181 Mbps 2.44% 1.17%RM(5,9) 1783 Mbps 85 Mbps 9.23% 0.45%RM(6,9) 3291 Mbps 80 Mbps 1.90% 0.47%RM(6,10) 3486 Mbps 44 Mbps 8.05% 0.18%Table 5.1 Vitesse <strong>de</strong> décodage et extra-symboles moyens pour diérents co<strong>de</strong>s RMNous avons également étudié l'inuence <strong>de</strong> la taille <strong>de</strong>s symboles sur le gain <strong>de</strong>vitesse. Sur le tableau 5.2, nous avons représenté la vitesse <strong>de</strong> chaque algorithme surun co<strong>de</strong> RM(6; 9) <strong>de</strong> paramètres (n; k) = (466; 512) pour <strong>de</strong>s tailles <strong>de</strong> symboles <strong>de</strong>50, 500 et 1500 octets correspondant respectivement aux tailles <strong>de</strong> paquets VoIP,médianes <strong>de</strong> l'Internet et <strong>de</strong> PDU Ethernet.Taille <strong>de</strong> paquet Algorithme récursif Élimination Gaussienne Rapport50 octets 546 Mbps 8 Mbps 66x500 octets 2463 Mbps 51 Mbps 49x1500 octets 3291 Mbps 80 Mbps 41xTable 5.2 Vitesses <strong>de</strong> décodage pour le co<strong>de</strong> RM(6; 9) en fonction <strong>de</strong> la taille <strong>de</strong>spaquetsPour ce co<strong>de</strong>, le rapport <strong>de</strong> vitesse varie en 40 et 60 en faveur du décodage récursifen fonction <strong>de</strong> la taille <strong>de</strong>s paquets. Ceci peut s'expliquer par le fait que le décodageà maximum <strong>de</strong> vraisemblance nécessite une inversion <strong>de</strong> matrice carrée <strong>de</strong> taille k.La phase <strong>de</strong> pré-décodage <strong>de</strong> l'algorithme Gaussien est donc associée à la complexitéO(k 3 ). En comparaison, la complexité <strong>de</strong> prédécodage <strong>de</strong> l'algorithme récursif estO(n 2 log n). Ceci permet d'expliquer que l'écart <strong>de</strong> vitesse augmente lorsque la taille<strong>de</strong>s paquets diminue. Il est cependant important <strong>de</strong> nuancer ceci en notant que, pource co<strong>de</strong>, la phase <strong>de</strong> décodage à blanc peut représenter jusqu'à 86% du temps totallorsque la taille <strong>de</strong>s paquets est <strong>de</strong> 50 octets. Par ailleurs, pour le décodage récursif, ledécodage permet <strong>de</strong> retrouver l'ensemble <strong>de</strong>s symboles d'encodage. Si l'on souhaiteretrouver les symboles source par la suite, il sut d'eectuer un décodage RM, quenous avons négligé ici, celui-ci étant <strong>de</strong> l'ordre <strong>de</strong> 8Gbps pour ce co<strong>de</strong>.De manière générale, l'algorithme que nous avons présenté, pour les hauts ratios,sacrie 1% à 2% <strong>de</strong> capacité du co<strong>de</strong> en permettant d'obtenir un gain <strong>de</strong> vitesse allant<strong>de</strong> 5 à 20 fois celle du décodage ML.


5.4. Conclusion 955.4 ConclusionNous avons donc présenté un algorithme <strong>de</strong> décodage pour les co<strong>de</strong>s <strong>de</strong> Reed-Muller basé sur la construction <strong>de</strong> Plotkin. Les améliorations présentées ont permisd'obtenir une très bonne capacité <strong>de</strong> correction, notamment pour les petites longueurs,en sacriant une légère partie <strong>de</strong> la simplicité du co<strong>de</strong> RM.Pour les petits co<strong>de</strong>s, et encore plus pour les hauts ratios <strong>de</strong> codage, la capacité<strong>de</strong> correction du co<strong>de</strong> présenté est <strong>pro</strong>che <strong>de</strong> la capacité optimale du co<strong>de</strong>.Ce co<strong>de</strong> se présente par ailleurs comme une alternative intéressante aux co<strong>de</strong>s<strong>de</strong> Reed-Solomon pour les petites tailles, lorsque la complexité <strong>de</strong> décodage est unpoint crucial, comme par exemple sur <strong>de</strong>s appareils peu puissants, ou alors lorsqueles contraintes temporelles sont fortes. En eet, le ratio <strong>de</strong> vitesse par rapport à unco<strong>de</strong> RS peut atteindre 5x à 20x lorsque les tailles en jeu sont <strong>de</strong> l'ordre <strong>de</strong> quelquescentaines.Une implémentation <strong>de</strong> ce co<strong>de</strong> est disponible sur [76].


Chapitre 6Co<strong>de</strong>s à eacements MDS baséssur les FNTLe train <strong>de</strong> votre mépris roule sur les rails <strong>de</strong> mon indiérence.Devise du DMIA.Sommaire6.1 Introduction . . . . . . . . . . . . . . . . . . . . . . . . . . . . 976.2 Construction <strong>de</strong>s co<strong>de</strong>s RS-FNT . . . . . . . . . . . . . . . . 986.2.1 La transformée <strong>de</strong> Fourier sur F q . . . . . . . . . . . . . . . . 986.2.2 La FNT sur F 65537 . . . . . . . . . . . . . . . . . . . . . . . . 1016.2.3 L'algorithme <strong>de</strong> décodage <strong>de</strong> la FNT . . . . . . . . . . . . . . 1026.2.4 Construction d'un co<strong>de</strong> systématique . . . . . . . . . . . . . . 1086.2.5 Encodage/décodage quadratique en tant que co<strong>de</strong> <strong>de</strong> Reed-Solomon . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1106.3 Etu<strong>de</strong> <strong>de</strong> la complexité théorique . . . . . . . . . . . . . . . . 1106.4 Résultats <strong>de</strong> simulation . . . . . . . . . . . . . . . . . . . . . . 1116.5 Conclusion . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1146.1 IntroductionDans ce chapitre, nous présentons un co<strong>de</strong> à eacements à Maximum DistanceSéparable (MDS). Dans <strong>de</strong> nombreuses applications, il peut-être important voire nécessaire<strong>de</strong> travailler sur un co<strong>de</strong> comportant une capacité <strong>de</strong> correction optimale, ouen d'autres termes, tel que n'importe sous-ensemble codé <strong>de</strong> taille égale à la tailled'origine permette <strong>de</strong> retrouver l'ensemble original. Ce type <strong>de</strong> co<strong>de</strong>s prend tout sonsens dans le cadre <strong>de</strong> stockage distribué localement, tels les systèmes RAID [13] [14],mais aussi la distribution <strong>de</strong> contenu distant, où la question <strong>de</strong> la minimisation <strong>de</strong>la ban<strong>de</strong> passante est cruciale. Les co<strong>de</strong>s MDS permettent aussi <strong>de</strong> répondre à la<strong>pro</strong>blématique du partage <strong>de</strong> clés [4] et du partage optimal <strong>de</strong> l'information [6].Si les co<strong>de</strong>s MDS se présentent comme la solution idéale pour cet ensemble <strong>de</strong> solutions,ils sont néanmoins pénalisés par une complexité théorique quadratique O(n 2 )qui en pratique se traduit par l'impossibilité d'utiliser ce genre <strong>de</strong> solutions pour <strong>de</strong>s


98 Chapitre 6. Co<strong>de</strong>s à eacements MDS basés sur les FNTtailles supérieures à quelques centaines d'éléments ( 1Mbps). Dans ce cas, l'utilisateurpréférera utiliser <strong>de</strong>s co<strong>de</strong>s <strong>de</strong> type LDPC ou Fountain <strong>de</strong> complexité plus faible,au prix <strong>de</strong> la perte <strong>de</strong> cette optimalité.Des travaux récents [12] ont permis <strong>de</strong> dénir <strong>de</strong>s co<strong>de</strong>s MDS à complexité sousquadratique,en l'occurrence <strong>de</strong> l'ordre <strong>de</strong> O(n log 2 n), basé sur <strong>de</strong>s transformées <strong>de</strong>Walsh. Les co<strong>de</strong>s MDS que nous présentons dans ce chapitre peuvent être encodéset décodés avec un algorithme <strong>de</strong> complexité pratique logarithmique O(n log n). Ilspeuvent également être utilisés en tant que co<strong>de</strong> systématique, sans perte notable<strong>de</strong> performance au niveau du déco<strong>de</strong>ur. Ces co<strong>de</strong>s sont basés sur une application <strong>de</strong>la transformée <strong>de</strong> Fourier rapi<strong>de</strong> (FFT) dans un corps <strong>de</strong> Galois dont la taille estun nombre <strong>de</strong> Fermat premier. Dans ce type <strong>de</strong> corps, la FFT est souvent appeléeTransformée en Nombres <strong>de</strong> Fermat (Fermat Number Transform-FNT). Ces co<strong>de</strong>sseront dénommés par la suite RS-FNT.Ces co<strong>de</strong>s sont les premiers co<strong>de</strong>s publiés permettant d'atteindre la limite théorique<strong>de</strong> la complexité d'un co<strong>de</strong> MDS [77]. Par ailleurs, ces co<strong>de</strong>s étant équivalents auxco<strong>de</strong>s <strong>de</strong> Reed-Solomon classiques, ils sont également encodables et décodables avec<strong>de</strong>s algorithmes quadratiques plus rapi<strong>de</strong>s pour <strong>de</strong>s co<strong>de</strong>s <strong>de</strong> petite taille.6.2 Construction <strong>de</strong>s co<strong>de</strong>s RS-FNT6.2.1 La transformée <strong>de</strong> Fourier sur F qLes dénitions suivantes permettent <strong>de</strong> dénir le contexte dans lequel est dénice co<strong>de</strong>.Dénition 6.1. Soit q un nombre premier. L'ensemble f0; 1; 2; :::; q 1g muni <strong>de</strong>l'addition et <strong>de</strong> la multiplication modulo q forme un corps ni [11]. Ce type <strong>de</strong> corps,qui fait partie <strong>de</strong>s corps <strong>de</strong> Galois, est noté Fq ou parfois GF(q). Par la suite, onappellera un tel corps un corps ni premier.Dénition 6.2. Dans le corps ni Fq, l'ordre d'un élément est la plus petite puissance<strong>de</strong> l'élément égale à 1 modulo q. Lorsque cet ordre est égal à q 1, l'élément ducorps est appelé une racine primitive du corps. En ce sens, chaque élément du corpspeut être déni comme une puissance d'une racine primitive du corps.Il est possible d'étendre la dénition <strong>de</strong> la transformée <strong>de</strong> Fourier discrète (DFT)aux corps <strong>de</strong> Galois [78]. Dans ce corps, la dénition <strong>de</strong> la DFT <strong>de</strong>vient :Dénition 6.3. Soit ! un élément d'ordre n 1 <strong>de</strong> Fq et n q.Soit a = (a 0 ; a 1 ; :::; a n 1 )un vecteur <strong>de</strong> F n q . La transformée <strong>de</strong> Fourier discrète (DFT) dans ce corps est :∑n 1A j =i=0où A = (A 0 ; A 1 ; :::; A n 1 ) est un vecteur <strong>de</strong> F n q .a i ! ij ; 0 j n 1 (6.1)


6.2. Construction <strong>de</strong>s co<strong>de</strong>s RS-FNT 99De la même manière, la transformée inverse (DFT 1 ) est dénie comme suit :a j = 1 n 1n ¢ ∑i=0A i ! ij ; 0 j n 1La transformée <strong>de</strong> Fourier rapi<strong>de</strong> (FFT) est un algorithme développé par Cooley etTukey [79] en 1965 permettant le calcul <strong>de</strong> la DFT dans le cas général en complexitélogarithmique O(n log n). Comme mis en évi<strong>de</strong>nce par Pollard [78], l'algorithme <strong>de</strong> laFFT peut être adapté <strong>de</strong> manière similaire dans les corps <strong>de</strong> Galois, la racine n ime<strong>de</strong> l'unité <strong>de</strong>s complexes étant ici remplacée par un élément d'ordre n du corps. Ceciest possible car les mécanismes fondamentaux <strong>de</strong> la FFT sont indépendants du corpsutilisé.Le principe général <strong>de</strong> la FFT est une ap<strong>pro</strong>che <strong>de</strong> type diviser pour régner. Cetteap<strong>pro</strong>che permet d'atteindre la complexité théorique annoncée en divisant basiquementla résolution <strong>de</strong> la FFT <strong>de</strong> taille n en la résolution <strong>de</strong> <strong>de</strong>ux FFT <strong>de</strong> taille n 2 .La transformée <strong>de</strong> Fourier rapi<strong>de</strong> (FFT) Dans ce paragraphe, nous détaillons leprincipe <strong>de</strong> la FFT que nous illustrerons par un exemple dans le corps Fq.Soit K un corps ni <strong>de</strong> taille q, n la taille <strong>de</strong> la transformée <strong>de</strong> Fourier, n < q,soit a = (a 0 ; a 1 ; :::; a n 1 ) et A = (A 0 ; A 1 ; :::; A n 1 ) <strong>de</strong>ux vecteurs <strong>de</strong> K n . Soit ! unélément d'ordre n du corps. Si A est la DFT <strong>de</strong> a, la DFT peut s'écrire <strong>de</strong> façonmatricielle (la matrice est symétrique) :⎛⎞1 1 1 1 : : : 11 ! ! 2 ! 3 : : : ! n 11 ! 2 ! 4 ! 6 2(n 1): : : ! 1 !A =3 ! 6 ! 9 3(n 1): : : ! ¢a (6.2). . . ..⎜⎟⎝⎠1 ! n 1 ! 2(n 1) ! 3(n 1) : : : ! (n 1)(n 1)} {{ }DF T !(n)On suppose dès lors que n est une puissance <strong>de</strong> <strong>de</strong>ux. Si l'existence d'une racineprimitive a été <strong>pro</strong>uvée sur les corps <strong>de</strong> Galois, la FFT utilise une <strong>pro</strong>priété intéressante<strong>de</strong>s éléments d'ordre :Proposition 6.4. Soit ! un élément d'ordre n pair, dans un corps <strong>de</strong> Galois Fq, n < q.Alors ! 2 est une élément d'ordre n du corps.2Démonstration. Par dénition, ! 1mod q, et n étant pair nous avons donc! 2¢ n 2 1 mod q et donc (! 2 ) n 2 1 mod q. L'ordre <strong>de</strong> ! 2 est donc inférieur ou égalà n 2 . Supposons qu'il existe m tel que !2m 1mod q et m < n . Le résultat suivant2


100 Chapitre 6. Co<strong>de</strong>s à eacements MDS basés sur les FNTnous donne donc ! 2m 1 mod q. ! étant d'ordre n, nous avons donc n 2m, cequi contredit l'hypothèse initiale.Pour la FFT, les indices pairs et impairs <strong>de</strong> a sont séparés en <strong>de</strong>ux vecteurs a p eta i . L'algorithme <strong>de</strong> la FFT réduit ainsi le calcul <strong>de</strong> la DFT <strong>de</strong> taille n en <strong>de</strong>ux DFT <strong>de</strong>taille n 2 , dont l'élément d'ordre est !2 et une multiplication par un vecteur <strong>de</strong> taille n<strong>de</strong> la manière suivante :⎛ ⎞1( DF T! 2(A = DF T ! (n) ¢ n 2a =) ¡ a )p!DF T ! 2( n 2 ) ¡ a + ⎜ ⎟p ⎝ .! n 1⎠ ¡ ( DF T! 2( n 2 ) ¡ a iDF T ! 2( n 2 ) ¡ a i)(6.3)Le principe <strong>de</strong> l'algorithme <strong>de</strong> la FFT est d'appliquer <strong>de</strong> mécanisme <strong>de</strong> manièrerécursive. Ce qui permet d'introduire la <strong>pro</strong>position suivante :Proposition 6.5. L'algorithme <strong>de</strong> la transformée <strong>de</strong> Fourier rapi<strong>de</strong> (FFT) est <strong>de</strong> complexitéO(n log n).Démonstration. Soit T (n) la complexité <strong>de</strong> l'algorithme <strong>de</strong> taille n. D'après l'équation6.3, cette complexité peut être ramenée en la complexité <strong>de</strong> l'opération T ( n ) et la2complexité linéaire du <strong>pro</strong>duit et <strong>de</strong> la somme f (n). Nous avons donc :En développant nous obtenons :T (n) = 2T ( n 2 ) + f (n)T (n) = f (n) + 2(f ( n 2 ) + 2T (n 4 )) = ::: = f (n) + 2f (n 2 ) + 4f (n 4 ) + 8f (n 8 ) + :::f (n) étant <strong>de</strong> complexité linéaire alors 9a 2 Rnf (n) = an. En conséquence nousavons :T (n) = an + an + ::: +} {{an =}an log 2 n = O(n log 2 n):log 2 n itérationsIllustrons cet algorithme dans le corps ni premier F 17 . Dans ce corps, l'élément4 est d'ordre 4. Soit a = (3; 7; 5; 14) le vecteur déni sur ce corps. L'algorithme <strong>de</strong> laFFT nous donne le résultat suivant :⎛⎞ ⎛ ⎞ ⎛ ( ⎞ ⎛ ⎞ ⎛ ( ⎞ ⎛ ⎞1 1 1 1 33 17 12⎜1 4 16 13⎟⎝1 16 1 16⎠ ¡ ⎜ 7DF T !2 ¡⎟⎝ 5 ⎠ = ⎜5)⎝( ⎟3 ⎠DF T1 13 16 4 14!2 ¡5) + ⎜ 4DF T !2 ¡⎟ ⎜14)⎝16⎠⎝( ⎟7 ⎠DF T13!2 ¡14) = ⎜ 4⎟⎝ 4 ⎠9


6.2. Construction <strong>de</strong>s co<strong>de</strong>s RS-FNT 101où DF T !2 = ( 1 11 16).Les résultats précé<strong>de</strong>nts peuvent s'appliquer mutatis mutandis dans le cadre <strong>de</strong> latransformée <strong>de</strong> Fourier inverse.Proposition 6.6. Pour tout k n, les k premières lignes <strong>de</strong> la matrice <strong>de</strong> la transformée<strong>de</strong> Fourier discrète (DFT) forment une matrice génératrice d'un co<strong>de</strong> <strong>de</strong> Reed-Solomon. La DFT, qui peut être obtenue via la FFT, est donc un co<strong>de</strong> MDS.Démonstration. L'équation 6.2 a mis en lumière l'écriture matricielle <strong>de</strong> la transformée<strong>de</strong> Fourier. Ainsi, il est possible <strong>de</strong> remarquer que la matrice <strong>de</strong> la DFT est une matriceparticulière <strong>de</strong> Van<strong>de</strong>rmon<strong>de</strong> avec le vecteur (1; !; ! 2 ; :::! n 1 ). ! étant d'ordre n, lamatrice est <strong>de</strong> rang plein ce qui termine la démonstration.Une autre façon <strong>de</strong> considérer la transformée <strong>de</strong> Fourier discrète vient <strong>de</strong> la représentationpolynômiale.Proposition 6.7. Soit K un corps ni <strong>de</strong> taille q. Soient ! un élément d'ordre n,n < q, a = (a 0 ; a 1 ; :::; a n 1 ) et A = (A 0 ; A 1 ; :::; A n 1 ) <strong>de</strong>ux vecteurs <strong>de</strong> K n . Latransformée <strong>de</strong> Fourier discrète A <strong>de</strong> a est équivalente à l'évaluation du polynômea(x) = ∑ n 1i=0 a ix i aux points (1; !; ! 2 ; :::; ! n 1 ) en <strong>pro</strong>gression géométrique.Démonstration. En reprenant l'écriture originale <strong>de</strong> la DFT, nous avons pour j 2(0; 1; :::; n 1) :∑n 1a(! j ) = a i ! j i ∑n 1= a i ! ij = A j :i=0i=06.2.2 La FNT sur F 65537Si l'ensemble <strong>de</strong>s <strong>pro</strong>priétés sur la FFT sont valables sur Fq dès lors que q estpremier, en pratique, il est intéressant <strong>de</strong> travailler sur <strong>de</strong>s corps permettant uneadaptation pratique aisée. Les terminaux fonctionnant généralement avec <strong>de</strong>s unités<strong>de</strong> 8, 16, 32 voire 64 bits, c'est-à-dire <strong>de</strong> 2 r bits, l'idéal est donc d'utiliser <strong>de</strong>s corpsdont les éléments peuvent être représentés par <strong>de</strong>s vecteurs <strong>de</strong> bits ayant ces longueurs.D'autre part, pour réaliser une implémentation ecace <strong>de</strong> la FFT, celle-ci doit être<strong>de</strong> taille 2 m , ce qui implique l'existence d'un élément d'ordre 2 m dans le corps ni.Malheureusement, tous les éléments <strong>de</strong>s corps <strong>de</strong> taille 2 2r sont d'ordre impair.Une solution par rapport à ce <strong>pro</strong>blème consiste à utiliser <strong>de</strong>s corps ni dont lecardinal est un nombre <strong>de</strong> Fermat <strong>de</strong> type F p = 2 2p + 1. Ces corps contiennent <strong>de</strong>séléments ayant comme ordre toutes les puissances <strong>de</strong> 2 comprises entre 0 et 2 2p .Il a été <strong>pro</strong>uvé que les nombres <strong>de</strong> Fermat F 0 = 3, F 1 = 5, F 2 = 17, F 3 = 257et F 4 = 65537 sont premiers, F 4 étant à ce jour le plus grand nombre <strong>de</strong> Fermat


102 Chapitre 6. Co<strong>de</strong>s à eacements MDS basés sur les FNTpremier connu. Dans la pratique, nous avons donc développé notre co<strong>de</strong> sur le corps<strong>de</strong> Galois F 65537 qui permet <strong>de</strong> co<strong>de</strong>r <strong>de</strong>s valeurs sur <strong>de</strong>s mots <strong>de</strong> 16 bits hormis lavaleur "65536".Il est possible <strong>de</strong> résoudre ce <strong>pro</strong>blème, car en pratique, le co<strong>de</strong> est limité à unetaille n = 32768. Ce qui signie que pour chaque paquet <strong>de</strong> symboles, il existe uneplus petite valeur du corps qui n'est pas présente. Dans ce cas, la valeur 65536 seracodée par cette valeur absente, et sera signalé tel quel par l'enco<strong>de</strong>ur via un champd'en-tête <strong>de</strong> 16 bits.L'application <strong>de</strong> la DFT/FFT sur ce type <strong>de</strong> corps se dénit ainsi :Dénition 6.8. La Transformée en Nombres <strong>de</strong> Fermat (FNT) est l'application <strong>de</strong> latransformée <strong>de</strong> Fourier rapi<strong>de</strong> (FFT) sur un corps Fq où q est un nombre <strong>de</strong> Fermatpremier.Dans le corps F 65537 , nous avons utilisé 3 comme racine primitive. Pour <strong>de</strong>s co<strong>de</strong>s<strong>de</strong> taille n = 2 i , l'élément d'ordre utilisé pour la FNT sera 3 216 i .6.2.3 L'algorithme <strong>de</strong> décodage <strong>de</strong> la FNTDans la suite <strong>de</strong> cette partie, nous prenons l'hypothèse que la taille n du co<strong>de</strong> estune puissance <strong>de</strong> <strong>de</strong>ux. Lors d'une implémentation pratique, si n n'est pas une puissance<strong>de</strong> <strong>de</strong>ux, alors la FNT travaillera sur la plus petite puissance <strong>de</strong> <strong>de</strong>ux supérieureà n et le co<strong>de</strong> sera poinçonné. De la même manière, nous prenons aussi k commeune puissance <strong>de</strong> <strong>de</strong>ux, en remplissant éventuellement le vecteur source <strong>de</strong> la FNT <strong>de</strong>zéros jusqu'à atteindre une puissance <strong>de</strong> <strong>de</strong>ux. Au niveau du décodage, le déco<strong>de</strong>urconsidérera ainsi ce padding comme faisant partie <strong>de</strong> l'ensemble <strong>de</strong>s éléments reçus.Soit un vecteur <strong>de</strong> symboles sources s = (s 0 ; s 1 ; :::; s k 1 ) <strong>de</strong> dimension k et àvaleurs dans Fq, et soit ∑ k 1s(x) = s i=0 ix i le polynôme associé. Nous complétonsce vecteur avec <strong>de</strong>s 0 an <strong>de</strong> former un vecteur <strong>de</strong> taille n. Le polynôme associén'est ainsi pas modié. Il est alors possible <strong>de</strong> calculer la FNT <strong>de</strong> ce vecteur, quidonnera un vecteur <strong>de</strong> symboles codés c = (c 0 ; c 1 ; :::; c n 1 ). La <strong>pro</strong>position 6.6 nousindique ainsi que ce mécanisme forme un co<strong>de</strong> MDS, à savoir qu'il est possible <strong>de</strong>retrouver l'ensemble <strong>de</strong>s symboles sources à partir <strong>de</strong> n'importe quel sous-ensemble<strong>de</strong> c comportant k symboles. Le point principal est donc <strong>de</strong> dénir un décodage ecaceassocié à cette opération.Dans le cas particulier où l'ensemble du vecteur c a été reçu, le décodage est immédiat.Il correspond simplement à l'application <strong>de</strong> la transformée <strong>de</strong> Fourier inverse(FNT 1 ) sur le vecteur c. Dans le cas général cependant, au moins un <strong>de</strong>s symbolescodés a pu être perdu, rendant impossible l'application du mécanisme précé<strong>de</strong>nt. Il estdonc nécessaire <strong>de</strong> dénir un algorithme <strong>de</strong> décodage <strong>de</strong> la FNT lorsque au moins ksymboles codés ont été reçus, mais pas tous.La <strong>pro</strong>position 6.7 a permis <strong>de</strong> mettre en lumière la relation entre la FNT/DFTet l'évaluation polynômiale. Soit ! l'élément d'ordre n utilisé pour la FNT, alors lessymboles codés c i correspon<strong>de</strong>nt à l'évaluation du polynôme s(x) sur les ! i :


6.2. Construction <strong>de</strong>s co<strong>de</strong>s RS-FNT 1038i 2 f0; 1; :::; n 1g; c i = s(! i )Le décodage peut donc être vu comme un <strong>pro</strong>blème général d'interpolation polynômiale.Il s'agit ici, <strong>de</strong> déterminer le polynôme <strong>de</strong> <strong>de</strong>gré k 1, s(x) à partir <strong>de</strong> kpoints d'évaluations reçus faisant partie d'une suite en <strong>pro</strong>gression géométrique. Cettevue nous permet d'ailleurs <strong>de</strong> démontrer d'une autre manière le caractère MDS <strong>de</strong> laFNT.L'interpolation polynômiale est un vaste domaine étudié <strong>de</strong>puis <strong>de</strong> très nombreusesannées et qui possè<strong>de</strong> un large éventail <strong>de</strong> solutions. Certaines solutions <strong>de</strong> complexitéO(n log n) ont été <strong>pro</strong>posées. Toutefois, elles sont relativement diciles à implémenteren l'état et la plupart <strong>de</strong>s solutions et implémentations classiques possè<strong>de</strong>nt unecomplexité quadratique. L'algorithme <strong>de</strong> décodage que nous présentons permet quantà lui d'eectuer cette interpolation et <strong>de</strong> déco<strong>de</strong>r la FNT avec une complexité pratique<strong>de</strong> O(n log n).Prérequis mathématiquesTout d'abord, nous présentons quelques résultats utiles à l'algorithme <strong>de</strong> décodage.Dans le cas général, la multiplication <strong>de</strong> <strong>de</strong>ux polynômes <strong>de</strong> <strong>de</strong>gré strictementinférieur à n est <strong>de</strong> complexité O(n 2 ) en utilisant une métho<strong>de</strong> naïve où chaque<strong>pro</strong>duit <strong>de</strong> monômes est calculé. Dans les années 1960, Karatsuba a présenté unalgorithme [80] permettant <strong>de</strong> réduire la complexité théorique <strong>de</strong> cette multiplicationà O(n log 23 ) ' O(n 1:59 ). Soient les polynômes a(x) = a 1 x + a 0 et b(x) = b 1 x + b 0 ,l'algorithme <strong>de</strong> Karatsuba utilise la décomposition <strong>de</strong> a(x)b(x) suivante :a(x)b(x) = a 1 b 1 x 2 + (a 1 b 1 + a 0 b 0 (a 1 a 0 )(b 1 b 0 ))x + a 0 b 0Cette décomposition ne requiert ainsi que 3 multiplications et permet d'atteindrela complexité <strong>pro</strong>posée. Toom et Cook [81][82] ont généralisé cette métho<strong>de</strong> pour <strong>de</strong>sschémas <strong>de</strong> polynômes <strong>de</strong> <strong>de</strong>gré k qui ont donné les algorithmes <strong>de</strong> Toom-k, et quilog(2k 1)sont <strong>de</strong> complexité O(nlog k). Cependant ces algorithmes trainent une constante<strong>pro</strong>hibitive dès lors que k dépasse 5. L'algorithme <strong>de</strong> multiplication polynômiale quenous allons utiliser ici est une adaptation <strong>de</strong> l'algorithme <strong>de</strong> Schönhage-Strassen [83]aux corps nis.Proposition 6.9. (Schönhage-Strassen) Soient a(x) = ∑ n 1i=0 a ix i et b(x) = ∑ n 1i=0 b ix i<strong>de</strong>ux polynômes à valeurs dans (Fq) n avec q > 2n. Il est possible d'en calculer le <strong>pro</strong>duita(x)b(x) avec la complexité M(n) = O(n log n).Démonstration. Soit ! un élément d'ordre 2n dans le corps considéré. La DFT-2n <strong>de</strong>spolynômes a(x) et b(x) peut être vue grâce à la <strong>pro</strong>position 6.7 comme l'évaluation<strong>de</strong> ces polynômes sur les diérents ! i . Soient A et B ces DFT, nous avons :8i 2 f0; 1; :::; 2n 1g; A i = a(! i ); B i = b(! i )


104 Chapitre 6. Co<strong>de</strong>s à eacements MDS basés sur les FNTIl est possible d'eectuer le <strong>pro</strong>duit terme à terme <strong>de</strong> ces <strong>de</strong>ux vecteurs ce quidonne :A i B i = a(! i )b ( ! i ) = ab(! i ):Le vecteur <strong>pro</strong>duit contient donc l'évaluation du polynôme <strong>pro</strong>duit a(x)b(x) <strong>de</strong><strong>de</strong>gré strictement inférieur à 2n, sur 2n points. Tous les points d'interpolation étantconnus, il est donc possible d'appliquer directement la transformée <strong>de</strong> Fourier inversean <strong>de</strong> retrouver le polynôme <strong>pro</strong>duit. En utilisant la FFT, la complexité <strong>de</strong> cetteopération est donc O(n log n). En d'autres termes nous avons :a(x)b(x) = F F T1 (F F T (a) ¡ F F T (b))De ce résultat, nous obtenons la <strong>pro</strong>position suivante :Proposition 6.10. Soit (j 0 ; j 1 ; :::; j n 1 ) un vecteur <strong>de</strong> F n q où n est une puissance <strong>de</strong>2. Le calcul du polynôme ∏ n 1j(x) = (x j i=0 i ) peut être eectué avec la complexitéO(M(n) log n) = O(n log 2 n).Démonstration. n étant une puissance <strong>de</strong> <strong>de</strong>ux, il est possible ici d'appliquer unemétho<strong>de</strong> <strong>de</strong> type diviser pour régner. En l'occurrence, on divise le polynôme j(x) en<strong>de</strong>ux polynômes j ∏ n 21 (x) = 1(x j i=0 i ) et j ∏ n 12 (x) = (x ji= n i ). La complexité T (n)2<strong>de</strong> calcul du polynôme j(x) peut donc s'écrire :T (n) = 2T ( n 2 ) + M(n 2 )En appliquant récursivement ce mécanisme, nous obtenons :T (n) = M( n 2 ) + 2(M(n 4 ) + 2T (n 4 ) + :::):En majorant les M( n 2 i ) par a n 2 i log n, grâce à la <strong>pro</strong>position 6.9, nous obtenons :T (n) an log n + an log n + ::: + an log n = an log} {{ }2 n 2 = O(n log2 n): 2log 2 n itérationsUn cas particulier permet cependant <strong>de</strong> réduire la complexité <strong>de</strong> ce calcul.Proposition 6.11. Lorsque les (j 0 ; j 1 ; :::; j n 1 ) sont en <strong>pro</strong>gression géométrique, j i =a i , la complexité <strong>de</strong> calcul <strong>de</strong> j(x) est réduite à O(M(n)) = O(n log n).


6.2. Construction <strong>de</strong>s co<strong>de</strong>s RS-FNT 105Démonstration. Lorsque les points sont en <strong>pro</strong>gression géométrique, et lors <strong>de</strong> l'application<strong>de</strong> la métho<strong>de</strong> diviser pour régner, il sut <strong>de</strong> remarquer que le second polynômedu <strong>pro</strong>duit peut se déduire du premier grâce à une homothétie <strong>de</strong> complexité O(n).La complexité T (n) du calcul du <strong>pro</strong>duit <strong>de</strong>vient donc :T (n) = T ( n 2 ) + M(n 2 ) = n 2 log(n 2 ) ¢ (1 + 1 2 + 1 4 + 1 8 + 116 + :::) = n log(n 2 )Un <strong>de</strong>rnier résultat est nécessaire avant <strong>de</strong> présenter l'algorithme <strong>de</strong> décodage.Introduisons tout d'abord le lemme suivant :Lemme 6.12. Soit ! un élément d'ordre n du corps <strong>de</strong> Galois Fq. Alors ! 1 est aussiun élément d'ordre n <strong>de</strong> ce même corps.Démonstration. Directe.Proposition 6.13. Soient (b 0 ; b 1 ; :::; b k 1 ) et (x 0 ; x 1 ; :::; x k 1 ) <strong>de</strong>ux vecteurs <strong>de</strong> F k q ,où k est une puissance <strong>de</strong> <strong>de</strong>ux, et tel que les x i forment une sous-suite d'une suitegéométrique <strong>de</strong> paramètre !, élément d'ordre n < q du corps, et <strong>de</strong>ux à <strong>de</strong>ux distincts.Chaque x i peut s'écrire sous la forme x i = ! z i . Supposons par ailleurs, 8i; zi < n.Enn, supposons que le polynôme <strong>de</strong> <strong>de</strong>gré k, ∏ k 1D(x) = (x x i=0 i ) connu. Alorsle numérateur N(x) <strong>de</strong> la somme fractionnelle ∑ k 1S(x) =i=0évalué avec la complexité O(n log n + 2k log 2k).b ix x i= N(x)D(x)peut êtreDémonstration. Par dénition, N(x) est un polynôme <strong>de</strong> <strong>de</strong>gré k 1. Nous pouvonsdonc déterminer sa valeur en travaillant modulo x k . Nous avons :N(x) = D(x)S(x)mod x kEn eectuant le développement en série <strong>de</strong> S(x) à l'ordre k, et en utilisant laformule∑ = i a (i+1) x i , nous obtenons :1a x = 1 a11xak∑1k∑1k∑1k∑1N(x) = D(x) ¢ b i (x i ) (j+1) x j = D(x) ¢ b i (! (j+1) ) z ix ji=0 j=0i=0 j=0Posons le polynôme B(x) = ∑ k 1i=0 b ix z i<strong>de</strong> <strong>de</strong>gré strictement inférieur à n. Alorsle numérateur N(x) peut s'écrire :k∑1N(x) = D(x) ¢ B(! j 1 )x jD'après le lemme 6.12, ! étant d'ordre n, c'est aussi le cas <strong>de</strong> son inverse. Enconséquence, il est donc possible d'évaluer le polynôme B(x) sur (1; ! 1 ; ! 2 ; :::! (n 1) )grâce à la FFT en O(n log n).j=0


106 Chapitre 6. Co<strong>de</strong>s à eacements MDS basés sur les FNTLe calcul du numérateur se résume donc au <strong>pro</strong>duit d'un polynôme <strong>de</strong> <strong>de</strong>gré k parun polynôme <strong>de</strong> <strong>de</strong>gré k 1, k étant par dénition une puissance <strong>de</strong> 2, grâce à la<strong>pro</strong>position 6.9, il est possible d'eectuer ce <strong>pro</strong>duit en O(2k log 2k) 1 .Description <strong>de</strong> l'algorithmeNous avons désormais détaillé l'ensemble <strong>de</strong>s outils nécessaires à l'algorithme <strong>de</strong>décodage <strong>de</strong> la FNT.Dénition 6.14. Soient (x 0 ; x 1 ; :::x n 1 ) et (y 0 ; y 1 ; :::; y n 1 ) <strong>de</strong>ux vecteurs <strong>de</strong> F n q . Lepolynôme L(x) déni par :∑n 1L(x) = y i ¢ ∏ x x jx i x ji=0 j6=iest l'unique polynôme <strong>de</strong> <strong>de</strong>gré inférieur à n tel que 8i 2 (0; 1; :::n 1); L(x i ) = y i .Ce polynôme est appelé le polynôme interpolateur <strong>de</strong> Lagrange.Il est ainsi possible <strong>de</strong> transposer cette dénition au décodage <strong>de</strong> la FNT.Proposition 6.15. Soit un vecteur d'éléments sources (s 0 ; s 1 ; :::s k 1 ) <strong>de</strong> k éléments ets(x) = ∑ k 1i=0 s ix i le polynôme associé. La FNT <strong>de</strong> taille n <strong>pro</strong>duit un ensemble d'élémentscodés (c 0 ; c 1 ; :::; c n 1 ) qui forment un co<strong>de</strong> MDS. Ces valeurs correspon<strong>de</strong>ntà l'évaluation du polynôme s(x) aux positions (1; !; :::; ! n 1 ) où ! est un élémentd'ordre n du corps. Soient les vecteurs c 0 = (c 0 0 ; c 0 1 ; :::c 0 k 1 ) et = ( 0; 1 ; ::: k 1 )les k premiers éléments reçus et leurs points d'évaluation respectifs. Il est ainsi possible<strong>de</strong> retrouver l'ensemble <strong>de</strong>s éléments sources en utilisant le polynôme interpolateur <strong>de</strong>Lagrange :k∑1s(x) = c 0i ¢ ∏i=0 j6=ix j i jIl est notamment important <strong>de</strong> noter que le vecteur forme une sous-suite d'élémentsd'une suite en <strong>pro</strong>gression géométrique <strong>de</strong> paramètre !.Théorème 6.16. Le décodage <strong>de</strong> la transformée <strong>de</strong> Fourier numérique (FNT) sur Fqen tant que co<strong>de</strong> MDS <strong>de</strong> dimension k et <strong>de</strong> taille n, k < n < q, peut être eectué avecla complexité O(k log 2 k + n log n). Cette complexité est réduite à O(k log k + n log n)lorsque les k premiers éléments codés sont reçus.Par ailleurs, en pratique, lors <strong>de</strong> l'implémentation réelle sur <strong>de</strong>s symboles/paquets,cette complexité <strong>de</strong>vient O(n log n).1. Il est par ailleurs intéressant <strong>de</strong> noter que nous sommes seulement intéressés par les k premierséléments du <strong>pro</strong>duit. Pour cela, il est nécessaire <strong>de</strong> passer par une évaluation <strong>de</strong> taille 2k. La question<strong>de</strong> ce calcul sur une évaluation <strong>de</strong> taille k reste à ce jour un <strong>pro</strong>blème ouvert. Des travaux ont permis <strong>de</strong>réduire eectivement la taille <strong>de</strong> l'évaluation pour <strong>de</strong>s algorithmes naïfs ou <strong>de</strong> type Karatsuba[84][85],mais la question reste entière pour l'algorithme <strong>de</strong> Schönhage-Strassen


6.2. Construction <strong>de</strong>s co<strong>de</strong>s RS-FNT 107Démonstration. Soit ! un élément d'ordre n du corps, soit s = (s 0 ; s 1 ; :::s k 1 ) l'ensemble<strong>de</strong>s k éléments sources <strong>de</strong> Fq et ∑ k 1s(x) = s i=0 ix i son polynôme associé.L'encodage via la FNT <strong>pro</strong>duit un ensemble d'éléments codés (c 0 ; c 1 ; :::; c n 1 ) surF n q.Soient les vecteurs c 0= (c 0 ; c 0 ; :::c 0 0 1 k 1 ) et = ( 0; 1 ; ::: k 1 ) les k premierséléments reçus et leurs points d'évaluation respectifs. La <strong>pro</strong>position 6.15 nous permet<strong>de</strong> retrouver l'ensemble <strong>de</strong>s éléments sources s à partir <strong>de</strong> n'importe quels k élémentsc 0 grâce à l'interpolation lagrangienne :k∑1s(x) = c 0i ¢ ∏i=0 j6=ix j i jSoit le polynôme a(x) = ∏ k 1j=0 (x j ) <strong>de</strong> <strong>de</strong>gré k. Soient les polynômes a i (x) =∏ k 1j=0;j6=i (x j )<strong>de</strong> <strong>de</strong>gré k 1 dénis pour i 2 (0; 1; :::; k 1). Nous avons a i (x) =a(x)x i. Le polynôme s(x) peut alors être réécrit comme suit :k∑1s(x) = a(x) ¢ c 0 1i ¢(x i )a i ( i )i=0Calculons la dérivée <strong>de</strong> a(x) en tant que polynôme. Par développement, cettedérivée s'exprime sous la forme a ∑ 0 k 1∏ k 1(x) =i=0 j=0;j6=i (x j ), ou autrement :a ∑ 0 k 1(x) = a i=0 i (x). Il est alors important <strong>de</strong> noter que si i 6= j, alors a i ( j ) = 0. Onobtient alors l'égalité suivante :a 0 ( i ) = a i ( i )Ce résultat important nous permet donc <strong>de</strong> réécrire le polynôme s(x) :k∑1s(x) = a(x) ¢i=0c 0i =a0 ( i )x iGrâce à la <strong>pro</strong>position 6.10, le calcul du polynôme a(x) peut être eectué dans lecas général avec la complexité O(k log 2 k). Lorsque les k premiers éléments sont reçus,nous avons i = ! i et alors dans ce cas, grâce à la <strong>pro</strong>position 6.11, la complexitéchute à O(k log k).Le calcul <strong>de</strong> la dérivée a 0 (x) est <strong>de</strong> complexité linéaire O(k) et donc négligeable.L'évaluation <strong>de</strong> la dérivée sur les i est <strong>de</strong> complexité O(n log n) car elle correspondà l'évaluation sur la sous-suite <strong>de</strong>s ! i et donc à la FNT <strong>de</strong> a 0 (x) <strong>de</strong> taille n.En posant d i =c 0 i, le calcul <strong>de</strong> s(x) revient donc au calcul <strong>de</strong> :a 0 ( i )k∑1ds(x) = a(x) ¢ ix ii=0


108 Chapitre 6. Co<strong>de</strong>s à eacements MDS basés sur les FNTLe dénominateur <strong>de</strong> la somme fractionnelle étant égal à a(x), le numérateur seraalors s(x). Grâce à la <strong>pro</strong>position 6.13, il est possible alors <strong>de</strong> déterminer s(x) avec lacomplexité O(n log n + 2k log 2k).Dans le cas général, la complexité <strong>de</strong> l'algorithme <strong>de</strong> décodage <strong>de</strong> la FNT estdonc O(k log 2 k + n log n). Dans le cas où les k premiers éléments sont reçus, cettecomplexité <strong>de</strong>vient O(k log k + n log n).Il est important <strong>de</strong> remarquer que le calcul <strong>de</strong> a(x) et l'évaluation <strong>de</strong> sa dérivéesur les i ne dépen<strong>de</strong>nt seulement que <strong>de</strong>s positions reçues. Elle est indépendante <strong>de</strong>svaleurs reçues. Dans le cadre <strong>de</strong> l'adaptation aux symboles/paquets, composé d'unnombre sz d'éléments <strong>de</strong> Fq, les positions reçues sont i<strong>de</strong>ntiques pour l'ensemble <strong>de</strong>ssz bi-octets d'un paquet/symbole.A titre d'exemple, une trame Ethernet <strong>de</strong> 1500 octets possè<strong>de</strong> donc sz = 750bi-octets. Lorsque ces trames sont reçues, les positions reçues sont donc i<strong>de</strong>ntiquespour ces 750 éléments <strong>de</strong> Fq.Le calcul <strong>de</strong> a(x) et <strong>de</strong>s évaluations <strong>de</strong> sa dérivée n'est donc eectué qu'une foispar symbole/paquet. En pratique, la complexité du décodage <strong>de</strong> la FNT est doncO( k log2 ksz + n log n + 2k log 2k). La partie divisée par sz <strong>de</strong>vient ainsi négligeable, etpour un taux <strong>de</strong> codage xé, k étant une <strong>pro</strong>portion <strong>de</strong> n, en pratique, la complexitédu décodage <strong>de</strong> la FNT sur <strong>de</strong>s paquets/symboles <strong>de</strong>vient donc O(n log n).6.2.4 Construction d'un co<strong>de</strong> systématiqueDans le paragraphe précé<strong>de</strong>nt, nous avons vu que la FNT était encodable et décodableen tant que co<strong>de</strong> MDS(n,k) avec une complexité logarithmique. Cependant laFNT n'est pas un co<strong>de</strong> systématique. An <strong>de</strong> rendre l'encodage et le décodage systématique,nous introduisons un encodage/décodage FNT supplémentaire, permettant<strong>de</strong> conserver la complexité logarithmique.Soit s = (s 0 ; s 1 ; :::; s k 1 ) le vecteur d'éléments sources. Au niveau <strong>de</strong> l'enco<strong>de</strong>ur, àpartir <strong>de</strong> ce vecteur <strong>de</strong> taille k, nous eectuons un décodage FNT <strong>de</strong> taille n. Ceci nouspermet donc d'obtenir un vecteur i = (i 0 ; i 1 ; :::; i k 1 ) <strong>de</strong> k éléments intermédiaires.Il sut alors d'appliquer la FNT sur les éléments intermédiaires, qui nous permetainsi d'obtenir une ensemble <strong>de</strong> n éléments codés, les k premiers correspondant alorsaux éléments systématiques, c = (s 0 ; s 1 ; :::s k 1 ; c k ; c k+1 ; :::; c n 1 ). Ce mécanisme estschématisé sur la Figure 6.1.Au niveau du déco<strong>de</strong>ur, le mécanisme est similaire. Un décodage FNT eectuésur les symboles codés permet <strong>de</strong> retrouver l'ensemble <strong>de</strong>s symboles intermédiaires.En appliquant alors la FNT, on retrouve les k symboles sources sur les k premièrespositions (ainsi que les autres symboles codés par ailleurs). Ce comportement estschématisé sur la Figure 6.2.L'ensemble enco<strong>de</strong>ur/déco<strong>de</strong>ur ainsi créé forme ce que nous appelons le co<strong>de</strong> RS-FNT.


6.2. Construction <strong>de</strong>s co<strong>de</strong>s RS-FNT 109Figure 6.1 Schéma <strong>de</strong> l'enco<strong>de</strong>ur systématique RS-FNTFigure 6.2 Schéma du déco<strong>de</strong>ur systématique RS-FNT


110 Chapitre 6. Co<strong>de</strong>s à eacements MDS basés sur les FNT6.2.5 Encodage/décodage quadratique en tant que co<strong>de</strong> <strong>de</strong> Reed-SolomonLorsque les tailles <strong>de</strong> co<strong>de</strong>s sont inférieure à quelques centaines d'éléments, il peuts'avérer plus ecace d'utiliser un algorithme classique <strong>de</strong> complexité quadratique parrapport à l'enco<strong>de</strong>ur/déco<strong>de</strong>ur logarithmique. De par sa structure, le co<strong>de</strong> RS-FNTest un co<strong>de</strong> <strong>de</strong> Reed-Solomon et peut donc être encodé et décodé comme tel. Dansce cas, les symboles <strong>de</strong> redondance sont donc construits directement par la matricegénératrice du co<strong>de</strong>, et les symboles sources sont décodés grâce à la matrice <strong>de</strong>passage <strong>de</strong>s symboles <strong>de</strong> redondance aux symboles sources.Dans le cadre <strong>de</strong> l'implémentation du co<strong>de</strong>, <strong>de</strong>ux enco<strong>de</strong>urs quadratiques ont étéretenus. L'algorithme le plus classique consistant à calculer les n k symboles <strong>de</strong> redondanceà partir <strong>de</strong>s k symboles sources et <strong>de</strong> la matrice génératrice du co<strong>de</strong>.Ce co<strong>de</strong> a donc une complexité <strong>de</strong> O(k ¢ (n k)). Ce co<strong>de</strong> ressemble trèsfortement aux algorithmes d'encodage <strong>de</strong>s co<strong>de</strong>s <strong>de</strong> Reed-Solomon classiques. Un algorithme adapté aux petits taux <strong>de</strong> codage qui tire parti <strong>de</strong> la FNT. Danscet algorithme, les symboles intermédiaires sont obtenus par la matrice <strong>de</strong> taillek ¢ k à partir <strong>de</strong>s symboles sources. Par la suite, ces symboles intermédiairessont directement codés par la FNT, <strong>de</strong> la même manière que l'algorithme <strong>de</strong>complexité quadratique. La complexité associée à cet enco<strong>de</strong>ur est donc O(k 2 +n log n).6.3 Etu<strong>de</strong> <strong>de</strong> la complexité théoriqueSi nous avons pu déterminer une estimation <strong>de</strong> la complexité théorique <strong>de</strong>s co<strong>de</strong>sFNT, il peut s'avérer utile <strong>de</strong> pouvoir exprimer la complexité du co<strong>de</strong> en évaluantle nombre réel <strong>de</strong> FNT eectuées. Dans ce paragraphe nous noterons F NT (x) lacomplexité <strong>de</strong> la FNT <strong>de</strong> taille x.Tout d'abord, il est nécessaire d'établir la complexité du décodage FNT. Commenous l'avons vu précé<strong>de</strong>mment, le calcul <strong>de</strong> a(x) et l'évaluation <strong>de</strong> sa dérivée ont uncoût négligeable lors <strong>de</strong> l'adaptation aux paquets/symboles. En conséquence, seule lacomplexité du calcul <strong>de</strong> la somme fractionnaire est utile. Comme nous avons pu le voirgrâce à la <strong>pro</strong>position 6.13, ce calcul consiste en l'évaluation du polynôme B(x) <strong>de</strong><strong>de</strong>gré strictement inférieur à n et au <strong>pro</strong>duit <strong>de</strong> <strong>de</strong>ux polynômes <strong>de</strong> <strong>de</strong>grés k et k 1.L'évaluation du polynôme B(x) correspond directement au calcul <strong>de</strong> la FNT<strong>de</strong> taille n <strong>de</strong> celui-ci. Sa complexité est donc F NT (n). En utilisant l'algorithme<strong>de</strong> Schönhage-Strassen <strong>de</strong> la <strong>pro</strong>position 6.9, le calcul du <strong>pro</strong>duit sur une taille 2kcorrespond à celui <strong>de</strong> 3 FNT. La complexité <strong>de</strong> ce <strong>pro</strong>duit est donc <strong>de</strong> l'ordre <strong>de</strong>3F NT (2k). En règle générale, le coût du décodage <strong>de</strong> la FNT est donc <strong>de</strong> l'ordre <strong>de</strong>F NT (n) + 3F NT (2k).A titre d'exemple, lorsque le taux <strong>de</strong> codage est <strong>de</strong> 1 , le coût du décodage <strong>de</strong> la2FNT est donc <strong>de</strong> 4F NT (n). Nous pouvons dès lors résumer cette complexité sur lesTableaux 6.1 et 6.2.


6.4. Résultats <strong>de</strong> simulation 111Non systématique SystématiqueEnco<strong>de</strong>ur FNT(n) 2FNT(n)+3FNT(2k)Déco<strong>de</strong>ur FNT(n)+3FNT(2k) 2FNT(n)+3FNT(2k)Table 6.1 Complexité théorique <strong>de</strong> l'enco<strong>de</strong>ur et du déco<strong>de</strong>ur RS-FNTNon systématique SystématiqueEnco<strong>de</strong>ur FNT(n) 5FNT(n)Déco<strong>de</strong>ur 4FNT(n) 5FNT(n)Table 6.2 Complexité théorique <strong>de</strong> l'enco<strong>de</strong>ur et du déco<strong>de</strong>ur RS-FNT, taux <strong>de</strong>codage 1 2Ces résultats sur la complexité mettent en lumière le fait que le déco<strong>de</strong>ur n'estque peu aecté par le codage systématique, contrairement à l'enco<strong>de</strong>ur. Ils mettentégalement en valeur l'importance prise par le <strong>pro</strong>duit <strong>de</strong>s <strong>de</strong>ux polynômes <strong>de</strong> <strong>de</strong>grésk et k 1 dont nalement, seuls les k premiers monômes sont utiles. Comme nousl'avons par ailleurs discuté, ceci met en évi<strong>de</strong>nce l'importance <strong>de</strong> la résolution <strong>de</strong> ce<strong>pro</strong>duit, connu sous le nom <strong>de</strong> short <strong>pro</strong>duct sur <strong>de</strong>s FNT réduites à une taille k. Sicette question ouverte était résolue, le gain théorique <strong>de</strong> vitesse pourrait atteindre67% lorsque le taux <strong>de</strong> codage est <strong>de</strong> 1 2 .6.4 Résultats <strong>de</strong> simulationNous avons mené <strong>de</strong>s simulations sur le co<strong>de</strong> RS-FNT que nous avons comparé àdiérents co<strong>de</strong>s <strong>de</strong> Reed-Solomon classiques : L'implémentation classique <strong>de</strong>s co<strong>de</strong>s <strong>de</strong> Reed-Solomon par Luigi Rizzo [15],sur <strong>de</strong>s matrices <strong>de</strong> Van<strong>de</strong>rmon<strong>de</strong>, reconnue pour son ecacité sur <strong>de</strong>s petitestailles <strong>de</strong> co<strong>de</strong>s. Ce co<strong>de</strong> a été testé en utilisant <strong>de</strong>s tailles <strong>de</strong> corps adaptées. La construction XOR-based [18] <strong>de</strong>s co<strong>de</strong>s <strong>de</strong> Reed-Solomon grâce à <strong>de</strong>s matrices<strong>de</strong> Cauchy. De par sa construction, ce co<strong>de</strong> permet <strong>de</strong> rester <strong>pro</strong>che <strong>de</strong>la complexité quadratique intrinsèque <strong>de</strong>s co<strong>de</strong>s <strong>de</strong> Reed-Solomon. Ce co<strong>de</strong> aégalement été testé en ajustant au mieux la taille du corps en fonction <strong>de</strong> lataille du co<strong>de</strong>. Les co<strong>de</strong>s MDS basés sur <strong>de</strong>s matrices <strong>de</strong> Cauchy [19] sur le corps F 65537développés à l'<strong>ISAE</strong>. Le corps ni utilisé est donc i<strong>de</strong>ntique à celui <strong>de</strong>s RS-FNT.La diérence avec les co<strong>de</strong>s précé<strong>de</strong>nts vient donc <strong>de</strong> l'arithmétique eectuéesur ce co<strong>de</strong>. Ce co<strong>de</strong> est par ailleurs particulièrement adapté à une architecture64-bit.Pour le co<strong>de</strong> RS-FNT, nous utilisons un enco<strong>de</strong>ur/déco<strong>de</strong>ur <strong>de</strong> complexité quadratiquetel que présenté dans la partie 6.2.5 pour les petites tailles <strong>de</strong> co<strong>de</strong>s. L'algorithmeest alors très similaire aux autres co<strong>de</strong>s. L'enco<strong>de</strong>ur/déco<strong>de</strong>ur <strong>de</strong> complexitélogarithme prend alors le relais lorsque les tailles impliquées dépassent la centaine


112 Chapitre 6. Co<strong>de</strong>s à eacements MDS basés sur les FNTFigure 6.3 Vitesse d'encodage <strong>de</strong>s diérents co<strong>de</strong>s <strong>de</strong> Reed-Solomon et du co<strong>de</strong>RS-FNT, en fonction <strong>de</strong> la dimension du co<strong>de</strong>, taux <strong>de</strong> codage 1 , symboles <strong>de</strong> 15002octetsd'éléments.Les simulations ont été réalisées sur une architecture Intel Core 2 Extreme @3.06GHz/ 4Go RAM sur Mac OS X 10.6 en 64-bit.Sur la Figure 6.3, nous avons représenté la vitesse d'encodage <strong>de</strong>s diérents co<strong>de</strong>s<strong>de</strong> Reed-Solomon en fonction <strong>de</strong> la dimension du co<strong>de</strong> k, pris comme une puissance <strong>de</strong><strong>de</strong>ux. Le ren<strong>de</strong>ment du co<strong>de</strong> est égal à 1 et la taille <strong>de</strong>s symboles est <strong>de</strong> 1500 octets.2Pour le co<strong>de</strong> RS-FNT, nous avons représenté l'enco<strong>de</strong>ur en mo<strong>de</strong> systématique, maisaussi en mo<strong>de</strong> non-systématique.Lorsque les dimensions <strong>de</strong> co<strong>de</strong>s en jeu sont inférieures à k = 128, l'enco<strong>de</strong>urRS-FNT obtient <strong>de</strong>s performances similaires aux co<strong>de</strong>s <strong>de</strong> Reed-Solomon. Lorsquecette dimension augmente, les enco<strong>de</strong>urs classiques sont pénalisés par leur complexitéquadratique, et <strong>de</strong>viennent inutilisables en pratique, alors que le co<strong>de</strong> RS-FNT systématiquepermet <strong>de</strong> soutenir <strong>de</strong>s vitesses supérieures à 50Mbps, y compris pour <strong>de</strong>sdimensions <strong>de</strong> co<strong>de</strong>s supérieures à 10.000 éléments. Ces résultats permettent également<strong>de</strong> vali<strong>de</strong>r la complexité pratique en O(n log n) du co<strong>de</strong>, et conrme la négligibilitédu facteur en O(k log 2 k) lors du passage au mo<strong>de</strong> paquet/symbole.Ces résultats mettent, par ailleurs, en lumière l'impact <strong>de</strong> l'encodage systématiquequi réduit la vitesse d'encodage d'un facteur d'environ 4:5. Ce résultat expérimentalpermet <strong>de</strong> vali<strong>de</strong>r le facteur 5 attendu grâce à l'analyse théorique du Tableau 6.2. En


6.4. Résultats <strong>de</strong> simulation 113Figure 6.4 Vitesse <strong>de</strong> décodage <strong>de</strong>s diérents co<strong>de</strong>s <strong>de</strong> Reed-Solomon et du co<strong>de</strong>RS-FNT, en fonction <strong>de</strong> la dimension du co<strong>de</strong>, taux <strong>de</strong> codage 1 , symboles <strong>de</strong> 15002octetsmo<strong>de</strong> non-systématique, l'enco<strong>de</strong>ur RS-FNT est capable <strong>de</strong> fonctionner à <strong>de</strong>s vitesses<strong>de</strong> l'ordre <strong>de</strong> 200-300Mbps, ce qui peut être un atout considérable dans le cadre, parexemple, <strong>de</strong> stockage distribué, où le débit en écriture est crucial.De manière similaire, sur la Figure 6.4, nous avons représenté la vitesse <strong>de</strong> décodagecorrespondante. Nous n'avons pas ici représenté le déco<strong>de</strong>ur RS-FNT nonsystématique, celui-ci n'ayant une vitesse que légèrement supérieure à celle <strong>de</strong> la versionsystématique.Les résultats obtenus sont similaires à ceux <strong>de</strong> l'enco<strong>de</strong>ur, le co<strong>de</strong> RS-FNT prenantl'avantage sur les autres co<strong>de</strong>s dès que la dimension du co<strong>de</strong> dépasse 256. Commeattendu lors <strong>de</strong> l'analyse <strong>de</strong> complexité, les vitesses <strong>de</strong> l'enco<strong>de</strong>ur et du déco<strong>de</strong>ur duco<strong>de</strong> RS-FNT sont sensiblement équivalentes et toujours supérieures à 50Mbps.Les opérations <strong>de</strong> poinçonnage/padding n'ayant que peu d'inuence sur les performancesdu co<strong>de</strong> RS-FNT, les résultats d'expérimentation ont montré une tendancesimilaire pour <strong>de</strong>s dimensions et tailles <strong>de</strong> co<strong>de</strong>s diérentes d'une puissance <strong>de</strong> <strong>de</strong>ux.


114 Chapitre 6. Co<strong>de</strong>s à eacements MDS basés sur les FNT6.5 ConclusionDans ce chapitre, nous avons présenté un co<strong>de</strong> <strong>de</strong> Reed-Solomon sur un corpsni dont la dimension est un nombre <strong>de</strong> Fermat premier. Sur ce corps, nous avonspu développer un enco<strong>de</strong>ur et un déco<strong>de</strong>ur systématique <strong>de</strong> complexité logarithmique,et qui permet donc d'atteindre la capacité <strong>de</strong>s co<strong>de</strong>s MDS. Nous avons égalementmené une analyse <strong>de</strong> complexité an <strong>de</strong> déterminer le coût exact du co<strong>de</strong> exprimés ennombre <strong>de</strong> FNT.Les résultats expérimentaux ont permis <strong>de</strong> vali<strong>de</strong>r cette analyse <strong>de</strong> complexité, touten mettant en lumière l'intérêt d'un tel co<strong>de</strong> MDS lorsque les dimensions <strong>de</strong>s co<strong>de</strong>sdépassent la centaine <strong>de</strong> symboles. Les simulations ont également montré que lesco<strong>de</strong>s RS-FNT restent utilisables en pratique jusqu'à <strong>de</strong>s tailles supérieures à 10.000symboles, avec <strong>de</strong>s vitesses supérieures à 50Mbps. Ceci ouvre donc tout un champ <strong>de</strong>possibilités concernant le codage optimal, et le partage <strong>de</strong> l'information et du secretsur un ensemble comportant un très grand nombre <strong>de</strong> systèmes. Les vitesses atteintespar l'enco<strong>de</strong>ur non-systématique (> 200Mbps) permettent également d'envisager ceco<strong>de</strong> comme une réponse au besoin <strong>de</strong> stockage et <strong>de</strong> sauvegar<strong>de</strong> distribués sur ungrand nombre <strong>de</strong> plate-formes. En eet, ces <strong>pro</strong>blématiques requièrent un coût minimallors <strong>de</strong> la phase d'écriture, tout en étant plus souple lors <strong>de</strong> la phase d'accès.Parmi les nombreuses pistes d'optimisation envisagées pour ce co<strong>de</strong>, nous avonsétudié la possibilité d'utiliser les architectures massivement parallèles <strong>de</strong>s cartes graphiques(solutions <strong>de</strong> type GPU, CUDA,...) sur lesquelles <strong>de</strong>s librairies <strong>de</strong> FFT optimiséessont disponibles. Nous nous sommes malheureusement heurtés aux contraintes <strong>de</strong>temps <strong>de</strong> transfert entre le CPU et le GPU, rendant caduque ce calcul via le GPU. Dela même manière, nous n'avons pas pu intégrer <strong>de</strong> manière transparente les librairies<strong>de</strong> multiplication polynômiales optimisée [86], du fait du corps spécique sur lequelnous travaillons.Cependant quelques pistes d'optimisation sont encore envisageables. Tout d'abordau niveau théorique, comme nous l'avons vu précé<strong>de</strong>mment, la question du short <strong>pro</strong>ductrestant une question ouverte, sa résolution pourrait conditionner un gain <strong>de</strong>vitesse théorique pouvant atteindre 67%. Du point <strong>de</strong> vue <strong>de</strong> l'implémentation, <strong>de</strong>récents résultats [87] concernant l'implémentation <strong>de</strong> la FNT au niveau matériel, toutcomme la FFT, permettent d'espérer un gain considérable sur les vitesses attendues,qui permettrait alors aux co<strong>de</strong>s RS-FNT <strong>de</strong> concurrencer les solutions non-MDS entermes <strong>de</strong> vitesse, tout en <strong>pro</strong>posant un codage optimal.Ce co<strong>de</strong> est publié librement sous licence LGPL sur [88]. Il est disponible dans lalibrairie OpenFEC [89].


Chapitre 7Conclusion et perspectives7.1 Résumé <strong>de</strong>s contributions et perspectives futuresDans ce chapitre, nous résumons les principales contributions <strong>de</strong> ce manuscrit etles pistes d'étu<strong>de</strong> envisagées.Tout d'abord, nous avons présenté un modèle mathématique pour les mécanismes<strong>de</strong> compression d'en-têtes <strong>pro</strong>tocolaires. Nous sommes parvenus à modéliser le comportement<strong>de</strong> mécanismes unidirectionnels et également à voie <strong>de</strong> retour. Nous avonségalement pu appliquer ce modèle au <strong>pro</strong>tocole ROHC qui est à ce jour un mécanismesophistiqué et largement déployé, mais pénalisé par sa relative complexité. Au prix <strong>de</strong>quelques restrictions, nous sommes parvenus à comparer les mo<strong>de</strong>s avec et sans voie<strong>de</strong> retour <strong>de</strong> ROHC et ce, dans diérents scénarios d'exploitation. A ce jour, le modèleprésenté reste le seul outil mathématique permettant une comparaison complète <strong>de</strong>smécanismes <strong>de</strong> compression unidirectionnels avec et sans voie <strong>de</strong> retour.Les perspectives concernant ce modèle consistent principalement à adapter <strong>de</strong> manièreplus précise les mécanismes spéciques aux <strong>pro</strong>tocoles visés. Une autre ap<strong>pro</strong>checomplémentaire serait aussi <strong>de</strong> permettre une modélisation ecace <strong>de</strong>s nouvelles implémentations<strong>de</strong> ROHC (ROHCv2). Le but serait alors <strong>de</strong> permettre une utilisationplus adaptée <strong>de</strong> ces <strong>pro</strong>tocoles en fonction <strong>de</strong>s cas d'exploitations souhaités.Par la suite, nous avons présenté trois contributions sur les co<strong>de</strong>s à eacements. Lapremière est un co<strong>de</strong> à eacements original basé sur un décodage hybri<strong>de</strong> <strong>de</strong> la matricegénératrice et <strong>de</strong> la matrice <strong>de</strong> parité. En contraignant la partie non-systématique duco<strong>de</strong> dans une ban<strong>de</strong>, nous sommes parvenus à augmenter signicativement la vitesse<strong>de</strong> décodage <strong>de</strong> ces co<strong>de</strong>s LDPC particuliers, dans les cas diciles, sans pour autantimpacter gran<strong>de</strong>ment la capacité <strong>de</strong> correction du co<strong>de</strong>. Ce co<strong>de</strong> LDPC particulier seprésente donc comme une alternative intéressante aux co<strong>de</strong>s LDPC classiques.Néanmoins, nous n'avons pas utilisé le fait que la structure <strong>de</strong> la matrice <strong>de</strong> parité<strong>de</strong> ces co<strong>de</strong>s était <strong>pro</strong>che <strong>de</strong> celle d'une matrice ban<strong>de</strong> également. Plus précisément,elle peut être ramenée à la concaténation <strong>de</strong> <strong>de</strong>ux matrices ban<strong>de</strong>s. Ceci ouvre donc<strong>de</strong>s perspectives intéressantes pour ces co<strong>de</strong>s, notamment pour une éventuelle adaptationdu décodage ML directement sur la matrice ban<strong>de</strong>, ce qui permettra <strong>de</strong> diminuerlargement les contraintes associées à ces co<strong>de</strong>s. Il est également envisageable, suite àces adaptations, <strong>de</strong> pouvoir travailler plus aisément sur <strong>de</strong>s métho<strong>de</strong>s d'optimisationbasées sur <strong>de</strong>s évolutions <strong>de</strong> <strong>de</strong>nsité.


116 Chapitre 7. Conclusion et perspectivesNous avons également présenté un décodage optimisé pour les co<strong>de</strong>s <strong>de</strong> Reed-Muller, sur le canal à eacements. Ces optimisations ont permis d'améliorer <strong>de</strong> manièreconséquente la capacité <strong>de</strong> correction <strong>de</strong> ces co<strong>de</strong>s, tout en conservant une complexitémathématique faible. Ainsi, sur <strong>de</strong>s co<strong>de</strong>s <strong>de</strong> petite taille, ces co<strong>de</strong>s se présentent dèslors comme un véritable concurrent aux co<strong>de</strong>s <strong>de</strong> Reed-Solomon, lorsque l'aspect MDS<strong>de</strong> ces co<strong>de</strong>s n'est pas un facteur crucial, les co<strong>de</strong>s <strong>de</strong> type LDPC étant alors pénaliséspar une forte inecacité.La question <strong>de</strong> la recherche <strong>de</strong> permutations ecaces avec une complexité limitéereste cependant un point ouvert. En eet, lors <strong>de</strong> nos simulations, nous avonsconstaté que la complexité <strong>de</strong> cette recherche empêchait d'améliorer la capacité <strong>de</strong>ces co<strong>de</strong>s. En supposant qu'un algorithme <strong>de</strong> recherche ecace, <strong>de</strong> complexité mêmequadratique existe, ceci permettrait d'améliorer la capacité <strong>de</strong> ces co<strong>de</strong>s, sans pourautant augmenter leur complexité.Par la suite, nous avons présenté <strong>de</strong>s co<strong>de</strong>s MDS basés sur l'application <strong>de</strong> latransformée <strong>de</strong> Fourier sur <strong>de</strong>s corps nis dont le cardinal est un nombre <strong>de</strong> Fermatpremier. Un encodage et un décodage <strong>de</strong> complexité logarithmique ont été présentéspour ces co<strong>de</strong>s, appelés RS-FNT. Ceci permet à ces co<strong>de</strong>s d'être les premiers co<strong>de</strong>ssur le canal à eacements à atteindre la limite <strong>de</strong> complexité théorique <strong>de</strong>s co<strong>de</strong>sMDS. Ces co<strong>de</strong>s ont montré qu'il était possible d'utiliser <strong>de</strong> manière pratique <strong>de</strong>sco<strong>de</strong>s MDS sur <strong>de</strong>s tailles pouvant atteindre plusieurs milliers <strong>de</strong> symboles.Si la limite théorique <strong>de</strong>s co<strong>de</strong>s MDS a été atteinte par ces co<strong>de</strong>s, il reste cependantun travail signicatif à eectuer sur la constante cachée par cette complexité. Grâceà une analyse théorique, nous sommes parvenus à évaluer la complexité <strong>de</strong> ce co<strong>de</strong> enfonction du nombre <strong>de</strong> FFT à calculer. Ceci a permis <strong>de</strong> mettre en évi<strong>de</strong>nce les pointsà améliorer du co<strong>de</strong>, notamment la question <strong>de</strong> l'optimisation du short <strong>pro</strong>duct, quiore potentiellement un gain important. De la même manière, un travail importantreste à eectuer sur l'optimisation <strong>de</strong>s FFT elles-mêmes sur ces corps, notammentgrâce à l'intérêt du calcul parallélisé.Les perspectives et les enjeux <strong>de</strong> ces co<strong>de</strong>s sont <strong>pro</strong>bablement les plus importantsparmi les contributions présentées ici. Si les co<strong>de</strong>s RS-FNT se présentent comme unealternative intéressante théoriquement, par rapport aux co<strong>de</strong>s <strong>de</strong> type LDPC ou Raptorpour <strong>de</strong>s gran<strong>de</strong>s longueurs <strong>de</strong> co<strong>de</strong>, le rapport <strong>de</strong> vitesse <strong>de</strong> l'ordre <strong>de</strong> 40x en défaveur<strong>de</strong> ces co<strong>de</strong>s MDS, limite malheureusement l'intérêt <strong>de</strong> ces co<strong>de</strong>s. En supposantque les optimisations évoquées puissent réduire ce ratio en <strong>de</strong>ssous d'un ordre <strong>de</strong>gran<strong>de</strong>ur, les co<strong>de</strong>s RS-FNT <strong>de</strong>viendraient alors un concurrent plus que sérieux auxco<strong>de</strong>s LDPC et Raptor, surtout en prenant compte <strong>de</strong> l'évolution du calcul paralléliséet <strong>de</strong>s évolutions supposées <strong>de</strong>s capacités <strong>de</strong> calcul.


7.2. Contributions diverses 1177.2 Contributions diverses7.2.1 Publications Soro, Alexandre and Lacan, Jérôme and Chaput, Emmanuel and Donny, Christopheand Baudoin, Cédric ( 2007) Evaluation of a generic unidirectional hea<strong>de</strong>rcompression <strong>pro</strong>tocol. In : International Workshop on Satellite and Space Communications- IWSSC '07, 13-14 Sept 2007, Salzburg, Austria. Cunche, Mathieu and Savin, Valentin and Roca, Vincent and Kraidy, G. andSoro, Alexandre and Lacan, Jérôme ( 2008) Low-rate coding using incrementalredundancy for GLDPC co<strong>de</strong>s. In : International Workshop on Satellite andSpace Communications (IWSSC'08), 01-03 Oct 2008, Toulouse, France. Soro, Alexandre and Cunche, Mathieu and Lacan, Jérôme and Roca, Vincent(2009) Erasure co<strong>de</strong>s with a ban<strong>de</strong>d structure for hybrid iterative-ML <strong>de</strong>coding.In : IEEE Global Communication Conference. Globecom 2009 , 30 Nov - 04Dec 2009, Honolulu, Hawai, United States. Soro, Alexandre and Lacan, Jérôme ( 2009) FNT-based reed-solomon erasureco<strong>de</strong>s. In : 7th Annual IEEE Consumer Communications and Networking Conference, 09-12 Jan 2010, Las Vegas, United States.En cours <strong>de</strong> soumission : Soro, Alexandre and Lacan, Jérôme and Chaput, Emmanuel and Baudoin, Cédric"Evaluation of a generic hea<strong>de</strong>r compression <strong>pro</strong>tocol".7.2.2 Logiciels Co<strong>de</strong>s <strong>de</strong> Reed-Muller pour le canal à eacements <strong>de</strong> paquets : http://personnel.isae.fr/jerome-lacan/reed-muller-erasure-co<strong>de</strong>s.html Co<strong>de</strong>s à eacements MDS basés sur les FNT : http://personnel.isae.fr/jerome-lacan/article/fnt-based-reed-solomon-co<strong>de</strong>s.html Co<strong>de</strong>s Raptor (<strong>pro</strong>jet CNES - 2008) Contributions à OpenFEC.org : http://www.openfec.org/


Bibliographie[1] C. E. Shannon, A mathematical theory of communication, Bell Sys. Tech. J.,vol. 27, pp. 379423, 623656, 1948. 1, 5[2] P. Elias, Coding for two noisy channels, Information Theory, The 3rd LondonSymposium, pp. 6176, 1955. 7[3] R. Singleton, Maximum distance q-nary co<strong>de</strong>s, IEEE Transactions on InformationTheory, vol. 10, pp. 116118, 1964. 11[4] A. Shamir, How to share a secret, Commun. ACM, vol. 22, no. 11, pp. 612613,1979. 11, 97[5] R. J. McEliece and D. V. Sarwate, On sharing secrets and reed-solomon co<strong>de</strong>s,Commun. ACM, vol. 24, no. 9, pp. 583584, 1981. 11[6] M. O. Rabin, Ecient dispersal of information for security, load balancing, andfault tolerance, J. ACM, vol. 36, no. 2, pp. 335348, 1989. 11, 14, 97[7] I. S. Reed and G. Solomon, Polynomial Co<strong>de</strong>s Over Certain Finite Fields, Journalof the Society for Industrial and Applied Mathematics, vol. 8, no. 2, pp.300304, 1960. 11[8] E. R. Berlekamp, Nonbinary BCH <strong>de</strong>coding, IEEE Transactions on InformationTheory, vol. 14, pp. 242242, 1968. 12[9] , Algebraic coding theory. McGraw-Hill, 1968. 12[10] J. Massey, Shift-register synthesis and BCH <strong>de</strong>coding, Information Theory,IEEE Transactions on, vol. 15, pp. 122127, 1969. 12[11] R. Blahut, Algebraic elds, signal <strong>pro</strong>cessing, and error control, Proceedings ofthe IEEE, vol. 73, no. 5, pp. 874893, May 1985. 12, 98[12] F. Didier, Ecient erasure <strong>de</strong>coding of reed-solomon co<strong>de</strong>s, CoRR, vol.abs/0901.1886, 2009. 12, 98[13] J. S. Plank, A tutorial on Reed-Solomon coding for fault-tolerance in RAIDlikesystems, Software Practice & Experience, vol. 27, no. 9, pp. 9951012,September 1997. 12, 97[14] J. S. Plank and Y. Ding, Note : Correction to the 1997 tutorial on reed-solomoncoding, University of Tennessee, Tech. Rep. CS-03-504, April 2003. 12, 97[15] L. Rizzo, Eective Erasure Co<strong>de</strong>s For Reliable Computer Communication Protocols,ACM Computer Communication Review, vol. 27, no. 2, pp. 2436, April1997. 12, 111[16] J. Lacan, V. Roca, J. Peltotalo, and S. Peltotalo, Reed-SolomonForward Error Correction (FEC) Schemes, RFC 5510 (Proposed Standard),Internet Engineering Task Force, Apr. 2009. [Online]. Available : http://www.ietf.org/rfc/rfc5510.txt 12


120 Bibliographie[17] F. J. MacWilliams and N. J. A. Sloane, The Theory of Error-Correcting Co<strong>de</strong>s.North-Holland, 1977. 13, 89, 90[18] J. Bloemer, M. Kalfane, M. Karpinski, R. Karp, M. Luby, and D. Zuckerman,An XOR-Based Erasure-Resilient Coding Scheme, in Technical Report ICSITR-95-048, August 1995. 14, 111[19] L. Dairaine, L. Lancérica, J. Lacan, and J. Fimes, Content-Access QoS in Peerto-PeerNetworks Using a Fast MDS Erasure Co<strong>de</strong>, Computer Communications,vol. 28, no. 15, pp. 17781790, september 2005. 14, 111[20] R. G. Gallager, Low Density Parity Check Co<strong>de</strong>s, Ph.D. dissertation, MIT,1963. 15[21] D. J. MacKay and R. M. Neal, Near shannon limit performance of low <strong>de</strong>nsityparity check co<strong>de</strong>s, Electronics Letters, vol. 32, pp. 16451646, 1996. 16[22] J. W. Byers, M. Luby, M. Mitzenmacher, and A. Rege, A digital fountain ap<strong>pro</strong>achto reliable distribution of bulk data, SIGCOMM Comput. Commun. Rev.,pp. 5667, 1998. 16[23] M. Luby, LT co<strong>de</strong>s, Foundations of Computer Science, 2002. Proceedings. The43rd Annual IEEE Symposium on, pp. 271280, 2002. 16, 22[24] A. Shokrollahi, Raptor co<strong>de</strong>s, IEEE/ACM Trans. Netw., vol. 14, no. SI, pp.25512567, 2006. 16, 23[25] V. V. Zyablov and M. S. Pinsker, Decoding complexity of Low-Density Co<strong>de</strong>sfor transmission in a channel with erasures, Probl. Peredachi Inf., vol. 10, pp.1528, 1974. 16[26] R. Tanner, A recursive ap<strong>pro</strong>ach to low complexity co<strong>de</strong>s, IEEE Transactionson Information Theory,, vol. 27, no. 5, pp. 533547, 1981. 16[27] T. J. Richardson and R. L. Urbanke, Ecient encoding of low-<strong>de</strong>nsity paritycheckco<strong>de</strong>s, IEEE Transactions on Information Theory, vol. 47, no. 2, pp.638656, 2001. 18[28] D. Divsalar, H. Jin, and R. J. McEliece, Coding theorems for 'turbo-like' co<strong>de</strong>sin Proc. 36th Annu. Allerton Conf. Commun., Contr., Comput., pp. 201210,1998. 20[29] V. Roca, C. Neumann, and D. Furo<strong>de</strong>t, Low Density Parity Check (LDPC)Staircase and Triangle Forward Error Correction (FEC) Schemes, RFC 5170(Proposed Standard), Internet Engineering Task Force, Jun. 2008. [Online].Available : http://www.ietf.org/rfc/rfc5170.txt 20, 74[30] M. Luby, A. Shokrollahi, M. Watson, and T. Stockhammer, RaptorForward Error Correction Scheme for Object Delivery, RFC 5053 (ProposedStandard), Internet Engineering Task Force, Oct. 2007. [Online]. Available :http://www.ietf.org/rfc/rfc5053.txt 22, 23[31] 3GPP. Multimedia Broadcast/Multicast Service (MBMS) ; Protocols and co<strong>de</strong>cs.TS 26.346, 3rd Generation Partnership Project (3GPP). 23


Bibliographie 121[32] ETSI IP Datacast over DVB-H : Content Delivery Protocols (CDP). TechnicalReport TS 102 472 v1.2.1, ETSI, 2006. 23[33] A. Shokrollahi, S. Lassen, and R. Karp, Systems and <strong>pro</strong>cesses for <strong>de</strong>codingchain reaction co<strong>de</strong>s through inactivation, US Patent 6,856,263. 26[34] M. Luby, T. Gasiba, T. Stockhammer, and M. Watson, Reliable MultimediaDownload Delivery in Cellular Broadcast Networks, Broadcasting, IEEE Transactionson, vol. 53, pp. 235246, 2007. 27[35] V. Suryavanshi and A. Nosratinia, Convolutional coding for resilient packet hea<strong>de</strong>rcompression, in Proc. Global Telecommunications Conference, GLOBECOM'05, 2005. 27[36] D. Farber, G. Delp, and T. Conte, Thinwire <strong>pro</strong>tocol for connecting personalcomputers to the Internet, RFC 914 (Historic), Internet Engineering TaskForce, Sep. 1984. [Online]. Available : http://www.ietf.org/rfc/rfc914.txt 28[37] V. Jacobson, Compressing TCP/IP Hea<strong>de</strong>rs for Low-Speed Serial Links,RFC 1144 (Proposed Standard), Internet Engineering Task Force, Feb. 1990.[Online]. Available : http://www.ietf.org/rfc/rfc1144.txt 28[38] K. Ramakrishnan, S. Floyd, and D. Black, The Addition of Explicit CongestionNotication (ECN) to IP, RFC 3168 (Proposed Standard), Internet EngineeringTask Force, Sep. 2001. [Online]. Available : http://www.ietf.org/rfc/rfc3168.txt30[39] M. Degermark, B. Nordgren, and S. Pink, IP Hea<strong>de</strong>r Compression, RFC 2507(Proposed Standard), Internet Engineering Task Force, Feb. 1999. [Online].Available : http://www.ietf.org/rfc/rfc2507.txt 31, 65[40] S. Casner and V. Jacobson, Compressing IP/UDP/RTP Hea<strong>de</strong>rs for Low-SpeedSerial Links, RFC 2508 (Proposed Standard), Internet Engineering Task Force,Feb. 1999. [Online]. Available : http://www.ietf.org/rfc/rfc2508.txt 31[41] T. Koren, S. Casner, J. Geevarghese, B. Thompson, and P. Ruddy, EnhancedCompressed RTP (CRTP) for Links with High Delay, Packet Loss andReor<strong>de</strong>ring, RFC 3545 (Proposed Standard), Internet Engineering Task Force,Jul. 2003. [Online]. Available : http://www.ietf.org/rfc/rfc3545.txt 31[42] A.-V. T. W. Group, H. Schulzrinne, S. Casner, R. Fre<strong>de</strong>rick, and V. Jacobson,RTP : A Transport Protocol for Real-Time Applications, RFC 1889 (ProposedStandard), Internet Engineering Task Force, Jan. 1996, obsoleted by RFC 3550.[Online]. Available : http://www.ietf.org/rfc/rfc1889.txt 33[43] C. Bormann, C. Burmeister, M. Degermark, H. Fukushima, H. Hannu, L.-E.Jonsson, R. Hakenberg, T. Koren, K. Le, Z. Liu, A. Martensson, A. Miyazaki,K. Svanbro, T. Wiebke, T. Yoshimura, and H. Zheng, RObust Hea<strong>de</strong>rCompression (ROHC) : Framework and four <strong>pro</strong>les : RTP, UDP, ESP,and uncompressed, RFC 3095 (Proposed Standard), Internet EngineeringTask Force, Jul. 2001, updated by RFCs 3759, 4815. [Online]. Available :http://www.ietf.org/rfc/rfc3095.txt 37


122 Bibliographie[44] L.-E. Jonsson and G. Pelletier, RObust Hea<strong>de</strong>r Compression (ROHC) :A Compression Prole for IP, RFC 3843 (Proposed Standard), InternetEngineering Task Force, Jun. 2004, updated by RFC 4815. [Online]. Available :http://www.ietf.org/rfc/rfc3843.txt 37[45] G. Pelletier, RObust Hea<strong>de</strong>r Compression (ROHC) : Proles for UserDatagram Protocol (UDP) Lite, RFC 4019 (Proposed Standard), InternetEngineering Task Force, Apr. 2005, updated by RFC 4815. [Online]. Available :http://www.ietf.org/rfc/rfc4019.txt 37[46] G. Pelletier, K. Sandlund, L.-E. Jonsson, and M. West, RObust Hea<strong>de</strong>rCompression (ROHC) : A Prole for TCP/IP (ROHC-TCP), RFC 4996(Proposed Standard), Internet Engineering Task Force, Jul. 2007. [Online].Available : http://www.ietf.org/rfc/rfc4996.txt 37[47] L.-E. Jonsson, K. Sandlund, G. Pelletier, and P. Kremer, RObust Hea<strong>de</strong>rCompression (ROHC) : Corrections and Clarications to RFC 3095, RFC 4815(Proposed Standard), Internet Engineering Task Force, Feb. 2007. [Online].Available : http://www.ietf.org/rfc/rfc4815.txt 37[48] L.-E. Jonsson, G. Pelletier, and K. Sandlund, The RObust Hea<strong>de</strong>r Compression(ROHC) Framework, RFC 4995 (Proposed Standard), Internet EngineeringTask Force, Jul. 2007, obsoleted by RFC 5795. [Online]. Available :http://www.ietf.org/rfc/rfc4995.txt 37[49] G. Pelletier and K. Sandlund, RObust Hea<strong>de</strong>r Compression Version 2(ROHCv2) : Proles for RTP, UDP, IP, ESP and UDP-Lite, RFC 5225(Proposed Standard), Internet Engineering Task Force, Apr. 2008. [Online].Available : http://www.ietf.org/rfc/rfc5225.txt 37[50] K. Sandlund, G. Pelletier, and L.-E. Jonsson, The RObust Hea<strong>de</strong>r Compression(ROHC) Framework, RFC 5795 (Proposed Standard), Internet EngineeringTask Force, Mar. 2010. [Online]. Available : http://www.ietf.org/rfc/rfc5795.txt37[51] C. Y. Cho, W. K. G. Seah, and Y. H. Chew, A framework and source mo<strong>de</strong>l for<strong>de</strong>sign and evaluation of robust hea<strong>de</strong>r compression, Comput. Netw., vol. 50,no. 15, pp. 26762712, 2006. 42[52] C. Y. Cho, Y. H. Chew, and W. K. G. Seah, Mo<strong>de</strong>ling and analysis of robusthea<strong>de</strong>r compression performance, in WOWMOM '05 : Proceedings of the SixthIEEE International Symposium on World of Wireless Mobile and Multimedia Networks.Washington, DC, USA : IEEE Computer Society, 2005, pp. 192197.42[53] A. Minaburo, Compression <strong>de</strong>s en-têtes dans les réseaux haut-débit, Ph.D.dissertation, Université <strong>de</strong> Rennes I, December 2003. 42[54] A. Couvreur, L.-M. Le Ny, A. Minaburo, G. Rubino, B. Sericola, andL. Toutain, Performance analysis of an hea<strong>de</strong>r compression <strong>pro</strong>tocol : Therohc unidirectional mo<strong>de</strong>, INRIA, Research Report RR-5300, 2004. [Online].Available : http://hal.inria.fr/inria-00070700/PDF/RR-5300.pdf 42


Bibliographie 123[55] E. N. Gilbert, Capacity of a burst-noise channel, The Bell System TechnicalJournal, vol. 39, pp. 12531265, Sep. 1960. 46[56] E. O. Elliott, Estimates of error rates for co<strong>de</strong>s on burst-noise channels, TheBell System Technical Journal, vol. 42, pp. 19771997, Sep. 1963. 46[57] ETSI "Digital Vi<strong>de</strong>o Broadcasting (DVB) ; Framing structure, channel codingand modulation for 11/12 GHz satellite services" European Standard EN 300421 V1.1.2, ETSI, 1997. 46[58] ETSI "Digital Vi<strong>de</strong>o Broadcasting (DVB) ; Second generation framing structure,channel coding and modulation systems for Broadcasting, Interactive Services,News Gathering and other broadband satellite applications (DVB-S2)" EN 302307 V1.2.1, ETSI, 2009. 46[59] M. Yajnik, S. Moon, J. Kurose, and D. Towsley, Measurement and mo<strong>de</strong>ling ofthe temporal <strong>de</strong>pen<strong>de</strong>nce in packet loss, in INFOCOM, 1999, pp. 345352. 46[60] J.-C. Bolot, S. Fosse-Parisis, and D. Towsley, Adaptive fec-based error controlfor internet telephony, INFOCOM '99. Eighteenth Annual Joint Conference ofthe IEEE Computer and Communications Societies. Proceedings. IEEE, vol. 3,pp. 14531460 vol.3, Mar 1999. 46[61] M. Degermark, M. Engan, B. Nordgren, and S. Pink, Low-loss tcp/ip hea<strong>de</strong>rcompression for wireless networks, In Proceedings from MobiCom, 1996. 65[62] J. Aikat, J. Kaur, F. Donelson, and S. K. Jeay, Variability in tcp round-triptimes, 3rd ACM SIGCOMM conference on Internet measurement, 2003. 68[63] F. Vacirca, F. Ricciato, and R. Pilz, Large-scale RTT measurements from anoperational umts/gprs network, First International Conference on Wireless Internet,pp. 190197, 2005. 69[64] G. Sawar, E. Lochin, and R. Boreli, Experimental performance of dccp over livesatellite and long range wireless links, International Symposium on Communicationsand Information Technologies (ISCIT07), pp. 689694, Oct. 2007. 69[65] J. A. Perez, B. Donnet, and O. Bonaventure, Preliminary analysis of the tcpbehavior in 802.16 networks, 1st WEIRD Workshop on WiMAX, Wireless andMobility, May 2007. 69[66] C. Studholme and I. Blake, Windowed erasure co<strong>de</strong>s, Information Theory, 2006IEEE International Symposium on, pp. 509513, July 2006. 72[67] , Random matrices and co<strong>de</strong>s for the erasure channel, Algorithmica, April2008. 72[68] T. J. Richardson, M. A. Shokrollahi, and R. L. Urbanke, Design of capacityap<strong>pro</strong>achingirregular low-<strong>de</strong>nsity parity-check co<strong>de</strong>s, IEEE Trans. Inform.Theory, vol. 47, pp. 619637, 2001. 79[69] G. H. Golub and C. F. van Loan, Matrix Computations, 3rd ed. Johns HopkinsUniversity Press, 1996. 80


124 Bibliographie[70] I. S. Reed, A class of multiple-error-correcting co<strong>de</strong>s and the <strong>de</strong>coding scheme.IEEE Transactions on Information Theory, vol. 4, pp. 3849, 1954. 85[71] D. E. Muller, Application of boolean algebra to switching circuit <strong>de</strong>sign and toerror <strong>de</strong>tection. IEEE Transactions on Computers, vol. 3, pp. 612, 1954. 85[72] I. Dumer and K. Shabunov, Soft-<strong>de</strong>cision <strong>de</strong>coding of reed-muller co<strong>de</strong>s : recursivelists. IEEE Transactions on Information Theory, vol. 52, pp. 12601266,2006. 85[73] C. Hänle, Feasibility study of erasure correction for multicast le distributionusing the network simulator ns-2, IEEE Military Communications Conference,vol. 3, pp. 12601266, 1998. 85[74] M. Plotkin, Binary co<strong>de</strong>s with specied minimum distance, IRE Transactionson Information Theory, vol. 6, pp. 445450, 1960. 86[75] T. Hehn, O. Milenkovic, S. Laendner, and J. B. Huber, Permutation <strong>de</strong>codingand the stopping redundancy hierarchy of cyclic and exten<strong>de</strong>d cyclic co<strong>de</strong>s. IEEETransactions on Information Theory, no. 12, pp. 53085331, 2008. 90[76] http://personnel.isae.fr/jerome-lacan/reed-muller-erasure-co<strong>de</strong>s.html. 95[77] V. Strassen, Die berechnungskomplexität von elementarsymmetrischen funktionenund von interpolationskoezienten, j-NUM-MATH, vol. 20, no. 3, pp. 238251, jun 1973. 98[78] J. M. Pollard, The Fast Fourier Transform in a nite eld, Mathematics ofComputation, vol. 25, no. 114, pp. 365374, Apr. 1971. 98, 99[79] J. M. Cooley and J. W. Tukey, An algorithm for the machine calculation ofcomplex fourier series, Math. Comp., vol. 19, p. 297, 1965. 99[80] A. Karatsuba and Y. Oman, Multiplication of multidigit numbers on automata,Soviet Physics Doklady, vol. 7, pp. 595596, 1963. 103[81] A. L. Toom, The complexity of a scheme of functional elements realizingthemultiplication of integers, Translations of Soviet Mathematics SSSR 4, 1963.103[82] S. A. Cook, On the minimum computation time of functions, Ph.D. dissertation,Department of Mathematics, Harvard University, 1966. 103[83] A. Schonhage and V. Strassen, Schnelle multiplikation grosser zahlen, Computing,vol. 7, pp. 281292, 1971. 103[84] T. Mul<strong>de</strong>rs, On short multiplications and divisions, AAECC, vol. 11, pp. 6988,2000. 106[85] G. Hanrot and P. Zimmermann, A long note on Mul<strong>de</strong>rs' short <strong>pro</strong>duct,Journal of Symbolic Computation, vol. 37, pp. 391401, 2004. [Online].Available : http://hal.inria.fr/inria-00100069/en/ 106[86] The GNU MP Bignum Library. [Online]. Available : http://gmplib.org/ 114


Bibliographie 125[87] S. Li and J. Zhang, Area-<strong>de</strong>lay ecient parallel architecture for fermat numbertransform, IEICE Electronics Express, vol. 6, no. 8, pp. 449455, 2009. 114[88] FNT-based co<strong>de</strong>s. [Online]. Available : http://pages<strong>pro</strong>.isae.fr/jerome-lacan/114[89] The OpenFEC <strong>pro</strong>ject. [Online]. Available : http://www.openfec.org/ 114

Hooray! Your file is uploaded and ready to be published.

Saved successfully!

Ooh no, something went wrong!