You are on page 1of 56

Το Επίπεδο Ζεύξης (ή Σύνδεσης)

∆εδοµένων

∆ιαφάνειες στα πλαίσια του µαθήµατος:


∆ίκτυα Υπολογιστών
Τµήµα Πληροφορικής και Τεχνολογίας
Υπολογιστών, ΤΕΙ Λαµίας

Πέτρος Λάµψας © 2004


Προτεινόµενη Βιβλιογραφία
I. Computer Networking: A Top Down
Approach Featuring the Internet, Jim
Kurose, Keith Ross, 2nd edition,
Addison-Wesley

II. Computer Networks, Andrew S.


Tanenbaum, 4th Edition, Prentice-Hall

III. Data and Computer Communications,


William Stallings, 7th Edition, Prentice-
Hall

plam@inf.teilam.gr, ©2004
∆ΙΚΤΥΑ ΥΠΟΛΟΓΙΣΤΩΝ Σελίδα 2
Επίπεδο Ζεύξης ∆εδοµένων (Data
Link Layer)
— Περιγράφει τον τρόπο προσπέλασης σε ένα διαµοιραζό-
µενο κανάλι επικοινωνίας και πως ένα πλαίσιο δεδοµένων
µπορεί να µεταδοθεί χωρίς σφάλµατα µεταξύ δύο
«γειτονικών» (για το επίπεδο ζεύξης δεδοµένων)
µηχανών

— Με τον όρο γειτονικές, εννοούµε ότι οι δύο µηχανές


συνδέονται φυσικά µε κάποιον επικοινωνιακό δίαυλο που
λογικά λειτουργεί ως καλώδιο (τα bit φτάνουν µε τη
σειρά που έχουν σταλεί)

plam@inf.teilam.gr, ©2004
∆ΙΚΤΥΑ ΥΠΟΛΟΓΙΣΤΩΝ Σελίδα 3
Λειτουργίες του Επιπέδου Ζεύξης
∆εδοµένων
— Ορίζει τη διεπαφή µέσω της οποίας παρέχει τις υπηρεσίες
του προς το επίπεδο δικτύου
— Ο καθορισµός του πως τα bits που πρόκειται να
µεταδοθούν από το φυσικό επίπεδο οργανώνονται σε
πλαίσια (frames)
— Ο χειρισµός των λαθών µετάδοσης (µπορεί να αφεθεί και
στο επίπεδο µεταφοράς)
— Τη ρύθµιση της ροής πλαισίων (flow control), ούτως
ώστε αργοί δέκτες να µην υπερχειλίζουν από ταχείς
ποµπούς
plam@inf.teilam.gr, ©2004
∆ΙΚΤΥΑ ΥΠΟΛΟΓΙΣΤΩΝ Σελίδα 4
Υπηρεσίες που Παρέχονται στο
Επίπεδο ∆ικτύου
— Θεωρούµε δύο διεργασίες επιπέδου δικτύου που
επικοινωνούν χρησιµοποιώντας τις υπηρεσίες του
επιπέδου ζεύξης δεδοµένων
— Οι διεργασίες του επιπέδου ζεύξης δεδοµένων
επικοινωνούν χρησιµοποιώντας ένα πρωτόκολλο ζεύξης
δεδοµένων
— Οι υπηρεσίες αυτές είναι:
¾ Η υπηρεσία χωρίς σύνδεση και χωρίς επαλήθευση
¾ Η υπηρεσία χωρίς σύνδεση και µε επαλήθευση
¾ Η υπηρεσία µε σύνδεση και µε επαλήθευση

plam@inf.teilam.gr, ©2004
∆ΙΚΤΥΑ ΥΠΟΛΟΓΙΣΤΩΝ Σελίδα 5
Υπηρεσία χωρίς Σύνδεση και
Χωρίς Επαλήθευση
— Συνίσταται στην αποστολή ανεξάρτητων πλαισίων από
την πηγή στον προορισµό

— Λόγω ανυπαρξίας επαλήθευσης σε περίπτωση απώλειας


κάποιου πλαισίου δε γίνεται προσπάθεια ανάκτησής του

