Η παρουσίαση φορτώνεται. Παρακαλείστε να περιμένετε

Η παρουσίαση φορτώνεται. Παρακαλείστε να περιμένετε

Δίκτυα Υπολογιστών (Γ’ έτος, ΣΤ’ εξ)

Παρόμοιες παρουσιάσεις


Παρουσίαση με θέμα: "Δίκτυα Υπολογιστών (Γ’ έτος, ΣΤ’ εξ)"— Μεταγράφημα παρουσίασης:

1 Γαβαλάς Δαμιανός dgavalas@aegean.gr
Δίκτυα Υπολογιστών (Γ’ έτος, ΣΤ’ εξ) Διάλεξη #3: Δικτυακά πρότυπα, το μοντέλο αναφοράς OSI, Επίπεδο ζεύξης δεδομένων (data link layer), Αξιόπιστη Επικοινωνία και Έλεγχος Ροής. Διαγνωστικά εργαλεία δικτύων (ping, traceroute) Γαβαλάς Δαμιανός Εαρινό εξάμηνο

2 Περίληψη διάλεξης Πρότυπα δικτύωσης
Το μοντέλο αναφοράς OSI και τα στρώματά (επίπεδα) του Λειτουργίες που ανήκουν στο μοντέλο αναφοράςOSI Επίπεδο ζεύξης δεδομένων (data link layer) Αξιόπιστη Επικοινωνία και Έλεγχος Ροής Διαγνωστικά εργαλεία δικτύων (ping, traceroute)

3 Δικτυακά πρότυπα

4 Πρότυπα (Standards) Τα πρότυπα είναι δημοσιευμένες συμφωνίες που περιλαμβάνουν τεχνικές προδιαγραφές Γιατί χρειάζονται: Τα προϊόντα και οι εφαρμογές που ακολουθούν τις προδιαγραφές που περιγράφονται στα πρότυπα είναι συμβατές με άλλα προϊόντα, εφαρμογές, περιεχόμενο, υπηρεσίες, .... Παραδείγματα: Ηλεκτρικές συσκευές που λειτουργούν σε συγκεκριμένη τάση ρεύματος. Οι παροχείς ρεύματος (π.χ. μπρίζες) παρέχουν ρεύμα αυτής της τάσης Εταιρία που παράγει ραδιοφωνικούς δέκτες που μπορούν να λάβουν ραδιοφωνικά σήματα σε συγκεκριμένη μπάντα συχνοτήτων και να συντονιστούν με ραδιοφωνικούς πομπούς Εταιρία hardware που παράγει κάρτες δικτύου. Οι κάρτες θα πρέπει να είναι συμβατές με κάποιο δικτυακό πρότυπο (π.χ. ΙΕΕΕ 802.3) για να μπορεί ο Η/Υ που «φοράει» την κάρτα να συνδεθεί σε κάποιο δίκτυο (LAN) Εταιρία λογισμικού που αναπτύσσει έναν νέο browser. Ο browser θα πρέπει να ακολουθήσει τις προδιαγραφές της HTML για να παρέχει στους χρήστες πρόσβαση σε web περιεχόμενο

5 Πρότυπα Απαιτούνται για την εξασφάλιση διαλειτουργικότητας (συμβατότητας) μεταξύ συσκευών Πλεονεκτήματα Εξασφαλίζουν μια μεγάλη αγορά για συσκευές και λογισμικό Προϊόντα διαφορετικών κατασκευαστών μπορούν να επικοινωνήσουν Μειονεκτήματα Παγώνουν την τεχνολογία δεν παράγεις μια συσκευή ή λογισμικό μέχρι να δημοσιευθεί το πρότυπο που θα πρέπει να υποστηρίζει Συχνά υπάρχουν πολλαπλά πρότυπα για το ίδιο αντικείμενο

6 Οργανισμοί προτυποποίησης (standardization bodies)
ANSI (American National Standards Institute): παράγει πρότυπα για βιομηχανίες ηλεκτρονικών αλλά και σε άλλα πεδία (χημική και πυρηνική μηχανική, υγεία και ασφάλεια, κατασκευές) TIA (Telecommunications Industry Association): επικεντρώνει σε πρότυπα της πληροφορικής, ασύρματες, δορυφορικές επικοινωνίες, οπτικές ίνες, τηλεφωνικές συσκευές IEEE (Institute of Electrical and Electronics Engineers): ένωση επαγγελματιών μηχανικών (engineers) ISO (International Standardization Organization): διατηρεί κεντρικά γραφεία στην Γενεύη, αποτελεί συλλογή από πρότυπα και οργανισμούς που αντιπροσωπεύουν 148 χώρες Στόχος του ISO είναι να αναπτύξει διεθνή τεχνολογικά πρότυπα για να διευκολύνει την παγκόσμια ανταλλαγή πληροφορίας και το εμπόριο

