Περίληψη |
Το διαδίκτυο των πραγμάτων (IoT) αποτελεί μια εξελισσόμενη τεχνολογία, η οποία
είναι σε θέση να διασυνδέσει έναν αυξανόμενο αριθμό έξυπνων συσκευών, για την
υποστήριξη πολύπλοκων δεδομενοκεντρικών εφαρμογών. Η δυνατότητα ασύρματης
αναβάθμισης αυτών των συσκευών είναι εξέχουσας σημασίας, καθώς επιτρέπει την
ενσωμάτωση επιπλέον λειτουργικότητας στο λογισμικό τους, τη διόρθωση λαθών και
ευπαθειών του κώδικα, ή ακόμα και τον επαναπροσδιορισμό του σκοπού τους, δίχως να
απαιτείται η φυσική επαφή με αυτές. Τέτοιες λύσεις ασύρματου προγραμματισμού,
απαιτούν τη σύμπτυξη των αποσταλέντων δεδομένων κατά την αναβάθμιση, ώστε να
μειωθεί η κατανάλωση ενέργειας στο δίκτυο, η οποία οφείλεται στις απαραίτητες
λειτουργίες ασύρματης επικοινωνίας.
Για να ικανοποιηθεί αυτή η ανάγκη, οι συσκευές IoT μπορούν επίσης να
αναβαθμιστούν, μέσω μιας τεχνικής, που ονομάζεται επαυξητικός προγραμματισμός, η
οποία αποφεύγει την επαναποστολή ολόκληρου του λογισμικού, όταν έχει
δημιουργηθεί μια ανανεωμένη έκδοση. Η πιο διαδεδομένη μορφή αυτής της τεχνικής,
είναι μέσω των αλγόριθμων διαφοράς, οι οποίοι βρίσκουν τα κοινά τρήματα δύο
εκδόσεων λογισμικού και υπολογίζουν ένα κωδικοποιημένο ¨μπάλωμα¨, το οποίο
αποστέλλεται στο δίκτυο. Με αυτόν τον τρόπο, οι συσκευές μπορούν να
χρησιμοποιήσουν μέρη του λογισμικού που τρέχουν εκείνη τη στιγμή, ώστε να
συνθέσουν τη νέα έκδοση τοπικά.
Σε αυτήν την εργασία, μελετάμε τεχνικές, πρωτόκολλα δικτύου και συστήματα που
έχουν αναπτυχθεί με σκοπό τη μείωση του όγκου των μεταδόσεων κατά την αναβάθμιση
δικτύων IoT και έχουν βρει απήχηση σε δίκτυα μεγάλης κλίμακας. Επιπλέον, δίνουμε
έμφαση στην ανάλυση των βημάτων της διαδικασίας αναβάθμισης, παρουσιάζοντας
διάφορες τεχνικές που τα υλοποιούν. Ακόμη, αναφέρουμε μηχανισμούς οι οποίοι
επικεντρώνονται στην ασφάλεια του ασύρματου προγραμματισμού, μιας και πρόσφατες
επιθέσεις έχουν αποκαλύψει πως ανασφαλείς στρατηγικές αναβάθμισης, μπορούν να
επιτρέψουν την εγκατάσταση επιβλαβούς λογισμικού από τις συσκευές ενός δικτύου,
επηρεάζοντας τη λειτουργία τους.
Επιπλέον, παρουσιάζουμε έναν αλγόριθμο διαφοράς, ονόματι Dfinder, ο οποίος
μπορεί να υπολογίσει μικρά ¨μπαλώματα¨, χρησιμοποιώντας κωδικοποίηση δέλτα. Ο
αλγόριθμος έχει O(nlogn) χρονική και O(n) χωρική πολυπλοκότητα και χρησιμοποιεί
επαυξημένους πίνακες αποθεμάτων και σύγχρονες τεχνικές υπολογισμού τους, που
επιτρέπουν την αποδοτική εύρεση κοινών τμημάτων μεταξύ δύο εκδόσεων λογισμικού.
Ακόμη, παρουσιάζουμε μία επέκταση του αλγόριθμου, η οποία μειώνει τις
αποθηκευτικές απαιτήσεις στη μεριά του παραλήπτη κατά το ήμισυ, ώστε συσκευές με
περιορισμένο αποθηκευτικό χώρο να μπορούν επίσης να αναβαθμιστούν επαυξητικά.
Τέλος, ενσωματώνουμε το Dfinder σε μία πλατφόρμα ασύρματου προγραμματισμού
δικτύων IoT και δείχνουμε πως μπορεί να μειώσει τον χρόνο και την ενέργεια που
απαιτούνται για την αναβάθμιση δικτύων IoT μέχρι και 96%.
|