— Κατάλληλη όταν ο ρυθµός σφαλµάτων είναι πολύ


χαµηλός, οπότε η ανάκτηση επαφίεται στα ανώτερα
επίπεδα

— Τα περισσότερα LAN χρησιµοποιούν αυτή την υπηρεσία


plam@inf.teilam.gr, ©2004
∆ΙΚΤΥΑ ΥΠΟΛΟΓΙΣΤΩΝ Σελίδα 6
Υπηρεσία χωρίς Σύνδεση και µε
Επαλήθευση

— Όπως και πριν δε χρησιµοποιούνται συνδέσεις, αλλά κάθε


πλαίσιο που στέλνεται επαληθεύεται ξεχωριστά

— Αν το πλαίσιο δε φτάσει µέσα σε συγκεκριµένο χρονικό


διάστηµα πρέπει να ξανασταλθεί

— Χρήσιµη για µη αξιόπιστους διαύλους (όπως τα ασύρµατα


συστήµατα)

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)

— Μέτρηση Χαρακτήρων

— Χαρακτήρες αρχής και τέλους µε παραγέµισµα


χαρακτήρων (character stuffing)

— Σηµαίες (flags) αρχής και τέλους, µε παραγέµισµα bit

— Παραβιάσεις της κωδικοποίησης του φυσικού επιπέδου

plam@inf.teilam.gr, ©2004
∆ΙΚΤΥΑ ΥΠΟΛΟΓΙΣΤΩΝ Σελίδα 12
Μέτρηση Χαρακτήρων
— Χρησιµοποιείται ένα πεδίο της επικεφαλίδας του
πρωτοκόλλου στο οποίο το επίπεδο ζεύξης δεδοµένων
τοποθετεί το πλήθος των χαρακτήρων στο πλαίσιο

— Πρόβληµα: ο αριθµός αυτός µπορεί να αλλοιωθεί από


λάθος µετάδοσης!

— Στην περίπτωση αυτή ο παραλήπτης δεν µπορεί να


αναγνωρίζει τα όρια των πλαισίων που λαµβάνονται µετά
το «προβληµατικό» πλαίσιο και άρα πρέπει να
ξαναµεταδοθούν
plam@inf.teilam.gr, ©2004
∆ΙΚΤΥΑ ΥΠΟΛΟΓΙΣΤΩΝ Σελίδα 13
Χαρακτήρες Αρχής και Τέλους µε
Παραγέµισµα Χαρακτήρων
— Κάθε πλαίσιο αρχίζει µε την ακολουθία χαρακτήρων
ASCII DLE STX (Data Link Escape και Start of Text) και
τελειώνει µε την ακολουθία DLE ETX
— Σε περίπτωση µετάδοσης δυαδικών δεδοµένων µπορεί να
βρεθεί µια ακολουθία DLE STX ή DLE ETX!
— Λύση: Το επίπεδο ζεύξης δεδοµένων του αποστολέα
εισάγει ένα χαρακτήρα DLE πριν από κάθε χαρακτήρα
DLE των δεδοµένων. Έτσι τα δεδοµένα δεν µπορούν
να µπερδεύονται µε τα όρια του πακέτου (αφού στα
δεδοµένα πάντα ένας χαρακτήρας DLE είναι διπλός)
plam@inf.teilam.gr, ©2004
∆ΙΚΤΥΑ ΥΠΟΛΟΓΙΣΤΩΝ Σελίδα 14
Παραγέµισµα… γενικώς
— Η τακτική αυτή ονοµάζεται παραγέµισµα χαρακτήρων
(character/byte stuffing)
— Μειονέκτηµα η στενή σύνδεση µε τους χαρακτήρες των
8 bit και τον κώδικα ASCII
— Πρέπει να βρεθεί µια τεχνική που να επιτρέπει στα
πλαίσια δεδοµένων να περιέχουν έναν αυθαίρετο αριθµό
από bit και κώδικες χαρακτήρων µε αυθαίρετο αριθµό bit
ανά χαρακτήρα
— Λύση: bit stuffing
plam@inf.teilam.gr, ©2004
∆ΙΚΤΥΑ ΥΠΟΛΟΓΙΣΤΩΝ Σελίδα 15
Παραγέµισµα… γενικώς
(συνέχεια)
— Κάθε πλαίσιο αρχίζει και τελειώνει µε µια ειδική
ακολουθία bits που αποκαλείται σηµαία (flag byte): αυτή
είναι η 01111110
— Οποτεδήποτε το επίπεδο ζεύξης δεδοµένων του ποµπού
συναντά πέντε συνεχόµενα bits 1 στα δεδοµένα εισάγει
ένα 0. Ο δέκτης όταν δει πέντε συνεχόµενα bits 1
ακολουθούµενα από ένα 0, διαγράφει το 0
— Τέλος σε ειδικές περιπτώσεις µπορεί να εµφανίζονται
χαρακτήρες που δεν «υπάρχουν», ή να γίνεται
συνδυασµός µεθόδων (µετρητής + παραγέµισµα)
plam@inf.teilam.gr, ©2004
∆ΙΚΤΥΑ ΥΠΟΛΟΓΙΣΤΩΝ Σελίδα 16
Παραγέµισµα… γενικώς
(συνέχεια)

