Robust Header Compression Un projet à l’ Jack Ballesteros Rémi Blanc En collaboration avec Microelectronics Compression d’en-tête robuste Compression d’en-tête robuste Responsable de projet: Vincent Roca Consultante: Karine Excoffier (Sun Microsystems)
36
Embed
Robust Header Compression Un projet à l Jack Ballesteros Rémi Blanc En collaboration avec Microelectronics Compression den-tête robuste Responsable de.
This document is posted to help you gain knowledge. Please leave a comment to let me know what you think about it! Share it to your friends and learn new things together.
• Introduction• Gestion de projet• Aspects techniques• Bilan
• 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
33
L’équipe RoHC:• Nicolas Albarel• Mikael Desertot
Quels sont les acteurs du projet?
Vincent Roca(responsable de projet)
L’équipe RoHC2:• Jack Ballesteros• Rémi Blanc
AdvancedSystem Technologies
Pascal Moniot
• Mathias Dietrich• David Furodet
Karine ExcoffierSun Microsystems
(consultante)
44
Pourquoi en a-t-on besoin?
• Les connexions sans fils sont lentes.• Les paquets IP sont trop gros.
• Il y a un besoin de compresser les paquets.
IP
55
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
66
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)
77
Principes de fonctionnement de RoHC
PhysicalPhysical
Data LinkData Link
RoHCRoHC
NetworkNetwork
TransportTransport
SessionSession
PresentationPresentation
ApplicationApplication
PhysicalPhysical
Data LinkData Link
RoHCRoHC
NetworkNetwork
TransportTransport
SessionSession
PresentationPresentation
ApplicationApplication
IP HeaderIP Header
DataData
EmetteurEmetteur RecepteurRecepteur
88
Architecture de RoHC
CompressorCompressor
RoHC RoHC frameworkframework
CompressionCompressionfront endfront end
LinkLink
Packet Packet streamstream
Decompressed Decompressed flowsflows
DecompressionDecompressionfront endfront end
RoHC RoHC frameworkframework
decompressordecompressor
Compressed Compressed headersheaders
PhysicalPhysical
Data LinkData Link
RoHCRoHC
NetworkNetwork
TransportTransport
SessionSession
PresentationPresentation
ApplicationApplication
OSI layersOSI layers
ContextContext
99
Classification des champs des en-têtes: IPv4
1010
Classification des champs des en-têtes: RTP/UDP/IPv6
1111
RoHC Profiles
Profil 0: pas de compressionProfil 1: RTP/UDP/IPProfil 2: UDP/IPProfil 3: ESP/IPProfil 4: IP
Pas de profil de compression TCP/IP, c’est en cours de définition au niveau de l’IETF (Draft)
1212
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
1313
Gestion de projet
• Introduction • Gestion de projet• Aspects techniques• Bilan
• Gestion de la qualité• critères qualité• code• outils
• Planning et gestion des risques
1414
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
1515
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
1616
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
1717
Analyser
Données brutes du paquet
Décomposition du paquet
Liste des paquets capturés
1818
Gestion de projet
• Introduction • Gestion de projet
• Aspects techniques• Bilan
• Gestion de la qualité• Planning et gestion des risques
• cycle de vie logiciel• jalons et planning• gestion des risques
1919
Modèle en V du cycle de vie Logiciel
Composantlogiciel
Cahier descharges
SpécificationSystèmes
Spécificationperformances
Conceptiondétaillée
Programmecodage
Testunitaire
Testd’intégration
Test deperformances
Testd’intégration
système
Conceptionpréliminaire
Evaluation &test
opérationnelCERTIFICATION
VALIDATION
VALIDATION
VERIFICATION
Corrections
Code
Mise au point
Spécification
conception
Validation
Implémentation
BESOIN PRODUIT
Spécification Conception - developpement Test & évaluationFonctionnementmaintenance
Conceptiondétaillée
Conceptiondétaillée
Testunitaire
Testunitaire
ProgrammecodageImplémentation
Analyse des Analyse des
besoinsbesoins
SpécificatioSpécificatio
nn
ConceptioConceptio
nn
CodageCodage
TestTest
ss
2020
Jalons & Planning du projet•Etude EPICEtude EPIC•Plan d’Assurance Qualité LogicielPlan d’Assurance Qualité Logiciel•Cahier des chargesCahier des charges•Plan Developpement Logiciel Plan Developpement Logiciel
•Spécifications ExternesSpécifications Externes•Plan de TestsPlan de Tests•Test Spécification Système Test Spécification Système •Spécifications Tests PerformancesSpécifications Tests Performances•Manuel UtilisateurManuel Utilisateur•Spécification Test système Existant + TestsSpécification Test système Existant + Tests
•Profile 2 (UDP/IP)Profile 2 (UDP/IP)•Profile 1 (RTP/UDP/IP)Profile 1 (RTP/UDP/IP)•Support IPv6Support IPv6•Mise en oeuvre 802.11bMise en oeuvre 802.11b
•Tests UnitairesTests Unitaires•Tests d’Intégration Tests d’Intégration •Tests de Performance Tests de Performance •Tests Système Tests Système •Tests OpérationnelTests Opérationnel
2 2 PeriodesPeriodes
3 3 AuditsAudits
4 Jalons pour 4 Jalons pour les livrablesles livrables
2121
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 projetModification des spécifications de RoHCRetard dans la fourniture de matériel (carte 802.11b)