7 Οργανισμοί προτυποποίησης (standardization bodies)
ITU (International Telecommunication Union) Ένα εξειδικευμένο σώμα των Ηνωμένων Εθνών που ρυθμίζει τις διεθνείς τηλεπικοινωνίες (π.χ. ραδιοφωνικές και τηλεοπτικές επικοινωνίες), προδιαγραφές για τηλεφωνικές και δορυφορικές επικοινωνίες, δικτυακές επικοινωνίες, κοστολογήσεις επικοινωνιακών υπηρεσιών IAB (Internet Architecture Board) Μια τεχνική συμβουλευτική ομάδα ερευνητών και τεχνοκρατών επαγγελματιών με ενδιαφέρον για το σχεδιασμό, εξέλιξη και διαχείριση του Internet IETF (Internet Engineering Task Force) Οργανισμός που θέτει πρότυπα για το πως συστήματα επικοινωνούν μέσω του Internet, συγκεκριμένα πως τα πρωτόκολλα λειτουργούν και αλληλεπιδρούν W3C (World Wide Web Consortium) O οργανισμός που καθορίζει τα πρότυπα σχετικά με τον παγκόσμιο ιστό (web)

8 Το μοντέλο αναφοράς OSI
(OSI reference model)

9 Αρχιτεκτονική δικτύων με τη λογική των στρωμάτων ή επιπέδων (layers)
H «παραβολή» του ταχυδρομείου και των αεροπορικών μεταφορών Στρώματα ή Επίπεδα Διεπαφή μεταξύ Στρωμάτων Στοίβα πρωτοκόλλων (protocol stack)

10 Η λογική των επιπέδων στις αεροπορικές μεταφορές
Εισιτήριο (αγορά) Αποσκευές (έλεγχος) Πύλες (φόρτωση) Αεροδιάδρομος (απογείωση) Δρομολόγηση αεροπλάνου Εισιτήριο Εισιτήριο (παράπονα) Αποσκευές (συλλογή) Πύλες (άδειασμα) Αεροδιάδρομος (προσγείωση) Δρομολόγηση αεροπλάνου Αποσκευές Πύλη Προσγείωση / απογείωση Δρομολόγηση αεροπλάνου Δρομολόγηση αεροπλάνου Αεροδρόμιο – αφετηρία Ενδιάμεσες στάσεις – κέντρα ελέγχου Αεροδρόμιο – προορισμός Επίπεδα (Layers): κάθε επίπεδο υλοποιεί μία υπηρεσία Μέσω διεργασιών που γίνονται εσωτερικά σε κάθε επίπεδο Βασίζεται σε υπηρεσίες που παρέχονται σε προηγούμενα / επόμενα επίπεδα

11 Γιατί επίπεδα;;; Καταμερισμός του πολύπλοκου προβλήματος σε μικρότερα, πιο απλά προβλήματα («διαίρει και βασίλευε») Κάθε επίπεδο είναι υπεύθυνο για την αντιμετώπιση κάποιων προβλημάτων που μπορεί να προκύψουν Κάθε επίπεδο κρύβει την πολυπλοκότητα του από τα υπόλοιπα επίπεδα και τους χρήστες (tranasparency: «διαφάνεια») Αποτελεσματικότερη δομή αποτελούμενη από πολλές επί μέρους μονάδες (modular) Μια καινούργια υπηρεσία μπορεί να υλοποιηθεί μετατρέποντας μόνο ένα επίπεδο (στρώμα)

12 Μοντέλο Αναφοράς OSI (Open System Interconnection)
Εφαρμογής Παρουσίασης Συνόδου Μεταφοράς Δικτύου Διασύνδεσης δεδομένων Φυσικό

13 Πρότυπο αρχιτεκτονικής OSI-ISO
OSI: Open System Interconnection ISO: International Standardization Organization

14 Μοντελοποιώντας χρησιμοποιώντας στρώματα (Layers Models)
Μείωση πολυπλοκότητας σχεδίασης «Χτίσιμο πάνω στο προηγούμενο» Επίπεδο ν επικοινωνεί με επίπεδο ν Κανόνες + Συνθήκες επιπέδου ν  πρωτόκολλα επιπέδου ν Πρωτόκολλα Υψηλού επιπέδου (εφαρμογές) και Χαμηλού επιπέδου (ηλεκτρικά σήματα) Από ν σε ν επίπεδο τα δεδομένα μεταφέρονται ως εξής: Κάθε επίπεδο περνά τα δεδομένα και πληροφορίες ελέγχου στο επίπεδο που βρίσκεται ακριβώς κάτω από αυτό, μέχρι τα δεδομένα και οι πληροφορίες αυτές να μεταφερθούν στο κατώτερο και να πραγματοποιηθεί η βασική επικοινωνία

15 Μοντέλο OSI Φυσικό στρώμα (Physical Layer)
Μετάδοση ακατέργαστων bits (0 ή 1) από τον αποστολέα στον δέκτη. Στρώμα Διασύνδεσης Δεδομένων (Data Link Layer) Τεμαχίζει τα δεδομένα σε πλαίσια δεδομένων (frames) Επιβεβαιώνει ότι η επικοινωνία του Φυσικού στρώματος είναι αξιόπιστη (Πλαίσια επαλήθευσης -acknowledgement frames) Ανίχνευση και επιδιόρθωση λαθών (Error detection and correction) Έλεγχος ροής (flow control)