plam@inf.teilam.gr, ©2004
∆ΙΚΤΥΑ ΥΠΟΛΟΓΙΣΤΩΝ Σελίδα 17
Έλεγχος Ροής (Flow Control)

— Υπάρχει πρόβληµα όταν ένας ποµπός επιθυµεί να στέλνει


δεδοµένα γρηγορότερα από ότι µπορεί να τα λάβει ο
δέκτης

— Τα πρωτόκολλα (είτε του επιπέδου ζεύξης δεδοµένων ή


του επιπέδου µεταφοράς) περιέχουν καλά ορισµένους
κανόνες, ως προς το πότε µπορούν να στέλνονται
δεδοµένα (πλαίσια)

plam@inf.teilam.gr, ©2004
∆ΙΚΤΥΑ ΥΠΟΛΟΓΙΣΤΩΝ Σελίδα 18
Ανίχνευση και ∆ιόρθωση
Σφαλµάτων
— ∆ύο βασικές στρατηγικές αντιµετώπισης των
σφαλµάτων:

— Ο πρώτος τρόπος είναι να περιλαµβάνεται αρκετή


πλεονάζουσα πληροφορία ώστε να µπορεί ο δέκτης να
συµπεραίνει ποιος χαρακτήρας µεταδόθηκε

— Ο άλλος τρόπος είναι να παρέχεται απλά πλεονάζουσα


πληροφορία, ώστε να µπορεί ο δέκτης να συµπεράνει ότι
συνέβη ένα σφάλµα, αλλά όχι ποιο σφάλµα και να ζητάει
επαναµετάδοση
plam@inf.teilam.gr, ©2004
∆ΙΚΤΥΑ ΥΠΟΛΟΓΙΣΤΩΝ Σελίδα 19
∆ιόρθωση Σφαλµάτων

— ∆ιόρθωση: Χρησιµοποιούνται οι κώδικες Hamming (η


διόρθωση κατάλληλη για δεδοµένα πραγµατικού χρόνου)

— Οι κώδικες διόρθωσης σφαλµάτων χρησιµοποιούνται σε


µονόδροµο (simplex) δίαυλο όπου δεν µπορούν να
ζητηθούν επαναµεταδόσεις

plam@inf.teilam.gr, ©2004
∆ΙΚΤΥΑ ΥΠΟΛΟΓΙΣΤΩΝ Σελίδα 20
Ανίχνευση Λαθών (Error
Detection)

— Υλοποιείται µηχανισµός θετικής/αρνητικής επαλήθευσης


µε επαναµετάδοση (positive/negative acknowledgement
with retransmission – PAR ή ARQ)

— Πρέπει να λαµβάνεται µέριµνα για την περίπτωση που


ένα πλαίσιο (ή η επαλήθευση) χαθεί εντελώς!

¾ Εισαγωγή χρονοµετρητών

¾ Έλεγχος για διπλά πακέτα, λόγω απώλειας της επαλήθευσης

