1 / 36

Robust Header Compression

Robust Header Compression. Un projet à l’. Microelectronics. Responsable de projet: Vincent Roca. Jack Ballesteros. Rémi Blanc. Consultante: Karine Excoffier (Sun Microsystems). RoHC. Compression d’en-tête robuste. En collaboration avec. Plan. Quels sont les acteurs du projet?

yorick
Download Presentation

Robust Header Compression

An Image/Link below is provided (as is) to download presentation Download Policy: Content on the Website is provided to you AS IS for your information and personal use and may not be sold / licensed / shared on other websites without getting consent from its author. Content is provided to you AS IS for your information and personal use only. Download presentation by click this link. While downloading, if for some reason you are not able to download a presentation, the publisher may have deleted the file from their server. During download, if you can't get a presentation, the file might be deleted by the publisher.

E N D

Presentation Transcript


  1. Robust Header Compression Un projet à l’ Microelectronics Responsable de projet: Vincent Roca Jack Ballesteros Rémi Blanc Consultante: Karine Excoffier (Sun Microsystems) RoHC Compression d’en-tête robuste En collaboration avec

  2. Plan • Quels sont les acteurs du projet? • Pourquoi en a-t-on besoin? • Quel est le but du projet? • Introduction à la norme RoHC • Cahier des charges • Introduction • Gestion de projet • Aspects techniques • Bilan

  3. AdvancedSystem Technologies Vincent Roca (responsable de projet) Pascal Moniot • L’équipe RoHC: • Nicolas Albarel • Mikael Desertot • L’équipe RoHC2: • Jack Ballesteros • Rémi Blanc • Mathias Dietrich • David Furodet Quels sont les acteurs du projet? Karine Excoffier Sun Microsystems (consultante)

  4. Pourquoi en a-t-on besoin? IP • Les connexions sans fils sont lentes. • Les paquets IP sont trop gros. • Il y a un besoin de compresser les paquets.

  5. Quel est le but du projet? Compresser les paquets IP Structure d’un paquet IP: En-tête Données Compresser l’en-tête En-têtes trop compressés -> Pertes de paquets Une compression robuste: compresser les en-têtes sans augmenter les pertes Robust Header Compression

  6. Quelques techniques de compression d’en-tête • Van Jacobson - RFC 1144 (PPP): IPv4/TCP • IPHC – RFC 2507: développé au départ pour IPv6, et adapté par la suite à d’autres protocoles. • CRTP – RFC 2508: IP/UDP(/RTP) • RoHC – RFC 3095:IP/UDP(/RTP)

  7. Principes de fonctionnement de RoHC Emetteur Recepteur Data Application Application Presentation Presentation Session Session Transport Transport IP Header Network Network RoHC RoHC Data Link Data Link Physical Physical

  8. Context Architecture de RoHC OSI layers Decompressed flows Packet stream Application Presentation Session decompressor Compressionfront end Transport RoHC framework RoHC framework Network Decompressionfront end RoHC Compressor Data Link Compressed headers Physical Link

  9. Classification des champs des en-têtes: IPv4

  10. Classification des champs des en-têtes: RTP/UDP/IPv6

  11. RoHC Profiles • Profil 0: pas de compression • Profil 1: RTP/UDP/IP • Profil 2: UDP/IP • Profil 3: ESP/IP • Profil 4: IP • Pas de profil de compression TCP/IP, c’est en cours de définition au niveau de l’IETF (Draft)

  12. Cahier des charges • Travaux réalisés lors du précédent projet: • Implémentation du framework RoHC • Profil 0 (non compressé) • Profil 2 (UDP/IP) sans le mode "Reliable" • Travaux à réaliser lors de ce projet: • Profil 2: rajouter le mode "Reliable" • Profil 1 (RTP/UDP/IP) • Mise en oeuvre de RoHC sur des réseaux sans-fil (802.11b) • Support d'IPv6 dans RoHC • Tests et évaluations des performances

  13. Gestion de projet • Introduction • Gestion de projet • Aspects techniques • Bilan • Gestion de la qualité • critères qualité • code • outils • Planning et gestion des risques

  14. Critères qualité • Fiabilité: • Pourquoi: le code est intégré dans le noyau Linux • Comment l’atteindre: • Tests nombreux et complets • Bonne modularité • Comment l’évaluer: • 100% des tests doivent passer • Maintenabilité: • Pourquoi: le code va être réutilisé par STM • Comment l’atteindre: • Utilisation des règles de codage de STM • Utilisation de commentaires • Documentation complète et détaillée • Comment l’évaluer: • Toutes les fonctions et structures ont un commentaire Doxygen • Évaluation des performances requise

  15. Code • Stocké sur un répertoire partagé • Sauvegardé automatiquement chaque nuit • Utilisation de CVS: Concurrent Versions System • Règles de codage données par STM • Les commentaires sont compatibles avec • Les bugs sont gérés avec l’outil Mantis

  16. Outils • Génération de paquets: SendIP, Nemesis • Capture de paquets: Ethereal, Tcpdump, Analyser • Gestion des bugs: Mantis • Débug et mise au point: KGDB, par liaison série • Documentation: Doxygen

  17. Liste des paquets capturés Décomposition du paquet Analyser Données brutes du paquet

  18. Gestion de projet • Introduction • Gestion de projet • Gestion de la qualité • Planning et gestion des risques • cycle de vie logiciel • jalons et planning • gestion des risques • Aspects techniques • Bilan

  19. Modèle en V du cycle de vie Logiciel Analyse des besoins Tests Spécification Conception Codage

  20. 2 Periodes 4 Jalons pour les livrables 3 Audits Jalons & Planning du projet • Spécifications Externes • Plan de Tests • Test Spécification Système • Spécifications Tests Performances • Manuel Utilisateur • Spécification Test système Existant + Tests • Tests Unitaires • Tests d’Intégration • Tests de Performance • Tests Système • Tests Opérationnel • Etude EPIC • Plan d’Assurance Qualité Logiciel • Cahier des charges • Plan Developpement Logiciel • Profile 2 (UDP/IP) • Profile 1 (RTP/UDP/IP) • Support IPv6 • Mise en oeuvre 802.11b • Architecture Logicielle • Specification Tests d’ Integration • Conception Detaillé

  21. Gestion et évaluation des risques • Programmation du noyau Linux • Difficulté de débuguer le noyau • Manque de connaissance sur l’architecture du noyau • Implémentation IPv6 • Stade expérimental sur le noyau Linux version 2.4.x • Rupture avec la précédente implémentation • Faible expérience de l’équipe de projet • Modification des spécifications de RoHC • Retard dans la fourniture de matériel (carte 802.11b)

  22. Aspects techniques • Introduction • Gestion de projet • Aspects techniques • Architecture logicielle • Méchanismes de RoHC • Configuration • Plateforme de test et debug • Tests • Performances • Bilan

  23. Architecture réseau Linux

  24. RoHC Framework Kernel code Kernel module Kernel space Architecture logicielle Encapsulation of OS dependent services RTP Memory managing MANAGER Synchronisation Manager interface UDP ESP F I L T ER C O N V E R T E R IP PROFILE 0 C O N T E X T F R A M E W O R K PROFILE 1 Data link HOOK PROFILE 2 Physical layer PROFILE 3

  25. Modes & Etats RoHC • Décompresseur • Compresseur

  26. Exemple: mode optimiste Décompresseur Compresseur UOR-2 Ack IR UO-0 Unidirectional Optimistic Optimistic Unidirectional IR No context FO Static context SO Full context

  27. Configuration de RoHC <?xml version="1.0"?> <!DOCTYPE rohc SYSTEM "rohconfig.dtd"> <rohc> <interface if="eth0" type="ETH"> <cid max="15" type="large"/> <packet_size min="46" max="1450"/> <feedback delay_max="1"/> <profile protocol="UDP"/> <packet_filter> <rule dest_address="00:08:02:33:4d:b1" protocol="UDP"/> </packet_filter> </interface> <interface if="wlan0" type="ETH"> <cid max="15" type="large"/> <packet_size min="46" max="1450"/> <feedback delay_max="1"/> <profile protocol="UDP"/> <packet_filter> <rule dest_address="ALL" protocol="UDP"/> </packet_filter> </interface> <NbFeedback val="8"/> <NbPacket min="2" max="3"/> <NbContext min="4" max="5"/> <hashtable_size compressor="6" decompressor="7"/> <maxChannel val="8"/> <decompressor mode="optimistic"/> <context timout="10000"/> <Print performances="no" statistic="no"/> </rohc>

  28. Plateforme de développement RoHC Wireless Analyseur de paquets Debugger sur liaison série Pc Developpement Analyseur de paquets RoHC PC Noyau Linux 2.4.x IPV6, 802.11b, ... debuggeur noyau (kgdb) ConsoleSerie Pc Serveur de fichier sauvegardé

  29. Debug d’un module du noyau • Récupération des sources du module • Compilation du module • Chargement du module en mémoire et récupération de la table des symboles • Génération d’un script pour le débuggeur • Transfert des fichiers vers la machine de debug • Exécution du débuggeur et connexion avec la machine hôte

  30. Enregistrement des résultats Packets de test Capture Ethereal Tests • Tests sur le système existant • A chaque étape • Tests Automatisés • Paquets non-compressés Iseran Stockage de fichiers • Paquets compressés • Paquets décompressés • Etats du décompresseur • Etats du compresseur Routeur Lupus RoHC Loup RoHC TcpDump Hub Démarage de RoHC Capture TcpDump Démarage du test Démarage de RoHC Loutre Ethereal Station du réseau

  31. Performances Paquet IPv6/UDP Paquet IR Paquet UOR-2 Paquet UO-0 Pourcentage de données utiles dans le paquet Gain sur la taille totale (45 octets de données utiles) 42% 0% 42% 35% 65% 42% 71% 44% 67% Estimation pour le profil 1 (RTP/UDP/IPv6):

  32. Bilan • Introduction • Gestion de projet • Aspects techniques • Bilan • Qualité • Cahier des charges • Planning • Suite

  33. Bilan Qualité • Fiabilité • Nombreux bugs décelés et corrigés grâce aux tests automatisés • Anciens bugs non prioritaires mais clairement identifiés • Un puissant outil pour la fiabilité l’année prochaine • Maintenabilité • Nouveau code entièrement commenté • Ancien code commenté dans ses parties principales • Documentation complète • Traçage du fonctionnement amélioré

  34. Cahier des charges • Tests de l’existant • Profil 2 UDP/IP mode fiable • Profil 1 RTP/UDP/IP • Support de IPv6 • Mise en œuvre sur 802.11b • Evaluation des performances

  35. Planning

  36. Suite • Ce qu’il reste à faire: • finir de corriger les bugs listés • intégrer le profil 1 (RTP/UDP/IP) • mode fiable du profil 2 (UDP/IP) • analyse complète des performances Merci de votre attention

More Related