16 Μοντέλο OSI Στρώμα Δικτύου (Network Layer)
Δρομολόγηση πακέτων Έλεγχος συμφόρησης Στρώμα Μεταφοράς (Transport Layer) Τεμαχίζει τα μηνύματα σε μικρότερες μονάδες Επιβεβαιώνει ότι όλες οι μονάδες φτάνουν στο άλλο άκρο και επανα-συναρμολογεί το μήνυμα Πολυπλεξία συνδέσεων Υπηρεσίες μεταφοράς πακέτων από άκρο σε άκρο (end-to-end) (π.χ., αξιόπιστη μεταφορά δεδομένων στον δέκτη) Έλεγχος συμφόρησης (congestion) και ροής πακέτων

17 Μοντέλο OSI Στρώμα Συνόδου (Session Layer)
Εγκαθίδρυση και επίβλεψη συνδέσεων μεταξύ τερματικών συστημάτων Στρώμα Παρουσίασης (Presentation Layer) Κωδικοποίηση δεδομένων, Μετατροπές στη μορφή παρουσίασης της πληροφορίας (συμπίεση, ασφάλεια) Στρώμα Εφαρμογής (Application Layer) Περιλαμβάνει προγράμματα χρηστών τα οποία χρησιμοποιούν το επίπεδο παρουσίασης για τις επικοινωνιακές τους ανάγκες

18

19 «Επικοινωνία» μεταξύ επιπέδων στο μοντέλο OSI
Ενθυλάκωση (encapsulation) των header+data κάθε επιπέδου ως δεδομένα του κατώτερου επιπέδου

20 Ενθυλάκωση (encapsulation) στο μοντέλο του OSI
Data link layer Header (επικεφαλίδα) Data link layer Trailer (ουρά)

21 To μοντέλο αναφοράς TCP/IP
Δεν έχουν υλοποιηθεί

22 To μοντέλο αναφοράς TCP/IP

23 Το Μοντέλο του Διαδικτύου
FTP HTTP SNMP TFTP TCP UDP IP NET NET ■ ■ ■ NET 1 2 n

24 To επίπεδο ζεύξης δεδομένων
(data link layer)

25 Πρωτόκολλο (protocol)
Η συμφωνία ανάμεσα σε δύο επικοινωνούντα μέρη, ως προς τον τρόπο με τον οποίο θα διεξαχθεί η επικοινωνία Ένα ανθρώπινο πρωτόκολλο και ένα δικτυακό πρωτόκολλο: Γεια σου TCP connection req Γεια TCP connection response Έχεις ώρα; 12:00 <file> χρόνος

26 Πλαισίωση (Framing) Στο επίπεδο «ζεύξης δεδομένων» δύο υπολογιστές ανταλλάσσουν πλαίσια (frames) Ένα πλαίσιο περιέχει: Διεύθυνση αποστολέα (MAC address) Διεύθυνση παραλήπτη (MAC address της κάρτα δικτύου που είναι μοναδική) Δεδομένα Κώδικα ανίχνευσης σφαλμάτων κατά την επικοινωνία Επικεφαλίδα και ουρά (header & trailer) Πρωτόκολλο (προαιρετικό: σε περίπτωση που κάποια μηχανή υποστηρίζει διάφορα πρωτόκολλα)

27 Πλαίσια βασισμένα σε συρμούς ψηφίων (bit streams)
BS ES CRC Header BODY 8 16 High-level Data Link Control (HDLC) BS: Beginning Sequence ES: Ending Sequence Η σειρά μεταδίδεται επίσης και όταν το κανάλι είναι ανενεργό Πως αντιμετωπίζεται η περίπτωση όπου η σειρά παρουσιάζεται μέσα στα δεδομένα;

28 Bit-stuffing Πως αντιμετωπίζεται η περίπτωση όπου η σειρά παρουσιάζεται μέσα στα δεδομένα; Ο αποστολέας μόλις στείλει 5 συνεχόμενα 1, (δεδομένου ότι δεν θέλει να στείλει το ES), τότε στέλνει «0» και μετά συνεχίζει με τα υπόλοιπα ψηφία. Ο παραλήπτης, μόλις παραλάβει 5 συνεχόμενα 1, τότε ελέγχει το επόμενο ψηφίο Εάν είναι «0», τότε υποθέτει ότι αποτελεί bit-stuffing, το αγνοεί και συνεχίζει την λήψη των υπολοίπων ψηφίων. Εάν όμως είναι «1», τότε αντιλαμβάνεται ότι το πλαίσιο είτε έχει τελειώσει είτε υπάρχει κάποιο λάθος και παίρνει το επόμενο ψηφίο. Εάν είναι «0», δηλαδή έχει πάρει , τότε το πλαίσιο έχει τελειώσει. Εάν είναι «1», τότε υπάρχει κάποιο λάθος, οπότε ολόκληρο το πλαίσιο απορρίπτεται, και περιμένει το επόμενο που αποτελεί την αρχή του επόμενου πλαισίου.

29 Ο παραλήπτης αφαιρεί το επιπλέον bit
Bit-stuffing Στα δεδομένα εμφανίζεται ακολουθία 8 bits που συμπίπτει με το BS και το ES Δεδομένα που παραδίδονται από το Network Layer Extra bit που προστίθεται από το Data Link Layer Ο αποστολέας προσθέτει ένα επιπλέον bit ώστε ο παραλήπτης να μην το εκλάβει ως ES Extra bit που αφαιρείται από το Data Link Layer του παραλήπτη και διαβιβάζεται στο Network Layer Ο παραλήπτης αφαιρεί το επιπλέον bit