plam@inf.teilam.gr, ©2004
∆ΙΚΤΥΑ ΥΠΟΛΟΓΙΣΤΩΝ Σελίδα 21
Ανίχνευση Λαθών (συνέχεια)
EDC= Error Detection and Correction bits (πλεονάζοντα)
D = Τα δεδοµένα που προστατεύονται από την ανίχνευση λαθών
περιέχουν πεδία επικεφαλίδας
Η ανίχνευση λαθών δεν είναι 100% αξιόπιστη!
• µπορεί να µην ανιχνευθούν λάθη (σπάνια)
• µεγαλύτερα πεδία EDC δίνουν καλύτερη ανίχνευση και διόρθωση

plam@inf.teilam.gr, ©2004
∆ΙΚΤΥΑ ΥΠΟΛΟΓΙΣΤΩΝ Σελίδα 22
Κώδικες Ανίχνευσης Σφαλµάτων

— Ένα απλό παράδειγµα κώδικα ανίχνευσης σφαλµάτων,


είναι αυτό που προστίθεται από το δέκτη ένα bit
ισοτιµίας (parity bit) στα δεδοµένα που πρόκειται να
µεταδοθούν (προκειµένου να είναι άρτιος ή περιττός ο
συνολικός αριθµός των 1 σε ένα µήνυµα)

— Τι είδους λάθη ανιχνεύονται µε αυτόν τον τρόπο;

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 επαναµετάδοση είναι συνήθως αποδοτικότερη αφού
για τη διόρθωση σφαλµάτων απαιτείται µετάδοση
µεγαλύτερης ποσότητας πληροφοριών ελέγχου

— Στην πράξη χρησιµοποιείται ευρέως ο πολυωνυµικός


κώδικας, ή κυκλικός κώδικας πλεονασµού (Cyclic
Redundancy Check – CRC)

— Οι πολυωνυµικοί κώδικες βασίζονται στην αναπαράσταση


µιας ακολουθίας bits πολυώνυµο µε συντελεστές 0 ή 1

plam@inf.teilam.gr, ©2004
∆ΙΚΤΥΑ ΥΠΟΛΟΓΙΣΤΩΝ Σελίδα 25
Μέθοδος Πολυωνυµικού Κώδικα

— Όταν χρησιµοποιείται η µέθοδος του πολυωνυµικού


κώδικα, ο ποµπός και ο δέκτης πρέπει να συµφωνήσουν
εκ των προτέρων σε µια πολυωνυµική γεννήτρια G(x)

— Προσαρτάται στο τέλος του πλαισίου ένα άθροισµα


ελέγχου (checksum), έτσι ώστε το πολυώνυµο που
αναπαριστά το προς µετάδοση πλαίσιο µαζί µε το
άθροισµα ελέγχου, να διαιρείται ακριβώς µε το G(x)

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

— Χρησιµοποιείται ευρέως στην πράξη (ATM, HDLC)

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
Λειτουργικά Χαρακτηριστικά
Πρωτοκόλλων Επιπέδου Ζεύξης
∆εδοµένων

Πέτρος Λάµψας © 2004


Υποθέσεις για τα Πρωτόκολλα
Ζεύξης ∆εδοµένων
— Υποθέτουµε ότι στο φυσικό επίπεδο, στο επίπεδο ζεύξης
δεδοµένων και στο επίπεδο δικτύου λειτουργούν τρεις
διαφορετικές διεργασίες (σε υλικό και λογισµικό)
— Υπάρχει ανάγκη για ταυτόχρονη µετάδοση ροής
δεδοµένων (από και προς την πηγή)
— Για το επίπεδο ζεύξης δεδοµένων το πακέτο που περνά
σε αυτό από το επίπεδο δικτύου µέσω της διεπαφής τους
είναι γνήσια δεδοµένα
— Το επίπεδο ζεύξης δεδοµένων ενθυλακώνει το πακέτο σε
ένα πλαίσιο προσθέτοντας µια επικεφαλίδα και µια ουρά

