Έχουμε και λέμε για την άσκηση 2
Λυση Άσκησης 2
Spoiler: show
- Κώδικας: Επιλογή όλων
Β. Σύμφωνα με το πρωτόκολλο HDLC (γιατι τα πρωτόκολλα ορίζουν κανόνες) για την αναγνώριση της αρχής ενος frame απο τον δέκτη οπως έχουμε πει χρησιμοποιείται ενας μοναδικός κωδικός (αρχή μηνύματος) flag byte ή απλα flag αρχής και τέλους. Αυτο το flag ειναι ο 01111110 και ο δέκτης εξετάζει καθε ψηφίο που λαμβάνει επομενως με τον τρόπο αυτο μολις αναγνωρίσει το flag ξερει οτι αρχίζει το frame. Είναι δηλαδη ενας τρόπος για να καταλάβει ποτε αρχίζει το πλαίσιο και ποτε τελειώνει (καθώς ο ίδιος κωδικος μπαίνει και στο τελος) οριοθετόντας το με αυτον τον τρόπο. Αυτο βέβαια μπορεί να δημιουργήσει προβλήματα αν αυτο το flag εμφανισθεί και πουθενα αλλου μεσα στο πακετο μας πχ λογω κάποιου σφάλματος κατα την μετάδοση το οποιο δεν ειναι καθολου απίθανο σαν ενδεχόμενο , για αυτο το λογο λοιπον προσπαθούμε με την τεχνική bit stuffing να το "διορθώσουμε" μέχρι να το πάρει ο δέκτης. Για αυτο λοιπον οταν πέσουμε πανω σε 6 συνεχόμενους άσσους μεταξύ του 5ου και του 6ου θα παρεμβληθεί ενα 0 το οποίο και θα βγει οταν ο δέκτης θα κάνει την αποκωδικοποιηση του για να ανακτησει το αρχικο πακέτο. Επομένως κατα την κωδικοποιήση θα έχουμε (σύμφωνα και με τον κανονα μετα τους 5 άσσους να προσθέτουμε 0 ακομη και αν ακολουθεί αλλο 0)τελικά η ζητούμενη ακολουθία ειναι :
01111110 1000011 1001111 1"0"001111 1"0"001100 01111110
Γ.
Λάβαμε λοιπον την ακολουθία 01111110 1000011 1001111 1"0"001111 1"0"001100 01111110
επομενως κατα την αποκωδικοποιήση(HDLC) γίνεται :
1000011 1001111 10001111 1001100 οσο δηλαδη και το αρχικό πακέτο. Ο δέκτης θα πρέπει φυσικά να γνωρίζει το πρωτόκολλο HDLC ωστε να μπορέσει να κάνει την αποκωδικοποιήση και να ανακτήσει το αρχικό πακέτο.
Η αποκωδικοποιήση τώρα των δεδομένων σε πραγματικό μήνυμα(εννοωντας που να ειναι κατανοητό απο τους ανθρώπους) :D μπορει να γίνει σε 2 φάσεις.
1 ΦΑΣΗ => Καταρχήν έχουμε ορισμένες δυαδικές ακολουθίες δηλαδη δεδομένα τα οποια ομως αναπαριστώνται στο δυαδικό σύστημα , κάτι τέτοιο δεν αποτελεί πρόβλημα μιας και μπορεί κάποιος να κάνει την αποκωδικοποιήση και την μετατροπή τους ουσιαστικά απο το δυαδικό στο δεκαδικό σύστημα
και επειδη η εκφώνηση μας λεει οτι τα δεδομένα αυτα αναπαριστούν κώδικα ASCII με 7 δυαδικά , εξαρχής θα παίξω με 7 δυαδικά.
Πραγματικά λοιπον ο δυαδικός 1000011 αντιστοιχεί στον δεκαδικό 67
ο δυαδικός 1001111 αντιστοιχεί στον 79
ο 1001111 αντιστοιχεί στον 79 μιας και ειναι ιδιοι
και τελος ο 1001100 στον 76
Πριν προχωρήσουμε στην 2η φάση (απο δεκαδικό σε χαρακτήρα) θα πρέπει να σκεφτούμε τι μας λέει η κωδικοποιήση ASCII. Συμφωνα με το ASCII λοιπον απο το οποίο η κωδικοποιηση έχει παρει το ονομα της κάθε αριθμητική τιμή αντιστοιχει σε έναν χαρακτήρα και αυτο φυσικα δεν το επινόησαν για διασκέδαση αλλα ουτε για παιχνιδι καθως έχει άμεση σχέση με τον τρόπο αποθήκευσης ενος χαρακτήρα σε ενα υπολογιστικό σύστημα. Ένας χαρακτήρας ειναι ενας αριθμητικός τύπος δεδομένων επομένως για να ξεπεραστεί η "αδυναμία" αυτη που αρχικα θα εκανε καποιον να αναρωτιεται για το πως τελικα γίνεται να αποθηκεύσεις εναν χαρακτηρα στην μνήμη του συστήματος σου έπινοήθηκε - προτάθηκε - δημιουργήθηκε οπως θελετε πείτε το η ASCII.
ΕΠομένως και σύμφωνα με τον απλουστατο κώδικα που έδωσα για τον υπολογισμό απο αριθμητική τιμή σε χαρακτήρες
Ο 67 αντιστοιχεί στον C
o 79 στον Ο
και ο 76 στον L
και επομένως το μήνυμα που τελικά μεταδόθηκε ηταν η αγγλική λέξη COOL. :)
H αποκρυπτογράφηση χρειάζεται ενα κλειδί για να λειτουργήσει και να ανακτηθούν τα αρχικά δεδομένα. Απο την άλλη πλευρά η αποκωδικοποιήση δεν χρειάζεται κλειδί για να ανακτήσει κανεις το αρχικό πακέτο ακριβως επειδη δεν μας ενδιαφέρει η γνώση του απο μη εξουσδιοτημένους χρήστες. Η βασική διαφορα της κρυπτογράφησης με την κωδικοποιήση λοιπον έγκειται σε μια μυστική ποσότητα (την οποία δεν γνωρίζουν μη εξουσιοδοτημένοι χρήστες και αυτο ειναι το κλειδί.
Τα δεδομένα θα έφθαναν παραποιημένα σε μη ευνοικές συνθήκες μετάδοσης και καναλιού πχ θόρυβος. O θόρυβος δημιουργεί προβλήματα στην επικοινωνία εισάγοντας λάθη στα πακέτα.

Η εργασία υπάγεται στην άδεια Creative Commons Αναφορά-Μη εμπορική χρήση-Παρόμοια διανομή 3.0 Ελλάδα


