Professional Documents
Culture Documents
∆εδοµένων
plam@inf.teilam.gr, ©2004
∆ΙΚΤΥΑ ΥΠΟΛΟΓΙΣΤΩΝ Σελίδα 2
Επίπεδο Ζεύξης ∆εδοµένων (Data
Link Layer)
— Περιγράφει τον τρόπο προσπέλασης σε ένα διαµοιραζό-
µενο κανάλι επικοινωνίας και πως ένα πλαίσιο δεδοµένων
µπορεί να µεταδοθεί χωρίς σφάλµατα µεταξύ δύο
«γειτονικών» (για το επίπεδο ζεύξης δεδοµένων)
µηχανών
plam@inf.teilam.gr, ©2004
∆ΙΚΤΥΑ ΥΠΟΛΟΓΙΣΤΩΝ Σελίδα 3
Λειτουργίες του Επιπέδου Ζεύξης
∆εδοµένων
— Ορίζει τη διεπαφή µέσω της οποίας παρέχει τις υπηρεσίες
του προς το επίπεδο δικτύου
— Ο καθορισµός του πως τα bits που πρόκειται να
µεταδοθούν από το φυσικό επίπεδο οργανώνονται σε
πλαίσια (frames)
— Ο χειρισµός των λαθών µετάδοσης (µπορεί να αφεθεί και
στο επίπεδο µεταφοράς)
— Τη ρύθµιση της ροής πλαισίων (flow control), ούτως
ώστε αργοί δέκτες να µην υπερχειλίζουν από ταχείς
ποµπούς
plam@inf.teilam.gr, ©2004
∆ΙΚΤΥΑ ΥΠΟΛΟΓΙΣΤΩΝ Σελίδα 4
Υπηρεσίες που Παρέχονται στο
Επίπεδο ∆ικτύου
— Θεωρούµε δύο διεργασίες επιπέδου δικτύου που
επικοινωνούν χρησιµοποιώντας τις υπηρεσίες του
επιπέδου ζεύξης δεδοµένων
— Οι διεργασίες του επιπέδου ζεύξης δεδοµένων
επικοινωνούν χρησιµοποιώντας ένα πρωτόκολλο ζεύξης
δεδοµένων
— Οι υπηρεσίες αυτές είναι:
¾ Η υπηρεσία χωρίς σύνδεση και χωρίς επαλήθευση
¾ Η υπηρεσία χωρίς σύνδεση και µε επαλήθευση
¾ Η υπηρεσία µε σύνδεση και µε επαλήθευση
plam@inf.teilam.gr, ©2004
∆ΙΚΤΥΑ ΥΠΟΛΟΓΙΣΤΩΝ Σελίδα 5
Υπηρεσία χωρίς Σύνδεση και
Χωρίς Επαλήθευση
— Συνίσταται στην αποστολή ανεξάρτητων πλαισίων από
την πηγή στον προορισµό
plam@inf.teilam.gr, ©2004
∆ΙΚΤΥΑ ΥΠΟΛΟΓΙΣΤΩΝ Σελίδα 7
Παροχή Επαληθεύσεων
(Acknowledgements)
plam@inf.teilam.gr, ©2004
∆ΙΚΤΥΑ ΥΠΟΛΟΓΙΣΤΩΝ Σελίδα 8
Υπηρεσία µε Σύνδεση και µε
Επαλήθευση
plam@inf.teilam.gr, ©2004
∆ΙΚΤΥΑ ΥΠΟΛΟΓΙΣΤΩΝ Σελίδα 9
Υπηρεσίες προς το Επίπεδο
∆ικτύου
plam@inf.teilam.gr, ©2004
∆ΙΚΤΥΑ ΥΠΟΛΟΓΙΣΤΩΝ Σελίδα 10
Πλαισίωση (Framing)
— Το επίπεδο ζεύξης δεδοµένων χρησιµοποιεί τις υπηρεσίες
που παρέχονται σε αυτό από το φυσικό επίπεδο
— Το φυσικό επίπεδο δεν παρέχει ουσιαστικά καµία
εγγύηση για τη µετάδοση (µπορεί να χαθούν ή να
αλλοιωθούν τα δεδοµένα)
— Το επίπεδο ζεύξης δεδοµένων χωρίζει την ακολουθία των
bits σε διακριτά πλαίσια και υπολογίζει το άθροισµα
ελέγχου για κάθε πλαίσιο
— Στον παραλήπτη το άθροισµα ελέγχου υπολογίζεται εκ
νέου προκειµένου να φανεί αν έχει γίνει κάποιο λάθος
plam@inf.teilam.gr, ©2004
∆ΙΚΤΥΑ ΥΠΟΛΟΓΙΣΤΩΝ Σελίδα 11
Τεµαχισµός της ακολουθίας των
bits (Fragmentation)
— Μέτρηση Χαρακτήρων
plam@inf.teilam.gr, ©2004
∆ΙΚΤΥΑ ΥΠΟΛΟΓΙΣΤΩΝ Σελίδα 12
Μέτρηση Χαρακτήρων
— Χρησιµοποιείται ένα πεδίο της επικεφαλίδας του
πρωτοκόλλου στο οποίο το επίπεδο ζεύξης δεδοµένων
τοποθετεί το πλήθος των χαρακτήρων στο πλαίσιο
plam@inf.teilam.gr, ©2004
∆ΙΚΤΥΑ ΥΠΟΛΟΓΙΣΤΩΝ Σελίδα 17
Έλεγχος Ροής (Flow Control)
plam@inf.teilam.gr, ©2004
∆ΙΚΤΥΑ ΥΠΟΛΟΓΙΣΤΩΝ Σελίδα 18
Ανίχνευση και ∆ιόρθωση
Σφαλµάτων
— ∆ύο βασικές στρατηγικές αντιµετώπισης των
σφαλµάτων:
plam@inf.teilam.gr, ©2004
∆ΙΚΤΥΑ ΥΠΟΛΟΓΙΣΤΩΝ Σελίδα 20
Ανίχνευση Λαθών (Error
Detection)
¾ Εισαγωγή χρονοµετρητών
plam@inf.teilam.gr, ©2004
∆ΙΚΤΥΑ ΥΠΟΛΟΓΙΣΤΩΝ Σελίδα 21
Ανίχνευση Λαθών (συνέχεια)
EDC= Error Detection and Correction bits (πλεονάζοντα)
D = Τα δεδοµένα που προστατεύονται από την ανίχνευση λαθών
περιέχουν πεδία επικεφαλίδας
Η ανίχνευση λαθών δεν είναι 100% αξιόπιστη!
• µπορεί να µην ανιχνευθούν λάθη (σπάνια)
• µεγαλύτερα πεδία EDC δίνουν καλύτερη ανίχνευση και διόρθωση
plam@inf.teilam.gr, ©2004
∆ΙΚΤΥΑ ΥΠΟΛΟΓΙΣΤΩΝ Σελίδα 22
Κώδικες Ανίχνευσης Σφαλµάτων
plam@inf.teilam.gr, ©2004
∆ΙΚΤΥΑ ΥΠΟΛΟΓΙΣΤΩΝ Σελίδα 23
Έλεγχος Ισοτιµίας
(Parity Checking)
Single Bit Parity: Two Dimensional Bit Parity:
Ανιχνεύει λάθη ενός bit Ανιχνεύει και διορθώνει λάθη ενός bit
0 0
plam@inf.teilam.gr, ©2004
∆ΙΚΤΥΑ ΥΠΟΛΟΓΙΣΤΩΝ Σελίδα 24
Κώδικες Ανίχνευσης και
∆ιόρθωσης Σφαλµάτων
— H επαναµετάδοση είναι συνήθως αποδοτικότερη αφού
για τη διόρθωση σφαλµάτων απαιτείται µετάδοση
µεγαλύτερης ποσότητας πληροφοριών ελέγχου
plam@inf.teilam.gr, ©2004
∆ΙΚΤΥΑ ΥΠΟΛΟΓΙΣΤΩΝ Σελίδα 25
Μέθοδος Πολυωνυµικού Κώδικα
plam@inf.teilam.gr, ©2004
∆ΙΚΤΥΑ ΥΠΟΛΟΓΙΣΤΩΝ Σελίδα 26
Ανίχνευση Λαθών: Μέθοδος
Πολυωνυµικού Κώδικα
— Θεωρούµε τα bits δεδοµένων, D, ως ένα δυαδικό αριθµό
— Επιλέγουµε µια ακολουθία r+1 bit (γεννήτρια), G
— Στόχος: επέλεξε r CRC bits, R, τέτοια ώστε
¾ Το <D,R> διαιρείται ακριβώς µε το G (modulo 2)
¾ Ο παραλήπτης γνωρίζει το G, διαιρεί το <D,R> µε το G. Αν
υπάρχει υπόλοιπο (διάφορο του µηδενός): ανιχνεύθηκε λάθος!
¾ Ανιχνεύει όλα τα λάθη που είναι µικρότερα από r+1 bits
plam@inf.teilam.gr, ©2004
∆ΙΚΤΥΑ ΥΠΟΛΟΓΙΣΤΩΝ Σελίδα 27
Παράδειγµα CRC
Θέλουµε:
D.2r XOR R = nG
ισοδύναµα:
D.2r = nG XOR R
ισοδύναµα:
αν διαιρέσουµε D.2r µε το G,
θέλουµε υπόλοιπο R
D.2r
R= υπόλοιπο [ ]
G
plam@inf.teilam.gr, ©2004
∆ΙΚΤΥΑ ΥΠΟΛΟΓΙΣΤΩΝ Σελίδα 28
Λειτουργικά Χαρακτηριστικά
Πρωτοκόλλων Επιπέδου Ζεύξης
∆εδοµένων
plam@inf.teilam.gr, ©2004
∆ΙΚΤΥΑ ΥΠΟΛΟΓΙΣΤΩΝ Σελίδα 30
Υποθέσεις για τα Πρωτόκολλα
Ζεύξης ∆εδοµένων (συνέχεια)
— Το υλικό του ποµπού (του δέκτη) υπολογίζει και
προσαρτά (ελέγχει) το άθροισµα ελέγχου
— Ο ποµπός και ο δέκτης χρησιµοποιούν προσωρινή
αποθήκευση (buffers) για τη φύλαξη των πλαισίων
— Η άφιξη ενός νέου πλαισίου προκαλεί µια διακοπή
(interrupt) στη διαδικασία του επιπέδου ζεύξης
δεδοµένων
— Το επίπεδο ζεύξης δεδοµένων µόλις λάβει ένα άθικτο
πλαίσιο και ελέγξει την επικεφαλίδα, την αφαιρεί και το
περνάει στο επίπεδο δικτύου
plam@inf.teilam.gr, ©2004
∆ΙΚΤΥΑ ΥΠΟΛΟΓΙΣΤΩΝ Σελίδα 31
Πρωτόκολλα Ολισθαίνοντος Παραθύρου
(Sliding Window Protocols)
plam@inf.teilam.gr, ©2004
∆ΙΚΤΥΑ ΥΠΟΛΟΓΙΣΤΩΝ Σελίδα 32
Πρωτόκολλα Ολισθαίνοντος
Παραθύρου (συνέχεια)
— Στα πρωτόκολλα αυτά ο ποµπός διατηρεί ένα σύνολο
αυξόντων αριθµών που αντιστοιχούν σε πλαίσια που
µπορεί να στείλει (παράθυρο αποστολής)
plam@inf.teilam.gr, ©2004
∆ΙΚΤΥΑ ΥΠΟΛΟΓΙΣΤΩΝ Σελίδα 35
Πρωτόκολλα Ολισθαίνοντος
Παραθύρου (συνέχεια)
plam@inf.teilam.gr, ©2004
∆ΙΚΤΥΑ ΥΠΟΛΟΓΙΣΤΩΝ Σελίδα 36
Πρωτόκολλα Ολισθαίνοντος
Παραθύρου (συνέχεια)
plam@inf.teilam.gr, ©2004
∆ΙΚΤΥΑ ΥΠΟΛΟΓΙΣΤΩΝ Σελίδα 37
Πρωτόκολλα Ολισθαίνοντος
Παραθύρου (συνέχεια)
plam@inf.teilam.gr, ©2004
∆ΙΚΤΥΑ ΥΠΟΛΟΓΙΣΤΩΝ Σελίδα 38
Λειτουργία Stop-and-Wait
αποστολέας παραλήπτης
µετάδοση πρώτου bit, t = 0
µετάδοση τελευταίου bit, t = L / R
U L/R . 008
0.00027
= = =
sender 30.008
RTT + L / R
plam@inf.teilam.gr, ©2004
∆ΙΚΤΥΑ ΥΠΟΛΟΓΙΣΤΩΝ Σελίδα 39
Πρωτόκολλα Ολισθαίνοντος
Παραθύρου (συνέχεια)
— Τι γίνεται αν επιτρέψουµε στον ποµπό να µεταδώσει w
πλαίσια πριν να έρθει η επαλήθευση του πρώτου
πλαισίου;
— Αυτό καλείται συνεχής διοχέτευση (pipelining) και
αυξάνει τη χρησιµοποίηση του δικτύου
— Τι γίνεται αν καταστραφεί ένα πλαίσιο και όλα τα άλλα
(προηγούµενα και επόµενα) φτάσουν ορθά; ∆ύο λύσεις:
¾ Οπισθοδρόµηση κατά Ν (Go Back N)
¾ Επιλεκτική Επανάληψη (Selective Repeat)
plam@inf.teilam.gr, ©2004
∆ΙΚΤΥΑ ΥΠΟΛΟΓΙΣΤΩΝ Σελίδα 40
H συνεχής διοχέτευση αυξάνει τη
χρησιµοποίηση του δικτύου
αποστολέας παραλήπτης
µετάδοση πρώτου bit, t = 0
µετάδοση τελευταίου bit, t = L / R
Τριπλασιασµός
χρησιµοποίησης
U 3*L/R . 024
0.0008
= = =
sender 30.008
RTT + L / R
plam@inf.teilam.gr, ©2004
∆ΙΚΤΥΑ ΥΠΟΛΟΓΙΣΤΩΝ Σελίδα 41
Go Back N
plam@inf.teilam.gr, ©2004
∆ΙΚΤΥΑ ΥΠΟΛΟΓΙΣΤΩΝ Σελίδα 42
Επιλεκτική Επανάληψη
plam@inf.teilam.gr, ©2004
∆ΙΚΤΥΑ ΥΠΟΛΟΓΙΣΤΩΝ Σελίδα 43
∆ιόρθωση Λαθών Go Back Ν και
Επιλεκτικής Επανάληψης
plam@inf.teilam.gr, ©2004
∆ΙΚΤΥΑ ΥΠΟΛΟΓΙΣΤΩΝ Σελίδα 44
To Επίπεδο Ζεύξης ∆εδοµένων στο
Internet
plam@inf.teilam.gr, ©2004
∆ΙΚΤΥΑ ΥΠΟΛΟΓΙΣΤΩΝ Σελίδα 45
Έλεγχος Ζεύξης ∆εδοµένων Σηµείου
προς Σηµείο (Point to Point DLC)
— Ένας αποστολέας, ένας παραλήπτης, ένα κύκλωµα:
ευκολότερο από κύκλωµα εκποµπής (broadcast link):
¾ χωρίς έλεγχο προσπέλασης µέσου (Media Access Control)
¾ δεν υπάρχει ανάγκη διευθυνσιοδότησης MAC (MAC addressing)
¾ π.χ. κύκλωµα dial-up, γραµµή ISDN
plam@inf.teilam.gr, ©2004
∆ΙΚΤΥΑ ΥΠΟΛΟΓΙΣΤΩΝ Σελίδα 46
Απαιτήσεις σχεδιασµού του PPP
[RFC 1557]
— Πλαισίωση πακέτου: ενθυλάκωση (encapsulation) των δεδοµένων του
επιπέδου δικτύου σε πλαίσιο του επιπέδου ζεύξης δεδοµένων
¾ µεταφορά δεδοµένων επιπέδου δικτύου κάθε πρωτοκόλλου
επιπέδου δικτύου (όχι µόνο IP) ταυτόχρονα
¾ δυνατότητα αποπολύπλεξης προς τα ανώτερα επίπεδα
plam@inf.teilam.gr, ©2004
∆ΙΚΤΥΑ ΥΠΟΛΟΓΙΣΤΩΝ Σελίδα 48
Το Επίπεδο Ζεύξης ∆εδοµένων στο
Internet: PPP (συνέχεια)
Το ΡΡΡ παρέχει τα ακόλουθα:
— Πλαισίωση που διακρίνει τα όρια ενός πλαισίου
— Ένα πρωτόκολλο για τη διαπραγµάτευση των επιλογών
της σύνδεσης (εγκατάσταση γραµµών, δοκιµή, απόλυση)
που ονοµάζεται Link Control Protocol (LCP)
— Πρωτόκολλο για τη διαπραγµάτευση των επιλογών του
επιπέδου δικτύου. Το πρωτόκολλο αυτό είναι
διαφορετικό για κάθε πρωτόκολλο του επιπέδου δικτύου
που υποστηρίζεται (Network Control Protocol – NCP)
plam@inf.teilam.gr, ©2004
∆ΙΚΤΥΑ ΥΠΟΛΟΓΙΣΤΩΝ Σελίδα 49
Τι δεν κάνει το PPP;
— ∆ιόρθωση λαθών, ανάνηψη από λάθη
— Έλεγχο ροής
— Τοποθέτηση πλαισίων στη σειρά που στάλθηκαν
— Υποστήριξη συνδέσµων µε πολλούς κόµβους
plam@inf.teilam.gr, ©2004
∆ΙΚΤΥΑ ΥΠΟΛΟΓΙΣΤΩΝ Σελίδα 50
Πλαίσιο ∆εδοµένων του PPP – Ι
— Flag: οριοθέτηση (framing)
— Address: δε χρειάζεται (µόνο µια επιλογή)
— Control: προς το παρόν δεν κάνει κάτι (αξιοποίηση στο
µέλλον)
— Protocol: πρωτόκολλο ανώτερου επιπέδου στο οποίο θα
παραδοθεί το πλαίσιο (π.χ., PPP-LCP, IP, IPCP, etc)
plam@inf.teilam.gr, ©2004
∆ΙΚΤΥΑ ΥΠΟΛΟΓΙΣΤΩΝ Σελίδα 51
Πλαίσιο ∆εδοµένων του PPP – ΙΙ
— info: τα δεδοµένα ανώτερου επιπέδου που µεταφέρονται
— check: CRC για ανίχνευση λαθών
plam@inf.teilam.gr, ©2004
∆ΙΚΤΥΑ ΥΠΟΛΟΓΙΣΤΩΝ Σελίδα 52
Παραγέµισµα Byte – Ι
— H απαίτηση για “data transparency”: το πεδίο των
δεδοµένων πρέπει να επιτρέπεται να περιλαµβάνει την
πληροφορία οριοθέτησης <01111110>
¾ Ερ: είναι το <01111110> που λαµβάνεται δεδοµένα ή
πληροφορία οριοθέτησης;
— Sender: προσθέτει (“stuffs”) ένα επιπλέον <01111101>
byte µετά από κάθε <01111110> byte των δεδοµένων
— Receiver:
¾ ακολουθία bytes 01111101 01111110: απόρριψη
πρώτου byte, συνέχιση λήψης δεδοµένων
¾ ένα 01111110: οριοθέτης
plam@inf.teilam.gr, ©2004
∆ΙΚΤΥΑ ΥΠΟΛΟΓΙΣΤΩΝ Σελίδα 53
Παραγέµισµα Byte – ΙΙ
τo byte
οριοθέτης
στα δεδοµένα
που
αποστέλλονται
plam@inf.teilam.gr, ©2004
∆ΙΚΤΥΑ ΥΠΟΛΟΓΙΣΤΩΝ Σελίδα 56