plam@inf.teilam.gr, ©2004
∆ΙΚΤΥΑ ΥΠΟΛΟΓΙΣΤΩΝ Σελίδα 30
Υποθέσεις για τα Πρωτόκολλα
Ζεύξης ∆εδοµένων (συνέχεια)
— Το υλικό του ποµπού (του δέκτη) υπολογίζει και
προσαρτά (ελέγχει) το άθροισµα ελέγχου
— Ο ποµπός και ο δέκτης χρησιµοποιούν προσωρινή
αποθήκευση (buffers) για τη φύλαξη των πλαισίων
— Η άφιξη ενός νέου πλαισίου προκαλεί µια διακοπή
(interrupt) στη διαδικασία του επιπέδου ζεύξης
δεδοµένων
— Το επίπεδο ζεύξης δεδοµένων µόλις λάβει ένα άθικτο
πλαίσιο και ελέγξει την επικεφαλίδα, την αφαιρεί και το
περνάει στο επίπεδο δικτύου

plam@inf.teilam.gr, ©2004
∆ΙΚΤΥΑ ΥΠΟΛΟΓΙΣΤΩΝ Σελίδα 31
Πρωτόκολλα Ολισθαίνοντος Παραθύρου
(Sliding Window Protocols)

— Είναι επιθυµητό ένα πρωτόκολλο επιπέδου ζεύξης


δεδοµένων που να αντέχει σε παθολογικές καταστάσεις

— Στα πρωτόκολλα ολισθαίνοντος παραθύρου κάθε


εξερχόµενο πλαίσιο έχει έναν αύξοντα αριθµό που
µεταβάλλεται από 0 έως 2n-1

— Όταν n=1 έχουµε πρωτόκολλο ολισθαίνοντος


παραθύρου παύσης και αναµονής (stop-and-wait sliding
window)

plam@inf.teilam.gr, ©2004
∆ΙΚΤΥΑ ΥΠΟΛΟΓΙΣΤΩΝ Σελίδα 32
Πρωτόκολλα Ολισθαίνοντος
Παραθύρου (συνέχεια)
— Στα πρωτόκολλα αυτά ο ποµπός διατηρεί ένα σύνολο
αυξόντων αριθµών που αντιστοιχούν σε πλαίσια που
µπορεί να στείλει (παράθυρο αποστολής)

— Παροµοίως ο δέκτης διατηρεί επίσης ένα παράθυρο


λήψης (receiver window) µε τα πλαίσια που µπορεί να
δεχθεί

— Συνεχίζουν να υφίστανται οι περιορισµοί ότι πρέπει να


παραδίδονται στο επίπεδο δικτύου τα πακέτα µε την ίδια
σειρά µε την οποία εστάλησαν
plam@inf.teilam.gr, ©2004
∆ΙΚΤΥΑ ΥΠΟΛΟΓΙΣΤΩΝ Σελίδα 33
Πρωτόκολλα Ολισθαίνοντος
Παραθύρου (συνέχεια)
— Οι αύξοντες αριθµοί µέσα στο παράθυρο του ποµπού
αντιπροσωπεύουν πλαίσια που στάλθηκαν αλλά δεν
έχουν ακόµα επαληθευτεί
— Τα πλαίσια που βρίσκονται στο παράθυρο αποστολής
πρέπει να τηρούνται σε µια ενδιάµεση µνήµη ώστε να
µπορούν να ξαναµεταδοθούν αν καταστραφούν
— Το παράθυρο του δέκτη αντιστοιχεί στα πλαίσια που
µπορεί να λάβει. Μέγεθος παραθύρου 1 σηµαίνει ότι το
επίπεδο ζεύξης δεδοµένων δέχεται µόνο τα πλαίσια που
έρχονται µε τη σωστή σειρά
plam@inf.teilam.gr, ©2004
∆ΙΚΤΥΑ ΥΠΟΛΟΓΙΣΤΩΝ Σελίδα 34
Πρωτόκολλα Ολισθαίνοντος
Παραθύρου (συνέχεια)

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

άφιξη πρώτου bit πλαισίου


Round Trip Time, RTT άφιξη τελευταίου bit πλαισίου,
αποστολή ACK