30 Ανίχνευση Σφαλμάτων (Error Detection)
Σφάλματα λόγω θορύβου ή παρεμβολών Ανίχνευση και Επιδιόρθωση Σφαλμάτων Προϋποθέτουν την αποστολή πλεονάζουσας πληροφορίας (redundant information) π.χ. ένα πακέτο αποστέλλεται δύο φορές αν ο παραλήπτης λάβει δύο πακέτα που συμπίπτουν, θεωρεί ότι δεν έχει γίνει λάθος στην μετάδοση του πακέτου Μέθοδοι ανίχνευσης σφάλματος Δισδιάστατη Ισοτιμία (two-dimensional parity) Άθροισμα ελέγχου (check sum) Κυκλικός Κώδικας Πλεονασμού (Cyclic Redundancy Check CRC)

31 Ανίχνευση Σφαλμάτων (Error Detection)
Τι γίνεται σε περίπτωση που ανιχνευθεί σφάλμα; Επαναμετάδοση (retransmission): Ο δέκτης ζητά από τον αποστολέα να ξαναστείλει το πλαίσιο Στο πλαίσιο μπορεί να περιληφθεί πλεονάζουσα πληροφορία ώστε ο δέκτης να μπορεί να επιδιορθώσει τα σφάλματα (error correction codes) Πότε χρησιμοποιούμε επαναμετάδοση και πότε επιδιόρθωση σφάλματος;

32 Τεχνικές Ανίχνευσης Σφαλμάτων: Μονοδιάστατη Ισοτιμία (Parity)
Έστω ότι χρησιμοποιούμε άρτια ισοτιμία (το άθροισμα των data και parity bits είναι άρτιος αριθμός) Ο αποστολέας στέλνει: parity bit Data bits 1 Παράδειγμα 1ο – Ο παραλήπτης λαμβάνει: Το άθροισμα των bits δεν είναι άρτιο: ο παραλήπτης ανιχνεύει λάθος και ζητάει επανεκπομπή (δεν μπορεί βέβαια να το διορθώσει) 1 Λάθος Ψηφίο ισοτιμίας (Parity bit): αν στέλνω τη λέξη θα προσθέσω και ένα επιπλέον bit (1) επειδή το πλήθος των 1 είναι περιττό, ενώ αν στείλω τη λέξη θα προσθέσω το (0) επειδή το πλήθος των 1 είναι άρτιο. Έτσι, αν στη λήψη δω parity bit=0 και το πλήθος των 1 είναι περιττό, αυτό σημαίνει ότι κάποιο λάθος έχει συμβεί στην μετάδοση. Αν όμως συμβεί λάθος σε δύο bits, τότε το parity bit που θα είναι 0 δεν θα μπορέσει να μου δείξει αυτό το διπλό λάθος. Παράδειγμα 2ο – Ο παραλήπτης λαμβάνει: Το άθροισμα των bits είναι άρτιο: ο παραλήπτης δεν ανιχνεύει λάθος 1 Δύο λάθη Δύο λάθη

33 Δυσδιάστατη Ισοτιμία (Parity)
1 bit σε κάθε byte χρησιμοποιείται σαν bit ισοτιμίας Το άθροισμα όλων των bits να είναι άρτιο (even parity) Το πρωτόκολλο μπορεί να καθορίζει είτε άρτια (even parity) είτε περιττή ισοτιμία (odd parity) Τα δεδομένα τοποθετούνται σε ένα πίνακα (matrix) Το άθροισμα όλων των στηλών και γραμμών να είναι θετικό (even parity) Η μέθοδος ανιχνεύει σφάλματα στις περιπτώσεις που υπάρχουν 1 ή 2 ή 3 σφάλματα σε ένα πλαίσιο ή πολλές φορές ακόμα και 4 Πλεονάζουσα πληροφορία = 8 + Ν bits, όπου Ν = dataBits / 7 (δηλαδή για κάθε 7 bits δεδομένων στέλνεται ένα parity bit) Πολύ πιο αποδοτικό από το να σταλούν όλα τα δεδομένα 2 φορές και επίσης υπάρχει καλύτερη πιθανότητα ανίχνευσης των σφαλμάτων

34 Παράδειγμα Δυσδιάστατης Ισοτιμίας
1 Bits ισοτιμίας (parity bits) Χρησιμοποιείται άρτια ισοτιμία (το άθροισμα των bits σε κάθε γραμμή & στήλη είναι άρτιος αριθμός)

35 Παράδειγμα Δυσδιάστατης Ισοτιμίας
Ο δέκτης παρέλαβε το πιο κάτω πλαίσιο: 1 Λάθος Ο δέκτης μπορεί να επιδιορθώσει το σφάλμα! Λάθος

36 Παράδειγμα Δυσδιάστατης Ισοτιμίας
Ο δέκτης παρέλαβε το πιο κάτω πλαίσιο: 1 Διπλά λάθη ανιχνεύονται αλλά δεν διορθώνονται αν βρίσκονται στην ίδια γραμμή ή στήλη Ο δέκτης δεν μπορεί να επιδιορθώσει το σφάλμα! Λάθος Λάθος

