Description
Contexte & Enjeux du projet MOSS SAS développe un réseau de noeuds capteurs distribués dont la topologie évolue en permanence : des noeuds rejoignent ou quittent le réseau, tombent en panne, et la qualité des liaisons varie dans le temps.
Aucun coordinateur central ne supervise l'ensemble.
Le protocole réseau doit donc permettre aux noeuds de se découvrir, d'évaluer leurs liaisons et de se réorganiser seuls pour maintenir les communications.
Vous concevez et réalisez la première version de ce protocole.
Vos missions: Sous la responsabilité et l'accompagnement de votre tuteur, vous interviendrez sur l'ensemble du cycle de conception et de validation : - Étude & Architecture : Étudier les protocoles épidémiques existants (SWIM, memberlist, Serf) et proposer une architecture adaptée à un réseau de 15 à 300 noeuds. - Spécification : Spécifier les messages d'annonce et de topologie (Protobuf) et la machine à états d'un noeud, du démarrage au mode isolé. - Développement : Développer le démon en Go ou en Rust pour Linux embarqué ARM, avec tests unitaires et intégration continue. - Algorithmique & Métriques : Implémenter un score de qualité de lien à plusieurs critères, lissé dans le temps, et le classement des voisins qui en découle. - Émulation & Banc de test : Monter un banc d'émulation de 15 à 50 noeuds avec pertes, gigue et pannes injectées, puis valider sur 4 cartes réelles. - Caractérisation & Benchmark : Mesurer le temps de reconvergence après panne et le débit par noeud, et les comparer aux objectifs fixés.
Livrables clés attendus : - Spécification du protocole et des formats de messages - Code source testé et documenté - Banc d'émulation rejouable - Rapport de caractérisation chiffré Votre profil Vous préparez un diplôme de niveau Bac +5 (Dernière année d'école d'ingénieur ou Master 2) avec une spécialité en traitement du signal, télécommunications, électronique ou mathématiques appliquées.
Prérequis : Convention de stage de 6 mois, Français courant, Anglais technique lu.
Compétences techniques : - Indispensables : Traitement du signal et estimation (filtrage, moindres carrés), probabilités et processus aléatoires, Python scientifique (NumPy, SciPy), Linux, Git et tests automatisés, validation d'un modèle par la mesure. - Appréciées : Filtre de Kalman, oscillateurs, PLL, variance d'Allan, récepteurs GNSS et signal PPS, simulation de Monte-Carlo, instrumentation (compteur de temps, oscilloscope).
Qualités personnelles : - Sens de la mesure : vous raisonnez en incertitudes et vous doutez d'un résultat trop beau. - Esprit critique sur vos modèles : un simulateur ne rend que ce qu'on y a mis. - Autonomie : vous avancez seul sur un problème et savez dire quand vous êtes bloqué. - Clarté à l'écrit : la spécification sera reprise par d'autres.
Le poste pouvant nécessiter d'accéder à des informations relevant du secret de la défense nationale, la personne retenue fera l'objet d'une procédure d'habilitation, conformément aux dispositions des articles R.2311-1 et suivants du Code de la défense et de l'IGI 1300 SGDSN/PSE du 09 août 2021.