άφιξη ACK, αποστολή επόµενου


πλαισίου, t = RTT + 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

άφιξη πρώτου bit πακέτου


RTT άφιξη τελευταίου bit, αποστολή ACK 1
άφιξη τελευταίου bit 2ου πλαισίου, ACK 2
άφιξη τελευταίου bit 3ου πλαισίου, ACK 3
µε κάθε άφιξη ACK, αποστολή
επόµενου πλαισίου, t = RTT + 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

— ∆ηµοφιλή πρωτόκολλα DLC σηµείου προς σηµείο:


¾ PPP (point-to-point protocol)
¾ HDLC: High level data link control (το επίπεδο ζεύξης δεδοµένων
θεωρείται υψηλότερου επιπέδου στη στοίβα πρωτοκόλλων)!

plam@inf.teilam.gr, ©2004
∆ΙΚΤΥΑ ΥΠΟΛΟΓΙΣΤΩΝ Σελίδα 46
Απαιτήσεις σχεδιασµού του PPP
[RFC 1557]
— Πλαισίωση πακέτου: ενθυλάκωση (encapsulation) των δεδοµένων του
επιπέδου δικτύου σε πλαίσιο του επιπέδου ζεύξης δεδοµένων
¾ µεταφορά δεδοµένων επιπέδου δικτύου κάθε πρωτοκόλλου
επιπέδου δικτύου (όχι µόνο IP) ταυτόχρονα
¾ δυνατότητα αποπολύπλεξης προς τα ανώτερα επίπεδα

— ∆ιαφάνεια bit (bit transparency): πρέπει να µπορεί να µεταφέρει


οποιαδήποτε ακολουθία από bit στα δεδοµένα
— Ανίχνευση λαθών (όχι διόρθωση)
— Κατάσταση σύνδεσης: ανίχνευση, ενηµέρωση του επιπέδου δικτύου για
αστοχία κυκλώµατος
— ∆ιαπραγµάτευση διεύθυνσης επιπέδου δικτύου: το κάθε τελικό σηµείο
µπορεί να µάθει/ρυθµίσει τη διεύθυνση δικτύου του άλλου
plam@inf.teilam.gr, ©2004
∆ΙΚΤΥΑ ΥΠΟΛΟΓΙΣΤΩΝ Σελίδα 47
Το Επίπεδο Ζεύξης ∆εδοµένων στο
Internet: PPP

— Το ΡΡΡ (Point-to-Point Protocol) καθορίζεται στο RFC


1661

— Επιπλέον των όσων αναφέρθηκαν ήδη επιτρέπει την


πιστοποίηση αυθεντικότητας (authentication)

— Χρησιµοποιείται για µισθωµένες γραµµές µεταξύ


δροµολογητών αλλά και για τις οικιακές τηλεφωνικές
γραµµές

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
οριοθέτης
στα δεδοµένα
που
αποστέλλονται

το byte οριοθέτης συν


το «παραγεµιµένο» byte
ελέγχου στα δεδοµένα που
µεταδίδονται
plam@inf.teilam.gr, ©2004
∆ΙΚΤΥΑ ΥΠΟΛΟΓΙΣΤΩΝ Σελίδα 54
PPP
Πριν την ανταλλαγή δεδοµένων
επιπέδου δικτύου, οι οµότιµοι
του ζεύξης δεδοµένων πρέπει
— Να διαµορφώσουν το σύνδεσµο
PPP (µέγιστο µέγεθος πλαισίου,
αυθεντικότητα)
— Μάθηση/ρύθµιση πληροφορίας
επιπέδου δικτύου
¾ για το IP: µεταφορά
µηνυµάτων IPCP (protocol
field: 8021) για ρύθµιση/
µάθηση διεύθυνσης IP
plam@inf.teilam.gr, ©2004
∆ΙΚΤΥΑ ΥΠΟΛΟΓΙΣΤΩΝ Σελίδα 55
PPP (συνέχεια)

plam@inf.teilam.gr, ©2004
∆ΙΚΤΥΑ ΥΠΟΛΟΓΙΣΤΩΝ Σελίδα 56

You might also like