AirNet est un projet personnel qui mutualise intelligemment les connexions mobiles de groupes de 5 à 8 utilisateurs proches pour contourner la saturation du réseau cellulaire. Les appareils forment un réseau maillé local, compressent et chiffrent les données, puis sélectionnent dynamiquement le téléphone offrant le meilleur débit pour relayer collectivement les requêtes vers l’opérateur.
Projet : AirNet
Le but du projet :
Fichier explicatif de la solution
Structure Algorithmique
# Constantes
MAX_TELEPHONES = 8 # Nombre maximum de téléphones dans le réseau mesh
PROTOCOLE_LOCAL = "Bluetooth" # Protocole de connexion (Wi-Fi Direct, Bluetooth, etc.)
# Initialisation du réseau mesh
reseau_mesh = initialiser_reseau_mesh(PROTOCOLE_LOCAL)
# Boucle principale pendant que AirNet est actif
tant_que AirNet.est_actif():
# Gestion des nouveaux téléphones
si un_nouveau_telephone_est_detecte():
si reseau_mesh.taille() < MAX_TELEPHONES:
ajouter_telephone_au_reseau(nouveau_telephone)
synchroniser_etat_reseau()
sinon:
rejeter_nouveau_telephone() # Réseau plein
# Gestion des données à envoyer
pour telephone dans reseau_mesh.telephones:
si telephone.a_des_donnees_a_envoyer():
# Diviser les données en morceaux selon le nombre de téléphones
morceaux = diviser_donnees(telephone.donnees, reseau_mesh.taille())
# Distribuer chaque morceau à un téléphone du réseau
pour morceau, cible dans associer(morceaux, reseau_mesh.telephones):
envoyer_morceau_au_telephone(morceau, cible)
# Chaque téléphone relaie son morceau au réseau cellulaire
si cible.a_un_morceau():
reponse = cible.envoyer_au_reseau_cellulaire(cible.morceau)
cible.stocker_reponse(reponse)
# Rassembler les réponses et reconstituer les données
reponses = collecter_reponses_du_reseau_mesh()
donnees_reconstituees = reassembler_donnees(reponses)
# Renvoi des données au téléphone d'origine
envoyer_au_telephone_original(donnees_reconstituees, telephone)
# Gestion des départs
si un_telephone_quitte_le_reseau():
retirer_telephone_du_reseau(telephone_partant)
synchroniser_etat_reseau()
# Maintenance périodique
si temps_de_verifier_reseau():
verifier_connectivite_reseau()
optimiser_chemins_routage()