37 Άθροισμα Ελέγχου (checksum)
Ο αποστολέας απλά προσθέτει όλες τις λέξεις (words) του πλαισίου και επισυνάπτει το άθροισμα στο πλαίσιο (ones complement addition) Ο παραλήπτης κάνει το ίδιο (απλά προσθέτει όλες τις λέξεις του πλαισίου και συγκρίνει το αποτέλεσμα με το Άθροισμα Ελέγχου που παρέλαβε με το πλαίσιο Εάν τα δύο αθροίσματα είναι τα ίδια, τότε το πλαίσιο είναι αποδεκτό Εάν τα δύο αθροίσματα διαφέρουν, τότε το πλαίσιο απορρίπτεται Ο αλγόριθμος αυτός συνήθως δεν χρησιμοποιείται στη ζεύξη δεδομένων Παράδειγμα: C 6C 6F F C E H e l l o W o r l d C6C + 6F F + 726C + 642E = 71FC Στέλνονται τα δεδομένα ακολουθούμενα από το 717C

38 Τεχνικές Διόρθωσης (Hamming)
π.χ. Απόσταση Hamming των και = 3 (με XOR) Παράδειγμα: έστω ‘αλφάβητο’ τεσσάρων συμβόλων (A, B, C, D) Κωδικοποίηση ώστε να μεγιστοποιηθεί η απόσταση Hamming: Α= , Β = , C = , D = (ποια είναι η απόσταση Hamming και ποια η σπατάλη;) Σε διπλό σφάλμα κάνω σωστή διόρθωση, π.χ. αν λάβω => (πως βρίσκω τη σωστή λέξη;) Αν όμως ένα τριπλό λάθος αλλάξει το σε θα το διορθώσω εσφαλμένα σε Για ανίχνευση d σφαλμάτων χρειάζεται κώδικας με απόσταση Hamming d+1 Για διόρθωση d σφαλμάτων χρειάζεται κώδικας με απόσταση Hamming 2d+1 ‘Ξοδεύονται’ κάποιοι κωδικοί: δεν αντιστοιχίζονται σε νόμιμες τιμές (π.χ., στο παραπάνω παράδειγμα, ο κωδικός δεν είναι νόμιμος). Όταν ανιχνεύεται ΄παράνομος’ κωδικός, μετατρέπεται στον πιο κοντινό του νόμιμο. Σπατάλη, αλλά αξιοπιστία. Χρησιμοποιούνται σε CD-ROM Μπορώ να υπολογίσω την απόσταση Hamming δύο λέξεων κάνοντας XOR bit-by-bit (από τη λέξη που προκύπτει από την XOR, μετράω τους άσσους, κι αυτή είναι η απόσταση Hamming). Η απόσταση Hamming των , , , είναι 5 (η μικρότερη απόσταση που υπάρχει μεταξύ των δυνατών συνδυασμών των λέξεων), ενώ η σπατάλη είναι 10/2 = 500%, γιατί αν δεν χρειαζόμουν τεχνική ανίχνευσης, θα μπορούσα να αναπαραστήσω καθένα από τα 4 σύμβολα με 2 bits και όχι με 10. Ουσιαστικά, όταν χρησιμοποιώ τεχνική ανίχνευσης Hamming, βρίσκω την απόσταση Hamming της λέξης που έλαβα με κάθε μια από τις νόμιμες λέξεις και θεωρώ ότι η λέξη που πραγματικά στάλθηκε (σωστή) είναι εκείνη η νόμιμη λέξη με τη μικρότερη απόσταση από εκείνη που έλαβα.

39 Κυκλικός Κώδικας Πλεονασμού (Cyclic Redundancy Check, CRC)
Βασισμένη στη θεωρία των πεπερασμένων πεδίων Κάθε συρμός (bit stream) αντιπροσωπεύει ένα πολυώνυμο M(x) (n+1)-bit συρμός αντιπροσωπεύει πολυώνυμο βαθμού n 1001  M(x) = 1x3+0x2+0x1+1x0= x3+x0 Επιλογή διαιρέτη: Πολυώνυμο C(x) βαθμού k το οποίο γνωρίζουν ο αποστολέας και παραλήπτης Ο αποστολέας στέλνει το πολυώνυμο P(x) το οποίο είναι βαθμού n+k (δηλαδή n+k+1 bits) Το πολυώνυμο P(x) επιλέγεται έτσι ώστε το υπόλοιπο της διαίρεσης P(x) / C(x) να είναι 0 Ο παραλήπτης κάνει τη διαίρεση και αν υπάρχει υπόλοιπο τότε το δεδομένο πλαίσιο έχει κάποιο σφάλμα Εάν δεν υπάρχει υπόλοιπο, τότε πιθανότατα το πλαίσιο παραλήφθηκε σωστά

40 Πλαισίωση, έλεγχος σφαλμάτων και θόρυβος…
Υποθέτουμε πως έχουμε πλαίσιο μεγέθους n bits και η πιθανότητα σφάλματος σε ένα bit = p (ανεξάρτητη από την πιθανότητα σφάλματος σε οποιοδήποτε άλλο bit). Πιθανότητα αλάνθαστης μετάδοσης του πλαισίου (1-p)n Όσο μεγαλώνει ένα πλαίσιο, μεγαλώνει και η πιθανότητα σφάλματος! Όσο μικραίνει ένα πλαίσιο αυξάνονται και οι μη ωφέλιμες πληροφορίες (επικεφαλίδες κλπ) που μεταδίδονται Εάν η πιθανότητα λάθους σε ένα πλαίσιο είναι «μικρή» τότε, σε περίπτωση λάθους, ο παραλήπτης μπορεί να ζητήσει επαναμετάδοση του πλαισίου Σε περίπτωση που η πιθανότητα λάθους σε ένα πλαίσιο είναι «μεγάλη», τότε μπορεί να είναι πιο αποδοτικό να χρησιμοποιείται διόρθωση λαθών (π.χ. Forward error correction code, FEC)

41 Αξιόπιστη Επικοινωνία
και Έλεγχος Ροής

42 Περίληψη Ως τώρα γνωρίσαμε τεχνικές με τις οποίες ο δέκτης ανιχνεύει ή (πιθανά) διορθώνει σφάλματα Πως όμως ο δέκτης ενημερώνει ότι έχει (ή δεν έχει) λάβει ένα πλαίσιο και μάλιστα χωρίς λάθη;;; Αξιόπιστη μετάδοση και έλεγχος ροής (reliable transmission and flow control) Πρωτόκολλα Παύσης και Αναμονής (Stop and Wait Protocols) Πρωτόκολλα Ολισθαίνοντος Παραθύρου (sliding window protocols) Παράθυρο με 1 bit Πρωτόκολλο με οπισθοδρόμηση κατά Ν (Go-Back N) Πρωτόκολλο με Επιλεκτική Επανάληψη (selective repeat)

43 Αξιόπιστη Μετάδοση (Reliable Transmission)
Χρήση πακέτων επιβεβαίωσης (acknowledgements, ACKs) και χρονομέτρων (timers) Ο δέκτης κάθε φορά που παραλαμβάνει ένα πλαίσιο χωρίς σφάλματα τότε στέλνει πακέτο επιβεβαίωσης (ACK) στον αποστολέα Ο αποστολέας συνεχίζει να στέλνει πλαίσια ενόσω λαμβάνει ACKs Εάν περάσει μια χρονική περίοδος κατά την οποία ο αποστολέας δεν λάβει κανένα ACK, ή αν λάβει αρνητικές επαληθεύσεις NACK (δηλαδή ο δέκτης έλαβε πλαίσια με σφάλματα), ο αποστολέας ξαναστέλνει τα προηγούμενα πλαίσια

44 Πρωτόκολλα Παύσης και Αναμονής (Stop and Wait Protocols)
Ο πομπός στέλνει ένα πλαίσιο και σταματάει, περιμένοντας επαλήθευση (ACK) Όταν πάρει ACK στέλνει το επόμενο πλαίσιο Εάν πάρει NACK ή λήξει κάποιο χρονόμετρο (timer), τότε ξαναστέλνει το προηγούμενο πακέτο Αποστολέας Παραλήπτης Πλαίσιο ACK χρονόμετρο Αργή διαδικασία.... Σταματάω τη μετάδοση δεδομένων μέχρι να φτάσει κάποιο ACK

45 Το πλαίσιο έχει χαθεί (π.χ. λόγω buffer overflow σε έναν router)
Τι μπορεί να πάει λάθος Αποστολέας Παραλήπτης Πλαίσιο ACK χρονόμετρο Παραλήπτης Αποστολέας Πλαίσιο ACK χρονόμετρο Το πλαίσιο έχει χαθεί (π.χ. λόγω buffer overflow σε έναν router) Περιττή επανεκπομπή ενός πλαισίου που έχει ληφθεί χωρίς λάθη επειδή χάθηκε το ACK

46 Τι μπορεί να πάει λάθος Αποστολέας Παραλήπτης Πλαίσιο ACK χρονόμετρο
Περιττή επανεκπομπή ενός πλαισίου που έχει ληφθεί χωρίς λάθη επειδή άργησε το ACK (έληξε ο timer)

47 Αύξων Αριθμός Πλαισίου (Frame Sequence Number)
Αποστολέας Παραλήπτης Πλαίσιο 0 Πλαίσιο 1 ACK 0 ACK 1

48 Πρωτόκολλα Ολισθαίνοντος Παραθύρου (Sliding Window)
Ο αποστολέας διατηρεί ένα παράθυρο με τους αύξοντες αριθμούς όλως των πλαισίων που έχει στείλει και για τα οποία δεν έχει λάβει επαλήθευση Κάθε φορά που στέλνει καινούργιο πλαίσιο, αυξάνει το άνω όριο του παραθύρου Κάθε φορά που λαμβάνει επαλήθευση, αυξάνει το κάτω όριο του παραθύρου Ο παραλήπτης επίσης διατηρεί παράθυρο με τους αύξοντες αριθμούς των πλαισίων που αναμένει Αν πάρει πλαίσιο εκτός παραθύρου, τότε το αγνοεί Οι αύξοντες αριθμοί επαληθευμένων πλαισίων μπορούν να μπουν στην επικεφαλίδα εξερχόμενων πλαισίων για καλύτερη απόδοση (piggybacking)

49 Πρωτόκολλο Ολισθαίνοντος Παραθύρου με Παράθυρο 1bit
Υποθέτουμε ότι ο αύξων αριθμός αποτελείται από 3 bits (δηλαδή 0-7). Αποστολέας Παράθυρο αποστολής Παράθυρο λήψης Παραλήπτης

50 Οπισθοδρόμηση κατά Ν (Go Back N): κανονική λειτουργία

51 Οπισθοδρόμηση κατά Ν (Go Back N): χαμένο πλαίσιο
Το πλαίσιο #2 χάνεται. Όταν ο παραλήπτης λαμβάνει το πλαίσιο #3, το απορρίπτει γιατί περιμένει το #2 (σύμφωνα με το παράθυρό του) Τα ACKs στέλνονται αθροιστικά

52 Επιλεκτική Επανάληψη (Selective Repeat)
To πρόβλημα με την τεχνική Go-Back-N είναι ότι σε περίπτωση λάθους σε ένα πλαίσιο, ο αποστολέας μπορεί να ξαναστείλει πολλά πλαίσια που είχαν ληφθεί σωστά, άρα δεν είναι αποδοτική σε κανάλια με υψηλό θόρυβο π.χ. στο προηγούμενο παράδειγμα ξαναστέλνει το πλαίσιο #3, παρότι είχε ληφθεί σωστά από το δέκτη Στην τεχνική “Selective Repeat” ο παραλήπτης έχει παράθυρο μεγαλύτερο από 1 στέλνει NACK για πλαίσια που έχουν χαθεί αλλά κρατάει επόμενα πλαίσια (όσα του επιτρέπει το παράθυρό του) που έχουν ληφθεί χωρίς λάθη Πρόβλημα: χρειάζεται περισσότερη μνήμη (buffer) στην πλευρά του παραλήπτη Το παράθυρο του αποστολέα δεν μπορεί να υπερβαίνει το (MaxSeqNum+1)/2

53 Επιλεκτική Επανάληψη (Selective Repeat)

54 Διαγνωστικά εργαλεία στο Internet

55 Εργαλεία «διάγνωσης» (probing) στο Internet
Πως προκύπτουν όμως στατιστικά δεδομένα σχετικά με τον αριθμό συνδεδεμένων Η/Υ; Τις πρώτες μέρες του Internet υπήρχαν μερικές 10δες τοποθεσίες και το μέγεθος μπορούσε να προσδιοριστεί εύκολα Σήμερα χρειάζεται ένα αυτοματοποιημένο εργαλείο που διατρέχει το DNS (το σύστημα που αποθηκεύει ονόματα και διευθύνσεις υπολογιστών) και μετά ελέγχει αν ο κάθε Η/Υ είναι συνδεδεμένος εκείνη τη στιγμή Υπάρχουν σήμερα διαθέσιμα στους χρήστες εργαλεία για τη διάγνωση (probing) στο Internet

56 ICMP – Internet Control Message Protocol
Αποτελεί το μηχανισμό αποστολής μηνυμάτων ελέγχου και αναφοράς λαθών για τη λειτουργία ενός δικτύου IP ICMP πακέτα: IP πακέτα ειδικού τύπου (χωρίς L4 payload) Echo_request – Echo_reply Time exceeded Host_unreachable Port_unreachable

57 Ping Ένα από τα απλούστερα διαγνωστικά εργαλεία
Ο χρήστης δίνει ως όρισμα το όνομα ή τη διεύθυνση ενός Η/Υ Το ping στέλνει ένα μήνυμα (ICMP packet) στον Η/Υ και περιμένει ένα μικρό χρονικό διάστημα έως ότου ο Η/Υ αποκριθεί Αν ο Η/Υ αποκριθεί σημαίνει ότι είναι ‘alive’, διαφορετικά το Ping αναφέρει ότι ο Η/Υ δεν αποκρίνεται Πως εκτελείται: ping <όνομα Η/Υ> [παράμετροι] ping sapfo.aegean.gr Παραδείγματα παραμέτρων -a: Resolve addresses to hostnames -r <count>: Record route for count hops -w timeout: Timeout in milliseconds to wait for each reply

58 Ping Δοκιμάστε να “κάνετε ping” τον Η/Υ ct-green.ct.aegean.gr και αναφέρεται τι είδους στοιχεία τυπώνει Από την κονσόλα (command prompt) του Η/Υ σας Από έναν απομακρυσμένο Η/Υ, π.χ. Τι διαφορές εντοπίζετε;;; Από τον απομακρυσμένο Η/Υ προφανώς θα έχουν μεγαλύτερη καθυστέρηση (delay)

59 Ping «Τρέξτε» το ping κάνοντας χρήση κάποιων από τις διαθέσιμες παραμέτρους, π.χ. ping -r 9 sapfo.aegean.gr ping -w 200 sapfo.aegean.gr

60 Ping: χρησιμότητα ως διαγνωστικό εργαλείο & αδυναμίες
To ping χρησιμοποιείται συχνά ως διαγνωστικό εργαλείο από διαχειριστές δικτύων (network administrators) Ενημερώνει κατά πόσο ένας Η/Υ είναι συνδεδεμένος και λειτουργεί, για το κατά πόσο υπάρχει συμφόρηση (congestion) στο δίκτυο, για το ποια τμήματα του δικτύου λειτουργούν σωστά και ποια έχουν βλάβη, κλπ (πως;;;;) Έχει όμως πολλές αδυναμίες ως διαγνωστικό εργαλείο καθώς αν ένας Η/Υ δεν αποκρίνεται, δύσκολα μπορεί να εξακριβωθεί η ακριβής αιτία Ο Η/Υ έχει αποσυνδεθεί, δεν λειτουργεί (off) ή έχει βλάβη Ο τοπικός Η/Υ έχει αποσυνδεθεί από το δίκτυο Ίσως υπάρχει πρόβλημα σε ενδιάμεσο Η/Υ ή στο δίκτυο Το δίκτυο είναι υπερφορτωμένο με κυκλοφορία δεδομένων και ο Η/Υ δεν αποκρίνεται στον καθορισμένο χρόνο Η εταιρία που ‘φιλοξενεί’ τον Η/Υ έχει ρυθμίσει το δίκτυό της έτσι ώστε να απορρίπτονται ping πακέτα (για λόγους ασφαλείας, ώστε να είναι εξασφαλισμένη από επιθέσεις «άρνησης εξυπηρέτησης» (denial of service), όπου το δίκτυο κατακλύζεται από Ping πακέτα ώστε να τεθεί εκτός λειτουργίας Η συμφόρηση ελέγχεται από το χρόνο απόκρισης Τα τμήματα δικτύου που λειτουργούν σωστά ή έχουν βλάβη ελέγχονται κάνοντας ping σε Η/Υ που ξέρουμε ότι λειτουργούν και που βρίσκονται σε διαφορετικά τμήματα του δικτύου. Αν δεν αποκριθούν, τότε υπάρχει βλάβη στο τμήμα (π.χ. σε κάποιο router του τμήματος του δικτύου όπου είναι τοποθετημένοι).

61 traceroute Διαγνωστικό εργαλείο που προσδιορίζει τους ενδιάμεσους Η/Υ κατά μήκος της διαδρομής από τον τοπικό προς ένας απομακρυσμένο Η/Υ Κάθε μία από τις γραμμές εξόδου του προγράμματος αντιστοιχεί σε έναν ενδιάμεσο Η/Υ (δρομολογητή, router) Υπάρχει ως προ-εγκατεστημένο πρόγραμμα σε πολλά λειτουργικά συστήματα Μπορείτε να το «τρέξετε» και online, π.χ.

62 traceroute

63 traceroute: πως λειτουργεί;
Όταν εκτελούμε το traceroute στον τοπικό Η/Υ, στέλνουμε ένα UDP πακέτο με το πεδίο Time-To-Live (TTL)=1 Όταν αυτό το πακέτο φθάσει στον πρώτο ενδιάμεσο Η/Υ (router), αυτός μειώνει την τιμή του TTL κατά ένα και απορρίπτει το πακέτο. Στη συνέχεια ο router στέλνει ένα πακέτο στον Η/Υ μας αναφέροντας τη διεύθυνσή του, άρα ο Η/Υ μας γνωρίζει πλέον τον πρώτο ενδιάμεσο router στη διαδρομή προς τον απομακρυσμένο Η/Υ που μας ενδιαφέρει Στη συνέχεια, ο Η/Υ μας στέλνει ένα UDP πακέτο με TTL=2 (με την ίδια διεύθυνση παραλήπτη, εκείνη του Η/Υ που μας ενδιαφέρει) Το πακέτο θα περάσει από τον ίδιο ενδιάμεσο router που ήδη γνωρίζουμε, ο οποίος θα μειώσει το TTL=1 και θα το προωθήσει στον επόμενο ενδιάμεσο router. Εκείνος (ο 2ος ενδιάμεσος) θα μειώσει το TTL=0, θα απορρίψει το πακέτο και θα στείλει πίσω στον Η/Υ μας ένα ICMP πακέτο που θα αναφέρει τη διεύθυνσή του. Άρα πλέον γνωρίζουμε και τον δεύτερο ενδιάμεσο router Στο επόμενο βήμα, ο Η/Υ μας θα στείλει πάλι ένα UDP πακέτο με TTL=3 και η ίδια διαδικασία επαναλαμβάνεται μέχρι να λάβουμε ένα ICMP πακέτο με τη διεύθυνση του H/Y που μας ενδιαφέρει. Τότε θα γνωρίζουμε πλέον την πλήρη λίστα με τους ενδιάμεσους routers που βρίσκονται ανάμεσα στον Η/Υ μας και σε εκείνος που μας ενδιαφέρει.

64 traceroute: πως λειτουργεί;
Destination: UDP (TTL = 1) TTL: Time To Live

65 traceroute: πως λειτουργεί;
TTL = 0 TTL: Time To Live

66 traceroute: πως λειτουργεί;
Address: ICMP traceroute output: TTL: Time To Live

67 traceroute: πως λειτουργεί;
TTL = 1 Destination: UDP (TTL = 2) TTL = 0 TTL: Time To Live

68 traceroute: πως λειτουργεί;
Address: ICMP traceroute output: TTL: Time To Live


Κατέβασμα ppt "Δίκτυα Υπολογιστών (Γ’ έτος, ΣΤ’ εξ)"

Παρόμοιες παρουσιάσεις


Διαφημίσεις Google